From 844d5138303d84a20db00507cab2ce8a338a9035 Mon Sep 17 00:00:00 2001 From: Dinesh Gurumurthy Date: Fri, 22 Nov 2024 12:31:18 -0500 Subject: [PATCH 001/439] Update collector version to 0.114.0 (#31251) --- .gitlab/integration_test/otel.yml | 2 +- LICENSE-3rdparty.csv | 1 + comp/core/log/impl-trace/go.sum | 20 +- comp/otelcol/collector-contrib/def/go.mod | 97 ++-- comp/otelcol/collector-contrib/def/go.sum | 236 ++++---- .../collector-contrib/impl/components.go | 72 +-- comp/otelcol/collector-contrib/impl/go.mod | 247 ++++---- comp/otelcol/collector-contrib/impl/go.sum | 541 +++++++++--------- .../collector-contrib/impl/manifest.yaml | 84 +-- comp/otelcol/collector/impl/collector.go | 2 +- comp/otelcol/converter/def/go.mod | 8 +- comp/otelcol/converter/def/go.sum | 16 +- comp/otelcol/converter/impl/go.mod | 14 +- comp/otelcol/converter/impl/go.sum | 28 +- comp/otelcol/ddflareextension/def/go.mod | 14 +- comp/otelcol/ddflareextension/def/go.sum | 28 +- comp/otelcol/ddflareextension/impl/go.mod | 249 ++++---- comp/otelcol/ddflareextension/impl/go.sum | 388 ++++++------- .../exporter/datadogexporter/go.mod | 68 +-- .../exporter/datadogexporter/go.sum | 168 +++--- .../exporter/logsagentexporter/go.mod | 49 +- .../exporter/logsagentexporter/go.sum | 104 ++-- .../exporter/serializerexporter/go.mod | 68 ++- .../exporter/serializerexporter/go.sum | 140 ++--- .../otlp/components/metricsclient/go.mod | 10 +- .../otlp/components/metricsclient/go.sum | 20 +- .../processor/infraattributesprocessor/go.mod | 43 +- .../processor/infraattributesprocessor/go.sum | 86 +-- .../otlp/components/statsprocessor/go.mod | 22 +- .../otlp/components/statsprocessor/go.sum | 90 +-- comp/otelcol/otlp/testutil/go.mod | 2 +- comp/otelcol/otlp/testutil/go.sum | 4 +- comp/trace/agent/def/go.mod | 19 +- comp/trace/agent/def/go.sum | 38 +- go.mod | 305 +++++----- go.sum | 530 ++++++++--------- pkg/trace/go.mod | 46 +- pkg/trace/go.sum | 220 +++---- pkg/trace/stats/oteltest/go.mod | 22 +- pkg/trace/stats/oteltest/go.sum | 90 +-- tasks/collector.py | 258 +++++---- tasks/modules.py | 5 - .../awscontainerinsightreceiver_manifest.yaml | 10 +- .../collector/datadogconnector_manifest.yaml | 10 +- .../collector/datadogexporter_manifest.yaml | 10 +- .../healthcheckextension_manifest.yaml | 6 +- .../mismatched_versions_manifest.yaml | 8 +- .../collector/pprofextension_manifest.yaml | 6 +- .../prometheusreceiver_manifest.yaml | 6 +- .../collector/valid_datadog_manifest.yaml | 76 +-- ...id_manifest_without_specified_version.yaml | 8 +- .../collector/zpagesextension_manifest.yaml | 6 +- test/new-e2e/go.mod | 16 +- test/new-e2e/go.sum | 36 +- test/otel/go.mod | 68 ++- test/otel/go.sum | 198 ++++--- test/otel/testdata/builder-config.yaml | 130 +++-- 57 files changed, 2606 insertions(+), 2442 deletions(-) diff --git a/.gitlab/integration_test/otel.yml b/.gitlab/integration_test/otel.yml index aecb75afd9917..75feb5c595010 100644 --- a/.gitlab/integration_test/otel.yml +++ b/.gitlab/integration_test/otel.yml @@ -65,7 +65,7 @@ ddflare_extension_ocb_build: - !reference [.retrieve_linux_go_deps] - mkdir -p /tmp/otel-ci - cp test/otel/testdata/* /tmp/otel-ci/ - - wget -O /tmp/otel-ci/ocb https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fbuilder%2Fv0.113.0/ocb_0.113.0_linux_amd64 + - wget -O /tmp/otel-ci/ocb https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fbuilder%2Fv0.114.0/ocb_0.114.0_linux_amd64 - chmod +x /tmp/otel-ci/ocb script: - echo 'Building collector with OCB and test ddflare extension' diff --git a/LICENSE-3rdparty.csv b/LICENSE-3rdparty.csv index dfe208d349e1c..0c14f7e40d15b 100644 --- a/LICENSE-3rdparty.csv +++ b/LICENSE-3rdparty.csv @@ -2420,6 +2420,7 @@ core,go.opentelemetry.io/collector/processor/memorylimiterprocessor,Apache-2.0,C core,go.opentelemetry.io/collector/processor/memorylimiterprocessor/internal/metadata,Apache-2.0,Copyright The OpenTelemetry Authors core,go.opentelemetry.io/collector/processor/processorhelper,Apache-2.0,Copyright The OpenTelemetry Authors core,go.opentelemetry.io/collector/processor/processorhelper/internal/metadata,Apache-2.0,Copyright The OpenTelemetry Authors +core,go.opentelemetry.io/collector/processor/processorhelper/processorhelperprofiles,Apache-2.0,Copyright The OpenTelemetry Authors core,go.opentelemetry.io/collector/processor/processorprofiles,Apache-2.0,Copyright The OpenTelemetry Authors core,go.opentelemetry.io/collector/processor/processortest,Apache-2.0,Copyright The OpenTelemetry Authors core,go.opentelemetry.io/collector/receiver,Apache-2.0,Copyright The OpenTelemetry Authors diff --git a/comp/core/log/impl-trace/go.sum b/comp/core/log/impl-trace/go.sum index 00fff0762cda4..c78b3124479b5 100644 --- a/comp/core/log/impl-trace/go.sum +++ b/comp/core/log/impl-trace/go.sum @@ -229,16 +229,16 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY= -go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE= -go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE= -go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY= -go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk= -go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0= -go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc= -go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8= -go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys= -go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/comp/otelcol/collector-contrib/def/go.mod b/comp/otelcol/collector-contrib/def/go.mod index 590bd0970d2a5..3c83814b009b0 100644 --- a/comp/otelcol/collector-contrib/def/go.mod +++ b/comp/otelcol/collector-contrib/def/go.mod @@ -2,16 +2,21 @@ module github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib/def go 1.22.0 -require go.opentelemetry.io/collector/otelcol v0.113.0 +require go.opentelemetry.io/collector/otelcol v0.114.0 require ( - go.opentelemetry.io/collector/connector/connectortest v0.113.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror v0.113.0 // indirect - go.opentelemetry.io/collector/exporter/exportertest v0.113.0 // indirect - go.opentelemetry.io/collector/internal/fanoutconsumer v0.113.0 // indirect - go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/processor/processortest v0.113.0 // indirect - go.opentelemetry.io/collector/receiver/receivertest v0.113.0 // indirect + go.opentelemetry.io/collector/component/componenttest v0.114.0 // indirect + go.opentelemetry.io/collector/extension/extensiontest v0.114.0 // indirect +) + +require ( + go.opentelemetry.io/collector/connector/connectortest v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror v0.114.0 // indirect + go.opentelemetry.io/collector/exporter/exportertest v0.114.0 // indirect + go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0 // indirect + go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/processor/processortest v0.114.0 // indirect + go.opentelemetry.io/collector/receiver/receivertest v0.114.0 // indirect go.opentelemetry.io/contrib/bridges/otelzap v0.6.0 // indirect ) @@ -27,14 +32,14 @@ require ( github.com/go-viper/mapstructure/v2 v2.2.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 // indirect github.com/hashicorp/go-version v1.7.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.17.11 // indirect github.com/knadh/koanf/maps v0.1.1 // indirect github.com/knadh/koanf/providers/confmap v0.1.0 // indirect - github.com/knadh/koanf/v2 v2.1.1 // indirect + github.com/knadh/koanf/v2 v2.1.2 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect @@ -54,49 +59,49 @@ require ( github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/collector/component v0.113.0 // indirect - go.opentelemetry.io/collector/component/componentstatus v0.113.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.113.0 // indirect - go.opentelemetry.io/collector/confmap v1.19.0 // indirect - go.opentelemetry.io/collector/connector v0.113.0 // indirect - go.opentelemetry.io/collector/connector/connectorprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/consumer v0.113.0 // indirect - go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/consumer/consumertest v0.113.0 // indirect - go.opentelemetry.io/collector/exporter v0.113.0 // indirect - go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/extension v0.113.0 // indirect - go.opentelemetry.io/collector/extension/extensioncapabilities v0.113.0 // indirect - go.opentelemetry.io/collector/featuregate v1.19.0 // indirect - go.opentelemetry.io/collector/pdata v1.19.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.113.0 // indirect - go.opentelemetry.io/collector/pdata/testdata v0.113.0 // indirect - go.opentelemetry.io/collector/pipeline v0.113.0 // indirect - go.opentelemetry.io/collector/processor v0.113.0 // indirect - go.opentelemetry.io/collector/processor/processorprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/receiver v0.113.0 // indirect - go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/semconv v0.113.0 // indirect - go.opentelemetry.io/collector/service v0.113.0 // indirect + go.opentelemetry.io/collector/component v0.114.0 // indirect + go.opentelemetry.io/collector/component/componentstatus v0.114.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect + go.opentelemetry.io/collector/confmap v1.20.0 // indirect + go.opentelemetry.io/collector/connector v0.114.0 // indirect + go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/consumer v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumertest v0.114.0 // indirect + go.opentelemetry.io/collector/exporter v0.114.0 // indirect + go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/extension v0.114.0 // indirect + go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0 // indirect + go.opentelemetry.io/collector/featuregate v1.20.0 // indirect + go.opentelemetry.io/collector/pdata v1.20.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.114.0 // indirect + go.opentelemetry.io/collector/pdata/testdata v0.114.0 // indirect + go.opentelemetry.io/collector/pipeline v0.114.0 // indirect + go.opentelemetry.io/collector/processor v0.114.0 // indirect + go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/receiver v0.114.0 // indirect + go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/semconv v0.114.0 // indirect + go.opentelemetry.io/collector/service v0.114.0 // indirect go.opentelemetry.io/contrib/config v0.10.0 // indirect go.opentelemetry.io/contrib/propagators/b3 v1.31.0 // indirect - go.opentelemetry.io/otel v1.31.0 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.7.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.31.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.32.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.53.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.7.0 // indirect - go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.31.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.32.0 // indirect go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.31.0 // indirect - go.opentelemetry.io/otel/log v0.7.0 // indirect - go.opentelemetry.io/otel/metric v1.31.0 // indirect - go.opentelemetry.io/otel/sdk v1.31.0 // indirect + go.opentelemetry.io/otel/log v0.8.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect go.opentelemetry.io/otel/sdk/log v0.7.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.31.0 // indirect - go.opentelemetry.io/otel/trace v1.31.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.opentelemetry.io/proto/otlp v1.3.1 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect @@ -105,8 +110,8 @@ require ( golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect gonum.org/v1/gonum v0.15.1 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect google.golang.org/protobuf v1.35.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/comp/otelcol/collector-contrib/def/go.sum b/comp/otelcol/collector-contrib/def/go.sum index 5d25971dc9734..0e45e08ca1376 100644 --- a/comp/otelcol/collector-contrib/def/go.sum +++ b/comp/otelcol/collector-contrib/def/go.sum @@ -33,8 +33,8 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 h1:ad0vkEBuk23VJzZR9nkLVG0YAoN9coASF1GusYX6AlU= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0/go.mod h1:igFoXX2ELCW06bol23DWPB5BEWfZISOzSP5K2sbLea0= github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -49,8 +49,8 @@ github.com/knadh/koanf/maps v0.1.1 h1:G5TjmUh2D7G2YWf5SQQqSiHRJEjaicvU0KpypqB3NI github.com/knadh/koanf/maps v0.1.1/go.mod h1:npD/QZY3V6ghQDdcQzl1W4ICNVTkohC8E73eI2xW4yI= github.com/knadh/koanf/providers/confmap v0.1.0 h1:gOkxhHkemwG4LezxxN8DMOFopOPghxRVp7JbIvdvqzU= github.com/knadh/koanf/providers/confmap v0.1.0/go.mod h1:2uLhxQzJnyHKfxG927awZC7+fyHFdQkd697K4MdLnIU= -github.com/knadh/koanf/v2 v2.1.1 h1:/R8eXqasSTsmDCsAyYj+81Wteg8AqrV9CP6gvsTsOmM= -github.com/knadh/koanf/v2 v2.1.1/go.mod h1:4mnTRbZCK+ALuBXHZMjDfG9y714L7TykVnZkXbMU3Es= +github.com/knadh/koanf/v2 v2.1.2 h1:I2rtLRqXRy1p01m/utEtpZSSA6dcJbgGVuE27kW2PzQ= +github.com/knadh/koanf/v2 v2.1.2/go.mod h1:Gphfaen0q1Fc1HTgJgSTC4oRX9R2R5ErYMZJy8fLJBo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -107,94 +107,98 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= -go.opentelemetry.io/collector v0.113.0 h1:dBuo2/OKBhoMCR86W4fFJLXGQ0gJfKRmi65AZwFkU2I= -go.opentelemetry.io/collector v0.113.0/go.mod h1:XbjD4Yw9LunLo3IJu3ZZytNZ0drEVznxw1Z14Ujlw3s= -go.opentelemetry.io/collector/client v1.19.0 h1:TUal8WV1agTrZStgE7BJ8ZC0IHLGtrfgO9ogU9t1mv8= -go.opentelemetry.io/collector/client v1.19.0/go.mod h1:jgiXMEM6l8L2QEyf2I/M47Zd8+G7e4z+6H8q5SkHOlQ= -go.opentelemetry.io/collector/component v0.113.0 h1:/nx+RvZgxUEXP+YcTj69rEtuSEGkfaCyp/ad5zQGLjU= -go.opentelemetry.io/collector/component v0.113.0/go.mod h1:2T779hIGHU9i7xbXbV3q1/JnRw2FyzUYXW2vq47A6EU= -go.opentelemetry.io/collector/component/componentstatus v0.113.0 h1:iNlUi+vDo7OqQwg4UOjfqqY3Xram4SkdcSZAyxt6QfE= -go.opentelemetry.io/collector/component/componentstatus v0.113.0/go.mod h1:NF/hVnP0kcsEqV9x14yMxN9GoehuOaVgMpO+s2KE+28= -go.opentelemetry.io/collector/config/configauth v0.113.0 h1:CBz43fGpN41MwLdwe3mw/XVSIDvGRMT8aaaPuqKukTU= -go.opentelemetry.io/collector/config/configauth v0.113.0/go.mod h1:Q8SlxrIvL3FJO51hXa4n9ARvox04lK8mmpjf4b3UNAU= -go.opentelemetry.io/collector/config/configcompression v1.19.0 h1:bTSjTLhnPXX1NSFM6GzguEM/NBe8QUPsXHc9kMOAJzE= -go.opentelemetry.io/collector/config/configcompression v1.19.0/go.mod h1:pnxkFCLUZLKWzYJvfSwZnPrnm0twX14CYj2ADth5xiU= -go.opentelemetry.io/collector/config/confighttp v0.113.0 h1:a6iO0y1ZM5CPDvwbryzU+GpqAtAQ3eSfNseoAUogw7c= -go.opentelemetry.io/collector/config/confighttp v0.113.0/go.mod h1:JZ9EwoiWMIrXt5v+d/q54TeUhPdAoLDimSEqTtddW6E= -go.opentelemetry.io/collector/config/configopaque v1.19.0 h1:7uvntQeAAtqCaeiS2dDGrT1wLPhWvDlEsD3SliA/koQ= -go.opentelemetry.io/collector/config/configopaque v1.19.0/go.mod h1:6zlLIyOoRpJJ+0bEKrlZOZon3rOp5Jrz9fMdR4twOS4= -go.opentelemetry.io/collector/config/configretry v1.19.0 h1:DEg8PXpo4ahMYgMzZZUU2cPcDF4vqowZlvimJ/t9InY= -go.opentelemetry.io/collector/config/configretry v1.19.0/go.mod h1:KvQF5cfphq1rQm1dKR4eLDNQYw6iI2fY72NMZVa+0N0= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0 h1:hweTRrVddnUeA3k7HzRY4oUR9lRdMa7of3mHNUS5YyA= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/config/configtls v1.19.0 h1:GQ/cF1hgNqHVBq2oSSrOFXxVCyMDyd5kq4R/RMEbL98= -go.opentelemetry.io/collector/config/configtls v1.19.0/go.mod h1:1hyqnYB3JqEUlk1ME/s9HYz4oCRcxQCRxsJitFFT/cA= -go.opentelemetry.io/collector/config/internal v0.113.0 h1:9RAzH8v7ItFT1npHpvP0SvUzBHcZDliCGRo9Spp6v7c= -go.opentelemetry.io/collector/config/internal v0.113.0/go.mod h1:yC7E4h1Uj0SubxcFImh6OvBHFTjMh99+A5PuyIgDWqc= -go.opentelemetry.io/collector/confmap v1.19.0 h1:TQ0lZpAKqgsE0EKk+u4JA+uBbPYeFRmWP3GH43w40CY= -go.opentelemetry.io/collector/confmap v1.19.0/go.mod h1:GgNu1ElPGmLn9govqIfjaopvdspw4PJ9KeDtWC4E2Q4= -go.opentelemetry.io/collector/connector v0.113.0 h1:ii+s1CjsLxtglqRlFs6tv8UU/uX45dyN9lbTRbR0p8g= -go.opentelemetry.io/collector/connector v0.113.0/go.mod h1:KmA8eQouTVxVk65Bf6utuMjWovMuOvNVRcYV60CAGtc= -go.opentelemetry.io/collector/connector/connectorprofiles v0.113.0 h1:yAEKTxVGpBtHrrXeZFrBcVOQkduxCncH0o4hqKrDRyw= -go.opentelemetry.io/collector/connector/connectorprofiles v0.113.0/go.mod h1:+mwzwIZ1cEK29ByfC38uF8hmFO8Wf9ShT1c756XX+RI= -go.opentelemetry.io/collector/connector/connectortest v0.113.0 h1:WHekoL0izkrKLVQLv79v0QhqfnXkVcw0sgdF07EqWLM= -go.opentelemetry.io/collector/connector/connectortest v0.113.0/go.mod h1:KouywNfkxRf+yzbI2pdolzTLkLoCV4ASEI2o2pDt+Cg= -go.opentelemetry.io/collector/consumer v0.113.0 h1:KJSiK5vSIY9dgPxwKfQ3gOgKtQsqc+7IB7mGhUAL5c8= -go.opentelemetry.io/collector/consumer v0.113.0/go.mod h1:zHMlXYFaJlZoLCBR6UwWoyXZ/adcO1u2ydqUal3VmYU= -go.opentelemetry.io/collector/consumer/consumererror v0.113.0 h1:Hd2N7n9RKbnKRaVrdw6fPBoQko5zZIgCxwVxkL6SAIE= -go.opentelemetry.io/collector/consumer/consumererror v0.113.0/go.mod h1:o0MAGFdzcr7LFTUQ6iivPPhbVmn2ZVIYm3FPXk2+JUo= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0 h1:RftAcQUY5UOfbEK4s16jnORqTx16y9+PxA1lQwt98cQ= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0/go.mod h1:ZuHrQ4pWguh6dw0DgTfcUtdY/T+cnOJJNP6LMbm5Y5A= -go.opentelemetry.io/collector/consumer/consumertest v0.113.0 h1:ua2AjNx3DUA8qElXNkggB4w3VDL/rBKBvryOQkhumH8= -go.opentelemetry.io/collector/consumer/consumertest v0.113.0/go.mod h1:vK8o4ZTZSiG3rVyqxZcCNmT/cvEfx34ig7V65L9+6Rg= -go.opentelemetry.io/collector/exporter v0.113.0 h1:lDZJ6xfuhyLsT/7lqLhIN/ftA6G+9fuYFtubPFvNDxo= -go.opentelemetry.io/collector/exporter v0.113.0/go.mod h1:0W4NBf5NjWYxR8oJodmOybgN4O0MLazdJwwHevirvXg= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0 h1:8bsk3wYYNr+WAM5nZkFjiLYSTH9MsY2tm7nUpMWt3qc= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0/go.mod h1:/HFWF846XePYL/qKDtcEAFgkiGSkLUTaC59A5F48axM= -go.opentelemetry.io/collector/exporter/exportertest v0.113.0 h1:U6cRxjJS7td8iNriUI2QfEdH+Yj60ytyvpmnmKTw0+8= -go.opentelemetry.io/collector/exporter/exportertest v0.113.0/go.mod h1:SRz5jGyAjtNiWwJ93B1+Ndk1p3oFtQsyLw52UGeyRwc= -go.opentelemetry.io/collector/extension v0.113.0 h1:Vp/YSL8ZCkJQrP1lf2Bm5yaTvcp6ROO3AnfuSL3GEXM= -go.opentelemetry.io/collector/extension v0.113.0/go.mod h1:Pwp0TNqdHeER4V1I6H6oCvrto/riiOAqs3737BWCnjw= -go.opentelemetry.io/collector/extension/auth v0.113.0 h1:4ggRy1vepOabUiCWfU+6M9P/ftXojMUNAvBpeLihYj8= -go.opentelemetry.io/collector/extension/auth v0.113.0/go.mod h1:VbvAm2YZAqePkWgwn0m0vBaq3aC49CxPVwHmrJ24aeQ= -go.opentelemetry.io/collector/extension/experimental/storage v0.113.0 h1:Qq4IaB6bMUrf/bWoPZ5ESWywCt+vDi8I/ChYejIEPcc= -go.opentelemetry.io/collector/extension/experimental/storage v0.113.0/go.mod h1:BRmo+A7f06u/rhyLauU/Vogk+QRN0y1j2VVVgMGWrfQ= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.113.0 h1:GuJzpnrJtsMrKWGmb1VL4EqL6x1HDtZmtvy3yEjth6Y= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.113.0/go.mod h1:oa72qndu7nAfEeEpDyDi9qLcaSJGIscLc/eeojFADx0= -go.opentelemetry.io/collector/extension/zpagesextension v0.113.0 h1:b/Clxso9uVwLVYjvRQ1NGBWHpUEZ/++uA5sJbBj0ryo= -go.opentelemetry.io/collector/extension/zpagesextension v0.113.0/go.mod h1:5csGYy9Ydfy6Hpw3Tod864P6HUEZpA6UiuPJPG3TjSU= -go.opentelemetry.io/collector/featuregate v1.19.0 h1:ASea2sU+tdpKI3RxIJC/pufDAfwAmrvcQ4EmTHVu0B0= -go.opentelemetry.io/collector/featuregate v1.19.0/go.mod h1:47xrISO71vJ83LSMm8+yIDsUbKktUp48Ovt7RR6VbRs= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.113.0 h1:Beu2zAN6/EDXQ6hMFU6FT1BsnU5FXmWNOlfTAhrgbGc= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.113.0/go.mod h1:WUXbc4L6KJ3SpmsxBgId0OYzRDuS7n274kNpqrgnSmY= -go.opentelemetry.io/collector/otelcol v0.113.0 h1:t32gA8Pg9lsqYQml4mgvHdqFSsjvPZMvGywi0zXQYjk= -go.opentelemetry.io/collector/otelcol v0.113.0/go.mod h1:PV6pDLPEaulRs3ceWYNEDuG5100F35I5VzeC2ekT/vY= -go.opentelemetry.io/collector/pdata v1.19.0 h1:jmnU5R8TOCbwRr4B8sjdRxM7L5WnEKlQWX1dtLYxIbE= -go.opentelemetry.io/collector/pdata v1.19.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/pdata/pprofile v0.113.0 h1:VRf4p0VhfuaR+Epy/nMIlu/9t39WU9CUgHVUvpuGxfU= -go.opentelemetry.io/collector/pdata/pprofile v0.113.0/go.mod h1:5aDejksdXh5PdJN/OhpzATGT3kbNL0RMmw2Q0Q6E/o0= -go.opentelemetry.io/collector/pdata/testdata v0.113.0 h1:vRfn85jicO2F4eOTgsWtzmU/K3E/uZUtM1HEefvvJD8= -go.opentelemetry.io/collector/pdata/testdata v0.113.0/go.mod h1:sR+6eR+YEJhYZu9StbqzeWcCmHpfBAgX/qjP82HY9Gw= -go.opentelemetry.io/collector/pipeline v0.113.0 h1:vSRzRe3717jV0btCNPhVkhg2lu0uFxcm2VO+vhad/eE= -go.opentelemetry.io/collector/pipeline v0.113.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= -go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.113.0 h1:PwQnErsLvEd1x6VIyjLmKQot9huKWqIfEz1kd+8aj4k= -go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.113.0/go.mod h1:tChJYsCG3wc6JPT9aJO3y+32V14NhmCFZOh3k5ORGdQ= -go.opentelemetry.io/collector/processor v0.113.0 h1:BQI6MsKtiCG9HT/nmiRXTKP6SZFrjFKVfM6pTQfbc0k= -go.opentelemetry.io/collector/processor v0.113.0/go.mod h1:oX91zMI8ZkoaYSUfUYflHiMiiBJPKtODNBUCrETLLd8= -go.opentelemetry.io/collector/processor/processorprofiles v0.113.0 h1:cczN6whdrCWww3T0FBV3U7lsVKQmkWDX05M+9lANHgk= -go.opentelemetry.io/collector/processor/processorprofiles v0.113.0/go.mod h1:4Dmx5qsvujgJ+MC+KqWI7UDVM2liXa3sH/9XnGiL9aE= -go.opentelemetry.io/collector/processor/processortest v0.113.0 h1:jGoDJ+tDCzuDcAWZeshQtnK/DQAvMKd4wZAIDgAM5aA= -go.opentelemetry.io/collector/processor/processortest v0.113.0/go.mod h1:tNg04r5KlpVx774jSC8U/oYst1eb7WIiz+0AjXKJ0Uw= -go.opentelemetry.io/collector/receiver v0.113.0 h1:vraAbkPy8Pz9x5X39gV+j9t6x23PNsY2aJ6gQMugRbQ= -go.opentelemetry.io/collector/receiver v0.113.0/go.mod h1:IUa8/lNw8Qh4L5Q3jOeRWKW0ebQPoNcfhytxN5Puq2A= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0 h1:uVxuzjGe2t1sbwahSBowVHYnGzpzn8brmfn8z1UHvQg= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0/go.mod h1:khKDkzYJR2x2OPUqGSmoSncdINT9lUE5IThiHPDbqZk= -go.opentelemetry.io/collector/receiver/receivertest v0.113.0 h1:0vOvz3S4Q/KwcNCS9C7zPo0uxD6RSWktG88yGdxfV6g= -go.opentelemetry.io/collector/receiver/receivertest v0.113.0/go.mod h1:sRq5ctm5UE/0Ar562wnCVQ1zbAie/D127D1WbtbEuEc= -go.opentelemetry.io/collector/semconv v0.113.0 h1:twenSI7M7MJMJKW8D6a/GXxPZTPbama/weywBtV2iFw= -go.opentelemetry.io/collector/semconv v0.113.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= -go.opentelemetry.io/collector/service v0.113.0 h1:SFT+kWuj9TehC34MLEWfXH6QocGl3MYqLJ7UbxZtWzM= -go.opentelemetry.io/collector/service v0.113.0/go.mod h1:6+JY80Yd4J4RWpvRmpCUUZFOZKGVs9a1QKCKPlDrKfs= +go.opentelemetry.io/collector v0.114.0 h1:XLLLOHns06P9XjVHyp0OdEMdwXvol5MLzugqQMmXYuU= +go.opentelemetry.io/collector v0.114.0/go.mod h1:XbjD4Yw9LunLo3IJu3ZZytNZ0drEVznxw1Z14Ujlw3s= +go.opentelemetry.io/collector/client v1.20.0 h1:o60wPcj5nLtaRenF+1E5p4QXFS3TDL6vHlw+GOon3rg= +go.opentelemetry.io/collector/client v1.20.0/go.mod h1:6aqkszco9FaLWCxyJEVam6PP7cUa8mPRIXeS5eZGj0U= +go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= +go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= +go.opentelemetry.io/collector/component/componentstatus v0.114.0 h1:y9my/xink8KB5lK8zFAjgB2+pEh0QYy5TM972fxZY9w= +go.opentelemetry.io/collector/component/componentstatus v0.114.0/go.mod h1:RIoeCYZpPaae7QLE/1RacqzhHuXBmzRAk9H/EwYtIIs= +go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= +go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= +go.opentelemetry.io/collector/config/configauth v0.114.0 h1:R2sJ6xpsLYGH0yU0vCxotzBYDKR/Hrjv0A7y9lwMyiw= +go.opentelemetry.io/collector/config/configauth v0.114.0/go.mod h1:3Z24KcCpG+WYCeQYfs/cNp5cP2BDeOqLCtOEgs/rPqM= +go.opentelemetry.io/collector/config/configcompression v1.20.0 h1:H/mvz7J/5z+O74YsO0t2tk+REnO2tzLM8TgIQ4AZ5w0= +go.opentelemetry.io/collector/config/configcompression v1.20.0/go.mod h1:pnxkFCLUZLKWzYJvfSwZnPrnm0twX14CYj2ADth5xiU= +go.opentelemetry.io/collector/config/confighttp v0.114.0 h1:DjGsBvVm+mGK3IpJBaXianWhwcxEC1fF33cpuC1LY/I= +go.opentelemetry.io/collector/config/confighttp v0.114.0/go.mod h1:nrlNLxOZ+4JQaV9j0TiqQV7LOHhrRivPrT8nQRHED3Q= +go.opentelemetry.io/collector/config/configopaque v1.20.0 h1:2I48zKiyyyYqjm7y0B9OLp24ku2ZSX3nCHG0r5FdWOQ= +go.opentelemetry.io/collector/config/configopaque v1.20.0/go.mod h1:6zlLIyOoRpJJ+0bEKrlZOZon3rOp5Jrz9fMdR4twOS4= +go.opentelemetry.io/collector/config/configretry v1.20.0 h1:z679mrMlW2a6tOOYPGdrS/QfALxdzWLQUOpH8Uu+D5Y= +go.opentelemetry.io/collector/config/configretry v1.20.0/go.mod h1:KvQF5cfphq1rQm1dKR4eLDNQYw6iI2fY72NMZVa+0N0= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= +go.opentelemetry.io/collector/config/configtls v1.20.0 h1:hNlJdwfyY5Qe54RLJ41lfLqKTn9ypkR7sk7JNCcSe2U= +go.opentelemetry.io/collector/config/configtls v1.20.0/go.mod h1:sav/txSHguadTYlSSK+BJO2ljJeYEtRoBahgzWAguYg= +go.opentelemetry.io/collector/config/internal v0.114.0 h1:uWSDWTJb8T6xRjKD9/XmEARakXnxgYVYKUeId78hErc= +go.opentelemetry.io/collector/config/internal v0.114.0/go.mod h1:yC7E4h1Uj0SubxcFImh6OvBHFTjMh99+A5PuyIgDWqc= +go.opentelemetry.io/collector/confmap v1.20.0 h1:ARfOwmkKxFOud1njl03yAHQ30+uenlzqCO6LBYamDTE= +go.opentelemetry.io/collector/confmap v1.20.0/go.mod h1:DMpd9Ay/ffls3JoQBQ73vWeRsz1rNuLbwjo6WtjSQus= +go.opentelemetry.io/collector/connector v0.114.0 h1:efGAeTCtg8zp5Hyd7Am8kBUgsSxWEFlFtAu4OX4mcEA= +go.opentelemetry.io/collector/connector v0.114.0/go.mod h1:8DhGgD8RhkF0ooELl4NOPPD/wgHuXHmY7g90RwJ2eNo= +go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0 h1:uVs9gy3UfQBmH0636ouIbGIoWis7zmKN+ny4XOGm36U= +go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0/go.mod h1:X681qFEAsEPMDQ0pMsD/3DqePw58sfLew1QbBKvGnmw= +go.opentelemetry.io/collector/connector/connectortest v0.114.0 h1:Fpy1JHyNOLdVzNcmxUY6Jwxdz6JDcTXL1NCfw8k1AOc= +go.opentelemetry.io/collector/connector/connectortest v0.114.0/go.mod h1:1zaAlODuL9iNyfyjHQeGCpbcaUjf5b68t8LqlwHKBNA= +go.opentelemetry.io/collector/consumer v0.114.0 h1:1zVaHvfIZowGwZRitRBRo3i+RP2StlU+GClYiofSw0Q= +go.opentelemetry.io/collector/consumer v0.114.0/go.mod h1:d+Mrzt9hsH1ub3zmwSlnQVPLeTYir4Mgo7CrWfnncN4= +go.opentelemetry.io/collector/consumer/consumererror v0.114.0 h1:r2YiELfWerb40FHD23V04gNjIkLUcjEKGxI4Vtm2iO4= +go.opentelemetry.io/collector/consumer/consumererror v0.114.0/go.mod h1:MzIrLQ5jptO2egypolhlAbZsWZr29WC4FhSxQjnxcvg= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 h1:5pXYy3E6UK5Huu3aQbsYL8B6E6MyWx4fvXXDn+oXZaA= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0/go.mod h1:PMq3f54KcJQO4v1tue0QxQScu7REFVADlXxXSAYMiN0= +go.opentelemetry.io/collector/consumer/consumertest v0.114.0 h1:isaTwJK5DOy8Bs7GuLq23ejfgj8gLIo5dOUvkRnLF4g= +go.opentelemetry.io/collector/consumer/consumertest v0.114.0/go.mod h1:GNeLPkfRPdh06n/Rv1UKa/cAtCKjN0a7ADyHjIj4HFE= +go.opentelemetry.io/collector/exporter v0.114.0 h1:5/0BBpXuCJQSQ5SQf31g7j6T4XEKkyx9mZMcA2rS5e8= +go.opentelemetry.io/collector/exporter v0.114.0/go.mod h1:atpd0wWXgh5LAZ0REU/d/Ti/q50HDfnlBIjMjJQlKFg= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 h1:/wmWOSBHcvtz3Pbv7+rWCqPPQuNvYaoidKKaOqZsLKs= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0/go.mod h1:epRYTkyJZTSQZBJflMGHUyUo2EdLPhsaZEyo5Qm848A= +go.opentelemetry.io/collector/exporter/exportertest v0.114.0 h1:vo0idBJT+QACSM1KpjVLm9VeiXVwO7y4UnMpGxN6EyM= +go.opentelemetry.io/collector/exporter/exportertest v0.114.0/go.mod h1:420ssFrhaphneybstbMeSIiqSRoaBARPgO71O17foaM= +go.opentelemetry.io/collector/extension v0.114.0 h1:9Qb92y8hD2WDC5aMDoj4JNQN+/5BQYJWPUPzLXX+iGw= +go.opentelemetry.io/collector/extension v0.114.0/go.mod h1:Yk2/1ptVgfTr12t+22v93nYJpioP14pURv2YercSzU0= +go.opentelemetry.io/collector/extension/auth v0.114.0 h1:1K2qh4yvG8kKR/sTAobI/rw5VxzPZoKcl3FmC195vvo= +go.opentelemetry.io/collector/extension/auth v0.114.0/go.mod h1:IjtsG+jUVJB0utKF8dAK8pLutRun3aEgASshImzsw/U= +go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 h1:hLyX9UvmY0t6iBnk3CqvyNck2U0QjPACekj7pDRx2hA= +go.opentelemetry.io/collector/extension/experimental/storage v0.114.0/go.mod h1:WqYRQVJjJLE1rm+y/ks1wPdPRGWePEvE1VO07xm2J2k= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0 h1:3OHll7gp5XIu7FVgon+koShPy797nze6EjCDokFUG7w= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0/go.mod h1:f0KdeLmE2jWVBmJ1U4WmfAtz1/tQUErGPfhPLKCQ49U= +go.opentelemetry.io/collector/extension/extensiontest v0.114.0 h1:ibXDms1qrswlvlR6b3d2BeyI8sXUXoFV11yOi9Sop8o= +go.opentelemetry.io/collector/extension/extensiontest v0.114.0/go.mod h1:/bOYmqu5yTDfI1bJZUxFqm8ZtmcodpquebiSxiQxtDY= +go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 h1:JosqAcdWw7IGsURJNR8f17xmaGCQEtKhQt9tM0T/DEg= +go.opentelemetry.io/collector/extension/zpagesextension v0.114.0/go.mod h1:+VO4p2GZvmIMqCVyIfS/U85Xqg+HIOe+mdl/ya+jVTE= +go.opentelemetry.io/collector/featuregate v1.20.0 h1:Mi7nMy/q52eruI+6jWnMKUOeM55XvwoPnGcdB1++O8c= +go.opentelemetry.io/collector/featuregate v1.20.0/go.mod h1:47xrISO71vJ83LSMm8+yIDsUbKktUp48Ovt7RR6VbRs= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0 h1:JM9huYqy5LTzmuxQmbPST3l5Ez5kJNit28c6WFWls34= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0/go.mod h1:V28tDU4Wvf1PfW1Ty/SBL9tpKul2iYGno/HkCWGDrj0= +go.opentelemetry.io/collector/otelcol v0.114.0 h1:d/nmYc+adzZ70g4zBMtgujGHVNulF59ExCpuM/3ZKV4= +go.opentelemetry.io/collector/otelcol v0.114.0/go.mod h1:DGmFFao5jHSwD6G1HjUjs0CYcyrTau+u7GjTRUGKN+4= +go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= +go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= +go.opentelemetry.io/collector/pdata/pprofile v0.114.0 h1:pUNfTzsI/JUTiE+DScDM4lsrPoxnVNLI2fbTxR/oapo= +go.opentelemetry.io/collector/pdata/pprofile v0.114.0/go.mod h1:4aNcj6WM1n1uXyFSXlhVs4ibrERgNYsTbzcYI2zGhxA= +go.opentelemetry.io/collector/pdata/testdata v0.114.0 h1:+AzszWSL1i4K6meQ8rU0JDDW55SYCXa6FVqfDixhhTo= +go.opentelemetry.io/collector/pdata/testdata v0.114.0/go.mod h1:bv8XFdCTZxG2MQB5l9dKxSxf5zBrcodwO6JOy1+AxXM= +go.opentelemetry.io/collector/pipeline v0.114.0 h1:v3YOhc5z0tD6QbO5n/pnftpIeroihM2ks9Z2yKPCcwY= +go.opentelemetry.io/collector/pipeline v0.114.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= +go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0 h1:LZgxMQ2zXcz8ILBefhxpZBpn/Rx+TJTncIIQy0LgtgY= +go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0/go.mod h1:bmyqQCJWcA53/GtqZJ2ahwmLdFl6UelFH2nR6OJFqpw= +go.opentelemetry.io/collector/processor v0.114.0 h1:6bqQgLL7BtKrNv4YkEOGjZfkcfZv/ciJSQx1epGG9Zk= +go.opentelemetry.io/collector/processor v0.114.0/go.mod h1:DV/wa+nAmSHIDeD9NblPwkY9PbgtDQAZJ+PE5biZwPc= +go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 h1:+P/1nLouEXTnN8DVQl+qWwO4BTkQyNPG9t/FrpUqrSI= +go.opentelemetry.io/collector/processor/processorprofiles v0.114.0/go.mod h1:3fuHeNIpINwx3bqFMprmDJyr6y5tWoWbJH599kltO5Y= +go.opentelemetry.io/collector/processor/processortest v0.114.0 h1:3FTaVXAp0LoVmUJn1ewBFckAby7AHa6/Kcdj0xuW14c= +go.opentelemetry.io/collector/processor/processortest v0.114.0/go.mod h1:OgsdOs1Fv5ZGTTJPF5nNIUJh2YkuV1acWd73yWgnti4= +go.opentelemetry.io/collector/receiver v0.114.0 h1:90SAnXAjNq7/k52/pFmmb06Cf1YauoPYtbio4aOXafY= +go.opentelemetry.io/collector/receiver v0.114.0/go.mod h1:KUGT0/D953LXbGH/D3lLPU8yrU3HfWnUqpt4W4hSOnE= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 h1:ibhEfGpvNB3yrtpl2jYFabrunMk1hurxvMYpM0b1Ck4= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0/go.mod h1:UZyRfaasw+NLvN10AN8IQnmj5tQ3BOUH1uP2ctpO9f0= +go.opentelemetry.io/collector/receiver/receivertest v0.114.0 h1:D+Kh9t2n4asTnM+TiSxbrKlUemLZandWntj17BJWWb0= +go.opentelemetry.io/collector/receiver/receivertest v0.114.0/go.mod h1:mNSHQ13vFmqD+VAcRzLjStFBejbcWUn2Mp0pAd7Op+U= +go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= +go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= +go.opentelemetry.io/collector/service v0.114.0 h1:MYF/4nH1CgtiLx09503xPAAUZefCzG1kaO+oanwX590= +go.opentelemetry.io/collector/service v0.114.0/go.mod h1:xH5/RapJdf5Ohh8iU8J0ZstfFYciP1oJPesiByteZxo= go.opentelemetry.io/contrib/bridges/otelzap v0.6.0 h1:j8icMXyyqNf6HGuwlYhniPnVsbJIq7n+WirDu3VAJdQ= go.opentelemetry.io/contrib/bridges/otelzap v0.6.0/go.mod h1:evIOZpl+kAlU5IsaYX2Siw+IbpacAZvXemVsgt70uvw= go.opentelemetry.io/contrib/config v0.10.0 h1:2JknAzMaYjxrHkTnZh3eOme/Y2P5eHE2SWfhfV6Xd6c= @@ -205,40 +209,40 @@ go.opentelemetry.io/contrib/propagators/b3 v1.31.0 h1:PQPXYscmwbCp76QDvO4hMngF2j go.opentelemetry.io/contrib/propagators/b3 v1.31.0/go.mod h1:jbqfV8wDdqSDrAYxVpXQnpM0XFMq2FtDesblJ7blOwQ= go.opentelemetry.io/contrib/zpages v0.56.0 h1:W7vP6s3juzL5KiHpr41zLNmsJ0QAZudYu8ay0zGAoko= go.opentelemetry.io/contrib/zpages v0.56.0/go.mod h1:IxPRP4TYHw9jLeaEOSDIiA9zmyJNZNO6sbW55iMvSXs= -go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY= -go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.7.0 h1:mMOmtYie9Fx6TSVzw4W+NTpvoaS1JWWga37oI1a/4qQ= go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.7.0/go.mod h1:yy7nDsMMBUkD+jeekJ36ur5f3jJIrmCwUrY67VFhNpA= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0 h1:FZ6ei8GFW7kyPYdxJaV2rgI6M+4tvZzhYsQ2wgyVC08= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0/go.mod h1:MdEu/mC6j3D+tTEfvI15b5Ci2Fn7NneJ71YMoiS3tpI= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.31.0 h1:ZsXq73BERAiNuuFXYqP4MR5hBrjXfMGSO+Cx7qoOZiM= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.31.0/go.mod h1:hg1zaDMpyZJuUzjFxFsRYBoccE86tM9Uf4IqNMUxvrY= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 h1:j7ZSD+5yn+lo3sGV69nW04rRR0jhYnBwjuX3r0HvnK0= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0/go.mod h1:WXbYJTUaZXAbYd8lbgGuvih0yuCfOFC5RJoYnoLcGz8= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.32.0 h1:t/Qur3vKSkUCcDVaSumWF2PKHt85pc7fRvFuoVT8qFU= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.32.0/go.mod h1:Rl61tySSdcOJWoEgYZVtmnKdA0GeKrSqkHC1t+91CH8= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 h1:K0XaT3DwHAcV4nKLzcQvwAgSyisUghWoY20I7huthMk= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0/go.mod h1:B5Ki776z/MBnVha1Nzwp5arlzBbE3+1jk+pGmaP5HME= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 h1:FFeLy03iVTXP6ffeN2iXrxfGsZGCjVx0/4KlizjyBwU= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0/go.mod h1:TMu73/k1CP8nBUpDLc71Wj/Kf7ZS9FK5b53VapRsP9o= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0 h1:lUsI2TYsQw2r1IASwoROaCnjdj2cvC2+Jbxvk6nHnWU= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0/go.mod h1:2HpZxxQurfGxJlJDblybejHB6RX6pmExPNe517hREw4= -go.opentelemetry.io/otel/exporters/prometheus v0.53.0 h1:QXobPHrwiGLM4ufrY3EOmDPJpo2P90UuFau4CDPJA/I= -go.opentelemetry.io/otel/exporters/prometheus v0.53.0/go.mod h1:WOAXGr3D00CfzmFxtTV1eR0GpoHuPEu+HJT8UWW2SIU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.7.0 h1:TwmL3O3fRR80m8EshBrd8YydEZMcUCsZXzOUlnFohwM= go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.7.0/go.mod h1:tH98dDv5KPmPThswbXA0fr0Lwfs+OhK8HgaCo7PjRrk= -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.31.0 h1:HZgBIps9wH0RDrwjrmNa3DVbNRW60HEhdzqZFyAp3fI= -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.31.0/go.mod h1:RDRhvt6TDG0eIXmonAx5bd9IcwpqCkziwkOClzWKwAQ= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.32.0 h1:SZmDnHcgp3zwlPBS2JX2urGYe/jBKEIT6ZedHRUyCz8= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.32.0/go.mod h1:fdWW0HtZJ7+jNpTKUR0GpMEDP69nR8YBJQxNiVCE3jk= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.31.0 h1:UGZ1QwZWY67Z6BmckTU+9Rxn04m2bD3gD6Mk0OIOCPk= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.31.0/go.mod h1:fcwWuDuaObkkChiDlhEpSq9+X1C0omv+s5mBtToAQ64= -go.opentelemetry.io/otel/log v0.7.0 h1:d1abJc0b1QQZADKvfe9JqqrfmPYQCz2tUSO+0XZmuV4= -go.opentelemetry.io/otel/log v0.7.0/go.mod h1:2jf2z7uVfnzDNknKTO9G+ahcOAyWcp1fJmk/wJjULRo= -go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE= -go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY= -go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk= -go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0= +go.opentelemetry.io/otel/log v0.8.0 h1:egZ8vV5atrUWUbnSsHn6vB8R21G2wrKqNiDt3iWertk= +go.opentelemetry.io/otel/log v0.8.0/go.mod h1:M9qvDdUTRCopJcGRKg57+JSQ9LgLBrwwfC32epk5NX8= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= go.opentelemetry.io/otel/sdk/log v0.7.0 h1:dXkeI2S0MLc5g0/AwxTZv6EUEjctiH8aG14Am56NTmQ= go.opentelemetry.io/otel/sdk/log v0.7.0/go.mod h1:oIRXpW+WD6M8BuGj5rtS0aRu/86cbDV/dAfNaZBIjYM= -go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc= -go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8= -go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys= -go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= @@ -286,10 +290,10 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gonum.org/v1/gonum v0.15.1 h1:FNy7N6OUZVUaWG9pTiD+jlhdQ3lMP+/LcTpJ6+a8sQ0= gonum.org/v1/gonum v0.15.1/go.mod h1:eZTZuRFrzu5pcyjN5wJhcIhnUdNijYxX1T2IcrOGY0o= -google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 h1:T6rh4haD3GVYsgEfWExoCZA2o2FmbNyKpTuAxbEFPTg= -google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:wp2WsuBYj6j8wUdo3ToZsdxxixbvQNAHqVJrTgi5E5M= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 h1:QCqS/PdaHTSWGvupk2F/ehwHtGc0/GYkT+3GAcR1CCc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= diff --git a/comp/otelcol/collector-contrib/impl/components.go b/comp/otelcol/collector-contrib/impl/components.go index 016237e62f9ed..c5cdd8d5504c2 100644 --- a/comp/otelcol/collector-contrib/impl/components.go +++ b/comp/otelcol/collector-contrib/impl/components.go @@ -71,14 +71,14 @@ func components() (otelcol.Factories, error) { return otelcol.Factories{}, err } factories.ExtensionModules = make(map[component.Type]string, len(factories.Extensions)) - factories.ExtensionModules[zpagesextension.NewFactory().Type()] = "go.opentelemetry.io/collector/extension/zpagesextension v0.113.0" - factories.ExtensionModules[healthcheckextension.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.113.0" - factories.ExtensionModules[pprofextension.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.113.0" - factories.ExtensionModules[dockerobserver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.113.0" - factories.ExtensionModules[ecsobserver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.113.0" - factories.ExtensionModules[ecstaskobserver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.113.0" - factories.ExtensionModules[hostobserver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.113.0" - factories.ExtensionModules[k8sobserver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.113.0" + factories.ExtensionModules[zpagesextension.NewFactory().Type()] = "go.opentelemetry.io/collector/extension/zpagesextension v0.114.0" + factories.ExtensionModules[healthcheckextension.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0" + factories.ExtensionModules[pprofextension.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0" + factories.ExtensionModules[dockerobserver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.114.0" + factories.ExtensionModules[ecsobserver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.114.0" + factories.ExtensionModules[ecstaskobserver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.114.0" + factories.ExtensionModules[hostobserver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.114.0" + factories.ExtensionModules[k8sobserver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.114.0" factories.Receivers, err = receiver.MakeFactoryMap( nopreceiver.NewFactory(), @@ -95,15 +95,15 @@ func components() (otelcol.Factories, error) { return otelcol.Factories{}, err } factories.ReceiverModules = make(map[component.Type]string, len(factories.Receivers)) - factories.ReceiverModules[nopreceiver.NewFactory().Type()] = "go.opentelemetry.io/collector/receiver/nopreceiver v0.113.0" - factories.ReceiverModules[otlpreceiver.NewFactory().Type()] = "go.opentelemetry.io/collector/receiver/otlpreceiver v0.113.0" - factories.ReceiverModules[filelogreceiver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.113.0" - factories.ReceiverModules[fluentforwardreceiver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.113.0" - factories.ReceiverModules[hostmetricsreceiver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.113.0" - factories.ReceiverModules[jaegerreceiver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.113.0" - factories.ReceiverModules[prometheusreceiver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.113.0" - factories.ReceiverModules[receivercreator.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.113.0" - factories.ReceiverModules[zipkinreceiver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.113.0" + factories.ReceiverModules[nopreceiver.NewFactory().Type()] = "go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0" + factories.ReceiverModules[otlpreceiver.NewFactory().Type()] = "go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0" + factories.ReceiverModules[filelogreceiver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.114.0" + factories.ReceiverModules[fluentforwardreceiver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.114.0" + factories.ReceiverModules[hostmetricsreceiver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.114.0" + factories.ReceiverModules[jaegerreceiver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.114.0" + factories.ReceiverModules[prometheusreceiver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0" + factories.ReceiverModules[receivercreator.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.114.0" + factories.ReceiverModules[zipkinreceiver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.114.0" factories.Exporters, err = exporter.MakeFactoryMap( debugexporter.NewFactory(), @@ -116,11 +116,11 @@ func components() (otelcol.Factories, error) { return otelcol.Factories{}, err } factories.ExporterModules = make(map[component.Type]string, len(factories.Exporters)) - factories.ExporterModules[debugexporter.NewFactory().Type()] = "go.opentelemetry.io/collector/exporter/debugexporter v0.113.0" - factories.ExporterModules[nopexporter.NewFactory().Type()] = "go.opentelemetry.io/collector/exporter/nopexporter v0.113.0" - factories.ExporterModules[otlpexporter.NewFactory().Type()] = "go.opentelemetry.io/collector/exporter/otlpexporter v0.113.0" - factories.ExporterModules[otlphttpexporter.NewFactory().Type()] = "go.opentelemetry.io/collector/exporter/otlphttpexporter v0.113.0" - factories.ExporterModules[sapmexporter.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.113.0" + factories.ExporterModules[debugexporter.NewFactory().Type()] = "go.opentelemetry.io/collector/exporter/debugexporter v0.114.0" + factories.ExporterModules[nopexporter.NewFactory().Type()] = "go.opentelemetry.io/collector/exporter/nopexporter v0.114.0" + factories.ExporterModules[otlpexporter.NewFactory().Type()] = "go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0" + factories.ExporterModules[otlphttpexporter.NewFactory().Type()] = "go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0" + factories.ExporterModules[sapmexporter.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.114.0" factories.Processors, err = processor.MakeFactoryMap( batchprocessor.NewFactory(), @@ -141,19 +141,19 @@ func components() (otelcol.Factories, error) { return otelcol.Factories{}, err } factories.ProcessorModules = make(map[component.Type]string, len(factories.Processors)) - factories.ProcessorModules[batchprocessor.NewFactory().Type()] = "go.opentelemetry.io/collector/processor/batchprocessor v0.113.0" - factories.ProcessorModules[memorylimiterprocessor.NewFactory().Type()] = "go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.113.0" - factories.ProcessorModules[attributesprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.113.0" - factories.ProcessorModules[cumulativetodeltaprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.113.0" - factories.ProcessorModules[filterprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.113.0" - factories.ProcessorModules[groupbyattrsprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.113.0" - factories.ProcessorModules[k8sattributesprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.113.0" - factories.ProcessorModules[probabilisticsamplerprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0" - factories.ProcessorModules[resourcedetectionprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.113.0" - factories.ProcessorModules[resourceprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.113.0" - factories.ProcessorModules[routingprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.113.0" - factories.ProcessorModules[tailsamplingprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.113.0" - factories.ProcessorModules[transformprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.113.0" + factories.ProcessorModules[batchprocessor.NewFactory().Type()] = "go.opentelemetry.io/collector/processor/batchprocessor v0.114.0" + factories.ProcessorModules[memorylimiterprocessor.NewFactory().Type()] = "go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.114.0" + factories.ProcessorModules[attributesprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.114.0" + factories.ProcessorModules[cumulativetodeltaprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.114.0" + factories.ProcessorModules[filterprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.114.0" + factories.ProcessorModules[groupbyattrsprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.114.0" + factories.ProcessorModules[k8sattributesprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.114.0" + factories.ProcessorModules[probabilisticsamplerprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0" + factories.ProcessorModules[resourcedetectionprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.114.0" + factories.ProcessorModules[resourceprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.114.0" + factories.ProcessorModules[routingprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.114.0" + factories.ProcessorModules[tailsamplingprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.114.0" + factories.ProcessorModules[transformprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0" factories.Connectors, err = connector.MakeFactoryMap( spanmetricsconnector.NewFactory(), @@ -162,7 +162,7 @@ func components() (otelcol.Factories, error) { return otelcol.Factories{}, err } factories.ConnectorModules = make(map[component.Type]string, len(factories.Connectors)) - factories.ConnectorModules[spanmetricsconnector.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.113.0" + factories.ConnectorModules[spanmetricsconnector.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0" return factories, nil } diff --git a/comp/otelcol/collector-contrib/impl/go.mod b/comp/otelcol/collector-contrib/impl/go.mod index fc6be9c0601b7..59a9d3d11f185 100644 --- a/comp/otelcol/collector-contrib/impl/go.mod +++ b/comp/otelcol/collector-contrib/impl/go.mod @@ -8,49 +8,49 @@ toolchain go1.22.8 require ( github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib/def v0.0.0-00010101000000-000000000000 - github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.113.0 - go.opentelemetry.io/collector/component v0.113.0 - go.opentelemetry.io/collector/connector v0.113.0 - go.opentelemetry.io/collector/exporter v0.113.0 - go.opentelemetry.io/collector/exporter/debugexporter v0.113.0 - go.opentelemetry.io/collector/exporter/nopexporter v0.113.0 - go.opentelemetry.io/collector/exporter/otlpexporter v0.113.0 - go.opentelemetry.io/collector/exporter/otlphttpexporter v0.113.0 - go.opentelemetry.io/collector/extension v0.113.0 - go.opentelemetry.io/collector/extension/zpagesextension v0.113.0 - go.opentelemetry.io/collector/otelcol v0.113.0 - go.opentelemetry.io/collector/processor v0.113.0 - go.opentelemetry.io/collector/processor/batchprocessor v0.113.0 - go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.113.0 - go.opentelemetry.io/collector/receiver v0.113.0 - go.opentelemetry.io/collector/receiver/nopreceiver v0.113.0 - go.opentelemetry.io/collector/receiver/otlpreceiver v0.113.0 + github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.114.0 + go.opentelemetry.io/collector/component v0.114.0 + go.opentelemetry.io/collector/connector v0.114.0 + go.opentelemetry.io/collector/exporter v0.114.0 + go.opentelemetry.io/collector/exporter/debugexporter v0.114.0 + go.opentelemetry.io/collector/exporter/nopexporter v0.114.0 + go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0 + go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0 + go.opentelemetry.io/collector/extension v0.114.0 + go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 + go.opentelemetry.io/collector/otelcol v0.114.0 + go.opentelemetry.io/collector/processor v0.114.0 + go.opentelemetry.io/collector/processor/batchprocessor v0.114.0 + go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.114.0 + go.opentelemetry.io/collector/receiver v0.114.0 + go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0 + go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0 ) require ( @@ -128,7 +128,7 @@ require ( github.com/gorilla/mux v1.8.1 // indirect github.com/gorilla/websocket v1.5.0 // indirect github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 // indirect github.com/hashicorp/consul/api v1.30.0 // indirect github.com/hashicorp/cronexpr v1.1.2 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect @@ -157,7 +157,7 @@ require ( github.com/klauspost/compress v1.17.11 // indirect github.com/knadh/koanf/maps v0.1.1 // indirect github.com/knadh/koanf/providers/confmap v0.1.0 // indirect - github.com/knadh/koanf/v2 v2.1.1 // indirect + github.com/knadh/koanf/v2 v2.1.2 // indirect github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/leodido/go-syslog/v4 v4.2.0 // indirect @@ -180,26 +180,26 @@ require ( github.com/mostynb/go-grpc-compression v1.2.3 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.113.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.114.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0 // indirect github.com/openshift/api v3.9.0+incompatible // indirect @@ -229,7 +229,7 @@ require ( github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/stretchr/testify v1.9.0 // indirect - github.com/tinylib/msgp v1.2.3 // indirect + github.com/tinylib/msgp v1.2.4 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/ua-parser/uap-go v0.0.0-20240611065828-3a4781585db6 // indirect @@ -238,72 +238,75 @@ require ( github.com/x448/float16 v0.8.4 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/collector v0.113.0 // indirect - go.opentelemetry.io/collector/client v1.19.0 // indirect - go.opentelemetry.io/collector/component/componentstatus v0.113.0 // indirect - go.opentelemetry.io/collector/config/configauth v0.113.0 // indirect - go.opentelemetry.io/collector/config/configcompression v1.19.0 // indirect - go.opentelemetry.io/collector/config/configgrpc v0.113.0 // indirect - go.opentelemetry.io/collector/config/confighttp v0.113.0 // indirect - go.opentelemetry.io/collector/config/confignet v1.19.0 // indirect - go.opentelemetry.io/collector/config/configopaque v1.19.0 // indirect - go.opentelemetry.io/collector/config/configretry v1.19.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.113.0 // indirect - go.opentelemetry.io/collector/config/configtls v1.19.0 // indirect - go.opentelemetry.io/collector/config/internal v0.113.0 // indirect - go.opentelemetry.io/collector/confmap v1.19.0 // indirect - go.opentelemetry.io/collector/connector/connectorprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/connector/connectortest v0.113.0 // indirect - go.opentelemetry.io/collector/consumer v0.113.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror v0.113.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/consumer/consumertest v0.113.0 // indirect - go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/exporter/exportertest v0.113.0 // indirect - go.opentelemetry.io/collector/extension/auth v0.113.0 // indirect - go.opentelemetry.io/collector/extension/experimental/storage v0.113.0 // indirect - go.opentelemetry.io/collector/extension/extensioncapabilities v0.113.0 // indirect - go.opentelemetry.io/collector/featuregate v1.19.0 // indirect - go.opentelemetry.io/collector/filter v0.113.0 // indirect - go.opentelemetry.io/collector/internal/fanoutconsumer v0.113.0 // indirect - go.opentelemetry.io/collector/internal/memorylimiter v0.113.0 // indirect - go.opentelemetry.io/collector/internal/sharedcomponent v0.113.0 // indirect - go.opentelemetry.io/collector/pdata v1.19.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.113.0 // indirect - go.opentelemetry.io/collector/pdata/testdata v0.113.0 // indirect - go.opentelemetry.io/collector/pipeline v0.113.0 // indirect - go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/processor/processorprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/processor/processortest v0.113.0 // indirect - go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/receiver/receivertest v0.113.0 // indirect - go.opentelemetry.io/collector/semconv v0.113.0 // indirect - go.opentelemetry.io/collector/service v0.113.0 // indirect + go.opentelemetry.io/collector v0.114.0 // indirect + go.opentelemetry.io/collector/client v1.20.0 // indirect + go.opentelemetry.io/collector/component/componentstatus v0.114.0 // indirect + go.opentelemetry.io/collector/component/componenttest v0.114.0 // indirect + go.opentelemetry.io/collector/config/configauth v0.114.0 // indirect + go.opentelemetry.io/collector/config/configcompression v1.20.0 // indirect + go.opentelemetry.io/collector/config/configgrpc v0.114.0 // indirect + go.opentelemetry.io/collector/config/confighttp v0.114.0 // indirect + go.opentelemetry.io/collector/config/confignet v1.20.0 // indirect + go.opentelemetry.io/collector/config/configopaque v1.20.0 // indirect + go.opentelemetry.io/collector/config/configretry v1.20.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect + go.opentelemetry.io/collector/config/configtls v1.20.0 // indirect + go.opentelemetry.io/collector/config/internal v0.114.0 // indirect + go.opentelemetry.io/collector/confmap v1.20.0 // indirect + go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/connector/connectortest v0.114.0 // indirect + go.opentelemetry.io/collector/consumer v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumertest v0.114.0 // indirect + go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/exporter/exportertest v0.114.0 // indirect + go.opentelemetry.io/collector/extension/auth v0.114.0 // indirect + go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 // indirect + go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0 // indirect + go.opentelemetry.io/collector/extension/extensiontest v0.114.0 // indirect + go.opentelemetry.io/collector/featuregate v1.20.0 // indirect + go.opentelemetry.io/collector/filter v0.114.0 // indirect + go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0 // indirect + go.opentelemetry.io/collector/internal/memorylimiter v0.114.0 // indirect + go.opentelemetry.io/collector/internal/sharedcomponent v0.114.0 // indirect + go.opentelemetry.io/collector/pdata v1.20.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.114.0 // indirect + go.opentelemetry.io/collector/pdata/testdata v0.114.0 // indirect + go.opentelemetry.io/collector/pipeline v0.114.0 // indirect + go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/processor/processorhelper/processorhelperprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/processor/processortest v0.114.0 // indirect + go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/receiver/receivertest v0.114.0 // indirect + go.opentelemetry.io/collector/semconv v0.114.0 // indirect + go.opentelemetry.io/collector/service v0.114.0 // indirect go.opentelemetry.io/contrib/bridges/otelzap v0.6.0 // indirect go.opentelemetry.io/contrib/config v0.10.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect go.opentelemetry.io/contrib/propagators/b3 v1.31.0 // indirect go.opentelemetry.io/contrib/zpages v0.56.0 // indirect - go.opentelemetry.io/otel v1.31.0 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.7.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.31.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.32.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.53.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.7.0 // indirect - go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.31.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.32.0 // indirect go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.31.0 // indirect - go.opentelemetry.io/otel/log v0.7.0 // indirect - go.opentelemetry.io/otel/metric v1.31.0 // indirect - go.opentelemetry.io/otel/sdk v1.31.0 // indirect + go.opentelemetry.io/otel/log v0.8.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect go.opentelemetry.io/otel/sdk/log v0.7.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.31.0 // indirect - go.opentelemetry.io/otel/trace v1.31.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.opentelemetry.io/proto/otlp v1.3.1 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect @@ -317,12 +320,12 @@ require ( golang.org/x/sys v0.27.0 // indirect golang.org/x/term v0.26.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/time v0.8.0 // indirect + golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.27.0 // indirect gonum.org/v1/gonum v0.15.1 // indirect google.golang.org/api v0.188.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect google.golang.org/protobuf v1.35.1 // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/comp/otelcol/collector-contrib/impl/go.sum b/comp/otelcol/collector-contrib/impl/go.sum index 9826d6de14c82..d9d7b58367343 100644 --- a/comp/otelcol/collector-contrib/impl/go.sum +++ b/comp/otelcol/collector-contrib/impl/go.sum @@ -370,8 +370,8 @@ github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc/go.mod h1:+JKpmjMGh github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 h1:pRhl55Yx1eC7BZ1N+BBWwnKaMyD8uC+34TLdndZMAKk= github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0/go.mod h1:XKMd7iuf/RGPSMJ/U4HP0zS2Z9Fh8Ps9a+6X26m/tmI= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 h1:ad0vkEBuk23VJzZR9nkLVG0YAoN9coASF1GusYX6AlU= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0/go.mod h1:igFoXX2ELCW06bol23DWPB5BEWfZISOzSP5K2sbLea0= github.com/hashicorp/consul/api v1.30.0 h1:ArHVMMILb1nQv8vZSGIwwQd2gtc+oSQZ6CalyiyH2XQ= github.com/hashicorp/consul/api v1.30.0/go.mod h1:B2uGchvaXVW2JhFoS8nqTxMD5PBykr4ebY4JWHTTeLM= github.com/hashicorp/consul/sdk v0.16.1 h1:V8TxTnImoPD5cj0U9Spl0TUxcytjcbbJeADFF07KdHg= @@ -476,8 +476,8 @@ github.com/knadh/koanf/maps v0.1.1 h1:G5TjmUh2D7G2YWf5SQQqSiHRJEjaicvU0KpypqB3NI github.com/knadh/koanf/maps v0.1.1/go.mod h1:npD/QZY3V6ghQDdcQzl1W4ICNVTkohC8E73eI2xW4yI= github.com/knadh/koanf/providers/confmap v0.1.0 h1:gOkxhHkemwG4LezxxN8DMOFopOPghxRVp7JbIvdvqzU= github.com/knadh/koanf/providers/confmap v0.1.0/go.mod h1:2uLhxQzJnyHKfxG927awZC7+fyHFdQkd697K4MdLnIU= -github.com/knadh/koanf/v2 v2.1.1 h1:/R8eXqasSTsmDCsAyYj+81Wteg8AqrV9CP6gvsTsOmM= -github.com/knadh/koanf/v2 v2.1.1/go.mod h1:4mnTRbZCK+ALuBXHZMjDfG9y714L7TykVnZkXbMU3Es= +github.com/knadh/koanf/v2 v2.1.2 h1:I2rtLRqXRy1p01m/utEtpZSSA6dcJbgGVuE27kW2PzQ= +github.com/knadh/koanf/v2 v2.1.2/go.mod h1:Gphfaen0q1Fc1HTgJgSTC4oRX9R2R5ErYMZJy8fLJBo= github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b h1:udzkj9S/zlT5X367kqJis0QP7YMxobob6zhzq6Yre00= github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b/go.mod h1:pcaDhQK0/NJZEvtCO0qQPPropqV0sJOJ6YW7X+9kRwM= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -621,114 +621,114 @@ github.com/onsi/gomega v1.27.3/go.mod h1:5vG284IBtfDAmDyrK+eGyZmUgUlmi+Wngqo557c github.com/onsi/gomega v1.27.4/go.mod h1:riYq/GJKh8hhoM01HN6Vmuy93AarCXCBGpvFDK3q3fQ= github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.113.0 h1:f3PXc+bgwGtJIlWwtOXDYYNBKOyabhkLl6Q3j/Rc1ow= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.113.0/go.mod h1:Ix1L1Godr9TS2DvHWSz/+0RBPa/D34azSvk/xU3dlGs= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.113.0 h1:sYEmpMeBGMSoy8j1GSEkBO5GM578Qtq3QtmVcsYn51s= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.113.0/go.mod h1:ULlXfiJdXw0ZzUGXLToQvGb1gQuIGC2BjtfyTnw3QtE= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.113.0 h1:QTCu/YoA37p2Kf81Bc/h5TM70K8O+E/gMBc9vCkJrUQ= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.113.0/go.mod h1:f3Lwdfnyzf7IY/gFXiRnSPMWGLZv17r+GJuTwnZkQL8= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.113.0 h1:Aej9sL1v25Xf8AfM1fyRluBLV5g5+40GnagCb0/UJfY= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.113.0/go.mod h1:QiXedkQif06vbjtVgnmmrHOunLUoLLAf10uaA/qKgts= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.113.0 h1:DLVAun5qoedOzWZ1+yoZRuGj0RonhrGAqdAOO7k6k+A= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.113.0/go.mod h1:betAqGGfDFb8SLyMYBwH9BQyB9wzxWOWXXC/Ht6/kas= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.113.0 h1:Z6Y34pWmm/be0D5QCirBLEoMf7K9ObRPkMMD8bt4Ce0= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.113.0/go.mod h1:LZ3Wbuyz2MNNAj3bT9u7QUt21glx2FWE26b0EjWKWnc= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.113.0 h1:hJfn9iDpcmaeYCBJvwAhmH4prq2Rdr+hWizEIKWaXmg= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.113.0/go.mod h1:tImtwJ0mSfqoPycKMDGFZcVBGi+8KnBTmBSMHsGSTkU= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.113.0 h1:Z4gWWk5N3ZBJlAx0hRm2sDUxlW8qK7dVoRbWMUnKiOM= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.113.0/go.mod h1:FB+Xi0xKwEqTCshu2SGykG2LXRvg+5ZYR3jymz6+Mtw= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.113.0 h1:+kM285dDDP69EfG6lB+A8nO98wtYrXT/afxlIzk5+IU= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.113.0/go.mod h1:X6/2QgHXQ73vvs1C5LEMyifUknLa71E27hUcbTY5vRo= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.113.0 h1:9xbLur+qeUwlKDrx9LGI9fvypussD2E00q6QFkkGpGo= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.113.0/go.mod h1:l58b3KahydKLOzt7S0s0NYBYH9Nm8tZ4w/GIVvOLCWU= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.113.0 h1:hc407moydGsK9FfAxjP3Tw+akhmKO8PfaH18II3N7Q4= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.113.0/go.mod h1:+1IJOoUqBzghufMZDSMhKzs1UOi39h8pMFDxWm/k1k4= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.113.0 h1:ERdOiTmsDruI/s5oEgN45NsZW2roWXmO0u2aceR4GuM= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.113.0/go.mod h1:RkClsQhl8hdAg874Ot4kaG92s+6dW0Dvlt5HRxhsavc= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.113.0 h1:qudJNiKFfxly/lPyfdZNwnT6OKCzRFw0BI0E5CI6WwU= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.113.0/go.mod h1:eHVWQ484ohG4ZjaV8KTej3CMVEPh0w6zBXfi+qqvyGw= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.113.0 h1:7A8MgFPYRQWq1RkFBktq01CW+eTYhiGML0IxQNv2uaM= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.113.0/go.mod h1:E1pc7mDXH+5s7RyXw291h8lz2dhzPzaDrAHqP1Lawvw= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.113.0 h1:EZ/ZNsovNcQq+wwAbTAWNY+6BHnv24NxvVoC6eYmtg8= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.113.0/go.mod h1:u21dEQ9yQ0JyLMSrKLWWzHG/lHSlteNfa/EQ7Vqcle4= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.113.0 h1:462BO6mxAJKJdlqxs3swj9RtebQNeHXp2g7IK/N7+Zc= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.113.0/go.mod h1:aFfi8Vz+pIYXYxrx9rDP2Rhduac7mrjUYEAI/0GUIl4= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.113.0 h1:SjzsWZqrxUoRWvXzwrbjQCnoJRJApJVCCqjrtflapMM= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.113.0/go.mod h1:sYIh0S63ztcL2q9gEKhvviDQ5caH1sFE1oeFRDQOQ6A= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.113.0 h1:E/D5TwJyKN19p1FQ0XD5r5G1uH9NH/HVAM0e1hFMwFU= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.113.0/go.mod h1:FcClDm9XVV5tzUDzmH2Mhe6TfYiZ/3GSAQITnuCjZgg= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8stest v0.113.0 h1:ZQ7HYLrsbbfrIYybOVDG4d1IS4PfxuZEll7lvLmcYDs= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8stest v0.113.0/go.mod h1:2/6/eY8Uvg+NfYDsAbND96A4u5q4UjcDlBJolYcj6jE= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.113.0 h1:BidrOROxYyacsUzNJyPZdvuX9VpbmFnSJXAt0yz6cXU= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.113.0/go.mod h1:TM5DUkjqHozcpjCX36f7cDv6Rv+J8ysZ52zCYAEQZCk= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.113.0 h1:V9CRl77lPG2xFPpnRf1QLiePo7FZngt+vw6M2KLdRMU= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.113.0/go.mod h1:zL+Msnlb1TEObHQ2RNnPKbVr3GhSdyI2ZqGtiSxg2/E= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.113.0 h1:SVvBEMYFwb+vq/bNg9TVHNCaiFYb79B8Ce2z0/sWBgc= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.113.0/go.mod h1:lRfw7YDJE82nmdTO14Sk5rzkFJPHyH1iAnWIkjyQgQk= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.113.0 h1:gMaV3vZTFJU/B/g/2kKjbHn+LcIIsN4MhGSHi6/ZaFk= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.113.0/go.mod h1:iES2YMgH43z6KdlWnTWiZwWY3cyAL/GJOzCEbD7nGkI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.113.0 h1:wKyHS2Vly/qhEEKYsKtRqprZko9hZd+jtmn3TAMrZZU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.113.0/go.mod h1:lFOHzTWx4ozV2x/vRWBgu7gC0rkkX6EMdQkyIxLL2zI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.113.0 h1:T3KHOKgNbWKD6gx5R2D4p3tg+0p4lIrxyf+4iy0Yxts= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.113.0/go.mod h1:VqC1uSDXtgrEuqyyJuYp7G8Sr2FY2QtP3pN9a7cTueA= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.113.0 h1:5YU2trp7n56EyDS9dEyY1UxyaW6wxB4KiyKoyjDYooo= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.113.0/go.mod h1:EBtBK1lE/HMUz51cafBLlJAXZ/2ZDRCV4C+rT04fMYM= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.113.0 h1:e2WOkaj5AWPaKTU4l+GEXGrEUbrAhQPQ7zLUdnXLGX8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.113.0/go.mod h1:x+DR/o7xddbdhpQP2QKBJkPUdrj2tl/uR1OJ/sqlrWc= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.113.0 h1:GERkhEtH3Uk8CMBzFoBmMD7fBfcrtIM9hopbQqzdvNs= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.113.0/go.mod h1:+VbefhdCgKiTXsIU6sQj9L96Ow53a8EMcUW6EMt3zTA= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.113.0 h1:Ux4k3jMTufk4HZ4RNYrqLxIt6wKEeOFAndzGWBjiUqs= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.113.0/go.mod h1:GWsSVmzpKZucOefuqqvKEUbnqGRV9OCSX2vzTjC/sbI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.113.0 h1:n44G0Quw+OQMZ+ELOo/Aw1qcwVu7LXae8GBVjVSE+HQ= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.113.0/go.mod h1:6dxGDpWsWnzC5UK3RhgfdXRC+3c8RLCO+cC+RiS+jIU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.113.0 h1:Qy0MqQQKmW9wrfduM794WKg4qjTobIdj5HDHW5FZ/P8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.113.0/go.mod h1:X25Nhlw6xhuNSd/C0FeEwmD4PGmcXDl7pa2jR0UREkU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.113.0 h1:G8w+wg4nnqBqe297fBWnjJ5Tg2OYDVEMsdWA9/3ozxQ= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.113.0/go.mod h1:m3hDVsXPQzQfeji3+hn7NYJPHDRlHhQRNd5T7N5wZqc= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.113.0 h1:mFYOvag34kGXceVj29k0ZpBUyjEX7VZq+KctUSfNiG0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.113.0/go.mod h1:54P38b2i1CgHvZLxD3EAzVccqreamGEz2U4pqy9DuHw= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.113.0 h1:vKtNSM3VQBTJx1ecf+I1iqn4kj7fKif1SpBLQ+numf8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.113.0/go.mod h1:Iw3ndTvDCbmN6uugOfIqmfb1pgCWTYg+tXXS2rr3QJo= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.113.0 h1:XzI7y1bC29bnJ9VgyA0JCws0e/rIyt7yteT5gGLe6nw= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.113.0/go.mod h1:OxdhzDFd7/cRck6LeWLF2TUC/QhwoJSUlw35NuVbvzA= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.113.0 h1:4fkpWb4wG1RWr9C5M8IbxcBwq9qGlqf5bbp3bxRXOzA= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.113.0/go.mod h1:yAl+wNAt18sGPizvODIHue12echxjpFL2SEQvUksN5M= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.113.0 h1:z8DT+vL/NfRN2hpacLIqtCMcInFrM01CY9LtoFJq+jQ= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.113.0/go.mod h1:U0wBuG6Jz+DBzcPNCmRVZaZTXqaKC+RYo4eJiSKJwwk= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.113.0 h1:VHt8tWPRPzPjl2AzO6tAd86yboX1UDDFkBm6oDVNAoI= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.113.0/go.mod h1:r5DetWqG2vclbHNAYp4a+Kg5i7ZAfcRFez5bliTLDr0= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.113.0 h1:+eYxV9vp6u8fKM+9acEJYGUa3SD1vJF776c/haougNQ= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.113.0/go.mod h1:xSVeb2A5wmIuJ9Vak9UwPCP/yN1SDd+pBKfYHROW6YE= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.113.0 h1:WN/zA6sCT4VzCA9CpRTGj6wiu17vIFozm/0yxNwKeGs= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.113.0/go.mod h1:sqWPNepjCX0+Ye++N9HwJjJ7KUAOkn4/ML/2GzrZquQ= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.113.0 h1:bloEe7hK+H95zQ5WusQwQCILjudl6ljyR4kO95+Ocuo= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.113.0/go.mod h1:/vYbT5YZ/SyKGtbBtKCI00sGUk3Xd90A2hT5iSWP8Dk= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0 h1:zDScLkNf/llyiH1cjpVv5PhJAT5AcHIXCB35zW5jsbM= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0/go.mod h1:S+GR7FZJYtFBnbjgD737QImuvm8d4+PBccpI0Xrda4E= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.113.0 h1:5cEQNFwYAn8PJ66l88lGLMSz9TYWiIUFayDwAtpJumw= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.113.0/go.mod h1:uSskqW6AAEHg/2yZ6hNo9V0OfQmM/wHP9lSNr2OSUU4= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.113.0 h1:Syf4U5GrSl2fOGXBAChHrdSvMRBhi7BFiDwKbFkNo/8= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.113.0/go.mod h1:Q9shex5tQOoK4FeVx0NvYkwu18hCPFlRnwqqQzLfbpo= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.113.0 h1:l6UiNM2jEs+kBmsNt8qg2dEZpUVc8CLsvYksa9CZRDs= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.113.0/go.mod h1:Ky2VVQfIqv9ifden+amJv3sTi3Y/9u6rNMtq8cnVECs= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.113.0 h1:vgYhhliqQ6WUy5b1BE0ILJQKTweaLDPI5l/bUIunqLo= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.113.0/go.mod h1:UG/8zqyqbdN0HHkiWC7GZW4wFL4GIyRtsshc1RY8bGo= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.113.0 h1:c4vPI/PrRPnueoaKJKzBztsASIn5yZ7BT7uc4PHR39E= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.113.0/go.mod h1:MR9VrhTtPazVAEWR/RPQln1i0Cmrc/6e2+zRpI/gwhM= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.113.0 h1:F4rPll42bwVC2tuoyG0f0LmjfoBMc5eNT0j7iDtbDXk= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.113.0/go.mod h1:GReM8iGTmB0zIH9A2vT3Ki5xP690A9RVycxB65dao38= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.113.0 h1:9b7iQMFbA1rG9DVkepxN9qilmEYG5VaVb+meTsVEKBU= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.113.0/go.mod h1:urzOE2U+Ax4Zho6VYFGOC/x1B4npKNDB6GLJ/F9k56I= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.113.0 h1:oNEV5G5m59ekwho7BaiBdUbqWMAsneE6IFkVkiZY4Yg= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.113.0/go.mod h1:tULSPMh5LZ9UJZa5QgAd7okycfM0x28AoWhtRt7DNvw= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.113.0 h1:qPUFbh7d9Ddiyky8F4by+KRUUksqMiO+gFDXGkaxevw= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.113.0/go.mod h1:e+cVHDHttCojcC8iyBcDFtfK3JWZlqaDc+WCTl5sEdo= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.113.0 h1:frNZmJqTjdGO4vkxM2LN5URbddpD+R8taOCtDz3JJiQ= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.113.0/go.mod h1:qFJOAhv+agSMdJSmsIW4QDsTWIdWo8NRZvY3OV2iWV8= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.113.0 h1:tIJu6tCPiZKK6FiBfn2ritlwMSrjwS4iNTI0u02J/ns= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.113.0/go.mod h1:cI/ZaTpiY6QDTihTwSKXgtsWXwSPr4Bpb95CjA1LO5Q= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.113.0 h1:Azx7wP6Me2iXr6h2bTqbRjtxB6HnXN9QpYECLu/eQ8I= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.113.0/go.mod h1:KezOwO7COPCsZnE8ECCrWvAywUhTZMYtJx7H36JguoQ= +github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0 h1:oA79wMjQSQBKz+X90LD5edNOyaEsewspJRBYgxliEMA= +github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0/go.mod h1:uk7Z36vhLtevNy5672jGxgzNJA2LND6wmispTuhHCxI= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.114.0 h1:quLs6NbDeG2x2eLmncaq/P4yvnCPLAelFqXac2eMRSw= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.114.0/go.mod h1:xX2v2kixYWZbFvnT5re3BGg2pyLy78KSIiMed7P2c/c= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.114.0 h1:93/S5dh3snAbC81fuGP7c+nn2OhgP59UTrXqmFtK1Ww= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.114.0/go.mod h1:fyU1pLPKcXDWkUwO075jt1YOjFS/XIZXDwHEV3xy93g= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 h1:G7SHyt5TvFSEsiaxyhZdqkjcRoK2rP5wl4a3Mu31JM4= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0/go.mod h1:TRsDReUh7ALEUutKVoLlGMRc2QECZAyT/5g/cpAr+aw= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.114.0 h1:xZL2FLnVTKqVeZQuTBSMmVLr3FQUN/N8x7VL70Gd07k= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.114.0/go.mod h1:betAqGGfDFb8SLyMYBwH9BQyB9wzxWOWXXC/Ht6/kas= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.114.0 h1:OwLYURmQGKEo9jyhlMsI3JtFLiYChZIrA2M3MxuomTY= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.114.0/go.mod h1:1UZtI+tYvVvvKkPv5NmggvPpxkQEyKaUVg2ygtCjVoQ= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.114.0 h1:aAobCSGIhUYohlzbMQdfDDtQoKlofPROL3+WSSPxz+c= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.114.0/go.mod h1:4m8sQMLNgHexFom7YEFi2khcsUUqKxEdIWgUOYKcmLI= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.114.0 h1:t59jxlv7dIF+f6SaG8V5mx/+Hxfoy4S5qlMpJlkcPo0= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.114.0/go.mod h1:HbUoZclDdXYC7L6lvh44olwDpJBIoTw9fls1bjqyMZY= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.114.0 h1:1TNrKEIfTHAhQDVzQczhReo2+Rw5q9VNCVZgq5SKq/Y= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.114.0/go.mod h1:3AzBMlWooaEO8LvLWqYQoOhqxQ+fAaUlC09sCicB91s= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.114.0 h1:FetZgJSBHH9xw1JKr3Wetek54bpVYkwJrVJJrO271vU= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.114.0/go.mod h1:QWdTwjk67PGv3AyMT+8yEQXU3laW+PMLCFE8PSewWkM= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 h1:6g5EvbygaEBqed0rJotGHcfxgxGV8hSN/4ZoZFfac5M= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0/go.mod h1:gU87iMdDAdHrQQCWTURbrlE/dLYgFecJ/+WBHuNMjQI= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.114.0 h1:mchuc816TxLpmsGvFbtGA3KBVx91vAXi7vJnlvsQdiU= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.114.0/go.mod h1:vgCMUWPVrfjNux9P9G053fRqGFF6BS3xtxNFZZdFTCM= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.114.0 h1:4qELD/ZwgvXE5PshGzJ9Eu+JEQdLIok6V1x8rvqL+yk= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.114.0/go.mod h1:3U1KoAsmQd9H37t8VkesFfB56tThrPsNVG+ddsMJ2zM= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.114.0 h1:0LbaoE7Aof8J4CVQ5kYv1QbuL3usTxLRSMFisDNBX9U= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.114.0/go.mod h1:ByoGXMLeHE/k5ELO3EITitVmvq3bh4Z/GVwWZZxrQ5s= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0 h1:d2wCLlENxH4I2axQWaogivx/5ZIjDYgn9MIf6sFxlJ4= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0/go.mod h1:Psyligv8GKL9WI3TraW3BLwkOX4TRxaaa1BBQQyICzA= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.114.0 h1:AReCF/mzq8+1BORde9m96xAZ+nnv22/B1b+H56hlFIs= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.114.0/go.mod h1:dCQeeAQww9++hvoqQ69QzTN6SGbq3DoVs1+Z1wcKAX8= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.114.0 h1:WrVBqO/ps3KvUyEhtdL/uDDHhKoszLEE1ywDbwskNRg= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.114.0/go.mod h1:JYklzR+ZxQaxjzlfJP3bxX6rQFl/Hbo0vd3yNj/1s1s= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.114.0 h1:dtW9JkkpAm33Y47estFyqEL0CW05DHGmlLQxZUSx78w= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.114.0/go.mod h1:FcClDm9XVV5tzUDzmH2Mhe6TfYiZ/3GSAQITnuCjZgg= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8stest v0.114.0 h1:Lgk9OkyDQQYWtfZ3DEyfQ+08NM4+dBO3fP0OQN10cXA= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8stest v0.114.0/go.mod h1:2/6/eY8Uvg+NfYDsAbND96A4u5q4UjcDlBJolYcj6jE= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.114.0 h1:cGJRIzB5N3oe1c8vD5HqCuy4dbQE9EDJZ9C7vJn+K8U= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.114.0/go.mod h1:p53t8aSCVoTKXVOsNx62rDLrSdEkBFB4H85yEiTWkyI= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.114.0 h1:lt87gwZaUP9Lh0EAgZFTYego0k89NU8K6Qkk82oR/n8= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.114.0/go.mod h1:nxxBsX9Z2Q7HQvybUTx8CzUvYCJewKBM1Eys6SiS0eg= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.114.0 h1:TrGpqqMJxh5fTzdu5HZORKvDiIUBK8b9K/3zUCGbjps= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.114.0/go.mod h1:mw+aVzR/3HtuGZE5xM6zEXHFv411QG8MxI8mQFJSd5c= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.114.0 h1:2uThKlp4NoQbIm7k9ZRGCKVJjMcibffb8NLcsPslq9o= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.114.0/go.mod h1:jSpHMXCxgNLBIfselixqXAUn0pXDfE5LEuNkz0WjK68= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.114.0 h1:Z+WmSDshEjfNy09A7+opWO01L5LwkZC3Ze9AgfLfuAk= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.114.0/go.mod h1:p58MQDR97vRdpY8vh6JuCqjKp0W+kpo5qHmuqhd7L00= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.114.0 h1:lvpwitQL0CDKHyExi+Wi0MPXGBjpgK5YbXljRYE6YTU= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.114.0/go.mod h1:/peNiVTNFe3osINRwW88WB0v5BC1ifjEmDL5oui+ry0= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.114.0 h1:SXi6JSSs2cWROnC1U2v3XysG3t58ilGUwoLqxpGuwFU= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.114.0/go.mod h1:LSd6sus2Jvpg3M3vM4HgmVh3/dmMtcJmTqELrFOQFRg= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.114.0 h1:G6U2eHR2CGSYb2btot6l05o+mdqsC0ZN7dH8QssXSdk= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.114.0/go.mod h1:kZQvVVzpahX8kFUfEBmzFtDhkKAQW6i8XQCMozDRUlk= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0 h1:m8uPYU2rTj0sKiYgzCvIPajD3meiYsu+nX0hplUnlEU= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0/go.mod h1:P0BaP92pXPkTyTmObfLYUoRBfMYU+i0hdS3oM1DpGJo= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0 h1:Qg80zPfNMlub7LO07VMDElOu3M2oxqdZgvvB+X72a4U= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0/go.mod h1:5qsGcjFV3WFI6J2onAlkR7Xd/8VtwJcECaDRZfW4Tb4= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0 h1:PwUMZ6fHMEUV5i9hUly+z3UujDTTdxQtWzL0rWc/lgA= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0/go.mod h1:YEHL6w4vvB9b0/lNwGjz8DyWXTF/7Xw0Hkgc3mGWwa8= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 h1:mtSN/07RGQPi1/zHVSZg4G0qRtOoJpPew5jsQWv9uS0= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0/go.mod h1:C9Zgh/N3j4NR2D+1FGAA1YizhFW9OS51DwLUFJTdXN4= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.114.0 h1:Xr3Hvm9cxOSQX94tLX1yX63uvuvtglJICrOz9YcxiuI= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.114.0/go.mod h1:cgIgmEg66RhVtAv4JkIhHdy70kn2EtVhrH8CtyvhfuI= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.114.0 h1:WymtAsFHYen4GTTTXvVqZCoMz6vPADYUf4xIP0Gvm+E= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.114.0/go.mod h1:FcTNci+LpU5x5FkHM0Su3k6/ESDHWQsL30AFISzaIyk= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.114.0 h1:eJxap/u8Q5wYnBcJTrTS1Tq6wq31SOlIr+FMJX5ZoC8= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.114.0/go.mod h1:H7uIA2RBaxit2mSwSU8Wc7QXSJX7r8UR66YvdcLmtto= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.114.0 h1:tG98F8g5T7lKYaoxSh9e76agmkauPtXiMbQhuWAeG+I= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.114.0/go.mod h1:eN3xPxPcRZH0wofEQ1Greu1c561qEGeYv5Zt0uedmMM= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.114.0 h1:xDbTY8zDUP3RKG1kg1tmULnBkLEDMwmSpf9j2H0sIcc= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.114.0/go.mod h1:t5uoTcckI8kQeW1sZl8A+1UebVJPe47Qi3WQeNZu6w4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.114.0 h1:fltPkjMuiVTtIVwoWUzbL0ad2CTCJsWfnCSDJQ9hSxU= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.114.0/go.mod h1:HcG364Is9u2EDqOUtQX0RwnbHtQqSh5+x2FdcYC+F1M= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.114.0 h1:rYwgdR8GE7QEtQlkQxXq5f1JQrd3v36g4yXXljicKoM= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.114.0/go.mod h1:TjEgPVMRxi93SdN0N0qv0hx5L+FF2csgo3YwfzVGJ3g= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.114.0 h1:QBR07Gaw6ePkufQ/AhHgBv4OlwzXlULTdiUnaKIlvLk= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.114.0/go.mod h1:coY0CV/sNj1hltRXKZr2gnrLvr7xUbnW+GhpCQpGR/Y= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.114.0 h1:ap7EK1GxLHau1jKJP8tYcZDb+tEntzx2Kj97XdNb7s4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.114.0/go.mod h1:1uyslltGfwWhG7F/t41t43dBzrZpEkFzo2hR0OmyZi4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.114.0 h1:nldvWnYvTjIDi1xmZKgS2b0vz0Ja9UMV2m7ffg/HMDk= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.114.0/go.mod h1:yRuZU0Rd/twuSQFme3WiVB7x9ECgIEwDBs2mPwkqUYY= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 h1:I4ZYVRYW3Cjb65sPENZ9kHam/JUMXNEp2n/knJ0C0Vc= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0/go.mod h1:4BhyIaOn2LS48WS+ZNix4TpP0+goq9gDEtGzth5Cr3M= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.114.0 h1:ttRj/3GIpg+vUTeBI+EBeeWdNuvBT3S/ayoqpvA9B9s= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.114.0/go.mod h1:xoJgFdZUIxlvF8eUHIYiZGmf39zAwditW3sc2SBirAo= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.114.0 h1:je7Aiyn5AHAcpCNpTN5Q4l2SIeqJEvtOjoaZhHszGrs= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.114.0/go.mod h1:cVG4aXgfQFSdSfhAgoawDmmKixogjlvqQtmjmqVJgb4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.114.0 h1:AsYYMzt+ZGGQaq3S21REATxZsUI4aOuFAOPq09tSPnI= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.114.0/go.mod h1:ifqisebKudvS+YARMbFRyX8/UgdXitSfCD1JCoGOxlY= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.114.0 h1:NrD8Qo2CxrHRAlLuOHm75RtO1xEnul6DDkn6tQMsuSg= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.114.0/go.mod h1:XOlJzIYwicEPMxu6Gv9TL9pS6El+ffjQOAu/wPiL+Jg= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0 h1:lKG7Ghtba2l9P4FFP7I+SbVRqHEpXCGOZs367YTEwGc= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0/go.mod h1:5U/lrnkK5YtIeTFXI8OzDN/d827WtI6pQvu7/59pUVA= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.114.0 h1:Ivu3DRhbERboPxMJeyJpmretbKDJ3hsOAGBQXt2yY3U= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.114.0/go.mod h1:UrMGrA8bA1VeYhdiam7/Xu/U4joG6JftMULEVWLDbe0= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.114.0 h1:Yx0RUwviLdYyozkuqbfpEhSH+ehXlKsW5TtlZbiKm4Q= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.114.0/go.mod h1:Bh9h5hYTgr/zQgXUnvihkLvN1IMmVY/OFa8aHc3gMJU= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.114.0 h1:kSxkZPWBA6je7xXkpMWycjyc2BIMvLGD+OGTIRtJ0xw= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.114.0/go.mod h1:rBegsrFk6WSDU4v9TiOvH3h7xintiOhPq9qd+72SlK8= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.114.0 h1:1NeG/cgiqBMWQJxFvWQmWo9BVj3k4uOvEK0o++BFINY= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.114.0/go.mod h1:skPwfv1xYwB5onG9sj31J4OYUxx6p+wc40aogGy+nVE= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 h1:gdljk66vBTT3lWfSdP4Hl7FaABdH1YPhUCH6jnG2+qY= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0/go.mod h1:T1p6ShTr8farkE4qUB2TyGUIvRSN3s17D0qY7rMqCRM= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.114.0 h1:PwaceYEl50C1OK5MxpH95hnn58CNRzINP2p5YvluZj4= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.114.0/go.mod h1:FrJqdSI+4QuU/w9XtoW9d1Ywp09u2cYaPUOZFqzDtNY= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.114.0 h1:E686MeQcQ+a3Q47A/xAc3Nk6Qdz8wHcBLMJ3Y8bNKi0= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.114.0/go.mod h1:zkQAapuNRobj7GY8kKRal+2EYkAMWmZ1KMysUrQI48A= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= @@ -880,8 +880,8 @@ github.com/tidwall/tinylru v1.1.0 h1:XY6IUfzVTU9rpwdhKUF6nQdChgCdGjkMfLzbWyiau6I github.com/tidwall/tinylru v1.1.0/go.mod h1:3+bX+TJ2baOLMWTnlyNWHh4QMnFyARg2TLTQ6OFbzw8= github.com/tidwall/wal v1.1.7 h1:emc1TRjIVsdKKSnpwGBAcsAGg0767SvUk8+ygx7Bb+4= github.com/tidwall/wal v1.1.7/go.mod h1:r6lR1j27W9EPalgHiB7zLJDYu3mzW5BQP5KrzBpYY/E= -github.com/tinylib/msgp v1.2.3 h1:6ryR/GnmkqptS/HSe6JylgoKASyBKefBQnvIesnyiV4= -github.com/tinylib/msgp v1.2.3/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= +github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU= +github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= @@ -910,134 +910,140 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/collector v0.113.0 h1:dBuo2/OKBhoMCR86W4fFJLXGQ0gJfKRmi65AZwFkU2I= -go.opentelemetry.io/collector v0.113.0/go.mod h1:XbjD4Yw9LunLo3IJu3ZZytNZ0drEVznxw1Z14Ujlw3s= -go.opentelemetry.io/collector/client v1.19.0 h1:TUal8WV1agTrZStgE7BJ8ZC0IHLGtrfgO9ogU9t1mv8= -go.opentelemetry.io/collector/client v1.19.0/go.mod h1:jgiXMEM6l8L2QEyf2I/M47Zd8+G7e4z+6H8q5SkHOlQ= -go.opentelemetry.io/collector/component v0.113.0 h1:/nx+RvZgxUEXP+YcTj69rEtuSEGkfaCyp/ad5zQGLjU= -go.opentelemetry.io/collector/component v0.113.0/go.mod h1:2T779hIGHU9i7xbXbV3q1/JnRw2FyzUYXW2vq47A6EU= -go.opentelemetry.io/collector/component/componentstatus v0.113.0 h1:iNlUi+vDo7OqQwg4UOjfqqY3Xram4SkdcSZAyxt6QfE= -go.opentelemetry.io/collector/component/componentstatus v0.113.0/go.mod h1:NF/hVnP0kcsEqV9x14yMxN9GoehuOaVgMpO+s2KE+28= -go.opentelemetry.io/collector/config/configauth v0.113.0 h1:CBz43fGpN41MwLdwe3mw/XVSIDvGRMT8aaaPuqKukTU= -go.opentelemetry.io/collector/config/configauth v0.113.0/go.mod h1:Q8SlxrIvL3FJO51hXa4n9ARvox04lK8mmpjf4b3UNAU= -go.opentelemetry.io/collector/config/configcompression v1.19.0 h1:bTSjTLhnPXX1NSFM6GzguEM/NBe8QUPsXHc9kMOAJzE= -go.opentelemetry.io/collector/config/configcompression v1.19.0/go.mod h1:pnxkFCLUZLKWzYJvfSwZnPrnm0twX14CYj2ADth5xiU= -go.opentelemetry.io/collector/config/configgrpc v0.113.0 h1:rNbRd033JlIeU+TH+3bEt4OwRlEwrktWdf6V+VUJUPk= -go.opentelemetry.io/collector/config/configgrpc v0.113.0/go.mod h1:InXxPUj1oxJ57Sl954d2tQxXTgVHhfppFYjMwGjQukg= -go.opentelemetry.io/collector/config/confighttp v0.113.0 h1:a6iO0y1ZM5CPDvwbryzU+GpqAtAQ3eSfNseoAUogw7c= -go.opentelemetry.io/collector/config/confighttp v0.113.0/go.mod h1:JZ9EwoiWMIrXt5v+d/q54TeUhPdAoLDimSEqTtddW6E= -go.opentelemetry.io/collector/config/confignet v1.19.0 h1:gEDTd8zLx4pPpG5///XPRpbYUpvKsuQzDdM5IEULY9w= -go.opentelemetry.io/collector/config/confignet v1.19.0/go.mod h1:o3v4joAEjvLwntqexg5ixMqRrU1+Vst+jWuCUaBNgOg= -go.opentelemetry.io/collector/config/configopaque v1.19.0 h1:7uvntQeAAtqCaeiS2dDGrT1wLPhWvDlEsD3SliA/koQ= -go.opentelemetry.io/collector/config/configopaque v1.19.0/go.mod h1:6zlLIyOoRpJJ+0bEKrlZOZon3rOp5Jrz9fMdR4twOS4= -go.opentelemetry.io/collector/config/configretry v1.19.0 h1:DEg8PXpo4ahMYgMzZZUU2cPcDF4vqowZlvimJ/t9InY= -go.opentelemetry.io/collector/config/configretry v1.19.0/go.mod h1:KvQF5cfphq1rQm1dKR4eLDNQYw6iI2fY72NMZVa+0N0= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0 h1:hweTRrVddnUeA3k7HzRY4oUR9lRdMa7of3mHNUS5YyA= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/config/configtls v1.19.0 h1:GQ/cF1hgNqHVBq2oSSrOFXxVCyMDyd5kq4R/RMEbL98= -go.opentelemetry.io/collector/config/configtls v1.19.0/go.mod h1:1hyqnYB3JqEUlk1ME/s9HYz4oCRcxQCRxsJitFFT/cA= -go.opentelemetry.io/collector/config/internal v0.113.0 h1:9RAzH8v7ItFT1npHpvP0SvUzBHcZDliCGRo9Spp6v7c= -go.opentelemetry.io/collector/config/internal v0.113.0/go.mod h1:yC7E4h1Uj0SubxcFImh6OvBHFTjMh99+A5PuyIgDWqc= -go.opentelemetry.io/collector/confmap v1.19.0 h1:TQ0lZpAKqgsE0EKk+u4JA+uBbPYeFRmWP3GH43w40CY= -go.opentelemetry.io/collector/confmap v1.19.0/go.mod h1:GgNu1ElPGmLn9govqIfjaopvdspw4PJ9KeDtWC4E2Q4= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.19.0 h1:f8O/I5pVRN86Gx5mHekNx92S6fGdOS4VcooRJKWe6Bs= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.19.0/go.mod h1:AiaW5YW1LD0/WlZuc8eZuZPBH6PA9QqsiAYRX1iC6T0= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.19.0 h1:TYwyk4ea3U+5MYcEjrzZAaonBcLlabQu8CZeB7ekAYY= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.19.0/go.mod h1:i3mL4OSGI5JM0hnzHujhJK+LDlvO3XrJxBsuclfU/jY= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.19.0 h1:a077jcs3DVtaVdmgmCk3x4rRYuTkIqMDsoUc+VICHZk= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.19.0/go.mod h1:HjYkzhHbwUacv27nq0JLsslGpbtrXyyfU30Oc72AWLU= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.19.0 h1:oV66DKiEdAt8EMZqGSChK2iEOxjrVaWRhf4OqqmqjbM= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.19.0/go.mod h1:jtNUdO6i1k38BG7vFst+d1jk/N+c419uVR8HB4J0VjI= -go.opentelemetry.io/collector/connector v0.113.0 h1:ii+s1CjsLxtglqRlFs6tv8UU/uX45dyN9lbTRbR0p8g= -go.opentelemetry.io/collector/connector v0.113.0/go.mod h1:KmA8eQouTVxVk65Bf6utuMjWovMuOvNVRcYV60CAGtc= -go.opentelemetry.io/collector/connector/connectorprofiles v0.113.0 h1:yAEKTxVGpBtHrrXeZFrBcVOQkduxCncH0o4hqKrDRyw= -go.opentelemetry.io/collector/connector/connectorprofiles v0.113.0/go.mod h1:+mwzwIZ1cEK29ByfC38uF8hmFO8Wf9ShT1c756XX+RI= -go.opentelemetry.io/collector/connector/connectortest v0.113.0 h1:WHekoL0izkrKLVQLv79v0QhqfnXkVcw0sgdF07EqWLM= -go.opentelemetry.io/collector/connector/connectortest v0.113.0/go.mod h1:KouywNfkxRf+yzbI2pdolzTLkLoCV4ASEI2o2pDt+Cg= -go.opentelemetry.io/collector/consumer v0.113.0 h1:KJSiK5vSIY9dgPxwKfQ3gOgKtQsqc+7IB7mGhUAL5c8= -go.opentelemetry.io/collector/consumer v0.113.0/go.mod h1:zHMlXYFaJlZoLCBR6UwWoyXZ/adcO1u2ydqUal3VmYU= -go.opentelemetry.io/collector/consumer/consumererror v0.113.0 h1:Hd2N7n9RKbnKRaVrdw6fPBoQko5zZIgCxwVxkL6SAIE= -go.opentelemetry.io/collector/consumer/consumererror v0.113.0/go.mod h1:o0MAGFdzcr7LFTUQ6iivPPhbVmn2ZVIYm3FPXk2+JUo= -go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.113.0 h1:2kLIt+6dGmhCd48CWXh3IEon/uW4+c8y81IGCA/h8wE= -go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.113.0/go.mod h1:/eESy7Ifyf7G6r6WUpEOq2tnfjIJ2QNB2EvZcEu0aWA= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0 h1:RftAcQUY5UOfbEK4s16jnORqTx16y9+PxA1lQwt98cQ= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0/go.mod h1:ZuHrQ4pWguh6dw0DgTfcUtdY/T+cnOJJNP6LMbm5Y5A= -go.opentelemetry.io/collector/consumer/consumertest v0.113.0 h1:ua2AjNx3DUA8qElXNkggB4w3VDL/rBKBvryOQkhumH8= -go.opentelemetry.io/collector/consumer/consumertest v0.113.0/go.mod h1:vK8o4ZTZSiG3rVyqxZcCNmT/cvEfx34ig7V65L9+6Rg= -go.opentelemetry.io/collector/exporter v0.113.0 h1:lDZJ6xfuhyLsT/7lqLhIN/ftA6G+9fuYFtubPFvNDxo= -go.opentelemetry.io/collector/exporter v0.113.0/go.mod h1:0W4NBf5NjWYxR8oJodmOybgN4O0MLazdJwwHevirvXg= -go.opentelemetry.io/collector/exporter/debugexporter v0.113.0 h1:iShn3SuSpx78YLgl7fQCJsHLs7z0RDtbN58/Amoy5xc= -go.opentelemetry.io/collector/exporter/debugexporter v0.113.0/go.mod h1:O1dLnYA81a+ZecBD89vjZSBgkAnhnfXwsmYsE7LP2/s= -go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.113.0 h1:Auz2vZYReIlyDvJ162OCO8XcV7L2BIbFb5HJWxerc5A= -go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.113.0/go.mod h1:JQuawcAfDuzNneDF5Ep1CZJ5snsLp6Bh1gZcHhja7yU= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0 h1:8bsk3wYYNr+WAM5nZkFjiLYSTH9MsY2tm7nUpMWt3qc= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0/go.mod h1:/HFWF846XePYL/qKDtcEAFgkiGSkLUTaC59A5F48axM= -go.opentelemetry.io/collector/exporter/exportertest v0.113.0 h1:U6cRxjJS7td8iNriUI2QfEdH+Yj60ytyvpmnmKTw0+8= -go.opentelemetry.io/collector/exporter/exportertest v0.113.0/go.mod h1:SRz5jGyAjtNiWwJ93B1+Ndk1p3oFtQsyLw52UGeyRwc= -go.opentelemetry.io/collector/exporter/nopexporter v0.113.0 h1:DClFr8PNUc+f8fciNK3Sdj+ydCgZRc2zVk+1WCLyPfU= -go.opentelemetry.io/collector/exporter/nopexporter v0.113.0/go.mod h1:RGn9QUUOldcD19yKyg5e6dBjy/o//RaWGOhkS6azhqo= -go.opentelemetry.io/collector/exporter/otlpexporter v0.113.0 h1://7diunG5SohqaYfqvHzCtcfrY7y3WQj0vklFYgeNW4= -go.opentelemetry.io/collector/exporter/otlpexporter v0.113.0/go.mod h1:THF0eq4lA6dYOho53iKFCBOv91HEeISZyep5dXr+fBU= -go.opentelemetry.io/collector/exporter/otlphttpexporter v0.113.0 h1:22Srn4V6ogOdi4Bn6eKtKqAidWyjPkYKYDR3Xq91nFY= -go.opentelemetry.io/collector/exporter/otlphttpexporter v0.113.0/go.mod h1:BRA54WRyPS9RYDIUEGxxJvxJ/uZ66++bCFPHliDstCQ= -go.opentelemetry.io/collector/extension v0.113.0 h1:Vp/YSL8ZCkJQrP1lf2Bm5yaTvcp6ROO3AnfuSL3GEXM= -go.opentelemetry.io/collector/extension v0.113.0/go.mod h1:Pwp0TNqdHeER4V1I6H6oCvrto/riiOAqs3737BWCnjw= -go.opentelemetry.io/collector/extension/auth v0.113.0 h1:4ggRy1vepOabUiCWfU+6M9P/ftXojMUNAvBpeLihYj8= -go.opentelemetry.io/collector/extension/auth v0.113.0/go.mod h1:VbvAm2YZAqePkWgwn0m0vBaq3aC49CxPVwHmrJ24aeQ= -go.opentelemetry.io/collector/extension/experimental/storage v0.113.0 h1:Qq4IaB6bMUrf/bWoPZ5ESWywCt+vDi8I/ChYejIEPcc= -go.opentelemetry.io/collector/extension/experimental/storage v0.113.0/go.mod h1:BRmo+A7f06u/rhyLauU/Vogk+QRN0y1j2VVVgMGWrfQ= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.113.0 h1:GuJzpnrJtsMrKWGmb1VL4EqL6x1HDtZmtvy3yEjth6Y= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.113.0/go.mod h1:oa72qndu7nAfEeEpDyDi9qLcaSJGIscLc/eeojFADx0= -go.opentelemetry.io/collector/extension/zpagesextension v0.113.0 h1:b/Clxso9uVwLVYjvRQ1NGBWHpUEZ/++uA5sJbBj0ryo= -go.opentelemetry.io/collector/extension/zpagesextension v0.113.0/go.mod h1:5csGYy9Ydfy6Hpw3Tod864P6HUEZpA6UiuPJPG3TjSU= -go.opentelemetry.io/collector/featuregate v1.19.0 h1:ASea2sU+tdpKI3RxIJC/pufDAfwAmrvcQ4EmTHVu0B0= -go.opentelemetry.io/collector/featuregate v1.19.0/go.mod h1:47xrISO71vJ83LSMm8+yIDsUbKktUp48Ovt7RR6VbRs= -go.opentelemetry.io/collector/filter v0.113.0 h1:5ODwM8QEOzZq08H8DJilBa4PHieXpBreJVKZ0D2YshA= -go.opentelemetry.io/collector/filter v0.113.0/go.mod h1:Mh3N6cpVijdamUJj1tAgSU1RG/Ek4FuY2ODKYxKZDtk= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.113.0 h1:Beu2zAN6/EDXQ6hMFU6FT1BsnU5FXmWNOlfTAhrgbGc= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.113.0/go.mod h1:WUXbc4L6KJ3SpmsxBgId0OYzRDuS7n274kNpqrgnSmY= -go.opentelemetry.io/collector/internal/memorylimiter v0.113.0 h1:qe3xZYB4BgSuPDgFMQbcJ5gDy8t+S1vt6pL+OKrdx9E= -go.opentelemetry.io/collector/internal/memorylimiter v0.113.0/go.mod h1:Eo/XZsFPS1mo0DHnAaVeyPNFn3HKVXB2nog++b3CnRc= -go.opentelemetry.io/collector/internal/sharedcomponent v0.113.0 h1:a4gT+t+rboCaH70anhu+ZQp9IJ7UjVeZxZJvxTBgCqU= -go.opentelemetry.io/collector/internal/sharedcomponent v0.113.0/go.mod h1:6WDDyjI4pbtfUmtv/JKLs7OwieEEvaDVb3Zcc4oA9Vg= -go.opentelemetry.io/collector/otelcol v0.113.0 h1:t32gA8Pg9lsqYQml4mgvHdqFSsjvPZMvGywi0zXQYjk= -go.opentelemetry.io/collector/otelcol v0.113.0/go.mod h1:PV6pDLPEaulRs3ceWYNEDuG5100F35I5VzeC2ekT/vY= -go.opentelemetry.io/collector/otelcol/otelcoltest v0.113.0 h1:bfu9oQQbO6KEcpgh7muc1ixsGQs+qFWwi9LyabGILqw= -go.opentelemetry.io/collector/otelcol/otelcoltest v0.113.0/go.mod h1:0bag/J2REbnIKKKHvYe0RqyjmsUv4OJH14kNef+lD4Q= -go.opentelemetry.io/collector/pdata v1.19.0 h1:jmnU5R8TOCbwRr4B8sjdRxM7L5WnEKlQWX1dtLYxIbE= -go.opentelemetry.io/collector/pdata v1.19.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/pdata/pprofile v0.113.0 h1:VRf4p0VhfuaR+Epy/nMIlu/9t39WU9CUgHVUvpuGxfU= -go.opentelemetry.io/collector/pdata/pprofile v0.113.0/go.mod h1:5aDejksdXh5PdJN/OhpzATGT3kbNL0RMmw2Q0Q6E/o0= -go.opentelemetry.io/collector/pdata/testdata v0.113.0 h1:vRfn85jicO2F4eOTgsWtzmU/K3E/uZUtM1HEefvvJD8= -go.opentelemetry.io/collector/pdata/testdata v0.113.0/go.mod h1:sR+6eR+YEJhYZu9StbqzeWcCmHpfBAgX/qjP82HY9Gw= -go.opentelemetry.io/collector/pipeline v0.113.0 h1:vSRzRe3717jV0btCNPhVkhg2lu0uFxcm2VO+vhad/eE= -go.opentelemetry.io/collector/pipeline v0.113.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= -go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.113.0 h1:PwQnErsLvEd1x6VIyjLmKQot9huKWqIfEz1kd+8aj4k= -go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.113.0/go.mod h1:tChJYsCG3wc6JPT9aJO3y+32V14NhmCFZOh3k5ORGdQ= -go.opentelemetry.io/collector/processor v0.113.0 h1:BQI6MsKtiCG9HT/nmiRXTKP6SZFrjFKVfM6pTQfbc0k= -go.opentelemetry.io/collector/processor v0.113.0/go.mod h1:oX91zMI8ZkoaYSUfUYflHiMiiBJPKtODNBUCrETLLd8= -go.opentelemetry.io/collector/processor/batchprocessor v0.113.0 h1:LPNbVILg+cKTFIi8ziIa2idZ5MRlBIf4Wr72gZNgXb0= -go.opentelemetry.io/collector/processor/batchprocessor v0.113.0/go.mod h1:tCg+B/1idJS5inxod+nRPXFdVi89Bsnl6RvzIOO9k5I= -go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.113.0 h1:3/5z0Pe/yduwF0DSpytW2+mwDA5JaIL/w6vfNYy5KzQ= -go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.113.0/go.mod h1:h3wIlqMtJGIDKttjMJBo6J4dHU/Mi6+bKSxvRVUpsXs= -go.opentelemetry.io/collector/processor/processorprofiles v0.113.0 h1:cczN6whdrCWww3T0FBV3U7lsVKQmkWDX05M+9lANHgk= -go.opentelemetry.io/collector/processor/processorprofiles v0.113.0/go.mod h1:4Dmx5qsvujgJ+MC+KqWI7UDVM2liXa3sH/9XnGiL9aE= -go.opentelemetry.io/collector/processor/processortest v0.113.0 h1:jGoDJ+tDCzuDcAWZeshQtnK/DQAvMKd4wZAIDgAM5aA= -go.opentelemetry.io/collector/processor/processortest v0.113.0/go.mod h1:tNg04r5KlpVx774jSC8U/oYst1eb7WIiz+0AjXKJ0Uw= -go.opentelemetry.io/collector/receiver v0.113.0 h1:vraAbkPy8Pz9x5X39gV+j9t6x23PNsY2aJ6gQMugRbQ= -go.opentelemetry.io/collector/receiver v0.113.0/go.mod h1:IUa8/lNw8Qh4L5Q3jOeRWKW0ebQPoNcfhytxN5Puq2A= -go.opentelemetry.io/collector/receiver/nopreceiver v0.113.0 h1:Kgan6/DCH1YZzOztXPPair+V2czPmrJxxrIIxLVYmn4= -go.opentelemetry.io/collector/receiver/nopreceiver v0.113.0/go.mod h1:1nVoRLC/antEw4gvcyaRBT3aBt7nh3KBASWLLhmm0Ts= -go.opentelemetry.io/collector/receiver/otlpreceiver v0.113.0 h1:yhnj8kmh1IQ4g6fIWvhum/wYPUU2WmRpQuy1iSvf4e4= -go.opentelemetry.io/collector/receiver/otlpreceiver v0.113.0/go.mod h1:3OB+oJlOb1rlLLdBwxae4g2Qh5C97Eg17HVveIddUCw= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0 h1:uVxuzjGe2t1sbwahSBowVHYnGzpzn8brmfn8z1UHvQg= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0/go.mod h1:khKDkzYJR2x2OPUqGSmoSncdINT9lUE5IThiHPDbqZk= -go.opentelemetry.io/collector/receiver/receivertest v0.113.0 h1:0vOvz3S4Q/KwcNCS9C7zPo0uxD6RSWktG88yGdxfV6g= -go.opentelemetry.io/collector/receiver/receivertest v0.113.0/go.mod h1:sRq5ctm5UE/0Ar562wnCVQ1zbAie/D127D1WbtbEuEc= -go.opentelemetry.io/collector/semconv v0.113.0 h1:twenSI7M7MJMJKW8D6a/GXxPZTPbama/weywBtV2iFw= -go.opentelemetry.io/collector/semconv v0.113.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= -go.opentelemetry.io/collector/service v0.113.0 h1:SFT+kWuj9TehC34MLEWfXH6QocGl3MYqLJ7UbxZtWzM= -go.opentelemetry.io/collector/service v0.113.0/go.mod h1:6+JY80Yd4J4RWpvRmpCUUZFOZKGVs9a1QKCKPlDrKfs= +go.opentelemetry.io/collector v0.114.0 h1:XLLLOHns06P9XjVHyp0OdEMdwXvol5MLzugqQMmXYuU= +go.opentelemetry.io/collector v0.114.0/go.mod h1:XbjD4Yw9LunLo3IJu3ZZytNZ0drEVznxw1Z14Ujlw3s= +go.opentelemetry.io/collector/client v1.20.0 h1:o60wPcj5nLtaRenF+1E5p4QXFS3TDL6vHlw+GOon3rg= +go.opentelemetry.io/collector/client v1.20.0/go.mod h1:6aqkszco9FaLWCxyJEVam6PP7cUa8mPRIXeS5eZGj0U= +go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= +go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= +go.opentelemetry.io/collector/component/componentstatus v0.114.0 h1:y9my/xink8KB5lK8zFAjgB2+pEh0QYy5TM972fxZY9w= +go.opentelemetry.io/collector/component/componentstatus v0.114.0/go.mod h1:RIoeCYZpPaae7QLE/1RacqzhHuXBmzRAk9H/EwYtIIs= +go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= +go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= +go.opentelemetry.io/collector/config/configauth v0.114.0 h1:R2sJ6xpsLYGH0yU0vCxotzBYDKR/Hrjv0A7y9lwMyiw= +go.opentelemetry.io/collector/config/configauth v0.114.0/go.mod h1:3Z24KcCpG+WYCeQYfs/cNp5cP2BDeOqLCtOEgs/rPqM= +go.opentelemetry.io/collector/config/configcompression v1.20.0 h1:H/mvz7J/5z+O74YsO0t2tk+REnO2tzLM8TgIQ4AZ5w0= +go.opentelemetry.io/collector/config/configcompression v1.20.0/go.mod h1:pnxkFCLUZLKWzYJvfSwZnPrnm0twX14CYj2ADth5xiU= +go.opentelemetry.io/collector/config/configgrpc v0.114.0 h1:3kGI9CljNtzClF+9sg7NWZ5qUoy4qZvGxv9q3phDn7k= +go.opentelemetry.io/collector/config/configgrpc v0.114.0/go.mod h1:IHSyqSdjPXW34aif/8BhNlXxRcIVV6026jVi0/+ituY= +go.opentelemetry.io/collector/config/confighttp v0.114.0 h1:DjGsBvVm+mGK3IpJBaXianWhwcxEC1fF33cpuC1LY/I= +go.opentelemetry.io/collector/config/confighttp v0.114.0/go.mod h1:nrlNLxOZ+4JQaV9j0TiqQV7LOHhrRivPrT8nQRHED3Q= +go.opentelemetry.io/collector/config/confignet v1.20.0 h1:LrM6AuiY8N/woTP4SWhL2V0562JXwJs9MRNFZJFLtRY= +go.opentelemetry.io/collector/config/confignet v1.20.0/go.mod h1:o3v4joAEjvLwntqexg5ixMqRrU1+Vst+jWuCUaBNgOg= +go.opentelemetry.io/collector/config/configopaque v1.20.0 h1:2I48zKiyyyYqjm7y0B9OLp24ku2ZSX3nCHG0r5FdWOQ= +go.opentelemetry.io/collector/config/configopaque v1.20.0/go.mod h1:6zlLIyOoRpJJ+0bEKrlZOZon3rOp5Jrz9fMdR4twOS4= +go.opentelemetry.io/collector/config/configretry v1.20.0 h1:z679mrMlW2a6tOOYPGdrS/QfALxdzWLQUOpH8Uu+D5Y= +go.opentelemetry.io/collector/config/configretry v1.20.0/go.mod h1:KvQF5cfphq1rQm1dKR4eLDNQYw6iI2fY72NMZVa+0N0= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= +go.opentelemetry.io/collector/config/configtls v1.20.0 h1:hNlJdwfyY5Qe54RLJ41lfLqKTn9ypkR7sk7JNCcSe2U= +go.opentelemetry.io/collector/config/configtls v1.20.0/go.mod h1:sav/txSHguadTYlSSK+BJO2ljJeYEtRoBahgzWAguYg= +go.opentelemetry.io/collector/config/internal v0.114.0 h1:uWSDWTJb8T6xRjKD9/XmEARakXnxgYVYKUeId78hErc= +go.opentelemetry.io/collector/config/internal v0.114.0/go.mod h1:yC7E4h1Uj0SubxcFImh6OvBHFTjMh99+A5PuyIgDWqc= +go.opentelemetry.io/collector/confmap v1.20.0 h1:ARfOwmkKxFOud1njl03yAHQ30+uenlzqCO6LBYamDTE= +go.opentelemetry.io/collector/confmap v1.20.0/go.mod h1:DMpd9Ay/ffls3JoQBQ73vWeRsz1rNuLbwjo6WtjSQus= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0 h1:I3xDecFXJVZBo5zJS7Y5SWBjF22XDWGZJgwotiwA5QM= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0/go.mod h1:CF0l8V8MNv+Wag8UkqObotFnlhMzdTFuk4/6kylKwYU= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0 h1:wWxvQ7wj+1O9yDGM5m1HPEz8FJewAHAUWadAAi0KVbM= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0/go.mod h1:/5HWIPjGYk8IUurs1CZUSjGaSsaQyJsfR8+Zs5rGJ6Y= +go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0 h1:YS1nB8vDoCS8IlfX5OP3QGS90y/hfflwZ7CoPQcAOlU= +go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0/go.mod h1:aV4UfkgcJ3eyXvfd3m694omN++1c96Joitab+YL6Xks= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0 h1:jSXTojCPI6Xr98m99nF7qbQFnw3INLEOHRcqcHS+lak= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0/go.mod h1:Pu95O2JE3R+0BBTbe4gpAC8ms3w6FbICHJw3WvGWrjs= +go.opentelemetry.io/collector/connector v0.114.0 h1:efGAeTCtg8zp5Hyd7Am8kBUgsSxWEFlFtAu4OX4mcEA= +go.opentelemetry.io/collector/connector v0.114.0/go.mod h1:8DhGgD8RhkF0ooELl4NOPPD/wgHuXHmY7g90RwJ2eNo= +go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0 h1:uVs9gy3UfQBmH0636ouIbGIoWis7zmKN+ny4XOGm36U= +go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0/go.mod h1:X681qFEAsEPMDQ0pMsD/3DqePw58sfLew1QbBKvGnmw= +go.opentelemetry.io/collector/connector/connectortest v0.114.0 h1:Fpy1JHyNOLdVzNcmxUY6Jwxdz6JDcTXL1NCfw8k1AOc= +go.opentelemetry.io/collector/connector/connectortest v0.114.0/go.mod h1:1zaAlODuL9iNyfyjHQeGCpbcaUjf5b68t8LqlwHKBNA= +go.opentelemetry.io/collector/consumer v0.114.0 h1:1zVaHvfIZowGwZRitRBRo3i+RP2StlU+GClYiofSw0Q= +go.opentelemetry.io/collector/consumer v0.114.0/go.mod h1:d+Mrzt9hsH1ub3zmwSlnQVPLeTYir4Mgo7CrWfnncN4= +go.opentelemetry.io/collector/consumer/consumererror v0.114.0 h1:r2YiELfWerb40FHD23V04gNjIkLUcjEKGxI4Vtm2iO4= +go.opentelemetry.io/collector/consumer/consumererror v0.114.0/go.mod h1:MzIrLQ5jptO2egypolhlAbZsWZr29WC4FhSxQjnxcvg= +go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.114.0 h1:0IpwQXyHDXhIaLA6w2VlD6Ca0iuX4wlfCDiF+BKCwEo= +go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.114.0/go.mod h1:9pKeVRcCT92x5/UIULMLAop+J23VYJCWSZcVhmbup5I= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 h1:5pXYy3E6UK5Huu3aQbsYL8B6E6MyWx4fvXXDn+oXZaA= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0/go.mod h1:PMq3f54KcJQO4v1tue0QxQScu7REFVADlXxXSAYMiN0= +go.opentelemetry.io/collector/consumer/consumertest v0.114.0 h1:isaTwJK5DOy8Bs7GuLq23ejfgj8gLIo5dOUvkRnLF4g= +go.opentelemetry.io/collector/consumer/consumertest v0.114.0/go.mod h1:GNeLPkfRPdh06n/Rv1UKa/cAtCKjN0a7ADyHjIj4HFE= +go.opentelemetry.io/collector/exporter v0.114.0 h1:5/0BBpXuCJQSQ5SQf31g7j6T4XEKkyx9mZMcA2rS5e8= +go.opentelemetry.io/collector/exporter v0.114.0/go.mod h1:atpd0wWXgh5LAZ0REU/d/Ti/q50HDfnlBIjMjJQlKFg= +go.opentelemetry.io/collector/exporter/debugexporter v0.114.0 h1:7t1ij8fuV510SRT+eabgbl4973DaAtGmTx0RuGJy8DU= +go.opentelemetry.io/collector/exporter/debugexporter v0.114.0/go.mod h1:rC8PHnf1MniZN4ryU4i5GsyXKRkMEGwEGF2hxHx/JyU= +go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.114.0 h1:W/KsD33oMg/M7Kd5/m2riliWrTg3W9IgQVNeZL3cZjs= +go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.114.0/go.mod h1:Fh47qYBjX+jm+mpWBcqmaaQucZ6KiKm5P0drEt+xNRc= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 h1:/wmWOSBHcvtz3Pbv7+rWCqPPQuNvYaoidKKaOqZsLKs= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0/go.mod h1:epRYTkyJZTSQZBJflMGHUyUo2EdLPhsaZEyo5Qm848A= +go.opentelemetry.io/collector/exporter/exportertest v0.114.0 h1:vo0idBJT+QACSM1KpjVLm9VeiXVwO7y4UnMpGxN6EyM= +go.opentelemetry.io/collector/exporter/exportertest v0.114.0/go.mod h1:420ssFrhaphneybstbMeSIiqSRoaBARPgO71O17foaM= +go.opentelemetry.io/collector/exporter/nopexporter v0.114.0 h1:uMtQQjkAK62tzy2Rs/KCgRofNW7uo0EgU5xn3xmgB2w= +go.opentelemetry.io/collector/exporter/nopexporter v0.114.0/go.mod h1:jV9/E7Twphys1df6m7HgvqgJXpmppxFJb/DYy3XLR94= +go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0 h1:SC/xZNCB/eCVflrhDFX4WtrpvBPsZhmXVuSvgHQBsB8= +go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0/go.mod h1:q1273aUuYewtDUFwizv0AKu5/D+gbQAi8UFLKDv1eMk= +go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0 h1:+nPJraioPpLS2Kj3+YIfErDDFHsLX/5oPMSMAYKoggM= +go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0/go.mod h1:O+75KYmyJwK61VDsW7LHo2qFFXCTf3kEJH3ZvW1bb4Y= +go.opentelemetry.io/collector/extension v0.114.0 h1:9Qb92y8hD2WDC5aMDoj4JNQN+/5BQYJWPUPzLXX+iGw= +go.opentelemetry.io/collector/extension v0.114.0/go.mod h1:Yk2/1ptVgfTr12t+22v93nYJpioP14pURv2YercSzU0= +go.opentelemetry.io/collector/extension/auth v0.114.0 h1:1K2qh4yvG8kKR/sTAobI/rw5VxzPZoKcl3FmC195vvo= +go.opentelemetry.io/collector/extension/auth v0.114.0/go.mod h1:IjtsG+jUVJB0utKF8dAK8pLutRun3aEgASshImzsw/U= +go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 h1:hLyX9UvmY0t6iBnk3CqvyNck2U0QjPACekj7pDRx2hA= +go.opentelemetry.io/collector/extension/experimental/storage v0.114.0/go.mod h1:WqYRQVJjJLE1rm+y/ks1wPdPRGWePEvE1VO07xm2J2k= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0 h1:3OHll7gp5XIu7FVgon+koShPy797nze6EjCDokFUG7w= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0/go.mod h1:f0KdeLmE2jWVBmJ1U4WmfAtz1/tQUErGPfhPLKCQ49U= +go.opentelemetry.io/collector/extension/extensiontest v0.114.0 h1:ibXDms1qrswlvlR6b3d2BeyI8sXUXoFV11yOi9Sop8o= +go.opentelemetry.io/collector/extension/extensiontest v0.114.0/go.mod h1:/bOYmqu5yTDfI1bJZUxFqm8ZtmcodpquebiSxiQxtDY= +go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 h1:JosqAcdWw7IGsURJNR8f17xmaGCQEtKhQt9tM0T/DEg= +go.opentelemetry.io/collector/extension/zpagesextension v0.114.0/go.mod h1:+VO4p2GZvmIMqCVyIfS/U85Xqg+HIOe+mdl/ya+jVTE= +go.opentelemetry.io/collector/featuregate v1.20.0 h1:Mi7nMy/q52eruI+6jWnMKUOeM55XvwoPnGcdB1++O8c= +go.opentelemetry.io/collector/featuregate v1.20.0/go.mod h1:47xrISO71vJ83LSMm8+yIDsUbKktUp48Ovt7RR6VbRs= +go.opentelemetry.io/collector/filter v0.114.0 h1:5I97yblUxc6rXCYRn542aSrsNQLo/dE+87XROW2b5oU= +go.opentelemetry.io/collector/filter v0.114.0/go.mod h1:Nxwc+RD9AH4y/qYtkTP+Ac19CxgW5GAB+sJU4ACLr6g= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0 h1:JM9huYqy5LTzmuxQmbPST3l5Ez5kJNit28c6WFWls34= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0/go.mod h1:V28tDU4Wvf1PfW1Ty/SBL9tpKul2iYGno/HkCWGDrj0= +go.opentelemetry.io/collector/internal/memorylimiter v0.114.0 h1:UpKQ/GtWw7Mh/PjR03NdgR9PG7uT7mnfbQVxpDQVBgk= +go.opentelemetry.io/collector/internal/memorylimiter v0.114.0/go.mod h1:QUZr3bBguTmgLJUFuqVVsOxKr7Y/2JO49k3I1tUH88U= +go.opentelemetry.io/collector/internal/sharedcomponent v0.114.0 h1:DjX9ubjkKDnioQB03FYc40FTyhR25CdobMfjinKkZ1w= +go.opentelemetry.io/collector/internal/sharedcomponent v0.114.0/go.mod h1:lYlFiGIjPjhwTS/Xc+toJ9o3D8A6cCHuK1JX+ZbujVs= +go.opentelemetry.io/collector/otelcol v0.114.0 h1:d/nmYc+adzZ70g4zBMtgujGHVNulF59ExCpuM/3ZKV4= +go.opentelemetry.io/collector/otelcol v0.114.0/go.mod h1:DGmFFao5jHSwD6G1HjUjs0CYcyrTau+u7GjTRUGKN+4= +go.opentelemetry.io/collector/otelcol/otelcoltest v0.114.0 h1:Em5e1EgrPrS90EWDWLJHCvyFIDl5PIq1DuW9zd8F3pY= +go.opentelemetry.io/collector/otelcol/otelcoltest v0.114.0/go.mod h1:YAs78SaOJsf1HNWrNH+GFTdkS58dpQI98cok6gZP4Lg= +go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= +go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= +go.opentelemetry.io/collector/pdata/pprofile v0.114.0 h1:pUNfTzsI/JUTiE+DScDM4lsrPoxnVNLI2fbTxR/oapo= +go.opentelemetry.io/collector/pdata/pprofile v0.114.0/go.mod h1:4aNcj6WM1n1uXyFSXlhVs4ibrERgNYsTbzcYI2zGhxA= +go.opentelemetry.io/collector/pdata/testdata v0.114.0 h1:+AzszWSL1i4K6meQ8rU0JDDW55SYCXa6FVqfDixhhTo= +go.opentelemetry.io/collector/pdata/testdata v0.114.0/go.mod h1:bv8XFdCTZxG2MQB5l9dKxSxf5zBrcodwO6JOy1+AxXM= +go.opentelemetry.io/collector/pipeline v0.114.0 h1:v3YOhc5z0tD6QbO5n/pnftpIeroihM2ks9Z2yKPCcwY= +go.opentelemetry.io/collector/pipeline v0.114.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= +go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0 h1:LZgxMQ2zXcz8ILBefhxpZBpn/Rx+TJTncIIQy0LgtgY= +go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0/go.mod h1:bmyqQCJWcA53/GtqZJ2ahwmLdFl6UelFH2nR6OJFqpw= +go.opentelemetry.io/collector/processor v0.114.0 h1:6bqQgLL7BtKrNv4YkEOGjZfkcfZv/ciJSQx1epGG9Zk= +go.opentelemetry.io/collector/processor v0.114.0/go.mod h1:DV/wa+nAmSHIDeD9NblPwkY9PbgtDQAZJ+PE5biZwPc= +go.opentelemetry.io/collector/processor/batchprocessor v0.114.0 h1:Xu+pdPGIh6gLqHW5oYJsiim1mbnG85QaaUQy0YPoL+c= +go.opentelemetry.io/collector/processor/batchprocessor v0.114.0/go.mod h1:emnnL5CaliCnWjXNpNixqpvn7uc/kyUTv2939J/reMY= +go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.114.0 h1:gfzShbdzhbA2lsRSx2z9i9QO/FJwAzOSrBW2ObPqf38= +go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.114.0/go.mod h1:leElNJO5dnpOg0o1Gr2Ok59HKADRznbrZ3u2oTfx50Q= +go.opentelemetry.io/collector/processor/processorhelper/processorhelperprofiles v0.114.0 h1:/CQJ0UQRStwBQnM4Z9lTr6D4IqEKH1iuUWVr21fP4To= +go.opentelemetry.io/collector/processor/processorhelper/processorhelperprofiles v0.114.0/go.mod h1:HD2uDr7TIWQ+TsXBLmrHu396EeClj7YNoNzoWJw4jrY= +go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 h1:+P/1nLouEXTnN8DVQl+qWwO4BTkQyNPG9t/FrpUqrSI= +go.opentelemetry.io/collector/processor/processorprofiles v0.114.0/go.mod h1:3fuHeNIpINwx3bqFMprmDJyr6y5tWoWbJH599kltO5Y= +go.opentelemetry.io/collector/processor/processortest v0.114.0 h1:3FTaVXAp0LoVmUJn1ewBFckAby7AHa6/Kcdj0xuW14c= +go.opentelemetry.io/collector/processor/processortest v0.114.0/go.mod h1:OgsdOs1Fv5ZGTTJPF5nNIUJh2YkuV1acWd73yWgnti4= +go.opentelemetry.io/collector/receiver v0.114.0 h1:90SAnXAjNq7/k52/pFmmb06Cf1YauoPYtbio4aOXafY= +go.opentelemetry.io/collector/receiver v0.114.0/go.mod h1:KUGT0/D953LXbGH/D3lLPU8yrU3HfWnUqpt4W4hSOnE= +go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0 h1:CMtfS6fwEwqwTMeC17A3Q2xsSkXfH4gG2SBZDr2txCw= +go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0/go.mod h1:ajp6ok8iSSAcyq58wcOUJVe++1mTQ1isxqlaNUgQNzo= +go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0 h1:8ASaxRWLe8P0pefOiYbCSZ0aXmwE4K06I8FBGc/n+J0= +go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0/go.mod h1:3vjOvYBWGUVzuaovoumMbNHEIK3PqDs5rzEyd/nzsLU= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 h1:ibhEfGpvNB3yrtpl2jYFabrunMk1hurxvMYpM0b1Ck4= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0/go.mod h1:UZyRfaasw+NLvN10AN8IQnmj5tQ3BOUH1uP2ctpO9f0= +go.opentelemetry.io/collector/receiver/receivertest v0.114.0 h1:D+Kh9t2n4asTnM+TiSxbrKlUemLZandWntj17BJWWb0= +go.opentelemetry.io/collector/receiver/receivertest v0.114.0/go.mod h1:mNSHQ13vFmqD+VAcRzLjStFBejbcWUn2Mp0pAd7Op+U= +go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= +go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= +go.opentelemetry.io/collector/service v0.114.0 h1:MYF/4nH1CgtiLx09503xPAAUZefCzG1kaO+oanwX590= +go.opentelemetry.io/collector/service v0.114.0/go.mod h1:xH5/RapJdf5Ohh8iU8J0ZstfFYciP1oJPesiByteZxo= go.opentelemetry.io/contrib/bridges/otelzap v0.6.0 h1:j8icMXyyqNf6HGuwlYhniPnVsbJIq7n+WirDu3VAJdQ= go.opentelemetry.io/contrib/bridges/otelzap v0.6.0/go.mod h1:evIOZpl+kAlU5IsaYX2Siw+IbpacAZvXemVsgt70uvw= go.opentelemetry.io/contrib/config v0.10.0 h1:2JknAzMaYjxrHkTnZh3eOme/Y2P5eHE2SWfhfV6Xd6c= @@ -1050,40 +1056,40 @@ go.opentelemetry.io/contrib/propagators/b3 v1.31.0 h1:PQPXYscmwbCp76QDvO4hMngF2j go.opentelemetry.io/contrib/propagators/b3 v1.31.0/go.mod h1:jbqfV8wDdqSDrAYxVpXQnpM0XFMq2FtDesblJ7blOwQ= go.opentelemetry.io/contrib/zpages v0.56.0 h1:W7vP6s3juzL5KiHpr41zLNmsJ0QAZudYu8ay0zGAoko= go.opentelemetry.io/contrib/zpages v0.56.0/go.mod h1:IxPRP4TYHw9jLeaEOSDIiA9zmyJNZNO6sbW55iMvSXs= -go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY= -go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.7.0 h1:mMOmtYie9Fx6TSVzw4W+NTpvoaS1JWWga37oI1a/4qQ= go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.7.0/go.mod h1:yy7nDsMMBUkD+jeekJ36ur5f3jJIrmCwUrY67VFhNpA= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0 h1:FZ6ei8GFW7kyPYdxJaV2rgI6M+4tvZzhYsQ2wgyVC08= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0/go.mod h1:MdEu/mC6j3D+tTEfvI15b5Ci2Fn7NneJ71YMoiS3tpI= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.31.0 h1:ZsXq73BERAiNuuFXYqP4MR5hBrjXfMGSO+Cx7qoOZiM= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.31.0/go.mod h1:hg1zaDMpyZJuUzjFxFsRYBoccE86tM9Uf4IqNMUxvrY= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 h1:j7ZSD+5yn+lo3sGV69nW04rRR0jhYnBwjuX3r0HvnK0= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0/go.mod h1:WXbYJTUaZXAbYd8lbgGuvih0yuCfOFC5RJoYnoLcGz8= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.32.0 h1:t/Qur3vKSkUCcDVaSumWF2PKHt85pc7fRvFuoVT8qFU= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.32.0/go.mod h1:Rl61tySSdcOJWoEgYZVtmnKdA0GeKrSqkHC1t+91CH8= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 h1:K0XaT3DwHAcV4nKLzcQvwAgSyisUghWoY20I7huthMk= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0/go.mod h1:B5Ki776z/MBnVha1Nzwp5arlzBbE3+1jk+pGmaP5HME= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 h1:FFeLy03iVTXP6ffeN2iXrxfGsZGCjVx0/4KlizjyBwU= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0/go.mod h1:TMu73/k1CP8nBUpDLc71Wj/Kf7ZS9FK5b53VapRsP9o= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0 h1:lUsI2TYsQw2r1IASwoROaCnjdj2cvC2+Jbxvk6nHnWU= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0/go.mod h1:2HpZxxQurfGxJlJDblybejHB6RX6pmExPNe517hREw4= -go.opentelemetry.io/otel/exporters/prometheus v0.53.0 h1:QXobPHrwiGLM4ufrY3EOmDPJpo2P90UuFau4CDPJA/I= -go.opentelemetry.io/otel/exporters/prometheus v0.53.0/go.mod h1:WOAXGr3D00CfzmFxtTV1eR0GpoHuPEu+HJT8UWW2SIU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.7.0 h1:TwmL3O3fRR80m8EshBrd8YydEZMcUCsZXzOUlnFohwM= go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.7.0/go.mod h1:tH98dDv5KPmPThswbXA0fr0Lwfs+OhK8HgaCo7PjRrk= -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.31.0 h1:HZgBIps9wH0RDrwjrmNa3DVbNRW60HEhdzqZFyAp3fI= -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.31.0/go.mod h1:RDRhvt6TDG0eIXmonAx5bd9IcwpqCkziwkOClzWKwAQ= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.32.0 h1:SZmDnHcgp3zwlPBS2JX2urGYe/jBKEIT6ZedHRUyCz8= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.32.0/go.mod h1:fdWW0HtZJ7+jNpTKUR0GpMEDP69nR8YBJQxNiVCE3jk= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.31.0 h1:UGZ1QwZWY67Z6BmckTU+9Rxn04m2bD3gD6Mk0OIOCPk= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.31.0/go.mod h1:fcwWuDuaObkkChiDlhEpSq9+X1C0omv+s5mBtToAQ64= -go.opentelemetry.io/otel/log v0.7.0 h1:d1abJc0b1QQZADKvfe9JqqrfmPYQCz2tUSO+0XZmuV4= -go.opentelemetry.io/otel/log v0.7.0/go.mod h1:2jf2z7uVfnzDNknKTO9G+ahcOAyWcp1fJmk/wJjULRo= -go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE= -go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY= -go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk= -go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0= +go.opentelemetry.io/otel/log v0.8.0 h1:egZ8vV5atrUWUbnSsHn6vB8R21G2wrKqNiDt3iWertk= +go.opentelemetry.io/otel/log v0.8.0/go.mod h1:M9qvDdUTRCopJcGRKg57+JSQ9LgLBrwwfC32epk5NX8= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= go.opentelemetry.io/otel/sdk/log v0.7.0 h1:dXkeI2S0MLc5g0/AwxTZv6EUEjctiH8aG14Am56NTmQ= go.opentelemetry.io/otel/sdk/log v0.7.0/go.mod h1:oIRXpW+WD6M8BuGj5rtS0aRu/86cbDV/dAfNaZBIjYM= -go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc= -go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8= -go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys= -go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= @@ -1348,9 +1354,8 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= -golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= -golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -1467,10 +1472,10 @@ google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 h1:T6rh4haD3GVYsgEfWExoCZA2o2FmbNyKpTuAxbEFPTg= -google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:wp2WsuBYj6j8wUdo3ToZsdxxixbvQNAHqVJrTgi5E5M= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 h1:QCqS/PdaHTSWGvupk2F/ehwHtGc0/GYkT+3GAcR1CCc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= diff --git a/comp/otelcol/collector-contrib/impl/manifest.yaml b/comp/otelcol/collector-contrib/impl/manifest.yaml index 1ec7c7287cea2..a5d48ed8eed80 100644 --- a/comp/otelcol/collector-contrib/impl/manifest.yaml +++ b/comp/otelcol/collector-contrib/impl/manifest.yaml @@ -1,83 +1,83 @@ connectors: - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector - v0.113.0 + v0.114.0 dist: description: Datadog OpenTelemetry Collector module: github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib name: otelcol-contrib output_path: ./comp/otelcol/collector-contrib/impl - version: 0.113.0 + version: 0.114.0 exporters: -- gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.113.0 -- gomod: go.opentelemetry.io/collector/exporter/nopexporter v0.113.0 -- gomod: go.opentelemetry.io/collector/exporter/otlpexporter v0.113.0 -- gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.113.0 +- gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.114.0 +- gomod: go.opentelemetry.io/collector/exporter/nopexporter v0.114.0 +- gomod: go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0 +- gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter - v0.113.0 + v0.114.0 extensions: -- gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.113.0 +- gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension - v0.113.0 + v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension - v0.113.0 + v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver - v0.113.0 + v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver - v0.113.0 + v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver - v0.113.0 + v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver - v0.113.0 + v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver - v0.113.0 + v0.114.0 processors: -- gomod: go.opentelemetry.io/collector/processor/batchprocessor v0.113.0 -- gomod: go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.113.0 +- gomod: go.opentelemetry.io/collector/processor/batchprocessor v0.114.0 +- gomod: go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor - v0.113.0 + v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor - v0.113.0 + v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor - v0.113.0 + v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor - v0.113.0 + v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor - v0.113.0 + v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor - v0.113.0 + v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor - v0.113.0 + v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor - v0.113.0 + v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor - v0.113.0 + v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor - v0.113.0 + v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor - v0.113.0 + v0.114.0 providers: -- gomod: go.opentelemetry.io/collector/confmap/provider/envprovider v1.17.0 -- gomod: go.opentelemetry.io/collector/confmap/provider/fileprovider v1.17.0 -- gomod: go.opentelemetry.io/collector/confmap/provider/httpprovider v1.17.0 -- gomod: go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.17.0 -- gomod: go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.17.0 +- gomod: go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0 +- gomod: go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0 +- gomod: go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0 +- gomod: go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0 +- gomod: go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0 receivers: -- gomod: go.opentelemetry.io/collector/receiver/nopreceiver v0.113.0 -- gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.113.0 +- gomod: go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0 +- gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver - v0.113.0 + v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver - v0.113.0 + v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver - v0.113.0 + v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver - v0.113.0 + v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver - v0.113.0 + v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator - v0.113.0 + v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver - v0.113.0 + v0.114.0 replaces: - github.com/googleapis/gnostic v0.5.6 => github.com/googleapis/gnostic v0.5.5 - github.com/docker/go-connections v0.4.1-0.20210727194412-58542c764a11 => github.com/docker/go-connections diff --git a/comp/otelcol/collector/impl/collector.go b/comp/otelcol/collector/impl/collector.go index 79ae0343ff241..7da391585dd7d 100644 --- a/comp/otelcol/collector/impl/collector.go +++ b/comp/otelcol/collector/impl/collector.go @@ -139,7 +139,7 @@ func addFactories(reqs Requires, factories otelcol.Factories) { } var buildInfo = component.BuildInfo{ - Version: "v0.113.0", + Version: "v0.114.0", Command: filepath.Base(os.Args[0]), Description: "Datadog Agent OpenTelemetry Collector", } diff --git a/comp/otelcol/converter/def/go.mod b/comp/otelcol/converter/def/go.mod index 2fd9ed2099778..2889709d6d8f3 100644 --- a/comp/otelcol/converter/def/go.mod +++ b/comp/otelcol/converter/def/go.mod @@ -2,17 +2,15 @@ module github.com/DataDog/datadog-agent/comp/otelcol/converter/def go 1.22.0 -require go.opentelemetry.io/collector/confmap v0.104.0 +require go.opentelemetry.io/collector/confmap v1.20.0 require ( - github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1 // indirect - github.com/hashicorp/go-version v1.7.0 // indirect + github.com/go-viper/mapstructure/v2 v2.2.1 // indirect github.com/knadh/koanf/maps v0.1.1 // indirect github.com/knadh/koanf/providers/confmap v0.1.0 // indirect - github.com/knadh/koanf/v2 v2.1.1 // indirect + github.com/knadh/koanf/v2 v2.1.2 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect - go.opentelemetry.io/collector/featuregate v1.19.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/comp/otelcol/converter/def/go.sum b/comp/otelcol/converter/def/go.sum index d458e07b68f14..f16eed9e249b4 100644 --- a/comp/otelcol/converter/def/go.sum +++ b/comp/otelcol/converter/def/go.sum @@ -1,15 +1,13 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1 h1:TQcrn6Wq+sKGkpyPvppOz99zsMBaUOKXq6HSv655U1c= -github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= -github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= -github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= +github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/knadh/koanf/maps v0.1.1 h1:G5TjmUh2D7G2YWf5SQQqSiHRJEjaicvU0KpypqB3NIs= github.com/knadh/koanf/maps v0.1.1/go.mod h1:npD/QZY3V6ghQDdcQzl1W4ICNVTkohC8E73eI2xW4yI= github.com/knadh/koanf/providers/confmap v0.1.0 h1:gOkxhHkemwG4LezxxN8DMOFopOPghxRVp7JbIvdvqzU= github.com/knadh/koanf/providers/confmap v0.1.0/go.mod h1:2uLhxQzJnyHKfxG927awZC7+fyHFdQkd697K4MdLnIU= -github.com/knadh/koanf/v2 v2.1.1 h1:/R8eXqasSTsmDCsAyYj+81Wteg8AqrV9CP6gvsTsOmM= -github.com/knadh/koanf/v2 v2.1.1/go.mod h1:4mnTRbZCK+ALuBXHZMjDfG9y714L7TykVnZkXbMU3Es= +github.com/knadh/koanf/v2 v2.1.2 h1:I2rtLRqXRy1p01m/utEtpZSSA6dcJbgGVuE27kW2PzQ= +github.com/knadh/koanf/v2 v2.1.2/go.mod h1:Gphfaen0q1Fc1HTgJgSTC4oRX9R2R5ErYMZJy8fLJBo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -24,10 +22,8 @@ github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjR github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -go.opentelemetry.io/collector/confmap v0.104.0 h1:d3yuwX+CHpoyCh0iMv3rqb/vwAekjSm4ZDL6UK1nZSA= -go.opentelemetry.io/collector/confmap v0.104.0/go.mod h1:F8Lue+tPPn2oldXcfqI75PPMJoyzgUsKVtM/uHZLA4w= -go.opentelemetry.io/collector/featuregate v1.19.0 h1:ASea2sU+tdpKI3RxIJC/pufDAfwAmrvcQ4EmTHVu0B0= -go.opentelemetry.io/collector/featuregate v1.19.0/go.mod h1:47xrISO71vJ83LSMm8+yIDsUbKktUp48Ovt7RR6VbRs= +go.opentelemetry.io/collector/confmap v1.20.0 h1:ARfOwmkKxFOud1njl03yAHQ30+uenlzqCO6LBYamDTE= +go.opentelemetry.io/collector/confmap v1.20.0/go.mod h1:DMpd9Ay/ffls3JoQBQ73vWeRsz1rNuLbwjo6WtjSQus= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= diff --git a/comp/otelcol/converter/impl/go.mod b/comp/otelcol/converter/impl/go.mod index d45202963fc09..f34f001d4f690 100644 --- a/comp/otelcol/converter/impl/go.mod +++ b/comp/otelcol/converter/impl/go.mod @@ -42,12 +42,12 @@ require ( github.com/DataDog/datadog-agent/comp/core/config v0.56.2 github.com/DataDog/datadog-agent/comp/otelcol/converter/def v0.56.0-rc.3 github.com/stretchr/testify v1.9.0 - go.opentelemetry.io/collector/confmap v1.19.0 - go.opentelemetry.io/collector/confmap/provider/envprovider v1.19.0 - go.opentelemetry.io/collector/confmap/provider/fileprovider v1.19.0 - go.opentelemetry.io/collector/confmap/provider/httpprovider v1.19.0 - go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.19.0 - go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.19.0 + go.opentelemetry.io/collector/confmap v1.20.0 + go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0 + go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0 + go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0 + go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0 + go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0 go.uber.org/zap v1.27.0 ) @@ -88,7 +88,7 @@ require ( github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect github.com/knadh/koanf/maps v0.1.1 // indirect github.com/knadh/koanf/providers/confmap v0.1.0 // indirect - github.com/knadh/koanf/v2 v2.1.1 // indirect + github.com/knadh/koanf/v2 v2.1.2 // indirect github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect diff --git a/comp/otelcol/converter/impl/go.sum b/comp/otelcol/converter/impl/go.sum index 243a754d011a1..96051d7ac6ba5 100644 --- a/comp/otelcol/converter/impl/go.sum +++ b/comp/otelcol/converter/impl/go.sum @@ -111,8 +111,8 @@ github.com/knadh/koanf/maps v0.1.1 h1:G5TjmUh2D7G2YWf5SQQqSiHRJEjaicvU0KpypqB3NI github.com/knadh/koanf/maps v0.1.1/go.mod h1:npD/QZY3V6ghQDdcQzl1W4ICNVTkohC8E73eI2xW4yI= github.com/knadh/koanf/providers/confmap v0.1.0 h1:gOkxhHkemwG4LezxxN8DMOFopOPghxRVp7JbIvdvqzU= github.com/knadh/koanf/providers/confmap v0.1.0/go.mod h1:2uLhxQzJnyHKfxG927awZC7+fyHFdQkd697K4MdLnIU= -github.com/knadh/koanf/v2 v2.1.1 h1:/R8eXqasSTsmDCsAyYj+81Wteg8AqrV9CP6gvsTsOmM= -github.com/knadh/koanf/v2 v2.1.1/go.mod h1:4mnTRbZCK+ALuBXHZMjDfG9y714L7TykVnZkXbMU3Es= +github.com/knadh/koanf/v2 v2.1.2 h1:I2rtLRqXRy1p01m/utEtpZSSA6dcJbgGVuE27kW2PzQ= +github.com/knadh/koanf/v2 v2.1.2/go.mod h1:Gphfaen0q1Fc1HTgJgSTC4oRX9R2R5ErYMZJy8fLJBo= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -236,18 +236,18 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/collector/confmap v1.19.0 h1:TQ0lZpAKqgsE0EKk+u4JA+uBbPYeFRmWP3GH43w40CY= -go.opentelemetry.io/collector/confmap v1.19.0/go.mod h1:GgNu1ElPGmLn9govqIfjaopvdspw4PJ9KeDtWC4E2Q4= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.19.0 h1:f8O/I5pVRN86Gx5mHekNx92S6fGdOS4VcooRJKWe6Bs= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.19.0/go.mod h1:AiaW5YW1LD0/WlZuc8eZuZPBH6PA9QqsiAYRX1iC6T0= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.19.0 h1:TYwyk4ea3U+5MYcEjrzZAaonBcLlabQu8CZeB7ekAYY= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.19.0/go.mod h1:i3mL4OSGI5JM0hnzHujhJK+LDlvO3XrJxBsuclfU/jY= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.19.0 h1:a077jcs3DVtaVdmgmCk3x4rRYuTkIqMDsoUc+VICHZk= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.19.0/go.mod h1:HjYkzhHbwUacv27nq0JLsslGpbtrXyyfU30Oc72AWLU= -go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.19.0 h1:8LoQxjlduFQUEwYuHWnxEj0A+GcAtpv2qPpDJVz7A5E= -go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.19.0/go.mod h1:Y8ErEl5m9+1AWzWcMn52PATH5dw50wuyyPMffK62RCI= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.19.0 h1:oV66DKiEdAt8EMZqGSChK2iEOxjrVaWRhf4OqqmqjbM= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.19.0/go.mod h1:jtNUdO6i1k38BG7vFst+d1jk/N+c419uVR8HB4J0VjI= +go.opentelemetry.io/collector/confmap v1.20.0 h1:ARfOwmkKxFOud1njl03yAHQ30+uenlzqCO6LBYamDTE= +go.opentelemetry.io/collector/confmap v1.20.0/go.mod h1:DMpd9Ay/ffls3JoQBQ73vWeRsz1rNuLbwjo6WtjSQus= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0 h1:I3xDecFXJVZBo5zJS7Y5SWBjF22XDWGZJgwotiwA5QM= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0/go.mod h1:CF0l8V8MNv+Wag8UkqObotFnlhMzdTFuk4/6kylKwYU= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0 h1:wWxvQ7wj+1O9yDGM5m1HPEz8FJewAHAUWadAAi0KVbM= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0/go.mod h1:/5HWIPjGYk8IUurs1CZUSjGaSsaQyJsfR8+Zs5rGJ6Y= +go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0 h1:YS1nB8vDoCS8IlfX5OP3QGS90y/hfflwZ7CoPQcAOlU= +go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0/go.mod h1:aV4UfkgcJ3eyXvfd3m694omN++1c96Joitab+YL6Xks= +go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0 h1:0BJHAeKFb46FCT0ehOmmGs0v31cGuAh4DIic07J71NU= +go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0/go.mod h1:gBiweuH4EDuPh9mpLCB/wPZzostdA+gKY8hABwbotQk= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0 h1:jSXTojCPI6Xr98m99nF7qbQFnw3INLEOHRcqcHS+lak= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0/go.mod h1:Pu95O2JE3R+0BBTbe4gpAC8ms3w6FbICHJw3WvGWrjs= go.opentelemetry.io/otel v1.30.0 h1:F2t8sK4qf1fAmY9ua4ohFS/K+FUuOPemHUIXHtktrts= go.opentelemetry.io/otel v1.30.0/go.mod h1:tFw4Br9b7fOS+uEao81PJjVMjW/5fvNCbpsDIXqP0pc= go.opentelemetry.io/otel/metric v1.30.0 h1:4xNulvn9gjzo4hjg+wzIKG7iNFEaBMX00Qd4QIZs7+w= diff --git a/comp/otelcol/ddflareextension/def/go.mod b/comp/otelcol/ddflareextension/def/go.mod index 3a9a8228f4afe..42c21799a0c31 100644 --- a/comp/otelcol/ddflareextension/def/go.mod +++ b/comp/otelcol/ddflareextension/def/go.mod @@ -2,16 +2,16 @@ module github.com/DataDog/datadog-agent/comp/otelcol/ddflareextension/def go 1.22.0 -require go.opentelemetry.io/collector/extension v0.113.0 +require go.opentelemetry.io/collector/extension v0.114.0 require ( github.com/gogo/protobuf v1.3.2 // indirect - go.opentelemetry.io/collector/component v0.113.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.113.0 // indirect - go.opentelemetry.io/collector/pdata v1.19.0 // indirect - go.opentelemetry.io/otel v1.31.0 // indirect - go.opentelemetry.io/otel/metric v1.31.0 // indirect - go.opentelemetry.io/otel/trace v1.31.0 // indirect + go.opentelemetry.io/collector/component v0.114.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect + go.opentelemetry.io/collector/pdata v1.20.0 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/net v0.31.0 // indirect diff --git a/comp/otelcol/ddflareextension/def/go.sum b/comp/otelcol/ddflareextension/def/go.sum index 7540c66251d46..ee0e91a7a15de 100644 --- a/comp/otelcol/ddflareextension/def/go.sum +++ b/comp/otelcol/ddflareextension/def/go.sum @@ -16,20 +16,20 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.opentelemetry.io/collector/component v0.113.0 h1:/nx+RvZgxUEXP+YcTj69rEtuSEGkfaCyp/ad5zQGLjU= -go.opentelemetry.io/collector/component v0.113.0/go.mod h1:2T779hIGHU9i7xbXbV3q1/JnRw2FyzUYXW2vq47A6EU= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0 h1:hweTRrVddnUeA3k7HzRY4oUR9lRdMa7of3mHNUS5YyA= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/extension v0.113.0 h1:Vp/YSL8ZCkJQrP1lf2Bm5yaTvcp6ROO3AnfuSL3GEXM= -go.opentelemetry.io/collector/extension v0.113.0/go.mod h1:Pwp0TNqdHeER4V1I6H6oCvrto/riiOAqs3737BWCnjw= -go.opentelemetry.io/collector/pdata v1.19.0 h1:jmnU5R8TOCbwRr4B8sjdRxM7L5WnEKlQWX1dtLYxIbE= -go.opentelemetry.io/collector/pdata v1.19.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY= -go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE= -go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE= -go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY= -go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys= -go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A= +go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= +go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= +go.opentelemetry.io/collector/extension v0.114.0 h1:9Qb92y8hD2WDC5aMDoj4JNQN+/5BQYJWPUPzLXX+iGw= +go.opentelemetry.io/collector/extension v0.114.0/go.mod h1:Yk2/1ptVgfTr12t+22v93nYJpioP14pURv2YercSzU0= +go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= +go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= diff --git a/comp/otelcol/ddflareextension/impl/go.mod b/comp/otelcol/ddflareextension/impl/go.mod index 7c025399330b9..8051c364fbdf4 100644 --- a/comp/otelcol/ddflareextension/impl/go.mod +++ b/comp/otelcol/ddflareextension/impl/go.mod @@ -110,55 +110,58 @@ require ( github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/processor/infraattributesprocessor v0.59.0 github.com/DataDog/datadog-agent/pkg/api v0.57.1 github.com/DataDog/datadog-agent/pkg/config/mock v0.59.0 - github.com/DataDog/datadog-agent/pkg/version v0.58.1 + github.com/DataDog/datadog-agent/pkg/version v0.59.0 github.com/google/go-cmp v0.6.0 github.com/gorilla/mux v1.8.1 - github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.113.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.113.0 + github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 github.com/stretchr/testify v1.9.0 - go.opentelemetry.io/collector/component v0.113.0 - go.opentelemetry.io/collector/component/componentstatus v0.113.0 - go.opentelemetry.io/collector/config/confighttp v0.113.0 - go.opentelemetry.io/collector/confmap v1.19.0 - go.opentelemetry.io/collector/confmap/provider/envprovider v1.19.0 - go.opentelemetry.io/collector/confmap/provider/fileprovider v1.19.0 - go.opentelemetry.io/collector/confmap/provider/httpprovider v1.19.0 - go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.19.0 - go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.19.0 - go.opentelemetry.io/collector/connector v0.113.0 - go.opentelemetry.io/collector/exporter v0.113.0 - go.opentelemetry.io/collector/exporter/otlpexporter v0.113.0 - go.opentelemetry.io/collector/exporter/otlphttpexporter v0.113.0 - go.opentelemetry.io/collector/extension v0.113.0 - go.opentelemetry.io/collector/extension/extensioncapabilities v0.113.0 - go.opentelemetry.io/collector/extension/zpagesextension v0.113.0 - go.opentelemetry.io/collector/otelcol v0.113.0 - go.opentelemetry.io/collector/processor v0.113.0 - go.opentelemetry.io/collector/processor/batchprocessor v0.113.0 - go.opentelemetry.io/collector/receiver v0.113.0 - go.opentelemetry.io/collector/receiver/nopreceiver v0.113.0 - go.opentelemetry.io/collector/receiver/otlpreceiver v0.113.0 + go.opentelemetry.io/collector/component v0.114.0 + go.opentelemetry.io/collector/component/componentstatus v0.114.0 + go.opentelemetry.io/collector/component/componenttest v0.114.0 + go.opentelemetry.io/collector/config/confighttp v0.114.0 + go.opentelemetry.io/collector/confmap v1.20.0 + go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0 + go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0 + go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0 + go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0 + go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0 + go.opentelemetry.io/collector/connector v0.114.0 + go.opentelemetry.io/collector/exporter v0.114.0 + go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0 + go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0 + go.opentelemetry.io/collector/extension v0.114.0 + go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0 + go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 + go.opentelemetry.io/collector/otelcol v0.114.0 + go.opentelemetry.io/collector/processor v0.114.0 + go.opentelemetry.io/collector/processor/batchprocessor v0.114.0 + go.opentelemetry.io/collector/receiver v0.114.0 + go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0 + go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0 go.uber.org/zap v1.27.0 gopkg.in/yaml.v2 v2.4.0 ) +require go.opentelemetry.io/collector/extension/extensiontest v0.114.0 // indirect + require ( github.com/pierrec/lz4/v4 v4.1.21 // indirect - go.opentelemetry.io/collector/connector/connectortest v0.113.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror v0.113.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/exporter/exportertest v0.113.0 // indirect - go.opentelemetry.io/collector/internal/fanoutconsumer v0.113.0 // indirect - go.opentelemetry.io/collector/internal/sharedcomponent v0.113.0 // indirect - go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/processor/processortest v0.113.0 // indirect - go.opentelemetry.io/collector/receiver/receivertest v0.113.0 // indirect + go.opentelemetry.io/collector/connector/connectortest v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/exporter/exportertest v0.114.0 // indirect + go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0 // indirect + go.opentelemetry.io/collector/internal/sharedcomponent v0.114.0 // indirect + go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/processor/processortest v0.114.0 // indirect + go.opentelemetry.io/collector/receiver/receivertest v0.114.0 // indirect go.opentelemetry.io/contrib/bridges/otelzap v0.6.0 // indirect ) @@ -174,33 +177,33 @@ require ( github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect github.com/Code-Hex/go-generics-cache v1.5.1 // indirect - github.com/DataDog/agent-payload/v5 v5.0.134 // indirect - github.com/DataDog/datadog-agent/comp/core/config v0.58.1 // indirect - github.com/DataDog/datadog-agent/comp/core/flare/builder v0.58.1 // indirect - github.com/DataDog/datadog-agent/comp/core/flare/types v0.58.1 // indirect - github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.58.1 // indirect - github.com/DataDog/datadog-agent/comp/core/log/def v0.58.1 // indirect + github.com/DataDog/agent-payload/v5 v5.0.135 // indirect + github.com/DataDog/datadog-agent/comp/core/config v0.59.0 // indirect + github.com/DataDog/datadog-agent/comp/core/flare/builder v0.59.0 // indirect + github.com/DataDog/datadog-agent/comp/core/flare/types v0.59.0 // indirect + github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.59.0 // indirect + github.com/DataDog/datadog-agent/comp/core/log/def v0.59.0 // indirect github.com/DataDog/datadog-agent/comp/core/log/mock v0.58.0-devel // indirect github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect github.com/DataDog/datadog-agent/comp/core/status v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/core/tagger/tags v0.0.0-00010101000000-000000000000 // indirect github.com/DataDog/datadog-agent/comp/core/tagger/types v0.59.0 // indirect github.com/DataDog/datadog-agent/comp/core/tagger/utils v0.59.0 // indirect - github.com/DataDog/datadog-agent/comp/core/telemetry v0.58.1 // indirect - github.com/DataDog/datadog-agent/comp/def v0.58.1 // indirect + github.com/DataDog/datadog-agent/comp/core/telemetry v0.59.0 // indirect + github.com/DataDog/datadog-agent/comp/def v0.59.0 // indirect github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorinterface v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/comp/logs/agent/config v0.58.1 // indirect + github.com/DataDog/datadog-agent/comp/logs/agent/config v0.59.0 // indirect github.com/DataDog/datadog-agent/comp/otelcol/converter/def v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline v0.59.0-rc.6 // indirect - github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter v0.59.0-rc.6 // indirect + github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline v0.59.0 // indirect + github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter v0.61.0-devel.0.20241118141418-5b899217c342 // indirect github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter v0.59.0-rc.6 // indirect - github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient v0.59.0-rc.6 // indirect - github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/statsprocessor v0.59.0-rc.6 // indirect + github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient v0.59.0 // indirect + github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/statsprocessor v0.59.0 // indirect github.com/DataDog/datadog-agent/comp/serializer/compression v0.59.0-rc.6 // indirect github.com/DataDog/datadog-agent/comp/trace/agent/def v0.59.0-rc.6 // indirect - github.com/DataDog/datadog-agent/comp/trace/compression/def v0.59.0-rc.6 // indirect - github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip v0.59.0-rc.6 // indirect + github.com/DataDog/datadog-agent/comp/trace/compression/def v0.59.0 // indirect + github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/aggregator/ckey v0.59.0-rc.6 // indirect github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/config/env v0.59.0 // indirect @@ -209,40 +212,40 @@ require ( github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/config/structure v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.60.0-devel // indirect - github.com/DataDog/datadog-agent/pkg/config/utils v0.58.1 // indirect - github.com/DataDog/datadog-agent/pkg/logs/auditor v0.58.1 // indirect - github.com/DataDog/datadog-agent/pkg/logs/client v0.58.1 // indirect - github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.58.1 // indirect - github.com/DataDog/datadog-agent/pkg/logs/message v0.58.1 // indirect - github.com/DataDog/datadog-agent/pkg/logs/metrics v0.58.1 // indirect - github.com/DataDog/datadog-agent/pkg/logs/pipeline v0.58.1 // indirect - github.com/DataDog/datadog-agent/pkg/logs/processor v0.58.1 // indirect - github.com/DataDog/datadog-agent/pkg/logs/sds v0.58.1 // indirect - github.com/DataDog/datadog-agent/pkg/logs/sender v0.58.1 // indirect - github.com/DataDog/datadog-agent/pkg/logs/sources v0.58.1 // indirect - github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.58.1 // indirect - github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.58.1 // indirect + github.com/DataDog/datadog-agent/pkg/config/utils v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/logs/auditor v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/logs/client v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/logs/message v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/logs/metrics v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/logs/pipeline v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/logs/processor v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/logs/sds v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/logs/sender v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/logs/sources v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/metrics v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/obfuscate v0.59.0-devel.0.20240911192058-0c2181220f85 // indirect + github.com/DataDog/datadog-agent/pkg/obfuscate v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/orchestrator/model v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/process/util/api v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/proto v0.58.1 // indirect - github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.58.1 // indirect + github.com/DataDog/datadog-agent/pkg/proto v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/serializer v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/status/health v0.58.1 // indirect + github.com/DataDog/datadog-agent/pkg/status/health v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/tagger/types v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/tagset v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/telemetry v0.58.1 // indirect - github.com/DataDog/datadog-agent/pkg/trace v0.59.0-devel.0.20240911192058-0c2181220f85 // indirect - github.com/DataDog/datadog-agent/pkg/util/backoff v0.58.1 // indirect + github.com/DataDog/datadog-agent/pkg/telemetry v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/trace v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/backoff v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/buf v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/cgroups v0.58.1 // indirect + github.com/DataDog/datadog-agent/pkg/util/cgroups v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/common v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/fxutil v0.58.1 // indirect + github.com/DataDog/datadog-agent/pkg/util/fxutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/http v0.58.1 // indirect + github.com/DataDog/datadog-agent/pkg/util/http v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/json v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/log/setup v0.58.0-devel // indirect @@ -250,8 +253,8 @@ require ( github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/sort v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/startstop v0.58.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/statstracker v0.58.1 // indirect + github.com/DataDog/datadog-agent/pkg/util/startstop v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/statstracker v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/utilizationtracker v0.0.0 // indirect @@ -334,7 +337,7 @@ require ( github.com/gophercloud/gophercloud v1.13.0 // indirect github.com/gorilla/websocket v1.5.0 // indirect github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 // indirect github.com/hashicorp/consul/api v1.30.0 // indirect github.com/hashicorp/cronexpr v1.1.2 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect @@ -389,15 +392,15 @@ require ( github.com/mostynb/go-grpc-compression v1.2.3 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.113.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.114.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0 // indirect github.com/opencontainers/runtime-spec v1.2.0 // indirect @@ -440,33 +443,33 @@ require ( github.com/x448/float16 v0.8.4 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/collector v0.113.0 // indirect - go.opentelemetry.io/collector/client v1.19.0 // indirect - go.opentelemetry.io/collector/config/configauth v0.113.0 // indirect - go.opentelemetry.io/collector/config/configcompression v1.19.0 // indirect - go.opentelemetry.io/collector/config/configgrpc v0.113.0 // indirect - go.opentelemetry.io/collector/config/confignet v1.19.0 // indirect - go.opentelemetry.io/collector/config/configopaque v1.19.0 // indirect - go.opentelemetry.io/collector/config/configretry v1.19.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.113.0 // indirect - go.opentelemetry.io/collector/config/configtls v1.19.0 // indirect - go.opentelemetry.io/collector/config/internal v0.113.0 // indirect - go.opentelemetry.io/collector/connector/connectorprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/consumer v0.113.0 // indirect - go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/consumer/consumertest v0.113.0 // indirect - go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/extension/auth v0.113.0 // indirect - go.opentelemetry.io/collector/extension/experimental/storage v0.113.0 // indirect - go.opentelemetry.io/collector/featuregate v1.19.0 // indirect - go.opentelemetry.io/collector/pdata v1.19.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.113.0 // indirect - go.opentelemetry.io/collector/pdata/testdata v0.113.0 // indirect - go.opentelemetry.io/collector/pipeline v0.113.0 // indirect - go.opentelemetry.io/collector/processor/processorprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/semconv v0.113.0 // indirect - go.opentelemetry.io/collector/service v0.113.0 // indirect + go.opentelemetry.io/collector v0.114.0 // indirect + go.opentelemetry.io/collector/client v1.20.0 // indirect + go.opentelemetry.io/collector/config/configauth v0.114.0 // indirect + go.opentelemetry.io/collector/config/configcompression v1.20.0 // indirect + go.opentelemetry.io/collector/config/configgrpc v0.114.0 // indirect + go.opentelemetry.io/collector/config/confignet v1.20.0 // indirect + go.opentelemetry.io/collector/config/configopaque v1.20.0 // indirect + go.opentelemetry.io/collector/config/configretry v1.20.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect + go.opentelemetry.io/collector/config/configtls v1.20.0 // indirect + go.opentelemetry.io/collector/config/internal v0.114.0 // indirect + go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/consumer v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumertest v0.114.0 // indirect + go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/extension/auth v0.114.0 // indirect + go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 // indirect + go.opentelemetry.io/collector/featuregate v1.20.0 // indirect + go.opentelemetry.io/collector/pdata v1.20.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.114.0 // indirect + go.opentelemetry.io/collector/pdata/testdata v0.114.0 // indirect + go.opentelemetry.io/collector/pipeline v0.114.0 // indirect + go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/semconv v0.114.0 // indirect + go.opentelemetry.io/collector/service v0.114.0 // indirect go.opentelemetry.io/contrib/config v0.10.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect @@ -474,16 +477,16 @@ require ( go.opentelemetry.io/contrib/zpages v0.56.0 // indirect go.opentelemetry.io/otel v1.32.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.7.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.31.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.32.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.53.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.7.0 // indirect - go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.31.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.32.0 // indirect go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.31.0 // indirect - go.opentelemetry.io/otel/log v0.7.0 // indirect + go.opentelemetry.io/otel/log v0.8.0 // indirect go.opentelemetry.io/otel/metric v1.32.0 // indirect go.opentelemetry.io/otel/sdk v1.32.0 // indirect go.opentelemetry.io/otel/sdk/log v0.7.0 // indirect @@ -507,8 +510,8 @@ require ( golang.org/x/tools v0.27.0 // indirect gonum.org/v1/gonum v0.15.1 // indirect google.golang.org/api v0.188.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect google.golang.org/protobuf v1.35.1 // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/comp/otelcol/ddflareextension/impl/go.sum b/comp/otelcol/ddflareextension/impl/go.sum index b1debf0a32db9..3b7dcea39b6ac 100644 --- a/comp/otelcol/ddflareextension/impl/go.sum +++ b/comp/otelcol/ddflareextension/impl/go.sum @@ -59,8 +59,8 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Code-Hex/go-generics-cache v1.5.1 h1:6vhZGc5M7Y/YD8cIUcY8kcuQLB4cHR7U+0KMqAA0KcU= github.com/Code-Hex/go-generics-cache v1.5.1/go.mod h1:qxcC9kRVrct9rHeiYpFWSoW1vxyillCVzX13KZG8dl4= -github.com/DataDog/agent-payload/v5 v5.0.134 h1:h0oP3vDTOsjW1uKIZxKsCjOV/40jkY2Y+42GKAVH9ig= -github.com/DataDog/agent-payload/v5 v5.0.134/go.mod h1:FgVQKmVdqdmZTbxIptqJC/l+xEzdiXsaAOs/vGAvWzs= +github.com/DataDog/agent-payload/v5 v5.0.135 h1:EZXSnOILBD/q4xWKtaOsDsIVWPteY1G79It8a5x8jJw= +github.com/DataDog/agent-payload/v5 v5.0.135/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/datadog-agent/comp/core/log v0.56.2 h1:qvBT+FfjKGqimyEvmsNHCZKbTfBJAdUZSVy2IZQ8HS4= github.com/DataDog/datadog-agent/comp/core/log v0.56.2/go.mod h1:ivJ/RMZjTNkoPPNDX+v/nnBwABLCiMv1vQA5tk/HCR4= github.com/DataDog/datadog-api-client-go/v2 v2.31.0 h1:JfJhYlHfLzvauI8u6h23smTooWYe6quNhhg9gpTszWY= @@ -384,8 +384,8 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 h1:ad0vkEBuk23VJzZR9nkLVG0YAoN9coASF1GusYX6AlU= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0/go.mod h1:igFoXX2ELCW06bol23DWPB5BEWfZISOzSP5K2sbLea0= github.com/hashicorp/consul/api v1.30.0 h1:ArHVMMILb1nQv8vZSGIwwQd2gtc+oSQZ6CalyiyH2XQ= github.com/hashicorp/consul/api v1.30.0/go.mod h1:B2uGchvaXVW2JhFoS8nqTxMD5PBykr4ebY4JWHTTeLM= github.com/hashicorp/consul/sdk v0.16.1 h1:V8TxTnImoPD5cj0U9Spl0TUxcytjcbbJeADFF07KdHg= @@ -588,58 +588,58 @@ github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= github.com/onsi/gomega v1.19.0 h1:4ieX6qQjPP/BfC3mpsAtIGGlxTWPeA3Inl/7DtXw1tw= github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.113.0 h1:WJfe78FxmmshTWilSpwtDRHoOl8gxKAnTW0eT4kureY= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.113.0/go.mod h1:XkFc7X0M2hnM4AYg6yX+r7btu208RG8THfM/npF/eKQ= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.113.0 h1:f3PXc+bgwGtJIlWwtOXDYYNBKOyabhkLl6Q3j/Rc1ow= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.113.0/go.mod h1:Ix1L1Godr9TS2DvHWSz/+0RBPa/D34azSvk/xU3dlGs= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.113.0 h1:ITFlE4UHWUQQg5Vy7XfaRaE7hADsK3UTtEJ5xrPbWU8= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.113.0/go.mod h1:tH0inPPuK/JYMDlLTe7ioGN1Zbp3NbNSp8H0Vc5C+uU= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.113.0 h1:sYEmpMeBGMSoy8j1GSEkBO5GM578Qtq3QtmVcsYn51s= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.113.0/go.mod h1:ULlXfiJdXw0ZzUGXLToQvGb1gQuIGC2BjtfyTnw3QtE= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.113.0 h1:Aej9sL1v25Xf8AfM1fyRluBLV5g5+40GnagCb0/UJfY= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.113.0/go.mod h1:QiXedkQif06vbjtVgnmmrHOunLUoLLAf10uaA/qKgts= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.113.0 h1:hc407moydGsK9FfAxjP3Tw+akhmKO8PfaH18II3N7Q4= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.113.0/go.mod h1:+1IJOoUqBzghufMZDSMhKzs1UOi39h8pMFDxWm/k1k4= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.113.0 h1:qudJNiKFfxly/lPyfdZNwnT6OKCzRFw0BI0E5CI6WwU= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.113.0/go.mod h1:eHVWQ484ohG4ZjaV8KTej3CMVEPh0w6zBXfi+qqvyGw= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.113.0 h1:7A8MgFPYRQWq1RkFBktq01CW+eTYhiGML0IxQNv2uaM= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.113.0/go.mod h1:E1pc7mDXH+5s7RyXw291h8lz2dhzPzaDrAHqP1Lawvw= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.113.0 h1:EZ/ZNsovNcQq+wwAbTAWNY+6BHnv24NxvVoC6eYmtg8= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.113.0/go.mod h1:u21dEQ9yQ0JyLMSrKLWWzHG/lHSlteNfa/EQ7Vqcle4= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.113.0 h1:SjzsWZqrxUoRWvXzwrbjQCnoJRJApJVCCqjrtflapMM= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.113.0/go.mod h1:sYIh0S63ztcL2q9gEKhvviDQ5caH1sFE1oeFRDQOQ6A= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.113.0 h1:E/D5TwJyKN19p1FQ0XD5r5G1uH9NH/HVAM0e1hFMwFU= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.113.0/go.mod h1:FcClDm9XVV5tzUDzmH2Mhe6TfYiZ/3GSAQITnuCjZgg= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.113.0 h1:BidrOROxYyacsUzNJyPZdvuX9VpbmFnSJXAt0yz6cXU= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.113.0/go.mod h1:TM5DUkjqHozcpjCX36f7cDv6Rv+J8ysZ52zCYAEQZCk= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.113.0 h1:V9CRl77lPG2xFPpnRf1QLiePo7FZngt+vw6M2KLdRMU= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.113.0/go.mod h1:zL+Msnlb1TEObHQ2RNnPKbVr3GhSdyI2ZqGtiSxg2/E= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.113.0 h1:sfPQ3RPyimzEzB2aQtUaEu7ElwDmlze+q0moWV9YpkI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.113.0/go.mod h1:QMenHMTJ5qrpghfPoMMpS0QwW6pQrXOqHn7QcNgn+NU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.113.0 h1:5YU2trp7n56EyDS9dEyY1UxyaW6wxB4KiyKoyjDYooo= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.113.0/go.mod h1:EBtBK1lE/HMUz51cafBLlJAXZ/2ZDRCV4C+rT04fMYM= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.113.0 h1:e2WOkaj5AWPaKTU4l+GEXGrEUbrAhQPQ7zLUdnXLGX8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.113.0/go.mod h1:x+DR/o7xddbdhpQP2QKBJkPUdrj2tl/uR1OJ/sqlrWc= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.113.0 h1:GERkhEtH3Uk8CMBzFoBmMD7fBfcrtIM9hopbQqzdvNs= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.113.0/go.mod h1:+VbefhdCgKiTXsIU6sQj9L96Ow53a8EMcUW6EMt3zTA= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.113.0 h1:Ux4k3jMTufk4HZ4RNYrqLxIt6wKEeOFAndzGWBjiUqs= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.113.0/go.mod h1:GWsSVmzpKZucOefuqqvKEUbnqGRV9OCSX2vzTjC/sbI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.113.0 h1:n44G0Quw+OQMZ+ELOo/Aw1qcwVu7LXae8GBVjVSE+HQ= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.113.0/go.mod h1:6dxGDpWsWnzC5UK3RhgfdXRC+3c8RLCO+cC+RiS+jIU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.113.0 h1:Qy0MqQQKmW9wrfduM794WKg4qjTobIdj5HDHW5FZ/P8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.113.0/go.mod h1:X25Nhlw6xhuNSd/C0FeEwmD4PGmcXDl7pa2jR0UREkU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.113.0 h1:vKtNSM3VQBTJx1ecf+I1iqn4kj7fKif1SpBLQ+numf8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.113.0/go.mod h1:Iw3ndTvDCbmN6uugOfIqmfb1pgCWTYg+tXXS2rr3QJo= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.113.0 h1:XzI7y1bC29bnJ9VgyA0JCws0e/rIyt7yteT5gGLe6nw= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.113.0/go.mod h1:OxdhzDFd7/cRck6LeWLF2TUC/QhwoJSUlw35NuVbvzA= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0 h1:zDScLkNf/llyiH1cjpVv5PhJAT5AcHIXCB35zW5jsbM= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0/go.mod h1:S+GR7FZJYtFBnbjgD737QImuvm8d4+PBccpI0Xrda4E= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.113.0 h1:vgYhhliqQ6WUy5b1BE0ILJQKTweaLDPI5l/bUIunqLo= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.113.0/go.mod h1:UG/8zqyqbdN0HHkiWC7GZW4wFL4GIyRtsshc1RY8bGo= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.113.0 h1:c4vPI/PrRPnueoaKJKzBztsASIn5yZ7BT7uc4PHR39E= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.113.0/go.mod h1:MR9VrhTtPazVAEWR/RPQln1i0Cmrc/6e2+zRpI/gwhM= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.113.0 h1:frNZmJqTjdGO4vkxM2LN5URbddpD+R8taOCtDz3JJiQ= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.113.0/go.mod h1:qFJOAhv+agSMdJSmsIW4QDsTWIdWo8NRZvY3OV2iWV8= +github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.114.0 h1:cjiWapRbK28GxsZyKCegQOLJCEiwIWEV+INvxrS8HSA= +github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.114.0/go.mod h1:1Mx3wOciTCjrN9PgVAB4uFBeoqEfyeZEuvpguOasm4s= +github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0 h1:oA79wMjQSQBKz+X90LD5edNOyaEsewspJRBYgxliEMA= +github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0/go.mod h1:uk7Z36vhLtevNy5672jGxgzNJA2LND6wmispTuhHCxI= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.114.0 h1:K1/5bZ5EbmxHH4cfvPo/3sYrHUVnM6H86C0dVkf+6TM= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.114.0/go.mod h1:XWnw+AWGoINC/fG4urgmiLVXDaYeqkRVLKUJMPqC3Ls= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.114.0 h1:quLs6NbDeG2x2eLmncaq/P4yvnCPLAelFqXac2eMRSw= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.114.0/go.mod h1:xX2v2kixYWZbFvnT5re3BGg2pyLy78KSIiMed7P2c/c= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 h1:G7SHyt5TvFSEsiaxyhZdqkjcRoK2rP5wl4a3Mu31JM4= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0/go.mod h1:TRsDReUh7ALEUutKVoLlGMRc2QECZAyT/5g/cpAr+aw= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 h1:6g5EvbygaEBqed0rJotGHcfxgxGV8hSN/4ZoZFfac5M= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0/go.mod h1:gU87iMdDAdHrQQCWTURbrlE/dLYgFecJ/+WBHuNMjQI= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.114.0 h1:4qELD/ZwgvXE5PshGzJ9Eu+JEQdLIok6V1x8rvqL+yk= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.114.0/go.mod h1:3U1KoAsmQd9H37t8VkesFfB56tThrPsNVG+ddsMJ2zM= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.114.0 h1:0LbaoE7Aof8J4CVQ5kYv1QbuL3usTxLRSMFisDNBX9U= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.114.0/go.mod h1:ByoGXMLeHE/k5ELO3EITitVmvq3bh4Z/GVwWZZxrQ5s= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0 h1:d2wCLlENxH4I2axQWaogivx/5ZIjDYgn9MIf6sFxlJ4= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0/go.mod h1:Psyligv8GKL9WI3TraW3BLwkOX4TRxaaa1BBQQyICzA= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.114.0 h1:WrVBqO/ps3KvUyEhtdL/uDDHhKoszLEE1ywDbwskNRg= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.114.0/go.mod h1:JYklzR+ZxQaxjzlfJP3bxX6rQFl/Hbo0vd3yNj/1s1s= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.114.0 h1:dtW9JkkpAm33Y47estFyqEL0CW05DHGmlLQxZUSx78w= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.114.0/go.mod h1:FcClDm9XVV5tzUDzmH2Mhe6TfYiZ/3GSAQITnuCjZgg= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.114.0 h1:cGJRIzB5N3oe1c8vD5HqCuy4dbQE9EDJZ9C7vJn+K8U= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.114.0/go.mod h1:p53t8aSCVoTKXVOsNx62rDLrSdEkBFB4H85yEiTWkyI= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.114.0 h1:lt87gwZaUP9Lh0EAgZFTYego0k89NU8K6Qkk82oR/n8= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.114.0/go.mod h1:nxxBsX9Z2Q7HQvybUTx8CzUvYCJewKBM1Eys6SiS0eg= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 h1:Wq1iTmd0K1SSOIA43Wy2uAU6SB4f9ogyN3ZmvDgTURg= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0/go.mod h1:VCj9H0QxRBWSgbl1pUo8p0NrqnmcxpPo0QjKLFtWkO0= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.114.0 h1:SXi6JSSs2cWROnC1U2v3XysG3t58ilGUwoLqxpGuwFU= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.114.0/go.mod h1:LSd6sus2Jvpg3M3vM4HgmVh3/dmMtcJmTqELrFOQFRg= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.114.0 h1:G6U2eHR2CGSYb2btot6l05o+mdqsC0ZN7dH8QssXSdk= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.114.0/go.mod h1:kZQvVVzpahX8kFUfEBmzFtDhkKAQW6i8XQCMozDRUlk= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0 h1:m8uPYU2rTj0sKiYgzCvIPajD3meiYsu+nX0hplUnlEU= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0/go.mod h1:P0BaP92pXPkTyTmObfLYUoRBfMYU+i0hdS3oM1DpGJo= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0 h1:Qg80zPfNMlub7LO07VMDElOu3M2oxqdZgvvB+X72a4U= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0/go.mod h1:5qsGcjFV3WFI6J2onAlkR7Xd/8VtwJcECaDRZfW4Tb4= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0 h1:PwUMZ6fHMEUV5i9hUly+z3UujDTTdxQtWzL0rWc/lgA= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0/go.mod h1:YEHL6w4vvB9b0/lNwGjz8DyWXTF/7Xw0Hkgc3mGWwa8= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 h1:mtSN/07RGQPi1/zHVSZg4G0qRtOoJpPew5jsQWv9uS0= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0/go.mod h1:C9Zgh/N3j4NR2D+1FGAA1YizhFW9OS51DwLUFJTdXN4= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.114.0 h1:eJxap/u8Q5wYnBcJTrTS1Tq6wq31SOlIr+FMJX5ZoC8= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.114.0/go.mod h1:H7uIA2RBaxit2mSwSU8Wc7QXSJX7r8UR66YvdcLmtto= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.114.0 h1:tG98F8g5T7lKYaoxSh9e76agmkauPtXiMbQhuWAeG+I= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.114.0/go.mod h1:eN3xPxPcRZH0wofEQ1Greu1c561qEGeYv5Zt0uedmMM= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 h1:I4ZYVRYW3Cjb65sPENZ9kHam/JUMXNEp2n/knJ0C0Vc= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0/go.mod h1:4BhyIaOn2LS48WS+ZNix4TpP0+goq9gDEtGzth5Cr3M= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.114.0 h1:NrD8Qo2CxrHRAlLuOHm75RtO1xEnul6DDkn6tQMsuSg= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.114.0/go.mod h1:XOlJzIYwicEPMxu6Gv9TL9pS6El+ffjQOAu/wPiL+Jg= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0 h1:lKG7Ghtba2l9P4FFP7I+SbVRqHEpXCGOZs367YTEwGc= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0/go.mod h1:5U/lrnkK5YtIeTFXI8OzDN/d827WtI6pQvu7/59pUVA= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 h1:gdljk66vBTT3lWfSdP4Hl7FaABdH1YPhUCH6jnG2+qY= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0/go.mod h1:T1p6ShTr8farkE4qUB2TyGUIvRSN3s17D0qY7rMqCRM= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= @@ -844,128 +844,132 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/collector v0.113.0 h1:dBuo2/OKBhoMCR86W4fFJLXGQ0gJfKRmi65AZwFkU2I= -go.opentelemetry.io/collector v0.113.0/go.mod h1:XbjD4Yw9LunLo3IJu3ZZytNZ0drEVznxw1Z14Ujlw3s= -go.opentelemetry.io/collector/client v1.19.0 h1:TUal8WV1agTrZStgE7BJ8ZC0IHLGtrfgO9ogU9t1mv8= -go.opentelemetry.io/collector/client v1.19.0/go.mod h1:jgiXMEM6l8L2QEyf2I/M47Zd8+G7e4z+6H8q5SkHOlQ= -go.opentelemetry.io/collector/component v0.113.0 h1:/nx+RvZgxUEXP+YcTj69rEtuSEGkfaCyp/ad5zQGLjU= -go.opentelemetry.io/collector/component v0.113.0/go.mod h1:2T779hIGHU9i7xbXbV3q1/JnRw2FyzUYXW2vq47A6EU= -go.opentelemetry.io/collector/component/componentstatus v0.113.0 h1:iNlUi+vDo7OqQwg4UOjfqqY3Xram4SkdcSZAyxt6QfE= -go.opentelemetry.io/collector/component/componentstatus v0.113.0/go.mod h1:NF/hVnP0kcsEqV9x14yMxN9GoehuOaVgMpO+s2KE+28= -go.opentelemetry.io/collector/config/configauth v0.113.0 h1:CBz43fGpN41MwLdwe3mw/XVSIDvGRMT8aaaPuqKukTU= -go.opentelemetry.io/collector/config/configauth v0.113.0/go.mod h1:Q8SlxrIvL3FJO51hXa4n9ARvox04lK8mmpjf4b3UNAU= -go.opentelemetry.io/collector/config/configcompression v1.19.0 h1:bTSjTLhnPXX1NSFM6GzguEM/NBe8QUPsXHc9kMOAJzE= -go.opentelemetry.io/collector/config/configcompression v1.19.0/go.mod h1:pnxkFCLUZLKWzYJvfSwZnPrnm0twX14CYj2ADth5xiU= -go.opentelemetry.io/collector/config/configgrpc v0.113.0 h1:rNbRd033JlIeU+TH+3bEt4OwRlEwrktWdf6V+VUJUPk= -go.opentelemetry.io/collector/config/configgrpc v0.113.0/go.mod h1:InXxPUj1oxJ57Sl954d2tQxXTgVHhfppFYjMwGjQukg= -go.opentelemetry.io/collector/config/confighttp v0.113.0 h1:a6iO0y1ZM5CPDvwbryzU+GpqAtAQ3eSfNseoAUogw7c= -go.opentelemetry.io/collector/config/confighttp v0.113.0/go.mod h1:JZ9EwoiWMIrXt5v+d/q54TeUhPdAoLDimSEqTtddW6E= -go.opentelemetry.io/collector/config/confignet v1.19.0 h1:gEDTd8zLx4pPpG5///XPRpbYUpvKsuQzDdM5IEULY9w= -go.opentelemetry.io/collector/config/confignet v1.19.0/go.mod h1:o3v4joAEjvLwntqexg5ixMqRrU1+Vst+jWuCUaBNgOg= -go.opentelemetry.io/collector/config/configopaque v1.19.0 h1:7uvntQeAAtqCaeiS2dDGrT1wLPhWvDlEsD3SliA/koQ= -go.opentelemetry.io/collector/config/configopaque v1.19.0/go.mod h1:6zlLIyOoRpJJ+0bEKrlZOZon3rOp5Jrz9fMdR4twOS4= -go.opentelemetry.io/collector/config/configretry v1.19.0 h1:DEg8PXpo4ahMYgMzZZUU2cPcDF4vqowZlvimJ/t9InY= -go.opentelemetry.io/collector/config/configretry v1.19.0/go.mod h1:KvQF5cfphq1rQm1dKR4eLDNQYw6iI2fY72NMZVa+0N0= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0 h1:hweTRrVddnUeA3k7HzRY4oUR9lRdMa7of3mHNUS5YyA= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/config/configtls v1.19.0 h1:GQ/cF1hgNqHVBq2oSSrOFXxVCyMDyd5kq4R/RMEbL98= -go.opentelemetry.io/collector/config/configtls v1.19.0/go.mod h1:1hyqnYB3JqEUlk1ME/s9HYz4oCRcxQCRxsJitFFT/cA= -go.opentelemetry.io/collector/config/internal v0.113.0 h1:9RAzH8v7ItFT1npHpvP0SvUzBHcZDliCGRo9Spp6v7c= -go.opentelemetry.io/collector/config/internal v0.113.0/go.mod h1:yC7E4h1Uj0SubxcFImh6OvBHFTjMh99+A5PuyIgDWqc= -go.opentelemetry.io/collector/confmap v1.19.0 h1:TQ0lZpAKqgsE0EKk+u4JA+uBbPYeFRmWP3GH43w40CY= -go.opentelemetry.io/collector/confmap v1.19.0/go.mod h1:GgNu1ElPGmLn9govqIfjaopvdspw4PJ9KeDtWC4E2Q4= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.19.0 h1:f8O/I5pVRN86Gx5mHekNx92S6fGdOS4VcooRJKWe6Bs= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.19.0/go.mod h1:AiaW5YW1LD0/WlZuc8eZuZPBH6PA9QqsiAYRX1iC6T0= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.19.0 h1:TYwyk4ea3U+5MYcEjrzZAaonBcLlabQu8CZeB7ekAYY= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.19.0/go.mod h1:i3mL4OSGI5JM0hnzHujhJK+LDlvO3XrJxBsuclfU/jY= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.19.0 h1:a077jcs3DVtaVdmgmCk3x4rRYuTkIqMDsoUc+VICHZk= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.19.0/go.mod h1:HjYkzhHbwUacv27nq0JLsslGpbtrXyyfU30Oc72AWLU= -go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.19.0 h1:8LoQxjlduFQUEwYuHWnxEj0A+GcAtpv2qPpDJVz7A5E= -go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.19.0/go.mod h1:Y8ErEl5m9+1AWzWcMn52PATH5dw50wuyyPMffK62RCI= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.19.0 h1:oV66DKiEdAt8EMZqGSChK2iEOxjrVaWRhf4OqqmqjbM= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.19.0/go.mod h1:jtNUdO6i1k38BG7vFst+d1jk/N+c419uVR8HB4J0VjI= -go.opentelemetry.io/collector/connector v0.113.0 h1:ii+s1CjsLxtglqRlFs6tv8UU/uX45dyN9lbTRbR0p8g= -go.opentelemetry.io/collector/connector v0.113.0/go.mod h1:KmA8eQouTVxVk65Bf6utuMjWovMuOvNVRcYV60CAGtc= -go.opentelemetry.io/collector/connector/connectorprofiles v0.113.0 h1:yAEKTxVGpBtHrrXeZFrBcVOQkduxCncH0o4hqKrDRyw= -go.opentelemetry.io/collector/connector/connectorprofiles v0.113.0/go.mod h1:+mwzwIZ1cEK29ByfC38uF8hmFO8Wf9ShT1c756XX+RI= -go.opentelemetry.io/collector/connector/connectortest v0.113.0 h1:WHekoL0izkrKLVQLv79v0QhqfnXkVcw0sgdF07EqWLM= -go.opentelemetry.io/collector/connector/connectortest v0.113.0/go.mod h1:KouywNfkxRf+yzbI2pdolzTLkLoCV4ASEI2o2pDt+Cg= -go.opentelemetry.io/collector/consumer v0.113.0 h1:KJSiK5vSIY9dgPxwKfQ3gOgKtQsqc+7IB7mGhUAL5c8= -go.opentelemetry.io/collector/consumer v0.113.0/go.mod h1:zHMlXYFaJlZoLCBR6UwWoyXZ/adcO1u2ydqUal3VmYU= -go.opentelemetry.io/collector/consumer/consumererror v0.113.0 h1:Hd2N7n9RKbnKRaVrdw6fPBoQko5zZIgCxwVxkL6SAIE= -go.opentelemetry.io/collector/consumer/consumererror v0.113.0/go.mod h1:o0MAGFdzcr7LFTUQ6iivPPhbVmn2ZVIYm3FPXk2+JUo= -go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.113.0 h1:2kLIt+6dGmhCd48CWXh3IEon/uW4+c8y81IGCA/h8wE= -go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.113.0/go.mod h1:/eESy7Ifyf7G6r6WUpEOq2tnfjIJ2QNB2EvZcEu0aWA= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0 h1:RftAcQUY5UOfbEK4s16jnORqTx16y9+PxA1lQwt98cQ= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0/go.mod h1:ZuHrQ4pWguh6dw0DgTfcUtdY/T+cnOJJNP6LMbm5Y5A= -go.opentelemetry.io/collector/consumer/consumertest v0.113.0 h1:ua2AjNx3DUA8qElXNkggB4w3VDL/rBKBvryOQkhumH8= -go.opentelemetry.io/collector/consumer/consumertest v0.113.0/go.mod h1:vK8o4ZTZSiG3rVyqxZcCNmT/cvEfx34ig7V65L9+6Rg= -go.opentelemetry.io/collector/exporter v0.113.0 h1:lDZJ6xfuhyLsT/7lqLhIN/ftA6G+9fuYFtubPFvNDxo= -go.opentelemetry.io/collector/exporter v0.113.0/go.mod h1:0W4NBf5NjWYxR8oJodmOybgN4O0MLazdJwwHevirvXg= -go.opentelemetry.io/collector/exporter/debugexporter v0.113.0 h1:iShn3SuSpx78YLgl7fQCJsHLs7z0RDtbN58/Amoy5xc= -go.opentelemetry.io/collector/exporter/debugexporter v0.113.0/go.mod h1:O1dLnYA81a+ZecBD89vjZSBgkAnhnfXwsmYsE7LP2/s= -go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.113.0 h1:Auz2vZYReIlyDvJ162OCO8XcV7L2BIbFb5HJWxerc5A= -go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.113.0/go.mod h1:JQuawcAfDuzNneDF5Ep1CZJ5snsLp6Bh1gZcHhja7yU= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0 h1:8bsk3wYYNr+WAM5nZkFjiLYSTH9MsY2tm7nUpMWt3qc= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0/go.mod h1:/HFWF846XePYL/qKDtcEAFgkiGSkLUTaC59A5F48axM= -go.opentelemetry.io/collector/exporter/exportertest v0.113.0 h1:U6cRxjJS7td8iNriUI2QfEdH+Yj60ytyvpmnmKTw0+8= -go.opentelemetry.io/collector/exporter/exportertest v0.113.0/go.mod h1:SRz5jGyAjtNiWwJ93B1+Ndk1p3oFtQsyLw52UGeyRwc= -go.opentelemetry.io/collector/exporter/otlpexporter v0.113.0 h1://7diunG5SohqaYfqvHzCtcfrY7y3WQj0vklFYgeNW4= -go.opentelemetry.io/collector/exporter/otlpexporter v0.113.0/go.mod h1:THF0eq4lA6dYOho53iKFCBOv91HEeISZyep5dXr+fBU= -go.opentelemetry.io/collector/exporter/otlphttpexporter v0.113.0 h1:22Srn4V6ogOdi4Bn6eKtKqAidWyjPkYKYDR3Xq91nFY= -go.opentelemetry.io/collector/exporter/otlphttpexporter v0.113.0/go.mod h1:BRA54WRyPS9RYDIUEGxxJvxJ/uZ66++bCFPHliDstCQ= -go.opentelemetry.io/collector/extension v0.113.0 h1:Vp/YSL8ZCkJQrP1lf2Bm5yaTvcp6ROO3AnfuSL3GEXM= -go.opentelemetry.io/collector/extension v0.113.0/go.mod h1:Pwp0TNqdHeER4V1I6H6oCvrto/riiOAqs3737BWCnjw= -go.opentelemetry.io/collector/extension/auth v0.113.0 h1:4ggRy1vepOabUiCWfU+6M9P/ftXojMUNAvBpeLihYj8= -go.opentelemetry.io/collector/extension/auth v0.113.0/go.mod h1:VbvAm2YZAqePkWgwn0m0vBaq3aC49CxPVwHmrJ24aeQ= -go.opentelemetry.io/collector/extension/experimental/storage v0.113.0 h1:Qq4IaB6bMUrf/bWoPZ5ESWywCt+vDi8I/ChYejIEPcc= -go.opentelemetry.io/collector/extension/experimental/storage v0.113.0/go.mod h1:BRmo+A7f06u/rhyLauU/Vogk+QRN0y1j2VVVgMGWrfQ= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.113.0 h1:GuJzpnrJtsMrKWGmb1VL4EqL6x1HDtZmtvy3yEjth6Y= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.113.0/go.mod h1:oa72qndu7nAfEeEpDyDi9qLcaSJGIscLc/eeojFADx0= -go.opentelemetry.io/collector/extension/zpagesextension v0.113.0 h1:b/Clxso9uVwLVYjvRQ1NGBWHpUEZ/++uA5sJbBj0ryo= -go.opentelemetry.io/collector/extension/zpagesextension v0.113.0/go.mod h1:5csGYy9Ydfy6Hpw3Tod864P6HUEZpA6UiuPJPG3TjSU= -go.opentelemetry.io/collector/featuregate v1.19.0 h1:ASea2sU+tdpKI3RxIJC/pufDAfwAmrvcQ4EmTHVu0B0= -go.opentelemetry.io/collector/featuregate v1.19.0/go.mod h1:47xrISO71vJ83LSMm8+yIDsUbKktUp48Ovt7RR6VbRs= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.113.0 h1:Beu2zAN6/EDXQ6hMFU6FT1BsnU5FXmWNOlfTAhrgbGc= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.113.0/go.mod h1:WUXbc4L6KJ3SpmsxBgId0OYzRDuS7n274kNpqrgnSmY= -go.opentelemetry.io/collector/internal/sharedcomponent v0.113.0 h1:a4gT+t+rboCaH70anhu+ZQp9IJ7UjVeZxZJvxTBgCqU= -go.opentelemetry.io/collector/internal/sharedcomponent v0.113.0/go.mod h1:6WDDyjI4pbtfUmtv/JKLs7OwieEEvaDVb3Zcc4oA9Vg= -go.opentelemetry.io/collector/otelcol v0.113.0 h1:t32gA8Pg9lsqYQml4mgvHdqFSsjvPZMvGywi0zXQYjk= -go.opentelemetry.io/collector/otelcol v0.113.0/go.mod h1:PV6pDLPEaulRs3ceWYNEDuG5100F35I5VzeC2ekT/vY= -go.opentelemetry.io/collector/otelcol/otelcoltest v0.113.0 h1:bfu9oQQbO6KEcpgh7muc1ixsGQs+qFWwi9LyabGILqw= -go.opentelemetry.io/collector/otelcol/otelcoltest v0.113.0/go.mod h1:0bag/J2REbnIKKKHvYe0RqyjmsUv4OJH14kNef+lD4Q= -go.opentelemetry.io/collector/pdata v1.19.0 h1:jmnU5R8TOCbwRr4B8sjdRxM7L5WnEKlQWX1dtLYxIbE= -go.opentelemetry.io/collector/pdata v1.19.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/pdata/pprofile v0.113.0 h1:VRf4p0VhfuaR+Epy/nMIlu/9t39WU9CUgHVUvpuGxfU= -go.opentelemetry.io/collector/pdata/pprofile v0.113.0/go.mod h1:5aDejksdXh5PdJN/OhpzATGT3kbNL0RMmw2Q0Q6E/o0= -go.opentelemetry.io/collector/pdata/testdata v0.113.0 h1:vRfn85jicO2F4eOTgsWtzmU/K3E/uZUtM1HEefvvJD8= -go.opentelemetry.io/collector/pdata/testdata v0.113.0/go.mod h1:sR+6eR+YEJhYZu9StbqzeWcCmHpfBAgX/qjP82HY9Gw= -go.opentelemetry.io/collector/pipeline v0.113.0 h1:vSRzRe3717jV0btCNPhVkhg2lu0uFxcm2VO+vhad/eE= -go.opentelemetry.io/collector/pipeline v0.113.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= -go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.113.0 h1:PwQnErsLvEd1x6VIyjLmKQot9huKWqIfEz1kd+8aj4k= -go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.113.0/go.mod h1:tChJYsCG3wc6JPT9aJO3y+32V14NhmCFZOh3k5ORGdQ= -go.opentelemetry.io/collector/processor v0.113.0 h1:BQI6MsKtiCG9HT/nmiRXTKP6SZFrjFKVfM6pTQfbc0k= -go.opentelemetry.io/collector/processor v0.113.0/go.mod h1:oX91zMI8ZkoaYSUfUYflHiMiiBJPKtODNBUCrETLLd8= -go.opentelemetry.io/collector/processor/batchprocessor v0.113.0 h1:LPNbVILg+cKTFIi8ziIa2idZ5MRlBIf4Wr72gZNgXb0= -go.opentelemetry.io/collector/processor/batchprocessor v0.113.0/go.mod h1:tCg+B/1idJS5inxod+nRPXFdVi89Bsnl6RvzIOO9k5I= -go.opentelemetry.io/collector/processor/processorprofiles v0.113.0 h1:cczN6whdrCWww3T0FBV3U7lsVKQmkWDX05M+9lANHgk= -go.opentelemetry.io/collector/processor/processorprofiles v0.113.0/go.mod h1:4Dmx5qsvujgJ+MC+KqWI7UDVM2liXa3sH/9XnGiL9aE= -go.opentelemetry.io/collector/processor/processortest v0.113.0 h1:jGoDJ+tDCzuDcAWZeshQtnK/DQAvMKd4wZAIDgAM5aA= -go.opentelemetry.io/collector/processor/processortest v0.113.0/go.mod h1:tNg04r5KlpVx774jSC8U/oYst1eb7WIiz+0AjXKJ0Uw= -go.opentelemetry.io/collector/receiver v0.113.0 h1:vraAbkPy8Pz9x5X39gV+j9t6x23PNsY2aJ6gQMugRbQ= -go.opentelemetry.io/collector/receiver v0.113.0/go.mod h1:IUa8/lNw8Qh4L5Q3jOeRWKW0ebQPoNcfhytxN5Puq2A= -go.opentelemetry.io/collector/receiver/nopreceiver v0.113.0 h1:Kgan6/DCH1YZzOztXPPair+V2czPmrJxxrIIxLVYmn4= -go.opentelemetry.io/collector/receiver/nopreceiver v0.113.0/go.mod h1:1nVoRLC/antEw4gvcyaRBT3aBt7nh3KBASWLLhmm0Ts= -go.opentelemetry.io/collector/receiver/otlpreceiver v0.113.0 h1:yhnj8kmh1IQ4g6fIWvhum/wYPUU2WmRpQuy1iSvf4e4= -go.opentelemetry.io/collector/receiver/otlpreceiver v0.113.0/go.mod h1:3OB+oJlOb1rlLLdBwxae4g2Qh5C97Eg17HVveIddUCw= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0 h1:uVxuzjGe2t1sbwahSBowVHYnGzpzn8brmfn8z1UHvQg= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0/go.mod h1:khKDkzYJR2x2OPUqGSmoSncdINT9lUE5IThiHPDbqZk= -go.opentelemetry.io/collector/receiver/receivertest v0.113.0 h1:0vOvz3S4Q/KwcNCS9C7zPo0uxD6RSWktG88yGdxfV6g= -go.opentelemetry.io/collector/receiver/receivertest v0.113.0/go.mod h1:sRq5ctm5UE/0Ar562wnCVQ1zbAie/D127D1WbtbEuEc= -go.opentelemetry.io/collector/semconv v0.113.0 h1:twenSI7M7MJMJKW8D6a/GXxPZTPbama/weywBtV2iFw= -go.opentelemetry.io/collector/semconv v0.113.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= -go.opentelemetry.io/collector/service v0.113.0 h1:SFT+kWuj9TehC34MLEWfXH6QocGl3MYqLJ7UbxZtWzM= -go.opentelemetry.io/collector/service v0.113.0/go.mod h1:6+JY80Yd4J4RWpvRmpCUUZFOZKGVs9a1QKCKPlDrKfs= +go.opentelemetry.io/collector v0.114.0 h1:XLLLOHns06P9XjVHyp0OdEMdwXvol5MLzugqQMmXYuU= +go.opentelemetry.io/collector v0.114.0/go.mod h1:XbjD4Yw9LunLo3IJu3ZZytNZ0drEVznxw1Z14Ujlw3s= +go.opentelemetry.io/collector/client v1.20.0 h1:o60wPcj5nLtaRenF+1E5p4QXFS3TDL6vHlw+GOon3rg= +go.opentelemetry.io/collector/client v1.20.0/go.mod h1:6aqkszco9FaLWCxyJEVam6PP7cUa8mPRIXeS5eZGj0U= +go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= +go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= +go.opentelemetry.io/collector/component/componentstatus v0.114.0 h1:y9my/xink8KB5lK8zFAjgB2+pEh0QYy5TM972fxZY9w= +go.opentelemetry.io/collector/component/componentstatus v0.114.0/go.mod h1:RIoeCYZpPaae7QLE/1RacqzhHuXBmzRAk9H/EwYtIIs= +go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= +go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= +go.opentelemetry.io/collector/config/configauth v0.114.0 h1:R2sJ6xpsLYGH0yU0vCxotzBYDKR/Hrjv0A7y9lwMyiw= +go.opentelemetry.io/collector/config/configauth v0.114.0/go.mod h1:3Z24KcCpG+WYCeQYfs/cNp5cP2BDeOqLCtOEgs/rPqM= +go.opentelemetry.io/collector/config/configcompression v1.20.0 h1:H/mvz7J/5z+O74YsO0t2tk+REnO2tzLM8TgIQ4AZ5w0= +go.opentelemetry.io/collector/config/configcompression v1.20.0/go.mod h1:pnxkFCLUZLKWzYJvfSwZnPrnm0twX14CYj2ADth5xiU= +go.opentelemetry.io/collector/config/configgrpc v0.114.0 h1:3kGI9CljNtzClF+9sg7NWZ5qUoy4qZvGxv9q3phDn7k= +go.opentelemetry.io/collector/config/configgrpc v0.114.0/go.mod h1:IHSyqSdjPXW34aif/8BhNlXxRcIVV6026jVi0/+ituY= +go.opentelemetry.io/collector/config/confighttp v0.114.0 h1:DjGsBvVm+mGK3IpJBaXianWhwcxEC1fF33cpuC1LY/I= +go.opentelemetry.io/collector/config/confighttp v0.114.0/go.mod h1:nrlNLxOZ+4JQaV9j0TiqQV7LOHhrRivPrT8nQRHED3Q= +go.opentelemetry.io/collector/config/confignet v1.20.0 h1:LrM6AuiY8N/woTP4SWhL2V0562JXwJs9MRNFZJFLtRY= +go.opentelemetry.io/collector/config/confignet v1.20.0/go.mod h1:o3v4joAEjvLwntqexg5ixMqRrU1+Vst+jWuCUaBNgOg= +go.opentelemetry.io/collector/config/configopaque v1.20.0 h1:2I48zKiyyyYqjm7y0B9OLp24ku2ZSX3nCHG0r5FdWOQ= +go.opentelemetry.io/collector/config/configopaque v1.20.0/go.mod h1:6zlLIyOoRpJJ+0bEKrlZOZon3rOp5Jrz9fMdR4twOS4= +go.opentelemetry.io/collector/config/configretry v1.20.0 h1:z679mrMlW2a6tOOYPGdrS/QfALxdzWLQUOpH8Uu+D5Y= +go.opentelemetry.io/collector/config/configretry v1.20.0/go.mod h1:KvQF5cfphq1rQm1dKR4eLDNQYw6iI2fY72NMZVa+0N0= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= +go.opentelemetry.io/collector/config/configtls v1.20.0 h1:hNlJdwfyY5Qe54RLJ41lfLqKTn9ypkR7sk7JNCcSe2U= +go.opentelemetry.io/collector/config/configtls v1.20.0/go.mod h1:sav/txSHguadTYlSSK+BJO2ljJeYEtRoBahgzWAguYg= +go.opentelemetry.io/collector/config/internal v0.114.0 h1:uWSDWTJb8T6xRjKD9/XmEARakXnxgYVYKUeId78hErc= +go.opentelemetry.io/collector/config/internal v0.114.0/go.mod h1:yC7E4h1Uj0SubxcFImh6OvBHFTjMh99+A5PuyIgDWqc= +go.opentelemetry.io/collector/confmap v1.20.0 h1:ARfOwmkKxFOud1njl03yAHQ30+uenlzqCO6LBYamDTE= +go.opentelemetry.io/collector/confmap v1.20.0/go.mod h1:DMpd9Ay/ffls3JoQBQ73vWeRsz1rNuLbwjo6WtjSQus= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0 h1:I3xDecFXJVZBo5zJS7Y5SWBjF22XDWGZJgwotiwA5QM= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0/go.mod h1:CF0l8V8MNv+Wag8UkqObotFnlhMzdTFuk4/6kylKwYU= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0 h1:wWxvQ7wj+1O9yDGM5m1HPEz8FJewAHAUWadAAi0KVbM= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0/go.mod h1:/5HWIPjGYk8IUurs1CZUSjGaSsaQyJsfR8+Zs5rGJ6Y= +go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0 h1:YS1nB8vDoCS8IlfX5OP3QGS90y/hfflwZ7CoPQcAOlU= +go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0/go.mod h1:aV4UfkgcJ3eyXvfd3m694omN++1c96Joitab+YL6Xks= +go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0 h1:0BJHAeKFb46FCT0ehOmmGs0v31cGuAh4DIic07J71NU= +go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0/go.mod h1:gBiweuH4EDuPh9mpLCB/wPZzostdA+gKY8hABwbotQk= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0 h1:jSXTojCPI6Xr98m99nF7qbQFnw3INLEOHRcqcHS+lak= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0/go.mod h1:Pu95O2JE3R+0BBTbe4gpAC8ms3w6FbICHJw3WvGWrjs= +go.opentelemetry.io/collector/connector v0.114.0 h1:efGAeTCtg8zp5Hyd7Am8kBUgsSxWEFlFtAu4OX4mcEA= +go.opentelemetry.io/collector/connector v0.114.0/go.mod h1:8DhGgD8RhkF0ooELl4NOPPD/wgHuXHmY7g90RwJ2eNo= +go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0 h1:uVs9gy3UfQBmH0636ouIbGIoWis7zmKN+ny4XOGm36U= +go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0/go.mod h1:X681qFEAsEPMDQ0pMsD/3DqePw58sfLew1QbBKvGnmw= +go.opentelemetry.io/collector/connector/connectortest v0.114.0 h1:Fpy1JHyNOLdVzNcmxUY6Jwxdz6JDcTXL1NCfw8k1AOc= +go.opentelemetry.io/collector/connector/connectortest v0.114.0/go.mod h1:1zaAlODuL9iNyfyjHQeGCpbcaUjf5b68t8LqlwHKBNA= +go.opentelemetry.io/collector/consumer v0.114.0 h1:1zVaHvfIZowGwZRitRBRo3i+RP2StlU+GClYiofSw0Q= +go.opentelemetry.io/collector/consumer v0.114.0/go.mod h1:d+Mrzt9hsH1ub3zmwSlnQVPLeTYir4Mgo7CrWfnncN4= +go.opentelemetry.io/collector/consumer/consumererror v0.114.0 h1:r2YiELfWerb40FHD23V04gNjIkLUcjEKGxI4Vtm2iO4= +go.opentelemetry.io/collector/consumer/consumererror v0.114.0/go.mod h1:MzIrLQ5jptO2egypolhlAbZsWZr29WC4FhSxQjnxcvg= +go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.114.0 h1:0IpwQXyHDXhIaLA6w2VlD6Ca0iuX4wlfCDiF+BKCwEo= +go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.114.0/go.mod h1:9pKeVRcCT92x5/UIULMLAop+J23VYJCWSZcVhmbup5I= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 h1:5pXYy3E6UK5Huu3aQbsYL8B6E6MyWx4fvXXDn+oXZaA= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0/go.mod h1:PMq3f54KcJQO4v1tue0QxQScu7REFVADlXxXSAYMiN0= +go.opentelemetry.io/collector/consumer/consumertest v0.114.0 h1:isaTwJK5DOy8Bs7GuLq23ejfgj8gLIo5dOUvkRnLF4g= +go.opentelemetry.io/collector/consumer/consumertest v0.114.0/go.mod h1:GNeLPkfRPdh06n/Rv1UKa/cAtCKjN0a7ADyHjIj4HFE= +go.opentelemetry.io/collector/exporter v0.114.0 h1:5/0BBpXuCJQSQ5SQf31g7j6T4XEKkyx9mZMcA2rS5e8= +go.opentelemetry.io/collector/exporter v0.114.0/go.mod h1:atpd0wWXgh5LAZ0REU/d/Ti/q50HDfnlBIjMjJQlKFg= +go.opentelemetry.io/collector/exporter/debugexporter v0.114.0 h1:7t1ij8fuV510SRT+eabgbl4973DaAtGmTx0RuGJy8DU= +go.opentelemetry.io/collector/exporter/debugexporter v0.114.0/go.mod h1:rC8PHnf1MniZN4ryU4i5GsyXKRkMEGwEGF2hxHx/JyU= +go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.114.0 h1:W/KsD33oMg/M7Kd5/m2riliWrTg3W9IgQVNeZL3cZjs= +go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.114.0/go.mod h1:Fh47qYBjX+jm+mpWBcqmaaQucZ6KiKm5P0drEt+xNRc= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 h1:/wmWOSBHcvtz3Pbv7+rWCqPPQuNvYaoidKKaOqZsLKs= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0/go.mod h1:epRYTkyJZTSQZBJflMGHUyUo2EdLPhsaZEyo5Qm848A= +go.opentelemetry.io/collector/exporter/exportertest v0.114.0 h1:vo0idBJT+QACSM1KpjVLm9VeiXVwO7y4UnMpGxN6EyM= +go.opentelemetry.io/collector/exporter/exportertest v0.114.0/go.mod h1:420ssFrhaphneybstbMeSIiqSRoaBARPgO71O17foaM= +go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0 h1:SC/xZNCB/eCVflrhDFX4WtrpvBPsZhmXVuSvgHQBsB8= +go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0/go.mod h1:q1273aUuYewtDUFwizv0AKu5/D+gbQAi8UFLKDv1eMk= +go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0 h1:+nPJraioPpLS2Kj3+YIfErDDFHsLX/5oPMSMAYKoggM= +go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0/go.mod h1:O+75KYmyJwK61VDsW7LHo2qFFXCTf3kEJH3ZvW1bb4Y= +go.opentelemetry.io/collector/extension v0.114.0 h1:9Qb92y8hD2WDC5aMDoj4JNQN+/5BQYJWPUPzLXX+iGw= +go.opentelemetry.io/collector/extension v0.114.0/go.mod h1:Yk2/1ptVgfTr12t+22v93nYJpioP14pURv2YercSzU0= +go.opentelemetry.io/collector/extension/auth v0.114.0 h1:1K2qh4yvG8kKR/sTAobI/rw5VxzPZoKcl3FmC195vvo= +go.opentelemetry.io/collector/extension/auth v0.114.0/go.mod h1:IjtsG+jUVJB0utKF8dAK8pLutRun3aEgASshImzsw/U= +go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 h1:hLyX9UvmY0t6iBnk3CqvyNck2U0QjPACekj7pDRx2hA= +go.opentelemetry.io/collector/extension/experimental/storage v0.114.0/go.mod h1:WqYRQVJjJLE1rm+y/ks1wPdPRGWePEvE1VO07xm2J2k= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0 h1:3OHll7gp5XIu7FVgon+koShPy797nze6EjCDokFUG7w= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0/go.mod h1:f0KdeLmE2jWVBmJ1U4WmfAtz1/tQUErGPfhPLKCQ49U= +go.opentelemetry.io/collector/extension/extensiontest v0.114.0 h1:ibXDms1qrswlvlR6b3d2BeyI8sXUXoFV11yOi9Sop8o= +go.opentelemetry.io/collector/extension/extensiontest v0.114.0/go.mod h1:/bOYmqu5yTDfI1bJZUxFqm8ZtmcodpquebiSxiQxtDY= +go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 h1:JosqAcdWw7IGsURJNR8f17xmaGCQEtKhQt9tM0T/DEg= +go.opentelemetry.io/collector/extension/zpagesextension v0.114.0/go.mod h1:+VO4p2GZvmIMqCVyIfS/U85Xqg+HIOe+mdl/ya+jVTE= +go.opentelemetry.io/collector/featuregate v1.20.0 h1:Mi7nMy/q52eruI+6jWnMKUOeM55XvwoPnGcdB1++O8c= +go.opentelemetry.io/collector/featuregate v1.20.0/go.mod h1:47xrISO71vJ83LSMm8+yIDsUbKktUp48Ovt7RR6VbRs= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0 h1:JM9huYqy5LTzmuxQmbPST3l5Ez5kJNit28c6WFWls34= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0/go.mod h1:V28tDU4Wvf1PfW1Ty/SBL9tpKul2iYGno/HkCWGDrj0= +go.opentelemetry.io/collector/internal/sharedcomponent v0.114.0 h1:DjX9ubjkKDnioQB03FYc40FTyhR25CdobMfjinKkZ1w= +go.opentelemetry.io/collector/internal/sharedcomponent v0.114.0/go.mod h1:lYlFiGIjPjhwTS/Xc+toJ9o3D8A6cCHuK1JX+ZbujVs= +go.opentelemetry.io/collector/otelcol v0.114.0 h1:d/nmYc+adzZ70g4zBMtgujGHVNulF59ExCpuM/3ZKV4= +go.opentelemetry.io/collector/otelcol v0.114.0/go.mod h1:DGmFFao5jHSwD6G1HjUjs0CYcyrTau+u7GjTRUGKN+4= +go.opentelemetry.io/collector/otelcol/otelcoltest v0.114.0 h1:Em5e1EgrPrS90EWDWLJHCvyFIDl5PIq1DuW9zd8F3pY= +go.opentelemetry.io/collector/otelcol/otelcoltest v0.114.0/go.mod h1:YAs78SaOJsf1HNWrNH+GFTdkS58dpQI98cok6gZP4Lg= +go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= +go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= +go.opentelemetry.io/collector/pdata/pprofile v0.114.0 h1:pUNfTzsI/JUTiE+DScDM4lsrPoxnVNLI2fbTxR/oapo= +go.opentelemetry.io/collector/pdata/pprofile v0.114.0/go.mod h1:4aNcj6WM1n1uXyFSXlhVs4ibrERgNYsTbzcYI2zGhxA= +go.opentelemetry.io/collector/pdata/testdata v0.114.0 h1:+AzszWSL1i4K6meQ8rU0JDDW55SYCXa6FVqfDixhhTo= +go.opentelemetry.io/collector/pdata/testdata v0.114.0/go.mod h1:bv8XFdCTZxG2MQB5l9dKxSxf5zBrcodwO6JOy1+AxXM= +go.opentelemetry.io/collector/pipeline v0.114.0 h1:v3YOhc5z0tD6QbO5n/pnftpIeroihM2ks9Z2yKPCcwY= +go.opentelemetry.io/collector/pipeline v0.114.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= +go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0 h1:LZgxMQ2zXcz8ILBefhxpZBpn/Rx+TJTncIIQy0LgtgY= +go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0/go.mod h1:bmyqQCJWcA53/GtqZJ2ahwmLdFl6UelFH2nR6OJFqpw= +go.opentelemetry.io/collector/processor v0.114.0 h1:6bqQgLL7BtKrNv4YkEOGjZfkcfZv/ciJSQx1epGG9Zk= +go.opentelemetry.io/collector/processor v0.114.0/go.mod h1:DV/wa+nAmSHIDeD9NblPwkY9PbgtDQAZJ+PE5biZwPc= +go.opentelemetry.io/collector/processor/batchprocessor v0.114.0 h1:Xu+pdPGIh6gLqHW5oYJsiim1mbnG85QaaUQy0YPoL+c= +go.opentelemetry.io/collector/processor/batchprocessor v0.114.0/go.mod h1:emnnL5CaliCnWjXNpNixqpvn7uc/kyUTv2939J/reMY= +go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 h1:+P/1nLouEXTnN8DVQl+qWwO4BTkQyNPG9t/FrpUqrSI= +go.opentelemetry.io/collector/processor/processorprofiles v0.114.0/go.mod h1:3fuHeNIpINwx3bqFMprmDJyr6y5tWoWbJH599kltO5Y= +go.opentelemetry.io/collector/processor/processortest v0.114.0 h1:3FTaVXAp0LoVmUJn1ewBFckAby7AHa6/Kcdj0xuW14c= +go.opentelemetry.io/collector/processor/processortest v0.114.0/go.mod h1:OgsdOs1Fv5ZGTTJPF5nNIUJh2YkuV1acWd73yWgnti4= +go.opentelemetry.io/collector/receiver v0.114.0 h1:90SAnXAjNq7/k52/pFmmb06Cf1YauoPYtbio4aOXafY= +go.opentelemetry.io/collector/receiver v0.114.0/go.mod h1:KUGT0/D953LXbGH/D3lLPU8yrU3HfWnUqpt4W4hSOnE= +go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0 h1:CMtfS6fwEwqwTMeC17A3Q2xsSkXfH4gG2SBZDr2txCw= +go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0/go.mod h1:ajp6ok8iSSAcyq58wcOUJVe++1mTQ1isxqlaNUgQNzo= +go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0 h1:8ASaxRWLe8P0pefOiYbCSZ0aXmwE4K06I8FBGc/n+J0= +go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0/go.mod h1:3vjOvYBWGUVzuaovoumMbNHEIK3PqDs5rzEyd/nzsLU= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 h1:ibhEfGpvNB3yrtpl2jYFabrunMk1hurxvMYpM0b1Ck4= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0/go.mod h1:UZyRfaasw+NLvN10AN8IQnmj5tQ3BOUH1uP2ctpO9f0= +go.opentelemetry.io/collector/receiver/receivertest v0.114.0 h1:D+Kh9t2n4asTnM+TiSxbrKlUemLZandWntj17BJWWb0= +go.opentelemetry.io/collector/receiver/receivertest v0.114.0/go.mod h1:mNSHQ13vFmqD+VAcRzLjStFBejbcWUn2Mp0pAd7Op+U= +go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= +go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= +go.opentelemetry.io/collector/service v0.114.0 h1:MYF/4nH1CgtiLx09503xPAAUZefCzG1kaO+oanwX590= +go.opentelemetry.io/collector/service v0.114.0/go.mod h1:xH5/RapJdf5Ohh8iU8J0ZstfFYciP1oJPesiByteZxo= go.opentelemetry.io/contrib/bridges/otelzap v0.6.0 h1:j8icMXyyqNf6HGuwlYhniPnVsbJIq7n+WirDu3VAJdQ= go.opentelemetry.io/contrib/bridges/otelzap v0.6.0/go.mod h1:evIOZpl+kAlU5IsaYX2Siw+IbpacAZvXemVsgt70uvw= go.opentelemetry.io/contrib/config v0.10.0 h1:2JknAzMaYjxrHkTnZh3eOme/Y2P5eHE2SWfhfV6Xd6c= @@ -982,26 +986,26 @@ go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.7.0 h1:mMOmtYie9Fx6TSVzw4W+NTpvoaS1JWWga37oI1a/4qQ= go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.7.0/go.mod h1:yy7nDsMMBUkD+jeekJ36ur5f3jJIrmCwUrY67VFhNpA= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0 h1:FZ6ei8GFW7kyPYdxJaV2rgI6M+4tvZzhYsQ2wgyVC08= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0/go.mod h1:MdEu/mC6j3D+tTEfvI15b5Ci2Fn7NneJ71YMoiS3tpI= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.31.0 h1:ZsXq73BERAiNuuFXYqP4MR5hBrjXfMGSO+Cx7qoOZiM= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.31.0/go.mod h1:hg1zaDMpyZJuUzjFxFsRYBoccE86tM9Uf4IqNMUxvrY= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 h1:j7ZSD+5yn+lo3sGV69nW04rRR0jhYnBwjuX3r0HvnK0= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0/go.mod h1:WXbYJTUaZXAbYd8lbgGuvih0yuCfOFC5RJoYnoLcGz8= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.32.0 h1:t/Qur3vKSkUCcDVaSumWF2PKHt85pc7fRvFuoVT8qFU= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.32.0/go.mod h1:Rl61tySSdcOJWoEgYZVtmnKdA0GeKrSqkHC1t+91CH8= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 h1:K0XaT3DwHAcV4nKLzcQvwAgSyisUghWoY20I7huthMk= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0/go.mod h1:B5Ki776z/MBnVha1Nzwp5arlzBbE3+1jk+pGmaP5HME= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 h1:FFeLy03iVTXP6ffeN2iXrxfGsZGCjVx0/4KlizjyBwU= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0/go.mod h1:TMu73/k1CP8nBUpDLc71Wj/Kf7ZS9FK5b53VapRsP9o= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0 h1:lUsI2TYsQw2r1IASwoROaCnjdj2cvC2+Jbxvk6nHnWU= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0/go.mod h1:2HpZxxQurfGxJlJDblybejHB6RX6pmExPNe517hREw4= -go.opentelemetry.io/otel/exporters/prometheus v0.53.0 h1:QXobPHrwiGLM4ufrY3EOmDPJpo2P90UuFau4CDPJA/I= -go.opentelemetry.io/otel/exporters/prometheus v0.53.0/go.mod h1:WOAXGr3D00CfzmFxtTV1eR0GpoHuPEu+HJT8UWW2SIU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.7.0 h1:TwmL3O3fRR80m8EshBrd8YydEZMcUCsZXzOUlnFohwM= go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.7.0/go.mod h1:tH98dDv5KPmPThswbXA0fr0Lwfs+OhK8HgaCo7PjRrk= -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.31.0 h1:HZgBIps9wH0RDrwjrmNa3DVbNRW60HEhdzqZFyAp3fI= -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.31.0/go.mod h1:RDRhvt6TDG0eIXmonAx5bd9IcwpqCkziwkOClzWKwAQ= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.32.0 h1:SZmDnHcgp3zwlPBS2JX2urGYe/jBKEIT6ZedHRUyCz8= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.32.0/go.mod h1:fdWW0HtZJ7+jNpTKUR0GpMEDP69nR8YBJQxNiVCE3jk= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.31.0 h1:UGZ1QwZWY67Z6BmckTU+9Rxn04m2bD3gD6Mk0OIOCPk= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.31.0/go.mod h1:fcwWuDuaObkkChiDlhEpSq9+X1C0omv+s5mBtToAQ64= -go.opentelemetry.io/otel/log v0.7.0 h1:d1abJc0b1QQZADKvfe9JqqrfmPYQCz2tUSO+0XZmuV4= -go.opentelemetry.io/otel/log v0.7.0/go.mod h1:2jf2z7uVfnzDNknKTO9G+ahcOAyWcp1fJmk/wJjULRo= +go.opentelemetry.io/otel/log v0.8.0 h1:egZ8vV5atrUWUbnSsHn6vB8R21G2wrKqNiDt3iWertk= +go.opentelemetry.io/otel/log v0.8.0/go.mod h1:M9qvDdUTRCopJcGRKg57+JSQ9LgLBrwwfC32epk5NX8= go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= @@ -1366,10 +1370,10 @@ google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7Fc google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 h1:T6rh4haD3GVYsgEfWExoCZA2o2FmbNyKpTuAxbEFPTg= -google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:wp2WsuBYj6j8wUdo3ToZsdxxixbvQNAHqVJrTgi5E5M= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 h1:QCqS/PdaHTSWGvupk2F/ehwHtGc0/GYkT+3GAcR1CCc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod index 5a27d0b0c54e6..4b4a4f6f694cf 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod @@ -105,26 +105,28 @@ require ( github.com/DataDog/datadog-go/v5 v5.5.0 github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.113.0 + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 github.com/stretchr/testify v1.9.0 - go.opentelemetry.io/collector/component v0.113.0 - go.opentelemetry.io/collector/config/confignet v1.19.0 - go.opentelemetry.io/collector/config/configretry v1.19.0 - go.opentelemetry.io/collector/consumer v0.113.0 - go.opentelemetry.io/collector/exporter v0.113.0 - go.opentelemetry.io/collector/exporter/exportertest v0.113.0 - go.opentelemetry.io/collector/featuregate v1.19.0 - go.opentelemetry.io/collector/pdata v1.19.0 + go.opentelemetry.io/collector/component v0.114.0 + go.opentelemetry.io/collector/config/confignet v1.20.0 + go.opentelemetry.io/collector/config/configretry v1.20.0 + go.opentelemetry.io/collector/consumer v0.114.0 + go.opentelemetry.io/collector/exporter v0.114.0 + go.opentelemetry.io/collector/exporter/exportertest v0.114.0 + go.opentelemetry.io/collector/featuregate v1.20.0 + go.opentelemetry.io/collector/pdata v1.20.0 go.opentelemetry.io/otel/metric v1.32.0 go.opentelemetry.io/otel/trace v1.32.0 go.uber.org/zap v1.27.0 google.golang.org/protobuf v1.35.1 ) +require go.opentelemetry.io/collector/component/componenttest v0.114.0 // indirect + require ( github.com/pierrec/lz4/v4 v4.1.21 // indirect - go.opentelemetry.io/collector/consumer/consumererror v0.113.0 // indirect - go.opentelemetry.io/collector/receiver/receivertest v0.113.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror v0.114.0 // indirect + go.opentelemetry.io/collector/receiver/receivertest v0.114.0 // indirect ) require ( @@ -256,7 +258,7 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.113.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0 // indirect github.com/opencontainers/runtime-spec v1.2.0 // indirect github.com/outcaste-io/ristretto v0.2.3 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect @@ -286,26 +288,26 @@ require ( github.com/tklauser/numcpus v0.8.0 // indirect github.com/twmb/murmur3 v1.1.8 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/collector/client v1.19.0 // indirect - go.opentelemetry.io/collector/config/configauth v0.113.0 // indirect - go.opentelemetry.io/collector/config/configcompression v1.19.0 // indirect - go.opentelemetry.io/collector/config/confighttp v0.113.0 // indirect - go.opentelemetry.io/collector/config/configopaque v1.19.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.113.0 // indirect - go.opentelemetry.io/collector/config/configtls v1.19.0 // indirect - go.opentelemetry.io/collector/config/internal v0.113.0 // indirect - go.opentelemetry.io/collector/confmap v1.19.0 // indirect - go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/consumer/consumertest v0.113.0 // indirect - go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/extension v0.113.0 // indirect - go.opentelemetry.io/collector/extension/auth v0.113.0 // indirect - go.opentelemetry.io/collector/extension/experimental/storage v0.113.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.113.0 // indirect - go.opentelemetry.io/collector/pipeline v0.113.0 // indirect - go.opentelemetry.io/collector/receiver v0.113.0 // indirect - go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/semconv v0.113.0 // indirect + go.opentelemetry.io/collector/client v1.20.0 // indirect + go.opentelemetry.io/collector/config/configauth v0.114.0 // indirect + go.opentelemetry.io/collector/config/configcompression v1.20.0 // indirect + go.opentelemetry.io/collector/config/confighttp v0.114.0 // indirect + go.opentelemetry.io/collector/config/configopaque v1.20.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect + go.opentelemetry.io/collector/config/configtls v1.20.0 // indirect + go.opentelemetry.io/collector/config/internal v0.114.0 // indirect + go.opentelemetry.io/collector/confmap v1.20.0 // indirect + go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumertest v0.114.0 // indirect + go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/extension v0.114.0 // indirect + go.opentelemetry.io/collector/extension/auth v0.114.0 // indirect + go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.114.0 // indirect + go.opentelemetry.io/collector/pipeline v0.114.0 // indirect + go.opentelemetry.io/collector/receiver v0.114.0 // indirect + go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/semconv v0.114.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect go.opentelemetry.io/otel v1.32.0 // indirect go.opentelemetry.io/otel/exporters/prometheus v0.49.0 // indirect @@ -322,7 +324,7 @@ require ( golang.org/x/term v0.26.0 // indirect golang.org/x/text v0.20.0 // indirect golang.org/x/time v0.8.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum index 8e534fbf92def..d98a4b46f3bfe 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum @@ -239,20 +239,20 @@ github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9 github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.113.0 h1:EZ/ZNsovNcQq+wwAbTAWNY+6BHnv24NxvVoC6eYmtg8= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.113.0/go.mod h1:u21dEQ9yQ0JyLMSrKLWWzHG/lHSlteNfa/EQ7Vqcle4= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.113.0 h1:sfPQ3RPyimzEzB2aQtUaEu7ElwDmlze+q0moWV9YpkI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.113.0/go.mod h1:QMenHMTJ5qrpghfPoMMpS0QwW6pQrXOqHn7QcNgn+NU= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0 h1:d2wCLlENxH4I2axQWaogivx/5ZIjDYgn9MIf6sFxlJ4= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0/go.mod h1:Psyligv8GKL9WI3TraW3BLwkOX4TRxaaa1BBQQyICzA= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 h1:Wq1iTmd0K1SSOIA43Wy2uAU6SB4f9ogyN3ZmvDgTURg= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0/go.mod h1:VCj9H0QxRBWSgbl1pUo8p0NrqnmcxpPo0QjKLFtWkO0= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.94.0 h1:nTayRLarCGkB9ld7p8jWJe/9wvf8gNDaS5fRjybkEpg= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.94.0/go.mod h1:xoBvqu56hbky3KZafo68nxtV2+J81+pvo1ttNirakcU= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.94.0 h1:DSGhzGAaC767esMB0Ulr+9xWe6SW0LFUYMxLrLOAkjM= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.94.0/go.mod h1:Nv4nK3E7sUpDbNv0zI0zY15g2xR4jMg+n8taV8dsMeE= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.113.0 h1:n44G0Quw+OQMZ+ELOo/Aw1qcwVu7LXae8GBVjVSE+HQ= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.113.0/go.mod h1:6dxGDpWsWnzC5UK3RhgfdXRC+3c8RLCO+cC+RiS+jIU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.113.0 h1:Qy0MqQQKmW9wrfduM794WKg4qjTobIdj5HDHW5FZ/P8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.113.0/go.mod h1:X25Nhlw6xhuNSd/C0FeEwmD4PGmcXDl7pa2jR0UREkU= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0 h1:zDScLkNf/llyiH1cjpVv5PhJAT5AcHIXCB35zW5jsbM= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0/go.mod h1:S+GR7FZJYtFBnbjgD737QImuvm8d4+PBccpI0Xrda4E= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0 h1:PwUMZ6fHMEUV5i9hUly+z3UujDTTdxQtWzL0rWc/lgA= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0/go.mod h1:YEHL6w4vvB9b0/lNwGjz8DyWXTF/7Xw0Hkgc3mGWwa8= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 h1:mtSN/07RGQPi1/zHVSZg4G0qRtOoJpPew5jsQWv9uS0= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0/go.mod h1:C9Zgh/N3j4NR2D+1FGAA1YizhFW9OS51DwLUFJTdXN4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 h1:I4ZYVRYW3Cjb65sPENZ9kHam/JUMXNEp2n/knJ0C0Vc= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0/go.mod h1:4BhyIaOn2LS48WS+ZNix4TpP0+goq9gDEtGzth5Cr3M= github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk= github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= @@ -387,76 +387,80 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/collector/client v1.19.0 h1:TUal8WV1agTrZStgE7BJ8ZC0IHLGtrfgO9ogU9t1mv8= -go.opentelemetry.io/collector/client v1.19.0/go.mod h1:jgiXMEM6l8L2QEyf2I/M47Zd8+G7e4z+6H8q5SkHOlQ= -go.opentelemetry.io/collector/component v0.113.0 h1:/nx+RvZgxUEXP+YcTj69rEtuSEGkfaCyp/ad5zQGLjU= -go.opentelemetry.io/collector/component v0.113.0/go.mod h1:2T779hIGHU9i7xbXbV3q1/JnRw2FyzUYXW2vq47A6EU= -go.opentelemetry.io/collector/component/componentstatus v0.113.0 h1:iNlUi+vDo7OqQwg4UOjfqqY3Xram4SkdcSZAyxt6QfE= -go.opentelemetry.io/collector/component/componentstatus v0.113.0/go.mod h1:NF/hVnP0kcsEqV9x14yMxN9GoehuOaVgMpO+s2KE+28= -go.opentelemetry.io/collector/config/configauth v0.113.0 h1:CBz43fGpN41MwLdwe3mw/XVSIDvGRMT8aaaPuqKukTU= -go.opentelemetry.io/collector/config/configauth v0.113.0/go.mod h1:Q8SlxrIvL3FJO51hXa4n9ARvox04lK8mmpjf4b3UNAU= -go.opentelemetry.io/collector/config/configcompression v1.19.0 h1:bTSjTLhnPXX1NSFM6GzguEM/NBe8QUPsXHc9kMOAJzE= -go.opentelemetry.io/collector/config/configcompression v1.19.0/go.mod h1:pnxkFCLUZLKWzYJvfSwZnPrnm0twX14CYj2ADth5xiU= -go.opentelemetry.io/collector/config/confighttp v0.113.0 h1:a6iO0y1ZM5CPDvwbryzU+GpqAtAQ3eSfNseoAUogw7c= -go.opentelemetry.io/collector/config/confighttp v0.113.0/go.mod h1:JZ9EwoiWMIrXt5v+d/q54TeUhPdAoLDimSEqTtddW6E= -go.opentelemetry.io/collector/config/confignet v1.19.0 h1:gEDTd8zLx4pPpG5///XPRpbYUpvKsuQzDdM5IEULY9w= -go.opentelemetry.io/collector/config/confignet v1.19.0/go.mod h1:o3v4joAEjvLwntqexg5ixMqRrU1+Vst+jWuCUaBNgOg= -go.opentelemetry.io/collector/config/configopaque v1.19.0 h1:7uvntQeAAtqCaeiS2dDGrT1wLPhWvDlEsD3SliA/koQ= -go.opentelemetry.io/collector/config/configopaque v1.19.0/go.mod h1:6zlLIyOoRpJJ+0bEKrlZOZon3rOp5Jrz9fMdR4twOS4= -go.opentelemetry.io/collector/config/configretry v1.19.0 h1:DEg8PXpo4ahMYgMzZZUU2cPcDF4vqowZlvimJ/t9InY= -go.opentelemetry.io/collector/config/configretry v1.19.0/go.mod h1:KvQF5cfphq1rQm1dKR4eLDNQYw6iI2fY72NMZVa+0N0= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0 h1:hweTRrVddnUeA3k7HzRY4oUR9lRdMa7of3mHNUS5YyA= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/config/configtls v1.19.0 h1:GQ/cF1hgNqHVBq2oSSrOFXxVCyMDyd5kq4R/RMEbL98= -go.opentelemetry.io/collector/config/configtls v1.19.0/go.mod h1:1hyqnYB3JqEUlk1ME/s9HYz4oCRcxQCRxsJitFFT/cA= -go.opentelemetry.io/collector/config/internal v0.113.0 h1:9RAzH8v7ItFT1npHpvP0SvUzBHcZDliCGRo9Spp6v7c= -go.opentelemetry.io/collector/config/internal v0.113.0/go.mod h1:yC7E4h1Uj0SubxcFImh6OvBHFTjMh99+A5PuyIgDWqc= -go.opentelemetry.io/collector/confmap v1.19.0 h1:TQ0lZpAKqgsE0EKk+u4JA+uBbPYeFRmWP3GH43w40CY= -go.opentelemetry.io/collector/confmap v1.19.0/go.mod h1:GgNu1ElPGmLn9govqIfjaopvdspw4PJ9KeDtWC4E2Q4= -go.opentelemetry.io/collector/consumer v0.113.0 h1:KJSiK5vSIY9dgPxwKfQ3gOgKtQsqc+7IB7mGhUAL5c8= -go.opentelemetry.io/collector/consumer v0.113.0/go.mod h1:zHMlXYFaJlZoLCBR6UwWoyXZ/adcO1u2ydqUal3VmYU= -go.opentelemetry.io/collector/consumer/consumererror v0.113.0 h1:Hd2N7n9RKbnKRaVrdw6fPBoQko5zZIgCxwVxkL6SAIE= -go.opentelemetry.io/collector/consumer/consumererror v0.113.0/go.mod h1:o0MAGFdzcr7LFTUQ6iivPPhbVmn2ZVIYm3FPXk2+JUo= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0 h1:RftAcQUY5UOfbEK4s16jnORqTx16y9+PxA1lQwt98cQ= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0/go.mod h1:ZuHrQ4pWguh6dw0DgTfcUtdY/T+cnOJJNP6LMbm5Y5A= -go.opentelemetry.io/collector/consumer/consumertest v0.113.0 h1:ua2AjNx3DUA8qElXNkggB4w3VDL/rBKBvryOQkhumH8= -go.opentelemetry.io/collector/consumer/consumertest v0.113.0/go.mod h1:vK8o4ZTZSiG3rVyqxZcCNmT/cvEfx34ig7V65L9+6Rg= -go.opentelemetry.io/collector/exporter v0.113.0 h1:lDZJ6xfuhyLsT/7lqLhIN/ftA6G+9fuYFtubPFvNDxo= -go.opentelemetry.io/collector/exporter v0.113.0/go.mod h1:0W4NBf5NjWYxR8oJodmOybgN4O0MLazdJwwHevirvXg= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0 h1:8bsk3wYYNr+WAM5nZkFjiLYSTH9MsY2tm7nUpMWt3qc= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0/go.mod h1:/HFWF846XePYL/qKDtcEAFgkiGSkLUTaC59A5F48axM= -go.opentelemetry.io/collector/exporter/exportertest v0.113.0 h1:U6cRxjJS7td8iNriUI2QfEdH+Yj60ytyvpmnmKTw0+8= -go.opentelemetry.io/collector/exporter/exportertest v0.113.0/go.mod h1:SRz5jGyAjtNiWwJ93B1+Ndk1p3oFtQsyLw52UGeyRwc= -go.opentelemetry.io/collector/extension v0.113.0 h1:Vp/YSL8ZCkJQrP1lf2Bm5yaTvcp6ROO3AnfuSL3GEXM= -go.opentelemetry.io/collector/extension v0.113.0/go.mod h1:Pwp0TNqdHeER4V1I6H6oCvrto/riiOAqs3737BWCnjw= -go.opentelemetry.io/collector/extension/auth v0.113.0 h1:4ggRy1vepOabUiCWfU+6M9P/ftXojMUNAvBpeLihYj8= -go.opentelemetry.io/collector/extension/auth v0.113.0/go.mod h1:VbvAm2YZAqePkWgwn0m0vBaq3aC49CxPVwHmrJ24aeQ= -go.opentelemetry.io/collector/extension/experimental/storage v0.113.0 h1:Qq4IaB6bMUrf/bWoPZ5ESWywCt+vDi8I/ChYejIEPcc= -go.opentelemetry.io/collector/extension/experimental/storage v0.113.0/go.mod h1:BRmo+A7f06u/rhyLauU/Vogk+QRN0y1j2VVVgMGWrfQ= -go.opentelemetry.io/collector/featuregate v1.19.0 h1:ASea2sU+tdpKI3RxIJC/pufDAfwAmrvcQ4EmTHVu0B0= -go.opentelemetry.io/collector/featuregate v1.19.0/go.mod h1:47xrISO71vJ83LSMm8+yIDsUbKktUp48Ovt7RR6VbRs= -go.opentelemetry.io/collector/pdata v1.19.0 h1:jmnU5R8TOCbwRr4B8sjdRxM7L5WnEKlQWX1dtLYxIbE= -go.opentelemetry.io/collector/pdata v1.19.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/pdata/pprofile v0.113.0 h1:VRf4p0VhfuaR+Epy/nMIlu/9t39WU9CUgHVUvpuGxfU= -go.opentelemetry.io/collector/pdata/pprofile v0.113.0/go.mod h1:5aDejksdXh5PdJN/OhpzATGT3kbNL0RMmw2Q0Q6E/o0= -go.opentelemetry.io/collector/pdata/testdata v0.113.0 h1:vRfn85jicO2F4eOTgsWtzmU/K3E/uZUtM1HEefvvJD8= -go.opentelemetry.io/collector/pdata/testdata v0.113.0/go.mod h1:sR+6eR+YEJhYZu9StbqzeWcCmHpfBAgX/qjP82HY9Gw= -go.opentelemetry.io/collector/pipeline v0.113.0 h1:vSRzRe3717jV0btCNPhVkhg2lu0uFxcm2VO+vhad/eE= -go.opentelemetry.io/collector/pipeline v0.113.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= -go.opentelemetry.io/collector/processor v0.113.0 h1:BQI6MsKtiCG9HT/nmiRXTKP6SZFrjFKVfM6pTQfbc0k= -go.opentelemetry.io/collector/processor v0.113.0/go.mod h1:oX91zMI8ZkoaYSUfUYflHiMiiBJPKtODNBUCrETLLd8= -go.opentelemetry.io/collector/processor/processorprofiles v0.113.0 h1:cczN6whdrCWww3T0FBV3U7lsVKQmkWDX05M+9lANHgk= -go.opentelemetry.io/collector/processor/processorprofiles v0.113.0/go.mod h1:4Dmx5qsvujgJ+MC+KqWI7UDVM2liXa3sH/9XnGiL9aE= -go.opentelemetry.io/collector/processor/processortest v0.113.0 h1:jGoDJ+tDCzuDcAWZeshQtnK/DQAvMKd4wZAIDgAM5aA= -go.opentelemetry.io/collector/processor/processortest v0.113.0/go.mod h1:tNg04r5KlpVx774jSC8U/oYst1eb7WIiz+0AjXKJ0Uw= -go.opentelemetry.io/collector/receiver v0.113.0 h1:vraAbkPy8Pz9x5X39gV+j9t6x23PNsY2aJ6gQMugRbQ= -go.opentelemetry.io/collector/receiver v0.113.0/go.mod h1:IUa8/lNw8Qh4L5Q3jOeRWKW0ebQPoNcfhytxN5Puq2A= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0 h1:uVxuzjGe2t1sbwahSBowVHYnGzpzn8brmfn8z1UHvQg= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0/go.mod h1:khKDkzYJR2x2OPUqGSmoSncdINT9lUE5IThiHPDbqZk= -go.opentelemetry.io/collector/receiver/receivertest v0.113.0 h1:0vOvz3S4Q/KwcNCS9C7zPo0uxD6RSWktG88yGdxfV6g= -go.opentelemetry.io/collector/receiver/receivertest v0.113.0/go.mod h1:sRq5ctm5UE/0Ar562wnCVQ1zbAie/D127D1WbtbEuEc= -go.opentelemetry.io/collector/semconv v0.113.0 h1:twenSI7M7MJMJKW8D6a/GXxPZTPbama/weywBtV2iFw= -go.opentelemetry.io/collector/semconv v0.113.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= +go.opentelemetry.io/collector/client v1.20.0 h1:o60wPcj5nLtaRenF+1E5p4QXFS3TDL6vHlw+GOon3rg= +go.opentelemetry.io/collector/client v1.20.0/go.mod h1:6aqkszco9FaLWCxyJEVam6PP7cUa8mPRIXeS5eZGj0U= +go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= +go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= +go.opentelemetry.io/collector/component/componentstatus v0.114.0 h1:y9my/xink8KB5lK8zFAjgB2+pEh0QYy5TM972fxZY9w= +go.opentelemetry.io/collector/component/componentstatus v0.114.0/go.mod h1:RIoeCYZpPaae7QLE/1RacqzhHuXBmzRAk9H/EwYtIIs= +go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= +go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= +go.opentelemetry.io/collector/config/configauth v0.114.0 h1:R2sJ6xpsLYGH0yU0vCxotzBYDKR/Hrjv0A7y9lwMyiw= +go.opentelemetry.io/collector/config/configauth v0.114.0/go.mod h1:3Z24KcCpG+WYCeQYfs/cNp5cP2BDeOqLCtOEgs/rPqM= +go.opentelemetry.io/collector/config/configcompression v1.20.0 h1:H/mvz7J/5z+O74YsO0t2tk+REnO2tzLM8TgIQ4AZ5w0= +go.opentelemetry.io/collector/config/configcompression v1.20.0/go.mod h1:pnxkFCLUZLKWzYJvfSwZnPrnm0twX14CYj2ADth5xiU= +go.opentelemetry.io/collector/config/confighttp v0.114.0 h1:DjGsBvVm+mGK3IpJBaXianWhwcxEC1fF33cpuC1LY/I= +go.opentelemetry.io/collector/config/confighttp v0.114.0/go.mod h1:nrlNLxOZ+4JQaV9j0TiqQV7LOHhrRivPrT8nQRHED3Q= +go.opentelemetry.io/collector/config/confignet v1.20.0 h1:LrM6AuiY8N/woTP4SWhL2V0562JXwJs9MRNFZJFLtRY= +go.opentelemetry.io/collector/config/confignet v1.20.0/go.mod h1:o3v4joAEjvLwntqexg5ixMqRrU1+Vst+jWuCUaBNgOg= +go.opentelemetry.io/collector/config/configopaque v1.20.0 h1:2I48zKiyyyYqjm7y0B9OLp24ku2ZSX3nCHG0r5FdWOQ= +go.opentelemetry.io/collector/config/configopaque v1.20.0/go.mod h1:6zlLIyOoRpJJ+0bEKrlZOZon3rOp5Jrz9fMdR4twOS4= +go.opentelemetry.io/collector/config/configretry v1.20.0 h1:z679mrMlW2a6tOOYPGdrS/QfALxdzWLQUOpH8Uu+D5Y= +go.opentelemetry.io/collector/config/configretry v1.20.0/go.mod h1:KvQF5cfphq1rQm1dKR4eLDNQYw6iI2fY72NMZVa+0N0= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= +go.opentelemetry.io/collector/config/configtls v1.20.0 h1:hNlJdwfyY5Qe54RLJ41lfLqKTn9ypkR7sk7JNCcSe2U= +go.opentelemetry.io/collector/config/configtls v1.20.0/go.mod h1:sav/txSHguadTYlSSK+BJO2ljJeYEtRoBahgzWAguYg= +go.opentelemetry.io/collector/config/internal v0.114.0 h1:uWSDWTJb8T6xRjKD9/XmEARakXnxgYVYKUeId78hErc= +go.opentelemetry.io/collector/config/internal v0.114.0/go.mod h1:yC7E4h1Uj0SubxcFImh6OvBHFTjMh99+A5PuyIgDWqc= +go.opentelemetry.io/collector/confmap v1.20.0 h1:ARfOwmkKxFOud1njl03yAHQ30+uenlzqCO6LBYamDTE= +go.opentelemetry.io/collector/confmap v1.20.0/go.mod h1:DMpd9Ay/ffls3JoQBQ73vWeRsz1rNuLbwjo6WtjSQus= +go.opentelemetry.io/collector/consumer v0.114.0 h1:1zVaHvfIZowGwZRitRBRo3i+RP2StlU+GClYiofSw0Q= +go.opentelemetry.io/collector/consumer v0.114.0/go.mod h1:d+Mrzt9hsH1ub3zmwSlnQVPLeTYir4Mgo7CrWfnncN4= +go.opentelemetry.io/collector/consumer/consumererror v0.114.0 h1:r2YiELfWerb40FHD23V04gNjIkLUcjEKGxI4Vtm2iO4= +go.opentelemetry.io/collector/consumer/consumererror v0.114.0/go.mod h1:MzIrLQ5jptO2egypolhlAbZsWZr29WC4FhSxQjnxcvg= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 h1:5pXYy3E6UK5Huu3aQbsYL8B6E6MyWx4fvXXDn+oXZaA= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0/go.mod h1:PMq3f54KcJQO4v1tue0QxQScu7REFVADlXxXSAYMiN0= +go.opentelemetry.io/collector/consumer/consumertest v0.114.0 h1:isaTwJK5DOy8Bs7GuLq23ejfgj8gLIo5dOUvkRnLF4g= +go.opentelemetry.io/collector/consumer/consumertest v0.114.0/go.mod h1:GNeLPkfRPdh06n/Rv1UKa/cAtCKjN0a7ADyHjIj4HFE= +go.opentelemetry.io/collector/exporter v0.114.0 h1:5/0BBpXuCJQSQ5SQf31g7j6T4XEKkyx9mZMcA2rS5e8= +go.opentelemetry.io/collector/exporter v0.114.0/go.mod h1:atpd0wWXgh5LAZ0REU/d/Ti/q50HDfnlBIjMjJQlKFg= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 h1:/wmWOSBHcvtz3Pbv7+rWCqPPQuNvYaoidKKaOqZsLKs= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0/go.mod h1:epRYTkyJZTSQZBJflMGHUyUo2EdLPhsaZEyo5Qm848A= +go.opentelemetry.io/collector/exporter/exportertest v0.114.0 h1:vo0idBJT+QACSM1KpjVLm9VeiXVwO7y4UnMpGxN6EyM= +go.opentelemetry.io/collector/exporter/exportertest v0.114.0/go.mod h1:420ssFrhaphneybstbMeSIiqSRoaBARPgO71O17foaM= +go.opentelemetry.io/collector/extension v0.114.0 h1:9Qb92y8hD2WDC5aMDoj4JNQN+/5BQYJWPUPzLXX+iGw= +go.opentelemetry.io/collector/extension v0.114.0/go.mod h1:Yk2/1ptVgfTr12t+22v93nYJpioP14pURv2YercSzU0= +go.opentelemetry.io/collector/extension/auth v0.114.0 h1:1K2qh4yvG8kKR/sTAobI/rw5VxzPZoKcl3FmC195vvo= +go.opentelemetry.io/collector/extension/auth v0.114.0/go.mod h1:IjtsG+jUVJB0utKF8dAK8pLutRun3aEgASshImzsw/U= +go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 h1:hLyX9UvmY0t6iBnk3CqvyNck2U0QjPACekj7pDRx2hA= +go.opentelemetry.io/collector/extension/experimental/storage v0.114.0/go.mod h1:WqYRQVJjJLE1rm+y/ks1wPdPRGWePEvE1VO07xm2J2k= +go.opentelemetry.io/collector/extension/extensiontest v0.114.0 h1:ibXDms1qrswlvlR6b3d2BeyI8sXUXoFV11yOi9Sop8o= +go.opentelemetry.io/collector/extension/extensiontest v0.114.0/go.mod h1:/bOYmqu5yTDfI1bJZUxFqm8ZtmcodpquebiSxiQxtDY= +go.opentelemetry.io/collector/featuregate v1.20.0 h1:Mi7nMy/q52eruI+6jWnMKUOeM55XvwoPnGcdB1++O8c= +go.opentelemetry.io/collector/featuregate v1.20.0/go.mod h1:47xrISO71vJ83LSMm8+yIDsUbKktUp48Ovt7RR6VbRs= +go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= +go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= +go.opentelemetry.io/collector/pdata/pprofile v0.114.0 h1:pUNfTzsI/JUTiE+DScDM4lsrPoxnVNLI2fbTxR/oapo= +go.opentelemetry.io/collector/pdata/pprofile v0.114.0/go.mod h1:4aNcj6WM1n1uXyFSXlhVs4ibrERgNYsTbzcYI2zGhxA= +go.opentelemetry.io/collector/pdata/testdata v0.114.0 h1:+AzszWSL1i4K6meQ8rU0JDDW55SYCXa6FVqfDixhhTo= +go.opentelemetry.io/collector/pdata/testdata v0.114.0/go.mod h1:bv8XFdCTZxG2MQB5l9dKxSxf5zBrcodwO6JOy1+AxXM= +go.opentelemetry.io/collector/pipeline v0.114.0 h1:v3YOhc5z0tD6QbO5n/pnftpIeroihM2ks9Z2yKPCcwY= +go.opentelemetry.io/collector/pipeline v0.114.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= +go.opentelemetry.io/collector/processor v0.114.0 h1:6bqQgLL7BtKrNv4YkEOGjZfkcfZv/ciJSQx1epGG9Zk= +go.opentelemetry.io/collector/processor v0.114.0/go.mod h1:DV/wa+nAmSHIDeD9NblPwkY9PbgtDQAZJ+PE5biZwPc= +go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 h1:+P/1nLouEXTnN8DVQl+qWwO4BTkQyNPG9t/FrpUqrSI= +go.opentelemetry.io/collector/processor/processorprofiles v0.114.0/go.mod h1:3fuHeNIpINwx3bqFMprmDJyr6y5tWoWbJH599kltO5Y= +go.opentelemetry.io/collector/processor/processortest v0.114.0 h1:3FTaVXAp0LoVmUJn1ewBFckAby7AHa6/Kcdj0xuW14c= +go.opentelemetry.io/collector/processor/processortest v0.114.0/go.mod h1:OgsdOs1Fv5ZGTTJPF5nNIUJh2YkuV1acWd73yWgnti4= +go.opentelemetry.io/collector/receiver v0.114.0 h1:90SAnXAjNq7/k52/pFmmb06Cf1YauoPYtbio4aOXafY= +go.opentelemetry.io/collector/receiver v0.114.0/go.mod h1:KUGT0/D953LXbGH/D3lLPU8yrU3HfWnUqpt4W4hSOnE= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 h1:ibhEfGpvNB3yrtpl2jYFabrunMk1hurxvMYpM0b1Ck4= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0/go.mod h1:UZyRfaasw+NLvN10AN8IQnmj5tQ3BOUH1uP2ctpO9f0= +go.opentelemetry.io/collector/receiver/receivertest v0.114.0 h1:D+Kh9t2n4asTnM+TiSxbrKlUemLZandWntj17BJWWb0= +go.opentelemetry.io/collector/receiver/receivertest v0.114.0/go.mod h1:mNSHQ13vFmqD+VAcRzLjStFBejbcWUn2Mp0pAd7Op+U= +go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= +go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 h1:UP6IpuHFkUgOQL9FFQFrZ+5LiwhhYRbi7VZSIx6Nj5s= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0/go.mod h1:qxuZLtbq5QDtdeSHsS7bcf6EH6uO6jUAgk764zd3rhM= go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= @@ -595,8 +599,8 @@ google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJ google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190927181202-20e1ac93f88c/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 h1:QCqS/PdaHTSWGvupk2F/ehwHtGc0/GYkT+3GAcR1CCc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod index e80f7a5905191..c8a60277deebb 100644 --- a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod @@ -52,15 +52,16 @@ require ( github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0 github.com/stormcat24/protodep v0.1.8 github.com/stretchr/testify v1.9.0 - go.opentelemetry.io/collector/component v0.113.0 - go.opentelemetry.io/collector/exporter v0.113.0 - go.opentelemetry.io/collector/exporter/exportertest v0.113.0 - go.opentelemetry.io/collector/pdata v1.19.0 + go.opentelemetry.io/collector/component v0.114.0 + go.opentelemetry.io/collector/exporter v0.114.0 + go.opentelemetry.io/collector/exporter/exportertest v0.114.0 + go.opentelemetry.io/collector/pdata v1.20.0 ) require ( - go.opentelemetry.io/collector/consumer/consumererror v0.113.0 // indirect - go.opentelemetry.io/collector/receiver/receivertest v0.113.0 // indirect + go.opentelemetry.io/collector/component/componenttest v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror v0.114.0 // indirect + go.opentelemetry.io/collector/receiver/receivertest v0.114.0 // indirect ) require ( @@ -132,24 +133,24 @@ require ( github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/collector/config/configretry v1.19.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.113.0 // indirect - go.opentelemetry.io/collector/consumer v0.113.0 // indirect - go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/consumer/consumertest v0.113.0 // indirect - go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/extension v0.113.0 // indirect - go.opentelemetry.io/collector/extension/experimental/storage v0.113.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.113.0 // indirect - go.opentelemetry.io/collector/pipeline v0.113.0 // indirect - go.opentelemetry.io/collector/receiver v0.113.0 // indirect - go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/semconv v0.113.0 // indirect - go.opentelemetry.io/otel v1.31.0 // indirect - go.opentelemetry.io/otel/metric v1.31.0 // indirect - go.opentelemetry.io/otel/sdk v1.31.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.31.0 // indirect - go.opentelemetry.io/otel/trace v1.31.0 // indirect + go.opentelemetry.io/collector/config/configretry v1.20.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect + go.opentelemetry.io/collector/consumer v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumertest v0.114.0 // indirect + go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/extension v0.114.0 // indirect + go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.114.0 // indirect + go.opentelemetry.io/collector/pipeline v0.114.0 // indirect + go.opentelemetry.io/collector/receiver v0.114.0 // indirect + go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/semconv v0.114.0 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum index a5b35b86748a0..0044340f22d4c 100644 --- a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum @@ -272,56 +272,60 @@ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5t github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/collector/component v0.113.0 h1:/nx+RvZgxUEXP+YcTj69rEtuSEGkfaCyp/ad5zQGLjU= -go.opentelemetry.io/collector/component v0.113.0/go.mod h1:2T779hIGHU9i7xbXbV3q1/JnRw2FyzUYXW2vq47A6EU= -go.opentelemetry.io/collector/config/configretry v1.19.0 h1:DEg8PXpo4ahMYgMzZZUU2cPcDF4vqowZlvimJ/t9InY= -go.opentelemetry.io/collector/config/configretry v1.19.0/go.mod h1:KvQF5cfphq1rQm1dKR4eLDNQYw6iI2fY72NMZVa+0N0= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0 h1:hweTRrVddnUeA3k7HzRY4oUR9lRdMa7of3mHNUS5YyA= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/consumer v0.113.0 h1:KJSiK5vSIY9dgPxwKfQ3gOgKtQsqc+7IB7mGhUAL5c8= -go.opentelemetry.io/collector/consumer v0.113.0/go.mod h1:zHMlXYFaJlZoLCBR6UwWoyXZ/adcO1u2ydqUal3VmYU= -go.opentelemetry.io/collector/consumer/consumererror v0.113.0 h1:Hd2N7n9RKbnKRaVrdw6fPBoQko5zZIgCxwVxkL6SAIE= -go.opentelemetry.io/collector/consumer/consumererror v0.113.0/go.mod h1:o0MAGFdzcr7LFTUQ6iivPPhbVmn2ZVIYm3FPXk2+JUo= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0 h1:RftAcQUY5UOfbEK4s16jnORqTx16y9+PxA1lQwt98cQ= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0/go.mod h1:ZuHrQ4pWguh6dw0DgTfcUtdY/T+cnOJJNP6LMbm5Y5A= -go.opentelemetry.io/collector/consumer/consumertest v0.113.0 h1:ua2AjNx3DUA8qElXNkggB4w3VDL/rBKBvryOQkhumH8= -go.opentelemetry.io/collector/consumer/consumertest v0.113.0/go.mod h1:vK8o4ZTZSiG3rVyqxZcCNmT/cvEfx34ig7V65L9+6Rg= -go.opentelemetry.io/collector/exporter v0.113.0 h1:lDZJ6xfuhyLsT/7lqLhIN/ftA6G+9fuYFtubPFvNDxo= -go.opentelemetry.io/collector/exporter v0.113.0/go.mod h1:0W4NBf5NjWYxR8oJodmOybgN4O0MLazdJwwHevirvXg= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0 h1:8bsk3wYYNr+WAM5nZkFjiLYSTH9MsY2tm7nUpMWt3qc= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0/go.mod h1:/HFWF846XePYL/qKDtcEAFgkiGSkLUTaC59A5F48axM= -go.opentelemetry.io/collector/exporter/exportertest v0.113.0 h1:U6cRxjJS7td8iNriUI2QfEdH+Yj60ytyvpmnmKTw0+8= -go.opentelemetry.io/collector/exporter/exportertest v0.113.0/go.mod h1:SRz5jGyAjtNiWwJ93B1+Ndk1p3oFtQsyLw52UGeyRwc= -go.opentelemetry.io/collector/extension v0.113.0 h1:Vp/YSL8ZCkJQrP1lf2Bm5yaTvcp6ROO3AnfuSL3GEXM= -go.opentelemetry.io/collector/extension v0.113.0/go.mod h1:Pwp0TNqdHeER4V1I6H6oCvrto/riiOAqs3737BWCnjw= -go.opentelemetry.io/collector/extension/experimental/storage v0.113.0 h1:Qq4IaB6bMUrf/bWoPZ5ESWywCt+vDi8I/ChYejIEPcc= -go.opentelemetry.io/collector/extension/experimental/storage v0.113.0/go.mod h1:BRmo+A7f06u/rhyLauU/Vogk+QRN0y1j2VVVgMGWrfQ= -go.opentelemetry.io/collector/pdata v1.19.0 h1:jmnU5R8TOCbwRr4B8sjdRxM7L5WnEKlQWX1dtLYxIbE= -go.opentelemetry.io/collector/pdata v1.19.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/pdata/pprofile v0.113.0 h1:VRf4p0VhfuaR+Epy/nMIlu/9t39WU9CUgHVUvpuGxfU= -go.opentelemetry.io/collector/pdata/pprofile v0.113.0/go.mod h1:5aDejksdXh5PdJN/OhpzATGT3kbNL0RMmw2Q0Q6E/o0= -go.opentelemetry.io/collector/pdata/testdata v0.113.0 h1:vRfn85jicO2F4eOTgsWtzmU/K3E/uZUtM1HEefvvJD8= -go.opentelemetry.io/collector/pdata/testdata v0.113.0/go.mod h1:sR+6eR+YEJhYZu9StbqzeWcCmHpfBAgX/qjP82HY9Gw= -go.opentelemetry.io/collector/pipeline v0.113.0 h1:vSRzRe3717jV0btCNPhVkhg2lu0uFxcm2VO+vhad/eE= -go.opentelemetry.io/collector/pipeline v0.113.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= -go.opentelemetry.io/collector/receiver v0.113.0 h1:vraAbkPy8Pz9x5X39gV+j9t6x23PNsY2aJ6gQMugRbQ= -go.opentelemetry.io/collector/receiver v0.113.0/go.mod h1:IUa8/lNw8Qh4L5Q3jOeRWKW0ebQPoNcfhytxN5Puq2A= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0 h1:uVxuzjGe2t1sbwahSBowVHYnGzpzn8brmfn8z1UHvQg= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0/go.mod h1:khKDkzYJR2x2OPUqGSmoSncdINT9lUE5IThiHPDbqZk= -go.opentelemetry.io/collector/receiver/receivertest v0.113.0 h1:0vOvz3S4Q/KwcNCS9C7zPo0uxD6RSWktG88yGdxfV6g= -go.opentelemetry.io/collector/receiver/receivertest v0.113.0/go.mod h1:sRq5ctm5UE/0Ar562wnCVQ1zbAie/D127D1WbtbEuEc= -go.opentelemetry.io/collector/semconv v0.113.0 h1:twenSI7M7MJMJKW8D6a/GXxPZTPbama/weywBtV2iFw= -go.opentelemetry.io/collector/semconv v0.113.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= -go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY= -go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE= -go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE= -go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY= -go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk= -go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0= -go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc= -go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8= -go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys= -go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A= +go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= +go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= +go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= +go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= +go.opentelemetry.io/collector/config/configretry v1.20.0 h1:z679mrMlW2a6tOOYPGdrS/QfALxdzWLQUOpH8Uu+D5Y= +go.opentelemetry.io/collector/config/configretry v1.20.0/go.mod h1:KvQF5cfphq1rQm1dKR4eLDNQYw6iI2fY72NMZVa+0N0= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= +go.opentelemetry.io/collector/consumer v0.114.0 h1:1zVaHvfIZowGwZRitRBRo3i+RP2StlU+GClYiofSw0Q= +go.opentelemetry.io/collector/consumer v0.114.0/go.mod h1:d+Mrzt9hsH1ub3zmwSlnQVPLeTYir4Mgo7CrWfnncN4= +go.opentelemetry.io/collector/consumer/consumererror v0.114.0 h1:r2YiELfWerb40FHD23V04gNjIkLUcjEKGxI4Vtm2iO4= +go.opentelemetry.io/collector/consumer/consumererror v0.114.0/go.mod h1:MzIrLQ5jptO2egypolhlAbZsWZr29WC4FhSxQjnxcvg= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 h1:5pXYy3E6UK5Huu3aQbsYL8B6E6MyWx4fvXXDn+oXZaA= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0/go.mod h1:PMq3f54KcJQO4v1tue0QxQScu7REFVADlXxXSAYMiN0= +go.opentelemetry.io/collector/consumer/consumertest v0.114.0 h1:isaTwJK5DOy8Bs7GuLq23ejfgj8gLIo5dOUvkRnLF4g= +go.opentelemetry.io/collector/consumer/consumertest v0.114.0/go.mod h1:GNeLPkfRPdh06n/Rv1UKa/cAtCKjN0a7ADyHjIj4HFE= +go.opentelemetry.io/collector/exporter v0.114.0 h1:5/0BBpXuCJQSQ5SQf31g7j6T4XEKkyx9mZMcA2rS5e8= +go.opentelemetry.io/collector/exporter v0.114.0/go.mod h1:atpd0wWXgh5LAZ0REU/d/Ti/q50HDfnlBIjMjJQlKFg= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 h1:/wmWOSBHcvtz3Pbv7+rWCqPPQuNvYaoidKKaOqZsLKs= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0/go.mod h1:epRYTkyJZTSQZBJflMGHUyUo2EdLPhsaZEyo5Qm848A= +go.opentelemetry.io/collector/exporter/exportertest v0.114.0 h1:vo0idBJT+QACSM1KpjVLm9VeiXVwO7y4UnMpGxN6EyM= +go.opentelemetry.io/collector/exporter/exportertest v0.114.0/go.mod h1:420ssFrhaphneybstbMeSIiqSRoaBARPgO71O17foaM= +go.opentelemetry.io/collector/extension v0.114.0 h1:9Qb92y8hD2WDC5aMDoj4JNQN+/5BQYJWPUPzLXX+iGw= +go.opentelemetry.io/collector/extension v0.114.0/go.mod h1:Yk2/1ptVgfTr12t+22v93nYJpioP14pURv2YercSzU0= +go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 h1:hLyX9UvmY0t6iBnk3CqvyNck2U0QjPACekj7pDRx2hA= +go.opentelemetry.io/collector/extension/experimental/storage v0.114.0/go.mod h1:WqYRQVJjJLE1rm+y/ks1wPdPRGWePEvE1VO07xm2J2k= +go.opentelemetry.io/collector/extension/extensiontest v0.114.0 h1:ibXDms1qrswlvlR6b3d2BeyI8sXUXoFV11yOi9Sop8o= +go.opentelemetry.io/collector/extension/extensiontest v0.114.0/go.mod h1:/bOYmqu5yTDfI1bJZUxFqm8ZtmcodpquebiSxiQxtDY= +go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= +go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= +go.opentelemetry.io/collector/pdata/pprofile v0.114.0 h1:pUNfTzsI/JUTiE+DScDM4lsrPoxnVNLI2fbTxR/oapo= +go.opentelemetry.io/collector/pdata/pprofile v0.114.0/go.mod h1:4aNcj6WM1n1uXyFSXlhVs4ibrERgNYsTbzcYI2zGhxA= +go.opentelemetry.io/collector/pdata/testdata v0.114.0 h1:+AzszWSL1i4K6meQ8rU0JDDW55SYCXa6FVqfDixhhTo= +go.opentelemetry.io/collector/pdata/testdata v0.114.0/go.mod h1:bv8XFdCTZxG2MQB5l9dKxSxf5zBrcodwO6JOy1+AxXM= +go.opentelemetry.io/collector/pipeline v0.114.0 h1:v3YOhc5z0tD6QbO5n/pnftpIeroihM2ks9Z2yKPCcwY= +go.opentelemetry.io/collector/pipeline v0.114.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= +go.opentelemetry.io/collector/receiver v0.114.0 h1:90SAnXAjNq7/k52/pFmmb06Cf1YauoPYtbio4aOXafY= +go.opentelemetry.io/collector/receiver v0.114.0/go.mod h1:KUGT0/D953LXbGH/D3lLPU8yrU3HfWnUqpt4W4hSOnE= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 h1:ibhEfGpvNB3yrtpl2jYFabrunMk1hurxvMYpM0b1Ck4= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0/go.mod h1:UZyRfaasw+NLvN10AN8IQnmj5tQ3BOUH1uP2ctpO9f0= +go.opentelemetry.io/collector/receiver/receivertest v0.114.0 h1:D+Kh9t2n4asTnM+TiSxbrKlUemLZandWntj17BJWWb0= +go.opentelemetry.io/collector/receiver/receivertest v0.114.0/go.mod h1:mNSHQ13vFmqD+VAcRzLjStFBejbcWUn2Mp0pAd7Op+U= +go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= +go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod index 66e85d1bb086b..a6ced6161cc46 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod @@ -73,19 +73,19 @@ require ( github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0 github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.113.0 + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0 github.com/stretchr/testify v1.9.0 github.com/tinylib/msgp v1.1.8 - go.opentelemetry.io/collector/component v0.113.0 - go.opentelemetry.io/collector/config/confignet v1.19.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.113.0 // indirect - go.opentelemetry.io/collector/confmap v1.19.0 // indirect - go.opentelemetry.io/collector/consumer v0.113.0 - go.opentelemetry.io/collector/exporter v0.113.0 - go.opentelemetry.io/collector/extension v0.113.0 // indirect - go.opentelemetry.io/collector/pdata v1.19.0 - go.opentelemetry.io/collector/receiver v0.113.0 // indirect - go.opentelemetry.io/collector/semconv v0.113.0 // indirect + go.opentelemetry.io/collector/component v0.114.0 + go.opentelemetry.io/collector/config/confignet v1.20.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect + go.opentelemetry.io/collector/confmap v1.20.0 // indirect + go.opentelemetry.io/collector/consumer v0.114.0 + go.opentelemetry.io/collector/exporter v0.114.0 + go.opentelemetry.io/collector/extension v0.114.0 // indirect + go.opentelemetry.io/collector/pdata v1.20.0 + go.opentelemetry.io/collector/receiver v0.114.0 // indirect + go.opentelemetry.io/collector/semconv v0.114.0 // indirect go.uber.org/multierr v1.11.0 ) @@ -201,14 +201,14 @@ require ( github.com/tklauser/numcpus v0.6.1 // indirect github.com/twmb/murmur3 v1.1.8 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/collector/config/configretry v1.19.0 // indirect - go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/consumer/consumertest v0.113.0 // indirect - go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/extension/experimental/storage v0.113.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.113.0 // indirect - go.opentelemetry.io/collector/pipeline v0.113.0 // indirect - go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0 // indirect + go.opentelemetry.io/collector/config/configretry v1.20.0 // indirect + go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumertest v0.114.0 // indirect + go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.114.0 // indirect + go.opentelemetry.io/collector/pipeline v0.114.0 // indirect + go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 // indirect go.opentelemetry.io/otel v1.32.0 // indirect go.opentelemetry.io/otel/exporters/prometheus v0.49.0 // indirect go.opentelemetry.io/otel/metric v1.32.0 // indirect @@ -234,21 +234,27 @@ require ( ) require ( - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.113.0 - go.opentelemetry.io/collector/exporter/exportertest v0.113.0 + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 + go.opentelemetry.io/collector/component/componenttest v0.114.0 + go.opentelemetry.io/collector/exporter/exportertest v0.114.0 +) + +require ( + github.com/hashicorp/go-version v1.7.0 // indirect + go.opentelemetry.io/collector/featuregate v1.20.0 // indirect ) require ( github.com/pierrec/lz4/v4 v4.1.21 // indirect - go.opentelemetry.io/collector/client v1.19.0 // indirect - go.opentelemetry.io/collector/config/configauth v0.113.0 // indirect - go.opentelemetry.io/collector/config/configcompression v1.19.0 // indirect - go.opentelemetry.io/collector/config/confighttp v0.113.0 // indirect - go.opentelemetry.io/collector/config/configopaque v1.19.0 // indirect - go.opentelemetry.io/collector/config/configtls v1.19.0 // indirect - go.opentelemetry.io/collector/config/internal v0.113.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror v0.113.0 // indirect - go.opentelemetry.io/collector/extension/auth v0.113.0 // indirect - go.opentelemetry.io/collector/receiver/receivertest v0.113.0 // indirect + go.opentelemetry.io/collector/client v1.20.0 // indirect + go.opentelemetry.io/collector/config/configauth v0.114.0 // indirect + go.opentelemetry.io/collector/config/configcompression v1.20.0 // indirect + go.opentelemetry.io/collector/config/confighttp v0.114.0 // indirect + go.opentelemetry.io/collector/config/configopaque v1.20.0 // indirect + go.opentelemetry.io/collector/config/configtls v1.20.0 // indirect + go.opentelemetry.io/collector/config/internal v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror v0.114.0 // indirect + go.opentelemetry.io/collector/extension/auth v0.114.0 // indirect + go.opentelemetry.io/collector/receiver/receivertest v0.114.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect ) diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum index e331f0800e0b3..97a9a5e1600eb 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum @@ -132,6 +132,8 @@ github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= +github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= +github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= @@ -201,16 +203,16 @@ github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9 github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.113.0 h1:EZ/ZNsovNcQq+wwAbTAWNY+6BHnv24NxvVoC6eYmtg8= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.113.0/go.mod h1:u21dEQ9yQ0JyLMSrKLWWzHG/lHSlteNfa/EQ7Vqcle4= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.113.0 h1:sfPQ3RPyimzEzB2aQtUaEu7ElwDmlze+q0moWV9YpkI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.113.0/go.mod h1:QMenHMTJ5qrpghfPoMMpS0QwW6pQrXOqHn7QcNgn+NU= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0 h1:d2wCLlENxH4I2axQWaogivx/5ZIjDYgn9MIf6sFxlJ4= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0/go.mod h1:Psyligv8GKL9WI3TraW3BLwkOX4TRxaaa1BBQQyICzA= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 h1:Wq1iTmd0K1SSOIA43Wy2uAU6SB4f9ogyN3ZmvDgTURg= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0/go.mod h1:VCj9H0QxRBWSgbl1pUo8p0NrqnmcxpPo0QjKLFtWkO0= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.94.0 h1:nTayRLarCGkB9ld7p8jWJe/9wvf8gNDaS5fRjybkEpg= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.94.0/go.mod h1:xoBvqu56hbky3KZafo68nxtV2+J81+pvo1ttNirakcU= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.94.0 h1:DSGhzGAaC767esMB0Ulr+9xWe6SW0LFUYMxLrLOAkjM= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.94.0/go.mod h1:Nv4nK3E7sUpDbNv0zI0zY15g2xR4jMg+n8taV8dsMeE= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.113.0 h1:n44G0Quw+OQMZ+ELOo/Aw1qcwVu7LXae8GBVjVSE+HQ= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.113.0/go.mod h1:6dxGDpWsWnzC5UK3RhgfdXRC+3c8RLCO+cC+RiS+jIU= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0 h1:PwUMZ6fHMEUV5i9hUly+z3UujDTTdxQtWzL0rWc/lgA= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0/go.mod h1:YEHL6w4vvB9b0/lNwGjz8DyWXTF/7Xw0Hkgc3mGWwa8= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= @@ -336,66 +338,72 @@ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5t github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/collector/client v1.19.0 h1:TUal8WV1agTrZStgE7BJ8ZC0IHLGtrfgO9ogU9t1mv8= -go.opentelemetry.io/collector/client v1.19.0/go.mod h1:jgiXMEM6l8L2QEyf2I/M47Zd8+G7e4z+6H8q5SkHOlQ= -go.opentelemetry.io/collector/component v0.113.0 h1:/nx+RvZgxUEXP+YcTj69rEtuSEGkfaCyp/ad5zQGLjU= -go.opentelemetry.io/collector/component v0.113.0/go.mod h1:2T779hIGHU9i7xbXbV3q1/JnRw2FyzUYXW2vq47A6EU= -go.opentelemetry.io/collector/config/configauth v0.113.0 h1:CBz43fGpN41MwLdwe3mw/XVSIDvGRMT8aaaPuqKukTU= -go.opentelemetry.io/collector/config/configauth v0.113.0/go.mod h1:Q8SlxrIvL3FJO51hXa4n9ARvox04lK8mmpjf4b3UNAU= -go.opentelemetry.io/collector/config/configcompression v1.19.0 h1:bTSjTLhnPXX1NSFM6GzguEM/NBe8QUPsXHc9kMOAJzE= -go.opentelemetry.io/collector/config/configcompression v1.19.0/go.mod h1:pnxkFCLUZLKWzYJvfSwZnPrnm0twX14CYj2ADth5xiU= -go.opentelemetry.io/collector/config/confighttp v0.113.0 h1:a6iO0y1ZM5CPDvwbryzU+GpqAtAQ3eSfNseoAUogw7c= -go.opentelemetry.io/collector/config/confighttp v0.113.0/go.mod h1:JZ9EwoiWMIrXt5v+d/q54TeUhPdAoLDimSEqTtddW6E= -go.opentelemetry.io/collector/config/confignet v1.19.0 h1:gEDTd8zLx4pPpG5///XPRpbYUpvKsuQzDdM5IEULY9w= -go.opentelemetry.io/collector/config/confignet v1.19.0/go.mod h1:o3v4joAEjvLwntqexg5ixMqRrU1+Vst+jWuCUaBNgOg= -go.opentelemetry.io/collector/config/configopaque v1.19.0 h1:7uvntQeAAtqCaeiS2dDGrT1wLPhWvDlEsD3SliA/koQ= -go.opentelemetry.io/collector/config/configopaque v1.19.0/go.mod h1:6zlLIyOoRpJJ+0bEKrlZOZon3rOp5Jrz9fMdR4twOS4= -go.opentelemetry.io/collector/config/configretry v1.19.0 h1:DEg8PXpo4ahMYgMzZZUU2cPcDF4vqowZlvimJ/t9InY= -go.opentelemetry.io/collector/config/configretry v1.19.0/go.mod h1:KvQF5cfphq1rQm1dKR4eLDNQYw6iI2fY72NMZVa+0N0= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0 h1:hweTRrVddnUeA3k7HzRY4oUR9lRdMa7of3mHNUS5YyA= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/config/configtls v1.19.0 h1:GQ/cF1hgNqHVBq2oSSrOFXxVCyMDyd5kq4R/RMEbL98= -go.opentelemetry.io/collector/config/configtls v1.19.0/go.mod h1:1hyqnYB3JqEUlk1ME/s9HYz4oCRcxQCRxsJitFFT/cA= -go.opentelemetry.io/collector/config/internal v0.113.0 h1:9RAzH8v7ItFT1npHpvP0SvUzBHcZDliCGRo9Spp6v7c= -go.opentelemetry.io/collector/config/internal v0.113.0/go.mod h1:yC7E4h1Uj0SubxcFImh6OvBHFTjMh99+A5PuyIgDWqc= -go.opentelemetry.io/collector/confmap v1.19.0 h1:TQ0lZpAKqgsE0EKk+u4JA+uBbPYeFRmWP3GH43w40CY= -go.opentelemetry.io/collector/confmap v1.19.0/go.mod h1:GgNu1ElPGmLn9govqIfjaopvdspw4PJ9KeDtWC4E2Q4= -go.opentelemetry.io/collector/consumer v0.113.0 h1:KJSiK5vSIY9dgPxwKfQ3gOgKtQsqc+7IB7mGhUAL5c8= -go.opentelemetry.io/collector/consumer v0.113.0/go.mod h1:zHMlXYFaJlZoLCBR6UwWoyXZ/adcO1u2ydqUal3VmYU= -go.opentelemetry.io/collector/consumer/consumererror v0.113.0 h1:Hd2N7n9RKbnKRaVrdw6fPBoQko5zZIgCxwVxkL6SAIE= -go.opentelemetry.io/collector/consumer/consumererror v0.113.0/go.mod h1:o0MAGFdzcr7LFTUQ6iivPPhbVmn2ZVIYm3FPXk2+JUo= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0 h1:RftAcQUY5UOfbEK4s16jnORqTx16y9+PxA1lQwt98cQ= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0/go.mod h1:ZuHrQ4pWguh6dw0DgTfcUtdY/T+cnOJJNP6LMbm5Y5A= -go.opentelemetry.io/collector/consumer/consumertest v0.113.0 h1:ua2AjNx3DUA8qElXNkggB4w3VDL/rBKBvryOQkhumH8= -go.opentelemetry.io/collector/consumer/consumertest v0.113.0/go.mod h1:vK8o4ZTZSiG3rVyqxZcCNmT/cvEfx34ig7V65L9+6Rg= -go.opentelemetry.io/collector/exporter v0.113.0 h1:lDZJ6xfuhyLsT/7lqLhIN/ftA6G+9fuYFtubPFvNDxo= -go.opentelemetry.io/collector/exporter v0.113.0/go.mod h1:0W4NBf5NjWYxR8oJodmOybgN4O0MLazdJwwHevirvXg= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0 h1:8bsk3wYYNr+WAM5nZkFjiLYSTH9MsY2tm7nUpMWt3qc= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0/go.mod h1:/HFWF846XePYL/qKDtcEAFgkiGSkLUTaC59A5F48axM= -go.opentelemetry.io/collector/exporter/exportertest v0.113.0 h1:U6cRxjJS7td8iNriUI2QfEdH+Yj60ytyvpmnmKTw0+8= -go.opentelemetry.io/collector/exporter/exportertest v0.113.0/go.mod h1:SRz5jGyAjtNiWwJ93B1+Ndk1p3oFtQsyLw52UGeyRwc= -go.opentelemetry.io/collector/extension v0.113.0 h1:Vp/YSL8ZCkJQrP1lf2Bm5yaTvcp6ROO3AnfuSL3GEXM= -go.opentelemetry.io/collector/extension v0.113.0/go.mod h1:Pwp0TNqdHeER4V1I6H6oCvrto/riiOAqs3737BWCnjw= -go.opentelemetry.io/collector/extension/auth v0.113.0 h1:4ggRy1vepOabUiCWfU+6M9P/ftXojMUNAvBpeLihYj8= -go.opentelemetry.io/collector/extension/auth v0.113.0/go.mod h1:VbvAm2YZAqePkWgwn0m0vBaq3aC49CxPVwHmrJ24aeQ= -go.opentelemetry.io/collector/extension/experimental/storage v0.113.0 h1:Qq4IaB6bMUrf/bWoPZ5ESWywCt+vDi8I/ChYejIEPcc= -go.opentelemetry.io/collector/extension/experimental/storage v0.113.0/go.mod h1:BRmo+A7f06u/rhyLauU/Vogk+QRN0y1j2VVVgMGWrfQ= -go.opentelemetry.io/collector/pdata v1.19.0 h1:jmnU5R8TOCbwRr4B8sjdRxM7L5WnEKlQWX1dtLYxIbE= -go.opentelemetry.io/collector/pdata v1.19.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/pdata/pprofile v0.113.0 h1:VRf4p0VhfuaR+Epy/nMIlu/9t39WU9CUgHVUvpuGxfU= -go.opentelemetry.io/collector/pdata/pprofile v0.113.0/go.mod h1:5aDejksdXh5PdJN/OhpzATGT3kbNL0RMmw2Q0Q6E/o0= -go.opentelemetry.io/collector/pdata/testdata v0.113.0 h1:vRfn85jicO2F4eOTgsWtzmU/K3E/uZUtM1HEefvvJD8= -go.opentelemetry.io/collector/pdata/testdata v0.113.0/go.mod h1:sR+6eR+YEJhYZu9StbqzeWcCmHpfBAgX/qjP82HY9Gw= -go.opentelemetry.io/collector/pipeline v0.113.0 h1:vSRzRe3717jV0btCNPhVkhg2lu0uFxcm2VO+vhad/eE= -go.opentelemetry.io/collector/pipeline v0.113.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= -go.opentelemetry.io/collector/receiver v0.113.0 h1:vraAbkPy8Pz9x5X39gV+j9t6x23PNsY2aJ6gQMugRbQ= -go.opentelemetry.io/collector/receiver v0.113.0/go.mod h1:IUa8/lNw8Qh4L5Q3jOeRWKW0ebQPoNcfhytxN5Puq2A= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0 h1:uVxuzjGe2t1sbwahSBowVHYnGzpzn8brmfn8z1UHvQg= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0/go.mod h1:khKDkzYJR2x2OPUqGSmoSncdINT9lUE5IThiHPDbqZk= -go.opentelemetry.io/collector/receiver/receivertest v0.113.0 h1:0vOvz3S4Q/KwcNCS9C7zPo0uxD6RSWktG88yGdxfV6g= -go.opentelemetry.io/collector/receiver/receivertest v0.113.0/go.mod h1:sRq5ctm5UE/0Ar562wnCVQ1zbAie/D127D1WbtbEuEc= -go.opentelemetry.io/collector/semconv v0.113.0 h1:twenSI7M7MJMJKW8D6a/GXxPZTPbama/weywBtV2iFw= -go.opentelemetry.io/collector/semconv v0.113.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= +go.opentelemetry.io/collector/client v1.20.0 h1:o60wPcj5nLtaRenF+1E5p4QXFS3TDL6vHlw+GOon3rg= +go.opentelemetry.io/collector/client v1.20.0/go.mod h1:6aqkszco9FaLWCxyJEVam6PP7cUa8mPRIXeS5eZGj0U= +go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= +go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= +go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= +go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= +go.opentelemetry.io/collector/config/configauth v0.114.0 h1:R2sJ6xpsLYGH0yU0vCxotzBYDKR/Hrjv0A7y9lwMyiw= +go.opentelemetry.io/collector/config/configauth v0.114.0/go.mod h1:3Z24KcCpG+WYCeQYfs/cNp5cP2BDeOqLCtOEgs/rPqM= +go.opentelemetry.io/collector/config/configcompression v1.20.0 h1:H/mvz7J/5z+O74YsO0t2tk+REnO2tzLM8TgIQ4AZ5w0= +go.opentelemetry.io/collector/config/configcompression v1.20.0/go.mod h1:pnxkFCLUZLKWzYJvfSwZnPrnm0twX14CYj2ADth5xiU= +go.opentelemetry.io/collector/config/confighttp v0.114.0 h1:DjGsBvVm+mGK3IpJBaXianWhwcxEC1fF33cpuC1LY/I= +go.opentelemetry.io/collector/config/confighttp v0.114.0/go.mod h1:nrlNLxOZ+4JQaV9j0TiqQV7LOHhrRivPrT8nQRHED3Q= +go.opentelemetry.io/collector/config/confignet v1.20.0 h1:LrM6AuiY8N/woTP4SWhL2V0562JXwJs9MRNFZJFLtRY= +go.opentelemetry.io/collector/config/confignet v1.20.0/go.mod h1:o3v4joAEjvLwntqexg5ixMqRrU1+Vst+jWuCUaBNgOg= +go.opentelemetry.io/collector/config/configopaque v1.20.0 h1:2I48zKiyyyYqjm7y0B9OLp24ku2ZSX3nCHG0r5FdWOQ= +go.opentelemetry.io/collector/config/configopaque v1.20.0/go.mod h1:6zlLIyOoRpJJ+0bEKrlZOZon3rOp5Jrz9fMdR4twOS4= +go.opentelemetry.io/collector/config/configretry v1.20.0 h1:z679mrMlW2a6tOOYPGdrS/QfALxdzWLQUOpH8Uu+D5Y= +go.opentelemetry.io/collector/config/configretry v1.20.0/go.mod h1:KvQF5cfphq1rQm1dKR4eLDNQYw6iI2fY72NMZVa+0N0= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= +go.opentelemetry.io/collector/config/configtls v1.20.0 h1:hNlJdwfyY5Qe54RLJ41lfLqKTn9ypkR7sk7JNCcSe2U= +go.opentelemetry.io/collector/config/configtls v1.20.0/go.mod h1:sav/txSHguadTYlSSK+BJO2ljJeYEtRoBahgzWAguYg= +go.opentelemetry.io/collector/config/internal v0.114.0 h1:uWSDWTJb8T6xRjKD9/XmEARakXnxgYVYKUeId78hErc= +go.opentelemetry.io/collector/config/internal v0.114.0/go.mod h1:yC7E4h1Uj0SubxcFImh6OvBHFTjMh99+A5PuyIgDWqc= +go.opentelemetry.io/collector/confmap v1.20.0 h1:ARfOwmkKxFOud1njl03yAHQ30+uenlzqCO6LBYamDTE= +go.opentelemetry.io/collector/confmap v1.20.0/go.mod h1:DMpd9Ay/ffls3JoQBQ73vWeRsz1rNuLbwjo6WtjSQus= +go.opentelemetry.io/collector/consumer v0.114.0 h1:1zVaHvfIZowGwZRitRBRo3i+RP2StlU+GClYiofSw0Q= +go.opentelemetry.io/collector/consumer v0.114.0/go.mod h1:d+Mrzt9hsH1ub3zmwSlnQVPLeTYir4Mgo7CrWfnncN4= +go.opentelemetry.io/collector/consumer/consumererror v0.114.0 h1:r2YiELfWerb40FHD23V04gNjIkLUcjEKGxI4Vtm2iO4= +go.opentelemetry.io/collector/consumer/consumererror v0.114.0/go.mod h1:MzIrLQ5jptO2egypolhlAbZsWZr29WC4FhSxQjnxcvg= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 h1:5pXYy3E6UK5Huu3aQbsYL8B6E6MyWx4fvXXDn+oXZaA= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0/go.mod h1:PMq3f54KcJQO4v1tue0QxQScu7REFVADlXxXSAYMiN0= +go.opentelemetry.io/collector/consumer/consumertest v0.114.0 h1:isaTwJK5DOy8Bs7GuLq23ejfgj8gLIo5dOUvkRnLF4g= +go.opentelemetry.io/collector/consumer/consumertest v0.114.0/go.mod h1:GNeLPkfRPdh06n/Rv1UKa/cAtCKjN0a7ADyHjIj4HFE= +go.opentelemetry.io/collector/exporter v0.114.0 h1:5/0BBpXuCJQSQ5SQf31g7j6T4XEKkyx9mZMcA2rS5e8= +go.opentelemetry.io/collector/exporter v0.114.0/go.mod h1:atpd0wWXgh5LAZ0REU/d/Ti/q50HDfnlBIjMjJQlKFg= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 h1:/wmWOSBHcvtz3Pbv7+rWCqPPQuNvYaoidKKaOqZsLKs= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0/go.mod h1:epRYTkyJZTSQZBJflMGHUyUo2EdLPhsaZEyo5Qm848A= +go.opentelemetry.io/collector/exporter/exportertest v0.114.0 h1:vo0idBJT+QACSM1KpjVLm9VeiXVwO7y4UnMpGxN6EyM= +go.opentelemetry.io/collector/exporter/exportertest v0.114.0/go.mod h1:420ssFrhaphneybstbMeSIiqSRoaBARPgO71O17foaM= +go.opentelemetry.io/collector/extension v0.114.0 h1:9Qb92y8hD2WDC5aMDoj4JNQN+/5BQYJWPUPzLXX+iGw= +go.opentelemetry.io/collector/extension v0.114.0/go.mod h1:Yk2/1ptVgfTr12t+22v93nYJpioP14pURv2YercSzU0= +go.opentelemetry.io/collector/extension/auth v0.114.0 h1:1K2qh4yvG8kKR/sTAobI/rw5VxzPZoKcl3FmC195vvo= +go.opentelemetry.io/collector/extension/auth v0.114.0/go.mod h1:IjtsG+jUVJB0utKF8dAK8pLutRun3aEgASshImzsw/U= +go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 h1:hLyX9UvmY0t6iBnk3CqvyNck2U0QjPACekj7pDRx2hA= +go.opentelemetry.io/collector/extension/experimental/storage v0.114.0/go.mod h1:WqYRQVJjJLE1rm+y/ks1wPdPRGWePEvE1VO07xm2J2k= +go.opentelemetry.io/collector/extension/extensiontest v0.114.0 h1:ibXDms1qrswlvlR6b3d2BeyI8sXUXoFV11yOi9Sop8o= +go.opentelemetry.io/collector/extension/extensiontest v0.114.0/go.mod h1:/bOYmqu5yTDfI1bJZUxFqm8ZtmcodpquebiSxiQxtDY= +go.opentelemetry.io/collector/featuregate v1.20.0 h1:Mi7nMy/q52eruI+6jWnMKUOeM55XvwoPnGcdB1++O8c= +go.opentelemetry.io/collector/featuregate v1.20.0/go.mod h1:47xrISO71vJ83LSMm8+yIDsUbKktUp48Ovt7RR6VbRs= +go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= +go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= +go.opentelemetry.io/collector/pdata/pprofile v0.114.0 h1:pUNfTzsI/JUTiE+DScDM4lsrPoxnVNLI2fbTxR/oapo= +go.opentelemetry.io/collector/pdata/pprofile v0.114.0/go.mod h1:4aNcj6WM1n1uXyFSXlhVs4ibrERgNYsTbzcYI2zGhxA= +go.opentelemetry.io/collector/pdata/testdata v0.114.0 h1:+AzszWSL1i4K6meQ8rU0JDDW55SYCXa6FVqfDixhhTo= +go.opentelemetry.io/collector/pdata/testdata v0.114.0/go.mod h1:bv8XFdCTZxG2MQB5l9dKxSxf5zBrcodwO6JOy1+AxXM= +go.opentelemetry.io/collector/pipeline v0.114.0 h1:v3YOhc5z0tD6QbO5n/pnftpIeroihM2ks9Z2yKPCcwY= +go.opentelemetry.io/collector/pipeline v0.114.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= +go.opentelemetry.io/collector/receiver v0.114.0 h1:90SAnXAjNq7/k52/pFmmb06Cf1YauoPYtbio4aOXafY= +go.opentelemetry.io/collector/receiver v0.114.0/go.mod h1:KUGT0/D953LXbGH/D3lLPU8yrU3HfWnUqpt4W4hSOnE= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 h1:ibhEfGpvNB3yrtpl2jYFabrunMk1hurxvMYpM0b1Ck4= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0/go.mod h1:UZyRfaasw+NLvN10AN8IQnmj5tQ3BOUH1uP2ctpO9f0= +go.opentelemetry.io/collector/receiver/receivertest v0.114.0 h1:D+Kh9t2n4asTnM+TiSxbrKlUemLZandWntj17BJWWb0= +go.opentelemetry.io/collector/receiver/receivertest v0.114.0/go.mod h1:mNSHQ13vFmqD+VAcRzLjStFBejbcWUn2Mp0pAd7Op+U= +go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= +go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 h1:UP6IpuHFkUgOQL9FFQFrZ+5LiwhhYRbi7VZSIx6Nj5s= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0/go.mod h1:qxuZLtbq5QDtdeSHsS7bcf6EH6uO6jUAgk764zd3rhM= go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= diff --git a/comp/otelcol/otlp/components/metricsclient/go.mod b/comp/otelcol/otlp/components/metricsclient/go.mod index ea0e70f054b41..ce87cd0cc0cf0 100644 --- a/comp/otelcol/otlp/components/metricsclient/go.mod +++ b/comp/otelcol/otlp/components/metricsclient/go.mod @@ -8,9 +8,9 @@ require ( github.com/DataDog/datadog-agent/pkg/trace v0.56.0-rc.3 github.com/DataDog/datadog-go/v5 v5.5.0 github.com/stretchr/testify v1.9.0 - go.opentelemetry.io/otel v1.31.0 - go.opentelemetry.io/otel/metric v1.31.0 - go.opentelemetry.io/otel/sdk/metric v1.31.0 + go.opentelemetry.io/otel v1.32.0 + go.opentelemetry.io/otel/metric v1.32.0 + go.opentelemetry.io/otel/sdk/metric v1.32.0 ) require ( @@ -20,8 +20,8 @@ require ( github.com/go-logr/stdr v1.2.2 // indirect github.com/google/uuid v1.6.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - go.opentelemetry.io/otel/sdk v1.31.0 // indirect - go.opentelemetry.io/otel/trace v1.31.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/mod v0.22.0 // indirect golang.org/x/sync v0.9.0 // indirect diff --git a/comp/otelcol/otlp/components/metricsclient/go.sum b/comp/otelcol/otlp/components/metricsclient/go.sum index 23bbd0a505923..8615290d1ef0e 100644 --- a/comp/otelcol/otlp/components/metricsclient/go.sum +++ b/comp/otelcol/otlp/components/metricsclient/go.sum @@ -32,16 +32,16 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY= -go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE= -go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE= -go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY= -go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk= -go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0= -go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc= -go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8= -go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys= -go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= diff --git a/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.mod b/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.mod index 7ead08cc19304..5ced6ecc2e2ff 100644 --- a/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.mod +++ b/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.mod @@ -37,16 +37,17 @@ require ( github.com/DataDog/datadog-agent/comp/core/tagger/tags v0.0.0-00010101000000-000000000000 github.com/DataDog/datadog-agent/comp/core/tagger/types v0.59.0 github.com/stretchr/testify v1.9.0 - go.opentelemetry.io/collector/component v0.113.0 - go.opentelemetry.io/collector/confmap v1.19.0 - go.opentelemetry.io/collector/consumer v0.113.0 - go.opentelemetry.io/collector/consumer/consumertest v0.113.0 - go.opentelemetry.io/collector/pdata v1.19.0 - go.opentelemetry.io/collector/processor v0.113.0 - go.opentelemetry.io/collector/processor/processortest v0.113.0 - go.opentelemetry.io/collector/semconv v0.113.0 - go.opentelemetry.io/otel/metric v1.31.0 - go.opentelemetry.io/otel/trace v1.31.0 + go.opentelemetry.io/collector/component v0.114.0 + go.opentelemetry.io/collector/component/componenttest v0.114.0 + go.opentelemetry.io/collector/confmap v1.20.0 + go.opentelemetry.io/collector/consumer v0.114.0 + go.opentelemetry.io/collector/consumer/consumertest v0.114.0 + go.opentelemetry.io/collector/pdata v1.20.0 + go.opentelemetry.io/collector/processor v0.114.0 + go.opentelemetry.io/collector/processor/processortest v0.114.0 + go.opentelemetry.io/collector/semconv v0.114.0 + go.opentelemetry.io/otel/metric v1.32.0 + go.opentelemetry.io/otel/trace v1.32.0 go.uber.org/zap v1.27.0 ) @@ -61,23 +62,23 @@ require ( github.com/json-iterator/go v1.1.12 // indirect github.com/knadh/koanf/maps v0.1.1 // indirect github.com/knadh/koanf/providers/confmap v0.1.0 // indirect - github.com/knadh/koanf/v2 v2.1.1 // indirect + github.com/knadh/koanf/v2 v2.1.2 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect - go.opentelemetry.io/collector/component/componentstatus v0.113.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.113.0 // indirect - go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.113.0 // indirect - go.opentelemetry.io/collector/pdata/testdata v0.113.0 // indirect - go.opentelemetry.io/collector/pipeline v0.113.0 // indirect - go.opentelemetry.io/collector/processor/processorprofiles v0.113.0 // indirect - go.opentelemetry.io/otel v1.31.0 // indirect - go.opentelemetry.io/otel/sdk v1.31.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.31.0 // indirect + go.opentelemetry.io/collector/component/componentstatus v0.114.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.114.0 // indirect + go.opentelemetry.io/collector/pdata/testdata v0.114.0 // indirect + go.opentelemetry.io/collector/pipeline v0.114.0 // indirect + go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/net v0.31.0 // indirect golang.org/x/sys v0.27.0 // indirect diff --git a/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.sum b/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.sum index 4f6af8f005400..e9c3ecb7a9efa 100644 --- a/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.sum +++ b/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.sum @@ -23,8 +23,8 @@ github.com/knadh/koanf/maps v0.1.1 h1:G5TjmUh2D7G2YWf5SQQqSiHRJEjaicvU0KpypqB3NI github.com/knadh/koanf/maps v0.1.1/go.mod h1:npD/QZY3V6ghQDdcQzl1W4ICNVTkohC8E73eI2xW4yI= github.com/knadh/koanf/providers/confmap v0.1.0 h1:gOkxhHkemwG4LezxxN8DMOFopOPghxRVp7JbIvdvqzU= github.com/knadh/koanf/providers/confmap v0.1.0/go.mod h1:2uLhxQzJnyHKfxG927awZC7+fyHFdQkd697K4MdLnIU= -github.com/knadh/koanf/v2 v2.1.1 h1:/R8eXqasSTsmDCsAyYj+81Wteg8AqrV9CP6gvsTsOmM= -github.com/knadh/koanf/v2 v2.1.1/go.mod h1:4mnTRbZCK+ALuBXHZMjDfG9y714L7TykVnZkXbMU3Es= +github.com/knadh/koanf/v2 v2.1.2 h1:I2rtLRqXRy1p01m/utEtpZSSA6dcJbgGVuE27kW2PzQ= +github.com/knadh/koanf/v2 v2.1.2/go.mod h1:Gphfaen0q1Fc1HTgJgSTC4oRX9R2R5ErYMZJy8fLJBo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -48,46 +48,48 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.opentelemetry.io/collector/component v0.113.0 h1:/nx+RvZgxUEXP+YcTj69rEtuSEGkfaCyp/ad5zQGLjU= -go.opentelemetry.io/collector/component v0.113.0/go.mod h1:2T779hIGHU9i7xbXbV3q1/JnRw2FyzUYXW2vq47A6EU= -go.opentelemetry.io/collector/component/componentstatus v0.113.0 h1:iNlUi+vDo7OqQwg4UOjfqqY3Xram4SkdcSZAyxt6QfE= -go.opentelemetry.io/collector/component/componentstatus v0.113.0/go.mod h1:NF/hVnP0kcsEqV9x14yMxN9GoehuOaVgMpO+s2KE+28= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0 h1:hweTRrVddnUeA3k7HzRY4oUR9lRdMa7of3mHNUS5YyA= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/confmap v1.19.0 h1:TQ0lZpAKqgsE0EKk+u4JA+uBbPYeFRmWP3GH43w40CY= -go.opentelemetry.io/collector/confmap v1.19.0/go.mod h1:GgNu1ElPGmLn9govqIfjaopvdspw4PJ9KeDtWC4E2Q4= -go.opentelemetry.io/collector/consumer v0.113.0 h1:KJSiK5vSIY9dgPxwKfQ3gOgKtQsqc+7IB7mGhUAL5c8= -go.opentelemetry.io/collector/consumer v0.113.0/go.mod h1:zHMlXYFaJlZoLCBR6UwWoyXZ/adcO1u2ydqUal3VmYU= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0 h1:RftAcQUY5UOfbEK4s16jnORqTx16y9+PxA1lQwt98cQ= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0/go.mod h1:ZuHrQ4pWguh6dw0DgTfcUtdY/T+cnOJJNP6LMbm5Y5A= -go.opentelemetry.io/collector/consumer/consumertest v0.113.0 h1:ua2AjNx3DUA8qElXNkggB4w3VDL/rBKBvryOQkhumH8= -go.opentelemetry.io/collector/consumer/consumertest v0.113.0/go.mod h1:vK8o4ZTZSiG3rVyqxZcCNmT/cvEfx34ig7V65L9+6Rg= -go.opentelemetry.io/collector/pdata v1.19.0 h1:jmnU5R8TOCbwRr4B8sjdRxM7L5WnEKlQWX1dtLYxIbE= -go.opentelemetry.io/collector/pdata v1.19.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/pdata/pprofile v0.113.0 h1:VRf4p0VhfuaR+Epy/nMIlu/9t39WU9CUgHVUvpuGxfU= -go.opentelemetry.io/collector/pdata/pprofile v0.113.0/go.mod h1:5aDejksdXh5PdJN/OhpzATGT3kbNL0RMmw2Q0Q6E/o0= -go.opentelemetry.io/collector/pdata/testdata v0.113.0 h1:vRfn85jicO2F4eOTgsWtzmU/K3E/uZUtM1HEefvvJD8= -go.opentelemetry.io/collector/pdata/testdata v0.113.0/go.mod h1:sR+6eR+YEJhYZu9StbqzeWcCmHpfBAgX/qjP82HY9Gw= -go.opentelemetry.io/collector/pipeline v0.113.0 h1:vSRzRe3717jV0btCNPhVkhg2lu0uFxcm2VO+vhad/eE= -go.opentelemetry.io/collector/pipeline v0.113.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= -go.opentelemetry.io/collector/processor v0.113.0 h1:BQI6MsKtiCG9HT/nmiRXTKP6SZFrjFKVfM6pTQfbc0k= -go.opentelemetry.io/collector/processor v0.113.0/go.mod h1:oX91zMI8ZkoaYSUfUYflHiMiiBJPKtODNBUCrETLLd8= -go.opentelemetry.io/collector/processor/processorprofiles v0.113.0 h1:cczN6whdrCWww3T0FBV3U7lsVKQmkWDX05M+9lANHgk= -go.opentelemetry.io/collector/processor/processorprofiles v0.113.0/go.mod h1:4Dmx5qsvujgJ+MC+KqWI7UDVM2liXa3sH/9XnGiL9aE= -go.opentelemetry.io/collector/processor/processortest v0.113.0 h1:jGoDJ+tDCzuDcAWZeshQtnK/DQAvMKd4wZAIDgAM5aA= -go.opentelemetry.io/collector/processor/processortest v0.113.0/go.mod h1:tNg04r5KlpVx774jSC8U/oYst1eb7WIiz+0AjXKJ0Uw= -go.opentelemetry.io/collector/semconv v0.113.0 h1:twenSI7M7MJMJKW8D6a/GXxPZTPbama/weywBtV2iFw= -go.opentelemetry.io/collector/semconv v0.113.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= -go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY= -go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE= -go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE= -go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY= -go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk= -go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0= -go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc= -go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8= -go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys= -go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A= +go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= +go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= +go.opentelemetry.io/collector/component/componentstatus v0.114.0 h1:y9my/xink8KB5lK8zFAjgB2+pEh0QYy5TM972fxZY9w= +go.opentelemetry.io/collector/component/componentstatus v0.114.0/go.mod h1:RIoeCYZpPaae7QLE/1RacqzhHuXBmzRAk9H/EwYtIIs= +go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= +go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= +go.opentelemetry.io/collector/confmap v1.20.0 h1:ARfOwmkKxFOud1njl03yAHQ30+uenlzqCO6LBYamDTE= +go.opentelemetry.io/collector/confmap v1.20.0/go.mod h1:DMpd9Ay/ffls3JoQBQ73vWeRsz1rNuLbwjo6WtjSQus= +go.opentelemetry.io/collector/consumer v0.114.0 h1:1zVaHvfIZowGwZRitRBRo3i+RP2StlU+GClYiofSw0Q= +go.opentelemetry.io/collector/consumer v0.114.0/go.mod h1:d+Mrzt9hsH1ub3zmwSlnQVPLeTYir4Mgo7CrWfnncN4= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 h1:5pXYy3E6UK5Huu3aQbsYL8B6E6MyWx4fvXXDn+oXZaA= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0/go.mod h1:PMq3f54KcJQO4v1tue0QxQScu7REFVADlXxXSAYMiN0= +go.opentelemetry.io/collector/consumer/consumertest v0.114.0 h1:isaTwJK5DOy8Bs7GuLq23ejfgj8gLIo5dOUvkRnLF4g= +go.opentelemetry.io/collector/consumer/consumertest v0.114.0/go.mod h1:GNeLPkfRPdh06n/Rv1UKa/cAtCKjN0a7ADyHjIj4HFE= +go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= +go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= +go.opentelemetry.io/collector/pdata/pprofile v0.114.0 h1:pUNfTzsI/JUTiE+DScDM4lsrPoxnVNLI2fbTxR/oapo= +go.opentelemetry.io/collector/pdata/pprofile v0.114.0/go.mod h1:4aNcj6WM1n1uXyFSXlhVs4ibrERgNYsTbzcYI2zGhxA= +go.opentelemetry.io/collector/pdata/testdata v0.114.0 h1:+AzszWSL1i4K6meQ8rU0JDDW55SYCXa6FVqfDixhhTo= +go.opentelemetry.io/collector/pdata/testdata v0.114.0/go.mod h1:bv8XFdCTZxG2MQB5l9dKxSxf5zBrcodwO6JOy1+AxXM= +go.opentelemetry.io/collector/pipeline v0.114.0 h1:v3YOhc5z0tD6QbO5n/pnftpIeroihM2ks9Z2yKPCcwY= +go.opentelemetry.io/collector/pipeline v0.114.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= +go.opentelemetry.io/collector/processor v0.114.0 h1:6bqQgLL7BtKrNv4YkEOGjZfkcfZv/ciJSQx1epGG9Zk= +go.opentelemetry.io/collector/processor v0.114.0/go.mod h1:DV/wa+nAmSHIDeD9NblPwkY9PbgtDQAZJ+PE5biZwPc= +go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 h1:+P/1nLouEXTnN8DVQl+qWwO4BTkQyNPG9t/FrpUqrSI= +go.opentelemetry.io/collector/processor/processorprofiles v0.114.0/go.mod h1:3fuHeNIpINwx3bqFMprmDJyr6y5tWoWbJH599kltO5Y= +go.opentelemetry.io/collector/processor/processortest v0.114.0 h1:3FTaVXAp0LoVmUJn1ewBFckAby7AHa6/Kcdj0xuW14c= +go.opentelemetry.io/collector/processor/processortest v0.114.0/go.mod h1:OgsdOs1Fv5ZGTTJPF5nNIUJh2YkuV1acWd73yWgnti4= +go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= +go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= diff --git a/comp/otelcol/otlp/components/statsprocessor/go.mod b/comp/otelcol/otlp/components/statsprocessor/go.mod index 620fbd2c28dc9..227e60c4937e6 100644 --- a/comp/otelcol/otlp/components/statsprocessor/go.mod +++ b/comp/otelcol/otlp/components/statsprocessor/go.mod @@ -25,11 +25,13 @@ require ( github.com/DataDog/datadog-go/v5 v5.5.0 github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 github.com/stretchr/testify v1.9.0 - go.opentelemetry.io/collector/component v0.113.0 - go.opentelemetry.io/collector/pdata v1.19.0 - go.opentelemetry.io/otel/sdk/metric v1.31.0 + go.opentelemetry.io/collector/component/componenttest v0.114.0 + go.opentelemetry.io/collector/pdata v1.20.0 + go.opentelemetry.io/otel/sdk/metric v1.32.0 ) +require go.opentelemetry.io/collector/component v0.114.0 // indirect + require ( github.com/DataDog/datadog-agent/comp/trace/compression/def v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/obfuscate v0.56.0-rc.3 // indirect @@ -75,12 +77,12 @@ require ( github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.113.0 // indirect - go.opentelemetry.io/collector/semconv v0.113.0 // indirect - go.opentelemetry.io/otel v1.31.0 // indirect - go.opentelemetry.io/otel/metric v1.31.0 // indirect - go.opentelemetry.io/otel/sdk v1.31.0 // indirect - go.opentelemetry.io/otel/trace v1.31.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect + go.opentelemetry.io/collector/semconv v0.114.0 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect @@ -91,7 +93,7 @@ require ( golang.org/x/text v0.20.0 // indirect golang.org/x/time v0.8.0 // indirect golang.org/x/tools v0.27.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect google.golang.org/protobuf v1.35.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect diff --git a/comp/otelcol/otlp/components/statsprocessor/go.sum b/comp/otelcol/otlp/components/statsprocessor/go.sum index e767b3ea23c2e..1698d19621bf8 100644 --- a/comp/otelcol/otlp/components/statsprocessor/go.sum +++ b/comp/otelcol/otlp/components/statsprocessor/go.sum @@ -76,10 +76,10 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.113.0 h1:Qy0MqQQKmW9wrfduM794WKg4qjTobIdj5HDHW5FZ/P8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.113.0/go.mod h1:X25Nhlw6xhuNSd/C0FeEwmD4PGmcXDl7pa2jR0UREkU= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0 h1:zDScLkNf/llyiH1cjpVv5PhJAT5AcHIXCB35zW5jsbM= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0/go.mod h1:S+GR7FZJYtFBnbjgD737QImuvm8d4+PBccpI0Xrda4E= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 h1:mtSN/07RGQPi1/zHVSZg4G0qRtOoJpPew5jsQWv9uS0= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0/go.mod h1:C9Zgh/N3j4NR2D+1FGAA1YizhFW9OS51DwLUFJTdXN4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 h1:I4ZYVRYW3Cjb65sPENZ9kHam/JUMXNEp2n/knJ0C0Vc= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0/go.mod h1:4BhyIaOn2LS48WS+ZNix4TpP0+goq9gDEtGzth5Cr3M= github.com/opencontainers/runtime-spec v1.1.0-rc.3 h1:l04uafi6kxByhbxev7OWiuUv0LZxEsYUfDWZ6bztAuU= github.com/opencontainers/runtime-spec v1.1.0-rc.3/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/outcaste-io/ristretto v0.2.1 h1:KCItuNIGJZcursqHr3ghO7fc5ddZLEHspL9UR0cQM64= @@ -134,44 +134,46 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= -go.opentelemetry.io/collector/component v0.113.0 h1:/nx+RvZgxUEXP+YcTj69rEtuSEGkfaCyp/ad5zQGLjU= -go.opentelemetry.io/collector/component v0.113.0/go.mod h1:2T779hIGHU9i7xbXbV3q1/JnRw2FyzUYXW2vq47A6EU= -go.opentelemetry.io/collector/component/componentstatus v0.113.0 h1:iNlUi+vDo7OqQwg4UOjfqqY3Xram4SkdcSZAyxt6QfE= -go.opentelemetry.io/collector/component/componentstatus v0.113.0/go.mod h1:NF/hVnP0kcsEqV9x14yMxN9GoehuOaVgMpO+s2KE+28= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0 h1:hweTRrVddnUeA3k7HzRY4oUR9lRdMa7of3mHNUS5YyA= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/consumer v0.113.0 h1:KJSiK5vSIY9dgPxwKfQ3gOgKtQsqc+7IB7mGhUAL5c8= -go.opentelemetry.io/collector/consumer v0.113.0/go.mod h1:zHMlXYFaJlZoLCBR6UwWoyXZ/adcO1u2ydqUal3VmYU= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0 h1:RftAcQUY5UOfbEK4s16jnORqTx16y9+PxA1lQwt98cQ= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0/go.mod h1:ZuHrQ4pWguh6dw0DgTfcUtdY/T+cnOJJNP6LMbm5Y5A= -go.opentelemetry.io/collector/consumer/consumertest v0.113.0 h1:ua2AjNx3DUA8qElXNkggB4w3VDL/rBKBvryOQkhumH8= -go.opentelemetry.io/collector/consumer/consumertest v0.113.0/go.mod h1:vK8o4ZTZSiG3rVyqxZcCNmT/cvEfx34ig7V65L9+6Rg= -go.opentelemetry.io/collector/pdata v1.19.0 h1:jmnU5R8TOCbwRr4B8sjdRxM7L5WnEKlQWX1dtLYxIbE= -go.opentelemetry.io/collector/pdata v1.19.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/pdata/pprofile v0.113.0 h1:VRf4p0VhfuaR+Epy/nMIlu/9t39WU9CUgHVUvpuGxfU= -go.opentelemetry.io/collector/pdata/pprofile v0.113.0/go.mod h1:5aDejksdXh5PdJN/OhpzATGT3kbNL0RMmw2Q0Q6E/o0= -go.opentelemetry.io/collector/pdata/testdata v0.113.0 h1:vRfn85jicO2F4eOTgsWtzmU/K3E/uZUtM1HEefvvJD8= -go.opentelemetry.io/collector/pdata/testdata v0.113.0/go.mod h1:sR+6eR+YEJhYZu9StbqzeWcCmHpfBAgX/qjP82HY9Gw= -go.opentelemetry.io/collector/pipeline v0.113.0 h1:vSRzRe3717jV0btCNPhVkhg2lu0uFxcm2VO+vhad/eE= -go.opentelemetry.io/collector/pipeline v0.113.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= -go.opentelemetry.io/collector/processor v0.113.0 h1:BQI6MsKtiCG9HT/nmiRXTKP6SZFrjFKVfM6pTQfbc0k= -go.opentelemetry.io/collector/processor v0.113.0/go.mod h1:oX91zMI8ZkoaYSUfUYflHiMiiBJPKtODNBUCrETLLd8= -go.opentelemetry.io/collector/processor/processorprofiles v0.113.0 h1:cczN6whdrCWww3T0FBV3U7lsVKQmkWDX05M+9lANHgk= -go.opentelemetry.io/collector/processor/processorprofiles v0.113.0/go.mod h1:4Dmx5qsvujgJ+MC+KqWI7UDVM2liXa3sH/9XnGiL9aE= -go.opentelemetry.io/collector/processor/processortest v0.113.0 h1:jGoDJ+tDCzuDcAWZeshQtnK/DQAvMKd4wZAIDgAM5aA= -go.opentelemetry.io/collector/processor/processortest v0.113.0/go.mod h1:tNg04r5KlpVx774jSC8U/oYst1eb7WIiz+0AjXKJ0Uw= -go.opentelemetry.io/collector/semconv v0.113.0 h1:twenSI7M7MJMJKW8D6a/GXxPZTPbama/weywBtV2iFw= -go.opentelemetry.io/collector/semconv v0.113.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= -go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY= -go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE= -go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE= -go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY= -go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk= -go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0= -go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc= -go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8= -go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys= -go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A= +go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= +go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= +go.opentelemetry.io/collector/component/componentstatus v0.114.0 h1:y9my/xink8KB5lK8zFAjgB2+pEh0QYy5TM972fxZY9w= +go.opentelemetry.io/collector/component/componentstatus v0.114.0/go.mod h1:RIoeCYZpPaae7QLE/1RacqzhHuXBmzRAk9H/EwYtIIs= +go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= +go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= +go.opentelemetry.io/collector/consumer v0.114.0 h1:1zVaHvfIZowGwZRitRBRo3i+RP2StlU+GClYiofSw0Q= +go.opentelemetry.io/collector/consumer v0.114.0/go.mod h1:d+Mrzt9hsH1ub3zmwSlnQVPLeTYir4Mgo7CrWfnncN4= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 h1:5pXYy3E6UK5Huu3aQbsYL8B6E6MyWx4fvXXDn+oXZaA= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0/go.mod h1:PMq3f54KcJQO4v1tue0QxQScu7REFVADlXxXSAYMiN0= +go.opentelemetry.io/collector/consumer/consumertest v0.114.0 h1:isaTwJK5DOy8Bs7GuLq23ejfgj8gLIo5dOUvkRnLF4g= +go.opentelemetry.io/collector/consumer/consumertest v0.114.0/go.mod h1:GNeLPkfRPdh06n/Rv1UKa/cAtCKjN0a7ADyHjIj4HFE= +go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= +go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= +go.opentelemetry.io/collector/pdata/pprofile v0.114.0 h1:pUNfTzsI/JUTiE+DScDM4lsrPoxnVNLI2fbTxR/oapo= +go.opentelemetry.io/collector/pdata/pprofile v0.114.0/go.mod h1:4aNcj6WM1n1uXyFSXlhVs4ibrERgNYsTbzcYI2zGhxA= +go.opentelemetry.io/collector/pdata/testdata v0.114.0 h1:+AzszWSL1i4K6meQ8rU0JDDW55SYCXa6FVqfDixhhTo= +go.opentelemetry.io/collector/pdata/testdata v0.114.0/go.mod h1:bv8XFdCTZxG2MQB5l9dKxSxf5zBrcodwO6JOy1+AxXM= +go.opentelemetry.io/collector/pipeline v0.114.0 h1:v3YOhc5z0tD6QbO5n/pnftpIeroihM2ks9Z2yKPCcwY= +go.opentelemetry.io/collector/pipeline v0.114.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= +go.opentelemetry.io/collector/processor v0.114.0 h1:6bqQgLL7BtKrNv4YkEOGjZfkcfZv/ciJSQx1epGG9Zk= +go.opentelemetry.io/collector/processor v0.114.0/go.mod h1:DV/wa+nAmSHIDeD9NblPwkY9PbgtDQAZJ+PE5biZwPc= +go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 h1:+P/1nLouEXTnN8DVQl+qWwO4BTkQyNPG9t/FrpUqrSI= +go.opentelemetry.io/collector/processor/processorprofiles v0.114.0/go.mod h1:3fuHeNIpINwx3bqFMprmDJyr6y5tWoWbJH599kltO5Y= +go.opentelemetry.io/collector/processor/processortest v0.114.0 h1:3FTaVXAp0LoVmUJn1ewBFckAby7AHa6/Kcdj0xuW14c= +go.opentelemetry.io/collector/processor/processortest v0.114.0/go.mod h1:OgsdOs1Fv5ZGTTJPF5nNIUJh2YkuV1acWd73yWgnti4= +go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= +go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= @@ -258,8 +260,8 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 h1:QCqS/PdaHTSWGvupk2F/ehwHtGc0/GYkT+3GAcR1CCc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= diff --git a/comp/otelcol/otlp/testutil/go.mod b/comp/otelcol/otlp/testutil/go.mod index 9fd935908aebe..dc5d7a8cf82a0 100644 --- a/comp/otelcol/otlp/testutil/go.mod +++ b/comp/otelcol/otlp/testutil/go.mod @@ -41,7 +41,7 @@ require ( github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 github.com/DataDog/sketches-go v1.4.6 github.com/stretchr/testify v1.9.0 - go.opentelemetry.io/collector/pdata v1.19.0 + go.opentelemetry.io/collector/pdata v1.20.0 google.golang.org/protobuf v1.35.1 ) diff --git a/comp/otelcol/otlp/testutil/go.sum b/comp/otelcol/otlp/testutil/go.sum index 20de9be7666a0..637c5feb37187 100644 --- a/comp/otelcol/otlp/testutil/go.sum +++ b/comp/otelcol/otlp/testutil/go.sum @@ -250,8 +250,8 @@ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5t github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/collector/pdata v1.19.0 h1:jmnU5R8TOCbwRr4B8sjdRxM7L5WnEKlQWX1dtLYxIbE= -go.opentelemetry.io/collector/pdata v1.19.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= +go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= +go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= diff --git a/comp/trace/agent/def/go.mod b/comp/trace/agent/def/go.mod index f4c4bfca3e147..0c1bb30cde21e 100644 --- a/comp/trace/agent/def/go.mod +++ b/comp/trace/agent/def/go.mod @@ -7,7 +7,12 @@ replace github.com/DataDog/datadog-agent/pkg/proto => ../../../../pkg/proto require ( github.com/DataDog/datadog-agent/pkg/proto v0.56.0-rc.3 github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 - go.opentelemetry.io/collector/pdata v1.19.0 + go.opentelemetry.io/collector/pdata v1.20.0 +) + +require ( + go.opentelemetry.io/collector/component/componenttest v0.114.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect ) require ( @@ -17,12 +22,12 @@ require ( github.com/modern-go/reflect2 v1.0.2 // indirect github.com/philhofer/fwd v1.1.2 // indirect github.com/tinylib/msgp v1.1.8 // indirect - go.opentelemetry.io/collector/component v0.113.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.113.0 // indirect - go.opentelemetry.io/collector/semconv v0.113.0 // indirect - go.opentelemetry.io/otel v1.31.0 // indirect - go.opentelemetry.io/otel/metric v1.31.0 // indirect - go.opentelemetry.io/otel/trace v1.31.0 // indirect + go.opentelemetry.io/collector/component v0.114.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect + go.opentelemetry.io/collector/semconv v0.114.0 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/net v0.31.0 // indirect diff --git a/comp/trace/agent/def/go.sum b/comp/trace/agent/def/go.sum index 4f2db035b95b5..15c48a0e652e6 100644 --- a/comp/trace/agent/def/go.sum +++ b/comp/trace/agent/def/go.sum @@ -44,24 +44,26 @@ github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgq github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.opentelemetry.io/collector/component v0.113.0 h1:/nx+RvZgxUEXP+YcTj69rEtuSEGkfaCyp/ad5zQGLjU= -go.opentelemetry.io/collector/component v0.113.0/go.mod h1:2T779hIGHU9i7xbXbV3q1/JnRw2FyzUYXW2vq47A6EU= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0 h1:hweTRrVddnUeA3k7HzRY4oUR9lRdMa7of3mHNUS5YyA= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/pdata v1.19.0 h1:jmnU5R8TOCbwRr4B8sjdRxM7L5WnEKlQWX1dtLYxIbE= -go.opentelemetry.io/collector/pdata v1.19.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/semconv v0.113.0 h1:twenSI7M7MJMJKW8D6a/GXxPZTPbama/weywBtV2iFw= -go.opentelemetry.io/collector/semconv v0.113.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= -go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY= -go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE= -go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE= -go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY= -go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk= -go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0= -go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc= -go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8= -go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys= -go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A= +go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= +go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= +go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= +go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= +go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= +go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= +go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= +go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= diff --git a/go.mod b/go.mod index f91e78d06a064..26930c22eacb8 100644 --- a/go.mod +++ b/go.mod @@ -155,7 +155,7 @@ require ( github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.59.0 github.com/DataDog/datadog-agent/pkg/security/secl v0.56.0 github.com/DataDog/datadog-agent/pkg/trace v0.59.0 - github.com/DataDog/datadog-agent/pkg/util/cgroups v0.58.1 + github.com/DataDog/datadog-agent/pkg/util/cgroups v0.59.0 github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 @@ -248,7 +248,7 @@ require ( github.com/olekukonko/tablewriter v0.0.5 github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852 github.com/open-policy-agent/opa v0.70.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.113.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0 // indirect github.com/opencontainers/go-digest v1.0.0 github.com/opencontainers/image-spec v1.1.0 github.com/opencontainers/runtime-spec v1.2.0 @@ -276,7 +276,7 @@ require ( github.com/streadway/amqp v1.1.0 github.com/stretchr/testify v1.9.0 github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 - github.com/tinylib/msgp v1.2.3 + github.com/tinylib/msgp v1.2.4 github.com/twmb/murmur3 v1.1.8 github.com/uptrace/bun v1.2.5 github.com/uptrace/bun/dialect/pgdialect v1.2.5 @@ -290,16 +290,16 @@ require ( go.etcd.io/bbolt v1.3.11 go.etcd.io/etcd/client/v2 v2.306.0-alpha.0 go.mongodb.org/mongo-driver v1.15.1 - go.opentelemetry.io/collector v0.113.0 // indirect - go.opentelemetry.io/collector/component v0.113.0 - go.opentelemetry.io/collector/confmap v1.19.0 - go.opentelemetry.io/collector/exporter v0.113.0 - go.opentelemetry.io/collector/exporter/debugexporter v0.113.0 - go.opentelemetry.io/collector/exporter/otlpexporter v0.113.0 - go.opentelemetry.io/collector/pdata v1.19.0 - go.opentelemetry.io/collector/processor/batchprocessor v0.113.0 - go.opentelemetry.io/collector/receiver v0.113.0 - go.opentelemetry.io/collector/receiver/otlpreceiver v0.113.0 + go.opentelemetry.io/collector v0.114.0 // indirect + go.opentelemetry.io/collector/component v0.114.0 + go.opentelemetry.io/collector/confmap v1.20.0 + go.opentelemetry.io/collector/exporter v0.114.0 + go.opentelemetry.io/collector/exporter/debugexporter v0.114.0 + go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0 + go.opentelemetry.io/collector/pdata v1.20.0 + go.opentelemetry.io/collector/processor/batchprocessor v0.114.0 + go.opentelemetry.io/collector/receiver v0.114.0 + go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 // indirect go.uber.org/atomic v1.11.0 go.uber.org/automaxprocs v1.6.0 @@ -433,7 +433,7 @@ require ( github.com/google/wire v0.6.0 // indirect github.com/googleapis/gax-go/v2 v2.13.0 // indirect github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect @@ -555,16 +555,16 @@ require ( go.etcd.io/etcd/client/v3 v3.6.0-alpha.0 // indirect go.etcd.io/etcd/server/v3 v3.6.0-alpha.0.0.20220522111935-c3bc4116dcd1 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/collector/consumer v0.113.0 // indirect - go.opentelemetry.io/collector/featuregate v1.19.0 - go.opentelemetry.io/collector/semconv v0.113.0 // indirect + go.opentelemetry.io/collector/consumer v0.114.0 // indirect + go.opentelemetry.io/collector/featuregate v1.20.0 + go.opentelemetry.io/collector/semconv v0.114.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect go.opentelemetry.io/contrib/propagators/b3 v1.31.0 // indirect go.opentelemetry.io/otel v1.32.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0 - go.opentelemetry.io/otel/exporters/prometheus v0.53.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect go.opentelemetry.io/otel/metric v1.32.0 // indirect go.opentelemetry.io/otel/sdk v1.32.0 go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect @@ -596,7 +596,7 @@ require ( require ( github.com/DataDog/datadog-agent/comp/api/authtoken v0.0.0-00010101000000-000000000000 - github.com/DataDog/datadog-agent/comp/core/flare/builder v0.58.1 + github.com/DataDog/datadog-agent/comp/core/flare/builder v0.59.0 github.com/DataDog/datadog-agent/comp/core/tagger/utils v0.59.0 github.com/DataDog/datadog-agent/comp/otelcol/ddflareextension/def v0.59.0-rc.6 github.com/DataDog/datadog-agent/comp/otelcol/ddflareextension/impl v0.0.0-00010101000000-000000000000 @@ -612,22 +612,29 @@ require ( github.com/jellydator/ttlcache/v3 v3.3.0 github.com/kouhin/envflag v0.0.0-20150818174321-0e9a86061649 github.com/lorenzosaino/go-sysctl v0.3.1 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.113.0 - go.opentelemetry.io/collector/config/configtelemetry v0.113.0 + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 + go.opentelemetry.io/collector/config/configtelemetry v0.114.0 +) + +require go.opentelemetry.io/collector/component/componenttest v0.114.0 + +require ( + go.opentelemetry.io/collector/extension/extensiontest v0.114.0 // indirect + go.opentelemetry.io/collector/processor/processorhelper/processorhelperprofiles v0.114.0 // indirect ) require ( - go.opentelemetry.io/collector/connector/connectortest v0.113.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror v0.113.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/exporter/exportertest v0.113.0 // indirect - go.opentelemetry.io/collector/internal/fanoutconsumer v0.113.0 // indirect - go.opentelemetry.io/collector/internal/memorylimiter v0.113.0 // indirect - go.opentelemetry.io/collector/internal/sharedcomponent v0.113.0 // indirect - go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/processor/processortest v0.113.0 // indirect - go.opentelemetry.io/collector/receiver/receivertest v0.113.0 // indirect + go.opentelemetry.io/collector/connector/connectortest v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/exporter/exportertest v0.114.0 // indirect + go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0 // indirect + go.opentelemetry.io/collector/internal/memorylimiter v0.114.0 // indirect + go.opentelemetry.io/collector/internal/sharedcomponent v0.114.0 // indirect + go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/processor/processortest v0.114.0 // indirect + go.opentelemetry.io/collector/receiver/receivertest v0.114.0 // indirect go.opentelemetry.io/contrib/bridges/otelzap v0.6.0 // indirect ) @@ -647,28 +654,28 @@ require ( github.com/DataDog/datadog-agent/comp/core/status/statusimpl v0.56.0-rc.3 github.com/DataDog/datadog-agent/comp/core/tagger/tags v0.0.0-00010101000000-000000000000 github.com/DataDog/datadog-agent/comp/core/tagger/types v0.59.0 - github.com/DataDog/datadog-agent/comp/core/telemetry v0.58.1 - github.com/DataDog/datadog-agent/comp/def v0.58.1 + github.com/DataDog/datadog-agent/comp/core/telemetry v0.59.0 + github.com/DataDog/datadog-agent/comp/def v0.59.0 github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder v0.56.0-rc.3 github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorinterface v0.56.0-rc.3 - github.com/DataDog/datadog-agent/comp/logs/agent/config v0.58.1 + github.com/DataDog/datadog-agent/comp/logs/agent/config v0.59.0 github.com/DataDog/datadog-agent/comp/netflow/payload v0.56.0-rc.3 github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib/def v0.56.0-rc.3 github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib/impl v0.56.0-rc.3 github.com/DataDog/datadog-agent/comp/otelcol/converter/def v0.56.0-rc.3 github.com/DataDog/datadog-agent/comp/otelcol/converter/impl v0.58.0 - github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline v0.59.0-rc.6 - github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline/logsagentpipelineimpl v0.58.1 + github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline v0.59.0 + github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline/logsagentpipelineimpl v0.59.0 github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/datadogexporter v0.59.0 - github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter v0.59.0-rc.6 + github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter v0.61.0-devel.0.20241118141418-5b899217c342 github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter v0.59.0-rc.6 - github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient v0.59.0-rc.6 + github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient v0.59.0 github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/processor/infraattributesprocessor v0.59.0 github.com/DataDog/datadog-agent/comp/otelcol/otlp/testutil v0.56.0-rc.3 github.com/DataDog/datadog-agent/comp/serializer/compression v0.59.0-rc.6 github.com/DataDog/datadog-agent/comp/trace/agent/def v0.59.0-rc.6 - github.com/DataDog/datadog-agent/comp/trace/compression/def v0.59.0-rc.6 - github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip v0.59.0-rc.6 + github.com/DataDog/datadog-agent/comp/trace/compression/def v0.59.0 + github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip v0.59.0 github.com/DataDog/datadog-agent/comp/trace/compression/impl-zstd v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/aggregator/ckey v0.59.0-rc.6 github.com/DataDog/datadog-agent/pkg/api v0.57.1 @@ -678,19 +685,19 @@ require ( github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 github.com/DataDog/datadog-agent/pkg/config/remote v0.59.0-rc.5 github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 - github.com/DataDog/datadog-agent/pkg/config/utils v0.58.1 + github.com/DataDog/datadog-agent/pkg/config/utils v0.59.0 github.com/DataDog/datadog-agent/pkg/errors v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/logs/auditor v0.58.1 - github.com/DataDog/datadog-agent/pkg/logs/client v0.58.1 - github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.58.1 - github.com/DataDog/datadog-agent/pkg/logs/message v0.58.1 - github.com/DataDog/datadog-agent/pkg/logs/metrics v0.58.1 - github.com/DataDog/datadog-agent/pkg/logs/pipeline v0.58.1 - github.com/DataDog/datadog-agent/pkg/logs/processor v0.58.1 - github.com/DataDog/datadog-agent/pkg/logs/sds v0.58.1 - github.com/DataDog/datadog-agent/pkg/logs/sender v0.58.1 - github.com/DataDog/datadog-agent/pkg/logs/sources v0.58.1 - github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.58.1 + github.com/DataDog/datadog-agent/pkg/logs/auditor v0.59.0 + github.com/DataDog/datadog-agent/pkg/logs/client v0.59.0 + github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.59.0 + github.com/DataDog/datadog-agent/pkg/logs/message v0.59.0 + github.com/DataDog/datadog-agent/pkg/logs/metrics v0.59.0 + github.com/DataDog/datadog-agent/pkg/logs/pipeline v0.59.0 + github.com/DataDog/datadog-agent/pkg/logs/processor v0.59.0 + github.com/DataDog/datadog-agent/pkg/logs/sds v0.59.0 + github.com/DataDog/datadog-agent/pkg/logs/sender v0.59.0 + github.com/DataDog/datadog-agent/pkg/logs/sources v0.59.0 + github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.59.0 github.com/DataDog/datadog-agent/pkg/logs/util/testutils v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/metrics v0.59.0-rc.6 github.com/DataDog/datadog-agent/pkg/networkdevice/profile v0.56.0-rc.3 @@ -746,7 +753,7 @@ require ( github.com/judwhite/go-svc v1.2.1 github.com/kr/pretty v0.3.1 // todo: update datadog connector with breaking changes from https://github.com/DataDog/datadog-agent/pull/26347. - github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.113.0 + github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.114.0 github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 github.com/prometheus-community/pro-bing v0.4.1 github.com/rickar/props v1.0.0 @@ -754,15 +761,15 @@ require ( github.com/swaggest/jsonschema-go v0.3.70 github.com/valyala/fastjson v1.6.4 github.com/vibrantbyte/go-antpath v1.1.1 - go.opentelemetry.io/collector/confmap/provider/envprovider v1.19.0 - go.opentelemetry.io/collector/confmap/provider/fileprovider v1.19.0 - go.opentelemetry.io/collector/confmap/provider/httpprovider v1.19.0 - go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.19.0 - go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.19.0 - go.opentelemetry.io/collector/extension v0.113.0 - go.opentelemetry.io/collector/otelcol v0.113.0 - go.opentelemetry.io/collector/processor v0.113.0 - go.opentelemetry.io/collector/service v0.113.0 + go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0 + go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0 + go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0 + go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0 + go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0 + go.opentelemetry.io/collector/extension v0.114.0 + go.opentelemetry.io/collector/otelcol v0.114.0 + go.opentelemetry.io/collector/processor v0.114.0 + go.opentelemetry.io/collector/service v0.114.0 go4.org/intern v0.0.0-20230525184215-6c62f75575cb go4.org/mem v0.0.0-20220726221520-4f986261bf13 k8s.io/cli-runtime v0.31.2 @@ -786,12 +793,12 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v4 v4.3.0 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect github.com/Code-Hex/go-generics-cache v1.5.1 // indirect - github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/statsprocessor v0.59.0-rc.6 // indirect + github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/statsprocessor v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.60.0-devel // indirect github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.60.0-devel // indirect - github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.58.1 // indirect + github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/buf v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/statstracker v0.58.1 // indirect + github.com/DataDog/datadog-agent/pkg/util/statstracker v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-api-client-go/v2 v2.31.0 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect @@ -897,53 +904,53 @@ require ( github.com/moby/sys/userns v0.1.0 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect github.com/ncruces/go-strftime v0.1.9 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.113.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.113.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.114.0 // indirect github.com/openshift/client-go v0.0.0-20210521082421-73d9475a9142 // indirect github.com/openvex/go-vex v0.2.5 // indirect github.com/openzipkin/zipkin-go v0.4.3 // indirect @@ -985,51 +992,51 @@ require ( github.com/wk8/go-ordered-map/v2 v2.1.8 // indirect github.com/x448/float16 v0.8.4 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect - go.opentelemetry.io/collector/client v1.19.0 // indirect - go.opentelemetry.io/collector/component/componentstatus v0.113.0 // indirect - go.opentelemetry.io/collector/config/configauth v0.113.0 // indirect - go.opentelemetry.io/collector/config/configcompression v1.19.0 // indirect - go.opentelemetry.io/collector/config/configgrpc v0.113.0 // indirect - go.opentelemetry.io/collector/config/confighttp v0.113.0 // indirect - go.opentelemetry.io/collector/config/confignet v1.19.0 // indirect - go.opentelemetry.io/collector/config/configopaque v1.19.0 // indirect - go.opentelemetry.io/collector/config/configretry v1.19.0 // indirect - go.opentelemetry.io/collector/config/configtls v1.19.0 // indirect - go.opentelemetry.io/collector/config/internal v0.113.0 // indirect - go.opentelemetry.io/collector/connector v0.113.0 // indirect - go.opentelemetry.io/collector/connector/connectorprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/consumer/consumertest v0.113.0 // indirect - go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/exporter/nopexporter v0.113.0 // indirect - go.opentelemetry.io/collector/exporter/otlphttpexporter v0.113.0 // indirect - go.opentelemetry.io/collector/extension/auth v0.113.0 // indirect - go.opentelemetry.io/collector/extension/experimental/storage v0.113.0 // indirect - go.opentelemetry.io/collector/extension/extensioncapabilities v0.113.0 // indirect - go.opentelemetry.io/collector/extension/zpagesextension v0.113.0 // indirect - go.opentelemetry.io/collector/filter v0.113.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.113.0 // indirect - go.opentelemetry.io/collector/pdata/testdata v0.113.0 // indirect - go.opentelemetry.io/collector/pipeline v0.113.0 // indirect - go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.113.0 // indirect - go.opentelemetry.io/collector/processor/processorprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/receiver/nopreceiver v0.113.0 // indirect - go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0 // indirect + go.opentelemetry.io/collector/client v1.20.0 // indirect + go.opentelemetry.io/collector/component/componentstatus v0.114.0 // indirect + go.opentelemetry.io/collector/config/configauth v0.114.0 // indirect + go.opentelemetry.io/collector/config/configcompression v1.20.0 // indirect + go.opentelemetry.io/collector/config/configgrpc v0.114.0 // indirect + go.opentelemetry.io/collector/config/confighttp v0.114.0 // indirect + go.opentelemetry.io/collector/config/confignet v1.20.0 // indirect + go.opentelemetry.io/collector/config/configopaque v1.20.0 // indirect + go.opentelemetry.io/collector/config/configretry v1.20.0 // indirect + go.opentelemetry.io/collector/config/configtls v1.20.0 // indirect + go.opentelemetry.io/collector/config/internal v0.114.0 // indirect + go.opentelemetry.io/collector/connector v0.114.0 // indirect + go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumertest v0.114.0 // indirect + go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/exporter/nopexporter v0.114.0 // indirect + go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0 // indirect + go.opentelemetry.io/collector/extension/auth v0.114.0 // indirect + go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 // indirect + go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0 // indirect + go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 // indirect + go.opentelemetry.io/collector/filter v0.114.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.114.0 // indirect + go.opentelemetry.io/collector/pdata/testdata v0.114.0 // indirect + go.opentelemetry.io/collector/pipeline v0.114.0 // indirect + go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.114.0 // indirect + go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0 // indirect + go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 // indirect go.opentelemetry.io/contrib/config v0.10.0 // indirect go.opentelemetry.io/contrib/zpages v0.56.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.7.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.31.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.32.0 // indirect go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.7.0 // indirect - go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.31.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.32.0 // indirect go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.31.0 // indirect - go.opentelemetry.io/otel/log v0.7.0 // indirect + go.opentelemetry.io/otel/log v0.8.0 // indirect go.opentelemetry.io/otel/sdk/log v0.7.0 // indirect go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect golang.org/x/exp/typeparams v0.0.0-20230307190834-24139beb5833 // indirect golang.org/x/lint v0.0.0-20241112194109-818c5a804067 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect diff --git a/go.sum b/go.sum index 2bae1c0dacf96..799c0bcda1aba 100644 --- a/go.sum +++ b/go.sum @@ -923,8 +923,8 @@ github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 h1:ad0vkEBuk23VJzZR9nkLVG0YAoN9coASF1GusYX6AlU= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0/go.mod h1:igFoXX2ELCW06bol23DWPB5BEWfZISOzSP5K2sbLea0= github.com/h2non/filetype v1.0.5/go.mod h1:isekKqOuhMj+s/7r3rIeTErIRy4Rub5uBWHfvMusLMU= github.com/h2non/filetype v1.1.3 h1:FKkx9QbD7HR/zjK1Ia5XiBsq9zdLi5Kf3zGyFTAFkGg= github.com/h2non/filetype v1.1.3/go.mod h1:319b3zT68BvV+WRj7cwy856M2ehB3HqNOt6sy1HndBY= @@ -1363,120 +1363,120 @@ github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= github.com/open-policy-agent/opa v0.70.0 h1:B3cqCN2iQAyKxK6+GI+N40uqkin+wzIrM7YA60t9x1U= github.com/open-policy-agent/opa v0.70.0/go.mod h1:Y/nm5NY0BX0BqjBriKUiV81sCl8XOjjvqQG7dXrggtI= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.113.0 h1:WJfe78FxmmshTWilSpwtDRHoOl8gxKAnTW0eT4kureY= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.113.0/go.mod h1:XkFc7X0M2hnM4AYg6yX+r7btu208RG8THfM/npF/eKQ= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.113.0 h1:f3PXc+bgwGtJIlWwtOXDYYNBKOyabhkLl6Q3j/Rc1ow= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.113.0/go.mod h1:Ix1L1Godr9TS2DvHWSz/+0RBPa/D34azSvk/xU3dlGs= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.113.0 h1:ITFlE4UHWUQQg5Vy7XfaRaE7hADsK3UTtEJ5xrPbWU8= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.113.0/go.mod h1:tH0inPPuK/JYMDlLTe7ioGN1Zbp3NbNSp8H0Vc5C+uU= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.113.0 h1:sYEmpMeBGMSoy8j1GSEkBO5GM578Qtq3QtmVcsYn51s= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.113.0/go.mod h1:ULlXfiJdXw0ZzUGXLToQvGb1gQuIGC2BjtfyTnw3QtE= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.113.0 h1:QTCu/YoA37p2Kf81Bc/h5TM70K8O+E/gMBc9vCkJrUQ= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.113.0/go.mod h1:f3Lwdfnyzf7IY/gFXiRnSPMWGLZv17r+GJuTwnZkQL8= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.113.0 h1:Aej9sL1v25Xf8AfM1fyRluBLV5g5+40GnagCb0/UJfY= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.113.0/go.mod h1:QiXedkQif06vbjtVgnmmrHOunLUoLLAf10uaA/qKgts= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.113.0 h1:DLVAun5qoedOzWZ1+yoZRuGj0RonhrGAqdAOO7k6k+A= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.113.0/go.mod h1:betAqGGfDFb8SLyMYBwH9BQyB9wzxWOWXXC/Ht6/kas= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.113.0 h1:Z6Y34pWmm/be0D5QCirBLEoMf7K9ObRPkMMD8bt4Ce0= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.113.0/go.mod h1:LZ3Wbuyz2MNNAj3bT9u7QUt21glx2FWE26b0EjWKWnc= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.113.0 h1:hJfn9iDpcmaeYCBJvwAhmH4prq2Rdr+hWizEIKWaXmg= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.113.0/go.mod h1:tImtwJ0mSfqoPycKMDGFZcVBGi+8KnBTmBSMHsGSTkU= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.113.0 h1:Z4gWWk5N3ZBJlAx0hRm2sDUxlW8qK7dVoRbWMUnKiOM= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.113.0/go.mod h1:FB+Xi0xKwEqTCshu2SGykG2LXRvg+5ZYR3jymz6+Mtw= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.113.0 h1:+kM285dDDP69EfG6lB+A8nO98wtYrXT/afxlIzk5+IU= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.113.0/go.mod h1:X6/2QgHXQ73vvs1C5LEMyifUknLa71E27hUcbTY5vRo= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.113.0 h1:9xbLur+qeUwlKDrx9LGI9fvypussD2E00q6QFkkGpGo= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.113.0/go.mod h1:l58b3KahydKLOzt7S0s0NYBYH9Nm8tZ4w/GIVvOLCWU= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.113.0 h1:hc407moydGsK9FfAxjP3Tw+akhmKO8PfaH18II3N7Q4= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.113.0/go.mod h1:+1IJOoUqBzghufMZDSMhKzs1UOi39h8pMFDxWm/k1k4= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.113.0 h1:ERdOiTmsDruI/s5oEgN45NsZW2roWXmO0u2aceR4GuM= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.113.0/go.mod h1:RkClsQhl8hdAg874Ot4kaG92s+6dW0Dvlt5HRxhsavc= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.113.0 h1:qudJNiKFfxly/lPyfdZNwnT6OKCzRFw0BI0E5CI6WwU= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.113.0/go.mod h1:eHVWQ484ohG4ZjaV8KTej3CMVEPh0w6zBXfi+qqvyGw= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.113.0 h1:7A8MgFPYRQWq1RkFBktq01CW+eTYhiGML0IxQNv2uaM= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.113.0/go.mod h1:E1pc7mDXH+5s7RyXw291h8lz2dhzPzaDrAHqP1Lawvw= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.113.0 h1:EZ/ZNsovNcQq+wwAbTAWNY+6BHnv24NxvVoC6eYmtg8= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.113.0/go.mod h1:u21dEQ9yQ0JyLMSrKLWWzHG/lHSlteNfa/EQ7Vqcle4= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.113.0 h1:462BO6mxAJKJdlqxs3swj9RtebQNeHXp2g7IK/N7+Zc= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.113.0/go.mod h1:aFfi8Vz+pIYXYxrx9rDP2Rhduac7mrjUYEAI/0GUIl4= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.113.0 h1:SjzsWZqrxUoRWvXzwrbjQCnoJRJApJVCCqjrtflapMM= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.113.0/go.mod h1:sYIh0S63ztcL2q9gEKhvviDQ5caH1sFE1oeFRDQOQ6A= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.113.0 h1:E/D5TwJyKN19p1FQ0XD5r5G1uH9NH/HVAM0e1hFMwFU= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.113.0/go.mod h1:FcClDm9XVV5tzUDzmH2Mhe6TfYiZ/3GSAQITnuCjZgg= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8stest v0.113.0 h1:ZQ7HYLrsbbfrIYybOVDG4d1IS4PfxuZEll7lvLmcYDs= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8stest v0.113.0/go.mod h1:2/6/eY8Uvg+NfYDsAbND96A4u5q4UjcDlBJolYcj6jE= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.113.0 h1:BidrOROxYyacsUzNJyPZdvuX9VpbmFnSJXAt0yz6cXU= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.113.0/go.mod h1:TM5DUkjqHozcpjCX36f7cDv6Rv+J8ysZ52zCYAEQZCk= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.113.0 h1:V9CRl77lPG2xFPpnRf1QLiePo7FZngt+vw6M2KLdRMU= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.113.0/go.mod h1:zL+Msnlb1TEObHQ2RNnPKbVr3GhSdyI2ZqGtiSxg2/E= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.113.0 h1:SVvBEMYFwb+vq/bNg9TVHNCaiFYb79B8Ce2z0/sWBgc= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.113.0/go.mod h1:lRfw7YDJE82nmdTO14Sk5rzkFJPHyH1iAnWIkjyQgQk= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.113.0 h1:gMaV3vZTFJU/B/g/2kKjbHn+LcIIsN4MhGSHi6/ZaFk= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.113.0/go.mod h1:iES2YMgH43z6KdlWnTWiZwWY3cyAL/GJOzCEbD7nGkI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.113.0 h1:wKyHS2Vly/qhEEKYsKtRqprZko9hZd+jtmn3TAMrZZU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.113.0/go.mod h1:lFOHzTWx4ozV2x/vRWBgu7gC0rkkX6EMdQkyIxLL2zI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.113.0 h1:sfPQ3RPyimzEzB2aQtUaEu7ElwDmlze+q0moWV9YpkI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.113.0/go.mod h1:QMenHMTJ5qrpghfPoMMpS0QwW6pQrXOqHn7QcNgn+NU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.113.0 h1:T3KHOKgNbWKD6gx5R2D4p3tg+0p4lIrxyf+4iy0Yxts= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.113.0/go.mod h1:VqC1uSDXtgrEuqyyJuYp7G8Sr2FY2QtP3pN9a7cTueA= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.113.0 h1:5YU2trp7n56EyDS9dEyY1UxyaW6wxB4KiyKoyjDYooo= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.113.0/go.mod h1:EBtBK1lE/HMUz51cafBLlJAXZ/2ZDRCV4C+rT04fMYM= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.113.0 h1:e2WOkaj5AWPaKTU4l+GEXGrEUbrAhQPQ7zLUdnXLGX8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.113.0/go.mod h1:x+DR/o7xddbdhpQP2QKBJkPUdrj2tl/uR1OJ/sqlrWc= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.113.0 h1:GERkhEtH3Uk8CMBzFoBmMD7fBfcrtIM9hopbQqzdvNs= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.113.0/go.mod h1:+VbefhdCgKiTXsIU6sQj9L96Ow53a8EMcUW6EMt3zTA= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.113.0 h1:Ux4k3jMTufk4HZ4RNYrqLxIt6wKEeOFAndzGWBjiUqs= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.113.0/go.mod h1:GWsSVmzpKZucOefuqqvKEUbnqGRV9OCSX2vzTjC/sbI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.113.0 h1:n44G0Quw+OQMZ+ELOo/Aw1qcwVu7LXae8GBVjVSE+HQ= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.113.0/go.mod h1:6dxGDpWsWnzC5UK3RhgfdXRC+3c8RLCO+cC+RiS+jIU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.113.0 h1:Qy0MqQQKmW9wrfduM794WKg4qjTobIdj5HDHW5FZ/P8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.113.0/go.mod h1:X25Nhlw6xhuNSd/C0FeEwmD4PGmcXDl7pa2jR0UREkU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.113.0 h1:G8w+wg4nnqBqe297fBWnjJ5Tg2OYDVEMsdWA9/3ozxQ= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.113.0/go.mod h1:m3hDVsXPQzQfeji3+hn7NYJPHDRlHhQRNd5T7N5wZqc= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.113.0 h1:mFYOvag34kGXceVj29k0ZpBUyjEX7VZq+KctUSfNiG0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.113.0/go.mod h1:54P38b2i1CgHvZLxD3EAzVccqreamGEz2U4pqy9DuHw= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.113.0 h1:vKtNSM3VQBTJx1ecf+I1iqn4kj7fKif1SpBLQ+numf8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.113.0/go.mod h1:Iw3ndTvDCbmN6uugOfIqmfb1pgCWTYg+tXXS2rr3QJo= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.113.0 h1:XzI7y1bC29bnJ9VgyA0JCws0e/rIyt7yteT5gGLe6nw= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.113.0/go.mod h1:OxdhzDFd7/cRck6LeWLF2TUC/QhwoJSUlw35NuVbvzA= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.113.0 h1:4fkpWb4wG1RWr9C5M8IbxcBwq9qGlqf5bbp3bxRXOzA= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.113.0/go.mod h1:yAl+wNAt18sGPizvODIHue12echxjpFL2SEQvUksN5M= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.113.0 h1:z8DT+vL/NfRN2hpacLIqtCMcInFrM01CY9LtoFJq+jQ= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.113.0/go.mod h1:U0wBuG6Jz+DBzcPNCmRVZaZTXqaKC+RYo4eJiSKJwwk= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.113.0 h1:VHt8tWPRPzPjl2AzO6tAd86yboX1UDDFkBm6oDVNAoI= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.113.0/go.mod h1:r5DetWqG2vclbHNAYp4a+Kg5i7ZAfcRFez5bliTLDr0= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.113.0 h1:+eYxV9vp6u8fKM+9acEJYGUa3SD1vJF776c/haougNQ= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.113.0/go.mod h1:xSVeb2A5wmIuJ9Vak9UwPCP/yN1SDd+pBKfYHROW6YE= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.113.0 h1:WN/zA6sCT4VzCA9CpRTGj6wiu17vIFozm/0yxNwKeGs= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.113.0/go.mod h1:sqWPNepjCX0+Ye++N9HwJjJ7KUAOkn4/ML/2GzrZquQ= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.113.0 h1:bloEe7hK+H95zQ5WusQwQCILjudl6ljyR4kO95+Ocuo= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.113.0/go.mod h1:/vYbT5YZ/SyKGtbBtKCI00sGUk3Xd90A2hT5iSWP8Dk= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0 h1:zDScLkNf/llyiH1cjpVv5PhJAT5AcHIXCB35zW5jsbM= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0/go.mod h1:S+GR7FZJYtFBnbjgD737QImuvm8d4+PBccpI0Xrda4E= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.113.0 h1:5cEQNFwYAn8PJ66l88lGLMSz9TYWiIUFayDwAtpJumw= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.113.0/go.mod h1:uSskqW6AAEHg/2yZ6hNo9V0OfQmM/wHP9lSNr2OSUU4= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.113.0 h1:Syf4U5GrSl2fOGXBAChHrdSvMRBhi7BFiDwKbFkNo/8= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.113.0/go.mod h1:Q9shex5tQOoK4FeVx0NvYkwu18hCPFlRnwqqQzLfbpo= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.113.0 h1:l6UiNM2jEs+kBmsNt8qg2dEZpUVc8CLsvYksa9CZRDs= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.113.0/go.mod h1:Ky2VVQfIqv9ifden+amJv3sTi3Y/9u6rNMtq8cnVECs= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.113.0 h1:vgYhhliqQ6WUy5b1BE0ILJQKTweaLDPI5l/bUIunqLo= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.113.0/go.mod h1:UG/8zqyqbdN0HHkiWC7GZW4wFL4GIyRtsshc1RY8bGo= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.113.0 h1:c4vPI/PrRPnueoaKJKzBztsASIn5yZ7BT7uc4PHR39E= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.113.0/go.mod h1:MR9VrhTtPazVAEWR/RPQln1i0Cmrc/6e2+zRpI/gwhM= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.113.0 h1:F4rPll42bwVC2tuoyG0f0LmjfoBMc5eNT0j7iDtbDXk= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.113.0/go.mod h1:GReM8iGTmB0zIH9A2vT3Ki5xP690A9RVycxB65dao38= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.113.0 h1:9b7iQMFbA1rG9DVkepxN9qilmEYG5VaVb+meTsVEKBU= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.113.0/go.mod h1:urzOE2U+Ax4Zho6VYFGOC/x1B4npKNDB6GLJ/F9k56I= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.113.0 h1:oNEV5G5m59ekwho7BaiBdUbqWMAsneE6IFkVkiZY4Yg= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.113.0/go.mod h1:tULSPMh5LZ9UJZa5QgAd7okycfM0x28AoWhtRt7DNvw= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.113.0 h1:qPUFbh7d9Ddiyky8F4by+KRUUksqMiO+gFDXGkaxevw= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.113.0/go.mod h1:e+cVHDHttCojcC8iyBcDFtfK3JWZlqaDc+WCTl5sEdo= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.113.0 h1:frNZmJqTjdGO4vkxM2LN5URbddpD+R8taOCtDz3JJiQ= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.113.0/go.mod h1:qFJOAhv+agSMdJSmsIW4QDsTWIdWo8NRZvY3OV2iWV8= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.113.0 h1:tIJu6tCPiZKK6FiBfn2ritlwMSrjwS4iNTI0u02J/ns= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.113.0/go.mod h1:cI/ZaTpiY6QDTihTwSKXgtsWXwSPr4Bpb95CjA1LO5Q= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.113.0 h1:Azx7wP6Me2iXr6h2bTqbRjtxB6HnXN9QpYECLu/eQ8I= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.113.0/go.mod h1:KezOwO7COPCsZnE8ECCrWvAywUhTZMYtJx7H36JguoQ= +github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.114.0 h1:cjiWapRbK28GxsZyKCegQOLJCEiwIWEV+INvxrS8HSA= +github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.114.0/go.mod h1:1Mx3wOciTCjrN9PgVAB4uFBeoqEfyeZEuvpguOasm4s= +github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0 h1:oA79wMjQSQBKz+X90LD5edNOyaEsewspJRBYgxliEMA= +github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0/go.mod h1:uk7Z36vhLtevNy5672jGxgzNJA2LND6wmispTuhHCxI= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.114.0 h1:K1/5bZ5EbmxHH4cfvPo/3sYrHUVnM6H86C0dVkf+6TM= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.114.0/go.mod h1:XWnw+AWGoINC/fG4urgmiLVXDaYeqkRVLKUJMPqC3Ls= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.114.0 h1:quLs6NbDeG2x2eLmncaq/P4yvnCPLAelFqXac2eMRSw= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.114.0/go.mod h1:xX2v2kixYWZbFvnT5re3BGg2pyLy78KSIiMed7P2c/c= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.114.0 h1:93/S5dh3snAbC81fuGP7c+nn2OhgP59UTrXqmFtK1Ww= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.114.0/go.mod h1:fyU1pLPKcXDWkUwO075jt1YOjFS/XIZXDwHEV3xy93g= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 h1:G7SHyt5TvFSEsiaxyhZdqkjcRoK2rP5wl4a3Mu31JM4= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0/go.mod h1:TRsDReUh7ALEUutKVoLlGMRc2QECZAyT/5g/cpAr+aw= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.114.0 h1:xZL2FLnVTKqVeZQuTBSMmVLr3FQUN/N8x7VL70Gd07k= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.114.0/go.mod h1:betAqGGfDFb8SLyMYBwH9BQyB9wzxWOWXXC/Ht6/kas= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.114.0 h1:OwLYURmQGKEo9jyhlMsI3JtFLiYChZIrA2M3MxuomTY= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.114.0/go.mod h1:1UZtI+tYvVvvKkPv5NmggvPpxkQEyKaUVg2ygtCjVoQ= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.114.0 h1:aAobCSGIhUYohlzbMQdfDDtQoKlofPROL3+WSSPxz+c= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.114.0/go.mod h1:4m8sQMLNgHexFom7YEFi2khcsUUqKxEdIWgUOYKcmLI= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.114.0 h1:t59jxlv7dIF+f6SaG8V5mx/+Hxfoy4S5qlMpJlkcPo0= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.114.0/go.mod h1:HbUoZclDdXYC7L6lvh44olwDpJBIoTw9fls1bjqyMZY= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.114.0 h1:1TNrKEIfTHAhQDVzQczhReo2+Rw5q9VNCVZgq5SKq/Y= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.114.0/go.mod h1:3AzBMlWooaEO8LvLWqYQoOhqxQ+fAaUlC09sCicB91s= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.114.0 h1:FetZgJSBHH9xw1JKr3Wetek54bpVYkwJrVJJrO271vU= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.114.0/go.mod h1:QWdTwjk67PGv3AyMT+8yEQXU3laW+PMLCFE8PSewWkM= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 h1:6g5EvbygaEBqed0rJotGHcfxgxGV8hSN/4ZoZFfac5M= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0/go.mod h1:gU87iMdDAdHrQQCWTURbrlE/dLYgFecJ/+WBHuNMjQI= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.114.0 h1:mchuc816TxLpmsGvFbtGA3KBVx91vAXi7vJnlvsQdiU= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.114.0/go.mod h1:vgCMUWPVrfjNux9P9G053fRqGFF6BS3xtxNFZZdFTCM= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.114.0 h1:4qELD/ZwgvXE5PshGzJ9Eu+JEQdLIok6V1x8rvqL+yk= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.114.0/go.mod h1:3U1KoAsmQd9H37t8VkesFfB56tThrPsNVG+ddsMJ2zM= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.114.0 h1:0LbaoE7Aof8J4CVQ5kYv1QbuL3usTxLRSMFisDNBX9U= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.114.0/go.mod h1:ByoGXMLeHE/k5ELO3EITitVmvq3bh4Z/GVwWZZxrQ5s= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0 h1:d2wCLlENxH4I2axQWaogivx/5ZIjDYgn9MIf6sFxlJ4= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0/go.mod h1:Psyligv8GKL9WI3TraW3BLwkOX4TRxaaa1BBQQyICzA= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.114.0 h1:AReCF/mzq8+1BORde9m96xAZ+nnv22/B1b+H56hlFIs= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.114.0/go.mod h1:dCQeeAQww9++hvoqQ69QzTN6SGbq3DoVs1+Z1wcKAX8= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.114.0 h1:WrVBqO/ps3KvUyEhtdL/uDDHhKoszLEE1ywDbwskNRg= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.114.0/go.mod h1:JYklzR+ZxQaxjzlfJP3bxX6rQFl/Hbo0vd3yNj/1s1s= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.114.0 h1:dtW9JkkpAm33Y47estFyqEL0CW05DHGmlLQxZUSx78w= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.114.0/go.mod h1:FcClDm9XVV5tzUDzmH2Mhe6TfYiZ/3GSAQITnuCjZgg= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8stest v0.114.0 h1:Lgk9OkyDQQYWtfZ3DEyfQ+08NM4+dBO3fP0OQN10cXA= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8stest v0.114.0/go.mod h1:2/6/eY8Uvg+NfYDsAbND96A4u5q4UjcDlBJolYcj6jE= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.114.0 h1:cGJRIzB5N3oe1c8vD5HqCuy4dbQE9EDJZ9C7vJn+K8U= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.114.0/go.mod h1:p53t8aSCVoTKXVOsNx62rDLrSdEkBFB4H85yEiTWkyI= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.114.0 h1:lt87gwZaUP9Lh0EAgZFTYego0k89NU8K6Qkk82oR/n8= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.114.0/go.mod h1:nxxBsX9Z2Q7HQvybUTx8CzUvYCJewKBM1Eys6SiS0eg= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.114.0 h1:TrGpqqMJxh5fTzdu5HZORKvDiIUBK8b9K/3zUCGbjps= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.114.0/go.mod h1:mw+aVzR/3HtuGZE5xM6zEXHFv411QG8MxI8mQFJSd5c= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.114.0 h1:2uThKlp4NoQbIm7k9ZRGCKVJjMcibffb8NLcsPslq9o= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.114.0/go.mod h1:jSpHMXCxgNLBIfselixqXAUn0pXDfE5LEuNkz0WjK68= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.114.0 h1:Z+WmSDshEjfNy09A7+opWO01L5LwkZC3Ze9AgfLfuAk= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.114.0/go.mod h1:p58MQDR97vRdpY8vh6JuCqjKp0W+kpo5qHmuqhd7L00= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 h1:Wq1iTmd0K1SSOIA43Wy2uAU6SB4f9ogyN3ZmvDgTURg= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0/go.mod h1:VCj9H0QxRBWSgbl1pUo8p0NrqnmcxpPo0QjKLFtWkO0= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.114.0 h1:lvpwitQL0CDKHyExi+Wi0MPXGBjpgK5YbXljRYE6YTU= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.114.0/go.mod h1:/peNiVTNFe3osINRwW88WB0v5BC1ifjEmDL5oui+ry0= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.114.0 h1:SXi6JSSs2cWROnC1U2v3XysG3t58ilGUwoLqxpGuwFU= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.114.0/go.mod h1:LSd6sus2Jvpg3M3vM4HgmVh3/dmMtcJmTqELrFOQFRg= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.114.0 h1:G6U2eHR2CGSYb2btot6l05o+mdqsC0ZN7dH8QssXSdk= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.114.0/go.mod h1:kZQvVVzpahX8kFUfEBmzFtDhkKAQW6i8XQCMozDRUlk= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0 h1:m8uPYU2rTj0sKiYgzCvIPajD3meiYsu+nX0hplUnlEU= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0/go.mod h1:P0BaP92pXPkTyTmObfLYUoRBfMYU+i0hdS3oM1DpGJo= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0 h1:Qg80zPfNMlub7LO07VMDElOu3M2oxqdZgvvB+X72a4U= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0/go.mod h1:5qsGcjFV3WFI6J2onAlkR7Xd/8VtwJcECaDRZfW4Tb4= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0 h1:PwUMZ6fHMEUV5i9hUly+z3UujDTTdxQtWzL0rWc/lgA= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0/go.mod h1:YEHL6w4vvB9b0/lNwGjz8DyWXTF/7Xw0Hkgc3mGWwa8= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 h1:mtSN/07RGQPi1/zHVSZg4G0qRtOoJpPew5jsQWv9uS0= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0/go.mod h1:C9Zgh/N3j4NR2D+1FGAA1YizhFW9OS51DwLUFJTdXN4= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.114.0 h1:Xr3Hvm9cxOSQX94tLX1yX63uvuvtglJICrOz9YcxiuI= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.114.0/go.mod h1:cgIgmEg66RhVtAv4JkIhHdy70kn2EtVhrH8CtyvhfuI= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.114.0 h1:WymtAsFHYen4GTTTXvVqZCoMz6vPADYUf4xIP0Gvm+E= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.114.0/go.mod h1:FcTNci+LpU5x5FkHM0Su3k6/ESDHWQsL30AFISzaIyk= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.114.0 h1:eJxap/u8Q5wYnBcJTrTS1Tq6wq31SOlIr+FMJX5ZoC8= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.114.0/go.mod h1:H7uIA2RBaxit2mSwSU8Wc7QXSJX7r8UR66YvdcLmtto= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.114.0 h1:tG98F8g5T7lKYaoxSh9e76agmkauPtXiMbQhuWAeG+I= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.114.0/go.mod h1:eN3xPxPcRZH0wofEQ1Greu1c561qEGeYv5Zt0uedmMM= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.114.0 h1:xDbTY8zDUP3RKG1kg1tmULnBkLEDMwmSpf9j2H0sIcc= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.114.0/go.mod h1:t5uoTcckI8kQeW1sZl8A+1UebVJPe47Qi3WQeNZu6w4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.114.0 h1:fltPkjMuiVTtIVwoWUzbL0ad2CTCJsWfnCSDJQ9hSxU= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.114.0/go.mod h1:HcG364Is9u2EDqOUtQX0RwnbHtQqSh5+x2FdcYC+F1M= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.114.0 h1:rYwgdR8GE7QEtQlkQxXq5f1JQrd3v36g4yXXljicKoM= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.114.0/go.mod h1:TjEgPVMRxi93SdN0N0qv0hx5L+FF2csgo3YwfzVGJ3g= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.114.0 h1:QBR07Gaw6ePkufQ/AhHgBv4OlwzXlULTdiUnaKIlvLk= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.114.0/go.mod h1:coY0CV/sNj1hltRXKZr2gnrLvr7xUbnW+GhpCQpGR/Y= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.114.0 h1:ap7EK1GxLHau1jKJP8tYcZDb+tEntzx2Kj97XdNb7s4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.114.0/go.mod h1:1uyslltGfwWhG7F/t41t43dBzrZpEkFzo2hR0OmyZi4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.114.0 h1:nldvWnYvTjIDi1xmZKgS2b0vz0Ja9UMV2m7ffg/HMDk= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.114.0/go.mod h1:yRuZU0Rd/twuSQFme3WiVB7x9ECgIEwDBs2mPwkqUYY= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 h1:I4ZYVRYW3Cjb65sPENZ9kHam/JUMXNEp2n/knJ0C0Vc= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0/go.mod h1:4BhyIaOn2LS48WS+ZNix4TpP0+goq9gDEtGzth5Cr3M= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.114.0 h1:ttRj/3GIpg+vUTeBI+EBeeWdNuvBT3S/ayoqpvA9B9s= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.114.0/go.mod h1:xoJgFdZUIxlvF8eUHIYiZGmf39zAwditW3sc2SBirAo= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.114.0 h1:je7Aiyn5AHAcpCNpTN5Q4l2SIeqJEvtOjoaZhHszGrs= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.114.0/go.mod h1:cVG4aXgfQFSdSfhAgoawDmmKixogjlvqQtmjmqVJgb4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.114.0 h1:AsYYMzt+ZGGQaq3S21REATxZsUI4aOuFAOPq09tSPnI= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.114.0/go.mod h1:ifqisebKudvS+YARMbFRyX8/UgdXitSfCD1JCoGOxlY= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.114.0 h1:NrD8Qo2CxrHRAlLuOHm75RtO1xEnul6DDkn6tQMsuSg= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.114.0/go.mod h1:XOlJzIYwicEPMxu6Gv9TL9pS6El+ffjQOAu/wPiL+Jg= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0 h1:lKG7Ghtba2l9P4FFP7I+SbVRqHEpXCGOZs367YTEwGc= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0/go.mod h1:5U/lrnkK5YtIeTFXI8OzDN/d827WtI6pQvu7/59pUVA= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.114.0 h1:Ivu3DRhbERboPxMJeyJpmretbKDJ3hsOAGBQXt2yY3U= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.114.0/go.mod h1:UrMGrA8bA1VeYhdiam7/Xu/U4joG6JftMULEVWLDbe0= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.114.0 h1:Yx0RUwviLdYyozkuqbfpEhSH+ehXlKsW5TtlZbiKm4Q= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.114.0/go.mod h1:Bh9h5hYTgr/zQgXUnvihkLvN1IMmVY/OFa8aHc3gMJU= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.114.0 h1:kSxkZPWBA6je7xXkpMWycjyc2BIMvLGD+OGTIRtJ0xw= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.114.0/go.mod h1:rBegsrFk6WSDU4v9TiOvH3h7xintiOhPq9qd+72SlK8= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.114.0 h1:1NeG/cgiqBMWQJxFvWQmWo9BVj3k4uOvEK0o++BFINY= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.114.0/go.mod h1:skPwfv1xYwB5onG9sj31J4OYUxx6p+wc40aogGy+nVE= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 h1:gdljk66vBTT3lWfSdP4Hl7FaABdH1YPhUCH6jnG2+qY= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0/go.mod h1:T1p6ShTr8farkE4qUB2TyGUIvRSN3s17D0qY7rMqCRM= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.114.0 h1:PwaceYEl50C1OK5MxpH95hnn58CNRzINP2p5YvluZj4= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.114.0/go.mod h1:FrJqdSI+4QuU/w9XtoW9d1Ywp09u2cYaPUOZFqzDtNY= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.114.0 h1:E686MeQcQ+a3Q47A/xAc3Nk6Qdz8wHcBLMJ3Y8bNKi0= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.114.0/go.mod h1:zkQAapuNRobj7GY8kKRal+2EYkAMWmZ1KMysUrQI48A= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= @@ -1804,8 +1804,8 @@ github.com/tidwall/tinylru v1.1.0 h1:XY6IUfzVTU9rpwdhKUF6nQdChgCdGjkMfLzbWyiau6I github.com/tidwall/tinylru v1.1.0/go.mod h1:3+bX+TJ2baOLMWTnlyNWHh4QMnFyARg2TLTQ6OFbzw8= github.com/tidwall/wal v1.1.7 h1:emc1TRjIVsdKKSnpwGBAcsAGg0767SvUk8+ygx7Bb+4= github.com/tidwall/wal v1.1.7/go.mod h1:r6lR1j27W9EPalgHiB7zLJDYu3mzW5BQP5KrzBpYY/E= -github.com/tinylib/msgp v1.2.3 h1:6ryR/GnmkqptS/HSe6JylgoKASyBKefBQnvIesnyiV4= -github.com/tinylib/msgp v1.2.3/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= +github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU= +github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= @@ -1954,136 +1954,142 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/collector v0.113.0 h1:dBuo2/OKBhoMCR86W4fFJLXGQ0gJfKRmi65AZwFkU2I= -go.opentelemetry.io/collector v0.113.0/go.mod h1:XbjD4Yw9LunLo3IJu3ZZytNZ0drEVznxw1Z14Ujlw3s= -go.opentelemetry.io/collector/client v1.19.0 h1:TUal8WV1agTrZStgE7BJ8ZC0IHLGtrfgO9ogU9t1mv8= -go.opentelemetry.io/collector/client v1.19.0/go.mod h1:jgiXMEM6l8L2QEyf2I/M47Zd8+G7e4z+6H8q5SkHOlQ= -go.opentelemetry.io/collector/component v0.113.0 h1:/nx+RvZgxUEXP+YcTj69rEtuSEGkfaCyp/ad5zQGLjU= -go.opentelemetry.io/collector/component v0.113.0/go.mod h1:2T779hIGHU9i7xbXbV3q1/JnRw2FyzUYXW2vq47A6EU= -go.opentelemetry.io/collector/component/componentstatus v0.113.0 h1:iNlUi+vDo7OqQwg4UOjfqqY3Xram4SkdcSZAyxt6QfE= -go.opentelemetry.io/collector/component/componentstatus v0.113.0/go.mod h1:NF/hVnP0kcsEqV9x14yMxN9GoehuOaVgMpO+s2KE+28= -go.opentelemetry.io/collector/config/configauth v0.113.0 h1:CBz43fGpN41MwLdwe3mw/XVSIDvGRMT8aaaPuqKukTU= -go.opentelemetry.io/collector/config/configauth v0.113.0/go.mod h1:Q8SlxrIvL3FJO51hXa4n9ARvox04lK8mmpjf4b3UNAU= -go.opentelemetry.io/collector/config/configcompression v1.19.0 h1:bTSjTLhnPXX1NSFM6GzguEM/NBe8QUPsXHc9kMOAJzE= -go.opentelemetry.io/collector/config/configcompression v1.19.0/go.mod h1:pnxkFCLUZLKWzYJvfSwZnPrnm0twX14CYj2ADth5xiU= -go.opentelemetry.io/collector/config/configgrpc v0.113.0 h1:rNbRd033JlIeU+TH+3bEt4OwRlEwrktWdf6V+VUJUPk= -go.opentelemetry.io/collector/config/configgrpc v0.113.0/go.mod h1:InXxPUj1oxJ57Sl954d2tQxXTgVHhfppFYjMwGjQukg= -go.opentelemetry.io/collector/config/confighttp v0.113.0 h1:a6iO0y1ZM5CPDvwbryzU+GpqAtAQ3eSfNseoAUogw7c= -go.opentelemetry.io/collector/config/confighttp v0.113.0/go.mod h1:JZ9EwoiWMIrXt5v+d/q54TeUhPdAoLDimSEqTtddW6E= -go.opentelemetry.io/collector/config/confignet v1.19.0 h1:gEDTd8zLx4pPpG5///XPRpbYUpvKsuQzDdM5IEULY9w= -go.opentelemetry.io/collector/config/confignet v1.19.0/go.mod h1:o3v4joAEjvLwntqexg5ixMqRrU1+Vst+jWuCUaBNgOg= -go.opentelemetry.io/collector/config/configopaque v1.19.0 h1:7uvntQeAAtqCaeiS2dDGrT1wLPhWvDlEsD3SliA/koQ= -go.opentelemetry.io/collector/config/configopaque v1.19.0/go.mod h1:6zlLIyOoRpJJ+0bEKrlZOZon3rOp5Jrz9fMdR4twOS4= -go.opentelemetry.io/collector/config/configretry v1.19.0 h1:DEg8PXpo4ahMYgMzZZUU2cPcDF4vqowZlvimJ/t9InY= -go.opentelemetry.io/collector/config/configretry v1.19.0/go.mod h1:KvQF5cfphq1rQm1dKR4eLDNQYw6iI2fY72NMZVa+0N0= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0 h1:hweTRrVddnUeA3k7HzRY4oUR9lRdMa7of3mHNUS5YyA= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/config/configtls v1.19.0 h1:GQ/cF1hgNqHVBq2oSSrOFXxVCyMDyd5kq4R/RMEbL98= -go.opentelemetry.io/collector/config/configtls v1.19.0/go.mod h1:1hyqnYB3JqEUlk1ME/s9HYz4oCRcxQCRxsJitFFT/cA= -go.opentelemetry.io/collector/config/internal v0.113.0 h1:9RAzH8v7ItFT1npHpvP0SvUzBHcZDliCGRo9Spp6v7c= -go.opentelemetry.io/collector/config/internal v0.113.0/go.mod h1:yC7E4h1Uj0SubxcFImh6OvBHFTjMh99+A5PuyIgDWqc= -go.opentelemetry.io/collector/confmap v1.19.0 h1:TQ0lZpAKqgsE0EKk+u4JA+uBbPYeFRmWP3GH43w40CY= -go.opentelemetry.io/collector/confmap v1.19.0/go.mod h1:GgNu1ElPGmLn9govqIfjaopvdspw4PJ9KeDtWC4E2Q4= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.19.0 h1:f8O/I5pVRN86Gx5mHekNx92S6fGdOS4VcooRJKWe6Bs= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.19.0/go.mod h1:AiaW5YW1LD0/WlZuc8eZuZPBH6PA9QqsiAYRX1iC6T0= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.19.0 h1:TYwyk4ea3U+5MYcEjrzZAaonBcLlabQu8CZeB7ekAYY= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.19.0/go.mod h1:i3mL4OSGI5JM0hnzHujhJK+LDlvO3XrJxBsuclfU/jY= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.19.0 h1:a077jcs3DVtaVdmgmCk3x4rRYuTkIqMDsoUc+VICHZk= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.19.0/go.mod h1:HjYkzhHbwUacv27nq0JLsslGpbtrXyyfU30Oc72AWLU= -go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.19.0 h1:8LoQxjlduFQUEwYuHWnxEj0A+GcAtpv2qPpDJVz7A5E= -go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.19.0/go.mod h1:Y8ErEl5m9+1AWzWcMn52PATH5dw50wuyyPMffK62RCI= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.19.0 h1:oV66DKiEdAt8EMZqGSChK2iEOxjrVaWRhf4OqqmqjbM= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.19.0/go.mod h1:jtNUdO6i1k38BG7vFst+d1jk/N+c419uVR8HB4J0VjI= -go.opentelemetry.io/collector/connector v0.113.0 h1:ii+s1CjsLxtglqRlFs6tv8UU/uX45dyN9lbTRbR0p8g= -go.opentelemetry.io/collector/connector v0.113.0/go.mod h1:KmA8eQouTVxVk65Bf6utuMjWovMuOvNVRcYV60CAGtc= -go.opentelemetry.io/collector/connector/connectorprofiles v0.113.0 h1:yAEKTxVGpBtHrrXeZFrBcVOQkduxCncH0o4hqKrDRyw= -go.opentelemetry.io/collector/connector/connectorprofiles v0.113.0/go.mod h1:+mwzwIZ1cEK29ByfC38uF8hmFO8Wf9ShT1c756XX+RI= -go.opentelemetry.io/collector/connector/connectortest v0.113.0 h1:WHekoL0izkrKLVQLv79v0QhqfnXkVcw0sgdF07EqWLM= -go.opentelemetry.io/collector/connector/connectortest v0.113.0/go.mod h1:KouywNfkxRf+yzbI2pdolzTLkLoCV4ASEI2o2pDt+Cg= -go.opentelemetry.io/collector/consumer v0.113.0 h1:KJSiK5vSIY9dgPxwKfQ3gOgKtQsqc+7IB7mGhUAL5c8= -go.opentelemetry.io/collector/consumer v0.113.0/go.mod h1:zHMlXYFaJlZoLCBR6UwWoyXZ/adcO1u2ydqUal3VmYU= -go.opentelemetry.io/collector/consumer/consumererror v0.113.0 h1:Hd2N7n9RKbnKRaVrdw6fPBoQko5zZIgCxwVxkL6SAIE= -go.opentelemetry.io/collector/consumer/consumererror v0.113.0/go.mod h1:o0MAGFdzcr7LFTUQ6iivPPhbVmn2ZVIYm3FPXk2+JUo= -go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.113.0 h1:2kLIt+6dGmhCd48CWXh3IEon/uW4+c8y81IGCA/h8wE= -go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.113.0/go.mod h1:/eESy7Ifyf7G6r6WUpEOq2tnfjIJ2QNB2EvZcEu0aWA= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0 h1:RftAcQUY5UOfbEK4s16jnORqTx16y9+PxA1lQwt98cQ= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0/go.mod h1:ZuHrQ4pWguh6dw0DgTfcUtdY/T+cnOJJNP6LMbm5Y5A= -go.opentelemetry.io/collector/consumer/consumertest v0.113.0 h1:ua2AjNx3DUA8qElXNkggB4w3VDL/rBKBvryOQkhumH8= -go.opentelemetry.io/collector/consumer/consumertest v0.113.0/go.mod h1:vK8o4ZTZSiG3rVyqxZcCNmT/cvEfx34ig7V65L9+6Rg= -go.opentelemetry.io/collector/exporter v0.113.0 h1:lDZJ6xfuhyLsT/7lqLhIN/ftA6G+9fuYFtubPFvNDxo= -go.opentelemetry.io/collector/exporter v0.113.0/go.mod h1:0W4NBf5NjWYxR8oJodmOybgN4O0MLazdJwwHevirvXg= -go.opentelemetry.io/collector/exporter/debugexporter v0.113.0 h1:iShn3SuSpx78YLgl7fQCJsHLs7z0RDtbN58/Amoy5xc= -go.opentelemetry.io/collector/exporter/debugexporter v0.113.0/go.mod h1:O1dLnYA81a+ZecBD89vjZSBgkAnhnfXwsmYsE7LP2/s= -go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.113.0 h1:Auz2vZYReIlyDvJ162OCO8XcV7L2BIbFb5HJWxerc5A= -go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.113.0/go.mod h1:JQuawcAfDuzNneDF5Ep1CZJ5snsLp6Bh1gZcHhja7yU= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0 h1:8bsk3wYYNr+WAM5nZkFjiLYSTH9MsY2tm7nUpMWt3qc= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0/go.mod h1:/HFWF846XePYL/qKDtcEAFgkiGSkLUTaC59A5F48axM= -go.opentelemetry.io/collector/exporter/exportertest v0.113.0 h1:U6cRxjJS7td8iNriUI2QfEdH+Yj60ytyvpmnmKTw0+8= -go.opentelemetry.io/collector/exporter/exportertest v0.113.0/go.mod h1:SRz5jGyAjtNiWwJ93B1+Ndk1p3oFtQsyLw52UGeyRwc= -go.opentelemetry.io/collector/exporter/nopexporter v0.113.0 h1:DClFr8PNUc+f8fciNK3Sdj+ydCgZRc2zVk+1WCLyPfU= -go.opentelemetry.io/collector/exporter/nopexporter v0.113.0/go.mod h1:RGn9QUUOldcD19yKyg5e6dBjy/o//RaWGOhkS6azhqo= -go.opentelemetry.io/collector/exporter/otlpexporter v0.113.0 h1://7diunG5SohqaYfqvHzCtcfrY7y3WQj0vklFYgeNW4= -go.opentelemetry.io/collector/exporter/otlpexporter v0.113.0/go.mod h1:THF0eq4lA6dYOho53iKFCBOv91HEeISZyep5dXr+fBU= -go.opentelemetry.io/collector/exporter/otlphttpexporter v0.113.0 h1:22Srn4V6ogOdi4Bn6eKtKqAidWyjPkYKYDR3Xq91nFY= -go.opentelemetry.io/collector/exporter/otlphttpexporter v0.113.0/go.mod h1:BRA54WRyPS9RYDIUEGxxJvxJ/uZ66++bCFPHliDstCQ= -go.opentelemetry.io/collector/extension v0.113.0 h1:Vp/YSL8ZCkJQrP1lf2Bm5yaTvcp6ROO3AnfuSL3GEXM= -go.opentelemetry.io/collector/extension v0.113.0/go.mod h1:Pwp0TNqdHeER4V1I6H6oCvrto/riiOAqs3737BWCnjw= -go.opentelemetry.io/collector/extension/auth v0.113.0 h1:4ggRy1vepOabUiCWfU+6M9P/ftXojMUNAvBpeLihYj8= -go.opentelemetry.io/collector/extension/auth v0.113.0/go.mod h1:VbvAm2YZAqePkWgwn0m0vBaq3aC49CxPVwHmrJ24aeQ= -go.opentelemetry.io/collector/extension/experimental/storage v0.113.0 h1:Qq4IaB6bMUrf/bWoPZ5ESWywCt+vDi8I/ChYejIEPcc= -go.opentelemetry.io/collector/extension/experimental/storage v0.113.0/go.mod h1:BRmo+A7f06u/rhyLauU/Vogk+QRN0y1j2VVVgMGWrfQ= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.113.0 h1:GuJzpnrJtsMrKWGmb1VL4EqL6x1HDtZmtvy3yEjth6Y= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.113.0/go.mod h1:oa72qndu7nAfEeEpDyDi9qLcaSJGIscLc/eeojFADx0= -go.opentelemetry.io/collector/extension/zpagesextension v0.113.0 h1:b/Clxso9uVwLVYjvRQ1NGBWHpUEZ/++uA5sJbBj0ryo= -go.opentelemetry.io/collector/extension/zpagesextension v0.113.0/go.mod h1:5csGYy9Ydfy6Hpw3Tod864P6HUEZpA6UiuPJPG3TjSU= -go.opentelemetry.io/collector/featuregate v1.19.0 h1:ASea2sU+tdpKI3RxIJC/pufDAfwAmrvcQ4EmTHVu0B0= -go.opentelemetry.io/collector/featuregate v1.19.0/go.mod h1:47xrISO71vJ83LSMm8+yIDsUbKktUp48Ovt7RR6VbRs= -go.opentelemetry.io/collector/filter v0.113.0 h1:5ODwM8QEOzZq08H8DJilBa4PHieXpBreJVKZ0D2YshA= -go.opentelemetry.io/collector/filter v0.113.0/go.mod h1:Mh3N6cpVijdamUJj1tAgSU1RG/Ek4FuY2ODKYxKZDtk= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.113.0 h1:Beu2zAN6/EDXQ6hMFU6FT1BsnU5FXmWNOlfTAhrgbGc= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.113.0/go.mod h1:WUXbc4L6KJ3SpmsxBgId0OYzRDuS7n274kNpqrgnSmY= -go.opentelemetry.io/collector/internal/memorylimiter v0.113.0 h1:qe3xZYB4BgSuPDgFMQbcJ5gDy8t+S1vt6pL+OKrdx9E= -go.opentelemetry.io/collector/internal/memorylimiter v0.113.0/go.mod h1:Eo/XZsFPS1mo0DHnAaVeyPNFn3HKVXB2nog++b3CnRc= -go.opentelemetry.io/collector/internal/sharedcomponent v0.113.0 h1:a4gT+t+rboCaH70anhu+ZQp9IJ7UjVeZxZJvxTBgCqU= -go.opentelemetry.io/collector/internal/sharedcomponent v0.113.0/go.mod h1:6WDDyjI4pbtfUmtv/JKLs7OwieEEvaDVb3Zcc4oA9Vg= -go.opentelemetry.io/collector/otelcol v0.113.0 h1:t32gA8Pg9lsqYQml4mgvHdqFSsjvPZMvGywi0zXQYjk= -go.opentelemetry.io/collector/otelcol v0.113.0/go.mod h1:PV6pDLPEaulRs3ceWYNEDuG5100F35I5VzeC2ekT/vY= -go.opentelemetry.io/collector/otelcol/otelcoltest v0.113.0 h1:bfu9oQQbO6KEcpgh7muc1ixsGQs+qFWwi9LyabGILqw= -go.opentelemetry.io/collector/otelcol/otelcoltest v0.113.0/go.mod h1:0bag/J2REbnIKKKHvYe0RqyjmsUv4OJH14kNef+lD4Q= -go.opentelemetry.io/collector/pdata v1.19.0 h1:jmnU5R8TOCbwRr4B8sjdRxM7L5WnEKlQWX1dtLYxIbE= -go.opentelemetry.io/collector/pdata v1.19.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/pdata/pprofile v0.113.0 h1:VRf4p0VhfuaR+Epy/nMIlu/9t39WU9CUgHVUvpuGxfU= -go.opentelemetry.io/collector/pdata/pprofile v0.113.0/go.mod h1:5aDejksdXh5PdJN/OhpzATGT3kbNL0RMmw2Q0Q6E/o0= -go.opentelemetry.io/collector/pdata/testdata v0.113.0 h1:vRfn85jicO2F4eOTgsWtzmU/K3E/uZUtM1HEefvvJD8= -go.opentelemetry.io/collector/pdata/testdata v0.113.0/go.mod h1:sR+6eR+YEJhYZu9StbqzeWcCmHpfBAgX/qjP82HY9Gw= -go.opentelemetry.io/collector/pipeline v0.113.0 h1:vSRzRe3717jV0btCNPhVkhg2lu0uFxcm2VO+vhad/eE= -go.opentelemetry.io/collector/pipeline v0.113.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= -go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.113.0 h1:PwQnErsLvEd1x6VIyjLmKQot9huKWqIfEz1kd+8aj4k= -go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.113.0/go.mod h1:tChJYsCG3wc6JPT9aJO3y+32V14NhmCFZOh3k5ORGdQ= -go.opentelemetry.io/collector/processor v0.113.0 h1:BQI6MsKtiCG9HT/nmiRXTKP6SZFrjFKVfM6pTQfbc0k= -go.opentelemetry.io/collector/processor v0.113.0/go.mod h1:oX91zMI8ZkoaYSUfUYflHiMiiBJPKtODNBUCrETLLd8= -go.opentelemetry.io/collector/processor/batchprocessor v0.113.0 h1:LPNbVILg+cKTFIi8ziIa2idZ5MRlBIf4Wr72gZNgXb0= -go.opentelemetry.io/collector/processor/batchprocessor v0.113.0/go.mod h1:tCg+B/1idJS5inxod+nRPXFdVi89Bsnl6RvzIOO9k5I= -go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.113.0 h1:3/5z0Pe/yduwF0DSpytW2+mwDA5JaIL/w6vfNYy5KzQ= -go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.113.0/go.mod h1:h3wIlqMtJGIDKttjMJBo6J4dHU/Mi6+bKSxvRVUpsXs= -go.opentelemetry.io/collector/processor/processorprofiles v0.113.0 h1:cczN6whdrCWww3T0FBV3U7lsVKQmkWDX05M+9lANHgk= -go.opentelemetry.io/collector/processor/processorprofiles v0.113.0/go.mod h1:4Dmx5qsvujgJ+MC+KqWI7UDVM2liXa3sH/9XnGiL9aE= -go.opentelemetry.io/collector/processor/processortest v0.113.0 h1:jGoDJ+tDCzuDcAWZeshQtnK/DQAvMKd4wZAIDgAM5aA= -go.opentelemetry.io/collector/processor/processortest v0.113.0/go.mod h1:tNg04r5KlpVx774jSC8U/oYst1eb7WIiz+0AjXKJ0Uw= -go.opentelemetry.io/collector/receiver v0.113.0 h1:vraAbkPy8Pz9x5X39gV+j9t6x23PNsY2aJ6gQMugRbQ= -go.opentelemetry.io/collector/receiver v0.113.0/go.mod h1:IUa8/lNw8Qh4L5Q3jOeRWKW0ebQPoNcfhytxN5Puq2A= -go.opentelemetry.io/collector/receiver/nopreceiver v0.113.0 h1:Kgan6/DCH1YZzOztXPPair+V2czPmrJxxrIIxLVYmn4= -go.opentelemetry.io/collector/receiver/nopreceiver v0.113.0/go.mod h1:1nVoRLC/antEw4gvcyaRBT3aBt7nh3KBASWLLhmm0Ts= -go.opentelemetry.io/collector/receiver/otlpreceiver v0.113.0 h1:yhnj8kmh1IQ4g6fIWvhum/wYPUU2WmRpQuy1iSvf4e4= -go.opentelemetry.io/collector/receiver/otlpreceiver v0.113.0/go.mod h1:3OB+oJlOb1rlLLdBwxae4g2Qh5C97Eg17HVveIddUCw= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0 h1:uVxuzjGe2t1sbwahSBowVHYnGzpzn8brmfn8z1UHvQg= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0/go.mod h1:khKDkzYJR2x2OPUqGSmoSncdINT9lUE5IThiHPDbqZk= -go.opentelemetry.io/collector/receiver/receivertest v0.113.0 h1:0vOvz3S4Q/KwcNCS9C7zPo0uxD6RSWktG88yGdxfV6g= -go.opentelemetry.io/collector/receiver/receivertest v0.113.0/go.mod h1:sRq5ctm5UE/0Ar562wnCVQ1zbAie/D127D1WbtbEuEc= -go.opentelemetry.io/collector/semconv v0.113.0 h1:twenSI7M7MJMJKW8D6a/GXxPZTPbama/weywBtV2iFw= -go.opentelemetry.io/collector/semconv v0.113.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= -go.opentelemetry.io/collector/service v0.113.0 h1:SFT+kWuj9TehC34MLEWfXH6QocGl3MYqLJ7UbxZtWzM= -go.opentelemetry.io/collector/service v0.113.0/go.mod h1:6+JY80Yd4J4RWpvRmpCUUZFOZKGVs9a1QKCKPlDrKfs= +go.opentelemetry.io/collector v0.114.0 h1:XLLLOHns06P9XjVHyp0OdEMdwXvol5MLzugqQMmXYuU= +go.opentelemetry.io/collector v0.114.0/go.mod h1:XbjD4Yw9LunLo3IJu3ZZytNZ0drEVznxw1Z14Ujlw3s= +go.opentelemetry.io/collector/client v1.20.0 h1:o60wPcj5nLtaRenF+1E5p4QXFS3TDL6vHlw+GOon3rg= +go.opentelemetry.io/collector/client v1.20.0/go.mod h1:6aqkszco9FaLWCxyJEVam6PP7cUa8mPRIXeS5eZGj0U= +go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= +go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= +go.opentelemetry.io/collector/component/componentstatus v0.114.0 h1:y9my/xink8KB5lK8zFAjgB2+pEh0QYy5TM972fxZY9w= +go.opentelemetry.io/collector/component/componentstatus v0.114.0/go.mod h1:RIoeCYZpPaae7QLE/1RacqzhHuXBmzRAk9H/EwYtIIs= +go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= +go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= +go.opentelemetry.io/collector/config/configauth v0.114.0 h1:R2sJ6xpsLYGH0yU0vCxotzBYDKR/Hrjv0A7y9lwMyiw= +go.opentelemetry.io/collector/config/configauth v0.114.0/go.mod h1:3Z24KcCpG+WYCeQYfs/cNp5cP2BDeOqLCtOEgs/rPqM= +go.opentelemetry.io/collector/config/configcompression v1.20.0 h1:H/mvz7J/5z+O74YsO0t2tk+REnO2tzLM8TgIQ4AZ5w0= +go.opentelemetry.io/collector/config/configcompression v1.20.0/go.mod h1:pnxkFCLUZLKWzYJvfSwZnPrnm0twX14CYj2ADth5xiU= +go.opentelemetry.io/collector/config/configgrpc v0.114.0 h1:3kGI9CljNtzClF+9sg7NWZ5qUoy4qZvGxv9q3phDn7k= +go.opentelemetry.io/collector/config/configgrpc v0.114.0/go.mod h1:IHSyqSdjPXW34aif/8BhNlXxRcIVV6026jVi0/+ituY= +go.opentelemetry.io/collector/config/confighttp v0.114.0 h1:DjGsBvVm+mGK3IpJBaXianWhwcxEC1fF33cpuC1LY/I= +go.opentelemetry.io/collector/config/confighttp v0.114.0/go.mod h1:nrlNLxOZ+4JQaV9j0TiqQV7LOHhrRivPrT8nQRHED3Q= +go.opentelemetry.io/collector/config/confignet v1.20.0 h1:LrM6AuiY8N/woTP4SWhL2V0562JXwJs9MRNFZJFLtRY= +go.opentelemetry.io/collector/config/confignet v1.20.0/go.mod h1:o3v4joAEjvLwntqexg5ixMqRrU1+Vst+jWuCUaBNgOg= +go.opentelemetry.io/collector/config/configopaque v1.20.0 h1:2I48zKiyyyYqjm7y0B9OLp24ku2ZSX3nCHG0r5FdWOQ= +go.opentelemetry.io/collector/config/configopaque v1.20.0/go.mod h1:6zlLIyOoRpJJ+0bEKrlZOZon3rOp5Jrz9fMdR4twOS4= +go.opentelemetry.io/collector/config/configretry v1.20.0 h1:z679mrMlW2a6tOOYPGdrS/QfALxdzWLQUOpH8Uu+D5Y= +go.opentelemetry.io/collector/config/configretry v1.20.0/go.mod h1:KvQF5cfphq1rQm1dKR4eLDNQYw6iI2fY72NMZVa+0N0= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= +go.opentelemetry.io/collector/config/configtls v1.20.0 h1:hNlJdwfyY5Qe54RLJ41lfLqKTn9ypkR7sk7JNCcSe2U= +go.opentelemetry.io/collector/config/configtls v1.20.0/go.mod h1:sav/txSHguadTYlSSK+BJO2ljJeYEtRoBahgzWAguYg= +go.opentelemetry.io/collector/config/internal v0.114.0 h1:uWSDWTJb8T6xRjKD9/XmEARakXnxgYVYKUeId78hErc= +go.opentelemetry.io/collector/config/internal v0.114.0/go.mod h1:yC7E4h1Uj0SubxcFImh6OvBHFTjMh99+A5PuyIgDWqc= +go.opentelemetry.io/collector/confmap v1.20.0 h1:ARfOwmkKxFOud1njl03yAHQ30+uenlzqCO6LBYamDTE= +go.opentelemetry.io/collector/confmap v1.20.0/go.mod h1:DMpd9Ay/ffls3JoQBQ73vWeRsz1rNuLbwjo6WtjSQus= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0 h1:I3xDecFXJVZBo5zJS7Y5SWBjF22XDWGZJgwotiwA5QM= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0/go.mod h1:CF0l8V8MNv+Wag8UkqObotFnlhMzdTFuk4/6kylKwYU= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0 h1:wWxvQ7wj+1O9yDGM5m1HPEz8FJewAHAUWadAAi0KVbM= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0/go.mod h1:/5HWIPjGYk8IUurs1CZUSjGaSsaQyJsfR8+Zs5rGJ6Y= +go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0 h1:YS1nB8vDoCS8IlfX5OP3QGS90y/hfflwZ7CoPQcAOlU= +go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0/go.mod h1:aV4UfkgcJ3eyXvfd3m694omN++1c96Joitab+YL6Xks= +go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0 h1:0BJHAeKFb46FCT0ehOmmGs0v31cGuAh4DIic07J71NU= +go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0/go.mod h1:gBiweuH4EDuPh9mpLCB/wPZzostdA+gKY8hABwbotQk= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0 h1:jSXTojCPI6Xr98m99nF7qbQFnw3INLEOHRcqcHS+lak= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0/go.mod h1:Pu95O2JE3R+0BBTbe4gpAC8ms3w6FbICHJw3WvGWrjs= +go.opentelemetry.io/collector/connector v0.114.0 h1:efGAeTCtg8zp5Hyd7Am8kBUgsSxWEFlFtAu4OX4mcEA= +go.opentelemetry.io/collector/connector v0.114.0/go.mod h1:8DhGgD8RhkF0ooELl4NOPPD/wgHuXHmY7g90RwJ2eNo= +go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0 h1:uVs9gy3UfQBmH0636ouIbGIoWis7zmKN+ny4XOGm36U= +go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0/go.mod h1:X681qFEAsEPMDQ0pMsD/3DqePw58sfLew1QbBKvGnmw= +go.opentelemetry.io/collector/connector/connectortest v0.114.0 h1:Fpy1JHyNOLdVzNcmxUY6Jwxdz6JDcTXL1NCfw8k1AOc= +go.opentelemetry.io/collector/connector/connectortest v0.114.0/go.mod h1:1zaAlODuL9iNyfyjHQeGCpbcaUjf5b68t8LqlwHKBNA= +go.opentelemetry.io/collector/consumer v0.114.0 h1:1zVaHvfIZowGwZRitRBRo3i+RP2StlU+GClYiofSw0Q= +go.opentelemetry.io/collector/consumer v0.114.0/go.mod h1:d+Mrzt9hsH1ub3zmwSlnQVPLeTYir4Mgo7CrWfnncN4= +go.opentelemetry.io/collector/consumer/consumererror v0.114.0 h1:r2YiELfWerb40FHD23V04gNjIkLUcjEKGxI4Vtm2iO4= +go.opentelemetry.io/collector/consumer/consumererror v0.114.0/go.mod h1:MzIrLQ5jptO2egypolhlAbZsWZr29WC4FhSxQjnxcvg= +go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.114.0 h1:0IpwQXyHDXhIaLA6w2VlD6Ca0iuX4wlfCDiF+BKCwEo= +go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.114.0/go.mod h1:9pKeVRcCT92x5/UIULMLAop+J23VYJCWSZcVhmbup5I= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 h1:5pXYy3E6UK5Huu3aQbsYL8B6E6MyWx4fvXXDn+oXZaA= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0/go.mod h1:PMq3f54KcJQO4v1tue0QxQScu7REFVADlXxXSAYMiN0= +go.opentelemetry.io/collector/consumer/consumertest v0.114.0 h1:isaTwJK5DOy8Bs7GuLq23ejfgj8gLIo5dOUvkRnLF4g= +go.opentelemetry.io/collector/consumer/consumertest v0.114.0/go.mod h1:GNeLPkfRPdh06n/Rv1UKa/cAtCKjN0a7ADyHjIj4HFE= +go.opentelemetry.io/collector/exporter v0.114.0 h1:5/0BBpXuCJQSQ5SQf31g7j6T4XEKkyx9mZMcA2rS5e8= +go.opentelemetry.io/collector/exporter v0.114.0/go.mod h1:atpd0wWXgh5LAZ0REU/d/Ti/q50HDfnlBIjMjJQlKFg= +go.opentelemetry.io/collector/exporter/debugexporter v0.114.0 h1:7t1ij8fuV510SRT+eabgbl4973DaAtGmTx0RuGJy8DU= +go.opentelemetry.io/collector/exporter/debugexporter v0.114.0/go.mod h1:rC8PHnf1MniZN4ryU4i5GsyXKRkMEGwEGF2hxHx/JyU= +go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.114.0 h1:W/KsD33oMg/M7Kd5/m2riliWrTg3W9IgQVNeZL3cZjs= +go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.114.0/go.mod h1:Fh47qYBjX+jm+mpWBcqmaaQucZ6KiKm5P0drEt+xNRc= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 h1:/wmWOSBHcvtz3Pbv7+rWCqPPQuNvYaoidKKaOqZsLKs= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0/go.mod h1:epRYTkyJZTSQZBJflMGHUyUo2EdLPhsaZEyo5Qm848A= +go.opentelemetry.io/collector/exporter/exportertest v0.114.0 h1:vo0idBJT+QACSM1KpjVLm9VeiXVwO7y4UnMpGxN6EyM= +go.opentelemetry.io/collector/exporter/exportertest v0.114.0/go.mod h1:420ssFrhaphneybstbMeSIiqSRoaBARPgO71O17foaM= +go.opentelemetry.io/collector/exporter/nopexporter v0.114.0 h1:uMtQQjkAK62tzy2Rs/KCgRofNW7uo0EgU5xn3xmgB2w= +go.opentelemetry.io/collector/exporter/nopexporter v0.114.0/go.mod h1:jV9/E7Twphys1df6m7HgvqgJXpmppxFJb/DYy3XLR94= +go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0 h1:SC/xZNCB/eCVflrhDFX4WtrpvBPsZhmXVuSvgHQBsB8= +go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0/go.mod h1:q1273aUuYewtDUFwizv0AKu5/D+gbQAi8UFLKDv1eMk= +go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0 h1:+nPJraioPpLS2Kj3+YIfErDDFHsLX/5oPMSMAYKoggM= +go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0/go.mod h1:O+75KYmyJwK61VDsW7LHo2qFFXCTf3kEJH3ZvW1bb4Y= +go.opentelemetry.io/collector/extension v0.114.0 h1:9Qb92y8hD2WDC5aMDoj4JNQN+/5BQYJWPUPzLXX+iGw= +go.opentelemetry.io/collector/extension v0.114.0/go.mod h1:Yk2/1ptVgfTr12t+22v93nYJpioP14pURv2YercSzU0= +go.opentelemetry.io/collector/extension/auth v0.114.0 h1:1K2qh4yvG8kKR/sTAobI/rw5VxzPZoKcl3FmC195vvo= +go.opentelemetry.io/collector/extension/auth v0.114.0/go.mod h1:IjtsG+jUVJB0utKF8dAK8pLutRun3aEgASshImzsw/U= +go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 h1:hLyX9UvmY0t6iBnk3CqvyNck2U0QjPACekj7pDRx2hA= +go.opentelemetry.io/collector/extension/experimental/storage v0.114.0/go.mod h1:WqYRQVJjJLE1rm+y/ks1wPdPRGWePEvE1VO07xm2J2k= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0 h1:3OHll7gp5XIu7FVgon+koShPy797nze6EjCDokFUG7w= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0/go.mod h1:f0KdeLmE2jWVBmJ1U4WmfAtz1/tQUErGPfhPLKCQ49U= +go.opentelemetry.io/collector/extension/extensiontest v0.114.0 h1:ibXDms1qrswlvlR6b3d2BeyI8sXUXoFV11yOi9Sop8o= +go.opentelemetry.io/collector/extension/extensiontest v0.114.0/go.mod h1:/bOYmqu5yTDfI1bJZUxFqm8ZtmcodpquebiSxiQxtDY= +go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 h1:JosqAcdWw7IGsURJNR8f17xmaGCQEtKhQt9tM0T/DEg= +go.opentelemetry.io/collector/extension/zpagesextension v0.114.0/go.mod h1:+VO4p2GZvmIMqCVyIfS/U85Xqg+HIOe+mdl/ya+jVTE= +go.opentelemetry.io/collector/featuregate v1.20.0 h1:Mi7nMy/q52eruI+6jWnMKUOeM55XvwoPnGcdB1++O8c= +go.opentelemetry.io/collector/featuregate v1.20.0/go.mod h1:47xrISO71vJ83LSMm8+yIDsUbKktUp48Ovt7RR6VbRs= +go.opentelemetry.io/collector/filter v0.114.0 h1:5I97yblUxc6rXCYRn542aSrsNQLo/dE+87XROW2b5oU= +go.opentelemetry.io/collector/filter v0.114.0/go.mod h1:Nxwc+RD9AH4y/qYtkTP+Ac19CxgW5GAB+sJU4ACLr6g= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0 h1:JM9huYqy5LTzmuxQmbPST3l5Ez5kJNit28c6WFWls34= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0/go.mod h1:V28tDU4Wvf1PfW1Ty/SBL9tpKul2iYGno/HkCWGDrj0= +go.opentelemetry.io/collector/internal/memorylimiter v0.114.0 h1:UpKQ/GtWw7Mh/PjR03NdgR9PG7uT7mnfbQVxpDQVBgk= +go.opentelemetry.io/collector/internal/memorylimiter v0.114.0/go.mod h1:QUZr3bBguTmgLJUFuqVVsOxKr7Y/2JO49k3I1tUH88U= +go.opentelemetry.io/collector/internal/sharedcomponent v0.114.0 h1:DjX9ubjkKDnioQB03FYc40FTyhR25CdobMfjinKkZ1w= +go.opentelemetry.io/collector/internal/sharedcomponent v0.114.0/go.mod h1:lYlFiGIjPjhwTS/Xc+toJ9o3D8A6cCHuK1JX+ZbujVs= +go.opentelemetry.io/collector/otelcol v0.114.0 h1:d/nmYc+adzZ70g4zBMtgujGHVNulF59ExCpuM/3ZKV4= +go.opentelemetry.io/collector/otelcol v0.114.0/go.mod h1:DGmFFao5jHSwD6G1HjUjs0CYcyrTau+u7GjTRUGKN+4= +go.opentelemetry.io/collector/otelcol/otelcoltest v0.114.0 h1:Em5e1EgrPrS90EWDWLJHCvyFIDl5PIq1DuW9zd8F3pY= +go.opentelemetry.io/collector/otelcol/otelcoltest v0.114.0/go.mod h1:YAs78SaOJsf1HNWrNH+GFTdkS58dpQI98cok6gZP4Lg= +go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= +go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= +go.opentelemetry.io/collector/pdata/pprofile v0.114.0 h1:pUNfTzsI/JUTiE+DScDM4lsrPoxnVNLI2fbTxR/oapo= +go.opentelemetry.io/collector/pdata/pprofile v0.114.0/go.mod h1:4aNcj6WM1n1uXyFSXlhVs4ibrERgNYsTbzcYI2zGhxA= +go.opentelemetry.io/collector/pdata/testdata v0.114.0 h1:+AzszWSL1i4K6meQ8rU0JDDW55SYCXa6FVqfDixhhTo= +go.opentelemetry.io/collector/pdata/testdata v0.114.0/go.mod h1:bv8XFdCTZxG2MQB5l9dKxSxf5zBrcodwO6JOy1+AxXM= +go.opentelemetry.io/collector/pipeline v0.114.0 h1:v3YOhc5z0tD6QbO5n/pnftpIeroihM2ks9Z2yKPCcwY= +go.opentelemetry.io/collector/pipeline v0.114.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= +go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0 h1:LZgxMQ2zXcz8ILBefhxpZBpn/Rx+TJTncIIQy0LgtgY= +go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0/go.mod h1:bmyqQCJWcA53/GtqZJ2ahwmLdFl6UelFH2nR6OJFqpw= +go.opentelemetry.io/collector/processor v0.114.0 h1:6bqQgLL7BtKrNv4YkEOGjZfkcfZv/ciJSQx1epGG9Zk= +go.opentelemetry.io/collector/processor v0.114.0/go.mod h1:DV/wa+nAmSHIDeD9NblPwkY9PbgtDQAZJ+PE5biZwPc= +go.opentelemetry.io/collector/processor/batchprocessor v0.114.0 h1:Xu+pdPGIh6gLqHW5oYJsiim1mbnG85QaaUQy0YPoL+c= +go.opentelemetry.io/collector/processor/batchprocessor v0.114.0/go.mod h1:emnnL5CaliCnWjXNpNixqpvn7uc/kyUTv2939J/reMY= +go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.114.0 h1:gfzShbdzhbA2lsRSx2z9i9QO/FJwAzOSrBW2ObPqf38= +go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.114.0/go.mod h1:leElNJO5dnpOg0o1Gr2Ok59HKADRznbrZ3u2oTfx50Q= +go.opentelemetry.io/collector/processor/processorhelper/processorhelperprofiles v0.114.0 h1:/CQJ0UQRStwBQnM4Z9lTr6D4IqEKH1iuUWVr21fP4To= +go.opentelemetry.io/collector/processor/processorhelper/processorhelperprofiles v0.114.0/go.mod h1:HD2uDr7TIWQ+TsXBLmrHu396EeClj7YNoNzoWJw4jrY= +go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 h1:+P/1nLouEXTnN8DVQl+qWwO4BTkQyNPG9t/FrpUqrSI= +go.opentelemetry.io/collector/processor/processorprofiles v0.114.0/go.mod h1:3fuHeNIpINwx3bqFMprmDJyr6y5tWoWbJH599kltO5Y= +go.opentelemetry.io/collector/processor/processortest v0.114.0 h1:3FTaVXAp0LoVmUJn1ewBFckAby7AHa6/Kcdj0xuW14c= +go.opentelemetry.io/collector/processor/processortest v0.114.0/go.mod h1:OgsdOs1Fv5ZGTTJPF5nNIUJh2YkuV1acWd73yWgnti4= +go.opentelemetry.io/collector/receiver v0.114.0 h1:90SAnXAjNq7/k52/pFmmb06Cf1YauoPYtbio4aOXafY= +go.opentelemetry.io/collector/receiver v0.114.0/go.mod h1:KUGT0/D953LXbGH/D3lLPU8yrU3HfWnUqpt4W4hSOnE= +go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0 h1:CMtfS6fwEwqwTMeC17A3Q2xsSkXfH4gG2SBZDr2txCw= +go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0/go.mod h1:ajp6ok8iSSAcyq58wcOUJVe++1mTQ1isxqlaNUgQNzo= +go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0 h1:8ASaxRWLe8P0pefOiYbCSZ0aXmwE4K06I8FBGc/n+J0= +go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0/go.mod h1:3vjOvYBWGUVzuaovoumMbNHEIK3PqDs5rzEyd/nzsLU= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 h1:ibhEfGpvNB3yrtpl2jYFabrunMk1hurxvMYpM0b1Ck4= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0/go.mod h1:UZyRfaasw+NLvN10AN8IQnmj5tQ3BOUH1uP2ctpO9f0= +go.opentelemetry.io/collector/receiver/receivertest v0.114.0 h1:D+Kh9t2n4asTnM+TiSxbrKlUemLZandWntj17BJWWb0= +go.opentelemetry.io/collector/receiver/receivertest v0.114.0/go.mod h1:mNSHQ13vFmqD+VAcRzLjStFBejbcWUn2Mp0pAd7Op+U= +go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= +go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= +go.opentelemetry.io/collector/service v0.114.0 h1:MYF/4nH1CgtiLx09503xPAAUZefCzG1kaO+oanwX590= +go.opentelemetry.io/collector/service v0.114.0/go.mod h1:xH5/RapJdf5Ohh8iU8J0ZstfFYciP1oJPesiByteZxo= go.opentelemetry.io/contrib/bridges/otelzap v0.6.0 h1:j8icMXyyqNf6HGuwlYhniPnVsbJIq7n+WirDu3VAJdQ= go.opentelemetry.io/contrib/bridges/otelzap v0.6.0/go.mod h1:evIOZpl+kAlU5IsaYX2Siw+IbpacAZvXemVsgt70uvw= go.opentelemetry.io/contrib/config v0.10.0 h1:2JknAzMaYjxrHkTnZh3eOme/Y2P5eHE2SWfhfV6Xd6c= @@ -2100,26 +2106,26 @@ go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.7.0 h1:mMOmtYie9Fx6TSVzw4W+NTpvoaS1JWWga37oI1a/4qQ= go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.7.0/go.mod h1:yy7nDsMMBUkD+jeekJ36ur5f3jJIrmCwUrY67VFhNpA= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0 h1:FZ6ei8GFW7kyPYdxJaV2rgI6M+4tvZzhYsQ2wgyVC08= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0/go.mod h1:MdEu/mC6j3D+tTEfvI15b5Ci2Fn7NneJ71YMoiS3tpI= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.31.0 h1:ZsXq73BERAiNuuFXYqP4MR5hBrjXfMGSO+Cx7qoOZiM= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.31.0/go.mod h1:hg1zaDMpyZJuUzjFxFsRYBoccE86tM9Uf4IqNMUxvrY= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 h1:j7ZSD+5yn+lo3sGV69nW04rRR0jhYnBwjuX3r0HvnK0= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0/go.mod h1:WXbYJTUaZXAbYd8lbgGuvih0yuCfOFC5RJoYnoLcGz8= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.32.0 h1:t/Qur3vKSkUCcDVaSumWF2PKHt85pc7fRvFuoVT8qFU= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.32.0/go.mod h1:Rl61tySSdcOJWoEgYZVtmnKdA0GeKrSqkHC1t+91CH8= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 h1:K0XaT3DwHAcV4nKLzcQvwAgSyisUghWoY20I7huthMk= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0/go.mod h1:B5Ki776z/MBnVha1Nzwp5arlzBbE3+1jk+pGmaP5HME= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 h1:FFeLy03iVTXP6ffeN2iXrxfGsZGCjVx0/4KlizjyBwU= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0/go.mod h1:TMu73/k1CP8nBUpDLc71Wj/Kf7ZS9FK5b53VapRsP9o= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0 h1:lUsI2TYsQw2r1IASwoROaCnjdj2cvC2+Jbxvk6nHnWU= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0/go.mod h1:2HpZxxQurfGxJlJDblybejHB6RX6pmExPNe517hREw4= -go.opentelemetry.io/otel/exporters/prometheus v0.53.0 h1:QXobPHrwiGLM4ufrY3EOmDPJpo2P90UuFau4CDPJA/I= -go.opentelemetry.io/otel/exporters/prometheus v0.53.0/go.mod h1:WOAXGr3D00CfzmFxtTV1eR0GpoHuPEu+HJT8UWW2SIU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.7.0 h1:TwmL3O3fRR80m8EshBrd8YydEZMcUCsZXzOUlnFohwM= go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.7.0/go.mod h1:tH98dDv5KPmPThswbXA0fr0Lwfs+OhK8HgaCo7PjRrk= -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.31.0 h1:HZgBIps9wH0RDrwjrmNa3DVbNRW60HEhdzqZFyAp3fI= -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.31.0/go.mod h1:RDRhvt6TDG0eIXmonAx5bd9IcwpqCkziwkOClzWKwAQ= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.32.0 h1:SZmDnHcgp3zwlPBS2JX2urGYe/jBKEIT6ZedHRUyCz8= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.32.0/go.mod h1:fdWW0HtZJ7+jNpTKUR0GpMEDP69nR8YBJQxNiVCE3jk= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.31.0 h1:UGZ1QwZWY67Z6BmckTU+9Rxn04m2bD3gD6Mk0OIOCPk= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.31.0/go.mod h1:fcwWuDuaObkkChiDlhEpSq9+X1C0omv+s5mBtToAQ64= -go.opentelemetry.io/otel/log v0.7.0 h1:d1abJc0b1QQZADKvfe9JqqrfmPYQCz2tUSO+0XZmuV4= -go.opentelemetry.io/otel/log v0.7.0/go.mod h1:2jf2z7uVfnzDNknKTO9G+ahcOAyWcp1fJmk/wJjULRo= +go.opentelemetry.io/otel/log v0.8.0 h1:egZ8vV5atrUWUbnSsHn6vB8R21G2wrKqNiDt3iWertk= +go.opentelemetry.io/otel/log v0.8.0/go.mod h1:M9qvDdUTRCopJcGRKg57+JSQ9LgLBrwwfC32epk5NX8= go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= @@ -2609,10 +2615,10 @@ google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 h1:BulPr26Jqjnd4eYDVe+YvyR7Yc2vJGkO5/0UxD0/jZU= google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:hL97c3SYopEHblzpxRL4lSs523++l8DYxGM1FQiYmb4= -google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 h1:T6rh4haD3GVYsgEfWExoCZA2o2FmbNyKpTuAxbEFPTg= -google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:wp2WsuBYj6j8wUdo3ToZsdxxixbvQNAHqVJrTgi5E5M= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 h1:QCqS/PdaHTSWGvupk2F/ehwHtGc0/GYkT+3GAcR1CCc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= diff --git a/pkg/trace/go.mod b/pkg/trace/go.mod index 87d4c3e9cc114..66b36093d36c4 100644 --- a/pkg/trace/go.mod +++ b/pkg/trace/go.mod @@ -31,18 +31,18 @@ require ( github.com/google/go-cmp v0.6.0 github.com/google/gofuzz v1.2.0 github.com/google/uuid v1.6.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 github.com/shirou/gopsutil/v3 v3.24.4 github.com/stretchr/testify v1.9.0 github.com/tinylib/msgp v1.1.8 github.com/vmihailenco/msgpack/v4 v4.3.12 - go.opentelemetry.io/collector/component v0.113.0 - go.opentelemetry.io/collector/consumer v0.113.0 - go.opentelemetry.io/collector/pdata v1.19.0 - go.opentelemetry.io/collector/processor/processortest v0.113.0 - go.opentelemetry.io/collector/semconv v0.113.0 - go.opentelemetry.io/otel v1.31.0 - go.opentelemetry.io/otel/metric v1.31.0 + go.opentelemetry.io/collector/component v0.114.0 // indirect + go.opentelemetry.io/collector/consumer v0.114.0 + go.opentelemetry.io/collector/pdata v1.20.0 + go.opentelemetry.io/collector/processor/processortest v0.114.0 + go.opentelemetry.io/collector/semconv v0.114.0 + go.opentelemetry.io/otel v1.32.0 + go.opentelemetry.io/otel/metric v1.32.0 go.uber.org/atomic v1.11.0 golang.org/x/sys v0.27.0 golang.org/x/time v0.8.0 @@ -52,7 +52,9 @@ require ( k8s.io/apimachinery v0.25.5 ) -require go.opentelemetry.io/collector/processor v0.113.0 // indirect +require go.opentelemetry.io/collector/component/componenttest v0.114.0 + +require go.opentelemetry.io/collector/processor v0.114.0 // indirect require ( github.com/DataDog/go-sqllexer v0.0.16 // indirect @@ -74,7 +76,7 @@ require ( github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.113.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 // indirect github.com/opencontainers/runtime-spec v1.1.0-rc.3 // indirect github.com/outcaste-io/ristretto v0.2.1 // indirect github.com/philhofer/fwd v1.1.2 // indirect @@ -88,17 +90,17 @@ require ( github.com/tklauser/numcpus v0.6.1 // indirect github.com/vmihailenco/tagparser v0.1.2 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/collector/component/componentstatus v0.113.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.113.0 // indirect - go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0 // indirect - go.opentelemetry.io/collector/consumer/consumertest v0.113.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.113.0 // indirect - go.opentelemetry.io/collector/pdata/testdata v0.113.0 // indirect - go.opentelemetry.io/collector/pipeline v0.113.0 // indirect - go.opentelemetry.io/collector/processor/processorprofiles v0.113.0 // indirect - go.opentelemetry.io/otel/sdk v1.31.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.31.0 // indirect - go.opentelemetry.io/otel/trace v1.31.0 // indirect + go.opentelemetry.io/collector/component/componentstatus v0.114.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumertest v0.114.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.114.0 // indirect + go.opentelemetry.io/collector/pdata/testdata v0.114.0 // indirect + go.opentelemetry.io/collector/pipeline v0.114.0 // indirect + go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/mod v0.22.0 // indirect @@ -107,7 +109,7 @@ require ( golang.org/x/text v0.20.0 // indirect golang.org/x/tools v0.27.0 // indirect google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/trace/go.sum b/pkg/trace/go.sum index 28e55bef03272..0f33fc983415d 100644 --- a/pkg/trace/go.sum +++ b/pkg/trace/go.sum @@ -72,8 +72,8 @@ github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 h1:ad0vkEBuk23VJzZR9nkLVG0YAoN9coASF1GusYX6AlU= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0/go.mod h1:igFoXX2ELCW06bol23DWPB5BEWfZISOzSP5K2sbLea0= github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -90,8 +90,8 @@ github.com/knadh/koanf/maps v0.1.1 h1:G5TjmUh2D7G2YWf5SQQqSiHRJEjaicvU0KpypqB3NI github.com/knadh/koanf/maps v0.1.1/go.mod h1:npD/QZY3V6ghQDdcQzl1W4ICNVTkohC8E73eI2xW4yI= github.com/knadh/koanf/providers/confmap v0.1.0 h1:gOkxhHkemwG4LezxxN8DMOFopOPghxRVp7JbIvdvqzU= github.com/knadh/koanf/providers/confmap v0.1.0/go.mod h1:2uLhxQzJnyHKfxG927awZC7+fyHFdQkd697K4MdLnIU= -github.com/knadh/koanf/v2 v2.1.1 h1:/R8eXqasSTsmDCsAyYj+81Wteg8AqrV9CP6gvsTsOmM= -github.com/knadh/koanf/v2 v2.1.1/go.mod h1:4mnTRbZCK+ALuBXHZMjDfG9y714L7TykVnZkXbMU3Es= +github.com/knadh/koanf/v2 v2.1.2 h1:I2rtLRqXRy1p01m/utEtpZSSA6dcJbgGVuE27kW2PzQ= +github.com/knadh/koanf/v2 v2.1.2/go.mod h1:Gphfaen0q1Fc1HTgJgSTC4oRX9R2R5ErYMZJy8fLJBo= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= @@ -113,12 +113,12 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.113.0 h1:EZ/ZNsovNcQq+wwAbTAWNY+6BHnv24NxvVoC6eYmtg8= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.113.0/go.mod h1:u21dEQ9yQ0JyLMSrKLWWzHG/lHSlteNfa/EQ7Vqcle4= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.113.0 h1:Qy0MqQQKmW9wrfduM794WKg4qjTobIdj5HDHW5FZ/P8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.113.0/go.mod h1:X25Nhlw6xhuNSd/C0FeEwmD4PGmcXDl7pa2jR0UREkU= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0 h1:zDScLkNf/llyiH1cjpVv5PhJAT5AcHIXCB35zW5jsbM= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0/go.mod h1:S+GR7FZJYtFBnbjgD737QImuvm8d4+PBccpI0Xrda4E= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0 h1:d2wCLlENxH4I2axQWaogivx/5ZIjDYgn9MIf6sFxlJ4= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0/go.mod h1:Psyligv8GKL9WI3TraW3BLwkOX4TRxaaa1BBQQyICzA= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 h1:mtSN/07RGQPi1/zHVSZg4G0qRtOoJpPew5jsQWv9uS0= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0/go.mod h1:C9Zgh/N3j4NR2D+1FGAA1YizhFW9OS51DwLUFJTdXN4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 h1:I4ZYVRYW3Cjb65sPENZ9kHam/JUMXNEp2n/knJ0C0Vc= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0/go.mod h1:4BhyIaOn2LS48WS+ZNix4TpP0+goq9gDEtGzth5Cr3M= github.com/opencontainers/runtime-spec v1.1.0-rc.3 h1:l04uafi6kxByhbxev7OWiuUv0LZxEsYUfDWZ6bztAuU= github.com/opencontainers/runtime-spec v1.1.0-rc.3/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/outcaste-io/ristretto v0.2.1 h1:KCItuNIGJZcursqHr3ghO7fc5ddZLEHspL9UR0cQM64= @@ -188,120 +188,124 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= -go.opentelemetry.io/collector/component v0.113.0 h1:/nx+RvZgxUEXP+YcTj69rEtuSEGkfaCyp/ad5zQGLjU= -go.opentelemetry.io/collector/component v0.113.0/go.mod h1:2T779hIGHU9i7xbXbV3q1/JnRw2FyzUYXW2vq47A6EU= -go.opentelemetry.io/collector/component/componentstatus v0.113.0 h1:iNlUi+vDo7OqQwg4UOjfqqY3Xram4SkdcSZAyxt6QfE= -go.opentelemetry.io/collector/component/componentstatus v0.113.0/go.mod h1:NF/hVnP0kcsEqV9x14yMxN9GoehuOaVgMpO+s2KE+28= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0 h1:hweTRrVddnUeA3k7HzRY4oUR9lRdMa7of3mHNUS5YyA= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/confmap v1.19.0 h1:TQ0lZpAKqgsE0EKk+u4JA+uBbPYeFRmWP3GH43w40CY= -go.opentelemetry.io/collector/confmap v1.19.0/go.mod h1:GgNu1ElPGmLn9govqIfjaopvdspw4PJ9KeDtWC4E2Q4= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.19.0 h1:f8O/I5pVRN86Gx5mHekNx92S6fGdOS4VcooRJKWe6Bs= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.19.0/go.mod h1:AiaW5YW1LD0/WlZuc8eZuZPBH6PA9QqsiAYRX1iC6T0= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.19.0 h1:TYwyk4ea3U+5MYcEjrzZAaonBcLlabQu8CZeB7ekAYY= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.19.0/go.mod h1:i3mL4OSGI5JM0hnzHujhJK+LDlvO3XrJxBsuclfU/jY= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.19.0 h1:a077jcs3DVtaVdmgmCk3x4rRYuTkIqMDsoUc+VICHZk= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.19.0/go.mod h1:HjYkzhHbwUacv27nq0JLsslGpbtrXyyfU30Oc72AWLU= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.19.0 h1:oV66DKiEdAt8EMZqGSChK2iEOxjrVaWRhf4OqqmqjbM= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.19.0/go.mod h1:jtNUdO6i1k38BG7vFst+d1jk/N+c419uVR8HB4J0VjI= -go.opentelemetry.io/collector/connector v0.113.0 h1:ii+s1CjsLxtglqRlFs6tv8UU/uX45dyN9lbTRbR0p8g= -go.opentelemetry.io/collector/connector v0.113.0/go.mod h1:KmA8eQouTVxVk65Bf6utuMjWovMuOvNVRcYV60CAGtc= -go.opentelemetry.io/collector/connector/connectorprofiles v0.113.0 h1:yAEKTxVGpBtHrrXeZFrBcVOQkduxCncH0o4hqKrDRyw= -go.opentelemetry.io/collector/connector/connectorprofiles v0.113.0/go.mod h1:+mwzwIZ1cEK29ByfC38uF8hmFO8Wf9ShT1c756XX+RI= -go.opentelemetry.io/collector/connector/connectortest v0.113.0 h1:WHekoL0izkrKLVQLv79v0QhqfnXkVcw0sgdF07EqWLM= -go.opentelemetry.io/collector/connector/connectortest v0.113.0/go.mod h1:KouywNfkxRf+yzbI2pdolzTLkLoCV4ASEI2o2pDt+Cg= -go.opentelemetry.io/collector/consumer v0.113.0 h1:KJSiK5vSIY9dgPxwKfQ3gOgKtQsqc+7IB7mGhUAL5c8= -go.opentelemetry.io/collector/consumer v0.113.0/go.mod h1:zHMlXYFaJlZoLCBR6UwWoyXZ/adcO1u2ydqUal3VmYU= -go.opentelemetry.io/collector/consumer/consumererror v0.113.0 h1:Hd2N7n9RKbnKRaVrdw6fPBoQko5zZIgCxwVxkL6SAIE= -go.opentelemetry.io/collector/consumer/consumererror v0.113.0/go.mod h1:o0MAGFdzcr7LFTUQ6iivPPhbVmn2ZVIYm3FPXk2+JUo= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0 h1:RftAcQUY5UOfbEK4s16jnORqTx16y9+PxA1lQwt98cQ= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0/go.mod h1:ZuHrQ4pWguh6dw0DgTfcUtdY/T+cnOJJNP6LMbm5Y5A= -go.opentelemetry.io/collector/consumer/consumertest v0.113.0 h1:ua2AjNx3DUA8qElXNkggB4w3VDL/rBKBvryOQkhumH8= -go.opentelemetry.io/collector/consumer/consumertest v0.113.0/go.mod h1:vK8o4ZTZSiG3rVyqxZcCNmT/cvEfx34ig7V65L9+6Rg= -go.opentelemetry.io/collector/exporter v0.113.0 h1:lDZJ6xfuhyLsT/7lqLhIN/ftA6G+9fuYFtubPFvNDxo= -go.opentelemetry.io/collector/exporter v0.113.0/go.mod h1:0W4NBf5NjWYxR8oJodmOybgN4O0MLazdJwwHevirvXg= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0 h1:8bsk3wYYNr+WAM5nZkFjiLYSTH9MsY2tm7nUpMWt3qc= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0/go.mod h1:/HFWF846XePYL/qKDtcEAFgkiGSkLUTaC59A5F48axM= -go.opentelemetry.io/collector/exporter/exportertest v0.113.0 h1:U6cRxjJS7td8iNriUI2QfEdH+Yj60ytyvpmnmKTw0+8= -go.opentelemetry.io/collector/exporter/exportertest v0.113.0/go.mod h1:SRz5jGyAjtNiWwJ93B1+Ndk1p3oFtQsyLw52UGeyRwc= -go.opentelemetry.io/collector/extension v0.113.0 h1:Vp/YSL8ZCkJQrP1lf2Bm5yaTvcp6ROO3AnfuSL3GEXM= -go.opentelemetry.io/collector/extension v0.113.0/go.mod h1:Pwp0TNqdHeER4V1I6H6oCvrto/riiOAqs3737BWCnjw= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.113.0 h1:GuJzpnrJtsMrKWGmb1VL4EqL6x1HDtZmtvy3yEjth6Y= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.113.0/go.mod h1:oa72qndu7nAfEeEpDyDi9qLcaSJGIscLc/eeojFADx0= -go.opentelemetry.io/collector/featuregate v1.19.0 h1:ASea2sU+tdpKI3RxIJC/pufDAfwAmrvcQ4EmTHVu0B0= -go.opentelemetry.io/collector/featuregate v1.19.0/go.mod h1:47xrISO71vJ83LSMm8+yIDsUbKktUp48Ovt7RR6VbRs= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.113.0 h1:Beu2zAN6/EDXQ6hMFU6FT1BsnU5FXmWNOlfTAhrgbGc= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.113.0/go.mod h1:WUXbc4L6KJ3SpmsxBgId0OYzRDuS7n274kNpqrgnSmY= -go.opentelemetry.io/collector/otelcol v0.113.0 h1:t32gA8Pg9lsqYQml4mgvHdqFSsjvPZMvGywi0zXQYjk= -go.opentelemetry.io/collector/otelcol v0.113.0/go.mod h1:PV6pDLPEaulRs3ceWYNEDuG5100F35I5VzeC2ekT/vY= -go.opentelemetry.io/collector/otelcol/otelcoltest v0.113.0 h1:bfu9oQQbO6KEcpgh7muc1ixsGQs+qFWwi9LyabGILqw= -go.opentelemetry.io/collector/otelcol/otelcoltest v0.113.0/go.mod h1:0bag/J2REbnIKKKHvYe0RqyjmsUv4OJH14kNef+lD4Q= -go.opentelemetry.io/collector/pdata v1.19.0 h1:jmnU5R8TOCbwRr4B8sjdRxM7L5WnEKlQWX1dtLYxIbE= -go.opentelemetry.io/collector/pdata v1.19.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/pdata/pprofile v0.113.0 h1:VRf4p0VhfuaR+Epy/nMIlu/9t39WU9CUgHVUvpuGxfU= -go.opentelemetry.io/collector/pdata/pprofile v0.113.0/go.mod h1:5aDejksdXh5PdJN/OhpzATGT3kbNL0RMmw2Q0Q6E/o0= -go.opentelemetry.io/collector/pdata/testdata v0.113.0 h1:vRfn85jicO2F4eOTgsWtzmU/K3E/uZUtM1HEefvvJD8= -go.opentelemetry.io/collector/pdata/testdata v0.113.0/go.mod h1:sR+6eR+YEJhYZu9StbqzeWcCmHpfBAgX/qjP82HY9Gw= -go.opentelemetry.io/collector/pipeline v0.113.0 h1:vSRzRe3717jV0btCNPhVkhg2lu0uFxcm2VO+vhad/eE= -go.opentelemetry.io/collector/pipeline v0.113.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= -go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.113.0 h1:PwQnErsLvEd1x6VIyjLmKQot9huKWqIfEz1kd+8aj4k= -go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.113.0/go.mod h1:tChJYsCG3wc6JPT9aJO3y+32V14NhmCFZOh3k5ORGdQ= -go.opentelemetry.io/collector/processor v0.113.0 h1:BQI6MsKtiCG9HT/nmiRXTKP6SZFrjFKVfM6pTQfbc0k= -go.opentelemetry.io/collector/processor v0.113.0/go.mod h1:oX91zMI8ZkoaYSUfUYflHiMiiBJPKtODNBUCrETLLd8= -go.opentelemetry.io/collector/processor/processorprofiles v0.113.0 h1:cczN6whdrCWww3T0FBV3U7lsVKQmkWDX05M+9lANHgk= -go.opentelemetry.io/collector/processor/processorprofiles v0.113.0/go.mod h1:4Dmx5qsvujgJ+MC+KqWI7UDVM2liXa3sH/9XnGiL9aE= -go.opentelemetry.io/collector/processor/processortest v0.113.0 h1:jGoDJ+tDCzuDcAWZeshQtnK/DQAvMKd4wZAIDgAM5aA= -go.opentelemetry.io/collector/processor/processortest v0.113.0/go.mod h1:tNg04r5KlpVx774jSC8U/oYst1eb7WIiz+0AjXKJ0Uw= -go.opentelemetry.io/collector/receiver v0.113.0 h1:vraAbkPy8Pz9x5X39gV+j9t6x23PNsY2aJ6gQMugRbQ= -go.opentelemetry.io/collector/receiver v0.113.0/go.mod h1:IUa8/lNw8Qh4L5Q3jOeRWKW0ebQPoNcfhytxN5Puq2A= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0 h1:uVxuzjGe2t1sbwahSBowVHYnGzpzn8brmfn8z1UHvQg= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0/go.mod h1:khKDkzYJR2x2OPUqGSmoSncdINT9lUE5IThiHPDbqZk= -go.opentelemetry.io/collector/receiver/receivertest v0.113.0 h1:0vOvz3S4Q/KwcNCS9C7zPo0uxD6RSWktG88yGdxfV6g= -go.opentelemetry.io/collector/receiver/receivertest v0.113.0/go.mod h1:sRq5ctm5UE/0Ar562wnCVQ1zbAie/D127D1WbtbEuEc= -go.opentelemetry.io/collector/semconv v0.113.0 h1:twenSI7M7MJMJKW8D6a/GXxPZTPbama/weywBtV2iFw= -go.opentelemetry.io/collector/semconv v0.113.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= -go.opentelemetry.io/collector/service v0.113.0 h1:SFT+kWuj9TehC34MLEWfXH6QocGl3MYqLJ7UbxZtWzM= -go.opentelemetry.io/collector/service v0.113.0/go.mod h1:6+JY80Yd4J4RWpvRmpCUUZFOZKGVs9a1QKCKPlDrKfs= +go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= +go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= +go.opentelemetry.io/collector/component/componentstatus v0.114.0 h1:y9my/xink8KB5lK8zFAjgB2+pEh0QYy5TM972fxZY9w= +go.opentelemetry.io/collector/component/componentstatus v0.114.0/go.mod h1:RIoeCYZpPaae7QLE/1RacqzhHuXBmzRAk9H/EwYtIIs= +go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= +go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= +go.opentelemetry.io/collector/confmap v1.20.0 h1:ARfOwmkKxFOud1njl03yAHQ30+uenlzqCO6LBYamDTE= +go.opentelemetry.io/collector/confmap v1.20.0/go.mod h1:DMpd9Ay/ffls3JoQBQ73vWeRsz1rNuLbwjo6WtjSQus= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0 h1:I3xDecFXJVZBo5zJS7Y5SWBjF22XDWGZJgwotiwA5QM= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0/go.mod h1:CF0l8V8MNv+Wag8UkqObotFnlhMzdTFuk4/6kylKwYU= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0 h1:wWxvQ7wj+1O9yDGM5m1HPEz8FJewAHAUWadAAi0KVbM= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0/go.mod h1:/5HWIPjGYk8IUurs1CZUSjGaSsaQyJsfR8+Zs5rGJ6Y= +go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0 h1:YS1nB8vDoCS8IlfX5OP3QGS90y/hfflwZ7CoPQcAOlU= +go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0/go.mod h1:aV4UfkgcJ3eyXvfd3m694omN++1c96Joitab+YL6Xks= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0 h1:jSXTojCPI6Xr98m99nF7qbQFnw3INLEOHRcqcHS+lak= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0/go.mod h1:Pu95O2JE3R+0BBTbe4gpAC8ms3w6FbICHJw3WvGWrjs= +go.opentelemetry.io/collector/connector v0.114.0 h1:efGAeTCtg8zp5Hyd7Am8kBUgsSxWEFlFtAu4OX4mcEA= +go.opentelemetry.io/collector/connector v0.114.0/go.mod h1:8DhGgD8RhkF0ooELl4NOPPD/wgHuXHmY7g90RwJ2eNo= +go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0 h1:uVs9gy3UfQBmH0636ouIbGIoWis7zmKN+ny4XOGm36U= +go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0/go.mod h1:X681qFEAsEPMDQ0pMsD/3DqePw58sfLew1QbBKvGnmw= +go.opentelemetry.io/collector/connector/connectortest v0.114.0 h1:Fpy1JHyNOLdVzNcmxUY6Jwxdz6JDcTXL1NCfw8k1AOc= +go.opentelemetry.io/collector/connector/connectortest v0.114.0/go.mod h1:1zaAlODuL9iNyfyjHQeGCpbcaUjf5b68t8LqlwHKBNA= +go.opentelemetry.io/collector/consumer v0.114.0 h1:1zVaHvfIZowGwZRitRBRo3i+RP2StlU+GClYiofSw0Q= +go.opentelemetry.io/collector/consumer v0.114.0/go.mod h1:d+Mrzt9hsH1ub3zmwSlnQVPLeTYir4Mgo7CrWfnncN4= +go.opentelemetry.io/collector/consumer/consumererror v0.114.0 h1:r2YiELfWerb40FHD23V04gNjIkLUcjEKGxI4Vtm2iO4= +go.opentelemetry.io/collector/consumer/consumererror v0.114.0/go.mod h1:MzIrLQ5jptO2egypolhlAbZsWZr29WC4FhSxQjnxcvg= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 h1:5pXYy3E6UK5Huu3aQbsYL8B6E6MyWx4fvXXDn+oXZaA= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0/go.mod h1:PMq3f54KcJQO4v1tue0QxQScu7REFVADlXxXSAYMiN0= +go.opentelemetry.io/collector/consumer/consumertest v0.114.0 h1:isaTwJK5DOy8Bs7GuLq23ejfgj8gLIo5dOUvkRnLF4g= +go.opentelemetry.io/collector/consumer/consumertest v0.114.0/go.mod h1:GNeLPkfRPdh06n/Rv1UKa/cAtCKjN0a7ADyHjIj4HFE= +go.opentelemetry.io/collector/exporter v0.114.0 h1:5/0BBpXuCJQSQ5SQf31g7j6T4XEKkyx9mZMcA2rS5e8= +go.opentelemetry.io/collector/exporter v0.114.0/go.mod h1:atpd0wWXgh5LAZ0REU/d/Ti/q50HDfnlBIjMjJQlKFg= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 h1:/wmWOSBHcvtz3Pbv7+rWCqPPQuNvYaoidKKaOqZsLKs= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0/go.mod h1:epRYTkyJZTSQZBJflMGHUyUo2EdLPhsaZEyo5Qm848A= +go.opentelemetry.io/collector/exporter/exportertest v0.114.0 h1:vo0idBJT+QACSM1KpjVLm9VeiXVwO7y4UnMpGxN6EyM= +go.opentelemetry.io/collector/exporter/exportertest v0.114.0/go.mod h1:420ssFrhaphneybstbMeSIiqSRoaBARPgO71O17foaM= +go.opentelemetry.io/collector/extension v0.114.0 h1:9Qb92y8hD2WDC5aMDoj4JNQN+/5BQYJWPUPzLXX+iGw= +go.opentelemetry.io/collector/extension v0.114.0/go.mod h1:Yk2/1ptVgfTr12t+22v93nYJpioP14pURv2YercSzU0= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0 h1:3OHll7gp5XIu7FVgon+koShPy797nze6EjCDokFUG7w= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0/go.mod h1:f0KdeLmE2jWVBmJ1U4WmfAtz1/tQUErGPfhPLKCQ49U= +go.opentelemetry.io/collector/extension/extensiontest v0.114.0 h1:ibXDms1qrswlvlR6b3d2BeyI8sXUXoFV11yOi9Sop8o= +go.opentelemetry.io/collector/extension/extensiontest v0.114.0/go.mod h1:/bOYmqu5yTDfI1bJZUxFqm8ZtmcodpquebiSxiQxtDY= +go.opentelemetry.io/collector/featuregate v1.20.0 h1:Mi7nMy/q52eruI+6jWnMKUOeM55XvwoPnGcdB1++O8c= +go.opentelemetry.io/collector/featuregate v1.20.0/go.mod h1:47xrISO71vJ83LSMm8+yIDsUbKktUp48Ovt7RR6VbRs= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0 h1:JM9huYqy5LTzmuxQmbPST3l5Ez5kJNit28c6WFWls34= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0/go.mod h1:V28tDU4Wvf1PfW1Ty/SBL9tpKul2iYGno/HkCWGDrj0= +go.opentelemetry.io/collector/otelcol v0.114.0 h1:d/nmYc+adzZ70g4zBMtgujGHVNulF59ExCpuM/3ZKV4= +go.opentelemetry.io/collector/otelcol v0.114.0/go.mod h1:DGmFFao5jHSwD6G1HjUjs0CYcyrTau+u7GjTRUGKN+4= +go.opentelemetry.io/collector/otelcol/otelcoltest v0.114.0 h1:Em5e1EgrPrS90EWDWLJHCvyFIDl5PIq1DuW9zd8F3pY= +go.opentelemetry.io/collector/otelcol/otelcoltest v0.114.0/go.mod h1:YAs78SaOJsf1HNWrNH+GFTdkS58dpQI98cok6gZP4Lg= +go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= +go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= +go.opentelemetry.io/collector/pdata/pprofile v0.114.0 h1:pUNfTzsI/JUTiE+DScDM4lsrPoxnVNLI2fbTxR/oapo= +go.opentelemetry.io/collector/pdata/pprofile v0.114.0/go.mod h1:4aNcj6WM1n1uXyFSXlhVs4ibrERgNYsTbzcYI2zGhxA= +go.opentelemetry.io/collector/pdata/testdata v0.114.0 h1:+AzszWSL1i4K6meQ8rU0JDDW55SYCXa6FVqfDixhhTo= +go.opentelemetry.io/collector/pdata/testdata v0.114.0/go.mod h1:bv8XFdCTZxG2MQB5l9dKxSxf5zBrcodwO6JOy1+AxXM= +go.opentelemetry.io/collector/pipeline v0.114.0 h1:v3YOhc5z0tD6QbO5n/pnftpIeroihM2ks9Z2yKPCcwY= +go.opentelemetry.io/collector/pipeline v0.114.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= +go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0 h1:LZgxMQ2zXcz8ILBefhxpZBpn/Rx+TJTncIIQy0LgtgY= +go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0/go.mod h1:bmyqQCJWcA53/GtqZJ2ahwmLdFl6UelFH2nR6OJFqpw= +go.opentelemetry.io/collector/processor v0.114.0 h1:6bqQgLL7BtKrNv4YkEOGjZfkcfZv/ciJSQx1epGG9Zk= +go.opentelemetry.io/collector/processor v0.114.0/go.mod h1:DV/wa+nAmSHIDeD9NblPwkY9PbgtDQAZJ+PE5biZwPc= +go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 h1:+P/1nLouEXTnN8DVQl+qWwO4BTkQyNPG9t/FrpUqrSI= +go.opentelemetry.io/collector/processor/processorprofiles v0.114.0/go.mod h1:3fuHeNIpINwx3bqFMprmDJyr6y5tWoWbJH599kltO5Y= +go.opentelemetry.io/collector/processor/processortest v0.114.0 h1:3FTaVXAp0LoVmUJn1ewBFckAby7AHa6/Kcdj0xuW14c= +go.opentelemetry.io/collector/processor/processortest v0.114.0/go.mod h1:OgsdOs1Fv5ZGTTJPF5nNIUJh2YkuV1acWd73yWgnti4= +go.opentelemetry.io/collector/receiver v0.114.0 h1:90SAnXAjNq7/k52/pFmmb06Cf1YauoPYtbio4aOXafY= +go.opentelemetry.io/collector/receiver v0.114.0/go.mod h1:KUGT0/D953LXbGH/D3lLPU8yrU3HfWnUqpt4W4hSOnE= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 h1:ibhEfGpvNB3yrtpl2jYFabrunMk1hurxvMYpM0b1Ck4= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0/go.mod h1:UZyRfaasw+NLvN10AN8IQnmj5tQ3BOUH1uP2ctpO9f0= +go.opentelemetry.io/collector/receiver/receivertest v0.114.0 h1:D+Kh9t2n4asTnM+TiSxbrKlUemLZandWntj17BJWWb0= +go.opentelemetry.io/collector/receiver/receivertest v0.114.0/go.mod h1:mNSHQ13vFmqD+VAcRzLjStFBejbcWUn2Mp0pAd7Op+U= +go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= +go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= +go.opentelemetry.io/collector/service v0.114.0 h1:MYF/4nH1CgtiLx09503xPAAUZefCzG1kaO+oanwX590= +go.opentelemetry.io/collector/service v0.114.0/go.mod h1:xH5/RapJdf5Ohh8iU8J0ZstfFYciP1oJPesiByteZxo= go.opentelemetry.io/contrib/bridges/otelzap v0.6.0 h1:j8icMXyyqNf6HGuwlYhniPnVsbJIq7n+WirDu3VAJdQ= go.opentelemetry.io/contrib/bridges/otelzap v0.6.0/go.mod h1:evIOZpl+kAlU5IsaYX2Siw+IbpacAZvXemVsgt70uvw= go.opentelemetry.io/contrib/config v0.10.0 h1:2JknAzMaYjxrHkTnZh3eOme/Y2P5eHE2SWfhfV6Xd6c= go.opentelemetry.io/contrib/config v0.10.0/go.mod h1:aND2M6/KfNkntI5cyvHriR/zvZgPf8j9yETdSmvpfmc= go.opentelemetry.io/contrib/propagators/b3 v1.31.0 h1:PQPXYscmwbCp76QDvO4hMngF2j8Bx/OTV86laEl8uqo= go.opentelemetry.io/contrib/propagators/b3 v1.31.0/go.mod h1:jbqfV8wDdqSDrAYxVpXQnpM0XFMq2FtDesblJ7blOwQ= -go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY= -go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.7.0 h1:mMOmtYie9Fx6TSVzw4W+NTpvoaS1JWWga37oI1a/4qQ= go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.7.0/go.mod h1:yy7nDsMMBUkD+jeekJ36ur5f3jJIrmCwUrY67VFhNpA= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0 h1:FZ6ei8GFW7kyPYdxJaV2rgI6M+4tvZzhYsQ2wgyVC08= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0/go.mod h1:MdEu/mC6j3D+tTEfvI15b5Ci2Fn7NneJ71YMoiS3tpI= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.31.0 h1:ZsXq73BERAiNuuFXYqP4MR5hBrjXfMGSO+Cx7qoOZiM= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.31.0/go.mod h1:hg1zaDMpyZJuUzjFxFsRYBoccE86tM9Uf4IqNMUxvrY= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 h1:j7ZSD+5yn+lo3sGV69nW04rRR0jhYnBwjuX3r0HvnK0= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0/go.mod h1:WXbYJTUaZXAbYd8lbgGuvih0yuCfOFC5RJoYnoLcGz8= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.32.0 h1:t/Qur3vKSkUCcDVaSumWF2PKHt85pc7fRvFuoVT8qFU= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.32.0/go.mod h1:Rl61tySSdcOJWoEgYZVtmnKdA0GeKrSqkHC1t+91CH8= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 h1:K0XaT3DwHAcV4nKLzcQvwAgSyisUghWoY20I7huthMk= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0/go.mod h1:B5Ki776z/MBnVha1Nzwp5arlzBbE3+1jk+pGmaP5HME= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 h1:FFeLy03iVTXP6ffeN2iXrxfGsZGCjVx0/4KlizjyBwU= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0/go.mod h1:TMu73/k1CP8nBUpDLc71Wj/Kf7ZS9FK5b53VapRsP9o= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0 h1:lUsI2TYsQw2r1IASwoROaCnjdj2cvC2+Jbxvk6nHnWU= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0/go.mod h1:2HpZxxQurfGxJlJDblybejHB6RX6pmExPNe517hREw4= -go.opentelemetry.io/otel/exporters/prometheus v0.53.0 h1:QXobPHrwiGLM4ufrY3EOmDPJpo2P90UuFau4CDPJA/I= -go.opentelemetry.io/otel/exporters/prometheus v0.53.0/go.mod h1:WOAXGr3D00CfzmFxtTV1eR0GpoHuPEu+HJT8UWW2SIU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.7.0 h1:TwmL3O3fRR80m8EshBrd8YydEZMcUCsZXzOUlnFohwM= go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.7.0/go.mod h1:tH98dDv5KPmPThswbXA0fr0Lwfs+OhK8HgaCo7PjRrk= -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.31.0 h1:HZgBIps9wH0RDrwjrmNa3DVbNRW60HEhdzqZFyAp3fI= -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.31.0/go.mod h1:RDRhvt6TDG0eIXmonAx5bd9IcwpqCkziwkOClzWKwAQ= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.32.0 h1:SZmDnHcgp3zwlPBS2JX2urGYe/jBKEIT6ZedHRUyCz8= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.32.0/go.mod h1:fdWW0HtZJ7+jNpTKUR0GpMEDP69nR8YBJQxNiVCE3jk= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.31.0 h1:UGZ1QwZWY67Z6BmckTU+9Rxn04m2bD3gD6Mk0OIOCPk= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.31.0/go.mod h1:fcwWuDuaObkkChiDlhEpSq9+X1C0omv+s5mBtToAQ64= -go.opentelemetry.io/otel/log v0.7.0 h1:d1abJc0b1QQZADKvfe9JqqrfmPYQCz2tUSO+0XZmuV4= -go.opentelemetry.io/otel/log v0.7.0/go.mod h1:2jf2z7uVfnzDNknKTO9G+ahcOAyWcp1fJmk/wJjULRo= -go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE= -go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY= -go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk= -go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0= +go.opentelemetry.io/otel/log v0.8.0 h1:egZ8vV5atrUWUbnSsHn6vB8R21G2wrKqNiDt3iWertk= +go.opentelemetry.io/otel/log v0.8.0/go.mod h1:M9qvDdUTRCopJcGRKg57+JSQ9LgLBrwwfC32epk5NX8= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= go.opentelemetry.io/otel/sdk/log v0.7.0 h1:dXkeI2S0MLc5g0/AwxTZv6EUEjctiH8aG14Am56NTmQ= go.opentelemetry.io/otel/sdk/log v0.7.0/go.mod h1:oIRXpW+WD6M8BuGj5rtS0aRu/86cbDV/dAfNaZBIjYM= -go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc= -go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8= -go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys= -go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= @@ -400,10 +404,10 @@ google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCID google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d h1:VBu5YqKPv6XiJ199exd8Br+Aetz+o08F+PLMnwJQHAY= -google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 h1:T6rh4haD3GVYsgEfWExoCZA2o2FmbNyKpTuAxbEFPTg= -google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:wp2WsuBYj6j8wUdo3ToZsdxxixbvQNAHqVJrTgi5E5M= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 h1:QCqS/PdaHTSWGvupk2F/ehwHtGc0/GYkT+3GAcR1CCc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= diff --git a/pkg/trace/stats/oteltest/go.mod b/pkg/trace/stats/oteltest/go.mod index dc7188b11edea..9af8a62565b80 100644 --- a/pkg/trace/stats/oteltest/go.mod +++ b/pkg/trace/stats/oteltest/go.mod @@ -10,13 +10,15 @@ require ( github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 github.com/google/go-cmp v0.6.0 github.com/stretchr/testify v1.9.0 - go.opentelemetry.io/collector/component v0.113.0 - go.opentelemetry.io/collector/pdata v1.19.0 - go.opentelemetry.io/collector/semconv v0.113.0 - go.opentelemetry.io/otel/metric v1.31.0 + go.opentelemetry.io/collector/component/componenttest v0.114.0 + go.opentelemetry.io/collector/pdata v1.20.0 + go.opentelemetry.io/collector/semconv v0.114.0 + go.opentelemetry.io/otel/metric v1.32.0 google.golang.org/protobuf v1.35.1 ) +require go.opentelemetry.io/collector/component v0.114.0 // indirect + require ( github.com/DataDog/datadog-agent/comp/trace/compression/def v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip v0.56.0-rc.3 // indirect @@ -63,11 +65,11 @@ require ( github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.113.0 // indirect - go.opentelemetry.io/otel v1.31.0 // indirect - go.opentelemetry.io/otel/sdk v1.31.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.31.0 // indirect - go.opentelemetry.io/otel/trace v1.31.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect @@ -78,7 +80,7 @@ require ( golang.org/x/text v0.20.0 // indirect golang.org/x/time v0.8.0 // indirect golang.org/x/tools v0.27.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/pkg/trace/stats/oteltest/go.sum b/pkg/trace/stats/oteltest/go.sum index e767b3ea23c2e..1698d19621bf8 100644 --- a/pkg/trace/stats/oteltest/go.sum +++ b/pkg/trace/stats/oteltest/go.sum @@ -76,10 +76,10 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.113.0 h1:Qy0MqQQKmW9wrfduM794WKg4qjTobIdj5HDHW5FZ/P8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.113.0/go.mod h1:X25Nhlw6xhuNSd/C0FeEwmD4PGmcXDl7pa2jR0UREkU= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0 h1:zDScLkNf/llyiH1cjpVv5PhJAT5AcHIXCB35zW5jsbM= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0/go.mod h1:S+GR7FZJYtFBnbjgD737QImuvm8d4+PBccpI0Xrda4E= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 h1:mtSN/07RGQPi1/zHVSZg4G0qRtOoJpPew5jsQWv9uS0= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0/go.mod h1:C9Zgh/N3j4NR2D+1FGAA1YizhFW9OS51DwLUFJTdXN4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 h1:I4ZYVRYW3Cjb65sPENZ9kHam/JUMXNEp2n/knJ0C0Vc= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0/go.mod h1:4BhyIaOn2LS48WS+ZNix4TpP0+goq9gDEtGzth5Cr3M= github.com/opencontainers/runtime-spec v1.1.0-rc.3 h1:l04uafi6kxByhbxev7OWiuUv0LZxEsYUfDWZ6bztAuU= github.com/opencontainers/runtime-spec v1.1.0-rc.3/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/outcaste-io/ristretto v0.2.1 h1:KCItuNIGJZcursqHr3ghO7fc5ddZLEHspL9UR0cQM64= @@ -134,44 +134,46 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= -go.opentelemetry.io/collector/component v0.113.0 h1:/nx+RvZgxUEXP+YcTj69rEtuSEGkfaCyp/ad5zQGLjU= -go.opentelemetry.io/collector/component v0.113.0/go.mod h1:2T779hIGHU9i7xbXbV3q1/JnRw2FyzUYXW2vq47A6EU= -go.opentelemetry.io/collector/component/componentstatus v0.113.0 h1:iNlUi+vDo7OqQwg4UOjfqqY3Xram4SkdcSZAyxt6QfE= -go.opentelemetry.io/collector/component/componentstatus v0.113.0/go.mod h1:NF/hVnP0kcsEqV9x14yMxN9GoehuOaVgMpO+s2KE+28= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0 h1:hweTRrVddnUeA3k7HzRY4oUR9lRdMa7of3mHNUS5YyA= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/consumer v0.113.0 h1:KJSiK5vSIY9dgPxwKfQ3gOgKtQsqc+7IB7mGhUAL5c8= -go.opentelemetry.io/collector/consumer v0.113.0/go.mod h1:zHMlXYFaJlZoLCBR6UwWoyXZ/adcO1u2ydqUal3VmYU= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0 h1:RftAcQUY5UOfbEK4s16jnORqTx16y9+PxA1lQwt98cQ= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0/go.mod h1:ZuHrQ4pWguh6dw0DgTfcUtdY/T+cnOJJNP6LMbm5Y5A= -go.opentelemetry.io/collector/consumer/consumertest v0.113.0 h1:ua2AjNx3DUA8qElXNkggB4w3VDL/rBKBvryOQkhumH8= -go.opentelemetry.io/collector/consumer/consumertest v0.113.0/go.mod h1:vK8o4ZTZSiG3rVyqxZcCNmT/cvEfx34ig7V65L9+6Rg= -go.opentelemetry.io/collector/pdata v1.19.0 h1:jmnU5R8TOCbwRr4B8sjdRxM7L5WnEKlQWX1dtLYxIbE= -go.opentelemetry.io/collector/pdata v1.19.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/pdata/pprofile v0.113.0 h1:VRf4p0VhfuaR+Epy/nMIlu/9t39WU9CUgHVUvpuGxfU= -go.opentelemetry.io/collector/pdata/pprofile v0.113.0/go.mod h1:5aDejksdXh5PdJN/OhpzATGT3kbNL0RMmw2Q0Q6E/o0= -go.opentelemetry.io/collector/pdata/testdata v0.113.0 h1:vRfn85jicO2F4eOTgsWtzmU/K3E/uZUtM1HEefvvJD8= -go.opentelemetry.io/collector/pdata/testdata v0.113.0/go.mod h1:sR+6eR+YEJhYZu9StbqzeWcCmHpfBAgX/qjP82HY9Gw= -go.opentelemetry.io/collector/pipeline v0.113.0 h1:vSRzRe3717jV0btCNPhVkhg2lu0uFxcm2VO+vhad/eE= -go.opentelemetry.io/collector/pipeline v0.113.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= -go.opentelemetry.io/collector/processor v0.113.0 h1:BQI6MsKtiCG9HT/nmiRXTKP6SZFrjFKVfM6pTQfbc0k= -go.opentelemetry.io/collector/processor v0.113.0/go.mod h1:oX91zMI8ZkoaYSUfUYflHiMiiBJPKtODNBUCrETLLd8= -go.opentelemetry.io/collector/processor/processorprofiles v0.113.0 h1:cczN6whdrCWww3T0FBV3U7lsVKQmkWDX05M+9lANHgk= -go.opentelemetry.io/collector/processor/processorprofiles v0.113.0/go.mod h1:4Dmx5qsvujgJ+MC+KqWI7UDVM2liXa3sH/9XnGiL9aE= -go.opentelemetry.io/collector/processor/processortest v0.113.0 h1:jGoDJ+tDCzuDcAWZeshQtnK/DQAvMKd4wZAIDgAM5aA= -go.opentelemetry.io/collector/processor/processortest v0.113.0/go.mod h1:tNg04r5KlpVx774jSC8U/oYst1eb7WIiz+0AjXKJ0Uw= -go.opentelemetry.io/collector/semconv v0.113.0 h1:twenSI7M7MJMJKW8D6a/GXxPZTPbama/weywBtV2iFw= -go.opentelemetry.io/collector/semconv v0.113.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= -go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY= -go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE= -go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE= -go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY= -go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk= -go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0= -go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc= -go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8= -go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys= -go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A= +go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= +go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= +go.opentelemetry.io/collector/component/componentstatus v0.114.0 h1:y9my/xink8KB5lK8zFAjgB2+pEh0QYy5TM972fxZY9w= +go.opentelemetry.io/collector/component/componentstatus v0.114.0/go.mod h1:RIoeCYZpPaae7QLE/1RacqzhHuXBmzRAk9H/EwYtIIs= +go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= +go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= +go.opentelemetry.io/collector/consumer v0.114.0 h1:1zVaHvfIZowGwZRitRBRo3i+RP2StlU+GClYiofSw0Q= +go.opentelemetry.io/collector/consumer v0.114.0/go.mod h1:d+Mrzt9hsH1ub3zmwSlnQVPLeTYir4Mgo7CrWfnncN4= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 h1:5pXYy3E6UK5Huu3aQbsYL8B6E6MyWx4fvXXDn+oXZaA= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0/go.mod h1:PMq3f54KcJQO4v1tue0QxQScu7REFVADlXxXSAYMiN0= +go.opentelemetry.io/collector/consumer/consumertest v0.114.0 h1:isaTwJK5DOy8Bs7GuLq23ejfgj8gLIo5dOUvkRnLF4g= +go.opentelemetry.io/collector/consumer/consumertest v0.114.0/go.mod h1:GNeLPkfRPdh06n/Rv1UKa/cAtCKjN0a7ADyHjIj4HFE= +go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= +go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= +go.opentelemetry.io/collector/pdata/pprofile v0.114.0 h1:pUNfTzsI/JUTiE+DScDM4lsrPoxnVNLI2fbTxR/oapo= +go.opentelemetry.io/collector/pdata/pprofile v0.114.0/go.mod h1:4aNcj6WM1n1uXyFSXlhVs4ibrERgNYsTbzcYI2zGhxA= +go.opentelemetry.io/collector/pdata/testdata v0.114.0 h1:+AzszWSL1i4K6meQ8rU0JDDW55SYCXa6FVqfDixhhTo= +go.opentelemetry.io/collector/pdata/testdata v0.114.0/go.mod h1:bv8XFdCTZxG2MQB5l9dKxSxf5zBrcodwO6JOy1+AxXM= +go.opentelemetry.io/collector/pipeline v0.114.0 h1:v3YOhc5z0tD6QbO5n/pnftpIeroihM2ks9Z2yKPCcwY= +go.opentelemetry.io/collector/pipeline v0.114.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= +go.opentelemetry.io/collector/processor v0.114.0 h1:6bqQgLL7BtKrNv4YkEOGjZfkcfZv/ciJSQx1epGG9Zk= +go.opentelemetry.io/collector/processor v0.114.0/go.mod h1:DV/wa+nAmSHIDeD9NblPwkY9PbgtDQAZJ+PE5biZwPc= +go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 h1:+P/1nLouEXTnN8DVQl+qWwO4BTkQyNPG9t/FrpUqrSI= +go.opentelemetry.io/collector/processor/processorprofiles v0.114.0/go.mod h1:3fuHeNIpINwx3bqFMprmDJyr6y5tWoWbJH599kltO5Y= +go.opentelemetry.io/collector/processor/processortest v0.114.0 h1:3FTaVXAp0LoVmUJn1ewBFckAby7AHa6/Kcdj0xuW14c= +go.opentelemetry.io/collector/processor/processortest v0.114.0/go.mod h1:OgsdOs1Fv5ZGTTJPF5nNIUJh2YkuV1acWd73yWgnti4= +go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= +go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= @@ -258,8 +260,8 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 h1:QCqS/PdaHTSWGvupk2F/ehwHtGc0/GYkT+3GAcR1CCc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= diff --git a/tasks/collector.py b/tasks/collector.py index 28c2b2e9540bd..93ff65b73edbd 100644 --- a/tasks/collector.py +++ b/tasks/collector.py @@ -20,7 +20,7 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. """ -OCB_VERSION = "0.113.0" +OCB_VERSION = "0.114.0" MANDATORY_COMPONENTS = { "extensions": [ @@ -261,46 +261,7 @@ def generate(ctx): print(f"Updated package name and ensured license header in: {file_path}") -def fetch_latest_release(repo): - gh = GithubAPI(repo) - return gh.latest_release() - - -def fetch_core_module_versions(version): - """ - Fetch versions.yaml from the provided URL and build a map of modules with their versions. - """ - url = f"https://raw.githubusercontent.com/open-telemetry/opentelemetry-collector/{version}/versions.yaml" - print(f"Fetching versions from {url}") - - try: - response = requests.get(url) - response.raise_for_status() # Raises an HTTPError if the HTTP request returned an unsuccessful status code - except requests.exceptions.RequestException as e: - raise Exit( - color_message(f"Failed to fetch the YAML file: {e}", Color.RED), - code=1, - ) from e - - yaml_content = response.content - - try: - data = yaml.safe_load(yaml_content) - except yaml.YAMLError as e: - raise Exit( - color_message(f"Failed to parse YAML content: {e}", Color.RED), - code=1, - ) from e - - version_modules = {} - for _, details in data.get("module-sets", {}).items(): - version = details.get("version", "unknown") - for module in details.get("modules", []): - version_modules[version] = version_modules.get(version, []) + [module] - return version_modules - - -def update_go_mod_file(go_mod_path, collector_version_modules): +def update_go_mod_file(go_mod_path, module_versions): print(f"Updating {go_mod_path}") # Read all lines from the go.mod file with open(go_mod_path) as file: @@ -310,15 +271,28 @@ def update_go_mod_file(go_mod_path, collector_version_modules): file_updated = False # To check if the file was modified # Compile a regex for each module to match the module name exactly - compiled_modules = { - module: re.compile(rf"^\s*{re.escape(module)}\s+v[\d\.]+") - for _, modules in collector_version_modules.items() - for module in modules - } + compiled_modules = {module: re.compile(rf"^\s*{re.escape(module)}\s+v[\d\.]+") for module in module_versions.keys()} + + # Regex to match any `require` line + require_regex = re.compile(r"^require\s+(\S+)\s+v[\d\.]+") + for line in lines: updated_line = line - for version, modules in collector_version_modules.items(): - for module in modules: + + # Check for any `require` line case + require_match = require_regex.match(line) + if require_match: + module_name = require_match.group(1) + for module, version in module_versions.items(): + if module_name == module: + print(f"Updating {module_name} to version {version} in {go_mod_path}") + updated_line = f"require {module_name} {version}\n" + file_updated = True + break # Stop checking once updated + + # General case for other module versions + else: + for module, version in module_versions.items(): module_regex = compiled_modules[module] match = module_regex.match(line) if match: @@ -326,8 +300,9 @@ def update_go_mod_file(go_mod_path, collector_version_modules): updated_line = f"{match.group(0).split()[0]} {version}\n" file_updated = True break # Stop checking other modules once we find a match - if updated_line != line: - break # If the line was updated, stop checking other versions + if updated_line != line: + break # If the line was updated, stop checking other versions + updated_lines.append(updated_line) # Write the updated lines back to the file only if changes were made @@ -374,91 +349,152 @@ def update_file(filepath, old_version, new_version): print(f"Updated all instances of {old_version} to {new_version} in {filepath}") -def update_core_collector(): - print("Updating the core collector version in all go.mod files and manifest.yaml file.") - repo = "open-telemetry/opentelemetry-collector" - collector_version = fetch_latest_release(repo) - if collector_version: - print(f"Latest release for {repo}: {collector_version}") - version_modules = fetch_core_module_versions(collector_version) - update_all_go_mod(version_modules) - old_version = read_old_version(MANIFEST_FILE) - if old_version: - collector_version = collector_version[1:] - update_file(MANIFEST_FILE, old_version, collector_version) - update_file( - "./comp/otelcol/collector/impl/collector.go", - old_version, - collector_version, - ) - # update other files - update_file("./tasks/collector.py", old_version, collector_version) - for root, _, files in os.walk("./tasks/unit_tests/testdata/collector"): - for file in files: - update_file(os.path.join(root, file), old_version, collector_version) - update_file( - "./test/otel/testdata/builder-config.yaml", - old_version, - collector_version, - ) - update_file("./.gitlab/integration_test/otel.yml", old_version, collector_version) - - else: - print(f"Failed to fetch the latest release for {repo}") - - print("Core collector update complete.") +OTEL_COLLECTOR_CORE_REPO = "open-telemetry/opentelemetry-collector" +OTEL_COLLECTOR_CONTRIB_REPO = "open-telemetry/opentelemetry-collector-contrib" -def update_versions_in_yaml(yaml_file_path, new_version, component_prefix): +def update_versions_in_ocb_yaml(yaml_file_path, modules_version): with open(yaml_file_path) as file: data = yaml.safe_load(file) # Function to update versions in a list of components def update_component_versions(components): for i, component in enumerate(components): - if "gomod" in component and component_prefix in component["gomod"]: + if "gomod" in component: parts = component["gomod"].split(" ") if len(parts) == 2: - parts[1] = new_version + version = modules_version.get(parts[0], parts[1]) + parts[1] = version components[i]["gomod"] = " ".join(parts) # Update extensions, receivers, processors, and exporters - for key in ["extensions", "receivers", "processors", "exporters", "connectors"]: + for key in ["extensions", "receivers", "processors", "exporters", "connectors", "providers", "converters"]: if key in data: update_component_versions(data[key]) with open(yaml_file_path, "w") as file: yaml.dump(data, file, default_flow_style=False) - print( - f"Updated YAML file at {yaml_file_path} with new version {new_version} for components matching '{component_prefix}'." - ) - - -def update_collector_contrib(): - print("Updating the collector-contrib version in all go.mod files.") - repo = "open-telemetry/opentelemetry-collector-contrib" - modules = ["github.com/open-telemetry/opentelemetry-collector-contrib"] - collector_version = fetch_latest_release(repo) - if collector_version: - print(f"Latest release for {repo}: {collector_version}") - version_modules = { - collector_version: modules, - } - update_all_go_mod(version_modules) - update_versions_in_yaml( + print(f"Updated YAML file at {yaml_file_path}") + + +def fetch_latest_release(repo): + gh = GithubAPI(repo) + return gh.latest_release() + + +class CollectorRepo: + def __init__(self, repo): + self.repo = repo + self.version = self.fetch_latest_release() + if not self.version: + raise Exit( + color_message(f"Failed to fetch the latest release for {repo}", Color.RED), + code=1, + ) + self.version_modules = self.fetch_module_versions() + self.old_version = read_old_version(MANIFEST_FILE) + if not self.old_version: + raise Exit( + color_message(f"Failed to read the old version from {MANIFEST_FILE}", Color.RED), + code=1, + ) + self.modules_version = {} + for k, v in self.version_modules.items(): + for module in v: + self.modules_version[module] = k + + def get_old_version(self): + return self.old_version + + def get_modules_version(self): + return self.modules_version + + def get_version(self): + return self.version + + def fetch_latest_release(self): + gh = GithubAPI(self.repo) + self.version = gh.latest_release() + return self.version + + def fetch_module_versions(self): + url = f"https://raw.githubusercontent.com/{self.repo}/refs/tags/{self.version}/versions.yaml" + print(f"Fetching versions from {url}") + + try: + response = requests.get(url) + response.raise_for_status() # Raises an HTTPError if the HTTP request returned an unsuccessful status code + except requests.exceptions.RequestException as e: + raise Exit( + color_message(f"Failed to fetch the YAML file: {e}", Color.RED), + code=1, + ) from e + + yaml_content = response.content + + try: + data = yaml.safe_load(yaml_content) + except yaml.YAMLError as e: + raise Exit( + color_message(f"Failed to parse YAML content: {e}", Color.RED), + code=1, + ) from e + + version_modules = {} + + for _, details in data.get("module-sets", {}).items(): + version = details.get("version", "unknown") + for module in details.get("modules", []): + version_modules[version] = version_modules.get(version, []) + [module] + + return version_modules + + +class CollectorVersionUpdater: + def __init__(self): + self.core_collector = CollectorRepo(OTEL_COLLECTOR_CORE_REPO) + self.contrib_collector = CollectorRepo(OTEL_COLLECTOR_CONTRIB_REPO) + self.modules_version = {} + self.modules_version.update(self.core_collector.get_modules_version()) + self.modules_version.update(self.contrib_collector.get_modules_version()) + + def update_all_go_mod(self): + update_all_go_mod(self.modules_version) + + def update_ocb_yaml(self): + update_versions_in_ocb_yaml( + "./test/otel/testdata/builder-config.yaml", + self.modules_version, + ) + update_versions_in_ocb_yaml( MANIFEST_FILE, - collector_version, - "github.com/open-telemetry/opentelemetry-collector-contrib", + self.modules_version, ) - else: - print(f"Failed to fetch the latest release for {repo}") - print("Collector-contrib update complete.") + def update_files(self): + files = [ + MANIFEST_FILE, + "./comp/otelcol/collector/impl/collector.go", + "./tasks/collector.py", + "./.gitlab/integration_test/otel.yml", + ] + for root, _, files in os.walk("./tasks/unit_tests/testdata/collector"): + for file in files: + files.append(os.path.join(root, file)) + collector_version = self.core_collector.get_version()[1:] + for file in files: + update_file(file, self.core_collector.get_old_version(), collector_version) + + def update(self): + self.update_all_go_mod() + self.update_ocb_yaml() + self.update_files() + print("Update complete.") @task(post=[tidy]) def update(ctx): - update_core_collector() - update_collector_contrib() + updater = CollectorVersionUpdater() + updater.update() print("Update complete.") diff --git a/tasks/modules.py b/tasks/modules.py index 9c1d8dbf24d71..e26fe09b82b9f 100644 --- a/tasks/modules.py +++ b/tasks/modules.py @@ -62,11 +62,6 @@ def generate_dummy_package(ctx, folder): if mod.path != ".": ctx.run(f"go mod edit -require={mod.dependency_path('0.0.0')}") ctx.run(f"go mod edit -replace {mod.import_path}=../{mod.path}") - # todo: remove once datadogconnector fix is released. - if mod.import_path == "github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib/impl": - ctx.run( - "go mod edit -replace github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector=github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector@v0.103.0" - ) if ( mod.import_path == "github.com/DataDog/datadog-agent/comp/otelcol/configstore/impl" or mod.import_path == "github.com/DataDog/datadog-agent/comp/otelcol/configstore/def" diff --git a/tasks/unit_tests/testdata/collector/awscontainerinsightreceiver_manifest.yaml b/tasks/unit_tests/testdata/collector/awscontainerinsightreceiver_manifest.yaml index 7eb5a9a5735fe..874909021b9bd 100644 --- a/tasks/unit_tests/testdata/collector/awscontainerinsightreceiver_manifest.yaml +++ b/tasks/unit_tests/testdata/collector/awscontainerinsightreceiver_manifest.yaml @@ -3,10 +3,10 @@ dist: description: Manifest that contains awscontainerinsight receiver (should fail collector_tests.py) extensions: - - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.113.0 + - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 receivers: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscontainerinsightreceiver v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.113.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscontainerinsightreceiver v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 diff --git a/tasks/unit_tests/testdata/collector/datadogconnector_manifest.yaml b/tasks/unit_tests/testdata/collector/datadogconnector_manifest.yaml index 584fb4dc7f9e7..89aaab438f3b2 100644 --- a/tasks/unit_tests/testdata/collector/datadogconnector_manifest.yaml +++ b/tasks/unit_tests/testdata/collector/datadogconnector_manifest.yaml @@ -3,12 +3,12 @@ dist: description: Manifest that contains datadog connector (should get stripped and pass collector_tests.py) extensions: - - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.113.0 + - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 receivers: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.113.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 connectors: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.113.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.114.0 diff --git a/tasks/unit_tests/testdata/collector/datadogexporter_manifest.yaml b/tasks/unit_tests/testdata/collector/datadogexporter_manifest.yaml index 49ea10f7cf539..9b95b7df0d6a8 100644 --- a/tasks/unit_tests/testdata/collector/datadogexporter_manifest.yaml +++ b/tasks/unit_tests/testdata/collector/datadogexporter_manifest.yaml @@ -3,12 +3,12 @@ dist: description: Manifest that contains datadog exporter (should get stripped and pass collector_tests.py) extensions: - - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.113.0 + - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 exporters: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.113.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.114.0 receivers: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.113.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 diff --git a/tasks/unit_tests/testdata/collector/healthcheckextension_manifest.yaml b/tasks/unit_tests/testdata/collector/healthcheckextension_manifest.yaml index 8aa8584ca47b2..7555406e42bba 100644 --- a/tasks/unit_tests/testdata/collector/healthcheckextension_manifest.yaml +++ b/tasks/unit_tests/testdata/collector/healthcheckextension_manifest.yaml @@ -3,8 +3,8 @@ dist: description: Manifest that does not contain health check extension (should fail collector_tests.py) extensions: - - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.113.0 + - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 receivers: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.113.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 diff --git a/tasks/unit_tests/testdata/collector/mismatched_versions_manifest.yaml b/tasks/unit_tests/testdata/collector/mismatched_versions_manifest.yaml index 62c3266998ae0..b2e8423416320 100644 --- a/tasks/unit_tests/testdata/collector/mismatched_versions_manifest.yaml +++ b/tasks/unit_tests/testdata/collector/mismatched_versions_manifest.yaml @@ -1,12 +1,12 @@ --- dist: description: Manifest that has mismatched otelcol and component versions (should fail collector_tests.py) - otelcol_version: 0.113.0 + otelcol_version: 0.114.0 extensions: - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.99.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.113.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 receivers: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.113.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 diff --git a/tasks/unit_tests/testdata/collector/pprofextension_manifest.yaml b/tasks/unit_tests/testdata/collector/pprofextension_manifest.yaml index eab4b6d6902ee..d7dccca404219 100644 --- a/tasks/unit_tests/testdata/collector/pprofextension_manifest.yaml +++ b/tasks/unit_tests/testdata/collector/pprofextension_manifest.yaml @@ -3,8 +3,8 @@ dist: description: Manifest that does not contain pprof extension (should fail collector_tests.py) extensions: - - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.113.0 + - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 receivers: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.113.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 diff --git a/tasks/unit_tests/testdata/collector/prometheusreceiver_manifest.yaml b/tasks/unit_tests/testdata/collector/prometheusreceiver_manifest.yaml index 2d937e177996b..5b019879cc656 100644 --- a/tasks/unit_tests/testdata/collector/prometheusreceiver_manifest.yaml +++ b/tasks/unit_tests/testdata/collector/prometheusreceiver_manifest.yaml @@ -3,6 +3,6 @@ dist: description: Manifest that does not contain prometheus receiver (should fail collector_tests.py) extensions: - - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.113.0 + - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 diff --git a/tasks/unit_tests/testdata/collector/valid_datadog_manifest.yaml b/tasks/unit_tests/testdata/collector/valid_datadog_manifest.yaml index cf8f42c78f51a..4a3a56caf12e3 100644 --- a/tasks/unit_tests/testdata/collector/valid_datadog_manifest.yaml +++ b/tasks/unit_tests/testdata/collector/valid_datadog_manifest.yaml @@ -3,55 +3,55 @@ dist: module: github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib name: otelcol-contrib description: Valid (default) datadog converged Agent ocb manifest (should pass collector_tests.py) - version: 0.113.0 + version: 0.114.0 output_path: ./comp/otelcol/collector-contrib/impl - otelcol_version: 0.113.0 + otelcol_version: 0.114.0 extensions: - - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.113.0 + - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.114.0 exporters: - - gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.113.0 - - gomod: go.opentelemetry.io/collector/exporter/nopexporter v0.113.0 - - gomod: go.opentelemetry.io/collector/exporter/otlpexporter v0.113.0 - - gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.113.0 + - gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.114.0 + - gomod: go.opentelemetry.io/collector/exporter/nopexporter v0.114.0 + - gomod: go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0 + - gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.114.0 processors: - - gomod: go.opentelemetry.io/collector/processor/batchprocessor v0.113.0 - - gomod: go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.113.0 + - gomod: go.opentelemetry.io/collector/processor/batchprocessor v0.114.0 + - gomod: go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0 receivers: - - gomod: go.opentelemetry.io/collector/receiver/nopreceiver v0.113.0 - - gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.113.0 + - gomod: go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0 + - gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.114.0 connectors: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.113.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0 # When adding a replace, add a comment before it to document why it's needed and when it can be removed replaces: diff --git a/tasks/unit_tests/testdata/collector/valid_manifest_without_specified_version.yaml b/tasks/unit_tests/testdata/collector/valid_manifest_without_specified_version.yaml index 5586be9d9a182..baa4486191d7f 100644 --- a/tasks/unit_tests/testdata/collector/valid_manifest_without_specified_version.yaml +++ b/tasks/unit_tests/testdata/collector/valid_manifest_without_specified_version.yaml @@ -6,12 +6,12 @@ dist: output_path: ./comp/otelcol/collector-contrib/impl extensions: - - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.113.0 + - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 receivers: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.113.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 # When adding a replace, add a comment before it to document why it's needed and when it can be removed replaces: diff --git a/tasks/unit_tests/testdata/collector/zpagesextension_manifest.yaml b/tasks/unit_tests/testdata/collector/zpagesextension_manifest.yaml index e1071d3257538..9dd5800f47088 100644 --- a/tasks/unit_tests/testdata/collector/zpagesextension_manifest.yaml +++ b/tasks/unit_tests/testdata/collector/zpagesextension_manifest.yaml @@ -3,8 +3,8 @@ dist: description: manifest without zpages extension (should fail collector_tests.py) extensions: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.113.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 receivers: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.113.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 diff --git a/test/new-e2e/go.mod b/test/new-e2e/go.mod index 1f490aec794ba..cbe0427ab46c8 100644 --- a/test/new-e2e/go.mod +++ b/test/new-e2e/go.mod @@ -253,10 +253,10 @@ require ( github.com/zclconf/go-cty v1.14.4 // indirect github.com/zorkian/go-datadog-api v2.30.0+incompatible // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect - go.opentelemetry.io/otel v1.31.0 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.28.0 // indirect - go.opentelemetry.io/otel/metric v1.31.0 // indirect - go.opentelemetry.io/otel/trace v1.31.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f @@ -267,7 +267,7 @@ require ( golang.org/x/text v0.20.0 golang.org/x/time v0.8.0 // indirect golang.org/x/tools v0.27.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect google.golang.org/protobuf v1.35.1 // indirect gopkg.in/inf.v0 v0.9.1 // indirect @@ -304,10 +304,10 @@ require ( github.com/pulumi/pulumi-azure-native-sdk/v2 v2.67.0 // indirect github.com/pulumi/pulumi-gcp/sdk/v6 v6.67.1 // indirect github.com/pulumi/pulumi-gcp/sdk/v7 v7.38.0 // indirect - go.opentelemetry.io/collector/component v0.113.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.113.0 // indirect - go.opentelemetry.io/collector/extension v0.113.0 // indirect - go.opentelemetry.io/collector/pdata v1.19.0 // indirect + go.opentelemetry.io/collector/component v0.114.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect + go.opentelemetry.io/collector/extension v0.114.0 // indirect + go.opentelemetry.io/collector/pdata v1.20.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect ) diff --git a/test/new-e2e/go.sum b/test/new-e2e/go.sum index 5ac39b6fdf4bd..461ab8b6e6b39 100644 --- a/test/new-e2e/go.sum +++ b/test/new-e2e/go.sum @@ -511,28 +511,28 @@ github.com/zclconf/go-cty v1.14.4 h1:uXXczd9QDGsgu0i/QFR/hzI5NYCHLf6NQw/atrbnhq8 github.com/zclconf/go-cty v1.14.4/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= github.com/zorkian/go-datadog-api v2.30.0+incompatible h1:R4ryGocppDqZZbnNc5EDR8xGWF/z/MxzWnqTUijDQes= github.com/zorkian/go-datadog-api v2.30.0+incompatible/go.mod h1:PkXwHX9CUQa/FpB9ZwAD45N1uhCW4MT/Wj7m36PbKss= -go.opentelemetry.io/collector/component v0.113.0 h1:/nx+RvZgxUEXP+YcTj69rEtuSEGkfaCyp/ad5zQGLjU= -go.opentelemetry.io/collector/component v0.113.0/go.mod h1:2T779hIGHU9i7xbXbV3q1/JnRw2FyzUYXW2vq47A6EU= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0 h1:hweTRrVddnUeA3k7HzRY4oUR9lRdMa7of3mHNUS5YyA= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/extension v0.113.0 h1:Vp/YSL8ZCkJQrP1lf2Bm5yaTvcp6ROO3AnfuSL3GEXM= -go.opentelemetry.io/collector/extension v0.113.0/go.mod h1:Pwp0TNqdHeER4V1I6H6oCvrto/riiOAqs3737BWCnjw= -go.opentelemetry.io/collector/pdata v1.19.0 h1:jmnU5R8TOCbwRr4B8sjdRxM7L5WnEKlQWX1dtLYxIbE= -go.opentelemetry.io/collector/pdata v1.19.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= +go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= +go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= +go.opentelemetry.io/collector/extension v0.114.0 h1:9Qb92y8hD2WDC5aMDoj4JNQN+/5BQYJWPUPzLXX+iGw= +go.opentelemetry.io/collector/extension v0.114.0/go.mod h1:Yk2/1ptVgfTr12t+22v93nYJpioP14pURv2YercSzU0= +go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= +go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= -go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY= -go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0 h1:3Q/xZUyC1BBkualc9ROb4G8qkH90LXEIICcs5zv1OYY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0/go.mod h1:s75jGIWA9OfCMzF0xr+ZgfrB5FEbbV7UuYo32ahUiFI= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.28.0 h1:j9+03ymgYhPKmeXGk5Zu+cIZOlVzd9Zv7QIiyItjFBU= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.28.0/go.mod h1:Y5+XiUG4Emn1hTfciPzGPJaSI+RpDts6BnCIir0SLqk= -go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE= -go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY= -go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk= -go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0= -go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys= -go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= go.starlark.net v0.0.0-20230525235612-a134d8f9ddca h1:VdD38733bfYv5tUZwEIskMM93VanwNIi5bIKnDrJdEY= @@ -685,8 +685,8 @@ google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEY google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 h1:ImUcDPHjTrAqNhlOkSocDLfG9rrNHH7w7uoKWPaWZ8s= google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 h1:wKguEg1hsxI2/L3hUYrpo1RVi48K+uTyzKqprwLXsb8= google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142/go.mod h1:d6be+8HhtEtucleCbxpPW9PA9XwISACu8nvpPqF0BVo= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 h1:QCqS/PdaHTSWGvupk2F/ehwHtGc0/GYkT+3GAcR1CCc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= diff --git a/test/otel/go.mod b/test/otel/go.mod index ea718cbe70eed..d19f6753c7930 100644 --- a/test/otel/go.mod +++ b/test/otel/go.mod @@ -106,13 +106,21 @@ require ( github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 github.com/DataDog/datadog-agent/pkg/proto v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/trace v0.56.0-rc.3 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.113.0 + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 +) + +require ( + github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0 // indirect + github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 // indirect + github.com/hashicorp/go-version v1.7.0 // indirect + github.com/patrickmn/go-cache v2.1.0+incompatible // indirect + go.opentelemetry.io/collector/featuregate v1.20.0 // indirect ) require ( github.com/pierrec/lz4/v4 v4.1.21 // indirect - go.opentelemetry.io/collector/consumer/consumererror v0.113.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.113.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror v0.114.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.114.0 // indirect ) require ( @@ -213,7 +221,7 @@ require ( github.com/klauspost/compress v1.17.11 // indirect github.com/knadh/koanf/maps v0.1.1 // indirect github.com/knadh/koanf/providers/confmap v0.1.0 // indirect - github.com/knadh/koanf/v2 v2.1.1 // indirect + github.com/knadh/koanf/v2 v2.1.2 // indirect github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect @@ -250,33 +258,33 @@ require ( github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/collector/client v1.19.0 // indirect - go.opentelemetry.io/collector/component v0.113.0 // indirect - go.opentelemetry.io/collector/config/configauth v0.113.0 // indirect - go.opentelemetry.io/collector/config/configcompression v1.19.0 // indirect - go.opentelemetry.io/collector/config/confighttp v0.113.0 // indirect - go.opentelemetry.io/collector/config/confignet v1.19.0 // indirect - go.opentelemetry.io/collector/config/configopaque v1.19.0 // indirect - go.opentelemetry.io/collector/config/configretry v1.19.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.113.0 // indirect - go.opentelemetry.io/collector/config/configtls v1.19.0 // indirect - go.opentelemetry.io/collector/config/internal v0.113.0 // indirect - go.opentelemetry.io/collector/confmap v1.19.0 // indirect - go.opentelemetry.io/collector/consumer v0.113.0 // indirect - go.opentelemetry.io/collector/exporter v0.113.0 // indirect - go.opentelemetry.io/collector/extension v0.113.0 // indirect - go.opentelemetry.io/collector/extension/auth v0.113.0 // indirect - go.opentelemetry.io/collector/extension/experimental/storage v0.113.0 // indirect - go.opentelemetry.io/collector/pdata v1.19.0 // indirect - go.opentelemetry.io/collector/pipeline v0.113.0 // indirect - go.opentelemetry.io/collector/semconv v0.113.0 // indirect + go.opentelemetry.io/collector/client v1.20.0 // indirect + go.opentelemetry.io/collector/component v0.114.0 // indirect + go.opentelemetry.io/collector/config/configauth v0.114.0 // indirect + go.opentelemetry.io/collector/config/configcompression v1.20.0 // indirect + go.opentelemetry.io/collector/config/confighttp v0.114.0 // indirect + go.opentelemetry.io/collector/config/confignet v1.20.0 // indirect + go.opentelemetry.io/collector/config/configopaque v1.20.0 // indirect + go.opentelemetry.io/collector/config/configretry v1.20.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect + go.opentelemetry.io/collector/config/configtls v1.20.0 // indirect + go.opentelemetry.io/collector/config/internal v0.114.0 // indirect + go.opentelemetry.io/collector/confmap v1.20.0 // indirect + go.opentelemetry.io/collector/consumer v0.114.0 // indirect + go.opentelemetry.io/collector/exporter v0.114.0 // indirect + go.opentelemetry.io/collector/extension v0.114.0 // indirect + go.opentelemetry.io/collector/extension/auth v0.114.0 // indirect + go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 // indirect + go.opentelemetry.io/collector/pdata v1.20.0 // indirect + go.opentelemetry.io/collector/pipeline v0.114.0 // indirect + go.opentelemetry.io/collector/semconv v0.114.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect - go.opentelemetry.io/otel v1.31.0 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect go.opentelemetry.io/otel/exporters/prometheus v0.49.0 // indirect - go.opentelemetry.io/otel/metric v1.31.0 // indirect - go.opentelemetry.io/otel/sdk v1.31.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.31.0 // indirect - go.opentelemetry.io/otel/trace v1.31.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/fx v1.22.2 // indirect @@ -289,7 +297,7 @@ require ( golang.org/x/term v0.26.0 // indirect golang.org/x/text v0.20.0 // indirect golang.org/x/time v0.8.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect google.golang.org/protobuf v1.35.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect diff --git a/test/otel/go.sum b/test/otel/go.sum index 9fd47eec1aef7..9c3558135ab44 100644 --- a/test/otel/go.sum +++ b/test/otel/go.sum @@ -14,10 +14,16 @@ github.com/DataDog/go-tuf v1.1.0-0.5.2 h1:4CagiIekonLSfL8GMHRHcHudo1fQnxELS9g4ti github.com/DataDog/go-tuf v1.1.0-0.5.2/go.mod h1:zBcq6f654iVqmkk8n2Cx81E1JnNTMOAx1UEO/wZR+P0= github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0 h1:U+p1i7+upWb4qOIOOvjS/92iMUGlSzEC1tRxVo0Lg8Y= github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0/go.mod h1:dOjp1lg4jwYyIbpnqW+DoOV8qD+70C+lgpINFvUqasQ= +github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.21.0 h1:VS4NTqwczwezMVvI6A7xYR3ugPmMUJ4FcdFrsdnZI2I= +github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.21.0/go.mod h1:66XlN7QpQKqIvw8e2UbCXV5X8wGnEw851nT9BjJ75dY= github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 h1:hgbTFS6SkqbzOiWSfP58dZ/Jpjlmv6dpD4+V4LDHm2Q= github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0/go.mod h1:dvIWN9pA2zWNTw5rhDWZgzZnhcfpH++d+8d1SWW6xkY= github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0 h1:XD9Kd+baO66+tfbdanOFSMGEfwWfnrn/IxG/Dc5bv5I= github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0/go.mod h1:9ByLz9jISc176DzjIdaRfRKwaitqF8ie6RTvfP8Aufo= +github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0 h1:8nW8jfcCIWzxWrpI31C0QYoOjTaUGp6USCwiRbP5Fp4= +github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0/go.mod h1:wuatEozcLYinJ0WYf0MlVTFtTzEmf+qyJet0H9foVAs= +github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 h1:/Dp1WBvekdusS9Tw9pLE7RG04eluNktQ29arLS4SpGM= +github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0/go.mod h1:asNuwNy1O2HbadkcZVuqmFGonfEzXS/SBvOo8V1MJvQ= github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I= github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= @@ -154,6 +160,8 @@ github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= +github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= +github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= @@ -182,8 +190,8 @@ github.com/knadh/koanf/maps v0.1.1 h1:G5TjmUh2D7G2YWf5SQQqSiHRJEjaicvU0KpypqB3NI github.com/knadh/koanf/maps v0.1.1/go.mod h1:npD/QZY3V6ghQDdcQzl1W4ICNVTkohC8E73eI2xW4yI= github.com/knadh/koanf/providers/confmap v0.1.0 h1:gOkxhHkemwG4LezxxN8DMOFopOPghxRVp7JbIvdvqzU= github.com/knadh/koanf/providers/confmap v0.1.0/go.mod h1:2uLhxQzJnyHKfxG927awZC7+fyHFdQkd697K4MdLnIU= -github.com/knadh/koanf/v2 v2.1.1 h1:/R8eXqasSTsmDCsAyYj+81Wteg8AqrV9CP6gvsTsOmM= -github.com/knadh/koanf/v2 v2.1.1/go.mod h1:4mnTRbZCK+ALuBXHZMjDfG9y714L7TykVnZkXbMU3Es= +github.com/knadh/koanf/v2 v2.1.2 h1:I2rtLRqXRy1p01m/utEtpZSSA6dcJbgGVuE27kW2PzQ= +github.com/knadh/koanf/v2 v2.1.2/go.mod h1:Gphfaen0q1Fc1HTgJgSTC4oRX9R2R5ErYMZJy8fLJBo= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -193,6 +201,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/lightstep/go-expohisto v1.0.0 h1:UPtTS1rGdtehbbAF7o/dhkWLTDI73UifG8LbfQI7cA4= +github.com/lightstep/go-expohisto v1.0.0/go.mod h1:xDXD0++Mu2FOaItXtdDfksfgxfV0z1TMPa+e/EUd0cs= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= @@ -222,17 +232,23 @@ github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9 github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.113.0 h1:sfPQ3RPyimzEzB2aQtUaEu7ElwDmlze+q0moWV9YpkI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.113.0/go.mod h1:QMenHMTJ5qrpghfPoMMpS0QwW6pQrXOqHn7QcNgn+NU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.113.0 h1:Qy0MqQQKmW9wrfduM794WKg4qjTobIdj5HDHW5FZ/P8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.113.0/go.mod h1:X25Nhlw6xhuNSd/C0FeEwmD4PGmcXDl7pa2jR0UREkU= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0 h1:zDScLkNf/llyiH1cjpVv5PhJAT5AcHIXCB35zW5jsbM= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0/go.mod h1:S+GR7FZJYtFBnbjgD737QImuvm8d4+PBccpI0Xrda4E= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 h1:Wq1iTmd0K1SSOIA43Wy2uAU6SB4f9ogyN3ZmvDgTURg= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0/go.mod h1:VCj9H0QxRBWSgbl1pUo8p0NrqnmcxpPo0QjKLFtWkO0= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.94.0 h1:nTayRLarCGkB9ld7p8jWJe/9wvf8gNDaS5fRjybkEpg= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.94.0/go.mod h1:xoBvqu56hbky3KZafo68nxtV2+J81+pvo1ttNirakcU= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.94.0 h1:DSGhzGAaC767esMB0Ulr+9xWe6SW0LFUYMxLrLOAkjM= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.94.0/go.mod h1:Nv4nK3E7sUpDbNv0zI0zY15g2xR4jMg+n8taV8dsMeE= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 h1:mtSN/07RGQPi1/zHVSZg4G0qRtOoJpPew5jsQWv9uS0= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0/go.mod h1:C9Zgh/N3j4NR2D+1FGAA1YizhFW9OS51DwLUFJTdXN4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 h1:I4ZYVRYW3Cjb65sPENZ9kHam/JUMXNEp2n/knJ0C0Vc= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0/go.mod h1:4BhyIaOn2LS48WS+ZNix4TpP0+goq9gDEtGzth5Cr3M= github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk= github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/outcaste-io/ristretto v0.2.3 h1:AK4zt/fJ76kjlYObOeNwh4T3asEuaCmp26pOvUOL9w0= github.com/outcaste-io/ristretto v0.2.3/go.mod h1:W8HywhmtlopSB1jeMg3JtdIhf+DYkLAr0VN/s4+MHac= +github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= +github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= @@ -353,88 +369,94 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/collector/client v1.19.0 h1:TUal8WV1agTrZStgE7BJ8ZC0IHLGtrfgO9ogU9t1mv8= -go.opentelemetry.io/collector/client v1.19.0/go.mod h1:jgiXMEM6l8L2QEyf2I/M47Zd8+G7e4z+6H8q5SkHOlQ= -go.opentelemetry.io/collector/component v0.113.0 h1:/nx+RvZgxUEXP+YcTj69rEtuSEGkfaCyp/ad5zQGLjU= -go.opentelemetry.io/collector/component v0.113.0/go.mod h1:2T779hIGHU9i7xbXbV3q1/JnRw2FyzUYXW2vq47A6EU= -go.opentelemetry.io/collector/component/componentstatus v0.113.0 h1:iNlUi+vDo7OqQwg4UOjfqqY3Xram4SkdcSZAyxt6QfE= -go.opentelemetry.io/collector/component/componentstatus v0.113.0/go.mod h1:NF/hVnP0kcsEqV9x14yMxN9GoehuOaVgMpO+s2KE+28= -go.opentelemetry.io/collector/config/configauth v0.113.0 h1:CBz43fGpN41MwLdwe3mw/XVSIDvGRMT8aaaPuqKukTU= -go.opentelemetry.io/collector/config/configauth v0.113.0/go.mod h1:Q8SlxrIvL3FJO51hXa4n9ARvox04lK8mmpjf4b3UNAU= -go.opentelemetry.io/collector/config/configcompression v1.19.0 h1:bTSjTLhnPXX1NSFM6GzguEM/NBe8QUPsXHc9kMOAJzE= -go.opentelemetry.io/collector/config/configcompression v1.19.0/go.mod h1:pnxkFCLUZLKWzYJvfSwZnPrnm0twX14CYj2ADth5xiU= -go.opentelemetry.io/collector/config/confighttp v0.113.0 h1:a6iO0y1ZM5CPDvwbryzU+GpqAtAQ3eSfNseoAUogw7c= -go.opentelemetry.io/collector/config/confighttp v0.113.0/go.mod h1:JZ9EwoiWMIrXt5v+d/q54TeUhPdAoLDimSEqTtddW6E= -go.opentelemetry.io/collector/config/confignet v1.19.0 h1:gEDTd8zLx4pPpG5///XPRpbYUpvKsuQzDdM5IEULY9w= -go.opentelemetry.io/collector/config/confignet v1.19.0/go.mod h1:o3v4joAEjvLwntqexg5ixMqRrU1+Vst+jWuCUaBNgOg= -go.opentelemetry.io/collector/config/configopaque v1.19.0 h1:7uvntQeAAtqCaeiS2dDGrT1wLPhWvDlEsD3SliA/koQ= -go.opentelemetry.io/collector/config/configopaque v1.19.0/go.mod h1:6zlLIyOoRpJJ+0bEKrlZOZon3rOp5Jrz9fMdR4twOS4= -go.opentelemetry.io/collector/config/configretry v1.19.0 h1:DEg8PXpo4ahMYgMzZZUU2cPcDF4vqowZlvimJ/t9InY= -go.opentelemetry.io/collector/config/configretry v1.19.0/go.mod h1:KvQF5cfphq1rQm1dKR4eLDNQYw6iI2fY72NMZVa+0N0= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0 h1:hweTRrVddnUeA3k7HzRY4oUR9lRdMa7of3mHNUS5YyA= -go.opentelemetry.io/collector/config/configtelemetry v0.113.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/config/configtls v1.19.0 h1:GQ/cF1hgNqHVBq2oSSrOFXxVCyMDyd5kq4R/RMEbL98= -go.opentelemetry.io/collector/config/configtls v1.19.0/go.mod h1:1hyqnYB3JqEUlk1ME/s9HYz4oCRcxQCRxsJitFFT/cA= -go.opentelemetry.io/collector/config/internal v0.113.0 h1:9RAzH8v7ItFT1npHpvP0SvUzBHcZDliCGRo9Spp6v7c= -go.opentelemetry.io/collector/config/internal v0.113.0/go.mod h1:yC7E4h1Uj0SubxcFImh6OvBHFTjMh99+A5PuyIgDWqc= -go.opentelemetry.io/collector/confmap v1.19.0 h1:TQ0lZpAKqgsE0EKk+u4JA+uBbPYeFRmWP3GH43w40CY= -go.opentelemetry.io/collector/confmap v1.19.0/go.mod h1:GgNu1ElPGmLn9govqIfjaopvdspw4PJ9KeDtWC4E2Q4= -go.opentelemetry.io/collector/consumer v0.113.0 h1:KJSiK5vSIY9dgPxwKfQ3gOgKtQsqc+7IB7mGhUAL5c8= -go.opentelemetry.io/collector/consumer v0.113.0/go.mod h1:zHMlXYFaJlZoLCBR6UwWoyXZ/adcO1u2ydqUal3VmYU= -go.opentelemetry.io/collector/consumer/consumererror v0.113.0 h1:Hd2N7n9RKbnKRaVrdw6fPBoQko5zZIgCxwVxkL6SAIE= -go.opentelemetry.io/collector/consumer/consumererror v0.113.0/go.mod h1:o0MAGFdzcr7LFTUQ6iivPPhbVmn2ZVIYm3FPXk2+JUo= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0 h1:RftAcQUY5UOfbEK4s16jnORqTx16y9+PxA1lQwt98cQ= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0/go.mod h1:ZuHrQ4pWguh6dw0DgTfcUtdY/T+cnOJJNP6LMbm5Y5A= -go.opentelemetry.io/collector/consumer/consumertest v0.113.0 h1:ua2AjNx3DUA8qElXNkggB4w3VDL/rBKBvryOQkhumH8= -go.opentelemetry.io/collector/consumer/consumertest v0.113.0/go.mod h1:vK8o4ZTZSiG3rVyqxZcCNmT/cvEfx34ig7V65L9+6Rg= -go.opentelemetry.io/collector/exporter v0.113.0 h1:lDZJ6xfuhyLsT/7lqLhIN/ftA6G+9fuYFtubPFvNDxo= -go.opentelemetry.io/collector/exporter v0.113.0/go.mod h1:0W4NBf5NjWYxR8oJodmOybgN4O0MLazdJwwHevirvXg= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0 h1:8bsk3wYYNr+WAM5nZkFjiLYSTH9MsY2tm7nUpMWt3qc= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0/go.mod h1:/HFWF846XePYL/qKDtcEAFgkiGSkLUTaC59A5F48axM= -go.opentelemetry.io/collector/exporter/exportertest v0.113.0 h1:U6cRxjJS7td8iNriUI2QfEdH+Yj60ytyvpmnmKTw0+8= -go.opentelemetry.io/collector/exporter/exportertest v0.113.0/go.mod h1:SRz5jGyAjtNiWwJ93B1+Ndk1p3oFtQsyLw52UGeyRwc= -go.opentelemetry.io/collector/extension v0.113.0 h1:Vp/YSL8ZCkJQrP1lf2Bm5yaTvcp6ROO3AnfuSL3GEXM= -go.opentelemetry.io/collector/extension v0.113.0/go.mod h1:Pwp0TNqdHeER4V1I6H6oCvrto/riiOAqs3737BWCnjw= -go.opentelemetry.io/collector/extension/auth v0.113.0 h1:4ggRy1vepOabUiCWfU+6M9P/ftXojMUNAvBpeLihYj8= -go.opentelemetry.io/collector/extension/auth v0.113.0/go.mod h1:VbvAm2YZAqePkWgwn0m0vBaq3aC49CxPVwHmrJ24aeQ= -go.opentelemetry.io/collector/extension/experimental/storage v0.113.0 h1:Qq4IaB6bMUrf/bWoPZ5ESWywCt+vDi8I/ChYejIEPcc= -go.opentelemetry.io/collector/extension/experimental/storage v0.113.0/go.mod h1:BRmo+A7f06u/rhyLauU/Vogk+QRN0y1j2VVVgMGWrfQ= -go.opentelemetry.io/collector/pdata v1.19.0 h1:jmnU5R8TOCbwRr4B8sjdRxM7L5WnEKlQWX1dtLYxIbE= -go.opentelemetry.io/collector/pdata v1.19.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/pdata/pprofile v0.113.0 h1:VRf4p0VhfuaR+Epy/nMIlu/9t39WU9CUgHVUvpuGxfU= -go.opentelemetry.io/collector/pdata/pprofile v0.113.0/go.mod h1:5aDejksdXh5PdJN/OhpzATGT3kbNL0RMmw2Q0Q6E/o0= -go.opentelemetry.io/collector/pdata/testdata v0.113.0 h1:vRfn85jicO2F4eOTgsWtzmU/K3E/uZUtM1HEefvvJD8= -go.opentelemetry.io/collector/pdata/testdata v0.113.0/go.mod h1:sR+6eR+YEJhYZu9StbqzeWcCmHpfBAgX/qjP82HY9Gw= -go.opentelemetry.io/collector/pipeline v0.113.0 h1:vSRzRe3717jV0btCNPhVkhg2lu0uFxcm2VO+vhad/eE= -go.opentelemetry.io/collector/pipeline v0.113.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= -go.opentelemetry.io/collector/processor v0.113.0 h1:BQI6MsKtiCG9HT/nmiRXTKP6SZFrjFKVfM6pTQfbc0k= -go.opentelemetry.io/collector/processor v0.113.0/go.mod h1:oX91zMI8ZkoaYSUfUYflHiMiiBJPKtODNBUCrETLLd8= -go.opentelemetry.io/collector/processor/processorprofiles v0.113.0 h1:cczN6whdrCWww3T0FBV3U7lsVKQmkWDX05M+9lANHgk= -go.opentelemetry.io/collector/processor/processorprofiles v0.113.0/go.mod h1:4Dmx5qsvujgJ+MC+KqWI7UDVM2liXa3sH/9XnGiL9aE= -go.opentelemetry.io/collector/processor/processortest v0.113.0 h1:jGoDJ+tDCzuDcAWZeshQtnK/DQAvMKd4wZAIDgAM5aA= -go.opentelemetry.io/collector/processor/processortest v0.113.0/go.mod h1:tNg04r5KlpVx774jSC8U/oYst1eb7WIiz+0AjXKJ0Uw= -go.opentelemetry.io/collector/receiver v0.113.0 h1:vraAbkPy8Pz9x5X39gV+j9t6x23PNsY2aJ6gQMugRbQ= -go.opentelemetry.io/collector/receiver v0.113.0/go.mod h1:IUa8/lNw8Qh4L5Q3jOeRWKW0ebQPoNcfhytxN5Puq2A= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0 h1:uVxuzjGe2t1sbwahSBowVHYnGzpzn8brmfn8z1UHvQg= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0/go.mod h1:khKDkzYJR2x2OPUqGSmoSncdINT9lUE5IThiHPDbqZk= -go.opentelemetry.io/collector/receiver/receivertest v0.113.0 h1:0vOvz3S4Q/KwcNCS9C7zPo0uxD6RSWktG88yGdxfV6g= -go.opentelemetry.io/collector/receiver/receivertest v0.113.0/go.mod h1:sRq5ctm5UE/0Ar562wnCVQ1zbAie/D127D1WbtbEuEc= -go.opentelemetry.io/collector/semconv v0.113.0 h1:twenSI7M7MJMJKW8D6a/GXxPZTPbama/weywBtV2iFw= -go.opentelemetry.io/collector/semconv v0.113.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= +go.opentelemetry.io/collector/client v1.20.0 h1:o60wPcj5nLtaRenF+1E5p4QXFS3TDL6vHlw+GOon3rg= +go.opentelemetry.io/collector/client v1.20.0/go.mod h1:6aqkszco9FaLWCxyJEVam6PP7cUa8mPRIXeS5eZGj0U= +go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= +go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= +go.opentelemetry.io/collector/component/componentstatus v0.114.0 h1:y9my/xink8KB5lK8zFAjgB2+pEh0QYy5TM972fxZY9w= +go.opentelemetry.io/collector/component/componentstatus v0.114.0/go.mod h1:RIoeCYZpPaae7QLE/1RacqzhHuXBmzRAk9H/EwYtIIs= +go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= +go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= +go.opentelemetry.io/collector/config/configauth v0.114.0 h1:R2sJ6xpsLYGH0yU0vCxotzBYDKR/Hrjv0A7y9lwMyiw= +go.opentelemetry.io/collector/config/configauth v0.114.0/go.mod h1:3Z24KcCpG+WYCeQYfs/cNp5cP2BDeOqLCtOEgs/rPqM= +go.opentelemetry.io/collector/config/configcompression v1.20.0 h1:H/mvz7J/5z+O74YsO0t2tk+REnO2tzLM8TgIQ4AZ5w0= +go.opentelemetry.io/collector/config/configcompression v1.20.0/go.mod h1:pnxkFCLUZLKWzYJvfSwZnPrnm0twX14CYj2ADth5xiU= +go.opentelemetry.io/collector/config/confighttp v0.114.0 h1:DjGsBvVm+mGK3IpJBaXianWhwcxEC1fF33cpuC1LY/I= +go.opentelemetry.io/collector/config/confighttp v0.114.0/go.mod h1:nrlNLxOZ+4JQaV9j0TiqQV7LOHhrRivPrT8nQRHED3Q= +go.opentelemetry.io/collector/config/confignet v1.20.0 h1:LrM6AuiY8N/woTP4SWhL2V0562JXwJs9MRNFZJFLtRY= +go.opentelemetry.io/collector/config/confignet v1.20.0/go.mod h1:o3v4joAEjvLwntqexg5ixMqRrU1+Vst+jWuCUaBNgOg= +go.opentelemetry.io/collector/config/configopaque v1.20.0 h1:2I48zKiyyyYqjm7y0B9OLp24ku2ZSX3nCHG0r5FdWOQ= +go.opentelemetry.io/collector/config/configopaque v1.20.0/go.mod h1:6zlLIyOoRpJJ+0bEKrlZOZon3rOp5Jrz9fMdR4twOS4= +go.opentelemetry.io/collector/config/configretry v1.20.0 h1:z679mrMlW2a6tOOYPGdrS/QfALxdzWLQUOpH8Uu+D5Y= +go.opentelemetry.io/collector/config/configretry v1.20.0/go.mod h1:KvQF5cfphq1rQm1dKR4eLDNQYw6iI2fY72NMZVa+0N0= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= +go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= +go.opentelemetry.io/collector/config/configtls v1.20.0 h1:hNlJdwfyY5Qe54RLJ41lfLqKTn9ypkR7sk7JNCcSe2U= +go.opentelemetry.io/collector/config/configtls v1.20.0/go.mod h1:sav/txSHguadTYlSSK+BJO2ljJeYEtRoBahgzWAguYg= +go.opentelemetry.io/collector/config/internal v0.114.0 h1:uWSDWTJb8T6xRjKD9/XmEARakXnxgYVYKUeId78hErc= +go.opentelemetry.io/collector/config/internal v0.114.0/go.mod h1:yC7E4h1Uj0SubxcFImh6OvBHFTjMh99+A5PuyIgDWqc= +go.opentelemetry.io/collector/confmap v1.20.0 h1:ARfOwmkKxFOud1njl03yAHQ30+uenlzqCO6LBYamDTE= +go.opentelemetry.io/collector/confmap v1.20.0/go.mod h1:DMpd9Ay/ffls3JoQBQ73vWeRsz1rNuLbwjo6WtjSQus= +go.opentelemetry.io/collector/consumer v0.114.0 h1:1zVaHvfIZowGwZRitRBRo3i+RP2StlU+GClYiofSw0Q= +go.opentelemetry.io/collector/consumer v0.114.0/go.mod h1:d+Mrzt9hsH1ub3zmwSlnQVPLeTYir4Mgo7CrWfnncN4= +go.opentelemetry.io/collector/consumer/consumererror v0.114.0 h1:r2YiELfWerb40FHD23V04gNjIkLUcjEKGxI4Vtm2iO4= +go.opentelemetry.io/collector/consumer/consumererror v0.114.0/go.mod h1:MzIrLQ5jptO2egypolhlAbZsWZr29WC4FhSxQjnxcvg= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 h1:5pXYy3E6UK5Huu3aQbsYL8B6E6MyWx4fvXXDn+oXZaA= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0/go.mod h1:PMq3f54KcJQO4v1tue0QxQScu7REFVADlXxXSAYMiN0= +go.opentelemetry.io/collector/consumer/consumertest v0.114.0 h1:isaTwJK5DOy8Bs7GuLq23ejfgj8gLIo5dOUvkRnLF4g= +go.opentelemetry.io/collector/consumer/consumertest v0.114.0/go.mod h1:GNeLPkfRPdh06n/Rv1UKa/cAtCKjN0a7ADyHjIj4HFE= +go.opentelemetry.io/collector/exporter v0.114.0 h1:5/0BBpXuCJQSQ5SQf31g7j6T4XEKkyx9mZMcA2rS5e8= +go.opentelemetry.io/collector/exporter v0.114.0/go.mod h1:atpd0wWXgh5LAZ0REU/d/Ti/q50HDfnlBIjMjJQlKFg= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 h1:/wmWOSBHcvtz3Pbv7+rWCqPPQuNvYaoidKKaOqZsLKs= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0/go.mod h1:epRYTkyJZTSQZBJflMGHUyUo2EdLPhsaZEyo5Qm848A= +go.opentelemetry.io/collector/exporter/exportertest v0.114.0 h1:vo0idBJT+QACSM1KpjVLm9VeiXVwO7y4UnMpGxN6EyM= +go.opentelemetry.io/collector/exporter/exportertest v0.114.0/go.mod h1:420ssFrhaphneybstbMeSIiqSRoaBARPgO71O17foaM= +go.opentelemetry.io/collector/extension v0.114.0 h1:9Qb92y8hD2WDC5aMDoj4JNQN+/5BQYJWPUPzLXX+iGw= +go.opentelemetry.io/collector/extension v0.114.0/go.mod h1:Yk2/1ptVgfTr12t+22v93nYJpioP14pURv2YercSzU0= +go.opentelemetry.io/collector/extension/auth v0.114.0 h1:1K2qh4yvG8kKR/sTAobI/rw5VxzPZoKcl3FmC195vvo= +go.opentelemetry.io/collector/extension/auth v0.114.0/go.mod h1:IjtsG+jUVJB0utKF8dAK8pLutRun3aEgASshImzsw/U= +go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 h1:hLyX9UvmY0t6iBnk3CqvyNck2U0QjPACekj7pDRx2hA= +go.opentelemetry.io/collector/extension/experimental/storage v0.114.0/go.mod h1:WqYRQVJjJLE1rm+y/ks1wPdPRGWePEvE1VO07xm2J2k= +go.opentelemetry.io/collector/extension/extensiontest v0.114.0 h1:ibXDms1qrswlvlR6b3d2BeyI8sXUXoFV11yOi9Sop8o= +go.opentelemetry.io/collector/extension/extensiontest v0.114.0/go.mod h1:/bOYmqu5yTDfI1bJZUxFqm8ZtmcodpquebiSxiQxtDY= +go.opentelemetry.io/collector/featuregate v1.20.0 h1:Mi7nMy/q52eruI+6jWnMKUOeM55XvwoPnGcdB1++O8c= +go.opentelemetry.io/collector/featuregate v1.20.0/go.mod h1:47xrISO71vJ83LSMm8+yIDsUbKktUp48Ovt7RR6VbRs= +go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= +go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= +go.opentelemetry.io/collector/pdata/pprofile v0.114.0 h1:pUNfTzsI/JUTiE+DScDM4lsrPoxnVNLI2fbTxR/oapo= +go.opentelemetry.io/collector/pdata/pprofile v0.114.0/go.mod h1:4aNcj6WM1n1uXyFSXlhVs4ibrERgNYsTbzcYI2zGhxA= +go.opentelemetry.io/collector/pdata/testdata v0.114.0 h1:+AzszWSL1i4K6meQ8rU0JDDW55SYCXa6FVqfDixhhTo= +go.opentelemetry.io/collector/pdata/testdata v0.114.0/go.mod h1:bv8XFdCTZxG2MQB5l9dKxSxf5zBrcodwO6JOy1+AxXM= +go.opentelemetry.io/collector/pipeline v0.114.0 h1:v3YOhc5z0tD6QbO5n/pnftpIeroihM2ks9Z2yKPCcwY= +go.opentelemetry.io/collector/pipeline v0.114.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= +go.opentelemetry.io/collector/processor v0.114.0 h1:6bqQgLL7BtKrNv4YkEOGjZfkcfZv/ciJSQx1epGG9Zk= +go.opentelemetry.io/collector/processor v0.114.0/go.mod h1:DV/wa+nAmSHIDeD9NblPwkY9PbgtDQAZJ+PE5biZwPc= +go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 h1:+P/1nLouEXTnN8DVQl+qWwO4BTkQyNPG9t/FrpUqrSI= +go.opentelemetry.io/collector/processor/processorprofiles v0.114.0/go.mod h1:3fuHeNIpINwx3bqFMprmDJyr6y5tWoWbJH599kltO5Y= +go.opentelemetry.io/collector/processor/processortest v0.114.0 h1:3FTaVXAp0LoVmUJn1ewBFckAby7AHa6/Kcdj0xuW14c= +go.opentelemetry.io/collector/processor/processortest v0.114.0/go.mod h1:OgsdOs1Fv5ZGTTJPF5nNIUJh2YkuV1acWd73yWgnti4= +go.opentelemetry.io/collector/receiver v0.114.0 h1:90SAnXAjNq7/k52/pFmmb06Cf1YauoPYtbio4aOXafY= +go.opentelemetry.io/collector/receiver v0.114.0/go.mod h1:KUGT0/D953LXbGH/D3lLPU8yrU3HfWnUqpt4W4hSOnE= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 h1:ibhEfGpvNB3yrtpl2jYFabrunMk1hurxvMYpM0b1Ck4= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0/go.mod h1:UZyRfaasw+NLvN10AN8IQnmj5tQ3BOUH1uP2ctpO9f0= +go.opentelemetry.io/collector/receiver/receivertest v0.114.0 h1:D+Kh9t2n4asTnM+TiSxbrKlUemLZandWntj17BJWWb0= +go.opentelemetry.io/collector/receiver/receivertest v0.114.0/go.mod h1:mNSHQ13vFmqD+VAcRzLjStFBejbcWUn2Mp0pAd7Op+U= +go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= +go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 h1:UP6IpuHFkUgOQL9FFQFrZ+5LiwhhYRbi7VZSIx6Nj5s= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0/go.mod h1:qxuZLtbq5QDtdeSHsS7bcf6EH6uO6jUAgk764zd3rhM= -go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY= -go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= go.opentelemetry.io/otel/exporters/prometheus v0.49.0 h1:Er5I1g/YhfYv9Affk9nJLfH/+qCCVVg1f2R9AbJfqDQ= go.opentelemetry.io/otel/exporters/prometheus v0.49.0/go.mod h1:KfQ1wpjf3zsHjzP149P4LyAwWRupc6c7t1ZJ9eXpKQM= -go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE= -go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY= -go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk= -go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0= -go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc= -go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8= -go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys= -go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= @@ -559,8 +581,8 @@ google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJ google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190927181202-20e1ac93f88c/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 h1:QCqS/PdaHTSWGvupk2F/ehwHtGc0/GYkT+3GAcR1CCc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= diff --git a/test/otel/testdata/builder-config.yaml b/test/otel/testdata/builder-config.yaml index c2262c05307f8..bb20b619e5ddc 100644 --- a/test/otel/testdata/builder-config.yaml +++ b/test/otel/testdata/builder-config.yaml @@ -1,60 +1,82 @@ +connectors: +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector + v0.114.0 dist: - name: otelcol-custom description: Basic OTel Collector distribution for Developers + name: otelcol-custom output_path: /tmp/otel-ci/otelcol-custom - exporters: - - gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.113.0 - - gomod: go.opentelemetry.io/collector/exporter/nopexporter v0.113.0 - - gomod: go.opentelemetry.io/collector/exporter/otlpexporter v0.113.0 - - gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.113.0 - -processors: - - gomod: go.opentelemetry.io/collector/processor/batchprocessor v0.113.0 - - gomod: go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.113.0 - -receivers: - - gomod: go.opentelemetry.io/collector/receiver/nopreceiver v0.113.0 - - gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.113.0 - +- gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.114.0 +- gomod: go.opentelemetry.io/collector/exporter/nopexporter v0.114.0 +- gomod: go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0 +- gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter + v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter + v0.114.0 extensions: - - gomod: github.com/DataDog/datadog-agent/comp/otelcol/ddflareextension/impl v0.60.0 - path: ./comp/otelcol/ddflareextension/impl - - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.113.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.113.0 - +- gomod: github.com/DataDog/datadog-agent/comp/otelcol/ddflareextension/impl v0.60.0 + path: ./comp/otelcol/ddflareextension/impl +- gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension + v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension + v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver + v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver + v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver + v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver + v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver + v0.114.0 +processors: +- gomod: go.opentelemetry.io/collector/processor/batchprocessor v0.114.0 +- gomod: go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor + v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor + v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor + v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor + v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor + v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor + v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor + v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor + v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor + v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor + v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor + v0.114.0 providers: - - gomod: go.opentelemetry.io/collector/confmap/provider/envprovider v1.19.0 - - gomod: go.opentelemetry.io/collector/confmap/provider/fileprovider v1.19.0 - - gomod: go.opentelemetry.io/collector/confmap/provider/httpprovider v1.19.0 - - gomod: go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.19.0 - - gomod: go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.19.0 - -connectors: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.113.0 +- gomod: go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0 +- gomod: go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0 +- gomod: go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0 +- gomod: go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0 +- gomod: go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0 +receivers: +- gomod: go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0 +- gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver + v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver + v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver + v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver + v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver + v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator + v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver + v0.114.0 From 413f54623a7bb6795ea320df07a7872af74ae1ec Mon Sep 17 00:00:00 2001 From: Nicolas Schweitzer Date: Fri, 22 Nov 2024 18:55:55 +0100 Subject: [PATCH 002/439] feat(vault): Migrate `pulumi_passphrase` to vault (#31377) --- .gitlab-ci.yml | 1 - .gitlab/e2e/e2e.yml | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6b38930e1c320..8c7cec6e7a81b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -255,7 +255,6 @@ variables: E2E_TESTS_AZURE_TENANT_ID: ci.datadog-agent.e2e_tests_azure_tenant_id # agent-devx-loops E2E_TESTS_AZURE_SUBSCRIPTION_ID: ci.datadog-agent.e2e_tests_azure_subscription_id # agent-devx-loops E2E_TESTS_GCP_CREDENTIALS: ci.datadog-agent.e2e_tests_gcp_credentials # agent-devx-loops - E2E_PULUMI_CONFIG_PASSPHRASE: ci.datadog-agent.pulumi_password # agent-devx-loops KITCHEN_EC2_SSH_KEY: ci.datadog-agent.aws_ec2_kitchen_ssh_key # agent-devx-loops KITCHEN_AZURE_CLIENT_ID: ci.datadog-agent.azure_kitchen_client_id # agent-devx-loops KITCHEN_AZURE_CLIENT_SECRET: ci.datadog-agent.azure_kitchen_client_secret # agent-devx-loops diff --git a/.gitlab/e2e/e2e.yml b/.gitlab/e2e/e2e.yml index 4357bdcb42d42..11e95e75e5580 100644 --- a/.gitlab/e2e/e2e.yml +++ b/.gitlab/e2e/e2e.yml @@ -646,7 +646,7 @@ new-e2e-eks-cleanup-on-failure: - $CI_PROJECT_DIR/tools/ci/fetch_secret.sh $AGENT_QA_E2E ssh_public_key_rsa > $E2E_PUBLIC_KEY_PATH || exit $? - touch $E2E_PRIVATE_KEY_PATH && chmod 600 $E2E_PRIVATE_KEY_PATH && $CI_PROJECT_DIR/tools/ci/fetch_secret.sh $AGENT_QA_E2E ssh_key_rsa > $E2E_PRIVATE_KEY_PATH || exit $? # Use S3 backend - - PULUMI_CONFIG_PASSPHRASE=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $E2E_PULUMI_CONFIG_PASSPHRASE) || exit $?; export PULUMI_CONFIG_PASSPHRASE + - PULUMI_CONFIG_PASSPHRASE=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $AGENT_QA_E2E pulumi_passphrase) || exit $?; export PULUMI_CONFIG_PASSPHRASE - pulumi login "s3://dd-pulumi-state?region=us-east-1&awssdk=v2&profile=$AWS_PROFILE" - inv -e new-e2e-tests.cleanup-remote-stacks --stack-regex "ci-init-$CI_PIPELINE_ID.*eks.*" --pulumi-backend=dd-pulumi-state variables: From aaccbaa3a08b7c815fde15bd3ad854a551b91131 Mon Sep 17 00:00:00 2001 From: "Brian L. Troutwine" Date: Fri, 22 Nov 2024 13:08:23 -0500 Subject: [PATCH 003/439] Set resource allocations for all SMP experiments (#31366) Signed-off-by: Brian L. Troutwine --- test/regression/cases/basic_py_check/experiment.yaml | 2 ++ .../cases/file_to_blackhole_1000ms_latency/experiment.yaml | 2 +- .../cases/file_to_blackhole_100ms_latency/experiment.yaml | 2 +- .../cases/file_to_blackhole_300ms_latency/experiment.yaml | 2 +- .../cases/file_to_blackhole_500ms_latency/experiment.yaml | 2 +- test/regression/cases/file_tree/experiment.yaml | 3 ++- test/regression/cases/otel_to_otel_logs/experiment.yaml | 2 ++ test/regression/cases/pycheck_lots_of_tags/experiment.yaml | 2 ++ test/regression/cases/quality_gate_idle/experiment.yaml | 2 +- .../cases/tcp_dd_logs_filter_exclude/experiment.yaml | 2 ++ test/regression/cases/tcp_syslog_to_blackhole/experiment.yaml | 2 ++ test/regression/cases/uds_dogstatsd_to_api/experiment.yaml | 2 ++ test/regression/cases/uds_dogstatsd_to_api_cpu/experiment.yaml | 2 ++ 13 files changed, 21 insertions(+), 6 deletions(-) diff --git a/test/regression/cases/basic_py_check/experiment.yaml b/test/regression/cases/basic_py_check/experiment.yaml index 240733dde95fb..75a98fa3723f6 100644 --- a/test/regression/cases/basic_py_check/experiment.yaml +++ b/test/regression/cases/basic_py_check/experiment.yaml @@ -4,6 +4,8 @@ erratic: false target: name: datadog-agent command: /bin/entrypoint.sh + cpu_allotment: 8 + memory_allotment: 4GiB environment: DD_API_KEY: 000001 diff --git a/test/regression/cases/file_to_blackhole_1000ms_latency/experiment.yaml b/test/regression/cases/file_to_blackhole_1000ms_latency/experiment.yaml index c5af0d55b9447..ccca15933f243 100644 --- a/test/regression/cases/file_to_blackhole_1000ms_latency/experiment.yaml +++ b/test/regression/cases/file_to_blackhole_1000ms_latency/experiment.yaml @@ -5,7 +5,7 @@ target: name: datadog-agent command: /bin/entrypoint.sh cpu_allotment: 8 - memory_allotment: 30g + memory_allotment: 4GiB environment: DD_API_KEY: 00000001 diff --git a/test/regression/cases/file_to_blackhole_100ms_latency/experiment.yaml b/test/regression/cases/file_to_blackhole_100ms_latency/experiment.yaml index e19b8685b4079..68432ca735b1c 100644 --- a/test/regression/cases/file_to_blackhole_100ms_latency/experiment.yaml +++ b/test/regression/cases/file_to_blackhole_100ms_latency/experiment.yaml @@ -5,7 +5,7 @@ target: name: datadog-agent command: /bin/entrypoint.sh cpu_allotment: 8 - memory_allotment: 30g + memory_allotment: 4GiB environment: DD_API_KEY: 00000001 diff --git a/test/regression/cases/file_to_blackhole_300ms_latency/experiment.yaml b/test/regression/cases/file_to_blackhole_300ms_latency/experiment.yaml index e19b8685b4079..68432ca735b1c 100644 --- a/test/regression/cases/file_to_blackhole_300ms_latency/experiment.yaml +++ b/test/regression/cases/file_to_blackhole_300ms_latency/experiment.yaml @@ -5,7 +5,7 @@ target: name: datadog-agent command: /bin/entrypoint.sh cpu_allotment: 8 - memory_allotment: 30g + memory_allotment: 4GiB environment: DD_API_KEY: 00000001 diff --git a/test/regression/cases/file_to_blackhole_500ms_latency/experiment.yaml b/test/regression/cases/file_to_blackhole_500ms_latency/experiment.yaml index e19b8685b4079..68432ca735b1c 100644 --- a/test/regression/cases/file_to_blackhole_500ms_latency/experiment.yaml +++ b/test/regression/cases/file_to_blackhole_500ms_latency/experiment.yaml @@ -5,7 +5,7 @@ target: name: datadog-agent command: /bin/entrypoint.sh cpu_allotment: 8 - memory_allotment: 30g + memory_allotment: 4GiB environment: DD_API_KEY: 00000001 diff --git a/test/regression/cases/file_tree/experiment.yaml b/test/regression/cases/file_tree/experiment.yaml index 924697307fc60..6c67c51ef14a5 100644 --- a/test/regression/cases/file_tree/experiment.yaml +++ b/test/regression/cases/file_tree/experiment.yaml @@ -4,6 +4,8 @@ erratic: false target: name: datadog-agent command: /bin/entrypoint.sh + cpu_allotment: 8 + memory_allotment: 4GiB environment: DD_API_KEY: 00000001 @@ -37,4 +39,3 @@ target: DD_PROFILING_EXECUTION_TRACE_ENABLED: true DD_PROFILING_EXECUTION_TRACE_PERIOD: 1m DD_PROFILING_WAIT_PROFILE: true - diff --git a/test/regression/cases/otel_to_otel_logs/experiment.yaml b/test/regression/cases/otel_to_otel_logs/experiment.yaml index ab8e6007454d4..dfbe54658435f 100644 --- a/test/regression/cases/otel_to_otel_logs/experiment.yaml +++ b/test/regression/cases/otel_to_otel_logs/experiment.yaml @@ -4,6 +4,8 @@ erratic: false target: name: datadog-agent command: /bin/entrypoint.sh + cpu_allotment: 8 + memory_allotment: 24GiB environment: DD_API_KEY: 00000001 diff --git a/test/regression/cases/pycheck_lots_of_tags/experiment.yaml b/test/regression/cases/pycheck_lots_of_tags/experiment.yaml index e71d12e07cd61..71b13b0b2bc09 100644 --- a/test/regression/cases/pycheck_lots_of_tags/experiment.yaml +++ b/test/regression/cases/pycheck_lots_of_tags/experiment.yaml @@ -4,6 +4,8 @@ erratic: false target: name: datadog-agent command: /bin/entrypoint.sh + cpu_allotment: 8 + memory_allotment: 4GiB environment: DD_API_KEY: 000001 diff --git a/test/regression/cases/quality_gate_idle/experiment.yaml b/test/regression/cases/quality_gate_idle/experiment.yaml index e1712d66ecec3..6555258f34601 100644 --- a/test/regression/cases/quality_gate_idle/experiment.yaml +++ b/test/regression/cases/quality_gate_idle/experiment.yaml @@ -10,7 +10,7 @@ target: name: datadog-agent command: /bin/entrypoint.sh cpu_allotment: 8 - memory_allotment: 1GiB + memory_allotment: 500MiB environment: DD_API_KEY: 00000001 diff --git a/test/regression/cases/tcp_dd_logs_filter_exclude/experiment.yaml b/test/regression/cases/tcp_dd_logs_filter_exclude/experiment.yaml index 06dd741454310..17a5adb011dd1 100644 --- a/test/regression/cases/tcp_dd_logs_filter_exclude/experiment.yaml +++ b/test/regression/cases/tcp_dd_logs_filter_exclude/experiment.yaml @@ -4,6 +4,8 @@ erratic: false target: name: datadog-agent command: /bin/entrypoint.sh + cpu_allotment: 8 + memory_allotment: 4GiB environment: DD_API_KEY: 00000001 diff --git a/test/regression/cases/tcp_syslog_to_blackhole/experiment.yaml b/test/regression/cases/tcp_syslog_to_blackhole/experiment.yaml index c7430bdc7e027..f9168734cf9e7 100644 --- a/test/regression/cases/tcp_syslog_to_blackhole/experiment.yaml +++ b/test/regression/cases/tcp_syslog_to_blackhole/experiment.yaml @@ -4,6 +4,8 @@ erratic: false target: name: datadog-agent command: /bin/entrypoint.sh + cpu_allotment: 8 + memory_allotment: 4GiB environment: DD_API_KEY: 00000001 diff --git a/test/regression/cases/uds_dogstatsd_to_api/experiment.yaml b/test/regression/cases/uds_dogstatsd_to_api/experiment.yaml index 64c40a67150ed..fe93432493ecf 100644 --- a/test/regression/cases/uds_dogstatsd_to_api/experiment.yaml +++ b/test/regression/cases/uds_dogstatsd_to_api/experiment.yaml @@ -4,6 +4,8 @@ erratic: false target: name: datadog-agent command: /bin/entrypoint.sh + cpu_allotment: 8 + memory_allotment: 4GiB environment: DD_API_KEY: 00000001 diff --git a/test/regression/cases/uds_dogstatsd_to_api_cpu/experiment.yaml b/test/regression/cases/uds_dogstatsd_to_api_cpu/experiment.yaml index 63ea6a102aeac..ccb9f7b4e4866 100644 --- a/test/regression/cases/uds_dogstatsd_to_api_cpu/experiment.yaml +++ b/test/regression/cases/uds_dogstatsd_to_api_cpu/experiment.yaml @@ -4,6 +4,8 @@ erratic: false target: name: datadog-agent command: /bin/entrypoint.sh + cpu_allotment: 8 + memory_allotment: 4GiB environment: DD_API_KEY: 00000001 From c33fab7a1bfc8f108db820f06daf7155d752cbc3 Mon Sep 17 00:00:00 2001 From: Andrew Glaude Date: Fri, 22 Nov 2024 13:38:25 -0500 Subject: [PATCH 004/439] Avoid looking up core agent hostname in tests that don't need it (#31357) --- comp/trace/config/config_otlp_test.go | 2 +- comp/trace/config/config_test.go | 251 +++++++++++++------------- 2 files changed, 126 insertions(+), 127 deletions(-) diff --git a/comp/trace/config/config_otlp_test.go b/comp/trace/config/config_otlp_test.go index c7429b3588547..eb092218859c1 100644 --- a/comp/trace/config/config_otlp_test.go +++ b/comp/trace/config/config_otlp_test.go @@ -20,7 +20,7 @@ import ( ) func TestFullYamlConfigWithOTLP(t *testing.T) { - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := config.Object() diff --git a/comp/trace/config/config_test.go b/comp/trace/config/config_test.go index 73517aec3e2e6..c17d4325221be 100644 --- a/comp/trace/config/config_test.go +++ b/comp/trace/config/config_test.go @@ -18,7 +18,6 @@ import ( "path/filepath" "reflect" "regexp" - "runtime" "strings" "testing" "text/template" @@ -149,7 +148,7 @@ func TestSplitTagRegex(t *testing.T) { func TestTelemetryEndpointsConfig(t *testing.T) { t.Run("default", func(t *testing.T) { - config := buildConfigComponent(t) + config := buildConfigComponent(t, true) cfg := config.Object() require.NotNil(t, cfg) @@ -163,7 +162,7 @@ func TestTelemetryEndpointsConfig(t *testing.T) { "apm_config.telemetry.dd_url": "http://example.com/", } - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{Overrides: overrides})) + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{Overrides: overrides})) cfg := config.Object() require.NotNil(t, cfg) @@ -177,7 +176,7 @@ func TestTelemetryEndpointsConfig(t *testing.T) { "apm_config.telemetry.dd_url": "111://abc.com", } - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{Overrides: overrides})) + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{Overrides: overrides})) cfg := config.Object() require.NotNil(t, cfg) @@ -192,7 +191,7 @@ func TestTelemetryEndpointsConfig(t *testing.T) { "site": "new_site.example.com", } - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{Overrides: overrides})) + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{Overrides: overrides})) cfg := config.Object() require.NotNil(t, cfg) @@ -210,7 +209,7 @@ func TestTelemetryEndpointsConfig(t *testing.T) { "apm_config.telemetry.additional_endpoints": additionalEndpoints, } - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{Overrides: overrides})) + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{Overrides: overrides})) cfg := config.Object() require.NotNil(t, cfg) @@ -233,7 +232,7 @@ func TestTelemetryEndpointsConfig(t *testing.T) { "apm_config.telemetry.additional_endpoints": additionalEndpoints, } - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{Overrides: overrides})) + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{Overrides: overrides})) cfg := config.Object() require.NotNil(t, cfg) @@ -301,7 +300,7 @@ func TestConfigHostname(t *testing.T) { t.Skip() } - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, false, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/site_override.yaml"}, Overrides: overrides, })) @@ -313,7 +312,7 @@ func TestConfigHostname(t *testing.T) { }) t.Run("file", func(t *testing.T) { - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, false, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) @@ -326,7 +325,7 @@ func TestConfigHostname(t *testing.T) { t.Run("env", func(t *testing.T) { t.Setenv("DD_HOSTNAME", "onlyenv") - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, false, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/site_override.yaml"}, })) cfg := config.Object() @@ -338,7 +337,7 @@ func TestConfigHostname(t *testing.T) { t.Run("file+env", func(t *testing.T) { t.Setenv("DD_HOSTNAME", "envoverride") - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, false, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := config.Object() @@ -352,7 +351,7 @@ func TestConfigHostname(t *testing.T) { "serverless.enabled": true, } - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, false, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/site_default.yaml"}, Overrides: overrides, })) @@ -405,7 +404,7 @@ func TestConfigHostname(t *testing.T) { bin := makeProgram(t, "host.name", 0) defer os.Remove(bin) - config := buildConfigComponent(t) + config := buildConfigComponent(t, false) cfg := config.Object() require.NotNil(t, cfg) @@ -419,7 +418,7 @@ func TestConfigHostname(t *testing.T) { bin := makeProgram(t, "", 0) defer os.Remove(bin) - config := buildConfigComponent(t) + config := buildConfigComponent(t, false) cfg := config.Object() require.NotNil(t, cfg) @@ -432,7 +431,7 @@ func TestConfigHostname(t *testing.T) { bin := makeProgram(t, "", 0) defer os.Remove(bin) - config := buildConfigComponent(t) + config := buildConfigComponent(t, false) cfg := config.Object() require.NotNil(t, cfg) @@ -447,7 +446,7 @@ func TestConfigHostname(t *testing.T) { bin := makeProgram(t, "", 1) defer os.Remove(bin) - config := buildConfigComponent(t) + config := buildConfigComponent(t, false) cfg := config.Object() require.NotNil(t, cfg) @@ -460,7 +459,7 @@ func TestConfigHostname(t *testing.T) { bin := makeProgram(t, "some text", 1) defer os.Remove(bin) - config := buildConfigComponent(t) + config := buildConfigComponent(t, false) cfg := config.Object() require.NotNil(t, cfg) @@ -483,7 +482,7 @@ func TestSite(t *testing.T) { "vector": {"./testdata/observability_pipelines_worker_override.yaml", "https://observability_pipelines_worker.domain.tld:8443"}, } { t.Run(name, func(t *testing.T) { - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: tt.file}, })) cfg := config.Object() @@ -495,7 +494,7 @@ func TestSite(t *testing.T) { } func TestDefaultConfig(t *testing.T) { - config := buildConfigComponent(t) + config := buildConfigComponent(t, true) cfg := config.Object() require.NotNil(t, cfg) @@ -516,7 +515,7 @@ func TestDefaultConfig(t *testing.T) { } func TestNoAPMConfig(t *testing.T) { - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/no_apm_config.yaml"}, })) cfg := config.Object() @@ -530,7 +529,7 @@ func TestNoAPMConfig(t *testing.T) { } func TestDisableLoggingConfig(t *testing.T) { - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/disable_file_logging.yaml"}, })) cfg := config.Object() @@ -541,7 +540,7 @@ func TestDisableLoggingConfig(t *testing.T) { } func TestFullYamlConfig(t *testing.T) { - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := config.Object() @@ -642,7 +641,7 @@ func TestFullYamlConfig(t *testing.T) { } func TestFileLoggingDisabled(t *testing.T) { - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/disable_file_logging.yaml"}, })) @@ -653,7 +652,7 @@ func TestFileLoggingDisabled(t *testing.T) { } func TestUndocumentedYamlConfig(t *testing.T) { - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/undocumented.yaml"}, })) cfg := config.Object() @@ -711,7 +710,7 @@ func TestNormalizeEnvFromDDEnv(t *testing.T) { t.Run("", func(t *testing.T) { t.Setenv("DD_ENV", in) - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/no_apm_config.yaml"}, })) cfg := config.Object() @@ -733,7 +732,7 @@ func TestNormalizeEnvFromDDTags(t *testing.T) { t.Run("", func(t *testing.T) { t.Setenv("DD_TAGS", in) - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/no_apm_config.yaml"}, })) cfg := config.Object() @@ -755,7 +754,7 @@ func TestNormalizeEnvFromConfig(t *testing.T) { "./testdata/non-normalized_env_host_tag.yaml", } { t.Run("", func(t *testing.T) { - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: cfgFile}, })) @@ -784,7 +783,7 @@ func TestLoadEnv(t *testing.T) { t.Setenv(tt.envOld, "1,2,3") t.Setenv(tt.envNew, "4,5,6") - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) @@ -803,7 +802,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "123") - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := config.Object() @@ -815,7 +814,7 @@ func TestLoadEnv(t *testing.T) { env = "DD_SITE" t.Run(env, func(t *testing.T) { t.Setenv(env, "my-site.com") - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/site_default.yaml"}, })) @@ -828,7 +827,7 @@ func TestLoadEnv(t *testing.T) { env = "DD_APM_ENABLED" t.Run(env, func(t *testing.T) { t.Setenv(env, "true") - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := config.Object() @@ -840,7 +839,7 @@ func TestLoadEnv(t *testing.T) { env = "DD_APM_DD_URL" t.Run(env, func(t *testing.T) { t.Setenv(env, "my-site.com") - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := config.Object() @@ -852,7 +851,7 @@ func TestLoadEnv(t *testing.T) { env = "HTTPS_PROXY" t.Run(env, func(t *testing.T) { t.Setenv(env, "my-proxy.url") - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := config.Object() @@ -864,7 +863,7 @@ func TestLoadEnv(t *testing.T) { env = "DD_PROXY_HTTPS" t.Run(env, func(t *testing.T) { t.Setenv(env, "my-proxy.url") - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := config.Object() @@ -876,7 +875,7 @@ func TestLoadEnv(t *testing.T) { env = "DD_HOSTNAME" t.Run(env, func(t *testing.T) { t.Setenv(env, "local.host") - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, false, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := config.Object() @@ -888,7 +887,7 @@ func TestLoadEnv(t *testing.T) { env = "DD_BIND_HOST" t.Run(env, func(t *testing.T) { t.Setenv(env, "bindhost.com") - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, false, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := config.Object() @@ -904,7 +903,7 @@ func TestLoadEnv(t *testing.T) { t.Run(envKey, func(t *testing.T) { t.Setenv(envKey, "1234") - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := config.Object() @@ -918,7 +917,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "4321") - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := config.Object() @@ -931,7 +930,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "true") - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/undocumented.yaml"}, })) cfg := config.Object() @@ -944,7 +943,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "12.3") - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/undocumented.yaml"}, })) cfg := config.Object() @@ -960,7 +959,7 @@ func TestLoadEnv(t *testing.T) { t.Run(envKey, func(t *testing.T) { t.Setenv(envKey, "1,2,3") - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := config.Object() @@ -974,7 +973,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "web|http.request=1,db|sql.query=0.5") - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) @@ -991,7 +990,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, `[{"name":"name1", "pattern":"pattern1"}, {"name":"name2","pattern":"pattern2","repl":"replace2"}]`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) @@ -1018,7 +1017,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, `important1 important2:value1`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) @@ -1032,7 +1031,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, `["important1:value with a space"]`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1046,7 +1045,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, `important1 important2:^value1$`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) @@ -1060,7 +1059,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, `["important1:^value with a space$"]`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) @@ -1075,7 +1074,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, `bad1:value1`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1088,7 +1087,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, `["bad1:value with a space"]`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1101,7 +1100,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, `["bad1:value with a space","bad2:value with spaces"]`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1117,7 +1116,7 @@ func TestLoadEnv(t *testing.T) { env = "DD_APM_FILTER_TAGS_REGEX_REJECT" t.Run(env, func(t *testing.T) { t.Setenv(env, `bad1:^value1$`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1129,7 +1128,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, `["bad1:value with a space"]`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1146,7 +1145,7 @@ func TestLoadEnv(t *testing.T) { t.Run(envKey, func(t *testing.T) { t.Setenv(envKey, "50") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1165,7 +1164,7 @@ func TestLoadEnv(t *testing.T) { t.Run(envKey, func(t *testing.T) { t.Setenv(envKey, "6") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/deprecated-max-tps-apm.yaml"}, })) @@ -1180,7 +1179,7 @@ func TestLoadEnv(t *testing.T) { t.Run(envKey, func(t *testing.T) { t.Setenv(envKey, "6") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1201,7 +1200,7 @@ func TestLoadEnv(t *testing.T) { t.Run(envKey, func(t *testing.T) { t.Setenv(envKey, "12") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1217,7 +1216,7 @@ func TestLoadEnv(t *testing.T) { t.Run(envKey, func(t *testing.T) { t.Setenv(envKey, "true") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1233,7 +1232,7 @@ func TestLoadEnv(t *testing.T) { } { t.Run(envKey, func(t *testing.T) { t.Setenv(envKey, "7") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1247,7 +1246,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "337.41") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1260,7 +1259,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, `{"url1": ["key1", "key2"], "url2": ["key3"]}`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1276,7 +1275,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "my-site.com") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1290,7 +1289,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "my-site.com") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1304,7 +1303,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "my-key") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1318,7 +1317,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, `{"url1": ["key1", "key2"], "url2": ["key3"]}`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1339,7 +1338,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "my-diagnostics-site.com") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1353,7 +1352,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "my-diagnostics-key") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1367,7 +1366,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, `{"diagnostics-url1": ["diagnostics-key1", "diagnostics-key2"], "diagnostics-url2": ["diagnostics-key3"]}`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1388,7 +1387,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "my-site.com") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1401,7 +1400,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "my-key") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1414,7 +1413,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, `{"url1": ["key1", "key2"], "url2": ["key3"]}`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1435,7 +1434,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "false") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1450,7 +1449,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "false") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1463,7 +1462,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "true") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1477,7 +1476,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, `["client_id", "product_id"]`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1494,7 +1493,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, `["key1", "key2"]`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1511,7 +1510,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "true") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1525,7 +1524,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "true") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1539,7 +1538,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "true") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1553,7 +1552,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "true") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1569,7 +1568,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "true") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1583,7 +1582,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, `["document_id", "template_id"]`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1600,7 +1599,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, `["key1", "key2"]`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1617,7 +1616,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "true") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1631,7 +1630,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "true") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1645,7 +1644,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "true") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1659,7 +1658,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "true") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1673,7 +1672,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, `["id1", "id2"]`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1690,7 +1689,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, `["key1", "key2"]`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1707,7 +1706,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, "true") - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1721,7 +1720,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, `["id1", "id2"]`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1738,7 +1737,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, `["key1", "key2"]`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1755,7 +1754,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, `{"url1": ["key1", "key2"], "url2": ["key3"]}`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1776,7 +1775,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { assert := func(in string, _ []string) { t.Setenv(env, in) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1802,7 +1801,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, `install_id_foo_bar`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1816,7 +1815,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, `host_injection`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1830,7 +1829,7 @@ func TestLoadEnv(t *testing.T) { t.Run(env, func(t *testing.T) { t.Setenv(env, `1699621675`) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, })) cfg := c.Object() @@ -1862,7 +1861,7 @@ func TestFargateConfig(t *testing.T) { } { t.Run("", func(t *testing.T) { env.SetFeatures(t, data.features...) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/no_apm_config.yaml"}, })) @@ -1876,7 +1875,7 @@ func TestFargateConfig(t *testing.T) { func TestSetMaxMemCPU(t *testing.T) { t.Run("default, non-containerized", func(t *testing.T) { - config := buildConfigComponent(t) + config := buildConfigComponent(t, true) cfg := config.Object() require.NotNil(t, cfg) @@ -1887,7 +1886,7 @@ func TestSetMaxMemCPU(t *testing.T) { }) t.Run("default, containerized", func(t *testing.T) { - config := buildConfigComponent(t) + config := buildConfigComponent(t, true) cfg := config.Object() require.NotNil(t, cfg) @@ -1903,7 +1902,7 @@ func TestSetMaxMemCPU(t *testing.T) { "apm_config.max_memory": "200", } - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{Overrides: overrides})) + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{Overrides: overrides})) cfg := config.Object() require.NotNil(t, cfg) @@ -1918,7 +1917,7 @@ func TestSetMaxMemCPU(t *testing.T) { "apm_config.max_memory": "300", } - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{Overrides: overrides})) + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{Overrides: overrides})) cfg := config.Object() require.NotNil(t, cfg) @@ -1931,7 +1930,7 @@ func TestSetMaxMemCPU(t *testing.T) { func TestPeerTagsAggregation(t *testing.T) { t.Run("default-enabled", func(t *testing.T) { - config := buildConfigComponent(t) + config := buildConfigComponent(t, true) cfg := config.Object() assert.True(t, cfg.PeerTagsAggregation) assert.Nil(t, cfg.PeerTags) @@ -1948,7 +1947,7 @@ func TestPeerTagsAggregation(t *testing.T) { "apm_config.peer_service_aggregation": true, "apm_config.peer_tags_aggregation": false, } - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{Overrides: overrides})) + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{Overrides: overrides})) cfg := config.Object() require.NotNil(t, cfg) assert.False(t, cfg.PeerTagsAggregation) @@ -1961,7 +1960,7 @@ func TestPeerTagsAggregation(t *testing.T) { "apm_config.peer_service_aggregation": true, } - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{Overrides: overrides})) + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{Overrides: overrides})) cfg := config.Object() require.NotNil(t, cfg) assert.True(t, cfg.PeerTagsAggregation) @@ -1978,7 +1977,7 @@ func TestPeerTagsAggregation(t *testing.T) { "apm_config.peer_service_aggregation": false, } - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{Overrides: overrides})) + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{Overrides: overrides})) cfg := config.Object() require.NotNil(t, cfg) assert.True(t, cfg.PeerTagsAggregation) @@ -1996,7 +1995,7 @@ func TestPeerTagsAggregation(t *testing.T) { "apm_config.peer_tags_aggregation": true, } - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{Overrides: overrides})) + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{Overrides: overrides})) cfg := config.Object() require.NotNil(t, cfg) assert.True(t, cfg.PeerTagsAggregation) @@ -2014,7 +2013,7 @@ func TestPeerTagsAggregation(t *testing.T) { "apm_config.peer_tags_aggregation": false, } - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{Overrides: overrides})) + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{Overrides: overrides})) cfg := config.Object() require.NotNil(t, cfg) assert.False(t, cfg.PeerTagsAggregation) @@ -2027,7 +2026,7 @@ func TestPeerTagsAggregation(t *testing.T) { "apm_config.peer_tags": []string{"user_peer_tag"}, } - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{Overrides: overrides})) + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{Overrides: overrides})) cfg := config.Object() require.NotNil(t, cfg) assert.False(t, cfg.PeerTagsAggregation) @@ -2039,7 +2038,7 @@ func TestPeerTagsAggregation(t *testing.T) { "apm_config.peer_tags": []string{"user_peer_tag"}, } - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{Overrides: overrides})) + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{Overrides: overrides})) cfg := config.Object() assert.True(t, cfg.PeerTagsAggregation) assert.Equal(t, []string{"user_peer_tag"}, cfg.PeerTags) @@ -2055,7 +2054,7 @@ func TestPeerTagsAggregation(t *testing.T) { "apm_config.peer_tags_aggregation": true, } - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{Overrides: overrides})) + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{Overrides: overrides})) cfg := config.Object() require.NotNil(t, cfg) assert.True(t, cfg.PeerTagsAggregation) @@ -2068,7 +2067,7 @@ func TestPeerTagsAggregation(t *testing.T) { "apm_config.peer_service_aggregation": true, } - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{Overrides: overrides})) + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{Overrides: overrides})) cfg := config.Object() require.NotNil(t, cfg) assert.True(t, cfg.PeerTagsAggregation) @@ -2084,7 +2083,7 @@ func TestPeerTagsAggregation(t *testing.T) { func TestComputeStatsBySpanKind(t *testing.T) { t.Run("default-enabled", func(t *testing.T) { - config := buildConfigComponent(t) + config := buildConfigComponent(t, true) cfg := config.Object() @@ -2096,7 +2095,7 @@ func TestComputeStatsBySpanKind(t *testing.T) { overrides := map[string]interface{}{ "apm_config.compute_stats_by_span_kind": false, } - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{Overrides: overrides})) + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{Overrides: overrides})) cfg := config.Object() require.NotNil(t, cfg) @@ -2108,7 +2107,7 @@ func TestComputeStatsBySpanKind(t *testing.T) { "apm_config.compute_stats_by_span_kind": true, } - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{Overrides: overrides})) + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{Overrides: overrides})) cfg := config.Object() require.NotNil(t, cfg) @@ -2124,7 +2123,7 @@ func TestGenerateInstallSignature(t *testing.T) { err = os.WriteFile(cfgFile, cfgContent, 0644) assert.NoError(t, err) - c := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: cfgFile}, })) @@ -2153,7 +2152,7 @@ func TestGenerateInstallSignature(t *testing.T) { func TestMockConfig(t *testing.T) { t.Setenv("DD_SITE", "datadoghq.eu") - config := buildConfigComponent(t, fx.Supply(corecomp.Params{})) + config := buildConfigComponent(t, true, fx.Supply(corecomp.Params{})) cfg := config.Object() require.NotNil(t, cfg) @@ -2162,7 +2161,7 @@ func TestMockConfig(t *testing.T) { } func TestMockDefaultConfig(t *testing.T) { - config := buildConfigComponent(t, fx.Supply(corecomp.Params{})) + config := buildConfigComponent(t, true, fx.Supply(corecomp.Params{})) cfg := config.Object() require.NotNil(t, cfg) @@ -2171,8 +2170,7 @@ func TestMockDefaultConfig(t *testing.T) { } func TestGetCoreConfigHandler(t *testing.T) { - t.Skip("skipping flaky test - APMSP-1390") - config := buildConfigComponent(t, fx.Supply(corecomp.Params{})) + config := buildConfigComponent(t, true, fx.Supply(corecomp.Params{})) handler := config.GetConfigHandler().(http.HandlerFunc) @@ -2209,7 +2207,7 @@ func TestGetCoreConfigHandler(t *testing.T) { } func TestDisableReceiverConfig(t *testing.T) { - config := buildConfigComponent(t, fx.Replace(corecomp.MockParams{ + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/disable_receiver.yaml"}, })) cfg := config.Object() @@ -2220,16 +2218,12 @@ func TestDisableReceiverConfig(t *testing.T) { } func TestOnUpdateAPIKeyCallback(t *testing.T) { - // APMSP-1494 - if runtime.GOOS == "darwin" { - t.Skip("skipping flaky test on darwin") - } var n int callback := func(_, _ string) { n++ } - config := buildConfigComponent(t) + config := buildConfigComponent(t, true) config.OnUpdateAPIKey(callback) @@ -2238,13 +2232,18 @@ func TestOnUpdateAPIKeyCallback(t *testing.T) { assert.Equal(t, 1, n) } -func buildConfigComponent(t *testing.T, coreConfigOptions ...fx.Option) Component { +func buildConfigComponent(t *testing.T, setHostnameInConfig bool, coreConfigOptions ...fx.Option) Component { t.Helper() coreConfig := fxutil.Test[corecomp.Component](t, corecomp.MockModule(), fx.Options(coreConfigOptions...), ) + // set the hostname in the config to avoid trying to create a connection to the core agent + // (This can be slow and flaky in tests that don't need to run this logic) + if setHostnameInConfig { + coreConfig.SetWithoutSource("hostname", "testhostname") + } taggerComponent := fxutil.Test[taggermock.Mock](t, fx.Replace(coreConfig), From 1b7481cd0abff29c875cc9a1dea8e00aeb6e8719 Mon Sep 17 00:00:00 2001 From: Adam Karpowich Date: Fri, 22 Nov 2024 18:07:05 -0500 Subject: [PATCH 005/439] [NPM] Drop empty + preexisting closed connections (#31100) --- pkg/network/ebpf/c/co-re/tracer-fentry.c | 4 +- pkg/network/ebpf/c/tracer.c | 46 ++++++---------- pkg/network/ebpf/c/tracer/events.h | 55 +++++++++---------- pkg/network/ebpf/c/tracer/maps.h | 3 - pkg/network/ebpf/c/tracer/stats.h | 4 ++ pkg/network/ebpf/probes/probes.go | 2 - pkg/network/tracer/connection/ebpf_tracer.go | 29 +--------- .../tracer/connection/fentry/manager.go | 1 - .../tracer/connection/kprobe/manager.go | 1 - pkg/network/tracer/tracer_linux_test.go | 19 ++----- pkg/network/tracer/tracer_test.go | 13 ++++- 11 files changed, 66 insertions(+), 111 deletions(-) diff --git a/pkg/network/ebpf/c/co-re/tracer-fentry.c b/pkg/network/ebpf/c/co-re/tracer-fentry.c index 5e35f3e4f7adc..09259e948047d 100644 --- a/pkg/network/ebpf/c/co-re/tracer-fentry.c +++ b/pkg/network/ebpf/c/co-re/tracer-fentry.c @@ -244,7 +244,7 @@ int BPF_PROG(tcp_close, struct sock *sk, long timeout) { bpf_map_delete_elem(&tcp_ongoing_connect_pid, &skp_conn); - cleanup_conn(ctx, &t, sk, 0); + cleanup_conn(ctx, &t, sk); return 0; } @@ -543,7 +543,7 @@ static __always_inline int handle_udp_destroy_sock(void *ctx, struct sock *sk) { __u16 lport = 0; if (valid_tuple) { - cleanup_conn(ctx, &tup, sk, 0); + cleanup_conn(ctx, &tup, sk); lport = tup.sport; } else { // get the port for the current sock diff --git a/pkg/network/ebpf/c/tracer.c b/pkg/network/ebpf/c/tracer.c index e83d344906c30..8de25a2a37e6b 100644 --- a/pkg/network/ebpf/c/tracer.c +++ b/pkg/network/ebpf/c/tracer.c @@ -207,7 +207,7 @@ int BPF_BYPASSABLE_KPROBE(kprobe__tcp_done, struct sock *sk) { } int err = 0; - bpf_probe_read_kernel_with_telemetry(&err, sizeof(err), (&sk->sk_err)); + BPF_CORE_READ_INTO(&err, sk, sk_err); if (err == 0) { bpf_map_delete_elem(&tcp_ongoing_connect_pid, &skp_conn); return 0; // no failure @@ -232,18 +232,15 @@ int BPF_BYPASSABLE_KPROBE(kprobe__tcp_done, struct sock *sk) { return 0; } - // check if this connection was already flushed and ensure we don't flush again - // upsert the timestamp to the map and delete if it already exists, flush connection otherwise - // skip EEXIST errors for telemetry since it is an expected error - __u64 timestamp = bpf_ktime_get_ns(); - if (bpf_map_update_with_telemetry(conn_close_flushed, &t, ×tamp, BPF_NOEXIST, -EEXIST) == 0) { - cleanup_conn(ctx, &t, sk, err); + tcp_stats_t stats = {.failure_reason = err}; + update_tcp_stats(&t, stats); + + if (cleanup_conn(ctx, &t, sk) == 0) { increment_telemetry_count(tcp_done_connection_flush); - } else { - bpf_map_delete_elem(&conn_close_flushed, &t); - increment_telemetry_count(double_flush_attempts_done); } + increment_telemetry_count(tcp_failed_connect); + return 0; } @@ -277,29 +274,20 @@ int BPF_BYPASSABLE_KPROBE(kprobe__tcp_close, struct sock *sk) { bpf_map_delete_elem(&tcp_ongoing_connect_pid, &skp_conn); if (!tcp_failed_connections_enabled()) { - cleanup_conn(ctx, &t, sk, 0); + cleanup_conn(ctx, &t, sk); return 0; } - // check if this connection was already flushed and ensure we don't flush again - // upsert the timestamp to the map and delete if it already exists, flush connection otherwise - // skip EEXIST errors for telemetry since it is an expected error - __u64 timestamp = bpf_ktime_get_ns(); - if (bpf_map_update_with_telemetry(conn_close_flushed, &t, ×tamp, BPF_NOEXIST, -EEXIST) == 0) { - __u16 tcp_failure_reason = 0; - int err = 0; - bpf_probe_read_kernel_with_telemetry(&err, sizeof(err), (&sk->sk_err)); - if (err == TCP_CONN_FAILED_RESET || err == TCP_CONN_FAILED_TIMEOUT || err == TCP_CONN_FAILED_REFUSED) { - increment_telemetry_count(tcp_close_target_failures); - // only set tcp_failure_reason if err is one of the desired values - tcp_failure_reason = err; - } + int err = 0; + BPF_CORE_READ_INTO(&err, sk, sk_err); + if (err == TCP_CONN_FAILED_RESET || err == TCP_CONN_FAILED_TIMEOUT || err == TCP_CONN_FAILED_REFUSED) { + increment_telemetry_count(tcp_close_target_failures); + tcp_stats_t stats = {.failure_reason = err}; + update_tcp_stats(&t, stats); + } - cleanup_conn(ctx, &t, sk, tcp_failure_reason); + if (cleanup_conn(ctx, &t, sk) == 0) { increment_telemetry_count(tcp_close_connection_flush); - } else { - bpf_map_delete_elem(&conn_close_flushed, &t); - increment_telemetry_count(double_flush_attempts_close); } return 0; @@ -1049,7 +1037,7 @@ static __always_inline int handle_udp_destroy_sock(void *ctx, struct sock *skp) __u16 lport = 0; if (valid_tuple) { - cleanup_conn(ctx, &tup, skp, 0); + cleanup_conn(ctx, &tup, skp); lport = tup.sport; } else { lport = read_sport(skp); diff --git a/pkg/network/ebpf/c/tracer/events.h b/pkg/network/ebpf/c/tracer/events.h index 56720bdc3a907..1de94d755b1f3 100644 --- a/pkg/network/ebpf/c/tracer/events.h +++ b/pkg/network/ebpf/c/tracer/events.h @@ -44,7 +44,7 @@ __maybe_unused static __always_inline void submit_closed_conn_event(void *ctx, i } } -static __always_inline void cleanup_conn(void *ctx, conn_tuple_t *tup, struct sock *sk, __u16 tcp_failure_reason) { +static __always_inline int cleanup_conn(void *ctx, conn_tuple_t *tup, struct sock *sk) { u32 cpu = bpf_get_smp_processor_id(); // Will hold the full connection data to send through the perf or ring buffer conn_t conn = { .tup = *tup }; @@ -53,12 +53,28 @@ static __always_inline void cleanup_conn(void *ctx, conn_tuple_t *tup, struct so u32 *retrans = NULL; bool is_tcp = get_proto(&conn.tup) == CONN_TYPE_TCP; bool is_udp = get_proto(&conn.tup) == CONN_TYPE_UDP; + bool cst_flushable = false; + + cst = bpf_map_lookup_elem(&conn_stats, &(conn.tup)); + // if we were able to delete the entry, it signals that no other threads have flushed it + if (cst && (bpf_map_delete_elem(&conn_stats, &(conn.tup)) == 0)) { + cst_flushable = true; + conn.conn_stats = *cst; + } + + if (is_udp && !cst_flushable) { + increment_telemetry_count(udp_dropped_conns); + return -1; + } if (is_tcp) { tst = bpf_map_lookup_elem(&tcp_stats, &(conn.tup)); - if (tst) { + if (tst && (bpf_map_delete_elem(&tcp_stats, &(conn.tup)) == 0)) { conn.tcp_stats = *tst; - bpf_map_delete_elem(&tcp_stats, &(conn.tup)); + } else { + if (!cst_flushable) { + return -1; + } } conn.tup.pid = 0; @@ -68,29 +84,7 @@ static __always_inline void cleanup_conn(void *ctx, conn_tuple_t *tup, struct so bpf_map_delete_elem(&tcp_retransmits, &(conn.tup)); } conn.tup.pid = tup->pid; - conn.tcp_stats.state_transitions |= (1 << TCP_CLOSE); - conn.tcp_stats.failure_reason = tcp_failure_reason; - if (tcp_failure_reason) { - increment_telemetry_count(tcp_failed_connect); - } - } - - cst = bpf_map_lookup_elem(&conn_stats, &(conn.tup)); - - if (cst) { - conn.conn_stats = *cst; - bpf_map_delete_elem(&conn_stats, &(conn.tup)); - } else { - if (is_udp) { - increment_telemetry_count(udp_dropped_conns); - return; // nothing to report - } - // we don't have any stats for the connection, - // so cookie is not set, set it here - conn.conn_stats.cookie = get_sk_cookie(sk); - // make sure direction is set correctly - determine_connection_direction(&conn.tup, &conn.conn_stats); } // update the `duration` field to reflect the duration of the @@ -103,7 +97,7 @@ static __always_inline void cleanup_conn(void *ctx, conn_tuple_t *tup, struct so // Batch TCP closed connections before generating a perf event batch_t *batch_ptr = bpf_map_lookup_elem(&conn_close_batch, &cpu); if (batch_ptr == NULL) { - return; + return -1; } // TODO: Can we turn this into a macro based on TCP_CLOSED_BATCH_SIZE? @@ -111,21 +105,21 @@ static __always_inline void cleanup_conn(void *ctx, conn_tuple_t *tup, struct so case 0: batch_ptr->c0 = conn; batch_ptr->len++; - return; + return 0; case 1: batch_ptr->c1 = conn; batch_ptr->len++; - return; + return 0; case 2: batch_ptr->c2 = conn; batch_ptr->len++; - return; + return 0; case 3: batch_ptr->c3 = conn; batch_ptr->len++; // In this case the batch is ready to be flushed, which we defer to kretprobe/tcp_close // in order to cope with the eBPF stack limitation of 512 bytes. - return; + return 0; } // If we hit this section it means we had one or more interleaved tcp_close calls. @@ -139,6 +133,7 @@ static __always_inline void cleanup_conn(void *ctx, conn_tuple_t *tup, struct so if (is_udp) { increment_telemetry_count(unbatched_udp_close); } + return 0; } static __always_inline void flush_conn_close_if_full(void *ctx) { diff --git a/pkg/network/ebpf/c/tracer/maps.h b/pkg/network/ebpf/c/tracer/maps.h index bf3eaf24eebe9..e6123782f8ea5 100644 --- a/pkg/network/ebpf/c/tracer/maps.h +++ b/pkg/network/ebpf/c/tracer/maps.h @@ -26,9 +26,6 @@ BPF_HASH_MAP(tcp_retransmits, conn_tuple_t, __u32, 0) /* Will hold the PIDs initiating TCP connections keyed by socket + tuple. PIDs have a timestamp attached so they can age out */ BPF_HASH_MAP(tcp_ongoing_connect_pid, skp_conn_tuple_t, pid_ts_t, 0) -/* Will hold a flag to indicate that closed connections have already been flushed */ -BPF_HASH_MAP(conn_close_flushed, conn_tuple_t, __u64, 0) - /* Will hold the tcp/udp close events * The keys are the cpu number and the values a perf file descriptor for a perf event */ diff --git a/pkg/network/ebpf/c/tracer/stats.h b/pkg/network/ebpf/c/tracer/stats.h index 6a20ae65f041b..0cadc576b0cff 100644 --- a/pkg/network/ebpf/c/tracer/stats.h +++ b/pkg/network/ebpf/c/tracer/stats.h @@ -207,6 +207,10 @@ static __always_inline void update_tcp_stats(conn_tuple_t *t, tcp_stats_t stats) if (stats.state_transitions > 0) { val->state_transitions |= stats.state_transitions; } + + if (stats.failure_reason != 0) { + val->failure_reason = stats.failure_reason; + } } static __always_inline int handle_message(conn_tuple_t *t, size_t sent_bytes, size_t recv_bytes, conn_direction_t dir, diff --git a/pkg/network/ebpf/probes/probes.go b/pkg/network/ebpf/probes/probes.go index 1401b231fe231..cd72ca3ba1fe9 100644 --- a/pkg/network/ebpf/probes/probes.go +++ b/pkg/network/ebpf/probes/probes.go @@ -194,8 +194,6 @@ const ( TCPRetransmitsMap BPFMapName = "tcp_retransmits" // TCPOngoingConnectPid is the map storing ongoing TCP connection PIDs by (socket + tuple) TCPOngoingConnectPid BPFMapName = "tcp_ongoing_connect_pid" - // ConnCloseFlushed is the map storing closed connections that were already flushed - ConnCloseFlushed BPFMapName = "conn_close_flushed" // ConnCloseEventMap is the map storing connection close events ConnCloseEventMap BPFMapName = "conn_close_event" // TracerStatusMap is the map storing the status of the tracer diff --git a/pkg/network/tracer/connection/ebpf_tracer.go b/pkg/network/tracer/connection/ebpf_tracer.go index 2fbbad37e9059..ba58ada66b19c 100644 --- a/pkg/network/tracer/connection/ebpf_tracer.go +++ b/pkg/network/tracer/connection/ebpf_tracer.go @@ -46,7 +46,6 @@ const ( ) var tcpOngoingConnectMapTTL = 30 * time.Minute.Nanoseconds() -var connClosedFlushMapTTL = 10 * time.Millisecond.Nanoseconds() var EbpfTracerTelemetry = struct { //nolint:revive // TODO connections telemetry.Gauge @@ -75,7 +74,6 @@ var EbpfTracerTelemetry = struct { //nolint:revive // TODO PidCollisions *telemetry.StatCounterWrapper iterationDups telemetry.Counter iterationAborts telemetry.Counter - closedConnFlushedCleaned telemetry.Counter lastTcpFailedConnects *atomic.Int64 //nolint:revive // TODO LastTcpSentMiscounts *atomic.Int64 //nolint:revive // TODO @@ -121,7 +119,6 @@ var EbpfTracerTelemetry = struct { //nolint:revive // TODO telemetry.NewStatCounterWrapper(connTracerModuleName, "pid_collisions", []string{}, "Counter measuring number of process collisions"), telemetry.NewCounter(connTracerModuleName, "iteration_dups", []string{}, "Counter measuring the number of connections iterated more than once"), telemetry.NewCounter(connTracerModuleName, "iteration_aborts", []string{}, "Counter measuring how many times ebpf iteration of connection map was aborted"), - telemetry.NewCounter(connTracerModuleName, "closed_conn_flushed_cleaned", []string{}, "Counter measuring the number of conn_close_flushed entries cleaned in userspace"), atomic.NewInt64(0), atomic.NewInt64(0), atomic.NewInt64(0), @@ -154,7 +151,6 @@ type ebpfTracer struct { // periodically clean the ongoing connection pid map ongoingConnectCleaner *ddebpf.MapCleaner[netebpf.SkpConn, netebpf.PidTs] - connCloseFlushCleaner *ddebpf.MapCleaner[netebpf.ConnTuple, int64] removeTuple *netebpf.ConnTuple @@ -194,7 +190,6 @@ func newEbpfTracer(config *config.Config, _ telemetryComponent.Component) (Trace probes.ConnectionProtocolMap: {MaxEntries: config.MaxTrackedConnections, EditorFlag: manager.EditMaxEntries}, probes.ConnectionTupleToSocketSKBConnMap: {MaxEntries: config.MaxTrackedConnections, EditorFlag: manager.EditMaxEntries}, probes.TCPOngoingConnectPid: {MaxEntries: config.MaxTrackedConnections, EditorFlag: manager.EditMaxEntries}, - probes.ConnCloseFlushed: {MaxEntries: config.MaxTrackedConnections / 4, EditorFlag: manager.EditMaxEntries}, probes.TCPRecvMsgArgsMap: {MaxEntries: config.MaxTrackedConnections / 32, EditorFlag: manager.EditMaxEntries}, }, ConstantEditors: []manager.ConstantEditor{ @@ -260,6 +255,9 @@ func newEbpfTracer(config *config.Config, _ telemetryComponent.Component) (Trace // Failed connections are not supported on prebuilt if tracerType == TracerTypeKProbePrebuilt { + if config.TCPFailedConnectionsEnabled { + log.Warn("Failed TCP connections are not supported with the prebuilt kprobe tracer. Disabling.") + } config.TCPFailedConnectionsEnabled = false } @@ -353,7 +351,6 @@ func (t *ebpfTracer) Stop() { _ = t.m.Stop(manager.CleanAll) t.closeConsumer.Stop() t.ongoingConnectCleaner.Stop() - t.connCloseFlushCleaner.Stop() if t.closeTracer != nil { t.closeTracer() } @@ -720,26 +717,6 @@ func (t *ebpfTracer) setupMapCleaner(m *manager.Manager) { }) t.ongoingConnectCleaner = tcpOngoingConnectPidCleaner - - if t.config.FailedConnectionsSupported() { - connCloseFlushMap, _, err := m.GetMap(probes.ConnCloseFlushed) - if err != nil { - log.Errorf("error getting %v map: %s", probes.ConnCloseFlushed, err) - } - connCloseFlushCleaner, err := ddebpf.NewMapCleaner[netebpf.ConnTuple, int64](connCloseFlushMap, 1024, probes.ConnCloseFlushed, "npm_tracer") - if err != nil { - log.Errorf("error creating map cleaner: %s", err) - return - } - connCloseFlushCleaner.Clean(time.Second*1, nil, nil, func(now int64, _ netebpf.ConnTuple, val int64) bool { - expired := val > 0 && now-val > connClosedFlushMapTTL - if expired { - EbpfTracerTelemetry.closedConnFlushedCleaned.Inc() - } - return expired - }) - t.connCloseFlushCleaner = connCloseFlushCleaner - } } func populateConnStats(stats *network.ConnectionStats, t *netebpf.ConnTuple, s *netebpf.ConnStats, ch *cookieHasher) { diff --git a/pkg/network/tracer/connection/fentry/manager.go b/pkg/network/tracer/connection/fentry/manager.go index 4886a1276d348..b41820b7ffedf 100644 --- a/pkg/network/tracer/connection/fentry/manager.go +++ b/pkg/network/tracer/connection/fentry/manager.go @@ -21,7 +21,6 @@ func initManager(mgr *ddebpf.Manager, connCloseEventHandler ddebpf.EventHandler, {Name: probes.ConnMap}, {Name: probes.TCPStatsMap}, {Name: probes.TCPOngoingConnectPid}, - {Name: probes.ConnCloseFlushed}, {Name: probes.ConnCloseBatchMap}, {Name: "udp_recv_sock"}, {Name: "udpv6_recv_sock"}, diff --git a/pkg/network/tracer/connection/kprobe/manager.go b/pkg/network/tracer/connection/kprobe/manager.go index ceb37144b3c8a..fb2ee4b7bd065 100644 --- a/pkg/network/tracer/connection/kprobe/manager.go +++ b/pkg/network/tracer/connection/kprobe/manager.go @@ -66,7 +66,6 @@ func initManager(mgr *ddebpf.Manager, connCloseEventHandler ddebpf.EventHandler, {Name: probes.ConnMap}, {Name: probes.TCPStatsMap}, {Name: probes.TCPOngoingConnectPid}, - {Name: probes.ConnCloseFlushed}, {Name: probes.ConnCloseBatchMap}, {Name: "udp_recv_sock"}, {Name: "udpv6_recv_sock"}, diff --git a/pkg/network/tracer/tracer_linux_test.go b/pkg/network/tracer/tracer_linux_test.go index fa9ecb469de8a..ea091155c99ab 100644 --- a/pkg/network/tracer/tracer_linux_test.go +++ b/pkg/network/tracer/tracer_linux_test.go @@ -2057,22 +2057,11 @@ func testPreexistingEmptyIncomingConnectionDirection(t *testing.T, config *confi ch <- struct{}{} <-ch - var conn *network.ConnectionStats - require.Eventually(t, func() bool { - conns := getConnections(t, tr) - t.Log(conns) // for debugging failures - conn, _ = findConnection(c.RemoteAddr(), c.LocalAddr(), conns) - return conn != nil - }, 3*time.Second, 100*time.Millisecond) + time.Sleep(250 * time.Millisecond) - m := conn.Monotonic - assert.Zero(t, m.SentBytes, "sent bytes should be 0") - assert.Zero(t, m.RecvBytes, "recv bytes should be 0") - assert.Zero(t, m.SentPackets, "sent packets should be 0") - assert.Zero(t, m.RecvPackets, "recv packets should be 0") - assert.Zero(t, m.TCPEstablished, "tcp established should be 0") - assert.Equal(t, uint16(1), m.TCPClosed, "tcp closed should be 1") - assert.Equal(t, network.INCOMING, conn.Direction, "connection direction should be incoming") + conns := getConnections(t, tr) + _, ok := findConnection(c.RemoteAddr(), c.LocalAddr(), conns) + require.False(t, ok, "expected connection to not be found") } func (s *TracerSuite) TestUDPIncomingDirectionFix() { diff --git a/pkg/network/tracer/tracer_test.go b/pkg/network/tracer/tracer_test.go index 6c09466ef6e48..54cb15d3cf2f7 100644 --- a/pkg/network/tracer/tracer_test.go +++ b/pkg/network/tracer/tracer_test.go @@ -372,6 +372,7 @@ func (s *TracerSuite) TestTCPCollectionDisabled() { require.False(t, ok) } +// tests the case of empty TCP connections func (s *TracerSuite) TestTCPConnsReported() { t := s.T() // Setup @@ -394,17 +395,25 @@ func (s *TracerSuite) TestTCPConnsReported() { defer c.Close() <-processedChan + var forward *network.ConnectionStats + var reverse *network.ConnectionStats + var okForward, okReverse bool // for ebpfless, it takes time for the packet capture to arrive, so poll require.Eventually(t, func() bool { // Test connections := getConnections(t, tr) // Server-side - _, okForward := findConnection(c.RemoteAddr(), c.LocalAddr(), connections) + forward, okForward = findConnection(c.RemoteAddr(), c.LocalAddr(), connections) // Client-side - _, okReverse := findConnection(c.LocalAddr(), c.RemoteAddr(), connections) + reverse, okReverse = findConnection(c.LocalAddr(), c.RemoteAddr(), connections) return okForward && okReverse }, 3*time.Second, 100*time.Millisecond, "connection not found") + assert.Equal(t, network.INCOMING, forward.Direction) + assert.Equal(t, network.OUTGOING, reverse.Direction) + assert.Equal(t, network.StatCounters{TCPEstablished: 1, TCPClosed: 1}, forward.Monotonic) + assert.Equal(t, network.StatCounters{TCPEstablished: 1, TCPClosed: 0}, reverse.Monotonic) + } func (s *TracerSuite) TestUDPSendAndReceive() { From 2e34dd097909c9f01b1f2127468145fec8a49b6f Mon Sep 17 00:00:00 2001 From: Guy Arbitman Date: Mon, 25 Nov 2024 10:05:57 +0200 Subject: [PATCH 006/439] usm: nodejs: Fix linter issues (#31259) --- pkg/network/usm/nodejs.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pkg/network/usm/nodejs.go b/pkg/network/usm/nodejs.go index a47a213ff6382..8cdcb7b27d131 100644 --- a/pkg/network/usm/nodejs.go +++ b/pkg/network/usm/nodejs.go @@ -148,8 +148,11 @@ func (m *nodeJSMonitor) Start() { return } - m.attacher.Start() //nolint:errcheck // TODO - log.Info("Node JS TLS monitoring enabled") + if err := m.attacher.Start(); err != nil { + log.Errorf("cannot start nodeJS attacher: %s", err) + } else { + log.Info("Node JS TLS monitoring enabled") + } } // Stop the nodeJSMonitor. @@ -162,8 +165,8 @@ func (m *nodeJSMonitor) Stop() { m.attacher.Stop() } -// getNodeJSPath checks if the given PID is a NodeJS process and returns the path to the binary -func isNodeJSBinary(path string, procInfo *uprobes.ProcInfo) bool { //nolint:revive // TODO +// isNodeJSBinary returns true if the process is a NodeJS binary. +func isNodeJSBinary(_ string, procInfo *uprobes.ProcInfo) bool { exe, err := procInfo.Exe() if err != nil { return false From dbbfdd9d70e520150476c6d35eabcf3fb9fd77e5 Mon Sep 17 00:00:00 2001 From: Kevin Fairise <132568982+KevinFairise2@users.noreply.github.com> Date: Mon, 25 Nov 2024 09:59:03 +0100 Subject: [PATCH 007/439] All the stack id should be set on payload forwarding (#30274) --- test/new-e2e/pkg/environments/aws/docker/host.go | 1 + test/new-e2e/pkg/environments/aws/ecs/ecs.go | 1 + test/new-e2e/pkg/environments/aws/kubernetes/eks.go | 2 +- test/new-e2e/pkg/environments/aws/kubernetes/kind.go | 2 +- 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/test/new-e2e/pkg/environments/aws/docker/host.go b/test/new-e2e/pkg/environments/aws/docker/host.go index 52d019a59e963..0e39ed8b74b20 100644 --- a/test/new-e2e/pkg/environments/aws/docker/host.go +++ b/test/new-e2e/pkg/environments/aws/docker/host.go @@ -200,6 +200,7 @@ func Run(ctx *pulumi.Context, env *environments.DockerHost, runParams RunParams) // Create Agent if required if params.agentOptions != nil { + params.agentOptions = append(params.agentOptions, dockeragentparams.WithTags([]string{"stackid:" + ctx.Stack()})) if params.testingWorkload { params.agentOptions = append(params.agentOptions, dockeragentparams.WithExtraComposeManifest(dogstatsd.DockerComposeManifest.Name, dogstatsd.DockerComposeManifest.Content)) params.agentOptions = append(params.agentOptions, dockeragentparams.WithEnvironmentVariables(pulumi.StringMap{"HOST_IP": host.Address})) diff --git a/test/new-e2e/pkg/environments/aws/ecs/ecs.go b/test/new-e2e/pkg/environments/aws/ecs/ecs.go index 426b8271f44b0..280920f2196a8 100644 --- a/test/new-e2e/pkg/environments/aws/ecs/ecs.go +++ b/test/new-e2e/pkg/environments/aws/ecs/ecs.go @@ -206,6 +206,7 @@ func Run(ctx *pulumi.Context, env *environments.ECS, params *ProvisionerParams) // Create task and service if params.agentOptions != nil { + params.agentOptions = append(params.agentOptions, ecsagentparams.WithTags([]string{"stackid:" + ctx.Stack()})) if params.fakeintakeOptions != nil { fakeIntakeOptions := []fakeintake.Option{} fakeIntakeOptions = append(fakeIntakeOptions, params.fakeintakeOptions...) diff --git a/test/new-e2e/pkg/environments/aws/kubernetes/eks.go b/test/new-e2e/pkg/environments/aws/kubernetes/eks.go index eef9a51518011..0b75531ec4f73 100644 --- a/test/new-e2e/pkg/environments/aws/kubernetes/eks.go +++ b/test/new-e2e/pkg/environments/aws/kubernetes/eks.go @@ -111,7 +111,7 @@ func EKSRunFunc(ctx *pulumi.Context, env *environments.Kubernetes, params *Provi workloadWithCRDDeps := []pulumi.Resource{cluster} // Deploy the agent if params.agentOptions != nil { - params.agentOptions = append(params.agentOptions, kubernetesagentparams.WithPulumiResourceOptions(utils.PulumiDependsOn(cluster)), kubernetesagentparams.WithFakeintake(fakeIntake)) + params.agentOptions = append(params.agentOptions, kubernetesagentparams.WithPulumiResourceOptions(utils.PulumiDependsOn(cluster)), kubernetesagentparams.WithFakeintake(fakeIntake), kubernetesagentparams.WithTags([]string{"stackid:" + ctx.Stack()})) kubernetesAgent, err := helm.NewKubernetesAgent(&awsEnv, "eks", cluster.KubeProvider, params.agentOptions...) if err != nil { return err diff --git a/test/new-e2e/pkg/environments/aws/kubernetes/kind.go b/test/new-e2e/pkg/environments/aws/kubernetes/kind.go index 53bc559b4db0e..cdf3efa123931 100644 --- a/test/new-e2e/pkg/environments/aws/kubernetes/kind.go +++ b/test/new-e2e/pkg/environments/aws/kubernetes/kind.go @@ -139,7 +139,7 @@ agents: useHostNetwork: true `, kindClusterName) - newOpts := []kubernetesagentparams.Option{kubernetesagentparams.WithHelmValues(helmValues)} + newOpts := []kubernetesagentparams.Option{kubernetesagentparams.WithHelmValues(helmValues), kubernetesagentparams.WithTags([]string{"stackid:" + ctx.Stack()})} params.agentOptions = append(newOpts, params.agentOptions...) agent, err := helm.NewKubernetesAgent(&awsEnv, kindClusterName, kubeProvider, params.agentOptions...) if err != nil { From 6d121b30582708e6bd8856578e4982812b2402fe Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Mon, 25 Nov 2024 10:02:44 +0100 Subject: [PATCH 008/439] [CWS] migrate more fields to the new ancestors iterator code (#31285) --- .../generators/accessors/accessors.tmpl | 73 +- pkg/security/secl/model/accessors_unix.go | 1668 +++++------------ pkg/security/secl/model/accessors_windows.go | 60 +- pkg/security/secl/model/string_array_iter.go | 12 + pkg/security/seclwin/model/accessors_win.go | 60 +- .../seclwin/model/string_array_iter.go | 12 + 6 files changed, 588 insertions(+), 1297 deletions(-) diff --git a/pkg/security/secl/compiler/generators/accessors/accessors.tmpl b/pkg/security/secl/compiler/generators/accessors/accessors.tmpl index 7f5dcfcf231c0..979b8776cc535 100644 --- a/pkg/security/secl/compiler/generators/accessors/accessors.tmpl +++ b/pkg/security/secl/compiler/generators/accessors/accessors.tmpl @@ -131,14 +131,25 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return results } - {{if and $Field.Iterator.IsOrigTypePtr (not $Field.GetArrayPrefix) $Field.Handler }} - results = newAncestorsIterator(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) {{$Field.ReturnType}} { + {{$Event := "nil"}} + {{if $Field.Handler }} + {{$Event = "ev"}} + {{end}} + {{$AncestorFunc := "newAncestorsIterator"}} + {{if $Field.GetArrayPrefix}} + {{$AncestorFunc = "newAncestorsIteratorArray"}} + {{end}} + results = {{$AncestorFunc}}(iterator, ctx, {{$Event}}, func(ev *Event, pce *ProcessCacheEntry) {{$Field.GetArrayPrefix}}{{$Field.ReturnType}} { {{range $Check := $Checks}} {{if $Field.Iterator.Name | HasPrefix $Check}} {{$SubName := $Field.Iterator.Name | TrimPrefix $Check}} {{$Check = $SubName | printf "pce%s"}} if !{{$Check}}() { + {{if $Field.GetArrayPrefix}} + return nil + {{else}} return {{$Field.GetDefaultScalarReturnValue}} + {{end}} } {{end}} {{end}} @@ -146,70 +157,22 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval {{$SubName := $Field.Iterator.Name | TrimPrefix $Field.Name}} {{$Return := $SubName | printf "pce%s"}} - {{$SubName = $Field.Iterator.Name | TrimPrefix $Field.Prefix}} - {{$Handler := $Field.Iterator.Name | TrimPrefix $Field.Handler}} - {{$Return = print "ev.FieldHandlers." $Handler "(ev, &pce" $SubName ")"}} - - {{if eq $Field.ReturnType "int"}} - {{if $Field.IsLength}} - return len({{".length" | TrimSuffix $Return}}) - {{else}} - return int({{$Return}}) - {{end}} - {{else}} - return {{$Return}} - {{end}} - }) - - {{else}} - value := iterator.Front(ctx) - for value != nil { - {{if $Field.Iterator.IsOrigTypePtr}} - element := value - {{else}} - element := *value - {{end}} - - {{range $Check := $Checks}} - {{if $Field.Iterator.Name | HasPrefix $Check}} - {{$SubName := $Field.Iterator.Name | TrimPrefix $Check}} - {{$Check = $SubName | printf "element%s"}} - if !{{$Check}}() { - results = append(results, {{$Field.GetDefaultScalarReturnValue}}) - value = iterator.Next() - continue - } - {{end}} - {{end}} - - {{$SubName := $Field.Iterator.Name | TrimPrefix $Field.Name}} - - {{$Return := $SubName | printf "element%s"}} {{if $Field.Handler }} {{$SubName = $Field.Iterator.Name | TrimPrefix $Field.Prefix}} {{$Handler := $Field.Iterator.Name | TrimPrefix $Field.Handler}} - {{$Return = print "ev.FieldHandlers." $Handler "(ev, &element" $SubName ")"}} + {{$Return = print "ev.FieldHandlers." $Handler "(ev, &pce" $SubName ")"}} {{end}} {{if eq $Field.ReturnType "int"}} {{if $Field.IsLength}} - result := len({{".length" | TrimSuffix $Return}}) + return len({{".length" | TrimSuffix $Return}}) {{else}} - result := int({{$Return}}) + return int({{$Return}}) {{end}} {{else}} - result := {{$Return}} - {{end}} - - {{if not $Field.GetArrayPrefix}} - results = append(results, result) - {{else}} - results = append(results, result...) + return {{$Return}} {{end}} - - value = iterator.Next() - } - {{end}} + }) ctx.{{$Field.GetCacheName}}[field] = results diff --git a/pkg/security/secl/model/accessors_unix.go b/pkg/security/secl/model/accessors_unix.go index f323dd80ea8c0..2d8d69b7f0c7a 100644 --- a/pkg/security/secl/model/accessors_unix.go +++ b/pkg/security/secl/model/accessors_unix.go @@ -4679,13 +4679,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := ev.FieldHandlers.ResolveProcessArgsFlags(ev, &element.ProcessContext.Process) - results = append(results, result...) - value = iterator.Next() - } + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + return ev.FieldHandlers.ResolveProcessArgsFlags(ev, &pce.ProcessContext.Process) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -4710,13 +4706,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := ev.FieldHandlers.ResolveProcessArgsOptions(ev, &element.ProcessContext.Process) - results = append(results, result...) - value = iterator.Next() - } + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + return ev.FieldHandlers.ResolveProcessArgsOptions(ev, &pce.ProcessContext.Process) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -4768,13 +4760,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := ev.FieldHandlers.ResolveProcessArgv(ev, &element.ProcessContext.Process) - results = append(results, result...) - value = iterator.Next() - } + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + return ev.FieldHandlers.ResolveProcessArgv(ev, &pce.ProcessContext.Process) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -4825,13 +4813,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.AUID) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.AUID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -4855,13 +4839,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.CapEffective) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.CapEffective) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -4885,13 +4865,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.CapPermitted) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.CapPermitted) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -4915,13 +4891,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.CGroup.CGroupFile.Inode) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.CGroup.CGroupFile.Inode) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -4945,13 +4917,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.CGroup.CGroupFile.MountID) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.CGroup.CGroupFile.MountID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -5029,13 +4997,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.Comm - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.Comm + }) ctx.StringCache[field] = results return results }, Field: field, @@ -5113,13 +5077,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.EGID) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.EGID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -5143,13 +5103,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.Credentials.EGroup - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.Credentials.EGroup + }) ctx.StringCache[field] = results return results }, Field: field, @@ -5174,13 +5130,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := ev.FieldHandlers.ResolveProcessEnvp(ev, &element.ProcessContext.Process) - results = append(results, result...) - value = iterator.Next() - } + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + return ev.FieldHandlers.ResolveProcessEnvp(ev, &pce.ProcessContext.Process) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -5205,13 +5157,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := ev.FieldHandlers.ResolveProcessEnvs(ev, &element.ProcessContext.Process) - results = append(results, result...) - value = iterator.Next() - } + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + return ev.FieldHandlers.ResolveProcessEnvs(ev, &pce.ProcessContext.Process) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -5262,13 +5210,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.EUID) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.EUID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -5292,13 +5236,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.Credentials.EUser - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.Credentials.EUser + }) ctx.StringCache[field] = results return results }, Field: field, @@ -5325,18 +5265,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.IsNotKworker() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.IsNotKworker() { + return 0 } - result := int(element.ProcessContext.Process.FileEvent.FileFields.CTime) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.FileEvent.FileFields.CTime) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -5396,18 +5330,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.IsNotKworker() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.IsNotKworker() { + return 0 } - result := int(element.ProcessContext.Process.FileEvent.FileFields.GID) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.FileEvent.FileFields.GID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -5468,18 +5396,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.IsNotKworker() { - results = append(results, "") - value = iterator.Next() - continue + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + if !pce.ProcessContext.Process.IsNotKworker() { + return nil } - result := ev.FieldHandlers.ResolveHashesFromEvent(ev, &element.ProcessContext.Process.FileEvent) - results = append(results, result...) - value = iterator.Next() - } + return ev.FieldHandlers.ResolveHashesFromEvent(ev, &pce.ProcessContext.Process.FileEvent) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -5539,18 +5461,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.IsNotKworker() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.IsNotKworker() { + return 0 } - result := int(element.ProcessContext.Process.FileEvent.FileFields.PathKey.Inode) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.FileEvent.FileFields.PathKey.Inode) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -5577,18 +5493,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.IsNotKworker() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.IsNotKworker() { + return 0 } - result := int(element.ProcessContext.Process.FileEvent.FileFields.Mode) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.FileEvent.FileFields.Mode) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -5615,18 +5525,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.IsNotKworker() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.IsNotKworker() { + return 0 } - result := int(element.ProcessContext.Process.FileEvent.FileFields.MTime) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.FileEvent.FileFields.MTime) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -5653,18 +5557,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.IsNotKworker() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.IsNotKworker() { + return 0 } - result := int(element.ProcessContext.Process.FileEvent.FileFields.PathKey.MountID) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.FileEvent.FileFields.PathKey.MountID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -5947,18 +5845,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.IsNotKworker() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.IsNotKworker() { + return 0 } - result := int(element.ProcessContext.Process.FileEvent.FileFields.UID) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.FileEvent.FileFields.UID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -6015,13 +5907,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.FSGID) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.FSGID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -6045,13 +5933,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.Credentials.FSGroup - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.Credentials.FSGroup + }) ctx.StringCache[field] = results return results }, Field: field, @@ -6075,13 +5959,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.FSUID) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.FSUID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -6105,13 +5985,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.Credentials.FSUser - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.Credentials.FSUser + }) ctx.StringCache[field] = results return results }, Field: field, @@ -6135,13 +6011,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.GID) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.GID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -6165,13 +6037,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.Credentials.Group - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.Credentials.Group + }) ctx.StringCache[field] = results return results }, Field: field, @@ -6198,18 +6066,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.HasInterpreter() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.HasInterpreter() { + return 0 } - result := int(element.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.CTime) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.CTime) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -6269,18 +6131,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.HasInterpreter() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.HasInterpreter() { + return 0 } - result := int(element.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.GID) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.GID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -6341,18 +6197,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.HasInterpreter() { - results = append(results, "") - value = iterator.Next() - continue + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + if !pce.ProcessContext.Process.HasInterpreter() { + return nil } - result := ev.FieldHandlers.ResolveHashesFromEvent(ev, &element.ProcessContext.Process.LinuxBinprm.FileEvent) - results = append(results, result...) - value = iterator.Next() - } + return ev.FieldHandlers.ResolveHashesFromEvent(ev, &pce.ProcessContext.Process.LinuxBinprm.FileEvent) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -6412,18 +6262,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.HasInterpreter() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.HasInterpreter() { + return 0 } - result := int(element.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.PathKey.Inode) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.PathKey.Inode) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -6450,18 +6294,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.HasInterpreter() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.HasInterpreter() { + return 0 } - result := int(element.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.Mode) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.Mode) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -6488,18 +6326,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.HasInterpreter() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.HasInterpreter() { + return 0 } - result := int(element.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.MTime) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.MTime) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -6526,18 +6358,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.HasInterpreter() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.HasInterpreter() { + return 0 } - result := int(element.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.PathKey.MountID) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.PathKey.MountID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -6820,18 +6646,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.HasInterpreter() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.HasInterpreter() { + return 0 } - result := int(element.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.UID) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.UID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -6888,13 +6708,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.IsExec - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) bool { + return pce.ProcessContext.Process.IsExec + }) ctx.BoolCache[field] = results return results }, Field: field, @@ -6918,13 +6734,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.PIDContext.IsKworker - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) bool { + return pce.ProcessContext.Process.PIDContext.IsKworker + }) ctx.BoolCache[field] = results return results }, Field: field, @@ -6984,13 +6796,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.PIDContext.Pid) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.PIDContext.Pid) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -7014,13 +6822,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.PPid) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.PPid) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -7044,13 +6848,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.PIDContext.Tid) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.PIDContext.Tid) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -7074,13 +6874,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.TTYName - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.TTYName + }) ctx.StringCache[field] = results return results }, Field: field, @@ -7104,13 +6900,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.UID) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.UID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -7134,13 +6926,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.Credentials.User - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.Credentials.User + }) ctx.StringCache[field] = results return results }, Field: field, @@ -7165,13 +6953,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := ev.FieldHandlers.ResolveK8SGroups(ev, &element.ProcessContext.Process.UserSession) - results = append(results, result...) - value = iterator.Next() - } + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + return ev.FieldHandlers.ResolveK8SGroups(ev, &pce.ProcessContext.Process.UserSession) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -9216,13 +9000,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := ev.FieldHandlers.ResolveProcessArgsFlags(ev, &element.ProcessContext.Process) - results = append(results, result...) - value = iterator.Next() - } + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + return ev.FieldHandlers.ResolveProcessArgsFlags(ev, &pce.ProcessContext.Process) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -9247,13 +9027,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := ev.FieldHandlers.ResolveProcessArgsOptions(ev, &element.ProcessContext.Process) - results = append(results, result...) - value = iterator.Next() - } + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + return ev.FieldHandlers.ResolveProcessArgsOptions(ev, &pce.ProcessContext.Process) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -9305,13 +9081,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := ev.FieldHandlers.ResolveProcessArgv(ev, &element.ProcessContext.Process) - results = append(results, result...) - value = iterator.Next() - } + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + return ev.FieldHandlers.ResolveProcessArgv(ev, &pce.ProcessContext.Process) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -9362,13 +9134,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.AUID) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.AUID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -9392,13 +9160,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.CapEffective) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.CapEffective) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -9422,13 +9186,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.CapPermitted) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.CapPermitted) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -9452,13 +9212,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.CGroup.CGroupFile.Inode) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.CGroup.CGroupFile.Inode) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -9482,13 +9238,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.CGroup.CGroupFile.MountID) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.CGroup.CGroupFile.MountID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -9566,13 +9318,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.Comm - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.Comm + }) ctx.StringCache[field] = results return results }, Field: field, @@ -9650,13 +9398,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.EGID) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.EGID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -9680,13 +9424,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.Credentials.EGroup - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.Credentials.EGroup + }) ctx.StringCache[field] = results return results }, Field: field, @@ -9711,13 +9451,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := ev.FieldHandlers.ResolveProcessEnvp(ev, &element.ProcessContext.Process) - results = append(results, result...) - value = iterator.Next() - } + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + return ev.FieldHandlers.ResolveProcessEnvp(ev, &pce.ProcessContext.Process) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -9742,13 +9478,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := ev.FieldHandlers.ResolveProcessEnvs(ev, &element.ProcessContext.Process) - results = append(results, result...) - value = iterator.Next() - } + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + return ev.FieldHandlers.ResolveProcessEnvs(ev, &pce.ProcessContext.Process) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -9799,13 +9531,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.EUID) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.EUID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -9829,13 +9557,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.Credentials.EUser - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.Credentials.EUser + }) ctx.StringCache[field] = results return results }, Field: field, @@ -9862,18 +9586,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.IsNotKworker() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.IsNotKworker() { + return 0 } - result := int(element.ProcessContext.Process.FileEvent.FileFields.CTime) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.FileEvent.FileFields.CTime) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -9933,18 +9651,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.IsNotKworker() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.IsNotKworker() { + return 0 } - result := int(element.ProcessContext.Process.FileEvent.FileFields.GID) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.FileEvent.FileFields.GID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -10005,18 +9717,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.IsNotKworker() { - results = append(results, "") - value = iterator.Next() - continue + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + if !pce.ProcessContext.Process.IsNotKworker() { + return nil } - result := ev.FieldHandlers.ResolveHashesFromEvent(ev, &element.ProcessContext.Process.FileEvent) - results = append(results, result...) - value = iterator.Next() - } + return ev.FieldHandlers.ResolveHashesFromEvent(ev, &pce.ProcessContext.Process.FileEvent) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -10076,18 +9782,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.IsNotKworker() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.IsNotKworker() { + return 0 } - result := int(element.ProcessContext.Process.FileEvent.FileFields.PathKey.Inode) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.FileEvent.FileFields.PathKey.Inode) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -10114,18 +9814,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.IsNotKworker() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.IsNotKworker() { + return 0 } - result := int(element.ProcessContext.Process.FileEvent.FileFields.Mode) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.FileEvent.FileFields.Mode) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -10152,18 +9846,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.IsNotKworker() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.IsNotKworker() { + return 0 } - result := int(element.ProcessContext.Process.FileEvent.FileFields.MTime) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.FileEvent.FileFields.MTime) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -10190,18 +9878,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.IsNotKworker() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.IsNotKworker() { + return 0 } - result := int(element.ProcessContext.Process.FileEvent.FileFields.PathKey.MountID) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.FileEvent.FileFields.PathKey.MountID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -10484,18 +10166,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.IsNotKworker() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.IsNotKworker() { + return 0 } - result := int(element.ProcessContext.Process.FileEvent.FileFields.UID) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.FileEvent.FileFields.UID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -10552,13 +10228,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.FSGID) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.FSGID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -10582,13 +10254,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.Credentials.FSGroup - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.Credentials.FSGroup + }) ctx.StringCache[field] = results return results }, Field: field, @@ -10612,13 +10280,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.FSUID) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.FSUID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -10642,13 +10306,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.Credentials.FSUser - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.Credentials.FSUser + }) ctx.StringCache[field] = results return results }, Field: field, @@ -10672,13 +10332,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.GID) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.GID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -10702,13 +10358,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.Credentials.Group - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.Credentials.Group + }) ctx.StringCache[field] = results return results }, Field: field, @@ -10735,18 +10387,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.HasInterpreter() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.HasInterpreter() { + return 0 } - result := int(element.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.CTime) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.CTime) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -10806,18 +10452,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.HasInterpreter() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.HasInterpreter() { + return 0 } - result := int(element.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.GID) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.GID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -10878,18 +10518,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.HasInterpreter() { - results = append(results, "") - value = iterator.Next() - continue + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + if !pce.ProcessContext.Process.HasInterpreter() { + return nil } - result := ev.FieldHandlers.ResolveHashesFromEvent(ev, &element.ProcessContext.Process.LinuxBinprm.FileEvent) - results = append(results, result...) - value = iterator.Next() - } + return ev.FieldHandlers.ResolveHashesFromEvent(ev, &pce.ProcessContext.Process.LinuxBinprm.FileEvent) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -10949,18 +10583,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.HasInterpreter() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.HasInterpreter() { + return 0 } - result := int(element.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.PathKey.Inode) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.PathKey.Inode) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -10987,18 +10615,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.HasInterpreter() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.HasInterpreter() { + return 0 } - result := int(element.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.Mode) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.Mode) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -11025,18 +10647,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.HasInterpreter() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.HasInterpreter() { + return 0 } - result := int(element.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.MTime) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.MTime) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -11063,18 +10679,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.HasInterpreter() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.HasInterpreter() { + return 0 } - result := int(element.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.PathKey.MountID) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.PathKey.MountID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -11357,18 +10967,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.HasInterpreter() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.HasInterpreter() { + return 0 } - result := int(element.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.UID) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.UID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -11425,13 +11029,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.IsExec - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) bool { + return pce.ProcessContext.Process.IsExec + }) ctx.BoolCache[field] = results return results }, Field: field, @@ -11455,13 +11055,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.PIDContext.IsKworker - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) bool { + return pce.ProcessContext.Process.PIDContext.IsKworker + }) ctx.BoolCache[field] = results return results }, Field: field, @@ -11521,13 +11117,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.PIDContext.Pid) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.PIDContext.Pid) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -11551,13 +11143,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.PPid) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.PPid) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -11581,13 +11169,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.PIDContext.Tid) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.PIDContext.Tid) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -11611,13 +11195,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.TTYName - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.TTYName + }) ctx.StringCache[field] = results return results }, Field: field, @@ -11641,13 +11221,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.UID) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.UID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -11671,13 +11247,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.Credentials.User - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.Credentials.User + }) ctx.StringCache[field] = results return results }, Field: field, @@ -11702,13 +11274,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := ev.FieldHandlers.ResolveK8SGroups(ev, &element.ProcessContext.Process.UserSession) - results = append(results, result...) - value = iterator.Next() - } + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + return ev.FieldHandlers.ResolveK8SGroups(ev, &pce.ProcessContext.Process.UserSession) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -14907,13 +14475,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := ev.FieldHandlers.ResolveProcessArgsFlags(ev, &element.ProcessContext.Process) - results = append(results, result...) - value = iterator.Next() - } + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + return ev.FieldHandlers.ResolveProcessArgsFlags(ev, &pce.ProcessContext.Process) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -14938,13 +14502,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := ev.FieldHandlers.ResolveProcessArgsOptions(ev, &element.ProcessContext.Process) - results = append(results, result...) - value = iterator.Next() - } + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + return ev.FieldHandlers.ResolveProcessArgsOptions(ev, &pce.ProcessContext.Process) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -14996,13 +14556,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := ev.FieldHandlers.ResolveProcessArgv(ev, &element.ProcessContext.Process) - results = append(results, result...) - value = iterator.Next() - } + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + return ev.FieldHandlers.ResolveProcessArgv(ev, &pce.ProcessContext.Process) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -15053,13 +14609,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.AUID) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.AUID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -15083,13 +14635,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.CapEffective) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.CapEffective) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -15113,13 +14661,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.CapPermitted) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.CapPermitted) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -15143,13 +14687,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.CGroup.CGroupFile.Inode) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.CGroup.CGroupFile.Inode) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -15173,13 +14713,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.CGroup.CGroupFile.MountID) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.CGroup.CGroupFile.MountID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -15257,13 +14793,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.Comm - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.Comm + }) ctx.StringCache[field] = results return results }, Field: field, @@ -15341,13 +14873,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.EGID) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.EGID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -15371,13 +14899,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.Credentials.EGroup - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.Credentials.EGroup + }) ctx.StringCache[field] = results return results }, Field: field, @@ -15402,13 +14926,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := ev.FieldHandlers.ResolveProcessEnvp(ev, &element.ProcessContext.Process) - results = append(results, result...) - value = iterator.Next() - } + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + return ev.FieldHandlers.ResolveProcessEnvp(ev, &pce.ProcessContext.Process) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -15433,13 +14953,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := ev.FieldHandlers.ResolveProcessEnvs(ev, &element.ProcessContext.Process) - results = append(results, result...) - value = iterator.Next() - } + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + return ev.FieldHandlers.ResolveProcessEnvs(ev, &pce.ProcessContext.Process) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -15490,13 +15006,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.EUID) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.EUID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -15520,13 +15032,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.Credentials.EUser - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.Credentials.EUser + }) ctx.StringCache[field] = results return results }, Field: field, @@ -15553,18 +15061,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.IsNotKworker() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.IsNotKworker() { + return 0 } - result := int(element.ProcessContext.Process.FileEvent.FileFields.CTime) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.FileEvent.FileFields.CTime) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -15624,18 +15126,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.IsNotKworker() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.IsNotKworker() { + return 0 } - result := int(element.ProcessContext.Process.FileEvent.FileFields.GID) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.FileEvent.FileFields.GID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -15696,18 +15192,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.IsNotKworker() { - results = append(results, "") - value = iterator.Next() - continue + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + if !pce.ProcessContext.Process.IsNotKworker() { + return nil } - result := ev.FieldHandlers.ResolveHashesFromEvent(ev, &element.ProcessContext.Process.FileEvent) - results = append(results, result...) - value = iterator.Next() - } + return ev.FieldHandlers.ResolveHashesFromEvent(ev, &pce.ProcessContext.Process.FileEvent) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -15767,18 +15257,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.IsNotKworker() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.IsNotKworker() { + return 0 } - result := int(element.ProcessContext.Process.FileEvent.FileFields.PathKey.Inode) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.FileEvent.FileFields.PathKey.Inode) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -15805,18 +15289,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.IsNotKworker() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.IsNotKworker() { + return 0 } - result := int(element.ProcessContext.Process.FileEvent.FileFields.Mode) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.FileEvent.FileFields.Mode) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -15843,18 +15321,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.IsNotKworker() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.IsNotKworker() { + return 0 } - result := int(element.ProcessContext.Process.FileEvent.FileFields.MTime) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.FileEvent.FileFields.MTime) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -15881,18 +15353,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.IsNotKworker() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.IsNotKworker() { + return 0 } - result := int(element.ProcessContext.Process.FileEvent.FileFields.PathKey.MountID) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.FileEvent.FileFields.PathKey.MountID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -16175,18 +15641,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.IsNotKworker() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.IsNotKworker() { + return 0 } - result := int(element.ProcessContext.Process.FileEvent.FileFields.UID) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.FileEvent.FileFields.UID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -16243,13 +15703,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.FSGID) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.FSGID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -16273,13 +15729,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.Credentials.FSGroup - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.Credentials.FSGroup + }) ctx.StringCache[field] = results return results }, Field: field, @@ -16303,13 +15755,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.FSUID) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.FSUID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -16333,13 +15781,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.Credentials.FSUser - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.Credentials.FSUser + }) ctx.StringCache[field] = results return results }, Field: field, @@ -16363,13 +15807,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.GID) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.GID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -16393,13 +15833,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.Credentials.Group - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.Credentials.Group + }) ctx.StringCache[field] = results return results }, Field: field, @@ -16426,18 +15862,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.HasInterpreter() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.HasInterpreter() { + return 0 } - result := int(element.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.CTime) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.CTime) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -16497,18 +15927,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.HasInterpreter() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.HasInterpreter() { + return 0 } - result := int(element.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.GID) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.GID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -16569,18 +15993,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.HasInterpreter() { - results = append(results, "") - value = iterator.Next() - continue + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + if !pce.ProcessContext.Process.HasInterpreter() { + return nil } - result := ev.FieldHandlers.ResolveHashesFromEvent(ev, &element.ProcessContext.Process.LinuxBinprm.FileEvent) - results = append(results, result...) - value = iterator.Next() - } + return ev.FieldHandlers.ResolveHashesFromEvent(ev, &pce.ProcessContext.Process.LinuxBinprm.FileEvent) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -16640,18 +16058,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.HasInterpreter() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.HasInterpreter() { + return 0 } - result := int(element.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.PathKey.Inode) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.PathKey.Inode) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -16678,18 +16090,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.HasInterpreter() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.HasInterpreter() { + return 0 } - result := int(element.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.Mode) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.Mode) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -16716,18 +16122,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.HasInterpreter() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.HasInterpreter() { + return 0 } - result := int(element.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.MTime) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.MTime) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -16754,18 +16154,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.HasInterpreter() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.HasInterpreter() { + return 0 } - result := int(element.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.PathKey.MountID) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.PathKey.MountID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -17048,18 +16442,12 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - if !element.ProcessContext.Process.HasInterpreter() { - results = append(results, 0) - value = iterator.Next() - continue + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + if !pce.ProcessContext.Process.HasInterpreter() { + return 0 } - result := int(element.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.UID) - results = append(results, result) - value = iterator.Next() - } + return int(pce.ProcessContext.Process.LinuxBinprm.FileEvent.FileFields.UID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -17116,13 +16504,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.IsExec - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) bool { + return pce.ProcessContext.Process.IsExec + }) ctx.BoolCache[field] = results return results }, Field: field, @@ -17146,13 +16530,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.PIDContext.IsKworker - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) bool { + return pce.ProcessContext.Process.PIDContext.IsKworker + }) ctx.BoolCache[field] = results return results }, Field: field, @@ -17212,13 +16592,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.PIDContext.Pid) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.PIDContext.Pid) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -17242,13 +16618,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.PPid) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.PPid) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -17272,13 +16644,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.PIDContext.Tid) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.PIDContext.Tid) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -17302,13 +16670,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.TTYName - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.TTYName + }) ctx.StringCache[field] = results return results }, Field: field, @@ -17332,13 +16696,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.Credentials.UID) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.Credentials.UID) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -17362,13 +16722,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.Credentials.User - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.Credentials.User + }) ctx.StringCache[field] = results return results }, Field: field, @@ -17393,13 +16749,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := ev.FieldHandlers.ResolveK8SGroups(ev, &element.ProcessContext.Process.UserSession) - results = append(results, result...) - value = iterator.Next() - } + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + return ev.FieldHandlers.ResolveK8SGroups(ev, &pce.ProcessContext.Process.UserSession) + }) ctx.StringCache[field] = results return results }, Field: field, diff --git a/pkg/security/secl/model/accessors_windows.go b/pkg/security/secl/model/accessors_windows.go index e1b81df60702e..9bd0e32d553b9 100644 --- a/pkg/security/secl/model/accessors_windows.go +++ b/pkg/security/secl/model/accessors_windows.go @@ -831,13 +831,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.ContainerID - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.ContainerID + }) ctx.StringCache[field] = results return results }, Field: field, @@ -889,13 +885,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := ev.FieldHandlers.ResolveProcessEnvp(ev, &element.ProcessContext.Process) - results = append(results, result...) - value = iterator.Next() - } + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + return ev.FieldHandlers.ResolveProcessEnvp(ev, &pce.ProcessContext.Process) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -920,13 +912,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := ev.FieldHandlers.ResolveProcessEnvs(ev, &element.ProcessContext.Process) - results = append(results, result...) - value = iterator.Next() - } + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + return ev.FieldHandlers.ResolveProcessEnvs(ev, &pce.ProcessContext.Process) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -1071,13 +1059,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.PIDContext.Pid) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.PIDContext.Pid) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -1101,13 +1085,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.PPid) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.PPid) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -1158,13 +1138,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.OwnerSidString - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.OwnerSidString + }) ctx.StringCache[field] = results return results }, Field: field, diff --git a/pkg/security/secl/model/string_array_iter.go b/pkg/security/secl/model/string_array_iter.go index 0664c2737b478..c27537255c729 100644 --- a/pkg/security/secl/model/string_array_iter.go +++ b/pkg/security/secl/model/string_array_iter.go @@ -17,3 +17,15 @@ func newAncestorsIterator[T any](iter *ProcessAncestorsIterator, ctx *eval.Conte return results } + +func newAncestorsIteratorArray[T any](iter *ProcessAncestorsIterator, ctx *eval.Context, ev *Event, perIter func(ev *Event, pce *ProcessCacheEntry) []T) []T { + results := make([]T, 0, ctx.CachedAncestorsCount) + ancestorsCount := 0 + for pce := iter.Front(ctx); pce != nil; pce = iter.Next() { + results = append(results, perIter(ev, pce)...) + ancestorsCount++ + } + ctx.CachedAncestorsCount = ancestorsCount + + return results +} diff --git a/pkg/security/seclwin/model/accessors_win.go b/pkg/security/seclwin/model/accessors_win.go index 174ed175a5976..4b14373018f29 100644 --- a/pkg/security/seclwin/model/accessors_win.go +++ b/pkg/security/seclwin/model/accessors_win.go @@ -829,13 +829,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.ContainerID - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.ContainerID + }) ctx.StringCache[field] = results return results }, Field: field, @@ -887,13 +883,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := ev.FieldHandlers.ResolveProcessEnvp(ev, &element.ProcessContext.Process) - results = append(results, result...) - value = iterator.Next() - } + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + return ev.FieldHandlers.ResolveProcessEnvp(ev, &pce.ProcessContext.Process) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -918,13 +910,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result...) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := ev.FieldHandlers.ResolveProcessEnvs(ev, &element.ProcessContext.Process) - results = append(results, result...) - value = iterator.Next() - } + results = newAncestorsIteratorArray(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) []string { + return ev.FieldHandlers.ResolveProcessEnvs(ev, &pce.ProcessContext.Process) + }) ctx.StringCache[field] = results return results }, Field: field, @@ -1069,13 +1057,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.PIDContext.Pid) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.PIDContext.Pid) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -1099,13 +1083,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := int(element.ProcessContext.Process.PPid) - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) int { + return int(pce.ProcessContext.Process.PPid) + }) ctx.IntCache[field] = results return results }, Field: field, @@ -1156,13 +1136,9 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval results = append(results, result) return results } - value := iterator.Front(ctx) - for value != nil { - element := value - result := element.ProcessContext.Process.OwnerSidString - results = append(results, result) - value = iterator.Next() - } + results = newAncestorsIterator(iterator, ctx, nil, func(ev *Event, pce *ProcessCacheEntry) string { + return pce.ProcessContext.Process.OwnerSidString + }) ctx.StringCache[field] = results return results }, Field: field, diff --git a/pkg/security/seclwin/model/string_array_iter.go b/pkg/security/seclwin/model/string_array_iter.go index 0664c2737b478..c27537255c729 100644 --- a/pkg/security/seclwin/model/string_array_iter.go +++ b/pkg/security/seclwin/model/string_array_iter.go @@ -17,3 +17,15 @@ func newAncestorsIterator[T any](iter *ProcessAncestorsIterator, ctx *eval.Conte return results } + +func newAncestorsIteratorArray[T any](iter *ProcessAncestorsIterator, ctx *eval.Context, ev *Event, perIter func(ev *Event, pce *ProcessCacheEntry) []T) []T { + results := make([]T, 0, ctx.CachedAncestorsCount) + ancestorsCount := 0 + for pce := iter.Front(ctx); pce != nil; pce = iter.Next() { + results = append(results, perIter(ev, pce)...) + ancestorsCount++ + } + ctx.CachedAncestorsCount = ancestorsCount + + return results +} From e922ced75699f3d2ee22e63b56f1e76f1c16a686 Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Mon, 25 Nov 2024 10:09:23 +0100 Subject: [PATCH 009/439] [CWS] fix docker image parsing in ptracer (#31400) --- pkg/security/ptracer/container_context.go | 24 +++++++++-------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/pkg/security/ptracer/container_context.go b/pkg/security/ptracer/container_context.go index c0d8c175b0372..e6a1375aaf6cd 100644 --- a/pkg/security/ptracer/container_context.go +++ b/pkg/security/ptracer/container_context.go @@ -10,10 +10,10 @@ package ptracer import ( "encoding/json" "os" - "strings" "time" "github.com/DataDog/datadog-agent/pkg/security/proto/ebpfless" + "github.com/DataDog/datadog-agent/pkg/util/containers/image" ) // ECSMetadata defines ECS metadata @@ -68,20 +68,14 @@ func newContainerContext(containerID string) (*ebpfless.ContainerContext, error) ctx.Name = data.DockerName } if data.Image != "" { - image := data.Image - lastSlash := strings.LastIndex(image, "/") - lastColon := strings.LastIndex(image, ":") - if lastColon > -1 && lastColon > lastSlash { - ctx.ImageTag = image[lastColon+1:] - image = image[:lastColon] - } - if lastSlash > -1 { - ctx.ImageShortName = image[lastSlash+1:] - } else { - ctx.ImageShortName = image - } - if ctx.ImageShortName != "" && ctx.ImageTag == "" { - ctx.ImageTag = "latest" + _, _, shortImageName, tag, err := image.SplitImageName(data.Image) + if err == nil { + ctx.ImageShortName = shortImageName + if tag != "" { + ctx.ImageTag = tag + } else { + ctx.ImageTag = "latest" + } } } } From 052b83d132e73b3f582c3bc4c7af04814377084e Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Mon, 25 Nov 2024 10:14:22 +0100 Subject: [PATCH 010/439] unbundle agent and remove associated code (#31228) --- cmd/agent/launcher/launcher.c | 32 ------------ cmd/agent/main.go | 51 +------------------ cmd/agent/main_common.go | 13 ----- cmd/agent/main_linux_cgo.go | 42 ---------------- cmd/agent/main_linux_no_cgo.go | 22 -------- cmd/agent/process_agent.go | 26 ---------- cmd/agent/security_agent.go | 23 --------- cmd/agent/system_probe.go | 23 --------- cmd/agent/trace_agent.go | 23 --------- docs/dev/agent_build.md | 24 --------- omnibus/config/software/datadog-agent.rb | 36 ++++--------- tasks/agent.py | 64 +++--------------------- 12 files changed, 20 insertions(+), 359 deletions(-) delete mode 100644 cmd/agent/launcher/launcher.c delete mode 100644 cmd/agent/main_common.go delete mode 100644 cmd/agent/main_linux_cgo.go delete mode 100644 cmd/agent/main_linux_no_cgo.go delete mode 100644 cmd/agent/process_agent.go delete mode 100644 cmd/agent/security_agent.go delete mode 100644 cmd/agent/system_probe.go delete mode 100644 cmd/agent/trace_agent.go diff --git a/cmd/agent/launcher/launcher.c b/cmd/agent/launcher/launcher.c deleted file mode 100644 index 0be5b6ca184e3..0000000000000 --- a/cmd/agent/launcher/launcher.c +++ /dev/null @@ -1,32 +0,0 @@ -#include -#include -#include -#include - -#ifndef DD_AGENT_PATH -#error DD_AGENT_PATH must be defined -#endif - -#ifndef DD_AGENT -#define DD_AGENT "agent" -#endif - -int main(int argc, char **argv) { - if (argc > 1) { - argv[0] = DD_AGENT; - } else { - argv = malloc(sizeof(char *) * 2); - argv[0] = DD_AGENT; - argv[1] = NULL; - } - - if (strlen(DD_AGENT_PATH) == 0) { - fprintf(stderr, "Cannot determine agent location\n"); - exit(1); - } - - setenv("DD_BUNDLED_AGENT", DD_AGENT, 0); - - execvp(DD_AGENT_PATH, argv); - return 1; -} diff --git a/cmd/agent/main.go b/cmd/agent/main.go index 5a8c90176bee5..f2b5343e787ba 100644 --- a/cmd/agent/main.go +++ b/cmd/agent/main.go @@ -9,62 +9,13 @@ package main import ( - "fmt" "os" - "path" - "strings" "github.com/DataDog/datadog-agent/cmd/agent/command" "github.com/DataDog/datadog-agent/cmd/agent/subcommands" "github.com/DataDog/datadog-agent/cmd/internal/runcmd" - "github.com/spf13/cobra" ) -var agents = map[string]func() *cobra.Command{} - -func registerAgent(names []string, getCommand func() *cobra.Command) { - for _, name := range names { - agents[name] = getCommand - } -} - -func coreAgentMain() *cobra.Command { - return command.MakeCommand(subcommands.AgentSubcommands()) -} - -func init() { - registerAgent([]string{"agent", "datadog-agent", "dd-agent"}, coreAgentMain) -} - func main() { - process := strings.TrimSpace(os.Getenv("DD_BUNDLED_AGENT")) - - if process == "" { - if len(os.Args) > 0 { - process = strings.TrimSpace(path.Base(os.Args[0])) - } - - if process == "" { - executable, err := os.Executable() - if err != nil { - fmt.Fprintf(os.Stderr, "Failed to determine the Agent process name: %s\n", err.Error()) - os.Exit(1) - } - process = executable - } - - process = strings.TrimSuffix(process, path.Ext(process)) - } - - agentCmdBuilder := agents[process] - if agentCmdBuilder == nil { - fmt.Fprintf(os.Stderr, "Invoked as '%s', acting as main Agent.\n", process) - agentCmdBuilder = coreAgentMain - } - - rootCmd := agentCmdBuilder() - if err := setProcessName(process); err != nil { - fmt.Fprintf(os.Stderr, "Failed to set process name as '%s': %s\n", process, err) - } - os.Exit(runcmd.Run(rootCmd)) + os.Exit(runcmd.Run(command.MakeCommand(subcommands.AgentSubcommands()))) } diff --git a/cmd/agent/main_common.go b/cmd/agent/main_common.go deleted file mode 100644 index 2159c28f80cbf..0000000000000 --- a/cmd/agent/main_common.go +++ /dev/null @@ -1,13 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -//go:build !linux - -package main - -// nolint: deadcode, unused -func setProcessName(_ string) error { - return nil -} diff --git a/cmd/agent/main_linux_cgo.go b/cmd/agent/main_linux_cgo.go deleted file mode 100644 index 421565bf6d0c1..0000000000000 --- a/cmd/agent/main_linux_cgo.go +++ /dev/null @@ -1,42 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -//go:build linux && cgo - -package main - -/* -#include -#include -#include - -int prctl_err = 0; - -int set_process_name () __attribute__((constructor)); - -int set_process_name() -{ - const char *name = getenv("DD_BUNDLED_AGENT"); - if (name != NULL) { - int ret = prctl(PR_SET_NAME, name, 0, 0); - if (!ret) { - prctl_err = errno; - } - return ret; - } - return 0; -} -*/ -import ( - "C" -) -import "syscall" - -func setProcessName(_ string) error { - if C.prctl_err == 0 { - return nil - } - return syscall.Errno(C.prctl_err) -} diff --git a/cmd/agent/main_linux_no_cgo.go b/cmd/agent/main_linux_no_cgo.go deleted file mode 100644 index 5259fc616d3d0..0000000000000 --- a/cmd/agent/main_linux_no_cgo.go +++ /dev/null @@ -1,22 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -//go:build linux && !cgo - -package main - -import ( - "syscall" - "unsafe" - - "golang.org/x/sys/unix" -) - -func setProcessName(process string) error { - processName := make([]byte, len(process)+1) - copy(processName, process) - _, _, err := syscall.AllThreadsSyscall(unix.SYS_PRCTL, unix.PR_SET_NAME, uintptr(unsafe.Pointer(&processName[0])), 0) - return err -} diff --git a/cmd/agent/process_agent.go b/cmd/agent/process_agent.go deleted file mode 100644 index e9cf9867eeacb..0000000000000 --- a/cmd/agent/process_agent.go +++ /dev/null @@ -1,26 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -//go:build !windows && bundle_process_agent - -// Main package for the agent binary -package main - -import ( - "os" - - processcommand "github.com/DataDog/datadog-agent/cmd/process-agent/command" - processsubcommands "github.com/DataDog/datadog-agent/cmd/process-agent/subcommands" - "github.com/DataDog/datadog-agent/pkg/util/flavor" - "github.com/spf13/cobra" -) - -func init() { - registerAgent([]string{"process-agent"}, func() *cobra.Command { - flavor.SetFlavor(flavor.ProcessAgent) - os.Args = processcommand.FixDeprecatedFlags(os.Args, os.Stdout) - return processcommand.MakeCommand(processsubcommands.ProcessAgentSubcommands(), processcommand.UseWinParams, processcommand.RootCmdRun) - }) -} diff --git a/cmd/agent/security_agent.go b/cmd/agent/security_agent.go deleted file mode 100644 index 134f04647b3d5..0000000000000 --- a/cmd/agent/security_agent.go +++ /dev/null @@ -1,23 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -//go:build !windows && bundle_security_agent - -// Main package for the agent binary -package main - -import ( - seccommand "github.com/DataDog/datadog-agent/cmd/security-agent/command" - secsubcommands "github.com/DataDog/datadog-agent/cmd/security-agent/subcommands" - "github.com/DataDog/datadog-agent/pkg/util/flavor" - "github.com/spf13/cobra" -) - -func init() { - registerAgent([]string{"security-agent"}, func() *cobra.Command { - flavor.SetFlavor(flavor.SecurityAgent) - return seccommand.MakeCommand(secsubcommands.SecurityAgentSubcommands()) - }) -} diff --git a/cmd/agent/system_probe.go b/cmd/agent/system_probe.go deleted file mode 100644 index 4248bf5a7286c..0000000000000 --- a/cmd/agent/system_probe.go +++ /dev/null @@ -1,23 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -//go:build !windows && bundle_system_probe - -// Main package for the agent binary -package main - -import ( - sysprobecommand "github.com/DataDog/datadog-agent/cmd/system-probe/command" - sysprobesubcommands "github.com/DataDog/datadog-agent/cmd/system-probe/subcommands" - "github.com/spf13/cobra" -) - -func init() { - registerAgent([]string{"system-probe"}, func() *cobra.Command { - rootCmd := sysprobecommand.MakeCommand(sysprobesubcommands.SysprobeSubcommands()) - sysprobecommand.SetDefaultCommandIfNonePresent(rootCmd) - return rootCmd - }) -} diff --git a/cmd/agent/trace_agent.go b/cmd/agent/trace_agent.go deleted file mode 100644 index 2ac852e6e2b5f..0000000000000 --- a/cmd/agent/trace_agent.go +++ /dev/null @@ -1,23 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -//go:build !windows && bundle_trace_agent - -// Main package for the agent binary -package main - -import ( - "os" - - tracecommand "github.com/DataDog/datadog-agent/cmd/trace-agent/command" - "github.com/spf13/cobra" -) - -func init() { - registerAgent([]string{"trace-agent"}, func() *cobra.Command { - os.Args = tracecommand.FixDeprecatedFlags(os.Args, os.Stdout) - return tracecommand.MakeRootCommand() - }) -} diff --git a/docs/dev/agent_build.md b/docs/dev/agent_build.md index 1896724f75403..26f0126ee1911 100644 --- a/docs/dev/agent_build.md +++ b/docs/dev/agent_build.md @@ -52,30 +52,6 @@ Also note that the trace agent needs to be built and run separately. For more in We use `pkg-config` to make compilers and linkers aware of Python. The required .pc files are provided automatically when building python through omnibus. -As an option, the Agent can combine multiple functionalities into a single binary to reduce -the space used on disk. The `DD_BUNDLED_AGENT` environment variable is used to select -which functionality to enable. For instance, if set to `process-agent`, it will act as the process Agent. -If the environment variable is not defined, the process name is used as a fallback. -As the last resort meaning, the executable will behave as the 'main' Agent. - -Different combinations can be obtained through the usage of build tags. As an example, -building the Agent with the `bundle_process_agent` and `bundle_security_agent` will produce -a binary that has the process Agent and security Agent capabilities. - -The `--bundle` argument can be used to override the default set of functionalities bundled -into the Agent binary. For instance, to override the defaults and bundle only the process and -and the security Agents: - -``` -deva agent.build --bundle process-agent --bundle security-agent -``` - -To disable bundling entirely: - -``` -deva agent.build --bundle agent -``` - ## Testing Agent changes in containerized environments Building an Agent Docker image from scratch through an embedded build is a slow process. diff --git a/omnibus/config/software/datadog-agent.rb b/omnibus/config/software/datadog-agent.rb index ccf7da2ae1dfb..b84585631fd75 100644 --- a/omnibus/config/software/datadog-agent.rb +++ b/omnibus/config/software/datadog-agent.rb @@ -30,11 +30,6 @@ build do license :project_license - bundled_agents = [] - if heroku_target? - bundled_agents = ["process-agent"] - end - # set GOPATH on the omnibus source dir for this software gopath = Pathname.new(project_dir) + '../../../..' flavor_arg = ENV['AGENT_FLAVOR'] @@ -83,16 +78,15 @@ command "inv -e rtloader.clean" command "inv -e rtloader.make --install-prefix \"#{install_dir}/embedded\" --cmake-options '-DCMAKE_CXX_FLAGS:=\"-D_GLIBCXX_USE_CXX11_ABI=0\" -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_FIND_FRAMEWORK:STRING=NEVER -DPython3_EXECUTABLE=#{install_dir}/embedded/bin/python3'", :env => env command "inv -e rtloader.install" - bundle_arg = bundled_agents ? bundled_agents.map { |k| "--bundle #{k}" }.join(" ") : "--bundle agent" include_sds = "" if linux_target? include_sds = "--include-sds" # we only support SDS on Linux targets for now end - command "inv -e agent.build --exclude-rtloader #{include_sds} --major-version #{major_version_arg} --rebuild --no-development --install-path=#{install_dir} --embedded-path=#{default_install_dir}/embedded --python-home-2=#{default_install_dir}/embedded --python-home-3=#{default_install_dir}/embedded --flavor #{flavor_arg} #{bundle_arg}", env: env + command "inv -e agent.build --exclude-rtloader #{include_sds} --major-version #{major_version_arg} --rebuild --no-development --install-path=#{install_dir} --embedded-path=#{default_install_dir}/embedded --python-home-2=#{default_install_dir}/embedded --python-home-3=#{default_install_dir}/embedded --flavor #{flavor_arg}", env: env if heroku_target? - command "inv -e agent.build --exclude-rtloader --major-version #{major_version_arg} --rebuild --no-development --install-path=#{install_dir} --embedded-path=#{install_dir}/embedded --python-home-2=#{install_dir}/embedded --python-home-3=#{install_dir}/embedded --flavor #{flavor_arg} --agent-bin=bin/agent/core-agent --bundle agent", env: env + command "inv -e agent.build --exclude-rtloader --major-version #{major_version_arg} --rebuild --no-development --install-path=#{install_dir} --embedded-path=#{install_dir}/embedded --python-home-2=#{install_dir}/embedded --python-home-3=#{install_dir}/embedded --flavor #{flavor_arg} --agent-bin=bin/agent/core-agent", env: env end end @@ -121,10 +115,8 @@ mkdir Omnibus::Config.package_dir() unless Dir.exists?(Omnibus::Config.package_dir()) end - if not bundled_agents.include? "trace-agent" - platform = windows_arch_i386? ? "x86" : "x64" - command "invoke trace-agent.build --install-path=#{install_dir} --major-version #{major_version_arg} --flavor #{flavor_arg}", :env => env - end + platform = windows_arch_i386? ? "x86" : "x64" + command "invoke trace-agent.build --install-path=#{install_dir} --major-version #{major_version_arg} --flavor #{flavor_arg}", :env => env if windows_target? copy 'bin/trace-agent/trace-agent.exe', "#{install_dir}/bin/agent" @@ -133,9 +125,7 @@ end # Process agent - if not bundled_agents.include? "process-agent" - command "invoke -e process-agent.build --install-path=#{install_dir} --major-version #{major_version_arg} --flavor #{flavor_arg}", :env => env - end + command "invoke -e process-agent.build --install-path=#{install_dir} --major-version #{major_version_arg} --flavor #{flavor_arg}", :env => env if windows_target? copy 'bin/process-agent/process-agent.exe', "#{install_dir}/bin/agent" @@ -146,12 +136,10 @@ # System-probe sysprobe_support = (not heroku_target?) && (linux_target? || (windows_target? && do_windows_sysprobe != "")) if sysprobe_support - if not bundled_agents.include? "system-probe" - if windows_target? - command "invoke -e system-probe.build", env: env - elsif linux_target? - command "invoke -e system-probe.build-sysprobe-binary --install-path=#{install_dir}", env: env - end + if windows_target? + command "invoke -e system-probe.build", env: env + elsif linux_target? + command "invoke -e system-probe.build-sysprobe-binary --install-path=#{install_dir}", env: env end if windows_target? @@ -172,9 +160,7 @@ # Security agent secagent_support = (not heroku_target?) and (not windows_target? or (ENV['WINDOWS_DDPROCMON_DRIVER'] and not ENV['WINDOWS_DDPROCMON_DRIVER'].empty?)) if secagent_support - if not bundled_agents.include? "security-agent" - command "invoke -e security-agent.build --install-path=#{install_dir} --major-version #{major_version_arg}", :env => env - end + command "invoke -e security-agent.build --install-path=#{install_dir} --major-version #{major_version_arg}", :env => env if windows_target? copy 'bin/security-agent/security-agent.exe', "#{install_dir}/bin/agent" else @@ -190,7 +176,7 @@ copy 'bin/cws-instrumentation/cws-instrumentation', "#{install_dir}/embedded/bin" end - # OTel agent - can never be bundled + # OTel agent if ot_target? unless windows_target? command "invoke -e otel-agent.build", :env => env diff --git a/tasks/agent.py b/tasks/agent.py index 674208e0b1f14..b3e80cc14c360 100644 --- a/tasks/agent.py +++ b/tasks/agent.py @@ -21,8 +21,6 @@ REPO_PATH, bin_name, get_build_flags, - get_embedded_path, - get_goenv, get_version, gitlab_section, ) @@ -115,7 +113,7 @@ LAST_DIRECTORY_COMMIT_PATTERN = "git -C {integrations_dir} rev-list -1 HEAD {integration}" -@task(iterable=['bundle']) +@task @run_on_devcontainer def build( ctx, @@ -137,7 +135,6 @@ def build( go_mod="mod", windows_sysprobe=False, cmake_options='', - bundle=None, bundle_ebpf=False, agent_bin=None, run_on=None, # noqa: U100, F841. Used by the run_on_devcontainer decorator @@ -172,7 +169,6 @@ def build( major_version=major_version, ) - bundled_agents = ["agent"] if sys.platform == 'win32': # Important for x-compiling env["CGO_ENABLED"] = "1" @@ -185,30 +181,19 @@ def build( vars=vars, out="cmd/agent/rsrc.syso", ) - else: - bundled_agents += bundle or [] if flavor.is_iot(): # Iot mode overrides whatever passed through `--build-exclude` and `--build-include` build_tags = get_default_build_tags(build="agent", flavor=flavor) else: - all_tags = set() - if bundle_ebpf and "system-probe" in bundled_agents: - all_tags.add("ebpf_bindata") - - for build in bundled_agents: - all_tags.add("bundle_" + build.replace("-", "_")) - include_tags = ( - get_default_build_tags(build=build, flavor=flavor) - if build_include is None - else filter_incompatible_tags(build_include.split(",")) - ) - - exclude_tags = [] if build_exclude is None else build_exclude.split(",") - build_tags = get_build_tags(include_tags, exclude_tags) + include_tags = ( + get_default_build_tags(build="agent", flavor=flavor) + if build_include is None + else filter_incompatible_tags(build_include.split(",")) + ) - all_tags |= set(build_tags) - build_tags = list(all_tags) + exclude_tags = [] if build_exclude is None else build_exclude.split(",") + build_tags = get_build_tags(include_tags, exclude_tags) cmd = "go build -mod={go_mod} {race_opt} {build_type} -tags \"{go_build_tags}\" " @@ -233,23 +218,6 @@ def build( with gitlab_section("Build agent", collapsed=True): ctx.run(cmd.format(**args), env=env) - if embedded_path is None: - embedded_path = get_embedded_path(ctx) - assert embedded_path, "Failed to find embedded path" - - for build in bundled_agents: - if build == "agent": - continue - - bundled_agent_dir = os.path.join(BIN_DIR, build) - bundled_agent_bin = os.path.join(bundled_agent_dir, bin_name(build)) - agent_fullpath = os.path.normpath(os.path.join(embedded_path, "..", "bin", "agent", bin_name("agent"))) - - if not os.path.exists(os.path.dirname(bundled_agent_bin)): - os.mkdir(os.path.dirname(bundled_agent_bin)) - - create_launcher(ctx, build, agent_fullpath, bundled_agent_bin) - with gitlab_section("Generate configuration files", collapsed=True): render_config( ctx, @@ -262,22 +230,6 @@ def build( ) -def create_launcher(ctx, agent, src, dst): - cc = get_goenv(ctx, "CC") - if not cc: - print("Failed to find C compiler") - raise Exit(code=1) - - cmd = "{cc} -DDD_AGENT_PATH='\"{agent_bin}\"' -DDD_AGENT='\"{agent}\"' -o {launcher_bin} ./cmd/agent/launcher/launcher.c" - args = { - "cc": cc, - "agent": agent, - "agent_bin": src, - "launcher_bin": dst, - } - ctx.run(cmd.format(**args)) - - def render_config(ctx, env, flavor, skip_assets, build_tags, development, windows_sysprobe): # Remove cross-compiling bits to render config env.update({"GOOS": "", "GOARCH": ""}) From 410b1ae7d7aca9a119d9f9709d4091373f4e0890 Mon Sep 17 00:00:00 2001 From: Vincent Whitchurch Date: Mon, 25 Nov 2024 10:28:35 +0100 Subject: [PATCH 011/439] istio: Remove wait for exe symlink (#31373) --- pkg/network/usm/istio.go | 6 +++-- pkg/network/usm/utils/pathutils.go | 38 ------------------------------ 2 files changed, 4 insertions(+), 40 deletions(-) delete mode 100644 pkg/network/usm/utils/pathutils.go diff --git a/pkg/network/usm/istio.go b/pkg/network/usm/istio.go index 3da1a13a0273e..6fff6b6fd493b 100644 --- a/pkg/network/usm/istio.go +++ b/pkg/network/usm/istio.go @@ -9,17 +9,19 @@ package usm import ( "fmt" + "os" "strings" "sync" "time" + manager "github.com/DataDog/ebpf-manager" + "github.com/DataDog/datadog-agent/pkg/network/config" "github.com/DataDog/datadog-agent/pkg/network/usm/consts" "github.com/DataDog/datadog-agent/pkg/network/usm/utils" "github.com/DataDog/datadog-agent/pkg/process/monitor" "github.com/DataDog/datadog-agent/pkg/util/kernel" "github.com/DataDog/datadog-agent/pkg/util/log" - manager "github.com/DataDog/ebpf-manager" ) const ( @@ -250,7 +252,7 @@ func (m *istioMonitor) handleProcessExec(pid uint32) { func (m *istioMonitor) getEnvoyPath(pid uint32) string { exePath := fmt.Sprintf("%s/%d/exe", m.procRoot, pid) - envoyPath, err := utils.ResolveSymlink(exePath) + envoyPath, err := os.Readlink(exePath) if err != nil || !strings.Contains(envoyPath, m.envoyCmd) { return "" } diff --git a/pkg/network/usm/utils/pathutils.go b/pkg/network/usm/utils/pathutils.go deleted file mode 100644 index 088ac110f500b..0000000000000 --- a/pkg/network/usm/utils/pathutils.go +++ /dev/null @@ -1,38 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2024-present Datadog, Inc. - -//go:build linux - -package utils - -import ( - "os" - "time" -) - -// ResolveSymlink returns the target path of the symbolic link specified by linkPath. -// If the link target is relative, it returns the relative path without resolving it to an absolute path. -// If the link target cannot be resolved immediately, it retries for a short period. -func ResolveSymlink(linkPath string) (string, error) { - targetPath, err := os.Readlink(linkPath) - if err != nil { - // If Readlink fails, retry for up to 10 milliseconds in case of transient issues. - end := time.Now().Add(10 * time.Millisecond) - for end.After(time.Now()) { - targetPath, err = os.Readlink(linkPath) - if err == nil { - break - } - time.Sleep(time.Millisecond) - } - } - - if err != nil { - // we can't access to the binary path here (pid probably ended already) - // there are not much we can do, and we don't want to flood the logs - return "", err - } - return targetPath, nil -} From 58a3a639b3239101cca1c9eb6a4265b11fffc261 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20Beauz=C3=A9e-Luyssen?= Date: Mon, 25 Nov 2024 10:42:38 +0100 Subject: [PATCH 012/439] dockerfiles: fix permissions to avoid world writable files (#31407) --- Dockerfiles/agent/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfiles/agent/Dockerfile b/Dockerfiles/agent/Dockerfile index d6ff4b8b83827..b7cc98210c40e 100644 --- a/Dockerfiles/agent/Dockerfile +++ b/Dockerfiles/agent/Dockerfile @@ -216,8 +216,8 @@ COPY init-stage3-host-pid /etc/s6/init/init-stage3-host-pid # Copy BouncyCastle Java FIPS provider binaries and configuration COPY --from=extract /opt/bouncycastle-fips/target/dependency/*.jar /opt/bouncycastle-fips/ -COPY bouncycastle-fips/java.security /opt/bouncycastle-fips/ -COPY bouncycastle-fips/bc-fips.policy /opt/bouncycastle-fips/ +COPY --chmod=644 bouncycastle-fips/java.security /opt/bouncycastle-fips/ +COPY --chmod=644 bouncycastle-fips/bc-fips.policy /opt/bouncycastle-fips/ RUN if [ -z "$WITH_JMX" ]; then rm -rf /opt/bouncycastle-fips; fi # Update if optional OTel Agent process should not run From 7e3f609509e2b28f4301f91e799ab86113ee68ce Mon Sep 17 00:00:00 2001 From: Vincent Whitchurch Date: Mon, 25 Nov 2024 11:21:39 +0100 Subject: [PATCH 013/439] discovery: Fix some cases of gunicorn detection (#31389) --- .../corechecks/servicediscovery/usm/python.go | 14 ++++++++++++-- .../servicediscovery/usm/service_test.go | 11 +++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/pkg/collector/corechecks/servicediscovery/usm/python.go b/pkg/collector/corechecks/servicediscovery/usm/python.go index c2ef6002dd31a..16d774c191e01 100644 --- a/pkg/collector/corechecks/servicediscovery/usm/python.go +++ b/pkg/collector/corechecks/servicediscovery/usm/python.go @@ -8,6 +8,7 @@ package usm import ( "io/fs" "path" + "path/filepath" "strings" ) @@ -19,7 +20,8 @@ const ( ) type pythonDetector struct { - ctx DetectionContext + ctx DetectionContext + gunicorn detector } type gunicornDetector struct { @@ -31,10 +33,18 @@ func newGunicornDetector(ctx DetectionContext) detector { } func newPythonDetector(ctx DetectionContext) detector { - return &pythonDetector{ctx: ctx} + return &pythonDetector{ctx: ctx, gunicorn: newGunicornDetector(ctx)} } func (p pythonDetector) detect(args []string) (ServiceMetadata, bool) { + // When Gunicorn is invoked via its wrapper script the command line ends up + // looking like the example below, so redirect to the Gunicorn detector for + // this case: + // /usr/bin/python3 /usr/bin/gunicorn foo:app() + if len(args) > 0 && filepath.Base(args[0]) == "gunicorn" { + return p.gunicorn.detect(args[1:]) + } + var ( prevArgIsFlag bool moduleFlag bool diff --git a/pkg/collector/corechecks/servicediscovery/usm/service_test.go b/pkg/collector/corechecks/servicediscovery/usm/service_test.go index 26769bbccf3ea..a5f2b96ac10b0 100644 --- a/pkg/collector/corechecks/servicediscovery/usm/service_test.go +++ b/pkg/collector/corechecks/servicediscovery/usm/service_test.go @@ -535,6 +535,17 @@ func TestExtractServiceMetadata(t *testing.T) { lang: language.Python, expectedGeneratedName: "test", }, + { + name: "gunicorn simple with python", + cmdline: []string{ + "/usr/bin/python3", + "/usr/bin/gunicorn", + "--workers=2", + "foo:create_app()", + }, + lang: language.Python, + expectedGeneratedName: "foo", + }, { name: "gunicorn from name", cmdline: []string{ From bd259ed3d3ce2e18631bdb38ecfd9872a1108ba3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillermo=20Juli=C3=A1n?= Date: Mon, 25 Nov 2024 12:29:19 +0100 Subject: [PATCH 014/439] [EBPF] gpu: mark TestVectorAddProgramDetected as flaky (#31387) --- test/new-e2e/tests/gpu/gpu_test.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/new-e2e/tests/gpu/gpu_test.go b/test/new-e2e/tests/gpu/gpu_test.go index ca886450572c8..74b1229437a46 100644 --- a/test/new-e2e/tests/gpu/gpu_test.go +++ b/test/new-e2e/tests/gpu/gpu_test.go @@ -17,6 +17,7 @@ import ( "github.com/DataDog/test-infra-definitions/scenarios/aws/ec2" "github.com/stretchr/testify/assert" + "github.com/DataDog/datadog-agent/pkg/util/testutil/flake" "github.com/DataDog/datadog-agent/test/fakeintake/client" "github.com/DataDog/test-infra-definitions/components/datadog/agentparams" @@ -151,6 +152,8 @@ func (v *gpuSuite) TestGPUSysprobeEndpointIsResponding() { } func (v *gpuSuite) TestVectorAddProgramDetected() { + flake.Mark(v.T()) + _ = v.runCudaDockerWorkload() v.EventuallyWithT(func(c *assert.CollectT) { From b14368d45da8f242d0de2c4c31e11ed81ec7d20e Mon Sep 17 00:00:00 2001 From: maxime mouial Date: Mon, 25 Nov 2024 13:03:42 +0100 Subject: [PATCH 015/439] Remove last direct use of UnmarshalKey in favor of pkg/config/structure (#31318) --- comp/core/config/go.mod | 39 ++++++------ comp/core/log/impl-trace/go.mod | 39 ++++++------ comp/core/log/impl/go.mod | 39 ++++++------ comp/core/log/mock/go.mod | 8 ++- comp/core/status/statusimpl/go.mod | 35 +++++----- comp/otelcol/converter/impl/go.mod | 35 +++++----- comp/otelcol/otlp/testutil/go.mod | 39 ++++++------ comp/serializer/compression/go.mod | 39 ++++++------ pkg/config/mock/go.mod | 37 ++++++----- pkg/config/model/viper_test.go | 30 ++------- pkg/config/setup/config.go | 7 +- pkg/config/setup/go.mod | 37 ++++++----- pkg/config/structure/go.mod | 28 -------- pkg/config/structure/go.sum | 88 -------------------------- pkg/config/structure/unmarshal_test.go | 55 +++++++++------- pkg/metrics/go.mod | 36 +++++------ pkg/util/flavor/go.mod | 39 +++++++----- pkg/util/http/go.mod | 39 ++++++------ pkg/util/log/setup/go.mod | 39 ++++++------ 19 files changed, 312 insertions(+), 396 deletions(-) diff --git a/comp/core/config/go.mod b/comp/core/config/go.mod index 65d84a372cda3..0a75d9ae4ecc3 100644 --- a/comp/core/config/go.mod +++ b/comp/core/config/go.mod @@ -34,15 +34,15 @@ replace ( require ( github.com/DataDog/datadog-agent/comp/core/flare/types v0.56.0-rc.3 - github.com/DataDog/datadog-agent/comp/core/secrets v0.56.0-rc.3 + github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 github.com/DataDog/datadog-agent/comp/core/telemetry v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/config/mock v0.58.0-devel - github.com/DataDog/datadog-agent/pkg/config/model v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/config/setup v0.56.0-rc.3 + github.com/DataDog/datadog-agent/pkg/config/mock v0.59.0 + github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 + github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 github.com/DataDog/datadog-agent/pkg/util/defaultpaths v0.0.0-00010101000000-000000000000 github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/optional v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/winutil v0.57.1 + github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 github.com/DataDog/viper v1.13.5 github.com/stretchr/testify v1.9.0 go.uber.org/fx v1.22.2 @@ -52,18 +52,19 @@ require ( github.com/DataDog/datadog-agent/comp/api/api/def v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/core/flare/builder v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/def v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/config/env v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.0.0-00010101000000-000000000000 // indirect - github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.0.0-00010101000000-000000000000 // indirect - github.com/DataDog/datadog-agent/pkg/util/executable v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/filesystem v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/pointer v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/system v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/system/socket v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/env v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/structure v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect @@ -119,3 +120,5 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/config/structure => ../../../pkg/config/structure diff --git a/comp/core/log/impl-trace/go.mod b/comp/core/log/impl-trace/go.mod index 57465c6b11dbc..c45242beb09d5 100644 --- a/comp/core/log/impl-trace/go.mod +++ b/comp/core/log/impl-trace/go.mod @@ -42,10 +42,10 @@ replace ( require ( github.com/DataDog/datadog-agent/comp/core/config v0.56.0-rc.3 github.com/DataDog/datadog-agent/comp/core/log/def v0.0.0-00010101000000-000000000000 - github.com/DataDog/datadog-agent/pkg/config/env v0.57.1 // indirect + github.com/DataDog/datadog-agent/pkg/config/env v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/trace v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.57.1 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect; v2.6 github.com/stretchr/testify v1.9.0 go.uber.org/fx v1.22.2 // indirect @@ -53,28 +53,29 @@ require ( require ( github.com/DataDog/datadog-agent/comp/def v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/config/mock v0.58.0-devel + github.com/DataDog/datadog-agent/pkg/config/mock v0.59.0 github.com/DataDog/datadog-agent/pkg/util/log/setup v0.0.0-00010101000000-000000000000 ) require ( github.com/DataDog/datadog-agent/comp/core/flare/builder v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/core/flare/types v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/comp/core/secrets v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/config/model v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.0.0-00010101000000-000000000000 // indirect - github.com/DataDog/datadog-agent/pkg/config/setup v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.0.0-00010101000000-000000000000 // indirect - github.com/DataDog/datadog-agent/pkg/util/executable v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/filesystem v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/optional v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/pointer v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/system v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/system/socket v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.57.1 // indirect + github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/structure v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect @@ -114,3 +115,5 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/config/structure => ../../../../pkg/config/structure diff --git a/comp/core/log/impl/go.mod b/comp/core/log/impl/go.mod index 9a612362ecef3..fec2fc328f3a9 100644 --- a/comp/core/log/impl/go.mod +++ b/comp/core/log/impl/go.mod @@ -38,8 +38,8 @@ require ( github.com/DataDog/datadog-agent/comp/core/config v0.0.0-00010101000000-000000000000 github.com/DataDog/datadog-agent/comp/core/log/def v0.0.0-00010101000000-000000000000 github.com/DataDog/datadog-agent/comp/def v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/config/mock v0.58.0-devel - github.com/DataDog/datadog-agent/pkg/util/log v0.57.1 + github.com/DataDog/datadog-agent/pkg/config/mock v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/DataDog/datadog-agent/pkg/util/log/setup v0.0.0-00010101000000-000000000000 github.com/stretchr/testify v1.9.0 ) @@ -47,23 +47,24 @@ require ( require ( github.com/DataDog/datadog-agent/comp/core/flare/builder v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/core/flare/types v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/comp/core/secrets v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/config/env v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/config/model v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.0.0-00010101000000-000000000000 // indirect - github.com/DataDog/datadog-agent/pkg/config/setup v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.0.0-00010101000000-000000000000 // indirect - github.com/DataDog/datadog-agent/pkg/util/executable v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/filesystem v0.57.1 // indirect + github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/env v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/structure v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/optional v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/pointer v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/system v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/system/socket v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.57.1 // indirect + github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect @@ -105,3 +106,5 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/config/structure => ../../../../pkg/config/structure diff --git a/comp/core/log/mock/go.mod b/comp/core/log/mock/go.mod index 1f159ed729b30..d0cb2bea6de23 100644 --- a/comp/core/log/mock/go.mod +++ b/comp/core/log/mock/go.mod @@ -31,16 +31,16 @@ replace ( require ( github.com/DataDog/datadog-agent/comp/core/log/def v0.0.0-00010101000000-000000000000 - github.com/DataDog/datadog-agent/pkg/util/log v0.57.1 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/DataDog/datadog-agent/pkg/util/log/setup v0.0.0-00010101000000-000000000000 github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 ) require ( - github.com/DataDog/datadog-agent/pkg/config/model v0.57.1 // indirect + github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.60.0-devel // indirect github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.60.0-devel // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.57.1 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect @@ -58,3 +58,5 @@ require ( golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/config/structure => ../../../../pkg/config/structure diff --git a/comp/core/status/statusimpl/go.mod b/comp/core/status/statusimpl/go.mod index ff85bf5908838..072b8d21e8b9d 100644 --- a/comp/core/status/statusimpl/go.mod +++ b/comp/core/status/statusimpl/go.mod @@ -46,8 +46,8 @@ require ( github.com/DataDog/datadog-agent/comp/core/log/def v0.0.0-00010101000000-000000000000 github.com/DataDog/datadog-agent/comp/core/log/mock v0.0.0-00010101000000-000000000000 github.com/DataDog/datadog-agent/comp/core/status v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/config/model v0.57.1 - github.com/DataDog/datadog-agent/pkg/config/setup v0.57.1 + github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 + github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 github.com/DataDog/datadog-agent/pkg/util/flavor v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 @@ -59,24 +59,25 @@ require ( require ( github.com/DataDog/datadog-agent/comp/core/flare/builder v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/comp/core/secrets v0.57.1 // indirect + github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect github.com/DataDog/datadog-agent/comp/def v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/config/env v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/config/mock v0.58.0-devel // indirect + github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/env v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/mock v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.60.0-devel // indirect + github.com/DataDog/datadog-agent/pkg/config/structure v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.60.0-devel // indirect - github.com/DataDog/datadog-agent/pkg/util/executable v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/filesystem v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.57.1 // indirect + github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/log/setup v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/optional v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/pointer v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/system v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/system/socket v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.57.1 // indirect + github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect @@ -119,3 +120,5 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/config/structure => ../../../../pkg/config/structure diff --git a/comp/otelcol/converter/impl/go.mod b/comp/otelcol/converter/impl/go.mod index f34f001d4f690..b7fd685b06954 100644 --- a/comp/otelcol/converter/impl/go.mod +++ b/comp/otelcol/converter/impl/go.mod @@ -55,26 +55,27 @@ require ( require ( github.com/DataDog/datadog-agent/comp/core/flare/builder v0.56.2 // indirect github.com/DataDog/datadog-agent/comp/core/flare/types v0.56.2 // indirect - github.com/DataDog/datadog-agent/comp/core/secrets v0.56.2 // indirect + github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect github.com/DataDog/datadog-agent/comp/def v0.56.2 // indirect - github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.56.2 // indirect - github.com/DataDog/datadog-agent/pkg/config/env v0.56.2 // indirect - github.com/DataDog/datadog-agent/pkg/config/mock v0.58.0-devel // indirect - github.com/DataDog/datadog-agent/pkg/config/model v0.56.2 // indirect + github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/env v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/mock v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/config/setup v0.56.2 // indirect + github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/structure v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/executable v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/filesystem v0.56.2 // indirect + github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.2 // indirect - github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.56.2 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/optional v0.56.2 // indirect - github.com/DataDog/datadog-agent/pkg/util/pointer v0.56.2 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/system v0.56.2 // indirect - github.com/DataDog/datadog-agent/pkg/util/system/socket v0.56.2 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.57.1 // indirect + github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect @@ -124,3 +125,5 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/config/structure => ../../../../pkg/config/structure diff --git a/comp/otelcol/otlp/testutil/go.mod b/comp/otelcol/otlp/testutil/go.mod index dc5d7a8cf82a0..e0fd7698c8e22 100644 --- a/comp/otelcol/otlp/testutil/go.mod +++ b/comp/otelcol/otlp/testutil/go.mod @@ -33,9 +33,9 @@ replace ( ) require ( - github.com/DataDog/datadog-agent/pkg/config/mock v0.57.1 - github.com/DataDog/datadog-agent/pkg/config/model v0.57.1 - github.com/DataDog/datadog-agent/pkg/config/setup v0.57.1 + github.com/DataDog/datadog-agent/pkg/config/mock v0.59.0 + github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 + github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 github.com/DataDog/datadog-agent/pkg/proto v0.55.0 github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0 github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 @@ -46,21 +46,22 @@ require ( ) require ( - github.com/DataDog/datadog-agent/comp/core/secrets v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/config/env v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.0.0-00010101000000-000000000000 // indirect - github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.0.0-00010101000000-000000000000 // indirect - github.com/DataDog/datadog-agent/pkg/util/executable v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/filesystem v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/optional v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/pointer v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/system v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/system/socket v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.57.1 // indirect + github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/env v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/structure v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect @@ -108,3 +109,5 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/config/structure => ../../../../pkg/config/structure diff --git a/comp/serializer/compression/go.mod b/comp/serializer/compression/go.mod index 76592511da4c1..a3d1f520fc928 100644 --- a/comp/serializer/compression/go.mod +++ b/comp/serializer/compression/go.mod @@ -36,7 +36,7 @@ replace ( require ( github.com/DataDog/datadog-agent/comp/core/config v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/log v0.57.1 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/DataDog/zstd v1.5.5 go.uber.org/fx v1.22.2 ) @@ -44,24 +44,25 @@ require ( require ( github.com/DataDog/datadog-agent/comp/core/flare/builder v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/core/flare/types v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/comp/core/secrets v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect github.com/DataDog/datadog-agent/comp/def v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/config/env v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/config/mock v0.58.0-devel // indirect - github.com/DataDog/datadog-agent/pkg/config/model v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.0.0-00010101000000-000000000000 // indirect - github.com/DataDog/datadog-agent/pkg/config/setup v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.0.0-00010101000000-000000000000 // indirect - github.com/DataDog/datadog-agent/pkg/util/executable v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/filesystem v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/optional v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/pointer v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/system v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/system/socket v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.57.1 // indirect + github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/env v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/mock v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/structure v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect @@ -103,3 +104,5 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/config/structure => ../../../pkg/config/structure diff --git a/pkg/config/mock/go.mod b/pkg/config/mock/go.mod index f5a44d27f0486..bb0c1e4ad23ff 100644 --- a/pkg/config/mock/go.mod +++ b/pkg/config/mock/go.mod @@ -30,27 +30,28 @@ replace ( ) require ( - github.com/DataDog/datadog-agent/pkg/config/model v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/config/setup v0.0.0-00010101000000-000000000000 + github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 + github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 github.com/stretchr/testify v1.9.0 ) require ( - github.com/DataDog/datadog-agent/comp/core/secrets v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/config/env v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.0.0-00010101000000-000000000000 // indirect - github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.0.0-00010101000000-000000000000 // indirect - github.com/DataDog/datadog-agent/pkg/util/executable v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/filesystem v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/optional v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/pointer v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/system v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/system/socket v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/env v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/structure v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect @@ -86,3 +87,5 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/config/structure => ../structure diff --git a/pkg/config/model/viper_test.go b/pkg/config/model/viper_test.go index 7babb3453ffbe..acd73ca26503c 100644 --- a/pkg/config/model/viper_test.go +++ b/pkg/config/model/viper_test.go @@ -6,7 +6,6 @@ package model import ( - "fmt" "os" "reflect" "strings" @@ -39,7 +38,7 @@ func TestConcurrencySetGet(t *testing.T) { assert.Equal(t, config.GetString("foo"), "bar") } -func TestConcurrencyUnmarshalling(t *testing.T) { +func TestConcurrencyUnmarshalling(_ *testing.T) { config := NewConfig("test", "DD", strings.NewReplacer(".", "_")) // nolint: forbidigo config.SetDefault("foo", map[string]string{}) @@ -47,39 +46,20 @@ func TestConcurrencyUnmarshalling(t *testing.T) { config.SetDefault("baz", "test") var wg sync.WaitGroup - errs := make(chan error, 1000) wg.Add(2) - go func() { + getter := func() { defer wg.Done() for n := 0; n <= 1000; n++ { config.GetStringMapString("foo") } - }() - - var s *[]string - go func() { - defer wg.Done() - for n := 0; n <= 1000; n++ { - // TODO: This should use pkg/config/structure.UnmarshalKey but that creates a circular dependency. - err := config.UnmarshalKey("foo", &s) - if err != nil { - errs <- fmt.Errorf("unable to decode into struct, %w", err) - return - } - } - }() + } + go getter() + go getter() go func() { wg.Wait() - close(errs) }() - - for err := range errs { - if err != nil { - t.Fatal(err) - } - } } func TestGetConfigEnvVars(t *testing.T) { diff --git a/pkg/config/setup/config.go b/pkg/config/setup/config.go index 1fef714a5b6a1..977b2e346a286 100644 --- a/pkg/config/setup/config.go +++ b/pkg/config/setup/config.go @@ -29,6 +29,7 @@ import ( pkgconfigenv "github.com/DataDog/datadog-agent/pkg/config/env" pkgconfigmodel "github.com/DataDog/datadog-agent/pkg/config/model" "github.com/DataDog/datadog-agent/pkg/config/nodetreemodel" + "github.com/DataDog/datadog-agent/pkg/config/structure" "github.com/DataDog/datadog-agent/pkg/config/teeconfig" "github.com/DataDog/datadog-agent/pkg/util/hostname/validate" "github.com/DataDog/datadog-agent/pkg/util/log" @@ -1709,8 +1710,7 @@ func LoadProxyFromEnv(config pkgconfigmodel.Config) { var isSet bool p := &pkgconfigmodel.Proxy{} if isSet = config.IsSet("proxy"); isSet { - // TODO: This should use pkg/config/structure.UnmarshalKey but that creates a circular dependency. - if err := config.UnmarshalKey("proxy", p); err != nil { + if err := structure.UnmarshalKey(config, "proxy", p); err != nil { isSet = false log.Errorf("Could not load proxy setting from the configuration (ignoring): %s", err) } @@ -2471,8 +2471,7 @@ func IsCLCRunner(config pkgconfigmodel.Reader) bool { } var cps []ConfigurationProviders - // TODO: This should use pkg/config/structure.UnmarshalKey but that creates a circular dependency. - if err := config.UnmarshalKey("config_providers", &cps); err != nil { + if err := structure.UnmarshalKey(config, "config_providers", &cps); err != nil { return false } diff --git a/pkg/config/setup/go.mod b/pkg/config/setup/go.mod index 87a62ea9ac948..02848ce73647c 100644 --- a/pkg/config/setup/go.mod +++ b/pkg/config/setup/go.mod @@ -33,21 +33,22 @@ replace ( ) require ( - github.com/DataDog/datadog-agent/comp/core/secrets v0.56.0-rc.3 + github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 github.com/DataDog/datadog-agent/comp/core/telemetry v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/config/env v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/config/model v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.0.0-00010101000000-000000000000 - github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.0.0-00010101000000-000000000000 - github.com/DataDog/datadog-agent/pkg/util/executable v0.56.0-rc.3 + github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.59.0 + github.com/DataDog/datadog-agent/pkg/config/env v0.59.0 + github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 + github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.59.0 + github.com/DataDog/datadog-agent/pkg/config/structure v0.59.0 + github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/optional v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/system v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/winutil v0.56.0-rc.3 + github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 github.com/stretchr/testify v1.9.0 go.uber.org/fx v1.22.2 gopkg.in/yaml.v2 v2.4.0 @@ -58,9 +59,9 @@ require ( github.com/DataDog/datadog-agent/comp/core/flare/builder v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/core/flare/types v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/def v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/filesystem v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/pointer v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/system/socket v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/beorn7/perks v1.0.1 // indirect @@ -116,3 +117,7 @@ require ( google.golang.org/protobuf v1.31.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/config/mock => ../mock + +replace github.com/DataDog/datadog-agent/pkg/config/structure => ../structure diff --git a/pkg/config/structure/go.mod b/pkg/config/structure/go.mod index 16a8d44e24545..c6aacdbdd90da 100644 --- a/pkg/config/structure/go.mod +++ b/pkg/config/structure/go.mod @@ -31,7 +31,6 @@ replace ( ) require ( - github.com/DataDog/datadog-agent/pkg/config/mock v0.0.0-00010101000000-000000000000 github.com/DataDog/datadog-agent/pkg/config/model v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.0.0-00010101000000-000000000000 github.com/DataDog/viper v1.13.5 @@ -40,51 +39,24 @@ require ( ) require ( - github.com/DataDog/datadog-agent/comp/core/secrets v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/config/env v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/config/setup v0.0.0-00010101000000-000000000000 // indirect - github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.0.0-00010101000000-000000000000 // indirect - github.com/DataDog/datadog-agent/pkg/util/executable v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/filesystem v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/optional v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/pointer v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/system v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/system/socket v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.56.0-rc.3 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect github.com/hashicorp/hcl v1.0.0 // indirect - github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect - github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/magiconair/properties v1.8.1 // indirect github.com/mitchellh/mapstructure v1.1.2 // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect github.com/pelletier/go-toml v1.2.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/config/structure/go.sum b/pkg/config/structure/go.sum index 761fd5f4cf0bc..65a1ab1454410 100644 --- a/pkg/config/structure/go.sum +++ b/pkg/config/structure/go.sum @@ -3,8 +3,6 @@ github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -14,14 +12,10 @@ github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQY github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= -github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -50,12 +44,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= -github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -68,14 +56,10 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -89,17 +73,11 @@ github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= -github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= -github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= -github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA= -github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= @@ -112,13 +90,9 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -136,44 +110,28 @@ github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -186,8 +144,6 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= @@ -196,21 +152,12 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -218,36 +165,16 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= -go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= -go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= -go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= -go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.14.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= -go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -259,8 +186,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -279,8 +204,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -288,14 +211,8 @@ golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190529164535-6a60838ec259/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -313,8 +230,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -327,8 +242,6 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -345,7 +258,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/config/structure/unmarshal_test.go b/pkg/config/structure/unmarshal_test.go index 4b1733568f272..0efc9010cba50 100644 --- a/pkg/config/structure/unmarshal_test.go +++ b/pkg/config/structure/unmarshal_test.go @@ -6,12 +6,12 @@ package structure import ( + "bytes" "math" "reflect" "strings" "testing" - "github.com/DataDog/datadog-agent/pkg/config/mock" "github.com/DataDog/datadog-agent/pkg/config/model" "github.com/DataDog/datadog-agent/pkg/config/nodetreemodel" "github.com/spf13/cast" @@ -40,6 +40,17 @@ type trapsConfig struct { Namespace string `yaml:"namespace"` } +// We don't use config mock here to not create cycle dependencies (same reason why config mock are not used in +// pkg/config/{setup/model}) +func newConfigFromYaml(t *testing.T, yaml string) model.Config { + conf := model.NewConfig("datadog", "DD", strings.NewReplacer(".", "_")) // nolint: forbidigo // legitimate use of NewConfig + + conf.SetConfigType("yaml") + err := conf.ReadConfig(bytes.NewBuffer([]byte(yaml))) + require.NoError(t, err) + return conf +} + func TestUnmarshalKeyTrapsConfig(t *testing.T) { confYaml := ` network_devices: @@ -62,7 +73,7 @@ network_devices: stop_timeout: 4 namespace: abc ` - mockConfig := mock.NewFromYAML(t, confYaml) + mockConfig := newConfigFromYaml(t, confYaml) var trapsCfg = trapsConfig{} err := unmarshalKeyReflection(mockConfig, "network_devices.snmp_traps", &trapsCfg) @@ -134,7 +145,7 @@ endpoints: for _, tc := range testcases { t.Run(tc.name, func(t *testing.T) { - mockConfig := mock.NewFromYAML(t, tc.conf) + mockConfig := newConfigFromYaml(t, tc.conf) mockConfig.SetKnown("endpoints") var endpoints = []endpoint{} @@ -313,7 +324,7 @@ feature: t.Skip("Skipping test case") } - mockConfig := mock.NewFromYAML(t, tc.conf) + mockConfig := newConfigFromYaml(t, tc.conf) mockConfig.SetKnown("feature") var feature = featureConfig{} @@ -475,7 +486,7 @@ feature: t.Skip("Skipping test case") } - mockConfig := mock.NewFromYAML(t, tc.conf) + mockConfig := newConfigFromYaml(t, tc.conf) mockConfig.SetKnown("feature") var feature = uintConfig{} @@ -582,7 +593,7 @@ feature: t.Skip("Skipping test case") } - mockConfig := mock.NewFromYAML(t, tc.conf) + mockConfig := newConfigFromYaml(t, tc.conf) mockConfig.SetKnown("feature") var feature = floatConfig{} @@ -734,7 +745,7 @@ feature: t.Skip("Skipping test case") } - mockConfig := mock.NewFromYAML(t, tc.conf) + mockConfig := newConfigFromYaml(t, tc.conf) mockConfig.SetKnown("feature") var feature = stringConfig{} @@ -766,7 +777,7 @@ func TestUnmarshalKeyCaseInsensitive(t *testing.T) { feature: EnABLeD: "true" ` - mockConfig := mock.NewFromYAML(t, confYaml) + mockConfig := newConfigFromYaml(t, confYaml) mockConfig.SetKnown("feature") var feature = featureConfig{} @@ -787,7 +798,7 @@ func TestUnmarshalKeyMissing(t *testing.T) { feature: enabled: "true" ` - mockConfig := mock.NewFromYAML(t, confYaml) + mockConfig := newConfigFromYaml(t, confYaml) mockConfig.SetKnown("feature") // If the data from the config is missing, UnmarshalKey is a no-op, does @@ -804,7 +815,7 @@ feature: enabled: "true" ` - mockConfig := mock.NewFromYAML(t, confYaml) + mockConfig := newConfigFromYaml(t, confYaml) mockConfig.SetKnown("feature") feature := struct { @@ -822,7 +833,7 @@ feature: enabled: "true" ` - mockConfig := mock.NewFromYAML(t, confYaml) + mockConfig := newConfigFromYaml(t, confYaml) mockConfig.SetKnown("feature") feature := struct { @@ -840,7 +851,7 @@ feature: enabled: elderberries ` - mockConfig := mock.NewFromYAML(t, confYaml) + mockConfig := newConfigFromYaml(t, confYaml) mockConfig.SetKnown("feature") feature := struct { @@ -858,7 +869,7 @@ feature: enabled: "" ` - mockConfig := mock.NewFromYAML(t, confYaml) + mockConfig := newConfigFromYaml(t, confYaml) mockConfig.SetKnown("feature") feature := struct { @@ -877,7 +888,7 @@ feature: enabled: -1 ` - mockConfig := mock.NewFromYAML(t, confYaml) + mockConfig := newConfigFromYaml(t, confYaml) mockConfig.SetKnown("feature") feature := struct { @@ -895,7 +906,7 @@ feature: enabled: test ` - mockConfig := mock.NewFromYAML(t, confYaml) + mockConfig := newConfigFromYaml(t, confYaml) mockConfig.SetKnown("feature") feature := struct { @@ -913,7 +924,7 @@ feature: enabled: test ` - mockConfig := mock.NewFromYAML(t, confYaml) + mockConfig := newConfigFromYaml(t, confYaml) mockConfig.SetKnown("feature") feature := struct { @@ -931,7 +942,7 @@ feature: enabled: [1] ` - mockConfig := mock.NewFromYAML(t, confYaml) + mockConfig := newConfigFromYaml(t, confYaml) mockConfig.SetKnown("feature") feature := struct { @@ -950,7 +961,7 @@ feature: key: value ` - mockConfig := mock.NewFromYAML(t, confYaml) + mockConfig := newConfigFromYaml(t, confYaml) mockConfig.SetKnown("feature") feature := struct { @@ -977,7 +988,7 @@ feature: ` want := "true" - mockConfig := mock.NewFromYAML(t, confYaml) + mockConfig := newConfigFromYaml(t, confYaml) mockConfig.SetKnown("feature") t.Run("json omitempty", func(t *testing.T) { @@ -1201,7 +1212,7 @@ service: name: intake apikey: abc1 ` - mockConfig := mock.NewFromYAML(t, confYaml) + mockConfig := newConfigFromYaml(t, confYaml) mockConfig.SetKnown("service") var svc = squashConfig{} @@ -1225,7 +1236,7 @@ service: enabled: true disabled: f ` - mockConfig := mock.NewFromYAML(t, confYaml) + mockConfig := newConfigFromYaml(t, confYaml) mockConfig.SetKnown("service") var svc = make(map[string]string) @@ -1246,7 +1257,7 @@ service: enabled: true disabled: false ` - mockConfig := mock.NewFromYAML(t, confYaml) + mockConfig := newConfigFromYaml(t, confYaml) mockConfig.SetKnown("service") var svc = make(map[string]bool) diff --git a/pkg/metrics/go.mod b/pkg/metrics/go.mod index 89bbdcb8673e5..b7b1322eaba6e 100644 --- a/pkg/metrics/go.mod +++ b/pkg/metrics/go.mod @@ -40,38 +40,38 @@ replace ( require ( github.com/DataDog/datadog-agent/pkg/aggregator/ckey v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/config/mock v0.57.1 - github.com/DataDog/datadog-agent/pkg/config/model v0.57.1 - github.com/DataDog/datadog-agent/pkg/config/structure v0.0.0-00010101000000-000000000000 + github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 + github.com/DataDog/datadog-agent/pkg/config/structure v0.59.0 github.com/DataDog/datadog-agent/pkg/tagger/types v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/tagset v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/telemetry v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/buf v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/log v0.57.1 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 github.com/stretchr/testify v1.9.0 go.uber.org/atomic v1.11.0 ) require ( - github.com/DataDog/datadog-agent/comp/core/secrets v0.57.1 // indirect + github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect github.com/DataDog/datadog-agent/comp/core/telemetry v0.57.1 // indirect github.com/DataDog/datadog-agent/comp/def v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/config/env v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.0.0-00010101000000-000000000000 // indirect - github.com/DataDog/datadog-agent/pkg/config/setup v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.0.0-00010101000000-000000000000 // indirect - github.com/DataDog/datadog-agent/pkg/util/executable v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/filesystem v0.57.1 // indirect + github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/env v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/fxutil v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/optional v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/pointer v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.57.1 // indirect + github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/sort v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/system v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/system/socket v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.57.1 // indirect + github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/sketches-go v1.4.4 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect diff --git a/pkg/util/flavor/go.mod b/pkg/util/flavor/go.mod index 68feb35be44e2..2221b2deab817 100644 --- a/pkg/util/flavor/go.mod +++ b/pkg/util/flavor/go.mod @@ -31,27 +31,28 @@ replace ( ) require ( - github.com/DataDog/datadog-agent/pkg/config/setup v0.56.0-rc.3 + github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 github.com/stretchr/testify v1.9.0 ) require ( - github.com/DataDog/datadog-agent/comp/core/secrets v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/config/env v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/config/model v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.0.0-00010101000000-000000000000 // indirect - github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.0.0-00010101000000-000000000000 // indirect - github.com/DataDog/datadog-agent/pkg/util/executable v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/filesystem v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/optional v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/pointer v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/system v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/system/socket v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/env v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/structure v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect @@ -87,3 +88,7 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/config/mock => ../../config/mock + +replace github.com/DataDog/datadog-agent/pkg/config/structure => ../../config/structure diff --git a/pkg/util/http/go.mod b/pkg/util/http/go.mod index b0ab392f6ebcb..352a94a69657b 100644 --- a/pkg/util/http/go.mod +++ b/pkg/util/http/go.mod @@ -31,29 +31,30 @@ replace ( ) require ( - github.com/DataDog/datadog-agent/pkg/config/mock v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/config/model v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 + github.com/DataDog/datadog-agent/pkg/config/mock v0.59.0 + github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/stretchr/testify v1.9.0 golang.org/x/net v0.31.0 ) require ( - github.com/DataDog/datadog-agent/comp/core/secrets v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/config/env v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.0.0-00010101000000-000000000000 // indirect - github.com/DataDog/datadog-agent/pkg/config/setup v0.0.0-00010101000000-000000000000 // indirect - github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.0.0-00010101000000-000000000000 // indirect - github.com/DataDog/datadog-agent/pkg/util/executable v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/filesystem v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/optional v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/pointer v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/system v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/system/socket v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/env v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/structure v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect @@ -89,3 +90,5 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/config/structure => ../../config/structure diff --git a/pkg/util/log/setup/go.mod b/pkg/util/log/setup/go.mod index 03cebd8fb4817..7f864c1c0945e 100644 --- a/pkg/util/log/setup/go.mod +++ b/pkg/util/log/setup/go.mod @@ -31,29 +31,30 @@ replace ( ) require ( - github.com/DataDog/datadog-agent/pkg/config/mock v0.57.1 - github.com/DataDog/datadog-agent/pkg/config/model v0.57.1 - github.com/DataDog/datadog-agent/pkg/util/log v0.57.1 + github.com/DataDog/datadog-agent/pkg/config/mock v0.59.0 + github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 github.com/stretchr/testify v1.9.0 ) require ( - github.com/DataDog/datadog-agent/comp/core/secrets v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/config/env v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.0.0-00010101000000-000000000000 // indirect - github.com/DataDog/datadog-agent/pkg/config/setup v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.0.0-00010101000000-000000000000 // indirect - github.com/DataDog/datadog-agent/pkg/util/executable v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/filesystem v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/optional v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/pointer v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/system v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/system/socket v0.57.1 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.57.1 // indirect + github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/env v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/structure v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect @@ -88,3 +89,5 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/config/structure => ../../../config/structure From a1caa2bb6b21117c8fb57926fb40be9aeb7aa6e4 Mon Sep 17 00:00:00 2001 From: Yoann Ghigoff Date: Mon, 25 Nov 2024 13:16:47 +0100 Subject: [PATCH 016/439] [CWS] sbom: debug log messages when no container PID was found (#31414) --- pkg/security/resolvers/sbom/resolver.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pkg/security/resolvers/sbom/resolver.go b/pkg/security/resolvers/sbom/resolver.go index 4754634c2f9c3..13c308c67016d 100644 --- a/pkg/security/resolvers/sbom/resolver.go +++ b/pkg/security/resolvers/sbom/resolver.go @@ -45,6 +45,8 @@ const SBOMSource = "runtime-security-agent" const maxSBOMGenerationRetries = 3 +var errNoProcessForContainerID = errors.New("found no running process matching the given container ID") + // SBOM defines an SBOM type SBOM struct { sync.RWMutex @@ -242,7 +244,11 @@ func (r *Resolver) Start(ctx context.Context) error { if err := retry.Do(func() error { return r.analyzeWorkload(sbom) }, retry.Attempts(maxSBOMGenerationRetries), retry.Delay(200*time.Millisecond)); err != nil { - seclog.Warnf("%s", err.Error()) + if errors.Is(err, errNoProcessForContainerID) { + seclog.Debugf("Couldn't generate SBOM for '%s': %v", sbom.ContainerID, err) + } else { + seclog.Warnf("Failed to generate SBOM for '%s': %v", sbom.ContainerID, err) + } } } } @@ -344,7 +350,7 @@ func (r *Resolver) doScan(sbom *SBOM) (*trivy.Report, error) { return nil, lastErr } if !scanned { - return nil, fmt.Errorf("couldn't generate sbom: all root candidates failed") + return nil, errNoProcessForContainerID } return report, nil } From a9cf92608e3d53c051415fb9127658c77712d13e Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Mon, 25 Nov 2024 13:20:31 +0100 Subject: [PATCH 017/439] [CWS] make sure `.gitkeep` is included in the go:embed of the syscall tester (#31406) --- pkg/security/tests/action_test.go | 24 ++--- pkg/security/tests/activity_dumps_test.go | 8 +- pkg/security/tests/bind_test.go | 16 +-- pkg/security/tests/bpf_test.go | 6 +- pkg/security/tests/cgroup_test.go | 2 + pkg/security/tests/chdir_test.go | 2 +- pkg/security/tests/chmod_test.go | 8 +- pkg/security/tests/chown32_test.go | 14 +-- pkg/security/tests/chown_test.go | 18 ++-- pkg/security/tests/connect_test.go | 16 +-- pkg/security/tests/container_test.go | 8 +- pkg/security/tests/ebpfless_test.go | 6 +- pkg/security/tests/event_test.go | 22 ++--- pkg/security/tests/file_windows_test.go | 10 +- pkg/security/tests/filters_test.go | 27 +++-- pkg/security/tests/hardlink_test.go | 14 +-- pkg/security/tests/hash_test.go | 4 +- pkg/security/tests/kernel_module_test.go | 2 +- pkg/security/tests/link_test.go | 6 +- pkg/security/tests/macros_test.go | 2 +- pkg/security/tests/main_linux.go | 1 + pkg/security/tests/misc_test.go | 4 +- pkg/security/tests/mmap_test.go | 4 +- pkg/security/tests/module_tester_linux.go | 4 +- pkg/security/tests/mount_test.go | 6 +- pkg/security/tests/mprotect_test.go | 2 +- pkg/security/tests/network_test.go | 2 +- pkg/security/tests/ondemand_test.go | 6 +- pkg/security/tests/open_test.go | 28 +++--- pkg/security/tests/overlayfs_test.go | 52 +++++----- pkg/security/tests/process_test.go | 104 ++++++++++---------- pkg/security/tests/process_windows_test.go | 4 +- pkg/security/tests/ptrace_test.go | 4 +- pkg/security/tests/registry_windows_test.go | 6 +- pkg/security/tests/rename_test.go | 16 +-- pkg/security/tests/rmdir_test.go | 8 +- pkg/security/tests/sbom_test.go | 2 +- pkg/security/tests/schemas.go | 4 +- pkg/security/tests/security_profile_test.go | 104 ++++++++++---------- pkg/security/tests/selinux_test.go | 2 +- pkg/security/tests/serializers_test.go | 2 +- pkg/security/tests/signal_test.go | 8 +- pkg/security/tests/span_test.go | 2 +- pkg/security/tests/splice_test.go | 2 +- pkg/security/tests/syscall_tester.go | 2 +- pkg/security/tests/unlink_test.go | 4 +- pkg/security/tests/usergroup_test.go | 4 +- pkg/security/tests/utimes_test.go | 8 +- pkg/security/tests/xattr_test.go | 12 +-- 49 files changed, 312 insertions(+), 310 deletions(-) diff --git a/pkg/security/tests/action_test.go b/pkg/security/tests/action_test.go index cd8a081530ad9..1e653f824ee5a 100644 --- a/pkg/security/tests/action_test.go +++ b/pkg/security/tests/action_test.go @@ -109,7 +109,7 @@ func TestActionKill(t *testing.T) { t.Error("signal timeout") } return nil - }, func(rule *rules.Rule, event *model.Event) bool { + }, func(_ *rules.Rule, _ *model.Event) bool { return true }, time.Second*3, "kill_action_usr2") if err != nil { @@ -123,7 +123,7 @@ func TestActionKill(t *testing.T) { } validateMessageSchema(t, string(msg.Data)) - jsonPathValidation(test, msg.Data, func(testMod *testModule, obj interface{}) { + jsonPathValidation(test, msg.Data, func(_ *testModule, obj interface{}) { if el, err := jsonpath.JsonPathLookup(obj, `$.agent.rule_actions[?(@.signal == 'SIGUSR2')]`); err != nil || el == nil || len(el.([]interface{})) == 0 { t.Errorf("element not found %s => %v", string(msg.Data), err) } @@ -163,7 +163,7 @@ func TestActionKill(t *testing.T) { t.Error("signal timeout") } return nil - }, func(rule *rules.Rule, event *model.Event) bool { + }, func(_ *rules.Rule, _ *model.Event) bool { return true }, time.Second*5, "kill_action_kill") @@ -178,7 +178,7 @@ func TestActionKill(t *testing.T) { } validateMessageSchema(t, string(msg.Data)) - jsonPathValidation(test, msg.Data, func(testMod *testModule, obj interface{}) { + jsonPathValidation(test, msg.Data, func(_ *testModule, obj interface{}) { if el, err := jsonpath.JsonPathLookup(obj, `$.agent.rule_actions[?(@.signal == 'SIGKILL')]`); err != nil || el == nil || len(el.([]interface{})) == 0 { t.Errorf("element not found %s => %v", string(msg.Data), err) } @@ -239,7 +239,7 @@ func TestActionKillExcludeBinary(t *testing.T) { }() return nil - }, func(rule *rules.Rule, event *model.Event) bool { + }, func(_ *rules.Rule, _ *model.Event) bool { return true }, time.Second*5, "kill_action_kill_exclude") @@ -315,7 +315,7 @@ func TestActionKillRuleSpecific(t *testing.T) { t.Error("signal timeout") } return nil - }, func(rule *rules.Rule, event *model.Event) bool { + }, func(_ *rules.Rule, _ *model.Event) bool { return true }, time.Second*5, "kill_action_kill") @@ -330,7 +330,7 @@ func TestActionKillRuleSpecific(t *testing.T) { } validateMessageSchema(t, string(msg.Data)) - jsonPathValidation(test, msg.Data, func(testMod *testModule, obj interface{}) { + jsonPathValidation(test, msg.Data, func(_ *testModule, obj interface{}) { if el, err := jsonpath.JsonPathLookup(obj, `$.agent.rule_actions[?(@.signal == 'SIGKILL')]`); err != nil || el == nil || len(el.([]interface{})) == 0 { t.Errorf("element not found %s => %v", string(msg.Data), err) } @@ -353,7 +353,7 @@ func TestActionKillRuleSpecific(t *testing.T) { } validateMessageSchema(t, string(msg.Data)) - jsonPathValidation(test, msg.Data, func(testMod *testModule, obj interface{}) { + jsonPathValidation(test, msg.Data, func(_ *testModule, obj interface{}) { if _, err := jsonpath.JsonPathLookup(obj, `$.agent.rule_actions`); err == nil { t.Errorf("unexpected rule action %s", string(msg.Data)) } @@ -728,7 +728,7 @@ func TestActionHash(t *testing.T) { done <- true }() return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "hash_action") }) @@ -739,7 +739,7 @@ func TestActionHash(t *testing.T) { } validateMessageSchema(t, string(msg.Data)) - jsonPathValidation(test, msg.Data, func(testMod *testModule, obj interface{}) { + jsonPathValidation(test, msg.Data, func(_ *testModule, obj interface{}) { if el, err := jsonpath.JsonPathLookup(obj, `$.agent.rule_actions[?(@.state == 'Done')]`); err != nil || el == nil || len(el.([]interface{})) == 0 { t.Errorf("element not found %s => %v", string(msg.Data), err) } @@ -776,7 +776,7 @@ func TestActionHash(t *testing.T) { done <- true }() return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "hash_action") }) @@ -787,7 +787,7 @@ func TestActionHash(t *testing.T) { } validateMessageSchema(t, string(msg.Data)) - jsonPathValidation(test, msg.Data, func(testMod *testModule, obj interface{}) { + jsonPathValidation(test, msg.Data, func(_ *testModule, obj interface{}) { if el, err := jsonpath.JsonPathLookup(obj, `$.agent.rule_actions[?(@.state == 'Done')]`); err != nil || el == nil || len(el.([]interface{})) == 0 { t.Errorf("element not found %s => %v", string(msg.Data), err) } diff --git a/pkg/security/tests/activity_dumps_test.go b/pkg/security/tests/activity_dumps_test.go index 0a1bd7a530055..0046251a969bd 100644 --- a/pkg/security/tests/activity_dumps_test.go +++ b/pkg/security/tests/activity_dumps_test.go @@ -568,7 +568,7 @@ func TestActivityDumpsAutoSuppression(t *testing.T) { cmd := dockerInstance.Command("getconf", []string{"-a"}, []string{}) _, err = cmd.CombinedOutput() return err - }, func(rule *rules.Rule, event *model.Event) bool { + }, func(_ *rules.Rule, event *model.Event) bool { if event.ProcessContext.ContainerID == containerutils.ContainerID(dump.ContainerID) { t.Fatal("Got a signal that should have been suppressed") } @@ -587,7 +587,7 @@ func TestActivityDumpsAutoSuppression(t *testing.T) { cmd := dockerInstance.Command("nslookup", []string{"foo.bar"}, []string{}) _, err = cmd.CombinedOutput() return err - }, func(rule *rules.Rule, event *model.Event) bool { + }, func(_ *rules.Rule, event *model.Event) bool { if event.ProcessContext.ContainerID == containerutils.ContainerID(dump.ContainerID) { t.Fatal("Got a signal that should have been suppressed") } @@ -677,7 +677,7 @@ func TestActivityDumpsAutoSuppressionDriftOnly(t *testing.T) { cmd := dockerInstance2.Command("getconf", []string{"-a"}, []string{}) _, err := cmd.CombinedOutput() return err - }, func(rule *rules.Rule, event *model.Event) bool { + }, func(_ *rules.Rule, event *model.Event) bool { if event.ProcessContext.ContainerID == containerutils.ContainerID(dockerInstance2.containerID) { t.Fatal("Got a signal that should have been suppressed") } @@ -696,7 +696,7 @@ func TestActivityDumpsAutoSuppressionDriftOnly(t *testing.T) { cmd := dockerInstance2.Command("nslookup", []string{"foo.bar"}, []string{}) _, err = cmd.CombinedOutput() return err - }, func(rule *rules.Rule, event *model.Event) bool { + }, func(_ *rules.Rule, event *model.Event) bool { if event.ProcessContext.ContainerID == containerutils.ContainerID(dockerInstance2.containerID) { t.Fatal("Got a signal that should have been suppressed") } diff --git a/pkg/security/tests/bind_test.go b/pkg/security/tests/bind_test.go index f5480cef29be5..1eaddd020418b 100644 --- a/pkg/security/tests/bind_test.go +++ b/pkg/security/tests/bind_test.go @@ -50,7 +50,7 @@ func TestBindEvent(t *testing.T) { t.Fatal(err) } - test.Run(t, "bind-af-inet-any-success-tcp", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + test.Run(t, "bind-af-inet-any-success-tcp", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { args := []string{"bind", "AF_INET", "any", "tcp"} envs := []string{} @@ -61,7 +61,7 @@ func TestBindEvent(t *testing.T) { } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "bind", event.GetType(), "wrong event type") assert.Equal(t, uint16(unix.AF_INET), event.Bind.AddrFamily, "wrong address family") assert.Equal(t, uint16(4242), event.Bind.Addr.Port, "wrong address port") @@ -73,7 +73,7 @@ func TestBindEvent(t *testing.T) { }) }) - test.Run(t, "bind-af-inet-any-success-udp", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + test.Run(t, "bind-af-inet-any-success-udp", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { args := []string{"bind", "AF_INET", "any", "udp"} envs := []string{} @@ -84,7 +84,7 @@ func TestBindEvent(t *testing.T) { } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "bind", event.GetType(), "wrong event type") assert.Equal(t, uint16(unix.AF_INET), event.Bind.AddrFamily, "wrong address family") assert.Equal(t, uint16(4242), event.Bind.Addr.Port, "wrong address port") @@ -96,7 +96,7 @@ func TestBindEvent(t *testing.T) { }) }) - test.Run(t, "bind-af-inet6-any-success", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + test.Run(t, "bind-af-inet6-any-success", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { args := []string{"bind", "AF_INET6", "any"} envs := []string{} @@ -107,7 +107,7 @@ func TestBindEvent(t *testing.T) { } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "bind", event.GetType(), "wrong event type") assert.Equal(t, uint16(unix.AF_INET6), event.Bind.AddrFamily, "wrong address family") assert.Equal(t, uint16(4242), event.Bind.Addr.Port, "wrong address port") @@ -118,7 +118,7 @@ func TestBindEvent(t *testing.T) { }) }) - test.Run(t, "bind-af-unknown-unix", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + test.Run(t, "bind-af-unknown-unix", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { args := []string{"bind", "AF_UNIX"} envs := []string{} @@ -129,7 +129,7 @@ func TestBindEvent(t *testing.T) { } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "bind", event.GetType(), "wrong event type") assert.Equal(t, uint16(unix.AF_UNIX), event.Bind.AddrFamily, "wrong address family") assert.Equal(t, uint16(0), event.Bind.Addr.Port, "wrong address port") diff --git a/pkg/security/tests/bpf_test.go b/pkg/security/tests/bpf_test.go index b42b006fba050..ec1b96a6125ff 100644 --- a/pkg/security/tests/bpf_test.go +++ b/pkg/security/tests/bpf_test.go @@ -47,7 +47,7 @@ func TestBPFEventLoad(t *testing.T) { t.Run("prog_load", func(t *testing.T) { test.WaitSignal(t, func() error { return runSyscallTesterFunc(context.Background(), t, syscallTester, "-load-bpf") - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "bpf", event.GetType(), "wrong event type") assert.Equal(t, uint32(model.BpfProgTypeKprobe), event.BPF.Program.Type, "wrong program type") @@ -84,7 +84,7 @@ func TestBPFEventMap(t *testing.T) { t.Run("map_lookup", func(t *testing.T) { test.WaitSignal(t, func() error { return runSyscallTesterFunc(context.Background(), t, syscallTester, "-load-bpf", "-clone-bpf") - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "bpf", event.GetType(), "wrong event type") assert.Equal(t, uint32(model.BpfMapTypeHash), event.BPF.Map.Type, "wrong map type") @@ -121,7 +121,7 @@ func TestBPFCwsMapConstant(t *testing.T) { t.Run("map_lookup", func(t *testing.T) { test.WaitSignal(t, func() error { return runSyscallTesterFunc(context.Background(), t, syscallTester, "-load-bpf") - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "bpf", event.GetType(), "wrong event type") assert.Equal(t, uint32(model.BpfMapTypeArray), event.BPF.Map.Type, "wrong map type") diff --git a/pkg/security/tests/cgroup_test.go b/pkg/security/tests/cgroup_test.go index 8dfa0859f7ce8..737e382492b2e 100644 --- a/pkg/security/tests/cgroup_test.go +++ b/pkg/security/tests/cgroup_test.go @@ -120,6 +120,7 @@ ExecStart=/usr/bin/touch %s`, testFile2) return err } if err := os.Remove("/etc/systemd/system/cws-test.service"); err != nil { + return err } if err := exec.Command("systemctl", "daemon-reload").Run(); err != nil { return err @@ -158,6 +159,7 @@ ExecStart=/usr/bin/touch %s`, testFile2) return err } if err := os.Remove("/etc/systemd/system/cws-test.service"); err != nil { + return err } if err := exec.Command("systemctl", "daemon-reload").Run(); err != nil { return err diff --git a/pkg/security/tests/chdir_test.go b/pkg/security/tests/chdir_test.go index 2c8099b1f4eda..9ef5490e2dd35 100644 --- a/pkg/security/tests/chdir_test.go +++ b/pkg/security/tests/chdir_test.go @@ -69,7 +69,7 @@ func TestChdir(t *testing.T) { defer f.Close() return f.Chdir() - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "test_chdir_rule") }) }) diff --git a/pkg/security/tests/chmod_test.go b/pkg/security/tests/chmod_test.go index 9dcb14de13cc1..abef2268818fa 100644 --- a/pkg/security/tests/chmod_test.go +++ b/pkg/security/tests/chmod_test.go @@ -57,7 +57,7 @@ func TestChmod(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "chmod", event.GetType(), "wrong event type") assertRights(t, uint16(event.Chmod.Mode), 0o707) assertInode(t, getInode(t, testFile), event.Chmod.File.Inode) @@ -80,7 +80,7 @@ func TestChmod(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "chmod", event.GetType(), "wrong event type") assertRights(t, uint16(event.Chmod.Mode), 0o757) assertInode(t, getInode(t, testFile), event.Chmod.File.Inode) @@ -106,7 +106,7 @@ func TestChmod(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "chmod", event.GetType(), "wrong event type") assertRights(t, uint16(event.Chmod.Mode), 0o757) assertInode(t, getInode(t, testFile), event.Chmod.File.Inode) @@ -127,7 +127,7 @@ func TestChmod(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "chmod", event.GetType(), "wrong event type") assertRights(t, uint16(event.Chmod.Mode), 0o717, "wrong mode") assertInode(t, getInode(t, testFile), event.Chmod.File.Inode) diff --git a/pkg/security/tests/chown32_test.go b/pkg/security/tests/chown32_test.go index 2ba9eea2f35a7..ec0f292ee3fb1 100644 --- a/pkg/security/tests/chown32_test.go +++ b/pkg/security/tests/chown32_test.go @@ -67,7 +67,7 @@ func TestChown32(t *testing.T) { test.WaitSignal(t, func() error { // fchown syscall return runSyscallTesterFunc(context.Background(), t, syscallTester, "chown", testFile, "100", "200") - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "chown", event.GetType(), "wrong event type") assert.Equal(t, int64(100), event.Chown.UID, "wrong user") assert.Equal(t, int64(200), event.Chown.GID, "wrong user") @@ -94,7 +94,7 @@ func TestChown32(t *testing.T) { test.WaitSignal(t, func() error { // fchown syscall return runSyscallTesterFunc(context.Background(), t, syscallTester, "fchown", testFile, "101", "201") - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "chown", event.GetType(), "wrong event type") assert.Equal(t, int64(101), event.Chown.UID, "wrong user") assert.Equal(t, int64(201), event.Chown.GID, "wrong user") @@ -121,7 +121,7 @@ func TestChown32(t *testing.T) { test.WaitSignal(t, func() error { // fchown syscall return runSyscallTesterFunc(context.Background(), t, syscallTester, "fchownat", testFile, "102", "202") - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "chown", event.GetType(), "wrong event type") assert.Equal(t, int64(102), event.Chown.UID, "wrong user") assert.Equal(t, int64(202), event.Chown.GID, "wrong user") @@ -153,7 +153,7 @@ func TestChown32(t *testing.T) { test.WaitSignal(t, func() error { // fchown syscall return runSyscallTesterFunc(context.Background(), t, syscallTester, "lchown", testSymlink, "103", "203") - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "chown", event.GetType(), "wrong event type") assert.Equal(t, int64(103), event.Chown.UID, "wrong user") assert.Equal(t, int64(203), event.Chown.GID, "wrong user") @@ -185,7 +185,7 @@ func TestChown32(t *testing.T) { test.WaitSignal(t, func() error { // fchown syscall return runSyscallTesterFunc(context.Background(), t, syscallTester, "lchown32", testSymlink, "104", "204") - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "chown", event.GetType(), "wrong event type") assert.Equal(t, int64(104), event.Chown.UID, "wrong user") assert.Equal(t, int64(204), event.Chown.GID, "wrong user") @@ -213,7 +213,7 @@ func TestChown32(t *testing.T) { test.WaitSignal(t, func() error { // fchown syscall return runSyscallTesterFunc(context.Background(), t, syscallTester, "fchown32", testFile, "105", "205") - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "chown", event.GetType(), "wrong event type") assert.Equal(t, int64(105), event.Chown.UID, "wrong user") assert.Equal(t, int64(205), event.Chown.GID, "wrong user") @@ -240,7 +240,7 @@ func TestChown32(t *testing.T) { test.WaitSignal(t, func() error { // fchown syscall return runSyscallTesterFunc(context.Background(), t, syscallTester, "chown32", testFile, "106", "206") - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "chown", event.GetType(), "wrong event type") assert.Equal(t, int64(106), event.Chown.UID, "wrong user") assert.Equal(t, int64(206), event.Chown.GID, "wrong user") diff --git a/pkg/security/tests/chown_test.go b/pkg/security/tests/chown_test.go index 02d5f844eff5f..e2ed80b260b82 100644 --- a/pkg/security/tests/chown_test.go +++ b/pkg/security/tests/chown_test.go @@ -113,7 +113,7 @@ func TestChown(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "chown", event.GetType(), "wrong event type") assert.Equal(t, int64(101), event.Chown.UID, "wrong user") assert.Equal(t, int64(201), event.Chown.GID, "wrong user") @@ -184,7 +184,7 @@ func TestChown(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "chown", event.GetType(), "wrong event type") assert.Equal(t, int64(103), event.Chown.UID, "wrong user") assert.Equal(t, int64(203), event.Chown.GID, "wrong user") @@ -255,7 +255,7 @@ func TestChown(t *testing.T) { }) })) - test.Run(t, "pipe-chown-discarded", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + test.Run(t, "pipe-chown-discarded", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { _ = test.GetSignal(t, func() error { syscallTester, err := loadSyscallTester(t, test, "syscall_tester") if err != nil { @@ -343,7 +343,7 @@ func TestChownUserGroup(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "chown", event.GetType(), "wrong event type") assert.Equal(t, int64(testUID), event.Chown.UID, "wrong user") assert.Equal(t, testUser, event.Chown.User, "wrong user") @@ -368,7 +368,7 @@ func TestChownUserGroup(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "chown", event.GetType(), "wrong event type") assert.Equal(t, int64(testUID), event.Chown.UID, "wrong user") assert.Equal(t, testUser, event.Chown.User, "wrong user") @@ -405,7 +405,7 @@ func TestChownUserGroup(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "chown", event.GetType(), "wrong event type") assert.Equal(t, int64(testUID), event.Chown.UID, "wrong user") assert.Equal(t, testUser, event.Chown.User, "wrong user") @@ -430,7 +430,7 @@ func TestChownUserGroup(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "chown", event.GetType(), "wrong event type") assert.Equal(t, int64(testUID), event.Chown.UID, "wrong user") assert.Equal(t, testUser, event.Chown.User, "wrong user") @@ -456,7 +456,7 @@ func TestChownUserGroup(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "chown", event.GetType(), "wrong event type") assert.Equal(t, int64(testUID), event.Chown.UID, "wrong user") assert.Equal(t, testUser, event.Chown.User, "wrong user") @@ -482,7 +482,7 @@ func TestChownUserGroup(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "chown", event.GetType(), "wrong event type") assert.Equal(t, int64(-1), event.Chown.UID, "wrong user") assert.Equal(t, "", event.Chown.User, "wrong user") diff --git a/pkg/security/tests/connect_test.go b/pkg/security/tests/connect_test.go index a5fad8a25f91d..1e64fe57e1989 100644 --- a/pkg/security/tests/connect_test.go +++ b/pkg/security/tests/connect_test.go @@ -60,13 +60,13 @@ func TestConnectEvent(t *testing.T) { defer wg.Done() err := bindAndAcceptConnection("tcp", ":4242", done) if err != nil { - t.Fatal(err) + t.Error(err) } }() test.WaitSignal(t, func() error { return runSyscallTesterFunc(context.Background(), t, syscallTester, "connect", "AF_INET", "any", "tcp") - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "connect", event.GetType(), "wrong event type") assert.Equal(t, uint16(unix.AF_INET), event.Connect.AddrFamily, "wrong address family") assert.Equal(t, uint16(4242), event.Connect.Addr.Port, "wrong address port") @@ -88,13 +88,13 @@ func TestConnectEvent(t *testing.T) { defer wg.Done() err := bindAndAcceptConnection("udp", ":4242", done) if err != nil { - t.Fatal(err) + t.Error(err) } }() test.WaitSignal(t, func() error { return runSyscallTesterFunc(context.Background(), t, syscallTester, "connect", "AF_INET", "any", "udp") - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "connect", event.GetType(), "wrong event type") assert.Equal(t, uint16(unix.AF_INET), event.Connect.AddrFamily, "wrong address family") assert.Equal(t, uint16(4242), event.Connect.Addr.Port, "wrong address port") @@ -120,13 +120,13 @@ func TestConnectEvent(t *testing.T) { defer wg.Done() err := bindAndAcceptConnection("tcp", ":4242", done) if err != nil { - t.Fatal(err) + t.Error(err) } }() test.WaitSignal(t, func() error { return runSyscallTesterFunc(context.Background(), t, syscallTester, "connect", "AF_INET6", "any", "tcp") - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "connect", event.GetType(), "wrong event type") assert.Equal(t, uint16(unix.AF_INET6), event.Connect.AddrFamily, "wrong address family") assert.Equal(t, uint16(4242), event.Connect.Addr.Port, "wrong address port") @@ -152,13 +152,13 @@ func TestConnectEvent(t *testing.T) { defer wg.Done() err := bindAndAcceptConnection("udp", ":4242", done) if err != nil { - t.Fatal(err) + t.Error(err) } }() test.WaitSignal(t, func() error { return runSyscallTesterFunc(context.Background(), t, syscallTester, "connect", "AF_INET6", "any", "udp") - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "connect", event.GetType(), "wrong event type") assert.Equal(t, uint16(unix.AF_INET6), event.Connect.AddrFamily, "wrong address family") assert.Equal(t, uint16(4242), event.Connect.Addr.Port, "wrong address port") diff --git a/pkg/security/tests/container_test.go b/pkg/security/tests/container_test.go index 76ca508e19189..7a659481da74b 100644 --- a/pkg/security/tests/container_test.go +++ b/pkg/security/tests/container_test.go @@ -61,7 +61,7 @@ func TestContainerCreatedAt(t *testing.T) { } defer dockerWrapper.stop() - dockerWrapper.Run(t, "container-created-at", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + dockerWrapper.Run(t, "container-created-at", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { test.WaitSignal(t, func() error { cmd := cmdFunc("touch", []string{testFile}, nil) return cmd.Run() @@ -74,7 +74,7 @@ func TestContainerCreatedAt(t *testing.T) { }) }) - dockerWrapper.Run(t, "container-created-at-delay", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + dockerWrapper.Run(t, "container-created-at-delay", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { test.WaitSignal(t, func() error { cmd := cmdFunc("touch", []string{testFileDelay}, nil) // shouldn't trigger an event if err := cmd.Run(); err != nil { @@ -124,7 +124,7 @@ func TestContainerFlagsDocker(t *testing.T) { } defer dockerWrapper.stop() - dockerWrapper.Run(t, "container-runtime", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + dockerWrapper.Run(t, "container-runtime", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { test.WaitSignal(t, func() error { cmd := cmdFunc("touch", []string{testFile}, nil) return cmd.Run() @@ -167,7 +167,7 @@ func TestContainerFlagsPodman(t *testing.T) { } defer podmanWrapper.stop() - podmanWrapper.Run(t, "container-runtime", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + podmanWrapper.Run(t, "container-runtime", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { test.WaitSignal(t, func() error { cmd := cmdFunc("touch", []string{testFile}, nil) return cmd.Run() diff --git a/pkg/security/tests/ebpfless_test.go b/pkg/security/tests/ebpfless_test.go index ced1e62b54316..b00506b070ae0 100644 --- a/pkg/security/tests/ebpfless_test.go +++ b/pkg/security/tests/ebpfless_test.go @@ -59,7 +59,7 @@ func TestEBPFLessAttach(t *testing.T) { go func() { testFile, _, err := test.Path("test-ebpfless-attach") if err != nil { - t.Fatal(err) + t.Error(err) } defer os.Remove(testFile) @@ -90,14 +90,14 @@ func TestEBPFLessAttach(t *testing.T) { } // syscall tester to be reading to be tested - _ = <-sigCh + <-sigCh if err = ptracer.Attach([]int{pid}, constants.DefaultEBPFLessProbeAddr, opts); err != nil { fmt.Printf("unable to attach: %v", err) } doneCh <- true }() return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "test_ebpfless_attach") }) diff --git a/pkg/security/tests/event_test.go b/pkg/security/tests/event_test.go index 636e954cb8681..651db51c88545 100644 --- a/pkg/security/tests/event_test.go +++ b/pkg/security/tests/event_test.go @@ -57,7 +57,7 @@ func TestEventRulesetLoaded(t *testing.T) { err = test.GetCustomEventSent(t, func() error { // force a reload return syscall.Kill(syscall.Getpid(), syscall.SIGHUP) - }, func(rule *rules.Rule, customEvent *events.CustomEvent) bool { + }, func(_ *rules.Rule, customEvent *events.CustomEvent) bool { test.cws.SendStats() assert.Equal(t, count+1, test.statsdClient.Get(key)) @@ -90,7 +90,7 @@ func TestEventHeartbeatSent(t *testing.T) { err = test.GetCustomEventSent(t, func() error { // force a reload return syscall.Kill(syscall.Getpid(), syscall.SIGHUP) - }, func(rule *rules.Rule, customEvent *events.CustomEvent) bool { + }, func(_ *rules.Rule, customEvent *events.CustomEvent) bool { return validateHeartbeatSchema(t, customEvent) }, 80*time.Second, model.CustomEventType, events.HeartbeatRuleID) if err != nil { @@ -140,7 +140,7 @@ func TestEventRaleLimiters(t *testing.T) { t.Fatal(err) } return f.Close() - }, func(rule *rules.Rule, event *model.Event) bool { + }, func(_ *rules.Rule, _ *model.Event) bool { return true }, time.Second*3, "test_unique_id") if err != nil { @@ -156,7 +156,7 @@ func TestEventRaleLimiters(t *testing.T) { timeoutCtx, t, syscallTester, "open", testFile, ) - }, func(rule *rules.Rule, event *model.Event) bool { + }, func(_ *rules.Rule, _ *model.Event) bool { return true }, time.Second*3, "test_unique_id") if err != nil { @@ -170,7 +170,7 @@ func TestEventRaleLimiters(t *testing.T) { t.Fatal(err) } return f.Close() - }, func(rule *rules.Rule, event *model.Event) bool { + }, func(_ *rules.Rule, _ *model.Event) bool { return true }, time.Second*3, "test_unique_id") if err == nil { @@ -191,7 +191,7 @@ func TestEventRaleLimiters(t *testing.T) { t.Fatal(err) } return f.Close() - }, func(rule *rules.Rule, event *model.Event) bool { + }, func(_ *rules.Rule, _ *model.Event) bool { return true }, time.Second*3, "test_std") if err != nil { @@ -207,7 +207,7 @@ func TestEventRaleLimiters(t *testing.T) { timeoutCtx, t, syscallTester, "open", testFile, ) - }, func(rule *rules.Rule, event *model.Event) bool { + }, func(_ *rules.Rule, _ *model.Event) bool { return true }, time.Second*3, "test_std") if err == nil { @@ -262,7 +262,7 @@ func TestEventIteratorRegister(t *testing.T) { t.Run("std", func(t *testing.T) { test.WaitSignal(t, func() error { return runSyscallTesterFunc(context.Background(), t, syscallTester, "span-exec", "123", "456", "/usr/bin/touch", testFile) - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "test_register_1") }) }) @@ -274,7 +274,7 @@ func TestEventIteratorRegister(t *testing.T) { return err } return f.Close() - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "test_register_2") }) }) @@ -317,7 +317,7 @@ func truncatedParents(t *testing.T, staticOpts testOpts, dynamicOpts dynamicTest return err } return f.Close() - }, func(rule *rules.Rule, customEvent *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { return true }, getEventTimeout, model.CustomEventType, events.AbnormalPathRuleID) if err != nil { @@ -330,7 +330,7 @@ func truncatedParents(t *testing.T, staticOpts testOpts, dynamicOpts dynamicTest return err } return f.Close() - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { // check the length of the filepath that triggered the custom event filepath, err := event.GetFieldValue("open.file.path") if err == nil { diff --git a/pkg/security/tests/file_windows_test.go b/pkg/security/tests/file_windows_test.go index 15b7c57e7b0a3..1fd4841aa4e7b 100644 --- a/pkg/security/tests/file_windows_test.go +++ b/pkg/security/tests/file_windows_test.go @@ -57,7 +57,7 @@ func TestBasicFileTest(t *testing.T) { cmd := cmdFunc("powershell", inputargs, nil) _ = cmd.Run() return nil - }, test.validateFileEvent(t, noWrapperType, func(event *model.Event, rule *rules.Rule) { + }, test.validateFileEvent(t, noWrapperType, func(event *model.Event, _ *rules.Rule) { assertFieldEqualCaseInsensitve(t, event, "create.file.name", "test.bad", event, "create.file.name file didn't match") })) }) @@ -94,7 +94,7 @@ func TestRenameFileEvent(t *testing.T) { test.Run(t, "rename", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { test.WaitSignal(t, func() error { return os.Rename("C:\\Temp\\test.bad", "C:\\Temp\\test.good") - }, test.validateFileEvent(t, noWrapperType, func(event *model.Event, rule *rules.Rule) { + }, test.validateFileEvent(t, noWrapperType, func(event *model.Event, _ *rules.Rule) { assertFieldEqualCaseInsensitve(t, event, "rename.file.name", "test.bad", event, "rename.file.name file didn't match") assertFieldEqualCaseInsensitve(t, event, "rename.file.destination.name", "test.good", event, "rename.file.destination.name file didn't match") })) @@ -131,7 +131,7 @@ func TestDeleteFileEvent(t *testing.T) { test.Run(t, "delete", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { test.WaitSignal(t, func() error { return os.Remove("C:\\Temp\\test.bad") - }, test.validateFileEvent(t, noWrapperType, func(event *model.Event, rule *rules.Rule) { + }, test.validateFileEvent(t, noWrapperType, func(event *model.Event, _ *rules.Rule) { assertFieldEqualCaseInsensitve(t, event, "delete.file.name", "test.bad", event, "delete.file.name file didn't match") })) }) @@ -174,7 +174,7 @@ func TestWriteFileEvent(t *testing.T) { return err } return f.Close() - }, test.validateFileEvent(t, noWrapperType, func(event *model.Event, rule *rules.Rule) { + }, test.validateFileEvent(t, noWrapperType, func(event *model.Event, _ *rules.Rule) { assertFieldEqualCaseInsensitve(t, event, "write.file.name", "test.bad", event, "write.file.name file didn't match") })) }) @@ -222,7 +222,7 @@ func TestWriteFileEventWithCreate(t *testing.T) { return err } return f.Close() - }, test.validateFileEvent(t, noWrapperType, func(event *model.Event, rule *rules.Rule) { + }, test.validateFileEvent(t, noWrapperType, func(event *model.Event, _ *rules.Rule) { assertFieldEqualCaseInsensitve(t, event, "write.file.name", "test.bad", "write.file.name file didn't match") })) }) diff --git a/pkg/security/tests/filters_test.go b/pkg/security/tests/filters_test.go index 78841d2305f50..58273192fc60d 100644 --- a/pkg/security/tests/filters_test.go +++ b/pkg/security/tests/filters_test.go @@ -165,7 +165,7 @@ func TestFilterOpenLeafDiscarder(t *testing.T) { return err } return syscall.Close(fd) - }, func(event eval.Event, field eval.Field, eventType eval.EventType) bool { + }, func(event eval.Event, _ eval.Field, eventType eval.EventType) bool { if event == nil || (eventType != "open") { return false } @@ -238,7 +238,7 @@ func TestFilterOpenLeafDiscarderActivityDump(t *testing.T) { t.Fatal(err) } return nil - }, func(event eval.Event, field eval.Field, eventType eval.EventType) bool { + }, func(event eval.Event, _ eval.Field, _ eval.EventType) bool { e := event.(*model.Event) if e == nil || e.GetEventType() != model.FileOpenEventType { return false @@ -299,7 +299,7 @@ func testFilterOpenParentDiscarder(t *testing.T, parents ...string) { return err } return syscall.Close(fd) - }, func(event eval.Event, field eval.Field, eventType eval.EventType) bool { + }, func(event eval.Event, _ eval.Field, eventType eval.EventType) bool { if event == nil || (eventType != "open") { return false } @@ -617,7 +617,7 @@ func TestFilterDiscarderMask(t *testing.T) { testFile, testFilePtr, err = test.CreateWithOptions("test-mask", 98, 99, 0o447) return err - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "test_mask_open_rule") }) @@ -656,7 +656,7 @@ func TestFilterDiscarderMask(t *testing.T) { return err } return f.Close() - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "test_mask_open_rule") }) })) @@ -698,7 +698,7 @@ func TestFilterRenameFileDiscarder(t *testing.T) { return err } return syscall.Close(fd) - }, func(event eval.Event, field eval.Field, eventType eval.EventType) bool { + }, func(event eval.Event, _ eval.Field, eventType eval.EventType) bool { if event == nil || (eventType != "open") { return false } @@ -784,7 +784,7 @@ func TestFilterRenameFolderDiscarder(t *testing.T) { return err } return syscall.Close(fd) - }, func(event eval.Event, field eval.Field, eventType eval.EventType) bool { + }, func(event eval.Event, _ eval.Field, eventType eval.EventType) bool { if event == nil || (eventType != "open") { return false } @@ -956,9 +956,9 @@ func TestFilterDiscarderRetention(t *testing.T) { return err } return syscall.Close(fd) - }, func(event eval.Event, field eval.Field, eventType eval.EventType) bool { + }, func(event eval.Event, _ eval.Field, _ eval.EventType) bool { e := event.(*model.Event) - if e == nil || (e != nil && e.GetEventType() != model.FileOpenEventType) { + if e == nil || e.GetEventType() != model.FileOpenEventType { return false } @@ -1051,7 +1051,7 @@ func TestFilterBpfCmd(t *testing.T) { return err } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "test_bpf_map_create") }) @@ -1070,10 +1070,7 @@ func TestFilterBpfCmd(t *testing.T) { return false } cmd := model.BPFCmd(uint64(cmdInt)) - if assert.Equal(t, model.BpfMapCreateCmd, cmd, "should not get a bpf event with cmd other than BPF_MAP_CREATE") { - return false - } - return true + return !assert.Equal(t, model.BpfMapCreateCmd, cmd, "should not get a bpf event with cmd other than BPF_MAP_CREATE") }, 1*time.Second, model.BPFEventType) if err != nil { if otherErr, ok := err.(ErrTimeout); !ok { @@ -1122,7 +1119,7 @@ func TestFilterRuntimeDiscarded(t *testing.T) { // unlink aren't discarded kernel side (inode invalidation) but should be discarded before the rule evaluation err = test.GetSignal(t, func() error { return os.Remove(testFile) - }, func(event *model.Event, r *rules.Rule) { + }, func(_ *model.Event, _ *rules.Rule) { t.Errorf("shouldn't get an event") }) diff --git a/pkg/security/tests/hardlink_test.go b/pkg/security/tests/hardlink_test.go index 8a12f4f71a91b..b346cb15b23cb 100644 --- a/pkg/security/tests/hardlink_test.go +++ b/pkg/security/tests/hardlink_test.go @@ -56,7 +56,7 @@ func runHardlinkTests(t *testing.T, opts testOpts) { test.WaitSignal(t, func() error { cmd := exec.Command(testOrigExecutable, "/tmp/test1") return cmd.Run() - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "test_rule_orig_exec") }) @@ -72,14 +72,14 @@ func runHardlinkTests(t *testing.T, opts testOpts) { t.Fatal(err) } return err - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "test_rule_link_creation") }) test.WaitSignal(t, func() error { cmd := exec.Command(testNewExecutable, "/tmp/test2") return cmd.Run() - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "test_rule_link_exec") }) }) @@ -97,21 +97,21 @@ func runHardlinkTests(t *testing.T, opts testOpts) { t.Fatal(err) } return err - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "test_rule_link_creation") }) test.WaitSignal(t, func() error { cmd := exec.Command(testOrigExecutable, "/tmp/test1") return cmd.Run() - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "test_rule_orig_exec") }) test.WaitSignal(t, func() error { cmd := exec.Command(testNewExecutable, "/tmp/test2") return cmd.Run() - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "test_rule_link_exec") }) }) @@ -170,7 +170,7 @@ func TestHardLink(t *testing.T) { t.Fatal(err) } return err - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "test_rule_link_creation") }) }) diff --git a/pkg/security/tests/hash_test.go b/pkg/security/tests/hash_test.go index 6b9eada71adb6..4312e967e979d 100644 --- a/pkg/security/tests/hash_test.go +++ b/pkg/security/tests/hash_test.go @@ -56,7 +56,7 @@ func TestHash(t *testing.T) { return err } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(_ *model.Event, r *rules.Rule) { assertTriggeredRule(t, r, "test_rule_hash_exec") }) }) @@ -80,7 +80,7 @@ func TestHash(t *testing.T) { syscall.Close(fd) return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(_ *model.Event, r *rules.Rule) { assertTriggeredRule(t, r, "test_rule_hash_fifo") }) }) diff --git a/pkg/security/tests/kernel_module_test.go b/pkg/security/tests/kernel_module_test.go index e4ef4e7b8640b..764dff95c260f 100644 --- a/pkg/security/tests/kernel_module_test.go +++ b/pkg/security/tests/kernel_module_test.go @@ -148,7 +148,7 @@ func TestKworker(t *testing.T) { } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(_ *model.Event, r *rules.Rule) { assert.Equal(t, "test_load_module_kworker", r.ID, "invalid rule triggered") }) } diff --git a/pkg/security/tests/link_test.go b/pkg/security/tests/link_test.go index 10eee1726eb9e..17e3b50f772cf 100644 --- a/pkg/security/tests/link_test.go +++ b/pkg/security/tests/link_test.go @@ -56,7 +56,7 @@ func TestLink(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "link", event.GetType(), "wrong event type") assertInode(t, getInode(t, testNewFile), event.Link.Source.Inode) assertRights(t, event.Link.Source.Mode, uint16(expectedMode)) @@ -86,7 +86,7 @@ func TestLink(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "link", event.GetType(), "wrong event type") assertInode(t, getInode(t, testNewFile), event.Link.Source.Inode) assertRights(t, event.Link.Source.Mode, uint16(expectedMode)) @@ -145,7 +145,7 @@ func TestLink(t *testing.T) { return fmt.Errorf("failed to create a link with io_uring: %d", ret) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "link", event.GetType(), "wrong event type") assert.Equal(t, getInode(t, testNewFile), event.Link.Source.Inode, "wrong inode") assertRights(t, event.Link.Source.Mode, uint16(expectedMode)) diff --git a/pkg/security/tests/macros_test.go b/pkg/security/tests/macros_test.go index 4b870a42a6b64..356137a2dffb5 100644 --- a/pkg/security/tests/macros_test.go +++ b/pkg/security/tests/macros_test.go @@ -55,7 +55,7 @@ func TestMacros(t *testing.T) { return err } return os.Remove(testFile) - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "mkdir", event.GetType(), "wrong event type") }) } diff --git a/pkg/security/tests/main_linux.go b/pkg/security/tests/main_linux.go index 1caee6dd31363..c64b83fbc917d 100644 --- a/pkg/security/tests/main_linux.go +++ b/pkg/security/tests/main_linux.go @@ -26,6 +26,7 @@ const ( fakeGroupPath = "/tmp/fake_group" ) +// SkipIfNotAvailable skips the test if not available for this platform func SkipIfNotAvailable(t *testing.T) { match := func(list []string) bool { var match bool diff --git a/pkg/security/tests/misc_test.go b/pkg/security/tests/misc_test.go index f9dbbee41c7af..6c218eb27b881 100644 --- a/pkg/security/tests/misc_test.go +++ b/pkg/security/tests/misc_test.go @@ -51,7 +51,7 @@ func TestOsOrigin(t *testing.T) { return err } return os.Remove(testFile) - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "test_origin") }) } @@ -81,7 +81,7 @@ func TestHostname(t *testing.T) { return err } return os.Remove(testFile) - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "test_hostname") }) } diff --git a/pkg/security/tests/mmap_test.go b/pkg/security/tests/mmap_test.go index 3525d2a560fa9..6b5db2f47e33b 100644 --- a/pkg/security/tests/mmap_test.go +++ b/pkg/security/tests/mmap_test.go @@ -47,7 +47,7 @@ func TestMMapEvent(t *testing.T) { return fmt.Errorf("couldn't unmap memory segment: %w", err) } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "mmap", event.GetType(), "wrong event type") assert.Equal(t, uint64(unix.PROT_READ|unix.PROT_WRITE|unix.PROT_EXEC), event.MMap.Protection&(unix.PROT_READ|unix.PROT_WRITE|unix.PROT_EXEC), fmt.Sprintf("wrong protection: %s", model.Protection(event.MMap.Protection))) @@ -91,7 +91,7 @@ func TestMMapApproverZero(t *testing.T) { return fmt.Errorf("couldn't unmap memory segment: %w", err) } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "mmap", event.GetType(), "wrong event type") assert.Equal(t, uint64(unix.PROT_NONE), event.MMap.Protection&(unix.PROT_NONE), fmt.Sprintf("wrong protection: %s", model.Protection(event.MMap.Protection))) diff --git a/pkg/security/tests/module_tester_linux.go b/pkg/security/tests/module_tester_linux.go index 0012e19426ee1..f7aca647351c3 100644 --- a/pkg/security/tests/module_tester_linux.go +++ b/pkg/security/tests/module_tester_linux.go @@ -592,7 +592,9 @@ func newTestModuleWithOnDemandProbes(t testing.TB, onDemandHooks []rules.OnDeman fmt.Println(err) } commonCfgDir = cd - os.Chdir(commonCfgDir) + if err := os.Chdir(commonCfgDir); err != nil { + return nil, err + } } var proFile *os.File diff --git a/pkg/security/tests/mount_test.go b/pkg/security/tests/mount_test.go index 4252d8f553cb8..08c9cc1247e51 100644 --- a/pkg/security/tests/mount_test.go +++ b/pkg/security/tests/mount_test.go @@ -104,7 +104,7 @@ func TestMount(t *testing.T) { test.WaitSignal(t, func() error { return os.Chmod(file, 0707) - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "chmod", event.GetType(), "wrong event type") assert.Equal(t, file, event.Chmod.File.PathnameStr, "wrong path") }) @@ -239,7 +239,7 @@ func TestMountPropagated(t *testing.T) { t.Run("bind-mounted-chmod", func(t *testing.T) { test.WaitSignal(t, func() error { return os.Chmod(file, 0700) - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "chmod", event.GetType(), "wrong event type") assert.Equal(t, file, event.Chmod.File.PathnameStr, "wrong path") }) @@ -359,7 +359,7 @@ func TestMountSnapshot(t *testing.T) { mount, mountSource, mountOrigin, err := mountResolver.ResolveMount(uint32(mntInfo.ID), dev, pid, "") if err != nil { - t.Errorf(err.Error()) + t.Error(err) return } assert.Equal(t, model.MountSourceMountID, mountSource) diff --git a/pkg/security/tests/mprotect_test.go b/pkg/security/tests/mprotect_test.go index 70ea719a22909..7de1d11061e47 100644 --- a/pkg/security/tests/mprotect_test.go +++ b/pkg/security/tests/mprotect_test.go @@ -48,7 +48,7 @@ func TestMProtectEvent(t *testing.T) { return fmt.Errorf("couldn't mprotect segment: %w", err) } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "mprotect", event.GetType(), "wrong event type") assert.Equal(t, unix.PROT_READ|unix.PROT_WRITE, event.MProtect.VMProtection&(unix.PROT_READ|unix.PROT_WRITE), fmt.Sprintf("wrong initial protection: %s", model.Protection(event.MProtect.VMProtection))) assert.Equal(t, unix.PROT_READ|unix.PROT_WRITE|unix.PROT_EXEC, event.MProtect.ReqProtection&(unix.PROT_READ|unix.PROT_WRITE|unix.PROT_EXEC), fmt.Sprintf("wrong requested protection: %s", model.Protection(event.MProtect.ReqProtection))) diff --git a/pkg/security/tests/network_test.go b/pkg/security/tests/network_test.go index 6fde6aa80657f..0f2e27ad5baf4 100644 --- a/pkg/security/tests/network_test.go +++ b/pkg/security/tests/network_test.go @@ -67,7 +67,7 @@ func TestNetworkCIDR(t *testing.T) { return err } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "dns", event.GetType(), "wrong event type") assert.Equal(t, "google.com", event.DNS.Name, "wrong domain name") diff --git a/pkg/security/tests/ondemand_test.go b/pkg/security/tests/ondemand_test.go index 9a51ce1cec752..c4ea71047c072 100644 --- a/pkg/security/tests/ondemand_test.go +++ b/pkg/security/tests/ondemand_test.go @@ -74,7 +74,7 @@ func TestOnDemandOpen(t *testing.T) { return err } return syscall.Close(int(fd)) - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "ondemand", event.GetType(), "wrong event type") value, _ := event.GetFieldValue("ondemand.arg2.str") @@ -123,7 +123,7 @@ func TestOnDemandChdir(t *testing.T) { test.WaitSignal(t, func() error { return os.Chdir(testFolder) - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "ondemand", event.GetType(), "wrong event type") value, _ := event.GetFieldValue("ondemand.arg1.str") @@ -174,7 +174,7 @@ func TestOnDemandMprotect(t *testing.T) { return fmt.Errorf("couldn't mprotect segment: %w", err) } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "ondemand", event.GetType(), "wrong event type") }) } diff --git a/pkg/security/tests/open_test.go b/pkg/security/tests/open_test.go index 3509168fa021f..325ef9225c159 100644 --- a/pkg/security/tests/open_test.go +++ b/pkg/security/tests/open_test.go @@ -68,7 +68,7 @@ func TestOpen(t *testing.T) { return error(errno) } return syscall.Close(int(fd)) - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "open", event.GetType(), "wrong event type") assert.Equal(t, syscall.O_CREAT, int(event.Open.Flags), "wrong flags") assertRights(t, uint16(event.Open.Mode), 0755) @@ -91,7 +91,7 @@ func TestOpen(t *testing.T) { return error(errno) } return syscall.Close(int(fd)) - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "open", event.GetType(), "wrong event type") assert.Equal(t, syscall.O_CREAT, int(event.Open.Flags), "wrong flags") assertRights(t, uint16(event.Open.Mode), 0711) @@ -119,7 +119,7 @@ func TestOpen(t *testing.T) { return error(errno) } return syscall.Close(int(fd)) - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "open", event.GetType(), "wrong event type") assert.Equal(t, syscall.O_CREAT, int(event.Open.Flags), "wrong flags") assertRights(t, uint16(event.Open.Mode), 0711) @@ -139,7 +139,7 @@ func TestOpen(t *testing.T) { return error(errno) } return syscall.Close(int(fd)) - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "open", event.GetType(), "wrong event type") assert.Equal(t, syscall.O_CREAT|syscall.O_WRONLY|syscall.O_TRUNC, int(event.Open.Flags), "wrong flags") assertRights(t, uint16(event.Open.Mode), 0711) @@ -175,7 +175,7 @@ func TestOpen(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "open", event.GetType(), "wrong event type") assert.Equal(t, syscall.O_CREAT|syscall.O_WRONLY|syscall.O_TRUNC, int(event.Open.Flags), "wrong flags") assert.Equal(t, getInode(t, testFileTrunc), event.Open.File.Inode, "wrong inode") @@ -215,7 +215,7 @@ func TestOpen(t *testing.T) { } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "open", event.GetType(), "wrong event type") assert.Equal(t, syscall.O_CREAT|syscall.O_WRONLY|syscall.O_TRUNC, int(event.Open.Flags), "wrong flags") assert.Equal(t, getInode(t, testFileTrunc), event.Open.File.Inode, "wrong inode") @@ -235,7 +235,7 @@ func TestOpen(t *testing.T) { return err } return f.Close() - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "open", event.GetType(), "wrong event type") }) @@ -261,7 +261,7 @@ func TestOpen(t *testing.T) { return fmt.Errorf("OpenByHandleAt: %w", err) } return unix.Close(fdInt) - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "open", event.GetType(), "wrong event type") assert.Equal(t, syscall.O_CREAT, int(event.Open.Flags), "wrong flags") assertInode(t, event.Open.File.Inode, getInode(t, testFile)) @@ -281,7 +281,7 @@ func TestOpen(t *testing.T) { return err } return f.Close() - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "open", event.GetType(), "wrong event type") }) if err != nil { @@ -324,7 +324,7 @@ func TestOpen(t *testing.T) { } return unix.Close(fd) - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "open", event.GetType(), "wrong event type") // O_LARGEFILE is added by io_uring during __io_openat_prep assert.Equal(t, syscall.O_CREAT, int(event.Open.Flags&0xfff), "wrong flags") @@ -366,7 +366,7 @@ func TestOpen(t *testing.T) { } return unix.Close(fd) - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "open", event.GetType(), "wrong event type") // O_LARGEFILE is added by io_uring during __io_openat_prep assert.Equal(t, syscall.O_CREAT, int(event.Open.Flags&0xfff), "wrong flags") @@ -419,7 +419,7 @@ func TestOpenMetadata(t *testing.T) { return err } return f.Close() - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "open", event.GetType(), "wrong event type") assertRights(t, event.Open.File.Mode, expectedMode) assertInode(t, event.Open.File.Inode, getInode(t, testFile)) @@ -466,7 +466,7 @@ func TestOpenDiscarded(t *testing.T) { return err } return unix.Close(fd) - }, func(e *model.Event, r *rules.Rule) { + }, func(_ *model.Event, _ *rules.Rule) { t.Error("shouldn't have received an event") }) if err == nil { @@ -515,7 +515,7 @@ func TestOpenApproverZero(t *testing.T) { return error(errno) } return syscall.Close(int(fd)) - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "open", event.GetType(), "wrong event type") assert.Equal(t, 0, int(event.Open.Flags), "wrong flags") value, _ := event.GetFieldValue("event.async") diff --git a/pkg/security/tests/overlayfs_test.go b/pkg/security/tests/overlayfs_test.go index a6c5bbac6352b..ad91123dda5b7 100644 --- a/pkg/security/tests/overlayfs_test.go +++ b/pkg/security/tests/overlayfs_test.go @@ -183,7 +183,7 @@ func TestOverlayFS(t *testing.T) { return err } return f.Close() - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { inode = getInode(t, testFile) inUpperLayer, _ := event.GetFieldValue("open.file.in_upper_layer") @@ -197,7 +197,7 @@ func TestOverlayFS(t *testing.T) { test.WaitSignal(t, func() error { return os.Remove(testFile) - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { inUpperLayer, _ := event.GetFieldValue("unlink.file.in_upper_layer") assert.Equal(t, inode, event.Unlink.File.Inode, "wrong unlink inode") @@ -219,7 +219,7 @@ func TestOverlayFS(t *testing.T) { return err } return f.Close() - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { inode = getInode(t, testFile) inUpperLayer, _ := event.GetFieldValue("open.file.in_upper_layer") @@ -233,7 +233,7 @@ func TestOverlayFS(t *testing.T) { test.WaitSignal(t, func() error { return os.Remove(testFile) - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { inUpperLayer, _ := event.GetFieldValue("unlink.file.in_upper_layer") assert.Equal(t, inode, event.Unlink.File.Inode, "wrong unlink inode") @@ -255,7 +255,7 @@ func TestOverlayFS(t *testing.T) { return err } return f.Close() - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { inode = getInode(t, testFile) inUpperLayer, _ := event.GetFieldValue("open.file.in_upper_layer") @@ -269,7 +269,7 @@ func TestOverlayFS(t *testing.T) { test.WaitSignal(t, func() error { return os.Remove(testFile) - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { inUpperLayer, _ := event.GetFieldValue("unlink.file.in_upper_layer") assert.Equal(t, inode, event.Unlink.File.Inode, "wrong unlink inode") @@ -292,7 +292,7 @@ func TestOverlayFS(t *testing.T) { test.WaitSignal(t, func() error { return os.Rename(oldFile, newFile) - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { success := true if value, _ := event.GetFieldValue("rename.file.path"); value.(string) != oldFile { @@ -317,7 +317,7 @@ func TestOverlayFS(t *testing.T) { test.WaitSignal(t, func() error { return os.Remove(newFile) - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { inUpperLayer, _ := event.GetFieldValue("unlink.file.in_upper_layer") assert.Equal(t, inode, event.Unlink.File.Inode, "wrong unlink inode") @@ -343,7 +343,7 @@ func TestOverlayFS(t *testing.T) { return err } return f.Close() - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "test_rule_parent") }) @@ -362,7 +362,7 @@ func TestOverlayFS(t *testing.T) { return err } return f.Close() - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "test_rule_renamed_parent") }) }) @@ -377,7 +377,7 @@ func TestOverlayFS(t *testing.T) { test.WaitSignal(t, func() error { return os.Remove(testDir) - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { inUpperLayer, _ := event.GetFieldValue("rmdir.file.in_upper_layer") assert.Equal(t, inode, event.Rmdir.File.Inode, "wrong rmdir inode") @@ -395,7 +395,7 @@ func TestOverlayFS(t *testing.T) { test.WaitSignal(t, func() error { return os.Chmod(testFile, 0777) - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { inode = getInode(t, testFile) inUpperLayer, _ := event.GetFieldValue("chmod.file.in_upper_layer") @@ -409,7 +409,7 @@ func TestOverlayFS(t *testing.T) { test.WaitSignal(t, func() error { return os.Remove(testFile) - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { inUpperLayer, _ := event.GetFieldValue("unlink.file.in_upper_layer") assert.Equal(t, inode, event.Unlink.File.Inode, "wrong unlink inode") @@ -427,7 +427,7 @@ func TestOverlayFS(t *testing.T) { test.WaitSignal(t, func() error { return syscall.Mkdir(testFile, 0777) - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { inode = getInode(t, testFile) inUpperLayer, _ := event.GetFieldValue("mkdir.file.in_upper_layer") @@ -441,7 +441,7 @@ func TestOverlayFS(t *testing.T) { test.WaitSignal(t, func() error { return os.Remove(testFile) - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { inUpperLayer, _ := event.GetFieldValue("rmdir.file.in_upper_layer") assert.Equal(t, inode, event.Rmdir.File.Inode, "wrong rmdir inode") @@ -459,7 +459,7 @@ func TestOverlayFS(t *testing.T) { test.WaitSignal(t, func() error { return os.Chtimes(testFile, time.Now(), time.Now()) - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { inode = getInode(t, testFile) inUpperLayer, _ := event.GetFieldValue("utimes.file.in_upper_layer") @@ -473,7 +473,7 @@ func TestOverlayFS(t *testing.T) { test.WaitSignal(t, func() error { return os.Remove(testFile) - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { inUpperLayer, _ := event.GetFieldValue("unlink.file.in_upper_layer") assert.Equal(t, inode, event.Unlink.File.Inode, "wrong unlink inode") @@ -491,7 +491,7 @@ func TestOverlayFS(t *testing.T) { test.WaitSignal(t, func() error { return os.Chown(testFile, os.Getuid(), os.Getgid()) - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { inode = getInode(t, testFile) inUpperLayer, _ := event.GetFieldValue("chown.file.in_upper_layer") @@ -505,7 +505,7 @@ func TestOverlayFS(t *testing.T) { test.WaitSignal(t, func() error { return os.Remove(testFile) - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { inUpperLayer, _ := event.GetFieldValue("unlink.file.in_upper_layer") assert.Equal(t, inode, event.Unlink.File.Inode, "wrong unlink inode") @@ -534,7 +534,7 @@ func TestOverlayFS(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { inode = getInode(t, testFile) inUpperLayer, _ := event.GetFieldValue("setxattr.file.in_upper_layer") @@ -548,7 +548,7 @@ func TestOverlayFS(t *testing.T) { test.WaitSignal(t, func() error { return os.Remove(testFile) - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { inUpperLayer, _ := event.GetFieldValue("unlink.file.in_upper_layer") assert.Equal(t, inode, event.Unlink.File.Inode, "wrong unlink inode") @@ -566,7 +566,7 @@ func TestOverlayFS(t *testing.T) { test.WaitSignal(t, func() error { return os.Truncate(testFile, 0) - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { inode = getInode(t, testFile) inUpperLayer, _ := event.GetFieldValue("open.file.in_upper_layer") @@ -580,7 +580,7 @@ func TestOverlayFS(t *testing.T) { test.WaitSignal(t, func() error { return os.Remove(testFile) - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { inUpperLayer, _ := event.GetFieldValue("unlink.file.in_upper_layer") assert.Equal(t, inode, event.Unlink.File.Inode, "wrong unlink inode") @@ -603,7 +603,7 @@ func TestOverlayFS(t *testing.T) { test.WaitSignal(t, func() error { return os.Link(testSrc, testTarget) - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { inode = getInode(t, testSrc) success := assert.Equal(t, inode, event.Link.Source.Inode, "wrong link source inode") @@ -621,7 +621,7 @@ func TestOverlayFS(t *testing.T) { test.WaitSignal(t, func() error { return os.Remove(testSrc) - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { inUpperLayer, _ := event.GetFieldValue("unlink.file.in_upper_layer") success := assert.Equal(t, inode, event.Unlink.File.Inode, "wrong unlink inode") @@ -634,7 +634,7 @@ func TestOverlayFS(t *testing.T) { test.WaitSignal(t, func() error { return os.Remove(testTarget) - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { inUpperLayer, _ := event.GetFieldValue("unlink.file.in_upper_layer") assert.Equal(t, inode, event.Unlink.File.Inode, "wrong unlink inode") diff --git a/pkg/security/tests/process_test.go b/pkg/security/tests/process_test.go index 92fb75b44809d..796a8b9ede73f 100644 --- a/pkg/security/tests/process_test.go +++ b/pkg/security/tests/process_test.go @@ -72,7 +72,7 @@ func TestProcess(t *testing.T) { return err } return os.Remove(testFile) - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "test_rule") }) } @@ -243,7 +243,7 @@ func TestProcessContext(t *testing.T) { os.Remove(testFile) return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { t.Errorf("shouldn't get an event: got event: %s", test.debugEvent(event)) }) if err == nil { @@ -264,7 +264,7 @@ func TestProcessContext(t *testing.T) { os.Remove(testFile) return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "test_exec_time_2") }) }) @@ -289,7 +289,7 @@ func TestProcessContext(t *testing.T) { } return f.Close() - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assertFieldEqual(t, event, "process.file.path", executable) assert.Equal(t, getInode(t, executable), event.ProcessContext.FileEvent.Inode, "wrong inode") @@ -304,7 +304,7 @@ func TestProcessContext(t *testing.T) { // we need to ignore the error because "--password" is not a valid option for ls _ = cmd.Run() return nil - }, test.validateExecEvent(t, kind, func(event *model.Event, rule *rules.Rule) { + }, test.validateExecEvent(t, kind, func(event *model.Event, _ *rules.Rule) { argv0, err := event.GetFieldValue("exec.argv0") if err != nil { t.Errorf("not able to get argv0") @@ -373,7 +373,7 @@ func TestProcessContext(t *testing.T) { cmd := cmdFunc("ls", args, envs) _ = cmd.Run() return nil - }, test.validateExecEvent(t, kind, func(event *model.Event, rule *rules.Rule) { + }, test.validateExecEvent(t, kind, func(_ *model.Event, rule *rules.Rule) { assert.Equal(t, "test_rule_envp", rule.ID, "wrong rule triggered") })) }) @@ -384,7 +384,7 @@ func TestProcessContext(t *testing.T) { test.WaitSignal(t, func() error { cmd := exec.Command(lsExecutable, "-ll") return cmd.Run() - }, test.validateExecEvent(t, noWrapperType, func(event *model.Event, rule *rules.Rule) { + }, test.validateExecEvent(t, noWrapperType, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "test_rule_argv") })) }) @@ -395,7 +395,7 @@ func TestProcessContext(t *testing.T) { test.WaitSignal(t, func() error { cmd := exec.Command(lsExecutable, "-ls", "--escape") return cmd.Run() - }, test.validateExecEvent(t, noWrapperType, func(event *model.Event, rule *rules.Rule) { + }, test.validateExecEvent(t, noWrapperType, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "test_rule_args_flags") })) }) @@ -406,7 +406,7 @@ func TestProcessContext(t *testing.T) { test.WaitSignal(t, func() error { cmd := exec.Command(lsExecutable, "--block-size", "123") return cmd.Run() - }, test.validateExecEvent(t, noWrapperType, func(event *model.Event, rule *rules.Rule) { + }, test.validateExecEvent(t, noWrapperType, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "test_rule_args_options") })) }) @@ -427,7 +427,7 @@ func TestProcessContext(t *testing.T) { // we need to ignore the error because the string of "a" generates a "File name too long" error _ = cmd.Run() return nil - }, test.validateExecEvent(t, kind, func(event *model.Event, rule *rules.Rule) { + }, test.validateExecEvent(t, kind, func(event *model.Event, _ *rules.Rule) { args, err := event.GetFieldValue("exec.args") if err != nil { t.Errorf("not able to get args") @@ -455,7 +455,7 @@ func TestProcessContext(t *testing.T) { })) }) - test.Run(t, "args-overflow-list-50", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + test.Run(t, "args-overflow-list-50", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { envs := []string{"LD_LIBRARY_PATH=/tmp/lib"} // force seed to have something we can reproduce @@ -472,7 +472,7 @@ func TestProcessContext(t *testing.T) { // we need to ignore the error because the string of "a" generates a "File name too long" error _ = cmd.Run() return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { execArgs, err := event.GetFieldValue("exec.args") if err != nil { t.Errorf("not able to get args") @@ -505,7 +505,7 @@ func TestProcessContext(t *testing.T) { } }) - test.Run(t, "args-overflow-list-500", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + test.Run(t, "args-overflow-list-500", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { envs := []string{"LD_LIBRARY_PATH=/tmp/lib"} // force seed to have something we can reproduce @@ -522,7 +522,7 @@ func TestProcessContext(t *testing.T) { // we need to ignore the error because the string of "a" generates a "File name too long" error _ = cmd.Run() return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { execArgs, err := event.GetFieldValue("exec.args") if err != nil { t.Errorf("not able to get args") @@ -586,7 +586,7 @@ func TestProcessContext(t *testing.T) { } cmd := cmdFunc(bin, args, envs) return cmd.Run() - }, test.validateExecEvent(t, kind, func(event *model.Event, rule *rules.Rule) { + }, test.validateExecEvent(t, kind, func(event *model.Event, _ *rules.Rule) { execEnvp, err := event.GetFieldValue("exec.envp") if err != nil { t.Errorf("not able to get exec.envp") @@ -637,7 +637,7 @@ func TestProcessContext(t *testing.T) { } cmd := cmdFunc(bin, args, envs) return cmd.Run() - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { execEnvp, err := event.GetFieldValue("exec.envp") if err != nil { t.Errorf("not able to get exec.envp") @@ -818,7 +818,7 @@ func TestProcessContext(t *testing.T) { }) }) - test.Run(t, "ancestors", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + test.Run(t, "ancestors", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { testFile, _, err := test.Path("test-process-ancestors") if err != nil { t.Fatal(err) @@ -842,7 +842,7 @@ func TestProcessContext(t *testing.T) { }) }) - test.Run(t, "parent", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + test.Run(t, "parent", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { testFile, _, err := test.Path("test-process-parent") if err != nil { t.Fatal(err) @@ -867,7 +867,7 @@ func TestProcessContext(t *testing.T) { }) }) - test.Run(t, "pid1", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + test.Run(t, "pid1", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { SkipIfNotAvailable(t) testFile, _, err := test.Path("test-process-pid1") @@ -887,12 +887,12 @@ func TestProcessContext(t *testing.T) { return fmt.Errorf("%s: %w", out, err) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assert.Equal(t, "test_rule_pid1", rule.ID, "wrong rule triggered") }) }) - test.Run(t, "service-tag", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + test.Run(t, "service-tag", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { testFile, _, err := test.Path("test-event-service") if err != nil { t.Fatal(err) @@ -919,7 +919,7 @@ func TestProcessContext(t *testing.T) { }) }) - test.Run(t, "ancestors-args", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + test.Run(t, "ancestors-args", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { testFile, _, err := test.Path("test-ancestors-args") if err != nil { t.Fatal(err) @@ -934,7 +934,7 @@ func TestProcessContext(t *testing.T) { return fmt.Errorf("%s: %w", out, err) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assert.Equal(t, "test_rule_ancestors_args", rule.ID, "wrong rule triggered") }) }) @@ -985,7 +985,7 @@ func TestProcessContext(t *testing.T) { cmd := exec.Command(syscallTester, args...) _ = cmd.Run() return nil - }, test.validateExecEvent(t, noWrapperType, func(event *model.Event, rule *rules.Rule) { + }, test.validateExecEvent(t, noWrapperType, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "test_rule_ancestors_glob") })) }) @@ -999,7 +999,7 @@ func TestProcessContext(t *testing.T) { _, _ = cmd.CombinedOutput() return nil - }, test.validateExecEvent(t, kind, func(event *model.Event, rule *rules.Rule) { + }, test.validateExecEvent(t, kind, func(_ *model.Event, rule *rules.Rule) { assertTriggeredRule(t, rule, "test_self_exec") })) }) @@ -1032,7 +1032,7 @@ func TestProcessContext(t *testing.T) { }) testProcessContextRule := func(t *testing.T, ruleID, filename string) { - test.Run(t, ruleID, func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + test.Run(t, ruleID, func(t *testing.T, _ wrapperType, _ func(cmd string, args []string, envs []string) *exec.Cmd) { testFile, _, err := test.Path(filename) if err != nil { t.Fatal(err) @@ -1045,7 +1045,7 @@ func TestProcessContext(t *testing.T) { } f.Close() return os.Remove(testFile) - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assert.Equal(t, ruleID, rule.ID, "wrong rule triggered") }) }) @@ -1120,7 +1120,7 @@ func TestProcessExecCTime(t *testing.T) { cmd := exec.Command(testFile, "/tmp/test") return cmd.Run() - }, test.validateExecEvent(t, noWrapperType, func(event *model.Event, rule *rules.Rule) { + }, test.validateExecEvent(t, noWrapperType, func(_ *model.Event, rule *rules.Rule) { assert.Equal(t, "test_exec_ctime", rule.ID, "wrong rule triggered") })) } @@ -1144,7 +1144,7 @@ func TestProcessPIDVariable(t *testing.T) { test.WaitSignal(t, func() error { cmd := exec.Command(executable, fmt.Sprintf("/proc/%d/maps", os.Getpid())) return cmd.Run() - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assert.Equal(t, "test_rule_var", rule.ID, "wrong rule triggered") }) } @@ -1229,7 +1229,7 @@ func TestProcessScopedVariable(t *testing.T) { test.WaitSignal(t, func() error { filename1, _, err = test.Create("test-open") return err - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assert.Equal(t, "test_rule_set_mutable_vars", rule.ID, "wrong rule triggered") }) if err != nil { @@ -1240,7 +1240,7 @@ func TestProcessScopedVariable(t *testing.T) { test.WaitSignal(t, func() error { filename2, _, err = test.Create("test-open-2") return err - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assert.Equal(t, "test_rule_modify_mutable_vars", rule.ID, "wrong rule triggered") }) if err != nil { @@ -1251,7 +1251,7 @@ func TestProcessScopedVariable(t *testing.T) { test.WaitSignal(t, func() error { filename3, _, err = test.Create("test-open-3") return err - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assert.Equal(t, "test_rule_test_mutable_vars", rule.ID, "wrong rule triggered") }) if err != nil { @@ -1289,7 +1289,7 @@ func TestTimestampVariable(t *testing.T) { test.WaitSignal(t, func() error { filename1, _, err = test.Create("test-open") return err - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assert.Equal(t, "test_rule_set_timestamp_var", rule.ID, "wrong rule triggered") }) if err != nil { @@ -1300,7 +1300,7 @@ func TestTimestampVariable(t *testing.T) { test.WaitSignal(t, func() error { filename2, _, err = test.Create("test-open-2") return err - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assert.Equal(t, "test_rule_test_timestamp_var", rule.ID, "wrong rule triggered") }) if err != nil { @@ -1334,7 +1334,7 @@ func TestProcessExec(t *testing.T) { test.WaitSignal(t, func() error { cmd := exec.Command("sh", "-c", executable+" /dev/null") return cmd.Run() - }, test.validateExecEvent(t, noWrapperType, func(event *model.Event, rule *rules.Rule) { + }, test.validateExecEvent(t, noWrapperType, func(event *model.Event, _ *rules.Rule) { assertFieldEqual(t, event, "exec.file.path", executable) assertFieldIsOneOf(t, event, "process.parent.file.name", []string{"sh", "bash", "dash"}, "wrong process parent file name") assertFieldStringArrayIndexedOneOf(t, event, "process.ancestors.file.name", 0, []string{"sh", "bash", "dash"}) @@ -1348,7 +1348,7 @@ func TestProcessExec(t *testing.T) { args := []string{"exec-in-pthread", executable, "/dev/null"} cmd := exec.Command(syscallTester, args...) return cmd.Run() - }, test.validateExecEvent(t, noWrapperType, func(event *model.Event, rule *rules.Rule) { + }, test.validateExecEvent(t, noWrapperType, func(event *model.Event, _ *rules.Rule) { assertFieldEqual(t, event, "exec.file.path", executable) assertFieldEqual(t, event, "process.parent.file.name", "syscall_tester", "wrong process parent file name") })) @@ -1396,7 +1396,7 @@ func TestProcessMetadata(t *testing.T) { test.WaitSignal(t, func() error { cmd := exec.Command(testFile) return cmd.Run() - }, test.validateExecEvent(t, noWrapperType, func(event *model.Event, rule *rules.Rule) { + }, test.validateExecEvent(t, noWrapperType, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "exec", event.GetType(), "wrong event type") assertRights(t, event.Exec.FileEvent.Mode, fileMode) if !ebpfLessEnabled { @@ -1418,7 +1418,7 @@ func TestProcessMetadata(t *testing.T) { cmd := exec.Command(testFile) cmd.SysProcAttr = attr return cmd.Run() - }, test.validateExecEvent(t, noWrapperType, func(event *model.Event, rule *rules.Rule) { + }, test.validateExecEvent(t, noWrapperType, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "exec", event.GetType(), "wrong event type") assert.Equal(t, 1001, int(event.Exec.Credentials.UID), "wrong uid") assert.Equal(t, 2001, int(event.Exec.Credentials.GID), "wrong gid") @@ -1464,7 +1464,7 @@ func TestProcessExecExit(t *testing.T) { return false } - validate := test.validateExecEvent(t, noWrapperType, func(event *model.Event, rule *rules.Rule) { + validate := test.validateExecEvent(t, noWrapperType, func(event *model.Event, _ *rules.Rule) { validateProcessContextLineage(t, event) validateProcessContextSECL(t, event) @@ -1947,50 +1947,50 @@ func TestProcessBusybox(t *testing.T) { return } - wrapper.Run(t, "busybox-1", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + wrapper.Run(t, "busybox-1", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { test.WaitSignal(t, func() error { cmd := cmdFunc("/usr/bin/whoami", nil, nil) if out, err := cmd.CombinedOutput(); err != nil { return fmt.Errorf("%s: %w", out, err) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assert.Equal(t, "test_busybox_1", rule.ID, "wrong rule triggered") }) }) - wrapper.Run(t, "busybox-2", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + wrapper.Run(t, "busybox-2", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { test.WaitSignal(t, func() error { cmd := cmdFunc("/bin/sync", nil, nil) if out, err := cmd.CombinedOutput(); err != nil { return fmt.Errorf("%s: %w", out, err) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assert.Equal(t, "test_busybox_2", rule.ID, "wrong rule triggered") }) }) - wrapper.Run(t, "busybox-3", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + wrapper.Run(t, "busybox-3", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { test.WaitSignal(t, func() error { cmd := cmdFunc("/bin/df", nil, nil) if out, err := cmd.CombinedOutput(); err != nil { return fmt.Errorf("%s: %w", out, err) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assert.Equal(t, "test_busybox_3", rule.ID, "wrong rule triggered") }) }) - wrapper.Run(t, "busybox-4", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + wrapper.Run(t, "busybox-4", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { test.WaitSignal(t, func() error { cmd := cmdFunc("/bin/touch", []string{"/tmp/busybox-test"}, nil) if out, err := cmd.CombinedOutput(); err != nil { return fmt.Errorf("%s: %w", out, err) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(_ *model.Event, rule *rules.Rule) { assert.Equal(t, "test_busybox_4", rule.ID, "wrong rule triggered") }) }) @@ -2151,7 +2151,7 @@ chmod 755 pyscript.py } for _, test := range tests { - testModule.Run(t, test.name, func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + testModule.Run(t, test.name, func(t *testing.T, _ wrapperType, _ func(cmd string, args []string, envs []string) *exec.Cmd) { scriptLocation := filepath.Join(os.TempDir(), test.scriptName) if scriptWriteErr := os.WriteFile(scriptLocation, []byte(test.executedScript), 0755); scriptWriteErr != nil { t.Fatalf("could not write %s: %s", scriptLocation, scriptWriteErr) @@ -2166,7 +2166,7 @@ chmod 755 pyscript.py if scriptRunErr != nil { t.Errorf("could not run %s: %s", scriptLocation, scriptRunErr) } - t.Logf(string(output)) + t.Log(string(output)) offsets, _ := p.GetOffsetConstants() t.Logf("%s: %+v\n", constantfetch.OffsetNameLinuxBinprmStructFile, offsets[constantfetch.OffsetNameLinuxBinprmStructFile]) @@ -2322,7 +2322,7 @@ func TestProcessFilelessExecution(t *testing.T) { rule: filelessDetectionRule, syscallTesterToRun: "fileless", syscallTesterScriptFilenameToRun: "", - check: func(event *model.Event, rule *rules.Rule) { + check: func(event *model.Event, _ *rules.Rule) { assertFieldEqual( t, event, "process.file.name", filelessExecutionFilenamePrefix, "process.file.name not matching", ) @@ -2337,7 +2337,7 @@ func TestProcessFilelessExecution(t *testing.T) { rule: filelessWithInterpreterDetectionRule, syscallTesterToRun: "fileless", syscallTesterScriptFilenameToRun: "script", - check: func(event *model.Event, rule *rules.Rule) { + check: func(event *model.Event, _ *rules.Rule) { assertFieldEqual(t, event, "process.file.name", "memfd:script", "process.file.name not matching") }, }, @@ -2388,7 +2388,7 @@ func TestProcessFilelessExecution(t *testing.T) { cmd := exec.Command(testFile) return cmd.Run() - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { t.Errorf("shouldn't get an event: got event: %s", testModule.debugEvent(event)) }) if err == nil { diff --git a/pkg/security/tests/process_windows_test.go b/pkg/security/tests/process_windows_test.go index f3be02483f98d..49c4f1dbc9709 100644 --- a/pkg/security/tests/process_windows_test.go +++ b/pkg/security/tests/process_windows_test.go @@ -34,7 +34,7 @@ func TestBasicTest(t *testing.T) { test.WaitSignal(t, func() error { cmd := exec.Command(executable) return cmd.Run() - }, test.validateExecEvent(t, noWrapperType, func(event *model.Event, rule *rules.Rule) { + }, test.validateExecEvent(t, noWrapperType, func(event *model.Event, _ *rules.Rule) { assertFieldEqualCaseInsensitve(t, event, "exec.file.path", `c:\windows\system32\schtasks.exe`, "wrong exec file path") assertFieldIsOneOf(t, event, "process.parent.file.name", []string{"testsuite.exe"}, "wrong process parent file name") })) @@ -57,7 +57,7 @@ func TestBasicTest(t *testing.T) { // we will ignore the error. The username & password arguments are invalid _ = cmd.Run() return nil - }, test.validateExecEvent(t, kind, func(event *model.Event, rule *rules.Rule) { + }, test.validateExecEvent(t, kind, func(event *model.Event, _ *rules.Rule) { cmdline, err := event.GetFieldValue("exec.cmdline") if err != nil { t.Errorf("failed to get exec.cmdline: %v", err) diff --git a/pkg/security/tests/ptrace_test.go b/pkg/security/tests/ptrace_test.go index 174583d3305f0..1052a9791555d 100644 --- a/pkg/security/tests/ptrace_test.go +++ b/pkg/security/tests/ptrace_test.go @@ -40,7 +40,7 @@ func TestPTraceEvent(t *testing.T) { t.Fatal(err) } - test.Run(t, "ptrace", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + test.Run(t, "ptrace", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { args := []string{"ptrace-traceme"} envs := []string{} @@ -51,7 +51,7 @@ func TestPTraceEvent(t *testing.T) { } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "ptrace", event.GetType(), "wrong event type") assert.Equal(t, uint64(42), event.PTrace.Address, "wrong address") diff --git a/pkg/security/tests/registry_windows_test.go b/pkg/security/tests/registry_windows_test.go index df7b0bdc9106b..58cbbd030b8fb 100644 --- a/pkg/security/tests/registry_windows_test.go +++ b/pkg/security/tests/registry_windows_test.go @@ -68,7 +68,7 @@ func TestBasicRegistryTestPowershell(t *testing.T) { // we will ignore any error _ = cmd.Run() return nil - }, test.validateRegistryEvent(t, noWrapperType, func(event *model.Event, rule *rules.Rule) { + }, test.validateRegistryEvent(t, noWrapperType, func(event *model.Event, _ *rules.Rule) { assertFieldEqualCaseInsensitve(t, event, "open.registry.key_path", `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run`, "wrong registry key path") })) }) @@ -116,7 +116,7 @@ func TestBasicRegistryTestRegExe(t *testing.T) { // we will ignore any error _ = cmd.Run() return nil - }, test.validateRegistryEvent(t, noWrapperType, func(event *model.Event, rule *rules.Rule) { + }, test.validateRegistryEvent(t, noWrapperType, func(event *model.Event, _ *rules.Rule) { assertFieldEqualCaseInsensitve(t, event, "create.registry.key_path", `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run`, "wrong registry key path") })) }) @@ -154,7 +154,7 @@ func TestBasicRegistryTestAPI(t *testing.T) { } return nil - }, test.validateRegistryEvent(t, noWrapperType, func(event *model.Event, rule *rules.Rule) { + }, test.validateRegistryEvent(t, noWrapperType, func(event *model.Event, _ *rules.Rule) { assertFieldEqualCaseInsensitve(t, event, "create.registry.key_path", `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run`, "wrong registry key path") })) }) diff --git a/pkg/security/tests/rename_test.go b/pkg/security/tests/rename_test.go index 71110d379fa72..201fcac2e8a97 100644 --- a/pkg/security/tests/rename_test.go +++ b/pkg/security/tests/rename_test.go @@ -64,7 +64,7 @@ func TestRename(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "rename", event.GetType(), "wrong event type") assertInode(t, event.Rename.New.Inode, getInode(t, testNewFile)) assertRights(t, event.Rename.Old.Mode, expectedMode) @@ -96,7 +96,7 @@ func TestRename(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "rename", event.GetType(), "wrong event type") assertInode(t, event.Rename.New.Inode, getInode(t, testNewFile)) assertRights(t, event.Rename.Old.Mode, expectedMode) @@ -129,7 +129,7 @@ func TestRename(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "rename", event.GetType(), "wrong event type") assertInode(t, event.Rename.New.Inode, getInode(t, testNewFile)) assertRights(t, event.Rename.Old.Mode, expectedMode) @@ -189,7 +189,7 @@ func TestRename(t *testing.T) { return fmt.Errorf("failed to rename file with io_uring: %d", ret) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "rename", event.GetType(), "wrong event type") assert.Equal(t, getInode(t, testNewFile), event.Rename.New.Inode, "wrong inode") assertFieldEqual(t, event, "rename.file.destination.inode", int(getInode(t, testNewFile)), "wrong inode") @@ -248,7 +248,7 @@ func TestRenameInvalidate(t *testing.T) { for i := 0; i != 5; i++ { test.WaitSignal(t, func() error { return os.Rename(testOldFile, testNewFile) - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "rename", event.GetType(), "wrong event type") assertFieldEqual(t, event, "rename.file.destination.path", testNewFile) test.validateRenameSchema(t, event) @@ -318,7 +318,7 @@ func TestRenameReuseInode(t *testing.T) { } return f.Close() - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "open", event.GetType(), "wrong event type") }) @@ -345,7 +345,7 @@ func TestRenameReuseInode(t *testing.T) { return err } return f.Close() - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "open", event.GetType(), "wrong event type") assertFieldEqual(t, event, "open.file.inode", int(testNewFileInode)) assertFieldEqual(t, event, "open.file.path", testReuseInodeFile) @@ -390,7 +390,7 @@ func TestRenameFolder(t *testing.T) { return err } return testFile.Close() - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "open", event.GetType(), "wrong event type") assertFieldEqual(t, event, "open.file.path", filename) test.validateOpenSchema(t, event) diff --git a/pkg/security/tests/rmdir_test.go b/pkg/security/tests/rmdir_test.go index 071395b56c01d..83158dcc93feb 100644 --- a/pkg/security/tests/rmdir_test.go +++ b/pkg/security/tests/rmdir_test.go @@ -58,7 +58,7 @@ func TestRmdir(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "rmdir", event.GetType(), "wrong event type") assertInode(t, event.Rmdir.File.Inode, inode) assertRights(t, event.Rmdir.File.Mode, expectedMode, "wrong initial mode") @@ -88,7 +88,7 @@ func TestRmdir(t *testing.T) { return error(err) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "rmdir", event.GetType(), "wrong event type") assertInode(t, event.Rmdir.File.Inode, inode) assertRights(t, event.Rmdir.File.Mode, expectedMode, "wrong initial mode") @@ -149,7 +149,7 @@ func TestRmdir(t *testing.T) { return fmt.Errorf("failed to unlink file with io_uring: %d", ret) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "rmdir", event.GetType(), "wrong event type") assert.Equal(t, inode, event.Rmdir.File.Inode, "wrong inode") assertRights(t, event.Rmdir.File.Mode, expectedMode, "wrong initial mode") @@ -198,7 +198,7 @@ func TestRmdirInvalidate(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "rmdir", event.GetType(), "wrong event type") assertFieldEqual(t, event, "rmdir.file.path", testFile) }) diff --git a/pkg/security/tests/sbom_test.go b/pkg/security/tests/sbom_test.go index 47badc8607bf6..fd014c5777495 100644 --- a/pkg/security/tests/sbom_test.go +++ b/pkg/security/tests/sbom_test.go @@ -66,7 +66,7 @@ func TestSBOM(t *testing.T) { } defer dockerWrapper.stop() - dockerWrapper.Run(t, "package-rule", func(t *testing.T, kind wrapperType, cmdFunc func(bin string, args, env []string) *exec.Cmd) { + dockerWrapper.Run(t, "package-rule", func(t *testing.T, _ wrapperType, cmdFunc func(bin string, args, env []string) *exec.Cmd) { test.WaitSignal(t, func() error { retry.Do(func() error { sbom := p.Resolvers.SBOMResolver.GetWorkload(dockerWrapper.containerID) diff --git a/pkg/security/tests/schemas.go b/pkg/security/tests/schemas.go index 3fd8e7c006b77..1fc9d7f34497b 100644 --- a/pkg/security/tests/schemas.go +++ b/pkg/security/tests/schemas.go @@ -45,7 +45,7 @@ func validateMessageSchema(t *testing.T, msg string) bool { if !validateStringSchema(t, msg, "file:///message.schema.json") { return false } - return validateUrlSchema(t, msg, upstreamEventSchema) + return validateURLSchema(t, msg, upstreamEventSchema) } //nolint:deadcode,unused @@ -344,7 +344,7 @@ func validateStringSchema(t *testing.T, json string, path string) bool { } //nolint:deadcode,unused -func validateUrlSchema(t *testing.T, json string, url string) bool { +func validateURLSchema(t *testing.T, json string, url string) bool { t.Helper() documentLoader := gojsonschema.NewStringLoader(json) diff --git a/pkg/security/tests/security_profile_test.go b/pkg/security/tests/security_profile_test.go index 39dbc815f8759..1c814ea196f5c 100644 --- a/pkg/security/tests/security_profile_test.go +++ b/pkg/security/tests/security_profile_test.go @@ -277,7 +277,7 @@ func TestAnomalyDetection(t *testing.T) { cmd := dockerInstance.Command("getconf", []string{"-a"}, []string{}) _, err = cmd.CombinedOutput() return err - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { return true }, time.Second*3, model.ExecEventType, events.AnomalyDetectionRuleID) if err != nil { @@ -308,7 +308,7 @@ func TestAnomalyDetection(t *testing.T) { test.GetCustomEventSent(t, func() error { // don't do anything return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { t.Fatal("Should not had receive any anomaly detection.") return false }, time.Second*3, model.ExecEventType, events.AnomalyDetectionRuleID) @@ -342,7 +342,7 @@ func TestAnomalyDetection(t *testing.T) { cmd := dockerInstance.Command("nslookup", []string{"google.com"}, []string{}) _, err = cmd.CombinedOutput() return err - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { return true }, time.Second*3, model.DNSEventType, events.AnomalyDetectionRuleID) if err != nil { @@ -377,7 +377,7 @@ func TestAnomalyDetection(t *testing.T) { test.GetCustomEventSent(t, func() error { // don't do anything return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { t.Fatal("Should not had receive any anomaly detection.") return false }, time.Second*3, model.DNSEventType, events.AnomalyDetectionRuleID) @@ -460,7 +460,7 @@ func TestAnomalyDetectionWarmup(t *testing.T) { cmd := testDockerInstance1.Command("nslookup", []string{"foo.bar"}, []string{}) cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { t.Fatal("Should not had receive any anomaly detection during warm up.") return false }, time.Second*5, model.DNSEventType, events.AnomalyDetectionRuleID) @@ -471,7 +471,7 @@ func TestAnomalyDetectionWarmup(t *testing.T) { cmd := testDockerInstance1.Command("nslookup", []string{"foo.bar"}, []string{}) cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { t.Fatal("Should not had receive any anomaly detection during warm up.") return false }, time.Second*3, model.DNSEventType, events.AnomalyDetectionRuleID) @@ -482,7 +482,7 @@ func TestAnomalyDetectionWarmup(t *testing.T) { cmd := testDockerInstance1.Command("nslookup", []string{"foo.baz"}, []string{}) cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { return true }, time.Second*3, model.DNSEventType, events.AnomalyDetectionRuleID) if err != nil { @@ -501,7 +501,7 @@ func TestAnomalyDetectionWarmup(t *testing.T) { cmd := testDockerInstance2.Command("nslookup", []string{"foo.baz"}, []string{}) cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { t.Fatal("Should not had receive any anomaly detection during warm up.") return false }, time.Second*5, model.DNSEventType, events.AnomalyDetectionRuleID) @@ -514,7 +514,7 @@ func TestAnomalyDetectionWarmup(t *testing.T) { cmd := testDockerInstance2.Command("nslookup", []string{"foo.bar"}, []string{}) cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { t.Fatal("Should not had receive any anomaly detection during warm up.") return false }, time.Second*3, model.DNSEventType, events.AnomalyDetectionRuleID) @@ -525,7 +525,7 @@ func TestAnomalyDetectionWarmup(t *testing.T) { cmd := testDockerInstance2.Command("nslookup", []string{"foo.baz"}, []string{}) cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { t.Fatal("Should not had receive any anomaly detection during warm up.") return false }, time.Second*3, model.DNSEventType, events.AnomalyDetectionRuleID) @@ -536,7 +536,7 @@ func TestAnomalyDetectionWarmup(t *testing.T) { cmd := testDockerInstance1.Command("nslookup", []string{"foo.baz"}, []string{}) cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { t.Fatal("Should not had receive any anomaly detection during warm up.") return false }, time.Second*3, model.DNSEventType, events.AnomalyDetectionRuleID) @@ -615,7 +615,7 @@ func TestSecurityProfileReinsertionPeriod(t *testing.T) { cmd := dockerInstance.Command("getconf", []string{"-a"}, []string{}) _, err = cmd.CombinedOutput() return err - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { t.Fatal(errors.New("catch a custom event that should had been reinserted")) return false }, time.Second*3, model.ExecEventType, events.AnomalyDetectionRuleID) @@ -649,7 +649,7 @@ func TestSecurityProfileReinsertionPeriod(t *testing.T) { cmd := dockerInstance.Command("nslookup", []string{"google.fr"}, []string{}) _, err = cmd.CombinedOutput() return err - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { t.Fatal(errors.New("catch a custom event that should had been reinserted")) return false }, time.Second*3, model.DNSEventType, events.AnomalyDetectionRuleID) @@ -680,7 +680,7 @@ func TestSecurityProfileReinsertionPeriod(t *testing.T) { cmd := dockerInstance.Command("getconf", []string{"-a"}, []string{}) _, err = cmd.CombinedOutput() return err - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { return true }, time.Second*3, model.ExecEventType, events.AnomalyDetectionRuleID) if err != nil { @@ -717,7 +717,7 @@ func TestSecurityProfileReinsertionPeriod(t *testing.T) { cmd := dockerInstance.Command("nslookup", []string{"google.fr"}, []string{}) _, err = cmd.CombinedOutput() return err - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { return true }, time.Second*3, model.DNSEventType, events.AnomalyDetectionRuleID) if err != nil { @@ -852,7 +852,7 @@ func TestSecurityProfileAutoSuppression(t *testing.T) { cmd := dockerInstance.Command("getconf", []string{"-a"}, []string{}) _, err = cmd.CombinedOutput() return err - }, func(rule *rules.Rule, event *model.Event) bool { + }, func(_ *rules.Rule, event *model.Event) bool { if event.ProcessContext.ContainerID == containerutils.ContainerID(dump.ContainerID) { t.Fatal("Got a signal that should have been suppressed") } @@ -871,7 +871,7 @@ func TestSecurityProfileAutoSuppression(t *testing.T) { cmd := dockerInstance.Command("nslookup", []string{"foo.bar"}, []string{}) _, err = cmd.CombinedOutput() return err - }, func(rule *rules.Rule, event *model.Event) bool { + }, func(_ *rules.Rule, event *model.Event) bool { if event.ProcessContext.ContainerID == containerutils.ContainerID(dump.ContainerID) { t.Fatal("Got a signal that should have been suppressed") } @@ -1019,7 +1019,7 @@ func TestSecurityProfileDifferentiateArgs(t *testing.T) { cmd := dockerInstance.Command("/bin/date", []string{"--help"}, []string{}) _, err = cmd.CombinedOutput() return err - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { return true }, time.Second*3, model.ExecEventType, events.AnomalyDetectionRuleID) if err != nil { @@ -1104,7 +1104,7 @@ func TestSecurityProfileLifeCycleExecs(t *testing.T) { cmd := dockerInstanceV1.Command("getconf", []string{"-a"}, []string{}) _, err = cmd.CombinedOutput() return err - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { t.Fatal(errors.New("catch a custom event that should had been reinserted")) return false }, time.Second*2, model.ExecEventType, events.AnomalyDetectionRuleID) @@ -1125,7 +1125,7 @@ func TestSecurityProfileLifeCycleExecs(t *testing.T) { cmd := dockerInstanceV1.Command("getent", []string{}, []string{}) _, _ = cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { return true }, time.Second*3, model.ExecEventType, events.AnomalyDetectionRuleID) if err != nil { @@ -1150,7 +1150,7 @@ func TestSecurityProfileLifeCycleExecs(t *testing.T) { cmd := dockerInstanceV2.Command("iconv", []string{"-l"}, []string{}) _, _ = cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { return true }, time.Second*3, model.ExecEventType, events.AnomalyDetectionRuleID) if err != nil { @@ -1163,7 +1163,7 @@ func TestSecurityProfileLifeCycleExecs(t *testing.T) { cmd := dockerInstanceV2.Command("getconf", []string{"-a"}, []string{}) _, err = cmd.CombinedOutput() return err - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { t.Fatal(errors.New("catch a custom event that should had been reinserted")) return false }, time.Second*2, model.ExecEventType, events.AnomalyDetectionRuleID) @@ -1174,7 +1174,7 @@ func TestSecurityProfileLifeCycleExecs(t *testing.T) { cmd := dockerInstanceV1.Command("iconv", []string{"-l"}, []string{}) _, err = cmd.CombinedOutput() return err - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { t.Fatal(errors.New("catch a custom event that should had been reinserted")) return false }, time.Second*2, model.ExecEventType, events.AnomalyDetectionRuleID) @@ -1194,7 +1194,7 @@ func TestSecurityProfileLifeCycleExecs(t *testing.T) { cmd := dockerInstanceV1.Command("scanelf", []string{}, []string{}) _, _ = cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { t.Fatal(errors.New("catch a custom event that should had been discarded")) return false }, time.Second*2, model.ExecEventType, events.AnomalyDetectionRuleID) @@ -1278,7 +1278,7 @@ func TestSecurityProfileLifeCycleDNS(t *testing.T) { cmd := dockerInstanceV1.Command("nslookup", []string{"google.fr"}, []string{}) _, err = cmd.CombinedOutput() return err - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { t.Fatal(errors.New("catch a custom event that should had been reinserted")) return false }, time.Second*2, model.DNSEventType, events.AnomalyDetectionRuleID) @@ -1293,7 +1293,7 @@ func TestSecurityProfileLifeCycleDNS(t *testing.T) { cmd := dockerInstanceV1.Command("nslookup", []string{"google.com"}, []string{}) _, _ = cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { return true }, time.Second*3, model.DNSEventType, events.AnomalyDetectionRuleID) if err != nil { @@ -1319,7 +1319,7 @@ func TestSecurityProfileLifeCycleDNS(t *testing.T) { cmd := dockerInstanceV2.Command("nslookup", []string{"google.es"}, []string{}) _, _ = cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { return true }, time.Second*3, model.DNSEventType, events.AnomalyDetectionRuleID) if err != nil { @@ -1335,7 +1335,7 @@ func TestSecurityProfileLifeCycleDNS(t *testing.T) { cmd := dockerInstanceV2.Command("nslookup", []string{"google.fr"}, []string{}) _, err = cmd.CombinedOutput() return err - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { t.Fatal(errors.New("catch a custom event that should had been reinserted")) return false }, time.Second*2, model.DNSEventType, events.AnomalyDetectionRuleID) @@ -1346,7 +1346,7 @@ func TestSecurityProfileLifeCycleDNS(t *testing.T) { cmd := dockerInstanceV1.Command("nslookup", []string{"google.es"}, []string{}) _, err = cmd.CombinedOutput() return err - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { t.Fatal(errors.New("catch a custom event that should had been reinserted")) return false }, time.Second*2, model.DNSEventType, events.AnomalyDetectionRuleID) @@ -1366,7 +1366,7 @@ func TestSecurityProfileLifeCycleDNS(t *testing.T) { cmd := dockerInstanceV1.Command("nslookup", []string{"google.co.uk"}, []string{}) _, _ = cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { t.Fatal(errors.New("catch a custom event that should had been discarded")) return false }, time.Second*2, model.DNSEventType, events.AnomalyDetectionRuleID) @@ -1453,7 +1453,7 @@ func TestSecurityProfileLifeCycleSyscall(t *testing.T) { cmd := dockerInstanceV1.Command("sleep", []string{"1"}, []string{}) _, err = cmd.CombinedOutput() return err - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, event *events.CustomEvent) bool { // We shouldn't see anything: the profile is still learning data, _ := event.MarshalJSON() t.Fatal(fmt.Errorf("syscall anomaly detected when it should have been ignored: %s", string(data))) @@ -1471,7 +1471,7 @@ func TestSecurityProfileLifeCycleSyscall(t *testing.T) { cmd := dockerInstanceV1.Command("sleep", []string{"1"}, []string{}) _, err = cmd.CombinedOutput() return err - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, event *events.CustomEvent) bool { // this time we shouldn't see anything new. data, _ := event.MarshalJSON() t.Fatal(fmt.Errorf("syscall anomaly detected when it should have been ignored: %s", string(data))) @@ -1485,7 +1485,7 @@ func TestSecurityProfileLifeCycleSyscall(t *testing.T) { cmd := dockerInstanceV1.Command("nslookup", []string{"google.com"}, []string{}) _, _ = cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(r *rules.Rule, _ *events.CustomEvent) bool { assert.Equal(t, events.AnomalyDetectionRuleID, r.Rule.ID, "wrong custom event rule ID") return true }, time.Second*3, model.SyscallsEventType, events.AnomalyDetectionRuleID) @@ -1513,7 +1513,7 @@ func TestSecurityProfileLifeCycleSyscall(t *testing.T) { cmd := dockerInstanceV2.Command("date", []string{}, []string{}) _, _ = cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(r *rules.Rule, _ *events.CustomEvent) bool { // we should see an anomaly that will be inserted in the profile assert.Equal(t, events.AnomalyDetectionRuleID, r.Rule.ID, "wrong custom event rule ID") gotSyscallsEvent = true @@ -1530,7 +1530,7 @@ func TestSecurityProfileLifeCycleSyscall(t *testing.T) { cmd := dockerInstanceV2.Command("date", []string{}, []string{}) _, _ = cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, event *events.CustomEvent) bool { // this time we shouldn't see anything new. data, _ := event.MarshalJSON() t.Fatal(fmt.Errorf("syscall anomaly detected when it should have been ignored: %s", string(data))) @@ -1552,7 +1552,7 @@ func TestSecurityProfileLifeCycleSyscall(t *testing.T) { cmd := dockerInstanceV1.Command("nslookup", []string{"google.com"}, []string{}) _, _ = cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, event *events.CustomEvent) bool { // We shouldn't see anything: the profile is unstable data, _ := event.MarshalJSON() t.Fatal(fmt.Errorf("syscall anomaly detected when it should have been ignored: %s", string(data))) @@ -1640,7 +1640,7 @@ func TestSecurityProfileLifeCycleEvictionProcess(t *testing.T) { cmd := dockerInstanceV1.Command("getconf", []string{"-a"}, []string{}) _, err = cmd.CombinedOutput() return err - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { t.Fatal(errors.New("catch a custom event that should had been reinserted")) return false }, time.Second*2, model.ExecEventType, events.AnomalyDetectionRuleID) @@ -1661,7 +1661,7 @@ func TestSecurityProfileLifeCycleEvictionProcess(t *testing.T) { cmd := dockerInstanceV1.Command("getent", []string{}, []string{}) _, _ = cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { return true }, time.Second*2, model.ExecEventType, events.AnomalyDetectionRuleID) if err != nil { @@ -1686,7 +1686,7 @@ func TestSecurityProfileLifeCycleEvictionProcess(t *testing.T) { cmd := dockerInstanceV2.Command("iconv", []string{"-l"}, []string{}) _, _ = cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { return true }, time.Second*2, model.ExecEventType, events.AnomalyDetectionRuleID) if err != nil { @@ -1731,7 +1731,7 @@ func TestSecurityProfileLifeCycleEvictionProcess(t *testing.T) { cmd := dockerInstanceV3.Command("getconf", []string{"-a"}, []string{}) _, _ = cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { return true }, time.Second*2, model.ExecEventType, events.AnomalyDetectionRuleID) if err != nil { @@ -1818,7 +1818,7 @@ func TestSecurityProfileLifeCycleEvictionDNS(t *testing.T) { cmd := dockerInstanceV1.Command("nslookup", []string{"google.fr"}, []string{}) _, err = cmd.CombinedOutput() return err - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { t.Fatal(errors.New("catch a custom event that should had been reinserted")) return false }, time.Second*2, model.DNSEventType, events.AnomalyDetectionRuleID) @@ -1839,7 +1839,7 @@ func TestSecurityProfileLifeCycleEvictionDNS(t *testing.T) { cmd := dockerInstanceV1.Command("nslookup", []string{"google.com"}, []string{}) _, _ = cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { return true }, time.Second*2, model.DNSEventType, events.AnomalyDetectionRuleID) if err != nil { @@ -1864,7 +1864,7 @@ func TestSecurityProfileLifeCycleEvictionDNS(t *testing.T) { cmd := dockerInstanceV2.Command("nslookup", []string{"google.es"}, []string{}) _, _ = cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { return true }, time.Second*2, model.DNSEventType, events.AnomalyDetectionRuleID) if err != nil { @@ -1909,7 +1909,7 @@ func TestSecurityProfileLifeCycleEvictionDNS(t *testing.T) { cmd := dockerInstanceV3.Command("nslookup", []string{"google.fr"}, []string{}) _, _ = cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { return true }, time.Second*2, model.DNSEventType, events.AnomalyDetectionRuleID) if err != nil { @@ -1996,7 +1996,7 @@ func TestSecurityProfileLifeCycleEvictionProcessUnstable(t *testing.T) { cmd := dockerInstanceV1.Command("getconf", []string{"-a"}, []string{}) _, err = cmd.CombinedOutput() return err - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { t.Fatal(errors.New("catch a custom event that should had been reinserted")) return false }, time.Second*2, model.ExecEventType, events.AnomalyDetectionRuleID) @@ -2017,7 +2017,7 @@ func TestSecurityProfileLifeCycleEvictionProcessUnstable(t *testing.T) { cmd := dockerInstanceV1.Command("getent", []string{}, []string{}) _, _ = cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { t.Fatal(errors.New("catch a custom event that should had been discarded")) return false }, time.Second*2, model.ExecEventType, events.AnomalyDetectionRuleID) @@ -2040,7 +2040,7 @@ func TestSecurityProfileLifeCycleEvictionProcessUnstable(t *testing.T) { cmd := dockerInstanceV2.Command("iconv", []string{"-l"}, []string{}) _, _ = cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { t.Fatal(errors.New("catch a custom event that should had been discarded")) return false }, time.Second*2, model.ExecEventType, events.AnomalyDetectionRuleID) @@ -2063,7 +2063,7 @@ func TestSecurityProfileLifeCycleEvictionProcessUnstable(t *testing.T) { cmd := dockerInstanceV3.Command("getconf", []string{"-a"}, []string{}) _, _ = cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { t.Fatal(errors.New("catch a custom event that should had been discarded")) return false }, time.Second*2, model.ExecEventType, events.AnomalyDetectionRuleID) @@ -2083,7 +2083,7 @@ func TestSecurityProfileLifeCycleEvictionProcessUnstable(t *testing.T) { cmd := dockerInstanceV3.Command("getent", []string{}, []string{}) _, _ = cmd.CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { return true }, time.Second*2, model.ExecEventType, events.AnomalyDetectionRuleID) if err != nil { @@ -2195,7 +2195,7 @@ func TestSecurityProfilePersistence(t *testing.T) { err = test.GetEventSent(t, func() error { _, err := dockerInstance2.Command("getconf", []string{"-a"}, []string{}).CombinedOutput() return err - }, func(rule *rules.Rule, event *model.Event) bool { + }, func(_ *rules.Rule, _ *model.Event) bool { t.Fatal("Got an event that should have been suppressed") return false }, time.Second*3, "test_autosuppression_exec") @@ -2211,7 +2211,7 @@ func TestSecurityProfilePersistence(t *testing.T) { err = test.GetCustomEventSent(t, func() error { dockerInstance2.Command("getent", []string{}, []string{}).CombinedOutput() return nil - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { return true }, time.Second*2, model.ExecEventType, events.AnomalyDetectionRuleID) if err != nil { @@ -2224,7 +2224,7 @@ func TestSecurityProfilePersistence(t *testing.T) { err = test.GetCustomEventSent(t, func() error { _, err := dockerInstance2.Command("/bin/echo", []string{"aaa"}, []string{}).CombinedOutput() return err - }, func(r *rules.Rule, event *events.CustomEvent) bool { + }, func(_ *rules.Rule, _ *events.CustomEvent) bool { return false }, time.Second*2, model.ExecEventType, events.AnomalyDetectionRuleID) if err != nil { diff --git a/pkg/security/tests/selinux_test.go b/pkg/security/tests/selinux_test.go index 71c45b8baee69..061b587e5c32f 100644 --- a/pkg/security/tests/selinux_test.go +++ b/pkg/security/tests/selinux_test.go @@ -139,7 +139,7 @@ func TestSELinux(t *testing.T) { return fmt.Errorf("failed to write to selinuxfs: %w", err) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { t.Errorf("expected error and got an event: %s", test.debugEvent(event)) }) if err == nil { diff --git a/pkg/security/tests/serializers_test.go b/pkg/security/tests/serializers_test.go index d6dc5b6dbec10..e3d0975a77bd7 100644 --- a/pkg/security/tests/serializers_test.go +++ b/pkg/security/tests/serializers_test.go @@ -56,7 +56,7 @@ func fetchRealisticEventSerializerInner(tb testing.TB) *serializers.EventSeriali return error(errno) } return syscall.Close(int(fd)) - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { workingEvent = event assert.Equal(tb, "open", event.GetType(), "wrong event type") }) diff --git a/pkg/security/tests/signal_test.go b/pkg/security/tests/signal_test.go index 08dc6d6fb66ee..8cb378703a790 100644 --- a/pkg/security/tests/signal_test.go +++ b/pkg/security/tests/signal_test.go @@ -45,7 +45,7 @@ func TestSignalEvent(t *testing.T) { t.Fatal(err) } - test.Run(t, "signal-sigusr1", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + test.Run(t, "signal-sigusr1", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { args := []string{"signal", "sigusr1"} envs := []string{} @@ -56,7 +56,7 @@ func TestSignalEvent(t *testing.T) { } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "signal", event.GetType(), "wrong event type") assert.Equal(t, uint32(unix.SIGUSR1), event.Signal.Type, "wrong signal") assert.Equal(t, int64(0), event.Signal.Retval, "wrong retval") @@ -68,7 +68,7 @@ func TestSignalEvent(t *testing.T) { }) }) - test.Run(t, "signal-eperm", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + test.Run(t, "signal-eperm", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { args := []string{"signal", "eperm"} envs := []string{} @@ -79,7 +79,7 @@ func TestSignalEvent(t *testing.T) { } return nil - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "signal", event.GetType(), "wrong event type") assert.Equal(t, uint32(unix.SIGKILL), event.Signal.Type, "wrong signal") assert.Equal(t, -int64(unix.EPERM), event.Signal.Retval, "wrong retval") diff --git a/pkg/security/tests/span_test.go b/pkg/security/tests/span_test.go index aecc9e622b1ef..3c2507b2a1d7c 100644 --- a/pkg/security/tests/span_test.go +++ b/pkg/security/tests/span_test.go @@ -49,7 +49,7 @@ func TestSpan(t *testing.T) { fakeTraceID128b := "136272290892501783905308705057321818530" - test.Run(t, "open", func(t *testing.T, kind wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + test.Run(t, "open", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { testFile, _, err := test.Path("test-span") if err != nil { t.Fatal(err) diff --git a/pkg/security/tests/splice_test.go b/pkg/security/tests/splice_test.go index 7c30145dff85c..e1fcbb41d73d3 100644 --- a/pkg/security/tests/splice_test.go +++ b/pkg/security/tests/splice_test.go @@ -42,7 +42,7 @@ func TestSpliceEvent(t *testing.T) { t.Run("test_splice", func(t *testing.T) { test.WaitSignal(t, func() error { return runSyscallTesterFunc(context.Background(), t, syscallTester, "splice") - }, func(event *model.Event, r *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "splice", event.GetType(), "wrong event type") assert.Equal(t, uint32(0), event.Splice.PipeEntryFlag, "wrong pipe entry flag") assert.Equal(t, uint32(0), event.Splice.PipeExitFlag, "wrong pipe exit flag") diff --git a/pkg/security/tests/syscall_tester.go b/pkg/security/tests/syscall_tester.go index eaaa0a3dc7b33..c93e61e5ab484 100644 --- a/pkg/security/tests/syscall_tester.go +++ b/pkg/security/tests/syscall_tester.go @@ -17,7 +17,7 @@ import ( "testing" ) -//go:embed syscall_tester/bin +//go:embed all:syscall_tester/bin var syscallTesterFS embed.FS func loadSyscallTester(t *testing.T, test *testModule, binary string) (string, error) { diff --git a/pkg/security/tests/unlink_test.go b/pkg/security/tests/unlink_test.go index 1b492146cd325..ece95f386d5f4 100644 --- a/pkg/security/tests/unlink_test.go +++ b/pkg/security/tests/unlink_test.go @@ -144,7 +144,7 @@ func TestUnlink(t *testing.T) { return fmt.Errorf("failed to unlink file with io_uring: %d", ret) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "unlink", event.GetType(), "wrong event type") assert.Equal(t, inode, event.Unlink.File.Inode, "wrong inode") assertRights(t, event.Unlink.File.Mode, expectedMode) @@ -193,7 +193,7 @@ func TestUnlinkInvalidate(t *testing.T) { test.WaitSignal(t, func() error { return os.Remove(testFile) - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "unlink", event.GetType(), "wrong event type") assertFieldEqual(t, event, "unlink.file.path", testFile) }) diff --git a/pkg/security/tests/usergroup_test.go b/pkg/security/tests/usergroup_test.go index 3f48684ca217c..2bc60ac99748c 100644 --- a/pkg/security/tests/usergroup_test.go +++ b/pkg/security/tests/usergroup_test.go @@ -143,10 +143,10 @@ func TestUserGroup(t *testing.T) { test.WaitSignals(t, func() error { out, err := dockerWrapper.Command(testCommand.cmd[0], testCommand.cmd[1:], nil).CombinedOutput() if err != nil { - t.Logf(string(out)) + t.Log(string(out)) } return err - }, func(event *model.Event, rule *rules.Rule) error { + }, func(_ *model.Event, rule *rules.Rule) error { assertTriggeredRule(t, rule, testCommand.rules[i]) i++ if i < len(testCommand.rules) { diff --git a/pkg/security/tests/utimes_test.go b/pkg/security/tests/utimes_test.go index aea86601aaaeb..7e7546e7ac2ea 100644 --- a/pkg/security/tests/utimes_test.go +++ b/pkg/security/tests/utimes_test.go @@ -54,7 +54,7 @@ func TestUtimes(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "utimes", event.GetType(), "wrong event type") assert.Equal(t, int64(123), event.Utimes.Atime.Unix()) assert.Equal(t, int64(456), event.Utimes.Mtime.Unix()) @@ -95,7 +95,7 @@ func TestUtimes(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "utimes", event.GetType(), "wrong event type") assert.Equal(t, int64(111), event.Utimes.Atime.Unix()) assert.Equal(t, int64(222), event.Utimes.Atime.UnixNano()%int64(time.Second)/int64(time.Microsecond)) @@ -139,7 +139,7 @@ func TestUtimes(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "utimes", event.GetType(), "wrong event type") assert.Equal(t, int64(555), event.Utimes.Mtime.Unix()) assert.Equal(t, int64(666), event.Utimes.Mtime.UnixNano()%int64(time.Second)/int64(time.Nanosecond)) @@ -177,7 +177,7 @@ func TestUtimes(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "utimes", event.GetType(), "wrong event type") assertNearTime(t, uint64(event.Utimes.Mtime.UnixNano())) assertNearTime(t, uint64(event.Utimes.Atime.UnixNano())) diff --git a/pkg/security/tests/xattr_test.go b/pkg/security/tests/xattr_test.go index 644226e123263..57c6bc4fc1e9d 100644 --- a/pkg/security/tests/xattr_test.go +++ b/pkg/security/tests/xattr_test.go @@ -64,7 +64,7 @@ func TestSetXAttr(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "setxattr", event.GetType(), "wrong event type") assert.Equal(t, "user.test_xattr", event.SetXAttr.Name) assert.Equal(t, "user", event.SetXAttr.Namespace) @@ -104,7 +104,7 @@ func TestSetXAttr(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "setxattr", event.GetType(), "wrong event type") assert.Equal(t, "user.test_xattr", event.SetXAttr.Name) assert.Equal(t, "user", event.SetXAttr.Namespace) @@ -137,7 +137,7 @@ func TestSetXAttr(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "setxattr", event.GetType(), "wrong event type") assert.Equal(t, "user.test_xattr", event.SetXAttr.Name) assert.Equal(t, "user", event.SetXAttr.Namespace) @@ -208,7 +208,7 @@ func TestRemoveXAttr(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "removexattr", event.GetType(), "wrong event type") assert.Equal(t, "user.test_xattr", event.RemoveXAttr.Name) assert.Equal(t, getInode(t, testFile), event.RemoveXAttr.File.Inode, "wrong inode") @@ -254,7 +254,7 @@ func TestRemoveXAttr(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { assert.Equal(t, "removexattr", event.GetType(), "wrong event type") assert.Equal(t, "user.test_xattr", event.RemoveXAttr.Name) assert.Equal(t, getInode(t, testFile), event.RemoveXAttr.File.Inode, "wrong inode") @@ -292,7 +292,7 @@ func TestRemoveXAttr(t *testing.T) { return error(errno) } return nil - }, func(event *model.Event, rule *rules.Rule) { + }, func(event *model.Event, _ *rules.Rule) { if event.GetType() != "removexattr" { t.Errorf("expected removexattr event, got %s", event.GetType()) } From 5d4eb27b9cf32660ddfec393be517531f8d0499d Mon Sep 17 00:00:00 2001 From: Alexandre Menasria <47357713+amenasria@users.noreply.github.com> Date: Mon, 25 Nov 2024 13:27:41 +0100 Subject: [PATCH 018/439] [CI] Remove all CircleCI jobs except the `integration_tests` and the `docker_tests` jobs (#29463) --- .circleci/config.yml | 171 ------------------------------------------- 1 file changed, 171 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 003efda4d779f..7cf19e2302bab 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -66,19 +66,6 @@ jobs: name: grab go deps command: | inv -e deps - - run: - name: build rtloader - command: | - inv rtloader.make --install-prefix=/go/src/github.com/DataDog/datadog-agent/dev - inv rtloader.install - - run: - name: lint rtloader - command: | - inv rtloader.format --raise-if-changed - - run: - name: test rtloader - command: | - inv rtloader.test - run: name: install go tooling command: | @@ -91,19 +78,6 @@ jobs: - /go/src/github.com/DataDog/datadog-agent/dev - /usr/local/bin - unit_tests: - <<: *job_template - resource_class: xlarge - steps: - - restore_cache: *restore_source - - restore_cache: *restore_deps - - run: - name: run unit tests - no_output_timeout: 20m - command: inv -e test --rerun-fails=2 --coverage --race --profile --cpus 8 --build-stdlib --test-washer - environment: - GO_TEST_SKIP_FLAKE: "true" - integration_tests: <<: *job_template resource_class: large @@ -115,80 +89,6 @@ jobs: name: run integration tests command: inv -e integration-tests --race --remote-docker - go_linting: - <<: *job_template - resource_class: xlarge - steps: - - restore_cache: *restore_source - - restore_cache: *restore_deps - - run: - name: run go linters - no_output_timeout: 20m - command: inv -e linter.go - - licenses_linting: - <<: *job_template - steps: - - restore_cache: *restore_source - - restore_cache: *restore_deps - - run: - name: run license linting - command: inv -e lint-licenses - - copyrights_linting: - <<: *job_template - steps: - - restore_cache: *restore_source - - restore_cache: *restore_deps - - run: - name: run copyrights linting - command: inv -e linter.copyrights - - filename_linting: - <<: *job_template - steps: - - restore_cache: *restore_source - - restore_cache: *restore_deps - - run: - name: run filename linting - command: inv -e linter.filenames - - shell_linting: - <<: *job_template - steps: - - restore_cache: *restore_source - - restore_cache: *restore_deps - - run: - name: Install shellcheck - command: inv -e install-shellcheck - - run: - name: Print shellcheck version - command: shellcheck --version - - run: - name: Run shellcheck - #Excludes: - #SC2028: echo may not expand escape sequences. Use printf. - #SC2059: Don't use variables in the printf format string. Use printf "..%s.." "$foo". - command: shellcheck --severity=info -e SC2059 -e SC2028 --shell=bash ./cmd/**/*.sh ./omnibus/package-scripts/*/* - - component_linting: - <<: *job_template - steps: - - restore_cache: *restore_source - - restore_cache: *restore_deps - - run: - name: run component linting - command: inv -e lint-components lint-fxutil-oneshot-test - - codeowner_linting: - <<: *job_template - steps: - - restore_cache: *restore_source - - restore_cache: *restore_deps - - run: - name: run CODEOWNER linting - command: inv -e github.lint-codeowner - docker_tests: <<: *job_template steps: @@ -202,40 +102,6 @@ jobs: name: run docker image integration tests command: inv -e docker.integration-tests - build_binaries: - <<: *job_template - resource_class: large - steps: - - restore_cache: *restore_source - - restore_cache: *restore_deps - - run: - name: build dogstatsd - command: inv -e dogstatsd.build --static - - run: - name: build agent - command: inv -e agent.build --exclude-rtloader - - build_iot_agent: - <<: *job_template - steps: - - restore_cache: *restore_source - - restore_cache: *restore_deps - - run: - name: build iot agent - command: inv -e agent.build --flavor iot - - run: - name: test iot agent - command: DD_HOSTNAME=test-circleci-hostname ./bin/agent/agent -c ./bin/agent/dist check cpu - - documentation_generation: - <<: *job_template - steps: - - restore_cache: *restore_source - - restore_cache: *restore_deps - - run: - name: generate doxygen documentation - command: inv -e rtloader.generate-doc - workflows: version: 2 test_and_build: @@ -244,46 +110,9 @@ workflows: - dependencies: requires: - checkout_code - - unit_tests: - requires: - - dependencies - integration_tests: requires: - dependencies - - go_linting: - requires: - - dependencies - - licenses_linting: - requires: - - dependencies - - copyrights_linting: - requires: - - dependencies - - filename_linting: - requires: - - dependencies - - shell_linting: - requires: - - dependencies - - component_linting: - requires: - - dependencies - - codeowner_linting: - requires: - - dependencies - docker_tests: requires: - dependencies - - documentation_generation: - requires: - - dependencies - - build_binaries: - requires: - - unit_tests - - integration_tests - - docker_tests - - build_iot_agent: - requires: - - unit_tests - - integration_tests - - docker_tests From cfaf5ee0ba972b929169d2e1d24b61e0b2f50bd2 Mon Sep 17 00:00:00 2001 From: Sylvain Afchain Date: Mon, 25 Nov 2024 14:22:17 +0100 Subject: [PATCH 019/439] [CWS] add kernel bpf filter for raw packet (#30288) --- LICENSE-3rdparty.csv | 1 + go.mod | 3 +- go.sum | 6 +- .../ebpf/c/include/constants/custom.h | 8 +- pkg/security/ebpf/c/include/helpers/network.h | 5 - .../ebpf/c/include/hooks/network/dns.h | 4 +- .../ebpf/c/include/hooks/network/raw.h | 55 ++-- .../ebpf/c/include/hooks/network/router.h | 4 +- .../ebpf/c/include/hooks/network/tc.h | 39 ++- pkg/security/ebpf/c/include/maps.h | 5 +- pkg/security/ebpf/c/include/structs/network.h | 2 +- .../tests/activity_dump_ratelimiter_test.h | 6 +- pkg/security/ebpf/c/include/tests/baloum.h | 1 + .../ebpf/c/include/tests/discarders_test.h | 8 +- .../ebpf/c/include/tests/raw_packet_test.h | 30 +++ pkg/security/ebpf/c/include/tests/tests.h | 1 + pkg/security/ebpf/probes/all.go | 8 +- pkg/security/ebpf/probes/const.go | 15 +- pkg/security/ebpf/probes/raw_packet.go | 15 ++ .../ebpf/probes/rawpacket/bpffilter.go | 19 ++ pkg/security/ebpf/probes/rawpacket/pcap.go | 251 ++++++++++++++++++ .../ebpf/probes/rawpacket/pcap_unsupported.go | 39 +++ pkg/security/ebpf/probes/tc.go | 49 ++-- .../tests/activity_dump_ratelimiter_test.go | 8 +- pkg/security/ebpf/tests/discarders_test.go | 8 +- pkg/security/ebpf/tests/raw_packet_test.go | 194 ++++++++++++++ pkg/security/probe/model_ebpf.go | 10 +- pkg/security/probe/probe_ebpf.go | 121 +++++++-- ...ilter_unix.go => oo_packet_filter_unix.go} | 14 +- ...ted.go => oo_packet_filter_unsupported.go} | 0 pkg/security/tests/network_test.go | 2 +- tasks/security_agent.py | 17 +- 32 files changed, 805 insertions(+), 143 deletions(-) create mode 100644 pkg/security/ebpf/c/include/tests/raw_packet_test.h create mode 100644 pkg/security/ebpf/probes/raw_packet.go create mode 100644 pkg/security/ebpf/probes/rawpacket/bpffilter.go create mode 100644 pkg/security/ebpf/probes/rawpacket/pcap.go create mode 100644 pkg/security/ebpf/probes/rawpacket/pcap_unsupported.go create mode 100644 pkg/security/ebpf/tests/raw_packet_test.go rename pkg/security/secl/model/{packet_filter_unix.go => oo_packet_filter_unix.go} (83%) rename pkg/security/secl/model/{packet_filter_unsupported.go => oo_packet_filter_unsupported.go} (100%) diff --git a/LICENSE-3rdparty.csv b/LICENSE-3rdparty.csv index 0c14f7e40d15b..3bd5a574fa3fe 100644 --- a/LICENSE-3rdparty.csv +++ b/LICENSE-3rdparty.csv @@ -690,6 +690,7 @@ core,github.com/cilium/ebpf/perf,MIT,"Copyright (c) 2017 Nathan Sweet | Copyrigh core,github.com/cilium/ebpf/ringbuf,MIT,"Copyright (c) 2017 Nathan Sweet | Copyright (c) 2018, 2019 Cloudflare | Copyright (c) 2019 Authors of Cilium" core,github.com/cilium/ebpf/rlimit,MIT,"Copyright (c) 2017 Nathan Sweet | Copyright (c) 2018, 2019 Cloudflare | Copyright (c) 2019 Authors of Cilium" core,github.com/clbanning/mxj,MIT,Copyright (c) 2012-2016 Charles Banning . All rights reserved | Copyright 2009 The Go Authors. All rights reserved +core,github.com/cloudflare/cbpfc,BSD-3-Clause,"Copyright (c) 2019, Cloudflare. All rights reserved" core,github.com/cloudflare/circl/dh/x25519,BSD-3-Clause,Copyright (c) 2009 The Go Authors. All rights reserved | Copyright (c) 2019 Cloudflare. All rights reserved core,github.com/cloudflare/circl/dh/x448,BSD-3-Clause,Copyright (c) 2009 The Go Authors. All rights reserved | Copyright (c) 2019 Cloudflare. All rights reserved core,github.com/cloudflare/circl/ecc/goldilocks,BSD-3-Clause,Copyright (c) 2009 The Go Authors. All rights reserved | Copyright (c) 2019 Cloudflare. All rights reserved diff --git a/go.mod b/go.mod index 26930c22eacb8..d39bc25dbbadd 100644 --- a/go.mod +++ b/go.mod @@ -510,7 +510,7 @@ require ( github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect github.com/rivo/uniseg v0.4.7 // indirect github.com/rs/cors v1.11.1 // indirect - github.com/safchain/baloum v0.0.0-20221229104256-b1fc8f70a86b + github.com/safchain/baloum v0.0.0-20241120122234-f22c9bd19f3b github.com/saracen/walker v0.1.3 // indirect github.com/sassoftware/go-rpmutils v0.3.0 // indirect github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect @@ -604,6 +604,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/defaultpaths v0.0.0-00010101000000-000000000000 github.com/DataDog/datadog-agent/pkg/util/utilizationtracker v0.0.0 github.com/NVIDIA/go-nvml v0.12.4-0 + github.com/cloudflare/cbpfc v0.0.0-20240920015331-ff978e94500b github.com/containerd/containerd/api v1.8.0 github.com/containerd/errdefs v1.0.0 github.com/distribution/reference v0.6.0 diff --git a/go.sum b/go.sum index 799c0bcda1aba..a8cc5f6743724 100644 --- a/go.sum +++ b/go.sum @@ -463,6 +463,8 @@ github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp github.com/clbanning/mxj v1.8.4 h1:HuhwZtbyvyOw+3Z1AowPkU87JkJUSv751ELWaiTpj8I= github.com/clbanning/mxj v1.8.4/go.mod h1:BVjHeAH+rl9rs6f+QIpeRl0tfu10SXn1pUSa5PVGJng= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cloudflare/cbpfc v0.0.0-20240920015331-ff978e94500b h1:EgR1t4Lnq6uP6QxJQ+oIFtENOHUY3/7gMOE76vL0KcA= +github.com/cloudflare/cbpfc v0.0.0-20240920015331-ff978e94500b/go.mod h1:X/9cHz8JVzKlvoZyKBgMgrogKZlLf+pWjmm5gSUm5dI= github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= github.com/cloudfoundry-community/go-cfclient/v2 v2.0.1-0.20230503155151-3d15366c5820 h1:ixkQUDJYG6eSxgUEl6LLE2l2TD2C5AYmlm+fVhsr6Zs= @@ -1638,8 +1640,8 @@ github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkBk= github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= -github.com/safchain/baloum v0.0.0-20221229104256-b1fc8f70a86b h1:cTiH46CYvPhgOlE0t82N+rgQw44b7vB39ay+P+wiVz8= -github.com/safchain/baloum v0.0.0-20221229104256-b1fc8f70a86b/go.mod h1:1+GWOH32bsIEAHknYja6/H1efcDs+/Q2XrtYMM200Ho= +github.com/safchain/baloum v0.0.0-20241120122234-f22c9bd19f3b h1:ZeznXGJOGRRGKuU7GEUmNobE4swH0PbMqukrQS3XCLE= +github.com/safchain/baloum v0.0.0-20241120122234-f22c9bd19f3b/go.mod h1:azfM30OkV7er0g2EIbpI+Jl4P6T5RMpsED0+7Up/Gog= github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= diff --git a/pkg/security/ebpf/c/include/constants/custom.h b/pkg/security/ebpf/c/include/constants/custom.h index dd522026b761c..88be17fa3c80b 100644 --- a/pkg/security/ebpf/c/include/constants/custom.h +++ b/pkg/security/ebpf/c/include/constants/custom.h @@ -61,12 +61,14 @@ enum DENTRY_ERPC_RESOLUTION_CODE enum TC_TAIL_CALL_KEYS { - UNKNOWN, - DNS_REQUEST, + DNS_REQUEST = 1, DNS_REQUEST_PARSER, IMDS_REQUEST, - RAW_PACKET, +}; + +enum TC_RAWPACKET_KEYS { RAW_PACKET_FILTER, + // reserved keys for raw packet filter tail calls }; #define DNS_MAX_LENGTH 256 diff --git a/pkg/security/ebpf/c/include/helpers/network.h b/pkg/security/ebpf/c/include/helpers/network.h index 0899d6e88e30c..1198e49d41071 100644 --- a/pkg/security/ebpf/c/include/helpers/network.h +++ b/pkg/security/ebpf/c/include/helpers/network.h @@ -82,10 +82,6 @@ __attribute__((always_inline)) void fill_network_context(struct network_context_ fill_network_device_context(&net_ctx->device, skb, pkt); } -__attribute__((always_inline)) void tail_call_to_classifier(struct __sk_buff *skb, int classifier_id) { - bpf_tail_call_compat(skb, &classifier_router, classifier_id); -} - __attribute__((always_inline)) void parse_tuple(struct nf_conntrack_tuple *tuple, struct flow_t *flow) { flow->sport = tuple->src.u.all; flow->dport = tuple->dst.u.all; @@ -94,7 +90,6 @@ __attribute__((always_inline)) void parse_tuple(struct nf_conntrack_tuple *tuple bpf_probe_read(&flow->daddr, sizeof(flow->daddr), &tuple->dst.u3.all); } - __attribute__((always_inline)) struct packet_t * parse_packet(struct __sk_buff *skb, int direction) { struct cursor c = {}; tc_cursor_init(&c, skb); diff --git a/pkg/security/ebpf/c/include/hooks/network/dns.h b/pkg/security/ebpf/c/include/hooks/network/dns.h index d6f40c2277ea5..46fd79393fa7d 100644 --- a/pkg/security/ebpf/c/include/hooks/network/dns.h +++ b/pkg/security/ebpf/c/include/hooks/network/dns.h @@ -80,7 +80,7 @@ int classifier_dns_request(struct __sk_buff *skb) { evt->id = htons(header.id); // tail call to the dns request parser - tail_call_to_classifier(skb, DNS_REQUEST_PARSER); + bpf_tail_call_compat(skb, &classifier_router, DNS_REQUEST_PARSER); // tail call failed, ignore packet return ACT_OK; @@ -116,7 +116,7 @@ int classifier_dns_request_parser(struct __sk_buff *skb) { send_event_with_size_ptr(skb, EVENT_DNS, evt, offsetof(struct dns_event_t, name) + qname_length); if (!is_dns_request_parsing_done(skb, pkt)) { - tail_call_to_classifier(skb, DNS_REQUEST_PARSER); + bpf_tail_call_compat(skb, &classifier_router, DNS_REQUEST_PARSER); } return ACT_OK; diff --git a/pkg/security/ebpf/c/include/hooks/network/raw.h b/pkg/security/ebpf/c/include/hooks/network/raw.h index 2b707952a177a..6f46f6b4eb1a2 100644 --- a/pkg/security/ebpf/c/include/hooks/network/raw.h +++ b/pkg/security/ebpf/c/include/hooks/network/raw.h @@ -4,61 +4,44 @@ #include "helpers/network.h" #include "perf_ring.h" -__attribute__((always_inline)) struct raw_packet_t *get_raw_packet_event() { +__attribute__((always_inline)) struct raw_packet_event_t *get_raw_packet_event() { u32 key = 0; - return bpf_map_lookup_elem(&raw_packets, &key); + return bpf_map_lookup_elem(&raw_packet_event, &key); } -SEC("classifier/raw_packet") -int classifier_raw_packet(struct __sk_buff *skb) { +SEC("classifier/raw_packet_sender") +int classifier_raw_packet_sender(struct __sk_buff *skb) { struct packet_t *pkt = get_packet(); if (pkt == NULL) { // should never happen return ACT_OK; } - struct raw_packet_t *evt = get_raw_packet_event(); - if ((evt == NULL) || (skb == NULL)) { + struct raw_packet_event_t *evt = get_raw_packet_event(); + if (evt == NULL || skb == NULL || evt->len == 0) { // should never happen return ACT_OK; } - bpf_skb_pull_data(skb, 0); + // process context + fill_network_process_context(&evt->process, pkt); - u32 len = *(u32 *)(skb + offsetof(struct __sk_buff, len)); - if (len > sizeof(evt->data)) { - len = sizeof(evt->data); + struct proc_cache_t *entry = get_proc_cache(evt->process.pid); + if (entry == NULL) { + evt->container.container_id[0] = 0; + } else { + copy_container_id_no_tracing(entry->container.container_id, &evt->container.container_id); } - // NOTE(safchain) inline asm because clang isn't generating the proper instructions for : - // if (len == 0) return ACT_OK; - /*asm ("r4 = %[len]\n" - "if r4 > 0 goto + 2\n" - "r0 = 0\n" - "exit\n" :: [len]"r"((u64)len));*/ - - if (len > 1) { - if (bpf_skb_load_bytes(skb, 0, evt->data, len) < 0) { - return ACT_OK; - } - evt->len = skb->len; - - // process context - fill_network_process_context(&evt->process, pkt); - - struct proc_cache_t *entry = get_proc_cache(evt->process.pid); - if (entry == NULL) { - evt->container.container_id[0] = 0; - } else { - copy_container_id_no_tracing(entry->container.container_id, &evt->container.container_id); - } + fill_network_device_context(&evt->device, skb, pkt); - fill_network_device_context(&evt->device, skb, pkt); - - u32 size = offsetof(struct raw_packet_t, data) + len; - send_event_with_size_ptr(skb, EVENT_RAW_PACKET, evt, size); + u32 len = evt->len; + if (len > sizeof(evt->data)) { + len = sizeof(evt->data); } + send_event_with_size_ptr(skb, EVENT_RAW_PACKET, evt, offsetof(struct raw_packet_event_t, data) + len); + return ACT_OK; } diff --git a/pkg/security/ebpf/c/include/hooks/network/router.h b/pkg/security/ebpf/c/include/hooks/network/router.h index e2b8361869c46..93cca5f4889ee 100644 --- a/pkg/security/ebpf/c/include/hooks/network/router.h +++ b/pkg/security/ebpf/c/include/hooks/network/router.h @@ -9,14 +9,14 @@ __attribute__((always_inline)) int route_pkt(struct __sk_buff *skb, struct packe // route DNS requests if (is_event_enabled(EVENT_DNS)) { if (pkt->l4_protocol == IPPROTO_UDP && pkt->translated_ns_flow.flow.dport == htons(53)) { - tail_call_to_classifier(skb, DNS_REQUEST); + bpf_tail_call_compat(skb, &classifier_router, DNS_REQUEST); } } // route IMDS requests if (is_event_enabled(EVENT_IMDS)) { if (pkt->l4_protocol == IPPROTO_TCP && ((pkt->ns_flow.flow.saddr[0] & 0xFFFFFFFF) == get_imds_ip() || (pkt->ns_flow.flow.daddr[0] & 0xFFFFFFFF) == get_imds_ip())) { - tail_call_to_classifier(skb, IMDS_REQUEST); + bpf_tail_call_compat(skb, &classifier_router, IMDS_REQUEST); } } diff --git a/pkg/security/ebpf/c/include/hooks/network/tc.h b/pkg/security/ebpf/c/include/hooks/network/tc.h index 92222aff85474..2bb8f8b5791c8 100644 --- a/pkg/security/ebpf/c/include/hooks/network/tc.h +++ b/pkg/security/ebpf/c/include/hooks/network/tc.h @@ -26,6 +26,33 @@ int classifier_egress(struct __sk_buff *skb) { return route_pkt(skb, pkt, EGRESS); }; +__attribute__((always_inline)) int prepare_raw_packet_event(struct __sk_buff *skb) { + struct raw_packet_event_t *evt = get_raw_packet_event(); + if (evt == NULL) { + // should never happen + return ACT_OK; + } + + bpf_skb_pull_data(skb, 0); + + u32 len = *(u32 *)(skb + offsetof(struct __sk_buff, len)); + if (len > sizeof(evt->data)) { + len = sizeof(evt->data); + } + + if (len > 1) { + if (bpf_skb_load_bytes(skb, 0, evt->data, len) < 0) { + return ACT_OK; + } + evt->len = skb->len; + } else { + evt->len = 0; + } + + return ACT_OK; +} + + SEC("classifier/ingress") int classifier_raw_packet_ingress(struct __sk_buff *skb) { struct packet_t *pkt = parse_packet(skb, INGRESS); @@ -33,7 +60,11 @@ int classifier_raw_packet_ingress(struct __sk_buff *skb) { return ACT_OK; } - tail_call_to_classifier(skb, RAW_PACKET_FILTER); + if (prepare_raw_packet_event(skb) != ACT_OK) { + return ACT_OK; + } + + bpf_tail_call_compat(skb, &raw_packet_classifier_router, RAW_PACKET_FILTER); return ACT_OK; }; @@ -45,7 +76,11 @@ int classifier_raw_packet_egress(struct __sk_buff *skb) { return ACT_OK; } - tail_call_to_classifier(skb, RAW_PACKET_FILTER); + if (prepare_raw_packet_event(skb) != ACT_OK) { + return ACT_OK; + } + + bpf_tail_call_compat(skb, &raw_packet_classifier_router, RAW_PACKET_FILTER); return ACT_OK; }; diff --git a/pkg/security/ebpf/c/include/maps.h b/pkg/security/ebpf/c/include/maps.h index 02974e0286dd5..c5050fd5545c7 100644 --- a/pkg/security/ebpf/c/include/maps.h +++ b/pkg/security/ebpf/c/include/maps.h @@ -88,14 +88,15 @@ BPF_PERCPU_ARRAY_MAP(packets, struct packet_t, 1) BPF_PERCPU_ARRAY_MAP(selinux_write_buffer, struct selinux_write_buffer_t, 1) BPF_PERCPU_ARRAY_MAP(is_new_kthread, u32, 1) BPF_PERCPU_ARRAY_MAP(syscalls_stats, struct syscalls_stats_t, EVENT_MAX) -BPF_PERCPU_ARRAY_MAP(raw_packets, struct raw_packet_t, 1) +BPF_PERCPU_ARRAY_MAP(raw_packet_event, struct raw_packet_event_t, 1) BPF_PROG_ARRAY(args_envs_progs, 3) BPF_PROG_ARRAY(dentry_resolver_kprobe_or_fentry_callbacks, EVENT_MAX) BPF_PROG_ARRAY(dentry_resolver_tracepoint_callbacks, EVENT_MAX) BPF_PROG_ARRAY(dentry_resolver_kprobe_or_fentry_progs, 6) BPF_PROG_ARRAY(dentry_resolver_tracepoint_progs, 3) -BPF_PROG_ARRAY(classifier_router, 100) +BPF_PROG_ARRAY(classifier_router, 10) BPF_PROG_ARRAY(sys_exit_progs, 64) +BPF_PROG_ARRAY(raw_packet_classifier_router, 32) #endif diff --git a/pkg/security/ebpf/c/include/structs/network.h b/pkg/security/ebpf/c/include/structs/network.h index d212e09d1b3c9..9efed0aa257b3 100644 --- a/pkg/security/ebpf/c/include/structs/network.h +++ b/pkg/security/ebpf/c/include/structs/network.h @@ -83,7 +83,7 @@ struct network_context_t { u16 l4_protocol; }; -struct raw_packet_t { +struct raw_packet_event_t { struct kevent_t event; struct process_context_t process; struct span_context_t span; diff --git a/pkg/security/ebpf/c/include/tests/activity_dump_ratelimiter_test.h b/pkg/security/ebpf/c/include/tests/activity_dump_ratelimiter_test.h index f65e82e941805..6d6ab486f8011 100644 --- a/pkg/security/ebpf/c/include/tests/activity_dump_ratelimiter_test.h +++ b/pkg/security/ebpf/c/include/tests/activity_dump_ratelimiter_test.h @@ -39,7 +39,7 @@ int test_ad_ratelimiter_basic() { assert_zero(activity_dump_rate_limiter_allow(&config, cookie, now, 0), "event allowed which should not be"); } - return 0; + return 1; } SEC("test/ad_ratelimiter_basic_half") @@ -73,7 +73,7 @@ int test_ad_ratelimiter_basic_half() { assert_zero(activity_dump_rate_limiter_allow(&config, cookie, now, 0), "event allowed which should not be"); } - return 0; + return 1; } __attribute__((always_inline)) int test_ad_ratelimiter_variable_droprate(int algo) { @@ -106,7 +106,7 @@ __attribute__((always_inline)) int test_ad_ratelimiter_variable_droprate(int alg assert_greater_than(total_allowed, AD_RL_TEST_RATE * 3 / 4, "nope"); assert_lesser_than(total_allowed, AD_RL_TEST_RATE / 10, "nope"); } - return 0; + return 1; } SEC("test/ad_ratelimiter_decreasing_droprate") diff --git a/pkg/security/ebpf/c/include/tests/baloum.h b/pkg/security/ebpf/c/include/tests/baloum.h index 5b6f263c18b73..4128525735140 100644 --- a/pkg/security/ebpf/c/include/tests/baloum.h +++ b/pkg/security/ebpf/c/include/tests/baloum.h @@ -15,6 +15,7 @@ static int (*baloum_call)(struct baloum_ctx *ctx, const char *section) = (void * static int (*baloum_strcmp)(const char *s1, const char *s2) = (void *)0xfffd; static int (*baloum_memcmp)(const void *b1, const void *b2, __u32 size) = (void *)0xfffc; static int (*baloum_sleep)(__u64 ns) = (void *)0xfffb; +static int (*baloum_memcpy)(const void *b1, const void *b2, __u32 size) = (void *)0xfffa; #define assert_memcmp(b1, b2, s, msg) \ if (baloum_memcmp(b1, b2, s) != 0) { \ diff --git a/pkg/security/ebpf/c/include/tests/discarders_test.h b/pkg/security/ebpf/c/include/tests/discarders_test.h index 6738e64eca392..24970f491920a 100644 --- a/pkg/security/ebpf/c/include/tests/discarders_test.h +++ b/pkg/security/ebpf/c/include/tests/discarders_test.h @@ -53,7 +53,7 @@ int test_discarders_event_mask() { ret = _is_discarded_by_inode(EVENT_CHMOD, mount_id, inode); assert_not_zero(ret, "inode should be discarded"); - return 0; + return 1; } SEC("test/discarders_retention") @@ -93,7 +93,7 @@ int test_discarders_retention() { ret = _is_discarded_by_inode(EVENT_OPEN, mount_id, inode); assert_not_zero(ret, "inode should be discarded"); - return 0; + return 1; } SEC("test/discarders_revision") @@ -142,7 +142,7 @@ int test_discarders_revision() { ret = _is_discarded_by_inode(EVENT_OPEN, mount_id1, inode1); assert_not_zero(ret, "inode should be discarded"); - return 0; + return 1; } SEC("test/discarders_mount_revision") @@ -183,7 +183,7 @@ int test_discarders_mount_revision() { ret = _is_discarded_by_inode(EVENT_OPEN, mount_id1, inode1); assert_not_zero(ret, "inode should be discarded"); - return 0; + return 1; } #endif diff --git a/pkg/security/ebpf/c/include/tests/raw_packet_test.h b/pkg/security/ebpf/c/include/tests/raw_packet_test.h new file mode 100644 index 0000000000000..a00f55225b6ea --- /dev/null +++ b/pkg/security/ebpf/c/include/tests/raw_packet_test.h @@ -0,0 +1,30 @@ +#ifndef _RAW_PACKET_TEST_H +#define _RAW_PACKET_TEST_H + +#include "helpers/network.h" +#include "baloum.h" + +SEC("test/raw_packet_tail_calls") +int raw_packet_tail_calls(struct __sk_buff *skb) { + struct raw_packet_event_t *evt = get_raw_packet_event(); + assert_not_null(evt, "unable to get raw packet event") + + // tcp dst port 5555 and tcp[tcpflags] == tcp-syn + unsigned char data[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x45, 0x10, + 0x00, 0x30, 0xf4, 0xa2, 0x40, 0x00, 0x40, 0x06, + 0x48, 0x13, 0x7f, 0x00, 0x00, 0x01, 0x7f, 0x00, + 0x00, 0x01, 0xa2, 0x36, 0x15, 0xb3, 0x1c, 0x5b, + 0x89, 0x33, 0x00, 0x00, 0x00, 0x00, 0x70, 0x02, + 0xff, 0xd7, 0xfe, 0x24, 0x00, 0x00, 0x02, 0x04, + 0xff, 0xd7, 0x01, 0x03, 0x03, 0x07 + }; + baloum_memcpy(evt->data, data, sizeof(data)); + + bpf_tail_call_compat(skb, &raw_packet_classifier_router, RAW_PACKET_FILTER); + + return 1; +} + +#endif diff --git a/pkg/security/ebpf/c/include/tests/tests.h b/pkg/security/ebpf/c/include/tests/tests.h index 9e9652d486857..2abe84b70854f 100644 --- a/pkg/security/ebpf/c/include/tests/tests.h +++ b/pkg/security/ebpf/c/include/tests/tests.h @@ -3,5 +3,6 @@ #include "discarders_test.h" #include "activity_dump_ratelimiter_test.h" +#include "raw_packet_test.h" #endif diff --git a/pkg/security/ebpf/probes/all.go b/pkg/security/ebpf/probes/all.go index e501a61ff926f..770d883b64dd7 100644 --- a/pkg/security/ebpf/probes/all.go +++ b/pkg/security/ebpf/probes/all.go @@ -131,7 +131,7 @@ func AllMaps() []*manager.Map { {Name: "syscalls_stats_enabled"}, {Name: "kill_list"}, // used by raw packet filters - {Name: "packets"}, + {Name: "raw_packet_event"}, } } @@ -252,14 +252,14 @@ func AllRingBuffers() []*manager.RingBuffer { } // AllTailRoutes returns the list of all the tail call routes -func AllTailRoutes(ERPCDentryResolutionEnabled, networkEnabled, supportMmapableMaps bool) []manager.TailCallRoute { +func AllTailRoutes(eRPCDentryResolutionEnabled, networkEnabled, rawPacketEnabled, supportMmapableMaps bool) []manager.TailCallRoute { var routes []manager.TailCallRoute routes = append(routes, getExecTailCallRoutes()...) - routes = append(routes, getDentryResolverTailCallRoutes(ERPCDentryResolutionEnabled, supportMmapableMaps)...) + routes = append(routes, getDentryResolverTailCallRoutes(eRPCDentryResolutionEnabled, supportMmapableMaps)...) routes = append(routes, getSysExitTailCallRoutes()...) if networkEnabled { - routes = append(routes, getTCTailCallRoutes()...) + routes = append(routes, getTCTailCallRoutes(rawPacketEnabled)...) } return routes diff --git a/pkg/security/ebpf/probes/const.go b/pkg/security/ebpf/probes/const.go index 7b10d86ca29ae..3d984a02b9b0b 100644 --- a/pkg/security/ebpf/probes/const.go +++ b/pkg/security/ebpf/probes/const.go @@ -77,6 +77,11 @@ const ( DentryResolverCGroupWriteCallbackTracepointKey ) +const ( + // RawPacketFilterMaxTailCall defines the maximum of tail calls + RawPacketFilterMaxTailCall = 5 +) + const ( // TCDNSRequestKey is the key to the DNS request program TCDNSRequestKey uint32 = iota + 1 @@ -84,10 +89,14 @@ const ( TCDNSRequestParserKey // TCIMDSRequestParserKey is the key to the IMDS request program TCIMDSRequestParserKey - // TCRawPacketParserKey is the key to the raw packet program - TCRawPacketParserKey +) + +const ( // TCRawPacketFilterKey is the key to the raw packet filter program - TCRawPacketFilterKey + // reserve 5 tail calls for the filtering + TCRawPacketFilterKey uint32 = iota + // TCRawPacketParserSenderKey is the key to the raw packet sender program + TCRawPacketParserSenderKey = TCRawPacketFilterKey + RawPacketFilterMaxTailCall // reserved key for filter tail calls ) const ( diff --git a/pkg/security/ebpf/probes/raw_packet.go b/pkg/security/ebpf/probes/raw_packet.go new file mode 100644 index 0000000000000..18dc27434d043 --- /dev/null +++ b/pkg/security/ebpf/probes/raw_packet.go @@ -0,0 +1,15 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build linux + +// Package probes holds probes related files +package probes + +// RawPacketTCProgram returns the list of TC classifier sections +var RawPacketTCProgram = []string{ + "classifier_raw_packet_egress", + "classifier_raw_packet_ingress", +} diff --git a/pkg/security/ebpf/probes/rawpacket/bpffilter.go b/pkg/security/ebpf/probes/rawpacket/bpffilter.go new file mode 100644 index 0000000000000..b01e57dffa64f --- /dev/null +++ b/pkg/security/ebpf/probes/rawpacket/bpffilter.go @@ -0,0 +1,19 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build linux + +// Package rawpacket holds rawpacket related files +package rawpacket + +import ( + "github.com/DataDog/datadog-agent/pkg/security/secl/compiler/eval" +) + +// Filter defines a raw packet filter +type Filter struct { + RuleID eval.RuleID + BPFFilter string +} diff --git a/pkg/security/ebpf/probes/rawpacket/pcap.go b/pkg/security/ebpf/probes/rawpacket/pcap.go new file mode 100644 index 0000000000000..8ffc7c451c6ab --- /dev/null +++ b/pkg/security/ebpf/probes/rawpacket/pcap.go @@ -0,0 +1,251 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build linux && pcap && cgo + +// Package rawpacket holds rawpacket related files +package rawpacket + +import ( + "errors" + "fmt" + + "github.com/cilium/ebpf" + "github.com/cilium/ebpf/asm" + "github.com/cloudflare/cbpfc" + "github.com/google/gopacket/layers" + "github.com/google/gopacket/pcap" + "github.com/hashicorp/go-multierror" + "golang.org/x/net/bpf" + + "github.com/DataDog/datadog-agent/pkg/security/ebpf/probes" +) + +const ( + // progPrefix prefix used for raw packet filter programs + progPrefix = "raw_packet_prog_" + + // packetCaptureSize see kernel definition + packetCaptureSize = 256 +) + +// ProgOpts defines options +type ProgOpts struct { + *cbpfc.EBPFOpts + + // MaxTailCalls maximun number of tail calls generated + MaxTailCalls int + // number of instructions + MaxProgSize int + // Number of nop instruction inserted in each program + NopInstLen int + + // internals + sendEventLabel string + ctxSave asm.Register + tailCallMapFd int +} + +// DefaultProgOpts default options +var DefaultProgOpts = ProgOpts{ + EBPFOpts: &cbpfc.EBPFOpts{ + PacketStart: asm.R1, + PacketEnd: asm.R2, + Result: asm.R3, + Working: [4]asm.Register{ + asm.R4, + asm.R5, + asm.R6, + asm.R7, + }, + StackOffset: 16, // adapt using the stack size used outside of the filter itself, ex: map_lookup + }, + sendEventLabel: "send_event", + ctxSave: asm.R9, + MaxTailCalls: probes.RawPacketFilterMaxTailCall, + MaxProgSize: 4000, +} + +// BPFFilterToInsts compile a bpf filter expression +func BPFFilterToInsts(index int, filter string, opts ProgOpts) (asm.Instructions, error) { + pcapBPF, err := pcap.CompileBPFFilter(layers.LinkTypeEthernet, 256, filter) + if err != nil { + return nil, err + } + bpfInsts := make([]bpf.Instruction, len(pcapBPF)) + for i, ri := range pcapBPF { + bpfInsts[i] = bpf.RawInstruction{Op: ri.Code, Jt: ri.Jt, Jf: ri.Jf, K: ri.K}.Disassemble() + } + + var cbpfcOpts cbpfc.EBPFOpts + if opts.EBPFOpts != nil { + // make a copy so that we can modify the labels + cbpfcOpts = *opts.EBPFOpts + } + cbpfcOpts.LabelPrefix = fmt.Sprintf("cbpfc_%d_", index) + cbpfcOpts.ResultLabel = fmt.Sprintf("check_result_%d", index) + + insts, err := cbpfc.ToEBPF(bpfInsts, cbpfcOpts) + if err != nil { + return nil, err + } + + resultLabel := cbpfcOpts.ResultLabel + + // add nop insts, used to test the max insts and artificially generate tail calls + for i := 0; i != opts.NopInstLen; i++ { + insts = append(insts, + asm.JEq.Imm(asm.R9, 0, opts.sendEventLabel).WithSymbol(resultLabel), + ) + resultLabel = "" + } + + // filter result + insts = append(insts, + asm.JNE.Imm(cbpfcOpts.Result, 0, opts.sendEventLabel).WithSymbol(resultLabel), + ) + + return insts, nil +} + +func filtersToProgs(filters []Filter, opts ProgOpts, headerInsts, senderInsts asm.Instructions) ([]asm.Instructions, *multierror.Error) { + var ( + progInsts []asm.Instructions + mErr *multierror.Error + tailCalls int + header bool + ) + + // prepend a return instruction in case of fail + footerInsts := append(asm.Instructions{ + asm.Return(), + }, senderInsts...) + + isMaxSizeExceeded := func(filterInsts, tailCallInsts asm.Instructions) bool { + return len(filterInsts)+len(tailCallInsts)+len(footerInsts) > opts.MaxProgSize + } + + for i, filter := range filters { + filterInsts, err := BPFFilterToInsts(i, filter.BPFFilter, opts) + if err != nil { + mErr = multierror.Append(mErr, fmt.Errorf("unable to generate eBPF bytecode for rule `%s`: %s", filter.RuleID, err)) + continue + } + + var tailCallInsts asm.Instructions + + // insert tail call to the current filter if not the last prog + if i+1 < len(filters) { + tailCallInsts = asm.Instructions{ + asm.Mov.Reg(asm.R1, opts.ctxSave), + asm.LoadMapPtr(asm.R2, opts.tailCallMapFd), + asm.Mov.Imm(asm.R3, int32(probes.TCRawPacketFilterKey+uint32(tailCalls)+1)), + asm.FnTailCall.Call(), + } + } + + // single program exceeded the limit + if isMaxSizeExceeded(filterInsts, tailCallInsts) { + mErr = multierror.Append(mErr, fmt.Errorf("max number of intructions exceeded for rule `%s`", filter.RuleID)) + continue + } + + if !header { + progInsts = append(progInsts, headerInsts) + header = true + } + progInsts[tailCalls] = append(progInsts[tailCalls], filterInsts...) + + // max size exceeded, generate a new tail call + if isMaxSizeExceeded(progInsts[tailCalls], tailCallInsts) { + if opts.MaxTailCalls != 0 && tailCalls >= opts.MaxTailCalls { + mErr = multierror.Append(mErr, fmt.Errorf("maximum allowed tail calls reach: %d vs %d", tailCalls, opts.MaxTailCalls)) + break + } + + // insert tail call to the current filter if not the last prog + progInsts[tailCalls] = append(progInsts[tailCalls], tailCallInsts...) + + // insert the event sender instructions + progInsts[tailCalls] = append(progInsts[tailCalls], footerInsts...) + + // start a new program + header = false + tailCalls++ + } + } + + if tailCalls < len(progInsts) && header { + progInsts[tailCalls] = append(progInsts[tailCalls], footerInsts...) + } + + return progInsts, mErr +} + +// FiltersToProgramSpecs returns list of program spec from raw packet filters definitions +func FiltersToProgramSpecs(rawPacketEventMapFd, clsRouterMapFd int, filters []Filter, opts ProgOpts) ([]*ebpf.ProgramSpec, error) { + var mErr *multierror.Error + + const ( + // raw packet data, see kernel definition + dataSize = 256 + dataOffset = 164 + ) + + opts.tailCallMapFd = clsRouterMapFd + + headerInsts := append(asm.Instructions{}, + // save ctx + asm.Mov.Reg(opts.ctxSave, asm.R1), + // load raw event + asm.Mov.Reg(asm.R2, asm.RFP), + asm.Add.Imm(asm.R2, -4), + asm.StoreImm(asm.R2, 0, 0, asm.Word), // index 0 + asm.LoadMapPtr(asm.R1, rawPacketEventMapFd), + asm.FnMapLookupElem.Call(), + asm.JNE.Imm(asm.R0, 0, "raw-packet-event-not-null"), + asm.Return(), + // place in result in the start register and end register + asm.Mov.Reg(opts.PacketStart, asm.R0).WithSymbol("raw-packet-event-not-null"), + asm.Add.Imm(opts.PacketStart, dataOffset), + asm.Mov.Reg(opts.PacketEnd, opts.PacketStart), + asm.Add.Imm(opts.PacketEnd, dataSize), + ) + + senderInsts := asm.Instructions{ + asm.Mov.Reg(asm.R1, opts.ctxSave).WithSymbol(opts.sendEventLabel), + asm.LoadMapPtr(asm.R2, clsRouterMapFd), + asm.Mov.Imm(asm.R3, int32(probes.TCRawPacketParserSenderKey)), + asm.FnTailCall.Call(), + asm.Mov.Imm(asm.R0, 0), + asm.Return(), + } + + // compile and convert to eBPF progs + progInsts, err := filtersToProgs(filters, opts, headerInsts, senderInsts) + if err.ErrorOrNil() != nil { + mErr = multierror.Append(mErr, err) + } + + // should be possible + if len(progInsts) == 0 { + return nil, errors.New("no program were generated") + } + + progSpecs := make([]*ebpf.ProgramSpec, len(progInsts)) + + for i, insts := range progInsts { + name := fmt.Sprintf("%s%d", progPrefix, i) + + progSpecs[i] = &ebpf.ProgramSpec{ + Name: name, + Type: ebpf.SchedCLS, + Instructions: insts, + License: "GPL", + } + } + + return progSpecs, mErr.ErrorOrNil() +} diff --git a/pkg/security/ebpf/probes/rawpacket/pcap_unsupported.go b/pkg/security/ebpf/probes/rawpacket/pcap_unsupported.go new file mode 100644 index 0000000000000..f2d8896930dea --- /dev/null +++ b/pkg/security/ebpf/probes/rawpacket/pcap_unsupported.go @@ -0,0 +1,39 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build linux && !(pcap && cgo) + +// Package rawpacket holds raw_packet related files +package rawpacket + +import ( + "errors" + + "github.com/cilium/ebpf" + "github.com/cilium/ebpf/asm" +) + +// ProgOpts defines options +type ProgOpts struct { + // MaxTailCalls maximun number of tail calls generated + MaxTailCalls int + // number of instructions + MaxProgSize int + // Number of nop instruction inserted in each program + NopInstLen int +} + +// DefaultProgOpts default options +var DefaultProgOpts ProgOpts + +// BPFFilterToInsts compile a bpf filter expression +func BPFFilterToInsts(_ int, _ string, _ ProgOpts) (asm.Instructions, error) { + return asm.Instructions{}, errors.New("not supported") +} + +// FiltersToProgramSpecs returns list of program spec from raw packet filters definitions +func FiltersToProgramSpecs(_, _ int, _ []Filter, _ ProgOpts) ([]*ebpf.ProgramSpec, error) { + return nil, errors.New("not supported") +} diff --git a/pkg/security/ebpf/probes/tc.go b/pkg/security/ebpf/probes/tc.go index 0a26151ce7590..e0a721986e9f5 100644 --- a/pkg/security/ebpf/probes/tc.go +++ b/pkg/security/ebpf/probes/tc.go @@ -10,8 +10,6 @@ package probes import ( manager "github.com/DataDog/ebpf-manager" - "github.com/cilium/ebpf" - "github.com/cilium/ebpf/asm" "golang.org/x/sys/unix" ) @@ -68,27 +66,12 @@ func GetTCProbes(withNetworkIngress bool, withRawPacket bool) []*manager.Probe { return out } -// RawPacketTCProgram returns the list of TC classifier sections -var RawPacketTCProgram = []string{ - "classifier_raw_packet_egress", - "classifier_raw_packet_ingress", -} - -// GetRawPacketTCFilterProg returns a first tc filter -func GetRawPacketTCFilterProg(_, clsRouterMapFd int) (*ebpf.ProgramSpec, error) { - insts := asm.Instructions{ - asm.LoadMapPtr(asm.R2, clsRouterMapFd), - asm.Mov.Imm(asm.R3, int32(TCRawPacketParserKey)), - asm.FnTailCall.Call(), - asm.Mov.Imm(asm.R0, 0), - asm.Return(), +// GetRawPacketTCProgramFunctions returns the raw packet functions +func GetRawPacketTCProgramFunctions() []string { + return []string{ + "classifier_raw_packet", + "classifier_raw_packet_sender", } - - return &ebpf.ProgramSpec{ - Type: ebpf.SchedCLS, - Instructions: insts, - License: "GPL", - }, nil } // GetAllTCProgramFunctions returns the list of TC classifier sections @@ -97,9 +80,10 @@ func GetAllTCProgramFunctions() []string { "classifier_dns_request_parser", "classifier_dns_request", "classifier_imds_request", - "classifier_raw_packet", } + output = append(output, GetRawPacketTCProgramFunctions()...) + for _, tcProbe := range GetTCProbes(true, true) { output = append(output, tcProbe.EBPFFuncName) } @@ -115,8 +99,8 @@ func GetAllTCProgramFunctions() []string { return output } -func getTCTailCallRoutes() []manager.TailCallRoute { - return []manager.TailCallRoute{ +func getTCTailCallRoutes(withRawPacket bool) []manager.TailCallRoute { + tcr := []manager.TailCallRoute{ { ProgArrayName: "classifier_router", Key: TCDNSRequestKey, @@ -138,12 +122,17 @@ func getTCTailCallRoutes() []manager.TailCallRoute { EBPFFuncName: "classifier_imds_request", }, }, - { - ProgArrayName: "classifier_router", - Key: TCRawPacketParserKey, + } + + if withRawPacket { + tcr = append(tcr, manager.TailCallRoute{ + ProgArrayName: "raw_packet_classifier_router", + Key: TCRawPacketParserSenderKey, ProbeIdentificationPair: manager.ProbeIdentificationPair{ - EBPFFuncName: "classifier_raw_packet", + EBPFFuncName: "classifier_raw_packet_sender", }, - }, + }) } + + return tcr } diff --git a/pkg/security/ebpf/tests/activity_dump_ratelimiter_test.go b/pkg/security/ebpf/tests/activity_dump_ratelimiter_test.go index 15b099d093980..06a30a1a3ce1a 100644 --- a/pkg/security/ebpf/tests/activity_dump_ratelimiter_test.go +++ b/pkg/security/ebpf/tests/activity_dump_ratelimiter_test.go @@ -17,7 +17,7 @@ import ( func TestActivityDumpRateLimiterBasic(t *testing.T) { var ctx baloum.StdContext code, err := newVM(t).RunProgram(&ctx, "test/ad_ratelimiter_basic") - if err != nil || code != 0 { + if err != nil || code != 1 { t.Errorf("unexpected error: %v, %d", err, code) } } @@ -25,7 +25,7 @@ func TestActivityDumpRateLimiterBasic(t *testing.T) { func TestActivityDumpRateLimiterBasicHalf(t *testing.T) { var ctx baloum.StdContext code, err := newVM(t).RunProgram(&ctx, "test/ad_ratelimiter_basic_half") - if err != nil || code != 0 { + if err != nil || code != 1 { t.Errorf("unexpected error: %v, %d", err, code) } } @@ -33,7 +33,7 @@ func TestActivityDumpRateLimiterBasicHalf(t *testing.T) { func TestActivityDumpRateLimiterDecreasingDroprate(t *testing.T) { var ctx baloum.StdContext code, err := newVM(t).RunProgram(&ctx, "test/ad_ratelimiter_decreasing_droprate") - if err != nil || code != 0 { + if err != nil || code != 1 { t.Errorf("unexpected error: %v, %d", err, code) } } @@ -41,7 +41,7 @@ func TestActivityDumpRateLimiterDecreasingDroprate(t *testing.T) { func TestActivityDumpRateLimiterIncreasingDroprate(t *testing.T) { var ctx baloum.StdContext code, err := newVM(t).RunProgram(&ctx, "test/ad_ratelimiter_increasing_droprate") - if err != nil || code != 0 { + if err != nil || code != 1 { t.Errorf("unexpected error: %v, %d", err, code) } } diff --git a/pkg/security/ebpf/tests/discarders_test.go b/pkg/security/ebpf/tests/discarders_test.go index 11fdb6f63272f..c044a2d752bc0 100644 --- a/pkg/security/ebpf/tests/discarders_test.go +++ b/pkg/security/ebpf/tests/discarders_test.go @@ -17,7 +17,7 @@ import ( func TestDiscarderEventMask(t *testing.T) { var ctx baloum.StdContext code, err := newVM(t).RunProgram(&ctx, "test/discarders_event_mask") - if err != nil || code != 0 { + if err != nil || code != 1 { t.Errorf("unexpected error: %v, %d", err, code) } } @@ -25,7 +25,7 @@ func TestDiscarderEventMask(t *testing.T) { func TestDiscarderRetention(t *testing.T) { var ctx baloum.StdContext code, err := newVM(t).RunProgram(&ctx, "test/discarders_retention") - if err != nil || code != 0 { + if err != nil || code != 1 { t.Errorf("unexpected error: %v, %d", err, code) } } @@ -33,7 +33,7 @@ func TestDiscarderRetention(t *testing.T) { func TestDiscarderRevision(t *testing.T) { var ctx baloum.StdContext code, err := newVM(t).RunProgram(&ctx, "test/discarders_revision") - if err != nil || code != 0 { + if err != nil || code != 1 { t.Errorf("unexpected error: %v, %d", err, code) } } @@ -41,7 +41,7 @@ func TestDiscarderRevision(t *testing.T) { func TestDiscarderMountRevision(t *testing.T) { var ctx baloum.StdContext code, err := newVM(t).RunProgram(&ctx, "test/discarders_mount_revision") - if err != nil || code != 0 { + if err != nil || code != 1 { t.Errorf("unexpected error: %v, %d", err, code) } } diff --git a/pkg/security/ebpf/tests/raw_packet_test.go b/pkg/security/ebpf/tests/raw_packet_test.go new file mode 100644 index 0000000000000..e0238036542e5 --- /dev/null +++ b/pkg/security/ebpf/tests/raw_packet_test.go @@ -0,0 +1,194 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build linux && ebpf_bindata && pcap && cgo + +// Package tests holds tests related files +package tests + +import ( + "testing" + + "github.com/cilium/ebpf" + "github.com/cilium/ebpf/asm" + "github.com/safchain/baloum/pkg/baloum" + "github.com/stretchr/testify/assert" + + "github.com/DataDog/datadog-agent/pkg/security/ebpf/probes" + "github.com/DataDog/datadog-agent/pkg/security/ebpf/probes/rawpacket" +) + +func testRawPacketFilter(t *testing.T, filters []rawpacket.Filter, expRetCode int64, expProgNum int, opts rawpacket.ProgOpts, catchCompilerError bool) { + var ctx baloum.StdContext + + vm := newVM(t) + + rawPacketEventMap, err := vm.LoadMap("raw_packet_event") + assert.Nil(t, err, "map not found") + + routerMap, err := vm.LoadMap("raw_packet_classifier_router") + assert.Nil(t, err, "map not found") + + progSpecs, err := rawpacket.FiltersToProgramSpecs(rawPacketEventMap.FD(), routerMap.FD(), filters, opts) + if err != nil { + if catchCompilerError { + t.Fatal(err) + } else { + t.Log(err) + } + } + + assert.Equal(t, expProgNum, len(progSpecs), "number of expected programs") + + for i, progSpec := range progSpecs { + fd := vm.AddProgram(progSpec) + + _, err := routerMap.Update(probes.TCRawPacketFilterKey+uint32(i), fd, baloum.BPF_ANY) + assert.Nil(t, err, "map update error") + } + + // override the TCRawPacketParserSenderKey program with a test program + sendProgSpec := ebpf.ProgramSpec{ + Type: ebpf.SchedCLS, + Instructions: asm.Instructions{ + asm.Mov.Imm(asm.R0, 2), // put 2 as a success return value + asm.Return(), + }, + License: "GPL", + } + sendProgFD := vm.AddProgram(&sendProgSpec) + + _, err = routerMap.Update(probes.TCRawPacketParserSenderKey, sendProgFD, baloum.BPF_ANY) + assert.Nil(t, err, "map update error") + + code, err := vm.RunProgram(&ctx, "test/raw_packet_tail_calls", ebpf.SchedCLS) + if expRetCode != -1 { + assert.Nil(t, err, "program execution error") + } + assert.Equal(t, expRetCode, code, "return code error: %v", err) +} + +func TestRawPacketTailCalls(t *testing.T) { + t.Run("syn-port-std-ok", func(t *testing.T) { + filters := []rawpacket.Filter{ + { + RuleID: "ok", + BPFFilter: "tcp dst port 5555 and tcp[tcpflags] == tcp-syn", + }, + } + testRawPacketFilter(t, filters, 2, 1, rawpacket.DefaultProgOpts, true) + }) + + t.Run("syn-port-std-ko", func(t *testing.T) { + filters := []rawpacket.Filter{ + { + RuleID: "ko", + BPFFilter: "tcp dst port 6666 and tcp[tcpflags] == tcp-syn", + }, + } + testRawPacketFilter(t, filters, 0, 1, rawpacket.DefaultProgOpts, true) + }) + + t.Run("syn-port-std-limit-ko", func(t *testing.T) { + filters := []rawpacket.Filter{ + { + RuleID: "ko", + BPFFilter: "tcp dst port 5555 and tcp[tcpflags] == tcp-syn", + }, + } + + opts := rawpacket.DefaultProgOpts + opts.NopInstLen = opts.MaxProgSize + + testRawPacketFilter(t, filters, -1, 0, opts, false) + }) + + t.Run("syn-port-std-syntax-err", func(t *testing.T) { + filters := []rawpacket.Filter{ + { + RuleID: "ok", + BPFFilter: "tcp dst port number and tcp[tcpflags] == tcp-syn", + }, + } + testRawPacketFilter(t, filters, -1, 0, rawpacket.DefaultProgOpts, false) + }) + + t.Run("syn-port-multi-ok", func(t *testing.T) { + filters := []rawpacket.Filter{ + { + RuleID: "ko", + BPFFilter: "tcp dst port 6666 and tcp[tcpflags] == tcp-syn", + }, + { + RuleID: "ok", + BPFFilter: "tcp dst port 5555 and tcp[tcpflags] == tcp-syn", + }, + } + + opts := rawpacket.DefaultProgOpts + opts.NopInstLen = opts.MaxProgSize - 50 + + testRawPacketFilter(t, filters, 2, 2, opts, true) + }) + + t.Run("syn-port-multi-ko", func(t *testing.T) { + filters := []rawpacket.Filter{ + { + RuleID: "ko1", + BPFFilter: "tcp dst port 6666 and tcp[tcpflags] == tcp-syn", + }, + { + RuleID: "ko2", + BPFFilter: "tcp dst port 7777 and tcp[tcpflags] == tcp-syn", + }, + } + + opts := rawpacket.DefaultProgOpts + opts.NopInstLen = opts.MaxProgSize - 50 + + testRawPacketFilter(t, filters, 0, 2, opts, true) + }) + + t.Run("syn-port-multi-syntax-err", func(t *testing.T) { + filters := []rawpacket.Filter{ + { + RuleID: "ko", + BPFFilter: "tcp dst port number and tcp[tcpflags] == tcp-syn", + }, + { + RuleID: "ok", + BPFFilter: "tcp dst port 5555 and tcp[tcpflags] == tcp-syn", + }, + } + + opts := rawpacket.DefaultProgOpts + opts.NopInstLen = opts.MaxProgSize - 50 + + testRawPacketFilter(t, filters, 2, 1, opts, false) + }) + + t.Run("syn-port-multi-limit-ok", func(t *testing.T) { + filters := []rawpacket.Filter{ + { + RuleID: "ok", + BPFFilter: "tcp dst port 5555 and tcp[tcpflags] == tcp-syn", + }, + { + RuleID: "ko1", + BPFFilter: "tcp dst port number and tcp[tcpflags] == tcp-syn", + }, + { + RuleID: "ko2", + BPFFilter: "tcp dst port 7777 and tcp[tcpflags] == tcp-syn", + }, + } + + opts := rawpacket.DefaultProgOpts + opts.MaxTailCalls = 0 + opts.NopInstLen = opts.MaxProgSize - 50 + + testRawPacketFilter(t, filters, 2, 2, opts, false) + }) +} diff --git a/pkg/security/probe/model_ebpf.go b/pkg/security/probe/model_ebpf.go index 2854cc2f8cf4b..c26e96a0b91f3 100644 --- a/pkg/security/probe/model_ebpf.go +++ b/pkg/security/probe/model_ebpf.go @@ -12,6 +12,7 @@ import ( "fmt" "time" + "github.com/DataDog/datadog-agent/pkg/security/ebpf/probes/rawpacket" "github.com/DataDog/datadog-agent/pkg/security/probe/constantfetch" "github.com/DataDog/datadog-agent/pkg/security/secl/compiler/eval" "github.com/DataDog/datadog-agent/pkg/security/secl/model" @@ -20,7 +21,7 @@ import ( // NewEBPFModel returns a new model with some extra field validation func NewEBPFModel(probe *EBPFProbe) *model.Model { return &model.Model{ - ExtraValidateFieldFnc: func(field eval.Field, _ eval.FieldValue) error { + ExtraValidateFieldFnc: func(field eval.Field, value eval.FieldValue) error { switch field { case "bpf.map.name": if offset, found := probe.constantOffsets[constantfetch.OffsetNameBPFMapStructName]; !found || offset == constantfetch.ErrorSentinel { @@ -31,6 +32,13 @@ func NewEBPFModel(probe *EBPFProbe) *model.Model { if offset, found := probe.constantOffsets[constantfetch.OffsetNameBPFProgAuxStructName]; !found || offset == constantfetch.ErrorSentinel { return fmt.Errorf("%s is not available on this kernel version", field) } + case "packet.filter": + if probe.isRawPacketNotSupported() { + return fmt.Errorf("%s is not available on this kernel version", field) + } + if _, err := rawpacket.BPFFilterToInsts(0, value.Value.(string), rawpacket.DefaultProgOpts); err != nil { + return err + } } return nil diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go index ae258025ee7f5..37db8edde5422 100644 --- a/pkg/security/probe/probe_ebpf.go +++ b/pkg/security/probe/probe_ebpf.go @@ -40,6 +40,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/ebpf" "github.com/DataDog/datadog-agent/pkg/security/ebpf/kernel" "github.com/DataDog/datadog-agent/pkg/security/ebpf/probes" + "github.com/DataDog/datadog-agent/pkg/security/ebpf/probes/rawpacket" "github.com/DataDog/datadog-agent/pkg/security/events" "github.com/DataDog/datadog-agent/pkg/security/metrics" pconfig "github.com/DataDog/datadog-agent/pkg/security/probe/config" @@ -117,8 +118,9 @@ type EBPFProbe struct { cancelFnc context.CancelFunc wg sync.WaitGroup - // TC Classifier - newTCNetDevices chan model.NetDevice + // TC Classifier & raw packets + newTCNetDevices chan model.NetDevice + rawPacketFilterCollection *lib.Collection // Ring eventStream EventStream @@ -197,6 +199,14 @@ func (p *EBPFProbe) selectFentryMode() { p.useFentry = supported } +func (p *EBPFProbe) isNetworkNotSupported() bool { + return p.kernelVersion.IsRH7Kernel() +} + +func (p *EBPFProbe) isRawPacketNotSupported() bool { + return p.isNetworkNotSupported() || (p.kernelVersion.IsAmazonLinuxKernel() && p.kernelVersion.Code < kernel.Kernel4_15) +} + func (p *EBPFProbe) sanityChecks() error { // make sure debugfs is mounted if _, err := tracefs.Root(); err != nil { @@ -207,11 +217,16 @@ func (p *EBPFProbe) sanityChecks() error { return errors.New("eBPF not supported in lockdown `confidentiality` mode") } - if p.config.Probe.NetworkEnabled && p.kernelVersion.IsRH7Kernel() { - seclog.Warnf("The network feature of CWS isn't supported on Centos7, setting event_monitoring_config.network.enabled to false") + if p.config.Probe.NetworkEnabled && p.isNetworkNotSupported() { + seclog.Warnf("the network feature of CWS isn't supported on this kernel version") p.config.Probe.NetworkEnabled = false } + if p.config.Probe.NetworkRawPacketEnabled && p.isRawPacketNotSupported() { + seclog.Warnf("the raw packet feature of CWS isn't supported on this kernel version") + p.config.Probe.NetworkRawPacketEnabled = false + } + return nil } @@ -350,39 +365,87 @@ func (p *EBPFProbe) IsRuntimeCompiled() bool { return p.runtimeCompiled } -func (p *EBPFProbe) setupRawPacketProgs() error { - packetsMap, _, err := p.Manager.GetMap("packets") +func (p *EBPFProbe) setupRawPacketProgs(rs *rules.RuleSet) error { + rawPacketEventMap, _, err := p.Manager.GetMap("raw_packet_event") if err != nil { return err } - routerMap, _, err := p.Manager.GetMap("classifier_router") + if rawPacketEventMap == nil { + return errors.New("unable to find `rawpacket_event` map") + } + + routerMap, _, err := p.Manager.GetMap("raw_packet_classifier_router") if err != nil { return err } + if routerMap == nil { + return errors.New("unable to find `classifier_router` map") + } - progSpec, err := probes.GetRawPacketTCFilterProg(packetsMap.FD(), routerMap.FD()) + var rawPacketFilters []rawpacket.Filter + for id, rule := range rs.GetRules() { + for _, field := range rule.GetFieldValues("packet.filter") { + rawPacketFilters = append(rawPacketFilters, rawpacket.Filter{ + RuleID: id, + BPFFilter: field.Value.(string), + }) + } + } + + // unload the previews one + if p.rawPacketFilterCollection != nil { + p.rawPacketFilterCollection.Close() + ddebpf.RemoveNameMappingsCollection(p.rawPacketFilterCollection) + } + + // adapt max instruction limits depending of the kernel version + opts := rawpacket.DefaultProgOpts + if p.kernelVersion.Code >= kernel.Kernel5_2 { + opts.MaxProgSize = 1_000_000 + } + + seclog.Debugf("generate rawpacker filter programs with a limit of %d max instructions", opts.MaxProgSize) + + // compile the filters + progSpecs, err := rawpacket.FiltersToProgramSpecs(rawPacketEventMap.FD(), routerMap.FD(), rawPacketFilters, opts) if err != nil { return err } + if len(progSpecs) == 0 { + return nil + } + colSpec := lib.CollectionSpec{ - Programs: map[string]*lib.ProgramSpec{ - progSpec.Name: progSpec, - }, + Programs: make(map[string]*lib.ProgramSpec), + } + for _, progSpec := range progSpecs { + colSpec.Programs[progSpec.Name] = progSpec } col, err := lib.NewCollection(&colSpec) if err != nil { return fmt.Errorf("failed to load program: %w", err) } + p.rawPacketFilterCollection = col + + // check that the sender program is not overridden. The default opts should avoid this. + if probes.TCRawPacketFilterKey+uint32(len(progSpecs)) >= probes.TCRawPacketParserSenderKey { + return fmt.Errorf("sender program overridden") + } - return p.Manager.UpdateTailCallRoutes( - manager.TailCallRoute{ + // setup tail calls + for i, progSpec := range progSpecs { + if err := p.Manager.UpdateTailCallRoutes(manager.TailCallRoute{ Program: col.Programs[progSpec.Name], - Key: probes.TCRawPacketFilterKey, - ProgArrayName: "classifier_router", - }, - ) + Key: probes.TCRawPacketFilterKey + uint32(i), + ProgArrayName: "raw_packet_classifier_router", + }); err != nil { + return err + } + } + + return nil } // Setup the probe @@ -402,12 +465,6 @@ func (p *EBPFProbe) Setup() error { p.profileManagers.Start(p.ctx, &p.wg) - if p.probe.IsNetworkRawPacketEnabled() { - if err := p.setupRawPacketProgs(); err != nil { - return err - } - } - return nil } @@ -1500,6 +1557,10 @@ func (p *EBPFProbe) Close() error { // we wait until both the reorderer and the monitor are stopped p.wg.Wait() + if p.rawPacketFilterCollection != nil { + p.rawPacketFilterCollection.Close() + } + ddebpf.RemoveNameMappings(p.Manager) ebpftelemetry.UnregisterTelemetry(p.Manager) // Stopping the manager will stop the perf map reader and unload eBPF programs @@ -1720,6 +1781,12 @@ func (p *EBPFProbe) ApplyRuleSet(rs *rules.RuleSet) (*kfilters.ApplyRuleSetRepor } } + if p.probe.IsNetworkRawPacketEnabled() { + if err := p.setupRawPacketProgs(rs); err != nil { + seclog.Errorf("unable to load raw packet filter programs: %v", err) + } + } + // do not replay the snapshot if we are in the first rule set version, this was already done in the start method if p.ruleSetVersion != 0 { p.playSnapShotState.Store(true) @@ -1990,15 +2057,17 @@ func NewEBPFProbe(probe *Probe, config *config.Config, opts Opts, telemetry tele } // tail calls - p.managerOptions.TailCallRouter = probes.AllTailRoutes(config.Probe.ERPCDentryResolutionEnabled, config.Probe.NetworkEnabled, useMmapableMaps) + p.managerOptions.TailCallRouter = probes.AllTailRoutes(config.Probe.ERPCDentryResolutionEnabled, config.Probe.NetworkEnabled, config.Probe.NetworkRawPacketEnabled, useMmapableMaps) if !config.Probe.ERPCDentryResolutionEnabled || useMmapableMaps { // exclude the programs that use the bpf_probe_write_user helper p.managerOptions.ExcludedFunctions = probes.AllBPFProbeWriteUserProgramFunctions() } - if !config.Probe.NetworkEnabled { - // prevent all TC classifiers from loading + // prevent some TC classifiers from loading + if !p.config.Probe.NetworkEnabled { p.managerOptions.ExcludedFunctions = append(p.managerOptions.ExcludedFunctions, probes.GetAllTCProgramFunctions()...) + } else if !p.config.Probe.NetworkRawPacketEnabled { + p.managerOptions.ExcludedFunctions = append(p.managerOptions.ExcludedFunctions, probes.GetRawPacketTCProgramFunctions()...) } if p.useFentry { diff --git a/pkg/security/secl/model/packet_filter_unix.go b/pkg/security/secl/model/oo_packet_filter_unix.go similarity index 83% rename from pkg/security/secl/model/packet_filter_unix.go rename to pkg/security/secl/model/oo_packet_filter_unix.go index af1329d84040f..18f3d72bec50a 100644 --- a/pkg/security/secl/model/packet_filter_unix.go +++ b/pkg/security/secl/model/oo_packet_filter_unix.go @@ -32,7 +32,7 @@ func errorNonStaticPacketFilterField(a eval.Evaluator, b eval.Evaluator) error { return fmt.Errorf("field `%s` only supports matching a single static value", field) } -func newPacketFilterEvaluator(field string, value string) (*eval.BoolEvaluator, error) { +func newPacketFilterEvaluator(field string, value string, state *eval.State) (*eval.BoolEvaluator, error) { switch field { case "packet.filter": captureLength := 256 // sizeof(struct raw_packet_t.data) @@ -40,6 +40,12 @@ func newPacketFilterEvaluator(field string, value string) (*eval.BoolEvaluator, if err != nil { return nil, fmt.Errorf("failed to compile packet filter `%s` on field `%s`: %v", value, field, err) } + + // needed to track filter values and to apply tc filters + if err := state.UpdateFieldValues(field, eval.FieldValue{Value: value, Type: eval.ScalarValueType}); err != nil { + return nil, err + } + return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { ev := ctx.Event.(*Event) @@ -53,11 +59,11 @@ func newPacketFilterEvaluator(field string, value string) (*eval.BoolEvaluator, // PacketFilterMatching is a set of overrides for packet filter fields, it only supports matching a single static value var PacketFilterMatching = &eval.OpOverrides{ - StringEquals: func(a *eval.StringEvaluator, b *eval.StringEvaluator, _ *eval.State) (*eval.BoolEvaluator, error) { + StringEquals: func(a *eval.StringEvaluator, b *eval.StringEvaluator, state *eval.State) (*eval.BoolEvaluator, error) { if a.IsStatic() { - return newPacketFilterEvaluator(b.GetField(), a.Value) + return newPacketFilterEvaluator(b.GetField(), a.Value, state) } else if b.IsStatic() { - return newPacketFilterEvaluator(a.GetField(), b.Value) + return newPacketFilterEvaluator(a.GetField(), b.Value, state) } return nil, errorNonStaticPacketFilterField(a, b) }, diff --git a/pkg/security/secl/model/packet_filter_unsupported.go b/pkg/security/secl/model/oo_packet_filter_unsupported.go similarity index 100% rename from pkg/security/secl/model/packet_filter_unsupported.go rename to pkg/security/secl/model/oo_packet_filter_unsupported.go diff --git a/pkg/security/tests/network_test.go b/pkg/security/tests/network_test.go index 0f2e27ad5baf4..e094e20ba528f 100644 --- a/pkg/security/tests/network_test.go +++ b/pkg/security/tests/network_test.go @@ -82,7 +82,7 @@ func TestRawPacket(t *testing.T) { checkKernelCompatibility(t, "RHEL, SLES, SUSE and Oracle kernels", func(kv *kernel.Version) bool { // TODO: Oracle because we are missing offsets // OpenSUSE distributions are missing the dummy kernel module - return kv.IsRH7Kernel() || kv.IsOracleUEKKernel() || kv.IsSLESKernel() || kv.IsOpenSUSELeapKernel() + return kv.IsRH7Kernel() || kv.IsOracleUEKKernel() || kv.IsSLESKernel() || kv.IsOpenSUSELeapKernel() || (kv.IsAmazonLinuxKernel() && kv.Code < kernel.Kernel4_15) }) if testEnvironment != DockerEnvironment && !env.IsContainerized() { diff --git a/tasks/security_agent.py b/tasks/security_agent.py index 6b5f20ac20092..3d0dc7e752d95 100644 --- a/tasks/security_agent.py +++ b/tasks/security_agent.py @@ -727,12 +727,23 @@ def e2e_prepare_win(ctx): @task -def run_ebpf_unit_tests(ctx, verbose=False, trace=False): +def run_ebpf_unit_tests(ctx, verbose=False, trace=False, testflags=''): build_cws_object_files( ctx, major_version='7', kernel_release=None, with_unit_test=True, bundle_ebpf=True, arch=CURRENT_ARCH ) - flags = '-tags ebpf_bindata' + env = {"CGO_ENABLED": "1"} + + build_libpcap(ctx) + cgo_flags = get_libpcap_cgo_flags(ctx) + # append libpcap cgo-related environment variables to any existing ones + for k, v in cgo_flags.items(): + if k in env: + env[k] += f" {v}" + else: + env[k] = v + + flags = '-tags ebpf_bindata,cgo,pcap' if verbose: flags += " -test.v" @@ -740,7 +751,7 @@ def run_ebpf_unit_tests(ctx, verbose=False, trace=False): if trace: args += " -trace" - ctx.run(f"go test {flags} ./pkg/security/ebpf/tests/... {args}") + ctx.run(f"go test {flags} ./pkg/security/ebpf/tests/... {args} {testflags}", env=env) @task From a608272947ad5c278665018ccee2b3bdefd406a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20Beauz=C3=A9e-Luyssen?= Date: Mon, 25 Nov 2024 15:13:36 +0100 Subject: [PATCH 020/439] CI: remove constant --major-version parameter (#31286) --- .gitlab/binary_build/cluster_agent_cloudfoundry.yml | 2 +- .gitlab/binary_build/linux.yml | 12 ++++++------ .gitlab/deploy_containers/deploy_containers_a7.yml | 4 ++-- .../deploy_cws_instrumentation.yml | 2 +- .gitlab/deploy_dca/deploy_dca.yml | 2 +- .gitlab/deploy_packages/nix.yml | 4 ++-- .gitlab/e2e/e2e.yml | 2 +- .gitlab/e2e_install_packages/common.yml | 4 ++-- .gitlab/e2e_install_packages/suse.yml | 2 +- .gitlab/e2e_install_packages/ubuntu.yml | 4 ++-- .gitlab/e2e_install_packages/windows.yml | 8 ++++---- .gitlab/kitchen_testing/common.yml | 7 +++---- .gitlab/package_build/dmg.yml | 4 +--- .gitlab/package_build/heroku.yml | 3 +-- .gitlab/package_build/installer.yml | 6 +----- .gitlab/package_build/linux.yml | 8 +++----- .gitlab/package_build/windows.yml | 6 ++---- .gitlab/packaging/deb.yml | 5 ++--- .gitlab/packaging/oci.yml | 6 +++--- .gitlab/packaging/rpm.yml | 3 +-- .gitlab/trigger_release/trigger_release.yml | 2 +- 21 files changed, 41 insertions(+), 55 deletions(-) diff --git a/.gitlab/binary_build/cluster_agent_cloudfoundry.yml b/.gitlab/binary_build/cluster_agent_cloudfoundry.yml index 02cbb2d572914..1bfce1afa4923 100644 --- a/.gitlab/binary_build/cluster_agent_cloudfoundry.yml +++ b/.gitlab/binary_build/cluster_agent_cloudfoundry.yml @@ -21,5 +21,5 @@ cluster_agent_cloudfoundry-build_amd64: - inv -e cluster-agent-cloudfoundry.build - cd $CI_PROJECT_DIR/$CLUSTER_AGENT_CLOUDFOUNDRY_BINARIES_DIR - mkdir -p $OMNIBUS_PACKAGE_DIR - - PACKAGE_VERSION=$(inv agent.version --url-safe --major-version 7) || exit $? + - PACKAGE_VERSION=$(inv agent.version --url-safe) || exit $? - tar cf $OMNIBUS_PACKAGE_DIR/datadog-cluster-agent-cloudfoundry-$PACKAGE_VERSION-$ARCH.tar.xz datadog-cluster-agent-cloudfoundry diff --git a/.gitlab/binary_build/linux.yml b/.gitlab/binary_build/linux.yml index b9dd1d9f69439..6973d6b9d4517 100644 --- a/.gitlab/binary_build/linux.yml +++ b/.gitlab/binary_build/linux.yml @@ -10,7 +10,7 @@ build_dogstatsd_static-binary_x64: - !reference [.retrieve_linux_go_deps] script: - inv check-go-version - - inv -e dogstatsd.build --static --major-version 7 + - inv -e dogstatsd.build --static - $S3_CP_CMD $CI_PROJECT_DIR/$STATIC_BINARIES_DIR/dogstatsd $S3_ARTIFACTS_URI/static/dogstatsd.$ARCH build_dogstatsd_static-binary_arm64: @@ -27,7 +27,7 @@ build_dogstatsd_static-binary_arm64: - !reference [.retrieve_linux_go_deps] script: - inv check-go-version - - inv -e dogstatsd.build --static --major-version 7 + - inv -e dogstatsd.build --static - $S3_CP_CMD $CI_PROJECT_DIR/$STATIC_BINARIES_DIR/dogstatsd $S3_ARTIFACTS_URI/static/dogstatsd.$ARCH build_dogstatsd-binary_x64: @@ -42,7 +42,7 @@ build_dogstatsd-binary_x64: - !reference [.retrieve_linux_go_deps] script: - inv check-go-version - - inv -e dogstatsd.build --major-version 7 + - inv -e dogstatsd.build - $S3_CP_CMD $CI_PROJECT_DIR/$DOGSTATSD_BINARIES_DIR/dogstatsd $S3_ARTIFACTS_URI/dogstatsd/dogstatsd build_dogstatsd-binary_arm64: @@ -59,7 +59,7 @@ build_dogstatsd-binary_arm64: - !reference [.retrieve_linux_go_deps] script: - inv check-go-version - - inv -e dogstatsd.build --major-version 7 + - inv -e dogstatsd.build - $S3_CP_CMD $CI_PROJECT_DIR/$DOGSTATSD_BINARIES_DIR/dogstatsd $S3_ARTIFACTS_URI/dogstatsd/dogstatsd.$ARCH # IoT Agent builds to make sure the build is not broken because of build flags @@ -77,7 +77,7 @@ build_iot_agent-binary_x64: - !reference [.retrieve_linux_go_deps] script: - inv check-go-version - - inv -e agent.build --flavor iot --major-version 7 + - inv -e agent.build --flavor iot - $S3_CP_CMD $CI_PROJECT_DIR/$AGENT_BINARIES_DIR/agent $S3_ARTIFACTS_URI/iot/agent build_iot_agent-binary_arm64: @@ -93,5 +93,5 @@ build_iot_agent-binary_arm64: - !reference [.retrieve_linux_go_deps] script: - inv check-go-version - - inv -e agent.build --flavor iot --major-version 7 + - inv -e agent.build --flavor iot diff --git a/.gitlab/deploy_containers/deploy_containers_a7.yml b/.gitlab/deploy_containers/deploy_containers_a7.yml index 2d18d21dcf1ba..62c845a825aae 100644 --- a/.gitlab/deploy_containers/deploy_containers_a7.yml +++ b/.gitlab/deploy_containers/deploy_containers_a7.yml @@ -25,7 +25,7 @@ include: stage: deploy_containers dependencies: [] before_script: - - if [[ "$VERSION" == "" ]]; then VERSION="$(inv agent.version --major-version 7 --url-safe --pipeline-id $PARENT_PIPELINE_ID)" || exit $?; fi + - if [[ "$VERSION" == "" ]]; then VERSION="$(inv agent.version --url-safe --pipeline-id $PARENT_PIPELINE_ID)" || exit $?; fi - export IMG_BASE_SRC="${SRC_AGENT}:v${PARENT_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}" - export IMG_LINUX_SOURCES="${IMG_BASE_SRC}-7${JMX}-amd64,${IMG_BASE_SRC}-7${JMX}-arm64" - export IMG_WINDOWS_SOURCES="${IMG_BASE_SRC}-7${JMX}-win1809${FLAVOR}-amd64,${IMG_BASE_SRC}-7${JMX}-winltsc2022${FLAVOR}-amd64" @@ -132,7 +132,7 @@ deploy_containers-dogstatsd: !reference [.manual_on_deploy_auto_on_rc] dependencies: [] before_script: - - VERSION="$(inv agent.version --major-version 7 --url-safe --pipeline-id $PARENT_PIPELINE_ID)" || exit $? + - VERSION="$(inv agent.version --url-safe --pipeline-id $PARENT_PIPELINE_ID)" || exit $? - export IMG_SOURCES="${SRC_DSD}:v${PARENT_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-amd64,${SRC_DSD}:v${PARENT_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-arm64" - export IMG_DESTINATIONS="${DSD_REPOSITORY}:${VERSION}" diff --git a/.gitlab/deploy_cws_instrumentation/deploy_cws_instrumentation.yml b/.gitlab/deploy_cws_instrumentation/deploy_cws_instrumentation.yml index 330c60bb239ea..03dfa9440f353 100644 --- a/.gitlab/deploy_cws_instrumentation/deploy_cws_instrumentation.yml +++ b/.gitlab/deploy_cws_instrumentation/deploy_cws_instrumentation.yml @@ -11,7 +11,7 @@ include: stage: deploy_cws_instrumentation dependencies: [] before_script: - - if [[ "$VERSION" == "" ]]; then VERSION="$(inv agent.version --major-version 7 --url-safe)" || exit $?; fi + - if [[ "$VERSION" == "" ]]; then VERSION="$(inv agent.version --url-safe)" || exit $?; fi - if [[ "$CWS_INSTRUMENTATION_REPOSITORY" == "" ]]; then export CWS_INSTRUMENTATION_REPOSITORY="cws-instrumentation"; fi - export IMG_BASE_SRC="${SRC_CWS_INSTRUMENTATION}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}" - export IMG_SOURCES="${IMG_BASE_SRC}-amd64,${IMG_BASE_SRC}-arm64" diff --git a/.gitlab/deploy_dca/deploy_dca.yml b/.gitlab/deploy_dca/deploy_dca.yml index 63ef1ed56d74c..fcd7b471025c8 100644 --- a/.gitlab/deploy_dca/deploy_dca.yml +++ b/.gitlab/deploy_dca/deploy_dca.yml @@ -15,7 +15,7 @@ include: - job: "docker_build_cluster_agent_arm64" artifacts: false before_script: - - if [[ "$VERSION" == "" ]]; then VERSION="$(inv agent.version --major-version 7 --url-safe)" || exit $?; fi + - if [[ "$VERSION" == "" ]]; then VERSION="$(inv agent.version --url-safe)" || exit $?; fi - if [[ "$CLUSTER_AGENT_REPOSITORY" == "" ]]; then export CLUSTER_AGENT_REPOSITORY="cluster-agent"; fi - export IMG_BASE_SRC="${SRC_DCA}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}" - export IMG_SOURCES="${IMG_BASE_SRC}-amd64,${IMG_BASE_SRC}-arm64" diff --git a/.gitlab/deploy_packages/nix.yml b/.gitlab/deploy_packages/nix.yml index 2e7c06ef6e36e..8f16b27a38b55 100644 --- a/.gitlab/deploy_packages/nix.yml +++ b/.gitlab/deploy_packages/nix.yml @@ -132,7 +132,7 @@ deploy_staging_dsd: needs: ["build_dogstatsd-binary_x64"] script: - $S3_CP_CMD $S3_ARTIFACTS_URI/dogstatsd/dogstatsd ./dogstatsd - - PACKAGE_VERSION=$(inv agent.version --url-safe --major-version 7) || exit $? + - PACKAGE_VERSION=$(inv agent.version --url-safe) || exit $? - $S3_CP_CMD ./dogstatsd $S3_DSD6_URI/linux/dogstatsd-$PACKAGE_VERSION --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers full=id=3a6e02b08553fd157ae3fb918945dd1eaae5a1aa818940381ef07a430cf25732 # deploy iot-agent x64 binary to staging bucket @@ -145,7 +145,7 @@ deploy_staging_iot_agent: needs: ["build_iot_agent-binary_x64"] script: - $S3_CP_CMD $S3_ARTIFACTS_URI/iot/agent ./agent - - PACKAGE_VERSION=$(inv agent.version --url-safe --major-version 7) || exit $? + - PACKAGE_VERSION=$(inv agent.version --url-safe) || exit $? - $S3_CP_CMD ./agent $S3_DSD6_URI/linux/iot/agent-$PACKAGE_VERSION --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers full=id=3a6e02b08553fd157ae3fb918945dd1eaae5a1aa818940381ef07a430cf25732 # Datadog Installer diff --git a/.gitlab/e2e/e2e.yml b/.gitlab/e2e/e2e.yml index 11e95e75e5580..b48c9d5c4d41c 100644 --- a/.gitlab/e2e/e2e.yml +++ b/.gitlab/e2e/e2e.yml @@ -410,7 +410,7 @@ new-e2e-installer-windows: # Must run before new_e2e_template changes the aws profile # Note: this is similar to the WINDOWS_AGENT_VERSION in new-e2e_windows_msi but this job is running cross platforms # Note 2: new_e2e_template does not define AGENT_MAJOR_VERSION, so define it as 7 below. - - CURRENT_AGENT_VERSION=$(invoke agent.version --major-version 7) || exit $?; export CURRENT_AGENT_VERSION + - CURRENT_AGENT_VERSION=$(invoke agent.version) || exit $?; export CURRENT_AGENT_VERSION - export STABLE_AGENT_VERSION_PACKAGE=$(curl -sS https://hub.docker.com/v2/namespaces/datadog/repositories/agent-package/tags | jq -r '.results[] | .name' | sort | tail -n 2 | head -n 1) - export STABLE_INSTALLER_VERSION_PACKAGE=$(curl -sS https://hub.docker.com/v2/namespaces/datadog/repositories/installer-package/tags | jq -r '.results[] | .name' | sort | tail -n 2 | head -n 1) - !reference [.new_e2e_template, before_script] diff --git a/.gitlab/e2e_install_packages/common.yml b/.gitlab/e2e_install_packages/common.yml index 64abe046a1135..35b2b0b1f4619 100644 --- a/.gitlab/e2e_install_packages/common.yml +++ b/.gitlab/e2e_install_packages/common.yml @@ -8,14 +8,14 @@ variables: TARGETS: ./tests/agent-platform/install-script TEAM: agent-delivery - EXTRA_PARAMS: --osversion $E2E_OSVERS --platform $E2E_PLATFORM --cws-supported-osversion $E2E_CWS_SUPPORTED_OSVERS --major-version $AGENT_MAJOR_VERSION --arch $E2E_ARCH --flavor $FLAVOR --no-verbose + EXTRA_PARAMS: --osversion $E2E_OSVERS --platform $E2E_PLATFORM --cws-supported-osversion $E2E_CWS_SUPPORTED_OSVERS --arch $E2E_ARCH --flavor $FLAVOR --no-verbose .new-e2e_step_by_step: stage: e2e_install_packages variables: TARGETS: ./tests/agent-platform/step-by-step TEAM: agent-delivery - EXTRA_PARAMS: --osversion $E2E_OSVERS --platform $E2E_PLATFORM --cws-supported-osversion $E2E_CWS_SUPPORTED_OSVERS --major-version $AGENT_MAJOR_VERSION --arch $E2E_ARCH --flavor $FLAVOR + EXTRA_PARAMS: --osversion $E2E_OSVERS --platform $E2E_PLATFORM --cws-supported-osversion $E2E_CWS_SUPPORTED_OSVERS --arch $E2E_ARCH --flavor $FLAVOR .new-e2e_script_upgrade7: stage: e2e_install_packages diff --git a/.gitlab/e2e_install_packages/suse.yml b/.gitlab/e2e_install_packages/suse.yml index ced5856448a5b..fd25763ed2363 100644 --- a/.gitlab/e2e_install_packages/suse.yml +++ b/.gitlab/e2e_install_packages/suse.yml @@ -6,7 +6,7 @@ variables: TARGETS: ./tests/agent-platform/install-script TEAM: agent-delivery - EXTRA_PARAMS: --osversion $E2E_OSVERS --platform $E2E_PLATFORM --cws-supported-osversion $E2E_CWS_SUPPORTED_OSVERS --major-version $AGENT_MAJOR_VERSION --arch $E2E_ARCH --flavor $FLAVOR + EXTRA_PARAMS: --osversion $E2E_OSVERS --platform $E2E_PLATFORM --cws-supported-osversion $E2E_CWS_SUPPORTED_OSVERS --arch $E2E_ARCH --flavor $FLAVOR .new-e2e_suse_a7_x86_64: variables: diff --git a/.gitlab/e2e_install_packages/ubuntu.yml b/.gitlab/e2e_install_packages/ubuntu.yml index a7678a9f6ee69..8ae1604230d75 100644 --- a/.gitlab/e2e_install_packages/ubuntu.yml +++ b/.gitlab/e2e_install_packages/ubuntu.yml @@ -7,13 +7,13 @@ variables: TARGETS: ./tests/agent-platform/install-script TEAM: agent-delivery - EXTRA_PARAMS: --osversion $E2E_OSVERS --platform $E2E_PLATFORM --cws-supported-osversion $E2E_CWS_SUPPORTED_OSVERS --major-version $AGENT_MAJOR_VERSION --arch $E2E_ARCH --flavor $FLAVOR + EXTRA_PARAMS: --osversion $E2E_OSVERS --platform $E2E_PLATFORM --cws-supported-osversion $E2E_CWS_SUPPORTED_OSVERS --arch $E2E_ARCH --flavor $FLAVOR .new-e2e_step_by_step: variables: TARGETS: ./tests/agent-platform/step-by-step TEAM: agent-delivery - EXTRA_PARAMS: --osversion $E2E_OSVERS --platform $E2E_PLATFORM --cws-supported-osversion $E2E_CWS_SUPPORTED_OSVERS --major-version $AGENT_MAJOR_VERSION --arch $E2E_ARCH --flavor $FLAVOR + EXTRA_PARAMS: --osversion $E2E_OSVERS --platform $E2E_PLATFORM --cws-supported-osversion $E2E_CWS_SUPPORTED_OSVERS --arch $E2E_ARCH --flavor $FLAVOR .new-e2e_ubuntu_a7_x86_64: variables: diff --git a/.gitlab/e2e_install_packages/windows.yml b/.gitlab/e2e_install_packages/windows.yml index a5585774c9aa5..223812e0e0c4e 100644 --- a/.gitlab/e2e_install_packages/windows.yml +++ b/.gitlab/e2e_install_packages/windows.yml @@ -10,11 +10,11 @@ before_script: # WINDOWS_AGENT_VERSION is used to verify the installed agent version # Must run before new_e2e_template changes the aws profile - - WINDOWS_AGENT_VERSION=$(invoke agent.version --major-version $AGENT_MAJOR_VERSION) || exit $?; export WINDOWS_AGENT_VERSION + - WINDOWS_AGENT_VERSION=$(invoke agent.version) || exit $?; export WINDOWS_AGENT_VERSION - !reference [.new_e2e_template, before_script] script: # LAST_STABLE_VERSION is used for upgrade test - - export LAST_STABLE_VERSION=$(invoke release.get-release-json-value "last_stable::$AGENT_MAJOR_VERSION") + - export LAST_STABLE_VERSION=$(invoke release.get-release-json-value "last_stable::7") - !reference [.new_e2e_template, script] .new-e2e_windows_domain_test: @@ -24,11 +24,11 @@ before_script: # WINDOWS_AGENT_VERSION is used to verify the installed agent version # Must run before new_e2e_template changes the aws profile - - WINDOWS_AGENT_VERSION=$(invoke agent.version --major-version $AGENT_MAJOR_VERSION) || exit $?; export WINDOWS_AGENT_VERSION + - WINDOWS_AGENT_VERSION=$(invoke agent.version) || exit $?; export WINDOWS_AGENT_VERSION - !reference [.new_e2e_template, before_script] script: # LAST_STABLE_VERSION is used for upgrade test - - export LAST_STABLE_VERSION=$(invoke release.get-release-json-value "last_stable::$AGENT_MAJOR_VERSION") + - export LAST_STABLE_VERSION=$(invoke release.get-release-json-value "last_stable::7") - !reference [.new_e2e_template, script] .new-e2e_windows_installer_v7_tests: diff --git a/.gitlab/kitchen_testing/common.yml b/.gitlab/kitchen_testing/common.yml index 2e8a593a1b96d..e99f4b9d42f00 100644 --- a/.gitlab/kitchen_testing/common.yml +++ b/.gitlab/kitchen_testing/common.yml @@ -81,7 +81,6 @@ rules: !reference [.on_kitchen_tests] variables: - AGENT_MAJOR_VERSION: 7 DD_PIPELINE_ID: $CI_PIPELINE_ID-a7 @@ -90,16 +89,16 @@ .kitchen_test_chef: script: - - tasks/run-test-kitchen.sh chef-test $AGENT_MAJOR_VERSION + - tasks/run-test-kitchen.sh chef-test 7 .kitchen_test_upgrade5: script: - - tasks/run-test-kitchen.sh upgrade5-test $AGENT_MAJOR_VERSION + - tasks/run-test-kitchen.sh upgrade5-test 7 .kitchen_test_upgrade7: script: - export LAST_STABLE_VERSION=$(cd ../.. && invoke release.get-release-json-value "last_stable::7") - - tasks/run-test-kitchen.sh upgrade7-test $AGENT_MAJOR_VERSION + - tasks/run-test-kitchen.sh upgrade7-test 7 # Kitchen: Agent flavor # ------------------------------- diff --git a/.gitlab/package_build/dmg.yml b/.gitlab/package_build/dmg.yml index e676e6255ecaa..fd800a910ab65 100644 --- a/.gitlab/package_build/dmg.yml +++ b/.gitlab/package_build/dmg.yml @@ -9,7 +9,7 @@ - $S3_CP_CMD $S3_ARTIFACTS_URI/agent-version.cache . - export VERSION_CACHE_CONTENT=$(cat agent-version.cache | base64 -) - python3 -m pip install -r tasks/libs/requirements-github.txt - - inv -e github.trigger-macos --workflow-type "build" --datadog-agent-ref "$CI_COMMIT_SHA" --release-version "$RELEASE_VERSION" --major-version "$AGENT_MAJOR_VERSION" --destination "$OMNIBUS_PACKAGE_DIR" --version-cache "$VERSION_CACHE_CONTENT" --integrations-core-ref "$INTEGRATIONS_CORE_VERSION" + - inv -e github.trigger-macos --workflow-type "build" --datadog-agent-ref "$CI_COMMIT_SHA" --release-version "$RELEASE_VERSION" --destination "$OMNIBUS_PACKAGE_DIR" --version-cache "$VERSION_CACHE_CONTENT" --integrations-core-ref "$INTEGRATIONS_CORE_VERSION" - !reference [.upload_sbom_artifacts] timeout: 3h # MacOS builds can take 1h~2h, increase the timeout to avoid timeout flakes artifacts: @@ -29,8 +29,6 @@ agent_dmg-x64-a7: image: registry.ddbuild.io/ci/datadog-agent-buildimages/deb_x64$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES tags: ["arch:amd64"] needs: ["go_mod_tidy_check"] - variables: - AGENT_MAJOR_VERSION: 7 timeout: 6h before_script: - export RELEASE_VERSION=$RELEASE_VERSION_7 diff --git a/.gitlab/package_build/heroku.yml b/.gitlab/package_build/heroku.yml index 1231ac0eed8d4..07fa1ad5c77b5 100644 --- a/.gitlab/package_build/heroku.yml +++ b/.gitlab/package_build/heroku.yml @@ -28,7 +28,7 @@ - $S3_CP_CMD $S3_PERMANENT_ARTIFACTS_URI/llc-$CLANG_LLVM_VER.${PACKAGE_ARCH} /tmp/system-probe/llc-bpf - cp $CI_PROJECT_DIR/minimized-btfs.tar.xz /tmp/system-probe/minimized-btfs.tar.xz - chmod 0744 /tmp/system-probe/clang-bpf /tmp/system-probe/llc-bpf - - inv -e omnibus.build --release-version "$RELEASE_VERSION" --major-version "$AGENT_MAJOR_VERSION" --base-dir $OMNIBUS_BASE_DIR ${USE_S3_CACHING} --skip-deps --go-mod-cache="$GOPATH/pkg/mod" --system-probe-bin=/tmp/system-probe --flavor heroku + - inv -e omnibus.build --release-version "$RELEASE_VERSION" --base-dir $OMNIBUS_BASE_DIR ${USE_S3_CACHING} --skip-deps --go-mod-cache="$GOPATH/pkg/mod" --system-probe-bin=/tmp/system-probe --flavor heroku - ls -la $OMNIBUS_PACKAGE_DIR - !reference [.lint_linux_packages] - !reference [.upload_sbom_artifacts] @@ -53,4 +53,3 @@ agent_heroku_deb-x64-a7: variables: DESTINATION_DBG_DEB: "datadog-heroku-agent-dbg_7_amd64.deb" RELEASE_VERSION: $RELEASE_VERSION_7 - AGENT_MAJOR_VERSION: 7 diff --git a/.gitlab/package_build/installer.yml b/.gitlab/package_build/installer.yml index 7331712a9bdf0..8e253c48b6df0 100644 --- a/.gitlab/package_build/installer.yml +++ b/.gitlab/package_build/installer.yml @@ -21,7 +21,7 @@ - chmod 0744 /tmp/system-probe/clang-bpf /tmp/system-probe/llc-bpf # NOTE: for now, we consider "ociru" to be a "redhat_target" in omnibus/lib/ostools.rb # if we ever start building on a different platform, that might need to change - - inv -e omnibus.build --release-version "$RELEASE_VERSION" --major-version "$AGENT_MAJOR_VERSION" --base-dir $OMNIBUS_BASE_DIR ${USE_S3_CACHING} --skip-deps --go-mod-cache="$GOPATH/pkg/mod" --system-probe-bin=/tmp/system-probe --host-distribution=ociru --install-directory="$INSTALL_DIR" + - inv -e omnibus.build --release-version "$RELEASE_VERSION" --base-dir $OMNIBUS_BASE_DIR ${USE_S3_CACHING} --skip-deps --go-mod-cache="$GOPATH/pkg/mod" --system-probe-bin=/tmp/system-probe --host-distribution=ociru --install-directory="$INSTALL_DIR" - ls -la $OMNIBUS_PACKAGE_DIR - !reference [.upload_sbom_artifacts] variables: @@ -51,7 +51,6 @@ datadog-agent-oci-x64-a7: "generate_minimized_btfs_x64", ] variables: - AGENT_MAJOR_VERSION: 7 PACKAGE_ARCH: amd64 DESTINATION_OCI: "datadog-agent-7-remote-updater-amd64.tar.xz" DD_CC: 'x86_64-unknown-linux-gnu-gcc' @@ -76,7 +75,6 @@ datadog-agent-oci-arm64-a7: "generate_minimized_btfs_arm64", ] variables: - AGENT_MAJOR_VERSION: 7 PACKAGE_ARCH: arm64 DESTINATION_OCI: "datadog-agent-7-remote-updater-arm64.tar.xz" DD_CC: 'aarch64-unknown-linux-gnu-gcc' @@ -97,7 +95,6 @@ bootstrapper_build: tags: ["arch:amd64"] needs: ["go_mod_tidy_check", "go_deps"] variables: - AGENT_MAJOR_VERSION: 7 KUBERNETES_CPU_REQUEST: 8 KUBERNETES_MEMORY_REQUEST: "16Gi" KUBERNETES_MEMORY_LIMIT: "16Gi" @@ -132,7 +129,6 @@ bootstrapper_build: - ls -la $OMNIBUS_PACKAGE_DIR - !reference [.upload_sbom_artifacts] variables: - AGENT_MAJOR_VERSION: 7 KUBERNETES_CPU_REQUEST: 8 KUBERNETES_MEMORY_REQUEST: "16Gi" KUBERNETES_MEMORY_LIMIT: "16Gi" diff --git a/.gitlab/package_build/linux.yml b/.gitlab/package_build/linux.yml index 6528757b0ad2c..d129676f3bc3c 100644 --- a/.gitlab/package_build/linux.yml +++ b/.gitlab/package_build/linux.yml @@ -12,7 +12,7 @@ - $S3_CP_CMD $S3_PERMANENT_ARTIFACTS_URI/llc-$CLANG_LLVM_VER.${PACKAGE_ARCH} /tmp/system-probe/llc-bpf - cp $CI_PROJECT_DIR/minimized-btfs.tar.xz /tmp/system-probe/minimized-btfs.tar.xz - chmod 0744 /tmp/system-probe/clang-bpf /tmp/system-probe/llc-bpf - - inv -e omnibus.build --release-version "$RELEASE_VERSION" --major-version "$AGENT_MAJOR_VERSION" --base-dir $OMNIBUS_BASE_DIR ${USE_S3_CACHING} --skip-deps --go-mod-cache="$GOPATH/pkg/mod" --system-probe-bin=/tmp/system-probe --flavor "$FLAVOR" --config-directory "$CONFIG_DIR" --install-directory "$INSTALL_DIR" + - inv -e omnibus.build --release-version "$RELEASE_VERSION" --base-dir $OMNIBUS_BASE_DIR ${USE_S3_CACHING} --skip-deps --go-mod-cache="$GOPATH/pkg/mod" --system-probe-bin=/tmp/system-probe --flavor "$FLAVOR" --config-directory "$CONFIG_DIR" --install-directory "$INSTALL_DIR" - ls -la $OMNIBUS_PACKAGE_DIR - !reference [.upload_sbom_artifacts] @@ -57,14 +57,12 @@ .agent_7_build: variables: - AGENT_MAJOR_VERSION: 7 FLAVOR: base before_script: - export RELEASE_VERSION=$RELEASE_VERSION_7 .ot_agent_7_build: variables: - AGENT_MAJOR_VERSION: 7 FLAVOR: ot before_script: - export RELEASE_VERSION=$RELEASE_VERSION_7 @@ -94,7 +92,7 @@ datadog-ot-agent-7-arm64: - !reference [.cache_omnibus_ruby_deps, setup] # remove artifacts from previous pipelines that may come from the cache - rm -rf $OMNIBUS_PACKAGE_DIR/* - - inv -e omnibus.build --release-version "$RELEASE_VERSION" --major-version 7 --base-dir $OMNIBUS_BASE_DIR ${USE_S3_CACHING} --skip-deps --go-mod-cache="$GOPATH/pkg/mod" --system-probe-bin=/tmp/system-probe --flavor iot + - inv -e omnibus.build --release-version "$RELEASE_VERSION" --base-dir $OMNIBUS_BASE_DIR ${USE_S3_CACHING} --skip-deps --go-mod-cache="$GOPATH/pkg/mod" --system-probe-bin=/tmp/system-probe --flavor iot - ls -la $OMNIBUS_PACKAGE_DIR - !reference [.upload_sbom_artifacts] before_script: @@ -138,7 +136,7 @@ iot-agent-armhf: - !reference [.cache_omnibus_ruby_deps, setup] # remove artifacts from previous pipelines that may come from the cache - rm -rf $OMNIBUS_PACKAGE_DIR/* - - inv -e omnibus.build --release-version $RELEASE_VERSION_7 --major-version 7 --base-dir $OMNIBUS_BASE_DIR ${USE_S3_CACHING} --skip-deps --go-mod-cache="$GOPATH/pkg/mod" --target-project dogstatsd + - inv -e omnibus.build --release-version $RELEASE_VERSION_7 --base-dir $OMNIBUS_BASE_DIR ${USE_S3_CACHING} --skip-deps --go-mod-cache="$GOPATH/pkg/mod" --target-project dogstatsd - ls -la $OMNIBUS_PACKAGE_DIR - !reference [.upload_sbom_artifacts] variables: diff --git a/.gitlab/package_build/windows.yml b/.gitlab/package_build/windows.yml index 2985d1da3a413..f1e8c2a47f34a 100644 --- a/.gitlab/package_build/windows.yml +++ b/.gitlab/package_build/windows.yml @@ -21,7 +21,7 @@ -e OMNIBUS_TARGET=${OMNIBUS_TARGET} -e WINDOWS_BUILDER=true -e RELEASE_VERSION="$RELEASE_VERSION" - -e MAJOR_VERSION="$AGENT_MAJOR_VERSION" + -e MAJOR_VERSION="7" -e INTEGRATIONS_CORE_VERSION="$INTEGRATIONS_CORE_VERSION" -e GOMODCACHE="c:\modcache" -e AWS_NETWORKING=true @@ -60,7 +60,6 @@ windows_msi_and_bosh_zip_x64-a7: - when: on_success variables: ARCH: "x64" - AGENT_MAJOR_VERSION: 7 before_script: - set RELEASE_VERSION $RELEASE_VERSION_7 timeout: 2h @@ -75,7 +74,6 @@ windows_zip_agent_binaries_x64-a7: needs: ["go_mod_tidy_check", "go_deps"] variables: ARCH: "x64" - AGENT_MAJOR_VERSION: 7 OMNIBUS_TARGET: agent_binaries before_script: - set RELEASE_VERSION $RELEASE_VERSION_7 @@ -96,7 +94,7 @@ windows_zip_agent_binaries_x64-a7: -e OMNIBUS_TARGET=${OMNIBUS_TARGET} -e WINDOWS_BUILDER=true -e RELEASE_VERSION="$RELEASE_VERSION" - -e MAJOR_VERSION="$AGENT_MAJOR_VERSION" + -e MAJOR_VERSION="7" -e INTEGRATIONS_CORE_VERSION="$INTEGRATIONS_CORE_VERSION" -e GOMODCACHE="c:\modcache" -e AWS_NETWORKING=true diff --git a/.gitlab/packaging/deb.yml b/.gitlab/packaging/deb.yml index 55f7026d8df79..a133b70d749a1 100644 --- a/.gitlab/packaging/deb.yml +++ b/.gitlab/packaging/deb.yml @@ -5,7 +5,7 @@ - !reference [.cache_omnibus_ruby_deps, setup] - echo "About to package for $RELEASE_VERSION" - !reference [.setup_deb_signing_key] - - inv -e omnibus.build --release-version "$RELEASE_VERSION" --major-version "$AGENT_MAJOR_VERSION" --base-dir $OMNIBUS_BASE_DIR --skip-deps --target-project ${DD_PROJECT} ${OMNIBUS_EXTRA_ARGS} + - inv -e omnibus.build --release-version "$RELEASE_VERSION" --base-dir $OMNIBUS_BASE_DIR --skip-deps --target-project ${DD_PROJECT} ${OMNIBUS_EXTRA_ARGS} - !reference [.lint_linux_packages] artifacts: expire_in: 2 weeks @@ -37,7 +37,6 @@ .package_deb_agent_7: variables: RELEASE_VERSION: $RELEASE_VERSION_7 - AGENT_MAJOR_VERSION: 7 agent_deb-x64-a7: extends: [.package_deb_common, .package_deb_x86, .package_deb_agent_7] @@ -63,7 +62,7 @@ agent_deb-arm64-a7: - !reference [.cache_omnibus_ruby_deps, setup] - echo "About to package for $RELEASE_VERSION" - !reference [.setup_deb_signing_key] - - inv -e omnibus.build --release-version "$RELEASE_VERSION" --major-version "$AGENT_MAJOR_VERSION" --base-dir $OMNIBUS_BASE_DIR --skip-deps --target-project ${DD_PROJECT} --flavor ot ${OMNIBUS_EXTRA_ARGS} + - inv -e omnibus.build --release-version "$RELEASE_VERSION" --base-dir $OMNIBUS_BASE_DIR --skip-deps --target-project ${DD_PROJECT} --flavor ot ${OMNIBUS_EXTRA_ARGS} - !reference [.lint_linux_packages] ot_agent_deb-x64-a7: diff --git a/.gitlab/packaging/oci.yml b/.gitlab/packaging/oci.yml index 6848d24fc7080..e96ece68316fc 100644 --- a/.gitlab/packaging/oci.yml +++ b/.gitlab/packaging/oci.yml @@ -6,7 +6,7 @@ image: registry.ddbuild.io/ci/datadog-agent-buildimages/deb_x64$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES tags: ["arch:amd64"] before_script: - - PACKAGE_VERSION="$(inv agent.version --url-safe --major-version 7)-1" || exit $? + - PACKAGE_VERSION="$(inv agent.version --url-safe)-1" || exit $? - export INSTALL_DIR=/opt/datadog-packages/${OCI_PRODUCT}/${PACKAGE_VERSION} variables: KUBERNETES_CPU_REQUEST: 16 @@ -17,8 +17,8 @@ - rm -f $OMNIBUS_PACKAGE_DIR/*-dbg-*.tar.xz - ls -l $OMNIBUS_PACKAGE_DIR # Python 3.12 changes default behavior how packages are installed. - # In particular, --break-system-packages command line option is - # required to use the old behavior or use a virtual env. https://github.com/actions/runner-images/issues/8615 + # In particular, --break-system-packages command line option is + # required to use the old behavior or use a virtual env. https://github.com/actions/runner-images/issues/8615 - python3 -m pip install -r tasks/libs/requirements-github.txt --break-system-packages - set +x - git config --global url."https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.ddbuild.io/DataDog/".insteadOf "https://github.com/DataDog/" diff --git a/.gitlab/packaging/rpm.yml b/.gitlab/packaging/rpm.yml index f1c147ef52e79..9444f7062ad89 100644 --- a/.gitlab/packaging/rpm.yml +++ b/.gitlab/packaging/rpm.yml @@ -11,7 +11,7 @@ - printf -- "$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $RPM_GPG_KEY)" | gpg --import --batch - EXIT="${PIPESTATUS[0]}"; if [ $EXIT -ne 0 ]; then echo "Unable to locate credentials needs gitlab runner restart"; exit $EXIT; fi - RPM_SIGNING_PASSPHRASE=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $RPM_SIGNING_PASSPHRASE) || exit $?; export RPM_SIGNING_PASSPHRASE - - inv -e omnibus.build --release-version "$RELEASE_VERSION" --major-version "$AGENT_MAJOR_VERSION" --base-dir $OMNIBUS_BASE_DIR --skip-deps --target-project=${DD_PROJECT} ${OMNIBUS_EXTRA_ARGS} + - inv -e omnibus.build --release-version "$RELEASE_VERSION" --base-dir $OMNIBUS_BASE_DIR --skip-deps --target-project=${DD_PROJECT} ${OMNIBUS_EXTRA_ARGS} - ls -la $OMNIBUS_PACKAGE_DIR/ - !reference [.lint_linux_packages] stage: packaging @@ -45,7 +45,6 @@ .package_rpm_agent_7: variables: RELEASE_VERSION: $RELEASE_VERSION_7 - AGENT_MAJOR_VERSION: 7 .package_suse_rpm_common: extends: .package_rpm_common diff --git a/.gitlab/trigger_release/trigger_release.yml b/.gitlab/trigger_release/trigger_release.yml index 67cd717f9e1d5..69f8a53b1df99 100644 --- a/.gitlab/trigger_release/trigger_release.yml +++ b/.gitlab/trigger_release/trigger_release.yml @@ -18,7 +18,7 @@ script: # agent-release-management creates pipeline for both Agent 6 and Agent 7 # when triggered with major version 7 - - RELEASE_VERSION="$(inv agent.version --major-version 7 --url-safe --omnibus-format)-1" || exit $?; export RELEASE_VERSION + - RELEASE_VERSION="$(inv agent.version --url-safe --omnibus-format)-1" || exit $?; export RELEASE_VERSION - GITLAB_TOKEN=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $GITLAB_TOKEN write_api) || exit $?; export GITLAB_TOKEN - 'inv pipeline.trigger-child-pipeline --project-name "DataDog/agent-release-management" --git-ref "main" --variable ACTION From d65aa23354f884875747a9d4fc9b2b6245642da9 Mon Sep 17 00:00:00 2001 From: Kangyi LI Date: Mon, 25 Nov 2024 15:31:04 +0100 Subject: [PATCH 021/439] change log level (#31317) --- comp/core/workloadmeta/collectors/internal/ecs/v4parser.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/comp/core/workloadmeta/collectors/internal/ecs/v4parser.go b/comp/core/workloadmeta/collectors/internal/ecs/v4parser.go index 9fe87042b9ac3..817878d6e7794 100644 --- a/comp/core/workloadmeta/collectors/internal/ecs/v4parser.go +++ b/comp/core/workloadmeta/collectors/internal/ecs/v4parser.go @@ -77,7 +77,8 @@ func (c *collector) getTaskWithTagsFromV4Endpoint(ctx context.Context, task v1.T if metaURI == "" { err := fmt.Sprintf("failed to get client for metadata v4 API from task %s and the following containers: %v", task.Arn, task.Containers) - log.Error(err) + // log this as debug since it's expected that some recent created or deleted tasks won't have containers yet + log.Debug(err) return v1TaskToV4Task(task), errors.New(err) } From a4abc0d85a2b33cc43ec5968ec6ab731bf815027 Mon Sep 17 00:00:00 2001 From: Vincent Whitchurch Date: Mon, 25 Nov 2024 15:47:24 +0100 Subject: [PATCH 022/439] discovery: Fallback to script name for node (#31385) --- .../corechecks/servicediscovery/usm/nodejs.go | 7 ++++++- .../servicediscovery/usm/service_test.go | 15 +++++++++++++-- .../usm/testdata/root/testdata/inner/app.js | 0 .../usm/testdata/root/testdata/inner/link | 1 + 4 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 pkg/collector/corechecks/servicediscovery/usm/testdata/root/testdata/inner/app.js create mode 120000 pkg/collector/corechecks/servicediscovery/usm/testdata/root/testdata/inner/link diff --git a/pkg/collector/corechecks/servicediscovery/usm/nodejs.go b/pkg/collector/corechecks/servicediscovery/usm/nodejs.go index dd0f31d3986a5..f48972f1a4aa0 100644 --- a/pkg/collector/corechecks/servicediscovery/usm/nodejs.go +++ b/pkg/collector/corechecks/servicediscovery/usm/nodejs.go @@ -63,7 +63,12 @@ func (n nodeDetector) detect(args []string) (ServiceMetadata, bool) { if ok { return NewServiceMetadata(value), true } - break + + // We couldn't find a package.json, fall back to the script/link + // name since it should be better than just using "node". + base := filepath.Base(absFile) + name := strings.TrimSuffix(base, path.Ext(base)) + return NewServiceMetadata(name), true } } } diff --git a/pkg/collector/corechecks/servicediscovery/usm/service_test.go b/pkg/collector/corechecks/servicediscovery/usm/service_test.go index a5f2b96ac10b0..ae964b2d75f73 100644 --- a/pkg/collector/corechecks/servicediscovery/usm/service_test.go +++ b/pkg/collector/corechecks/servicediscovery/usm/service_test.go @@ -222,10 +222,21 @@ func TestExtractServiceMetadata(t *testing.T) { name: "node js with a broken package.json", cmdline: []string{ "/usr/bin/node", - "./testdata/inner/index.js", + "./testdata/inner/app.js", }, lang: language.Node, - expectedGeneratedName: "node", + expectedGeneratedName: "app", + fs: &subUsmTestData, + }, + { + name: "node js with a broken package.json", + cmdline: []string{ + "/usr/bin/node", + "./testdata/inner/link", + }, + lang: language.Node, + expectedGeneratedName: "link", + fs: &subUsmTestData, }, { name: "node js with a valid package.json", diff --git a/pkg/collector/corechecks/servicediscovery/usm/testdata/root/testdata/inner/app.js b/pkg/collector/corechecks/servicediscovery/usm/testdata/root/testdata/inner/app.js new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/pkg/collector/corechecks/servicediscovery/usm/testdata/root/testdata/inner/link b/pkg/collector/corechecks/servicediscovery/usm/testdata/root/testdata/inner/link new file mode 120000 index 0000000000000..f9602e9dc51d1 --- /dev/null +++ b/pkg/collector/corechecks/servicediscovery/usm/testdata/root/testdata/inner/link @@ -0,0 +1 @@ +app.js \ No newline at end of file From 88729a6617d7d407b00246f50c5f6e459a7fab1f Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Mon, 25 Nov 2024 16:09:41 +0100 Subject: [PATCH 023/439] remove `bundle_ebpf` flag from `inv agent.build` (#31422) --- tasks/agent.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tasks/agent.py b/tasks/agent.py index b3e80cc14c360..af988249697a8 100644 --- a/tasks/agent.py +++ b/tasks/agent.py @@ -135,7 +135,6 @@ def build( go_mod="mod", windows_sysprobe=False, cmake_options='', - bundle_ebpf=False, agent_bin=None, run_on=None, # noqa: U100, F841. Used by the run_on_devcontainer decorator ): From a7e433469a51a5302690489849b0e51d1dde5ec6 Mon Sep 17 00:00:00 2001 From: Len Gamburg <98782554+iglendd@users.noreply.github.com> Date: Mon, 25 Nov 2024 11:04:59 -0500 Subject: [PATCH 024/439] Add `agent diagnose show-metadata agent-telemetry` CLI command (#31258) Co-authored-by: Olivier G <52180542+ogaca-dd@users.noreply.github.com> Co-authored-by: Jen Gilbert --- cmd/agent/subcommands/diagnose/command.go | 14 + .../subcommands/diagnose/command_test.go | 10 + .../agenttelemetry/impl/agenttelemetry.go | 114 ++++-- .../impl/agenttelemetry_test.go | 340 ++++++++++++++++-- comp/core/agenttelemetry/impl/config.go | 64 ++-- comp/core/agenttelemetry/impl/sender.go | 123 +++---- ...nt-telemetry-cli-cmd-926f814513a02d74.yaml | 14 + 7 files changed, 531 insertions(+), 148 deletions(-) create mode 100644 releasenotes/notes/agent-telemetry-cli-cmd-926f814513a02d74.yaml diff --git a/cmd/agent/subcommands/diagnose/command.go b/cmd/agent/subcommands/diagnose/command.go index 341166d496a06..8ed4bf53699e8 100644 --- a/cmd/agent/subcommands/diagnose/command.go +++ b/cmd/agent/subcommands/diagnose/command.go @@ -269,6 +269,19 @@ This command print the security-agent metadata payload. This payload is used by }, } + agentTelemetryCmd := &cobra.Command{ + Use: "agent-telemetry", + Short: "[internal] Print agent telemetry payloads sent by the agent.", + Long: `.`, + RunE: func(_ *cobra.Command, _ []string) error { + return fxutil.OneShot(printPayload, + fx.Supply(payloadName("agent-telemetry")), + fx.Supply(command.GetDefaultCoreBundleParams(cliParams.GlobalParams)), + core.Bundle(), + ) + }, + } + showPayloadCommand.AddCommand(payloadV5Cmd) showPayloadCommand.AddCommand(payloadGohaiCmd) showPayloadCommand.AddCommand(payloadInventoriesAgentCmd) @@ -278,6 +291,7 @@ This command print the security-agent metadata payload. This payload is used by showPayloadCommand.AddCommand(payloadInventoriesPkgSigningCmd) showPayloadCommand.AddCommand(payloadSystemProbeCmd) showPayloadCommand.AddCommand(payloadSecurityAgentCmd) + showPayloadCommand.AddCommand(agentTelemetryCmd) diagnoseCommand.AddCommand(showPayloadCommand) return []*cobra.Command{diagnoseCommand} diff --git a/cmd/agent/subcommands/diagnose/command_test.go b/cmd/agent/subcommands/diagnose/command_test.go index 3316432edf833..9c1f2dcb049d4 100644 --- a/cmd/agent/subcommands/diagnose/command_test.go +++ b/cmd/agent/subcommands/diagnose/command_test.go @@ -115,3 +115,13 @@ func TestShowMetadataSecurityAgentCommand(t *testing.T) { require.Equal(t, false, secretParams.Enabled) }) } + +func TestShowAgentTelemetryCommand(t *testing.T) { + fxutil.TestOneShotSubcommand(t, + Commands(&command.GlobalParams{}), + []string{"diagnose", "show-metadata", "agent-telemetry"}, + printPayload, + func(payload payloadName) { + require.Equal(t, payloadName("agent-telemetry"), payload) + }) +} diff --git a/comp/core/agenttelemetry/impl/agenttelemetry.go b/comp/core/agenttelemetry/impl/agenttelemetry.go index 3ca0c0e663268..de05da82a5b79 100644 --- a/comp/core/agenttelemetry/impl/agenttelemetry.go +++ b/comp/core/agenttelemetry/impl/agenttelemetry.go @@ -8,22 +8,26 @@ package agenttelemetryimpl import ( "context" + "encoding/json" + "errors" + "fmt" + "net/http" "strconv" "golang.org/x/exp/maps" + api "github.com/DataDog/datadog-agent/comp/api/api/def" agenttelemetry "github.com/DataDog/datadog-agent/comp/core/agenttelemetry/def" "github.com/DataDog/datadog-agent/comp/core/config" log "github.com/DataDog/datadog-agent/comp/core/log/def" "github.com/DataDog/datadog-agent/comp/core/telemetry" compdef "github.com/DataDog/datadog-agent/comp/def" + httputils "github.com/DataDog/datadog-agent/pkg/util/http" + "github.com/DataDog/datadog-agent/pkg/util/scrubber" dto "github.com/prometheus/client_model/go" ) -// Embed one or more rendering templated into this binary as a resource -// to be used at runtime. - type atel struct { cfgComp config.Component logComp log.Component @@ -38,7 +42,7 @@ type atel struct { cancel context.CancelFunc } -// Requires defines the dependencies for the agenttelemtry component +// Requires defines the dependencies for the agenttelemetry component type Requires struct { compdef.In @@ -46,7 +50,15 @@ type Requires struct { Config config.Component Telemetry telemetry.Component - Lifecycle compdef.Lifecycle + Lc compdef.Lifecycle +} + +// Provides defines the output of the agenttelemetry component +type Provides struct { + compdef.Out + + Comp agenttelemetry.Component + Endpoint api.AgentEndpointProvider } // Interfacing with runner. @@ -120,19 +132,18 @@ func createAtel( } // NewComponent creates a new agent telemetry component. -func NewComponent(req Requires) agenttelemetry.Component { - // Wire up the agent telemetry provider (TODO: use FX for sender, client and runner?) +func NewComponent(deps Requires) Provides { a := createAtel( - req.Config, - req.Log, - req.Telemetry, + deps.Config, + deps.Log, + deps.Telemetry, nil, nil, ) // If agent telemetry is enabled and configured properly add the start and stop hooks if a.enabled { - req.Lifecycle.Append(compdef.Hook{ + deps.Lc.Append(compdef.Hook{ OnStart: func(_ context.Context) error { return a.start() }, @@ -142,7 +153,10 @@ func NewComponent(req Requires) agenttelemetry.Component { }) } - return a + return Provides{ + Comp: a, + Endpoint: api.NewAgentEndpointProvider(a.writePayload, "/metadata/agent-telemetry", "GET"), + } } func (a *atel) aggregateMetricTags(mCfg *MetricConfig, mt dto.MetricType, ms []*dto.Metric) []*dto.Metric { @@ -288,7 +302,7 @@ func (a *atel) transformMetricFamily(p *Profile, mfam *dto.MetricFamily) *agentm } } -func (a *atel) reportAgentMetrics(session *senderSession, p *Profile) { +func (a *atel) reportAgentMetrics(session *senderSession, pms []*telemetry.MetricFamily, p *Profile) { // If no metrics are configured nothing to report if len(p.metricsMap) == 0 { return @@ -296,15 +310,6 @@ func (a *atel) reportAgentMetrics(session *senderSession, p *Profile) { a.logComp.Debugf("Collect Agent Metric telemetry for profile %s", p.Name) - // Gather all prom metrircs. Currently Gather() does not allow filtering by - // matric name, so we need to gather all metrics and filter them on our own. - // pms, err := a.telemetry.Gather(false) - pms, err := a.telComp.Gather(false) - if err != nil { - a.logComp.Errorf("failed to get filtered telemetry metrics: %s", err) - return - } - // ... and filter them according to the profile configuration var metrics []*agentmetric for _, pm := range pms { @@ -322,38 +327,77 @@ func (a *atel) reportAgentMetrics(session *senderSession, p *Profile) { // Send the metrics if any were filtered a.logComp.Debugf("Reporting Agent Metric telemetry for profile %s", p.Name) - err = a.sender.sendAgentMetricPayloads(session, metrics) + a.sender.sendAgentMetricPayloads(session, metrics) +} + +func (a *atel) loadPayloads(profiles []*Profile) (*senderSession, error) { + // Gather all prom metrics. Currently Gather() does not allow filtering by + // metric name, so we need to gather all metrics and filter them on our own. + // pms, err := a.telemetry.Gather(false) + pms, err := a.telComp.Gather(false) if err != nil { - a.logComp.Errorf("failed to get filtered telemetry metrics: %s", err) + a.logComp.Errorf("failed to get filtered telemetry metrics: %v", err) + return nil, err + } + + session := a.sender.startSession(a.cancelCtx) + for _, p := range profiles { + a.reportAgentMetrics(session, pms, p) } + return session, nil } // run runs the agent telemetry for a given profile. It is triggered by the runner // according to the profiles schedule. func (a *atel) run(profiles []*Profile) { - if a.sender == nil { - a.logComp.Errorf("Agent telemetry sender is not initialized") + a.logComp.Info("Starting agent telemetry run") + session, err := a.loadPayloads(profiles) + if err != nil { + a.logComp.Errorf("failed to load agent telemetry session: %s", err) return } - a.logComp.Info("Starting agent telemetry run") - - session := a.sender.startSession(a.cancelCtx) + err = a.sender.flushSession(session) + if err != nil { + a.logComp.Errorf("failed to flush agent telemetry session: %s", err) + return + } +} - for _, p := range profiles { - a.reportAgentMetrics(session, p) +func (a *atel) writePayload(w http.ResponseWriter, _ *http.Request) { + if !a.enabled { + httputils.SetJSONError(w, errors.New("agent-telemetry is not enabled. See https://docs.datadoghq.com/data_security/agent/?tab=datadogyaml#telemetry-collection for more info"), 400) + return } - err := a.sender.flushSession(session) + a.logComp.Info("Showing agent telemetry payload") + payload, err := a.GetAsJSON() if err != nil { - a.logComp.Errorf("failed to flush agent telemetry session: %s", err) + httputils.SetJSONError(w, a.logComp.Error(err.Error()), 500) return } + + w.Write(payload) } -// TODO: implement when CLI tool will be implemented func (a *atel) GetAsJSON() ([]byte, error) { - return nil, nil + session, err := a.loadPayloads(a.atelCfg.Profiles) + if err != nil { + return nil, fmt.Errorf("unable to load agent telemetry payload: %w", err) + } + payload := session.flush() + + jsonPayload, err := json.MarshalIndent(payload, "", " ") + if err != nil { + return nil, fmt.Errorf("unable to marshal agent telemetry payload: %w", err) + } + + jsonPayloadScrubbed, err := scrubber.ScrubJSONString(string(jsonPayload)) + if err != nil { + return nil, fmt.Errorf("unable to scrub agent telemetry payload: %w", err) + } + + return []byte(jsonPayloadScrubbed), nil } // start is called by FX when the application starts. diff --git a/comp/core/agenttelemetry/impl/agenttelemetry_test.go b/comp/core/agenttelemetry/impl/agenttelemetry_test.go index a1cdfe85409a9..7cd659a2a45f1 100644 --- a/comp/core/agenttelemetry/impl/agenttelemetry_test.go +++ b/comp/core/agenttelemetry/impl/agenttelemetry_test.go @@ -7,6 +7,7 @@ package agenttelemetryimpl import ( "context" + "encoding/json" "fmt" "io" "net/http" @@ -18,6 +19,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" + "github.com/stretchr/testify/require" "github.com/DataDog/datadog-agent/comp/core/config" log "github.com/DataDog/datadog-agent/comp/core/log/def" @@ -55,9 +57,8 @@ func (s *senderMock) startSession(_ context.Context) *senderSession { func (s *senderMock) flushSession(_ *senderSession) error { return nil } -func (s *senderMock) sendAgentMetricPayloads(_ *senderSession, metrics []*agentmetric) error { +func (s *senderMock) sendAgentMetricPayloads(_ *senderSession, metrics []*agentmetric) { s.sentMetrics = append(s.sentMetrics, metrics...) - return nil } // Runner mock (TODO: use use mock.Mock) @@ -87,7 +88,8 @@ func newRunnerMock() runner { return &runnerMock{} } -// utilities +// ------------------------------ +// Utility functions func convertYamlStrToMap(t *testing.T, cfgStr string) map[string]any { var c map[string]any err := yaml.Unmarshal([]byte(cfgStr), &c) @@ -196,6 +198,76 @@ func getCommonOverrideConfig(enabled bool, site string) map[string]any { } } +// This is a unit test function do not use it for actual code (at least yet) +// since it is not 100% full implementation of the unmarshalling +func (p *Payload) UnmarshalJSON(b []byte) (err error) { + var itfPayload map[string]interface{} + if err := json.Unmarshal(b, &itfPayload); err != nil { + return err + } + + requestType, ok := itfPayload["request_type"] + if !ok { + return fmt.Errorf("request_type not found") + } + if requestType.(string) == "agent-metrics" { + p.RequestType = requestType.(string) + p.APIVersion = itfPayload["request_type"].(string) + p.EventTime = int64(itfPayload["event_time"].(float64)) + p.DebugFlag = itfPayload["debug"].(bool) + + var metricsItfPayload map[string]interface{} + metricsItfPayload, ok = itfPayload["payload"].(map[string]interface{}) + if !ok { + return fmt.Errorf("payload not found") + } + var metricsItf map[string]interface{} + metricsItf, ok = metricsItfPayload["metrics"].(map[string]interface{}) + if !ok { + return fmt.Errorf("metrics not found") + } + + var metricsPayload AgentMetricsPayload + metricsPayload.Metrics = make(map[string]interface{}) + for k, v := range metricsItf { + if k == "agent_metadata" { + // Re(un)marshal the meatadata + var metadata AgentMetadataPayload + var metadataBytes []byte + if metadataBytes, err = json.Marshal(v); err != nil { + return err + } + if err = json.Unmarshal(metadataBytes, &metadata); err != nil { + return err + } + metricsPayload.Metrics[k] = metadata + } else { + // Re(un)marshal the metric + var metric MetricPayload + var metricBytes []byte + if metricBytes, err = json.Marshal(v); err != nil { + return err + } + if err = json.Unmarshal(metricBytes, &metric); err != nil { + return err + } + metricsPayload.Metrics[k] = metric + } + } + p.Payload = metricsPayload + return nil + } + + if requestType.(string) == "message-batch" { + return fmt.Errorf("message-batch request_type is not supported yet") + } + + return fmt.Errorf("request_type should be either agent-metrics or message-batch") +} + +// ------------------------------ +// Tests + func TestEnabled(t *testing.T) { o := getCommonOverrideConfig(true, "foo.bar") a := getTestAtel(t, nil, o, nil, nil, nil) @@ -250,10 +322,14 @@ func TestRun(t *testing.T) { a.start() - // default configuration has 2 job with 2 profiles (more configurations needs to be tested) - // will be improved in future by providing deterministic configuration + // Default configuration has 2 job. One with 3 profiles and another with 1 profile + // Profiles with the same schedule are lumped into the same job assert.Equal(t, 2, len(r.(*runnerMock).jobs)) - assert.Equal(t, 1, len(r.(*runnerMock).jobs[0].profiles)) + + // The order is not deterministic + profile0Len := len(r.(*runnerMock).jobs[0].profiles) + profile1Len := len(r.(*runnerMock).jobs[1].profiles) + assert.True(t, (profile0Len == 1 && profile1Len == 3) || (profile0Len == 3 && profile1Len == 1)) } func TestReportMetricBasic(t *testing.T) { @@ -265,7 +341,7 @@ func TestReportMetricBasic(t *testing.T) { c := newClientMock() r := newRunnerMock() a := getTestAtel(t, tel, o, nil, c, r) - assert.True(t, a.enabled) + require.True(t, a.enabled) // run the runner to trigger the telemetry report a.start() @@ -297,7 +373,7 @@ func TestNoTagSpecifiedAggregationCounter(t *testing.T) { r := newRunnerMock() o := convertYamlStrToMap(t, c) a := getTestAtel(t, tel, o, s, nil, r) - assert.True(t, a.enabled) + require.True(t, a.enabled) // run the runner to trigger the telemetry report a.start() @@ -337,7 +413,7 @@ func TestNoTagSpecifiedAggregationGauge(t *testing.T) { s := &senderMock{} r := newRunnerMock() a := getTestAtel(t, tel, o, s, nil, r) - assert.True(t, a.enabled) + require.True(t, a.enabled) // run the runner to trigger the telemetry report a.start() @@ -378,13 +454,15 @@ func TestNoTagSpecifiedAggregationHistogram(t *testing.T) { s := &senderMock{} r := newRunnerMock() a := getTestAtel(t, tel, o, s, nil, r) + require.True(t, a.enabled) // run the runner to trigger the telemetry report a.start() r.(*runnerMock).run() // 1 metric sent - assert.Equal(t, 1, len(s.sentMetrics)) + require.Equal(t, 1, len(s.sentMetrics)) + require.True(t, len(s.sentMetrics[0].metrics) > 0) // aggregated to 10 + 20 + 30 = 60 m := s.sentMetrics[0].metrics[0] @@ -420,24 +498,25 @@ func TestTagSpecifiedAggregationCounter(t *testing.T) { s := &senderMock{} r := newRunnerMock() a := getTestAtel(t, tel, o, s, nil, r) + require.True(t, a.enabled) // run the runner to trigger the telemetry report a.start() r.(*runnerMock).run() // 2 metric should be sent - assert.Equal(t, 1, len(s.sentMetrics)) - assert.Equal(t, 2, len(s.sentMetrics[0].metrics)) + require.Equal(t, 1, len(s.sentMetrics)) + require.Equal(t, 2, len(s.sentMetrics[0].metrics)) // order is not deterministic, use label key to identify the metrics metrics := makeStableMetricMap(s.sentMetrics[0].metrics) // aggregated - assert.Contains(t, metrics, "tag1:a1:") + require.Contains(t, metrics, "tag1:a1:") m1 := metrics["tag1:a1:"] assert.Equal(t, float64(30), m1.Counter.GetValue()) - assert.Contains(t, metrics, "tag1:a2:") + require.Contains(t, metrics, "tag1:a2:") m2 := metrics["tag1:a2:"] assert.Equal(t, float64(30), m2.Counter.GetValue()) } @@ -471,36 +550,199 @@ func TestTagAggregateTotalCounter(t *testing.T) { s := &senderMock{} r := newRunnerMock() a := getTestAtel(t, tel, o, s, nil, r) + require.True(t, a.enabled) // run the runner to trigger the telemetry report a.start() r.(*runnerMock).run() // 4 metric sent - assert.Equal(t, 1, len(s.sentMetrics)) - assert.Equal(t, 4, len(s.sentMetrics[0].metrics)) + require.Equal(t, 1, len(s.sentMetrics)) + require.Equal(t, 4, len(s.sentMetrics[0].metrics)) // order is not deterministic, use label key to identify the metrics metrics := makeStableMetricMap(s.sentMetrics[0].metrics) // aggregated - assert.Contains(t, metrics, "tag1:a1:") + require.Contains(t, metrics, "tag1:a1:") m1 := metrics["tag1:a1:"] assert.Equal(t, float64(30), m1.Counter.GetValue()) - assert.Contains(t, metrics, "tag1:a2:") + require.Contains(t, metrics, "tag1:a2:") m2 := metrics["tag1:a2:"] assert.Equal(t, float64(30), m2.Counter.GetValue()) - assert.Contains(t, metrics, "tag1:a3:") + require.Contains(t, metrics, "tag1:a3:") m3 := metrics["tag1:a3:"] assert.Equal(t, float64(150), m3.Counter.GetValue()) - assert.Contains(t, metrics, "total:6:") + require.Contains(t, metrics, "total:6:") m4 := metrics["total:6:"] assert.Equal(t, float64(210), m4.Counter.GetValue()) } +func TestTwoProfilesOnTheSameScheduleGenerateSinglePayload(t *testing.T) { + var c = ` + agent_telemetry: + enabled: true + profiles: + - name: foo + metric: + metrics: + - name: bar.bar + aggregate_tags: + - tag1 + - name: bar + metric: + metrics: + - name: foo.foo + aggregate_tags: + - tag1 + ` + // setup and initiate a tel + tel := makeTelMock(t) + counter1 := tel.NewCounter("bar", "bar", []string{"tag1", "tag2", "tag3"}, "") + counter1.AddWithTags(10, map[string]string{"tag1": "a1", "tag2": "b1", "tag3": "c1"}) + counter2 := tel.NewCounter("foo", "foo", []string{"tag1", "tag2", "tag3"}, "") + counter2.AddWithTags(20, map[string]string{"tag1": "a1", "tag2": "b1", "tag3": "c1"}) + + o := convertYamlStrToMap(t, c) + s := makeSenderImpl(t, c) + r := newRunnerMock() + a := getTestAtel(t, tel, o, s, nil, r) + require.True(t, a.enabled) + + // Get payload + payloadJSON, err := a.GetAsJSON() + assert.NoError(t, err) + var payload Payload + err = json.Unmarshal(payloadJSON, &payload) + require.NoError(t, err) + + // ----------------------- + // for 2 profiles there are 2 metrics, but 1 payload (test is currently payload schema dependent, improve in future) + // Single payload whcich has sub-payloads for each metric + // 2 metrics + metrics := payload.Payload.(AgentMetricsPayload).Metrics + assert.Contains(t, metrics, "bar.bar") + assert.Contains(t, metrics, "foo.foo") +} + +func TestOneProfileWithOneMetricMultipleContextsGenerateTwoPayloads(t *testing.T) { + var c = ` + agent_telemetry: + enabled: true + profiles: + - name: foo + metric: + metrics: + - name: bar.bar + aggregate_tags: + - tag1 + ` + // setup and initiate atel + tel := makeTelMock(t) + counter1 := tel.NewCounter("bar", "bar", []string{"tag1", "tag2", "tag3"}, "") + counter1.AddWithTags(10, map[string]string{"tag1": "a1", "tag2": "b1", "tag3": "c1"}) + counter1.AddWithTags(20, map[string]string{"tag1": "a2", "tag2": "b2", "tag3": "c2"}) + + o := convertYamlStrToMap(t, c) + s := makeSenderImpl(t, c) + r := newRunnerMock() + a := getTestAtel(t, tel, o, s, nil, r) + require.True(t, a.enabled) + + payloadJSON, err := a.GetAsJSON() + assert.NoError(t, err) + var payload map[string]interface{} + err = json.Unmarshal(payloadJSON, &payload) + require.NoError(t, err) + + // ----------------------- + // for 1 profiles there are 2 metrics in 1 payload (test is currently payload schema dependent, improve in future) + + // One payloads each has the same metric (different tags) + requestType, ok := payload["request_type"] + require.True(t, ok) + assert.Equal(t, "message-batch", requestType) + metricPayloads, ok := payload["payload"].([]interface{}) + require.True(t, ok) + + // --------- + // 2 metrics + // 1-st + payload1, ok := metricPayloads[0].(map[string]interface{}) + require.True(t, ok) + requestType1, ok := payload1["request_type"] + require.True(t, ok) + assert.Equal(t, "agent-metrics", requestType1) + metricsPayload1, ok := payload1["payload"].(map[string]interface{}) + require.True(t, ok) + metrics1, ok := metricsPayload1["metrics"].(map[string]interface{}) + require.True(t, ok) + _, ok11 := metrics1["bar.bar"] + _, ok12 := metrics1["foo.foo"] + assert.True(t, (ok11 && !ok12) || (!ok11 && ok12)) + + // 2-nd + payload2, ok := metricPayloads[1].(map[string]interface{}) + require.True(t, ok) + requestType2, ok := payload2["request_type"] + require.True(t, ok) + assert.Equal(t, "agent-metrics", requestType2) + metricsPayload2, ok := payload2["payload"].(map[string]interface{}) + require.True(t, ok) + metrics2, ok := metricsPayload2["metrics"].(map[string]interface{}) + require.True(t, ok) + _, ok21 := metrics2["bar.bar"] + _, ok22 := metrics2["foo.foo"] + assert.True(t, (ok21 && !ok22) || (!ok21 && ok22)) + +} + +func TestOneProfileWithTwoMetricGenerateSinglePayloads(t *testing.T) { + var c = ` + agent_telemetry: + enabled: true + profiles: + - name: foobar + metric: + metrics: + - name: bar.bar + aggregate_tags: + - tag1 + - name: foo.foo + aggregate_tags: + - tag1 + ` + // setup and initiate atel + tel := makeTelMock(t) + counter1 := tel.NewCounter("bar", "bar", []string{"tag1", "tag2", "tag3"}, "") + counter1.AddWithTags(10, map[string]string{"tag1": "a1", "tag2": "b1", "tag3": "c1"}) + counter2 := tel.NewCounter("foo", "foo", []string{"tag1", "tag2", "tag3"}, "") + counter2.AddWithTags(20, map[string]string{"tag1": "a1", "tag2": "b1", "tag3": "c1"}) + + o := convertYamlStrToMap(t, c) + s := makeSenderImpl(t, c) + r := newRunnerMock() + a := getTestAtel(t, tel, o, s, nil, r) + require.True(t, a.enabled) + + // Get payload + payloadJSON, err := a.GetAsJSON() + assert.NoError(t, err) + var payload Payload + err = json.Unmarshal(payloadJSON, &payload) + require.NoError(t, err) + + // ----------------------- + // for 2 profiles there are2 metrics, but 1 payload (test is currently payload schema dependent, improve in future) + // 2 metrics + metrics := payload.Payload.(AgentMetricsPayload).Metrics + assert.Contains(t, metrics, "bar.bar") + assert.Contains(t, metrics, "foo.foo") +} + func TestSenderConfigNoConfig(t *testing.T) { c := ` agent_telemetry: @@ -634,3 +876,61 @@ func TestSenderConfigDDUrlWithEmptyAdditionalPoint(t *testing.T) { url := buildURL(sndr.(*senderImpl).endpoints.Endpoints[0]) assert.Equal(t, "https://instrumentation-telemetry-intake.us5.datadoghq.com./api/v2/apmtelemetry", url) } + +func TestGetAsJSONScrub(t *testing.T) { + var c = ` + agent_telemetry: + enabled: true + profiles: + - name: xxx + metric: + metrics: + - name: foo.bar_auth + aggregate_tags: + - password + - name: foo.bar_key + aggregate_tags: + - api_key + - name: foo.bar_text + aggregate_tags: + - text + ` + + // setup and initiate atel + tel := makeTelMock(t) + counter1 := tel.NewCounter("foo", "bar_auth", []string{"password"}, "") + counter2 := tel.NewCounter("foo", "bar_key", []string{"api_key"}, "") + counter3 := tel.NewCounter("foo", "bar_text", []string{"text"}, "") + + // Default scrubber scrubs at least ... + // api key, bearer key, app key, url, password, snmp, certificate + counter1.AddWithTags(10, map[string]string{"password": "1234567890"}) + counter2.AddWithTags(11, map[string]string{"api_key": "1234567890"}) + counter3.AddWithTags(11, map[string]string{"text": "test"}) + + o := convertYamlStrToMap(t, c) + s := makeSenderImpl(t, c) + r := newRunnerMock() + a := getTestAtel(t, tel, o, s, nil, r) + require.True(t, a.enabled) + + // Get payload + payloadJSON, err := a.GetAsJSON() + assert.NoError(t, err) + var payload Payload + err = json.Unmarshal(payloadJSON, &payload) + require.NoError(t, err) + + // Check the scrubbing + metrics := payload.Payload.(AgentMetricsPayload).Metrics + + metric, ok := metrics["foo.bar_auth"] + require.True(t, ok) + assert.Equal(t, "********", metric.(MetricPayload).Tags["password"]) + metric, ok = metrics["foo.bar_key"] + require.True(t, ok) + assert.Equal(t, "********", metric.(MetricPayload).Tags["api_key"]) + metric, ok = metrics["foo.bar_text"] + require.True(t, ok) + assert.Equal(t, "test", metric.(MetricPayload).Tags["text"]) +} diff --git a/comp/core/agenttelemetry/impl/config.go b/comp/core/agenttelemetry/impl/config.go index 39bd822dd9f28..29c7df96ff515 100644 --- a/comp/core/agenttelemetry/impl/config.go +++ b/comp/core/agenttelemetry/impl/config.go @@ -22,8 +22,8 @@ const ( // Config is the top-level config for agent telemetry type Config struct { - Enabled bool `yaml:"enabled"` - Profiles []Profile `yaml:"profiles"` + Enabled bool `yaml:"enabled"` + Profiles []*Profile `yaml:"profiles"` // compiled schedule map[Schedule][]*Profile @@ -127,7 +127,7 @@ type Schedule struct { // configured payloads willbe generated and emitted on the following schedule (the details // are described in the comments below. // -// (legend - 300s=5m, 900s=15m, 1800s=30m, 3600s=1h, 86400s=1d) +// (legend - 300s=5m, 900s=15m, 1800s=30m, 3600s=1h, 14400s=4h, 86400s=1d) // // schedule: // start_after: 30 @@ -155,7 +155,7 @@ type Schedule struct { // Note: If "aggregate_tags" are not specified, metric will be aggregated without any tags. var defaultProfiles = ` profiles: - - name: core-metrics + - name: checks metric: exclude: zero_metric: true @@ -171,37 +171,53 @@ var defaultProfiles = ` aggregate_tags: - check_name - name: pymem.inuse - - name: pymem.alloc + schedule: + start_after: 30 + iterations: 0 + period: 900 + - name: logs-and-metrics + metric: + exclude: + zero_metric: true + metrics: + - name: dogstatsd.udp_packets_bytes + - name: dogstatsd.uds_packets_bytes + - name: logs.bytes_missed + - name: logs.bytes_sent - name: logs.decoded - - name: logs.processed - - name: logs.sent - name: logs.dropped - - name: logs.sender_latency - - name: logs.bytes_sent - name: logs.encoded_bytes_sent - - name: logs.bytes_missed + - name: logs.processed + - name: logs.sent - name: point.sent - name: point.dropped + - name: transactions.input_count + - name: transactions.requeued + - name: transactions.retries + schedule: + start_after: 30 + iterations: 0 + period: 900 + - name: database + metric: + exclude: + zero_metric: true + metrics: - name: oracle.activity_samples_count - name: oracle.activity_latency - name: oracle.statement_metrics - name: oracle.statement_plan_errors - - name: postgres.schema_tables_elapsed_ms - - name: postgres.schema_tables_count + - name: postgres.collect_activity_snapshot_ms - name: postgres.collect_relations_autodiscovery_ms + - name: postgres.collect_statement_samples_ms + - name: postgres.collect_statement_samples_count - name: postgres.collect_stat_autodiscovery_ms - - name: postgres.get_new_pg_stat_activity_ms - - name: postgres.get_new_pg_stat_activity_count - name: postgres.get_active_connections_ms - name: postgres.get_active_connections_count - - name: postgres.collect_activity_snapshot_ms - - name: postgres.collect_statement_samples_ms - - name: postgres.collect_statement_samples_count - - name: transactions.input_count - - name: transactions.requeued - - name: transactions.retries - - name: dogstatsd.udp_packets_bytes - - name: dogstatsd.uds_packets_bytes + - name: postgres.get_new_pg_stat_activity_count + - name: postgres.get_new_pg_stat_activity_ms + - name: postgres.schema_tables_elapsed_ms + - name: postgres.schema_tables_count schedule: start_after: 30 iterations: 0 @@ -337,7 +353,7 @@ func compileSchedules(cfg *Config) error { cfg.schedule = make(map[Schedule][]*Profile) for i := 0; i < len(cfg.Profiles); i++ { - p := &cfg.Profiles[i] + p := cfg.Profiles[i] // Setup default schedule if it is not specified partially or at all if p.Schedule == nil { @@ -374,7 +390,7 @@ func compileSchedules(cfg *Config) error { // Compile agent telemetry config func compileConfig(cfg *Config) error { for i := 0; i < len(cfg.Profiles); i++ { - err := compileProfile(&cfg.Profiles[i]) + err := compileProfile(cfg.Profiles[i]) if err != nil { return err } diff --git a/comp/core/agenttelemetry/impl/sender.go b/comp/core/agenttelemetry/impl/sender.go index eaf1125d6a2e7..d715863f862e4 100644 --- a/comp/core/agenttelemetry/impl/sender.go +++ b/comp/core/agenttelemetry/impl/sender.go @@ -23,6 +23,7 @@ import ( logconfig "github.com/DataDog/datadog-agent/comp/logs/agent/config" metadatautils "github.com/DataDog/datadog-agent/comp/metadata/host/hostimpl/utils" httputils "github.com/DataDog/datadog-agent/pkg/util/http" + "github.com/DataDog/datadog-agent/pkg/util/scrubber" "github.com/DataDog/datadog-agent/pkg/version" ) @@ -35,7 +36,6 @@ const ( httpClientResetInterval = 5 * time.Minute httpClientTimeout = 10 * time.Second - maximumNumberOfPayloads = 50 ) // --------------- @@ -43,7 +43,7 @@ const ( type sender interface { startSession(cancelCtx context.Context) *senderSession flushSession(ss *senderSession) error - sendAgentMetricPayloads(ss *senderSession, metrics []*agentmetric) error + sendAgentMetricPayloads(ss *senderSession, metrics []*agentmetric) } type client interface { @@ -103,10 +103,11 @@ type payloadInfo struct { payload interface{} } -// senderSession is also use to batch payloads +// senderSession store and seriaizes one or more payloads type senderSession struct { - cancelCtx context.Context - payloads []payloadInfo + cancelCtx context.Context + payloadTemplate Payload + metricPayloads []*AgentMetricsPayload } // BatchPayloadWrapper exported so it can be turned into json @@ -268,53 +269,65 @@ func (s *senderImpl) addMetricPayload( func (s *senderImpl) startSession(cancelCtx context.Context) *senderSession { return &senderSession{ - cancelCtx: cancelCtx, + cancelCtx: cancelCtx, + payloadTemplate: s.payloadTemplate, } } -func (s *senderImpl) flushSession(ss *senderSession) error { - // There is nothing to do if there are no payloads - if len(ss.payloads) == 0 { - return nil - } - - s.logComp.Infof("Flushing Agent Telemetery session with %d payloads", len(ss.payloads)) - - // Defer cleanup of payloads. Even if there is an error, we want to cleanup - // but in future we may want to add retry logic. +func (ss *senderSession) flush() Payload { defer func() { - ss.payloads = nil + // Clear the payloads + ss.metricPayloads = nil }() // Create a payload with a single message or batch of messages - payload := s.payloadTemplate + payload := ss.payloadTemplate payload.EventTime = time.Now().Unix() - if len(ss.payloads) == 1 { + if len(ss.metricPayloads) == 1 { // Single payload will be sent directly using the request type of the payload - payload.RequestType = ss.payloads[0].requestType - payload.Payload = ss.payloads[0].payload - } else { - // Batch up multiple payloads into single "batch" payload type - payload.RequestType = "message-batch" - payloadWrappers := make([]BatchPayloadWrapper, 0) - for _, p := range ss.payloads { - payloadWrappers = append(payloadWrappers, - BatchPayloadWrapper{ - RequestType: p.requestType, - Payload: p.payload, - }) - } - payload.Payload = payloadWrappers + mp := ss.metricPayloads[0] + payload.RequestType = "agent-metrics" + payload.Payload = payloadInfo{"agent-metrics", mp}.payload + return payload + } + + // Batch up multiple payloads into single "batch" payload type + batch := make([]BatchPayloadWrapper, 0) + for _, mp := range ss.metricPayloads { + batch = append(batch, + BatchPayloadWrapper{ + RequestType: "agent-metrics", + Payload: payloadInfo{"agent-metrics", mp}.payload, + }) + } + payload.RequestType = "message-batch" + payload.Payload = batch + return payload +} + +func (s *senderImpl) flushSession(ss *senderSession) error { + // There is nothing to do if there are no payloads + if len(ss.metricPayloads) == 0 { + return nil } - // Marshal the payload to a byte array - reqBody, err := json.Marshal(payload) + s.logComp.Infof("Flushing Agent Telemetery session with %d payloads", len(ss.metricPayloads)) + + payloads := ss.flush() + payloadJSON, err := json.Marshal(payloads) + if err != nil { + return fmt.Errorf("failed to marshal agent telemetry payload: %w", err) + } + + reqBody, err := scrubber.ScrubBytes(payloadJSON) if err != nil { - return err + return fmt.Errorf("failed to scrubl agent telemetry payload: %w", err) } // Send the payload to all endpoints var errs error + reqType := payloads.RequestType + bodyLen := strconv.Itoa(len(reqBody)) for _, ep := range s.endpoints.Endpoints { url := buildURL(ep) req, err := http.NewRequest("POST", url, bytes.NewReader(reqBody)) @@ -322,7 +335,7 @@ func (s *senderImpl) flushSession(ss *senderSession) error { errs = errors.Join(errs, err) continue } - s.addHeaders(req, payload.RequestType, ep.GetAPIKey(), strconv.Itoa(len(reqBody))) + s.addHeaders(req, reqType, ep.GetAPIKey(), bodyLen) resp, err := s.client.Do(req.WithContext(ss.cancelCtx)) if err != nil { errs = errors.Join(errs, err) @@ -345,12 +358,7 @@ func (s *senderImpl) flushSession(ss *senderSession) error { return errs } -func (s *senderImpl) sendAgentMetricPayloads(ss *senderSession, metrics []*agentmetric) error { - // Are there any metrics - if len(metrics) == 0 { - return nil - } - +func (s *senderImpl) sendAgentMetricPayloads(ss *senderSession, metrics []*agentmetric) { // Create one or more metric payloads batching different metrics into a single payload, // but the same metric (with multiple tag sets) into different payloads. This is needed // to avoid creating JSON payloads which contains arrays (otherwise we could not @@ -360,44 +368,21 @@ func (s *senderImpl) sendAgentMetricPayloads(ss *senderSession, metrics []*agent // message/payload contains multiples metrics for a single index of tag set. Essentially // the number of message/payloads is equal to the maximum number of tag sets for a single // metric. - var payloads []*AgentMetricsPayload for _, am := range metrics { for idx, m := range am.metrics { var payload *AgentMetricsPayload // reuse or add a payload - if idx+1 > len(payloads) { + if idx+1 > len(ss.metricPayloads) { newPayload := s.agentMetricsPayloadTemplate newPayload.Metrics = make(map[string]interface{}, 0) newPayload.Metrics["agent_metadata"] = s.metadataPayloadTemplate - payloads = append(payloads, &newPayload) + ss.metricPayloads = append(ss.metricPayloads, &newPayload) } - payload = payloads[idx] + payload = ss.metricPayloads[idx] s.addMetricPayload(am.name, am.family, m, payload) } } - - // We will batch multiples metrics payloads into single "batch" payload type - // but for now send it one by one - for _, payload := range payloads { - if err := s.sendPayload(ss, "agent-metrics", payload); err != nil { - return err - } - } - - return nil -} - -func (s *senderImpl) sendPayload(ss *senderSession, requestType string, payload interface{}) error { - // Add payload to session - ss.payloads = append(ss.payloads, payloadInfo{requestType, payload}) - - // Flush session if it is full - if len(ss.payloads) >= maximumNumberOfPayloads { - return s.flushSession(ss) - } - - return nil } func (s *senderImpl) addHeaders(req *http.Request, requesttype, apikey, bodylen string) { diff --git a/releasenotes/notes/agent-telemetry-cli-cmd-926f814513a02d74.yaml b/releasenotes/notes/agent-telemetry-cli-cmd-926f814513a02d74.yaml new file mode 100644 index 0000000000000..6f48d478937c1 --- /dev/null +++ b/releasenotes/notes/agent-telemetry-cli-cmd-926f814513a02d74.yaml @@ -0,0 +1,14 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +enhancements: + - | + Add ability to show Agent telemetry payloads to be sent by Agent + if the telemetry is enabled. One can run it with the following command: + `agent diagnose show-metadata agent-telemetry`. See + `docs ` for more details. \ No newline at end of file From 2706272163c3131745d847dd1f534de245542c7d Mon Sep 17 00:00:00 2001 From: Brian Floersch Date: Mon, 25 Nov 2024 11:18:26 -0500 Subject: [PATCH 025/439] Rework logs pipeline utilization metrics to improve performance. (#31287) Co-authored-by: remeh --- cmd/serverless/dependencies_linux_amd64.txt | 1 - cmd/serverless/dependencies_linux_arm64.txt | 1 - comp/otelcol/ddflareextension/impl/go.mod | 1 - comp/otelcol/logsagentpipeline/go.mod | 1 - .../logsagentpipelineimpl/go.mod | 1 - .../exporter/datadogexporter/go.mod | 1 - pkg/logs/client/go.mod | 1 - pkg/logs/client/http/destination.go | 1 - pkg/logs/metrics/go.mod | 3 +- pkg/logs/metrics/utilization_monitor.go | 96 ++++++++----------- pkg/logs/metrics/utilization_monitor_test.go | 48 ++++++++-- pkg/logs/pipeline/go.mod | 1 - pkg/logs/processor/go.mod | 1 - pkg/logs/processor/processor.go | 1 - pkg/logs/sender/batch_strategy.go | 1 - pkg/logs/sender/go.mod | 1 - pkg/logs/sender/sender.go | 1 - test/otel/go.mod | 1 - 18 files changed, 80 insertions(+), 82 deletions(-) diff --git a/cmd/serverless/dependencies_linux_amd64.txt b/cmd/serverless/dependencies_linux_amd64.txt index 4bcca62d0f61c..68065a8d5744c 100644 --- a/cmd/serverless/dependencies_linux_amd64.txt +++ b/cmd/serverless/dependencies_linux_amd64.txt @@ -315,7 +315,6 @@ github.com/DataDog/datadog-agent/pkg/util/sync github.com/DataDog/datadog-agent/pkg/util/system github.com/DataDog/datadog-agent/pkg/util/system/socket github.com/DataDog/datadog-agent/pkg/util/tmplvar -github.com/DataDog/datadog-agent/pkg/util/utilizationtracker github.com/DataDog/datadog-agent/pkg/util/uuid github.com/DataDog/datadog-agent/pkg/version github.com/DataDog/datadog-api-client-go/v2 diff --git a/cmd/serverless/dependencies_linux_arm64.txt b/cmd/serverless/dependencies_linux_arm64.txt index edda30b758215..a088a7cef0b9d 100644 --- a/cmd/serverless/dependencies_linux_arm64.txt +++ b/cmd/serverless/dependencies_linux_arm64.txt @@ -315,7 +315,6 @@ github.com/DataDog/datadog-agent/pkg/util/sync github.com/DataDog/datadog-agent/pkg/util/system github.com/DataDog/datadog-agent/pkg/util/system/socket github.com/DataDog/datadog-agent/pkg/util/tmplvar -github.com/DataDog/datadog-agent/pkg/util/utilizationtracker github.com/DataDog/datadog-agent/pkg/util/uuid github.com/DataDog/datadog-agent/pkg/version github.com/DataDog/datadog-api-client-go/v2 diff --git a/comp/otelcol/ddflareextension/impl/go.mod b/comp/otelcol/ddflareextension/impl/go.mod index 8051c364fbdf4..930c7cacfed08 100644 --- a/comp/otelcol/ddflareextension/impl/go.mod +++ b/comp/otelcol/ddflareextension/impl/go.mod @@ -257,7 +257,6 @@ require ( github.com/DataDog/datadog-agent/pkg/util/statstracker v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/utilizationtracker v0.0.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/datadog-api-client-go/v2 v2.31.0 // indirect github.com/DataDog/datadog-go/v5 v5.5.0 // indirect diff --git a/comp/otelcol/logsagentpipeline/go.mod b/comp/otelcol/logsagentpipeline/go.mod index 7fe6d0865adf0..a261d2ea98810 100644 --- a/comp/otelcol/logsagentpipeline/go.mod +++ b/comp/otelcol/logsagentpipeline/go.mod @@ -104,7 +104,6 @@ require ( github.com/DataDog/datadog-agent/pkg/util/statstracker v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/utilizationtracker v0.0.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod index ee142226df975..f3e0040fcd070 100644 --- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod +++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod @@ -119,7 +119,6 @@ require ( github.com/DataDog/datadog-agent/pkg/util/statstracker v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/utilizationtracker v0.0.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod index 4b4a4f6f694cf..61493384ded09 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod @@ -195,7 +195,6 @@ require ( github.com/DataDog/datadog-agent/pkg/util/statstracker v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/utilizationtracker v0.0.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/version v0.57.1 // indirect github.com/DataDog/datadog-api-client-go/v2 v2.26.0 // indirect diff --git a/pkg/logs/client/go.mod b/pkg/logs/client/go.mod index 2a724520207ce..f5cb07a952639 100644 --- a/pkg/logs/client/go.mod +++ b/pkg/logs/client/go.mod @@ -88,7 +88,6 @@ require ( github.com/DataDog/datadog-agent/pkg/util/statstracker v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/utilizationtracker v0.0.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect diff --git a/pkg/logs/client/http/destination.go b/pkg/logs/client/http/destination.go index 7553b7e91d913..a307a64cc49b2 100644 --- a/pkg/logs/client/http/destination.go +++ b/pkg/logs/client/http/destination.go @@ -217,7 +217,6 @@ func (d *Destination) run(input chan *message.Payload, output chan *message.Payl d.wg.Wait() d.updateRetryState(nil, isRetrying) - d.utilization.Cancel() stopChan <- struct{}{} } diff --git a/pkg/logs/metrics/go.mod b/pkg/logs/metrics/go.mod index b33f05e60bac0..d7a851d653b61 100644 --- a/pkg/logs/metrics/go.mod +++ b/pkg/logs/metrics/go.mod @@ -13,7 +13,7 @@ replace ( require ( github.com/DataDog/datadog-agent/pkg/telemetry v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/utilizationtracker v0.0.0 + github.com/benbjohnson/clock v1.3.5 github.com/stretchr/testify v1.9.0 ) @@ -22,7 +22,6 @@ require ( github.com/DataDog/datadog-agent/comp/def v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.55.0 // indirect - github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/pkg/logs/metrics/utilization_monitor.go b/pkg/logs/metrics/utilization_monitor.go index 704681d784f10..6cf460e773435 100644 --- a/pkg/logs/metrics/utilization_monitor.go +++ b/pkg/logs/metrics/utilization_monitor.go @@ -8,14 +8,13 @@ package metrics import ( "time" - "github.com/DataDog/datadog-agent/pkg/util/utilizationtracker" + "github.com/benbjohnson/clock" ) // UtilizationMonitor is an interface for monitoring the utilization of a component. type UtilizationMonitor interface { Start() Stop() - Cancel() } // NoopUtilizationMonitor is a no-op implementation of UtilizationMonitor. @@ -27,33 +26,38 @@ func (n *NoopUtilizationMonitor) Start() {} // Stop does nothing. func (n *NoopUtilizationMonitor) Stop() {} -// Cancel does nothing. -func (n *NoopUtilizationMonitor) Cancel() {} - // TelemetryUtilizationMonitor is a UtilizationMonitor that reports utilization metrics as telemetry. type TelemetryUtilizationMonitor struct { - name string - instance string - started bool - ut *utilizationtracker.UtilizationTracker - cancel func() + inUse time.Duration + idle time.Duration + startIdle time.Time + startInUse time.Time + lastSample time.Time + sampleRate time.Duration + avg float64 + name string + instance string + started bool + clock clock.Clock } // NewTelemetryUtilizationMonitor creates a new TelemetryUtilizationMonitor. func NewTelemetryUtilizationMonitor(name, instance string) *TelemetryUtilizationMonitor { + return newTelemetryUtilizationMonitorWithSampleRateAndClock(name, instance, 1*time.Second, clock.New()) +} - utilizationTracker := utilizationtracker.NewUtilizationTracker(1*time.Second, ewmaAlpha) - cancel := startTrackerTicker(utilizationTracker, 1*time.Second) - - t := &TelemetryUtilizationMonitor{ - name: name, - instance: instance, - started: false, - ut: utilizationTracker, - cancel: cancel, +func newTelemetryUtilizationMonitorWithSampleRateAndClock(name, instance string, sampleRate time.Duration, clock clock.Clock) *TelemetryUtilizationMonitor { + return &TelemetryUtilizationMonitor{ + name: name, + instance: instance, + startIdle: clock.Now(), + startInUse: clock.Now(), + lastSample: clock.Now(), + sampleRate: sampleRate, + avg: 0, + started: false, + clock: clock, } - t.startUtilizationUpdater() - return t } // Start tracks a start event in the utilization tracker. @@ -62,7 +66,9 @@ func (u *TelemetryUtilizationMonitor) Start() { return } u.started = true - u.ut.Started() + u.idle += u.clock.Since(u.startIdle) + u.startInUse = u.clock.Now() + u.reportIfNeeded() } // Stop tracks a finish event in the utilization tracker. @@ -71,43 +77,17 @@ func (u *TelemetryUtilizationMonitor) Stop() { return } u.started = false - u.ut.Finished() -} - -// Cancel stops the monitor. -func (u *TelemetryUtilizationMonitor) Cancel() { - u.cancel() - u.ut.Stop() + u.inUse += u.clock.Since(u.startInUse) + u.startIdle = u.clock.Now() + u.reportIfNeeded() } -func startTrackerTicker(ut *utilizationtracker.UtilizationTracker, interval time.Duration) func() { - ticker := time.NewTicker(interval) - cancel := make(chan struct{}, 1) - done := make(chan struct{}) - go func() { - defer ticker.Stop() - defer close(done) - for { - select { - case <-ticker.C: - ut.Tick() - case <-cancel: - return - } - } - }() - - return func() { - cancel <- struct{}{} - <-done // make sure Tick will not be called after we return. +func (u *TelemetryUtilizationMonitor) reportIfNeeded() { + if u.clock.Since(u.lastSample) >= u.sampleRate { + u.avg = ewma(float64(u.inUse)/float64(u.idle+u.inUse), u.avg) + TlmUtilizationRatio.Set(u.avg, u.name, u.instance) + u.idle = 0 + u.inUse = 0 + u.lastSample = u.clock.Now() } } - -func (u *TelemetryUtilizationMonitor) startUtilizationUpdater() { - TlmUtilizationRatio.Set(0, u.name, u.instance) - go func() { - for value := range u.ut.Output { - TlmUtilizationRatio.Set(value, u.name, u.instance) - } - }() -} diff --git a/pkg/logs/metrics/utilization_monitor_test.go b/pkg/logs/metrics/utilization_monitor_test.go index c549cfaaab55a..f1418614822d0 100644 --- a/pkg/logs/metrics/utilization_monitor_test.go +++ b/pkg/logs/metrics/utilization_monitor_test.go @@ -7,13 +7,47 @@ package metrics import ( "testing" + "time" + + "github.com/benbjohnson/clock" + "github.com/stretchr/testify/require" ) -func TestUtilizationMonitorLifecycle(_ *testing.T) { - // The core logic of the UtilizationMonitor is tested in the utilizationtracker package. - // This test just ensures the lifecycle methods don't block. - um := NewTelemetryUtilizationMonitor("", "") - um.Start() - um.Stop() - um.Cancel() +func TestUtilizationMonitorLifecycle(t *testing.T) { + clock := clock.NewMock() + um := newTelemetryUtilizationMonitorWithSampleRateAndClock("name", "instance", 2*time.Second, clock) + + // Converge on 50% utilization + for i := 0; i < 100; i++ { + um.Start() + clock.Add(1 * time.Second) + + um.Stop() + clock.Add(1 * time.Second) + } + + require.InDelta(t, 0.5, um.avg, 0.01) + + // Converge on 100% utilization + for i := 0; i < 100; i++ { + um.Start() + clock.Add(1 * time.Second) + + um.Stop() + clock.Add(1 * time.Millisecond) + } + + require.InDelta(t, 0.99, um.avg, 0.01) + + // Converge on 0% utilization + for i := 0; i < 200; i++ { + um.Start() + clock.Add(1 * time.Millisecond) + + um.Stop() + clock.Add(1 * time.Second) + } + + require.InDelta(t, 0.0, um.avg, 0.01) + } diff --git a/pkg/logs/pipeline/go.mod b/pkg/logs/pipeline/go.mod index 1f891bb34d799..9c57c8e1ced62 100644 --- a/pkg/logs/pipeline/go.mod +++ b/pkg/logs/pipeline/go.mod @@ -104,7 +104,6 @@ require ( github.com/DataDog/datadog-agent/pkg/util/statstracker v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/utilizationtracker v0.0.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect diff --git a/pkg/logs/processor/go.mod b/pkg/logs/processor/go.mod index 8893206f0a550..0730014d056f8 100644 --- a/pkg/logs/processor/go.mod +++ b/pkg/logs/processor/go.mod @@ -84,7 +84,6 @@ require ( github.com/DataDog/datadog-agent/pkg/util/statstracker v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/utilizationtracker v0.0.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect diff --git a/pkg/logs/processor/processor.go b/pkg/logs/processor/processor.go index 186b022fc0572..f4fd7649e074e 100644 --- a/pkg/logs/processor/processor.go +++ b/pkg/logs/processor/processor.go @@ -128,7 +128,6 @@ func (p *Processor) Flush(ctx context.Context) { func (p *Processor) run() { defer func() { p.done <- struct{}{} - p.utilization.Cancel() }() for { diff --git a/pkg/logs/sender/batch_strategy.go b/pkg/logs/sender/batch_strategy.go index cfb2ef8655d82..47ccbaf86009b 100644 --- a/pkg/logs/sender/batch_strategy.go +++ b/pkg/logs/sender/batch_strategy.go @@ -107,7 +107,6 @@ func (s *batchStrategy) Start() { defer func() { s.flushBuffer(s.outputChan) flushTicker.Stop() - s.utilization.Cancel() close(s.stopChan) }() for { diff --git a/pkg/logs/sender/go.mod b/pkg/logs/sender/go.mod index f3b64ee87a320..7be87afc0198e 100644 --- a/pkg/logs/sender/go.mod +++ b/pkg/logs/sender/go.mod @@ -88,7 +88,6 @@ require ( github.com/DataDog/datadog-agent/pkg/util/statstracker v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/utilizationtracker v0.0.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/viper v1.13.5 // indirect diff --git a/pkg/logs/sender/sender.go b/pkg/logs/sender/sender.go index 48e9c6b22d936..51ec837383db4 100644 --- a/pkg/logs/sender/sender.go +++ b/pkg/logs/sender/sender.go @@ -152,7 +152,6 @@ func (s *Sender) run() { destSender.Stop() } close(sink) - s.utilization.Cancel() s.done <- struct{}{} } diff --git a/test/otel/go.mod b/test/otel/go.mod index d19f6753c7930..cdace6a7f240a 100644 --- a/test/otel/go.mod +++ b/test/otel/go.mod @@ -171,7 +171,6 @@ require ( github.com/DataDog/datadog-agent/pkg/util/statstracker v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/utilizationtracker v0.0.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/version v0.57.1 // indirect github.com/DataDog/datadog-api-client-go/v2 v2.26.0 // indirect From 499fc907d381152206a45e68ce54d466622d06ff Mon Sep 17 00:00:00 2001 From: Stuart Geipel Date: Mon, 25 Nov 2024 11:57:14 -0500 Subject: [PATCH 026/439] [ebpfless] Refactor TCP Seq logic to include sequence bump from SYN and FIN (#31382) --- .../connection/ebpfless/tcp_processor.go | 63 +++++++++++++------ .../connection/ebpfless/tcp_processor_test.go | 4 +- .../tracer/connection/ebpfless/tcp_utils.go | 7 +++ pkg/network/tracer/tracer_test.go | 4 +- 4 files changed, 55 insertions(+), 23 deletions(-) diff --git a/pkg/network/tracer/connection/ebpfless/tcp_processor.go b/pkg/network/tracer/connection/ebpfless/tcp_processor.go index 6bb89638193ef..009e183e409be 100644 --- a/pkg/network/tracer/connection/ebpfless/tcp_processor.go +++ b/pkg/network/tracer/connection/ebpfless/tcp_processor.go @@ -61,6 +61,35 @@ func NewTCPProcessor() *TCPProcessor { //nolint:revive // TODO } } +// calcNextSeq returns the seq "after" this segment, aka, what the ACK will be once this segment is received +func calcNextSeq(tcp *layers.TCP, payloadLen uint16) uint32 { + nextSeq := tcp.Seq + uint32(payloadLen) + if tcp.SYN || tcp.FIN { + nextSeq++ + } + return nextSeq +} + +func checkInvalidTCP(tcp *layers.TCP) bool { + noFlagsCombo := !tcp.SYN && !tcp.FIN && !tcp.ACK && !tcp.RST + if noFlagsCombo { + // no flags at all (I think this can happen for expanding the TCP window sometimes?) + statsTelemetry.missingTCPFlags.Inc() + return true + } else if tcp.SYN && tcp.FIN { + statsTelemetry.tcpSynAndFin.Inc() + return true + } else if tcp.RST && tcp.SYN { + statsTelemetry.tcpRstAndSyn.Inc() + return true + } else if tcp.RST && tcp.FIN { + statsTelemetry.tcpRstAndFin.Inc() + return true + } + + return false +} + func (t *TCPProcessor) updateSynFlag(conn *network.ConnectionStats, st *connectionState, pktType uint8, tcp *layers.TCP, payloadLen uint16) { //nolint:revive // TODO if tcp.RST { return @@ -85,14 +114,14 @@ func (t *TCPProcessor) updateSynFlag(conn *network.ConnectionStats, st *connecti // updateTcpStats is designed to mirror the stat tracking in the windows driver's handleFlowProtocolTcp // https://github.com/DataDog/datadog-windows-filter/blob/d7560d83eb627117521d631a4c05cd654a01987e/ddfilter/flow/flow_tcp.c#L91 func (t *TCPProcessor) updateTcpStats(conn *network.ConnectionStats, st *connectionState, pktType uint8, tcp *layers.TCP, payloadLen uint16) { //nolint:revive // TODO - payloadSeq := tcp.Seq + uint32(payloadLen) + nextSeq := calcNextSeq(tcp, payloadLen) if pktType == unix.PACKET_OUTGOING { conn.Monotonic.SentPackets++ - if !st.hasSentPacket || isSeqBefore(st.maxSeqSent, payloadSeq) { + if !st.hasSentPacket || isSeqBefore(st.maxSeqSent, nextSeq) { st.hasSentPacket = true conn.Monotonic.SentBytes += uint64(payloadLen) - st.maxSeqSent = payloadSeq + st.maxSeqSent = nextSeq } ackOutdated := !st.hasLocalAck || isSeqBefore(st.lastLocalAck, tcp.Ack) @@ -100,9 +129,9 @@ func (t *TCPProcessor) updateTcpStats(conn *network.ConnectionStats, st *connect // wait until data comes in via SynStateAcked if st.hasLocalAck && st.remoteSynState == SynStateAcked { ackDiff := tcp.Ack - st.lastLocalAck - // if this is ack'ing a fin packet, there is an extra sequence number to cancel out - isFinAck := st.hasRemoteFin && tcp.Ack == st.remoteFinSeq+1 + isFinAck := st.hasRemoteFin && tcp.Ack == st.remoteFinSeq if isFinAck { + // if this is ack'ing a fin packet, there is an extra sequence number to cancel out ackDiff-- } conn.Monotonic.RecvBytes += uint64(ackDiff) @@ -123,21 +152,21 @@ func (t *TCPProcessor) updateTcpStats(conn *network.ConnectionStats, st *connect } func (t *TCPProcessor) updateFinFlag(conn *network.ConnectionStats, st *connectionState, pktType uint8, tcp *layers.TCP, payloadLen uint16) { - payloadSeq := tcp.Seq + uint32(payloadLen) + nextSeq := calcNextSeq(tcp, payloadLen) // update FIN sequence numbers if tcp.FIN { if pktType == unix.PACKET_OUTGOING { st.hasLocalFin = true - st.localFinSeq = payloadSeq + st.localFinSeq = nextSeq } else { st.hasRemoteFin = true - st.remoteFinSeq = payloadSeq + st.remoteFinSeq = nextSeq } } // if both fins have been sent and ack'd, then mark the connection closed - localFinIsAcked := st.hasLocalFin && isSeqBefore(st.localFinSeq, st.lastRemoteAck) - remoteFinIsAcked := st.hasRemoteFin && isSeqBefore(st.remoteFinSeq, st.lastLocalAck) + localFinIsAcked := st.hasLocalFin && isSeqBeforeEq(st.localFinSeq, st.lastRemoteAck) + remoteFinIsAcked := st.hasRemoteFin && isSeqBeforeEq(st.remoteFinSeq, st.lastLocalAck) if st.tcpState == ConnStatEstablished && localFinIsAcked && remoteFinIsAcked { *st = connectionState{ tcpState: ConnStatClosed, @@ -156,11 +185,13 @@ func (t *TCPProcessor) updateRstFlag(conn *network.ConnectionStats, st *connecti reason = syscall.ECONNREFUSED } + if st.tcpState == ConnStatEstablished { + conn.Monotonic.TCPClosed++ + } *st = connectionState{ tcpState: ConnStatClosed, } conn.TCPFailures[uint16(reason)]++ - conn.Monotonic.TCPClosed++ } // Process handles a TCP packet, calculating stats and keeping track of its state according to the @@ -179,15 +210,7 @@ func (t *TCPProcessor) Process(conn *network.ConnectionStats, pktType uint8, ip4 }) // skip invalid packets we don't recognize: - noFlagsCombo := !tcp.SYN && !tcp.FIN && !tcp.ACK && !tcp.RST - if noFlagsCombo { - // no flags at all (I think this can happen for expanding the TCP window sometimes?) - statsTelemetry.missingTCPFlags.Inc() - return nil - } - synFinCombo := tcp.SYN && tcp.FIN - if synFinCombo { - statsTelemetry.tcpSynAndFin.Inc() + if checkInvalidTCP(tcp) { return nil } diff --git a/pkg/network/tracer/connection/ebpfless/tcp_processor_test.go b/pkg/network/tracer/connection/ebpfless/tcp_processor_test.go index c88bea17c2361..efbda6ff1037a 100644 --- a/pkg/network/tracer/connection/ebpfless/tcp_processor_test.go +++ b/pkg/network/tracer/connection/ebpfless/tcp_processor_test.go @@ -536,7 +536,7 @@ func TestConnRefusedSyn(t *testing.T) { RecvPackets: 1, Retransmits: 0, TCPEstablished: 0, - TCPClosed: 1, + TCPClosed: 0, } require.Equal(t, expectedStats, f.conn.Monotonic) } @@ -569,7 +569,7 @@ func TestConnRefusedSynAck(t *testing.T) { RecvPackets: 1, Retransmits: 0, TCPEstablished: 0, - TCPClosed: 1, + TCPClosed: 0, } require.Equal(t, expectedStats, f.conn.Monotonic) } diff --git a/pkg/network/tracer/connection/ebpfless/tcp_utils.go b/pkg/network/tracer/connection/ebpfless/tcp_utils.go index 22e7eb976f127..3a02ea3b09e29 100644 --- a/pkg/network/tracer/connection/ebpfless/tcp_utils.go +++ b/pkg/network/tracer/connection/ebpfless/tcp_utils.go @@ -25,10 +25,14 @@ var statsTelemetry = struct { missedTCPConnections telemetry.Counter missingTCPFlags telemetry.Counter tcpSynAndFin telemetry.Counter + tcpRstAndSyn telemetry.Counter + tcpRstAndFin telemetry.Counter }{ telemetry.NewCounter(ebpflessModuleName, "missed_tcp_connections", []string{}, "Counter measuring the number of TCP connections where we missed the SYN handshake"), telemetry.NewCounter(ebpflessModuleName, "missing_tcp_flags", []string{}, "Counter measuring packets encountered with none of SYN, FIN, ACK, RST set"), telemetry.NewCounter(ebpflessModuleName, "tcp_syn_and_fin", []string{}, "Counter measuring packets encountered with SYN+FIN together"), + telemetry.NewCounter(ebpflessModuleName, "tcp_rst_and_syn", []string{}, "Counter measuring packets encountered with RST+SYN together"), + telemetry.NewCounter(ebpflessModuleName, "tcp_rst_and_fin", []string{}, "Counter measuring packets encountered with RST+FIN together"), } const tcpSeqMidpoint = 0x80000000 @@ -86,6 +90,9 @@ func isSeqBefore(prev, cur uint32) bool { // constrain the maximum difference to half the number space return diff > 0 && diff < tcpSeqMidpoint } +func isSeqBeforeEq(prev, cur uint32) bool { + return prev == cur || isSeqBefore(prev, cur) +} func debugPacketDir(pktType uint8) string { switch pktType { diff --git a/pkg/network/tracer/tracer_test.go b/pkg/network/tracer/tracer_test.go index 54cb15d3cf2f7..b032aabe44c5f 100644 --- a/pkg/network/tracer/tracer_test.go +++ b/pkg/network/tracer/tracer_test.go @@ -1172,7 +1172,9 @@ func (s *TracerSuite) TestUnconnectedUDPSendIPv4() { return cs.DPort == uint16(remotePort) }) - assert.Len(ct, outgoing, 1) + if !assert.Len(ct, outgoing, 1) { + return + } assert.Equal(ct, bytesSent, int(outgoing[0].Monotonic.SentBytes)) }, 3*time.Second, 100*time.Millisecond) } From 942529bd31dd57427e34c600a2db58a0d5aad7f4 Mon Sep 17 00:00:00 2001 From: Vincent Whitchurch Date: Mon, 25 Nov 2024 18:03:46 +0100 Subject: [PATCH 027/439] usm: Enable event monitor if USM needs it (#31420) --- cmd/system-probe/config/adjust_usm.go | 10 ++++++++++ cmd/system-probe/config/config.go | 1 + cmd/system-probe/config/config_test.go | 4 ++++ 3 files changed, 15 insertions(+) diff --git a/cmd/system-probe/config/adjust_usm.go b/cmd/system-probe/config/adjust_usm.go index d7e164a9020f1..e71679aa592ec 100644 --- a/cmd/system-probe/config/adjust_usm.go +++ b/cmd/system-probe/config/adjust_usm.go @@ -10,6 +10,7 @@ import ( "runtime" "github.com/DataDog/datadog-agent/pkg/config/model" + "github.com/DataDog/datadog-agent/pkg/util/log" ) const ( @@ -53,6 +54,15 @@ func adjustUSM(cfg model.Config) { applyDefault(cfg, spNS("process_service_inference", "enabled"), false) } + // Similar to the checkin in adjustNPM(). The process event data stream and USM have the same + // minimum kernel version requirement, but USM's check for that is done + // later. This check here prevents the EventMonitorModule from getting + // enabled on unsupported kernels by load() in config.go. + if cfg.GetBool(smNS("enable_event_stream")) && !ProcessEventDataStreamSupported() { + log.Warn("disabling USM event stream as it is not supported for this kernel version") + cfg.Set(smNS("enable_event_stream"), false, model.SourceAgentRuntime) + } + applyDefault(cfg, spNS("process_service_inference", "use_windows_service_name"), true) applyDefault(cfg, smNS("enable_ring_buffers"), true) applyDefault(cfg, smNS("max_postgres_stats_buffered"), 100000) diff --git a/cmd/system-probe/config/config.go b/cmd/system-probe/config/config.go index 49fd3e49d290c..c67bd69c18aca 100644 --- a/cmd/system-probe/config/config.go +++ b/cmd/system-probe/config/config.go @@ -137,6 +137,7 @@ func load() (*types.Config, error) { if cfg.GetBool(secNS("enabled")) || cfg.GetBool(secNS("fim_enabled")) || cfg.GetBool(evNS("process.enabled")) || + (usmEnabled && cfg.GetBool(smNS("enable_event_stream"))) || (c.ModuleIsEnabled(NetworkTracerModule) && cfg.GetBool(evNS("network_process.enabled")) || gpuEnabled) { c.EnabledModules[EventMonitorModule] = struct{}{} diff --git a/cmd/system-probe/config/config_test.go b/cmd/system-probe/config/config_test.go index 4b44204851a0b..9611f6f9eed87 100644 --- a/cmd/system-probe/config/config_test.go +++ b/cmd/system-probe/config/config_test.go @@ -24,6 +24,7 @@ func TestEventMonitor(t *testing.T) { for i, tc := range []struct { cws, fim, processEvents, networkEvents, gpu bool + usmEvents bool enabled bool }{ {cws: false, fim: false, processEvents: false, networkEvents: false, enabled: false}, @@ -43,6 +44,7 @@ func TestEventMonitor(t *testing.T) { {cws: true, fim: true, processEvents: false, networkEvents: true, enabled: true}, {cws: true, fim: true, processEvents: true, networkEvents: true, enabled: true}, {cws: false, fim: false, processEvents: false, networkEvents: false, gpu: true, enabled: true}, + {usmEvents: true, enabled: true}, } { t.Run(fmt.Sprintf("%d", i), func(t *testing.T) { t.Logf("%+v\n", tc) @@ -52,6 +54,8 @@ func TestEventMonitor(t *testing.T) { t.Setenv("DD_SYSTEM_PROBE_EVENT_MONITORING_NETWORK_PROCESS_ENABLED", strconv.FormatBool(tc.networkEvents)) t.Setenv("DD_SYSTEM_PROBE_NETWORK_ENABLED", strconv.FormatBool(tc.networkEvents)) t.Setenv("DD_GPU_MONITORING_ENABLED", strconv.FormatBool(tc.gpu)) + t.Setenv("DD_SYSTEM_PROBE_SERVICE_MONITORING_ENABLED", strconv.FormatBool(tc.usmEvents)) + t.Setenv("DD_SERVICE_MONITORING_CONFIG_ENABLE_EVENT_STREAM", strconv.FormatBool(tc.usmEvents)) cfg, err := New("/doesnotexist", "") t.Logf("%+v\n", cfg) From 84c20fb34180942675e72452b700e6065c04d0cd Mon Sep 17 00:00:00 2001 From: Ethan Wood-Thomas Date: Mon, 25 Nov 2024 12:51:53 -0500 Subject: [PATCH 028/439] [CONTINT-4499] Include empty layers in container image metadata on containerd (#31384) --- .../collectors/internal/containerd/image.go | 50 +++++++++++++------ .../internal/containerd/image_test.go | 39 +++++++++++++-- 2 files changed, 71 insertions(+), 18 deletions(-) diff --git a/comp/core/workloadmeta/collectors/internal/containerd/image.go b/comp/core/workloadmeta/collectors/internal/containerd/image.go index 7b6bda3fd873d..f7ebff23f92a2 100644 --- a/comp/core/workloadmeta/collectors/internal/containerd/image.go +++ b/comp/core/workloadmeta/collectors/internal/containerd/image.go @@ -441,37 +441,57 @@ func extractPlatform(platform *ocispec.Platform, outImage *workloadmeta.Containe func getLayersWithHistory(ocispecImage ocispec.Image, manifest ocispec.Manifest) []workloadmeta.ContainerImageLayer { var layers []workloadmeta.ContainerImageLayer - // The layers in the manifest don't include the history, and the only way to - // match the history with each layer is to rely on the order and take into - // account that some history objects don't have an associated layer - // (emptyLayer = true). - // History is optional in OCI Spec, so we have no guarantee to be able to get it. + // If history is present, we use it to associate additional metadata with each layer. + // Layers marked as "empty" in history are appended before processing the + // corresponding layer. History is optional in the OCI specification, so if no history is available, + // the function still processes all layers. Any remaining empty layers in history that + // do not correspond to a layer are appended at the end. historyIndex := 0 for _, manifestLayer := range manifest.Layers { - // Look for next history point with emptyLayer = false - historyFound := false - for ; historyIndex < len(ocispecImage.History); historyIndex++ { - if !ocispecImage.History[historyIndex].EmptyLayer { - historyFound = true + // Append all empty layers encountered before a non-empty layer + for historyIndex < len(ocispecImage.History) { + history := ocispecImage.History[historyIndex] + if history.EmptyLayer { + layers = append(layers, workloadmeta.ContainerImageLayer{ + History: &history, + }) + historyIndex++ + } else { + // Stop at the first non-empty layer break } } + // Match the non-empty history to this manifest layer, if available + var history *ocispec.History + if historyIndex < len(ocispecImage.History) { + history = &ocispecImage.History[historyIndex] + historyIndex++ + } + + // Create and append the layer with manifest and matched history layer := workloadmeta.ContainerImageLayer{ MediaType: manifestLayer.MediaType, Digest: manifestLayer.Digest.String(), SizeBytes: manifestLayer.Size, URLs: manifestLayer.URLs, + History: history, } - if historyFound { - layer.History = &ocispecImage.History[historyIndex] - historyIndex++ - } - layers = append(layers, layer) } + // Append any remaining empty layers after processing all manifest layers + for historyIndex < len(ocispecImage.History) { + history := ocispecImage.History[historyIndex] + if history.EmptyLayer { + layers = append(layers, workloadmeta.ContainerImageLayer{ + History: &history, + }) + } + historyIndex++ + } + return layers } diff --git a/comp/core/workloadmeta/collectors/internal/containerd/image_test.go b/comp/core/workloadmeta/collectors/internal/containerd/image_test.go index 9f05a421fc937..d75dc38e84bda 100644 --- a/comp/core/workloadmeta/collectors/internal/containerd/image_test.go +++ b/comp/core/workloadmeta/collectors/internal/containerd/image_test.go @@ -147,7 +147,20 @@ func TestGetLayersWithHistory(t *testing.T) { Digest: digest.FromString("foo").String(), SizeBytes: 1, History: &ocispec.History{ - Comment: "not-empty1", + Comment: "not-empty1", + EmptyLayer: false, + }, + }, + { + History: &ocispec.History{ + Comment: "empty1", + EmptyLayer: true, + }, + }, + { + History: &ocispec.History{ + Comment: "empty2", + EmptyLayer: true, }, }, { @@ -155,7 +168,14 @@ func TestGetLayersWithHistory(t *testing.T) { Digest: digest.FromString("bar").String(), SizeBytes: 2, History: &ocispec.History{ - Comment: "not-empty2", + Comment: "not-empty2", + EmptyLayer: false, + }, + }, + { + History: &ocispec.History{ + Comment: "empty3", + EmptyLayer: true, }, }, { @@ -163,7 +183,20 @@ func TestGetLayersWithHistory(t *testing.T) { Digest: digest.FromString("baz").String(), SizeBytes: 3, History: &ocispec.History{ - Comment: "not-empty3", + Comment: "not-empty3", + EmptyLayer: false, + }, + }, + { + History: &ocispec.History{ + Comment: "empty4", + EmptyLayer: true, + }, + }, + { + History: &ocispec.History{ + Comment: "empty5", + EmptyLayer: true, }, }, { From b65ed90478795391b52319ae8dab6ec891fb6a85 Mon Sep 17 00:00:00 2001 From: Jennifer Chen <32009013+jennchenn@users.noreply.github.com> Date: Mon, 25 Nov 2024 13:02:11 -0500 Subject: [PATCH 029/439] [pkg/util/cloudproviders/gce] Add host tag for `DD_PROVIDER_KIND` (#31363) --- pkg/config/setup/config.go | 2 ++ pkg/util/cloudproviders/gce/gce_tags.go | 4 ++++ pkg/util/cloudproviders/gce/gce_tags_test.go | 18 ++++++++++++++++++ ...add-provider-kind-tag-518f76ee283bc1ff.yaml | 11 +++++++++++ 4 files changed, 35 insertions(+) create mode 100644 releasenotes/notes/add-provider-kind-tag-518f76ee283bc1ff.yaml diff --git a/pkg/config/setup/config.go b/pkg/config/setup/config.go index 977b2e346a286..4197723b67aa9 100644 --- a/pkg/config/setup/config.go +++ b/pkg/config/setup/config.go @@ -804,6 +804,8 @@ func InitConfig(config pkgconfigmodel.Setup) { config.SetKnown("cluster_name") config.SetKnown("listeners") + config.BindEnv("provider_kind") + // Orchestrator Explorer DCA and core agent config.BindEnvAndSetDefault("orchestrator_explorer.enabled", true) // enabling/disabling the environment variables & command scrubbing from the container specs diff --git a/pkg/util/cloudproviders/gce/gce_tags.go b/pkg/util/cloudproviders/gce/gce_tags.go index 1f5b05011aab5..31c986277bc97 100644 --- a/pkg/util/cloudproviders/gce/gce_tags.go +++ b/pkg/util/cloudproviders/gce/gce_tags.go @@ -101,6 +101,10 @@ func GetTags(ctx context.Context) ([]string, error) { } } + if providerKind := pkgconfigsetup.Datadog().GetString("provider_kind"); providerKind != "" { + tags = append(tags, fmt.Sprintf("provider_kind:%s", providerKind)) + } + // save tags to the cache in case we exceed quotas later cache.Cache.Set(tagsCacheKey, tags, cache.NoExpiration) diff --git a/pkg/util/cloudproviders/gce/gce_tags_test.go b/pkg/util/cloudproviders/gce/gce_tags_test.go index 2eae7092d0b92..a971d4305adb3 100644 --- a/pkg/util/cloudproviders/gce/gce_tags_test.go +++ b/pkg/util/cloudproviders/gce/gce_tags_test.go @@ -57,6 +57,7 @@ var ( "google-compute-enable-pcid:true", "instance-template:projects/111111111111/global/instanceTemplates/gke-test-cluster-default-pool-0012834b", } + expectedTagsWithProviderKind = append(expectedFullTags, "provider_kind:test-provider") ) func mockMetadataRequest(t *testing.T) *httptest.Server { @@ -146,3 +147,20 @@ func TestGetHostTagsWithNonDefaultTagFilters(t *testing.T) { require.NoError(t, err) testTags(t, tags, expectedExcludedTags) } + +func TestGetHostTagsWithProviderKind(t *testing.T) { + ctx := context.Background() + mockConfig := configmock.New(t) + defaultProviderKind := mockConfig.GetString("provider_kind") + defer mockConfig.SetWithoutSource("provider_kind", defaultProviderKind) + + mockConfig.SetWithoutSource("provider_kind", "test-provider") + + server := mockMetadataRequest(t) + defer server.Close() + defer cache.Cache.Delete(tagsCacheKey) + + tags, err := GetTags(ctx) + require.NoError(t, err) + testTags(t, tags, expectedTagsWithProviderKind) +} diff --git a/releasenotes/notes/add-provider-kind-tag-518f76ee283bc1ff.yaml b/releasenotes/notes/add-provider-kind-tag-518f76ee283bc1ff.yaml new file mode 100644 index 0000000000000..208c60445e6c4 --- /dev/null +++ b/releasenotes/notes/add-provider-kind-tag-518f76ee283bc1ff.yaml @@ -0,0 +1,11 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +enhancements: + - | + Add new host tag `provider_kind` from the value of `DD_PROVIDER_KIND` for Agents running in GCE. From a22a1658c9a9ba62aa163c6771523fb36a5a3495 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9na=C3=AFc=20Huard?= Date: Mon, 25 Nov 2024 19:10:31 +0100 Subject: [PATCH 030/439] Check for world writable files in the agent docker image (#31410) --- Dockerfiles/agent/Dockerfile | 8 ++--- Dockerfiles/agent/test_image_contents.py | 42 +++++++++++++++++------- 2 files changed, 33 insertions(+), 17 deletions(-) diff --git a/Dockerfiles/agent/Dockerfile b/Dockerfiles/agent/Dockerfile index b7cc98210c40e..894a29f2d250e 100644 --- a/Dockerfiles/agent/Dockerfile +++ b/Dockerfiles/agent/Dockerfile @@ -245,13 +245,11 @@ COPY --from=nosys-seccomp /tmp/nosys.so /opt/lib/nosys.so ENV LD_PRELOAD=/opt/lib/nosys.so # Single entrypoint -COPY entrypoint.sh /bin/entrypoint.sh -COPY entrypoint.d /opt/entrypoints -RUN chmod 755 /bin/entrypoint.sh \ - && chmod 755 -R /opt/entrypoints +COPY --chmod=755 entrypoint.sh /bin/entrypoint.sh +COPY --chmod=755 entrypoint.d /opt/entrypoints CMD ["/bin/entrypoint.sh"] FROM release AS test -COPY test_image_contents.py /tmp/test_image_contents.py +COPY --chmod=755 test_image_contents.py /tmp/test_image_contents.py RUN ./tmp/test_image_contents.py && rm -f ./tmp/test_image_contents.py diff --git a/Dockerfiles/agent/test_image_contents.py b/Dockerfiles/agent/test_image_contents.py index 22edd4be1a4f4..f67684d149e82 100755 --- a/Dockerfiles/agent/test_image_contents.py +++ b/Dockerfiles/agent/test_image_contents.py @@ -1,7 +1,9 @@ #!/opt/datadog-agent/embedded/bin/python +import grp import os import os.path +import pwd import stat import unittest from hashlib import sha256 @@ -47,18 +49,34 @@ def test_files_checksums(self): self.assertEqual(sha.hexdigest(), digest, file + " checksum mismatch") def test_files_permissions(self): - def has_write_permissions(path): - try: - return bool(os.stat(path).st_mode & stat.S_IWOTH) - except Exception: - return False - - for root, dirs, files in os.walk("/etc"): - for name in files: - self.assertFalse(has_write_permissions(os.path.join(root, name))) - for name in dirs: - os.path.join(root, name) - self.assertFalse(has_write_permissions(os.path.join(root, name))) + for root, dirs, files in os.walk("/"): + dirs[:] = filter( + lambda dir: not os.path.ismount(os.path.join(root, dir)), dirs + ) + + for name in dirs + files: + f = os.path.join(root, name) + + try: + s = os.stat(f) + except FileNotFoundError: + pass + except Exception as e: + self.fail(f"Failed to stat {f}: {e}") + self.assertFalse( + s.st_mode & (stat.S_IWOTH | stat.S_ISVTX) == stat.S_IWOTH, + f"{f} should not be world-writable", + ) + + try: + pwd.getpwuid(s.st_uid) + except KeyError: + self.fail(f"Unknown user {s.st_uid} for {f}") + + try: + grp.getgrgid(s.st_gid) + except KeyError: + self.fail(f"Unknown group {s.st_gid} for {f}") if __name__ == "__main__": From 33d115593a2c033c6e9f5db90a4b3aeffe201ecf Mon Sep 17 00:00:00 2001 From: Jack Phillips Date: Mon, 25 Nov 2024 14:02:15 -0500 Subject: [PATCH 031/439] clean exit test all services (#31334) --- .gitlab/e2e/e2e.yml | 22 ++-- cmd/security-agent/main_windows.go | 6 + .../subcommands/start/command.go | 7 +- pkg/util/winutil/servicemain/servicemain.go | 17 ++- .../fixtures/datadog-pa-disabled.yaml | 14 +++ .../fixtures/datadog-ta-disabled.yaml | 12 ++ .../fixtures/security-agent-disabled.yaml | 3 + .../windows/service-test/startstop_test.go | 117 ++++++++++++++---- 8 files changed, 146 insertions(+), 52 deletions(-) create mode 100644 test/new-e2e/tests/windows/service-test/fixtures/datadog-pa-disabled.yaml create mode 100644 test/new-e2e/tests/windows/service-test/fixtures/datadog-ta-disabled.yaml create mode 100644 test/new-e2e/tests/windows/service-test/fixtures/security-agent-disabled.yaml diff --git a/.gitlab/e2e/e2e.yml b/.gitlab/e2e/e2e.yml index b48c9d5c4d41c..aa3c21938b4ce 100644 --- a/.gitlab/e2e/e2e.yml +++ b/.gitlab/e2e/e2e.yml @@ -190,21 +190,13 @@ new-e2e-windows-service-test: variables: TARGETS: ./tests/windows/service-test TEAM: windows-agent - EXTRA_PARAMS: --run TestServiceBehavior - -# Temporary job for hunting a crash -new-e2e-windows-service-test-nofim: - extends: .new_e2e_template - needs: - - !reference [.needs_new_e2e_template] - - deploy_windows_testing-a7 - rules: - - !reference [.on_windows_service_or_e2e_changes] - - !reference [.manual] - variables: - TARGETS: ./tests/windows/service-test - TEAM: windows-agent - EXTRA_PARAMS: --run TestNoFIMServiceBehavior + parallel: + matrix: + - EXTRA_PARAMS: --run TestServiceBehaviorAgentCommand + - EXTRA_PARAMS: --run TestServiceBehaviorPowerShell + - EXTRA_PARAMS: --run TestServiceBehaviorWhenDisabledSystemProbe + - EXTRA_PARAMS: --run TestServiceBehaviorWhenDisabledProcessAgent + - EXTRA_PARAMS: --run TestServiceBehaviorWhenDisabledTraceAgent new-e2e-language-detection: extends: .new_e2e_template_needs_deb_x64 diff --git a/cmd/security-agent/main_windows.go b/cmd/security-agent/main_windows.go index d2e6ab66b4441..6aa47f99d56b4 100644 --- a/cmd/security-agent/main_windows.go +++ b/cmd/security-agent/main_windows.go @@ -10,6 +10,8 @@ package main import ( "context" + "errors" + "fmt" "os" "path" @@ -94,6 +96,10 @@ func (s *service) Run(svcctx context.Context) error { err := start.RunAgent(log, config, telemetry, statusComponent, settings, wmeta) if err != nil { + if errors.Is(err, start.ErrAllComponentsDisabled) { + // If all components are disabled, we should exit cleanly + return fmt.Errorf("%w: %w", servicemain.ErrCleanStopAfterInit, err) + } return err } diff --git a/cmd/security-agent/subcommands/start/command.go b/cmd/security-agent/subcommands/start/command.go index 84b4309024edd..6dec7ce712a4e 100644 --- a/cmd/security-agent/subcommands/start/command.go +++ b/cmd/security-agent/subcommands/start/command.go @@ -211,7 +211,7 @@ func start(log log.Component, config config.Component, _ secrets.Component, _ st defer StopAgent(log) err := RunAgent(log, config, telemetry, statusComponent, settings, wmeta) - if errors.Is(err, errAllComponentsDisabled) || errors.Is(err, errNoAPIKeyConfigured) { + if errors.Is(err, ErrAllComponentsDisabled) || errors.Is(err, errNoAPIKeyConfigured) { return nil } if err != nil { @@ -257,7 +257,8 @@ var ( expvarServer *http.Server ) -var errAllComponentsDisabled = errors.New("all security-agent component are disabled") +// ErrAllComponentsDisabled is returned when all components are disabled +var ErrAllComponentsDisabled = errors.New("all security-agent component are disabled") var errNoAPIKeyConfigured = errors.New("no API key configured") // RunAgent initialized resources and starts API server @@ -274,7 +275,7 @@ func RunAgent(log log.Component, config config.Component, telemetry telemetry.Co // to startup because of an error. Only applies on Debian 7. time.Sleep(5 * time.Second) - return errAllComponentsDisabled + return ErrAllComponentsDisabled } if !config.IsSet("api_key") { diff --git a/pkg/util/winutil/servicemain/servicemain.go b/pkg/util/winutil/servicemain/servicemain.go index 1660e121ab05e..dfc63c2c871c4 100644 --- a/pkg/util/winutil/servicemain/servicemain.go +++ b/pkg/util/winutil/servicemain/servicemain.go @@ -296,22 +296,21 @@ func (s *controlHandler) Execute(args []string, r <-chan svc.ChangeRequest, chan defer close(done) // Run the actual agent/service err = s.service.Run(ctx) - if err != nil { - s.eventlog(messagestrings.MSG_SERVICE_FAILED, err.Error()) - } }() select { case <-done: - if err != nil { + case <-cleanExitCtx.Done(): + err = errors.New("service did not cleanly shutdown in a timely manner, hard stopping service") + } + if err != nil { + if errors.Is(err, ErrCleanStopAfterInit) { + s.eventlog(messagestrings.MSG_AGENT_CLEAN_STOP_AFTER_INIT, err.Error()) + } else { + s.eventlog(messagestrings.MSG_SERVICE_FAILED, err.Error()) // since exitGate is meant to avoid an error, if we are returning // with an error then we can skip the exitGate. return } - case <-cleanExitCtx.Done(): - s.eventlog(messagestrings.MSG_SERVICE_FAILED, "service did not cleanly shutdown in a timely manner, hard stopping service") - // since exitGate is meant to avoid an error, if we are returning - // with an error then we can skip the exitGate. - return } } diff --git a/test/new-e2e/tests/windows/service-test/fixtures/datadog-pa-disabled.yaml b/test/new-e2e/tests/windows/service-test/fixtures/datadog-pa-disabled.yaml new file mode 100644 index 0000000000000..a932271b658ee --- /dev/null +++ b/test/new-e2e/tests/windows/service-test/fixtures/datadog-pa-disabled.yaml @@ -0,0 +1,14 @@ +# disable logs agent +logs_enabled: false + +# disable process agent +process_config: + process_collection: + enabled: false + container_collection: + enabled: false + enabled: "disabled" + process_discovery: + enabled: false + +# trace-agent is running by default diff --git a/test/new-e2e/tests/windows/service-test/fixtures/datadog-ta-disabled.yaml b/test/new-e2e/tests/windows/service-test/fixtures/datadog-ta-disabled.yaml new file mode 100644 index 0000000000000..1ccc2ae05a839 --- /dev/null +++ b/test/new-e2e/tests/windows/service-test/fixtures/datadog-ta-disabled.yaml @@ -0,0 +1,12 @@ +# enable logs agent +logs_enabled: true + +# enable process agent +process_config: + # live process + process_collection: + enabled: true + +# trace-agent is running by default +apm_config: + enabled: false \ No newline at end of file diff --git a/test/new-e2e/tests/windows/service-test/fixtures/security-agent-disabled.yaml b/test/new-e2e/tests/windows/service-test/fixtures/security-agent-disabled.yaml new file mode 100644 index 0000000000000..88b59095e28c7 --- /dev/null +++ b/test/new-e2e/tests/windows/service-test/fixtures/security-agent-disabled.yaml @@ -0,0 +1,3 @@ +# enable security agent +runtime_security_config: + enabled: false diff --git a/test/new-e2e/tests/windows/service-test/startstop_test.go b/test/new-e2e/tests/windows/service-test/startstop_test.go index 1e600ca0927a5..837766c78f5e7 100644 --- a/test/new-e2e/tests/windows/service-test/startstop_test.go +++ b/test/new-e2e/tests/windows/service-test/startstop_test.go @@ -33,6 +33,12 @@ import ( //go:embed fixtures/datadog.yaml var agentConfig string +//go:embed fixtures/datadog-pa-disabled.yaml +var agentConfigPADisabled string + +//go:embed fixtures/datadog-ta-disabled.yaml +var agentConfigTADisabled string + //go:embed fixtures/system-probe.yaml var systemProbeConfig string @@ -45,22 +51,25 @@ var systemProbeDisabled string //go:embed fixtures/security-agent.yaml var securityAgentConfig string +//go:embed fixtures/security-agent-disabled.yaml +var securityAgentConfigDisabled string + // TestServiceBehaviorAgentCommandNoFIM tests the service behavior when controlled by Agent commands func TestNoFIMServiceBehaviorAgentCommand(t *testing.T) { s := &agentServiceCommandSuite{} - run(t, s, systemProbeNoFIMConfig) + run(t, s, systemProbeNoFIMConfig, agentConfig, securityAgentConfig) } // TestServiceBehaviorPowerShellNoFIM tests the service behavior when controlled by PowerShell commands func TestNoFIMServiceBehaviorPowerShell(t *testing.T) { s := &powerShellServiceCommandSuite{} - run(t, s, systemProbeNoFIMConfig) + run(t, s, systemProbeNoFIMConfig, agentConfig, securityAgentConfig) } // TestServiceBehaviorAgentCommand tests the service behavior when controlled by Agent commands func TestServiceBehaviorAgentCommand(t *testing.T) { s := &agentServiceCommandSuite{} - run(t, s, systemProbeConfig) + run(t, s, systemProbeConfig, agentConfig, securityAgentConfig) } type agentServiceCommandSuite struct { @@ -96,7 +105,7 @@ func (s *agentServiceCommandSuite) SetupSuite() { // TestServiceBehaviorAgentCommand tests the service behavior when controlled by PowerShell commands func TestServiceBehaviorPowerShell(t *testing.T) { s := &powerShellServiceCommandSuite{} - run(t, s, systemProbeConfig) + run(t, s, systemProbeConfig, agentConfig, securityAgentConfig) } type powerShellServiceCommandSuite struct { @@ -222,14 +231,54 @@ func (s *powerShellServiceCommandSuite) TestHardExitEventLogEntry() { }, 1*time.Minute, 1*time.Second, "should have hard exit messages in the event log") } +type agentServiceDisabledSuite struct { + baseStartStopSuite + disabledServices []string +} + // TestServiceBehaviorWhenDisabled tests the service behavior when disabled in the configuration -func TestServiceBehaviorWhenDisabled(t *testing.T) { - s := &agentServiceDisabledSuite{} - run(t, s, systemProbeDisabled) +func TestServiceBehaviorWhenDisabledSystemProbe(t *testing.T) { + s := &agentServiceDisabledSystemProbeSuite{} + s.disabledServices = []string{ + "datadog-security-agent", + "datadog-system-probe", + "ddnpm", + "ddprocmon", + } + run(t, s, systemProbeDisabled, agentConfig, securityAgentConfigDisabled) } -type agentServiceDisabledSuite struct { - baseStartStopSuite +type agentServiceDisabledSystemProbeSuite struct { + agentServiceDisabledSuite +} + +// TestServiceBehaviorWhenDisabledProcessAgent tests the service behavior when disabled in the configuration +func TestServiceBehaviorWhenDisabledProcessAgent(t *testing.T) { + s := &agentServiceDisabledProcessAgentSuite{} + s.disabledServices = []string{ + "datadog-process-agent", + "datadog-security-agent", + "datadog-system-probe", + "ddnpm", + "ddprocmon", + } + run(t, s, systemProbeDisabled, agentConfigPADisabled, securityAgentConfigDisabled) +} + +type agentServiceDisabledProcessAgentSuite struct { + agentServiceDisabledSuite +} + +func TestServiceBehaviorWhenDisabledTraceAgent(t *testing.T) { + s := &agentServiceDisabledTraceAgentSuite{} + s.disabledServices = []string{ + "datadog-trace-agent", + } + run(t, s, systemProbeConfig, agentConfigTADisabled, securityAgentConfig) +} + +type agentServiceDisabledTraceAgentSuite struct { + agentServiceDisabledSuite } func (s *agentServiceDisabledSuite) SetupSuite() { @@ -237,14 +286,22 @@ func (s *agentServiceDisabledSuite) SetupSuite() { // set up the expected services before calling the base setup s.runningUserServices = func() []string { - return []string{ - "datadogagent", - "datadog-trace-agent", - "datadog-process-agent", + runningServices := []string{} + for _, service := range s.getInstalledUserServices() { + if !slices.Contains(s.disabledServices, service) { + runningServices = append(runningServices, service) + } } + return runningServices } s.runningServices = func() []string { - return s.runningUserServices() + runningServices := []string{} + for _, service := range s.getInstalledServices() { + if !slices.Contains(s.disabledServices, service) { + runningServices = append(runningServices, service) + } + } + return runningServices } s.startAgentCommand = func(host *components.RemoteHost) error { @@ -268,15 +325,21 @@ func (s *agentServiceDisabledSuite) SetupSuite() { } func (s *agentServiceDisabledSuite) TestStartingDisabledService() { + kernel := s.getInstalledKernelServices() // check that the system probe is not running - s.assertServiceState("Stopped", "datadog-system-probe") + for _, service := range s.disabledServices { + s.assertServiceState("Stopped", service) - // try and start it and verify that it does correctly outputs to event log - err := windowsCommon.StartService(s.Env().RemoteHost, "datadog-system-probe") - s.Require().NoError(err, "should start datadog-system-probe") + // verify that we only try user services + if !slices.Contains(kernel, service) { + // try and start it and verify that it does correctly outputs to event log + err := windowsCommon.StartService(s.Env().RemoteHost, service) + s.Require().NoError(err, fmt.Sprintf("should start %s", service)) - //verify that service returns to stopped state - s.assertServiceState("Stopped", "datadog-system-probe") + // verify that service returns to stopped state + s.assertServiceState("Stopped", service) + } + } // Verify there are not errors in the event log entries, err := s.getAgentEventLogErrorsAndWarnings() @@ -284,7 +347,7 @@ func (s *agentServiceDisabledSuite) TestStartingDisabledService() { s.Require().Empty(entries, "should not have errors or warnings from agents in the event log") } -func run[Env any](t *testing.T, s e2e.Suite[Env], systemProbeConfig string) { +func run[Env any](t *testing.T, s e2e.Suite[Env], systemProbeConfig string, agentConfig string, securityAgentConfig string) { opts := []e2e.SuiteOption{e2e.WithProvisioner(awsHostWindows.ProvisionerNoFakeIntake( awsHostWindows.WithAgentOptions( agentparams.WithAgentConfig(agentConfig), @@ -583,13 +646,17 @@ func (s *baseStartStopSuite) getInstalledUserServices() []string { } } -// expectedInstalledServices returns the list of services that should be installed by the agent -func (s *baseStartStopSuite) getInstalledServices() []string { - user := s.getInstalledUserServices() - kernel := []string{ +func (s *baseStartStopSuite) getInstalledKernelServices() []string { + return []string{ "ddnpm", "ddprocmon", } +} + +// expectedInstalledServices returns the list of services that should be installed by the agent +func (s *baseStartStopSuite) getInstalledServices() []string { + user := s.getInstalledUserServices() + kernel := s.getInstalledKernelServices() return append(user, kernel...) } From 7e736b791550a7623ccc27c7dc87e474b0c7d8bc Mon Sep 17 00:00:00 2001 From: Sylvain Afchain Date: Mon, 25 Nov 2024 20:13:02 +0100 Subject: [PATCH 032/439] [CWS] skip raw packet event when no process context (#31429) --- pkg/security/ebpf/c/include/helpers/network.h | 13 +++++++++---- pkg/security/ebpf/c/include/hooks/network/tc.h | 10 ++++++++++ pkg/security/ebpf/c/include/structs/network.h | 2 +- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/pkg/security/ebpf/c/include/helpers/network.h b/pkg/security/ebpf/c/include/helpers/network.h index 1198e49d41071..21e39e8591654 100644 --- a/pkg/security/ebpf/c/include/helpers/network.h +++ b/pkg/security/ebpf/c/include/helpers/network.h @@ -5,7 +5,7 @@ #include "constants/macros.h" #include "maps.h" -__attribute__((always_inline)) u32 get_flow_pid(struct pid_route_t *key) { +__attribute__((always_inline)) s64 get_flow_pid(struct pid_route_t *key) { u32 *value = bpf_map_lookup_elem(&flow_pid, key); if (!value) { // Try with IP set to 0.0.0.0 @@ -13,7 +13,7 @@ __attribute__((always_inline)) u32 get_flow_pid(struct pid_route_t *key) { key->addr[1] = 0; value = bpf_map_lookup_elem(&flow_pid, key); if (!value) { - return 0; + return -1; } } @@ -63,8 +63,13 @@ __attribute__((always_inline)) struct packet_t *reset_packet() { } __attribute__((always_inline)) void fill_network_process_context(struct process_context_t *process, struct packet_t *pkt) { - process->pid = pkt->pid; - process->tid = pkt->pid; + if (pkt->pid >= 0) { + process->pid = pkt->pid; + process->tid = pkt->pid; + } else { + process->pid = 0; + process->tid = 0; + } process->netns = pkt->translated_ns_flow.netns; } diff --git a/pkg/security/ebpf/c/include/hooks/network/tc.h b/pkg/security/ebpf/c/include/hooks/network/tc.h index 2bb8f8b5791c8..1ed6bdd8d0c66 100644 --- a/pkg/security/ebpf/c/include/hooks/network/tc.h +++ b/pkg/security/ebpf/c/include/hooks/network/tc.h @@ -60,6 +60,11 @@ int classifier_raw_packet_ingress(struct __sk_buff *skb) { return ACT_OK; } + // do not handle packet without process context + if (pkt->pid < 0) { + return ACT_OK; + } + if (prepare_raw_packet_event(skb) != ACT_OK) { return ACT_OK; } @@ -76,6 +81,11 @@ int classifier_raw_packet_egress(struct __sk_buff *skb) { return ACT_OK; } + // do not handle packet without process context + if (pkt->pid < 0) { + return ACT_OK; + } + if (prepare_raw_packet_event(skb) != ACT_OK) { return ACT_OK; } diff --git a/pkg/security/ebpf/c/include/structs/network.h b/pkg/security/ebpf/c/include/structs/network.h index 9efed0aa257b3..c2c2293e04673 100644 --- a/pkg/security/ebpf/c/include/structs/network.h +++ b/pkg/security/ebpf/c/include/structs/network.h @@ -64,7 +64,7 @@ struct packet_t { struct namespaced_flow_t translated_ns_flow; u32 offset; - u32 pid; + s64 pid; u32 payload_len; u16 l4_protocol; }; From 88703d8e3b462deac3f889d4e8efac46567d0e7e Mon Sep 17 00:00:00 2001 From: Dustin Long Date: Mon, 25 Nov 2024 14:55:28 -0500 Subject: [PATCH 033/439] Change viper.AllKeys to use a WRLock instead of a RLock (#31396) --- pkg/config/model/viper.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/config/model/viper.go b/pkg/config/model/viper.go index b6e08ad55fbfa..99964f052c2d6 100644 --- a/pkg/config/model/viper.go +++ b/pkg/config/model/viper.go @@ -310,8 +310,8 @@ func (c *safeConfig) IsSet(key string) bool { } func (c *safeConfig) AllKeysLowercased() []string { - c.RLock() - defer c.RUnlock() + c.Lock() + defer c.Unlock() return c.Viper.AllKeys() } From df19dfb89a243db3cf101d521a2f5e3b619e3b70 Mon Sep 17 00:00:00 2001 From: Jordan Storms Date: Mon, 25 Nov 2024 16:12:00 -0500 Subject: [PATCH 034/439] [SVLS-6016] Filter high cardinality tags from the metric agent (#31440) --- cmd/serverless-init/main.go | 4 ++-- cmd/serverless-init/tag/tag.go | 10 +++++++--- cmd/serverless-init/tag/tag_test.go | 6 ++++++ 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/cmd/serverless-init/main.go b/cmd/serverless-init/main.go index b59177af3e6a5..1b5242fa41e21 100644 --- a/cmd/serverless-init/main.go +++ b/cmd/serverless-init/main.go @@ -193,8 +193,8 @@ func setupMetricAgent(tags map[string]string, tagger tagger.Component) *metrics. SketchesBucketOffset: time.Second * 0, Tagger: tagger, } - // we don't want to add the container_id tag to metrics for cardinality reasons - tags = serverlessInitTag.WithoutContainerID(tags) + // we don't want to add certain tags to metrics for cardinality reasons + tags = serverlessInitTag.WithoutHighCardinalityTags(tags) metricAgent.Start(5*time.Second, &metrics.MetricConfig{}, &metrics.MetricDogStatsD{}) metricAgent.SetExtraTags(serverlessTag.MapToArray(tags)) return metricAgent diff --git a/cmd/serverless-init/tag/tag.go b/cmd/serverless-init/tag/tag.go index e35ca586ddd88..538e0b5dfb8b6 100644 --- a/cmd/serverless-init/tag/tag.go +++ b/cmd/serverless-init/tag/tag.go @@ -62,11 +62,15 @@ func GetBaseTagsMapWithMetadata(metadata map[string]string, versionMode string) return tagsMap } -// WithoutContainerID creates a new tag map without the `container_id` tag -func WithoutContainerID(tags map[string]string) map[string]string { +// WithoutHihCardinalityTags creates a new tag map without high cardinality tags we use on traces +func WithoutHighCardinalityTags(tags map[string]string) map[string]string { newTags := make(map[string]string, len(tags)) for k, v := range tags { - if k != "container_id" { + if k != "container_id" && + k != "gcr.container_id" && + k != "gcrfx.container_id" && + k != "replica_name" && + k != "aca.replica.name" { newTags[k] = v } } diff --git a/cmd/serverless-init/tag/tag_test.go b/cmd/serverless-init/tag/tag_test.go index 166738e21b60c..69735bbfabdc6 100644 --- a/cmd/serverless-init/tag/tag_test.go +++ b/cmd/serverless-init/tag/tag_test.go @@ -104,3 +104,9 @@ func TestDdTags(t *testing.T) { assert.Equal(t, "value5", mergedTags["key5"]) assert.Equal(t, "value6", mergedTags["key6"]) } + +func TestWithoutHighCardinalityTags(t *testing.T) { + tags := map[string]string{"key1": "value1", "key2": "value2", "container_id": "abc", "replica_name": "abc"} + filteredTags := WithoutHighCardinalityTags(tags) + assert.Equal(t, map[string]string{"key1": "value1", "key2": "value2"}, filteredTags) +} From 30d51b5d6cdb94eb7c2442b53c1216dc8d649988 Mon Sep 17 00:00:00 2001 From: Rey Abolofia Date: Mon, 25 Nov 2024 22:31:36 +0100 Subject: [PATCH 035/439] Remove serverless dependencies test. (#31149) --- .github/CODEOWNERS | 1 - .github/workflows/serverless-binary-size.yml | 4 + .gitlab/JOBOWNERS | 2 - .gitlab/source_test/golang_deps_diff.yml | 12 - cmd/serverless/dependencies_linux_amd64.txt | 1161 ------------------ cmd/serverless/dependencies_linux_arm64.txt | 1159 ----------------- tasks/go_deps.py | 108 -- 7 files changed, 4 insertions(+), 2443 deletions(-) delete mode 100644 cmd/serverless/dependencies_linux_amd64.txt delete mode 100644 cmd/serverless/dependencies_linux_arm64.txt diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 6d75876625030..13736254babae 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -220,7 +220,6 @@ /cmd/otel-agent/ @DataDog/opentelemetry /cmd/process-agent/ @DataDog/processes /cmd/serverless/ @DataDog/serverless @Datadog/serverless-aws -/cmd/serverless/dependencies*.txt @DataDog/serverless @DataDog/agent-shared-components /cmd/serverless-init/ @DataDog/serverless /cmd/system-probe/ @DataDog/ebpf-platform /cmd/system-probe/config/adjust_npm.go @DataDog/ebpf-platform @DataDog/Networks diff --git a/.github/workflows/serverless-binary-size.yml b/.github/workflows/serverless-binary-size.yml index 981a6bb520ad5..fe8e17d17d990 100644 --- a/.github/workflows/serverless-binary-size.yml +++ b/.github/workflows/serverless-binary-size.yml @@ -2,6 +2,10 @@ name: "Serverless Binary Size" on: pull_request: + paths: + - 'cmd/serverless/**' + - 'cmd/serverless-init/**' + - 'pkg/serverless/**' env: SIZE_ALLOWANCE: fromJSON(1000000) # 1 MB diff --git a/.gitlab/JOBOWNERS b/.gitlab/JOBOWNERS index 3d332795d84b6..091149d6d7af2 100644 --- a/.gitlab/JOBOWNERS +++ b/.gitlab/JOBOWNERS @@ -27,8 +27,6 @@ prepare_secagent_ebpf_functional_tests* @DataDog/agent-security # Send count metrics about Golang dependencies golang_deps_send_count_metrics @DataDog/agent-shared-components -# Golang test dependecies diff -golang_deps_test @DataDog/agent-shared-components # Golang dependency diff generation golang_deps_diff @DataDog/ebpf-platform golang_deps_commenter @DataDog/ebpf-platform diff --git a/.gitlab/source_test/golang_deps_diff.yml b/.gitlab/source_test/golang_deps_diff.yml index 40ec1b3595188..3454f19a58476 100644 --- a/.gitlab/source_test/golang_deps_diff.yml +++ b/.gitlab/source_test/golang_deps_diff.yml @@ -66,15 +66,3 @@ golang_deps_send_count_metrics: # Get API key to send metrics - DD_API_KEY=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $AGENT_API_KEY_ORG2 token) || exit $?; export DD_API_KEY - inv -e go-deps.send-count-metrics --git-sha "${CI_COMMIT_SHA}" --git-ref "${CI_COMMIT_REF_NAME}" - -golang_deps_test: - stage: source_test - image: registry.ddbuild.io/ci/datadog-agent-buildimages/deb_x64$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES - tags: ["arch:amd64"] - rules: - - when: on_success - needs: ["go_deps"] - before_script: - - !reference [.retrieve_linux_go_deps] - script: - - inv -e go-deps.test-list diff --git a/cmd/serverless/dependencies_linux_amd64.txt b/cmd/serverless/dependencies_linux_amd64.txt deleted file mode 100644 index 68065a8d5744c..0000000000000 --- a/cmd/serverless/dependencies_linux_amd64.txt +++ /dev/null @@ -1,1161 +0,0 @@ -archive/zip -bufio -bytes -cmp -compress/flate -compress/gzip -compress/zlib -container/list -context -crypto -crypto/aes -crypto/cipher -crypto/des -crypto/dsa -crypto/ecdh -crypto/ecdsa -crypto/ed25519 -crypto/elliptic -crypto/hmac -crypto/internal/alias -crypto/internal/bigmod -crypto/internal/boring -crypto/internal/boring/bbig -crypto/internal/boring/sig -crypto/internal/edwards25519 -crypto/internal/edwards25519/field -crypto/internal/nistec -crypto/internal/nistec/fiat -crypto/internal/randutil -crypto/md5 -crypto/rand -crypto/rc4 -crypto/rsa -crypto/sha1 -crypto/sha256 -crypto/sha512 -crypto/subtle -crypto/tls -crypto/x509 -crypto/x509/pkix -database/sql/driver -embed -encoding -encoding/asn1 -encoding/base32 -encoding/base64 -encoding/binary -encoding/csv -encoding/gob -encoding/hex -encoding/json -encoding/pem -encoding/xml -errors -expvar -flag -fmt -github.com/CycloneDX/cyclonedx-go -github.com/DataDog/agent-payload/v5/gogen -github.com/DataDog/agent-payload/v5/pb -github.com/DataDog/appsec-internal-go/appsec -github.com/DataDog/appsec-internal-go/httpsec -github.com/DataDog/appsec-internal-go/limiter -github.com/DataDog/appsec-internal-go/log -github.com/DataDog/appsec-internal-go/netip -github.com/DataDog/datadog-agent/cmd/serverless-init/cloudservice -github.com/DataDog/datadog-agent/cmd/serverless-init/cloudservice/helper -github.com/DataDog/datadog-agent/cmd/trace-agent/config/remote -github.com/DataDog/datadog-agent/comp/api/api/def -github.com/DataDog/datadog-agent/comp/core/autodiscovery/integration -github.com/DataDog/datadog-agent/comp/core/config -github.com/DataDog/datadog-agent/comp/core/flare/builder -github.com/DataDog/datadog-agent/comp/core/flare/types -github.com/DataDog/datadog-agent/comp/core/hostname -github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface -github.com/DataDog/datadog-agent/comp/core/log/def -github.com/DataDog/datadog-agent/comp/core/log/impl -github.com/DataDog/datadog-agent/comp/core/secrets -github.com/DataDog/datadog-agent/comp/core/status -github.com/DataDog/datadog-agent/comp/core/tagger/common -github.com/DataDog/datadog-agent/comp/core/tagger/def -github.com/DataDog/datadog-agent/comp/core/tagger/fx-noop -github.com/DataDog/datadog-agent/comp/core/tagger/impl-noop -github.com/DataDog/datadog-agent/comp/core/tagger/tags -github.com/DataDog/datadog-agent/comp/core/tagger/telemetry -github.com/DataDog/datadog-agent/comp/core/tagger/types -github.com/DataDog/datadog-agent/comp/core/tagger/utils -github.com/DataDog/datadog-agent/comp/core/telemetry -github.com/DataDog/datadog-agent/comp/core/telemetry/noopsimpl -github.com/DataDog/datadog-agent/comp/core/workloadmeta/collectors/util -github.com/DataDog/datadog-agent/comp/core/workloadmeta/def -github.com/DataDog/datadog-agent/comp/def -github.com/DataDog/datadog-agent/comp/dogstatsd/constants -github.com/DataDog/datadog-agent/comp/dogstatsd/listeners -github.com/DataDog/datadog-agent/comp/dogstatsd/listeners/ratelimit -github.com/DataDog/datadog-agent/comp/dogstatsd/mapper -github.com/DataDog/datadog-agent/comp/dogstatsd/packets -github.com/DataDog/datadog-agent/comp/dogstatsd/pidmap -github.com/DataDog/datadog-agent/comp/dogstatsd/pidmap/pidmapimpl -github.com/DataDog/datadog-agent/comp/dogstatsd/replay/def -github.com/DataDog/datadog-agent/comp/dogstatsd/replay/impl-noop -github.com/DataDog/datadog-agent/comp/dogstatsd/server -github.com/DataDog/datadog-agent/comp/dogstatsd/serverDebug -github.com/DataDog/datadog-agent/comp/dogstatsd/serverDebug/serverdebugimpl -github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder -github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder/endpoints -github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder/internal/retry -github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder/resolver -github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder/transaction -github.com/DataDog/datadog-agent/comp/forwarder/eventplatform -github.com/DataDog/datadog-agent/comp/forwarder/orchestrator -github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorinterface -github.com/DataDog/datadog-agent/comp/logs/agent -github.com/DataDog/datadog-agent/comp/logs/agent/agentimpl -github.com/DataDog/datadog-agent/comp/logs/agent/config -github.com/DataDog/datadog-agent/comp/logs/agent/flare -github.com/DataDog/datadog-agent/comp/logs/integrations/def -github.com/DataDog/datadog-agent/comp/logs/integrations/impl -github.com/DataDog/datadog-agent/comp/metadata/host/hostimpl/hosttags -github.com/DataDog/datadog-agent/comp/metadata/inventoryagent -github.com/DataDog/datadog-agent/comp/otelcol/otlp -github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter -github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter -github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/processor/infraattributesprocessor -github.com/DataDog/datadog-agent/comp/otelcol/otlp/datatype -github.com/DataDog/datadog-agent/comp/otelcol/otlp/internal/configutils -github.com/DataDog/datadog-agent/comp/remote-config/rcclient/types -github.com/DataDog/datadog-agent/comp/remote-config/rctelemetryreporter -github.com/DataDog/datadog-agent/comp/remote-config/rctelemetryreporter/rctelemetryreporterimpl -github.com/DataDog/datadog-agent/comp/serializer/compression -github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl -github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl/strategy -github.com/DataDog/datadog-agent/comp/trace/compression/def -github.com/DataDog/datadog-agent/comp/trace/compression/impl-zstd -github.com/DataDog/datadog-agent/comp/trace/config -github.com/DataDog/datadog-agent/pkg/aggregator -github.com/DataDog/datadog-agent/pkg/aggregator/ckey -github.com/DataDog/datadog-agent/pkg/aggregator/internal/tags -github.com/DataDog/datadog-agent/pkg/aggregator/internal/util -github.com/DataDog/datadog-agent/pkg/aggregator/sender -github.com/DataDog/datadog-agent/pkg/api/security -github.com/DataDog/datadog-agent/pkg/api/util -github.com/DataDog/datadog-agent/pkg/clusteragent/api/v1 -github.com/DataDog/datadog-agent/pkg/clusteragent/clusterchecks/types -github.com/DataDog/datadog-agent/pkg/collector/check/defaults -github.com/DataDog/datadog-agent/pkg/collector/check/id -github.com/DataDog/datadog-agent/pkg/collector/check/stats -github.com/DataDog/datadog-agent/pkg/config/env -github.com/DataDog/datadog-agent/pkg/config/model -github.com/DataDog/datadog-agent/pkg/config/nodetreemodel -github.com/DataDog/datadog-agent/pkg/config/remote/api -github.com/DataDog/datadog-agent/pkg/config/remote/client -github.com/DataDog/datadog-agent/pkg/config/remote/data -github.com/DataDog/datadog-agent/pkg/config/remote/meta -github.com/DataDog/datadog-agent/pkg/config/remote/service -github.com/DataDog/datadog-agent/pkg/config/remote/uptane -github.com/DataDog/datadog-agent/pkg/config/setup -github.com/DataDog/datadog-agent/pkg/config/setup/constants -github.com/DataDog/datadog-agent/pkg/config/structure -github.com/DataDog/datadog-agent/pkg/config/teeconfig -github.com/DataDog/datadog-agent/pkg/config/utils -github.com/DataDog/datadog-agent/pkg/diagnose/diagnosis -github.com/DataDog/datadog-agent/pkg/errors -github.com/DataDog/datadog-agent/pkg/languagedetection/languagemodels -github.com/DataDog/datadog-agent/pkg/languagedetection/util -github.com/DataDog/datadog-agent/pkg/logs/auditor -github.com/DataDog/datadog-agent/pkg/logs/client -github.com/DataDog/datadog-agent/pkg/logs/client/http -github.com/DataDog/datadog-agent/pkg/logs/client/tcp -github.com/DataDog/datadog-agent/pkg/logs/diagnostic -github.com/DataDog/datadog-agent/pkg/logs/internal/decoder -github.com/DataDog/datadog-agent/pkg/logs/internal/decoder/auto_multiline_detection -github.com/DataDog/datadog-agent/pkg/logs/internal/decoder/auto_multiline_detection/tokens -github.com/DataDog/datadog-agent/pkg/logs/internal/framer -github.com/DataDog/datadog-agent/pkg/logs/internal/parsers -github.com/DataDog/datadog-agent/pkg/logs/internal/parsers/dockerfile -github.com/DataDog/datadog-agent/pkg/logs/internal/parsers/encodedtext -github.com/DataDog/datadog-agent/pkg/logs/internal/parsers/integrations -github.com/DataDog/datadog-agent/pkg/logs/internal/parsers/kubernetes -github.com/DataDog/datadog-agent/pkg/logs/internal/parsers/noop -github.com/DataDog/datadog-agent/pkg/logs/internal/tag -github.com/DataDog/datadog-agent/pkg/logs/internal/util -github.com/DataDog/datadog-agent/pkg/logs/launchers -github.com/DataDog/datadog-agent/pkg/logs/launchers/channel -github.com/DataDog/datadog-agent/pkg/logs/launchers/file -github.com/DataDog/datadog-agent/pkg/logs/launchers/file/provider -github.com/DataDog/datadog-agent/pkg/logs/message -github.com/DataDog/datadog-agent/pkg/logs/metrics -github.com/DataDog/datadog-agent/pkg/logs/pipeline -github.com/DataDog/datadog-agent/pkg/logs/processor -github.com/DataDog/datadog-agent/pkg/logs/schedulers -github.com/DataDog/datadog-agent/pkg/logs/schedulers/channel -github.com/DataDog/datadog-agent/pkg/logs/sds -github.com/DataDog/datadog-agent/pkg/logs/sender -github.com/DataDog/datadog-agent/pkg/logs/service -github.com/DataDog/datadog-agent/pkg/logs/sources -github.com/DataDog/datadog-agent/pkg/logs/status -github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface -github.com/DataDog/datadog-agent/pkg/logs/status/utils -github.com/DataDog/datadog-agent/pkg/logs/tailers -github.com/DataDog/datadog-agent/pkg/logs/tailers/channel -github.com/DataDog/datadog-agent/pkg/logs/tailers/file -github.com/DataDog/datadog-agent/pkg/metrics -github.com/DataDog/datadog-agent/pkg/metrics/event -github.com/DataDog/datadog-agent/pkg/metrics/servicecheck -github.com/DataDog/datadog-agent/pkg/obfuscate -github.com/DataDog/datadog-agent/pkg/orchestrator/model -github.com/DataDog/datadog-agent/pkg/process/util/api/headers -github.com/DataDog/datadog-agent/pkg/proto/msgpgo -github.com/DataDog/datadog-agent/pkg/proto/pbgo/core -github.com/DataDog/datadog-agent/pkg/proto/pbgo/process -github.com/DataDog/datadog-agent/pkg/proto/pbgo/trace -github.com/DataDog/datadog-agent/pkg/remoteconfig/state -github.com/DataDog/datadog-agent/pkg/remoteconfig/state/products/apmsampling -github.com/DataDog/datadog-agent/pkg/runtime -github.com/DataDog/datadog-agent/pkg/serializer -github.com/DataDog/datadog-agent/pkg/serializer/internal/metrics -github.com/DataDog/datadog-agent/pkg/serializer/internal/stream -github.com/DataDog/datadog-agent/pkg/serializer/marshaler -github.com/DataDog/datadog-agent/pkg/serializer/split -github.com/DataDog/datadog-agent/pkg/serializer/types -github.com/DataDog/datadog-agent/pkg/serverless -github.com/DataDog/datadog-agent/pkg/serverless/apikey -github.com/DataDog/datadog-agent/pkg/serverless/appsec -github.com/DataDog/datadog-agent/pkg/serverless/appsec/config -github.com/DataDog/datadog-agent/pkg/serverless/appsec/httpsec -github.com/DataDog/datadog-agent/pkg/serverless/daemon -github.com/DataDog/datadog-agent/pkg/serverless/debug -github.com/DataDog/datadog-agent/pkg/serverless/executioncontext -github.com/DataDog/datadog-agent/pkg/serverless/flush -github.com/DataDog/datadog-agent/pkg/serverless/invocationlifecycle -github.com/DataDog/datadog-agent/pkg/serverless/logs -github.com/DataDog/datadog-agent/pkg/serverless/metrics -github.com/DataDog/datadog-agent/pkg/serverless/otlp -github.com/DataDog/datadog-agent/pkg/serverless/proc -github.com/DataDog/datadog-agent/pkg/serverless/proxy -github.com/DataDog/datadog-agent/pkg/serverless/random -github.com/DataDog/datadog-agent/pkg/serverless/registration -github.com/DataDog/datadog-agent/pkg/serverless/remoteconfig -github.com/DataDog/datadog-agent/pkg/serverless/streamlogs -github.com/DataDog/datadog-agent/pkg/serverless/tags -github.com/DataDog/datadog-agent/pkg/serverless/trace -github.com/DataDog/datadog-agent/pkg/serverless/trace/inferredspan -github.com/DataDog/datadog-agent/pkg/serverless/trace/propagation -github.com/DataDog/datadog-agent/pkg/serverless/trigger -github.com/DataDog/datadog-agent/pkg/serverless/trigger/events -github.com/DataDog/datadog-agent/pkg/status/health -github.com/DataDog/datadog-agent/pkg/tagger/types -github.com/DataDog/datadog-agent/pkg/tagset -github.com/DataDog/datadog-agent/pkg/telemetry -github.com/DataDog/datadog-agent/pkg/trace/agent -github.com/DataDog/datadog-agent/pkg/trace/api -github.com/DataDog/datadog-agent/pkg/trace/api/apiutil -github.com/DataDog/datadog-agent/pkg/trace/api/internal/header -github.com/DataDog/datadog-agent/pkg/trace/config -github.com/DataDog/datadog-agent/pkg/trace/event -github.com/DataDog/datadog-agent/pkg/trace/filters -github.com/DataDog/datadog-agent/pkg/trace/info -github.com/DataDog/datadog-agent/pkg/trace/log -github.com/DataDog/datadog-agent/pkg/trace/remoteconfighandler -github.com/DataDog/datadog-agent/pkg/trace/sampler -github.com/DataDog/datadog-agent/pkg/trace/stats -github.com/DataDog/datadog-agent/pkg/trace/telemetry -github.com/DataDog/datadog-agent/pkg/trace/timing -github.com/DataDog/datadog-agent/pkg/trace/traceutil -github.com/DataDog/datadog-agent/pkg/trace/transform -github.com/DataDog/datadog-agent/pkg/trace/version -github.com/DataDog/datadog-agent/pkg/trace/watchdog -github.com/DataDog/datadog-agent/pkg/trace/writer -github.com/DataDog/datadog-agent/pkg/util -github.com/DataDog/datadog-agent/pkg/util/backoff -github.com/DataDog/datadog-agent/pkg/util/buf -github.com/DataDog/datadog-agent/pkg/util/cache -github.com/DataDog/datadog-agent/pkg/util/cachedfetch -github.com/DataDog/datadog-agent/pkg/util/cgroups -github.com/DataDog/datadog-agent/pkg/util/cloudproviders/azure -github.com/DataDog/datadog-agent/pkg/util/cloudproviders/gce -github.com/DataDog/datadog-agent/pkg/util/clusteragent -github.com/DataDog/datadog-agent/pkg/util/common -github.com/DataDog/datadog-agent/pkg/util/containers -github.com/DataDog/datadog-agent/pkg/util/containers/image -github.com/DataDog/datadog-agent/pkg/util/containers/metrics/provider -github.com/DataDog/datadog-agent/pkg/util/defaultpaths -github.com/DataDog/datadog-agent/pkg/util/dmi -github.com/DataDog/datadog-agent/pkg/util/docker -github.com/DataDog/datadog-agent/pkg/util/ec2 -github.com/DataDog/datadog-agent/pkg/util/executable -github.com/DataDog/datadog-agent/pkg/util/fargate -github.com/DataDog/datadog-agent/pkg/util/filesystem -github.com/DataDog/datadog-agent/pkg/util/flavor -github.com/DataDog/datadog-agent/pkg/util/fxutil -github.com/DataDog/datadog-agent/pkg/util/fxutil/logging -github.com/DataDog/datadog-agent/pkg/util/grpc -github.com/DataDog/datadog-agent/pkg/util/grpc/context -github.com/DataDog/datadog-agent/pkg/util/hostname -github.com/DataDog/datadog-agent/pkg/util/hostname/validate -github.com/DataDog/datadog-agent/pkg/util/http -github.com/DataDog/datadog-agent/pkg/util/json -github.com/DataDog/datadog-agent/pkg/util/kubelet -github.com/DataDog/datadog-agent/pkg/util/kubernetes -github.com/DataDog/datadog-agent/pkg/util/kubernetes/clustername -github.com/DataDog/datadog-agent/pkg/util/kubernetes/hostinfo -github.com/DataDog/datadog-agent/pkg/util/log -github.com/DataDog/datadog-agent/pkg/util/log/setup -github.com/DataDog/datadog-agent/pkg/util/log/setup/internal/seelog -github.com/DataDog/datadog-agent/pkg/util/log/zap -github.com/DataDog/datadog-agent/pkg/util/optional -github.com/DataDog/datadog-agent/pkg/util/pointer -github.com/DataDog/datadog-agent/pkg/util/retry -github.com/DataDog/datadog-agent/pkg/util/scrubber -github.com/DataDog/datadog-agent/pkg/util/sort -github.com/DataDog/datadog-agent/pkg/util/startstop -github.com/DataDog/datadog-agent/pkg/util/statstracker -github.com/DataDog/datadog-agent/pkg/util/sync -github.com/DataDog/datadog-agent/pkg/util/system -github.com/DataDog/datadog-agent/pkg/util/system/socket -github.com/DataDog/datadog-agent/pkg/util/tmplvar -github.com/DataDog/datadog-agent/pkg/util/uuid -github.com/DataDog/datadog-agent/pkg/version -github.com/DataDog/datadog-api-client-go/v2 -github.com/DataDog/datadog-api-client-go/v2/api/datadog -github.com/DataDog/datadog-api-client-go/v2/api/datadogV2 -github.com/DataDog/datadog-go/v5/statsd -github.com/DataDog/go-libddwaf/v3 -github.com/DataDog/go-libddwaf/v3/errors -github.com/DataDog/go-libddwaf/v3/internal/bindings -github.com/DataDog/go-libddwaf/v3/internal/lib -github.com/DataDog/go-libddwaf/v3/internal/log -github.com/DataDog/go-libddwaf/v3/internal/support -github.com/DataDog/go-libddwaf/v3/internal/unsafe -github.com/DataDog/go-libddwaf/v3/timer -github.com/DataDog/go-sqllexer -github.com/DataDog/go-tuf/client -github.com/DataDog/go-tuf/data -github.com/DataDog/go-tuf/internal/roles -github.com/DataDog/go-tuf/internal/sets -github.com/DataDog/go-tuf/pkg/keys -github.com/DataDog/go-tuf/pkg/targets -github.com/DataDog/go-tuf/util -github.com/DataDog/go-tuf/verify -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes/azure -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes/ec2 -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes/gcp -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes/source -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics/internal/instrumentationlibrary -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics/internal/instrumentationscope -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics/internal/utils -github.com/DataDog/opentelemetry-mapping-go/pkg/quantile -github.com/DataDog/opentelemetry-mapping-go/pkg/quantile/summary -github.com/DataDog/sketches-go/ddsketch -github.com/DataDog/sketches-go/ddsketch/encoding -github.com/DataDog/sketches-go/ddsketch/mapping -github.com/DataDog/sketches-go/ddsketch/pb/sketchpb -github.com/DataDog/sketches-go/ddsketch/stat -github.com/DataDog/sketches-go/ddsketch/store -github.com/DataDog/viper -github.com/DataDog/zstd -github.com/Masterminds/semver -github.com/aws/aws-lambda-go/events -github.com/aws/aws-sdk-go-v2/aws -github.com/aws/aws-sdk-go-v2/aws/arn -github.com/aws/aws-sdk-go-v2/aws/defaults -github.com/aws/aws-sdk-go-v2/aws/middleware -github.com/aws/aws-sdk-go-v2/aws/protocol/query -github.com/aws/aws-sdk-go-v2/aws/protocol/restjson -github.com/aws/aws-sdk-go-v2/aws/protocol/xml -github.com/aws/aws-sdk-go-v2/aws/ratelimit -github.com/aws/aws-sdk-go-v2/aws/retry -github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4 -github.com/aws/aws-sdk-go-v2/aws/signer/v4 -github.com/aws/aws-sdk-go-v2/aws/transport/http -github.com/aws/aws-sdk-go-v2/config -github.com/aws/aws-sdk-go-v2/credentials -github.com/aws/aws-sdk-go-v2/credentials/ec2rolecreds -github.com/aws/aws-sdk-go-v2/credentials/endpointcreds -github.com/aws/aws-sdk-go-v2/credentials/endpointcreds/internal/client -github.com/aws/aws-sdk-go-v2/credentials/processcreds -github.com/aws/aws-sdk-go-v2/credentials/ssocreds -github.com/aws/aws-sdk-go-v2/credentials/stscreds -github.com/aws/aws-sdk-go-v2/feature/ec2/imds -github.com/aws/aws-sdk-go-v2/feature/ec2/imds/internal/config -github.com/aws/aws-sdk-go-v2/internal/auth -github.com/aws/aws-sdk-go-v2/internal/auth/smithy -github.com/aws/aws-sdk-go-v2/internal/configsources -github.com/aws/aws-sdk-go-v2/internal/context -github.com/aws/aws-sdk-go-v2/internal/endpoints -github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 -github.com/aws/aws-sdk-go-v2/internal/ini -github.com/aws/aws-sdk-go-v2/internal/middleware -github.com/aws/aws-sdk-go-v2/internal/rand -github.com/aws/aws-sdk-go-v2/internal/sdk -github.com/aws/aws-sdk-go-v2/internal/sdkio -github.com/aws/aws-sdk-go-v2/internal/shareddefaults -github.com/aws/aws-sdk-go-v2/internal/strings -github.com/aws/aws-sdk-go-v2/internal/sync/singleflight -github.com/aws/aws-sdk-go-v2/internal/timeconv -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url -github.com/aws/aws-sdk-go-v2/service/kms -github.com/aws/aws-sdk-go-v2/service/kms/internal/endpoints -github.com/aws/aws-sdk-go-v2/service/kms/types -github.com/aws/aws-sdk-go-v2/service/secretsmanager -github.com/aws/aws-sdk-go-v2/service/secretsmanager/internal/endpoints -github.com/aws/aws-sdk-go-v2/service/secretsmanager/types -github.com/aws/aws-sdk-go-v2/service/sso -github.com/aws/aws-sdk-go-v2/service/sso/internal/endpoints -github.com/aws/aws-sdk-go-v2/service/sso/types -github.com/aws/aws-sdk-go-v2/service/ssooidc -github.com/aws/aws-sdk-go-v2/service/ssooidc/internal/endpoints -github.com/aws/aws-sdk-go-v2/service/ssooidc/types -github.com/aws/aws-sdk-go-v2/service/sts -github.com/aws/aws-sdk-go-v2/service/sts/internal/endpoints -github.com/aws/aws-sdk-go-v2/service/sts/types -github.com/aws/smithy-go -github.com/aws/smithy-go/auth -github.com/aws/smithy-go/auth/bearer -github.com/aws/smithy-go/context -github.com/aws/smithy-go/document -github.com/aws/smithy-go/encoding -github.com/aws/smithy-go/encoding/httpbinding -github.com/aws/smithy-go/encoding/json -github.com/aws/smithy-go/encoding/xml -github.com/aws/smithy-go/endpoints -github.com/aws/smithy-go/internal/sync/singleflight -github.com/aws/smithy-go/io -github.com/aws/smithy-go/logging -github.com/aws/smithy-go/metrics -github.com/aws/smithy-go/middleware -github.com/aws/smithy-go/private/requestcompression -github.com/aws/smithy-go/ptr -github.com/aws/smithy-go/rand -github.com/aws/smithy-go/time -github.com/aws/smithy-go/tracing -github.com/aws/smithy-go/transport/http -github.com/aws/smithy-go/transport/http/internal/io -github.com/benbjohnson/clock -github.com/beorn7/perks/quantile -github.com/briandowns/spinner -github.com/cenkalti/backoff/v4 -github.com/cespare/xxhash/v2 -github.com/cihub/seelog -github.com/containerd/cgroups/v3 -github.com/containerd/cgroups/v3/cgroup1 -github.com/containerd/cgroups/v3/cgroup1/stats -github.com/coreos/go-systemd/v22/dbus -github.com/davecgh/go-spew/spew -github.com/docker/go-units -github.com/dustin/go-humanize -github.com/eapache/queue/v2 -github.com/ebitengine/purego -github.com/ebitengine/purego/internal/cgo -github.com/ebitengine/purego/internal/strings -github.com/fatih/color -github.com/felixge/httpsnoop -github.com/fsnotify/fsnotify -github.com/fsnotify/fsnotify/internal -github.com/go-logr/logr -github.com/go-logr/logr/funcr -github.com/go-logr/stdr -github.com/go-viper/mapstructure/v2 -github.com/go-viper/mapstructure/v2/internal/errors -github.com/godbus/dbus/v5 -github.com/gogo/protobuf/gogoproto -github.com/gogo/protobuf/jsonpb -github.com/gogo/protobuf/proto -github.com/gogo/protobuf/protoc-gen-gogo/descriptor -github.com/gogo/protobuf/sortkeys -github.com/gogo/protobuf/types -github.com/golang/mock/gomock -github.com/golang/protobuf/descriptor -github.com/golang/protobuf/jsonpb -github.com/golang/protobuf/proto -github.com/golang/protobuf/protoc-gen-go/descriptor -github.com/golang/protobuf/ptypes/any -github.com/golang/protobuf/ptypes/duration -github.com/golang/protobuf/ptypes/empty -github.com/golang/protobuf/ptypes/timestamp -github.com/golang/protobuf/ptypes/wrappers -github.com/golang/snappy -github.com/google/uuid -github.com/grpc-ecosystem/go-grpc-middleware -github.com/grpc-ecosystem/go-grpc-middleware/auth -github.com/grpc-ecosystem/go-grpc-middleware/util/metautils -github.com/grpc-ecosystem/grpc-gateway/internal -github.com/grpc-ecosystem/grpc-gateway/runtime -github.com/grpc-ecosystem/grpc-gateway/utilities -github.com/grpc-ecosystem/grpc-gateway/v2/internal/httprule -github.com/grpc-ecosystem/grpc-gateway/v2/runtime -github.com/grpc-ecosystem/grpc-gateway/v2/utilities -github.com/hashicorp/errwrap -github.com/hashicorp/go-multierror -github.com/hashicorp/go-secure-stdlib/parseutil -github.com/hashicorp/go-secure-stdlib/strutil -github.com/hashicorp/go-sockaddr -github.com/hashicorp/go-version -github.com/hashicorp/golang-lru/v2 -github.com/hashicorp/golang-lru/v2/internal -github.com/hashicorp/golang-lru/v2/simplelru -github.com/hashicorp/hcl -github.com/hashicorp/hcl/hcl/ast -github.com/hashicorp/hcl/hcl/parser -github.com/hashicorp/hcl/hcl/printer -github.com/hashicorp/hcl/hcl/scanner -github.com/hashicorp/hcl/hcl/strconv -github.com/hashicorp/hcl/hcl/token -github.com/hashicorp/hcl/json/parser -github.com/hashicorp/hcl/json/scanner -github.com/hashicorp/hcl/json/token -github.com/imdario/mergo -github.com/json-iterator/go -github.com/kardianos/osext -github.com/karrick/godirwalk -github.com/klauspost/compress -github.com/klauspost/compress/fse -github.com/klauspost/compress/huff0 -github.com/klauspost/compress/internal/cpuinfo -github.com/klauspost/compress/internal/snapref -github.com/klauspost/compress/zstd -github.com/klauspost/compress/zstd/internal/xxhash -github.com/knadh/koanf/maps -github.com/knadh/koanf/providers/confmap -github.com/knadh/koanf/v2 -github.com/magiconair/properties -github.com/mattn/go-colorable -github.com/mattn/go-isatty -github.com/mattn/go-runewidth -github.com/mitchellh/copystructure -github.com/mitchellh/mapstructure -github.com/mitchellh/reflectwalk -github.com/modern-go/concurrent -github.com/modern-go/reflect2 -github.com/mohae/deepcopy -github.com/mostynb/go-grpc-compression/internal/snappy -github.com/mostynb/go-grpc-compression/internal/zstd -github.com/mostynb/go-grpc-compression/nonclobbering/snappy -github.com/mostynb/go-grpc-compression/nonclobbering/zstd -github.com/munnerz/goautoneg -github.com/olekukonko/tablewriter -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog/config -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry -github.com/opencontainers/go-digest -github.com/opencontainers/image-spec/specs-go -github.com/opencontainers/image-spec/specs-go/v1 -github.com/opencontainers/runtime-spec/specs-go -github.com/outcaste-io/ristretto -github.com/outcaste-io/ristretto/z -github.com/outcaste-io/ristretto/z/simd -github.com/patrickmn/go-cache -github.com/pelletier/go-toml -github.com/philhofer/fwd -github.com/pierrec/lz4/v4 -github.com/pierrec/lz4/v4/internal/lz4block -github.com/pierrec/lz4/v4/internal/lz4errors -github.com/pierrec/lz4/v4/internal/lz4stream -github.com/pierrec/lz4/v4/internal/xxh32 -github.com/pkg/errors -github.com/pmezard/go-difflib/difflib -github.com/prometheus/client_golang/internal/github.com/golang/gddo/httputil -github.com/prometheus/client_golang/internal/github.com/golang/gddo/httputil/header -github.com/prometheus/client_golang/prometheus -github.com/prometheus/client_golang/prometheus/internal -github.com/prometheus/client_golang/prometheus/promhttp -github.com/prometheus/client_model/go -github.com/prometheus/common/expfmt -github.com/prometheus/common/model -github.com/prometheus/procfs -github.com/prometheus/procfs/internal/fs -github.com/prometheus/procfs/internal/util -github.com/richardartoul/molecule -github.com/richardartoul/molecule/src/codec -github.com/richardartoul/molecule/src/protowire -github.com/rivo/uniseg -github.com/rs/cors -github.com/rs/cors/internal -github.com/ryanuber/go-glob -github.com/secure-systems-lab/go-securesystemslib/cjson -github.com/shirou/gopsutil/v3/common -github.com/shirou/gopsutil/v3/cpu -github.com/shirou/gopsutil/v3/disk -github.com/shirou/gopsutil/v3/host -github.com/shirou/gopsutil/v3/internal/common -github.com/shirou/gopsutil/v3/mem -github.com/shirou/gopsutil/v3/net -github.com/shirou/gopsutil/v3/process -github.com/shirou/gopsutil/v4/common -github.com/shirou/gopsutil/v4/cpu -github.com/shirou/gopsutil/v4/internal/common -github.com/shirou/gopsutil/v4/mem -github.com/shirou/gopsutil/v4/net -github.com/shirou/gopsutil/v4/process -github.com/spf13/afero -github.com/spf13/afero/internal/common -github.com/spf13/afero/mem -github.com/spf13/cast -github.com/spf13/cobra -github.com/spf13/jwalterweatherman -github.com/spf13/pflag -github.com/stormcat24/protodep/pkg/logger -github.com/stretchr/testify/assert -github.com/stretchr/testify/require -github.com/tinylib/msgp/msgp -github.com/tklauser/go-sysconf -github.com/tklauser/numcpus -github.com/twmb/murmur3 -go.etcd.io/bbolt -go.opentelemetry.io/collector/client -go.opentelemetry.io/collector/component -go.opentelemetry.io/collector/component/componentstatus -go.opentelemetry.io/collector/component/componenttest -go.opentelemetry.io/collector/config/configauth -go.opentelemetry.io/collector/config/configcompression -go.opentelemetry.io/collector/config/configgrpc -go.opentelemetry.io/collector/config/confighttp -go.opentelemetry.io/collector/config/confignet -go.opentelemetry.io/collector/config/configopaque -go.opentelemetry.io/collector/config/configretry -go.opentelemetry.io/collector/config/configtelemetry -go.opentelemetry.io/collector/config/configtls -go.opentelemetry.io/collector/config/internal -go.opentelemetry.io/collector/confmap -go.opentelemetry.io/collector/confmap/internal/mapstructure -go.opentelemetry.io/collector/connector -go.opentelemetry.io/collector/connector/connectorprofiles -go.opentelemetry.io/collector/connector/connectortest -go.opentelemetry.io/collector/connector/internal -go.opentelemetry.io/collector/consumer -go.opentelemetry.io/collector/consumer/consumererror -go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles -go.opentelemetry.io/collector/consumer/consumererror/internal -go.opentelemetry.io/collector/consumer/consumerprofiles -go.opentelemetry.io/collector/consumer/consumertest -go.opentelemetry.io/collector/consumer/internal -go.opentelemetry.io/collector/exporter -go.opentelemetry.io/collector/exporter/debugexporter -go.opentelemetry.io/collector/exporter/debugexporter/internal/metadata -go.opentelemetry.io/collector/exporter/debugexporter/internal/normal -go.opentelemetry.io/collector/exporter/debugexporter/internal/otlptext -go.opentelemetry.io/collector/exporter/exporterbatcher -go.opentelemetry.io/collector/exporter/exporterhelper -go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles -go.opentelemetry.io/collector/exporter/exporterhelper/internal -go.opentelemetry.io/collector/exporter/exporterhelper/internal/metadata -go.opentelemetry.io/collector/exporter/exporterprofiles -go.opentelemetry.io/collector/exporter/exporterqueue -go.opentelemetry.io/collector/exporter/exportertest -go.opentelemetry.io/collector/exporter/internal -go.opentelemetry.io/collector/exporter/internal/experr -go.opentelemetry.io/collector/exporter/internal/queue -go.opentelemetry.io/collector/exporter/otlpexporter -go.opentelemetry.io/collector/exporter/otlpexporter/internal/metadata -go.opentelemetry.io/collector/extension -go.opentelemetry.io/collector/extension/auth -go.opentelemetry.io/collector/extension/experimental/storage -go.opentelemetry.io/collector/extension/extensioncapabilities -go.opentelemetry.io/collector/extension/extensiontest -go.opentelemetry.io/collector/featuregate -go.opentelemetry.io/collector/internal/fanoutconsumer -go.opentelemetry.io/collector/internal/httphelper -go.opentelemetry.io/collector/internal/sharedcomponent -go.opentelemetry.io/collector/otelcol -go.opentelemetry.io/collector/otelcol/internal/configunmarshaler -go.opentelemetry.io/collector/otelcol/internal/grpclog -go.opentelemetry.io/collector/pdata/internal -go.opentelemetry.io/collector/pdata/internal/data -go.opentelemetry.io/collector/pdata/internal/data/protogen/collector/logs/v1 -go.opentelemetry.io/collector/pdata/internal/data/protogen/collector/metrics/v1 -go.opentelemetry.io/collector/pdata/internal/data/protogen/collector/profiles/v1experimental -go.opentelemetry.io/collector/pdata/internal/data/protogen/collector/trace/v1 -go.opentelemetry.io/collector/pdata/internal/data/protogen/common/v1 -go.opentelemetry.io/collector/pdata/internal/data/protogen/logs/v1 -go.opentelemetry.io/collector/pdata/internal/data/protogen/metrics/v1 -go.opentelemetry.io/collector/pdata/internal/data/protogen/profiles/v1experimental -go.opentelemetry.io/collector/pdata/internal/data/protogen/resource/v1 -go.opentelemetry.io/collector/pdata/internal/data/protogen/trace/v1 -go.opentelemetry.io/collector/pdata/internal/json -go.opentelemetry.io/collector/pdata/internal/otlp -go.opentelemetry.io/collector/pdata/pcommon -go.opentelemetry.io/collector/pdata/plog -go.opentelemetry.io/collector/pdata/plog/plogotlp -go.opentelemetry.io/collector/pdata/pmetric -go.opentelemetry.io/collector/pdata/pmetric/pmetricotlp -go.opentelemetry.io/collector/pdata/pprofile -go.opentelemetry.io/collector/pdata/pprofile/pprofileotlp -go.opentelemetry.io/collector/pdata/ptrace -go.opentelemetry.io/collector/pdata/ptrace/ptraceotlp -go.opentelemetry.io/collector/pdata/testdata -go.opentelemetry.io/collector/pipeline -go.opentelemetry.io/collector/pipeline/internal/globalsignal -go.opentelemetry.io/collector/pipeline/pipelineprofiles -go.opentelemetry.io/collector/processor -go.opentelemetry.io/collector/processor/batchprocessor -go.opentelemetry.io/collector/processor/batchprocessor/internal/metadata -go.opentelemetry.io/collector/processor/internal -go.opentelemetry.io/collector/processor/processorhelper -go.opentelemetry.io/collector/processor/processorhelper/internal/metadata -go.opentelemetry.io/collector/processor/processorprofiles -go.opentelemetry.io/collector/processor/processortest -go.opentelemetry.io/collector/receiver -go.opentelemetry.io/collector/receiver/internal -go.opentelemetry.io/collector/receiver/otlpreceiver -go.opentelemetry.io/collector/receiver/otlpreceiver/internal/errors -go.opentelemetry.io/collector/receiver/otlpreceiver/internal/logs -go.opentelemetry.io/collector/receiver/otlpreceiver/internal/metadata -go.opentelemetry.io/collector/receiver/otlpreceiver/internal/metrics -go.opentelemetry.io/collector/receiver/otlpreceiver/internal/profiles -go.opentelemetry.io/collector/receiver/otlpreceiver/internal/trace -go.opentelemetry.io/collector/receiver/receiverhelper -go.opentelemetry.io/collector/receiver/receiverhelper/internal/metadata -go.opentelemetry.io/collector/receiver/receiverprofiles -go.opentelemetry.io/collector/receiver/receivertest -go.opentelemetry.io/collector/semconv/v1.17.0 -go.opentelemetry.io/collector/semconv/v1.18.0 -go.opentelemetry.io/collector/semconv/v1.21.0 -go.opentelemetry.io/collector/semconv/v1.26.0 -go.opentelemetry.io/collector/semconv/v1.6.1 -go.opentelemetry.io/collector/service -go.opentelemetry.io/collector/service/extensions -go.opentelemetry.io/collector/service/internal/builders -go.opentelemetry.io/collector/service/internal/capabilityconsumer -go.opentelemetry.io/collector/service/internal/components -go.opentelemetry.io/collector/service/internal/graph -go.opentelemetry.io/collector/service/internal/metadata -go.opentelemetry.io/collector/service/internal/proctelemetry -go.opentelemetry.io/collector/service/internal/resource -go.opentelemetry.io/collector/service/internal/status -go.opentelemetry.io/collector/service/internal/zpages -go.opentelemetry.io/collector/service/pipelines -go.opentelemetry.io/collector/service/telemetry -go.opentelemetry.io/collector/service/telemetry/internal/otelinit -go.opentelemetry.io/contrib/bridges/otelzap -go.opentelemetry.io/contrib/config -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/internal -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/request -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconvutil -go.opentelemetry.io/contrib/propagators/b3 -go.opentelemetry.io/otel -go.opentelemetry.io/otel/attribute -go.opentelemetry.io/otel/baggage -go.opentelemetry.io/otel/codes -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp/internal/retry -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp/internal/transform -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal/envconfig -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal/oconf -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal/retry -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal/transform -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/internal -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/internal/envconfig -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/internal/oconf -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/internal/retry -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/internal/transform -go.opentelemetry.io/otel/exporters/otlp/otlptrace -go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/tracetransform -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/internal -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/internal/envconfig -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/internal/otlpconfig -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/internal/retry -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp/internal -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp/internal/envconfig -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp/internal/otlpconfig -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp/internal/retry -go.opentelemetry.io/otel/exporters/prometheus -go.opentelemetry.io/otel/exporters/stdout/stdoutlog -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric -go.opentelemetry.io/otel/exporters/stdout/stdouttrace -go.opentelemetry.io/otel/internal -go.opentelemetry.io/otel/internal/attribute -go.opentelemetry.io/otel/internal/baggage -go.opentelemetry.io/otel/internal/global -go.opentelemetry.io/otel/log -go.opentelemetry.io/otel/log/embedded -go.opentelemetry.io/otel/log/global -go.opentelemetry.io/otel/log/internal/global -go.opentelemetry.io/otel/log/noop -go.opentelemetry.io/otel/metric -go.opentelemetry.io/otel/metric/embedded -go.opentelemetry.io/otel/metric/noop -go.opentelemetry.io/otel/propagation -go.opentelemetry.io/otel/sdk -go.opentelemetry.io/otel/sdk/instrumentation -go.opentelemetry.io/otel/sdk/internal/env -go.opentelemetry.io/otel/sdk/internal/x -go.opentelemetry.io/otel/sdk/log -go.opentelemetry.io/otel/sdk/log/internal/x -go.opentelemetry.io/otel/sdk/metric -go.opentelemetry.io/otel/sdk/metric/exemplar -go.opentelemetry.io/otel/sdk/metric/internal -go.opentelemetry.io/otel/sdk/metric/internal/aggregate -go.opentelemetry.io/otel/sdk/metric/internal/x -go.opentelemetry.io/otel/sdk/metric/metricdata -go.opentelemetry.io/otel/sdk/resource -go.opentelemetry.io/otel/sdk/trace -go.opentelemetry.io/otel/sdk/trace/tracetest -go.opentelemetry.io/otel/semconv/v1.17.0 -go.opentelemetry.io/otel/semconv/v1.20.0 -go.opentelemetry.io/otel/semconv/v1.26.0 -go.opentelemetry.io/otel/trace -go.opentelemetry.io/otel/trace/embedded -go.opentelemetry.io/otel/trace/noop -go.opentelemetry.io/proto/otlp/collector/logs/v1 -go.opentelemetry.io/proto/otlp/collector/metrics/v1 -go.opentelemetry.io/proto/otlp/collector/trace/v1 -go.opentelemetry.io/proto/otlp/common/v1 -go.opentelemetry.io/proto/otlp/logs/v1 -go.opentelemetry.io/proto/otlp/metrics/v1 -go.opentelemetry.io/proto/otlp/resource/v1 -go.opentelemetry.io/proto/otlp/trace/v1 -go.uber.org/atomic -go.uber.org/automaxprocs/internal/cgroups -go.uber.org/automaxprocs/internal/runtime -go.uber.org/automaxprocs/maxprocs -go.uber.org/dig -go.uber.org/dig/internal/digclock -go.uber.org/dig/internal/digerror -go.uber.org/dig/internal/digreflect -go.uber.org/dig/internal/dot -go.uber.org/dig/internal/graph -go.uber.org/fx -go.uber.org/fx/fxevent -go.uber.org/fx/internal/fxclock -go.uber.org/fx/internal/fxlog -go.uber.org/fx/internal/fxreflect -go.uber.org/fx/internal/lifecycle -go.uber.org/multierr -go.uber.org/zap -go.uber.org/zap/buffer -go.uber.org/zap/internal -go.uber.org/zap/internal/bufferpool -go.uber.org/zap/internal/color -go.uber.org/zap/internal/exit -go.uber.org/zap/internal/pool -go.uber.org/zap/internal/stacktrace -go.uber.org/zap/zapcore -go.uber.org/zap/zapgrpc -go/token -golang.org/x/exp/constraints -golang.org/x/exp/maps -golang.org/x/exp/slices -golang.org/x/mod/semver -golang.org/x/net/http/httpguts -golang.org/x/net/http/httpproxy -golang.org/x/net/http2 -golang.org/x/net/http2/h2c -golang.org/x/net/http2/hpack -golang.org/x/net/idna -golang.org/x/net/internal/socks -golang.org/x/net/internal/timeseries -golang.org/x/net/proxy -golang.org/x/net/publicsuffix -golang.org/x/net/trace -golang.org/x/oauth2 -golang.org/x/oauth2/internal -golang.org/x/sys/unix -golang.org/x/term -golang.org/x/text/cases -golang.org/x/text/encoding -golang.org/x/text/encoding/internal -golang.org/x/text/encoding/internal/identifier -golang.org/x/text/encoding/japanese -golang.org/x/text/encoding/unicode -golang.org/x/text/internal -golang.org/x/text/internal/language -golang.org/x/text/internal/language/compact -golang.org/x/text/internal/tag -golang.org/x/text/internal/utf8internal -golang.org/x/text/language -golang.org/x/text/runes -golang.org/x/text/secure/bidirule -golang.org/x/text/transform -golang.org/x/text/unicode/bidi -golang.org/x/text/unicode/norm -golang.org/x/time/rate -golang.org/x/xerrors -golang.org/x/xerrors/internal -gonum.org/v1/gonum/blas -gonum.org/v1/gonum/blas/blas64 -gonum.org/v1/gonum/blas/cblas128 -gonum.org/v1/gonum/blas/gonum -gonum.org/v1/gonum/floats -gonum.org/v1/gonum/floats/scalar -gonum.org/v1/gonum/graph -gonum.org/v1/gonum/graph/internal/linear -gonum.org/v1/gonum/graph/internal/set -gonum.org/v1/gonum/graph/iterator -gonum.org/v1/gonum/graph/set/uid -gonum.org/v1/gonum/graph/simple -gonum.org/v1/gonum/graph/topo -gonum.org/v1/gonum/graph/traverse -gonum.org/v1/gonum/internal/asm/c128 -gonum.org/v1/gonum/internal/asm/c64 -gonum.org/v1/gonum/internal/asm/f32 -gonum.org/v1/gonum/internal/asm/f64 -gonum.org/v1/gonum/internal/cmplx64 -gonum.org/v1/gonum/internal/math32 -gonum.org/v1/gonum/internal/order -gonum.org/v1/gonum/lapack -gonum.org/v1/gonum/lapack/gonum -gonum.org/v1/gonum/lapack/lapack64 -gonum.org/v1/gonum/mat -google.golang.org/genproto/googleapis/api -google.golang.org/genproto/googleapis/api/annotations -google.golang.org/genproto/googleapis/api/httpbody -google.golang.org/genproto/googleapis/rpc/errdetails -google.golang.org/genproto/googleapis/rpc/status -google.golang.org/genproto/protobuf/field_mask -google.golang.org/grpc -google.golang.org/grpc/attributes -google.golang.org/grpc/backoff -google.golang.org/grpc/balancer -google.golang.org/grpc/balancer/base -google.golang.org/grpc/balancer/grpclb/state -google.golang.org/grpc/balancer/pickfirst -google.golang.org/grpc/balancer/roundrobin -google.golang.org/grpc/binarylog/grpc_binarylog_v1 -google.golang.org/grpc/channelz -google.golang.org/grpc/codes -google.golang.org/grpc/connectivity -google.golang.org/grpc/credentials -google.golang.org/grpc/credentials/insecure -google.golang.org/grpc/encoding -google.golang.org/grpc/encoding/gzip -google.golang.org/grpc/encoding/proto -google.golang.org/grpc/experimental/stats -google.golang.org/grpc/grpclog -google.golang.org/grpc/grpclog/internal -google.golang.org/grpc/health/grpc_health_v1 -google.golang.org/grpc/internal -google.golang.org/grpc/internal/backoff -google.golang.org/grpc/internal/balancer/gracefulswitch -google.golang.org/grpc/internal/balancerload -google.golang.org/grpc/internal/binarylog -google.golang.org/grpc/internal/buffer -google.golang.org/grpc/internal/channelz -google.golang.org/grpc/internal/credentials -google.golang.org/grpc/internal/envconfig -google.golang.org/grpc/internal/grpclog -google.golang.org/grpc/internal/grpcsync -google.golang.org/grpc/internal/grpcutil -google.golang.org/grpc/internal/idle -google.golang.org/grpc/internal/metadata -google.golang.org/grpc/internal/pretty -google.golang.org/grpc/internal/resolver -google.golang.org/grpc/internal/resolver/dns -google.golang.org/grpc/internal/resolver/dns/internal -google.golang.org/grpc/internal/resolver/passthrough -google.golang.org/grpc/internal/resolver/unix -google.golang.org/grpc/internal/serviceconfig -google.golang.org/grpc/internal/stats -google.golang.org/grpc/internal/status -google.golang.org/grpc/internal/syscall -google.golang.org/grpc/internal/transport -google.golang.org/grpc/internal/transport/networktype -google.golang.org/grpc/keepalive -google.golang.org/grpc/mem -google.golang.org/grpc/metadata -google.golang.org/grpc/peer -google.golang.org/grpc/resolver -google.golang.org/grpc/resolver/dns -google.golang.org/grpc/serviceconfig -google.golang.org/grpc/stats -google.golang.org/grpc/status -google.golang.org/grpc/tap -google.golang.org/protobuf/encoding/protodelim -google.golang.org/protobuf/encoding/protojson -google.golang.org/protobuf/encoding/prototext -google.golang.org/protobuf/encoding/protowire -google.golang.org/protobuf/internal/descfmt -google.golang.org/protobuf/internal/descopts -google.golang.org/protobuf/internal/detrand -google.golang.org/protobuf/internal/editiondefaults -google.golang.org/protobuf/internal/editionssupport -google.golang.org/protobuf/internal/encoding/defval -google.golang.org/protobuf/internal/encoding/json -google.golang.org/protobuf/internal/encoding/messageset -google.golang.org/protobuf/internal/encoding/tag -google.golang.org/protobuf/internal/encoding/text -google.golang.org/protobuf/internal/errors -google.golang.org/protobuf/internal/filedesc -google.golang.org/protobuf/internal/filetype -google.golang.org/protobuf/internal/flags -google.golang.org/protobuf/internal/genid -google.golang.org/protobuf/internal/impl -google.golang.org/protobuf/internal/order -google.golang.org/protobuf/internal/pragma -google.golang.org/protobuf/internal/set -google.golang.org/protobuf/internal/strs -google.golang.org/protobuf/internal/version -google.golang.org/protobuf/proto -google.golang.org/protobuf/protoadapt -google.golang.org/protobuf/reflect/protodesc -google.golang.org/protobuf/reflect/protoreflect -google.golang.org/protobuf/reflect/protoregistry -google.golang.org/protobuf/runtime/protoiface -google.golang.org/protobuf/runtime/protoimpl -google.golang.org/protobuf/types/descriptorpb -google.golang.org/protobuf/types/gofeaturespb -google.golang.org/protobuf/types/known/anypb -google.golang.org/protobuf/types/known/durationpb -google.golang.org/protobuf/types/known/emptypb -google.golang.org/protobuf/types/known/fieldmaskpb -google.golang.org/protobuf/types/known/structpb -google.golang.org/protobuf/types/known/timestamppb -google.golang.org/protobuf/types/known/wrapperspb -gopkg.in/DataDog/dd-trace-go.v1/appsec/events -gopkg.in/DataDog/dd-trace-go.v1/datastreams/options -gopkg.in/DataDog/dd-trace-go.v1/ddtrace -gopkg.in/DataDog/dd-trace-go.v1/ddtrace/ext -gopkg.in/DataDog/dd-trace-go.v1/ddtrace/internal -gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer -gopkg.in/DataDog/dd-trace-go.v1/internal -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/config -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/dyngo -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/emitter/graphqlsec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/emitter/grpcsec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/emitter/httpsec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/emitter/ossec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/emitter/sqlsec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/emitter/trace -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/emitter/usersec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/emitter/waf -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/emitter/waf/actions -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/emitter/waf/addresses -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/listener -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/listener/graphqlsec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/listener/grpcsec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/listener/httpsec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/listener/ossec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/listener/sqlsec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/listener/trace -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/listener/usersec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/listener/waf -gopkg.in/DataDog/dd-trace-go.v1/internal/civisibility/constants -gopkg.in/DataDog/dd-trace-go.v1/internal/civisibility/utils -gopkg.in/DataDog/dd-trace-go.v1/internal/datastreams -gopkg.in/DataDog/dd-trace-go.v1/internal/globalconfig -gopkg.in/DataDog/dd-trace-go.v1/internal/hostname -gopkg.in/DataDog/dd-trace-go.v1/internal/hostname/azure -gopkg.in/DataDog/dd-trace-go.v1/internal/hostname/cachedfetch -gopkg.in/DataDog/dd-trace-go.v1/internal/hostname/ec2 -gopkg.in/DataDog/dd-trace-go.v1/internal/hostname/ecs -gopkg.in/DataDog/dd-trace-go.v1/internal/hostname/gce -gopkg.in/DataDog/dd-trace-go.v1/internal/hostname/httputils -gopkg.in/DataDog/dd-trace-go.v1/internal/hostname/validate -gopkg.in/DataDog/dd-trace-go.v1/internal/log -gopkg.in/DataDog/dd-trace-go.v1/internal/namingschema -gopkg.in/DataDog/dd-trace-go.v1/internal/normalizer -gopkg.in/DataDog/dd-trace-go.v1/internal/orchestrion -gopkg.in/DataDog/dd-trace-go.v1/internal/osinfo -gopkg.in/DataDog/dd-trace-go.v1/internal/remoteconfig -gopkg.in/DataDog/dd-trace-go.v1/internal/samplernames -gopkg.in/DataDog/dd-trace-go.v1/internal/stacktrace -gopkg.in/DataDog/dd-trace-go.v1/internal/telemetry -gopkg.in/DataDog/dd-trace-go.v1/internal/traceprof -gopkg.in/DataDog/dd-trace-go.v1/internal/version -gopkg.in/ini.v1 -gopkg.in/yaml.v2 -gopkg.in/yaml.v3 -hash -hash/adler32 -hash/crc32 -hash/fnv -html -html/template -io -io/fs -io/ioutil -k8s.io/apimachinery/pkg/runtime/schema -k8s.io/apimachinery/pkg/util/sets -log -log/internal -log/slog -log/slog/internal -log/slog/internal/buffer -maps -math -math/big -math/bits -math/cmplx -math/rand -math/rand/v2 -mime -mime/multipart -mime/quotedprintable -net -net/http -net/http/cookiejar -net/http/httptest -net/http/httptrace -net/http/httputil -net/http/internal -net/http/internal/ascii -net/http/internal/testcert -net/netip -net/smtp -net/textproto -net/url -os -os/exec -os/signal -os/user -path -path/filepath -reflect -regexp -regexp/syntax -runtime -runtime/cgo -runtime/debug -runtime/internal/atomic -runtime/internal/math -runtime/internal/sys -runtime/internal/syscall -runtime/metrics -runtime/pprof -runtime/trace -slices -sort -strconv -strings -sync -sync/atomic -syscall -testing -text/tabwriter -text/template -text/template/parse -time -unicode -unicode/utf16 -unicode/utf8 -unsafe -vendor/golang.org/x/crypto/chacha20 -vendor/golang.org/x/crypto/chacha20poly1305 -vendor/golang.org/x/crypto/cryptobyte -vendor/golang.org/x/crypto/cryptobyte/asn1 -vendor/golang.org/x/crypto/hkdf -vendor/golang.org/x/crypto/internal/alias -vendor/golang.org/x/crypto/internal/poly1305 -vendor/golang.org/x/net/dns/dnsmessage -vendor/golang.org/x/net/http/httpguts -vendor/golang.org/x/net/http/httpproxy -vendor/golang.org/x/net/http2/hpack -vendor/golang.org/x/net/idna -vendor/golang.org/x/sys/cpu -vendor/golang.org/x/text/secure/bidirule -vendor/golang.org/x/text/transform -vendor/golang.org/x/text/unicode/bidi -vendor/golang.org/x/text/unicode/norm \ No newline at end of file diff --git a/cmd/serverless/dependencies_linux_arm64.txt b/cmd/serverless/dependencies_linux_arm64.txt deleted file mode 100644 index a088a7cef0b9d..0000000000000 --- a/cmd/serverless/dependencies_linux_arm64.txt +++ /dev/null @@ -1,1159 +0,0 @@ -archive/zip -bufio -bytes -cmp -compress/flate -compress/gzip -compress/zlib -container/list -context -crypto -crypto/aes -crypto/cipher -crypto/des -crypto/dsa -crypto/ecdh -crypto/ecdsa -crypto/ed25519 -crypto/elliptic -crypto/hmac -crypto/internal/alias -crypto/internal/bigmod -crypto/internal/boring -crypto/internal/boring/bbig -crypto/internal/boring/sig -crypto/internal/edwards25519 -crypto/internal/edwards25519/field -crypto/internal/nistec -crypto/internal/nistec/fiat -crypto/internal/randutil -crypto/md5 -crypto/rand -crypto/rc4 -crypto/rsa -crypto/sha1 -crypto/sha256 -crypto/sha512 -crypto/subtle -crypto/tls -crypto/x509 -crypto/x509/pkix -database/sql/driver -embed -encoding -encoding/asn1 -encoding/base32 -encoding/base64 -encoding/binary -encoding/csv -encoding/gob -encoding/hex -encoding/json -encoding/pem -encoding/xml -errors -expvar -flag -fmt -github.com/CycloneDX/cyclonedx-go -github.com/DataDog/agent-payload/v5/gogen -github.com/DataDog/agent-payload/v5/pb -github.com/DataDog/appsec-internal-go/appsec -github.com/DataDog/appsec-internal-go/httpsec -github.com/DataDog/appsec-internal-go/limiter -github.com/DataDog/appsec-internal-go/log -github.com/DataDog/appsec-internal-go/netip -github.com/DataDog/datadog-agent/cmd/serverless-init/cloudservice -github.com/DataDog/datadog-agent/cmd/serverless-init/cloudservice/helper -github.com/DataDog/datadog-agent/cmd/trace-agent/config/remote -github.com/DataDog/datadog-agent/comp/api/api/def -github.com/DataDog/datadog-agent/comp/core/autodiscovery/integration -github.com/DataDog/datadog-agent/comp/core/config -github.com/DataDog/datadog-agent/comp/core/flare/builder -github.com/DataDog/datadog-agent/comp/core/flare/types -github.com/DataDog/datadog-agent/comp/core/hostname -github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface -github.com/DataDog/datadog-agent/comp/core/log/def -github.com/DataDog/datadog-agent/comp/core/log/impl -github.com/DataDog/datadog-agent/comp/core/secrets -github.com/DataDog/datadog-agent/comp/core/status -github.com/DataDog/datadog-agent/comp/core/tagger/common -github.com/DataDog/datadog-agent/comp/core/tagger/def -github.com/DataDog/datadog-agent/comp/core/tagger/fx-noop -github.com/DataDog/datadog-agent/comp/core/tagger/impl-noop -github.com/DataDog/datadog-agent/comp/core/tagger/tags -github.com/DataDog/datadog-agent/comp/core/tagger/telemetry -github.com/DataDog/datadog-agent/comp/core/tagger/types -github.com/DataDog/datadog-agent/comp/core/tagger/utils -github.com/DataDog/datadog-agent/comp/core/telemetry -github.com/DataDog/datadog-agent/comp/core/telemetry/noopsimpl -github.com/DataDog/datadog-agent/comp/core/workloadmeta/collectors/util -github.com/DataDog/datadog-agent/comp/core/workloadmeta/def -github.com/DataDog/datadog-agent/comp/def -github.com/DataDog/datadog-agent/comp/dogstatsd/constants -github.com/DataDog/datadog-agent/comp/dogstatsd/listeners -github.com/DataDog/datadog-agent/comp/dogstatsd/listeners/ratelimit -github.com/DataDog/datadog-agent/comp/dogstatsd/mapper -github.com/DataDog/datadog-agent/comp/dogstatsd/packets -github.com/DataDog/datadog-agent/comp/dogstatsd/pidmap -github.com/DataDog/datadog-agent/comp/dogstatsd/pidmap/pidmapimpl -github.com/DataDog/datadog-agent/comp/dogstatsd/replay/def -github.com/DataDog/datadog-agent/comp/dogstatsd/replay/impl-noop -github.com/DataDog/datadog-agent/comp/dogstatsd/server -github.com/DataDog/datadog-agent/comp/dogstatsd/serverDebug -github.com/DataDog/datadog-agent/comp/dogstatsd/serverDebug/serverdebugimpl -github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder -github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder/endpoints -github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder/internal/retry -github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder/resolver -github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder/transaction -github.com/DataDog/datadog-agent/comp/forwarder/eventplatform -github.com/DataDog/datadog-agent/comp/forwarder/orchestrator -github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorinterface -github.com/DataDog/datadog-agent/comp/logs/agent -github.com/DataDog/datadog-agent/comp/logs/agent/agentimpl -github.com/DataDog/datadog-agent/comp/logs/agent/config -github.com/DataDog/datadog-agent/comp/logs/agent/flare -github.com/DataDog/datadog-agent/comp/logs/integrations/def -github.com/DataDog/datadog-agent/comp/logs/integrations/impl -github.com/DataDog/datadog-agent/comp/metadata/host/hostimpl/hosttags -github.com/DataDog/datadog-agent/comp/metadata/inventoryagent -github.com/DataDog/datadog-agent/comp/otelcol/otlp -github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter -github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter -github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/processor/infraattributesprocessor -github.com/DataDog/datadog-agent/comp/otelcol/otlp/datatype -github.com/DataDog/datadog-agent/comp/otelcol/otlp/internal/configutils -github.com/DataDog/datadog-agent/comp/remote-config/rcclient/types -github.com/DataDog/datadog-agent/comp/remote-config/rctelemetryreporter -github.com/DataDog/datadog-agent/comp/remote-config/rctelemetryreporter/rctelemetryreporterimpl -github.com/DataDog/datadog-agent/comp/serializer/compression -github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl -github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl/strategy -github.com/DataDog/datadog-agent/comp/trace/compression/def -github.com/DataDog/datadog-agent/comp/trace/compression/impl-zstd -github.com/DataDog/datadog-agent/comp/trace/config -github.com/DataDog/datadog-agent/pkg/aggregator -github.com/DataDog/datadog-agent/pkg/aggregator/ckey -github.com/DataDog/datadog-agent/pkg/aggregator/internal/tags -github.com/DataDog/datadog-agent/pkg/aggregator/internal/util -github.com/DataDog/datadog-agent/pkg/aggregator/sender -github.com/DataDog/datadog-agent/pkg/api/security -github.com/DataDog/datadog-agent/pkg/api/util -github.com/DataDog/datadog-agent/pkg/clusteragent/api/v1 -github.com/DataDog/datadog-agent/pkg/clusteragent/clusterchecks/types -github.com/DataDog/datadog-agent/pkg/collector/check/defaults -github.com/DataDog/datadog-agent/pkg/collector/check/id -github.com/DataDog/datadog-agent/pkg/collector/check/stats -github.com/DataDog/datadog-agent/pkg/config/env -github.com/DataDog/datadog-agent/pkg/config/model -github.com/DataDog/datadog-agent/pkg/config/nodetreemodel -github.com/DataDog/datadog-agent/pkg/config/remote/api -github.com/DataDog/datadog-agent/pkg/config/remote/client -github.com/DataDog/datadog-agent/pkg/config/remote/data -github.com/DataDog/datadog-agent/pkg/config/remote/meta -github.com/DataDog/datadog-agent/pkg/config/remote/service -github.com/DataDog/datadog-agent/pkg/config/remote/uptane -github.com/DataDog/datadog-agent/pkg/config/setup -github.com/DataDog/datadog-agent/pkg/config/setup/constants -github.com/DataDog/datadog-agent/pkg/config/structure -github.com/DataDog/datadog-agent/pkg/config/teeconfig -github.com/DataDog/datadog-agent/pkg/config/utils -github.com/DataDog/datadog-agent/pkg/diagnose/diagnosis -github.com/DataDog/datadog-agent/pkg/errors -github.com/DataDog/datadog-agent/pkg/languagedetection/languagemodels -github.com/DataDog/datadog-agent/pkg/languagedetection/util -github.com/DataDog/datadog-agent/pkg/logs/auditor -github.com/DataDog/datadog-agent/pkg/logs/client -github.com/DataDog/datadog-agent/pkg/logs/client/http -github.com/DataDog/datadog-agent/pkg/logs/client/tcp -github.com/DataDog/datadog-agent/pkg/logs/diagnostic -github.com/DataDog/datadog-agent/pkg/logs/internal/decoder -github.com/DataDog/datadog-agent/pkg/logs/internal/decoder/auto_multiline_detection -github.com/DataDog/datadog-agent/pkg/logs/internal/decoder/auto_multiline_detection/tokens -github.com/DataDog/datadog-agent/pkg/logs/internal/framer -github.com/DataDog/datadog-agent/pkg/logs/internal/parsers -github.com/DataDog/datadog-agent/pkg/logs/internal/parsers/dockerfile -github.com/DataDog/datadog-agent/pkg/logs/internal/parsers/encodedtext -github.com/DataDog/datadog-agent/pkg/logs/internal/parsers/integrations -github.com/DataDog/datadog-agent/pkg/logs/internal/parsers/kubernetes -github.com/DataDog/datadog-agent/pkg/logs/internal/parsers/noop -github.com/DataDog/datadog-agent/pkg/logs/internal/tag -github.com/DataDog/datadog-agent/pkg/logs/internal/util -github.com/DataDog/datadog-agent/pkg/logs/launchers -github.com/DataDog/datadog-agent/pkg/logs/launchers/channel -github.com/DataDog/datadog-agent/pkg/logs/launchers/file -github.com/DataDog/datadog-agent/pkg/logs/launchers/file/provider -github.com/DataDog/datadog-agent/pkg/logs/message -github.com/DataDog/datadog-agent/pkg/logs/metrics -github.com/DataDog/datadog-agent/pkg/logs/pipeline -github.com/DataDog/datadog-agent/pkg/logs/processor -github.com/DataDog/datadog-agent/pkg/logs/schedulers -github.com/DataDog/datadog-agent/pkg/logs/schedulers/channel -github.com/DataDog/datadog-agent/pkg/logs/sds -github.com/DataDog/datadog-agent/pkg/logs/sender -github.com/DataDog/datadog-agent/pkg/logs/service -github.com/DataDog/datadog-agent/pkg/logs/sources -github.com/DataDog/datadog-agent/pkg/logs/status -github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface -github.com/DataDog/datadog-agent/pkg/logs/status/utils -github.com/DataDog/datadog-agent/pkg/logs/tailers -github.com/DataDog/datadog-agent/pkg/logs/tailers/channel -github.com/DataDog/datadog-agent/pkg/logs/tailers/file -github.com/DataDog/datadog-agent/pkg/metrics -github.com/DataDog/datadog-agent/pkg/metrics/event -github.com/DataDog/datadog-agent/pkg/metrics/servicecheck -github.com/DataDog/datadog-agent/pkg/obfuscate -github.com/DataDog/datadog-agent/pkg/orchestrator/model -github.com/DataDog/datadog-agent/pkg/process/util/api/headers -github.com/DataDog/datadog-agent/pkg/proto/msgpgo -github.com/DataDog/datadog-agent/pkg/proto/pbgo/core -github.com/DataDog/datadog-agent/pkg/proto/pbgo/process -github.com/DataDog/datadog-agent/pkg/proto/pbgo/trace -github.com/DataDog/datadog-agent/pkg/remoteconfig/state -github.com/DataDog/datadog-agent/pkg/remoteconfig/state/products/apmsampling -github.com/DataDog/datadog-agent/pkg/runtime -github.com/DataDog/datadog-agent/pkg/serializer -github.com/DataDog/datadog-agent/pkg/serializer/internal/metrics -github.com/DataDog/datadog-agent/pkg/serializer/internal/stream -github.com/DataDog/datadog-agent/pkg/serializer/marshaler -github.com/DataDog/datadog-agent/pkg/serializer/split -github.com/DataDog/datadog-agent/pkg/serializer/types -github.com/DataDog/datadog-agent/pkg/serverless -github.com/DataDog/datadog-agent/pkg/serverless/apikey -github.com/DataDog/datadog-agent/pkg/serverless/appsec -github.com/DataDog/datadog-agent/pkg/serverless/appsec/config -github.com/DataDog/datadog-agent/pkg/serverless/appsec/httpsec -github.com/DataDog/datadog-agent/pkg/serverless/daemon -github.com/DataDog/datadog-agent/pkg/serverless/debug -github.com/DataDog/datadog-agent/pkg/serverless/executioncontext -github.com/DataDog/datadog-agent/pkg/serverless/flush -github.com/DataDog/datadog-agent/pkg/serverless/invocationlifecycle -github.com/DataDog/datadog-agent/pkg/serverless/logs -github.com/DataDog/datadog-agent/pkg/serverless/metrics -github.com/DataDog/datadog-agent/pkg/serverless/otlp -github.com/DataDog/datadog-agent/pkg/serverless/proc -github.com/DataDog/datadog-agent/pkg/serverless/proxy -github.com/DataDog/datadog-agent/pkg/serverless/random -github.com/DataDog/datadog-agent/pkg/serverless/registration -github.com/DataDog/datadog-agent/pkg/serverless/remoteconfig -github.com/DataDog/datadog-agent/pkg/serverless/streamlogs -github.com/DataDog/datadog-agent/pkg/serverless/tags -github.com/DataDog/datadog-agent/pkg/serverless/trace -github.com/DataDog/datadog-agent/pkg/serverless/trace/inferredspan -github.com/DataDog/datadog-agent/pkg/serverless/trace/propagation -github.com/DataDog/datadog-agent/pkg/serverless/trigger -github.com/DataDog/datadog-agent/pkg/serverless/trigger/events -github.com/DataDog/datadog-agent/pkg/status/health -github.com/DataDog/datadog-agent/pkg/tagger/types -github.com/DataDog/datadog-agent/pkg/tagset -github.com/DataDog/datadog-agent/pkg/telemetry -github.com/DataDog/datadog-agent/pkg/trace/agent -github.com/DataDog/datadog-agent/pkg/trace/api -github.com/DataDog/datadog-agent/pkg/trace/api/apiutil -github.com/DataDog/datadog-agent/pkg/trace/api/internal/header -github.com/DataDog/datadog-agent/pkg/trace/config -github.com/DataDog/datadog-agent/pkg/trace/event -github.com/DataDog/datadog-agent/pkg/trace/filters -github.com/DataDog/datadog-agent/pkg/trace/info -github.com/DataDog/datadog-agent/pkg/trace/log -github.com/DataDog/datadog-agent/pkg/trace/remoteconfighandler -github.com/DataDog/datadog-agent/pkg/trace/sampler -github.com/DataDog/datadog-agent/pkg/trace/stats -github.com/DataDog/datadog-agent/pkg/trace/telemetry -github.com/DataDog/datadog-agent/pkg/trace/timing -github.com/DataDog/datadog-agent/pkg/trace/traceutil -github.com/DataDog/datadog-agent/pkg/trace/transform -github.com/DataDog/datadog-agent/pkg/trace/version -github.com/DataDog/datadog-agent/pkg/trace/watchdog -github.com/DataDog/datadog-agent/pkg/trace/writer -github.com/DataDog/datadog-agent/pkg/util -github.com/DataDog/datadog-agent/pkg/util/backoff -github.com/DataDog/datadog-agent/pkg/util/buf -github.com/DataDog/datadog-agent/pkg/util/cache -github.com/DataDog/datadog-agent/pkg/util/cachedfetch -github.com/DataDog/datadog-agent/pkg/util/cgroups -github.com/DataDog/datadog-agent/pkg/util/cloudproviders/azure -github.com/DataDog/datadog-agent/pkg/util/cloudproviders/gce -github.com/DataDog/datadog-agent/pkg/util/clusteragent -github.com/DataDog/datadog-agent/pkg/util/common -github.com/DataDog/datadog-agent/pkg/util/containers -github.com/DataDog/datadog-agent/pkg/util/containers/image -github.com/DataDog/datadog-agent/pkg/util/containers/metrics/provider -github.com/DataDog/datadog-agent/pkg/util/defaultpaths -github.com/DataDog/datadog-agent/pkg/util/dmi -github.com/DataDog/datadog-agent/pkg/util/docker -github.com/DataDog/datadog-agent/pkg/util/ec2 -github.com/DataDog/datadog-agent/pkg/util/executable -github.com/DataDog/datadog-agent/pkg/util/fargate -github.com/DataDog/datadog-agent/pkg/util/filesystem -github.com/DataDog/datadog-agent/pkg/util/flavor -github.com/DataDog/datadog-agent/pkg/util/fxutil -github.com/DataDog/datadog-agent/pkg/util/fxutil/logging -github.com/DataDog/datadog-agent/pkg/util/grpc -github.com/DataDog/datadog-agent/pkg/util/grpc/context -github.com/DataDog/datadog-agent/pkg/util/hostname -github.com/DataDog/datadog-agent/pkg/util/hostname/validate -github.com/DataDog/datadog-agent/pkg/util/http -github.com/DataDog/datadog-agent/pkg/util/json -github.com/DataDog/datadog-agent/pkg/util/kubelet -github.com/DataDog/datadog-agent/pkg/util/kubernetes -github.com/DataDog/datadog-agent/pkg/util/kubernetes/clustername -github.com/DataDog/datadog-agent/pkg/util/kubernetes/hostinfo -github.com/DataDog/datadog-agent/pkg/util/log -github.com/DataDog/datadog-agent/pkg/util/log/setup -github.com/DataDog/datadog-agent/pkg/util/log/setup/internal/seelog -github.com/DataDog/datadog-agent/pkg/util/log/zap -github.com/DataDog/datadog-agent/pkg/util/optional -github.com/DataDog/datadog-agent/pkg/util/pointer -github.com/DataDog/datadog-agent/pkg/util/retry -github.com/DataDog/datadog-agent/pkg/util/scrubber -github.com/DataDog/datadog-agent/pkg/util/sort -github.com/DataDog/datadog-agent/pkg/util/startstop -github.com/DataDog/datadog-agent/pkg/util/statstracker -github.com/DataDog/datadog-agent/pkg/util/sync -github.com/DataDog/datadog-agent/pkg/util/system -github.com/DataDog/datadog-agent/pkg/util/system/socket -github.com/DataDog/datadog-agent/pkg/util/tmplvar -github.com/DataDog/datadog-agent/pkg/util/uuid -github.com/DataDog/datadog-agent/pkg/version -github.com/DataDog/datadog-api-client-go/v2 -github.com/DataDog/datadog-api-client-go/v2/api/datadog -github.com/DataDog/datadog-api-client-go/v2/api/datadogV2 -github.com/DataDog/datadog-go/v5/statsd -github.com/DataDog/go-libddwaf/v3 -github.com/DataDog/go-libddwaf/v3/errors -github.com/DataDog/go-libddwaf/v3/internal/bindings -github.com/DataDog/go-libddwaf/v3/internal/lib -github.com/DataDog/go-libddwaf/v3/internal/log -github.com/DataDog/go-libddwaf/v3/internal/support -github.com/DataDog/go-libddwaf/v3/internal/unsafe -github.com/DataDog/go-libddwaf/v3/timer -github.com/DataDog/go-sqllexer -github.com/DataDog/go-tuf/client -github.com/DataDog/go-tuf/data -github.com/DataDog/go-tuf/internal/roles -github.com/DataDog/go-tuf/internal/sets -github.com/DataDog/go-tuf/pkg/keys -github.com/DataDog/go-tuf/pkg/targets -github.com/DataDog/go-tuf/util -github.com/DataDog/go-tuf/verify -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes/azure -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes/ec2 -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes/gcp -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes/source -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics/internal/instrumentationlibrary -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics/internal/instrumentationscope -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics/internal/utils -github.com/DataDog/opentelemetry-mapping-go/pkg/quantile -github.com/DataDog/opentelemetry-mapping-go/pkg/quantile/summary -github.com/DataDog/sketches-go/ddsketch -github.com/DataDog/sketches-go/ddsketch/encoding -github.com/DataDog/sketches-go/ddsketch/mapping -github.com/DataDog/sketches-go/ddsketch/pb/sketchpb -github.com/DataDog/sketches-go/ddsketch/stat -github.com/DataDog/sketches-go/ddsketch/store -github.com/DataDog/viper -github.com/DataDog/zstd -github.com/Masterminds/semver -github.com/aws/aws-lambda-go/events -github.com/aws/aws-sdk-go-v2/aws -github.com/aws/aws-sdk-go-v2/aws/arn -github.com/aws/aws-sdk-go-v2/aws/defaults -github.com/aws/aws-sdk-go-v2/aws/middleware -github.com/aws/aws-sdk-go-v2/aws/protocol/query -github.com/aws/aws-sdk-go-v2/aws/protocol/restjson -github.com/aws/aws-sdk-go-v2/aws/protocol/xml -github.com/aws/aws-sdk-go-v2/aws/ratelimit -github.com/aws/aws-sdk-go-v2/aws/retry -github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4 -github.com/aws/aws-sdk-go-v2/aws/signer/v4 -github.com/aws/aws-sdk-go-v2/aws/transport/http -github.com/aws/aws-sdk-go-v2/config -github.com/aws/aws-sdk-go-v2/credentials -github.com/aws/aws-sdk-go-v2/credentials/ec2rolecreds -github.com/aws/aws-sdk-go-v2/credentials/endpointcreds -github.com/aws/aws-sdk-go-v2/credentials/endpointcreds/internal/client -github.com/aws/aws-sdk-go-v2/credentials/processcreds -github.com/aws/aws-sdk-go-v2/credentials/ssocreds -github.com/aws/aws-sdk-go-v2/credentials/stscreds -github.com/aws/aws-sdk-go-v2/feature/ec2/imds -github.com/aws/aws-sdk-go-v2/feature/ec2/imds/internal/config -github.com/aws/aws-sdk-go-v2/internal/auth -github.com/aws/aws-sdk-go-v2/internal/auth/smithy -github.com/aws/aws-sdk-go-v2/internal/configsources -github.com/aws/aws-sdk-go-v2/internal/context -github.com/aws/aws-sdk-go-v2/internal/endpoints -github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 -github.com/aws/aws-sdk-go-v2/internal/ini -github.com/aws/aws-sdk-go-v2/internal/middleware -github.com/aws/aws-sdk-go-v2/internal/rand -github.com/aws/aws-sdk-go-v2/internal/sdk -github.com/aws/aws-sdk-go-v2/internal/sdkio -github.com/aws/aws-sdk-go-v2/internal/shareddefaults -github.com/aws/aws-sdk-go-v2/internal/strings -github.com/aws/aws-sdk-go-v2/internal/sync/singleflight -github.com/aws/aws-sdk-go-v2/internal/timeconv -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url -github.com/aws/aws-sdk-go-v2/service/kms -github.com/aws/aws-sdk-go-v2/service/kms/internal/endpoints -github.com/aws/aws-sdk-go-v2/service/kms/types -github.com/aws/aws-sdk-go-v2/service/secretsmanager -github.com/aws/aws-sdk-go-v2/service/secretsmanager/internal/endpoints -github.com/aws/aws-sdk-go-v2/service/secretsmanager/types -github.com/aws/aws-sdk-go-v2/service/sso -github.com/aws/aws-sdk-go-v2/service/sso/internal/endpoints -github.com/aws/aws-sdk-go-v2/service/sso/types -github.com/aws/aws-sdk-go-v2/service/ssooidc -github.com/aws/aws-sdk-go-v2/service/ssooidc/internal/endpoints -github.com/aws/aws-sdk-go-v2/service/ssooidc/types -github.com/aws/aws-sdk-go-v2/service/sts -github.com/aws/aws-sdk-go-v2/service/sts/internal/endpoints -github.com/aws/aws-sdk-go-v2/service/sts/types -github.com/aws/smithy-go -github.com/aws/smithy-go/auth -github.com/aws/smithy-go/auth/bearer -github.com/aws/smithy-go/context -github.com/aws/smithy-go/document -github.com/aws/smithy-go/encoding -github.com/aws/smithy-go/encoding/httpbinding -github.com/aws/smithy-go/encoding/json -github.com/aws/smithy-go/encoding/xml -github.com/aws/smithy-go/endpoints -github.com/aws/smithy-go/internal/sync/singleflight -github.com/aws/smithy-go/io -github.com/aws/smithy-go/logging -github.com/aws/smithy-go/metrics -github.com/aws/smithy-go/middleware -github.com/aws/smithy-go/private/requestcompression -github.com/aws/smithy-go/ptr -github.com/aws/smithy-go/rand -github.com/aws/smithy-go/time -github.com/aws/smithy-go/tracing -github.com/aws/smithy-go/transport/http -github.com/aws/smithy-go/transport/http/internal/io -github.com/benbjohnson/clock -github.com/beorn7/perks/quantile -github.com/briandowns/spinner -github.com/cenkalti/backoff/v4 -github.com/cespare/xxhash/v2 -github.com/cihub/seelog -github.com/containerd/cgroups/v3 -github.com/containerd/cgroups/v3/cgroup1 -github.com/containerd/cgroups/v3/cgroup1/stats -github.com/coreos/go-systemd/v22/dbus -github.com/davecgh/go-spew/spew -github.com/docker/go-units -github.com/dustin/go-humanize -github.com/eapache/queue/v2 -github.com/ebitengine/purego -github.com/ebitengine/purego/internal/cgo -github.com/ebitengine/purego/internal/strings -github.com/fatih/color -github.com/felixge/httpsnoop -github.com/fsnotify/fsnotify -github.com/fsnotify/fsnotify/internal -github.com/go-logr/logr -github.com/go-logr/logr/funcr -github.com/go-logr/stdr -github.com/go-viper/mapstructure/v2 -github.com/go-viper/mapstructure/v2/internal/errors -github.com/godbus/dbus/v5 -github.com/gogo/protobuf/gogoproto -github.com/gogo/protobuf/jsonpb -github.com/gogo/protobuf/proto -github.com/gogo/protobuf/protoc-gen-gogo/descriptor -github.com/gogo/protobuf/sortkeys -github.com/gogo/protobuf/types -github.com/golang/mock/gomock -github.com/golang/protobuf/descriptor -github.com/golang/protobuf/jsonpb -github.com/golang/protobuf/proto -github.com/golang/protobuf/protoc-gen-go/descriptor -github.com/golang/protobuf/ptypes/any -github.com/golang/protobuf/ptypes/duration -github.com/golang/protobuf/ptypes/empty -github.com/golang/protobuf/ptypes/timestamp -github.com/golang/protobuf/ptypes/wrappers -github.com/golang/snappy -github.com/google/uuid -github.com/grpc-ecosystem/go-grpc-middleware -github.com/grpc-ecosystem/go-grpc-middleware/auth -github.com/grpc-ecosystem/go-grpc-middleware/util/metautils -github.com/grpc-ecosystem/grpc-gateway/internal -github.com/grpc-ecosystem/grpc-gateway/runtime -github.com/grpc-ecosystem/grpc-gateway/utilities -github.com/grpc-ecosystem/grpc-gateway/v2/internal/httprule -github.com/grpc-ecosystem/grpc-gateway/v2/runtime -github.com/grpc-ecosystem/grpc-gateway/v2/utilities -github.com/hashicorp/errwrap -github.com/hashicorp/go-multierror -github.com/hashicorp/go-secure-stdlib/parseutil -github.com/hashicorp/go-secure-stdlib/strutil -github.com/hashicorp/go-sockaddr -github.com/hashicorp/go-version -github.com/hashicorp/golang-lru/v2 -github.com/hashicorp/golang-lru/v2/internal -github.com/hashicorp/golang-lru/v2/simplelru -github.com/hashicorp/hcl -github.com/hashicorp/hcl/hcl/ast -github.com/hashicorp/hcl/hcl/parser -github.com/hashicorp/hcl/hcl/printer -github.com/hashicorp/hcl/hcl/scanner -github.com/hashicorp/hcl/hcl/strconv -github.com/hashicorp/hcl/hcl/token -github.com/hashicorp/hcl/json/parser -github.com/hashicorp/hcl/json/scanner -github.com/hashicorp/hcl/json/token -github.com/imdario/mergo -github.com/json-iterator/go -github.com/kardianos/osext -github.com/karrick/godirwalk -github.com/klauspost/compress -github.com/klauspost/compress/fse -github.com/klauspost/compress/huff0 -github.com/klauspost/compress/internal/snapref -github.com/klauspost/compress/zstd -github.com/klauspost/compress/zstd/internal/xxhash -github.com/knadh/koanf/maps -github.com/knadh/koanf/providers/confmap -github.com/knadh/koanf/v2 -github.com/magiconair/properties -github.com/mattn/go-colorable -github.com/mattn/go-isatty -github.com/mattn/go-runewidth -github.com/mitchellh/copystructure -github.com/mitchellh/mapstructure -github.com/mitchellh/reflectwalk -github.com/modern-go/concurrent -github.com/modern-go/reflect2 -github.com/mohae/deepcopy -github.com/mostynb/go-grpc-compression/internal/snappy -github.com/mostynb/go-grpc-compression/internal/zstd -github.com/mostynb/go-grpc-compression/nonclobbering/snappy -github.com/mostynb/go-grpc-compression/nonclobbering/zstd -github.com/munnerz/goautoneg -github.com/olekukonko/tablewriter -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog/config -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry -github.com/opencontainers/go-digest -github.com/opencontainers/image-spec/specs-go -github.com/opencontainers/image-spec/specs-go/v1 -github.com/opencontainers/runtime-spec/specs-go -github.com/outcaste-io/ristretto -github.com/outcaste-io/ristretto/z -github.com/outcaste-io/ristretto/z/simd -github.com/patrickmn/go-cache -github.com/pelletier/go-toml -github.com/philhofer/fwd -github.com/pierrec/lz4/v4 -github.com/pierrec/lz4/v4/internal/lz4block -github.com/pierrec/lz4/v4/internal/lz4errors -github.com/pierrec/lz4/v4/internal/lz4stream -github.com/pierrec/lz4/v4/internal/xxh32 -github.com/pkg/errors -github.com/pmezard/go-difflib/difflib -github.com/prometheus/client_golang/internal/github.com/golang/gddo/httputil -github.com/prometheus/client_golang/internal/github.com/golang/gddo/httputil/header -github.com/prometheus/client_golang/prometheus -github.com/prometheus/client_golang/prometheus/internal -github.com/prometheus/client_golang/prometheus/promhttp -github.com/prometheus/client_model/go -github.com/prometheus/common/expfmt -github.com/prometheus/common/model -github.com/prometheus/procfs -github.com/prometheus/procfs/internal/fs -github.com/prometheus/procfs/internal/util -github.com/richardartoul/molecule -github.com/richardartoul/molecule/src/codec -github.com/richardartoul/molecule/src/protowire -github.com/rivo/uniseg -github.com/rs/cors -github.com/rs/cors/internal -github.com/ryanuber/go-glob -github.com/secure-systems-lab/go-securesystemslib/cjson -github.com/shirou/gopsutil/v3/common -github.com/shirou/gopsutil/v3/cpu -github.com/shirou/gopsutil/v3/disk -github.com/shirou/gopsutil/v3/host -github.com/shirou/gopsutil/v3/internal/common -github.com/shirou/gopsutil/v3/mem -github.com/shirou/gopsutil/v3/net -github.com/shirou/gopsutil/v3/process -github.com/shirou/gopsutil/v4/common -github.com/shirou/gopsutil/v4/cpu -github.com/shirou/gopsutil/v4/internal/common -github.com/shirou/gopsutil/v4/mem -github.com/shirou/gopsutil/v4/net -github.com/shirou/gopsutil/v4/process -github.com/spf13/afero -github.com/spf13/afero/internal/common -github.com/spf13/afero/mem -github.com/spf13/cast -github.com/spf13/cobra -github.com/spf13/jwalterweatherman -github.com/spf13/pflag -github.com/stormcat24/protodep/pkg/logger -github.com/stretchr/testify/assert -github.com/stretchr/testify/require -github.com/tinylib/msgp/msgp -github.com/tklauser/go-sysconf -github.com/tklauser/numcpus -github.com/twmb/murmur3 -go.etcd.io/bbolt -go.opentelemetry.io/collector/client -go.opentelemetry.io/collector/component -go.opentelemetry.io/collector/component/componentstatus -go.opentelemetry.io/collector/component/componenttest -go.opentelemetry.io/collector/config/configauth -go.opentelemetry.io/collector/config/configcompression -go.opentelemetry.io/collector/config/configgrpc -go.opentelemetry.io/collector/config/confighttp -go.opentelemetry.io/collector/config/confignet -go.opentelemetry.io/collector/config/configopaque -go.opentelemetry.io/collector/config/configretry -go.opentelemetry.io/collector/config/configtelemetry -go.opentelemetry.io/collector/config/configtls -go.opentelemetry.io/collector/config/internal -go.opentelemetry.io/collector/confmap -go.opentelemetry.io/collector/confmap/internal/mapstructure -go.opentelemetry.io/collector/connector -go.opentelemetry.io/collector/connector/connectorprofiles -go.opentelemetry.io/collector/connector/connectortest -go.opentelemetry.io/collector/connector/internal -go.opentelemetry.io/collector/consumer -go.opentelemetry.io/collector/consumer/consumererror -go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles -go.opentelemetry.io/collector/consumer/consumererror/internal -go.opentelemetry.io/collector/consumer/consumerprofiles -go.opentelemetry.io/collector/consumer/consumertest -go.opentelemetry.io/collector/consumer/internal -go.opentelemetry.io/collector/exporter -go.opentelemetry.io/collector/exporter/debugexporter -go.opentelemetry.io/collector/exporter/debugexporter/internal/metadata -go.opentelemetry.io/collector/exporter/debugexporter/internal/normal -go.opentelemetry.io/collector/exporter/debugexporter/internal/otlptext -go.opentelemetry.io/collector/exporter/exporterbatcher -go.opentelemetry.io/collector/exporter/exporterhelper -go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles -go.opentelemetry.io/collector/exporter/exporterhelper/internal -go.opentelemetry.io/collector/exporter/exporterhelper/internal/metadata -go.opentelemetry.io/collector/exporter/exporterprofiles -go.opentelemetry.io/collector/exporter/exporterqueue -go.opentelemetry.io/collector/exporter/exportertest -go.opentelemetry.io/collector/exporter/internal -go.opentelemetry.io/collector/exporter/internal/experr -go.opentelemetry.io/collector/exporter/internal/queue -go.opentelemetry.io/collector/exporter/otlpexporter -go.opentelemetry.io/collector/exporter/otlpexporter/internal/metadata -go.opentelemetry.io/collector/extension -go.opentelemetry.io/collector/extension/auth -go.opentelemetry.io/collector/extension/experimental/storage -go.opentelemetry.io/collector/extension/extensioncapabilities -go.opentelemetry.io/collector/extension/extensiontest -go.opentelemetry.io/collector/featuregate -go.opentelemetry.io/collector/internal/fanoutconsumer -go.opentelemetry.io/collector/internal/httphelper -go.opentelemetry.io/collector/internal/sharedcomponent -go.opentelemetry.io/collector/otelcol -go.opentelemetry.io/collector/otelcol/internal/configunmarshaler -go.opentelemetry.io/collector/otelcol/internal/grpclog -go.opentelemetry.io/collector/pdata/internal -go.opentelemetry.io/collector/pdata/internal/data -go.opentelemetry.io/collector/pdata/internal/data/protogen/collector/logs/v1 -go.opentelemetry.io/collector/pdata/internal/data/protogen/collector/metrics/v1 -go.opentelemetry.io/collector/pdata/internal/data/protogen/collector/profiles/v1experimental -go.opentelemetry.io/collector/pdata/internal/data/protogen/collector/trace/v1 -go.opentelemetry.io/collector/pdata/internal/data/protogen/common/v1 -go.opentelemetry.io/collector/pdata/internal/data/protogen/logs/v1 -go.opentelemetry.io/collector/pdata/internal/data/protogen/metrics/v1 -go.opentelemetry.io/collector/pdata/internal/data/protogen/profiles/v1experimental -go.opentelemetry.io/collector/pdata/internal/data/protogen/resource/v1 -go.opentelemetry.io/collector/pdata/internal/data/protogen/trace/v1 -go.opentelemetry.io/collector/pdata/internal/json -go.opentelemetry.io/collector/pdata/internal/otlp -go.opentelemetry.io/collector/pdata/pcommon -go.opentelemetry.io/collector/pdata/plog -go.opentelemetry.io/collector/pdata/plog/plogotlp -go.opentelemetry.io/collector/pdata/pmetric -go.opentelemetry.io/collector/pdata/pmetric/pmetricotlp -go.opentelemetry.io/collector/pdata/pprofile -go.opentelemetry.io/collector/pdata/pprofile/pprofileotlp -go.opentelemetry.io/collector/pdata/ptrace -go.opentelemetry.io/collector/pdata/ptrace/ptraceotlp -go.opentelemetry.io/collector/pdata/testdata -go.opentelemetry.io/collector/pipeline -go.opentelemetry.io/collector/pipeline/internal/globalsignal -go.opentelemetry.io/collector/pipeline/pipelineprofiles -go.opentelemetry.io/collector/processor -go.opentelemetry.io/collector/processor/batchprocessor -go.opentelemetry.io/collector/processor/batchprocessor/internal/metadata -go.opentelemetry.io/collector/processor/internal -go.opentelemetry.io/collector/processor/processorhelper -go.opentelemetry.io/collector/processor/processorhelper/internal/metadata -go.opentelemetry.io/collector/processor/processorprofiles -go.opentelemetry.io/collector/processor/processortest -go.opentelemetry.io/collector/receiver -go.opentelemetry.io/collector/receiver/internal -go.opentelemetry.io/collector/receiver/otlpreceiver -go.opentelemetry.io/collector/receiver/otlpreceiver/internal/errors -go.opentelemetry.io/collector/receiver/otlpreceiver/internal/logs -go.opentelemetry.io/collector/receiver/otlpreceiver/internal/metadata -go.opentelemetry.io/collector/receiver/otlpreceiver/internal/metrics -go.opentelemetry.io/collector/receiver/otlpreceiver/internal/profiles -go.opentelemetry.io/collector/receiver/otlpreceiver/internal/trace -go.opentelemetry.io/collector/receiver/receiverhelper -go.opentelemetry.io/collector/receiver/receiverhelper/internal/metadata -go.opentelemetry.io/collector/receiver/receiverprofiles -go.opentelemetry.io/collector/receiver/receivertest -go.opentelemetry.io/collector/semconv/v1.17.0 -go.opentelemetry.io/collector/semconv/v1.18.0 -go.opentelemetry.io/collector/semconv/v1.21.0 -go.opentelemetry.io/collector/semconv/v1.26.0 -go.opentelemetry.io/collector/semconv/v1.6.1 -go.opentelemetry.io/collector/service -go.opentelemetry.io/collector/service/extensions -go.opentelemetry.io/collector/service/internal/builders -go.opentelemetry.io/collector/service/internal/capabilityconsumer -go.opentelemetry.io/collector/service/internal/components -go.opentelemetry.io/collector/service/internal/graph -go.opentelemetry.io/collector/service/internal/metadata -go.opentelemetry.io/collector/service/internal/proctelemetry -go.opentelemetry.io/collector/service/internal/resource -go.opentelemetry.io/collector/service/internal/status -go.opentelemetry.io/collector/service/internal/zpages -go.opentelemetry.io/collector/service/pipelines -go.opentelemetry.io/collector/service/telemetry -go.opentelemetry.io/collector/service/telemetry/internal/otelinit -go.opentelemetry.io/contrib/bridges/otelzap -go.opentelemetry.io/contrib/config -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/internal -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/request -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconvutil -go.opentelemetry.io/contrib/propagators/b3 -go.opentelemetry.io/otel -go.opentelemetry.io/otel/attribute -go.opentelemetry.io/otel/baggage -go.opentelemetry.io/otel/codes -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp/internal/retry -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp/internal/transform -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal/envconfig -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal/oconf -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal/retry -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal/transform -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/internal -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/internal/envconfig -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/internal/oconf -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/internal/retry -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/internal/transform -go.opentelemetry.io/otel/exporters/otlp/otlptrace -go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/tracetransform -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/internal -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/internal/envconfig -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/internal/otlpconfig -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/internal/retry -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp/internal -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp/internal/envconfig -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp/internal/otlpconfig -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp/internal/retry -go.opentelemetry.io/otel/exporters/prometheus -go.opentelemetry.io/otel/exporters/stdout/stdoutlog -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric -go.opentelemetry.io/otel/exporters/stdout/stdouttrace -go.opentelemetry.io/otel/internal -go.opentelemetry.io/otel/internal/attribute -go.opentelemetry.io/otel/internal/baggage -go.opentelemetry.io/otel/internal/global -go.opentelemetry.io/otel/log -go.opentelemetry.io/otel/log/embedded -go.opentelemetry.io/otel/log/global -go.opentelemetry.io/otel/log/internal/global -go.opentelemetry.io/otel/log/noop -go.opentelemetry.io/otel/metric -go.opentelemetry.io/otel/metric/embedded -go.opentelemetry.io/otel/metric/noop -go.opentelemetry.io/otel/propagation -go.opentelemetry.io/otel/sdk -go.opentelemetry.io/otel/sdk/instrumentation -go.opentelemetry.io/otel/sdk/internal/env -go.opentelemetry.io/otel/sdk/internal/x -go.opentelemetry.io/otel/sdk/log -go.opentelemetry.io/otel/sdk/log/internal/x -go.opentelemetry.io/otel/sdk/metric -go.opentelemetry.io/otel/sdk/metric/exemplar -go.opentelemetry.io/otel/sdk/metric/internal -go.opentelemetry.io/otel/sdk/metric/internal/aggregate -go.opentelemetry.io/otel/sdk/metric/internal/x -go.opentelemetry.io/otel/sdk/metric/metricdata -go.opentelemetry.io/otel/sdk/resource -go.opentelemetry.io/otel/sdk/trace -go.opentelemetry.io/otel/sdk/trace/tracetest -go.opentelemetry.io/otel/semconv/v1.17.0 -go.opentelemetry.io/otel/semconv/v1.20.0 -go.opentelemetry.io/otel/semconv/v1.26.0 -go.opentelemetry.io/otel/trace -go.opentelemetry.io/otel/trace/embedded -go.opentelemetry.io/otel/trace/noop -go.opentelemetry.io/proto/otlp/collector/logs/v1 -go.opentelemetry.io/proto/otlp/collector/metrics/v1 -go.opentelemetry.io/proto/otlp/collector/trace/v1 -go.opentelemetry.io/proto/otlp/common/v1 -go.opentelemetry.io/proto/otlp/logs/v1 -go.opentelemetry.io/proto/otlp/metrics/v1 -go.opentelemetry.io/proto/otlp/resource/v1 -go.opentelemetry.io/proto/otlp/trace/v1 -go.uber.org/atomic -go.uber.org/automaxprocs/internal/cgroups -go.uber.org/automaxprocs/internal/runtime -go.uber.org/automaxprocs/maxprocs -go.uber.org/dig -go.uber.org/dig/internal/digclock -go.uber.org/dig/internal/digerror -go.uber.org/dig/internal/digreflect -go.uber.org/dig/internal/dot -go.uber.org/dig/internal/graph -go.uber.org/fx -go.uber.org/fx/fxevent -go.uber.org/fx/internal/fxclock -go.uber.org/fx/internal/fxlog -go.uber.org/fx/internal/fxreflect -go.uber.org/fx/internal/lifecycle -go.uber.org/multierr -go.uber.org/zap -go.uber.org/zap/buffer -go.uber.org/zap/internal -go.uber.org/zap/internal/bufferpool -go.uber.org/zap/internal/color -go.uber.org/zap/internal/exit -go.uber.org/zap/internal/pool -go.uber.org/zap/internal/stacktrace -go.uber.org/zap/zapcore -go.uber.org/zap/zapgrpc -go/token -golang.org/x/exp/constraints -golang.org/x/exp/maps -golang.org/x/exp/slices -golang.org/x/mod/semver -golang.org/x/net/http/httpguts -golang.org/x/net/http/httpproxy -golang.org/x/net/http2 -golang.org/x/net/http2/h2c -golang.org/x/net/http2/hpack -golang.org/x/net/idna -golang.org/x/net/internal/socks -golang.org/x/net/internal/timeseries -golang.org/x/net/proxy -golang.org/x/net/publicsuffix -golang.org/x/net/trace -golang.org/x/oauth2 -golang.org/x/oauth2/internal -golang.org/x/sys/unix -golang.org/x/term -golang.org/x/text/cases -golang.org/x/text/encoding -golang.org/x/text/encoding/internal -golang.org/x/text/encoding/internal/identifier -golang.org/x/text/encoding/japanese -golang.org/x/text/encoding/unicode -golang.org/x/text/internal -golang.org/x/text/internal/language -golang.org/x/text/internal/language/compact -golang.org/x/text/internal/tag -golang.org/x/text/internal/utf8internal -golang.org/x/text/language -golang.org/x/text/runes -golang.org/x/text/secure/bidirule -golang.org/x/text/transform -golang.org/x/text/unicode/bidi -golang.org/x/text/unicode/norm -golang.org/x/time/rate -golang.org/x/xerrors -golang.org/x/xerrors/internal -gonum.org/v1/gonum/blas -gonum.org/v1/gonum/blas/blas64 -gonum.org/v1/gonum/blas/cblas128 -gonum.org/v1/gonum/blas/gonum -gonum.org/v1/gonum/floats -gonum.org/v1/gonum/floats/scalar -gonum.org/v1/gonum/graph -gonum.org/v1/gonum/graph/internal/linear -gonum.org/v1/gonum/graph/internal/set -gonum.org/v1/gonum/graph/iterator -gonum.org/v1/gonum/graph/set/uid -gonum.org/v1/gonum/graph/simple -gonum.org/v1/gonum/graph/topo -gonum.org/v1/gonum/graph/traverse -gonum.org/v1/gonum/internal/asm/c128 -gonum.org/v1/gonum/internal/asm/c64 -gonum.org/v1/gonum/internal/asm/f32 -gonum.org/v1/gonum/internal/asm/f64 -gonum.org/v1/gonum/internal/cmplx64 -gonum.org/v1/gonum/internal/math32 -gonum.org/v1/gonum/internal/order -gonum.org/v1/gonum/lapack -gonum.org/v1/gonum/lapack/gonum -gonum.org/v1/gonum/lapack/lapack64 -gonum.org/v1/gonum/mat -google.golang.org/genproto/googleapis/api -google.golang.org/genproto/googleapis/api/annotations -google.golang.org/genproto/googleapis/api/httpbody -google.golang.org/genproto/googleapis/rpc/errdetails -google.golang.org/genproto/googleapis/rpc/status -google.golang.org/genproto/protobuf/field_mask -google.golang.org/grpc -google.golang.org/grpc/attributes -google.golang.org/grpc/backoff -google.golang.org/grpc/balancer -google.golang.org/grpc/balancer/base -google.golang.org/grpc/balancer/grpclb/state -google.golang.org/grpc/balancer/pickfirst -google.golang.org/grpc/balancer/roundrobin -google.golang.org/grpc/binarylog/grpc_binarylog_v1 -google.golang.org/grpc/channelz -google.golang.org/grpc/codes -google.golang.org/grpc/connectivity -google.golang.org/grpc/credentials -google.golang.org/grpc/credentials/insecure -google.golang.org/grpc/encoding -google.golang.org/grpc/encoding/gzip -google.golang.org/grpc/encoding/proto -google.golang.org/grpc/experimental/stats -google.golang.org/grpc/grpclog -google.golang.org/grpc/grpclog/internal -google.golang.org/grpc/health/grpc_health_v1 -google.golang.org/grpc/internal -google.golang.org/grpc/internal/backoff -google.golang.org/grpc/internal/balancer/gracefulswitch -google.golang.org/grpc/internal/balancerload -google.golang.org/grpc/internal/binarylog -google.golang.org/grpc/internal/buffer -google.golang.org/grpc/internal/channelz -google.golang.org/grpc/internal/credentials -google.golang.org/grpc/internal/envconfig -google.golang.org/grpc/internal/grpclog -google.golang.org/grpc/internal/grpcsync -google.golang.org/grpc/internal/grpcutil -google.golang.org/grpc/internal/idle -google.golang.org/grpc/internal/metadata -google.golang.org/grpc/internal/pretty -google.golang.org/grpc/internal/resolver -google.golang.org/grpc/internal/resolver/dns -google.golang.org/grpc/internal/resolver/dns/internal -google.golang.org/grpc/internal/resolver/passthrough -google.golang.org/grpc/internal/resolver/unix -google.golang.org/grpc/internal/serviceconfig -google.golang.org/grpc/internal/stats -google.golang.org/grpc/internal/status -google.golang.org/grpc/internal/syscall -google.golang.org/grpc/internal/transport -google.golang.org/grpc/internal/transport/networktype -google.golang.org/grpc/keepalive -google.golang.org/grpc/mem -google.golang.org/grpc/metadata -google.golang.org/grpc/peer -google.golang.org/grpc/resolver -google.golang.org/grpc/resolver/dns -google.golang.org/grpc/serviceconfig -google.golang.org/grpc/stats -google.golang.org/grpc/status -google.golang.org/grpc/tap -google.golang.org/protobuf/encoding/protodelim -google.golang.org/protobuf/encoding/protojson -google.golang.org/protobuf/encoding/prototext -google.golang.org/protobuf/encoding/protowire -google.golang.org/protobuf/internal/descfmt -google.golang.org/protobuf/internal/descopts -google.golang.org/protobuf/internal/detrand -google.golang.org/protobuf/internal/editiondefaults -google.golang.org/protobuf/internal/editionssupport -google.golang.org/protobuf/internal/encoding/defval -google.golang.org/protobuf/internal/encoding/json -google.golang.org/protobuf/internal/encoding/messageset -google.golang.org/protobuf/internal/encoding/tag -google.golang.org/protobuf/internal/encoding/text -google.golang.org/protobuf/internal/errors -google.golang.org/protobuf/internal/filedesc -google.golang.org/protobuf/internal/filetype -google.golang.org/protobuf/internal/flags -google.golang.org/protobuf/internal/genid -google.golang.org/protobuf/internal/impl -google.golang.org/protobuf/internal/order -google.golang.org/protobuf/internal/pragma -google.golang.org/protobuf/internal/set -google.golang.org/protobuf/internal/strs -google.golang.org/protobuf/internal/version -google.golang.org/protobuf/proto -google.golang.org/protobuf/protoadapt -google.golang.org/protobuf/reflect/protodesc -google.golang.org/protobuf/reflect/protoreflect -google.golang.org/protobuf/reflect/protoregistry -google.golang.org/protobuf/runtime/protoiface -google.golang.org/protobuf/runtime/protoimpl -google.golang.org/protobuf/types/descriptorpb -google.golang.org/protobuf/types/gofeaturespb -google.golang.org/protobuf/types/known/anypb -google.golang.org/protobuf/types/known/durationpb -google.golang.org/protobuf/types/known/emptypb -google.golang.org/protobuf/types/known/fieldmaskpb -google.golang.org/protobuf/types/known/structpb -google.golang.org/protobuf/types/known/timestamppb -google.golang.org/protobuf/types/known/wrapperspb -gopkg.in/DataDog/dd-trace-go.v1/appsec/events -gopkg.in/DataDog/dd-trace-go.v1/datastreams/options -gopkg.in/DataDog/dd-trace-go.v1/ddtrace -gopkg.in/DataDog/dd-trace-go.v1/ddtrace/ext -gopkg.in/DataDog/dd-trace-go.v1/ddtrace/internal -gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer -gopkg.in/DataDog/dd-trace-go.v1/internal -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/config -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/dyngo -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/emitter/graphqlsec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/emitter/grpcsec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/emitter/httpsec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/emitter/ossec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/emitter/sqlsec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/emitter/trace -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/emitter/usersec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/emitter/waf -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/emitter/waf/actions -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/emitter/waf/addresses -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/listener -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/listener/graphqlsec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/listener/grpcsec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/listener/httpsec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/listener/ossec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/listener/sqlsec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/listener/trace -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/listener/usersec -gopkg.in/DataDog/dd-trace-go.v1/internal/appsec/listener/waf -gopkg.in/DataDog/dd-trace-go.v1/internal/civisibility/constants -gopkg.in/DataDog/dd-trace-go.v1/internal/civisibility/utils -gopkg.in/DataDog/dd-trace-go.v1/internal/datastreams -gopkg.in/DataDog/dd-trace-go.v1/internal/globalconfig -gopkg.in/DataDog/dd-trace-go.v1/internal/hostname -gopkg.in/DataDog/dd-trace-go.v1/internal/hostname/azure -gopkg.in/DataDog/dd-trace-go.v1/internal/hostname/cachedfetch -gopkg.in/DataDog/dd-trace-go.v1/internal/hostname/ec2 -gopkg.in/DataDog/dd-trace-go.v1/internal/hostname/ecs -gopkg.in/DataDog/dd-trace-go.v1/internal/hostname/gce -gopkg.in/DataDog/dd-trace-go.v1/internal/hostname/httputils -gopkg.in/DataDog/dd-trace-go.v1/internal/hostname/validate -gopkg.in/DataDog/dd-trace-go.v1/internal/log -gopkg.in/DataDog/dd-trace-go.v1/internal/namingschema -gopkg.in/DataDog/dd-trace-go.v1/internal/normalizer -gopkg.in/DataDog/dd-trace-go.v1/internal/orchestrion -gopkg.in/DataDog/dd-trace-go.v1/internal/osinfo -gopkg.in/DataDog/dd-trace-go.v1/internal/remoteconfig -gopkg.in/DataDog/dd-trace-go.v1/internal/samplernames -gopkg.in/DataDog/dd-trace-go.v1/internal/stacktrace -gopkg.in/DataDog/dd-trace-go.v1/internal/telemetry -gopkg.in/DataDog/dd-trace-go.v1/internal/traceprof -gopkg.in/DataDog/dd-trace-go.v1/internal/version -gopkg.in/ini.v1 -gopkg.in/yaml.v2 -gopkg.in/yaml.v3 -hash -hash/adler32 -hash/crc32 -hash/fnv -html -html/template -io -io/fs -io/ioutil -k8s.io/apimachinery/pkg/runtime/schema -k8s.io/apimachinery/pkg/util/sets -log -log/internal -log/slog -log/slog/internal -log/slog/internal/buffer -maps -math -math/big -math/bits -math/cmplx -math/rand -math/rand/v2 -mime -mime/multipart -mime/quotedprintable -net -net/http -net/http/cookiejar -net/http/httptest -net/http/httptrace -net/http/httputil -net/http/internal -net/http/internal/ascii -net/http/internal/testcert -net/netip -net/smtp -net/textproto -net/url -os -os/exec -os/signal -os/user -path -path/filepath -reflect -regexp -regexp/syntax -runtime -runtime/cgo -runtime/debug -runtime/internal/atomic -runtime/internal/math -runtime/internal/sys -runtime/internal/syscall -runtime/metrics -runtime/pprof -runtime/trace -slices -sort -strconv -strings -sync -sync/atomic -syscall -testing -text/tabwriter -text/template -text/template/parse -time -unicode -unicode/utf16 -unicode/utf8 -unsafe -vendor/golang.org/x/crypto/chacha20 -vendor/golang.org/x/crypto/chacha20poly1305 -vendor/golang.org/x/crypto/cryptobyte -vendor/golang.org/x/crypto/cryptobyte/asn1 -vendor/golang.org/x/crypto/hkdf -vendor/golang.org/x/crypto/internal/alias -vendor/golang.org/x/crypto/internal/poly1305 -vendor/golang.org/x/net/dns/dnsmessage -vendor/golang.org/x/net/http/httpguts -vendor/golang.org/x/net/http/httpproxy -vendor/golang.org/x/net/http2/hpack -vendor/golang.org/x/net/idna -vendor/golang.org/x/text/secure/bidirule -vendor/golang.org/x/text/transform -vendor/golang.org/x/text/unicode/bidi -vendor/golang.org/x/text/unicode/norm \ No newline at end of file diff --git a/tasks/go_deps.py b/tasks/go_deps.py index d871734cecc55..5310ede1384d8 100644 --- a/tasks/go_deps.py +++ b/tasks/go_deps.py @@ -1,7 +1,5 @@ import datetime -import io import os -from collections import namedtuple from collections.abc import Iterable from invoke.context import Context @@ -150,112 +148,6 @@ def send_count_metrics( print(color_message("Done", "green")) -BINARY_TO_TEST = ["serverless"] -MisMatchBinary = namedtuple('MisMatchBinary', ['binary', 'os', 'arch', 'differences']) - - -@task -def test_list( - ctx: Context, -): - """ - Compare the dependencies list for the binaries in BINARY_TO_TEST with the actual dependencies of the binaries. - If the lists do not match, the task will raise an error. - """ - mismatch_binaries = set() - - for binary in BINARY_TO_TEST: - binary_info = BINARIES[binary] - entrypoint = binary_info["entrypoint"] - platforms = binary_info["platforms"] - flavor = binary_info.get("flavor", AgentFlavor.base) - build = binary_info.get("build", binary) - - with ctx.cd(entrypoint): - for platform in platforms: - platform, arch = platform.split("/") - - goos, goarch = GOOS_MAPPING[platform], GOARCH_MAPPING[arch] - - filename = os.path.join(ctx.cwd, f"dependencies_{goos}_{goarch}.txt") - if not os.path.isfile(filename): - print( - f"File {filename} does not exist. To execute the dependencies list check for the {binary} binary, please run the task `inv -e go-deps.generate" - ) - continue - - deps_file = open(filename) - deps = deps_file.read().strip().splitlines() - deps_file.close() - - list = compute_binary_dependencies_list(ctx, build, flavor, platform, arch) - - if list != deps: - new_dependencies_lines = len(list) - recorded_dependencies_lines = len(deps) - - mismatch_binaries.add( - MisMatchBinary(binary, goos, goarch, new_dependencies_lines - recorded_dependencies_lines) - ) - - if len(mismatch_binaries) > 0: - message = io.StringIO() - - for mismatch_binary in mismatch_binaries: - if mismatch_binary.differences > 0: - message.write( - color_message( - f"You added some dependencies to {mismatch_binary.binary} ({mismatch_binary.os}/{mismatch_binary.arch}). Adding new dependencies to the binary increases its size. Do we really need to add this dependency?\n", - "red", - ) - ) - else: - message.write( - color_message( - f"You removed some dependencies from {mismatch_binary.binary} ({mismatch_binary.os}/{mismatch_binary.arch}). Congratulations!\n", - "green", - ) - ) - - message.write( - color_message( - "To fix this check, please run `inv -e go-deps.generate`", - "orange", - ) - ) - - raise Exit( - code=1, - message=message.getvalue(), - ) - - -@task -def generate( - ctx: Context, -): - for binary in BINARY_TO_TEST: - binary_info = BINARIES[binary] - entrypoint = binary_info["entrypoint"] - platforms = binary_info["platforms"] - flavor = binary_info.get("flavor", AgentFlavor.base) - build = binary_info.get("build", binary) - - with ctx.cd(entrypoint): - for platform in platforms: - platform, arch = platform.split("/") - - goos, goarch = GOOS_MAPPING[platform], GOARCH_MAPPING[arch] - - filename = os.path.join(ctx.cwd, f"dependencies_{goos}_{goarch}.txt") - - list = compute_binary_dependencies_list(ctx, build, flavor, platform, arch) - - f = open(filename, "w") - f.write('\n'.join(list)) - f.close() - - def key_for_value(map: dict[str, str], value: str) -> str: """Return the key from a value in a dictionary.""" for k, v in map.items(): From 924a1502fdb70f35064838fa1bbf27b54459fb1b Mon Sep 17 00:00:00 2001 From: Nina Rei <31524679+nina9753@users.noreply.github.com> Date: Mon, 25 Nov 2024 17:58:34 -0500 Subject: [PATCH 036/439] [SVLS-6008] add gcp resource name span tag to Google cloud run and cloud run functions (#31434) --- cmd/serverless-init/cloudservice/cloudrun.go | 45 +++++++++++----- .../cloudservice/cloudrun_test.go | 53 ++++++++++--------- .../cloudservice/helper/gcp.go | 1 - 3 files changed, 61 insertions(+), 38 deletions(-) diff --git a/cmd/serverless-init/cloudservice/cloudrun.go b/cmd/serverless-init/cloudservice/cloudrun.go index dfe36c633cc17..597b414984034 100644 --- a/cmd/serverless-init/cloudservice/cloudrun.go +++ b/cmd/serverless-init/cloudservice/cloudrun.go @@ -7,13 +7,13 @@ package cloudservice import ( "fmt" + "github.com/DataDog/datadog-agent/cmd/serverless-init/cloudservice/helper" "github.com/DataDog/datadog-agent/pkg/util/log" "os" - - "github.com/DataDog/datadog-agent/cmd/serverless-init/cloudservice/helper" ) const ( + // Environment var needed for service revisionNameEnvVar = "K_REVISION" ServiceNameEnvVar = "K_SERVICE" // ServiceNameEnvVar is also used in the trace package configurationNameEnvVar = "K_CONFIGURATION" @@ -22,9 +22,15 @@ const ( ) const ( - // SpanNamespace is the namespace for the span - cloudRunService = "gcr." - cloudRunFunction = "gcrfx." + // Span Tag with namespace specific for cloud run (gcr) and cloud run function (gcrfx) + cloudRunService = "gcr." + cloudRunFunction = "gcrfx." + runRevisionName = "gcr.revision_name" + functionRevisionName = "gcrfx.revision_name" + runServiceName = "gcr.service_name" + functionServiceName = "gcrfx.service_name" + runConfigName = "gcr.configuration_name" + functionConfigName = "gcrfx.configuration_name" ) var metadataHelperFunc = helper.GetMetaData @@ -37,31 +43,44 @@ type CloudRun struct { // GetTags returns a map of gcp-related tags. func (c *CloudRun) GetTags() map[string]string { tags := metadataHelperFunc(helper.GetDefaultConfig()).TagMap(c.spanNamespace) + tags["origin"] = c.GetOrigin() + tags["_dd.origin"] = c.GetOrigin() + revisionName := os.Getenv(revisionNameEnvVar) serviceName := os.Getenv(ServiceNameEnvVar) configName := os.Getenv(configurationNameEnvVar) - if revisionName != "" { - tags[c.spanNamespace+"revision_name"] = revisionName tags["revision_name"] = revisionName + if c.spanNamespace == cloudRunService { + tags[runRevisionName] = revisionName + } else { + tags[functionRevisionName] = revisionName + } } if serviceName != "" { - tags[c.spanNamespace+"service_name"] = serviceName tags["service_name"] = serviceName + if c.spanNamespace == cloudRunService { + tags[runServiceName] = serviceName + } else { + tags[functionServiceName] = serviceName + } } if configName != "" { - tags[c.spanNamespace+"configuration_name"] = configName tags["configuration_name"] = configName + if c.spanNamespace == cloudRunService { + tags[runConfigName] = configName + } else { + tags[functionConfigName] = configName + } } if c.spanNamespace == cloudRunFunction { - tags = c.getFunctionTags(tags) + return c.getFunctionTags(tags) } - tags["origin"] = c.GetOrigin() - tags["_dd.origin"] = c.GetOrigin() + tags["_dd.gcr.resource_name"] = "projects/" + tags["project_id"] + "/locations/" + tags["location"] + "/services/" + serviceName return tags } @@ -76,6 +95,8 @@ func (c *CloudRun) getFunctionTags(tags map[string]string) map[string]string { if functionSignatureType != "" { tags[c.spanNamespace+"function_signature_type"] = functionSignatureType } + + tags["_dd.gcrfx.resource_name"] = "projects/" + tags["project_id"] + "/locations/" + tags["location"] + "/services/" + tags["service_name"] + "/functions/" + functionTarget return tags } diff --git a/cmd/serverless-init/cloudservice/cloudrun_test.go b/cmd/serverless-init/cloudservice/cloudrun_test.go index 8df6ef3192230..e5733745ccb94 100644 --- a/cmd/serverless-init/cloudservice/cloudrun_test.go +++ b/cmd/serverless-init/cloudservice/cloudrun_test.go @@ -22,7 +22,7 @@ func TestGetCloudRunTags(t *testing.T) { Value: "test_container", }, Region: &helper.Info{ - TagName: "region", + TagName: "location", Value: "test_region", }, ProjectID: &helper.Info{ @@ -35,14 +35,15 @@ func TestGetCloudRunTags(t *testing.T) { tags := service.GetTags() assert.Equal(t, map[string]string{ - "container_id": "test_container", - "gcr.container_id": "test_container", - "gcr.region": "test_region", - "region": "test_region", - "origin": "cloudrun", - "project_id": "test_project", - "gcr.project_id": "test_project", - "_dd.origin": "cloudrun", + "container_id": "test_container", + "gcr.container_id": "test_container", + "gcr.location": "test_region", + "location": "test_region", + "project_id": "test_project", + "gcr.project_id": "test_project", + "origin": "cloudrun", + "_dd.origin": "cloudrun", + "_dd.gcr.resource_name": "projects/test_project/locations/test_region/services/", }, tags) } @@ -56,7 +57,7 @@ func TestGetCloudRunTagsWithEnvironmentVariables(t *testing.T) { Value: "test_container", }, Region: &helper.Info{ - TagName: "region", + TagName: "location", Value: "test_region", }, ProjectID: &helper.Info{ @@ -72,18 +73,19 @@ func TestGetCloudRunTagsWithEnvironmentVariables(t *testing.T) { tags := service.GetTags() assert.Equal(t, map[string]string{ - "container_id": "test_container", - "gcr.container_id": "test_container", - "region": "test_region", - "gcr.region": "test_region", - "origin": "cloudrun", - "project_id": "test_project", - "gcr.project_id": "test_project", - "service_name": "test_service", - "gcr.service_name": "test_service", - "gcr.revision_name": "test_revision", - "revision_name": "test_revision", - "_dd.origin": "cloudrun", + "container_id": "test_container", + "gcr.container_id": "test_container", + "location": "test_region", + "gcr.location": "test_region", + "project_id": "test_project", + "gcr.project_id": "test_project", + "service_name": "test_service", + "gcr.service_name": "test_service", + "gcr.revision_name": "test_revision", + "revision_name": "test_revision", + "origin": "cloudrun", + "_dd.origin": "cloudrun", + "_dd.gcr.resource_name": "projects/test_project/locations/test_region/services/test_service", }, tags) } @@ -97,7 +99,7 @@ func TestGetCloudRunFunctionTagsWithEnvironmentVariables(t *testing.T) { Value: "test_container", }, Region: &helper.Info{ - TagName: "region", + TagName: "location", Value: "test_region", }, ProjectID: &helper.Info{ @@ -118,8 +120,8 @@ func TestGetCloudRunFunctionTagsWithEnvironmentVariables(t *testing.T) { assert.Equal(t, map[string]string{ "container_id": "test_container", "gcrfx.container_id": "test_container", - "region": "test_region", - "gcrfx.region": "test_region", + "location": "test_region", + "gcrfx.location": "test_region", "origin": "cloudrun", "project_id": "test_project", "gcrfx.project_id": "test_project", @@ -132,5 +134,6 @@ func TestGetCloudRunFunctionTagsWithEnvironmentVariables(t *testing.T) { "_dd.origin": "cloudrun", "gcrfx.function_target": "test_target", "gcrfx.function_signature_type": "test_signature", + "_dd.gcrfx.resource_name": "projects/test_project/locations/test_region/services/test_service/functions/test_target", }, tags) } diff --git a/cmd/serverless-init/cloudservice/helper/gcp.go b/cmd/serverless-init/cloudservice/helper/gcp.go index e48df9f891fff..01b5ecd75ab48 100644 --- a/cmd/serverless-init/cloudservice/helper/gcp.go +++ b/cmd/serverless-init/cloudservice/helper/gcp.go @@ -50,7 +50,6 @@ func (metadata *GCPMetadata) TagMap(namespace string) map[string]string { if metadata.ContainerID != nil { tagMap[metadata.ContainerID.TagName] = metadata.ContainerID.Value tagMap[namespace+metadata.ContainerID.TagName] = metadata.ContainerID.Value - } if metadata.Region != nil { tagMap[metadata.Region.TagName] = metadata.Region.Value From 3a6dafcaee6552b1311fb332081c7ce475ebbaa7 Mon Sep 17 00:00:00 2001 From: Bryce Kahle Date: Mon, 25 Nov 2024 23:25:07 -0800 Subject: [PATCH 037/439] do not expect usm event stream if unsupported (#31462) Force merging since the CI is currently failing on main --- .gitlab-ci.yml | 1 + pkg/network/config/config_test.go | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8c7cec6e7a81b..e693da5c63ed1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -786,6 +786,7 @@ workflow: when: never .system_probe_change_paths: &system_probe_change_paths + - cmd/system-probe/**/* - pkg/collector/corechecks/ebpf/**/* - pkg/collector/corechecks/servicediscovery/module/* - pkg/ebpf/**/* diff --git a/pkg/network/config/config_test.go b/pkg/network/config/config_test.go index 0db2f6743c721..991d461b2fe09 100644 --- a/pkg/network/config/config_test.go +++ b/pkg/network/config/config_test.go @@ -1344,7 +1344,8 @@ func TestUSMEventStream(t *testing.T) { mock.NewSystemProbe(t) cfg := New() - assert.True(t, cfg.EnableUSMEventStream) + expected := sysconfig.ProcessEventDataStreamSupported() + assert.Equal(t, expected, cfg.EnableUSMEventStream) }) t.Run("via yaml", func(t *testing.T) { From 82c8310c02e5452cd1e2543ce2be2cadabf6babc Mon Sep 17 00:00:00 2001 From: Ibraheem Aboulnaga <13734402+IbraheemA@users.noreply.github.com> Date: Tue, 26 Nov 2024 04:32:57 -0500 Subject: [PATCH 038/439] Enable Operation/Resource name V2 by default in converged agent (#31359) Co-authored-by: DeForest Richards <56796055+drichards-87@users.noreply.github.com> --- cmd/otel-agent/config/agent_config.go | 2 +- cmd/otel-agent/config/agent_config_test.go | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cmd/otel-agent/config/agent_config.go b/cmd/otel-agent/config/agent_config.go index 537695778d930..4f2a1a5b107cc 100644 --- a/cmd/otel-agent/config/agent_config.go +++ b/cmd/otel-agent/config/agent_config.go @@ -179,7 +179,7 @@ func NewConfigComponent(ctx context.Context, ddCfg string, uris []string) (confi } if pkgconfig.Get("apm_config.features") == nil { - apmConfigFeatures := []string{"enable_receive_resource_spans_v2"} + apmConfigFeatures := []string{"enable_receive_resource_spans_v2", "enable_operation_and_resource_name_logic_v2"} if ddc.Traces.ComputeTopLevelBySpanKind { apmConfigFeatures = append(apmConfigFeatures, "enable_otlp_compute_top_level_by_span_kind") } diff --git a/cmd/otel-agent/config/agent_config_test.go b/cmd/otel-agent/config/agent_config_test.go index 98d27584ca273..2d08cfb4ac58f 100644 --- a/cmd/otel-agent/config/agent_config_test.go +++ b/cmd/otel-agent/config/agent_config_test.go @@ -57,7 +57,7 @@ func (suite *ConfigTestSuite) TestAgentConfig() { assert.Equal(t, false, c.Get("apm_config.receiver_enabled")) assert.Equal(t, 10, c.Get("apm_config.trace_buffer")) assert.Equal(t, false, c.Get("otlp_config.traces.span_name_as_resource_name")) - assert.Equal(t, []string{"enable_receive_resource_spans_v2"}, c.Get("apm_config.features")) + assert.Equal(t, []string{"enable_receive_resource_spans_v2", "enable_operation_and_resource_name_logic_v2"}, c.Get("apm_config.features")) } func (suite *ConfigTestSuite) TestAgentConfigDefaults() { @@ -79,7 +79,7 @@ func (suite *ConfigTestSuite) TestAgentConfigDefaults() { assert.Equal(t, "https://trace.agent.datadoghq.com", c.Get("apm_config.apm_dd_url")) assert.Equal(t, false, c.Get("apm_config.receiver_enabled")) assert.Equal(t, true, c.Get("otlp_config.traces.span_name_as_resource_name")) - assert.Equal(t, []string{"enable_receive_resource_spans_v2", "enable_otlp_compute_top_level_by_span_kind"}, + assert.Equal(t, []string{"enable_receive_resource_spans_v2", "enable_operation_and_resource_name_logic_v2", "enable_otlp_compute_top_level_by_span_kind"}, c.Get("apm_config.features")) } @@ -105,7 +105,7 @@ func (suite *ConfigTestSuite) TestAgentConfigWithDatadogYamlDefaults() { assert.Equal(t, "https://trace.agent.datadoghq.com", c.Get("apm_config.apm_dd_url")) assert.Equal(t, false, c.Get("apm_config.receiver_enabled")) assert.Equal(t, true, c.Get("otlp_config.traces.span_name_as_resource_name")) - assert.Equal(t, []string{"enable_receive_resource_spans_v2", "enable_otlp_compute_top_level_by_span_kind"}, c.Get("apm_config.features")) + assert.Equal(t, []string{"enable_receive_resource_spans_v2", "enable_operation_and_resource_name_logic_v2", "enable_otlp_compute_top_level_by_span_kind"}, c.Get("apm_config.features")) // log_level from datadog.yaml takes precedence -> more verbose assert.Equal(t, "debug", c.Get("log_level")) From 5a41ad2ffd10d2571a971026413a576aac507e71 Mon Sep 17 00:00:00 2001 From: Vincent Whitchurch Date: Tue, 26 Nov 2024 10:33:29 +0100 Subject: [PATCH 039/439] discovery: Detect instrumentation with dd-trace-go v2 (#31345) --- LICENSE-3rdparty.csv | 45 ++++++++++++++ go.mod | 1 + go.sum | 2 + .../corechecks/servicediscovery/apm/detect.go | 26 +++++--- .../servicediscovery/apm/detect_nix_test.go | 62 ++++++++++++------- .../testutil/instrumented2/instrumented2.go | 24 +++++++ pkg/network/go/bininspect/symbol_filter.go | 32 +++++----- pkg/network/go/bininspect/symbols.go | 12 ++-- pkg/network/go/bininspect/symbols_test.go | 14 ++--- 9 files changed, 159 insertions(+), 59 deletions(-) create mode 100644 pkg/collector/corechecks/servicediscovery/apm/testutil/instrumented2/instrumented2.go diff --git a/LICENSE-3rdparty.csv b/LICENSE-3rdparty.csv index 3bd5a574fa3fe..ba2ac82c2ee84 100644 --- a/LICENSE-3rdparty.csv +++ b/LICENSE-3rdparty.csv @@ -126,6 +126,51 @@ core,github.com/DataDog/datadog-go/v5/statsd,MIT,"Copyright (c) 2015 Datadog, In core,github.com/DataDog/datadog-operator/api/datadoghq/common,Apache-2.0,"Copyright 2016-present Datadog, Inc" core,github.com/DataDog/datadog-operator/api/datadoghq/v1alpha1,Apache-2.0,"Copyright 2016-present Datadog, Inc" core,github.com/DataDog/dd-sensitive-data-scanner/sds-go/go,Apache-2.0,"Copyright 2024-present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/appsec/events,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/datastreams/options,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/ddtrace,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/ddtrace/ext,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/ddtrace/internal/tracerstats,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/ddtrace/tracer,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/instrumentation/appsec/dyngo,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/instrumentation/appsec/emitter/graphqlsec,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/instrumentation/appsec/emitter/grpcsec,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/instrumentation/appsec/emitter/httpsec,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/instrumentation/appsec/emitter/ossec,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/instrumentation/appsec/emitter/sqlsec,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/instrumentation/appsec/emitter/waf/actions,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/instrumentation/appsec/emitter/waf/addresses,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/instrumentation/appsec/trace,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/instrumentation/options,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/appsec,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/appsec/config,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/appsec/emitter/usersec,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/appsec/emitter/waf,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/appsec/listener,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/appsec/listener/graphqlsec,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/appsec/listener/grpcsec,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/appsec/listener/httpsec,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/appsec/listener/ossec,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/appsec/listener/sqlsec,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/appsec/listener/trace,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/appsec/listener/usersec,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/appsec/listener/waf,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/civisibility/constants,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/civisibility/utils,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/datastreams,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/globalconfig,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/log,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/namingschema,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/normalizer,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/orchestrion,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/osinfo,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/remoteconfig,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/samplernames,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/stacktrace,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/telemetry,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/traceprof,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" +core,github.com/DataDog/dd-trace-go/v2/internal/version,Apache-2.0,"Copyright (c) 2016-Present, Datadog | Copyright 2016 Datadog, Inc | Copyright 2016-Present Datadog, Inc" core,github.com/DataDog/ebpf-manager,MIT,Copyright (c) 2021 Authors of Datadog core,github.com/DataDog/ebpf-manager/internal,MIT,Copyright (c) 2021 Authors of Datadog core,github.com/DataDog/ebpf-manager/tracefs,MIT,Copyright (c) 2021 Authors of Datadog diff --git a/go.mod b/go.mod index d39bc25dbbadd..6b3b497855d60 100644 --- a/go.mod +++ b/go.mod @@ -603,6 +603,7 @@ require ( github.com/DataDog/datadog-agent/pkg/config/structure v0.60.0-devel github.com/DataDog/datadog-agent/pkg/util/defaultpaths v0.0.0-00010101000000-000000000000 github.com/DataDog/datadog-agent/pkg/util/utilizationtracker v0.0.0 + github.com/DataDog/dd-trace-go/v2 v2.0.0-beta.11 github.com/NVIDIA/go-nvml v0.12.4-0 github.com/cloudflare/cbpfc v0.0.0-20240920015331-ff978e94500b github.com/containerd/containerd/api v1.8.0 diff --git a/go.sum b/go.sum index a8cc5f6743724..f09de46eaf02d 100644 --- a/go.sum +++ b/go.sum @@ -134,6 +134,8 @@ github.com/DataDog/datadog-operator v0.7.1-0.20241024104907-734366f3c0d1 h1:17MX github.com/DataDog/datadog-operator v0.7.1-0.20241024104907-734366f3c0d1/go.mod h1:5Xp66c0HGadP85lOQtb6oVuSvuL5ZSSowQM58hNtTi8= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 h1:RoH7VLzTnxHEugRPIgnGlxwDFszFGI7b3WZZUtWuPRM= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42/go.mod h1:TX7CTOQ3LbQjfAi4SwqUoR5gY1zfUk7VRBDTuArjaDc= +github.com/DataDog/dd-trace-go/v2 v2.0.0-beta.11 h1:6vwU//TjBIghQKMgIP9UyIRhN/LWS1y8tYzvRnu8JZw= +github.com/DataDog/dd-trace-go/v2 v2.0.0-beta.11/go.mod h1:woPHoAOfAIM7kl4GauR+qrWui7teNg44Um0verg2rzQ= github.com/DataDog/ebpf-manager v0.7.4 h1:fI2fJbDpykDiO/hq3IVIi+YLVVrJ97qG6O8LT7mdCnQ= github.com/DataDog/ebpf-manager v0.7.4/go.mod h1:QlCkGTH3koCMDG7E8o9Si6O9UXjBwQspP6z2YtKlyGU= github.com/DataDog/go-grpc-bidirectional-streaming-example v0.0.0-20221024060302-b9cf785c02fe h1:RO40ywnX/vZLi4Pb4jRuFGgQQBYGIIoQ6u+P2MIgFOA= diff --git a/pkg/collector/corechecks/servicediscovery/apm/detect.go b/pkg/collector/corechecks/servicediscovery/apm/detect.go index f342f955e2274..7144601009b16 100644 --- a/pkg/collector/corechecks/servicediscovery/apm/detect.go +++ b/pkg/collector/corechecks/servicediscovery/apm/detect.go @@ -80,17 +80,23 @@ func isInjected(envs envs.Variables) bool { } const ( - // ddTraceGoPrefix is the prefix of the dd-trace-go symbols. The symbols we - // are looking for are for example - // "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer.init". We use a prefix - // without the version number instead of a specific symbol name in an - // attempt to make it future-proof. - ddTraceGoPrefix = "gopkg.in/DataDog/dd-trace-go" + // ddTraceGoPrefix(V2) is the prefix of the dd-trace-go symbols. The symbols + // we are looking for are for example: + // gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer.init + // github.com/DataDog/dd-trace-go/v2/ddtrace/tracer.init + // + // We use an infix instead of a specific symbol name in an attempt to make + // it future-proof. + ddTraceGoPrefix = "gopkg.in/DataDog/dd-trace-go" + ddTraceGoPrefixV2 = "github.com/DataDog/dd-trace-go/v2/" + ddTraceGoMinLength = min(len(ddTraceGoPrefix), len(ddTraceGoPrefixV2)) + ddTraceGoInfix = "DataDog/dd-trace-go" + // ddTraceGoMaxLength is the maximum length of the dd-trace-go symbols which // we look for. The max length is an optimization in bininspect to avoid // reading unnecesssary symbols. As of writing, most non-internal symbols - // in dd-trace-go are under 100 chars. The tracer.init example above at 51 - // chars is one of the shortest. + // in dd-trace-go are under 100 chars. The tracer.init example above at + // 51/53 chars is one of the shortest. ddTraceGoMaxLength = 100 ) @@ -107,12 +113,12 @@ func goDetector(ctx usm.DetectionContext) Instrumentation { } defer elfFile.Close() - if _, err = bininspect.GetAnySymbolWithPrefix(elfFile, ddTraceGoPrefix, ddTraceGoMaxLength); err == nil { + if _, err = bininspect.GetAnySymbolWithInfix(elfFile, ddTraceGoInfix, ddTraceGoMinLength, ddTraceGoMaxLength); err == nil { return Provided } // We failed to find symbols in the regular symbols section, now we can try the pclntab - if _, err = bininspect.GetAnySymbolWithPrefixPCLNTAB(elfFile, ddTraceGoPrefix, ddTraceGoMaxLength); err == nil { + if _, err = bininspect.GetAnySymbolWithInfixPCLNTAB(elfFile, ddTraceGoInfix, ddTraceGoMinLength, ddTraceGoMaxLength); err == nil { return Provided } return None diff --git a/pkg/collector/corechecks/servicediscovery/apm/detect_nix_test.go b/pkg/collector/corechecks/servicediscovery/apm/detect_nix_test.go index 602aa88b841e9..3b3bb9efcf118 100644 --- a/pkg/collector/corechecks/servicediscovery/apm/detect_nix_test.go +++ b/pkg/collector/corechecks/servicediscovery/apm/detect_nix_test.go @@ -268,34 +268,54 @@ func TestGoDetector(t *testing.T) { if os.Getenv("CI") == "" && os.Getuid() != 0 { t.Skip("skipping test; requires root privileges") } + + tests := []struct { + program string + build func(string, string) (string, error) + binary string + pid int + }{ + { + program: "instrumented", + build: usmtestutil.BuildGoBinaryWrapper, + }, + { + program: "instrumented", + build: usmtestutil.BuildGoBinaryWrapperWithoutSymbols, + }, + { + program: "instrumented2", + build: usmtestutil.BuildGoBinaryWrapper, + }, + { + program: "instrumented2", + build: usmtestutil.BuildGoBinaryWrapperWithoutSymbols, + }, + } + curDir, err := testutil.CurDir() require.NoError(t, err) - serverBinWithSymbols, err := usmtestutil.BuildGoBinaryWrapper(filepath.Join(curDir, "testutil"), "instrumented") - require.NoError(t, err) - serverBinWithoutSymbols, err := usmtestutil.BuildGoBinaryWrapperWithoutSymbols(filepath.Join(curDir, "testutil"), "instrumented") - require.NoError(t, err) - cmdWithSymbols := exec.Command(serverBinWithSymbols) - require.NoError(t, cmdWithSymbols.Start()) - t.Cleanup(func() { - _ = cmdWithSymbols.Process.Kill() - }) + for i, test := range tests { + binary, err := test.build(filepath.Join(curDir, "testutil"), test.program) + require.NoError(t, err) + + cmd := exec.Command(binary) + require.NoError(t, cmd.Start()) + tests[i].pid = cmd.Process.Pid + t.Cleanup(func() { + _ = cmd.Process.Kill() + }) + } - cmdWithoutSymbols := exec.Command(serverBinWithoutSymbols) - require.NoError(t, cmdWithoutSymbols.Start()) - t.Cleanup(func() { - _ = cmdWithoutSymbols.Process.Kill() - }) ctx := usm.NewDetectionContext(nil, envs.NewVariables(nil), nil) ctx.Pid = os.Getpid() result := goDetector(ctx) require.Equal(t, None, result) - ctx.Pid = cmdWithSymbols.Process.Pid - result = goDetector(ctx) - require.Equal(t, Provided, result) - - ctx.Pid = cmdWithoutSymbols.Process.Pid - result = goDetector(ctx) - require.Equal(t, Provided, result) + for _, binary := range tests { + ctx.Pid = binary.pid + result = goDetector(ctx) + require.Equal(t, Provided, result) + } } diff --git a/pkg/collector/corechecks/servicediscovery/apm/testutil/instrumented2/instrumented2.go b/pkg/collector/corechecks/servicediscovery/apm/testutil/instrumented2/instrumented2.go new file mode 100644 index 0000000000000..b52588d9684a8 --- /dev/null +++ b/pkg/collector/corechecks/servicediscovery/apm/testutil/instrumented2/instrumented2.go @@ -0,0 +1,24 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2024-present Datadog, Inc. + +// Package main is a go application which use dd-trace-go, in order to test +// static APM instrumentation detection. This program is never executed. +package main + +import ( + "fmt" + "time" + + "github.com/DataDog/dd-trace-go/v2/ddtrace/tracer" +) + +func main() { + err := tracer.Start() + if err != nil { + fmt.Println(err) + } + + time.Sleep(time.Second * 20) +} diff --git a/pkg/network/go/bininspect/symbol_filter.go b/pkg/network/go/bininspect/symbol_filter.go index d96d6fe6bf703..90c9a426f7db6 100644 --- a/pkg/network/go/bininspect/symbol_filter.go +++ b/pkg/network/go/bininspect/symbol_filter.go @@ -69,34 +69,36 @@ func (f stringSetSymbolFilter) findMissing(symbolByName map[string]safeelf.Symbo return missingSymbols } -// prefixSymbolFilter is a symbol filter which gets any one symbol which has the -// specified prefix. -type prefixSymbolFilter struct { - prefix string +// infixSymbolFilter is a symbol filter which gets any symbol which has the +// specified infix. +type infixSymbolFilter struct { + infix string + minLength int maxLength int } -func newPrefixSymbolFilter(prefix string, maxLength int) prefixSymbolFilter { - return prefixSymbolFilter{ - prefix: prefix, +func newInfixSymbolFilter(infix string, minLength int, maxLength int) infixSymbolFilter { + return infixSymbolFilter{ + infix: infix, + minLength: minLength, maxLength: maxLength, } } -func (f prefixSymbolFilter) getMinMaxLength() (int, int) { - return len(f.prefix), f.maxLength +func (f infixSymbolFilter) getMinMaxLength() (int, int) { + return f.minLength, f.maxLength } -func (f prefixSymbolFilter) getNumWanted() int { +func (f infixSymbolFilter) getNumWanted() int { return 1 } -func (f prefixSymbolFilter) want(symbol string) bool { - return strings.HasPrefix(symbol, f.prefix) +func (f infixSymbolFilter) want(symbol string) bool { + return strings.Contains(symbol, f.infix) } // findMissing gets the list of symbols which were missing. Only used for error -// prints. Since we only know we were looking for a prefix, return that. -func (f prefixSymbolFilter) findMissing(_ map[string]safeelf.Symbol) []string { - return []string{f.prefix} +// prints. Since we only know we were looking for an infix, return that. +func (f infixSymbolFilter) findMissing(_ map[string]safeelf.Symbol) []string { + return []string{f.infix} } diff --git a/pkg/network/go/bininspect/symbols.go b/pkg/network/go/bininspect/symbols.go index 32af710f74046..6b5f135179fe1 100644 --- a/pkg/network/go/bininspect/symbols.go +++ b/pkg/network/go/bininspect/symbols.go @@ -270,10 +270,10 @@ func GetAllSymbolsInSetByName(elfFile *safeelf.File, symbolSet common.StringSet) return GetAllSymbolsByName(elfFile, filter) } -// GetAnySymbolWithPrefix returns any one symbol with the given prefix and the +// GetAnySymbolWithInfix returns any one symbol with the given infix and the // specified maximum length from the ELF file. -func GetAnySymbolWithPrefix(elfFile *safeelf.File, prefix string, maxLength int) (*safeelf.Symbol, error) { - filter := newPrefixSymbolFilter(prefix, maxLength) +func GetAnySymbolWithInfix(elfFile *safeelf.File, infix string, minLength int, maxLength int) (*safeelf.Symbol, error) { + filter := newInfixSymbolFilter(infix, minLength, maxLength) symbols, err := GetAllSymbolsByName(elfFile, filter) if err != nil { return nil, err @@ -288,10 +288,10 @@ func GetAnySymbolWithPrefix(elfFile *safeelf.File, prefix string, maxLength int) return nil, errors.New("empty symbols map") } -// GetAnySymbolWithPrefixPCLNTAB returns any one symbol with the given prefix and the +// GetAnySymbolWithInfixPCLNTAB returns any one symbol with the given infix and the // specified maximum length from the pclntab section in ELF file. -func GetAnySymbolWithPrefixPCLNTAB(elfFile *safeelf.File, prefix string, maxLength int) (*safeelf.Symbol, error) { - symbols, err := GetPCLNTABSymbolParser(elfFile, newPrefixSymbolFilter(prefix, maxLength)) +func GetAnySymbolWithInfixPCLNTAB(elfFile *safeelf.File, infix string, minLength int, maxLength int) (*safeelf.Symbol, error) { + symbols, err := GetPCLNTABSymbolParser(elfFile, newInfixSymbolFilter(infix, minLength, maxLength)) if err != nil { return nil, err } diff --git a/pkg/network/go/bininspect/symbols_test.go b/pkg/network/go/bininspect/symbols_test.go index 3926e11c98e1a..926ed93239358 100644 --- a/pkg/network/go/bininspect/symbols_test.go +++ b/pkg/network/go/bininspect/symbols_test.go @@ -85,32 +85,32 @@ func TestSomeMissing(t *testing.T) { assert.NotContains(t, msg, "SSL_set_bio") } -func TestPrefix(t *testing.T) { +func TestInfix(t *testing.T) { elfFile := openTestElf(t) - symbol, err := GetAnySymbolWithPrefix(elfFile, "SSL_read_e", len("SSL_read_ex")) + symbol, err := GetAnySymbolWithInfix(elfFile, "_read_", len("SSL_read_e"), len("SSL_read_ex")) require.NoError(t, err) require.NotNil(t, symbol) require.Equal(t, "SSL_read_ex", symbol.Name) - symbol, err = GetAnySymbolWithPrefix(elfFile, "SSL_read_ex", len("SSL_read_ex")) + symbol, err = GetAnySymbolWithInfix(elfFile, "SSL_read_ex", len("SSL_read_ex"), len("SSL_read_ex")) require.NoError(t, err) require.NotNil(t, symbol) require.Equal(t, "SSL_read_ex", symbol.Name) - symbol, err = GetAnySymbolWithPrefix(elfFile, "SSL_read_e", len("SSL_read_ex")-1) + symbol, err = GetAnySymbolWithInfix(elfFile, "read_e", len("SSL_read_e"), len("SSL_read_ex")-1) require.Error(t, err) require.Nil(t, symbol) msg := err.Error() - assert.Contains(t, msg, "SSL_read_e") + assert.Contains(t, msg, "read_e") - symbol, err = GetAnySymbolWithPrefix(elfFile, "foo", 5) + symbol, err = GetAnySymbolWithInfix(elfFile, "^foo", 3, 5) require.Error(t, err) require.Nil(t, symbol) msg = err.Error() assert.Contains(t, msg, "foo") - symbol, err = GetAnySymbolWithPrefix(elfFile, "S", len("SSL_connect")) + symbol, err = GetAnySymbolWithInfix(elfFile, "S", 1, len("SSL_connect")) require.NoError(t, err) require.NotNil(t, symbol) require.Equal(t, "SSL_connect", symbol.Name) From 600698ae0b55afe2c7f8a9e69f628fed434df05a Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Tue, 26 Nov 2024 10:35:53 +0100 Subject: [PATCH 040/439] [CWS] add pool layer of events used in fallback and snapshot (#31455) --- pkg/security/probe/model_ebpf.go | 20 -------------------- pkg/security/probe/probe_ebpf.go | 32 ++++++++++++++++++++++++++++++-- 2 files changed, 30 insertions(+), 22 deletions(-) diff --git a/pkg/security/probe/model_ebpf.go b/pkg/security/probe/model_ebpf.go index c26e96a0b91f3..419ad11e8d564 100644 --- a/pkg/security/probe/model_ebpf.go +++ b/pkg/security/probe/model_ebpf.go @@ -10,7 +10,6 @@ package probe import ( "fmt" - "time" "github.com/DataDog/datadog-agent/pkg/security/ebpf/probes/rawpacket" "github.com/DataDog/datadog-agent/pkg/security/probe/constantfetch" @@ -51,22 +50,3 @@ func newEBPFEvent(fh *EBPFFieldHandlers) *model.Event { event.FieldHandlers = fh return event } - -// newEBPFEventFromPCE returns a new event from a process cache entry -func newEBPFEventFromPCE(entry *model.ProcessCacheEntry, fh *EBPFFieldHandlers) *model.Event { - eventType := model.ExecEventType - if !entry.IsExec { - eventType = model.ForkEventType - } - - event := newEBPFEvent(fh) - event.Type = uint32(eventType) - event.TimestampRaw = uint64(time.Now().UnixNano()) - event.ProcessCacheEntry = entry - event.ProcessContext = &entry.ProcessContext - event.Exec.Process = &entry.Process - event.ProcessContext.Process.ContainerID = entry.ContainerID - event.ProcessContext.Process.CGroup = entry.CGroup - - return event -} diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go index 37db8edde5422..bd73d1b34e4a0 100644 --- a/pkg/security/probe/probe_ebpf.go +++ b/pkg/security/probe/probe_ebpf.go @@ -66,6 +66,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/serializers" "github.com/DataDog/datadog-agent/pkg/security/utils" utilkernel "github.com/DataDog/datadog-agent/pkg/util/kernel" + ddsync "github.com/DataDog/datadog-agent/pkg/util/sync" ) // EventStream describes the interface implemented by reordered perf maps or ring buffers @@ -113,6 +114,7 @@ type EBPFProbe struct { monitors *EBPFMonitors profileManagers *SecurityProfileManagers fieldHandlers *EBPFFieldHandlers + eventPool *ddsync.TypedPool[model.Event] ctx context.Context cancelFnc context.CancelFunc @@ -491,7 +493,7 @@ func (p *EBPFProbe) playSnapshot(notifyConsumers bool) { } entry.Retain() - event := newEBPFEventFromPCE(entry, p.fieldHandlers) + event := p.newEBPFPooledEventFromPCE(entry) if _, err := entry.HasValidLineage(); err != nil { event.Error = &model.ErrProcessBrokenLineage{Err: err} @@ -503,6 +505,7 @@ func (p *EBPFProbe) playSnapshot(notifyConsumers bool) { for _, event := range events { p.DispatchEvent(event, notifyConsumers) event.ProcessCacheEntry.Release() + p.eventPool.Put(event) } } @@ -702,7 +705,7 @@ func (p *EBPFProbe) handleEvent(CPU int, data []byte) { return } - relatedEvent := newEBPFEventFromPCE(entry, p.fieldHandlers) + relatedEvent := p.newEBPFPooledEventFromPCE(entry) if err != nil { var errResolution *path.ErrPathResolution @@ -1186,6 +1189,7 @@ func (p *EBPFProbe) handleEvent(CPU int, data []byte) { // send related events for _, relatedEvent := range relatedEvents { p.DispatchEvent(relatedEvent, true) + p.eventPool.Put(relatedEvent) } relatedEvents = relatedEvents[0:0] @@ -2112,6 +2116,10 @@ func NewEBPFProbe(probe *Probe, config *config.Config, opts Opts, telemetry tele } p.fieldHandlers = fh + p.eventPool = ddsync.NewTypedPool(func() *model.Event { + return newEBPFEvent(p.fieldHandlers) + }) + if useRingBuffers { p.eventStream = ringbuffer.New(p.handleEvent) p.managerOptions.SkipRingbufferReaderStartup = map[string]bool{ @@ -2452,3 +2460,23 @@ func (p *EBPFProbe) GetAgentContainerContext() *events.AgentContainerContext { var newPlaceholderProcessCacheEntryPTraceMe = sync.OnceValue(func() *model.ProcessCacheEntry { return model.NewPlaceholderProcessCacheEntry(0, 0, false) }) + +// newEBPFPooledEventFromPCE returns a new event from a process cache entry +func (p *EBPFProbe) newEBPFPooledEventFromPCE(entry *model.ProcessCacheEntry) *model.Event { + eventType := model.ExecEventType + if !entry.IsExec { + eventType = model.ForkEventType + } + + event := p.eventPool.Get() + + event.Type = uint32(eventType) + event.TimestampRaw = uint64(time.Now().UnixNano()) + event.ProcessCacheEntry = entry + event.ProcessContext = &entry.ProcessContext + event.Exec.Process = &entry.Process + event.ProcessContext.Process.ContainerID = entry.ContainerID + event.ProcessContext.Process.CGroup = entry.CGroup + + return event +} From 50a93b76d2742ad731d51d52f121bb327fecd55d Mon Sep 17 00:00:00 2001 From: Kevin Fairise <132568982+KevinFairise2@users.noreply.github.com> Date: Tue, 26 Nov 2024 10:51:24 +0100 Subject: [PATCH 041/439] [ADXT-362] [e2e] Add an ECS client that allows you to execute command in an ECS container (#30842) --- test/new-e2e/examples/ecs_test.go | 33 ++--- test/new-e2e/go.mod | 4 + test/new-e2e/go.sum | 8 ++ test/new-e2e/pkg/components/ecs_cluster.go | 21 ++++ test/new-e2e/pkg/utils/e2e/client/ecs/ecs.go | 101 +++++++++++++++ .../e2e/client/ecs/session-manager-plugin.go | 119 ++++++++++++++++++ 6 files changed, 266 insertions(+), 20 deletions(-) create mode 100644 test/new-e2e/pkg/utils/e2e/client/ecs/ecs.go create mode 100644 test/new-e2e/pkg/utils/e2e/client/ecs/session-manager-plugin.go diff --git a/test/new-e2e/examples/ecs_test.go b/test/new-e2e/examples/ecs_test.go index 155f53309ddd6..7a30eb6dfd7b4 100644 --- a/test/new-e2e/examples/ecs_test.go +++ b/test/new-e2e/examples/ecs_test.go @@ -10,18 +10,15 @@ import ( "fmt" "testing" + "github.com/stretchr/testify/require" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e" "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments" "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments/aws/ecs" - "github.com/DataDog/test-infra-definitions/components/datadog/apps/redis" - ecsComp "github.com/DataDog/test-infra-definitions/components/ecs" - "github.com/DataDog/test-infra-definitions/resources/aws" tifEcs "github.com/DataDog/test-infra-definitions/scenarios/aws/ecs" - awsconfig "github.com/aws/aws-sdk-go-v2/config" awsecs "github.com/aws/aws-sdk-go-v2/service/ecs" - - "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/aws/aws-sdk-go/aws" ) type myECSSuite struct { @@ -29,23 +26,19 @@ type myECSSuite struct { } func TestMyECSSuite(t *testing.T) { - e2e.Run(t, &myECSSuite{}, e2e.WithProvisioner(ecs.Provisioner(ecs.WithECSOptions(tifEcs.WithLinuxNodeGroup()), ecs.WithWorkloadApp(func(e aws.Environment, clusterArn pulumi.StringInput) (*ecsComp.Workload, error) { - return redis.EcsAppDefinition(e, clusterArn) - })))) + e2e.Run(t, &myECSSuite{}, e2e.WithProvisioner(ecs.Provisioner(ecs.WithECSOptions(tifEcs.WithLinuxNodeGroup())))) } func (v *myECSSuite) TestECS() { ctx := context.Background() - cfg, err := awsconfig.LoadDefaultConfig(ctx) - v.Require().NoError(err) - - client := awsecs.NewFromConfig(cfg) - services, err := client.ListServices(ctx, &awsecs.ListServicesInput{}) - v.Require().NoError(err) - - for _, service := range services.ServiceArns { - fmt.Println("Service:", service) - } - fmt.Println("Services:", services) + tasks, err := v.Env().ECSCluster.ECSClient.ListTasks(ctx, &awsecs.ListTasksInput{ + Cluster: aws.String(v.Env().ECSCluster.ClusterName), + }) + require.NoError(v.T(), err) + require.NotEmpty(v.T(), tasks.TaskArns) + out, err := v.Env().ECSCluster.ECSClient.ExecCommand(tasks.TaskArns[0], "datadog-agent", "ls -l") + require.NoError(v.T(), err) + fmt.Println("cmd output:", out, "end of cmd output") + require.NotEmpty(v.T(), out) } diff --git a/test/new-e2e/go.mod b/test/new-e2e/go.mod index cbe0427ab46c8..313297bdfd377 100644 --- a/test/new-e2e/go.mod +++ b/test/new-e2e/go.mod @@ -291,12 +291,15 @@ require ( github.com/DataDog/datadog-agent/comp/core/tagger/types v0.0.0-00010101000000-000000000000 github.com/DataDog/datadog-agent/pkg/trace v0.56.0-rc.3 github.com/DataDog/datadog-go/v5 v5.5.0 + github.com/aws/aws-sdk-go v1.50.36 + github.com/aws/session-manager-plugin v0.0.0-20241010233726-61cf1288c7c6 github.com/digitalocean/go-libvirt v0.0.0-20240812180835-9c6c0a310c6c github.com/hairyhenderson/go-codeowners v0.5.0 ) require ( github.com/DataDog/datadog-agent/comp/core/tagger/utils v0.59.0 // indirect + github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/pulumi/pulumi-azure-native-sdk/authorization/v2 v2.67.0 // indirect github.com/pulumi/pulumi-azure-native-sdk/compute/v2 v2.56.0 // indirect github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2 v2.67.0 // indirect @@ -304,6 +307,7 @@ require ( github.com/pulumi/pulumi-azure-native-sdk/v2 v2.67.0 // indirect github.com/pulumi/pulumi-gcp/sdk/v6 v6.67.1 // indirect github.com/pulumi/pulumi-gcp/sdk/v7 v7.38.0 // indirect + github.com/twinj/uuid v0.0.0-20151029044442-89173bcdda19 // indirect go.opentelemetry.io/collector/component v0.114.0 // indirect go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect go.opentelemetry.io/collector/extension v0.114.0 // indirect diff --git a/test/new-e2e/go.sum b/test/new-e2e/go.sum index 461ab8b6e6b39..2ff9abf58accd 100644 --- a/test/new-e2e/go.sum +++ b/test/new-e2e/go.sum @@ -48,6 +48,8 @@ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPd github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= +github.com/aws/aws-sdk-go v1.50.36 h1:PjWXHwZPuTLMR1NIb8nEjLucZBMzmf84TLoLbD8BZqk= +github.com/aws/aws-sdk-go v1.50.36/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v1.32.2 h1:AkNLZEyYMLnx/Q/mSKkcMqwNFXMAvFto9bNsHqcTduI= github.com/aws/aws-sdk-go-v2 v1.32.2/go.mod h1:2SK5n0a2karNTv5tbP1SjsX0uhttou00v/HpXKM1ZUo= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 h1:pT3hpW0cOHRJx8Y0DfJUEQuqPild8jRGmSFmBgvydr0= @@ -92,6 +94,8 @@ github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.4 h1:4f2/JKYZHAZbQ7koBpZ012bK github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.4/go.mod h1:FnvDM4sfa+isJ3kDXIzAB9GAwVSzFzSy97uZ3IsHo4E= github.com/aws/aws-sdk-go-v2/service/sts v1.31.4 h1:uK6dUUdJtqutK1XO/tmNaQMJiPLCJY/eAeOOmqQ6ygY= github.com/aws/aws-sdk-go-v2/service/sts v1.31.4/go.mod h1:yMWe0F+XG0DkRZK5ODZhG7BEFYhLXi2dqGsv6tX0cgI= +github.com/aws/session-manager-plugin v0.0.0-20241010233726-61cf1288c7c6 h1:iQc6pdTje/w3D3vrocVIvcosNVQGjoGxqBgPpwG28BY= +github.com/aws/session-manager-plugin v0.0.0-20241010233726-61cf1288c7c6/go.mod h1:7n17tunRPUsniNBu5Ja9C7WwJWTdOzaLqr/H0Ns3uuI= github.com/aws/smithy-go v1.22.0 h1:uunKnWlcoL3zO7q+gG2Pk53joueEOsnNB28QdMsmiMM= github.com/aws/smithy-go v1.22.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= @@ -123,6 +127,8 @@ github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuP github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= +github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= @@ -485,6 +491,8 @@ github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqa github.com/texttheater/golang-levenshtein v1.0.1/go.mod h1:PYAKrbF5sAiq9wd+H82hs7gNaen0CplQ9uvm6+enD/8= github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= +github.com/twinj/uuid v0.0.0-20151029044442-89173bcdda19 h1:HlxV0XiEKMMyjS3gGtJmmFZsxQ22GsLvA7F980il+1w= +github.com/twinj/uuid v0.0.0-20151029044442-89173bcdda19/go.mod h1:mMgcE1RHFUFqe5AfiwlINXisXfDGro23fWdPUfOMjRY= github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o= github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg= diff --git a/test/new-e2e/pkg/components/ecs_cluster.go b/test/new-e2e/pkg/components/ecs_cluster.go index 688cb8ed545ea..781dc6f3edd59 100644 --- a/test/new-e2e/pkg/components/ecs_cluster.go +++ b/test/new-e2e/pkg/components/ecs_cluster.go @@ -7,9 +7,30 @@ package components import ( "github.com/DataDog/test-infra-definitions/components/ecs" + + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e" + + clientecs "github.com/DataDog/datadog-agent/test/new-e2e/pkg/utils/e2e/client/ecs" ) // ECSCluster is an ECS Cluster type ECSCluster struct { ecs.ClusterOutput + + ECSClient *clientecs.Client +} + +var _ e2e.Initializable = &ECSCluster{} + +// Init is called by e2e test Suite after the component is provisioned. +func (c *ECSCluster) Init(e2e.Context) error { + + ecsClient, err := clientecs.NewClient(c.ClusterOutput.ClusterName) + if err != nil { + return err + } + + c.ECSClient = ecsClient + + return nil } diff --git a/test/new-e2e/pkg/utils/e2e/client/ecs/ecs.go b/test/new-e2e/pkg/utils/e2e/client/ecs/ecs.go new file mode 100644 index 0000000000000..21f7ac117da72 --- /dev/null +++ b/test/new-e2e/pkg/utils/e2e/client/ecs/ecs.go @@ -0,0 +1,101 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package ecs + +import ( + "context" + "errors" + "fmt" + "strings" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + awsConfig "github.com/aws/aws-sdk-go-v2/config" + "github.com/aws/aws-sdk-go-v2/service/ecs" + "github.com/cenkalti/backoff/v4" +) + +// Client is a client for ECS +type Client struct { + ecs.Client + clusterName string +} + +// NewClient creates a new ECS client +func NewClient(clusterName string) (*Client, error) { + ctx := context.Background() + cfg, err := awsConfig.LoadDefaultConfig(ctx) + if err != nil { + return nil, err + } + + return &Client{Client: *ecs.NewFromConfig(cfg), clusterName: clusterName}, err +} + +// ExecCommand executes a command in a container in a task in an ECS cluster. +// It accepts either the task ARN or the task ID. +// WARNING: This function will return a nil error as soon as it succeed to execute the command and retrieve the output, even if the command executed failed +// WARNING: This function will not work on Fargate tasks with pidMode=task per https://github.com/aws/containers-roadmap/issues/2268 +func (c *Client) ExecCommand(task, containerName string, cmd string) (string, error) { + taskID := task + if strings.HasPrefix(task, "arn:") { + taskArnSplit := strings.Split(task, "/") + taskID = taskArnSplit[len(taskArnSplit)-1] + } + + // Check that ExecCommand Agent is running + err := backoff.Retry(func() error { + tasks, err := c.DescribeTasks(context.Background(), &ecs.DescribeTasksInput{ + Cluster: aws.String(c.clusterName), + Tasks: []string{task}, + }) + if err != nil { + return err + } + + for _, container := range tasks.Tasks[0].Containers { + if *container.Name == containerName { + if *container.ManagedAgents[0].LastStatus != "RUNNING" { + return errors.New("agent not running") + } + } + } + return nil + }, backoff.WithMaxRetries(backoff.NewConstantBackOff(5*time.Second), 5)) + if err != nil { + return "", err + } + + output, err := c.ExecuteCommand(context.Background(), &ecs.ExecuteCommandInput{ + Cluster: aws.String(c.clusterName), + Container: aws.String(containerName), + Task: aws.String(taskID), + Command: aws.String(cmd), + Interactive: true, + }) + if err != nil { + return "", err + } + return retrieveResultFromExecOutput(c, output, taskID, containerName) +} + +func (c *Client) getContainerRuntime(task, containerName string) (string, error) { + res, err := c.DescribeTasks(context.Background(), &ecs.DescribeTasksInput{ + Cluster: aws.String(c.clusterName), + Tasks: []string{task}, + }) + if err != nil { + return "", err + } + for _, task := range res.Tasks { + for _, container := range task.Containers { + if *container.Name == containerName { + return *container.RuntimeId, nil + } + } + } + return "", fmt.Errorf("container %s not found in task %s", containerName, task) +} diff --git a/test/new-e2e/pkg/utils/e2e/client/ecs/session-manager-plugin.go b/test/new-e2e/pkg/utils/e2e/client/ecs/session-manager-plugin.go new file mode 100644 index 0000000000000..02348e0f587b5 --- /dev/null +++ b/test/new-e2e/pkg/utils/e2e/client/ecs/session-manager-plugin.go @@ -0,0 +1,119 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. +// +// Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may not +// use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, +// either express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +// The code that follows is mostly based on OpenDataChannel and Execute functions in github.com/aws/session-manager-plugin/src/sessionmanagerplugin/session/sessionhandler.go + +//nolint:revive,errcheck +package ecs + +import ( + "fmt" + "math/rand" + + "github.com/aws/aws-sdk-go-v2/service/ecs" + "github.com/aws/session-manager-plugin/src/config" + "github.com/aws/session-manager-plugin/src/datachannel" + "github.com/aws/session-manager-plugin/src/log" + "github.com/aws/session-manager-plugin/src/message" + "github.com/aws/session-manager-plugin/src/retry" + "github.com/aws/session-manager-plugin/src/sessionmanagerplugin/session" + "github.com/google/uuid" +) + +// Slightly modified version of OpenDataChannel function in github.com/aws/session-manager-plugin/src/sessionmanagerplugin/session/sessionhandler.go +func openDataChannel(s *session.Session, logger log.T, stopChan chan bool) (err error) { + retryParams := retry.RepeatableExponentialRetryer{ + GeometricRatio: config.RetryBase, + InitialDelayInMilli: rand.Intn(config.DataChannelRetryInitialDelayMillis) + config.DataChannelRetryInitialDelayMillis, + MaxDelayInMilli: config.DataChannelRetryMaxIntervalMillis, + MaxAttempts: config.DataChannelNumMaxRetries, + } + + s.DataChannel.Initialize(logger, s.ClientId, s.SessionId, s.TargetId, s.IsAwsCliUpgradeNeeded) + s.DataChannel.SetWebsocket(logger, s.StreamUrl, s.TokenValue) + s.DataChannel.GetWsChannel().SetOnMessage( + func(input []byte) { + s.DataChannel.OutputMessageHandler(logger, func() { stopChan <- true }, s.SessionId, input) + }) + s.DataChannel.RegisterOutputStreamHandler(s.ProcessFirstMessage, false) + + if err = s.DataChannel.Open(logger); err != nil { + logger.Errorf("Retrying connection for data channel id: %s failed with error: %s", s.SessionId, err) + retryParams.CallableFunc = func() (err error) { return s.DataChannel.Reconnect(logger) } + if err = retryParams.Call(); err != nil { + logger.Error(err) + } + } + + s.DataChannel.GetWsChannel().SetOnError( + func(_ error) { + logger.Errorf("Trying to reconnect the session: %v with seq num: %d", s.StreamUrl, s.DataChannel.GetStreamDataSequenceNumber()) + retryParams.CallableFunc = func() (err error) { return s.ResumeSessionHandler(logger) } + if err = retryParams.Call(); err != nil { + logger.Error(err) + } + }) + + // Scheduler for resending of data + s.DataChannel.ResendStreamDataMessageScheduler(logger) + + return nil +} + +// Slightly modified version of Execute function in github.com/aws/session-manager-plugin/src/sessionmanagerplugin/session/session.go +func execute(s *session.Session, logger log.T) (string, error) { + stopChannel := make(chan bool) + var payload []byte + if err := openDataChannel(s, logger, stopChannel); err != nil { + logger.Errorf("Error in Opening data channel: %v", err) + return "", err + } + s.DataChannel.RegisterOutputStreamHandler(func(logger log.T, msg message.ClientMessage) (bool, error) { + payload = append(payload, msg.Payload...) + return true, nil + }, true) + + select { + case <-s.DataChannel.IsSessionTypeSet(): + if <-stopChannel { + return string(payload), nil + } + case <-stopChannel: + return "", fmt.Errorf("Failed to initialize session") + } + return "", nil +} + +// retrieveResultFromExecOutput that allows to retrieve the result from the output of ecs ExecuteCommand method. It uses session-manager-plugin to retrieve the output. +func retrieveResultFromExecOutput(c *Client, output *ecs.ExecuteCommandOutput, task, container string) (string, error) { + containerRuntime, err := c.getContainerRuntime(task, container) + if err != nil { + return "", err + } + + sess := session.Session{} + sess.StreamUrl = *output.Session.StreamUrl + sess.TokenValue = *output.Session.TokenValue + sess.SessionId = *output.Session.SessionId + sess.Endpoint = "https://ecs.us-east-1.amazonaws.com" + sess.DataChannel = &datachannel.DataChannel{} + sess.ClientId = uuid.NewString() + sess.TargetId = fmt.Sprintf("ecs:%s_%s_%s", c.clusterName, task, containerRuntime) + logger := log.Logger(true, "ecs-execute") + return execute(&sess, logger) +} From 3caec429df34ce872a4d176683602751e0ebf4d2 Mon Sep 17 00:00:00 2001 From: Alexandre Yang Date: Tue, 26 Nov 2024 11:32:24 +0100 Subject: [PATCH 042/439] [ha-agent] Add agent_group tag to datadog.agent.running metric (#31156) --- cmd/agent/subcommands/diagnose/command.go | 2 + cmd/agent/subcommands/flare/command.go | 2 + cmd/agent/subcommands/jmx/command.go | 2 + cmd/agent/subcommands/snmp/command.go | 3 ++ .../subcommands/run/command.go | 2 + .../subcommands/start/command.go | 2 + cmd/dogstatsd/subcommands/start/command.go | 2 + cmd/systray/command/command.go | 2 + comp/aggregator/bundle_test.go | 2 + .../demultiplexerimpl/demultiplexer.go | 3 ++ .../demultiplexerimpl/demultiplexer_mock.go | 2 + .../demultiplexerimpl/status_test.go | 2 + .../test_agent_demultiplexer.go | 3 +- .../sendermanager.go | 4 ++ comp/haagent/mock/mock.go | 53 +++++++++++++------ pkg/aggregator/aggregator.go | 8 ++- pkg/aggregator/aggregator_test.go | 27 +++++++--- pkg/aggregator/check_sampler_bench_test.go | 4 +- pkg/aggregator/demultiplexer_agent.go | 10 ++-- pkg/aggregator/demultiplexer_agent_test.go | 10 ++-- pkg/aggregator/demultiplexer_mock.go | 4 +- pkg/aggregator/demultiplexer_test.go | 6 ++- pkg/aggregator/mocksender/mocksender.go | 3 +- pkg/aggregator/sender_test.go | 3 +- pkg/cli/subcommands/check/command.go | 2 + .../snmp/integration_profile_bundle_test.go | 2 +- .../snmp/integration_profile_metadata_test.go | 2 +- .../snmp/integration_topology_test.go | 6 +-- .../snmp/internal/checkconfig/config_test.go | 4 +- .../corechecks/systemd/systemd_test.go | 2 +- ...ent-group-metric-tag-66893d099fe880cc.yaml | 11 ++++ test/benchmarks/kubernetes_state/main.go | 2 +- 32 files changed, 147 insertions(+), 45 deletions(-) create mode 100644 releasenotes/notes/NDMII-3154-ha-agent-comp-agent-group-metric-tag-66893d099fe880cc.yaml diff --git a/cmd/agent/subcommands/diagnose/command.go b/cmd/agent/subcommands/diagnose/command.go index 8ed4bf53699e8..d2ab52827e8c1 100644 --- a/cmd/agent/subcommands/diagnose/command.go +++ b/cmd/agent/subcommands/diagnose/command.go @@ -28,6 +28,7 @@ import ( wmcatalog "github.com/DataDog/datadog-agent/comp/core/workloadmeta/collectors/catalog" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" workloadmetafx "github.com/DataDog/datadog-agent/comp/core/workloadmeta/fx" + haagentfx "github.com/DataDog/datadog-agent/comp/haagent/fx" "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" "github.com/DataDog/datadog-agent/pkg/api/util" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" @@ -106,6 +107,7 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { autodiscoveryimpl.Module(), compressionimpl.Module(), diagnosesendermanagerimpl.Module(), + haagentfx.Module(), ) }, } diff --git a/cmd/agent/subcommands/flare/command.go b/cmd/agent/subcommands/flare/command.go index ffc7459b64078..7f13516cdd8d4 100644 --- a/cmd/agent/subcommands/flare/command.go +++ b/cmd/agent/subcommands/flare/command.go @@ -43,6 +43,7 @@ import ( wmcatalog "github.com/DataDog/datadog-agent/comp/core/workloadmeta/collectors/catalog" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" workloadmetafx "github.com/DataDog/datadog-agent/comp/core/workloadmeta/fx" + haagentfx "github.com/DataDog/datadog-agent/comp/haagent/fx" "github.com/DataDog/datadog-agent/comp/metadata/host/hostimpl" "github.com/DataDog/datadog-agent/comp/metadata/inventoryagent/inventoryagentimpl" "github.com/DataDog/datadog-agent/comp/metadata/inventoryhost/inventoryhostimpl" @@ -144,6 +145,7 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { return nil }), core.Bundle(), + haagentfx.Module(), ) }, } diff --git a/cmd/agent/subcommands/jmx/command.go b/cmd/agent/subcommands/jmx/command.go index d7021dd32720b..c7df8718fa799 100644 --- a/cmd/agent/subcommands/jmx/command.go +++ b/cmd/agent/subcommands/jmx/command.go @@ -53,6 +53,7 @@ import ( "github.com/DataDog/datadog-agent/comp/dogstatsd/pidmap" replay "github.com/DataDog/datadog-agent/comp/dogstatsd/replay/def" dogstatsdServer "github.com/DataDog/datadog-agent/comp/dogstatsd/server" + haagentfx "github.com/DataDog/datadog-agent/comp/haagent/fx" "github.com/DataDog/datadog-agent/comp/remote-config/rcservice" "github.com/DataDog/datadog-agent/comp/remote-config/rcservicemrf" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" @@ -167,6 +168,7 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { proccontainers.InitSharedContainerProvider(wmeta, tagger) }), fx.Provide(func() remoteagentregistry.Component { return nil }), + haagentfx.Module(), ) } diff --git a/cmd/agent/subcommands/snmp/command.go b/cmd/agent/subcommands/snmp/command.go index 77abfb7c29961..5ab675e9d7a3e 100644 --- a/cmd/agent/subcommands/snmp/command.go +++ b/cmd/agent/subcommands/snmp/command.go @@ -26,6 +26,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" + haagentfx "github.com/DataDog/datadog-agent/comp/haagent/fx" "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" snmpscan "github.com/DataDog/datadog-agent/comp/snmpscan/def" snmpscanfx "github.com/DataDog/datadog-agent/comp/snmpscan/fx" @@ -100,6 +101,7 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { nooptagger.Module(), compressionimpl.Module(), eventplatformreceiverimpl.Module(), + haagentfx.Module(), ) if err != nil { var ue configErr @@ -163,6 +165,7 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { nooptagger.Module(), compressionimpl.Module(), snmpscanfx.Module(), + haagentfx.Module(), ) if err != nil { var ue configErr diff --git a/cmd/cluster-agent-cloudfoundry/subcommands/run/command.go b/cmd/cluster-agent-cloudfoundry/subcommands/run/command.go index 305b872133d7d..de5c2a6251426 100644 --- a/cmd/cluster-agent-cloudfoundry/subcommands/run/command.go +++ b/cmd/cluster-agent-cloudfoundry/subcommands/run/command.go @@ -49,6 +49,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" orchestratorForwarderImpl "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" + haagentfx "github.com/DataDog/datadog-agent/comp/haagent/fx" integrations "github.com/DataDog/datadog-agent/comp/logs/integrations/def" "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" "github.com/DataDog/datadog-agent/pkg/clusteragent" @@ -126,6 +127,7 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { fx.Invoke(func(wmeta workloadmeta.Component, tagger tagger.Component) { proccontainers.InitSharedContainerProvider(wmeta, tagger) }), + haagentfx.Module(), ) }, } diff --git a/cmd/cluster-agent/subcommands/start/command.go b/cmd/cluster-agent/subcommands/start/command.go index c4cd5d83276b9..e474997485de5 100644 --- a/cmd/cluster-agent/subcommands/start/command.go +++ b/cmd/cluster-agent/subcommands/start/command.go @@ -60,6 +60,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" orchestratorForwarderImpl "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" + haagentfx "github.com/DataDog/datadog-agent/comp/haagent/fx" integrations "github.com/DataDog/datadog-agent/comp/logs/integrations/def" rccomp "github.com/DataDog/datadog-agent/comp/remote-config/rcservice" "github.com/DataDog/datadog-agent/comp/remote-config/rcservice/rcserviceimpl" @@ -203,6 +204,7 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { fx.Invoke(func(wmeta workloadmeta.Component, tagger tagger.Component) { proccontainers.InitSharedContainerProvider(wmeta, tagger) }), + haagentfx.Module(), ) }, } diff --git a/cmd/dogstatsd/subcommands/start/command.go b/cmd/dogstatsd/subcommands/start/command.go index cd7dea61251b7..1b67382c861a3 100644 --- a/cmd/dogstatsd/subcommands/start/command.go +++ b/cmd/dogstatsd/subcommands/start/command.go @@ -43,6 +43,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" orchestratorForwarderImpl "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" + haagentfx "github.com/DataDog/datadog-agent/comp/haagent/fx" "github.com/DataDog/datadog-agent/comp/metadata/host" "github.com/DataDog/datadog-agent/comp/metadata/host/hostimpl" "github.com/DataDog/datadog-agent/comp/metadata/inventoryagent" @@ -173,6 +174,7 @@ func RunDogstatsdFct(cliParams *CLIParams, defaultConfPath string, defaultLogFil } }), healthprobefx.Module(), + haagentfx.Module(), ) } diff --git a/cmd/systray/command/command.go b/cmd/systray/command/command.go index b91fa3eac86df..df2415c7164ef 100644 --- a/cmd/systray/command/command.go +++ b/cmd/systray/command/command.go @@ -27,6 +27,7 @@ import ( log "github.com/DataDog/datadog-agent/comp/core/log/def" nooptagger "github.com/DataDog/datadog-agent/comp/core/tagger/fx-noop" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" + haagentfx "github.com/DataDog/datadog-agent/comp/haagent/fx" "github.com/DataDog/datadog-agent/comp/metadata/inventoryagent/inventoryagentimpl" "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" "github.com/DataDog/datadog-agent/comp/systray/systray" @@ -125,6 +126,7 @@ func MakeCommand() *cobra.Command { systrayimpl.Module(), // require the systray component, causing it to start fx.Invoke(func(_ systray.Component) {}), + haagentfx.Module(), ) }, } diff --git a/comp/aggregator/bundle_test.go b/comp/aggregator/bundle_test.go index 3a426385bccef..9b31c53698d21 100644 --- a/comp/aggregator/bundle_test.go +++ b/comp/aggregator/bundle_test.go @@ -14,6 +14,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" orchestratorForwarderImpl "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" + haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" "github.com/DataDog/datadog-agent/pkg/util/fxutil" ) @@ -26,5 +27,6 @@ func TestBundleDependencies(t *testing.T) { orchestratorForwarderImpl.MockModule(), eventplatformimpl.MockModule(), nooptagger.Module(), + haagentmock.Module(), ) } diff --git a/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer.go b/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer.go index c50c6528029a8..80a4817d42804 100644 --- a/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer.go +++ b/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer.go @@ -20,6 +20,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" orchestratorforwarder "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator" + haagent "github.com/DataDog/datadog-agent/comp/haagent/def" "github.com/DataDog/datadog-agent/comp/serializer/compression" "github.com/DataDog/datadog-agent/pkg/aggregator" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" @@ -42,6 +43,7 @@ type dependencies struct { SharedForwarder defaultforwarder.Component OrchestratorForwarder orchestratorforwarder.Component EventPlatformForwarder eventplatform.Component + HaAgent haagent.Component Compressor compression.Component Tagger tagger.Component @@ -86,6 +88,7 @@ func newDemultiplexer(deps dependencies) (provides, error) { deps.OrchestratorForwarder, options, deps.EventPlatformForwarder, + deps.HaAgent, deps.Compressor, deps.Tagger, hostnameDetected, diff --git a/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer_mock.go b/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer_mock.go index f7dc85d7beb18..eb8cfb684bc75 100644 --- a/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer_mock.go +++ b/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer_mock.go @@ -15,6 +15,7 @@ import ( "github.com/DataDog/datadog-agent/comp/core/hostname" log "github.com/DataDog/datadog-agent/comp/core/log/def" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" + haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" "github.com/DataDog/datadog-agent/pkg/aggregator" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" @@ -76,6 +77,7 @@ func newMock(deps mockDependencies) MockProvides { Hostname: deps.Hostname, SharedForwarder: defaultforwarder.NoopForwarder{}, Compressor: compressionimpl.NewMockCompressor(), + HaAgent: haagentmock.NewMockHaAgent(), } instance := &mock{AgentDemultiplexer: aggregator.InitAndStartAgentDemultiplexerForTest(aggDeps, opts, "")} diff --git a/comp/aggregator/demultiplexer/demultiplexerimpl/status_test.go b/comp/aggregator/demultiplexer/demultiplexerimpl/status_test.go index e66c099ac36aa..e5c620f88db3c 100644 --- a/comp/aggregator/demultiplexer/demultiplexerimpl/status_test.go +++ b/comp/aggregator/demultiplexer/demultiplexerimpl/status_test.go @@ -20,6 +20,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" + haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" "github.com/DataDog/datadog-agent/pkg/util/fxutil" ) @@ -61,6 +62,7 @@ func TestStatusOutPut(t *testing.T) { core.MockBundle(), compressionimpl.MockModule(), defaultforwarder.MockModule(), + haagentmock.Module(), orchestratorimpl.MockModule(), eventplatformimpl.MockModule(), fx.Provide(func() tagger.Component { diff --git a/comp/aggregator/demultiplexer/demultiplexerimpl/test_agent_demultiplexer.go b/comp/aggregator/demultiplexer/demultiplexerimpl/test_agent_demultiplexer.go index 4ac27d7d64460..9e051328c961d 100644 --- a/comp/aggregator/demultiplexer/demultiplexerimpl/test_agent_demultiplexer.go +++ b/comp/aggregator/demultiplexer/demultiplexerimpl/test_agent_demultiplexer.go @@ -18,6 +18,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" "github.com/DataDog/datadog-agent/comp/serializer/compression" "github.com/DataDog/datadog-agent/pkg/aggregator" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" @@ -185,6 +186,6 @@ func initTestAgentDemultiplexerWithFlushInterval(log log.Component, hostname hos sharedForwarder := defaultforwarder.NewDefaultForwarder(pkgconfigsetup.Datadog(), log, sharedForwarderOptions) orchestratorForwarder := optional.NewOption[defaultforwarder.Forwarder](defaultforwarder.NoopForwarder{}) eventPlatformForwarder := optional.NewOptionPtr[eventplatform.Forwarder](eventplatformimpl.NewNoopEventPlatformForwarder(hostname)) - demux := aggregator.InitAndStartAgentDemultiplexer(log, sharedForwarder, &orchestratorForwarder, opts, eventPlatformForwarder, compressor, noopimpl.NewComponent(), "hostname") + demux := aggregator.InitAndStartAgentDemultiplexer(log, sharedForwarder, &orchestratorForwarder, opts, eventPlatformForwarder, haagentmock.NewMockHaAgent(), compressor, noopimpl.NewComponent(), "hostname") return NewTestAgentDemultiplexer(demux) } diff --git a/comp/aggregator/diagnosesendermanager/diagnosesendermanagerimpl/sendermanager.go b/comp/aggregator/diagnosesendermanager/diagnosesendermanagerimpl/sendermanager.go index 73de2ac99cca7..b48e237937c57 100644 --- a/comp/aggregator/diagnosesendermanager/diagnosesendermanagerimpl/sendermanager.go +++ b/comp/aggregator/diagnosesendermanager/diagnosesendermanagerimpl/sendermanager.go @@ -19,6 +19,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + haagent "github.com/DataDog/datadog-agent/comp/haagent/def" "github.com/DataDog/datadog-agent/comp/serializer/compression" "github.com/DataDog/datadog-agent/pkg/aggregator" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" @@ -39,6 +40,7 @@ type dependencies struct { Hostname hostname.Component Compressor compression.Component Tagger tagger.Component + HaAgent haagent.Component } type diagnoseSenderManager struct { @@ -69,6 +71,7 @@ func (sender *diagnoseSenderManager) LazyGetSenderManager() (sender.SenderManage log := sender.deps.Log config := sender.deps.Config + haAgent := sender.deps.HaAgent forwarder := defaultforwarder.NewDefaultForwarder(config, log, defaultforwarder.NewOptions(config, log, nil)) orchestratorForwarder := optional.NewOptionPtr[defaultforwarder.Forwarder](defaultforwarder.NoopForwarder{}) eventPlatformForwarder := optional.NewOptionPtr[eventplatform.Forwarder](eventplatformimpl.NewNoopEventPlatformForwarder(sender.deps.Hostname)) @@ -78,6 +81,7 @@ func (sender *diagnoseSenderManager) LazyGetSenderManager() (sender.SenderManage orchestratorForwarder, opts, eventPlatformForwarder, + haAgent, sender.deps.Compressor, sender.deps.Tagger, hostnameDetected) diff --git a/comp/haagent/mock/mock.go b/comp/haagent/mock/mock.go index 6ee0c733361f7..52142737704c9 100644 --- a/comp/haagent/mock/mock.go +++ b/comp/haagent/mock/mock.go @@ -9,37 +9,60 @@ package mock import ( - "testing" + "go.uber.org/fx" log "github.com/DataDog/datadog-agent/comp/core/log/def" haagent "github.com/DataDog/datadog-agent/comp/haagent/def" + "github.com/DataDog/datadog-agent/pkg/util/fxutil" ) -type mock struct { +type mockHaAgent struct { Logger log.Component + + group string + enabled bool +} + +func (m *mockHaAgent) GetGroup() string { + return m.group +} + +func (m *mockHaAgent) Enabled() bool { + return m.enabled } -func (m *mock) GetGroup() string { - return "mockGroup01" +func (m *mockHaAgent) SetLeader(_ string) { } -func (m *mock) Enabled() bool { - return true +func (m *mockHaAgent) IsLeader() bool { return false } + +func (m *mockHaAgent) SetGroup(group string) { + m.group = group } -func (m *mock) SetLeader(_ string) { +func (m *mockHaAgent) SetEnabled(enabled bool) { + m.enabled = enabled } -func (m *mock) IsLeader() bool { return false } +// Component is the component type. +type Component interface { + haagent.Component -// Provides that defines the output of mocked snmpscan component -type Provides struct { - comp haagent.Component + SetGroup(string) + SetEnabled(bool) } -// Mock returns a mock for haagent component. -func Mock(_ *testing.T) Provides { - return Provides{ - comp: &mock{}, +// NewMockHaAgent returns a new Mock +func NewMockHaAgent() haagent.Component { + return &mockHaAgent{ + enabled: false, + group: "group01", } } + +// Module defines the fx options for the mock component. +func Module() fxutil.Module { + return fxutil.Component( + fx.Provide(NewMockHaAgent), + ) +} diff --git a/pkg/aggregator/aggregator.go b/pkg/aggregator/aggregator.go index d42ac89d50e47..e8ac4fd425d13 100644 --- a/pkg/aggregator/aggregator.go +++ b/pkg/aggregator/aggregator.go @@ -16,6 +16,7 @@ import ( tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/core/tagger/types" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + haagent "github.com/DataDog/datadog-agent/comp/haagent/def" "github.com/DataDog/datadog-agent/pkg/aggregator/internal/tags" checkid "github.com/DataDog/datadog-agent/pkg/collector/check/id" "github.com/DataDog/datadog-agent/pkg/config/model" @@ -252,6 +253,7 @@ type BufferedAggregator struct { flushMutex sync.Mutex // to start multiple flushes in parallel serializer serializer.MetricSerializer eventPlatformForwarder eventplatform.Component + haAgent haagent.Component hostname string hostnameUpdate chan string hostnameUpdateDone chan struct{} // signals that the hostname update is finished @@ -283,7 +285,7 @@ func NewFlushAndSerializeInParallel(config model.Config) FlushAndSerializeInPara } // NewBufferedAggregator instantiates a BufferedAggregator -func NewBufferedAggregator(s serializer.MetricSerializer, eventPlatformForwarder eventplatform.Component, tagger tagger.Component, hostname string, flushInterval time.Duration) *BufferedAggregator { +func NewBufferedAggregator(s serializer.MetricSerializer, eventPlatformForwarder eventplatform.Component, haAgent haagent.Component, tagger tagger.Component, hostname string, flushInterval time.Duration) *BufferedAggregator { bufferSize := pkgconfigsetup.Datadog().GetInt("aggregator_buffer_size") agentName := flavor.GetFlavor() @@ -326,6 +328,7 @@ func NewBufferedAggregator(s serializer.MetricSerializer, eventPlatformForwarder flushInterval: flushInterval, serializer: s, eventPlatformForwarder: eventPlatformForwarder, + haAgent: haAgent, hostname: hostname, hostnameUpdate: make(chan string), hostnameUpdateDone: make(chan struct{}), @@ -861,6 +864,9 @@ func (agg *BufferedAggregator) tags(withVersion bool) []string { tags = append(tags, "package_version:"+version.AgentPackageVersion) } } + if agg.haAgent.Enabled() { + tags = append(tags, "agent_group:"+agg.haAgent.GetGroup()) + } // nil to empty string // This is expected by other components/tests if tags == nil { diff --git a/pkg/aggregator/aggregator_test.go b/pkg/aggregator/aggregator_test.go index 64c33496891c7..c08aff0278bb1 100644 --- a/pkg/aggregator/aggregator_test.go +++ b/pkg/aggregator/aggregator_test.go @@ -27,6 +27,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" orchestratorforwarder "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator" + haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" checkid "github.com/DataDog/datadog-agent/pkg/collector/check/id" configmock "github.com/DataDog/datadog-agent/pkg/config/mock" @@ -146,7 +147,7 @@ func TestAddServiceCheckDefaultValues(t *testing.T) { s := &MockSerializerIterableSerie{} taggerComponent := taggerMock.SetupFakeTagger(t) - agg := NewBufferedAggregator(s, nil, taggerComponent, "resolved-hostname", DefaultFlushInterval) + agg := NewBufferedAggregator(s, nil, nil, taggerComponent, "resolved-hostname", DefaultFlushInterval) agg.addServiceCheck(servicecheck.ServiceCheck{ // leave Host and Ts fields blank @@ -179,7 +180,7 @@ func TestAddEventDefaultValues(t *testing.T) { s := &MockSerializerIterableSerie{} taggerComponent := taggerMock.SetupFakeTagger(t) - agg := NewBufferedAggregator(s, nil, taggerComponent, "resolved-hostname", DefaultFlushInterval) + agg := NewBufferedAggregator(s, nil, nil, taggerComponent, "resolved-hostname", DefaultFlushInterval) agg.addEvent(event.Event{ // only populate required fields @@ -229,7 +230,7 @@ func TestDefaultData(t *testing.T) { s := &MockSerializerIterableSerie{} taggerComponent := taggerMock.SetupFakeTagger(t) - agg := NewBufferedAggregator(s, nil, taggerComponent, "hostname", DefaultFlushInterval) + agg := NewBufferedAggregator(s, nil, haagentmock.NewMockHaAgent(), taggerComponent, "hostname", DefaultFlushInterval) start := time.Now() @@ -512,6 +513,7 @@ func TestTags(t *testing.T) { agentTags func(types.TagCardinality) ([]string, error) globalTags func(types.TagCardinality) ([]string, error) withVersion bool + haAgentEnabled bool want []string }{ { @@ -577,6 +579,16 @@ func TestTags(t *testing.T) { withVersion: true, want: []string{"container_name:agent", "version:" + version.AgentVersion, "kube_cluster_name:foo"}, }, + { + name: "tags disabled, without version, ha agent enabled", + hostname: "hostname", + tlmContainerTagsEnabled: false, + agentTags: func(types.TagCardinality) ([]string, error) { return nil, errors.New("disabled") }, + globalTags: func(types.TagCardinality) ([]string, error) { return nil, errors.New("disabled") }, + withVersion: false, + haAgentEnabled: true, + want: []string{"agent_group:group01"}, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { @@ -585,7 +597,10 @@ func TestTags(t *testing.T) { taggerComponent := taggerMock.SetupFakeTagger(t) - agg := NewBufferedAggregator(nil, nil, taggerComponent, tt.hostname, time.Second) + mockHaAgent := haagentmock.NewMockHaAgent().(haagentmock.Component) + mockHaAgent.SetEnabled(tt.haAgentEnabled) + + agg := NewBufferedAggregator(nil, nil, mockHaAgent, taggerComponent, tt.hostname, time.Second) agg.agentTags = tt.agentTags agg.globalTags = tt.globalTags assert.ElementsMatch(t, tt.want, agg.tags(tt.withVersion)) @@ -619,7 +634,7 @@ func TestAddDJMRecurrentSeries(t *testing.T) { s := &MockSerializerIterableSerie{} // NewBufferedAggregator with DJM enable will create a new recurrentSeries taggerComponent := taggerMock.SetupFakeTagger(t) - NewBufferedAggregator(s, nil, taggerComponent, "hostname", DefaultFlushInterval) + NewBufferedAggregator(s, nil, nil, taggerComponent, "hostname", DefaultFlushInterval) expectedRecurrentSeries := metrics.Series{&metrics.Serie{ Name: "datadog.djm.agent_host", @@ -728,7 +743,7 @@ type aggregatorDeps struct { } func createAggrDeps(t *testing.T) aggregatorDeps { - deps := fxutil.Test[TestDeps](t, defaultforwarder.MockModule(), core.MockBundle(), compressionimpl.MockModule()) + deps := fxutil.Test[TestDeps](t, defaultforwarder.MockModule(), core.MockBundle(), compressionimpl.MockModule(), haagentmock.Module()) opts := demuxTestOptions() return aggregatorDeps{ diff --git a/pkg/aggregator/check_sampler_bench_test.go b/pkg/aggregator/check_sampler_bench_test.go index dbb6e8b57bf45..daac7d2c251f6 100644 --- a/pkg/aggregator/check_sampler_bench_test.go +++ b/pkg/aggregator/check_sampler_bench_test.go @@ -17,6 +17,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" "github.com/DataDog/datadog-agent/comp/serializer/compression" //nolint:revive // TODO(AML) Fix revive linter @@ -51,7 +52,8 @@ func benchmarkAddBucket(bucketValue int64, b *testing.B) { sharedForwarder := forwarder.NewDefaultForwarder(pkgconfigsetup.Datadog(), deps.Log, forwarderOpts) orchestratorForwarder := optional.NewOption[defaultforwarder.Forwarder](defaultforwarder.NoopForwarder{}) eventPlatformForwarder := optional.NewOptionPtr[eventplatform.Forwarder](eventplatformimpl.NewNoopEventPlatformForwarder(deps.Hostname)) - demux := InitAndStartAgentDemultiplexer(deps.Log, sharedForwarder, &orchestratorForwarder, options, eventPlatformForwarder, deps.Compressor, taggerComponent, "hostname") + haAgent := haagentmock.NewMockHaAgent() + demux := InitAndStartAgentDemultiplexer(deps.Log, sharedForwarder, &orchestratorForwarder, options, eventPlatformForwarder, haAgent, deps.Compressor, taggerComponent, "hostname") defer demux.Stop(true) checkSampler := newCheckSampler(1, true, true, 1000, tags.NewStore(true, "bench"), checkid.ID("hello:world:1234"), taggerComponent) diff --git a/pkg/aggregator/demultiplexer_agent.go b/pkg/aggregator/demultiplexer_agent.go index a420537fccd25..36528b374b745 100644 --- a/pkg/aggregator/demultiplexer_agent.go +++ b/pkg/aggregator/demultiplexer_agent.go @@ -17,6 +17,7 @@ import ( forwarder "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" orchestratorforwarder "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator" + haagent "github.com/DataDog/datadog-agent/comp/haagent/def" "github.com/DataDog/datadog-agent/comp/serializer/compression" "github.com/DataDog/datadog-agent/pkg/aggregator/internal/tags" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" @@ -125,20 +126,21 @@ func InitAndStartAgentDemultiplexer( orchestratorForwarder orchestratorforwarder.Component, options AgentDemultiplexerOptions, eventPlatformForwarder eventplatform.Component, + haAgent haagent.Component, compressor compression.Component, tagger tagger.Component, hostname string) *AgentDemultiplexer { - demux := initAgentDemultiplexer(log, sharedForwarder, orchestratorForwarder, options, eventPlatformForwarder, compressor, tagger, hostname) + demux := initAgentDemultiplexer(log, sharedForwarder, orchestratorForwarder, options, eventPlatformForwarder, haAgent, compressor, tagger, hostname) go demux.run() return demux } -func initAgentDemultiplexer( - log log.Component, +func initAgentDemultiplexer(log log.Component, sharedForwarder forwarder.Forwarder, orchestratorForwarder orchestratorforwarder.Component, options AgentDemultiplexerOptions, eventPlatformForwarder eventplatform.Component, + haAgent haagent.Component, compressor compression.Component, tagger tagger.Component, hostname string) *AgentDemultiplexer { @@ -157,7 +159,7 @@ func initAgentDemultiplexer( // prepare the embedded aggregator // -- - agg := NewBufferedAggregator(sharedSerializer, eventPlatformForwarder, tagger, hostname, options.FlushInterval) + agg := NewBufferedAggregator(sharedSerializer, eventPlatformForwarder, haAgent, tagger, hostname, options.FlushInterval) // statsd samplers // --------------- diff --git a/pkg/aggregator/demultiplexer_agent_test.go b/pkg/aggregator/demultiplexer_agent_test.go index f2703abc6ec17..0d0d1af8a4ef8 100644 --- a/pkg/aggregator/demultiplexer_agent_test.go +++ b/pkg/aggregator/demultiplexer_agent_test.go @@ -23,6 +23,8 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" orchestratorforwarder "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator" "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" + haagent "github.com/DataDog/datadog-agent/comp/haagent/def" + haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" "github.com/DataDog/datadog-agent/comp/serializer/compression" "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" "github.com/DataDog/datadog-agent/pkg/metrics" @@ -65,7 +67,7 @@ func TestDemuxNoAggOptionDisabled(t *testing.T) { opts := demuxTestOptions() deps := createDemultiplexerAgentTestDeps(t) - demux := initAgentDemultiplexer(deps.Log, NewForwarderTest(deps.Log), deps.OrchestratorFwd, opts, deps.EventPlatform, deps.Compressor, deps.Tagger, "") + demux := initAgentDemultiplexer(deps.Log, NewForwarderTest(deps.Log), deps.OrchestratorFwd, opts, deps.EventPlatform, deps.HaAgent, deps.Compressor, deps.Tagger, "") batch := testDemuxSamples(t) @@ -87,7 +89,7 @@ func TestDemuxNoAggOptionEnabled(t *testing.T) { mockSerializer.On("AreSketchesEnabled").Return(true) opts.EnableNoAggregationPipeline = true deps := createDemultiplexerAgentTestDeps(t) - demux := initAgentDemultiplexer(deps.Log, NewForwarderTest(deps.Log), deps.OrchestratorFwd, opts, deps.EventPlatform, deps.Compressor, deps.Tagger, "") + demux := initAgentDemultiplexer(deps.Log, NewForwarderTest(deps.Log), deps.OrchestratorFwd, opts, deps.EventPlatform, deps.HaAgent, deps.Compressor, deps.Tagger, "") demux.statsd.noAggStreamWorker.serializer = mockSerializer // the no agg pipeline will use our mocked serializer go demux.run() @@ -112,7 +114,7 @@ func TestDemuxNoAggOptionEnabled(t *testing.T) { func TestDemuxNoAggOptionIsDisabledByDefault(t *testing.T) { opts := demuxTestOptions() - deps := fxutil.Test[TestDeps](t, defaultforwarder.MockModule(), core.MockBundle(), compressionimpl.MockModule()) + deps := fxutil.Test[TestDeps](t, defaultforwarder.MockModule(), core.MockBundle(), compressionimpl.MockModule(), haagentmock.Module()) demux := InitAndStartAgentDemultiplexerForTest(deps, opts, "") require.False(t, demux.Options().EnableNoAggregationPipeline, "the no aggregation pipeline should be disabled by default") @@ -157,6 +159,7 @@ type DemultiplexerAgentTestDeps struct { EventPlatform eventplatform.Component Compressor compression.Component Tagger tagger.Component + HaAgent haagent.Component } func createDemultiplexerAgentTestDeps(t *testing.T) DemultiplexerAgentTestDeps { @@ -168,6 +171,7 @@ func createDemultiplexerAgentTestDeps(t *testing.T) DemultiplexerAgentTestDeps { core.MockBundle(), orchestratorimpl.MockModule(), eventplatformimpl.MockModule(), + haagentmock.Module(), compressionimpl.MockModule(), fx.Provide(func() tagger.Component { return taggerComponent }), ) diff --git a/pkg/aggregator/demultiplexer_mock.go b/pkg/aggregator/demultiplexer_mock.go index 917a788795957..c6511f7eb6890 100644 --- a/pkg/aggregator/demultiplexer_mock.go +++ b/pkg/aggregator/demultiplexer_mock.go @@ -16,6 +16,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + haagent "github.com/DataDog/datadog-agent/comp/haagent/def" "github.com/DataDog/datadog-agent/comp/serializer/compression" "github.com/DataDog/datadog-agent/pkg/util/optional" ) @@ -27,11 +28,12 @@ type TestDeps struct { Hostname hostname.Component SharedForwarder defaultforwarder.Component Compressor compression.Component + HaAgent haagent.Component } // InitAndStartAgentDemultiplexerForTest initializes an aggregator for tests. func InitAndStartAgentDemultiplexerForTest(deps TestDeps, options AgentDemultiplexerOptions, hostname string) *AgentDemultiplexer { orchestratorForwarder := optional.NewOption[defaultforwarder.Forwarder](defaultforwarder.NoopForwarder{}) eventPlatformForwarder := optional.NewOptionPtr[eventplatform.Forwarder](eventplatformimpl.NewNoopEventPlatformForwarder(deps.Hostname)) - return InitAndStartAgentDemultiplexer(deps.Log, deps.SharedForwarder, &orchestratorForwarder, options, eventPlatformForwarder, deps.Compressor, nooptagger.NewComponent(), hostname) + return InitAndStartAgentDemultiplexer(deps.Log, deps.SharedForwarder, &orchestratorForwarder, options, eventPlatformForwarder, deps.HaAgent, deps.Compressor, nooptagger.NewComponent(), hostname) } diff --git a/pkg/aggregator/demultiplexer_test.go b/pkg/aggregator/demultiplexer_test.go index 6c3dd77976bdf..f95ab7020d3c8 100644 --- a/pkg/aggregator/demultiplexer_test.go +++ b/pkg/aggregator/demultiplexer_test.go @@ -21,6 +21,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" orchestratorForwarder "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator" orchestratorForwarderImpl "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" + haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" "github.com/DataDog/datadog-agent/comp/serializer/compression" "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" checkid "github.com/DataDog/datadog-agent/pkg/collector/check/id" @@ -173,7 +174,7 @@ func TestDemuxFlushAggregatorToSerializer(t *testing.T) { opts := demuxTestOptions() opts.FlushInterval = time.Hour deps := createDemuxDeps(t, opts, eventplatformimpl.NewDefaultParams()) - demux := initAgentDemultiplexer(deps.Log, deps.SharedForwarder, deps.OrchestratorFwd, opts, deps.EventPlatformFwd, deps.Compressor, nooptagger.NewComponent(), "") + demux := initAgentDemultiplexer(deps.Log, deps.SharedForwarder, deps.OrchestratorFwd, opts, deps.EventPlatformFwd, deps.HaAgent, deps.Compressor, nooptagger.NewComponent(), "") demux.Aggregator().tlmContainerTagsEnabled = false require.NotNil(demux) require.NotNil(demux.aggregator) @@ -295,12 +296,13 @@ func createDemuxDepsWithOrchestratorFwd( eventplatformimpl.Module(eventPlatformParams), eventplatformreceiverimpl.Module(), compressionimpl.MockModule(), + haagentmock.Module(), ) deps := fxutil.Test[internalDemutiplexerDeps](t, modules) return aggregatorDeps{ TestDeps: deps.TestDeps, - Demultiplexer: InitAndStartAgentDemultiplexer(deps.Log, deps.SharedForwarder, deps.OrchestratorForwarder, opts, deps.Eventplatform, deps.Compressor, nooptagger.NewComponent(), ""), + Demultiplexer: InitAndStartAgentDemultiplexer(deps.Log, deps.SharedForwarder, deps.OrchestratorForwarder, opts, deps.Eventplatform, deps.HaAgent, deps.Compressor, nooptagger.NewComponent(), ""), OrchestratorFwd: deps.OrchestratorForwarder, EventPlatformFwd: deps.Eventplatform, } diff --git a/pkg/aggregator/mocksender/mocksender.go b/pkg/aggregator/mocksender/mocksender.go index e4403bdc352ef..309a07ae0b3bf 100644 --- a/pkg/aggregator/mocksender/mocksender.go +++ b/pkg/aggregator/mocksender/mocksender.go @@ -20,6 +20,7 @@ import ( "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" nooptagger "github.com/DataDog/datadog-agent/comp/core/tagger/impl-noop" + haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" "github.com/DataDog/datadog-agent/pkg/aggregator" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" checkid "github.com/DataDog/datadog-agent/pkg/collector/check/id" @@ -43,7 +44,7 @@ func CreateDefaultDemultiplexer() *aggregator.AgentDemultiplexer { orchestratorForwarder := optional.NewOption[defaultforwarder.Forwarder](defaultforwarder.NoopForwarder{}) eventPlatformForwarder := optional.NewOptionPtr[eventplatform.Forwarder](eventplatformimpl.NewNoopEventPlatformForwarder(hostnameimpl.NewHostnameService())) taggerComponent := nooptagger.NewComponent() - return aggregator.InitAndStartAgentDemultiplexer(log, sharedForwarder, &orchestratorForwarder, opts, eventPlatformForwarder, compressionimpl.NewMockCompressor(), taggerComponent, "") + return aggregator.InitAndStartAgentDemultiplexer(log, sharedForwarder, &orchestratorForwarder, opts, eventPlatformForwarder, haagentmock.NewMockHaAgent(), compressionimpl.NewMockCompressor(), taggerComponent, "") } diff --git a/pkg/aggregator/sender_test.go b/pkg/aggregator/sender_test.go index 17713653a59bc..68045d0d04715 100644 --- a/pkg/aggregator/sender_test.go +++ b/pkg/aggregator/sender_test.go @@ -23,6 +23,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" checkid "github.com/DataDog/datadog-agent/pkg/collector/check/id" "github.com/DataDog/datadog-agent/pkg/metrics" @@ -58,7 +59,7 @@ func testDemux(log log.Component, hostname hostname.Component) *AgentDemultiplex opts.DontStartForwarders = true orchestratorForwarder := optional.NewOption[defaultforwarder.Forwarder](defaultforwarder.NoopForwarder{}) eventPlatformForwarder := optional.NewOptionPtr[eventplatform.Forwarder](eventplatformimpl.NewNoopEventPlatformForwarder(hostname)) - demux := initAgentDemultiplexer(log, NewForwarderTest(log), &orchestratorForwarder, opts, eventPlatformForwarder, compressionimpl.NewMockCompressor(), nooptagger.NewComponent(), defaultHostname) + demux := initAgentDemultiplexer(log, NewForwarderTest(log), &orchestratorForwarder, opts, eventPlatformForwarder, haagentmock.NewMockHaAgent(), compressionimpl.NewMockCompressor(), nooptagger.NewComponent(), defaultHostname) return demux } diff --git a/pkg/cli/subcommands/check/command.go b/pkg/cli/subcommands/check/command.go index f88bd1b8a2dc2..2da70cead3066 100644 --- a/pkg/cli/subcommands/check/command.go +++ b/pkg/cli/subcommands/check/command.go @@ -61,6 +61,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" orchestratorForwarderImpl "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" + haagentfx "github.com/DataDog/datadog-agent/comp/haagent/fx" logagent "github.com/DataDog/datadog-agent/comp/logs/agent" integrations "github.com/DataDog/datadog-agent/comp/logs/integrations/def" "github.com/DataDog/datadog-agent/comp/metadata/inventorychecks" @@ -212,6 +213,7 @@ func MakeCommand(globalParamsGetter func() GlobalParams) *cobra.Command { getPlatformModules(), jmxloggerimpl.Module(jmxloggerimpl.NewDisabledParams()), + haagentfx.Module(), ) }, } diff --git a/pkg/collector/corechecks/snmp/integration_profile_bundle_test.go b/pkg/collector/corechecks/snmp/integration_profile_bundle_test.go index 720f4f713a35b..6e7c55f230fcc 100644 --- a/pkg/collector/corechecks/snmp/integration_profile_bundle_test.go +++ b/pkg/collector/corechecks/snmp/integration_profile_bundle_test.go @@ -25,7 +25,7 @@ import ( func TestProfileBundleJsonZip(t *testing.T) { timeNow = common.MockTimeNow - aggregator.NewBufferedAggregator(nil, nil, nooptagger.NewComponent(), "", 1*time.Hour) + aggregator.NewBufferedAggregator(nil, nil, nil, nooptagger.NewComponent(), "", 1*time.Hour) invalidPath, _ := filepath.Abs(filepath.Join("internal", "test", "zipprofiles.d")) pkgconfigsetup.Datadog().SetWithoutSource("confd_path", invalidPath) diff --git a/pkg/collector/corechecks/snmp/integration_profile_metadata_test.go b/pkg/collector/corechecks/snmp/integration_profile_metadata_test.go index 06b55c7df2180..68e82058528dd 100644 --- a/pkg/collector/corechecks/snmp/integration_profile_metadata_test.go +++ b/pkg/collector/corechecks/snmp/integration_profile_metadata_test.go @@ -32,7 +32,7 @@ import ( func TestProfileMetadata_f5(t *testing.T) { timeNow = common.MockTimeNow - aggregator.NewBufferedAggregator(nil, nil, nooptagger.NewComponent(), "", 1*time.Hour) + aggregator.NewBufferedAggregator(nil, nil, nil, nooptagger.NewComponent(), "", 1*time.Hour) invalidPath, _ := filepath.Abs(filepath.Join("internal", "test", "metadata.d")) pkgconfigsetup.Datadog().SetWithoutSource("confd_path", invalidPath) diff --git a/pkg/collector/corechecks/snmp/integration_topology_test.go b/pkg/collector/corechecks/snmp/integration_topology_test.go index 0f5ccfbc2e5f4..b4f0f42ceb6d0 100644 --- a/pkg/collector/corechecks/snmp/integration_topology_test.go +++ b/pkg/collector/corechecks/snmp/integration_topology_test.go @@ -32,7 +32,7 @@ import ( func TestTopologyPayload_LLDP(t *testing.T) { timeNow = common.MockTimeNow - aggregator.NewBufferedAggregator(nil, nil, nooptagger.NewComponent(), "", 1*time.Hour) + aggregator.NewBufferedAggregator(nil, nil, nil, nooptagger.NewComponent(), "", 1*time.Hour) invalidPath, _ := filepath.Abs(filepath.Join("internal", "test", "metadata.d")) pkgconfigsetup.Datadog().SetWithoutSource("confd_path", invalidPath) @@ -734,7 +734,7 @@ profiles: func TestTopologyPayload_CDP(t *testing.T) { timeNow = common.MockTimeNow - aggregator.NewBufferedAggregator(nil, nil, nooptagger.NewComponent(), "", 1*time.Hour) + aggregator.NewBufferedAggregator(nil, nil, nil, nooptagger.NewComponent(), "", 1*time.Hour) invalidPath, _ := filepath.Abs(filepath.Join("internal", "test", "metadata.d")) pkgconfigsetup.Datadog().SetWithoutSource("confd_path", invalidPath) @@ -1427,7 +1427,7 @@ profiles: // we have different data for LLDP and CDP to test that we're only using LLDP to build the links func TestTopologyPayload_LLDP_CDP(t *testing.T) { timeNow = common.MockTimeNow - aggregator.NewBufferedAggregator(nil, nil, nooptagger.NewComponent(), "", 1*time.Hour) + aggregator.NewBufferedAggregator(nil, nil, nil, nooptagger.NewComponent(), "", 1*time.Hour) invalidPath, _ := filepath.Abs(filepath.Join("internal", "test", "metadata.d")) pkgconfigsetup.Datadog().SetWithoutSource("confd_path", invalidPath) diff --git a/pkg/collector/corechecks/snmp/internal/checkconfig/config_test.go b/pkg/collector/corechecks/snmp/internal/checkconfig/config_test.go index ac8c0520fb1fc..d8536a4931cb6 100644 --- a/pkg/collector/corechecks/snmp/internal/checkconfig/config_test.go +++ b/pkg/collector/corechecks/snmp/internal/checkconfig/config_test.go @@ -25,7 +25,7 @@ import ( func TestConfigurations(t *testing.T) { profile.SetConfdPathAndCleanProfiles() - aggregator.NewBufferedAggregator(nil, nil, nooptagger.NewComponent(), "", 1*time.Hour) + aggregator.NewBufferedAggregator(nil, nil, nil, nooptagger.NewComponent(), "", 1*time.Hour) // language=yaml rawInstanceConfig := []byte(` @@ -326,7 +326,7 @@ profiles: func TestInlineProfileConfiguration(t *testing.T) { profile.SetConfdPathAndCleanProfiles() - aggregator.NewBufferedAggregator(nil, nil, nooptagger.NewComponent(), "", 1*time.Hour) + aggregator.NewBufferedAggregator(nil, nil, nil, nooptagger.NewComponent(), "", 1*time.Hour) // language=yaml rawInstanceConfig := []byte(` diff --git a/pkg/collector/corechecks/systemd/systemd_test.go b/pkg/collector/corechecks/systemd/systemd_test.go index 6f91dc4edd2fe..7fb9d67df981a 100644 --- a/pkg/collector/corechecks/systemd/systemd_test.go +++ b/pkg/collector/corechecks/systemd/systemd_test.go @@ -1087,7 +1087,7 @@ unit_names: func TestCheckID(t *testing.T) { check1 := newCheck() check2 := newCheck() - aggregator.NewBufferedAggregator(nil, nil, nooptagger.NewComponent(), "", 1*time.Hour) + aggregator.NewBufferedAggregator(nil, nil, nil, nooptagger.NewComponent(), "", 1*time.Hour) // language=yaml rawInstanceConfig1 := []byte(` diff --git a/releasenotes/notes/NDMII-3154-ha-agent-comp-agent-group-metric-tag-66893d099fe880cc.yaml b/releasenotes/notes/NDMII-3154-ha-agent-comp-agent-group-metric-tag-66893d099fe880cc.yaml new file mode 100644 index 0000000000000..80412f488753f --- /dev/null +++ b/releasenotes/notes/NDMII-3154-ha-agent-comp-agent-group-metric-tag-66893d099fe880cc.yaml @@ -0,0 +1,11 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +enhancements: + - | + [ha-agent] Add agent_group tag to datadog.agent.running metric diff --git a/test/benchmarks/kubernetes_state/main.go b/test/benchmarks/kubernetes_state/main.go index 08b83d358855e..a1ea844898a9b 100644 --- a/test/benchmarks/kubernetes_state/main.go +++ b/test/benchmarks/kubernetes_state/main.go @@ -207,7 +207,7 @@ func main() { * As it has a `nil` serializer, it will panic if it tries to flush the metrics. * That’s why we need a big enough flush interval */ - aggregator.NewBufferedAggregator(nil, "", 1*time.Hour) + aggregator.NewBufferedAggregator(nil, "", nil, 1*time.Hour) /* * Wait for informers to get populated From 00429a172771f2c87ba38b99ed3e3cc897bf3444 Mon Sep 17 00:00:00 2001 From: Guillaume Fournier <36961134+Gui774ume@users.noreply.github.com> Date: Tue, 26 Nov 2024 11:58:33 +0100 Subject: [PATCH 043/439] [cws-instrumentation] Ignore miss-configurations when cws instrumentation is disabled (#31472) --- .github/CODEOWNERS | 1 + .../controllers/webhook/controller_base.go | 14 +++++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 13736254babae..aea9022667a2e 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -372,6 +372,7 @@ /pkg/clusteragent/autoscaling/ @DataDog/container-integrations /pkg/clusteragent/admission/mutate/autoscaling @DataDog/container-integrations /pkg/clusteragent/admission/mutate/autoinstrumentation/ @DataDog/container-platform @DataDog/injection-platform +/pkg/clusteragent/admission/mutate/cwsinstrumentation @Datadog/agent-security /pkg/clusteragent/orchestrator/ @DataDog/container-app /pkg/clusteragent/telemetry/ @DataDog/apm-trace-storage /pkg/collector/ @DataDog/agent-metrics-logs diff --git a/pkg/clusteragent/admission/controllers/webhook/controller_base.go b/pkg/clusteragent/admission/controllers/webhook/controller_base.go index 74a1489b9824f..5124704395ea3 100644 --- a/pkg/clusteragent/admission/controllers/webhook/controller_base.go +++ b/pkg/clusteragent/admission/controllers/webhook/controller_base.go @@ -33,6 +33,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/clusteragent/admission/mutate/cwsinstrumentation" "github.com/DataDog/datadog-agent/pkg/clusteragent/admission/mutate/tagsfromlabels" "github.com/DataDog/datadog-agent/pkg/clusteragent/autoscaling/workload" + pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/util/log" ) @@ -127,11 +128,14 @@ func (c *controllerBase) generateWebhooks(wmeta workloadmeta.Component, pa workl log.Errorf("failed to register APM Instrumentation webhook: %v", err) } - cws, err := cwsinstrumentation.NewCWSInstrumentation(wmeta, datadogConfig) - if err == nil { - webhooks = append(webhooks, cws.WebhookForPods(), cws.WebhookForCommands()) - } else { - log.Errorf("failed to register CWS Instrumentation webhook: %v", err) + isCWSInstrumentationEnabled := pkgconfigsetup.Datadog().GetBool("admission_controller.cws_instrumentation.enabled") + if isCWSInstrumentationEnabled { + cws, err := cwsinstrumentation.NewCWSInstrumentation(wmeta, datadogConfig) + if err == nil { + webhooks = append(webhooks, cws.WebhookForPods(), cws.WebhookForCommands()) + } else { + log.Errorf("failed to register CWS Instrumentation webhook: %v", err) + } } } From c51e43f0bb5ab1b0cbab129725267cb646cbcfab Mon Sep 17 00:00:00 2001 From: val06 Date: Tue, 26 Nov 2024 13:01:21 +0200 Subject: [PATCH 044/439] [USM] fix edge-case in protocols testutil (#31430) --- .../protocols/testutil/patternscanner.go | 35 +++++++++++++------ 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/pkg/network/protocols/testutil/patternscanner.go b/pkg/network/protocols/testutil/patternscanner.go index 5b73e706d57c1..ef95e75b24c1a 100644 --- a/pkg/network/protocols/testutil/patternscanner.go +++ b/pkg/network/protocols/testutil/patternscanner.go @@ -26,6 +26,9 @@ type PatternScanner struct { // keep the stdout/err in case of failure buffers []string + + //Buffer for accumulating partial lines + lineBuf string } // NewScanner returns a new instance of PatternScanner. @@ -41,18 +44,30 @@ func NewScanner(pattern *regexp.Regexp, doneChan chan struct{}) *PatternScanner // Write implemented io.Writer to be used as a callback for log/string writing. // Once we find a match in for the given pattern, we notify the caller. func (ps *PatternScanner) Write(p []byte) (n int, err error) { - ps.buffers = append(ps.buffers, string(p)) - n = len(p) - err = nil - - if !ps.stopped && ps.pattern.Match(p) { - ps.stopOnce.Do(func() { - ps.DoneChan <- struct{}{} - ps.stopped = true - }) + // Ignore writes after the pattern has been matched. + if ps.stopped { + return len(p), nil + } + + // Append new data to the line buffer. + ps.lineBuf += string(p) + + // Split the buffer into lines. + lines := strings.Split(ps.lineBuf, "\n") + ps.lineBuf = lines[len(lines)-1] // Save the last (possibly incomplete) line. + + // Process all complete lines. + for _, line := range lines[:len(lines)-1] { + ps.buffers = append(ps.buffers, line) // Save the log line. + if !ps.stopped && ps.pattern.MatchString(line) { + ps.stopOnce.Do(func() { + ps.stopped = true + close(ps.DoneChan) // Notify the caller about the match. + }) + } } - return + return len(p), nil } // PrintLogs writes the captured logs into the test logger. From 5caf3e1ed0f17fcf83abe57edbdcac11addda85a Mon Sep 17 00:00:00 2001 From: Sylvain Afchain Date: Tue, 26 Nov 2024 12:34:50 +0100 Subject: [PATCH 045/439] [CWS] add a bypass if raw packet disabled or no rules (#31438) --- .../ebpf/c/include/hooks/network/tc.h | 13 +++++++++ pkg/security/ebpf/c/include/maps.h | 1 + pkg/security/probe/probe_ebpf.go | 29 +++++++++++++++++-- 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/pkg/security/ebpf/c/include/hooks/network/tc.h b/pkg/security/ebpf/c/include/hooks/network/tc.h index 1ed6bdd8d0c66..8445905aa3ccf 100644 --- a/pkg/security/ebpf/c/include/hooks/network/tc.h +++ b/pkg/security/ebpf/c/include/hooks/network/tc.h @@ -52,9 +52,18 @@ __attribute__((always_inline)) int prepare_raw_packet_event(struct __sk_buff *sk return ACT_OK; } +__attribute__((always_inline)) int is_raw_packet_enabled() { + u32 key = 0; + u32 *enabled = bpf_map_lookup_elem(&raw_packet_enabled, &key); + return enabled && *enabled; +} SEC("classifier/ingress") int classifier_raw_packet_ingress(struct __sk_buff *skb) { + if (!is_raw_packet_enabled()) { + return ACT_OK; + } + struct packet_t *pkt = parse_packet(skb, INGRESS); if (!pkt) { return ACT_OK; @@ -76,6 +85,10 @@ int classifier_raw_packet_ingress(struct __sk_buff *skb) { SEC("classifier/egress") int classifier_raw_packet_egress(struct __sk_buff *skb) { + if (!is_raw_packet_enabled()) { + return ACT_OK; + } + struct packet_t *pkt = parse_packet(skb, EGRESS); if (!pkt) { return ACT_OK; diff --git a/pkg/security/ebpf/c/include/maps.h b/pkg/security/ebpf/c/include/maps.h index c5050fd5545c7..2019c630c6f4c 100644 --- a/pkg/security/ebpf/c/include/maps.h +++ b/pkg/security/ebpf/c/include/maps.h @@ -89,6 +89,7 @@ BPF_PERCPU_ARRAY_MAP(selinux_write_buffer, struct selinux_write_buffer_t, 1) BPF_PERCPU_ARRAY_MAP(is_new_kthread, u32, 1) BPF_PERCPU_ARRAY_MAP(syscalls_stats, struct syscalls_stats_t, EVENT_MAX) BPF_PERCPU_ARRAY_MAP(raw_packet_event, struct raw_packet_event_t, 1) +BPF_PERCPU_ARRAY_MAP(raw_packet_enabled, u32, 1) BPF_PROG_ARRAY(args_envs_progs, 3) BPF_PROG_ARRAY(dentry_resolver_kprobe_or_fentry_callbacks, EVENT_MAX) diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go index bd73d1b34e4a0..81d5f6cb01154 100644 --- a/pkg/security/probe/probe_ebpf.go +++ b/pkg/security/probe/probe_ebpf.go @@ -115,6 +115,7 @@ type EBPFProbe struct { profileManagers *SecurityProfileManagers fieldHandlers *EBPFFieldHandlers eventPool *ddsync.TypedPool[model.Event] + numCPU int ctx context.Context cancelFnc context.CancelFunc @@ -384,6 +385,14 @@ func (p *EBPFProbe) setupRawPacketProgs(rs *rules.RuleSet) error { return errors.New("unable to find `classifier_router` map") } + enabledMap, _, err := p.Manager.GetMap("raw_packet_enabled") + if err != nil { + return err + } + if enabledMap == nil { + return errors.New("unable to find `raw_packet_enabled` map") + } + var rawPacketFilters []rawpacket.Filter for id, rule := range rs.GetRules() { for _, field := range rule.GetFieldValues("packet.filter") { @@ -394,12 +403,28 @@ func (p *EBPFProbe) setupRawPacketProgs(rs *rules.RuleSet) error { } } + // enable raw packet or not + enabled := make([]uint32, p.numCPU) + if len(rawPacketFilters) > 0 { + for i := range enabled { + enabled[i] = 1 + } + } + if err = enabledMap.Put(uint32(0), enabled); err != nil { + seclog.Errorf("couldn't push raw_packet_enabled entry to kernel space: %s", err) + } + // unload the previews one if p.rawPacketFilterCollection != nil { p.rawPacketFilterCollection.Close() ddebpf.RemoveNameMappingsCollection(p.rawPacketFilterCollection) } + // not enabled + if enabled[0] == 0 { + return nil + } + // adapt max instruction limits depending of the kernel version opts := rawpacket.DefaultProgOpts if p.kernelVersion.Code >= kernel.Kernel5_2 { @@ -1894,12 +1919,12 @@ func NewEBPFProbe(probe *Probe, config *config.Config, opts Opts, telemetry tele p.monitors = NewEBPFMonitors(p) - numCPU, err := utils.NumCPU() + p.numCPU, err = utils.NumCPU() if err != nil { return nil, fmt.Errorf("failed to parse CPU count: %w", err) } - p.managerOptions.MapSpecEditors = probes.AllMapSpecEditors(numCPU, probes.MapSpecEditorOpts{ + p.managerOptions.MapSpecEditors = probes.AllMapSpecEditors(p.numCPU, probes.MapSpecEditorOpts{ TracedCgroupSize: config.RuntimeSecurity.ActivityDumpTracedCgroupsCount, UseRingBuffers: useRingBuffers, UseMmapableMaps: useMmapableMaps, From 3c4686ef29a9253d2754a86ac08d94d1344e81cf Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Tue, 26 Nov 2024 13:29:17 +0100 Subject: [PATCH 046/439] pkg/util/kernel: skip the sprintf + filepath join in `MountInfoPidPath` (#31479) --- pkg/util/kernel/fs.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkg/util/kernel/fs.go b/pkg/util/kernel/fs.go index 24c54f5156d1a..cbb9b843b8c2f 100644 --- a/pkg/util/kernel/fs.go +++ b/pkg/util/kernel/fs.go @@ -8,7 +8,6 @@ package kernel import ( - "fmt" "os" "path/filepath" "strconv" @@ -20,7 +19,7 @@ import ( // MountInfoPidPath returns the path to the mountinfo file of a pid in /proc func MountInfoPidPath(pid int32) string { - return filepath.Join(ProcFSRoot(), fmt.Sprintf("/%d/mountinfo", pid)) + return filepath.Join(ProcFSRoot(), strconv.FormatInt(int64(pid), 10), "mountinfo") } // ParseMountInfoFile collects the mounts for a specific process ID. From 8c6c71cb5275e5027f390f96ccb865fa964e6cf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillermo=20Juli=C3=A1n?= Date: Tue, 26 Nov 2024 13:47:12 +0100 Subject: [PATCH 047/439] [EBPF] Allow multiple library sets in shared library watcher using constants (#29750) --- pkg/ebpf/uprobes/attacher.go | 93 ++-- pkg/ebpf/uprobes/attacher_test.go | 43 +- pkg/gpu/probe.go | 2 + pkg/network/ebpf/c/shared-libraries/maps.h | 9 +- pkg/network/ebpf/c/shared-libraries/probes.h | 15 +- pkg/network/usm/ebpf_ssl.go | 2 +- pkg/network/usm/sharedlibraries/compile.go | 1 - pkg/network/usm/sharedlibraries/ebpf.go | 420 ++++++++++++++++-- pkg/network/usm/sharedlibraries/ebpf_test.go | 245 ++++++++++ pkg/network/usm/sharedlibraries/libset.go | 31 ++ pkg/network/usm/sharedlibraries/watcher.go | 75 ++-- .../usm/sharedlibraries/watcher_test.go | 12 +- 12 files changed, 820 insertions(+), 128 deletions(-) create mode 100644 pkg/network/usm/sharedlibraries/ebpf_test.go create mode 100644 pkg/network/usm/sharedlibraries/libset.go diff --git a/pkg/ebpf/uprobes/attacher.go b/pkg/ebpf/uprobes/attacher.go index 6b027c9bf36d0..46d80b2b3842d 100644 --- a/pkg/ebpf/uprobes/attacher.go +++ b/pkg/ebpf/uprobes/attacher.go @@ -130,16 +130,37 @@ func (r *AttachRule) getProbeOptions(probeID manager.ProbeIdentificationPair) (P }, nil } -// Validate checks whether the rule is valid, returns nil if it is, an error message otherwise -func (r *AttachRule) Validate() error { +// Validate checks whether the rule is valid and compatible with the given attacher config, returns nil if it is, an error message otherwise +func (r *AttachRule) Validate(attacherConfig *AttacherConfig) error { var result error if r.Targets == 0 { result = multierror.Append(result, errors.New("no targets specified")) } - if r.canTarget(AttachToSharedLibraries) && r.LibraryNameRegex == nil { - result = multierror.Append(result, errors.New("no library name regex specified")) + if r.canTarget(AttachToSharedLibraries) { + if r.LibraryNameRegex == nil { + result = multierror.Append(result, errors.New("no library name regex specified")) + } else { + // A sanity check to ensure that the library name regex matches at least one library in the libset. + // The best way to do this would be to check that the language generated by the "regex" used in the eBPF + // program is a subset of the language generated by the regexes in the libset, but that's a hard problem, + // so we do a simple check: either the regex matches a library name in the libset, or the regex contains + // a substring that matches a library name in the libset. + matchesAtLeastOneLib := false + suffixes := sharedlibraries.LibsetToLibSuffixes[attacherConfig.SharedLibsLibset] + for _, libSuffix := range suffixes { + libSuffixWithExt := libSuffix + ".so" + if r.LibraryNameRegex.MatchString(libSuffixWithExt) || strings.Contains(r.LibraryNameRegex.String(), libSuffix) { + matchesAtLeastOneLib = true + break + } + } + + if !matchesAtLeastOneLib { + result = multierror.Append(result, fmt.Errorf("library name regex %s does not match any library in libset %s (%s)", r.LibraryNameRegex, attacherConfig.SharedLibsLibset, suffixes)) + } + } } for _, selector := range r.ProbesSelector { @@ -195,6 +216,9 @@ type AttacherConfig struct { // EnableDetailedLogging makes the attacher log why it's attaching or not attaching to a process // This is useful for debugging purposes, do not enable in production. EnableDetailedLogging bool + + // If shared libraries tracing is enabled, this is the name of the library set used to filter the events + SharedLibsLibset sharedlibraries.Libset } // SetDefaults configures the AttacherConfig with default values for those fields for which the compiler @@ -215,28 +239,31 @@ func (ac *AttacherConfig) SetDefaults() { // Validate checks whether the configuration is valid, returns nil if it is, an error message otherwise func (ac *AttacherConfig) Validate() error { - var errs []string + var err error if ac.EbpfConfig == nil { - errs = append(errs, "missing ebpf config") + err = multierror.Append(err, errors.New("missing ebpf config")) } if ac.ProcRoot == "" { - errs = append(errs, "missing proc root") + err = multierror.Append(err, errors.New("missing proc root")) } + targetsSharedLibs := false for _, rule := range ac.Rules { - err := rule.Validate() - if err != nil { - errs = append(errs, err.Error()) + validateErr := rule.Validate(ac) + if validateErr != nil { + err = multierror.Append(err, validateErr) } + + targetsSharedLibs = targetsSharedLibs || rule.canTarget(AttachToSharedLibraries) } - if len(errs) == 0 { - return nil + if targetsSharedLibs && !sharedlibraries.IsLibsetValid(ac.SharedLibsLibset) { + err = multierror.Append(err, fmt.Errorf("invalid libset %s", ac.SharedLibsLibset)) } - return errors.New("invalid attacher configuration: " + strings.Join(errs, ", ")) + return err } // ProbeManager is an interface that defines the methods that a Manager implements, @@ -399,6 +426,8 @@ func (ua *UprobeAttacher) handlesExecutables() bool { // Start starts the attacher, attaching to the processes and libraries as needed func (ua *UprobeAttacher) Start() error { var cleanupExec, cleanupExit func() + var cleanupSharedLibs func() + if ua.handlesExecutables() { cleanupExec = ua.processMonitor.SubscribeExec(ua.handleProcessStart) } @@ -410,15 +439,16 @@ func (ua *UprobeAttacher) Start() error { return errors.New("shared libraries tracing not supported for this platform") } - ua.soWatcher = sharedlibraries.NewEBPFProgram(ua.config.EbpfConfig) + ua.soWatcher = sharedlibraries.GetEBPFProgram(ua.config.EbpfConfig) - err := ua.soWatcher.Init() + err := ua.soWatcher.InitWithLibsets(ua.config.SharedLibsLibset) if err != nil { return fmt.Errorf("error initializing shared library program: %w", err) } - err = ua.soWatcher.Start() + + cleanupSharedLibs, err = ua.soWatcher.Subscribe(ua.handleLibraryOpen, ua.config.SharedLibsLibset) if err != nil { - return fmt.Errorf("error starting shared library program: %w", err) + return fmt.Errorf("error subscribing to shared libraries events: %w", err) } } @@ -445,18 +475,13 @@ func (ua *UprobeAttacher) Start() error { if ua.soWatcher != nil { ua.soWatcher.Stop() } + if cleanupSharedLibs != nil { + cleanupSharedLibs() + } ua.wg.Done() log.Infof("uprobe attacher %s stopped", ua.name) }() - var sharedLibDataChan <-chan ebpf.DataEvent - var sharedLibLostChan <-chan uint64 - - if ua.soWatcher != nil { - sharedLibDataChan = ua.soWatcher.GetPerfHandler().DataChannel() - sharedLibLostChan = ua.soWatcher.GetPerfHandler().LostChannel() - } - for { select { case <-ua.done: @@ -464,14 +489,6 @@ func (ua *UprobeAttacher) Start() error { case <-processSync.C: // We always track process deletions in the scan, to avoid memory leaks. _ = ua.Sync(ua.config.EnablePeriodicScanNewProcesses, true) - case event, ok := <-sharedLibDataChan: - if !ok { - return - } - _ = ua.handleLibraryOpen(&event) - case <-sharedLibLostChan: - // Nothing to do in this case - break } } }() @@ -545,13 +562,13 @@ func (ua *UprobeAttacher) handleProcessExit(pid uint32) { _ = ua.DetachPID(pid) } -func (ua *UprobeAttacher) handleLibraryOpen(event *ebpf.DataEvent) error { - defer event.Done() - - libpath := sharedlibraries.ToLibPath(event.Data) +func (ua *UprobeAttacher) handleLibraryOpen(libpath sharedlibraries.LibPath) { path := sharedlibraries.ToBytes(&libpath) - return ua.AttachLibrary(string(path), libpath.Pid) + err := ua.AttachLibrary(string(path), libpath.Pid) + if err != nil { + log.Errorf("error attaching to library %s (PID %d): %v", path, libpath.Pid, err) + } } func (ua *UprobeAttacher) buildRegisterCallbacks(matchingRules []*AttachRule, procInfo *ProcInfo) (func(utils.FilePath) error, func(utils.FilePath) error) { diff --git a/pkg/ebpf/uprobes/attacher_test.go b/pkg/ebpf/uprobes/attacher_test.go index dc06c6e193552..9bbf7afbd83d6 100644 --- a/pkg/ebpf/uprobes/attacher_test.go +++ b/pkg/ebpf/uprobes/attacher_test.go @@ -228,7 +228,7 @@ func TestStartAndStopWithLibraryWatcher(t *testing.T) { } rules := []*AttachRule{{LibraryNameRegex: regexp.MustCompile(`libssl.so`), Targets: AttachToSharedLibraries}} - ua, err := NewUprobeAttacher(testModuleName, testAttacherName, AttacherConfig{Rules: rules, EbpfConfig: ebpfCfg}, &MockManager{}, nil, nil, newMockProcessMonitor()) + ua, err := NewUprobeAttacher(testModuleName, testAttacherName, AttacherConfig{Rules: rules, EbpfConfig: ebpfCfg, SharedLibsLibset: sharedlibraries.LibsetCrypto}, &MockManager{}, nil, nil, newMockProcessMonitor()) require.NoError(t, err) require.NotNil(t, ua) require.True(t, ua.handlesLibraries()) @@ -271,6 +271,33 @@ func TestRuleMatches(t *testing.T) { }) } +func TestAttachRuleValidatesLibsets(t *testing.T) { + attachCfg := AttacherConfig{SharedLibsLibset: sharedlibraries.LibsetCrypto} + t.Run("ValidLibset", func(tt *testing.T) { + rule := AttachRule{ + LibraryNameRegex: regexp.MustCompile(`libssl.so`), + Targets: AttachToSharedLibraries, + } + require.NoError(tt, rule.Validate(&attachCfg)) + }) + + t.Run("IncompatibleLibset", func(tt *testing.T) { + rule := AttachRule{ + LibraryNameRegex: regexp.MustCompile(`somethingelse.so`), + Targets: AttachToSharedLibraries, + } + require.Error(tt, rule.Validate(&attachCfg)) + }) + + t.Run("NilLibraryNameRegex", func(tt *testing.T) { + rule := AttachRule{ + LibraryNameRegex: nil, + Targets: AttachToSharedLibraries, + } + require.Error(tt, rule.Validate(&attachCfg)) + }) +} + func TestMonitor(t *testing.T) { ebpfCfg := ddebpf.NewConfig() require.NotNil(t, ebpfCfg) @@ -286,7 +313,8 @@ func TestMonitor(t *testing.T) { LibraryNameRegex: regexp.MustCompile(`libssl.so`), Targets: AttachToExecutable | AttachToSharedLibraries, }}, - EbpfConfig: ebpfCfg, + EbpfConfig: ebpfCfg, + SharedLibsLibset: sharedlibraries.LibsetCrypto, } ua, err := NewUprobeAttacher(testModuleName, testAttacherName, config, &MockManager{}, nil, nil, procMon) require.NoError(t, err) @@ -337,6 +365,7 @@ func TestSync(t *testing.T) { ProcRoot: procFS, Rules: rules, EnablePeriodicScanNewProcesses: true, + SharedLibsLibset: sharedlibraries.LibsetCrypto, } ua, err := NewUprobeAttacher(testModuleName, testAttacherName, config, &MockManager{}, nil, nil, newMockProcessMonitor()) @@ -369,6 +398,7 @@ func TestSync(t *testing.T) { ProcRoot: procFS, Rules: rules, EnablePeriodicScanNewProcesses: true, + SharedLibsLibset: sharedlibraries.LibsetCrypto, } ua, err := NewUprobeAttacher(testModuleName, testAttacherName, config, &MockManager{}, nil, nil, newMockProcessMonitor()) @@ -573,7 +603,7 @@ func TestAttachToLibrariesOfPid(t *testing.T) { Targets: AttachToSharedLibraries, }, { - LibraryNameRegex: regexp.MustCompile(`libtls.so`), + LibraryNameRegex: regexp.MustCompile(`libgnutls.so`), ProbesSelector: []manager.ProbesSelector{ &manager.ProbeSelector{ ProbeIdentificationPair: manager.ProbeIdentificationPair{ @@ -584,6 +614,7 @@ func TestAttachToLibrariesOfPid(t *testing.T) { Targets: AttachToSharedLibraries, }, }, + SharedLibsLibset: sharedlibraries.LibsetCrypto, } mockMan := &MockManager{} @@ -698,6 +729,7 @@ func TestUprobeAttacher(t *testing.T) { ExcludeTargets: ExcludeInternal | ExcludeSelf, EbpfConfig: ebpfCfg, EnableDetailedLogging: true, + SharedLibsLibset: sharedlibraries.LibsetCrypto, } var attachedProbes []attachedProbe @@ -810,8 +842,8 @@ func (s *SharedLibrarySuite) TestSingleFile() { Targets: AttachToSharedLibraries, }}, EbpfConfig: ebpfCfg, + SharedLibsLibset: sharedlibraries.LibsetCrypto, EnablePeriodicScanNewProcesses: false, - PerformInitialScan: false, } ua, err := NewUprobeAttacher(testModuleName, testAttacherName, attachCfg, &MockManager{}, nil, nil, s.procMonitor) @@ -888,7 +920,8 @@ func (s *SharedLibrarySuite) TestDetectionWithPIDAndRootNamespace() { LibraryNameRegex: regexp.MustCompile(`fooroot-crypto.so`), Targets: AttachToSharedLibraries, }}, - EbpfConfig: ebpfCfg, + EbpfConfig: ebpfCfg, + SharedLibsLibset: sharedlibraries.LibsetCrypto, } ua, err := NewUprobeAttacher(testModuleName, testAttacherName, attachCfg, &MockManager{}, nil, nil, s.procMonitor) diff --git a/pkg/gpu/probe.go b/pkg/gpu/probe.go index f90e81234047e..3ab58ede54f35 100644 --- a/pkg/gpu/probe.go +++ b/pkg/gpu/probe.go @@ -27,6 +27,7 @@ import ( ebpftelemetry "github.com/DataDog/datadog-agent/pkg/ebpf/telemetry" "github.com/DataDog/datadog-agent/pkg/ebpf/uprobes" "github.com/DataDog/datadog-agent/pkg/gpu/config" + "github.com/DataDog/datadog-agent/pkg/network/usm/sharedlibraries" "github.com/DataDog/datadog-agent/pkg/util/log" ) @@ -305,6 +306,7 @@ func getAttacherConfig(cfg *config.Config) uprobes.AttacherConfig { }, EbpfConfig: &cfg.Config, PerformInitialScan: cfg.InitialProcessSync, + SharedLibsLibset: sharedlibraries.LibsetGPU, } } diff --git a/pkg/network/ebpf/c/shared-libraries/maps.h b/pkg/network/ebpf/c/shared-libraries/maps.h index edd53a0c2c532..ec0112536462a 100644 --- a/pkg/network/ebpf/c/shared-libraries/maps.h +++ b/pkg/network/ebpf/c/shared-libraries/maps.h @@ -6,7 +6,12 @@ BPF_LRU_MAP(open_at_args, __u64, lib_path_t, 1024) -/* This map used for notifying userspace of a shared library being loaded */ -BPF_PERF_EVENT_ARRAY_MAP(shared_libraries, __u32) +/* + * These maps are used for notifying userspace of a shared library being loaded + * There is one for each library set, so that userspace isn't overwhelmed with + * events for libraries it doesn't care about. + */ +BPF_PERF_EVENT_ARRAY_MAP(crypto_shared_libraries, __u32) +BPF_PERF_EVENT_ARRAY_MAP(gpu_shared_libraries, __u32) #endif diff --git a/pkg/network/ebpf/c/shared-libraries/probes.h b/pkg/network/ebpf/c/shared-libraries/probes.h index 790a1b5b3e133..7a71650cdba5e 100644 --- a/pkg/network/ebpf/c/shared-libraries/probes.h +++ b/pkg/network/ebpf/c/shared-libraries/probes.h @@ -82,12 +82,21 @@ static __always_inline void do_sys_open_helper_exit(exit_sys_ctx *args) { goto cleanup; } - if (!match6chars(0, 'l', 'i', 'b', 's', 's', 'l') && !match6chars(0, 'c', 'r', 'y', 'p', 't', 'o') && !match6chars(0, 'g', 'n', 'u', 't', 'l', 's') && !match6chars(0, 'c', 'u', 'd', 'a', 'r', 't')) { + u64 crypto_libset_enabled = 0; + LOAD_CONSTANT("crypto_libset_enabled", crypto_libset_enabled); + + if (crypto_libset_enabled && (match6chars(0, 'l', 'i', 'b', 's', 's', 'l') || match6chars(0, 'c', 'r', 'y', 'p', 't', 'o') || match6chars(0, 'g', 'n', 'u', 't', 'l', 's'))) { + bpf_perf_event_output((void *)args, &crypto_shared_libraries, BPF_F_CURRENT_CPU, path, sizeof(lib_path_t)); goto cleanup; } - u32 cpu = bpf_get_smp_processor_id(); - bpf_perf_event_output((void *)args, &shared_libraries, cpu, path, sizeof(lib_path_t)); + u64 gpu_libset_enabled = 0; + LOAD_CONSTANT("gpu_libset_enabled", gpu_libset_enabled); + + if (gpu_libset_enabled && (match6chars(0, 'c', 'u', 'd', 'a', 'r', 't'))) { + bpf_perf_event_output((void *)args, &gpu_shared_libraries, BPF_F_CURRENT_CPU, path, sizeof(lib_path_t)); + } + cleanup: bpf_map_delete_elem(&open_at_args, &pid_tgid); return; diff --git a/pkg/network/usm/ebpf_ssl.go b/pkg/network/usm/ebpf_ssl.go index 6873ff4818e93..af4fa84364568 100644 --- a/pkg/network/usm/ebpf_ssl.go +++ b/pkg/network/usm/ebpf_ssl.go @@ -439,7 +439,7 @@ func newSSLProgramProtocolFactory(m *manager.Manager) protocols.ProtocolFactory procRoot := kernel.ProcFSRoot() if c.EnableNativeTLSMonitoring && usmconfig.TLSSupported(c) { - watcher, err = sharedlibraries.NewWatcher(c, + watcher, err = sharedlibraries.NewWatcher(c, sharedlibraries.LibsetCrypto, sharedlibraries.Rule{ Re: regexp.MustCompile(`libssl.so`), RegisterCB: addHooks(m, procRoot, openSSLProbes), diff --git a/pkg/network/usm/sharedlibraries/compile.go b/pkg/network/usm/sharedlibraries/compile.go index be409112fc7d5..ea2c9e4a7d1d6 100644 --- a/pkg/network/usm/sharedlibraries/compile.go +++ b/pkg/network/usm/sharedlibraries/compile.go @@ -5,7 +5,6 @@ //go:build linux_bpf -// Package sharedlibraries contains implementation for the TLS support of USM package sharedlibraries import ( diff --git a/pkg/network/usm/sharedlibraries/ebpf.go b/pkg/network/usm/sharedlibraries/ebpf.go index 806539e3daf7c..e71273fcec934 100644 --- a/pkg/network/usm/sharedlibraries/ebpf.go +++ b/pkg/network/usm/sharedlibraries/ebpf.go @@ -8,11 +8,15 @@ package sharedlibraries import ( + "errors" "fmt" "math" "os" "runtime" "strings" + "sync" + + "go.uber.org/atomic" manager "github.com/DataDog/ebpf-manager" "golang.org/x/sys/unix" @@ -38,11 +42,71 @@ const ( var traceTypes = []string{"enter", "exit"} +var progSingletonOnce sync.Once +var progSingleton *EbpfProgram + +// LibraryCallback defines the type of the callback function that will be called when a shared library event is detected +type LibraryCallback func(LibPath) + +// libsetHandler contains all the structures and state required to handle a single libset. +type libsetHandler struct { + // callbacksMutex protects the callbacks map for this specific libset + callbacksMutex sync.RWMutex + + // callbacks is a map of the callbacks that are subscribed to this libset + callbacks map[*LibraryCallback]struct{} + + // done is a channel that is closed when the handler stops, to signal the goroutine to end + done chan struct{} + + // perfHandler is the perf handler for this libset, that will get the events from the perf buffer + perfHandler *ddebpf.PerfHandler + + // enabled is true if the eBPF program has been enabled for this libset, + // which means that the perf buffer is being read, the eBPF program has been + // edited to enable this libset, and the handler that redirects events to + // callbacks is running. + enabled bool + + // requested means that the libset has been requested to be enabled, but it + // might not be enabled yet. We need to have this distinction as the init flow + // is different depending on whether a libset is enabled/requested or none. + // For example, an enabled program will need to stop the handlers and re-start them + // as the underlying eBPF probe is updated. Meanwhile, a requested program will not + // need to stop the handlers, as they are not running yet. + requested bool +} + // EbpfProgram represents the shared libraries eBPF program. type EbpfProgram struct { - cfg *ddebpf.Config - perfHandler *ddebpf.PerfHandler *ddebpf.Manager + + // libsets is a map of all defined libsets to their respective handlers. This map + // is filled with all libsets from LibsetToLibSuffixes when the program is initialized + // in GetEBPFProgram. The fact that all libsets are initialized at the same time + // allows us to avoid locking the map when accessing it, as Golang maps are thread-safe + // for reads. + libsets map[Libset]*libsetHandler + + // cfg is the configuration for the eBPF program + cfg *ddebpf.Config + + // refcount is the number of times the program has been initialized. It is used to + // stop the program only when the refcount reaches 0. + refcount atomic.Int32 + + // initMutex is a mutex to protect the initialization variables and the libset map + wg sync.WaitGroup + + // We need to protect the initialization variables and libset map with a + // mutex, as the program can be initialized from multiple goroutines at the + // same time. + initMutex sync.Mutex + + // isInitialized is true if the program has been initialized, false + // otherwise used to check if the program needs to be stopped and re-started + // when adding new libsets + isInitialized bool } // IsSupported returns true if the shared libraries monitoring is supported on the current system. @@ -61,26 +125,74 @@ func IsSupported(cfg *ddebpf.Config) bool { return kversion >= kernel.VersionCode(4, 14, 0) } -// NewEBPFProgram creates a new EBPFProgram to monitor shared libraries -func NewEBPFProgram(c *ddebpf.Config) *EbpfProgram { - perfHandler := ddebpf.NewPerfHandler(100) - pm := &manager.PerfMap{ - Map: manager.Map{ - Name: sharedLibrariesPerfMap, - }, - PerfMapOptions: manager.PerfMapOptions{ - PerfRingBufferSize: 8 * os.Getpagesize(), - Watermark: 1, - RecordHandler: perfHandler.RecordHandler, - LostHandler: perfHandler.LostHandler, - RecordGetter: perfHandler.RecordGetter, - TelemetryEnabled: c.InternalTelemetryEnabled, - }, - } - mgr := &manager.Manager{ - PerfMaps: []*manager.PerfMap{pm}, +// GetEBPFProgram returns an instance of the shared libraries eBPF program singleton +func GetEBPFProgram(cfg *ddebpf.Config) *EbpfProgram { + progSingletonOnce.Do(func() { + progSingleton = &EbpfProgram{ + cfg: cfg, + libsets: make(map[Libset]*libsetHandler), + } + + // Initialize the libsets to avoid requiring a mutex on the map. Golang maps are thread safe + // for reads. + for libset := range LibsetToLibSuffixes { + progSingleton.libsets[libset] = &libsetHandler{ + callbacks: make(map[*LibraryCallback]struct{}), + } + } + }) + progSingleton.refcount.Inc() + + return progSingleton +} + +// isLibsetValid checks if the given libset is valid (i.e., it's in the libsets map). Note that +// this function assumes that a libset is valid if it's in the map, as the map is initialized with +// all valid libsets when the program is initialized. We could also call IsLibsetValid, but doing +// it this way centralizes the "validity" check in the program: if in the future we have a different +// way to check if a libset is valid, we only need to change how the e.libsets map is filled. +func (e *EbpfProgram) isLibsetValid(libset Libset) bool { + _, ok := e.libsets[libset] + return ok +} + +// isLibsetEnabled checks if the libset is enabled. Assumes initMutex is locked +func (e *EbpfProgram) isLibsetEnabled(libset Libset) bool { + data, ok := e.libsets[libset] + return ok && data.enabled +} + +// isLibsetEnabled checks if the libset has been requested to be enabled. Assumes initMutex is locked +func (e *EbpfProgram) isLibsetRequested(libset Libset) bool { + data, ok := e.libsets[libset] + return ok && data.requested +} + +// setupManagerAndPerfHandlers sets up the manager and perf handlers for the eBPF program, creating the perf handlers +// Assumes initMutex is locked +func (e *EbpfProgram) setupManagerAndPerfHandlers() { + mgr := &manager.Manager{} + + // Tell the manager to load all possible maps + for libset, handler := range e.libsets { + perfHandler := ddebpf.NewPerfHandler(100) + pm := &manager.PerfMap{ + Map: manager.Map{ + Name: fmt.Sprintf("%s_%s", string(libset), sharedLibrariesPerfMap), + }, + PerfMapOptions: manager.PerfMapOptions{ + PerfRingBufferSize: 8 * os.Getpagesize(), + Watermark: 1, + RecordHandler: perfHandler.RecordHandler, + LostHandler: perfHandler.LostHandler, + RecordGetter: perfHandler.RecordGetter, + TelemetryEnabled: e.cfg.InternalTelemetryEnabled, + }, + } + mgr.PerfMaps = append(mgr.PerfMaps, pm) + ebpftelemetry.ReportPerfMapTelemetry(pm) + handler.perfHandler = perfHandler } - ebpftelemetry.ReportPerfMapTelemetry(pm) probeIDs := getSysOpenHooksIdentifiers() for _, identifier := range probeIDs { @@ -92,15 +204,22 @@ func NewEBPFProgram(c *ddebpf.Config) *EbpfProgram { ) } - return &EbpfProgram{ - cfg: c, - Manager: ddebpf.NewManager(mgr, "shared-libraries", &ebpftelemetry.ErrorsTelemetryModifier{}), - perfHandler: perfHandler, + e.Manager = ddebpf.NewManager(mgr, "shared-libraries", &ebpftelemetry.ErrorsTelemetryModifier{}) +} + +// areLibsetsAlreadyEnabled checks if the eBPF program is already enabled for the given libsets +// Requires the initMutex to be locked +func (e *EbpfProgram) areLibsetsAlreadyEnabled(libsets ...Libset) bool { + for _, libset := range libsets { + if !e.isLibsetEnabled(libset) { + return false + } } + + return true } -// Init initializes the eBPF program. -func (e *EbpfProgram) Init() error { +func (e *EbpfProgram) loadProgram() error { var err error if e.cfg.EnableCORE { err = e.initCORE() @@ -126,19 +245,232 @@ func (e *EbpfProgram) Init() error { log.Warnf("runtime compilation failed: attempting fallback: %s", err) } - return e.initPrebuilt() + if err := e.initPrebuilt(); err != nil { + return fmt.Errorf("prebuilt load failed: %w", err) + } + + return nil } -// GetPerfHandler returns the perf handler -func (e *EbpfProgram) GetPerfHandler() *ddebpf.PerfHandler { - return e.perfHandler +// InitWithLibsets initializes the eBPF program and prepares it to listen to the +// given libsets. It is guaranteed to perform the initialization only if needed +// For example, if the program is already initialized to listen for a certain +// libset, it will not reinitialize the program to listen for the same libset. +// However, if the libsets are changed, it will reinitialize the program. +func (e *EbpfProgram) InitWithLibsets(libsets ...Libset) error { + // Ensure we have all valid libsets, we don't want cryptic errors later + for _, libset := range libsets { + if !e.isLibsetValid(libset) { + return fmt.Errorf("libset %s is not valid, ensure it is in the LibsetToLibSuffixes map", libset) + } + } + + // Lock for the initialization variables + e.initMutex.Lock() + defer e.initMutex.Unlock() + + // If the program is initialized, check if the libsets are already enabled + if e.isInitialized { + // If the libsets are already enabled, return, we have nothing to do + if e.areLibsetsAlreadyEnabled(libsets...) { + return nil + } + + // If not, we need to reinitialize the eBPF program to re-edit the + // constants (that step is done in Manager.InitWithOptions), so we stop + // it We use stopImpl to avoid changing the refcount. This will stop + // perf handlers, but will retain callbacks and other state. This way, + // listeners will not actually notice any change (other than the lost + // events in the meantime). + e.stopImpl() + } + + e.setupManagerAndPerfHandlers() + + // Mark the libsets as requested so they can be started + // Note that other libsets might be requested from previous executions + for _, libset := range libsets { + e.libsets[libset].requested = true + } + + if err := e.loadProgram(); err != nil { + return fmt.Errorf("cannot load program: %w", err) + } + + if err := e.start(); err != nil { + return fmt.Errorf("cannot start manager: %w", err) + } + + e.isInitialized = true + return nil } -// Stop stops the eBPF program +// start starts the eBPF program and the perf handlers, assumes the initMutex is locked +func (e *EbpfProgram) start() error { + err := e.Manager.Start() + if err != nil { + return fmt.Errorf("cannot start manager: %w", err) + } + + for _, handler := range e.libsets { + if !handler.requested { + continue + } + + // Init the "done" channel for the handler, it will be closed when the handler stops + handler.done = make(chan struct{}) + e.wg.Add(1) + go handler.eventLoop(&e.wg) + + handler.enabled = true + } + + return nil +} + +// eventLoop is the main loop for a single libset. Should be called with all perfHandlers initialized. +func (l *libsetHandler) eventLoop(wg *sync.WaitGroup) { + defer wg.Done() + + dataChan := l.perfHandler.DataChannel() + lostChan := l.perfHandler.LostChannel() + for { + select { + case <-l.done: + return + case event, ok := <-dataChan: + if !ok { + return + } + l.handleEvent(&event) + case <-lostChan: + // Nothing to do in this case + break + } + } +} + +func (l *libsetHandler) handleEvent(event *ddebpf.DataEvent) { + defer event.Done() + + libpath := ToLibPath(event.Data) + + l.callbacksMutex.RLock() + defer l.callbacksMutex.RUnlock() + for callback := range l.callbacks { + // Not using a callback runner for now, as we don't have a lot of callbacks + (*callback)(libpath) + } +} + +// stop stops the libset handler. Assumes the initMutex for the main ebpfProgram is locked. To be called +func (l *libsetHandler) stop() { + // The done channel might not be initialized if the program is stopped before it starts (e.g., two sequential calls to InitWithLibsets()). + if l.done != nil { + close(l.done) + } + + // stop the perf handler after the event loop is done + if l.perfHandler != nil { + l.perfHandler.Stop() + } + + l.enabled = false +} + +// subscribe subscribes to the shared libraries events for this libset, returns the function +// to call to unsubscribe +func (l *libsetHandler) subscribe(callback LibraryCallback) func() { + l.callbacksMutex.Lock() + defer l.callbacksMutex.Unlock() + + l.callbacks[&callback] = struct{}{} + + return func() { + l.callbacksMutex.Lock() + defer l.callbacksMutex.Unlock() + + delete(l.callbacks, &callback) + } +} + +// CheckLibsetsEnabled checks if the eBPF program is enabled for the given libsets, returns an error if not +// with the libsets that are not enabled +func (e *EbpfProgram) CheckLibsetsEnabled(libsets ...Libset) error { + e.initMutex.Lock() + defer e.initMutex.Unlock() + + var errs []error + for _, libset := range libsets { + if !e.isLibsetEnabled(libset) { + errs = append(errs, fmt.Errorf("libset %s is not enabled", libset)) + } + } + + return errors.Join(errs...) +} + +// Subscribe subscribes to the shared libraries events for the given libsets, returns the function +// to call to unsubscribe and an error if the libsets are not enabled +func (e *EbpfProgram) Subscribe(callback LibraryCallback, libsets ...Libset) (func(), error) { + if err := e.CheckLibsetsEnabled(libsets...); err != nil { + return nil, err + } + + var unsubscribers []func() + for _, libset := range libsets { + // e.libsets is only modified when creating the EbpfProgram struct, + // which is a singleton with a mutex in the GetEBPFProgram function. As + // Golang maps are thread-safe for reads, we don't need here a mutex to + // access it. subscribe() will the libset-specific callback, to avoid + // locking on all callbacks for all libsets. + unsub := e.libsets[libset].subscribe(callback) + unsubscribers = append(unsubscribers, unsub) + } + + // UnSubscribe() + return func() { + for _, unsub := range unsubscribers { + unsub() + } + }, nil +} + +// Stop stops the eBPF program if the refcount reaches 0 func (e *EbpfProgram) Stop() { - ebpftelemetry.UnregisterTelemetry(e.Manager.Manager) - e.Manager.Stop(manager.CleanAll) //nolint:errcheck - e.perfHandler.Stop() + if e.refcount.Dec() != 0 { + if e.refcount.Load() < 0 { + e.refcount.Swap(0) + } + return + } + + // At this point any operations are thread safe, as we're using atomics + // so it's guaranteed only one thread can reach this point with refcount == 0 + log.Info("shared libraries monitor stopping due to a refcount of 0") + + e.stopImpl() + + // Reset the program singleton in case it's used again (e.g. in tests) + progSingletonOnce = sync.Once{} + progSingleton = nil +} + +func (e *EbpfProgram) stopImpl() { + if e.Manager != nil { + _ = e.Manager.Stop(manager.CleanAll) + ebpftelemetry.UnregisterTelemetry(e.Manager.Manager) + } + + for _, handler := range e.libsets { + if handler.enabled { + handler.stop() + } + } + + e.wg.Wait() + + e.Manager = nil } func (e *EbpfProgram) init(buf bytecode.AssetReader, options manager.Options) error { @@ -155,6 +487,24 @@ func (e *EbpfProgram) init(buf bytecode.AssetReader, options manager.Options) er ) } + var enabledMsgs []string + for libset := range LibsetToLibSuffixes { + value := uint64(0) + if e.isLibsetRequested(libset) { + value = uint64(1) + } + + constEd := manager.ConstantEditor{ + Name: fmt.Sprintf("%s_libset_enabled", string(libset)), + Value: value, + } + + options.ConstantEditors = append(options.ConstantEditors, constEd) + enabledMsgs = append(enabledMsgs, fmt.Sprintf("%s=%d", libset, value)) + } + + log.Infof("loading shared libraries program with libsets enabled: %s", strings.Join(enabledMsgs, ", ")) + options.BypassEnabled = e.cfg.BypassEnabled return e.InitWithOptions(buf, &options) } diff --git a/pkg/network/usm/sharedlibraries/ebpf_test.go b/pkg/network/usm/sharedlibraries/ebpf_test.go new file mode 100644 index 0000000000000..0e8436ddad0dc --- /dev/null +++ b/pkg/network/usm/sharedlibraries/ebpf_test.go @@ -0,0 +1,245 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2024-present Datadog, Inc. + +//go:build linux_bpf + +package sharedlibraries + +import ( + "strings" + + "sync" + "testing" + "time" + + "github.com/stretchr/testify/require" + "github.com/stretchr/testify/suite" + + "github.com/DataDog/datadog-agent/pkg/ebpf" + "github.com/DataDog/datadog-agent/pkg/ebpf/ebpftest" + fileopener "github.com/DataDog/datadog-agent/pkg/network/usm/sharedlibraries/testutil" +) + +type EbpfProgramSuite struct { + suite.Suite +} + +func TestEbpfProgram(t *testing.T) { + ebpftest.TestBuildModes(t, []ebpftest.BuildMode{ebpftest.Prebuilt, ebpftest.RuntimeCompiled, ebpftest.CORE}, "", func(t *testing.T) { + if !IsSupported(ebpf.NewConfig()) { + t.Skip("shared-libraries monitoring is not supported on this configuration") + } + + suite.Run(t, new(EbpfProgramSuite)) + }) +} + +func (s *EbpfProgramSuite) TestCanInstantiateMultipleTimes() { + t := s.T() + cfg := ebpf.NewConfig() + require.NotNil(t, cfg) + + prog := GetEBPFProgram(cfg) + require.NotNil(t, prog) + t.Cleanup(prog.Stop) + + require.NoError(t, prog.InitWithLibsets(LibsetCrypto)) + prog.Stop() + + prog2 := GetEBPFProgram(cfg) + require.NotNil(t, prog2) + + require.NoError(t, prog.InitWithLibsets(LibsetCrypto)) + t.Cleanup(prog2.Stop) +} + +func (s *EbpfProgramSuite) TestProgramReceivesEventsWithSingleLibset() { + t := s.T() + fooPath1, _ := createTempTestFile(t, "foo-libssl.so") + + cfg := ebpf.NewConfig() + require.NotNil(t, cfg) + + prog := GetEBPFProgram(cfg) + require.NotNil(t, prog) + t.Cleanup(prog.Stop) + + require.NoError(t, prog.InitWithLibsets(LibsetCrypto)) + + var eventMutex sync.Mutex + var receivedEvent *LibPath + cb := func(path LibPath) { + eventMutex.Lock() + defer eventMutex.Unlock() + lp := path.String() + if strings.Contains(lp, "foo-libssl.so") { + receivedEvent = &path + } + } + + unsub, err := prog.Subscribe(cb, LibsetCrypto) + require.NoError(t, err) + t.Cleanup(unsub) + + command1, err := fileopener.OpenFromAnotherProcess(t, fooPath1) + require.NoError(t, err) + require.NotNil(t, command1.Process) + t.Cleanup(func() { + if command1 != nil && command1.Process != nil { + command1.Process.Kill() + } + }) + + require.Eventually(t, func() bool { + eventMutex.Lock() + defer eventMutex.Unlock() + return receivedEvent != nil + }, 1*time.Second, 10*time.Millisecond) + + require.Equal(t, fooPath1, receivedEvent.String()) + require.Equal(t, command1.Process.Pid, int(receivedEvent.Pid)) +} + +func (s *EbpfProgramSuite) TestSingleProgramReceivesMultipleLibsetEvents() { + t := s.T() + fooPathSsl, _ := createTempTestFile(t, "foo-libssl.so") + fooPathCuda, _ := createTempTestFile(t, "foo-libcudart.so") + + cfg := ebpf.NewConfig() + require.NotNil(t, cfg) + + prog := GetEBPFProgram(cfg) + require.NotNil(t, prog) + t.Cleanup(prog.Stop) + + require.NoError(t, prog.InitWithLibsets(LibsetCrypto, LibsetGPU)) + + var eventMutex sync.Mutex + var receivedEventSsl, receivedEventCuda *LibPath + cbSsl := func(path LibPath) { + eventMutex.Lock() + defer eventMutex.Unlock() + receivedEventSsl = &path + } + cbCuda := func(path LibPath) { + eventMutex.Lock() + defer eventMutex.Unlock() + receivedEventCuda = &path + } + + unsubSsl, err := prog.Subscribe(cbSsl, LibsetCrypto) + require.NoError(t, err) + t.Cleanup(unsubSsl) + + unsubCuda, err := prog.Subscribe(cbCuda, LibsetGPU) + require.NoError(t, err) + t.Cleanup(unsubCuda) + + commandSsl, err := fileopener.OpenFromAnotherProcess(t, fooPathSsl) + require.NoError(t, err) + require.NotNil(t, commandSsl.Process) + t.Cleanup(func() { + if commandSsl != nil && commandSsl.Process != nil { + commandSsl.Process.Kill() + } + }) + + commandCuda, err := fileopener.OpenFromAnotherProcess(t, fooPathCuda) + require.NoError(t, err) + require.NotNil(t, commandCuda.Process) + t.Cleanup(func() { + if commandCuda != nil && commandCuda.Process != nil { + commandCuda.Process.Kill() + } + }) + + require.Eventually(t, func() bool { + eventMutex.Lock() + defer eventMutex.Unlock() + return receivedEventSsl != nil && receivedEventCuda != nil + }, 1*time.Second, 10*time.Millisecond) + + require.Equal(t, fooPathSsl, receivedEventSsl.String()) + require.Equal(t, commandSsl.Process.Pid, int(receivedEventSsl.Pid)) + + require.Equal(t, fooPathCuda, receivedEventCuda.String()) + require.Equal(t, commandCuda.Process.Pid, int(receivedEventCuda.Pid)) +} + +func (s *EbpfProgramSuite) TestMultipleProgramsReceiveMultipleLibsetEvents() { + t := s.T() + fooPathSsl, _ := createTempTestFile(t, "foo-libssl.so") + fooPathCuda, _ := createTempTestFile(t, "foo-libcudart.so") + + cfg := ebpf.NewConfig() + require.NotNil(t, cfg) + + progSsl := GetEBPFProgram(cfg) + require.NotNil(t, progSsl) + t.Cleanup(progSsl.Stop) + + require.NoError(t, progSsl.InitWithLibsets(LibsetCrypto)) + + // To ensure that we're not having data races in the test code + var receivedEventMutex sync.Mutex + + var receivedEventSsl *LibPath + cbSsl := func(path LibPath) { + receivedEventMutex.Lock() + defer receivedEventMutex.Unlock() + receivedEventSsl = &path + } + + unsubSsl, err := progSsl.Subscribe(cbSsl, LibsetCrypto) + require.NoError(t, err) + t.Cleanup(unsubSsl) + + progCuda := GetEBPFProgram(cfg) + require.NotNil(t, progCuda) + t.Cleanup(progCuda.Stop) + + require.NoError(t, progCuda.InitWithLibsets(LibsetGPU)) + + var receivedEventCuda *LibPath + cbCuda := func(path LibPath) { + receivedEventMutex.Lock() + defer receivedEventMutex.Unlock() + receivedEventCuda = &path + } + + unsubCuda, err := progCuda.Subscribe(cbCuda, LibsetGPU) + require.NoError(t, err) + t.Cleanup(unsubCuda) + + commandSsl, err := fileopener.OpenFromAnotherProcess(t, fooPathSsl) + require.NoError(t, err) + require.NotNil(t, commandSsl.Process) + t.Cleanup(func() { + if commandSsl != nil && commandSsl.Process != nil { + commandSsl.Process.Kill() + } + }) + + commandCuda, err := fileopener.OpenFromAnotherProcess(t, fooPathCuda) + require.NoError(t, err) + require.NotNil(t, commandCuda.Process) + t.Cleanup(func() { + if commandCuda != nil && commandCuda.Process != nil { + commandCuda.Process.Kill() + } + }) + + require.Eventually(t, func() bool { + receivedEventMutex.Lock() + defer receivedEventMutex.Unlock() + return receivedEventSsl != nil && receivedEventCuda != nil + }, 1*time.Second, 10*time.Millisecond) + + require.Equal(t, fooPathSsl, receivedEventSsl.String()) + require.Equal(t, commandSsl.Process.Pid, int(receivedEventSsl.Pid)) + + require.Equal(t, fooPathCuda, receivedEventCuda.String()) + require.Equal(t, commandCuda.Process.Pid, int(receivedEventCuda.Pid)) +} diff --git a/pkg/network/usm/sharedlibraries/libset.go b/pkg/network/usm/sharedlibraries/libset.go new file mode 100644 index 0000000000000..6c8f7edd9c574 --- /dev/null +++ b/pkg/network/usm/sharedlibraries/libset.go @@ -0,0 +1,31 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2024-present Datadog, Inc. + +// Package sharedlibraries contains implementation for monitoring of shared libraries opened by other programs +package sharedlibraries + +// Libset is a type to represent sets of shared libraries that share the same filtering eBPF program +type Libset string + +const ( + // LibsetCrypto is the libset that contains the crypto libraries (libssl, libcrypto, libgnutls) + LibsetCrypto Libset = "crypto" + + // LibsetGPU contains the libraryes for GPU monitoring (libcudart) + LibsetGPU Libset = "gpu" +) + +// LibsetToLibSuffixes maps a libset to a list of regexes that match the shared libraries that belong to that libset. Should be +// the same as in the probes.h file +var LibsetToLibSuffixes = map[Libset][]string{ + LibsetCrypto: {"libssl", "crypto", "gnutls"}, + LibsetGPU: {"libcudart"}, +} + +// IsLibsetValid checks if the given libset is valid (i.e., it's in the LibsetToLibSuffixes map) +func IsLibsetValid(libset Libset) bool { + _, ok := LibsetToLibSuffixes[libset] + return ok +} diff --git a/pkg/network/usm/sharedlibraries/watcher.go b/pkg/network/usm/sharedlibraries/watcher.go index b8d2fc6c72d43..ca44117d63772 100644 --- a/pkg/network/usm/sharedlibraries/watcher.go +++ b/pkg/network/usm/sharedlibraries/watcher.go @@ -17,7 +17,6 @@ import ( "time" "unsafe" - ddebpf "github.com/DataDog/datadog-agent/pkg/ebpf" "github.com/DataDog/datadog-agent/pkg/network/config" "github.com/DataDog/datadog-agent/pkg/network/protocols/telemetry" "github.com/DataDog/datadog-agent/pkg/network/usm/consts" @@ -43,6 +42,10 @@ func ToBytes(l *LibPath) []byte { return l.Buf[:l.Len] } +func (l *LibPath) String() string { + return string(ToBytes(l)) +} + // Rule is a rule to match against a shared library path type Rule struct { Re *regexp.Regexp @@ -56,10 +59,11 @@ type Watcher struct { done chan struct{} procRoot string rules []Rule - loadEvents *ddebpf.PerfHandler processMonitor *monitor.ProcessMonitor registry *utils.FileRegistry ebpfProgram *EbpfProgram + libset Libset + thisPID int // telemetry libHits *telemetry.Counter @@ -70,9 +74,9 @@ type Watcher struct { var _ utils.Attacher = &Watcher{} // NewWatcher creates a new Watcher instance -func NewWatcher(cfg *config.Config, rules ...Rule) (*Watcher, error) { - ebpfProgram := NewEBPFProgram(&cfg.Config) - err := ebpfProgram.Init() +func NewWatcher(cfg *config.Config, libset Libset, rules ...Rule) (*Watcher, error) { + ebpfProgram := GetEBPFProgram(&cfg.Config) + err := ebpfProgram.InitWithLibsets(libset) if err != nil { return nil, fmt.Errorf("error initializing shared library program: %w", err) } @@ -82,7 +86,7 @@ func NewWatcher(cfg *config.Config, rules ...Rule) (*Watcher, error) { done: make(chan struct{}), procRoot: kernel.ProcFSRoot(), rules: rules, - loadEvents: ebpfProgram.GetPerfHandler(), + libset: libset, processMonitor: monitor.GetProcessMonitor(), ebpfProgram: ebpfProgram, registry: utils.NewFileRegistry(consts.USMModuleName, "shared_libraries"), @@ -98,7 +102,6 @@ func (w *Watcher) Stop() { return } - w.ebpfProgram.Stop() close(w.done) w.wg.Wait() } @@ -183,19 +186,37 @@ func (w *Watcher) AttachPID(pid uint32) error { return nil } +func (w *Watcher) handleLibraryOpen(lib LibPath) { + if int(lib.Pid) == w.thisPID { + // don't scan ourself + return + } + + w.libHits.Add(1) + path := ToBytes(&lib) + for _, r := range w.rules { + if r.Re.Match(path) { + w.libMatches.Add(1) + _ = w.registry.Register(string(path), lib.Pid, r.RegisterCB, r.UnregisterCB, utils.IgnoreCB) + break + } + } +} + // Start consuming shared-library events func (w *Watcher) Start() { if w == nil { return } - thisPID, err := kernel.RootNSPID() + var err error + w.thisPID, err = kernel.RootNSPID() if err != nil { log.Warnf("Watcher Start can't get root namespace pid %s", err) } _ = kernel.WithAllProcs(w.procRoot, func(pid int) error { - if pid == thisPID { // don't scan ourself + if pid == w.thisPID { // don't scan ourself return nil } @@ -224,6 +245,11 @@ func (w *Watcher) Start() { }) cleanupExit := w.processMonitor.SubscribeExit(func(pid uint32) { _ = w.registry.Unregister(pid) }) + cleanupLibs, err := w.ebpfProgram.Subscribe(w.handleLibraryOpen, w.libset) + if err != nil { + log.Errorf("error subscribing to shared library events: %s", err) + return + } w.wg.Add(1) go func() { @@ -233,16 +259,16 @@ func (w *Watcher) Start() { processSync.Stop() // Removing the registration of our hook. cleanupExit() - // Stopping the process monitor (if we're the last instance) + cleanupLibs() + // Stopping the process and library monitors (if we're the last instance) w.processMonitor.Stop() + w.ebpfProgram.Stop() // Cleaning up all active hooks. w.registry.Clear() // marking we're finished. w.wg.Done() }() - dataChannel := w.loadEvents.DataChannel() - lostChannel := w.loadEvents.LostChannel() for { select { case <-w.done: @@ -253,31 +279,6 @@ func (w *Watcher) Start() { for deletedPid := range deletedPids { _ = w.registry.Unregister(deletedPid) } - case event, ok := <-dataChannel: - if !ok { - return - } - - lib := ToLibPath(event.Data) - if int(lib.Pid) == thisPID { - // don't scan ourself - event.Done() - continue - } - - w.libHits.Add(1) - path := ToBytes(&lib) - for _, r := range w.rules { - if r.Re.Match(path) { - w.libMatches.Add(1) - _ = w.registry.Register(string(path), lib.Pid, r.RegisterCB, r.UnregisterCB, utils.IgnoreCB) - break - } - } - event.Done() - case <-lostChannel: - // Nothing to do in this case - break } } }() diff --git a/pkg/network/usm/sharedlibraries/watcher_test.go b/pkg/network/usm/sharedlibraries/watcher_test.go index 72871f57dfe20..deb27b067b673 100644 --- a/pkg/network/usm/sharedlibraries/watcher_test.go +++ b/pkg/network/usm/sharedlibraries/watcher_test.go @@ -81,7 +81,7 @@ func (s *SharedLibrarySuite) TestSharedLibraryDetection() { registerRecorder := new(utils.CallbackRecorder) unregisterRecorder := new(utils.CallbackRecorder) - watcher, err := NewWatcher(config.New(), + watcher, err := NewWatcher(config.New(), LibsetCrypto, Rule{ Re: regexp.MustCompile(`foo-libssl.so`), RegisterCB: registerRecorder.Callback(), @@ -138,7 +138,7 @@ func (s *SharedLibrarySuite) TestSharedLibraryDetectionWithPIDAndRootNamespace() return nil } - watcher, err := NewWatcher(config.New(), + watcher, err := NewWatcher(config.New(), LibsetCrypto, Rule{ Re: regexp.MustCompile(`fooroot-crypto.so`), RegisterCB: callback, @@ -186,7 +186,7 @@ func (s *SharedLibrarySuite) TestSameInodeRegression() { registerRecorder := new(utils.CallbackRecorder) unregisterRecorder := new(utils.CallbackRecorder) - watcher, err := NewWatcher(config.New(), + watcher, err := NewWatcher(config.New(), LibsetCrypto, Rule{ Re: regexp.MustCompile(`foo-libssl.so`), RegisterCB: registerRecorder.Callback(), @@ -227,7 +227,7 @@ func (s *SharedLibrarySuite) TestSoWatcherLeaks() { registerCB := registerRecorder.Callback() unregisterCB := unregisterRecorder.Callback() - watcher, err := NewWatcher(config.New(), + watcher, err := NewWatcher(config.New(), LibsetCrypto, Rule{ Re: regexp.MustCompile(`foo-libssl.so`), RegisterCB: registerCB, @@ -293,7 +293,7 @@ func (s *SharedLibrarySuite) TestSoWatcherProcessAlreadyHoldingReferences() { registerCB := registerRecorder.Callback() unregisterCB := unregisterRecorder.Callback() - watcher, err := NewWatcher(config.New(), + watcher, err := NewWatcher(config.New(), LibsetCrypto, Rule{ Re: regexp.MustCompile(`foo-libssl.so`), RegisterCB: registerCB, @@ -363,7 +363,7 @@ func createTempTestFile(t *testing.T, name string) (string, utils.PathIdentifier } func BenchmarkScanSOWatcherNew(b *testing.B) { - w, _ := NewWatcher(config.New(), + w, _ := NewWatcher(config.New(), LibsetCrypto, Rule{ Re: regexp.MustCompile(`libssl.so`), }, From d03c3af80c989c43bb5ba98ae6ba52875e70c259 Mon Sep 17 00:00:00 2001 From: Wassim Dhif Date: Tue, 26 Nov 2024 13:49:31 +0100 Subject: [PATCH 048/439] [CONTP-21] chore(origin detection): add External Data E2E test (#31079) Signed-off-by: Wassim DHIF --- test/new-e2e/tests/containers/k8s_test.go | 75 +++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/test/new-e2e/tests/containers/k8s_test.go b/test/new-e2e/tests/containers/k8s_test.go index 3629b348da837..fb235f979c951 100644 --- a/test/new-e2e/tests/containers/k8s_test.go +++ b/test/new-e2e/tests/containers/k8s_test.go @@ -42,6 +42,7 @@ const ( kubeNamespaceDogstatsStandaloneWorkload = "workload-dogstatsd-standalone" kubeNamespaceTracegenWorkload = "workload-tracegen" kubeDeploymentDogstatsdUDPOrigin = "dogstatsd-udp-origin-detection" + kubeDeploymentDogstatsdUDPExternalData = "dogstatsd-udp-external-data-only" kubeDeploymentDogstatsdUDS = "dogstatsd-uds" kubeDeploymentTracegenTCPWorkload = "tracegen-tcp" kubeDeploymentTracegenUDSWorkload = "tracegen-uds" @@ -800,6 +801,8 @@ func (suite *k8sSuite) TestDogstatsdInAgent() { suite.testDogstatsdContainerID(kubeNamespaceDogstatsWorkload, kubeDeploymentDogstatsdUDPOrigin) // Test with UDP + DD_ENTITY_ID suite.testDogstatsdPodUID(kubeNamespaceDogstatsWorkload) + // Test with UDP + External Data + suite.testDogstatsdExternalData(kubeNamespaceDogstatsWorkload, kubeDeploymentDogstatsdUDPExternalData) } func (suite *k8sSuite) TestDogstatsdStandalone() { @@ -836,6 +839,78 @@ func (suite *k8sSuite) testDogstatsdPodUID(kubeNamespace string) { }) } +// testDogstatsdExternalData tests that the External Data origin resolution works for the dogstatsd. +func (suite *k8sSuite) testDogstatsdExternalData(kubeNamespace, kubeDeployment string) { + ctx := context.Background() + + // Record old pod, so we can be sure we are not looking at the incorrect one after deletion + oldPods, err := suite.K8sClient.CoreV1().Pods(kubeNamespace).List(ctx, metav1.ListOptions{ + LabelSelector: fields.OneTermEqualSelector("app", kubeDeployment).String(), + }) + suite.Require().NoError(err) + suite.Require().Len(oldPods.Items, 1) + oldPod := oldPods.Items[0] + + // Delete the pod to ensure it is recreated after the admission controller is deployed + err = suite.K8sClient.CoreV1().Pods(kubeNamespace).DeleteCollection(ctx, metav1.DeleteOptions{}, metav1.ListOptions{ + LabelSelector: fields.OneTermEqualSelector("app", kubeDeployment).String(), + }) + suite.Require().NoError(err) + + // Wait for the fresh pod to be created + var pod corev1.Pod + suite.Require().EventuallyWithTf(func(c *assert.CollectT) { + pods, err := suite.K8sClient.CoreV1().Pods(kubeNamespace).List(ctx, metav1.ListOptions{ + LabelSelector: fields.OneTermEqualSelector("app", kubeDeployment).String(), + }) + if !assert.NoError(c, err) { + return + } + if !assert.Len(c, pods.Items, 1) { + return + } + pod = pods.Items[0] + if !assert.NotEqual(c, oldPod.Name, pod.Name) { + return + } + }, 2*time.Minute, 10*time.Second, "Failed to witness the creation of pod with name %s in namespace %s", kubeDeployment, kubeNamespace) + + suite.Require().Len(pod.Spec.Containers, 1) + + suite.testMetric(&testMetricArgs{ + Filter: testMetricFilterArgs{ + Name: "custom.metric", + Tags: []string{ + "^kube_deployment:" + regexp.QuoteMeta(kubeDeployment) + "$", + "^kube_namespace:" + regexp.QuoteMeta(kubeNamespace) + "$", + }, + }, + Expect: testMetricExpectArgs{ + Tags: &[]string{ + `^container_id:`, + `^container_name:dogstatsd$`, + `^display_container_name:dogstatsd`, + `^git.commit.sha:`, // org.opencontainers.image.revision docker image label + `^git.repository_url:https://github.com/DataDog/test-infra-definitions$`, // org.opencontainers.image.source docker image label + `^image_id:ghcr.io/datadog/apps-dogstatsd@sha256:`, + `^image_name:ghcr.io/datadog/apps-dogstatsd$`, + `^image_tag:main$`, + `^kube_container_name:dogstatsd$`, + `^kube_deployment:` + regexp.QuoteMeta(kubeDeployment) + `$`, + "^kube_namespace:" + regexp.QuoteMeta(kubeNamespace) + "$", + `^kube_ownerref_kind:replicaset$`, + `^kube_ownerref_name:` + regexp.QuoteMeta(kubeDeployment) + `-[[:alnum:]]+$`, + `^kube_qos:Burstable$`, + `^kube_replica_set:` + regexp.QuoteMeta(kubeDeployment) + `-[[:alnum:]]+$`, + `^pod_name:` + regexp.QuoteMeta(kubeDeployment) + `-[[:alnum:]]+-[[:alnum:]]+$`, + `^pod_phase:running$`, + `^series:`, + `^short_image:apps-dogstatsd$`, + }, + }, + }) +} + func (suite *k8sSuite) testDogstatsdContainerID(kubeNamespace, kubeDeployment string) { suite.testMetric(&testMetricArgs{ Filter: testMetricFilterArgs{ From e75539a9ca9590f984e6e4cffb282cbe0567281f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Momar=20TOUR=C3=89?= <36661127+mftoure@users.noreply.github.com> Date: Tue, 26 Nov 2024 14:33:30 +0100 Subject: [PATCH 049/439] [CWS] Add the protocol field to BindNode (#31428) --- go.mod | 2 +- go.sum | 4 ++-- pkg/security/secl/schemas/activity_dump.schema.json | 6 +++++- .../secl/schemas/activity_dump_proto.schema.json | 6 +++++- .../activity_tree/activity_tree_proto_dec_v1.go | 1 + .../activity_tree/activity_tree_proto_enc_v1.go | 1 + .../activity_tree/process_node_snapshot.go | 11 ++++++----- .../security_profile/activity_tree/socket_node.go | 8 +++++--- 8 files changed, 26 insertions(+), 13 deletions(-) diff --git a/go.mod b/go.mod index 6b3b497855d60..c4d8fc7351599 100644 --- a/go.mod +++ b/go.mod @@ -642,7 +642,7 @@ require ( require ( github.com/DATA-DOG/go-sqlmock v1.5.2 - github.com/DataDog/agent-payload/v5 v5.0.135 + github.com/DataDog/agent-payload/v5 v5.0.137 github.com/DataDog/datadog-agent/comp/api/api/def v0.56.0-rc.3 github.com/DataDog/datadog-agent/comp/core/config v0.59.0 github.com/DataDog/datadog-agent/comp/core/flare/types v0.59.0 diff --git a/go.sum b/go.sum index f09de46eaf02d..d2c1ce25b4480 100644 --- a/go.sum +++ b/go.sum @@ -115,8 +115,8 @@ github.com/CycloneDX/cyclonedx-go v0.9.1 h1:yffaWOZsv77oTJa/SdVZYdgAgFioCeycBUKk github.com/CycloneDX/cyclonedx-go v0.9.1/go.mod h1:NE/EWvzELOFlG6+ljX/QeMlVt9VKcTwu8u0ccsACEsw= github.com/DATA-DOG/go-sqlmock v1.5.2 h1:OcvFkGmslmlZibjAjaHm3L//6LiuBgolP7OputlJIzU= github.com/DATA-DOG/go-sqlmock v1.5.2/go.mod h1:88MAG/4G7SMwSE3CeA0ZKzrT5CiOU3OJ+JlNzwDqpNU= -github.com/DataDog/agent-payload/v5 v5.0.135 h1:EZXSnOILBD/q4xWKtaOsDsIVWPteY1G79It8a5x8jJw= -github.com/DataDog/agent-payload/v5 v5.0.135/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= +github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= +github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/appsec-internal-go v1.9.0 h1:cGOneFsg0JTRzWl5U2+og5dbtyW3N8XaYwc5nXe39Vw= github.com/DataDog/appsec-internal-go v1.9.0/go.mod h1:wW0cRfWBo4C044jHGwYiyh5moQV2x0AhnwqMuiX7O/g= github.com/DataDog/aptly v1.5.3 h1:oLsRvjuXSVM4ia0N83dU3KiQeiJ6BaszYbTZOkSfDlw= diff --git a/pkg/security/secl/schemas/activity_dump.schema.json b/pkg/security/secl/schemas/activity_dump.schema.json index e41eacabd6fbe..a4196f2db7c37 100644 --- a/pkg/security/secl/schemas/activity_dump.schema.json +++ b/pkg/security/secl/schemas/activity_dump.schema.json @@ -291,11 +291,15 @@ }, "ip": { "type": "string" + }, + "protocol": { + "type": "integer" } }, "required": [ "port", - "ip" + "ip", + "protocol" ] } } diff --git a/pkg/security/secl/schemas/activity_dump_proto.schema.json b/pkg/security/secl/schemas/activity_dump_proto.schema.json index ebcd5311bdf33..01c52431d8131 100644 --- a/pkg/security/secl/schemas/activity_dump_proto.schema.json +++ b/pkg/security/secl/schemas/activity_dump_proto.schema.json @@ -275,11 +275,15 @@ }, "ip": { "type": "string" + }, + "protocol": { + "type": "integer" } }, "required": [ "port", - "ip" + "ip", + "protocol" ] } } diff --git a/pkg/security/security_profile/activity_tree/activity_tree_proto_dec_v1.go b/pkg/security/security_profile/activity_tree/activity_tree_proto_dec_v1.go index 09ad5a25a4c9a..efa5b301b31fc 100644 --- a/pkg/security/security_profile/activity_tree/activity_tree_proto_dec_v1.go +++ b/pkg/security/security_profile/activity_tree/activity_tree_proto_dec_v1.go @@ -331,6 +331,7 @@ func protoDecodeProtoSocket(sn *adproto.SocketNode) *SocketNode { MatchedRules: make([]*model.MatchedRule, 0, len(bindNode.MatchedRules)), Port: uint16(bindNode.Port), IP: bindNode.Ip, + Protocol: uint16(bindNode.Protocol), ImageTags: bindNode.ImageTags, } diff --git a/pkg/security/security_profile/activity_tree/activity_tree_proto_enc_v1.go b/pkg/security/security_profile/activity_tree/activity_tree_proto_enc_v1.go index 30b0b46e29382..3897b5a160fe9 100644 --- a/pkg/security/security_profile/activity_tree/activity_tree_proto_enc_v1.go +++ b/pkg/security/security_profile/activity_tree/activity_tree_proto_enc_v1.go @@ -303,6 +303,7 @@ func socketNodeToProto(sn *SocketNode) *adproto.SocketNode { MatchedRules: make([]*adproto.MatchedRule, 0, len(bn.MatchedRules)), Port: uint32(bn.Port), Ip: bn.IP, + Protocol: uint32(bn.Protocol), ImageTags: bn.ImageTags, } diff --git a/pkg/security/security_profile/activity_tree/process_node_snapshot.go b/pkg/security/security_profile/activity_tree/process_node_snapshot.go index 7233b9738d078..aea6151f018e2 100644 --- a/pkg/security/security_profile/activity_tree/process_node_snapshot.go +++ b/pkg/security/security_profile/activity_tree/process_node_snapshot.go @@ -287,25 +287,25 @@ func (pn *ProcessNode) snapshotBoundSockets(p *process.Process, stats *Stats, ne for _, s := range sockets { for _, sock := range TCP { if sock.Inode == s { - pn.insertSnapshottedSocket(unix.AF_INET, sock.LocalAddr, uint16(sock.LocalPort), stats, newEvent) + pn.insertSnapshottedSocket(unix.AF_INET, sock.LocalAddr, unix.IPPROTO_TCP, uint16(sock.LocalPort), stats, newEvent) break } } for _, sock := range UDP { if sock.Inode == s { - pn.insertSnapshottedSocket(unix.AF_INET, sock.LocalAddr, uint16(sock.LocalPort), stats, newEvent) + pn.insertSnapshottedSocket(unix.AF_INET, sock.LocalAddr, unix.IPPROTO_UDP, uint16(sock.LocalPort), stats, newEvent) break } } for _, sock := range TCP6 { if sock.Inode == s { - pn.insertSnapshottedSocket(unix.AF_INET6, sock.LocalAddr, uint16(sock.LocalPort), stats, newEvent) + pn.insertSnapshottedSocket(unix.AF_INET6, sock.LocalAddr, unix.IPPROTO_TCP, uint16(sock.LocalPort), stats, newEvent) break } } for _, sock := range UDP6 { if sock.Inode == s { - pn.insertSnapshottedSocket(unix.AF_INET6, sock.LocalAddr, uint16(sock.LocalPort), stats, newEvent) + pn.insertSnapshottedSocket(unix.AF_INET6, sock.LocalAddr, unix.IPPROTO_UDP, uint16(sock.LocalPort), stats, newEvent) break } } @@ -313,13 +313,14 @@ func (pn *ProcessNode) snapshotBoundSockets(p *process.Process, stats *Stats, ne } } -func (pn *ProcessNode) insertSnapshottedSocket(family uint16, ip net.IP, port uint16, stats *Stats, newEvent func() *model.Event) { +func (pn *ProcessNode) insertSnapshottedSocket(family uint16, ip net.IP, protocol uint16, port uint16, stats *Stats, newEvent func() *model.Event) { evt := newEvent() evt.Type = uint32(model.BindEventType) evt.Bind.SyscallEvent.Retval = 0 evt.Bind.AddrFamily = family evt.Bind.Addr.IPNet.IP = ip + evt.Bind.Protocol = protocol if family == unix.AF_INET { evt.Bind.Addr.IPNet.Mask = net.CIDRMask(32, 32) } else { diff --git a/pkg/security/security_profile/activity_tree/socket_node.go b/pkg/security/security_profile/activity_tree/socket_node.go index a2f38607181d2..73e4e0c3c174a 100644 --- a/pkg/security/security_profile/activity_tree/socket_node.go +++ b/pkg/security/security_profile/activity_tree/socket_node.go @@ -21,6 +21,7 @@ type BindNode struct { GenerationType NodeGenerationType Port uint16 IP string + Protocol uint16 } // SocketNode is used to store a Socket node and associated events @@ -32,10 +33,10 @@ type SocketNode struct { // Matches returns true if BindNodes matches func (bn *BindNode) Matches(toMatch *BindNode) bool { - return bn.Port == toMatch.Port && bn.IP == toMatch.IP + return bn.Port == toMatch.Port && bn.IP == toMatch.IP && bn.Protocol == toMatch.Protocol } -// Matches returns true if BindNodes matches +// Matches returns true if SocketNodes matches func (sn *SocketNode) Matches(toMatch *SocketNode) bool { return sn.Family == toMatch.Family } @@ -81,7 +82,7 @@ func (sn *SocketNode) InsertBindEvent(evt *model.BindEvent, imageTag string, gen evtIP := evt.Addr.IPNet.IP.String() for _, n := range sn.Bind { - if evt.Addr.Port == n.Port && evtIP == n.IP { + if evt.Addr.Port == n.Port && evtIP == n.IP && evt.Protocol == n.Protocol { if !dryRun { n.MatchedRules = model.AppendMatchedRule(n.MatchedRules, rules) } @@ -100,6 +101,7 @@ func (sn *SocketNode) InsertBindEvent(evt *model.BindEvent, imageTag string, gen GenerationType: generationType, Port: evt.Addr.Port, IP: evtIP, + Protocol: evt.Protocol, } if imageTag != "" { node.ImageTags = []string{imageTag} From 8cd435212ee08e92445542ea7d71eaf9de0d3b84 Mon Sep 17 00:00:00 2001 From: Naji Astier <757637+na-ji@users.noreply.github.com> Date: Tue, 26 Nov 2024 14:36:36 +0100 Subject: [PATCH 050/439] [SDBM-1330] Prevent failures when collecting Oracle metrics with big execution plan (#31395) --- pkg/collector/corechecks/oracle/statements.go | 8 ++++---- ...le-execution-plan-collection-ed04a62d8349eb67.yaml | 11 +++++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 releasenotes/notes/fix-oracle-execution-plan-collection-ed04a62d8349eb67.yaml diff --git a/pkg/collector/corechecks/oracle/statements.go b/pkg/collector/corechecks/oracle/statements.go index da58117aa92bb..333087f3a6c6a 100644 --- a/pkg/collector/corechecks/oracle/statements.go +++ b/pkg/collector/corechecks/oracle/statements.go @@ -226,7 +226,7 @@ type PlanDefinition struct { PlanStepId int64 `json:"id"` ParentId int64 `json:"parent_id"` Depth int64 `json:"depth"` - Position int64 `json:"position"` + Position uint64 `json:"position"` SearchColumns int64 `json:"search_columns,omitempty"` Cost float64 `json:"cost"` Cardinality float64 `json:"cardinality,omitempty"` @@ -299,7 +299,7 @@ type PlanStepRows struct { PlanStepId sql.NullInt64 `db:"ID"` ParentId sql.NullInt64 `db:"PARENT_ID"` Depth sql.NullInt64 `db:"DEPTH"` - Position sql.NullInt64 `db:"POSITION"` + Position *uint64 `db:"POSITION"` SearchColumns sql.NullInt64 `db:"SEARCH_COLUMNS"` Cost sql.NullFloat64 `db:"COST"` Cardinality sql.NullFloat64 `db:"CARDINALITY"` @@ -701,8 +701,8 @@ func (c *Check) StatementMetrics() (int, error) { if stepRow.Depth.Valid { stepPayload.Depth = stepRow.Depth.Int64 } - if stepRow.Position.Valid { - stepPayload.Position = stepRow.Position.Int64 + if stepRow.Position != nil { + stepPayload.Position = *stepRow.Position } if stepRow.SearchColumns.Valid { stepPayload.SearchColumns = stepRow.SearchColumns.Int64 diff --git a/releasenotes/notes/fix-oracle-execution-plan-collection-ed04a62d8349eb67.yaml b/releasenotes/notes/fix-oracle-execution-plan-collection-ed04a62d8349eb67.yaml new file mode 100644 index 0000000000000..4bb4782155d2f --- /dev/null +++ b/releasenotes/notes/fix-oracle-execution-plan-collection-ed04a62d8349eb67.yaml @@ -0,0 +1,11 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +fixes: + - | + Fix Oracle execution plan collection failures caused by an out-of-range position column, which can occur if the execution plan is excessively large. From c1ac65cb14d75ba75c9bdf39431ac8d124092adf Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Tue, 26 Nov 2024 15:05:34 +0100 Subject: [PATCH 051/439] [CWS] make windows self test run from outside of system-probe (#31128) --- .../probe/selftests/create_file_windows.go | 18 +++++++++++++---- .../selftests/open_registry_key_windows.go | 20 ++++++++++++------- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/pkg/security/probe/selftests/create_file_windows.go b/pkg/security/probe/selftests/create_file_windows.go index eebc878f61b24..806ef251044e5 100644 --- a/pkg/security/probe/selftests/create_file_windows.go +++ b/pkg/security/probe/selftests/create_file_windows.go @@ -9,6 +9,7 @@ package selftests import ( "fmt" "os" + "os/exec" "path/filepath" "github.com/DataDog/datadog-agent/pkg/security/secl/compiler/eval" @@ -37,7 +38,7 @@ func (o *WindowsCreateFileSelfTest) GetRuleDefinition() *rules.RuleDefinition { return &rules.RuleDefinition{ ID: o.ruleID, - Expression: fmt.Sprintf(`create.file.name == "%s" && create.file.device_path =~ "%s" && process.pid == %d`, basename, filepath.ToSlash(devicePath), os.Getpid()), + Expression: fmt.Sprintf(`create.file.name == "%s" && create.file.device_path =~ "%s"`, basename, filepath.ToSlash(devicePath)), Silent: true, } } @@ -46,12 +47,21 @@ func (o *WindowsCreateFileSelfTest) GetRuleDefinition() *rules.RuleDefinition { func (o *WindowsCreateFileSelfTest) GenerateEvent() error { o.isSuccess = false - file, err := os.Create(o.filename) - if err != nil { + cmd := exec.Command( + "powershell", + "-c", + "New-Item", + "-Path", + o.filename, + "-ItemType", + "file", + ) + if err := cmd.Run(); err != nil { log.Debugf("error creating file: %v", err) return err } - return file.Close() + + return os.Remove(o.filename) } // HandleEvent handles self test events diff --git a/pkg/security/probe/selftests/open_registry_key_windows.go b/pkg/security/probe/selftests/open_registry_key_windows.go index f405e0ace0e0f..4767e729d587e 100644 --- a/pkg/security/probe/selftests/open_registry_key_windows.go +++ b/pkg/security/probe/selftests/open_registry_key_windows.go @@ -10,14 +10,12 @@ package selftests import ( "fmt" - "os" + "os/exec" "path/filepath" "github.com/DataDog/datadog-agent/pkg/security/secl/compiler/eval" "github.com/DataDog/datadog-agent/pkg/security/secl/rules" "github.com/DataDog/datadog-agent/pkg/util/log" - - "golang.org/x/sys/windows/registry" ) // WindowsOpenRegistryKeyTest defines a windows open registry key self test @@ -33,7 +31,7 @@ func (o *WindowsOpenRegistryKeyTest) GetRuleDefinition() *rules.RuleDefinition { return &rules.RuleDefinition{ ID: o.ruleID, - Expression: fmt.Sprintf(`open.registry.key_name == "%s" && process.pid == %d`, filepath.Base(o.keyPath), os.Getpid()), + Expression: fmt.Sprintf(`open.registry.key_name == "%s"`, filepath.Base(o.keyPath)), Silent: true, } } @@ -42,12 +40,20 @@ func (o *WindowsOpenRegistryKeyTest) GetRuleDefinition() *rules.RuleDefinition { func (o *WindowsOpenRegistryKeyTest) GenerateEvent() error { o.isSuccess = false - key, err := registry.OpenKey(registry.LOCAL_MACHINE, o.keyPath, registry.READ) - if err != nil { + path := fmt.Sprintf("Registry::HKEY_LOCAL_MACHINE:\\%s", o.keyPath) + + cmd := exec.Command( + "powershell", + "-c", + "Get-ItemProperty", + "-Path", + path, + ) + if err := cmd.Run(); err != nil { log.Debugf("error opening registry key: %v", err) return err } - defer key.Close() + return nil } From 8ae53b67c3648e986f8d4ac16167f249d979c6e6 Mon Sep 17 00:00:00 2001 From: "Duong (Yoon)" <47346352+DDuongNguyen@users.noreply.github.com> Date: Tue, 26 Nov 2024 09:41:37 -0500 Subject: [PATCH 052/439] [AMLII- 2141] Add option to enforce transport protocol for log agent (#31053) --- pkg/config/config_template.yaml | 5 + pkg/config/setup/config.go | 3 + pkg/logs/client/http/destination.go | 25 +++- pkg/logs/client/http/destination_test.go | 127 ++++++++++++++++++ pkg/logs/client/http/test_utils.go | 24 ++++ pkg/util/http/transport.go | 17 ++- pkg/util/http/transport_test.go | 22 +++ ...-http1-for-log-agent-2cbfba763697ab42.yaml | 15 +++ 8 files changed, 235 insertions(+), 3 deletions(-) create mode 100644 releasenotes/notes/force-http1-for-log-agent-2cbfba763697ab42.yaml diff --git a/pkg/config/config_template.yaml b/pkg/config/config_template.yaml index ad53b961a1574..9e0577bbb0608 100644 --- a/pkg/config/config_template.yaml +++ b/pkg/config/config_template.yaml @@ -949,6 +949,11 @@ api_key: # # force_use_http: true + ## @param http_protocol - string - optional - default: auto + ## @env DD_LOGS_CONFIG_HTTP_PROTOCOL - string - optional - default: auto + ## The transport type to use for sending logs. Possible values are "auto" or "http1". + # http_protocol: auto + ## @param force_use_tcp - boolean - optional - default: false ## @env DD_LOGS_CONFIG_FORCE_USE_TCP - boolean - optional - default: false ## By default, logs are sent through HTTPS if possible, set this parameter diff --git a/pkg/config/setup/config.go b/pkg/config/setup/config.go index 4197723b67aa9..87b81893ad6b6 100644 --- a/pkg/config/setup/config.go +++ b/pkg/config/setup/config.go @@ -1519,6 +1519,9 @@ func logsagent(config pkgconfigmodel.Setup) { config.BindEnvAndSetDefault("logs_config.use_tcp", false) config.BindEnvAndSetDefault("logs_config.force_use_tcp", false) + // Transport protocol for log payloads + config.BindEnvAndSetDefault("logs_config.http_protocol", "auto") + bindEnvAndSetLogsConfigKeys(config, "logs_config.") bindEnvAndSetLogsConfigKeys(config, "database_monitoring.samples.") bindEnvAndSetLogsConfigKeys(config, "database_monitoring.activity.") diff --git a/pkg/logs/client/http/destination.go b/pkg/logs/client/http/destination.go index a307a64cc49b2..2a554e5476504 100644 --- a/pkg/logs/client/http/destination.go +++ b/pkg/logs/client/http/destination.go @@ -343,6 +343,7 @@ func (d *Destination) unconditionalSend(payload *message.Payload) (err error) { log.Debugf("Server closed or terminated the connection after serving the request with err %v", err) return err } + log.Tracef("Log payload sent to %s. Response resolved with protocol %s in %d ms", d.url, resp.Proto, latency) metrics.DestinationHttpRespByStatusAndUrl.Add(strconv.Itoa(resp.StatusCode), 1) metrics.TlmDestinationHttpRespByStatusAndUrl.Inc(strconv.Itoa(resp.StatusCode), d.url) @@ -392,12 +393,32 @@ func (d *Destination) updateRetryState(err error, isRetrying chan bool) bool { } func httpClientFactory(timeout time.Duration, cfg pkgconfigmodel.Reader) func() *http.Client { + var transport *http.Transport + + transportConfig := cfg.Get("logs_config.http_protocol") + // Configure transport based on user setting + switch transportConfig { + case "http1": + // Use default ALPN auto-negotiation to negotiate up to http/1.1 + transport = httputils.CreateHTTPTransport(cfg) + case "auto": + fallthrough + default: + if cfg.Get("logs_config.http_protocol") != "auto" { + log.Warnf("Invalid http_protocol '%v', falling back to 'auto'", transportConfig) + } + // Use default ALPN auto-negotiation and negotiate to HTTP/2 if possible, if not it will automatically fallback to best available protocol + transport = httputils.CreateHTTPTransport(cfg, httputils.WithHTTP2()) + } + return func() *http.Client { - return &http.Client{ + client := &http.Client{ Timeout: timeout, // reusing core agent HTTP transport to benefit from proxy settings. - Transport: httputils.CreateHTTPTransport(cfg), + Transport: transport, } + + return client } } diff --git a/pkg/logs/client/http/destination_test.go b/pkg/logs/client/http/destination_test.go index 6adf3e7d3148f..92bf984a79e5a 100644 --- a/pkg/logs/client/http/destination_test.go +++ b/pkg/logs/client/http/destination_test.go @@ -7,6 +7,7 @@ package http import ( "errors" + "net/http" "regexp" "strconv" "testing" @@ -367,3 +368,129 @@ func TestDestinationHA(t *testing.T) { assert.Equal(t, isEndpointMRF, isDestMRF) } } + +func TestTransportProtocol_HTTP1(t *testing.T) { + c := configmock.New(t) + assert.True(t, c.IsKnown("logs_config.http_protocol"), "Config key logs_config.http_protocol should be known") + + // Force client to use HTTP/1 + c.SetWithoutSource("logs_config.http_protocol", "http1") + // Skip SSL validation + c.SetWithoutSource("skip_ssl_validation", true) + + s := NewTestHTTPSServer(false) + defer s.Close() + + timeout := 5 * time.Second + // Force HTTP/1 transport + client := httpClientFactory(timeout, c)() + + // Create an HTTP/1.1 request + req, err := http.NewRequest("POST", s.URL, nil) + if err != nil { + t.Fatalf("Failed to create request: %v", err) + } + + // Client send an HTTP1 request + resp, err := client.Do(req) + if err != nil { + t.Fatalf("Failed to make request: %v", err) + } + defer resp.Body.Close() + + // Assert the protocol is HTTP/1.1 + assert.Equal(t, "HTTP/1.1", resp.Proto) +} + +func TestTransportProtocol_HTTP2(t *testing.T) { + c := configmock.New(t) + assert.True(t, c.IsKnown("logs_config.http_protocol"), "Config key logs_config.http_protocol should be known") + + // Force client to use ALNP + c.SetWithoutSource("logs_config.http_protocol", "auto") + // Skip SSL validation + c.SetWithoutSource("skip_ssl_validation", true) + + s := NewTestHTTPSServer(false) + defer s.Close() + + timeout := 5 * time.Second + client := httpClientFactory(timeout, c)() + + req, err := http.NewRequest("POST", s.URL, nil) + if err != nil { + t.Fatalf("Failed to create request: %v", err) + } + + // Client send an HTTP/2 request + resp, err := client.Do(req) + if err != nil { + t.Fatalf("Failed to make request: %v", err) + } + defer resp.Body.Close() + + // Assert the protocol is HTTP/2.0 + assert.Equal(t, "HTTP/2.0", resp.Proto) +} + +func TestTransportProtocol_InvalidProtocol(t *testing.T) { + c := configmock.New(t) + assert.True(t, c.IsKnown("logs_config.http_protocol"), "Config key logs_config.http_protocol should be known") + + // Force client to default to ALNP from invalid protocol + c.SetWithoutSource("logs_config.http_protocol", "htto2") + // Skip SSL validation + c.SetWithoutSource("skip_ssl_validation", true) + + // Start the test server + server := NewTestHTTPSServer(false) + defer server.Close() + + timeout := 5 * time.Second + client := httpClientFactory(timeout, c)() + + req, err := http.NewRequest("POST", server.URL, nil) + if err != nil { + t.Fatalf("Failed to create request: %v", err) + } + // Client send an HTTP/1.1 request + resp, err := client.Do(req) + if err != nil { + t.Fatalf("Failed to send request: %v", err) + } + defer resp.Body.Close() + + // Assert that the server responds with best available protocol(http/2.0) + assert.Equal(t, "HTTP/2.0", resp.Proto) +} + +func TestTransportProtocol_HTTP1FallBack(t *testing.T) { + c := configmock.New(t) + assert.True(t, c.IsKnown("logs_config.http_protocol"), "Config key logs_config.http_protocol should be known") + + // Force client to use ALNP + c.SetWithoutSource("logs_config.http_protocol", "auto") + // Skip SSL validation + c.SetWithoutSource("skip_ssl_validation", true) + + // Start the test server that only support HTTP/1.1 + server := NewTestHTTPSServer(true) + defer server.Close() + + timeout := 5 * time.Second + client := httpClientFactory(timeout, c)() + + req, err := http.NewRequest("POST", server.URL, nil) + if err != nil { + t.Fatalf("Failed to create request: %v", err) + } + // Client send HTTP/2 request + resp, err := client.Do(req) + if err != nil { + t.Fatalf("Failed to send request: %v", err) + } + defer resp.Body.Close() + + // Assert that the server automatically falls back to HTTP/1.1 + assert.Equal(t, "HTTP/1.1", resp.Proto) +} diff --git a/pkg/logs/client/http/test_utils.go b/pkg/logs/client/http/test_utils.go index c082ec06ed47a..9993d19ff09b4 100644 --- a/pkg/logs/client/http/test_utils.go +++ b/pkg/logs/client/http/test_utils.go @@ -16,6 +16,8 @@ import ( pkgconfigmodel "github.com/DataDog/datadog-agent/pkg/config/model" "github.com/DataDog/datadog-agent/pkg/logs/client" "github.com/DataDog/datadog-agent/pkg/logs/metrics" + + "golang.org/x/net/http2" ) // StatusCodeContainer is a lock around the status code to return @@ -92,6 +94,28 @@ func NewTestServerWithOptions(statusCode int, senders int, retryDestination bool } } +// NewTestHTTPSServer creates a new test server that can support HTTP/2 +func NewTestHTTPSServer(forceHTTP1 bool) *httptest.Server { + // Create an HTTP/2 test server + testServer := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("protocol", r.Proto) + w.WriteHeader(http.StatusOK) + })) + + // Configure the server to support HTTP/2 + if !forceHTTP1 { + err := http2.ConfigureServer(testServer.Config, &http2.Server{}) + if err != nil { + panic(err) + } + testServer.TLS = testServer.Config.TLSConfig + } + // Start the server with TLS + testServer.StartTLS() + + return testServer +} + // Stop stops the server func (s *TestServer) Stop() { s.stopChan <- struct{}{} diff --git a/pkg/util/http/transport.go b/pkg/util/http/transport.go index 94cfa4f4ce6b6..7e308a0e70770 100644 --- a/pkg/util/http/transport.go +++ b/pkg/util/http/transport.go @@ -18,6 +18,7 @@ import ( "time" "golang.org/x/net/http/httpproxy" + "golang.org/x/net/http2" pkgconfigmodel "github.com/DataDog/datadog-agent/pkg/config/model" "github.com/DataDog/datadog-agent/pkg/util/log" @@ -61,7 +62,7 @@ func minTLSVersionFromConfig(cfg pkgconfigmodel.Reader) uint16 { } // CreateHTTPTransport creates an *http.Transport for use in the agent -func CreateHTTPTransport(cfg pkgconfigmodel.Reader) *http.Transport { +func CreateHTTPTransport(cfg pkgconfigmodel.Reader, transportOptions ...func(*http.Transport)) *http.Transport { // It’s OK to reuse the same file for all the http.Transport objects we create // because all the writes to that file are protected by a global mutex. // See https://github.com/golang/go/blob/go1.17.3/src/crypto/tls/common.go#L1316-L1318 @@ -125,6 +126,10 @@ func CreateHTTPTransport(cfg pkgconfigmodel.Reader) *http.Transport { transport.Proxy = GetProxyTransportFunc(proxies, cfg) } + for _, transportOption := range transportOptions { + transportOption(transport) + } + return transport } @@ -224,3 +229,13 @@ func GetProxyTransportFunc(p *pkgconfigmodel.Proxy, cfg pkgconfigmodel.Reader) f return url, err } } + +// WithHTTP2 returns a http2 as a transport option +func WithHTTP2() func(*http.Transport) { + return func(transport *http.Transport) { + err := http2.ConfigureTransport(transport) + if err != nil { + log.Warnf("Failed to configure HTTP/2 transport: %v. Resolving to best available protocol", err) + } + } +} diff --git a/pkg/util/http/transport_test.go b/pkg/util/http/transport_test.go index 39f3530863bd1..58e09e19f5b12 100644 --- a/pkg/util/http/transport_test.go +++ b/pkg/util/http/transport_test.go @@ -193,6 +193,28 @@ func TestCreateHTTPTransport(t *testing.T) { assert.Equal(t, transport.TLSHandshakeTimeout, time.Second) } +func TestCreateHTTP1Transport(t *testing.T) { + c := configmock.New(t) + + transport := CreateHTTPTransport(c) + require.NotNil(t, transport) + + assert.Nil(t, transport.TLSNextProto) +} + +func TestCreateHTTP2Transport(t *testing.T) { + c := configmock.New(t) + + transport := CreateHTTPTransport(c, WithHTTP2()) + require.NotNil(t, transport) + + assert.NotNil(t, transport.TLSNextProto) + assert.Contains(t, transport.TLSNextProto, "h2", "TLSNextProto should indicate HTTP/2 support") + + assert.Contains(t, transport.TLSClientConfig.NextProtos, "h2", "NextProtos should prefer HTTP/2") + assert.Contains(t, transport.TLSClientConfig.NextProtos, "http/1.1", "NextProtos should allow fallback to HTTP/1.1") +} + func TestNoProxyWarningMap(t *testing.T) { setupTest(t) diff --git a/releasenotes/notes/force-http1-for-log-agent-2cbfba763697ab42.yaml b/releasenotes/notes/force-http1-for-log-agent-2cbfba763697ab42.yaml new file mode 100644 index 0000000000000..53476dcfa0bb9 --- /dev/null +++ b/releasenotes/notes/force-http1-for-log-agent-2cbfba763697ab42.yaml @@ -0,0 +1,15 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +features: + - | + Introduced a new configuration variable `logs_config.http_protocol`, allowing users to enforce HTTP/1.1 for outgoing HTTP connections in the Datadog Agent. This provides better control over transport protocols and improves compatibility with systems that do not support HTTP/2. + By default, the log agent will now attempt to use HTTP/2 and fall back to the best available protocol if HTTP/2 is not supported. +enhancements: + - | + Improved logging to add visiblity for latency and transport protocol \ No newline at end of file From 30698d8504919471cc067a0f09506fe3747b8595 Mon Sep 17 00:00:00 2001 From: Guy Arbitman Date: Tue, 26 Nov 2024 16:04:21 +0100 Subject: [PATCH 053/439] service discovery: tests: Fix flakiness in TestGoDetector (#31484) --- .../servicediscovery/apm/detect_nix_test.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/pkg/collector/corechecks/servicediscovery/apm/detect_nix_test.go b/pkg/collector/corechecks/servicediscovery/apm/detect_nix_test.go index 3b3bb9efcf118..2eba255192838 100644 --- a/pkg/collector/corechecks/servicediscovery/apm/detect_nix_test.go +++ b/pkg/collector/corechecks/servicediscovery/apm/detect_nix_test.go @@ -11,8 +11,10 @@ import ( "os" "os/exec" "path/filepath" + "strconv" "strings" "testing" + "time" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -21,6 +23,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/collector/corechecks/servicediscovery/usm" "github.com/DataDog/datadog-agent/pkg/network/protocols/http/testutil" usmtestutil "github.com/DataDog/datadog-agent/pkg/network/usm/testutil" + "github.com/DataDog/datadog-agent/pkg/util/kernel" ) func TestInjected(t *testing.T) { @@ -302,10 +305,21 @@ func TestGoDetector(t *testing.T) { cmd := exec.Command(binary) require.NoError(t, cmd.Start()) - tests[i].pid = cmd.Process.Pid t.Cleanup(func() { _ = cmd.Process.Kill() }) + require.Eventually(t, func() bool { + if cmd.Process.Pid == 0 { + return false + } + f, err := os.Open(kernel.HostProc(strconv.Itoa(cmd.Process.Pid), "exe")) + if err == nil { + _ = f.Close() + return true + } + return false + }, time.Second*10, time.Millisecond*100) + tests[i].pid = cmd.Process.Pid } ctx := usm.NewDetectionContext(nil, envs.NewVariables(nil), nil) From 04a7d9aafdf9815eb7901d487b61f62bf7a96b04 Mon Sep 17 00:00:00 2001 From: Vincent Whitchurch Date: Tue, 26 Nov 2024 16:44:52 +0100 Subject: [PATCH 054/439] discovery: Recognize .mjs/.cjs for Node.js (#31477) Co-authored-by: Guy Arbitman --- .../corechecks/servicediscovery/usm/nodejs.go | 5 +++-- .../servicediscovery/usm/service_test.go | 20 +++++++++++++++++++ .../usm/testdata/root/testdata/bar.mjs | 0 .../usm/testdata/root/testdata/foo.cjs | 0 4 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 pkg/collector/corechecks/servicediscovery/usm/testdata/root/testdata/bar.mjs create mode 100644 pkg/collector/corechecks/servicediscovery/usm/testdata/root/testdata/foo.cjs diff --git a/pkg/collector/corechecks/servicediscovery/usm/nodejs.go b/pkg/collector/corechecks/servicediscovery/usm/nodejs.go index f48972f1a4aa0..5efb671327276 100644 --- a/pkg/collector/corechecks/servicediscovery/usm/nodejs.go +++ b/pkg/collector/corechecks/servicediscovery/usm/nodejs.go @@ -25,8 +25,9 @@ func newNodeDetector(ctx DetectionContext) detector { return &nodeDetector{ctx: ctx} } -func isJs(path string) bool { - return strings.HasSuffix(strings.ToLower(path), ".js") +func isJs(filepath string) bool { + ext := strings.ToLower(path.Ext(filepath)) + return ext == ".js" || ext == ".mjs" || ext == ".cjs" } func (n nodeDetector) detect(args []string) (ServiceMetadata, bool) { diff --git a/pkg/collector/corechecks/servicediscovery/usm/service_test.go b/pkg/collector/corechecks/servicediscovery/usm/service_test.go index ae964b2d75f73..9baa51f1780ff 100644 --- a/pkg/collector/corechecks/servicediscovery/usm/service_test.go +++ b/pkg/collector/corechecks/servicediscovery/usm/service_test.go @@ -252,6 +252,26 @@ func TestExtractServiceMetadata(t *testing.T) { expectedGeneratedName: "my-awesome-package", fs: &subUsmTestData, }, + { + name: "nodejs .cjs with a valid package.json", + cmdline: []string{ + "/usr/bin/node", + "./testdata/foo.cjs", + }, + lang: language.Node, + expectedGeneratedName: "my-awesome-package", + fs: &subUsmTestData, + }, + { + name: "nodejs .mjs with a valid package.json", + cmdline: []string{ + "/usr/bin/node", + "./testdata/bar.mjs", + }, + lang: language.Node, + expectedGeneratedName: "my-awesome-package", + fs: &subUsmTestData, + }, { name: "node js with a symlink to a .js file and valid package.json", cmdline: []string{ diff --git a/pkg/collector/corechecks/servicediscovery/usm/testdata/root/testdata/bar.mjs b/pkg/collector/corechecks/servicediscovery/usm/testdata/root/testdata/bar.mjs new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/pkg/collector/corechecks/servicediscovery/usm/testdata/root/testdata/foo.cjs b/pkg/collector/corechecks/servicediscovery/usm/testdata/root/testdata/foo.cjs new file mode 100644 index 0000000000000..e69de29bb2d1d From 798ee9f48d22b43c670d6575aa86763a7c313e2d Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Tue, 26 Nov 2024 17:12:36 +0100 Subject: [PATCH 055/439] [CWS] small optimization to the user path computation on windows (#31281) --- pkg/security/probe/probe_kernel_file_windows.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/pkg/security/probe/probe_kernel_file_windows.go b/pkg/security/probe/probe_kernel_file_windows.go index f0d3d99de673d..0fbe624a66056 100644 --- a/pkg/security/probe/probe_kernel_file_windows.go +++ b/pkg/security/probe/probe_kernel_file_windows.go @@ -758,10 +758,16 @@ func (wp *WindowsProbe) parseNameDeleteArgs(e *etw.DDEventRecord) (*nameDeleteAr // nolint: unused func (wp *WindowsProbe) convertDrivePath(devicefilename string) (string, error) { // filepath doesn't seem to like the \Device\HarddiskVolume1 format - pathchunks := strings.Split(devicefilename, "\\") + pathchunks := strings.SplitN(devicefilename, "\\", 4) if len(pathchunks) > 2 { if strings.EqualFold(pathchunks[1], "device") { - pathchunks[2] = wp.volumeMap[strings.ToLower(pathchunks[2])] + // first try a direct match, to avoid the `strings.ToLower` call + replaced, ok := wp.volumeMap[pathchunks[2]] + if !ok { + // then try a case insensitive match + replaced = wp.volumeMap[strings.ToLower(pathchunks[2])] + } + pathchunks[2] = replaced return filepath.Join(pathchunks[2:]...), nil } } @@ -823,7 +829,9 @@ func (wp *WindowsProbe) initializeVolumeMap() error { if len(paths) > 2 { // the \Device leads to the first entry being empty if strings.EqualFold(paths[1], "device") { - wp.volumeMap[strings.ToLower(paths[2])] = drive + device := paths[2] + wp.volumeMap[device] = drive // device as-is for direct match + wp.volumeMap[strings.ToLower(device)] = drive // lower case for slower fallback } } } From ad29f3ce6852ccf7a74660f50a504004595cd204 Mon Sep 17 00:00:00 2001 From: Sylvain Afchain Date: Tue, 26 Nov 2024 17:20:25 +0100 Subject: [PATCH 056/439] [CWS] add bpf filter verifier tests (#31439) --- pkg/security/probe/probe_ebpf.go | 4 +- pkg/security/probe/probe_linux.go | 12 ++ pkg/security/tests/dns_test.go | 6 +- pkg/security/tests/imds_test.go | 48 ++------ pkg/security/tests/module_tester_linux.go | 7 ++ pkg/security/tests/network_test.go | 128 ++++++++++++++++++++-- 6 files changed, 151 insertions(+), 54 deletions(-) diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go index 81d5f6cb01154..ad07856a00e42 100644 --- a/pkg/security/probe/probe_ebpf.go +++ b/pkg/security/probe/probe_ebpf.go @@ -203,11 +203,11 @@ func (p *EBPFProbe) selectFentryMode() { } func (p *EBPFProbe) isNetworkNotSupported() bool { - return p.kernelVersion.IsRH7Kernel() + return IsNetworkNotSupported(p.kernelVersion) } func (p *EBPFProbe) isRawPacketNotSupported() bool { - return p.isNetworkNotSupported() || (p.kernelVersion.IsAmazonLinuxKernel() && p.kernelVersion.Code < kernel.Kernel4_15) + return IsRawPacketNotSupported(p.kernelVersion) } func (p *EBPFProbe) sanityChecks() error { diff --git a/pkg/security/probe/probe_linux.go b/pkg/security/probe/probe_linux.go index 657fde36687c0..4f56171c12892 100644 --- a/pkg/security/probe/probe_linux.go +++ b/pkg/security/probe/probe_linux.go @@ -9,6 +9,7 @@ package probe import ( "github.com/DataDog/datadog-agent/comp/core/telemetry" "github.com/DataDog/datadog-agent/pkg/security/config" + "github.com/DataDog/datadog-agent/pkg/security/ebpf/kernel" "github.com/DataDog/datadog-agent/pkg/security/events" "github.com/DataDog/datadog-agent/pkg/security/utils" gopsutilProcess "github.com/shirou/gopsutil/v3/process" @@ -59,6 +60,17 @@ func (p *Probe) Origin() string { return EBPFOrigin } +// IsRawPacketNotSupported returns if the raw packet feature is supported +func IsRawPacketNotSupported(kv *kernel.Version) bool { + return IsNetworkNotSupported(kv) || (kv.IsAmazonLinuxKernel() && kv.Code < kernel.Kernel4_15) || (kv.IsUbuntuKernel() && kv.Code < kernel.Kernel5_2) +} + +// IsNetworkNotSupported returns if the network feature is supported +func IsNetworkNotSupported(kv *kernel.Version) bool { + // TODO: Oracle because we are missing offset + return kv.IsRH7Kernel() || kv.IsOracleUEKKernel() +} + // NewAgentContainerContext returns the agent container context func NewAgentContainerContext() (*events.AgentContainerContext, error) { pid := utils.Getpid() diff --git a/pkg/security/tests/dns_test.go b/pkg/security/tests/dns_test.go index b883c27f38f1b..0700fda93fe0d 100644 --- a/pkg/security/tests/dns_test.go +++ b/pkg/security/tests/dns_test.go @@ -19,7 +19,6 @@ import ( "github.com/stretchr/testify/assert" "github.com/DataDog/datadog-agent/pkg/config/env" - "github.com/DataDog/datadog-agent/pkg/security/ebpf/kernel" "github.com/DataDog/datadog-agent/pkg/security/secl/model" "github.com/DataDog/datadog-agent/pkg/security/secl/rules" ) @@ -27,10 +26,7 @@ import ( func TestDNS(t *testing.T) { SkipIfNotAvailable(t) - checkKernelCompatibility(t, "RHEL, SLES and Oracle kernels", func(kv *kernel.Version) bool { - // TODO: Oracle because we are missing offsets - return kv.IsRH7Kernel() || kv.IsOracleUEKKernel() || kv.IsSLESKernel() - }) + checkNetworkCompatibility(t) if testEnvironment != DockerEnvironment && !env.IsContainerized() { if out, err := loadModule("veth"); err != nil { diff --git a/pkg/security/tests/imds_test.go b/pkg/security/tests/imds_test.go index 6f08b62d3a2bb..c03e50965d58a 100644 --- a/pkg/security/tests/imds_test.go +++ b/pkg/security/tests/imds_test.go @@ -19,7 +19,6 @@ import ( "github.com/stretchr/testify/assert" "github.com/DataDog/datadog-agent/pkg/config/env" - "github.com/DataDog/datadog-agent/pkg/security/ebpf/kernel" "github.com/DataDog/datadog-agent/pkg/security/secl/model" "github.com/DataDog/datadog-agent/pkg/security/secl/rules" "github.com/DataDog/datadog-agent/pkg/security/tests/testutils" @@ -28,10 +27,7 @@ import ( func TestAWSIMDSv1Request(t *testing.T) { SkipIfNotAvailable(t) - checkKernelCompatibility(t, "RHEL, SLES and Oracle kernels", func(kv *kernel.Version) bool { - // TODO: Oracle because we are missing offsets - return kv.IsRH7Kernel() || kv.IsOracleUEKKernel() || kv.IsSLESKernel() || kv.IsOpenSUSELeapKernel() - }) + checkNetworkCompatibility(t) if testEnvironment != DockerEnvironment && !env.IsContainerized() { if out, err := loadModule("veth"); err != nil { @@ -101,10 +97,7 @@ func TestAWSIMDSv1Request(t *testing.T) { func TestAWSIMDSv1Response(t *testing.T) { SkipIfNotAvailable(t) - checkKernelCompatibility(t, "RHEL, SLES and Oracle kernels", func(kv *kernel.Version) bool { - // TODO: Oracle because we are missing offsets - return kv.IsRH7Kernel() || kv.IsOracleUEKKernel() || kv.IsSLESKernel() || kv.IsOpenSUSELeapKernel() - }) + checkNetworkCompatibility(t) if testEnvironment != DockerEnvironment && !env.IsContainerized() { if out, err := loadModule("veth"); err != nil { @@ -179,13 +172,10 @@ func TestAWSIMDSv1Response(t *testing.T) { }) } -func TestNoAWSIMDSv1Response(t *testing.T) { +func TestAWSIMDSv1NoResponse(t *testing.T) { SkipIfNotAvailable(t) - checkKernelCompatibility(t, "RHEL, SLES and Oracle kernels", func(kv *kernel.Version) bool { - // TODO: Oracle because we are missing offsets - return kv.IsRH7Kernel() || kv.IsOracleUEKKernel() || kv.IsSLESKernel() || kv.IsOpenSUSELeapKernel() - }) + checkNetworkCompatibility(t) if testEnvironment != DockerEnvironment && !env.IsContainerized() { if out, err := loadModule("veth"); err != nil { @@ -249,10 +239,7 @@ func TestNoAWSIMDSv1Response(t *testing.T) { func TestAWSIMDSv2Request(t *testing.T) { SkipIfNotAvailable(t) - checkKernelCompatibility(t, "RHEL, SLES and Oracle kernels", func(kv *kernel.Version) bool { - // TODO: Oracle because we are missing offsets - return kv.IsRH7Kernel() || kv.IsOracleUEKKernel() || kv.IsSLESKernel() || kv.IsOpenSUSELeapKernel() - }) + checkNetworkCompatibility(t) if testEnvironment != DockerEnvironment && !env.IsContainerized() { if out, err := loadModule("veth"); err != nil { @@ -332,10 +319,7 @@ func TestAWSIMDSv2Request(t *testing.T) { func TestGCPIMDS(t *testing.T) { SkipIfNotAvailable(t) - checkKernelCompatibility(t, "RHEL, SLES and Oracle kernels", func(kv *kernel.Version) bool { - // TODO: Oracle because we are missing offsets - return kv.IsRH7Kernel() || kv.IsOracleUEKKernel() || kv.IsSLESKernel() || kv.IsOpenSUSELeapKernel() - }) + checkNetworkCompatibility(t) if testEnvironment != DockerEnvironment && !env.IsContainerized() { if out, err := loadModule("veth"); err != nil { @@ -410,10 +394,7 @@ func TestGCPIMDS(t *testing.T) { func TestAzureIMDS(t *testing.T) { SkipIfNotAvailable(t) - checkKernelCompatibility(t, "RHEL, SLES and Oracle kernels", func(kv *kernel.Version) bool { - // TODO: Oracle because we are missing offsets - return kv.IsRH7Kernel() || kv.IsOracleUEKKernel() || kv.IsSLESKernel() || kv.IsOpenSUSELeapKernel() - }) + checkNetworkCompatibility(t) if testEnvironment != DockerEnvironment && !env.IsContainerized() { if out, err := loadModule("veth"); err != nil { @@ -488,10 +469,7 @@ func TestAzureIMDS(t *testing.T) { func TestIBMIMDS(t *testing.T) { SkipIfNotAvailable(t) - checkKernelCompatibility(t, "RHEL, SLES and Oracle kernels", func(kv *kernel.Version) bool { - // TODO: Oracle because we are missing offsets - return kv.IsRH7Kernel() || kv.IsOracleUEKKernel() || kv.IsSLESKernel() || kv.IsOpenSUSELeapKernel() - }) + checkNetworkCompatibility(t) if testEnvironment != DockerEnvironment && !env.IsContainerized() { if out, err := loadModule("veth"); err != nil { @@ -566,10 +544,7 @@ func TestIBMIMDS(t *testing.T) { func TestOracleIMDS(t *testing.T) { SkipIfNotAvailable(t) - checkKernelCompatibility(t, "RHEL, SLES and Oracle kernels", func(kv *kernel.Version) bool { - // TODO: Oracle because we are missing offsets - return kv.IsRH7Kernel() || kv.IsOracleUEKKernel() || kv.IsSLESKernel() || kv.IsOpenSUSELeapKernel() - }) + checkNetworkCompatibility(t) if testEnvironment != DockerEnvironment && !env.IsContainerized() { if out, err := loadModule("veth"); err != nil { @@ -644,10 +619,7 @@ func TestOracleIMDS(t *testing.T) { func TestIMDSProcessContext(t *testing.T) { SkipIfNotAvailable(t) - checkKernelCompatibility(t, "RHEL, SLES and Oracle kernels", func(kv *kernel.Version) bool { - // TODO: Oracle because we are missing offsets - return kv.IsRH7Kernel() || kv.IsOracleUEKKernel() || kv.IsSLESKernel() || kv.IsOpenSUSELeapKernel() - }) + checkNetworkCompatibility(t) if testEnvironment != DockerEnvironment && !env.IsContainerized() { if out, err := loadModule("veth"); err != nil { diff --git a/pkg/security/tests/module_tester_linux.go b/pkg/security/tests/module_tester_linux.go index f7aca647351c3..c790771be8c29 100644 --- a/pkg/security/tests/module_tester_linux.go +++ b/pkg/security/tests/module_tester_linux.go @@ -1118,6 +1118,13 @@ func checkKernelCompatibility(tb testing.TB, why string, skipCheck func(kv *kern } } +func checkNetworkCompatibility(tb testing.TB) { + checkKernelCompatibility(tb, "network feature", func(kv *kernel.Version) bool { + // OpenSUSE distributions are missing the dummy kernel module + return sprobe.IsNetworkNotSupported(kv) || kv.IsSLESKernel() || kv.IsOpenSUSELeapKernel() + }) +} + func (tm *testModule) StopActivityDump(name, containerID string) error { p, ok := tm.probe.PlatformProbe.(*sprobe.EBPFProbe) if !ok { diff --git a/pkg/security/tests/network_test.go b/pkg/security/tests/network_test.go index e094e20ba528f..2a34b3101e17a 100644 --- a/pkg/security/tests/network_test.go +++ b/pkg/security/tests/network_test.go @@ -17,12 +17,15 @@ import ( "strings" "testing" + "github.com/cilium/ebpf" "github.com/docker/docker/libnetwork/resolvconf" "github.com/samber/lo" "github.com/stretchr/testify/assert" "github.com/DataDog/datadog-agent/pkg/config/env" "github.com/DataDog/datadog-agent/pkg/security/ebpf/kernel" + "github.com/DataDog/datadog-agent/pkg/security/ebpf/probes/rawpacket" + "github.com/DataDog/datadog-agent/pkg/security/probe" "github.com/DataDog/datadog-agent/pkg/security/secl/model" "github.com/DataDog/datadog-agent/pkg/security/secl/rules" "github.com/DataDog/datadog-agent/pkg/security/tests/testutils" @@ -31,10 +34,7 @@ import ( func TestNetworkCIDR(t *testing.T) { SkipIfNotAvailable(t) - checkKernelCompatibility(t, "RHEL, SLES and Oracle kernels", func(kv *kernel.Version) bool { - // TODO: Oracle because we are missing offsets - return kv.IsRH7Kernel() || kv.IsOracleUEKKernel() || kv.IsSLESKernel() - }) + checkNetworkCompatibility(t) if testEnvironment != DockerEnvironment && !env.IsContainerized() { if out, err := loadModule("veth"); err != nil { @@ -76,14 +76,15 @@ func TestNetworkCIDR(t *testing.T) { }) } +func isRawPacketNotSupported(kv *kernel.Version) bool { + // OpenSUSE distributions are missing the dummy kernel module + return probe.IsRawPacketNotSupported(kv) || kv.IsSLESKernel() || kv.IsOpenSUSELeapKernel() +} + func TestRawPacket(t *testing.T) { SkipIfNotAvailable(t) - checkKernelCompatibility(t, "RHEL, SLES, SUSE and Oracle kernels", func(kv *kernel.Version) bool { - // TODO: Oracle because we are missing offsets - // OpenSUSE distributions are missing the dummy kernel module - return kv.IsRH7Kernel() || kv.IsOracleUEKKernel() || kv.IsSLESKernel() || kv.IsOpenSUSELeapKernel() || (kv.IsAmazonLinuxKernel() && kv.Code < kernel.Kernel4_15) - }) + checkKernelCompatibility(t, "network feature", isRawPacketNotSupported) if testEnvironment != DockerEnvironment && !env.IsContainerized() { if out, err := loadModule("veth"); err != nil { @@ -149,3 +150,112 @@ func TestRawPacket(t *testing.T) { }) }) } + +func TestRawPacketFilter(t *testing.T) { + SkipIfNotAvailable(t) + + checkKernelCompatibility(t, "RHEL, SLES, SUSE, AWS, Ubuntu and Oracle kernels", isRawPacketNotSupported) + + colSpecForMaps := ebpf.CollectionSpec{ + Maps: map[string]*ebpf.MapSpec{ + "raw_packet_event": { + Name: "raw_packet_event", + Type: ebpf.Array, + KeySize: 4, + ValueSize: 4096, // to be adapted with the raw_packet_event + MaxEntries: 1, + }, + "classifier_router": { + Name: "classifier_router", + Type: ebpf.ProgramArray, + KeySize: 4, + ValueSize: 4, + MaxEntries: 1, + }, + }, + } + + mapsCol, err := ebpf.NewCollection(&colSpecForMaps) + assert.Nil(t, err) + defer mapsCol.Close() + + rawPacketEventMap := mapsCol.Maps["raw_packet_event"] + assert.NotNil(t, rawPacketEventMap) + assert.Greater(t, rawPacketEventMap.FD(), 0) + + clsRouterMapFd := mapsCol.Maps["classifier_router"] + assert.NotNil(t, clsRouterMapFd) + assert.Greater(t, clsRouterMapFd.FD(), 0) + + filters := []rawpacket.Filter{ + { + BPFFilter: "port 5555", + }, + { + BPFFilter: "tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420", + }, + { + BPFFilter: "icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply", + }, + { + BPFFilter: "port ftp or ftp-data", + }, + { + BPFFilter: "tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and not src and dst net 192.168.1.0/24", + }, + { + BPFFilter: "tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)", + }, + { + BPFFilter: "ether[0] & 1 = 0 and ip[16] >= 224", + }, + { + BPFFilter: "udp port 67 and port 68", + }, + { + BPFFilter: "((port 67 or port 68) and (udp[38:4] = 0x3e0ccf08))", + }, + { + BPFFilter: "portrange 21-23", + }, + { + BPFFilter: "tcp[13] & 8!=0", + }, + } + + runTest := func(t *testing.T, filters []rawpacket.Filter, opts rawpacket.ProgOpts) { + progSpecs, err := rawpacket.FiltersToProgramSpecs(rawPacketEventMap.FD(), clsRouterMapFd.FD(), filters, opts) + assert.Nil(t, err) + assert.NotEmpty(t, progSpecs) + + colSpec := ebpf.CollectionSpec{ + Programs: make(map[string]*ebpf.ProgramSpec), + } + for _, progSpec := range progSpecs { + colSpec.Programs[progSpec.Name] = progSpec + } + + progsCol, err := ebpf.NewCollection(&colSpec) + assert.Nil(t, err) + if err == nil { + progsCol.Close() + } + } + + for _, filter := range filters { + t.Run(filter.BPFFilter, func(t *testing.T) { + runTest(t, []rawpacket.Filter{filter}, rawpacket.DefaultProgOpts) + }) + } + + t.Run("all-without-limit", func(t *testing.T) { + runTest(t, filters, rawpacket.DefaultProgOpts) + }) + + t.Run("all-with-limit", func(t *testing.T) { + opts := rawpacket.DefaultProgOpts + opts.MaxProgSize = 4000 + opts.NopInstLen = 3500 + runTest(t, filters, rawpacket.DefaultProgOpts) + }) +} From f631ce2b49f34fff1811e2eb090c6d27a08412ed Mon Sep 17 00:00:00 2001 From: Marethyu <45374460+Pythyu@users.noreply.github.com> Date: Tue, 26 Nov 2024 17:35:16 +0100 Subject: [PATCH 057/439] Import python relatively instead of using the build time pythonHome variable (#31426) Co-authored-by: Alex Lopez --- pkg/collector/python/init.go | 47 +++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/pkg/collector/python/init.go b/pkg/collector/python/init.go index 3bbd1102c2bc6..ecbf9c9b8b2fd 100644 --- a/pkg/collector/python/init.go +++ b/pkg/collector/python/init.go @@ -303,31 +303,34 @@ func pathToBinary(name string, ignoreErrors bool) (string, error) { } func resolvePythonExecPath(ignoreErrors bool) (string, error) { - // Since the install location can be set by the user on Windows we use relative import - if runtime.GOOS == "windows" { - _here, err := executable.Folder() + // Allow to relatively import python + _here, err := executable.Folder() + if err != nil { + log.Warnf("Error getting executable folder: %v", err) + log.Warnf("Trying again allowing symlink resolution to fail") + _here, err = executable.FolderAllowSymlinkFailure() if err != nil { - log.Warnf("Error getting executable folder: %v", err) - log.Warnf("Trying again allowing symlink resolution to fail") - _here, err = executable.FolderAllowSymlinkFailure() - if err != nil { - log.Warnf("Error getting executable folder w/o symlinks: %v", err) - } - } - log.Debugf("Executable folder is %v", _here) - - embeddedPythonHome3 := filepath.Join(_here, "..", "embedded3") - - // We want to use the path-relative embedded2/3 directories above by default. - // They will be correct for normal installation on Windows. However, if they - // are not present for cases like running unit tests, fall back to the compile - // time values. - if _, err := os.Stat(embeddedPythonHome3); os.IsNotExist(err) { - log.Warnf("Relative embedded directory not found for Python 3. Using default: %s", pythonHome3) - } else { - pythonHome3 = embeddedPythonHome3 + log.Warnf("Error getting executable folder w/o symlinks: %v", err) } } + log.Debugf("Executable folder is %v", _here) + + var embeddedPythonHome3 string + if runtime.GOOS == "windows" { + embeddedPythonHome3 = filepath.Join(_here, "..", "embedded3") + } else { // Both macOS and Linux have the same relative paths + embeddedPythonHome3 = filepath.Join(_here, "../..", "embedded") + } + + // We want to use the path-relative embedded2/3 directories above by default. + // They will be correct for normal installation on Windows. However, if they + // are not present for cases like running unit tests, fall back to the compile + // time values. + if _, err := os.Stat(embeddedPythonHome3); os.IsNotExist(err) { + log.Warnf("Relative embedded directory not found for Python 3. Using default: %s", pythonHome3) + } else { + pythonHome3 = embeddedPythonHome3 + } PythonHome = pythonHome3 From edc3ea3f5a92c05990dd1a47fca69eb950ea0597 Mon Sep 17 00:00:00 2001 From: Pierre Gimalac Date: Tue, 26 Nov 2024 17:50:56 +0100 Subject: [PATCH 058/439] Update github.com/spf13/cast to latest (#31427) Co-authored-by: hush-hush Co-authored-by: KevinFairise2 --- comp/api/authtoken/go.mod | 2 +- comp/api/authtoken/go.sum | 8 ++++---- comp/core/config/go.mod | 2 +- comp/core/config/go.sum | 8 ++++---- comp/core/log/impl-trace/go.mod | 2 +- comp/core/log/impl-trace/go.sum | 8 ++++---- comp/core/log/impl/go.mod | 2 +- comp/core/log/impl/go.sum | 8 ++++---- comp/core/log/mock/go.mod | 2 +- comp/core/log/mock/go.sum | 8 ++++---- comp/core/status/go.mod | 2 +- comp/core/status/go.sum | 4 ++-- comp/core/status/statusimpl/go.mod | 2 +- comp/core/status/statusimpl/go.sum | 4 ++-- comp/forwarder/defaultforwarder/go.mod | 2 +- comp/forwarder/defaultforwarder/go.sum | 4 ++-- .../orchestrator/orchestratorinterface/go.mod | 4 ++-- .../orchestrator/orchestratorinterface/go.sum | 9 +++++++-- comp/logs/agent/config/go.mod | 2 +- comp/logs/agent/config/go.sum | 8 ++++---- comp/otelcol/logsagentpipeline/go.mod | 2 +- comp/otelcol/logsagentpipeline/go.sum | 8 ++++---- .../logsagentpipelineimpl/go.mod | 2 +- .../logsagentpipelineimpl/go.sum | 8 ++++---- .../exporter/datadogexporter/go.mod | 2 +- .../exporter/datadogexporter/go.sum | 4 ++-- .../exporter/logsagentexporter/go.mod | 2 +- .../exporter/logsagentexporter/go.sum | 8 ++++---- .../exporter/serializerexporter/go.mod | 2 +- .../exporter/serializerexporter/go.sum | 4 ++-- comp/otelcol/otlp/testutil/go.mod | 2 +- comp/otelcol/otlp/testutil/go.sum | 8 ++++---- comp/serializer/compression/go.mod | 2 +- comp/serializer/compression/go.sum | 8 ++++---- go.mod | 2 +- go.sum | 6 ++++-- internal/tools/go.mod | 2 +- internal/tools/go.sum | 4 ++-- pkg/api/go.mod | 2 +- pkg/api/go.sum | 8 ++++---- pkg/config/env/go.mod | 2 +- pkg/config/env/go.sum | 15 ++++++++++++--- pkg/config/mock/go.mod | 2 +- pkg/config/mock/go.sum | 8 ++++---- pkg/config/model/go.mod | 2 +- pkg/config/model/go.sum | 15 ++++++++++++--- pkg/config/nodetreemodel/go.mod | 5 ++++- pkg/config/nodetreemodel/go.sum | 19 +++++++++++++++---- pkg/config/remote/go.mod | 2 +- pkg/config/remote/go.sum | 8 ++++---- pkg/config/setup/go.mod | 4 ++-- pkg/config/setup/go.sum | 9 +++++++-- pkg/config/structure/go.mod | 5 ++++- pkg/config/structure/go.sum | 12 +++++++----- pkg/config/teeconfig/go.mod | 2 +- pkg/config/teeconfig/go.sum | 15 ++++++++++++--- pkg/config/utils/go.mod | 2 +- pkg/config/utils/go.sum | 8 ++++---- pkg/logs/auditor/go.mod | 2 +- pkg/logs/auditor/go.sum | 8 ++++---- pkg/logs/client/go.mod | 2 +- pkg/logs/client/go.sum | 8 ++++---- pkg/logs/diagnostic/go.mod | 2 +- pkg/logs/diagnostic/go.sum | 8 ++++---- pkg/logs/message/go.mod | 2 +- pkg/logs/message/go.sum | 8 ++++---- pkg/logs/pipeline/go.mod | 2 +- pkg/logs/pipeline/go.sum | 8 ++++---- pkg/logs/processor/go.mod | 2 +- pkg/logs/processor/go.sum | 8 ++++---- pkg/logs/sds/go.mod | 2 +- pkg/logs/sds/go.sum | 8 ++++---- pkg/logs/sender/go.mod | 2 +- pkg/logs/sender/go.sum | 8 ++++---- pkg/logs/sources/go.mod | 2 +- pkg/logs/sources/go.sum | 8 ++++---- pkg/logs/util/testutils/go.mod | 2 +- pkg/logs/util/testutils/go.sum | 8 ++++---- pkg/metrics/go.mod | 2 +- pkg/metrics/go.sum | 8 ++++---- pkg/proto/go.mod | 1 + pkg/proto/go.sum | 10 ++++++++-- pkg/remoteconfig/state/go.mod | 1 + pkg/remoteconfig/state/go.sum | 12 ++++++++---- pkg/serializer/go.mod | 2 +- pkg/serializer/go.sum | 4 ++-- pkg/util/flavor/go.mod | 2 +- pkg/util/flavor/go.sum | 8 ++++---- pkg/util/grpc/go.mod | 2 +- pkg/util/grpc/go.sum | 8 ++++---- pkg/util/http/go.mod | 2 +- pkg/util/http/go.sum | 8 ++++---- pkg/util/log/setup/go.mod | 2 +- pkg/util/log/setup/go.sum | 8 ++++---- test/new-e2e/go.mod | 2 +- test/new-e2e/go.sum | 4 ++-- test/otel/go.mod | 2 +- test/otel/go.sum | 4 ++-- 98 files changed, 287 insertions(+), 217 deletions(-) diff --git a/comp/api/authtoken/go.mod b/comp/api/authtoken/go.mod index 366648b435876..02392ef9508b1 100644 --- a/comp/api/authtoken/go.mod +++ b/comp/api/authtoken/go.mod @@ -96,7 +96,7 @@ require ( github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect diff --git a/comp/api/authtoken/go.sum b/comp/api/authtoken/go.sum index 4d03242cbc0f8..bbea552f0eb1a 100644 --- a/comp/api/authtoken/go.sum +++ b/comp/api/authtoken/go.sum @@ -41,8 +41,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -186,8 +186,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/comp/core/config/go.mod b/comp/core/config/go.mod index 0a75d9ae4ecc3..c425778ab3813 100644 --- a/comp/core/config/go.mod +++ b/comp/core/config/go.mod @@ -94,7 +94,7 @@ require ( github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect diff --git a/comp/core/config/go.sum b/comp/core/config/go.sum index 6c896fb1dcb6f..fddfe23b60921 100644 --- a/comp/core/config/go.sum +++ b/comp/core/config/go.sum @@ -42,8 +42,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -190,8 +190,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/comp/core/log/impl-trace/go.mod b/comp/core/log/impl-trace/go.mod index c45242beb09d5..af67376532a37 100644 --- a/comp/core/log/impl-trace/go.mod +++ b/comp/core/log/impl-trace/go.mod @@ -95,7 +95,7 @@ require ( github.com/shirou/gopsutil/v3 v3.24.4 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect diff --git a/comp/core/log/impl-trace/go.sum b/comp/core/log/impl-trace/go.sum index c78b3124479b5..d4d8cda8bdd8d 100644 --- a/comp/core/log/impl-trace/go.sum +++ b/comp/core/log/impl-trace/go.sum @@ -41,8 +41,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -191,8 +191,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/comp/core/log/impl/go.mod b/comp/core/log/impl/go.mod index fec2fc328f3a9..d50f72726751c 100644 --- a/comp/core/log/impl/go.mod +++ b/comp/core/log/impl/go.mod @@ -85,7 +85,7 @@ require ( github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect diff --git a/comp/core/log/impl/go.sum b/comp/core/log/impl/go.sum index 4d03242cbc0f8..bbea552f0eb1a 100644 --- a/comp/core/log/impl/go.sum +++ b/comp/core/log/impl/go.sum @@ -41,8 +41,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -186,8 +186,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/comp/core/log/mock/go.mod b/comp/core/log/mock/go.mod index d0cb2bea6de23..b16aa5004276a 100644 --- a/comp/core/log/mock/go.mod +++ b/comp/core/log/mock/go.mod @@ -49,7 +49,7 @@ require ( github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect github.com/pelletier/go-toml v1.2.0 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect go.uber.org/atomic v1.11.0 // indirect diff --git a/comp/core/log/mock/go.sum b/comp/core/log/mock/go.sum index 9060112d6be3e..5b99deeef04d3 100644 --- a/comp/core/log/mock/go.sum +++ b/comp/core/log/mock/go.sum @@ -36,8 +36,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -158,8 +158,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= diff --git a/comp/core/status/go.mod b/comp/core/status/go.mod index 037f8e9d6b75c..e9b817883b56e 100644 --- a/comp/core/status/go.mod +++ b/comp/core/status/go.mod @@ -5,7 +5,7 @@ go 1.22.0 require ( github.com/dustin/go-humanize v1.0.1 github.com/fatih/color v1.16.0 - github.com/spf13/cast v1.6.0 + github.com/spf13/cast v1.7.0 github.com/stretchr/testify v1.9.0 go.uber.org/fx v1.22.2 golang.org/x/text v0.20.0 diff --git a/comp/core/status/go.sum b/comp/core/status/go.sum index 991e86447e480..f18d7b4e54647 100644 --- a/comp/core/status/go.sum +++ b/comp/core/status/go.sum @@ -21,8 +21,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= -github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= diff --git a/comp/core/status/statusimpl/go.mod b/comp/core/status/statusimpl/go.mod index 072b8d21e8b9d..25a9194110a92 100644 --- a/comp/core/status/statusimpl/go.mod +++ b/comp/core/status/statusimpl/go.mod @@ -103,7 +103,7 @@ require ( github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.6.0 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect diff --git a/comp/core/status/statusimpl/go.sum b/comp/core/status/statusimpl/go.sum index b182e71f1aa7c..8a07a5da2ca2a 100644 --- a/comp/core/status/statusimpl/go.sum +++ b/comp/core/status/statusimpl/go.sum @@ -200,8 +200,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= -github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= diff --git a/comp/forwarder/defaultforwarder/go.mod b/comp/forwarder/defaultforwarder/go.mod index f6ff557ad4a8b..c58d4ab1df44c 100644 --- a/comp/forwarder/defaultforwarder/go.mod +++ b/comp/forwarder/defaultforwarder/go.mod @@ -134,7 +134,7 @@ require ( github.com/shirou/gopsutil/v3 v3.24.4 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.6.0 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect diff --git a/comp/forwarder/defaultforwarder/go.sum b/comp/forwarder/defaultforwarder/go.sum index 871be6a11227f..6cd11bf22c595 100644 --- a/comp/forwarder/defaultforwarder/go.sum +++ b/comp/forwarder/defaultforwarder/go.sum @@ -209,8 +209,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= -github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= diff --git a/comp/forwarder/orchestrator/orchestratorinterface/go.mod b/comp/forwarder/orchestrator/orchestratorinterface/go.mod index f2baa85f6fe88..380db17a9e236 100644 --- a/comp/forwarder/orchestrator/orchestratorinterface/go.mod +++ b/comp/forwarder/orchestrator/orchestratorinterface/go.mod @@ -61,7 +61,7 @@ require github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder v0.56.0 replace ( github.com/cihub/seelog => github.com/cihub/seelog v0.0.0-20151216151435-d2c6e5aa9fbf // v2.6 github.com/coreos/go-systemd => github.com/coreos/go-systemd v0.0.0-20180202092358-40e2722dffea - github.com/spf13/cast => github.com/DataDog/cast v1.3.1-0.20190301154711-1ee8c8bd14a3 + github.com/spf13/cast => github.com/DataDog/cast v1.8.0 github.com/ugorji/go => github.com/ugorji/go v1.1.7 ) @@ -138,7 +138,7 @@ require ( github.com/shirou/gopsutil/v3 v3.24.4 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.6.0 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect diff --git a/comp/forwarder/orchestrator/orchestratorinterface/go.sum b/comp/forwarder/orchestrator/orchestratorinterface/go.sum index edba48cab8f8d..bcc5d074d0c77 100644 --- a/comp/forwarder/orchestrator/orchestratorinterface/go.sum +++ b/comp/forwarder/orchestrator/orchestratorinterface/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/cast v1.3.1-0.20190301154711-1ee8c8bd14a3 h1:SobA9WYm4K/MUtWlbKaomWTmnuYp1KhIm8Wlx3vmpsg= -github.com/DataDog/cast v1.3.1-0.20190301154711-1ee8c8bd14a3/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/DataDog/cast v1.8.0 h1:uooY8bMzq+cjgiNP1VTquCWve5emgk8fRspZojJwQa8= +github.com/DataDog/cast v1.8.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -34,6 +34,7 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd v0.0.0-20180202092358-40e2722dffea/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -46,6 +47,8 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -154,6 +157,7 @@ github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTK github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -190,6 +194,7 @@ github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40T github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= diff --git a/comp/logs/agent/config/go.mod b/comp/logs/agent/config/go.mod index db73485ea4ca4..9f42d20b4a700 100644 --- a/comp/logs/agent/config/go.mod +++ b/comp/logs/agent/config/go.mod @@ -88,7 +88,7 @@ require ( github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect diff --git a/comp/logs/agent/config/go.sum b/comp/logs/agent/config/go.sum index 4d03242cbc0f8..bbea552f0eb1a 100644 --- a/comp/logs/agent/config/go.sum +++ b/comp/logs/agent/config/go.sum @@ -41,8 +41,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -186,8 +186,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/comp/otelcol/logsagentpipeline/go.mod b/comp/otelcol/logsagentpipeline/go.mod index a261d2ea98810..2d1a300964364 100644 --- a/comp/otelcol/logsagentpipeline/go.mod +++ b/comp/otelcol/logsagentpipeline/go.mod @@ -141,7 +141,7 @@ require ( github.com/shirou/gopsutil/v3 v3.24.1 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect diff --git a/comp/otelcol/logsagentpipeline/go.sum b/comp/otelcol/logsagentpipeline/go.sum index cab7488813d74..601934cb1bbbf 100644 --- a/comp/otelcol/logsagentpipeline/go.sum +++ b/comp/otelcol/logsagentpipeline/go.sum @@ -46,8 +46,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -204,8 +204,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod index f3e0040fcd070..61cd7e5f4f5ff 100644 --- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod +++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod @@ -156,7 +156,7 @@ require ( github.com/shirou/gopsutil/v3 v3.24.4 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum index 50e0212986ed6..00341258f4a82 100644 --- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum +++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum @@ -46,8 +46,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -204,8 +204,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod index 61493384ded09..bf81569416a56 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod @@ -276,7 +276,7 @@ require ( github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.6.0 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum index d98a4b46f3bfe..7eee36ba8763a 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum @@ -332,8 +332,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= -github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod index c8a60277deebb..213fd4cb16878 100644 --- a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod @@ -126,7 +126,7 @@ require ( github.com/shirou/gopsutil/v3 v3.24.4 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/tinylib/msgp v1.1.8 // indirect diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum index 0044340f22d4c..47da0ff50cf4c 100644 --- a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum @@ -57,8 +57,8 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -223,8 +223,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod index a6ced6161cc46..bc29f0dc5a7be 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod @@ -192,7 +192,7 @@ require ( github.com/shirou/gopsutil/v3 v3.24.4 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.6.0 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum index 97a9a5e1600eb..0599bb87120a9 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum @@ -285,8 +285,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= -github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= diff --git a/comp/otelcol/otlp/testutil/go.mod b/comp/otelcol/otlp/testutil/go.mod index e0fd7698c8e22..d092897c329c0 100644 --- a/comp/otelcol/otlp/testutil/go.mod +++ b/comp/otelcol/otlp/testutil/go.mod @@ -90,7 +90,7 @@ require ( github.com/shirou/gopsutil/v3 v3.24.4 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/tinylib/msgp v1.1.8 // indirect diff --git a/comp/otelcol/otlp/testutil/go.sum b/comp/otelcol/otlp/testutil/go.sum index 637c5feb37187..b1b8218380841 100644 --- a/comp/otelcol/otlp/testutil/go.sum +++ b/comp/otelcol/otlp/testutil/go.sum @@ -45,8 +45,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -203,8 +203,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/comp/serializer/compression/go.mod b/comp/serializer/compression/go.mod index a3d1f520fc928..da5afa34904b8 100644 --- a/comp/serializer/compression/go.mod +++ b/comp/serializer/compression/go.mod @@ -83,7 +83,7 @@ require ( github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect diff --git a/comp/serializer/compression/go.sum b/comp/serializer/compression/go.sum index b53dd126fbc8a..92da8d2bede28 100644 --- a/comp/serializer/compression/go.sum +++ b/comp/serializer/compression/go.sum @@ -43,8 +43,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -188,8 +188,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/go.mod b/go.mod index c4d8fc7351599..bc90a63e19e12 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ retract ( replace ( github.com/cihub/seelog => github.com/cihub/seelog v0.0.0-20151216151435-d2c6e5aa9fbf // v2.6 github.com/coreos/go-systemd => github.com/coreos/go-systemd v0.0.0-20180202092358-40e2722dffea - github.com/spf13/cast => github.com/DataDog/cast v1.3.1-0.20190301154711-1ee8c8bd14a3 + github.com/spf13/cast => github.com/DataDog/cast v1.8.0 github.com/ugorji/go => github.com/ugorji/go v1.1.7 ) diff --git a/go.sum b/go.sum index d2c1ce25b4480..39fec081d7e09 100644 --- a/go.sum +++ b/go.sum @@ -121,8 +121,8 @@ github.com/DataDog/appsec-internal-go v1.9.0 h1:cGOneFsg0JTRzWl5U2+og5dbtyW3N8Xa github.com/DataDog/appsec-internal-go v1.9.0/go.mod h1:wW0cRfWBo4C044jHGwYiyh5moQV2x0AhnwqMuiX7O/g= github.com/DataDog/aptly v1.5.3 h1:oLsRvjuXSVM4ia0N83dU3KiQeiJ6BaszYbTZOkSfDlw= github.com/DataDog/aptly v1.5.3/go.mod h1:ZL5TfCso+z4enH03N+s3z8tYUJHhL6DlxIvnnP2TbY4= -github.com/DataDog/cast v1.3.1-0.20190301154711-1ee8c8bd14a3 h1:SobA9WYm4K/MUtWlbKaomWTmnuYp1KhIm8Wlx3vmpsg= -github.com/DataDog/cast v1.3.1-0.20190301154711-1ee8c8bd14a3/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/DataDog/cast v1.8.0 h1:uooY8bMzq+cjgiNP1VTquCWve5emgk8fRspZojJwQa8= +github.com/DataDog/cast v1.8.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/DataDog/datadog-agent/comp/core/log v0.56.2 h1:qvBT+FfjKGqimyEvmsNHCZKbTfBJAdUZSVy2IZQ8HS4= github.com/DataDog/datadog-agent/comp/core/log v0.56.2/go.mod h1:ivJ/RMZjTNkoPPNDX+v/nnBwABLCiMv1vQA5tk/HCR4= github.com/DataDog/datadog-api-client-go/v2 v2.31.0 h1:JfJhYlHfLzvauI8u6h23smTooWYe6quNhhg9gpTszWY= @@ -641,6 +641,8 @@ github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8 github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/foxcpp/go-mockdns v1.1.0 h1:jI0rD8M0wuYAxL7r/ynTrCQQq0BVqfB99Vgk7DlmewI= github.com/foxcpp/go-mockdns v1.1.0/go.mod h1:IhLeSFGed3mJIAXPH2aiRQB+kqz7oqu8ld2qVbOu7Wk= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/freddierice/go-losetup v0.0.0-20220711213114-2a14873012db h1:StM6A9LvaVrFS2chAGcfRVDoBB6rHYPIGJ3GknpB25c= github.com/freddierice/go-losetup v0.0.0-20220711213114-2a14873012db/go.mod h1:pwuQfHWn6j2Fpl2AWw/bPLlKfojHxIIEa5TeKIgDFW4= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= diff --git a/internal/tools/go.mod b/internal/tools/go.mod index a354b8beb63f8..0062abfb5a49d 100644 --- a/internal/tools/go.mod +++ b/internal/tools/go.mod @@ -187,7 +187,7 @@ require ( github.com/sonatard/noctx v0.0.2 // indirect github.com/sourcegraph/go-diff v0.7.0 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.0 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect diff --git a/internal/tools/go.sum b/internal/tools/go.sum index 155f08d00dd6a..a47b8b5e8a6af 100644 --- a/internal/tools/go.sum +++ b/internal/tools/go.sum @@ -627,8 +627,8 @@ github.com/sourcegraph/go-diff v0.7.0 h1:9uLlrd5T46OXs5qpp8L/MTltk0zikUGi0sNNyCp github.com/sourcegraph/go-diff v0.7.0/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs= github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= -github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= -github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= diff --git a/pkg/api/go.mod b/pkg/api/go.mod index 0b901a2db57b9..a0cc8796129ea 100644 --- a/pkg/api/go.mod +++ b/pkg/api/go.mod @@ -88,7 +88,7 @@ require ( github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect diff --git a/pkg/api/go.sum b/pkg/api/go.sum index 4d03242cbc0f8..bbea552f0eb1a 100644 --- a/pkg/api/go.sum +++ b/pkg/api/go.sum @@ -41,8 +41,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -186,8 +186,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/pkg/config/env/go.mod b/pkg/config/env/go.mod index 4bf181f989452..28028eb906718 100644 --- a/pkg/config/env/go.mod +++ b/pkg/config/env/go.mod @@ -36,7 +36,7 @@ require ( github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil/v3 v3.23.9 // indirect github.com/spf13/afero v1.1.2 // indirect - github.com/spf13/cast v1.3.0 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.3 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect diff --git a/pkg/config/env/go.sum b/pkg/config/env/go.sum index bd07c09e8ff45..1a87a4e1f8386 100644 --- a/pkg/config/env/go.sum +++ b/pkg/config/env/go.sum @@ -36,6 +36,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -63,6 +65,8 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= @@ -86,11 +90,13 @@ github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQL github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= @@ -134,6 +140,8 @@ github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40T github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/shirou/gopsutil/v3 v3.23.9 h1:ZI5bWVeu2ep4/DIxB4U9okeYJ7zp/QLTO4auRb/ty/E= github.com/shirou/gopsutil/v3 v3.23.9/go.mod h1:x/NWSb71eMcjFIO0vhyGW5nZ7oSIgVjrCnADckb85GA= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= @@ -146,8 +154,9 @@ github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4k github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= diff --git a/pkg/config/mock/go.mod b/pkg/config/mock/go.mod index bb0c1e4ad23ff..3559629c3d248 100644 --- a/pkg/config/mock/go.mod +++ b/pkg/config/mock/go.mod @@ -71,7 +71,7 @@ require ( github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect diff --git a/pkg/config/mock/go.sum b/pkg/config/mock/go.sum index 761fd5f4cf0bc..164d7c1e62c7d 100644 --- a/pkg/config/mock/go.sum +++ b/pkg/config/mock/go.sum @@ -40,8 +40,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -184,8 +184,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/pkg/config/model/go.mod b/pkg/config/model/go.mod index f927a76bf5aef..82e1928f3ba1c 100644 --- a/pkg/config/model/go.mod +++ b/pkg/config/model/go.mod @@ -28,7 +28,7 @@ require ( github.com/pelletier/go-toml v1.2.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/spf13/afero v1.1.2 // indirect - github.com/spf13/cast v1.3.0 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.3 // indirect go.uber.org/atomic v1.11.0 // indirect diff --git a/pkg/config/model/go.sum b/pkg/config/model/go.sum index c34a8b08f0b2a..1abeca65a7f43 100644 --- a/pkg/config/model/go.sum +++ b/pkg/config/model/go.sum @@ -34,6 +34,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -57,6 +59,8 @@ github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= @@ -78,11 +82,13 @@ github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQL github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= @@ -123,6 +129,8 @@ github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40T github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -131,8 +139,9 @@ github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4k github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= diff --git a/pkg/config/nodetreemodel/go.mod b/pkg/config/nodetreemodel/go.mod index fe23a7a07970c..dbf7e7ae941d5 100644 --- a/pkg/config/nodetreemodel/go.mod +++ b/pkg/config/nodetreemodel/go.mod @@ -8,12 +8,15 @@ replace ( github.com/DataDog/datadog-agent/pkg/util/scrubber => ../../../pkg/util/scrubber ) +// Internal deps fix version +replace github.com/spf13/cast => github.com/DataDog/cast v1.8.0 + require ( github.com/DataDog/datadog-agent/pkg/config/model v0.0.0-00010101000000-000000000000 github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 github.com/DataDog/viper v1.13.5 github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 - github.com/spf13/cast v1.3.0 + github.com/spf13/cast v1.7.0 github.com/stretchr/testify v1.9.0 go.uber.org/atomic v1.11.0 golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f diff --git a/pkg/config/nodetreemodel/go.sum b/pkg/config/nodetreemodel/go.sum index 9257d18958284..a8411cb4b4df2 100644 --- a/pkg/config/nodetreemodel/go.sum +++ b/pkg/config/nodetreemodel/go.sum @@ -1,6 +1,8 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/DataDog/cast v1.8.0 h1:uooY8bMzq+cjgiNP1VTquCWve5emgk8fRspZojJwQa8= +github.com/DataDog/cast v1.8.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= @@ -27,6 +29,7 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -34,6 +37,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -57,6 +62,9 @@ github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= @@ -78,11 +86,13 @@ github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQL github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= @@ -99,6 +109,7 @@ github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -123,6 +134,8 @@ github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40T github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -132,8 +145,6 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= -github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= diff --git a/pkg/config/remote/go.mod b/pkg/config/remote/go.mod index 4a0ed02d3a50c..b87c51a79735d 100644 --- a/pkg/config/remote/go.mod +++ b/pkg/config/remote/go.mod @@ -133,7 +133,7 @@ require ( github.com/philhofer/fwd v1.1.2 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/objx v0.5.2 // indirect diff --git a/pkg/config/remote/go.sum b/pkg/config/remote/go.sum index 3b3c650504a5d..417661769c498 100644 --- a/pkg/config/remote/go.sum +++ b/pkg/config/remote/go.sum @@ -79,8 +79,8 @@ github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymF github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -269,8 +269,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/pkg/config/setup/go.mod b/pkg/config/setup/go.mod index 02848ce73647c..ed5d5cfaf6323 100644 --- a/pkg/config/setup/go.mod +++ b/pkg/config/setup/go.mod @@ -29,7 +29,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/util/winutil => ../../util/winutil // Internal deps fix version - github.com/spf13/cast => github.com/DataDog/cast v1.3.1-0.20190301154711-1ee8c8bd14a3 + github.com/spf13/cast => github.com/DataDog/cast v1.8.0 ) require ( @@ -92,7 +92,7 @@ require ( github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect diff --git a/pkg/config/setup/go.sum b/pkg/config/setup/go.sum index 34efcfe434d4c..76459cb929a41 100644 --- a/pkg/config/setup/go.sum +++ b/pkg/config/setup/go.sum @@ -1,8 +1,8 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/cast v1.3.1-0.20190301154711-1ee8c8bd14a3 h1:SobA9WYm4K/MUtWlbKaomWTmnuYp1KhIm8Wlx3vmpsg= -github.com/DataDog/cast v1.3.1-0.20190301154711-1ee8c8bd14a3/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/DataDog/cast v1.8.0 h1:uooY8bMzq+cjgiNP1VTquCWve5emgk8fRspZojJwQa8= +github.com/DataDog/cast v1.8.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -37,6 +37,7 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -44,6 +45,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -137,6 +140,7 @@ github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -171,6 +175,7 @@ github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40T github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= diff --git a/pkg/config/structure/go.mod b/pkg/config/structure/go.mod index c6aacdbdd90da..74021409df252 100644 --- a/pkg/config/structure/go.mod +++ b/pkg/config/structure/go.mod @@ -30,11 +30,14 @@ replace ( github.com/DataDog/datadog-agent/pkg/util/winutil => ../../../pkg/util/winutil ) +// Internal deps fix version +replace github.com/spf13/cast => github.com/DataDog/cast v1.8.0 + require ( github.com/DataDog/datadog-agent/pkg/config/model v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.0.0-00010101000000-000000000000 github.com/DataDog/viper v1.13.5 - github.com/spf13/cast v1.5.1 + github.com/spf13/cast v1.7.0 github.com/stretchr/testify v1.9.0 ) diff --git a/pkg/config/structure/go.sum b/pkg/config/structure/go.sum index 65a1ab1454410..7a923e42a77c2 100644 --- a/pkg/config/structure/go.sum +++ b/pkg/config/structure/go.sum @@ -1,6 +1,8 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/DataDog/cast v1.8.0 h1:uooY8bMzq+cjgiNP1VTquCWve5emgk8fRspZojJwQa8= +github.com/DataDog/cast v1.8.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= @@ -27,6 +29,7 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -34,8 +37,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -60,6 +63,7 @@ github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -106,6 +110,7 @@ github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -141,9 +146,6 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= diff --git a/pkg/config/teeconfig/go.mod b/pkg/config/teeconfig/go.mod index 8bf6d23d3afaf..2e32352de592a 100644 --- a/pkg/config/teeconfig/go.mod +++ b/pkg/config/teeconfig/go.mod @@ -24,7 +24,7 @@ require ( github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect github.com/pelletier/go-toml v1.2.0 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.3.0 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.3 // indirect go.uber.org/atomic v1.11.0 // indirect diff --git a/pkg/config/teeconfig/go.sum b/pkg/config/teeconfig/go.sum index 9257d18958284..4fd9cf82cf2c3 100644 --- a/pkg/config/teeconfig/go.sum +++ b/pkg/config/teeconfig/go.sum @@ -34,6 +34,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -57,6 +59,8 @@ github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= @@ -78,11 +82,13 @@ github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQL github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= @@ -123,6 +129,8 @@ github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40T github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -132,8 +140,9 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= -github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= diff --git a/pkg/config/utils/go.mod b/pkg/config/utils/go.mod index fb3ae2aab408b..c918f10139e5f 100644 --- a/pkg/config/utils/go.mod +++ b/pkg/config/utils/go.mod @@ -77,7 +77,7 @@ require ( github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect diff --git a/pkg/config/utils/go.sum b/pkg/config/utils/go.sum index 761fd5f4cf0bc..164d7c1e62c7d 100644 --- a/pkg/config/utils/go.sum +++ b/pkg/config/utils/go.sum @@ -40,8 +40,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -184,8 +184,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/pkg/logs/auditor/go.mod b/pkg/logs/auditor/go.mod index 97112b7a6f7b0..6d6750edab39c 100644 --- a/pkg/logs/auditor/go.mod +++ b/pkg/logs/auditor/go.mod @@ -91,7 +91,7 @@ require ( github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect diff --git a/pkg/logs/auditor/go.sum b/pkg/logs/auditor/go.sum index 761fd5f4cf0bc..164d7c1e62c7d 100644 --- a/pkg/logs/auditor/go.sum +++ b/pkg/logs/auditor/go.sum @@ -40,8 +40,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -184,8 +184,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/pkg/logs/client/go.mod b/pkg/logs/client/go.mod index f5cb07a952639..248888b50ddfe 100644 --- a/pkg/logs/client/go.mod +++ b/pkg/logs/client/go.mod @@ -120,7 +120,7 @@ require ( github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect diff --git a/pkg/logs/client/go.sum b/pkg/logs/client/go.sum index 6cb8d88e6102b..b0bb34141f5f1 100644 --- a/pkg/logs/client/go.sum +++ b/pkg/logs/client/go.sum @@ -42,8 +42,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -190,8 +190,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/pkg/logs/diagnostic/go.mod b/pkg/logs/diagnostic/go.mod index 871e750da65e8..f3dba3dfded9e 100644 --- a/pkg/logs/diagnostic/go.mod +++ b/pkg/logs/diagnostic/go.mod @@ -96,7 +96,7 @@ require ( github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect diff --git a/pkg/logs/diagnostic/go.sum b/pkg/logs/diagnostic/go.sum index 4d03242cbc0f8..bbea552f0eb1a 100644 --- a/pkg/logs/diagnostic/go.sum +++ b/pkg/logs/diagnostic/go.sum @@ -41,8 +41,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -186,8 +186,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/pkg/logs/message/go.mod b/pkg/logs/message/go.mod index 59c223b723d2e..edd47485ff8b4 100644 --- a/pkg/logs/message/go.mod +++ b/pkg/logs/message/go.mod @@ -87,7 +87,7 @@ require ( github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect diff --git a/pkg/logs/message/go.sum b/pkg/logs/message/go.sum index 761fd5f4cf0bc..164d7c1e62c7d 100644 --- a/pkg/logs/message/go.sum +++ b/pkg/logs/message/go.sum @@ -40,8 +40,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -184,8 +184,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/pkg/logs/pipeline/go.mod b/pkg/logs/pipeline/go.mod index 9c57c8e1ced62..256b00b4cc489 100644 --- a/pkg/logs/pipeline/go.mod +++ b/pkg/logs/pipeline/go.mod @@ -140,7 +140,7 @@ require ( github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect diff --git a/pkg/logs/pipeline/go.sum b/pkg/logs/pipeline/go.sum index d07642f0e0193..3bc6eb3412ee8 100644 --- a/pkg/logs/pipeline/go.sum +++ b/pkg/logs/pipeline/go.sum @@ -46,8 +46,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -201,8 +201,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/pkg/logs/processor/go.mod b/pkg/logs/processor/go.mod index 0730014d056f8..97ccb212e5894 100644 --- a/pkg/logs/processor/go.mod +++ b/pkg/logs/processor/go.mod @@ -119,7 +119,7 @@ require ( github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect diff --git a/pkg/logs/processor/go.sum b/pkg/logs/processor/go.sum index 5d5e80fea9961..6d53c6bedf790 100644 --- a/pkg/logs/processor/go.sum +++ b/pkg/logs/processor/go.sum @@ -46,8 +46,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -197,8 +197,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/pkg/logs/sds/go.mod b/pkg/logs/sds/go.mod index b1d5763384e06..43da29661237f 100644 --- a/pkg/logs/sds/go.mod +++ b/pkg/logs/sds/go.mod @@ -113,7 +113,7 @@ require ( github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect diff --git a/pkg/logs/sds/go.sum b/pkg/logs/sds/go.sum index c07957e89b9c9..d8485f7587c11 100644 --- a/pkg/logs/sds/go.sum +++ b/pkg/logs/sds/go.sum @@ -42,8 +42,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -190,8 +190,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/pkg/logs/sender/go.mod b/pkg/logs/sender/go.mod index 7be87afc0198e..f26fcc4e5ef98 100644 --- a/pkg/logs/sender/go.mod +++ b/pkg/logs/sender/go.mod @@ -120,7 +120,7 @@ require ( github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect diff --git a/pkg/logs/sender/go.sum b/pkg/logs/sender/go.sum index 6cb8d88e6102b..b0bb34141f5f1 100644 --- a/pkg/logs/sender/go.sum +++ b/pkg/logs/sender/go.sum @@ -42,8 +42,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -190,8 +190,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/pkg/logs/sources/go.mod b/pkg/logs/sources/go.mod index 05a3f9c7c3223..48700f9bea973 100644 --- a/pkg/logs/sources/go.mod +++ b/pkg/logs/sources/go.mod @@ -85,7 +85,7 @@ require ( github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect diff --git a/pkg/logs/sources/go.sum b/pkg/logs/sources/go.sum index 761fd5f4cf0bc..164d7c1e62c7d 100644 --- a/pkg/logs/sources/go.sum +++ b/pkg/logs/sources/go.sum @@ -40,8 +40,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -184,8 +184,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/pkg/logs/util/testutils/go.mod b/pkg/logs/util/testutils/go.mod index c42841ad97fe4..6e67194cbb5b8 100644 --- a/pkg/logs/util/testutils/go.mod +++ b/pkg/logs/util/testutils/go.mod @@ -84,7 +84,7 @@ require ( github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect diff --git a/pkg/logs/util/testutils/go.sum b/pkg/logs/util/testutils/go.sum index 761fd5f4cf0bc..164d7c1e62c7d 100644 --- a/pkg/logs/util/testutils/go.sum +++ b/pkg/logs/util/testutils/go.sum @@ -40,8 +40,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -184,8 +184,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/pkg/metrics/go.mod b/pkg/metrics/go.mod index b7b1322eaba6e..2dd14396a7fef 100644 --- a/pkg/metrics/go.mod +++ b/pkg/metrics/go.mod @@ -104,7 +104,7 @@ require ( github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect diff --git a/pkg/metrics/go.sum b/pkg/metrics/go.sum index 49dd7e0348b6b..e95081bd9b2e1 100644 --- a/pkg/metrics/go.sum +++ b/pkg/metrics/go.sum @@ -48,8 +48,8 @@ github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkp github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -198,8 +198,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/pkg/proto/go.mod b/pkg/proto/go.mod index 626b11ed7aef4..2d92d4dfb9a31 100644 --- a/pkg/proto/go.mod +++ b/pkg/proto/go.mod @@ -20,6 +20,7 @@ require ( require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/google/go-cmp v0.6.0 // indirect + github.com/kr/pretty v0.3.1 // indirect github.com/philhofer/fwd v1.1.2 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/vmihailenco/tagparser v0.1.1 // indirect diff --git a/pkg/proto/go.sum b/pkg/proto/go.sum index a27bdf5e8a73d..094c1167e0ff4 100644 --- a/pkg/proto/go.sum +++ b/pkg/proto/go.sum @@ -5,6 +5,7 @@ github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kd github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -32,17 +33,22 @@ github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/philhofer/fwd v1.1.2 h1:bnDivRJ1EWPjUIRXV5KfORO897HTbpFAQddBdE8t7Gw= github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2tUTP0= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= diff --git a/pkg/remoteconfig/state/go.mod b/pkg/remoteconfig/state/go.mod index 51c8f0b14d62d..e78e465ed195b 100644 --- a/pkg/remoteconfig/state/go.mod +++ b/pkg/remoteconfig/state/go.mod @@ -11,6 +11,7 @@ require ( require ( github.com/davecgh/go-spew v1.1.1 // indirect + github.com/kr/pretty v0.3.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect golang.org/x/crypto v0.29.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/remoteconfig/state/go.sum b/pkg/remoteconfig/state/go.sum index f09ac17f7f0fb..6f9c918b2893e 100644 --- a/pkg/remoteconfig/state/go.sum +++ b/pkg/remoteconfig/state/go.sum @@ -1,17 +1,21 @@ github.com/DataDog/go-tuf v1.1.0-0.5.2 h1:4CagiIekonLSfL8GMHRHcHudo1fQnxELS9g4tiAupQ4= github.com/DataDog/go-tuf v1.1.0-0.5.2/go.mod h1:zBcq6f654iVqmkk8n2Cx81E1JnNTMOAx1UEO/wZR+P0= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/secure-systems-lab/go-securesystemslib v0.7.0 h1:OwvJ5jQf9LnIAS83waAjPbcMsODrTQUpJ02eNLUoxBg= github.com/secure-systems-lab/go-securesystemslib v0.7.0/go.mod h1:/2gYnlnHVQ6xeGtfIqFy7Do03K4cdCY0A/GlJLDKLHI= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= diff --git a/pkg/serializer/go.mod b/pkg/serializer/go.mod index 1ddabf44a07a1..15122b4a65601 100644 --- a/pkg/serializer/go.mod +++ b/pkg/serializer/go.mod @@ -163,7 +163,7 @@ require ( github.com/shirou/gopsutil/v3 v3.24.4 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.6.0 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect diff --git a/pkg/serializer/go.sum b/pkg/serializer/go.sum index d06dad683c7d3..f9739a4e3944c 100644 --- a/pkg/serializer/go.sum +++ b/pkg/serializer/go.sum @@ -239,8 +239,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= -github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= diff --git a/pkg/util/flavor/go.mod b/pkg/util/flavor/go.mod index 2221b2deab817..bf7c8684b66fd 100644 --- a/pkg/util/flavor/go.mod +++ b/pkg/util/flavor/go.mod @@ -72,7 +72,7 @@ require ( github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect diff --git a/pkg/util/flavor/go.sum b/pkg/util/flavor/go.sum index 761fd5f4cf0bc..164d7c1e62c7d 100644 --- a/pkg/util/flavor/go.sum +++ b/pkg/util/flavor/go.sum @@ -40,8 +40,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -184,8 +184,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/pkg/util/grpc/go.mod b/pkg/util/grpc/go.mod index d4f475022ff4c..7155ae759c0ea 100644 --- a/pkg/util/grpc/go.mod +++ b/pkg/util/grpc/go.mod @@ -86,7 +86,7 @@ require ( github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/tinylib/msgp v1.1.8 // indirect diff --git a/pkg/util/grpc/go.sum b/pkg/util/grpc/go.sum index fffa1da07fc6a..782b8e78f8e1f 100644 --- a/pkg/util/grpc/go.sum +++ b/pkg/util/grpc/go.sum @@ -50,8 +50,8 @@ github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymF github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -201,8 +201,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/pkg/util/http/go.mod b/pkg/util/http/go.mod index 352a94a69657b..603de761bfc27 100644 --- a/pkg/util/http/go.mod +++ b/pkg/util/http/go.mod @@ -74,7 +74,7 @@ require ( github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect diff --git a/pkg/util/http/go.sum b/pkg/util/http/go.sum index e221e5b9da82e..7905bae85c49e 100644 --- a/pkg/util/http/go.sum +++ b/pkg/util/http/go.sum @@ -40,8 +40,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -184,8 +184,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/pkg/util/log/setup/go.mod b/pkg/util/log/setup/go.mod index 7f864c1c0945e..12e16b9767145 100644 --- a/pkg/util/log/setup/go.mod +++ b/pkg/util/log/setup/go.mod @@ -73,7 +73,7 @@ require ( github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect diff --git a/pkg/util/log/setup/go.sum b/pkg/util/log/setup/go.sum index 761fd5f4cf0bc..164d7c1e62c7d 100644 --- a/pkg/util/log/setup/go.sum +++ b/pkg/util/log/setup/go.sum @@ -40,8 +40,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -184,8 +184,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= diff --git a/test/new-e2e/go.mod b/test/new-e2e/go.mod index 313297bdfd377..4c388ea79fb24 100644 --- a/test/new-e2e/go.mod +++ b/test/new-e2e/go.mod @@ -238,7 +238,7 @@ require ( github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/skeema/knownhosts v1.2.2 // indirect - github.com/spf13/cast v1.6.0 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/objx v0.5.2 // indirect diff --git a/test/new-e2e/go.sum b/test/new-e2e/go.sum index 2ff9abf58accd..fcf50dc3486ce 100644 --- a/test/new-e2e/go.sum +++ b/test/new-e2e/go.sum @@ -465,8 +465,8 @@ github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/skeema/knownhosts v1.2.2 h1:Iug2P4fLmDw9f41PB6thxUkNUkJzB5i+1/exaj40L3A= github.com/skeema/knownhosts v1.2.2/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= -github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= -github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= diff --git a/test/otel/go.mod b/test/otel/go.mod index cdace6a7f240a..f0866eb2c74b2 100644 --- a/test/otel/go.mod +++ b/test/otel/go.mod @@ -247,7 +247,7 @@ require ( github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.6.0 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect diff --git a/test/otel/go.sum b/test/otel/go.sum index 9c3558135ab44..5f4a1d4e8b03b 100644 --- a/test/otel/go.sum +++ b/test/otel/go.sum @@ -317,8 +317,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= -github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= From d70e22e5ea27f3f980a52bb5115a4880a5767eff Mon Sep 17 00:00:00 2001 From: Yoann Ghigoff Date: Tue, 26 Nov 2024 17:55:57 +0100 Subject: [PATCH 059/439] [SBOM] Re-use `ErrorCallback` WalkOption in post-analysis steps (#31476) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index bc90a63e19e12..e58ca2a03171c 100644 --- a/go.mod +++ b/go.mod @@ -1062,7 +1062,7 @@ replace github.com/vishvananda/netlink => github.com/DataDog/netlink v1.0.1-0.20 // Pull in replacements needed by upstream Trivy replace ( // Maps to Trivy fork https://github.com/DataDog/trivy/commits/use-fs-main-dd/ - github.com/aquasecurity/trivy => github.com/DataDog/trivy v0.0.0-20240925151901-6736b8661190 + github.com/aquasecurity/trivy => github.com/DataDog/trivy v0.0.0-20241126101205-8517f9b946f4 github.com/saracen/walker => github.com/DataDog/walker v0.0.0-20230418153152-7f29bb2dc950 // testcontainers-go has a bug with versions v0.25.0 and v0.26.0 // ref: https://github.com/testcontainers/testcontainers-go/issues/1782 diff --git a/go.sum b/go.sum index 39fec081d7e09..c7e1e4bd5af60 100644 --- a/go.sum +++ b/go.sum @@ -174,8 +174,8 @@ github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 h1:/Dp1WBvekdus github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0/go.mod h1:asNuwNy1O2HbadkcZVuqmFGonfEzXS/SBvOo8V1MJvQ= github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I= github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= -github.com/DataDog/trivy v0.0.0-20240925151901-6736b8661190 h1:JDfYwI7ELSnWDgn0hj7afbByrLbFtztkvgQf69H+fv4= -github.com/DataDog/trivy v0.0.0-20240925151901-6736b8661190/go.mod h1:hLiUAm3v175M5jWbq34TdGmX6mvHIJY7FMuZ3wBugtw= +github.com/DataDog/trivy v0.0.0-20241126101205-8517f9b946f4 h1:UVL5oU/8o0JhEv8Js6qxJgiqeV+PzPw/aldojyexS/U= +github.com/DataDog/trivy v0.0.0-20241126101205-8517f9b946f4/go.mod h1:hLiUAm3v175M5jWbq34TdGmX6mvHIJY7FMuZ3wBugtw= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/DataDog/walker v0.0.0-20230418153152-7f29bb2dc950 h1:2imDajw3V85w1iqHsuXN+hUBZQVF+r9eME8tsPq/HpA= From 9c69211bcd7810a8ab44ef8a37d8ada84e730d46 Mon Sep 17 00:00:00 2001 From: Baptiste Foy Date: Tue, 26 Nov 2024 17:56:17 +0100 Subject: [PATCH 060/439] test(installer): Add E2E test for proxy setup (#31425) --- .../tests/installer/host/fixtures/squid.conf | 10 +++++ test/new-e2e/tests/installer/host/host.go | 42 ++++++++++++++++++- .../installer/unix/upgrade_scenario_test.go | 31 ++++++++++++++ 3 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 test/new-e2e/tests/installer/host/fixtures/squid.conf diff --git a/test/new-e2e/tests/installer/host/fixtures/squid.conf b/test/new-e2e/tests/installer/host/fixtures/squid.conf new file mode 100644 index 0000000000000..8f0fa6bc78f39 --- /dev/null +++ b/test/new-e2e/tests/installer/host/fixtures/squid.conf @@ -0,0 +1,10 @@ +# Squid Configuration for Unrestricted Access + +# Define the HTTP port Squid will listen on +http_port 3128 + +# Allow all incoming connections +acl all src all + +# Allow all access +http_access allow all diff --git a/test/new-e2e/tests/installer/host/host.go b/test/new-e2e/tests/installer/host/host.go index be225c5b7a063..369c50f0bf5db 100644 --- a/test/new-e2e/tests/installer/host/host.go +++ b/test/new-e2e/tests/installer/host/host.go @@ -79,13 +79,14 @@ func (h *Host) setSystemdVersion() { // InstallDocker installs Docker on the host if it is not already installed. func (h *Host) InstallDocker() { + defer func() { h.remote.MustExecute("sudo systemctl start docker") }() if _, err := h.remote.Execute("command -v docker"); err == nil { return } switch h.os.Flavor { case e2eos.AmazonLinux: - h.remote.MustExecute(`sudo sh -c "yum -y install docker && systemctl start docker"`) + h.remote.MustExecute(`sudo sh -c "yum -y install docker"`) default: h.remote.MustExecute("curl -fsSL https://get.docker.com | sudo sh") } @@ -434,6 +435,45 @@ func (h *Host) SetUmask(mask string) (oldmask string) { return oldmask } +// SetupProxy sets up a Squid Proxy with Docker & adds iptables/nftables rules to redirect block all traffic +// except for the proxy +func (h *Host) SetupProxy() { + // Install Docker & the Squid Proxy + h.InstallDocker() + h.remote.MustExecute("sudo docker run -d --name squid-proxy -v /opt/fixtures/squid.conf:/etc/squid/squid.conf -p 3128:3128 public.ecr.aws/ubuntu/squid:4.10-20.04_beta") + + squidIP := strings.TrimSpace(h.remote.MustExecute("sudo docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' squid-proxy")) + + // Block all traffic except for the proxy + // Allow squid proxy + h.remote.MustExecute(fmt.Sprintf("sudo iptables -A OUTPUT -d 0.0.0.0/0 -p tcp -s \"%s\" --dport 80 -j ACCEPT", squidIP)) + h.remote.MustExecute(fmt.Sprintf("sudo iptables -A OUTPUT -d 0.0.0.0/0 -p tcp -s \"%s\" --dport 443 -j ACCEPT", squidIP)) + // Block all traffic + h.remote.MustExecute("sudo iptables -A OUTPUT -p tcp --dport 80 -j REJECT") + h.remote.MustExecute("sudo iptables -A OUTPUT -p tcp --dport 443 -j REJECT") + + // Check proxy works + _, err := h.remote.Execute("curl https://google.com") + require.Error(h.t, err) +} + +// RemoveProxy removes the Squid Proxy & iptables/nftables rules +func (h *Host) RemoveProxy() { + squidIP := strings.TrimSpace(h.remote.MustExecute("sudo docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' squid-proxy")) + + // Remove traffic block + // Remove squid proxy rules + h.remote.MustExecute(fmt.Sprintf("sudo iptables -D OUTPUT -p tcp -s \"%s\" --dport 80 -j ACCEPT", squidIP)) + h.remote.MustExecute(fmt.Sprintf("sudo iptables -D OUTPUT -p tcp -s \"%s\" --dport 443 -j ACCEPT", squidIP)) + // Remove block rules + h.remote.MustExecute("sudo iptables -D OUTPUT -p tcp --dport 80 -j REJECT") + h.remote.MustExecute("sudo iptables -D OUTPUT -p tcp --dport 443 -j REJECT") + + // Check proxy removed + _, err := h.remote.Execute("curl https://google.com") + require.NoError(h.t, err) +} + // LoadState is the load state of a systemd unit. type LoadState string diff --git a/test/new-e2e/tests/installer/unix/upgrade_scenario_test.go b/test/new-e2e/tests/installer/unix/upgrade_scenario_test.go index 35e7892d0ce43..537dc408201e2 100644 --- a/test/new-e2e/tests/installer/unix/upgrade_scenario_test.go +++ b/test/new-e2e/tests/installer/unix/upgrade_scenario_test.go @@ -600,6 +600,37 @@ func (s *upgradeScenarioSuite) TestUpgradeConfigFailure() { s.mustStopExperiment(datadogAgent) } +func (s *upgradeScenarioSuite) TestUpgradeWithProxy() { + if s.Env().RemoteHost.OSFlavor == e2eos.Fedora || s.Env().RemoteHost.OSFlavor == e2eos.RedHat { + s.T().Skip("Fedora & RedHat can't start the Squid proxy") + } + + s.RunInstallScript("DD_REMOTE_UPDATES=true") // No proxy during install, to avoid setting up the APT proxy + defer s.Purge() + s.host.AssertPackageInstalledByInstaller("datadog-agent") + + // Set proxy config + s.Env().RemoteHost.MustExecute(`printf "proxy:\n http: http://localhost:3128\n https: http://localhost:3128" | sudo tee -a /etc/datadog-agent/datadog.yaml`) + defer func() { + s.Env().RemoteHost.MustExecute(`sudo sed -i '/proxy:/,/https:/d' /etc/datadog-agent/datadog.yaml`) + }() + s.Env().RemoteHost.MustExecute(`sudo systemctl restart datadog-agent.service datadog-installer.service`) + + // Set catalog + s.host.WaitForUnitActive( + "datadog-agent.service", + "datadog-installer.service", + ) + s.host.WaitForFileExists(true, "/opt/datadog-packages/run/installer.sock") + s.setCatalog(testCatalog) + + // Set host proxy setup + defer s.host.RemoveProxy() + s.host.SetupProxy() + + s.executeAgentGoldenPath() +} + func (s *upgradeScenarioSuite) startExperiment(pkg packageName, version string) (string, error) { s.host.WaitForFileExists(true, "/opt/datadog-packages/run/installer.sock") cmd := fmt.Sprintf("sudo datadog-installer daemon start-experiment %s %s > /tmp/start_experiment.log 2>&1", pkg, version) From 6faf2e310881d7bce37b02e78e41db57a2c82bdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillermo=20Juli=C3=A1n?= Date: Tue, 26 Nov 2024 17:57:55 +0100 Subject: [PATCH 061/439] Revert usm: Refactor GoTLS monitor with new uprobe attacher (#29309) (#31469) --- pkg/network/usm/ebpf_gotls.go | 383 +++++++++++++++++++++----- pkg/network/usm/ebpf_gotls_helpers.go | 144 +--------- 2 files changed, 322 insertions(+), 205 deletions(-) diff --git a/pkg/network/usm/ebpf_gotls.go b/pkg/network/usm/ebpf_gotls.go index ecbfd5ff68d77..5fcbec13f047e 100644 --- a/pkg/network/usm/ebpf_gotls.go +++ b/pkg/network/usm/ebpf_gotls.go @@ -11,22 +11,34 @@ import ( "errors" "fmt" "io" + "os" + "path/filepath" + "regexp" + "strconv" + "sync" "time" + "unsafe" + "github.com/cihub/seelog" "github.com/cilium/ebpf" + "golang.org/x/sys/unix" manager "github.com/DataDog/ebpf-manager" - "github.com/DataDog/datadog-agent/pkg/ebpf/uprobes" + ddebpf "github.com/DataDog/datadog-agent/pkg/ebpf" "github.com/DataDog/datadog-agent/pkg/network/config" "github.com/DataDog/datadog-agent/pkg/network/go/bininspect" "github.com/DataDog/datadog-agent/pkg/network/protocols" + "github.com/DataDog/datadog-agent/pkg/network/protocols/http/gotls" + "github.com/DataDog/datadog-agent/pkg/network/protocols/http/gotls/lookup" libtelemetry "github.com/DataDog/datadog-agent/pkg/network/protocols/telemetry" "github.com/DataDog/datadog-agent/pkg/network/usm/buildmode" usmconfig "github.com/DataDog/datadog-agent/pkg/network/usm/config" "github.com/DataDog/datadog-agent/pkg/network/usm/consts" "github.com/DataDog/datadog-agent/pkg/network/usm/utils" "github.com/DataDog/datadog-agent/pkg/process/monitor" + "github.com/DataDog/datadog-agent/pkg/util/log" + "github.com/DataDog/datadog-agent/pkg/util/safeelf" ) const ( @@ -49,16 +61,77 @@ const ( GoTLSAttacherName = "go-tls" ) +type uprobesInfo struct { + functionInfo string + returnInfo string +} + +var functionToProbes = map[string]uprobesInfo{ + bininspect.ReadGoTLSFunc: { + functionInfo: connReadProbe, + returnInfo: connReadRetProbe, + }, + bininspect.WriteGoTLSFunc: { + functionInfo: connWriteProbe, + returnInfo: connWriteRetProbe, + }, + bininspect.CloseGoTLSFunc: { + functionInfo: connCloseProbe, + }, +} + +var functionsConfig = map[string]bininspect.FunctionConfiguration{ + bininspect.WriteGoTLSFunc: { + IncludeReturnLocations: true, + ParamLookupFunction: lookup.GetWriteParams, + }, + bininspect.ReadGoTLSFunc: { + IncludeReturnLocations: true, + ParamLookupFunction: lookup.GetReadParams, + }, + bininspect.CloseGoTLSFunc: { + IncludeReturnLocations: false, + ParamLookupFunction: lookup.GetCloseParams, + }, +} + +var structFieldsLookupFunctions = map[bininspect.FieldIdentifier]bininspect.StructLookupFunction{ + bininspect.StructOffsetTLSConn: lookup.GetTLSConnInnerConnOffset, + bininspect.StructOffsetTCPConn: lookup.GetTCPConnInnerConnOffset, + bininspect.StructOffsetNetConnFd: lookup.GetConnFDOffset, + bininspect.StructOffsetNetFdPfd: lookup.GetNetFD_PFDOffset, + bininspect.StructOffsetPollFdSysfd: lookup.GetFD_SysfdOffset, +} + type pid = uint32 // goTLSProgram contains implementation for go-TLS. type goTLSProgram struct { - attacher *uprobes.UprobeAttacher - inspector *goTLSBinaryInspector - cfg *config.Config - procMon *monitor.ProcessMonitor + wg sync.WaitGroup + done chan struct{} + cfg *config.Config + manager *manager.Manager + + // Path to the process/container's procfs + procRoot string + + // eBPF map holding the result of binary analysis, indexed by binaries' + // inodes. + offsetsDataMap *ebpf.Map + + // binAnalysisMetric handles telemetry on the time spent doing binary + // analysis + binAnalysisMetric *libtelemetry.Counter + + // binNoSymbolsMetric counts Golang binaries without symbols. + binNoSymbolsMetric *libtelemetry.Counter + + registry *utils.FileRegistry } +// Validate that goTLSProgram implements the Attacher interface. +var _ utils.Attacher = &goTLSProgram{} + var goTLSSpec = &protocols.ProtocolSpec{ Maps: []*manager.Map{ {Name: offsetsDataMap}, @@ -109,56 +182,14 @@ func newGoTLSProgramProtocolFactory(m *manager.Manager) protocols.ProtocolFactor return nil, errors.New("goTLS support requires runtime-compilation or CO-RE to be enabled") } - attacherCfg := uprobes.AttacherConfig{ - EbpfConfig: &c.Config, - Rules: []*uprobes.AttachRule{{ - Targets: uprobes.AttachToExecutable, - ProbesSelector: []manager.ProbesSelector{ - &manager.AllOf{ - Selectors: []manager.ProbesSelector{ - &manager.ProbeSelector{ProbeIdentificationPair: manager.ProbeIdentificationPair{EBPFFuncName: connReadProbe}}, - &manager.ProbeSelector{ProbeIdentificationPair: manager.ProbeIdentificationPair{EBPFFuncName: connReadRetProbe}}, - &manager.ProbeSelector{ProbeIdentificationPair: manager.ProbeIdentificationPair{EBPFFuncName: connWriteProbe}}, - &manager.ProbeSelector{ProbeIdentificationPair: manager.ProbeIdentificationPair{EBPFFuncName: connWriteRetProbe}}, - &manager.ProbeSelector{ProbeIdentificationPair: manager.ProbeIdentificationPair{EBPFFuncName: connCloseProbe}}, - }, - }, - }, - ProbeOptionsOverride: map[string]uprobes.ProbeOptions{ - connReadProbe: {IsManualReturn: false, Symbol: bininspect.ReadGoTLSFunc}, - connReadRetProbe: {IsManualReturn: true, Symbol: bininspect.ReadGoTLSFunc}, - connWriteProbe: {IsManualReturn: false, Symbol: bininspect.WriteGoTLSFunc}, - connWriteRetProbe: {IsManualReturn: true, Symbol: bininspect.WriteGoTLSFunc}, - connCloseProbe: {IsManualReturn: false, Symbol: bininspect.CloseGoTLSFunc}, - }, - }}, - ExcludeTargets: uprobes.ExcludeInternal, - PerformInitialScan: false, - EnablePeriodicScanNewProcesses: false, - } - - if c.GoTLSExcludeSelf { - attacherCfg.ExcludeTargets |= uprobes.ExcludeSelf - } - - inspector := &goTLSBinaryInspector{ - structFieldsLookupFunctions: structFieldsLookupFunctions, - paramLookupFunctions: paramLookupFunctions, - binAnalysisMetric: libtelemetry.NewCounter("usm.go_tls.analysis_time", libtelemetry.OptPrometheus), - binNoSymbolsMetric: libtelemetry.NewCounter("usm.go_tls.missing_symbols", libtelemetry.OptPrometheus), - } - - procMon := monitor.GetProcessMonitor() - attacher, err := uprobes.NewUprobeAttacher(consts.USMModuleName, GoTLSAttacherName, attacherCfg, m, nil, inspector, procMon) - if err != nil { - return nil, fmt.Errorf("cannot create uprobe attacher: %w", err) - } - return &goTLSProgram{ - cfg: c, - inspector: inspector, - attacher: attacher, - procMon: procMon, + done: make(chan struct{}), + cfg: c, + manager: m, + procRoot: c.ProcRoot, + binAnalysisMetric: libtelemetry.NewCounter("usm.go_tls.analysis_time", libtelemetry.OptPrometheus), + binNoSymbolsMetric: libtelemetry.NewCounter("usm.go_tls.missing_symbols", libtelemetry.OptPrometheus), + registry: utils.NewFileRegistry(consts.USMModuleName, "go-tls"), }, nil } } @@ -185,21 +216,48 @@ func (p *goTLSProgram) ConfigureOptions(_ *manager.Manager, options *manager.Opt func (p *goTLSProgram) PreStart(m *manager.Manager) error { var err error - p.inspector.offsetsDataMap, _, err = m.GetMap(offsetsDataMap) + p.offsetsDataMap, _, err = m.GetMap(offsetsDataMap) if err != nil { return fmt.Errorf("could not get offsets_data map: %s", err) } - err = p.attacher.Start() - if err != nil { - return fmt.Errorf("could not start attacher: %w", err) - } + procMonitor := monitor.GetProcessMonitor() + cleanupExec := procMonitor.SubscribeExec(p.handleProcessStart) + cleanupExit := procMonitor.SubscribeExit(p.handleProcessExit) + + p.wg.Add(1) + go func() { + processSync := time.NewTicker(scanTerminatedProcessesInterval) + + defer func() { + processSync.Stop() + cleanupExec() + cleanupExit() + procMonitor.Stop() + p.registry.Clear() + p.wg.Done() + }() + + for { + select { + case <-p.done: + return + case <-processSync.C: + processSet := p.registry.GetRegisteredProcesses() + deletedPids := monitor.FindDeletedProcesses(processSet) + for deletedPid := range deletedPids { + _ = p.registry.Unregister(deletedPid) + } + } + } + }() return nil } -// PostStart is a no-op +// PostStart registers the goTLS program to the attacher list. func (p *goTLSProgram) PostStart(*manager.Manager) error { + utils.AddAttacher(consts.USMModuleName, p.Name(), p) return nil } @@ -211,12 +269,29 @@ func (p *goTLSProgram) GetStats() *protocols.ProtocolStats { return nil } -// Stop terminates the uprobe attacher for GoTLS programs. +// Stop terminates goTLS main goroutine. func (p *goTLSProgram) Stop(*manager.Manager) { - p.procMon.Stop() - p.attacher.Stop() + close(p.done) + // Waiting for the main event loop to finish. + p.wg.Wait() } +var ( + internalProcessRegex = regexp.MustCompile("datadog-agent/.*/((process|security|trace)-agent|system-probe|agent)") +) + +// DetachPID detaches the provided PID from the eBPF program. +func (p *goTLSProgram) DetachPID(pid uint32) error { + return p.registry.Unregister(pid) +} + +var ( + // ErrSelfExcluded is returned when the PID is the same as the agent's PID. + ErrSelfExcluded = errors.New("self-excluded") + // ErrInternalDDogProcessRejected is returned when the PID is an internal datadog process. + ErrInternalDDogProcessRejected = errors.New("internal datadog process rejected") +) + // GoTLSAttachPID attaches Go TLS hooks on the binary of process with // provided PID, if Go TLS is enabled. func GoTLSAttachPID(pid pid) error { @@ -224,7 +299,7 @@ func GoTLSAttachPID(pid pid) error { return errors.New("GoTLS is not enabled") } - err := goTLSSpec.Instance.(*goTLSProgram).attacher.AttachPID(pid) + err := goTLSSpec.Instance.(*goTLSProgram).AttachPID(pid) if errors.Is(err, utils.ErrPathIsAlreadyRegistered) { // The process monitor has attached the process before us. return nil @@ -240,5 +315,183 @@ func GoTLSDetachPID(pid pid) error { return errors.New("GoTLS is not enabled") } - return goTLSSpec.Instance.(*goTLSProgram).attacher.DetachPID(pid) + return goTLSSpec.Instance.(*goTLSProgram).DetachPID(pid) +} + +// AttachPID attaches the provided PID to the eBPF program. +func (p *goTLSProgram) AttachPID(pid uint32) error { + if p.cfg.GoTLSExcludeSelf && pid == uint32(os.Getpid()) { + return ErrSelfExcluded + } + + pidAsStr := strconv.FormatUint(uint64(pid), 10) + exePath := filepath.Join(p.procRoot, pidAsStr, "exe") + + binPath, err := os.Readlink(exePath) + if err != nil { + return err + } + + // Check if the process is datadog's internal process, if so, we don't want to hook the process. + if internalProcessRegex.MatchString(binPath) { + if log.ShouldLog(seelog.DebugLvl) { + log.Debugf("ignoring pid %d, as it is an internal datadog component (%q)", pid, binPath) + } + return ErrInternalDDogProcessRejected + } + + // Check go process + probeList := make([]manager.ProbeIdentificationPair, 0) + return p.registry.Register(binPath, pid, registerCBCreator(p.manager, p.offsetsDataMap, &probeList, p.binAnalysisMetric, p.binNoSymbolsMetric), + unregisterCBCreator(p.manager, &probeList, p.offsetsDataMap), + utils.IgnoreCB) +} + +func registerCBCreator(mgr *manager.Manager, offsetsDataMap *ebpf.Map, probeIDs *[]manager.ProbeIdentificationPair, binAnalysisMetric, binNoSymbolsMetric *libtelemetry.Counter) func(path utils.FilePath) error { + return func(filePath utils.FilePath) error { + start := time.Now() + + f, err := os.Open(filePath.HostPath) + if err != nil { + return fmt.Errorf("could not open file %s, %w", filePath.HostPath, err) + } + defer f.Close() + + elfFile, err := safeelf.NewFile(f) + if err != nil { + return fmt.Errorf("file %s could not be parsed as an ELF file: %w", filePath.HostPath, err) + } + + inspectionResult, err := bininspect.InspectNewProcessBinary(elfFile, functionsConfig, structFieldsLookupFunctions) + if err != nil { + if errors.Is(err, safeelf.ErrNoSymbols) { + binNoSymbolsMetric.Add(1) + } + return fmt.Errorf("error extracting inspectoin data from %s: %w", filePath.HostPath, err) + } + + if err := addInspectionResultToMap(offsetsDataMap, filePath.ID, inspectionResult); err != nil { + return fmt.Errorf("failed adding inspection rules: %w", err) + } + + pIDs, err := attachHooks(mgr, inspectionResult, filePath.HostPath, filePath.ID) + if err != nil { + removeInspectionResultFromMap(offsetsDataMap, filePath.ID) + return fmt.Errorf("error while attaching hooks to %s: %w", filePath.HostPath, err) + } + *probeIDs = pIDs + + elapsed := time.Since(start) + + binAnalysisMetric.Add(elapsed.Milliseconds()) + log.Debugf("attached hooks on %s (%v) in %s", filePath.HostPath, filePath.ID, elapsed) + return nil + } +} + +func (p *goTLSProgram) handleProcessExit(pid pid) { + _ = p.DetachPID(pid) +} + +func (p *goTLSProgram) handleProcessStart(pid pid) { + _ = p.AttachPID(pid) +} + +// addInspectionResultToMap runs a binary inspection and adds the result to the +// map that's being read by the probes, indexed by the binary's inode number `ino`. +func addInspectionResultToMap(offsetsDataMap *ebpf.Map, binID utils.PathIdentifier, result *bininspect.Result) error { + offsetsData, err := inspectionResultToProbeData(result) + if err != nil { + return fmt.Errorf("error while parsing inspection result: %w", err) + } + + key := &gotls.TlsBinaryId{ + Id_major: unix.Major(binID.Dev), + Id_minor: unix.Minor(binID.Dev), + Ino: binID.Inode, + } + if err := offsetsDataMap.Put(unsafe.Pointer(key), unsafe.Pointer(&offsetsData)); err != nil { + return fmt.Errorf("could not write binary inspection result to map for binID %v: %w", binID, err) + } + + return nil +} + +func removeInspectionResultFromMap(offsetsDataMap *ebpf.Map, binID utils.PathIdentifier) { + key := &gotls.TlsBinaryId{ + Id_major: unix.Major(binID.Dev), + Id_minor: unix.Minor(binID.Dev), + Ino: binID.Inode, + } + if err := offsetsDataMap.Delete(unsafe.Pointer(key)); err != nil { + log.Errorf("could not remove inspection result from map for ino %v: %s", binID, err) + } +} + +func attachHooks(mgr *manager.Manager, result *bininspect.Result, binPath string, binID utils.PathIdentifier) ([]manager.ProbeIdentificationPair, error) { + uid := getUID(binID) + probeIDs := make([]manager.ProbeIdentificationPair, 0) + + for function, uprobes := range functionToProbes { + if functionsConfig[function].IncludeReturnLocations { + if uprobes.returnInfo == "" { + return nil, fmt.Errorf("function %q configured to include return locations but no return uprobes found in config", function) + } + for i, offset := range result.Functions[function].ReturnLocations { + returnProbeID := manager.ProbeIdentificationPair{ + EBPFFuncName: uprobes.returnInfo, + UID: makeReturnUID(uid, i), + } + newProbe := &manager.Probe{ + ProbeIdentificationPair: returnProbeID, + BinaryPath: binPath, + // Each return probe needs to have a unique uid value, + // so add the index to the binary UID to make an overall UID. + UprobeOffset: offset, + } + if err := mgr.AddHook("", newProbe); err != nil { + return nil, fmt.Errorf("could not add return hook to function %q in offset %d due to: %w", function, offset, err) + } + probeIDs = append(probeIDs, returnProbeID) + ddebpf.AddProgramNameMapping(newProbe.ID(), newProbe.EBPFFuncName, "usm_gotls") + } + } + + if uprobes.functionInfo != "" { + probeID := manager.ProbeIdentificationPair{ + EBPFFuncName: uprobes.functionInfo, + UID: uid, + } + + newProbe := &manager.Probe{ + BinaryPath: binPath, + UprobeOffset: result.Functions[function].EntryLocation, + ProbeIdentificationPair: probeID, + } + if err := mgr.AddHook("", newProbe); err != nil { + return nil, fmt.Errorf("could not add hook for %q in offset %d due to: %w", uprobes.functionInfo, result.Functions[function].EntryLocation, err) + } + probeIDs = append(probeIDs, probeID) + ddebpf.AddProgramNameMapping(newProbe.ID(), newProbe.EBPFFuncName, "usm_gotls") + } + } + + return probeIDs, nil +} + +func unregisterCBCreator(mgr *manager.Manager, probeIDs *[]manager.ProbeIdentificationPair, offsetsDataMap *ebpf.Map) func(path utils.FilePath) error { + return func(path utils.FilePath) error { + if len(*probeIDs) == 0 { + return nil + } + removeInspectionResultFromMap(offsetsDataMap, path.ID) + for _, probeID := range *probeIDs { + err := mgr.DetachHook(probeID) + if err != nil { + log.Errorf("failed detaching hook %s: %s", probeID.UID, err) + } + } + log.Debugf("detached hooks on ino %v", path.ID) + return nil + } } diff --git a/pkg/network/usm/ebpf_gotls_helpers.go b/pkg/network/usm/ebpf_gotls_helpers.go index 5aa18b83fb2cf..6eb58873fffb2 100644 --- a/pkg/network/usm/ebpf_gotls_helpers.go +++ b/pkg/network/usm/ebpf_gotls_helpers.go @@ -10,153 +10,13 @@ package usm import ( "errors" "fmt" - "os" "reflect" - "time" "unsafe" - "github.com/cilium/ebpf" - "golang.org/x/sys/unix" - - "github.com/DataDog/datadog-agent/pkg/ebpf/uprobes" "github.com/DataDog/datadog-agent/pkg/network/go/bininspect" "github.com/DataDog/datadog-agent/pkg/network/protocols/http/gotls" - "github.com/DataDog/datadog-agent/pkg/network/protocols/http/gotls/lookup" - libtelemetry "github.com/DataDog/datadog-agent/pkg/network/protocols/telemetry" - "github.com/DataDog/datadog-agent/pkg/network/usm/utils" - "github.com/DataDog/datadog-agent/pkg/util/log" - "github.com/DataDog/datadog-agent/pkg/util/safeelf" ) -var paramLookupFunctions = map[string]bininspect.ParameterLookupFunction{ - bininspect.WriteGoTLSFunc: lookup.GetWriteParams, - bininspect.ReadGoTLSFunc: lookup.GetReadParams, - bininspect.CloseGoTLSFunc: lookup.GetCloseParams, -} - -var structFieldsLookupFunctions = map[bininspect.FieldIdentifier]bininspect.StructLookupFunction{ - bininspect.StructOffsetTLSConn: lookup.GetTLSConnInnerConnOffset, - bininspect.StructOffsetTCPConn: lookup.GetTCPConnInnerConnOffset, - bininspect.StructOffsetNetConnFd: lookup.GetConnFDOffset, - bininspect.StructOffsetNetFdPfd: lookup.GetNetFD_PFDOffset, - bininspect.StructOffsetPollFdSysfd: lookup.GetFD_SysfdOffset, -} - -// goTLSBinaryInspector is a BinaryInspector that inspects Go binaries, dealing with the specifics of Go binaries -// such as the argument passing convention and the lack of uprobes -type goTLSBinaryInspector struct { - structFieldsLookupFunctions map[bininspect.FieldIdentifier]bininspect.StructLookupFunction - paramLookupFunctions map[string]bininspect.ParameterLookupFunction - - // eBPF map holding the result of binary analysis, indexed by binaries' - // inodes. - offsetsDataMap *ebpf.Map - - // binAnalysisMetric handles telemetry on the time spent doing binary - // analysis - binAnalysisMetric *libtelemetry.Counter - - // binNoSymbolsMetric counts Golang binaries without symbols. - binNoSymbolsMetric *libtelemetry.Counter -} - -// Ensure goTLSBinaryInspector implements BinaryInspector -var _ uprobes.BinaryInspector = &goTLSBinaryInspector{} - -// Inspect extracts the metadata required to attach to a Go binary from the ELF file at the given path. -func (p *goTLSBinaryInspector) Inspect(fpath utils.FilePath, requests []uprobes.SymbolRequest) (map[string]bininspect.FunctionMetadata, error) { - start := time.Now() - - path := fpath.HostPath - f, err := os.Open(path) - if err != nil { - return nil, fmt.Errorf("could not open file %s, %w", path, err) - } - defer f.Close() - - elfFile, err := safeelf.NewFile(f) - if err != nil { - return nil, fmt.Errorf("file %s could not be parsed as an ELF file: %w", path, err) - } - - functionsConfig := make(map[string]bininspect.FunctionConfiguration, len(requests)) - for _, req := range requests { - lookupFunc, ok := p.paramLookupFunctions[req.Name] - if !ok { - return nil, fmt.Errorf("no parameter lookup function found for function %s", req.Name) - } - - functionsConfig[req.Name] = bininspect.FunctionConfiguration{ - IncludeReturnLocations: req.IncludeReturnLocations, - ParamLookupFunction: lookupFunc, - } - } - - inspectionResult, err := bininspect.InspectNewProcessBinary(elfFile, functionsConfig, p.structFieldsLookupFunctions) - if err != nil { - if errors.Is(err, safeelf.ErrNoSymbols) { - p.binNoSymbolsMetric.Add(1) - } - return nil, fmt.Errorf("error extracting inspection data from %s: %w", path, err) - } - - if err := p.addInspectionResultToMap(fpath.ID, inspectionResult); err != nil { - return nil, fmt.Errorf("failed adding inspection rules: %w", err) - } - - elapsed := time.Since(start) - p.binAnalysisMetric.Add(elapsed.Milliseconds()) - - return inspectionResult.Functions, nil -} - -// Cleanup removes the inspection result for the binary at the given path from the map. -func (p *goTLSBinaryInspector) Cleanup(fpath utils.FilePath) { - if p.offsetsDataMap == nil { - log.Warn("offsetsDataMap is nil, cannot remove inspection result") - return - } - - binID := fpath.ID - key := &gotls.TlsBinaryId{ - Id_major: unix.Major(binID.Dev), - Id_minor: unix.Minor(binID.Dev), - Ino: binID.Inode, - } - if err := p.offsetsDataMap.Delete(unsafe.Pointer(key)); err != nil { - // Ignore errors for non-existing keys: if the inspect process fails, we won't have added the key to the map - // but the deactivation callback (which calls Cleanup and thus this method) will still be called. So it's normal - // to not find the key in the map. We report other errors though. - if !errors.Is(err, unix.ENOENT) { - log.Errorf("could not remove binary inspection result from map for binID %v: %v", binID, err) - } - } -} - -// addInspectionResultToMap runs a binary inspection and adds the result to the -// map that's being read by the probes, indexed by the binary's inode number `ino`. -func (p *goTLSBinaryInspector) addInspectionResultToMap(binID utils.PathIdentifier, result *bininspect.Result) error { - if p.offsetsDataMap == nil { - return errors.New("offsetsDataMap is nil, cannot write inspection result") - } - - offsetsData, err := inspectionResultToProbeData(result) - if err != nil { - return fmt.Errorf("error while parsing inspection result: %w", err) - } - - key := &gotls.TlsBinaryId{ - Id_major: unix.Major(binID.Dev), - Id_minor: unix.Minor(binID.Dev), - Ino: binID.Inode, - } - if err := p.offsetsDataMap.Put(unsafe.Pointer(key), unsafe.Pointer(&offsetsData)); err != nil { - return fmt.Errorf("could not write binary inspection result to map for binID %v: %w", binID, err) - } - - return nil -} - func inspectionResultToProbeData(result *bininspect.Result) (gotls.TlsOffsetsData, error) { closeConnPointer, err := getConnPointer(result, bininspect.CloseGoTLSFunc) if err != nil { @@ -362,6 +222,10 @@ func getReturnError(result *bininspect.Result, funcName string) (gotls.Location, } } +func makeReturnUID(uid string, returnNumber int) string { + return fmt.Sprintf("%s_%x", uid, returnNumber) +} + func boolToBinary(value bool) uint8 { if value { return 1 From f39f3b4bc9a994d1c3567360c83f4b0c24f191c1 Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Tue, 26 Nov 2024 18:07:21 +0100 Subject: [PATCH 062/439] [CWS] add subset required CWS kmt tests (#31488) --- .../kernel_matrix_testing/security_agent.yml | 27 ++++++++++++++++++- .../test-runner/files/cws_req.json | 9 +++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 test/new-e2e/system-probe/test-runner/files/cws_req.json diff --git a/.gitlab/kernel_matrix_testing/security_agent.yml b/.gitlab/kernel_matrix_testing/security_agent.yml index 63c31a640ab36..88a5628b851ee 100644 --- a/.gitlab/kernel_matrix_testing/security_agent.yml +++ b/.gitlab/kernel_matrix_testing/security_agent.yml @@ -101,7 +101,7 @@ upload_secagent_tests_arm64: ARCH: arm64 INSTANCE_TYPE: m6gd.metal -.kmt_run_secagent_tests: +.kmt_run_secagent_tests_base: extends: .kmt_run_tests allow_failure: true stage: kernel_matrix_testing_security_agent @@ -110,6 +110,10 @@ upload_secagent_tests_arm64: variables: TEST_COMPONENT: security-agent +.kmt_run_secagent_tests: + extends: .kmt_run_secagent_tests_base + allow_failure: true + kmt_run_secagent_tests_x64: extends: - .kmt_run_secagent_tests @@ -151,6 +155,26 @@ kmt_run_secagent_tests_x64: - !reference [.collect_outcomes_kmt] - !reference [.upload_junit_kmt] +kmt_run_secagent_tests_x64_required: + extends: + - .kmt_run_secagent_tests_base + image: registry.ddbuild.io/ci/datadog-agent-buildimages/system-probe_x64$DATADOG_AGENT_SYSPROBE_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_SYSPROBE_BUILDIMAGES + tags: ["arch:amd64"] + needs: + - kmt_setup_env_secagent_x64 + - upload_dependencies_secagent_x64 + - upload_secagent_tests_x64 + variables: + ARCH: "x86_64" + parallel: + matrix: + - TAG: + - "ubuntu_24.10" + TEST_SET: [cws_req] + after_script: + - !reference [.collect_outcomes_kmt] + - !reference [.upload_junit_kmt] + kmt_run_secagent_tests_x64_ad: extends: - .kmt_run_secagent_tests @@ -407,6 +431,7 @@ kmt_secagent_cleanup_x64: needs: - kmt_setup_env_secagent_x64 - kmt_run_secagent_tests_x64 + - kmt_run_secagent_tests_x64_required - kmt_run_secagent_tests_x64_ad - kmt_run_secagent_tests_x64_ebpfless - kmt_run_secagent_tests_x64_fentry diff --git a/test/new-e2e/system-probe/test-runner/files/cws_req.json b/test/new-e2e/system-probe/test-runner/files/cws_req.json new file mode 100644 index 0000000000000..4436d9ece915d --- /dev/null +++ b/test/new-e2e/system-probe/test-runner/files/cws_req.json @@ -0,0 +1,9 @@ +{ + "filters": { + "pkg/security": { + "run-only": [ + "TestChmod" + ] + } + } +} From dccac0b0bce2aa41708f4b2ddb7d37f1784df159 Mon Sep 17 00:00:00 2001 From: Vincent Whitchurch Date: Tue, 26 Nov 2024 18:22:18 +0100 Subject: [PATCH 063/439] discovery: Enable if USM is enabled (#31475) --- cmd/system-probe/config/adjust_usm.go | 2 ++ cmd/system-probe/config/config_test.go | 17 +++++++++++++++++ pkg/config/setup/system_probe.go | 2 +- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/cmd/system-probe/config/adjust_usm.go b/cmd/system-probe/config/adjust_usm.go index e71679aa592ec..4241fa6ccbab9 100644 --- a/cmd/system-probe/config/adjust_usm.go +++ b/cmd/system-probe/config/adjust_usm.go @@ -23,6 +23,8 @@ func adjustUSM(cfg model.Config) { applyDefault(cfg, netNS("enable_https_monitoring"), true) applyDefault(cfg, spNS("enable_runtime_compiler"), true) applyDefault(cfg, spNS("enable_kernel_header_download"), true) + + applyDefault(cfg, discoveryNS("enabled"), true) } deprecateBool(cfg, netNS("enable_http_monitoring"), smNS("enable_http_monitoring")) diff --git a/cmd/system-probe/config/config_test.go b/cmd/system-probe/config/config_test.go index 9611f6f9eed87..b4ba8f4ae22f0 100644 --- a/cmd/system-probe/config/config_test.go +++ b/cmd/system-probe/config/config_test.go @@ -95,4 +95,21 @@ func TestEnableDiscovery(t *testing.T) { cfg := mock.NewSystemProbe(t) assert.False(t, cfg.GetBool(discoveryNS("enabled"))) }) + + t.Run("default enabled with USM", func(t *testing.T) { + t.Setenv("DD_SYSTEM_PROBE_SERVICE_MONITORING_ENABLED", "true") + + cfg := mock.NewSystemProbe(t) + Adjust(cfg) + assert.True(t, cfg.GetBool(discoveryNS("enabled"))) + }) + + t.Run("force disabled with USM", func(t *testing.T) { + t.Setenv("DD_SYSTEM_PROBE_SERVICE_MONITORING_ENABLED", "true") + t.Setenv("DD_DISCOVERY_ENABLED", "false") + + cfg := mock.NewSystemProbe(t) + Adjust(cfg) + assert.False(t, cfg.GetBool(discoveryNS("enabled"))) + }) } diff --git a/pkg/config/setup/system_probe.go b/pkg/config/setup/system_probe.go index 6ca49f348e4b4..9cb7580607062 100644 --- a/pkg/config/setup/system_probe.go +++ b/pkg/config/setup/system_probe.go @@ -405,7 +405,7 @@ func InitSystemProbeConfig(cfg pkgconfigmodel.Config) { cfg.BindEnvAndSetDefault(join(ccmNS, "enabled"), false) // Discovery config - cfg.BindEnvAndSetDefault(join(discoveryNS, "enabled"), false) + cfg.BindEnv(join(discoveryNS, "enabled")) cfg.BindEnvAndSetDefault(join(discoveryNS, "cpu_usage_update_delay"), "60s") cfg.BindEnvAndSetDefault(join(discoveryNS, "ignored_command_names"), []string{"chronyd", "cilium-agent", "containerd", "dhclient", "dockerd", "kubelet", "livenessprobe", "local-volume-pr", "sshd", "systemd"}) cfg.BindEnvAndSetDefault(join(discoveryNS, "ignored_services"), []string{"datadog-agent", "trace-agent", "process-agent", "system-probe", "security-agent", "datadog-cluster-agent"}) From bcf963f662c4156358f0c95a85455b534e8c0db3 Mon Sep 17 00:00:00 2001 From: Kevin Fairise <132568982+KevinFairise2@users.noreply.github.com> Date: Tue, 26 Nov 2024 19:34:58 +0100 Subject: [PATCH 064/439] Bump memory limit for UT and build as well (#31489) --- .gitlab/package_build/windows.yml | 2 +- .gitlab/source_test/windows.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab/package_build/windows.yml b/.gitlab/package_build/windows.yml index f1e8c2a47f34a..82b691cdc6792 100644 --- a/.gitlab/package_build/windows.yml +++ b/.gitlab/package_build/windows.yml @@ -10,7 +10,7 @@ - mkdir omnibus\pkg - > docker run --rm - -m 8192M + -m 24576M -v "$(Get-Location):c:\mnt" -e CI_JOB_ID=${CI_JOB_ID} -e CI_PIPELINE_ID=${CI_PIPELINE_ID} diff --git a/.gitlab/source_test/windows.yml b/.gitlab/source_test/windows.yml index 5e5c573054e66..db57842d68538 100644 --- a/.gitlab/source_test/windows.yml +++ b/.gitlab/source_test/windows.yml @@ -16,7 +16,7 @@ - If ($FAST_TESTS -eq "true") { $FAST_TESTS_FLAG="--only-impacted-packages" } - > docker run --rm - -m 16384M + -m 24576M --storage-opt "size=50GB" -v "$(Get-Location):c:\mnt" -e DD_ENV=prod From c45797dc794766d4bbddf89181cc6cd3322e751d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillermo=20Juli=C3=A1n?= Date: Tue, 26 Nov 2024 19:53:22 +0100 Subject: [PATCH 065/439] [EBPF] attacher: Fix cleanup of uprobes (#31419) --- pkg/ebpf/uprobes/attacher.go | 27 ++++++++++++++------------- pkg/ebpf/uprobes/attacher_test.go | 20 +++++++++++++++++++- 2 files changed, 33 insertions(+), 14 deletions(-) diff --git a/pkg/ebpf/uprobes/attacher.go b/pkg/ebpf/uprobes/attacher.go index 46d80b2b3842d..903b69b59f620 100644 --- a/pkg/ebpf/uprobes/attacher.go +++ b/pkg/ebpf/uprobes/attacher.go @@ -328,9 +328,9 @@ type UprobeAttacher struct { // inspector is used extract the metadata from the binaries inspector BinaryInspector - // pathToAttachedProbes maps a filesystem path to the probes attached to it. + // fileIDToAttachedProbes maps a filesystem path to the probes attached to it. // Used to detach them once the path is no longer used. - pathToAttachedProbes map[string][]manager.ProbeIdentificationPair + fileIDToAttachedProbes map[utils.PathIdentifier][]manager.ProbeIdentificationPair // onAttachCallback is a callback that is called whenever a probe is attached onAttachCallback AttachCallback @@ -371,15 +371,15 @@ func NewUprobeAttacher(moduleName, name string, config AttacherConfig, mgr Probe } ua := &UprobeAttacher{ - name: name, - config: config, - fileRegistry: utils.NewFileRegistry(moduleName, name), - manager: mgr, - onAttachCallback: onAttachCallback, - pathToAttachedProbes: make(map[string][]manager.ProbeIdentificationPair), - done: make(chan struct{}), - inspector: inspector, - processMonitor: processMonitor, + name: name, + config: config, + fileRegistry: utils.NewFileRegistry(moduleName, name), + manager: mgr, + onAttachCallback: onAttachCallback, + fileIDToAttachedProbes: make(map[utils.PathIdentifier][]manager.ProbeIdentificationPair), + done: make(chan struct{}), + inspector: inspector, + processMonitor: processMonitor, } utils.AddAttacher(moduleName, name, ua) @@ -839,7 +839,7 @@ func (ua *UprobeAttacher) attachProbeSelector(selector manager.ProbesSelector, f } ebpf.AddProgramNameMapping(newProbe.ID(), newProbe.EBPFFuncName, ua.name) - ua.pathToAttachedProbes[fpath.HostPath] = append(ua.pathToAttachedProbes[fpath.HostPath], newProbeID) + ua.fileIDToAttachedProbes[fpath.ID] = append(ua.fileIDToAttachedProbes[fpath.ID], newProbeID) if ua.onAttachCallback != nil { ua.onAttachCallback(newProbe, &fpath) @@ -889,13 +889,14 @@ func (ua *UprobeAttacher) computeSymbolsToRequest(rules []*AttachRule) ([]Symbol } func (ua *UprobeAttacher) detachFromBinary(fpath utils.FilePath) error { - for _, probeID := range ua.pathToAttachedProbes[fpath.HostPath] { + for _, probeID := range ua.fileIDToAttachedProbes[fpath.ID] { err := ua.manager.DetachHook(probeID) if err != nil { return fmt.Errorf("error detaching probe %+v: %w", probeID, err) } } + delete(ua.fileIDToAttachedProbes, fpath.ID) ua.inspector.Cleanup(fpath) return nil diff --git a/pkg/ebpf/uprobes/attacher_test.go b/pkg/ebpf/uprobes/attacher_test.go index 9bbf7afbd83d6..6003decb2ca42 100644 --- a/pkg/ebpf/uprobes/attacher_test.go +++ b/pkg/ebpf/uprobes/attacher_test.go @@ -18,6 +18,7 @@ import ( "time" manager "github.com/DataDog/ebpf-manager" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" "github.com/stretchr/testify/suite" @@ -509,8 +510,13 @@ func TestAttachToBinaryAndDetach(t *testing.T) { require.NoError(t, err) mockMan.AssertExpectations(t) + // FileRegistry calls the detach callback without host path. Replicate that here. + detachPath := utils.FilePath{ + ID: target.ID, + } + mockMan.On("DetachHook", expectedProbe.ProbeIdentificationPair).Return(nil) - err = ua.detachFromBinary(target) + err = ua.detachFromBinary(detachPath) require.NoError(t, err) inspector.AssertExpectations(t) mockMan.AssertExpectations(t) @@ -773,6 +779,18 @@ func TestUprobeAttacher(t *testing.T) { require.NotNil(t, mainProbe) require.Equal(t, uint32(cmd.Process.Pid), mainProbe.fpath.PID) + + require.True(t, connectProbe.probe.IsRunning()) + require.True(t, mainProbe.probe.IsRunning()) + + // Kill the process to trigger the detach + cmd.Process.Kill() + + // Ensure probes are correctly detached + require.EventuallyWithT(t, func(c *assert.CollectT) { + assert.False(c, connectProbe.probe.IsRunning()) + assert.False(c, mainProbe.probe.IsRunning()) + }, 1*time.Second, 10*time.Millisecond) } func launchProcessMonitor(t *testing.T, useEventStream bool) *monitor.ProcessMonitor { From 681517fe150e5bd6b74a2fa3bb99e2e62bf9cb8c Mon Sep 17 00:00:00 2001 From: "John L. Peterson (Jack)" Date: Tue, 26 Nov 2024 14:07:51 -0500 Subject: [PATCH 066/439] add otel agent integration test to gitlab ci (#31452) --- .gitlab/integration_test/otel.yml | 1 + tasks/otel_agent.py | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/.gitlab/integration_test/otel.yml b/.gitlab/integration_test/otel.yml index 75feb5c595010..5f162afc2d564 100644 --- a/.gitlab/integration_test/otel.yml +++ b/.gitlab/integration_test/otel.yml @@ -11,6 +11,7 @@ integration_tests_otel: - !reference [.retrieve_linux_go_deps] - inv check-otel-build - inv check-otel-module-versions + - inv otel-agent.integration-test rules: - if: $CI_PIPELINE_SOURCE =~ /^schedule.*$/ when: never diff --git a/tasks/otel_agent.py b/tasks/otel_agent.py index 7e1b0df39412b..9b844dea9bee6 100644 --- a/tasks/otel_agent.py +++ b/tasks/otel_agent.py @@ -69,3 +69,13 @@ def image_build(ctx, arch='amd64', base_version='latest', tag=OT_AGENT_TAG, push os.remove(os.path.join(build_context, BIN_NAME)) os.remove(os.path.join(build_context, CFG_NAME)) + + +@task +def integration_test(ctx): + """ + Run the otel integration test + """ + cmd = """go test -timeout 0s -tags otlp,test -run ^TestIntegration$ \ + github.com/DataDog/datadog-agent/comp/otelcol/otlp/integrationtest -v""" + ctx.run(cmd) From 97a485a78e1bf7483cb7e862b527bd9f1a266ff1 Mon Sep 17 00:00:00 2001 From: Arthur Bellal Date: Tue, 26 Nov 2024 21:09:42 +0100 Subject: [PATCH 067/439] (fleet) add support for simple HTTP mirrors in the installer (#31467) --- pkg/config/setup/config.go | 1 + pkg/fleet/env/env.go | 8 ++ pkg/fleet/env/env_test.go | 5 + pkg/fleet/internal/oci/download.go | 10 +- pkg/fleet/internal/oci/download_test.go | 30 +++++- pkg/fleet/internal/oci/mirror.go | 92 +++++++++++++++++++ pkg/fleet/internal/oci/mirror_test.go | 116 ++++++++++++++++++++++++ 7 files changed, 258 insertions(+), 4 deletions(-) create mode 100644 pkg/fleet/internal/oci/mirror.go create mode 100644 pkg/fleet/internal/oci/mirror_test.go diff --git a/pkg/config/setup/config.go b/pkg/config/setup/config.go index 87b81893ad6b6..5690289442f25 100644 --- a/pkg/config/setup/config.go +++ b/pkg/config/setup/config.go @@ -994,6 +994,7 @@ func InitConfig(config pkgconfigmodel.Setup) { // Installer configuration config.BindEnvAndSetDefault("remote_updates", false) config.BindEnvAndSetDefault("remote_policies", false) + config.BindEnvAndSetDefault("installer.mirror", "") config.BindEnvAndSetDefault("installer.registry.url", "") config.BindEnvAndSetDefault("installer.registry.auth", "") config.BindEnvAndSetDefault("installer.registry.username", "") diff --git a/pkg/fleet/env/env.go b/pkg/fleet/env/env.go index cdcd2977bf203..a1415ea1780a3 100644 --- a/pkg/fleet/env/env.go +++ b/pkg/fleet/env/env.go @@ -24,6 +24,7 @@ const ( envSite = "DD_SITE" envRemoteUpdates = "DD_REMOTE_UPDATES" envRemotePolicies = "DD_REMOTE_POLICIES" + envMirror = "DD_INSTALLER_MIRROR" envRegistryURL = "DD_INSTALLER_REGISTRY_URL" envRegistryAuth = "DD_INSTALLER_REGISTRY_AUTH" envRegistryUsername = "DD_INSTALLER_REGISTRY_USERNAME" @@ -54,6 +55,7 @@ var defaultEnv = Env{ APIKey: "", Site: "datadoghq.com", RemoteUpdates: false, + Mirror: "", RegistryOverride: "", RegistryAuthOverride: "", @@ -85,6 +87,7 @@ type Env struct { RemoteUpdates bool RemotePolicies bool + Mirror string RegistryOverride string RegistryAuthOverride string RegistryUsername string @@ -128,6 +131,7 @@ func FromEnv() *Env { RemoteUpdates: strings.ToLower(os.Getenv(envRemoteUpdates)) == "true", RemotePolicies: strings.ToLower(os.Getenv(envRemotePolicies)) == "true", + Mirror: getEnvOrDefault(envMirror, defaultEnv.Mirror), RegistryOverride: getEnvOrDefault(envRegistryURL, defaultEnv.RegistryOverride), RegistryAuthOverride: getEnvOrDefault(envRegistryAuth, defaultEnv.RegistryAuthOverride), RegistryUsername: getEnvOrDefault(envRegistryUsername, defaultEnv.RegistryUsername), @@ -176,6 +180,7 @@ func FromConfig(config model.Reader) *Env { Site: config.GetString("site"), RemoteUpdates: config.GetBool("remote_updates"), RemotePolicies: config.GetBool("remote_policies"), + Mirror: config.GetString("installer.mirror"), RegistryOverride: config.GetString("installer.registry.url"), RegistryAuthOverride: config.GetString("installer.registry.auth"), RegistryUsername: config.GetString("installer.registry.username"), @@ -203,6 +208,9 @@ func (e *Env) ToEnv() []string { if e.RemotePolicies { env = append(env, envRemotePolicies+"=true") } + if e.Mirror != "" { + env = append(env, envMirror+"="+e.Mirror) + } if e.RegistryOverride != "" { env = append(env, envRegistryURL+"="+e.RegistryOverride) } diff --git a/pkg/fleet/env/env_test.go b/pkg/fleet/env/env_test.go index e4ca08d0cccf1..6cbc1b5e47f38 100644 --- a/pkg/fleet/env/env_test.go +++ b/pkg/fleet/env/env_test.go @@ -23,6 +23,7 @@ func TestFromEnv(t *testing.T) { expected: &Env{ APIKey: "", Site: "datadoghq.com", + Mirror: "", RegistryOverride: "", RegistryAuthOverride: "", RegistryUsername: "", @@ -51,6 +52,7 @@ func TestFromEnv(t *testing.T) { envSite: "datadoghq.eu", envRemoteUpdates: "true", envRemotePolicies: "true", + envMirror: "https://mirror.example.com", envRegistryURL: "registry.example.com", envRegistryAuth: "auth", envRegistryUsername: "username", @@ -80,6 +82,7 @@ func TestFromEnv(t *testing.T) { expected: &Env{ APIKey: "123456", Site: "datadoghq.eu", + Mirror: "https://mirror.example.com", RemoteUpdates: true, RemotePolicies: true, RegistryOverride: "registry.example.com", @@ -216,6 +219,7 @@ func TestToEnv(t *testing.T) { Site: "datadoghq.eu", RemoteUpdates: true, RemotePolicies: true, + Mirror: "https://mirror.example.com", RegistryOverride: "registry.example.com", RegistryAuthOverride: "auth", RegistryUsername: "username", @@ -260,6 +264,7 @@ func TestToEnv(t *testing.T) { "DD_SITE=datadoghq.eu", "DD_REMOTE_UPDATES=true", "DD_REMOTE_POLICIES=true", + "DD_INSTALLER_MIRROR=https://mirror.example.com", "DD_INSTALLER_REGISTRY_URL=registry.example.com", "DD_INSTALLER_REGISTRY_AUTH=auth", "DD_INSTALLER_REGISTRY_USERNAME=username", diff --git a/pkg/fleet/internal/oci/download.go b/pkg/fleet/internal/oci/download.go index dc8dbf3dc8726..f4a19fe29e59c 100644 --- a/pkg/fleet/internal/oci/download.go +++ b/pkg/fleet/internal/oci/download.go @@ -240,6 +240,14 @@ func getRefAndKeychain(env *env.Env, url string) urlWithKeychain { // If they are specified, the registry and authentication overrides are applied first. // Then we try each registry in the list of default registries in order and return the first successful download. func (d *Downloader) downloadRegistry(ctx context.Context, url string) (oci.Image, error) { + transport := httptrace.WrapRoundTripper(d.client.Transport) + var err error + if d.env.Mirror != "" { + transport, err = newMirrorTransport(transport, d.env.Mirror) + if err != nil { + return nil, fmt.Errorf("could not create mirror transport: %w", err) + } + } var multiErr error for _, refAndKeychain := range getRefAndKeychains(d.env, url) { log.Debugf("Downloading index from %s", refAndKeychain.ref) @@ -253,7 +261,7 @@ func (d *Downloader) downloadRegistry(ctx context.Context, url string) (oci.Imag ref, remote.WithContext(ctx), remote.WithAuthFromKeychain(refAndKeychain.keychain), - remote.WithTransport(httptrace.WrapRoundTripper(d.client.Transport)), + remote.WithTransport(transport), ) if err != nil { multiErr = multierr.Append(multiErr, fmt.Errorf("could not download image using %s: %w", url, err)) diff --git a/pkg/fleet/internal/oci/download_test.go b/pkg/fleet/internal/oci/download_test.go index b5171e57b50e2..c3fb215373c01 100644 --- a/pkg/fleet/internal/oci/download_test.go +++ b/pkg/fleet/internal/oci/download_test.go @@ -10,6 +10,7 @@ package oci import ( "context" + "net/http" "os" "strings" "testing" @@ -26,20 +27,27 @@ import ( type testDownloadServer struct { *fixtures.Server + m *testMirrorServer } func newTestDownloadServer(t *testing.T) *testDownloadServer { + s := fixtures.NewServer(t) return &testDownloadServer{ - Server: fixtures.NewServer(t), + Server: s, + m: newTestMirrorServer(s), } } +func (s *testDownloadServer) DownloaderWithMirror() *Downloader { + return NewDownloader(&env.Env{Mirror: s.m.URL() + "/mirror"}, http.DefaultClient) +} + func (s *testDownloadServer) Downloader() *Downloader { - return NewDownloader(&env.Env{}, s.Client()) + return NewDownloader(&env.Env{}, http.DefaultClient) } func (s *testDownloadServer) DownloaderWithEnv(env *env.Env) *Downloader { - return NewDownloader(env, s.Client()) + return NewDownloader(env, http.DefaultClient) } func (s *testDownloadServer) Image(f fixtures.Fixture) oci.Image { @@ -65,6 +73,22 @@ func TestDownload(t *testing.T) { fixtures.AssertEqualFS(t, s.PackageFS(fixtures.FixtureSimpleV1), os.DirFS(tmpDir)) } +func TestDownloadMirror(t *testing.T) { + s := newTestDownloadServer(t) + defer s.Close() + d := s.DownloaderWithMirror() + + downloadedPackage, err := d.Download(context.Background(), s.PackageURL(fixtures.FixtureSimpleV1)) + assert.NoError(t, err) + assert.Equal(t, fixtures.FixtureSimpleV1.Package, downloadedPackage.Name) + assert.Equal(t, fixtures.FixtureSimpleV1.Version, downloadedPackage.Version) + assert.NotZero(t, downloadedPackage.Size) + tmpDir := t.TempDir() + err = downloadedPackage.ExtractLayers(DatadogPackageLayerMediaType, tmpDir) + assert.NoError(t, err) + fixtures.AssertEqualFS(t, s.PackageFS(fixtures.FixtureSimpleV1), os.DirFS(tmpDir)) +} + func TestDownloadLayout(t *testing.T) { s := newTestDownloadServer(t) d := s.Downloader() diff --git a/pkg/fleet/internal/oci/mirror.go b/pkg/fleet/internal/oci/mirror.go new file mode 100644 index 0000000000000..a98e7bd224505 --- /dev/null +++ b/pkg/fleet/internal/oci/mirror.go @@ -0,0 +1,92 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package oci + +import ( + "bytes" + "encoding/json" + "fmt" + "io" + "net/http" + "net/url" + "strings" +) + +// mirrorTransport is an http.RoundTripper that forwards requests to a mirror URL. +type mirrorTransport struct { + mirror *url.URL + transport http.RoundTripper +} + +// newMirrorTransport creates a new mirrorTransport from a mirror URL. +func newMirrorTransport(transport http.RoundTripper, mirror string) (*mirrorTransport, error) { + mirrorURL, err := url.Parse(mirror) + if err != nil { + return nil, err + } + + return &mirrorTransport{ + mirror: mirrorURL, + transport: transport, + }, nil +} + +// RoundTrip modifies the request to point to the mirror URL before sending it. +func (mt *mirrorTransport) RoundTrip(req *http.Request) (*http.Response, error) { + clone := req.Clone(req.Context()) + clone.URL.Scheme = mt.mirror.Scheme + clone.URL.Host = mt.mirror.Host + clone.URL.User = mt.mirror.User + var err error + if mt.mirror.Path != "" { + clone.URL.Path = mt.mirror.JoinPath(clone.URL.Path).Path + } + r, err := mt.transport.RoundTrip(clone) + if err != nil { + return nil, err + } + // Unfortunately some mirrors (ex: Nexus) do not respect the Content-Type header of the original request. + // We fix the Content-Type header for manifest requests to match the mediaType field in the manifest. + if isManifestPath(req.URL.Path) { + err := fixManifestContentTypes(r) + if err != nil { + return nil, fmt.Errorf("err fixing manifest content types: %w", err) + } + } + return r, nil +} + +// isManifestPath returns true if the path is of the form /v2//manifests/. +func isManifestPath(path string) bool { + path = strings.TrimPrefix(path, "/") + segments := strings.Split(path, "/") + return len(segments) >= 4 && + segments[0] == "v2" && + segments[len(segments)-2] == "manifests" +} + +type mediaType struct { + MediaType string `json:"mediaType"` +} + +// fixManifestContentTypes modifies the Content-Type header of the response to match the mediaType field in the manifest. +func fixManifestContentTypes(r *http.Response) error { + var mediaType mediaType + buf, err := io.ReadAll(r.Body) + if err != nil { + return err + } + r.Body.Close() + r.Body = io.NopCloser(bytes.NewReader(buf)) + err = json.Unmarshal(buf, &mediaType) + if err != nil { + return err + } + if mediaType.MediaType != "" { + r.Header.Set("Content-Type", mediaType.MediaType) + } + return nil +} diff --git a/pkg/fleet/internal/oci/mirror_test.go b/pkg/fleet/internal/oci/mirror_test.go new file mode 100644 index 0000000000000..cee744c5fcbff --- /dev/null +++ b/pkg/fleet/internal/oci/mirror_test.go @@ -0,0 +1,116 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package oci + +import ( + "io" + "net/http" + "net/http/httptest" + "strings" + "testing" + + "github.com/DataDog/datadog-agent/pkg/fleet/internal/fixtures" + "github.com/stretchr/testify/require" +) + +type testMirrorServer struct { + s *httptest.Server + u *fixtures.Server + + contentTypeRemap map[string]string +} + +func newTestMirrorServer(upstream *fixtures.Server) *testMirrorServer { + s := &testMirrorServer{ + u: upstream, + contentTypeRemap: map[string]string{}, + } + s.s = httptest.NewServer(s) + return s +} + +func (t *testMirrorServer) Close() { + t.s.Close() +} + +func (t *testMirrorServer) URL() string { + return t.s.URL +} + +func (t *testMirrorServer) SetContentTypeRemap(from string, to string) { + t.contentTypeRemap[from] = to +} + +func (t *testMirrorServer) ServeHTTP(w http.ResponseWriter, r *http.Request) { + if !strings.HasPrefix(r.URL.Path, "/mirror") || r.Method != http.MethodGet { + http.Error(w, "not found", http.StatusNotFound) + return + } + url := t.u.URL() + strings.TrimPrefix(r.URL.Path, "/mirror") + resp, err := http.Get(url) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + defer resp.Body.Close() + contentType := resp.Header.Get("Content-Type") + if remap, ok := t.contentTypeRemap[contentType]; ok { + contentType = remap + } + w.Header().Set("Content-Type", contentType) + w.WriteHeader(resp.StatusCode) + _, err = io.Copy(w, resp.Body) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } +} + +func (t *testMirrorServer) WrapTransport(transport http.RoundTripper) http.RoundTripper { + tr, err := newMirrorTransport(transport, t.s.URL+"/mirror") + if err != nil { + panic(err) + } + return tr +} + +func TestMirrorTransport(t *testing.T) { + upstream := fixtures.NewServer(t) + defer upstream.Close() + client := &http.Client{ + Transport: http.DefaultTransport, + } + + mirror := newTestMirrorServer(upstream) + defer mirror.Close() + client.Transport = mirror.WrapTransport(client.Transport) + + resp, err := client.Get(upstream.URL() + "/v2/") + require.NoError(t, err) + defer resp.Body.Close() + + require.Equal(t, http.StatusOK, resp.StatusCode) +} + +func TestMirrorTransportContentTypeRemap(t *testing.T) { + upstream := fixtures.NewServer(t) + defer upstream.Close() + client := &http.Client{ + Transport: http.DefaultTransport, + } + + mirror := newTestMirrorServer(upstream) + defer mirror.Close() + client.Transport = mirror.WrapTransport(client.Transport) + mirror.SetContentTypeRemap("application/vnd.oci.image.index.v1+json", "application/broken") + + resp, err := client.Get(upstream.URL() + "/v2/" + fixtures.FixtureSimpleV1.Package + "/manifests/latest") + require.NoError(t, err) + defer resp.Body.Close() + + require.Equal(t, http.StatusOK, resp.StatusCode) + require.Equal(t, "application/vnd.oci.image.index.v1+json", resp.Header.Get("Content-Type")) +} From 15cccc34e4b9680348d039df646737ef40caec5a Mon Sep 17 00:00:00 2001 From: Alexandre Yang Date: Tue, 26 Nov 2024 21:09:57 +0100 Subject: [PATCH 068/439] [ha-agent] Consume RC HA_AGENT (#31172) --- comp/haagent/impl/haagent.go | 37 +++++++ comp/haagent/impl/haagent_comp.go | 17 ++- comp/haagent/impl/haagent_test.go | 115 +++++++++++++++++++- comp/haagent/impl/haagent_testutils_test.go | 8 +- comp/haagent/impl/rcpayload.go | 11 ++ pkg/remoteconfig/state/products.go | 3 + 6 files changed, 180 insertions(+), 11 deletions(-) create mode 100644 comp/haagent/impl/rcpayload.go diff --git a/comp/haagent/impl/haagent.go b/comp/haagent/impl/haagent.go index 7974867596547..5328d039da2d3 100644 --- a/comp/haagent/impl/haagent.go +++ b/comp/haagent/impl/haagent.go @@ -7,8 +7,10 @@ package haagentimpl import ( "context" + "encoding/json" log "github.com/DataDog/datadog-agent/comp/core/log/def" + "github.com/DataDog/datadog-agent/pkg/remoteconfig/state" "github.com/DataDog/datadog-agent/pkg/util/hostname" "go.uber.org/atomic" ) @@ -47,3 +49,38 @@ func (h *haAgentImpl) SetLeader(leaderAgentHostname string) { } h.isLeader.Store(agentHostname == leaderAgentHostname) } + +func (h *haAgentImpl) onHaAgentUpdate(updates map[string]state.RawConfig, applyStateCallback func(string, state.ApplyStatus)) { + h.log.Debugf("Updates received: count=%d", len(updates)) + + for configPath, rawConfig := range updates { + h.log.Debugf("Received config %s: %s", configPath, string(rawConfig.Config)) + haAgentMsg := haAgentConfig{} + err := json.Unmarshal(rawConfig.Config, &haAgentMsg) + if err != nil { + h.log.Warnf("Skipping invalid HA_AGENT update %s: %v", configPath, err) + applyStateCallback(configPath, state.ApplyStatus{ + State: state.ApplyStateError, + Error: "error unmarshalling payload", + }) + continue + } + if haAgentMsg.Group != h.GetGroup() { + h.log.Warnf("Skipping invalid HA_AGENT update %s: expected group %s, got %s", + configPath, h.GetGroup(), haAgentMsg.Group) + applyStateCallback(configPath, state.ApplyStatus{ + State: state.ApplyStateError, + Error: "group does not match", + }) + continue + } + + h.SetLeader(haAgentMsg.Leader) + + h.log.Debugf("Processed config %s: %v", configPath, haAgentMsg) + + applyStateCallback(configPath, state.ApplyStatus{ + State: state.ApplyStateAcknowledged, + }) + } +} diff --git a/comp/haagent/impl/haagent_comp.go b/comp/haagent/impl/haagent_comp.go index 24f591741fa0d..f922325a9a440 100644 --- a/comp/haagent/impl/haagent_comp.go +++ b/comp/haagent/impl/haagent_comp.go @@ -10,6 +10,8 @@ import ( "github.com/DataDog/datadog-agent/comp/core/config" log "github.com/DataDog/datadog-agent/comp/core/log/def" haagent "github.com/DataDog/datadog-agent/comp/haagent/def" + rctypes "github.com/DataDog/datadog-agent/comp/remote-config/rcclient/types" + "github.com/DataDog/datadog-agent/pkg/remoteconfig/state" ) // Requires defines the dependencies for the haagent component @@ -20,14 +22,25 @@ type Requires struct { // Provides defines the output of the haagent component type Provides struct { - Comp haagent.Component + Comp haagent.Component + RCListener rctypes.ListenerProvider } // NewComponent creates a new haagent component func NewComponent(reqs Requires) (Provides, error) { haAgentConfigs := newHaAgentConfigs(reqs.AgentConfig) + haAgent := newHaAgentImpl(reqs.Logger, haAgentConfigs) + var rcListener rctypes.ListenerProvider + if haAgent.Enabled() { + reqs.Logger.Debug("Add onHaAgentUpdate RCListener") + rcListener.ListenerProvider = rctypes.RCListener{ + state.ProductHaAgent: haAgent.onHaAgentUpdate, + } + } + provides := Provides{ - Comp: newHaAgentImpl(reqs.Logger, haAgentConfigs), + Comp: haAgent, + RCListener: rcListener, } return provides, nil } diff --git a/comp/haagent/impl/haagent_test.go b/comp/haagent/impl/haagent_test.go index 3be3d2d6341ee..b91e33f27c4b6 100644 --- a/comp/haagent/impl/haagent_test.go +++ b/comp/haagent/impl/haagent_test.go @@ -8,9 +8,17 @@ package haagentimpl import ( "testing" + "github.com/DataDog/datadog-agent/comp/core/config" + logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" + "github.com/DataDog/datadog-agent/pkg/remoteconfig/state" + "github.com/DataDog/datadog-agent/pkg/util/fxutil" "github.com/stretchr/testify/assert" + "go.uber.org/fx" ) +var testConfigID = "datadog/2/HA_AGENT/group-62345762794c0c0b/65f17d667fb50f8ae28a3c858bdb1be9ea994f20249c119e007c520ac115c807" +var testGroup = "testGroup01" + func Test_Enabled(t *testing.T) { tests := []struct { name string @@ -34,7 +42,7 @@ func Test_Enabled(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - haAgent := newTestHaAgentComponent(t, tt.configs) + haAgent := newTestHaAgentComponent(t, tt.configs).Comp assert.Equal(t, tt.expectedEnabled, haAgent.Enabled()) }) } @@ -44,7 +52,7 @@ func Test_GetGroup(t *testing.T) { agentConfigs := map[string]interface{}{ "ha_agent.group": "my-group-01", } - haAgent := newTestHaAgentComponent(t, agentConfigs) + haAgent := newTestHaAgentComponent(t, agentConfigs).Comp assert.Equal(t, "my-group-01", haAgent.GetGroup()) } @@ -52,7 +60,7 @@ func Test_IsLeader_SetLeader(t *testing.T) { agentConfigs := map[string]interface{}{ "hostname": "my-agent-hostname", } - haAgent := newTestHaAgentComponent(t, agentConfigs) + haAgent := newTestHaAgentComponent(t, agentConfigs).Comp haAgent.SetLeader("another-agent") assert.False(t, haAgent.IsLeader()) @@ -60,3 +68,104 @@ func Test_IsLeader_SetLeader(t *testing.T) { haAgent.SetLeader("my-agent-hostname") assert.True(t, haAgent.IsLeader()) } + +func Test_RCListener(t *testing.T) { + tests := []struct { + name string + configs map[string]interface{} + expectRCListener bool + }{ + { + name: "enabled", + configs: map[string]interface{}{ + "ha_agent.enabled": true, + }, + expectRCListener: true, + }, + { + name: "disabled", + configs: map[string]interface{}{ + "ha_agent.enabled": false, + }, + expectRCListener: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + provides := newTestHaAgentComponent(t, tt.configs) + if tt.expectRCListener { + assert.NotNil(t, provides.RCListener.ListenerProvider) + } else { + assert.Nil(t, provides.RCListener.ListenerProvider) + } + }) + } +} + +func Test_haAgentImpl_onHaAgentUpdate(t *testing.T) { + + tests := []struct { + name string + updates map[string]state.RawConfig + expectedApplyID string + expectedApplyStatus state.ApplyStatus + }{ + { + name: "successful update", + updates: map[string]state.RawConfig{ + testConfigID: {Config: []byte(`{"group":"testGroup01","leader":"ha-agent1"}`)}, + }, + expectedApplyID: testConfigID, + expectedApplyStatus: state.ApplyStatus{ + State: state.ApplyStateAcknowledged, + }, + }, + { + name: "invalid payload", + updates: map[string]state.RawConfig{ + testConfigID: {Config: []byte(`invalid-json`)}, + }, + expectedApplyID: testConfigID, + expectedApplyStatus: state.ApplyStatus{ + State: state.ApplyStateError, + Error: "error unmarshalling payload", + }, + }, + { + name: "invalid group", + updates: map[string]state.RawConfig{ + testConfigID: {Config: []byte(`{"group":"invalidGroup","leader":"ha-agent1"}`)}, + }, + expectedApplyID: testConfigID, + expectedApplyStatus: state.ApplyStatus{ + State: state.ApplyStateError, + Error: "group does not match", + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + agentConfigs := map[string]interface{}{ + "hostname": "my-agent-hostname", + "ha_agent.enabled": true, + "ha_agent.group": testGroup, + } + agentConfigComponent := fxutil.Test[config.Component](t, fx.Options( + config.MockModule(), + fx.Replace(config.MockParams{Overrides: agentConfigs}), + )) + + h := newHaAgentImpl(logmock.New(t), newHaAgentConfigs(agentConfigComponent)) + + var applyID string + var applyStatus state.ApplyStatus + applyFunc := func(id string, status state.ApplyStatus) { + applyID = id + applyStatus = status + } + h.onHaAgentUpdate(tt.updates, applyFunc) + assert.Equal(t, tt.expectedApplyID, applyID) + assert.Equal(t, tt.expectedApplyStatus, applyStatus) + }) + } +} diff --git a/comp/haagent/impl/haagent_testutils_test.go b/comp/haagent/impl/haagent_testutils_test.go index a401d9bdd8a61..ec09c03d99c3f 100644 --- a/comp/haagent/impl/haagent_testutils_test.go +++ b/comp/haagent/impl/haagent_testutils_test.go @@ -10,13 +10,12 @@ import ( "github.com/DataDog/datadog-agent/comp/core/config" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" - haagent "github.com/DataDog/datadog-agent/comp/haagent/def" "github.com/DataDog/datadog-agent/pkg/util/fxutil" "github.com/stretchr/testify/require" "go.uber.org/fx" ) -func newTestHaAgentComponent(t *testing.T, agentConfigs map[string]interface{}) haagent.Component { +func newTestHaAgentComponent(t *testing.T, agentConfigs map[string]interface{}) Provides { logComponent := logmock.New(t) agentConfigComponent := fxutil.Test[config.Component](t, fx.Options( config.MockModule(), @@ -30,8 +29,5 @@ func newTestHaAgentComponent(t *testing.T, agentConfigs map[string]interface{}) provides, err := NewComponent(requires) require.NoError(t, err) - - comp := provides.Comp - require.NotNil(t, comp) - return comp + return provides } diff --git a/comp/haagent/impl/rcpayload.go b/comp/haagent/impl/rcpayload.go new file mode 100644 index 0000000000000..10784dc801d35 --- /dev/null +++ b/comp/haagent/impl/rcpayload.go @@ -0,0 +1,11 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2024-present Datadog, Inc. + +package haagentimpl + +type haAgentConfig struct { + Group string `json:"group"` + Leader string `json:"leader"` +} diff --git a/pkg/remoteconfig/state/products.go b/pkg/remoteconfig/state/products.go index ddb429cf565bb..be3133064b998 100644 --- a/pkg/remoteconfig/state/products.go +++ b/pkg/remoteconfig/state/products.go @@ -32,6 +32,7 @@ var validProducts = map[string]struct{}{ ProductTesting1: {}, ProductTesting2: {}, ProductOrchestratorK8sCRDs: {}, + ProductHaAgent: {}, } const ( @@ -87,4 +88,6 @@ const ( ProductTesting2 = "TESTING2" // ProductOrchestratorK8sCRDs receives values for k8s crds ProductOrchestratorK8sCRDs = "ORCHESTRATOR_K8S_CRDS" + // ProductHaAgent is the HA Agent product + ProductHaAgent = "HA_AGENT" ) From a35b7ddda92527d0bae40ccfcbcdcf46242d1f95 Mon Sep 17 00:00:00 2001 From: Seth Samuel Date: Tue, 26 Nov 2024 15:24:41 -0500 Subject: [PATCH 069/439] Enable obfuscation cache for SQL and MongoDB (#31336) --- comp/trace/config/config_test.go | 15 ++++++++++ comp/trace/config/setup.go | 4 +++ comp/trace/config/testdata/full.yaml | 2 ++ pkg/config/config_template.yaml | 9 ++++-- pkg/config/setup/apm.go | 1 + pkg/flare/envvars.go | 1 + pkg/obfuscate/obfuscate.go | 19 ++++++++++--- pkg/trace/agent/agent.go | 13 ++++++--- pkg/trace/agent/agent_test.go | 10 +++---- pkg/trace/agent/obfuscate.go | 28 +++++++++++++++++-- pkg/trace/config/config.go | 5 +++- ...cache-for-obfuscator-f662a09b27ebf1e0.yaml | 14 ++++++++++ 12 files changed, 103 insertions(+), 18 deletions(-) create mode 100644 releasenotes/notes/enable-query-cache-for-obfuscator-f662a09b27ebf1e0.yaml diff --git a/comp/trace/config/config_test.go b/comp/trace/config/config_test.go index c17d4325221be..8649b7f142cb2 100644 --- a/comp/trace/config/config_test.go +++ b/comp/trace/config/config_test.go @@ -630,6 +630,7 @@ func TestFullYamlConfig(t *testing.T) { assert.True(t, o.Memcached.KeepCommand) assert.True(t, o.CreditCards.Enabled) assert.True(t, o.CreditCards.Luhn) + assert.True(t, o.Cache.Enabled) assert.True(t, cfg.InstallSignature.Found) assert.Equal(t, traceconfig.InstallSignatureConfig{ @@ -1750,6 +1751,20 @@ func TestLoadEnv(t *testing.T) { assert.Equal(t, expected, actualParsed) }) + env = "DD_APM_OBFUSCATION_CACHE_ENABLED" + t.Run(env, func(t *testing.T) { + t.Setenv(env, "false") + + c := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ + Params: corecomp.Params{ConfFilePath: "./testdata/full.yaml"}, + })) + cfg := c.Object() + + assert.NotNil(t, cfg) + assert.False(t, pkgconfigsetup.Datadog().GetBool("apm_config.obfuscation.cache.enabled")) + assert.False(t, cfg.Obfuscation.Cache.Enabled) + }) + env = "DD_APM_PROFILING_ADDITIONAL_ENDPOINTS" t.Run(env, func(t *testing.T) { t.Setenv(env, `{"url1": ["key1", "key2"], "url2": ["key3"]}`) diff --git a/comp/trace/config/setup.go b/comp/trace/config/setup.go index cdb7d6f9c3064..00a37fffc3315 100644 --- a/comp/trace/config/setup.go +++ b/comp/trace/config/setup.go @@ -418,6 +418,7 @@ func applyDatadogConfig(c *config.AgentConfig, core corecompcfg.Component) error c.Obfuscation.Memcached.Enabled = true c.Obfuscation.Redis.Enabled = true c.Obfuscation.CreditCards.Enabled = true + c.Obfuscation.Cache.Enabled = true // TODO(x): There is an issue with pkgconfigsetup.Datadog().IsSet("apm_config.obfuscation"), probably coming from Viper, // where it returns false even is "apm_config.obfuscation.credit_cards.enabled" is set via an environment @@ -494,6 +495,9 @@ func applyDatadogConfig(c *config.AgentConfig, core corecompcfg.Component) error if pkgconfigsetup.Datadog().IsSet("apm_config.obfuscation.sql_exec_plan_normalize.obfuscate_sql_values") { c.Obfuscation.SQLExecPlanNormalize.ObfuscateSQLValues = pkgconfigsetup.Datadog().GetStringSlice("apm_config.obfuscation.sql_exec_plan_normalize.obfuscate_sql_values") } + if pkgconfigsetup.Datadog().IsSet("apm_config.obfuscation.cache.enabled") { + c.Obfuscation.Cache.Enabled = pkgconfigsetup.Datadog().GetBool("apm_config.obfuscation.cache.enabled") + } } if core.IsSet("apm_config.filter_tags.require") { diff --git a/comp/trace/config/testdata/full.yaml b/comp/trace/config/testdata/full.yaml index a630350b28023..0c6535550e615 100644 --- a/comp/trace/config/testdata/full.yaml +++ b/comp/trace/config/testdata/full.yaml @@ -89,3 +89,5 @@ apm_config: credit_cards: enabled: true luhn: true + cache: + enabled: true diff --git a/pkg/config/config_template.yaml b/pkg/config/config_template.yaml index 9e0577bbb0608..8d1afed4b8267 100644 --- a/pkg/config/config_template.yaml +++ b/pkg/config/config_template.yaml @@ -1153,7 +1153,7 @@ api_key: # max_cpu_percent: 50 ## @param obfuscation - object - optional - ## Defines obfuscation rules for sensitive data. Disabled by default. + ## Defines obfuscation rules for sensitive data. ## See https://docs.datadoghq.com/tracing/setup_overview/configure_data_security/#agent-trace-obfuscation # # obfuscation: @@ -1260,6 +1260,11 @@ api_key: ## The set of keys for which their values will be passed through SQL obfuscation # obfuscate_sql_values: # - val1 + # cache: + ## @param DD_APM_CACHE_ENABLED - boolean - optional + ## Enables caching obfuscated statements. Currently supported for SQL and MongoDB queries. + ## Enabled by default. + # enabled: true ## @param filter_tags - object - optional ## @env DD_APM_FILTER_TAGS_REQUIRE - object - optional @@ -1374,7 +1379,7 @@ api_key: ## The list of items available under apm_config.features is not guaranteed to persist across versions; ## a feature may eventually be promoted to its own configuration option on the agent, or dropped entirely. # - # features: ["error_rare_sample_tracer_drop","table_names","component2name","sql_cache","sqllexer","enable_otlp_compute_top_level_by_span_kind","enable_receive_resource_spans_v2"] + # features: ["error_rare_sample_tracer_drop","table_names","component2name","sqllexer","enable_otlp_compute_top_level_by_span_kind","enable_receive_resource_spans_v2"] ## @param additional_endpoints - object - optional ## @env DD_APM_ADDITIONAL_ENDPOINTS - object - optional diff --git a/pkg/config/setup/apm.go b/pkg/config/setup/apm.go index 9bc6800ca14a2..420403407a353 100644 --- a/pkg/config/setup/apm.go +++ b/pkg/config/setup/apm.go @@ -43,6 +43,7 @@ func setupAPM(config pkgconfigmodel.Setup) { config.BindEnv("apm_config.obfuscation.redis.remove_all_args", "DD_APM_OBFUSCATION_REDIS_REMOVE_ALL_ARGS") config.BindEnv("apm_config.obfuscation.memcached.enabled", "DD_APM_OBFUSCATION_MEMCACHED_ENABLED") config.BindEnv("apm_config.obfuscation.memcached.keep_command", "DD_APM_OBFUSCATION_MEMCACHED_KEEP_COMMAND") + config.BindEnv("apm_config.obfuscation.cache.enabled", "DD_APM_OBFUSCATION_CACHE_ENABLED") config.SetKnown("apm_config.filter_tags.require") config.SetKnown("apm_config.filter_tags.reject") config.SetKnown("apm_config.filter_tags_regex.require") diff --git a/pkg/flare/envvars.go b/pkg/flare/envvars.go index f1889de288043..40b98a3b74d2d 100644 --- a/pkg/flare/envvars.go +++ b/pkg/flare/envvars.go @@ -107,6 +107,7 @@ var allowedEnvvarNames = []string{ "DD_APM_OBFUSCATION_SQL_EXEC_PLAN_NORMALIZE_ENABLED", "DD_APM_OBFUSCATION_SQL_EXEC_PLAN_NORMALIZE_KEEP_VALUES", "DD_APM_OBFUSCATION_SQL_EXEC_PLAN_NORMALIZE_OBFUSCATE_SQL_VALUES", + "DD_APM_OBFUSCATION_CACHE_ENABLED", "DD_APM_DEBUG_PORT", "DD_APM_INSTRUMENTATION_ENABLED", "DD_APM_INSTRUMENTATION_ENABLED_NAMESPACES", diff --git a/pkg/obfuscate/obfuscate.go b/pkg/obfuscate/obfuscate.go index c9de3906ed2a2..dcccacbbb7210 100644 --- a/pkg/obfuscate/obfuscate.go +++ b/pkg/obfuscate/obfuscate.go @@ -103,6 +103,9 @@ type Config struct { // Logger specifies the logger to use when outputting messages. // If unset, no logs will be outputted. Logger Logger + + // Cache enables the query cache for obfuscation for SQL and MongoDB queries. + Cache CacheConfig } // StatsClient implementations are able to emit stats. @@ -190,8 +193,8 @@ type SQLConfig struct { // This option is only valid when ObfuscationMode is "normalize_only" or "obfuscate_and_normalize". KeepJSONPath bool `json:"keep_json_path" yaml:"keep_json_path"` - // Cache reports whether the obfuscator should use a LRU look-up cache for SQL obfuscations. - Cache bool + // Cache is deprecated. Please use `apm_config.obfuscation.cache` instead. + Cache bool `json:"cache" yaml:"cache"` } // SQLMetadata holds metadata collected throughout the obfuscation of an SQL statement. It is only @@ -270,6 +273,12 @@ type CreditCardsConfig struct { KeepValues []string `mapstructure:"keep_values"` } +// CacheConfig holds the configuration for caching obfuscated queries. +type CacheConfig struct { + // Enabled specifies whether caching should be enabled. + Enabled bool `mapstructure:"enabled"` +} + // NewObfuscator creates a new obfuscator func NewObfuscator(cfg Config) *Obfuscator { if cfg.Logger == nil { @@ -277,7 +286,7 @@ func NewObfuscator(cfg Config) *Obfuscator { } o := Obfuscator{ opts: &cfg, - queryCache: newMeasuredCache(cacheOptions{On: cfg.SQL.Cache, Statsd: cfg.Statsd}), + queryCache: newMeasuredCache(cacheOptions{On: cfg.Cache.Enabled, Statsd: cfg.Statsd}), sqlLiteralEscapes: atomic.NewBool(false), log: cfg.Logger, } @@ -307,7 +316,9 @@ func NewObfuscator(cfg Config) *Obfuscator { // Stop cleans up after a finished Obfuscator. func (o *Obfuscator) Stop() { - o.queryCache.Close() + if o.queryCache != nil { + o.queryCache.Close() + } } // compactWhitespaces compacts all whitespaces in t. diff --git a/pkg/trace/agent/agent.go b/pkg/trace/agent/agent.go index 3c260febc27fb..a10e015be49f5 100644 --- a/pkg/trace/agent/agent.go +++ b/pkg/trace/agent/agent.go @@ -8,6 +8,7 @@ package agent import ( "context" + "reflect" "runtime" "strconv" "sync" @@ -103,8 +104,9 @@ type Agent struct { Timing timing.Reporter // obfuscator is used to obfuscate sensitive data from various span - // tags based on their type. - obfuscator *obfuscate.Obfuscator + // tags based on their type. It is lazy initialized with obfuscatorConf in obfuscate.go + obfuscator *obfuscate.Obfuscator + obfuscatorConf *obfuscate.Config // DiscardSpan will be called on all spans, if non-nil. If it returns true, the span will be deleted before processing. DiscardSpan func(*pb.Span) bool @@ -156,7 +158,7 @@ func NewAgent(ctx context.Context, conf *config.AgentConfig, telemetryCollector ProbabilisticSampler: sampler.NewProbabilisticSampler(conf, statsd), EventProcessor: newEventProcessor(conf, statsd), StatsWriter: statsWriter, - obfuscator: obfuscate.NewObfuscator(oconf), + obfuscatorConf: &oconf, In: in, conf: conf, ctx: ctx, @@ -273,7 +275,10 @@ func (a *Agent) loop() { a.obfuscator, a.DebugServer, } { - stopper.Stop() + // Fun with golang nil checks + if stopper != nil && !reflect.ValueOf(stopper).IsNil() { + stopper.Stop() + } } } diff --git a/pkg/trace/agent/agent_test.go b/pkg/trace/agent/agent_test.go index a3d57f3cc0b17..302f3c5d03606 100644 --- a/pkg/trace/agent/agent_test.go +++ b/pkg/trace/agent/agent_test.go @@ -1673,7 +1673,7 @@ func runTraceProcessingBenchmark(b *testing.B, c *config.AgentConfig) { // Mimics behaviour of agent Process function func formatTrace(t pb.Trace) pb.Trace { for _, span := range t { - a := &Agent{obfuscator: obfuscate.NewObfuscator(obfuscate.Config{}), conf: config.New()} + a := &Agent{obfuscatorConf: &obfuscate.Config{}, conf: config.New()} a.obfuscateSpan(span) a.Truncate(span) } @@ -2063,10 +2063,10 @@ func TestConvertStats(t *testing.T) { } a := Agent{ - Blacklister: filters.NewBlacklister([]string{"blocked_resource"}), - obfuscator: obfuscate.NewObfuscator(obfuscate.Config{}), - Replacer: filters.NewReplacer([]*config.ReplaceRule{{Name: "http.status_code", Pattern: "400", Re: regexp.MustCompile("400"), Repl: "200"}}), - conf: cfg, + Blacklister: filters.NewBlacklister([]string{"blocked_resource"}), + obfuscatorConf: &obfuscate.Config{}, + Replacer: filters.NewReplacer([]*config.ReplaceRule{{Name: "http.status_code", Pattern: "400", Re: regexp.MustCompile("400"), Repl: "200"}}), + conf: cfg, } out := a.processStats(testCase.in, testCase.lang, testCase.tracerVersion, testCase.containerID) diff --git a/pkg/trace/agent/obfuscate.go b/pkg/trace/agent/obfuscate.go index 00411697d49b7..25042e3fd6edc 100644 --- a/pkg/trace/agent/obfuscate.go +++ b/pkg/trace/agent/obfuscate.go @@ -6,6 +6,9 @@ package agent import ( + "sync" + + "github.com/DataDog/datadog-agent/pkg/obfuscate" pb "github.com/DataDog/datadog-agent/pkg/proto/pbgo/trace" "github.com/DataDog/datadog-agent/pkg/trace/log" "github.com/DataDog/datadog-agent/pkg/trace/traceutil" @@ -26,7 +29,7 @@ const ( ) func (a *Agent) obfuscateSpan(span *pb.Span) { - o := a.obfuscator + o := a.lazyInitObfuscator() if a.conf.Obfuscation != nil && a.conf.Obfuscation.CreditCards.Enabled { for k, v := range span.Meta { @@ -108,7 +111,8 @@ func (a *Agent) obfuscateSpan(span *pb.Span) { } func (a *Agent) obfuscateStatsGroup(b *pb.ClientGroupedStats) { - o := a.obfuscator + o := a.lazyInitObfuscator() + switch b.Type { case "sql", "cassandra": oq, err := o.ObfuscateSQLString(b.Resource) @@ -122,3 +126,23 @@ func (a *Agent) obfuscateStatsGroup(b *pb.ClientGroupedStats) { b.Resource = o.QuantizeRedisString(b.Resource) } } + +var ( + obfuscatorLock sync.Mutex +) + +func (a *Agent) lazyInitObfuscator() *obfuscate.Obfuscator { + // Ensure thread safe initialization + obfuscatorLock.Lock() + defer obfuscatorLock.Unlock() + + if a.obfuscator == nil { + if a.obfuscatorConf != nil { + a.obfuscator = obfuscate.NewObfuscator(*a.obfuscatorConf) + } else { + a.obfuscator = obfuscate.NewObfuscator(obfuscate.Config{}) + } + } + + return a.obfuscator +} diff --git a/pkg/trace/config/config.go b/pkg/trace/config/config.go index 60e2e456c0a6c..7a86fc71ac8e4 100644 --- a/pkg/trace/config/config.go +++ b/pkg/trace/config/config.go @@ -115,6 +115,9 @@ type ObfuscationConfig struct { // CreditCards holds the configuration for obfuscating credit cards. CreditCards obfuscate.CreditCardsConfig `mapstructure:"credit_cards"` + + // Cache holds the configuration for caching obfuscation results. + Cache obfuscate.CacheConfig `mapstructure:"cache"` } func obfuscationMode(enabled bool) obfuscate.ObfuscationMode { @@ -132,7 +135,6 @@ func (o *ObfuscationConfig) Export(conf *AgentConfig) obfuscate.Config { ReplaceDigits: conf.HasFeature("quantize_sql_tables") || conf.HasFeature("replace_sql_digits"), KeepSQLAlias: conf.HasFeature("keep_sql_alias"), DollarQuotedFunc: conf.HasFeature("dollar_quoted_func"), - Cache: conf.HasFeature("sql_cache"), ObfuscationMode: obfuscationMode(conf.HasFeature("sqllexer")), }, ES: o.ES, @@ -145,6 +147,7 @@ func (o *ObfuscationConfig) Export(conf *AgentConfig) obfuscate.Config { Memcached: o.Memcached, CreditCard: o.CreditCards, Logger: new(debugLogger), + Cache: o.Cache, } } diff --git a/releasenotes/notes/enable-query-cache-for-obfuscator-f662a09b27ebf1e0.yaml b/releasenotes/notes/enable-query-cache-for-obfuscator-f662a09b27ebf1e0.yaml new file mode 100644 index 0000000000000..e38c0f3570423 --- /dev/null +++ b/releasenotes/notes/enable-query-cache-for-obfuscator-f662a09b27ebf1e0.yaml @@ -0,0 +1,14 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +deprecations: + - | + Deprecates the `apm_config.obfuscation.sql.cache` option in favor of `apm_config.obfuscation.cache`. +enhancements: + - | + Enables a cache for SQL and MongoDB obfuscation. This cache is enabled by default but can be disabled by setting `apm_config.obfuscation.cache.enabled` to `false`. From 68ade301729d597db91d529d2e9907af32c31f06 Mon Sep 17 00:00:00 2001 From: Brian Floersch Date: Tue, 26 Nov 2024 15:24:52 -0500 Subject: [PATCH 070/439] Re enable telemetry for logs sender latency (#31496) --- comp/core/agenttelemetry/impl/config.go | 1 + ...add-sender-latency-telemetry-da1a36556ed97a52.yaml | 11 +++++++++++ 2 files changed, 12 insertions(+) create mode 100644 releasenotes/notes/add-sender-latency-telemetry-da1a36556ed97a52.yaml diff --git a/comp/core/agenttelemetry/impl/config.go b/comp/core/agenttelemetry/impl/config.go index 29c7df96ff515..a6cb70ae43ce4 100644 --- a/comp/core/agenttelemetry/impl/config.go +++ b/comp/core/agenttelemetry/impl/config.go @@ -188,6 +188,7 @@ var defaultProfiles = ` - name: logs.dropped - name: logs.encoded_bytes_sent - name: logs.processed + - name: logs.sender_latency - name: logs.sent - name: point.sent - name: point.dropped diff --git a/releasenotes/notes/add-sender-latency-telemetry-da1a36556ed97a52.yaml b/releasenotes/notes/add-sender-latency-telemetry-da1a36556ed97a52.yaml new file mode 100644 index 0000000000000..249139ec16436 --- /dev/null +++ b/releasenotes/notes/add-sender-latency-telemetry-da1a36556ed97a52.yaml @@ -0,0 +1,11 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +other: + - | + Extend Agent Telemetry to start reporting ``logs.sender_latency`` metric. From 67518feb50190510a8ec1bea6583b00415855cd1 Mon Sep 17 00:00:00 2001 From: Andrew Glaude Date: Tue, 26 Nov 2024 16:04:31 -0500 Subject: [PATCH 071/439] Remove unused remote config for apm tracing (#30920) --- cmd/agent/subcommands/run/command.go | 4 +- comp/remote-config/rcclient/component.go | 2 - .../rcclient/rcclientimpl/apm_tracing.go | 16 -- .../rcclientimpl/apm_tracing_linux.go | 169 ------------------ .../rcclientimpl/apm_tracing_linux_test.go | 116 ------------ omnibus/package-scripts/agent-deb/prerm | 10 +- omnibus/package-scripts/agent-rpm/prerm | 8 - 7 files changed, 2 insertions(+), 323 deletions(-) delete mode 100644 comp/remote-config/rcclient/rcclientimpl/apm_tracing.go delete mode 100644 comp/remote-config/rcclient/rcclientimpl/apm_tracing_linux.go delete mode 100644 comp/remote-config/rcclient/rcclientimpl/apm_tracing_linux_test.go diff --git a/cmd/agent/subcommands/run/command.go b/cmd/agent/subcommands/run/command.go index e23e94d67a3f7..8d9aca443be11 100644 --- a/cmd/agent/subcommands/run/command.go +++ b/cmd/agent/subcommands/run/command.go @@ -20,6 +20,7 @@ import ( "github.com/spf13/cobra" "go.uber.org/fx" + "gopkg.in/DataDog/dd-trace-go.v1/profiler" "github.com/DataDog/datadog-agent/cmd/agent/command" @@ -542,9 +543,6 @@ func startAgent( // Subscribe to `AGENT_TASK` product rcclient.SubscribeAgentTask() - // Subscribe to `APM_TRACING` product - rcclient.SubscribeApmTracing() - if pkgconfigsetup.Datadog().GetBool("remote_configuration.agent_integrations.enabled") { // Spin up the config provider to schedule integrations through remote-config rcProvider := providers.NewRemoteConfigProvider() diff --git a/comp/remote-config/rcclient/component.go b/comp/remote-config/rcclient/component.go index 7e6a5088421fd..6383fb54a0e6a 100644 --- a/comp/remote-config/rcclient/component.go +++ b/comp/remote-config/rcclient/component.go @@ -20,8 +20,6 @@ import ( type Component interface { // SubscribeAgentTask subscribe the remote-config client to AGENT_TASK SubscribeAgentTask() - // SubscribeApmTracing subscribes the remote-config client to APM_TRACING - SubscribeApmTracing() // Subscribe is the generic way to start listening to a specific product update // Component can also automatically subscribe to updates by returning a `ListenerProvider` struct Subscribe(product data.Product, fn func(update map[string]state.RawConfig, applyStateCallback func(string, state.ApplyStatus))) diff --git a/comp/remote-config/rcclient/rcclientimpl/apm_tracing.go b/comp/remote-config/rcclient/rcclientimpl/apm_tracing.go deleted file mode 100644 index 14b6971c42bc0..0000000000000 --- a/comp/remote-config/rcclient/rcclientimpl/apm_tracing.go +++ /dev/null @@ -1,16 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -//go:build !linux - -package rcclientimpl - -import ( - pkglog "github.com/DataDog/datadog-agent/pkg/util/log" -) - -func (rc rcClient) SubscribeApmTracing() { - pkglog.Info("APM TRACING config product is not supported outside Linux currently.") -} diff --git a/comp/remote-config/rcclient/rcclientimpl/apm_tracing_linux.go b/comp/remote-config/rcclient/rcclientimpl/apm_tracing_linux.go deleted file mode 100644 index d37a8d787ff83..0000000000000 --- a/comp/remote-config/rcclient/rcclientimpl/apm_tracing_linux.go +++ /dev/null @@ -1,169 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -//go:build linux - -package rcclientimpl - -import ( - "encoding/json" - "os" - - yamlv2 "gopkg.in/yaml.v2" - - "github.com/DataDog/datadog-agent/pkg/remoteconfig/state" - pkglog "github.com/DataDog/datadog-agent/pkg/util/log" -) - -var apmTracingFilePath = "/opt/datadog-agent/run/inject_config.yaml" - -// InvalidAPMTracingPayload indicates we received an APM_TRACING payload we were unable to decode -const InvalidAPMTracingPayload = "INVALID_APM_TRACING_PAYLOAD" - -// MissingServiceTarget indicates we were missing the service_target field -const MissingServiceTarget = "MISSING_SERVICE_TARGET" - -// FileWriteFailure indicates we were unable to write the RC Updates to a local file for use by the injector -const FileWriteFailure = "FILE_WRITE_FAILURE" - -// DuplicateHostConfig indicates received more than one InfraTarget configuration with a different env, -// this leads to inconsistent env values -const DuplicateHostConfig = "DUPLICATE_HOST_CONFIG" - -type serviceEnvConfig struct { - Service string `yaml:"service"` - Env string `yaml:"env"` - TracingEnabled bool `yaml:"tracing_enabled"` -} - -type tracingEnabledConfig struct { - TracingEnabled bool `yaml:"tracing_enabled"` - Env string `yaml:"env"` - ServiceEnvConfigs []serviceEnvConfig `yaml:"service_env_configs"` -} - -type tracingConfigUpdate struct { - ID string `json:"id"` - Revision int64 `json:"revision"` - SchemaVersion string `json:"schema_version"` - Action string `json:"action"` - LibConfig struct { - ServiceName string `json:"service_name"` - Env string `json:"env"` - TracingEnabled bool `json:"tracing_enabled"` - } `json:"lib_config"` - ServiceTarget *struct { - Service string `json:"service"` - Env string `json:"env"` - } `json:"service_target"` - InfraTarget *struct { - Tags []string `json:"tags"` - } `json:"infra_target"` -} - -func (rc rcClient) SubscribeApmTracing() { - if rc.client == nil { - pkglog.Errorf("No remote-config client") - return - } - rc.client.Subscribe(state.ProductAPMTracing, rc.onAPMTracingUpdate) -} - -func (rc rcClient) onAPMTracingUpdate(update map[string]state.RawConfig, applyStateCallback func(string, state.ApplyStatus)) { //nolint:revive - if len(update) == 0 { - // Empty update means revert to default behavior, so remove any existing config file - err := os.Remove(apmTracingFilePath) - if err == nil { - pkglog.Infof("Removed APM_TRACING remote config file, APM injection will revert to default behavior") - } else if !os.IsNotExist(err) { - // If the file already wasn't there then it wasn't an error - pkglog.Errorf("Failed to remove APM_TRACING remote config file, previous APM injection behavior will continue: %v", err) - } - return - } - - var senvConfigs []serviceEnvConfig - // Maps update IDs to their error, empty string indicates success - updateStatus := map[string]string{} - var hostTracingEnabled bool - var hostEnvTarget string - var hostConfigID string - for id, rawConfig := range update { - tcu := tracingConfigUpdate{} - err := json.Unmarshal(rawConfig.Config, &tcu) - updateStatus[id] = "" - if err != nil { - pkglog.Warnf("Skipping invalid APM_TRACING remote update %s: %v, any err: %v", id, tcu, err) - updateStatus[id] = InvalidAPMTracingPayload - continue - } - pkglog.Infof("Received APM_TRACING remote update %s: %v, any err: %v", id, tcu, err) - if tcu.InfraTarget != nil { - // This is an infra targeting payload, skip adding it to the service env config map - if hostConfigID != "" && tcu.LibConfig.Env != hostEnvTarget { - // We already saw a InfraTarget configuration and the envs are different, this is generally not desired - // To be consistent we will apply the "lowest" config ID and report a failure for the un-applied host config - pkglog.Warnf("Received more than 1 InfraTarget APM_TRACING config, the 'lowest' config will be used, but inconsistent behavior may occur. Check your Single Step Instrumentation configurations.") - if id < hostConfigID { - updateStatus[hostConfigID] = DuplicateHostConfig - // fallthrough to use this update's config values - } else { - // The previous infra target was lower, keep the current values - updateStatus[id] = DuplicateHostConfig - continue - } - } - hostTracingEnabled = tcu.LibConfig.TracingEnabled - hostEnvTarget = tcu.LibConfig.Env - hostConfigID = id - continue - } - if tcu.ServiceTarget == nil { - pkglog.Warnf("Missing service_target from APM_TRACING config update, SKIPPING: %v", tcu) - updateStatus[id] = MissingServiceTarget - continue - } - senvConfigs = append(senvConfigs, serviceEnvConfig{ - Service: tcu.ServiceTarget.Service, - Env: tcu.ServiceTarget.Env, - TracingEnabled: tcu.LibConfig.TracingEnabled, - }) - } - tec := tracingEnabledConfig{ - TracingEnabled: hostTracingEnabled, - Env: hostEnvTarget, - ServiceEnvConfigs: senvConfigs, - } - configFile, err := yamlv2.Marshal(tec) - if err != nil { - pkglog.Errorf("Failed to marshal APM_TRACING config update %v", err) - return - } - err = os.WriteFile(apmTracingFilePath, configFile, 0644) - if err != nil { - pkglog.Errorf("Failed to write single step config data file from APM_TRACING config: %v", err) - // Failed to write file, report failure for all updates - for id := range update { - applyStateCallback(id, state.ApplyStatus{ - State: state.ApplyStateError, - Error: FileWriteFailure, - }) - } - return - } - pkglog.Debugf("Successfully wrote APM_TRACING config to %s", apmTracingFilePath) - // Successfully wrote file, report success/failure per update - for id, errStatus := range updateStatus { - applyState := state.ApplyStateAcknowledged - if errStatus != "" { - applyState = state.ApplyStateError - } - applyStateCallback(id, state.ApplyStatus{ - State: applyState, - Error: errStatus, - }) - } - -} diff --git a/comp/remote-config/rcclient/rcclientimpl/apm_tracing_linux_test.go b/comp/remote-config/rcclient/rcclientimpl/apm_tracing_linux_test.go deleted file mode 100644 index 5953b47719796..0000000000000 --- a/comp/remote-config/rcclient/rcclientimpl/apm_tracing_linux_test.go +++ /dev/null @@ -1,116 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2023-present Datadog, Inc. - -//go:build linux - -package rcclientimpl - -import ( - "os" - "testing" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - - "github.com/DataDog/datadog-agent/pkg/remoteconfig/state" -) - -func TestOnAPMTracingUpdate(t *testing.T) { - mkTemp := func(t *testing.T) func() { - oldPath := apmTracingFilePath - f, err := os.CreateTemp("", "test") - require.NoError(t, err) - f.Close() // This is required for windows unit tests as windows will not allow this file to be deleted while we have this handle. - apmTracingFilePath = f.Name() - return func() { - apmTracingFilePath = oldPath - } - } - - t.Run("Empty update deletes file", func(t *testing.T) { - defer mkTemp(t)() - rc := rcClient{} - - rc.onAPMTracingUpdate(map[string]state.RawConfig{}, nil) - - _, err := os.Open(apmTracingFilePath) - if !os.IsNotExist(err) { - // file still exists when it shouldn't - assert.Fail(t, "Empty update did not delete existing config file") - } - }) - - t.Run("Valid update writes file", func(t *testing.T) { - defer mkTemp(t)() - rc := rcClient{} - callbackCalls := map[string]string{} - callback := func(id string, status state.ApplyStatus) { - callbackCalls[id] = status.Error - } - - hostConfig := state.RawConfig{Config: []byte(`{"infra_target": {"tags":["k:v"]},"lib_config":{"env":"someEnv","tracing_enabled":true}}`)} - senvConfig := state.RawConfig{Config: []byte(`{"service_target": {"service":"s1", "env":"e1"}}`)} - - updates := map[string]state.RawConfig{ - "host1": hostConfig, - "srv1": senvConfig, - } - rc.onAPMTracingUpdate(updates, callback) - - assert.Len(t, callbackCalls, 2) - assert.Empty(t, callbackCalls["host1"]) - assert.Empty(t, callbackCalls["srv1"]) - actualBytes, err := os.ReadFile(apmTracingFilePath) - assert.NoError(t, err) - assert.Equal(t, "tracing_enabled: true\nenv: someEnv\nservice_env_configs:\n- service: s1\n env: e1\n tracing_enabled: false\n", string(actualBytes)) - }) - - t.Run("lowest config-id wins", func(t *testing.T) { - defer mkTemp(t)() - rc := rcClient{} - callbackCalls := map[string]string{} - callback := func(id string, status state.ApplyStatus) { - callbackCalls[id] = status.Error - } - - hostConfig := state.RawConfig{Config: []byte(`{"id":"abc","infra_target": {"tags":["k:v"]},"lib_config":{"env":"someEnv","tracing_enabled":true}}`)} - hostConfig2 := state.RawConfig{Config: []byte(`{"id":"xyz","infra_target": {"tags":["k:v"]},"lib_config":{"env":"someEnv2","tracing_enabled":true}}`)} - - updates := map[string]state.RawConfig{ - "abc": hostConfig, - "xyz": hostConfig2, - } - rc.onAPMTracingUpdate(updates, callback) - - assert.Len(t, callbackCalls, 2) - assert.Empty(t, callbackCalls["abc"]) - assert.Equal(t, "DUPLICATE_HOST_CONFIG", callbackCalls["xyz"]) - actualBytes, err := os.ReadFile(apmTracingFilePath) - assert.NoError(t, err) - assert.Equal(t, "tracing_enabled: true\nenv: someEnv\nservice_env_configs: []\n", string(actualBytes)) - }) - - t.Run("bad updates report failure", func(t *testing.T) { - defer mkTemp(t)() - rc := rcClient{} - calls := map[string]string{} - callback := func(id string, status state.ApplyStatus) { - calls[id] = status.Error - } - - missingTarget := state.RawConfig{Config: []byte(`{}`)} - badPayload := state.RawConfig{Config: []byte(`{`)} - - updates := map[string]state.RawConfig{ - "missingTarget": missingTarget, - "badPayload": badPayload, - } - rc.onAPMTracingUpdate(updates, callback) - - assert.Len(t, calls, 2) - assert.Equal(t, calls["missingTarget"], MissingServiceTarget) - assert.Equal(t, calls["badPayload"], InvalidAPMTracingPayload) - }) -} diff --git a/omnibus/package-scripts/agent-deb/prerm b/omnibus/package-scripts/agent-deb/prerm index d1f7efd0f04b0..19c8714ec2cb9 100755 --- a/omnibus/package-scripts/agent-deb/prerm +++ b/omnibus/package-scripts/agent-deb/prerm @@ -167,18 +167,10 @@ remove_persist_integration_files() fi } -remove_apm_remote_config() -{ - if [ -f "$INSTALL_DIR/run/inject_config.yaml" ]; then - echo "Removing APM remote configuration file" - rm "$INSTALL_DIR/run/inject_config.yaml" || true - fi -} - case "$1" in #this can't be merged with the later case block because running 'remove_custom_integrations' would defeat the persisting integrations feature upgrade) # We're upgrading. - if [ -f "$INSTALL_DIR/embedded/bin/python" ]; then + if [ -f "$INSTALL_DIR/embedded/bin/python" ]; then ${INSTALL_DIR}/embedded/bin/python "${INSTALL_DIR}/python-scripts/prerm.py" "${INSTALL_DIR}" || true fi ;; diff --git a/omnibus/package-scripts/agent-rpm/prerm b/omnibus/package-scripts/agent-rpm/prerm index 2506a3a13c269..9568f9b55f5ee 100755 --- a/omnibus/package-scripts/agent-rpm/prerm +++ b/omnibus/package-scripts/agent-rpm/prerm @@ -151,14 +151,6 @@ remove_persist_integration_files() fi } -remove_apm_remote_config() -{ - if [ -f "$INSTALL_DIR/run/inject_config.yaml" ]; then - echo "Removing APM remote configuration file" - rm "$INSTALL_DIR/run/inject_config.yaml" || true - fi -} - case "$*" in 1) # We're upgrading. From 4ee1010d8c0f203f084a904ad7f753fc43f50ea5 Mon Sep 17 00:00:00 2001 From: Ankit Patel <8731662+ankitpatel96@users.noreply.github.com> Date: Tue, 26 Nov 2024 16:44:20 -0500 Subject: [PATCH 072/439] [OTEL-2239] Convert comp/serializer/compression into new style components (#30688) Co-authored-by: dustmop --- cmd/agent/subcommands/diagnose/command.go | 4 +- cmd/agent/subcommands/flare/command.go | 4 +- cmd/agent/subcommands/jmx/command.go | 13 ++-- cmd/agent/subcommands/run/command.go | 17 +++-- cmd/agent/subcommands/snmp/command.go | 6 +- .../subcommands/run/command.go | 4 +- .../subcommands/diagnose/command.go | 4 +- .../subcommands/start/command.go | 4 +- cmd/dogstatsd/subcommands/start/command.go | 4 +- cmd/otel-agent/subcommands/run/command.go | 10 +-- cmd/serverless-init/metric/metric_test.go | 4 +- cmd/systray/command/command.go | 4 +- comp/agent/bundle_test.go | 4 +- comp/aggregator/bundle_test.go | 4 +- .../demultiplexerimpl/demultiplexer.go | 2 +- .../demultiplexer_fake_sampler_mock.go | 2 +- .../demultiplexerimpl/demultiplexer_mock.go | 4 +- .../demultiplexerimpl/status_test.go | 4 +- .../test_agent_demultiplexer.go | 2 +- .../sendermanager.go | 2 +- .../collectorimpl/collector_demux_test.go | 4 +- comp/dogstatsd/server/server_util_test.go | 8 +-- .../otlp/integrationtest/integration_test.go | 10 +-- .../{compressionimpl => common}/common.go | 4 +- .../compressionimpl/no_compression.go | 31 --------- .../compressionimpl/zlib_and_zstd.go | 44 ------------ .../compressionimpl/zlib_no_zstd.go | 44 ------------ .../compression/{ => def}/component.go | 0 comp/serializer/compression/doc.go | 7 ++ .../compression_mock.go => fx-mock/fx.go} | 15 +++-- comp/serializer/compression/fx-zlib/fx.go | 21 ++++++ comp/serializer/compression/fx-zstd/fx.go | 21 ++++++ comp/serializer/compression/fx/fx.go | 21 ++++++ comp/serializer/compression/go.mod | 2 +- .../strategy => impl-noop}/no_strategy.go | 19 ++++-- .../strategy => impl-zlib}/zlib_strategy.go | 19 ++++-- .../strategy => impl-zstd}/zstd_strategy.go | 26 +++++-- .../compression/{ => mock}/component_mock.go | 7 +- comp/serializer/compression/selector/def.go | 21 ++++++ .../compression/selector/no-zlib-no-zstd.go | 27 ++++++++ .../compression/selector/zlib-and-zstd.go | 43 ++++++++++++ .../compression/selector/zlib-no-zstd.go | 42 ++++++++++++ pkg/aggregator/aggregator_test.go | 4 +- pkg/aggregator/check_sampler_bench_test.go | 3 +- pkg/aggregator/demultiplexer_agent.go | 2 +- pkg/aggregator/demultiplexer_agent_test.go | 8 +-- pkg/aggregator/demultiplexer_mock.go | 2 +- pkg/aggregator/demultiplexer_serverless.go | 4 +- pkg/aggregator/demultiplexer_test.go | 6 +- pkg/aggregator/mocksender/mocksender.go | 5 +- pkg/aggregator/sender_test.go | 4 +- pkg/cli/subcommands/check/command.go | 4 +- pkg/cli/subcommands/dcaflare/command.go | 4 +- pkg/collector/corechecks/snmp/snmp_test.go | 4 +- .../internal/metrics/events_test.go | 21 +++--- .../internal/metrics/iterable_series.go | 2 +- .../internal/metrics/series_test.go | 37 +++++----- .../internal/metrics/service_checks_test.go | 10 +-- .../internal/metrics/sketch_benchmark_test.go | 8 +-- .../internal/metrics/sketch_series_list.go | 2 +- .../internal/metrics/sketch_series_test.go | 35 +++++----- pkg/serializer/internal/stream/compressor.go | 2 +- .../internal/stream/compressor_test.go | 53 ++++++++------- .../internal/stream/json_payload_builder.go | 2 +- pkg/serializer/serializer.go | 2 +- pkg/serializer/serializer_benchmark_test.go | 8 +-- pkg/serializer/serializer_test.go | 67 ++++++++++--------- pkg/serializer/series_benchmark_test.go | 9 ++- pkg/serializer/split/split.go | 2 +- pkg/serializer/split/split_test.go | 25 +++---- .../invocationlifecycle/lifecycle_test.go | 7 +- pkg/serverless/logs/logs_test.go | 4 +- .../metrics/enhanced_metrics_test.go | 7 +- tasks/components.py | 1 - test/otel/dependencies.go | 2 + test/otel/go.mod | 1 + .../dogstatsd/receive_and_forward_test.go | 11 +-- 77 files changed, 512 insertions(+), 394 deletions(-) rename comp/serializer/compression/{compressionimpl => common}/common.go (81%) delete mode 100644 comp/serializer/compression/compressionimpl/no_compression.go delete mode 100644 comp/serializer/compression/compressionimpl/zlib_and_zstd.go delete mode 100644 comp/serializer/compression/compressionimpl/zlib_no_zstd.go rename comp/serializer/compression/{ => def}/component.go (100%) create mode 100644 comp/serializer/compression/doc.go rename comp/serializer/compression/{compressionimpl/compression_mock.go => fx-mock/fx.go} (59%) create mode 100644 comp/serializer/compression/fx-zlib/fx.go create mode 100644 comp/serializer/compression/fx-zstd/fx.go create mode 100644 comp/serializer/compression/fx/fx.go rename comp/serializer/compression/{compressionimpl/strategy => impl-noop}/no_strategy.go (74%) rename comp/serializer/compression/{compressionimpl/strategy => impl-zlib}/zlib_strategy.go (81%) rename comp/serializer/compression/{compressionimpl/strategy => impl-zstd}/zstd_strategy.go (69%) rename comp/serializer/compression/{ => mock}/component_mock.go (63%) create mode 100644 comp/serializer/compression/selector/def.go create mode 100644 comp/serializer/compression/selector/no-zlib-no-zstd.go create mode 100644 comp/serializer/compression/selector/zlib-and-zstd.go create mode 100644 comp/serializer/compression/selector/zlib-no-zstd.go diff --git a/cmd/agent/subcommands/diagnose/command.go b/cmd/agent/subcommands/diagnose/command.go index d2ab52827e8c1..bccd76a31820a 100644 --- a/cmd/agent/subcommands/diagnose/command.go +++ b/cmd/agent/subcommands/diagnose/command.go @@ -29,7 +29,7 @@ import ( workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" workloadmetafx "github.com/DataDog/datadog-agent/comp/core/workloadmeta/fx" haagentfx "github.com/DataDog/datadog-agent/comp/haagent/fx" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + compressionfx "github.com/DataDog/datadog-agent/comp/serializer/compression/fx" "github.com/DataDog/datadog-agent/pkg/api/util" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/diagnose" @@ -105,7 +105,7 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { fx.Supply(optional.NewNoneOption[collector.Component]()), dualTaggerfx.Module(common.DualTaggerParams()), autodiscoveryimpl.Module(), - compressionimpl.Module(), + compressionfx.Module(), diagnosesendermanagerimpl.Module(), haagentfx.Module(), ) diff --git a/cmd/agent/subcommands/flare/command.go b/cmd/agent/subcommands/flare/command.go index 7f13516cdd8d4..f6789a2fc1b47 100644 --- a/cmd/agent/subcommands/flare/command.go +++ b/cmd/agent/subcommands/flare/command.go @@ -49,7 +49,7 @@ import ( "github.com/DataDog/datadog-agent/comp/metadata/inventoryhost/inventoryhostimpl" "github.com/DataDog/datadog-agent/comp/metadata/inventoryotel/inventoryotelimpl" "github.com/DataDog/datadog-agent/comp/metadata/resources/resourcesimpl" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + compressionfx "github.com/DataDog/datadog-agent/comp/serializer/compression/fx" "github.com/DataDog/datadog-agent/pkg/api/util" "github.com/DataDog/datadog-agent/pkg/config/settings" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" @@ -130,7 +130,7 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { localTaggerfx.Module(tagger.Params{}), autodiscoveryimpl.Module(), fx.Supply(optional.NewNoneOption[collector.Component]()), - compressionimpl.Module(), + compressionfx.Module(), diagnosesendermanagerimpl.Module(), // We need inventoryagent to fill the status page generated by the flare. inventoryagentimpl.Module(), diff --git a/cmd/agent/subcommands/jmx/command.go b/cmd/agent/subcommands/jmx/command.go index c7df8718fa799..22b595198fc43 100644 --- a/cmd/agent/subcommands/jmx/command.go +++ b/cmd/agent/subcommands/jmx/command.go @@ -25,14 +25,10 @@ import ( "github.com/DataDog/datadog-agent/comp/agent/jmxlogger/jmxloggerimpl" "github.com/DataDog/datadog-agent/comp/aggregator/diagnosesendermanager" "github.com/DataDog/datadog-agent/comp/aggregator/diagnosesendermanager/diagnosesendermanagerimpl" - authtokenimpl "github.com/DataDog/datadog-agent/comp/api/authtoken/createandfetchimpl" - "github.com/DataDog/datadog-agent/comp/collector/collector" - logsAgent "github.com/DataDog/datadog-agent/comp/logs/agent" - integrations "github.com/DataDog/datadog-agent/comp/logs/integrations/def" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" - "github.com/DataDog/datadog-agent/comp/api/api/apiimpl" internalAPI "github.com/DataDog/datadog-agent/comp/api/api/def" + authtokenimpl "github.com/DataDog/datadog-agent/comp/api/authtoken/createandfetchimpl" + "github.com/DataDog/datadog-agent/comp/collector/collector" "github.com/DataDog/datadog-agent/comp/core" "github.com/DataDog/datadog-agent/comp/core/autodiscovery" "github.com/DataDog/datadog-agent/comp/core/autodiscovery/autodiscoveryimpl" @@ -54,8 +50,11 @@ import ( replay "github.com/DataDog/datadog-agent/comp/dogstatsd/replay/def" dogstatsdServer "github.com/DataDog/datadog-agent/comp/dogstatsd/server" haagentfx "github.com/DataDog/datadog-agent/comp/haagent/fx" + logsAgent "github.com/DataDog/datadog-agent/comp/logs/agent" + integrations "github.com/DataDog/datadog-agent/comp/logs/integrations/def" "github.com/DataDog/datadog-agent/comp/remote-config/rcservice" "github.com/DataDog/datadog-agent/comp/remote-config/rcservicemrf" + compressionfx "github.com/DataDog/datadog-agent/comp/serializer/compression/fx" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" "github.com/DataDog/datadog-agent/pkg/cli/standalone" pkgcollector "github.com/DataDog/datadog-agent/pkg/collector" @@ -130,7 +129,7 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { fx.Supply(cliParams), fx.Supply(params), core.Bundle(), - compressionimpl.Module(), + compressionfx.Module(), diagnosesendermanagerimpl.Module(), fx.Supply(func(diagnoseSenderManager diagnosesendermanager.Component) (sender.SenderManager, error) { return diagnoseSenderManager.LazyGetSenderManager() diff --git a/cmd/agent/subcommands/run/command.go b/cmd/agent/subcommands/run/command.go index 8d9aca443be11..9c126f014aab2 100644 --- a/cmd/agent/subcommands/run/command.go +++ b/cmd/agent/subcommands/run/command.go @@ -32,11 +32,14 @@ import ( agenttelemetry "github.com/DataDog/datadog-agent/comp/core/agenttelemetry/def" agenttelemetryfx "github.com/DataDog/datadog-agent/comp/core/agenttelemetry/fx" haagentfx "github.com/DataDog/datadog-agent/comp/haagent/fx" + compressionfx "github.com/DataDog/datadog-agent/comp/serializer/compression/fx" // checks implemented as components + "github.com/DataDog/datadog-agent/comp/agent" // core components "github.com/DataDog/datadog-agent/comp/agent/autoexit" + "github.com/DataDog/datadog-agent/comp/agent/cloudfoundrycontainer" "github.com/DataDog/datadog-agent/comp/agent/expvarserver" "github.com/DataDog/datadog-agent/comp/agent/jmxlogger" "github.com/DataDog/datadog-agent/comp/agent/jmxlogger/jmxloggerimpl" @@ -57,17 +60,12 @@ import ( "github.com/DataDog/datadog-agent/comp/core/flare" "github.com/DataDog/datadog-agent/comp/core/gui" "github.com/DataDog/datadog-agent/comp/core/gui/guiimpl" - log "github.com/DataDog/datadog-agent/comp/core/log/def" - "github.com/DataDog/datadog-agent/comp/core/pid" - "github.com/DataDog/datadog-agent/comp/core/pid/pidimpl" - "github.com/DataDog/datadog-agent/comp/process" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" - - "github.com/DataDog/datadog-agent/comp/agent" - "github.com/DataDog/datadog-agent/comp/agent/cloudfoundrycontainer" healthprobe "github.com/DataDog/datadog-agent/comp/core/healthprobe/def" healthprobefx "github.com/DataDog/datadog-agent/comp/core/healthprobe/fx" + log "github.com/DataDog/datadog-agent/comp/core/log/def" lsof "github.com/DataDog/datadog-agent/comp/core/lsof/fx" + "github.com/DataDog/datadog-agent/comp/core/pid" + "github.com/DataDog/datadog-agent/comp/core/pid/pidimpl" remoteagentregistryfx "github.com/DataDog/datadog-agent/comp/core/remoteagentregistry/fx" "github.com/DataDog/datadog-agent/comp/core/secrets" "github.com/DataDog/datadog-agent/comp/core/settings" @@ -117,6 +115,7 @@ import ( "github.com/DataDog/datadog-agent/comp/otelcol" otelcollector "github.com/DataDog/datadog-agent/comp/otelcol/collector/def" "github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline" + "github.com/DataDog/datadog-agent/comp/process" processAgent "github.com/DataDog/datadog-agent/comp/process/agent" processagentStatusImpl "github.com/DataDog/datadog-agent/comp/process/status/statusimpl" rdnsquerierfx "github.com/DataDog/datadog-agent/comp/rdnsquerier/fx" @@ -381,7 +380,7 @@ func getSharedFxOption() fx.Option { authtokenimpl.Module(), apiimpl.Module(), commonendpoints.Module(), - compressionimpl.Module(), + compressionfx.Module(), demultiplexerimpl.Module(demultiplexerimpl.NewDefaultParams(demultiplexerimpl.WithDogstatsdNoAggregationPipelineConfig())), demultiplexerendpointfx.Module(), dogstatsd.Bundle(dogstatsdServer.Params{Serverless: false}), diff --git a/cmd/agent/subcommands/snmp/command.go b/cmd/agent/subcommands/snmp/command.go index 5ab675e9d7a3e..4dba953403985 100644 --- a/cmd/agent/subcommands/snmp/command.go +++ b/cmd/agent/subcommands/snmp/command.go @@ -27,7 +27,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" haagentfx "github.com/DataDog/datadog-agent/comp/haagent/fx" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + compressionfx "github.com/DataDog/datadog-agent/comp/serializer/compression/fx" snmpscan "github.com/DataDog/datadog-agent/comp/snmpscan/def" snmpscanfx "github.com/DataDog/datadog-agent/comp/snmpscan/fx" "github.com/DataDog/datadog-agent/pkg/snmp/snmpparse" @@ -98,8 +98,8 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { forwarder.Bundle(defaultforwarder.NewParams(defaultforwarder.WithFeatures(defaultforwarder.CoreFeatures))), orchestratorimpl.Module(orchestratorimpl.NewDefaultParams()), eventplatformimpl.Module(eventplatformimpl.NewDefaultParams()), + compressionfx.Module(), nooptagger.Module(), - compressionimpl.Module(), eventplatformreceiverimpl.Module(), haagentfx.Module(), ) @@ -162,8 +162,8 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { forwarder.Bundle(defaultforwarder.NewParams(defaultforwarder.WithFeatures(defaultforwarder.CoreFeatures))), eventplatformimpl.Module(eventplatformimpl.NewDefaultParams()), eventplatformreceiverimpl.Module(), + compressionfx.Module(), nooptagger.Module(), - compressionimpl.Module(), snmpscanfx.Module(), haagentfx.Module(), ) diff --git a/cmd/cluster-agent-cloudfoundry/subcommands/run/command.go b/cmd/cluster-agent-cloudfoundry/subcommands/run/command.go index de5c2a6251426..42e40b88a7221 100644 --- a/cmd/cluster-agent-cloudfoundry/subcommands/run/command.go +++ b/cmd/cluster-agent-cloudfoundry/subcommands/run/command.go @@ -51,7 +51,7 @@ import ( orchestratorForwarderImpl "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" haagentfx "github.com/DataDog/datadog-agent/comp/haagent/fx" integrations "github.com/DataDog/datadog-agent/comp/logs/integrations/def" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + compressionfx "github.com/DataDog/datadog-agent/comp/serializer/compression/fx" "github.com/DataDog/datadog-agent/pkg/clusteragent" "github.com/DataDog/datadog-agent/pkg/clusteragent/clusterchecks" pkgcollector "github.com/DataDog/datadog-agent/pkg/collector" @@ -86,7 +86,7 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { }), core.Bundle(), forwarder.Bundle(defaultforwarder.NewParams(defaultforwarder.WithResolvers())), - compressionimpl.Module(), + compressionfx.Module(), demultiplexerimpl.Module(demultiplexerimpl.NewDefaultParams()), orchestratorForwarderImpl.Module(orchestratorForwarderImpl.NewDisabledParams()), eventplatformimpl.Module(eventplatformimpl.NewDisabledParams()), diff --git a/cmd/cluster-agent/subcommands/diagnose/command.go b/cmd/cluster-agent/subcommands/diagnose/command.go index 8a4a02b1d9b76..5e2521b60f8c3 100644 --- a/cmd/cluster-agent/subcommands/diagnose/command.go +++ b/cmd/cluster-agent/subcommands/diagnose/command.go @@ -18,7 +18,7 @@ import ( "github.com/DataDog/datadog-agent/comp/core/config" log "github.com/DataDog/datadog-agent/comp/core/log/def" "github.com/DataDog/datadog-agent/comp/core/secrets" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + compressionfx "github.com/DataDog/datadog-agent/comp/serializer/compression/fx" "github.com/DataDog/datadog-agent/pkg/diagnose" "github.com/DataDog/datadog-agent/pkg/diagnose/diagnosis" "github.com/DataDog/datadog-agent/pkg/util/fxutil" @@ -38,7 +38,7 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { LogParams: log.ForOneShot(command.LoggerName, "off", true), // no need to show regular logs }), core.Bundle(), - compressionimpl.Module(), + compressionfx.Module(), ) }, } diff --git a/cmd/cluster-agent/subcommands/start/command.go b/cmd/cluster-agent/subcommands/start/command.go index e474997485de5..ed0030f0183cd 100644 --- a/cmd/cluster-agent/subcommands/start/command.go +++ b/cmd/cluster-agent/subcommands/start/command.go @@ -19,6 +19,7 @@ import ( "syscall" "time" + compressionfx "github.com/DataDog/datadog-agent/comp/serializer/compression/fx" "github.com/DataDog/datadog-agent/pkg/remoteconfig/state" "github.com/DataDog/datadog-agent/pkg/serializer" "github.com/DataDog/datadog-agent/pkg/util/defaultpaths" @@ -65,7 +66,6 @@ import ( rccomp "github.com/DataDog/datadog-agent/comp/remote-config/rcservice" "github.com/DataDog/datadog-agent/comp/remote-config/rcservice/rcserviceimpl" "github.com/DataDog/datadog-agent/comp/remote-config/rctelemetryreporter/rctelemetryreporterimpl" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" "github.com/DataDog/datadog-agent/pkg/clusteragent" admissionpkg "github.com/DataDog/datadog-agent/pkg/clusteragent/admission" admissionpatch "github.com/DataDog/datadog-agent/pkg/clusteragent/admission/patch" @@ -138,7 +138,7 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { }), core.Bundle(), forwarder.Bundle(defaultforwarder.NewParams(defaultforwarder.WithResolvers(), defaultforwarder.WithDisableAPIKeyChecking())), - compressionimpl.Module(), + compressionfx.Module(), demultiplexerimpl.Module(demultiplexerimpl.NewDefaultParams()), orchestratorForwarderImpl.Module(orchestratorForwarderImpl.NewDefaultParams()), eventplatformimpl.Module(eventplatformimpl.NewDisabledParams()), diff --git a/cmd/dogstatsd/subcommands/start/command.go b/cmd/dogstatsd/subcommands/start/command.go index 1b67382c861a3..245ff9139caff 100644 --- a/cmd/dogstatsd/subcommands/start/command.go +++ b/cmd/dogstatsd/subcommands/start/command.go @@ -54,7 +54,7 @@ import ( "github.com/DataDog/datadog-agent/comp/metadata/resources/resourcesimpl" "github.com/DataDog/datadog-agent/comp/metadata/runner" metadatarunnerimpl "github.com/DataDog/datadog-agent/comp/metadata/runner/runnerimpl" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + compressionfx "github.com/DataDog/datadog-agent/comp/serializer/compression/fx" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/serializer" "github.com/DataDog/datadog-agent/pkg/status/health" @@ -142,7 +142,7 @@ func RunDogstatsdFct(cliParams *CLIParams, defaultConfPath string, defaultLogFil AgentType: workloadmeta.NodeAgent, InitHelper: common.GetWorkloadmetaInit(), }), - compressionimpl.Module(), + compressionfx.Module(), demultiplexerimpl.Module(demultiplexerimpl.NewDefaultParams( demultiplexerimpl.WithContinueOnMissingHostname(), demultiplexerimpl.WithDogstatsdNoAggregationPipelineConfig(), diff --git a/cmd/otel-agent/subcommands/run/command.go b/cmd/otel-agent/subcommands/run/command.go index 776201e617a1c..99106cc0b573d 100644 --- a/cmd/otel-agent/subcommands/run/command.go +++ b/cmd/otel-agent/subcommands/run/command.go @@ -46,8 +46,7 @@ import ( "github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline/logsagentpipelineimpl" "github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter" "github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient" - "github.com/DataDog/datadog-agent/comp/serializer/compression" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl/strategy" + compressionfxzlib "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-zlib" traceagentfx "github.com/DataDog/datadog-agent/comp/trace/agent/fx" traceagentcomp "github.com/DataDog/datadog-agent/comp/trace/agent/impl" gzipfx "github.com/DataDog/datadog-agent/comp/trace/compression/fx-gzip" @@ -152,11 +151,8 @@ func runOTelAgentCommand(ctx context.Context, params *subcommands.GlobalParams, return log.ForDaemon(params.LoggerName, "log_file", pkgconfigsetup.DefaultOTelAgentLogFile) }), logsagentpipelineimpl.Module(), - // We create strategy.ZlibStrategy directly to avoid build tags - fx.Provide(strategy.NewZlibStrategy), - fx.Provide(func(s *strategy.ZlibStrategy) compression.Component { - return s - }), + // We directly select fxzlib + compressionfxzlib.Module(), fx.Provide(serializer.NewSerializer), // For FX to provide the serializer.MetricSerializer from the serializer.Serializer fx.Provide(func(s *serializer.Serializer) serializer.MetricSerializer { diff --git a/cmd/serverless-init/metric/metric_test.go b/cmd/serverless-init/metric/metric_test.go index d842e3efbfd4b..facd4acabca0c 100644 --- a/cmd/serverless-init/metric/metric_test.go +++ b/cmd/serverless-init/metric/metric_test.go @@ -17,7 +17,7 @@ import ( "github.com/DataDog/datadog-agent/comp/core/hostname/hostnameimpl" log "github.com/DataDog/datadog-agent/comp/core/log/def" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" "github.com/DataDog/datadog-agent/pkg/util/fxutil" ) @@ -65,5 +65,5 @@ func TestAddShutdownMetric(t *testing.T) { } func createDemultiplexer(t *testing.T) demultiplexer.FakeSamplerMock { - return fxutil.Test[demultiplexer.FakeSamplerMock](t, fx.Provide(func() log.Component { return logmock.New(t) }), compressionimpl.MockModule(), demultiplexerimpl.FakeSamplerMockModule(), hostnameimpl.MockModule()) + return fxutil.Test[demultiplexer.FakeSamplerMock](t, fx.Provide(func() log.Component { return logmock.New(t) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule(), hostnameimpl.MockModule()) } diff --git a/cmd/systray/command/command.go b/cmd/systray/command/command.go index df2415c7164ef..2774a0731eea6 100644 --- a/cmd/systray/command/command.go +++ b/cmd/systray/command/command.go @@ -29,7 +29,7 @@ import ( workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" haagentfx "github.com/DataDog/datadog-agent/comp/haagent/fx" "github.com/DataDog/datadog-agent/comp/metadata/inventoryagent/inventoryagentimpl" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + compressionfx "github.com/DataDog/datadog-agent/comp/serializer/compression/fx" "github.com/DataDog/datadog-agent/comp/systray/systray" "github.com/DataDog/datadog-agent/comp/systray/systray/systrayimpl" "github.com/DataDog/datadog-agent/pkg/serializer" @@ -110,7 +110,7 @@ func MakeCommand() *cobra.Command { noopAutodiscover.Module(), fx.Supply(optional.NewNoneOption[workloadmeta.Component]()), fx.Supply(optional.NewNoneOption[collector.Component]()), - compressionimpl.Module(), + compressionfx.Module(), diagnosesendermanagerimpl.Module(), nooptagger.Module(), authtokenimpl.Module(), diff --git a/comp/agent/bundle_test.go b/comp/agent/bundle_test.go index 1f52881bc6596..8a1820206ee81 100644 --- a/comp/agent/bundle_test.go +++ b/comp/agent/bundle_test.go @@ -16,7 +16,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" "github.com/DataDog/datadog-agent/pkg/util/fxutil" ) @@ -24,7 +24,7 @@ func TestBundleDependencies(t *testing.T) { fxutil.TestBundle(t, Bundle(jmxloggerimpl.NewDefaultParams()), core.MockBundle(), - compressionimpl.MockModule(), + compressionmock.MockModule(), defaultforwarder.MockModule(), orchestratorimpl.MockModule(), eventplatformimpl.MockModule(), diff --git a/comp/aggregator/bundle_test.go b/comp/aggregator/bundle_test.go index 9b31c53698d21..2a38d5a0ac603 100644 --- a/comp/aggregator/bundle_test.go +++ b/comp/aggregator/bundle_test.go @@ -15,14 +15,14 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" orchestratorForwarderImpl "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" "github.com/DataDog/datadog-agent/pkg/util/fxutil" ) func TestBundleDependencies(t *testing.T) { fxutil.TestBundle(t, Bundle(demultiplexerimpl.Params{}), core.MockBundle(), - compressionimpl.MockModule(), + compressionmock.MockModule(), defaultforwarder.MockModule(), orchestratorForwarderImpl.MockModule(), eventplatformimpl.MockModule(), diff --git a/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer.go b/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer.go index 80a4817d42804..b6b1dd7d56310 100644 --- a/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer.go +++ b/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer.go @@ -21,7 +21,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" orchestratorforwarder "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator" haagent "github.com/DataDog/datadog-agent/comp/haagent/def" - "github.com/DataDog/datadog-agent/comp/serializer/compression" + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" "github.com/DataDog/datadog-agent/pkg/aggregator" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" "github.com/DataDog/datadog-agent/pkg/util/fxutil" diff --git a/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer_fake_sampler_mock.go b/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer_fake_sampler_mock.go index 95bd541f9470c..53e3beb5f77d6 100644 --- a/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer_fake_sampler_mock.go +++ b/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer_fake_sampler_mock.go @@ -16,7 +16,7 @@ import ( demultiplexerComp "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" "github.com/DataDog/datadog-agent/comp/core/hostname" log "github.com/DataDog/datadog-agent/comp/core/log/def" - "github.com/DataDog/datadog-agent/comp/serializer/compression" + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" "github.com/DataDog/datadog-agent/pkg/aggregator" "github.com/DataDog/datadog-agent/pkg/util/fxutil" ) diff --git a/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer_mock.go b/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer_mock.go index eb8cfb684bc75..942c10771a63a 100644 --- a/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer_mock.go +++ b/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer_mock.go @@ -16,7 +16,7 @@ import ( log "github.com/DataDog/datadog-agent/comp/core/log/def" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" "github.com/DataDog/datadog-agent/pkg/aggregator" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" "github.com/DataDog/datadog-agent/pkg/util/fxutil" @@ -76,7 +76,7 @@ func newMock(deps mockDependencies) MockProvides { Log: deps.Log, Hostname: deps.Hostname, SharedForwarder: defaultforwarder.NoopForwarder{}, - Compressor: compressionimpl.NewMockCompressor(), + Compressor: compressionmock.NewMockCompressor(), HaAgent: haagentmock.NewMockHaAgent(), } diff --git a/comp/aggregator/demultiplexer/demultiplexerimpl/status_test.go b/comp/aggregator/demultiplexer/demultiplexerimpl/status_test.go index e5c620f88db3c..0e60ca002a79e 100644 --- a/comp/aggregator/demultiplexer/demultiplexerimpl/status_test.go +++ b/comp/aggregator/demultiplexer/demultiplexerimpl/status_test.go @@ -21,7 +21,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" "github.com/DataDog/datadog-agent/pkg/util/fxutil" ) @@ -60,7 +60,7 @@ func TestStatusOutPut(t *testing.T) { deps := fxutil.Test[dependencies](t, fx.Options( core.MockBundle(), - compressionimpl.MockModule(), + compressionmock.MockModule(), defaultforwarder.MockModule(), haagentmock.Module(), orchestratorimpl.MockModule(), diff --git a/comp/aggregator/demultiplexer/demultiplexerimpl/test_agent_demultiplexer.go b/comp/aggregator/demultiplexer/demultiplexerimpl/test_agent_demultiplexer.go index 9e051328c961d..431bcdb8c06e2 100644 --- a/comp/aggregator/demultiplexer/demultiplexerimpl/test_agent_demultiplexer.go +++ b/comp/aggregator/demultiplexer/demultiplexerimpl/test_agent_demultiplexer.go @@ -19,7 +19,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" - "github.com/DataDog/datadog-agent/comp/serializer/compression" + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" "github.com/DataDog/datadog-agent/pkg/aggregator" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/logs/message" diff --git a/comp/aggregator/diagnosesendermanager/diagnosesendermanagerimpl/sendermanager.go b/comp/aggregator/diagnosesendermanager/diagnosesendermanagerimpl/sendermanager.go index b48e237937c57..9e3c058314c79 100644 --- a/comp/aggregator/diagnosesendermanager/diagnosesendermanagerimpl/sendermanager.go +++ b/comp/aggregator/diagnosesendermanager/diagnosesendermanagerimpl/sendermanager.go @@ -20,7 +20,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" haagent "github.com/DataDog/datadog-agent/comp/haagent/def" - "github.com/DataDog/datadog-agent/comp/serializer/compression" + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" "github.com/DataDog/datadog-agent/pkg/aggregator" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" "github.com/DataDog/datadog-agent/pkg/util/fxutil" diff --git a/comp/collector/collector/collectorimpl/collector_demux_test.go b/comp/collector/collector/collectorimpl/collector_demux_test.go index d7e3037cb1c75..b2daf0bc28fd9 100644 --- a/comp/collector/collector/collectorimpl/collector_demux_test.go +++ b/comp/collector/collector/collectorimpl/collector_demux_test.go @@ -21,12 +21,12 @@ import ( "github.com/DataDog/datadog-agent/comp/core/config" log "github.com/DataDog/datadog-agent/comp/core/log/def" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" + compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" checkid "github.com/DataDog/datadog-agent/pkg/collector/check/id" "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer/demultiplexerimpl" "github.com/DataDog/datadog-agent/comp/core/hostname/hostnameimpl" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" "github.com/DataDog/datadog-agent/pkg/collector/check/stub" "github.com/DataDog/datadog-agent/pkg/metrics" @@ -81,7 +81,7 @@ func (s *SenderManagerProxy) GetDefaultSender() (sender.Sender, error) { } func (suite *CollectorDemuxTestSuite) SetupTest() { - suite.demux = fxutil.Test[demultiplexer.FakeSamplerMock](suite.T(), fx.Provide(func() log.Component { return logmock.New(suite.T()) }), compressionimpl.MockModule(), demultiplexerimpl.FakeSamplerMockModule(), hostnameimpl.MockModule()) + suite.demux = fxutil.Test[demultiplexer.FakeSamplerMock](suite.T(), fx.Provide(func() log.Component { return logmock.New(suite.T()) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule(), hostnameimpl.MockModule()) suite.SenderManagerMock = NewSenderManagerMock(suite.demux) suite.c = newCollector(fxutil.Test[dependencies](suite.T(), core.MockBundle(), diff --git a/comp/dogstatsd/server/server_util_test.go b/comp/dogstatsd/server/server_util_test.go index 4de92ea776801..33355d4cbc982 100644 --- a/comp/dogstatsd/server/server_util_test.go +++ b/comp/dogstatsd/server/server_util_test.go @@ -37,7 +37,7 @@ import ( replaymock "github.com/DataDog/datadog-agent/comp/dogstatsd/replay/fx-mock" serverdebug "github.com/DataDog/datadog-agent/comp/dogstatsd/serverDebug" "github.com/DataDog/datadog-agent/comp/dogstatsd/serverDebug/serverdebugimpl" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" "github.com/DataDog/datadog-agent/pkg/metrics" "github.com/DataDog/datadog-agent/pkg/util/fxutil" "github.com/DataDog/datadog-agent/pkg/util/optional" @@ -88,7 +88,7 @@ func fulfillDepsWithConfigOverride(t testing.TB, overrides map[string]interface{ Overrides: overrides, }), replaymock.MockModule(), - compressionimpl.MockModule(), + compressionmock.MockModule(), pidmapimpl.Module(), demultiplexerimpl.FakeSamplerMockModule(), workloadmetafxmock.MockModule(workloadmeta.NewParams()), @@ -104,7 +104,7 @@ func fulfillDepsWithConfigYaml(t testing.TB, yaml string) serverDeps { hostnameimpl.MockModule(), serverdebugimpl.MockModule(), replaymock.MockModule(), - compressionimpl.MockModule(), + compressionmock.MockModule(), pidmapimpl.Module(), demultiplexerimpl.FakeSamplerMockModule(), workloadmetafxmock.MockModule(workloadmeta.NewParams()), @@ -123,7 +123,7 @@ func fulfillDepsWithInactiveServer(t *testing.T, cfg map[string]interface{}) (de }), fx.Supply(Params{Serverless: false}), replaymock.MockModule(), - compressionimpl.MockModule(), + compressionmock.MockModule(), pidmapimpl.Module(), demultiplexerimpl.FakeSamplerMockModule(), workloadmetafxmock.MockModule(workloadmeta.NewParams()), diff --git a/comp/otelcol/otlp/integrationtest/integration_test.go b/comp/otelcol/otlp/integrationtest/integration_test.go index 868b0b211fd74..003850a691979 100644 --- a/comp/otelcol/otlp/integrationtest/integration_test.go +++ b/comp/otelcol/otlp/integrationtest/integration_test.go @@ -63,8 +63,8 @@ import ( "github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter" "github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient" "github.com/DataDog/datadog-agent/comp/otelcol/otlp/testutil" - "github.com/DataDog/datadog-agent/comp/serializer/compression" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl/strategy" + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" + implzlib "github.com/DataDog/datadog-agent/comp/serializer/compression/impl-zlib" tracecomp "github.com/DataDog/datadog-agent/comp/trace" traceagentcomp "github.com/DataDog/datadog-agent/comp/trace/agent/impl" gzipfx "github.com/DataDog/datadog-agent/comp/trace/compression/fx-gzip" @@ -119,9 +119,9 @@ func runTestOTelAgent(ctx context.Context, params *subcommands.GlobalParams) err }), logsagentpipelineimpl.Module(), // We create strategy.ZlibStrategy directly to avoid build tags - fx.Provide(strategy.NewZlibStrategy), - fx.Provide(func(s *strategy.ZlibStrategy) compression.Component { - return s + fx.Provide(implzlib.NewComponent), + fx.Provide(func(s implzlib.Provides) compression.Component { + return s.Comp }), fx.Provide(serializer.NewSerializer), // For FX to provide the serializer.MetricSerializer from the serializer.Serializer diff --git a/comp/serializer/compression/compressionimpl/common.go b/comp/serializer/compression/common/common.go similarity index 81% rename from comp/serializer/compression/compressionimpl/common.go rename to comp/serializer/compression/common/common.go index 3a6914dabbd2c..65b8699152859 100644 --- a/comp/serializer/compression/compressionimpl/common.go +++ b/comp/serializer/compression/common/common.go @@ -3,8 +3,8 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -// Package compressionimpl provides a set of functions for compressing with zlib / zstd -package compressionimpl +// Package common provides a set of constants describing the compression options +package common // ZlibKind defines a const value for the zlib compressor const ZlibKind = "zlib" diff --git a/comp/serializer/compression/compressionimpl/no_compression.go b/comp/serializer/compression/compressionimpl/no_compression.go deleted file mode 100644 index 915eb1e528f3b..0000000000000 --- a/comp/serializer/compression/compressionimpl/no_compression.go +++ /dev/null @@ -1,31 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -//go:build !zlib && !zstd - -// Package compressionimpl provides a set of functions for compressing with zlib / zstd -package compressionimpl - -import ( - "go.uber.org/fx" - - "github.com/DataDog/datadog-agent/comp/core/config" - "github.com/DataDog/datadog-agent/comp/serializer/compression" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl/strategy" - "github.com/DataDog/datadog-agent/pkg/util/fxutil" -) - -// Module defines the fx options for the component. -func Module() fxutil.Module { - return fxutil.Component( - fx.Provide(NewCompressor), - ) -} - -// NewCompressor returns a new Compressor based on serializer_compressor_kind -// This function is called only when the zlib build tag is included -func NewCompressor(_ config.Component) compression.Component { - return strategy.NewNoopStrategy() -} diff --git a/comp/serializer/compression/compressionimpl/zlib_and_zstd.go b/comp/serializer/compression/compressionimpl/zlib_and_zstd.go deleted file mode 100644 index 202060f9855c5..0000000000000 --- a/comp/serializer/compression/compressionimpl/zlib_and_zstd.go +++ /dev/null @@ -1,44 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -//go:build zlib && zstd - -// Package compressionimpl provides a set of functions for compressing with zlib / zstd -package compressionimpl - -import ( - "go.uber.org/fx" - - "github.com/DataDog/datadog-agent/comp/core/config" - "github.com/DataDog/datadog-agent/comp/serializer/compression" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl/strategy" - "github.com/DataDog/datadog-agent/pkg/util/fxutil" - "github.com/DataDog/datadog-agent/pkg/util/log" -) - -// Module defines the fx options for the component. -func Module() fxutil.Module { - return fxutil.Component( - fx.Provide(NewCompressor), - ) -} - -// NewCompressor returns a new Compressor based on serializer_compressor_kind -// This function is called when both zlib and zstd build tags are included -func NewCompressor(cfg config.Component) compression.Component { - switch cfg.GetString("serializer_compressor_kind") { - case ZlibKind: - return strategy.NewZlibStrategy() - case ZstdKind: - level := cfg.GetInt("serializer_zstd_compressor_level") - return strategy.NewZstdStrategy(level) - case NoneKind: - log.Warn("no serializer_compressor_kind set. use zlib or zstd") - return strategy.NewNoopStrategy() - default: - log.Warn("invalid serializer_compressor_kind detected. use one of 'zlib', 'zstd'") - return strategy.NewNoopStrategy() - } -} diff --git a/comp/serializer/compression/compressionimpl/zlib_no_zstd.go b/comp/serializer/compression/compressionimpl/zlib_no_zstd.go deleted file mode 100644 index e354a64be4752..0000000000000 --- a/comp/serializer/compression/compressionimpl/zlib_no_zstd.go +++ /dev/null @@ -1,44 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -//go:build zlib && !zstd - -// Package compressionimpl provides a set of functions for compressing with zlib / zstd -package compressionimpl - -import ( - "go.uber.org/fx" - - "github.com/DataDog/datadog-agent/comp/core/config" - "github.com/DataDog/datadog-agent/comp/serializer/compression" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl/strategy" - "github.com/DataDog/datadog-agent/pkg/util/fxutil" - "github.com/DataDog/datadog-agent/pkg/util/log" -) - -// Module defines the fx options for the component. -func Module() fxutil.Module { - return fxutil.Component( - fx.Provide(NewCompressor), - ) -} - -// NewCompressor returns a new Compressor based on serializer_compressor_kind -// This function is called only when the zlib build tag is included -func NewCompressor(cfg config.Component) compression.Component { - switch cfg.GetString("serializer_compressor_kind") { - case ZlibKind: - return strategy.NewZlibStrategy() - case ZstdKind: - log.Warn("zstd build tag not included. using zlib") - return strategy.NewZlibStrategy() - case NoneKind: - log.Warn("no serializer_compressor_kind set. use zlib or zstd") - return strategy.NewNoopStrategy() - default: - log.Warn("invalid serializer_compressor_kind detected. use zlib or zstd") - return strategy.NewNoopStrategy() - } -} diff --git a/comp/serializer/compression/component.go b/comp/serializer/compression/def/component.go similarity index 100% rename from comp/serializer/compression/component.go rename to comp/serializer/compression/def/component.go diff --git a/comp/serializer/compression/doc.go b/comp/serializer/compression/doc.go new file mode 100644 index 0000000000000..e15c0ed472a27 --- /dev/null +++ b/comp/serializer/compression/doc.go @@ -0,0 +1,7 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package compression contains the serializer compression component +package compression diff --git a/comp/serializer/compression/compressionimpl/compression_mock.go b/comp/serializer/compression/fx-mock/fx.go similarity index 59% rename from comp/serializer/compression/compressionimpl/compression_mock.go rename to comp/serializer/compression/fx-mock/fx.go index dbf01aae25175..93c27867bc9c7 100644 --- a/comp/serializer/compression/compressionimpl/compression_mock.go +++ b/comp/serializer/compression/fx-mock/fx.go @@ -5,24 +5,25 @@ //go:build test -package compressionimpl +// Package fx provides the fx module for the serializer/compression component +package fx import ( - "go.uber.org/fx" - - "github.com/DataDog/datadog-agent/comp/serializer/compression" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl/strategy" + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" + compressionnoop "github.com/DataDog/datadog-agent/comp/serializer/compression/impl-noop" "github.com/DataDog/datadog-agent/pkg/util/fxutil" ) // MockModule defines the fx options for the mock component. func MockModule() fxutil.Module { return fxutil.Component( - fx.Provide(NewMockCompressor), + fxutil.ProvideComponentConstructor( + NewMockCompressor, + ), ) } // NewMockCompressor returns a new Mock func NewMockCompressor() compression.Component { - return strategy.NewNoopStrategy() + return compressionnoop.NewComponent().Comp } diff --git a/comp/serializer/compression/fx-zlib/fx.go b/comp/serializer/compression/fx-zlib/fx.go new file mode 100644 index 0000000000000..f10af59cfc6d8 --- /dev/null +++ b/comp/serializer/compression/fx-zlib/fx.go @@ -0,0 +1,21 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package fx provides the fx module for the serializer/compression component +package fx + +import ( + compressionimpl "github.com/DataDog/datadog-agent/comp/serializer/compression/impl-zlib" + "github.com/DataDog/datadog-agent/pkg/util/fxutil" +) + +// Module defines the fx options for the component. +func Module() fxutil.Module { + return fxutil.Component( + fxutil.ProvideComponentConstructor( + compressionimpl.NewComponent, + ), + ) +} diff --git a/comp/serializer/compression/fx-zstd/fx.go b/comp/serializer/compression/fx-zstd/fx.go new file mode 100644 index 0000000000000..9c7e35a7a3d90 --- /dev/null +++ b/comp/serializer/compression/fx-zstd/fx.go @@ -0,0 +1,21 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package fx provides the fx module for the serializer/compression component +package fx + +import ( + compressionimpl "github.com/DataDog/datadog-agent/comp/serializer/compression/impl-zstd" + "github.com/DataDog/datadog-agent/pkg/util/fxutil" +) + +// Module defines the fx options for the component. +func Module() fxutil.Module { + return fxutil.Component( + fxutil.ProvideComponentConstructor( + compressionimpl.NewComponent, + ), + ) +} diff --git a/comp/serializer/compression/fx/fx.go b/comp/serializer/compression/fx/fx.go new file mode 100644 index 0000000000000..093ea3f4d6e67 --- /dev/null +++ b/comp/serializer/compression/fx/fx.go @@ -0,0 +1,21 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package fx provides the fx module for the serializer/compression component +package fx + +import ( + "github.com/DataDog/datadog-agent/comp/serializer/compression/selector" + "github.com/DataDog/datadog-agent/pkg/util/fxutil" +) + +// Module defines the fx options for the component. +func Module() fxutil.Module { + return fxutil.Component( + fxutil.ProvideComponentConstructor( + selector.NewCompressorReq, + ), + ) +} diff --git a/comp/serializer/compression/go.mod b/comp/serializer/compression/go.mod index da5afa34904b8..47015b1e18351 100644 --- a/comp/serializer/compression/go.mod +++ b/comp/serializer/compression/go.mod @@ -38,7 +38,6 @@ require ( github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/DataDog/zstd v1.5.5 - go.uber.org/fx v1.22.2 ) require ( @@ -93,6 +92,7 @@ require ( github.com/yusufpapurcu/wmi v1.2.3 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect + go.uber.org/fx v1.22.2 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect diff --git a/comp/serializer/compression/compressionimpl/strategy/no_strategy.go b/comp/serializer/compression/impl-noop/no_strategy.go similarity index 74% rename from comp/serializer/compression/compressionimpl/strategy/no_strategy.go rename to comp/serializer/compression/impl-noop/no_strategy.go index 5ee58373b7c47..45523952b4ca2 100644 --- a/comp/serializer/compression/compressionimpl/strategy/no_strategy.go +++ b/comp/serializer/compression/impl-noop/no_strategy.go @@ -3,22 +3,29 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -// Package strategy provides a set of functions for compressing with zlib / zstd -package strategy +// Package compressionimpl provides a set of functions for compressing with zlib / zstd +package compressionimpl import ( "bytes" - "github.com/DataDog/datadog-agent/comp/serializer/compression" + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" ) +// Provides contains the compression component +type Provides struct { + Comp compression.Component +} + // NoopStrategy is the strategy for when serializer_compressor_kind is neither zlib nor zstd type NoopStrategy struct { } -// NewNoopStrategy returns a new NoopStrategy for when kind is neither zlib nor zstd -func NewNoopStrategy() *NoopStrategy { - return &NoopStrategy{} +// NewComponent returns a new NoopStrategy for when kind is neither zlib nor zstd +func NewComponent() Provides { + return Provides{ + Comp: &NoopStrategy{}, + } } // Compress implements the Compress method for NoopStrategy to satisfy the Compressor interface diff --git a/comp/serializer/compression/compressionimpl/strategy/zlib_strategy.go b/comp/serializer/compression/impl-zlib/zlib_strategy.go similarity index 81% rename from comp/serializer/compression/compressionimpl/strategy/zlib_strategy.go rename to comp/serializer/compression/impl-zlib/zlib_strategy.go index 1aab0c4641488..2bbe1a99d1a09 100644 --- a/comp/serializer/compression/compressionimpl/strategy/zlib_strategy.go +++ b/comp/serializer/compression/impl-zlib/zlib_strategy.go @@ -3,24 +3,31 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -// Package strategy provides a set of functions for compressing with zlib / zstd -package strategy +// Package compressionimpl provides a set of functions for compressing with zlib +package compressionimpl import ( "bytes" "compress/zlib" "io" - "github.com/DataDog/datadog-agent/comp/serializer/compression" + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" ) +// Provides contains the compression component +type Provides struct { + Comp compression.Component +} + // ZlibStrategy is the strategy for when serializer_compressor_kind is zlib type ZlibStrategy struct { } -// NewZlibStrategy returns a new ZlibStrategy -func NewZlibStrategy() *ZlibStrategy { - return &ZlibStrategy{} +// NewComponent returns a new ZlibStrategy +func NewComponent() Provides { + return Provides{ + Comp: &ZlibStrategy{}, + } } // Compress will compress the data with zlib diff --git a/comp/serializer/compression/compressionimpl/strategy/zstd_strategy.go b/comp/serializer/compression/impl-zstd/zstd_strategy.go similarity index 69% rename from comp/serializer/compression/compressionimpl/strategy/zstd_strategy.go rename to comp/serializer/compression/impl-zstd/zstd_strategy.go index 408a0d56b5151..994135a0889cd 100644 --- a/comp/serializer/compression/compressionimpl/strategy/zstd_strategy.go +++ b/comp/serializer/compression/impl-zstd/zstd_strategy.go @@ -3,25 +3,37 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -// Package strategy provides a set of functions for compressing with zlib / zstd -package strategy +// Package compressionimpl provides a set of functions for compressing with zstd +package compressionimpl import ( "bytes" - "github.com/DataDog/datadog-agent/comp/serializer/compression" + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" "github.com/DataDog/zstd" ) +// Requires contains the compression level for zstd compression +type Requires struct { + Level int +} + +// Provides contains the compression component +type Provides struct { + Comp compression.Component +} + // ZstdStrategy is the strategy for when serializer_compressor_kind is zstd type ZstdStrategy struct { level int } -// NewZstdStrategy returns a new ZstdStrategy -func NewZstdStrategy(level int) *ZstdStrategy { - return &ZstdStrategy{ - level: level, +// NewComponent returns a new ZstdStrategy +func NewComponent(reqs Requires) Provides { + return Provides{ + Comp: &ZstdStrategy{ + level: reqs.Level, + }, } } diff --git a/comp/serializer/compression/component_mock.go b/comp/serializer/compression/mock/component_mock.go similarity index 63% rename from comp/serializer/compression/component_mock.go rename to comp/serializer/compression/mock/component_mock.go index 40fc65021006d..726e179142b0a 100644 --- a/comp/serializer/compression/component_mock.go +++ b/comp/serializer/compression/mock/component_mock.go @@ -5,9 +5,12 @@ //go:build test -package compression +// Package mock provides the mock component for serializer/compression +package mock + +import compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" // Mock implements mock-specific methods. type Mock interface { - Component + compression.Component } diff --git a/comp/serializer/compression/selector/def.go b/comp/serializer/compression/selector/def.go new file mode 100644 index 0000000000000..0e8b5837b57e9 --- /dev/null +++ b/comp/serializer/compression/selector/def.go @@ -0,0 +1,21 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package selector + +import ( + "github.com/DataDog/datadog-agent/comp/core/config" + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" +) + +// Requires contains the config for Compression +type Requires struct { + Cfg config.Component +} + +// Provides contains the compression component +type Provides struct { + Comp compression.Component +} diff --git a/comp/serializer/compression/selector/no-zlib-no-zstd.go b/comp/serializer/compression/selector/no-zlib-no-zstd.go new file mode 100644 index 0000000000000..f370ab640200b --- /dev/null +++ b/comp/serializer/compression/selector/no-zlib-no-zstd.go @@ -0,0 +1,27 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build !zlib && !zstd + +// Package selector provides correct compression impl to fx +package selector + +import ( + "github.com/DataDog/datadog-agent/comp/core/config" + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" + implnoop "github.com/DataDog/datadog-agent/comp/serializer/compression/impl-noop" +) + +// NewCompressorReq returns a new Compressor based on serializer_compressor_kind +// This function is called only when there is no zlib or zstd tag +func NewCompressorReq(_ Requires) Provides { + return Provides{Comp: implnoop.NewComponent().Comp} +} + +// NewCompressor returns a new Compressor based on serializer_compressor_kind +// This function is called only when there is no zlib or zstd tag +func NewCompressor(cfg config.Component) compression.Component { + return NewCompressorReq(Requires{Cfg: cfg}).Comp +} diff --git a/comp/serializer/compression/selector/zlib-and-zstd.go b/comp/serializer/compression/selector/zlib-and-zstd.go new file mode 100644 index 0000000000000..df324defbc911 --- /dev/null +++ b/comp/serializer/compression/selector/zlib-and-zstd.go @@ -0,0 +1,43 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build zlib && zstd + +// Package selector provides correct compression impl to fx +package selector + +import ( + "github.com/DataDog/datadog-agent/comp/core/config" + "github.com/DataDog/datadog-agent/comp/serializer/compression/common" + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" + implnoop "github.com/DataDog/datadog-agent/comp/serializer/compression/impl-noop" + implzlib "github.com/DataDog/datadog-agent/comp/serializer/compression/impl-zlib" + implzstd "github.com/DataDog/datadog-agent/comp/serializer/compression/impl-zstd" + "github.com/DataDog/datadog-agent/pkg/util/log" +) + +// NewCompressorReq returns a new Compressor based on serializer_compressor_kind +// This function is called when both zlib and zstd build tags are included +func NewCompressorReq(req Requires) Provides { + switch req.Cfg.GetString("serializer_compressor_kind") { + case common.ZlibKind: + return Provides{implzlib.NewComponent().Comp} + case common.ZstdKind: + level := req.Cfg.GetInt("serializer_zstd_compressor_level") + return Provides{implzstd.NewComponent(implzstd.Requires{Level: level}).Comp} + case common.NoneKind: + log.Warn("no serializer_compressor_kind set. use zlib or zstd") + return Provides{implnoop.NewComponent().Comp} + default: + log.Warn("invalid serializer_compressor_kind detected. use one of 'zlib', 'zstd'") + return Provides{implnoop.NewComponent().Comp} + } +} + +// NewCompressor returns a new Compressor based on serializer_compressor_kind +// This function is called when both zlib and zstd build tags are included +func NewCompressor(cfg config.Component) compression.Component { + return NewCompressorReq(Requires{Cfg: cfg}).Comp +} diff --git a/comp/serializer/compression/selector/zlib-no-zstd.go b/comp/serializer/compression/selector/zlib-no-zstd.go new file mode 100644 index 0000000000000..febf91e379e94 --- /dev/null +++ b/comp/serializer/compression/selector/zlib-no-zstd.go @@ -0,0 +1,42 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build zlib && !zstd + +// Package selector provides correct compression impl to fx +package selector + +import ( + "github.com/DataDog/datadog-agent/comp/core/config" + "github.com/DataDog/datadog-agent/comp/serializer/compression/common" + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" + implnoop "github.com/DataDog/datadog-agent/comp/serializer/compression/impl-noop" + implzlib "github.com/DataDog/datadog-agent/comp/serializer/compression/impl-zlib" + "github.com/DataDog/datadog-agent/pkg/util/log" +) + +// NewCompressorReq returns a new Compressor based on serializer_compressor_kind +// This function is called only when the zlib build tag is included +func NewCompressorReq(req Requires) Provides { + switch req.Cfg.GetString("serializer_compressor_kind") { + case common.ZlibKind: + return Provides{implzlib.NewComponent().Comp} + case common.ZstdKind: + log.Warn("zstd build tag not included. using zlib") + return Provides{implzlib.NewComponent().Comp} + case common.NoneKind: + log.Warn("no serializer_compressor_kind set. use zlib or zstd") + return Provides{implnoop.NewComponent().Comp} + default: + log.Warn("invalid serializer_compressor_kind detected. use zlib or zstd") + return Provides{implnoop.NewComponent().Comp} + } +} + +// NewCompressor returns a new Compressor based on serializer_compressor_kind +// This function is called only when the zlib build tag is included +func NewCompressor(cfg config.Component) compression.Component { + return NewCompressorReq(Requires{Cfg: cfg}).Comp +} diff --git a/pkg/aggregator/aggregator_test.go b/pkg/aggregator/aggregator_test.go index c08aff0278bb1..a60e3055f2206 100644 --- a/pkg/aggregator/aggregator_test.go +++ b/pkg/aggregator/aggregator_test.go @@ -28,7 +28,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" orchestratorforwarder "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator" haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" checkid "github.com/DataDog/datadog-agent/pkg/collector/check/id" configmock "github.com/DataDog/datadog-agent/pkg/config/mock" "github.com/DataDog/datadog-agent/pkg/metrics" @@ -743,7 +743,7 @@ type aggregatorDeps struct { } func createAggrDeps(t *testing.T) aggregatorDeps { - deps := fxutil.Test[TestDeps](t, defaultforwarder.MockModule(), core.MockBundle(), compressionimpl.MockModule(), haagentmock.Module()) + deps := fxutil.Test[TestDeps](t, defaultforwarder.MockModule(), core.MockBundle(), compressionmock.MockModule(), haagentmock.Module()) opts := demuxTestOptions() return aggregatorDeps{ diff --git a/pkg/aggregator/check_sampler_bench_test.go b/pkg/aggregator/check_sampler_bench_test.go index daac7d2c251f6..1e3f5eae3fd8f 100644 --- a/pkg/aggregator/check_sampler_bench_test.go +++ b/pkg/aggregator/check_sampler_bench_test.go @@ -18,13 +18,14 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" - "github.com/DataDog/datadog-agent/comp/serializer/compression" //nolint:revive // TODO(AML) Fix revive linter forwarder "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder/resolver" + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" "github.com/DataDog/datadog-agent/pkg/aggregator/ckey" "github.com/DataDog/datadog-agent/pkg/aggregator/internal/tags" + checkid "github.com/DataDog/datadog-agent/pkg/collector/check/id" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/metrics" diff --git a/pkg/aggregator/demultiplexer_agent.go b/pkg/aggregator/demultiplexer_agent.go index 36528b374b745..a519383eea73e 100644 --- a/pkg/aggregator/demultiplexer_agent.go +++ b/pkg/aggregator/demultiplexer_agent.go @@ -18,7 +18,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" orchestratorforwarder "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator" haagent "github.com/DataDog/datadog-agent/comp/haagent/def" - "github.com/DataDog/datadog-agent/comp/serializer/compression" + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" "github.com/DataDog/datadog-agent/pkg/aggregator/internal/tags" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" checkid "github.com/DataDog/datadog-agent/pkg/collector/check/id" diff --git a/pkg/aggregator/demultiplexer_agent_test.go b/pkg/aggregator/demultiplexer_agent_test.go index 0d0d1af8a4ef8..ce59d5ea8943f 100644 --- a/pkg/aggregator/demultiplexer_agent_test.go +++ b/pkg/aggregator/demultiplexer_agent_test.go @@ -25,8 +25,8 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" haagent "github.com/DataDog/datadog-agent/comp/haagent/def" haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" - "github.com/DataDog/datadog-agent/comp/serializer/compression" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" + compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" "github.com/DataDog/datadog-agent/pkg/metrics" "github.com/DataDog/datadog-agent/pkg/util/fxutil" ) @@ -114,7 +114,7 @@ func TestDemuxNoAggOptionEnabled(t *testing.T) { func TestDemuxNoAggOptionIsDisabledByDefault(t *testing.T) { opts := demuxTestOptions() - deps := fxutil.Test[TestDeps](t, defaultforwarder.MockModule(), core.MockBundle(), compressionimpl.MockModule(), haagentmock.Module()) + deps := fxutil.Test[TestDeps](t, defaultforwarder.MockModule(), core.MockBundle(), compressionmock.MockModule(), haagentmock.Module()) demux := InitAndStartAgentDemultiplexerForTest(deps, opts, "") require.False(t, demux.Options().EnableNoAggregationPipeline, "the no aggregation pipeline should be disabled by default") @@ -172,7 +172,7 @@ func createDemultiplexerAgentTestDeps(t *testing.T) DemultiplexerAgentTestDeps { orchestratorimpl.MockModule(), eventplatformimpl.MockModule(), haagentmock.Module(), - compressionimpl.MockModule(), + compressionmock.MockModule(), fx.Provide(func() tagger.Component { return taggerComponent }), ) } diff --git a/pkg/aggregator/demultiplexer_mock.go b/pkg/aggregator/demultiplexer_mock.go index c6511f7eb6890..6d79e009338b3 100644 --- a/pkg/aggregator/demultiplexer_mock.go +++ b/pkg/aggregator/demultiplexer_mock.go @@ -17,7 +17,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" haagent "github.com/DataDog/datadog-agent/comp/haagent/def" - "github.com/DataDog/datadog-agent/comp/serializer/compression" + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" "github.com/DataDog/datadog-agent/pkg/util/optional" ) diff --git a/pkg/aggregator/demultiplexer_serverless.go b/pkg/aggregator/demultiplexer_serverless.go index a2429988b0cbd..c77982bc8be1e 100644 --- a/pkg/aggregator/demultiplexer_serverless.go +++ b/pkg/aggregator/demultiplexer_serverless.go @@ -14,7 +14,7 @@ import ( logimpl "github.com/DataDog/datadog-agent/comp/core/log/impl" tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" forwarder "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + "github.com/DataDog/datadog-agent/comp/serializer/compression/selector" "github.com/DataDog/datadog-agent/pkg/aggregator/internal/tags" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/config/utils" @@ -49,7 +49,7 @@ func InitAndStartServerlessDemultiplexer(keysPerDomain map[string][]string, forw logger := logimpl.NewTemporaryLoggerWithoutInit() forwarder := forwarder.NewSyncForwarder(pkgconfigsetup.Datadog(), logger, keysPerDomain, forwarderTimeout) h, _ := hostname.Get(context.Background()) - serializer := serializer.NewSerializer(forwarder, nil, compressionimpl.NewCompressor(pkgconfigsetup.Datadog()), pkgconfigsetup.Datadog(), h) + serializer := serializer.NewSerializer(forwarder, nil, selector.NewCompressor(pkgconfigsetup.Datadog()), pkgconfigsetup.Datadog(), h) metricSamplePool := metrics.NewMetricSamplePool(MetricSamplePoolBatchSize, utils.IsTelemetryEnabled(pkgconfigsetup.Datadog())) tagsStore := tags.NewStore(pkgconfigsetup.Datadog().GetBool("aggregator_use_tags_store"), "timesampler") diff --git a/pkg/aggregator/demultiplexer_test.go b/pkg/aggregator/demultiplexer_test.go index f95ab7020d3c8..72ed3464eb346 100644 --- a/pkg/aggregator/demultiplexer_test.go +++ b/pkg/aggregator/demultiplexer_test.go @@ -22,8 +22,8 @@ import ( orchestratorForwarder "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator" orchestratorForwarderImpl "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" - "github.com/DataDog/datadog-agent/comp/serializer/compression" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" + compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" checkid "github.com/DataDog/datadog-agent/pkg/collector/check/id" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/util/fxutil" @@ -295,7 +295,7 @@ func createDemuxDepsWithOrchestratorFwd( orchestratorForwarderImpl.Module(orchestratorParams), eventplatformimpl.Module(eventPlatformParams), eventplatformreceiverimpl.Module(), - compressionimpl.MockModule(), + compressionmock.MockModule(), haagentmock.Module(), ) deps := fxutil.Test[internalDemutiplexerDeps](t, modules) diff --git a/pkg/aggregator/mocksender/mocksender.go b/pkg/aggregator/mocksender/mocksender.go index 309a07ae0b3bf..d20e0a3d19081 100644 --- a/pkg/aggregator/mocksender/mocksender.go +++ b/pkg/aggregator/mocksender/mocksender.go @@ -17,10 +17,10 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" nooptagger "github.com/DataDog/datadog-agent/comp/core/tagger/impl-noop" haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" + compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" "github.com/DataDog/datadog-agent/pkg/aggregator" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" checkid "github.com/DataDog/datadog-agent/pkg/collector/check/id" @@ -44,8 +44,7 @@ func CreateDefaultDemultiplexer() *aggregator.AgentDemultiplexer { orchestratorForwarder := optional.NewOption[defaultforwarder.Forwarder](defaultforwarder.NoopForwarder{}) eventPlatformForwarder := optional.NewOptionPtr[eventplatform.Forwarder](eventplatformimpl.NewNoopEventPlatformForwarder(hostnameimpl.NewHostnameService())) taggerComponent := nooptagger.NewComponent() - return aggregator.InitAndStartAgentDemultiplexer(log, sharedForwarder, &orchestratorForwarder, opts, eventPlatformForwarder, haagentmock.NewMockHaAgent(), compressionimpl.NewMockCompressor(), taggerComponent, "") - + return aggregator.InitAndStartAgentDemultiplexer(log, sharedForwarder, &orchestratorForwarder, opts, eventPlatformForwarder, haagentmock.NewMockHaAgent(), compressionmock.NewMockCompressor(), taggerComponent, "") } // NewMockSenderWithSenderManager returns a functional mocked Sender for testing diff --git a/pkg/aggregator/sender_test.go b/pkg/aggregator/sender_test.go index 68045d0d04715..994cc96969d1c 100644 --- a/pkg/aggregator/sender_test.go +++ b/pkg/aggregator/sender_test.go @@ -24,7 +24,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" checkid "github.com/DataDog/datadog-agent/pkg/collector/check/id" "github.com/DataDog/datadog-agent/pkg/metrics" "github.com/DataDog/datadog-agent/pkg/metrics/event" @@ -59,7 +59,7 @@ func testDemux(log log.Component, hostname hostname.Component) *AgentDemultiplex opts.DontStartForwarders = true orchestratorForwarder := optional.NewOption[defaultforwarder.Forwarder](defaultforwarder.NoopForwarder{}) eventPlatformForwarder := optional.NewOptionPtr[eventplatform.Forwarder](eventplatformimpl.NewNoopEventPlatformForwarder(hostname)) - demux := initAgentDemultiplexer(log, NewForwarderTest(log), &orchestratorForwarder, opts, eventPlatformForwarder, haagentmock.NewMockHaAgent(), compressionimpl.NewMockCompressor(), nooptagger.NewComponent(), defaultHostname) + demux := initAgentDemultiplexer(log, NewForwarderTest(log), &orchestratorForwarder, opts, eventPlatformForwarder, haagentmock.NewMockHaAgent(), compressionmock.NewMockCompressor(), nooptagger.NewComponent(), defaultHostname) return demux } diff --git a/pkg/cli/subcommands/check/command.go b/pkg/cli/subcommands/check/command.go index 2da70cead3066..d914682340504 100644 --- a/pkg/cli/subcommands/check/command.go +++ b/pkg/cli/subcommands/check/command.go @@ -68,7 +68,7 @@ import ( "github.com/DataDog/datadog-agent/comp/metadata/inventorychecks/inventorychecksimpl" "github.com/DataDog/datadog-agent/comp/remote-config/rcservice" "github.com/DataDog/datadog-agent/comp/remote-config/rcservicemrf" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + compressionfx "github.com/DataDog/datadog-agent/comp/serializer/compression/fx" "github.com/DataDog/datadog-agent/pkg/aggregator" "github.com/DataDog/datadog-agent/pkg/cli/standalone" pkgcollector "github.com/DataDog/datadog-agent/pkg/collector" @@ -183,7 +183,7 @@ func MakeCommand(globalParamsGetter func() GlobalParams) *cobra.Command { collector.NoneModule(), fx.Supply(status.NewInformationProvider(statuscollector.Provider{})), fx.Provide(func() serializer.MetricSerializer { return nil }), - compressionimpl.Module(), + compressionfx.Module(), // Initializing the aggregator with a flush interval of 0 (to disable the flush goroutines) demultiplexerimpl.Module(demultiplexerimpl.NewDefaultParams(demultiplexerimpl.WithFlushInterval(0))), orchestratorForwarderImpl.Module(orchestratorForwarderImpl.NewNoopParams()), diff --git a/pkg/cli/subcommands/dcaflare/command.go b/pkg/cli/subcommands/dcaflare/command.go index a1bdcacea1275..336803a281723 100644 --- a/pkg/cli/subcommands/dcaflare/command.go +++ b/pkg/cli/subcommands/dcaflare/command.go @@ -20,7 +20,7 @@ import ( "github.com/DataDog/datadog-agent/comp/core/flare/helpers" log "github.com/DataDog/datadog-agent/comp/core/log/def" "github.com/DataDog/datadog-agent/comp/core/secrets" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + compressionfx "github.com/DataDog/datadog-agent/comp/serializer/compression/fx" "github.com/DataDog/datadog-agent/pkg/api/util" "github.com/DataDog/datadog-agent/pkg/config/settings" settingshttp "github.com/DataDog/datadog-agent/pkg/config/settings/http" @@ -88,7 +88,7 @@ func MakeCommand(globalParamsGetter func() GlobalParams) *cobra.Command { LogParams: log.ForOneShot(LoggerName, DefaultLogLevel, true), }), core.Bundle(), - compressionimpl.Module(), + compressionfx.Module(), ) }, } diff --git a/pkg/collector/corechecks/snmp/snmp_test.go b/pkg/collector/corechecks/snmp/snmp_test.go index 0306d9889fcc9..88513ca8ce0d3 100644 --- a/pkg/collector/corechecks/snmp/snmp_test.go +++ b/pkg/collector/corechecks/snmp/snmp_test.go @@ -12,6 +12,7 @@ import ( "testing" "time" + compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" "github.com/DataDog/datadog-agent/pkg/collector/corechecks/snmp/internal/report" "github.com/gosnmp/gosnmp" @@ -25,7 +26,6 @@ import ( "github.com/DataDog/datadog-agent/comp/core" "github.com/DataDog/datadog-agent/comp/core/autodiscovery/integration" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" "github.com/DataDog/datadog-agent/pkg/aggregator/mocksender" "github.com/DataDog/datadog-agent/pkg/collector/externalhost" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" @@ -52,7 +52,7 @@ type deps struct { } func createDeps(t *testing.T) deps { - return fxutil.Test[deps](t, compressionimpl.MockModule(), demultiplexerimpl.MockModule(), defaultforwarder.MockModule(), core.MockBundle()) + return fxutil.Test[deps](t, compressionmock.MockModule(), demultiplexerimpl.MockModule(), defaultforwarder.MockModule(), core.MockBundle()) } func Test_Run_simpleCase(t *testing.T) { diff --git a/pkg/serializer/internal/metrics/events_test.go b/pkg/serializer/internal/metrics/events_test.go index ef4013a778c60..9e029147072f5 100644 --- a/pkg/serializer/internal/metrics/events_test.go +++ b/pkg/serializer/internal/metrics/events_test.go @@ -21,7 +21,8 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + "github.com/DataDog/datadog-agent/comp/serializer/compression/common" + "github.com/DataDog/datadog-agent/comp/serializer/compression/selector" configmock "github.com/DataDog/datadog-agent/pkg/config/mock" "github.com/DataDog/datadog-agent/pkg/metrics/event" "github.com/DataDog/datadog-agent/pkg/serializer/internal/stream" @@ -172,8 +173,8 @@ func TestEventsSeveralPayloadsCreateSingleMarshaler(t *testing.T) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { t.Run(name, func(t *testing.T) { @@ -196,8 +197,8 @@ func TestEventsSeveralPayloadsCreateMarshalersBySourceType(t *testing.T) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { t.Run(name, func(t *testing.T) { @@ -258,8 +259,8 @@ func assertEqualEventsToMarshalJSON(t *testing.T, events Events) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { t.Run(name, func(t *testing.T) { @@ -370,7 +371,7 @@ func BenchmarkCreateSingleMarshalerOneEventBySource(b *testing.B) { func benchmarkCreateSingleMarshaler(b *testing.B, createEvents func(numberOfItem int) Events) { runBenchmark(b, func(b *testing.B, numberOfItem int) { cfg := configmock.New(b) - payloadBuilder := stream.NewJSONPayloadBuilder(true, cfg, compressionimpl.NewCompressor(cfg)) + payloadBuilder := stream.NewJSONPayloadBuilder(true, cfg, selector.NewCompressor(cfg)) events := createEvents(numberOfItem) b.ResetTimer() @@ -384,7 +385,7 @@ func benchmarkCreateSingleMarshaler(b *testing.B, createEvents func(numberOfItem func BenchmarkCreateMarshalersBySourceType(b *testing.B) { runBenchmark(b, func(b *testing.B, numberOfItem int) { cfg := configmock.New(b) - payloadBuilder := stream.NewJSONPayloadBuilder(true, cfg, compressionimpl.NewCompressor(cfg)) + payloadBuilder := stream.NewJSONPayloadBuilder(true, cfg, selector.NewCompressor(cfg)) events := createBenchmarkEvents(numberOfItem) b.ResetTimer() @@ -400,7 +401,7 @@ func BenchmarkCreateMarshalersBySourceType(b *testing.B) { func BenchmarkCreateMarshalersSeveralSourceTypes(b *testing.B) { runBenchmark(b, func(b *testing.B, numberOfItem int) { cfg := configmock.New(b) - payloadBuilder := stream.NewJSONPayloadBuilder(true, cfg, compressionimpl.NewCompressor(cfg)) + payloadBuilder := stream.NewJSONPayloadBuilder(true, cfg, selector.NewCompressor(cfg)) events := Events{} // Half of events have the same source type diff --git a/pkg/serializer/internal/metrics/iterable_series.go b/pkg/serializer/internal/metrics/iterable_series.go index 3abd43eb7a93e..24b8f4e68ea0e 100644 --- a/pkg/serializer/internal/metrics/iterable_series.go +++ b/pkg/serializer/internal/metrics/iterable_series.go @@ -16,7 +16,7 @@ import ( "github.com/DataDog/datadog-agent/comp/core/config" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder/transaction" - "github.com/DataDog/datadog-agent/comp/serializer/compression" + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" "github.com/DataDog/datadog-agent/pkg/metrics" "github.com/DataDog/datadog-agent/pkg/serializer/internal/stream" "github.com/DataDog/datadog-agent/pkg/serializer/marshaler" diff --git a/pkg/serializer/internal/metrics/series_test.go b/pkg/serializer/internal/metrics/series_test.go index 0eaf9cc1d8944..c584f02875c4b 100644 --- a/pkg/serializer/internal/metrics/series_test.go +++ b/pkg/serializer/internal/metrics/series_test.go @@ -20,8 +20,9 @@ import ( "github.com/DataDog/agent-payload/v5/gogen" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder/transaction" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" - mock "github.com/DataDog/datadog-agent/pkg/config/mock" + "github.com/DataDog/datadog-agent/comp/serializer/compression/common" + "github.com/DataDog/datadog-agent/comp/serializer/compression/selector" + "github.com/DataDog/datadog-agent/pkg/config/mock" "github.com/DataDog/datadog-agent/pkg/metrics" "github.com/DataDog/datadog-agent/pkg/serializer/internal/stream" "github.com/DataDog/datadog-agent/pkg/serializer/marshaler" @@ -375,15 +376,15 @@ func TestMarshalSplitCompress(t *testing.T) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { t.Run(name, func(t *testing.T) { series := makeSeries(10000, 50) mockConfig := mock.New(t) mockConfig.SetWithoutSource("serializer_compressor_kind", tc.kind) - strategy := compressionimpl.NewCompressor(mockConfig) + strategy := selector.NewCompressor(mockConfig) payloads, err := series.MarshalSplitCompress(marshaler.NewBufferContext(), mockConfig, strategy) require.NoError(t, err) // check that we got multiple payloads, so splitting occurred @@ -409,8 +410,8 @@ func TestMarshalSplitCompressPointsLimit(t *testing.T) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { t.Run(name, func(t *testing.T) { @@ -421,7 +422,7 @@ func TestMarshalSplitCompressPointsLimit(t *testing.T) { // ten series, each with 50 points, so two should fit in each payload series := makeSeries(10, 50) - payloads, err := series.MarshalSplitCompress(marshaler.NewBufferContext(), mockConfig, compressionimpl.NewCompressor(mockConfig)) + payloads, err := series.MarshalSplitCompress(marshaler.NewBufferContext(), mockConfig, selector.NewCompressor(mockConfig)) require.NoError(t, err) require.Equal(t, 5, len(payloads)) }) @@ -432,8 +433,8 @@ func TestMarshalSplitCompressMultiplePointsLimit(t *testing.T) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { t.Run(name, func(t *testing.T) { @@ -462,7 +463,7 @@ func TestMarshalSplitCompressMultiplePointsLimit(t *testing.T) { } series := CreateIterableSeries(CreateSerieSource(rawSeries)) - payloads, filteredPayloads, autoscalingFailoverPayloads, err := series.MarshalSplitCompressMultiple(mockConfig, compressionimpl.NewCompressor(mockConfig), + payloads, filteredPayloads, autoscalingFailoverPayloads, err := series.MarshalSplitCompressMultiple(mockConfig, selector.NewCompressor(mockConfig), func(s *metrics.Serie) bool { return s.Name == "test.metrics42" }, @@ -483,8 +484,8 @@ func TestMarshalSplitCompressPointsLimitTooBig(t *testing.T) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { t.Run(name, func(t *testing.T) { @@ -493,7 +494,7 @@ func TestMarshalSplitCompressPointsLimitTooBig(t *testing.T) { mockConfig.SetWithoutSource("serializer_max_series_points_per_payload", 1) series := makeSeries(1, 2) - payloads, err := series.MarshalSplitCompress(marshaler.NewBufferContext(), mockConfig, compressionimpl.NewCompressor(mockConfig)) + payloads, err := series.MarshalSplitCompress(marshaler.NewBufferContext(), mockConfig, selector.NewCompressor(mockConfig)) require.NoError(t, err) require.Len(t, payloads, 0) }) @@ -507,8 +508,8 @@ func TestPayloadsSeries(t *testing.T) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { t.Run(name, func(t *testing.T) { @@ -540,7 +541,7 @@ func TestPayloadsSeries(t *testing.T) { mockConfig := mock.New(t) mockConfig.SetWithoutSource("serializer_compressor_kind", tc.kind) originalLength := len(testSeries) - strategy := compressionimpl.NewCompressor(mockConfig) + strategy := selector.NewCompressor(mockConfig) builder := stream.NewJSONPayloadBuilder(true, mockConfig, strategy) iterableSeries := CreateIterableSeries(CreateSerieSource(testSeries)) payloads, err := builder.BuildWithOnErrItemTooBigPolicy(iterableSeries, stream.DropItemOnErrItemTooBig) @@ -588,7 +589,7 @@ func BenchmarkPayloadsSeries(b *testing.B) { var r transaction.BytesPayloads mockConfig := mock.New(b) - builder := stream.NewJSONPayloadBuilder(true, mockConfig, compressionimpl.NewCompressor(mockConfig)) + builder := stream.NewJSONPayloadBuilder(true, mockConfig, selector.NewCompressor(mockConfig)) for n := 0; n < b.N; n++ { // always record the result of Payloads to prevent // the compiler eliminating the function call. diff --git a/pkg/serializer/internal/metrics/service_checks_test.go b/pkg/serializer/internal/metrics/service_checks_test.go index 489042fa90792..2a96f3d10072a 100644 --- a/pkg/serializer/internal/metrics/service_checks_test.go +++ b/pkg/serializer/internal/metrics/service_checks_test.go @@ -15,8 +15,8 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" - mock "github.com/DataDog/datadog-agent/pkg/config/mock" + "github.com/DataDog/datadog-agent/comp/serializer/compression/selector" + "github.com/DataDog/datadog-agent/pkg/config/mock" pkgconfigmodel "github.com/DataDog/datadog-agent/pkg/config/model" "github.com/DataDog/datadog-agent/pkg/metrics/servicecheck" "github.com/DataDog/datadog-agent/pkg/serializer/internal/stream" @@ -80,7 +80,7 @@ func createServiceCheck(checkName string) *servicecheck.ServiceCheck { } func buildPayload(t *testing.T, m marshaler.StreamJSONMarshaler, cfg pkgconfigmodel.Config) [][]byte { - strategy := compressionimpl.NewCompressor(cfg) + strategy := selector.NewCompressor(cfg) builder := stream.NewJSONPayloadBuilder(true, cfg, strategy) payloads, err := stream.BuildJSONPayload(builder, m) assert.NoError(t, err) @@ -159,7 +159,7 @@ func createServiceChecks(numberOfItem int) ServiceChecks { func benchmarkJSONPayloadBuilderServiceCheck(b *testing.B, numberOfItem int) { mockConfig := mock.New(b) - payloadBuilder := stream.NewJSONPayloadBuilder(true, mockConfig, compressionimpl.NewCompressor(mockConfig)) + payloadBuilder := stream.NewJSONPayloadBuilder(true, mockConfig, selector.NewCompressor(mockConfig)) serviceChecks := createServiceChecks(numberOfItem) b.ResetTimer() @@ -200,7 +200,7 @@ func benchmarkPayloadsServiceCheck(b *testing.B, numberOfItem int) { b.ResetTimer() mockConfig := mock.New(b) - strategy := compressionimpl.NewCompressor(mockConfig) + strategy := selector.NewCompressor(mockConfig) for n := 0; n < b.N; n++ { split.Payloads(serviceChecks, true, split.JSONMarshalFct, strategy) } diff --git a/pkg/serializer/internal/metrics/sketch_benchmark_test.go b/pkg/serializer/internal/metrics/sketch_benchmark_test.go index ae85437009fb3..0d1b6a0666c11 100644 --- a/pkg/serializer/internal/metrics/sketch_benchmark_test.go +++ b/pkg/serializer/internal/metrics/sketch_benchmark_test.go @@ -12,8 +12,8 @@ import ( "github.com/stretchr/testify/require" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" - mock "github.com/DataDog/datadog-agent/pkg/config/mock" + "github.com/DataDog/datadog-agent/comp/serializer/compression/selector" + "github.com/DataDog/datadog-agent/pkg/config/mock" "github.com/DataDog/datadog-agent/pkg/metrics" "github.com/DataDog/datadog-agent/pkg/serializer/marshaler" "github.com/DataDog/datadog-agent/pkg/serializer/split" @@ -30,7 +30,7 @@ func benchmarkSplitPayloadsSketchesSplit(b *testing.B, numPoints int) { b.ResetTimer() mockConfig := mock.New(b) - strategy := compressionimpl.NewCompressor(mockConfig) + strategy := selector.NewCompressor(mockConfig) for n := 0; n < b.N; n++ { split.Payloads(serializer, true, split.ProtoMarshalFct, strategy) } @@ -45,7 +45,7 @@ func benchmarkSplitPayloadsSketchesNew(b *testing.B, numPoints int) { b.ReportAllocs() b.ResetTimer() mockConfig := mock.New(b) - strategy := compressionimpl.NewCompressor(mockConfig) + strategy := selector.NewCompressor(mockConfig) for n := 0; n < b.N; n++ { payloads, err := serializer.MarshalSplitCompress(marshaler.NewBufferContext(), mockConfig, strategy) diff --git a/pkg/serializer/internal/metrics/sketch_series_list.go b/pkg/serializer/internal/metrics/sketch_series_list.go index 2b3887b756fdd..59608575fd81b 100644 --- a/pkg/serializer/internal/metrics/sketch_series_list.go +++ b/pkg/serializer/internal/metrics/sketch_series_list.go @@ -14,7 +14,7 @@ import ( "github.com/DataDog/datadog-agent/comp/core/config" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder/transaction" - "github.com/DataDog/datadog-agent/comp/serializer/compression" + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" "github.com/DataDog/datadog-agent/pkg/metrics" "github.com/DataDog/datadog-agent/pkg/serializer/internal/stream" "github.com/DataDog/datadog-agent/pkg/serializer/marshaler" diff --git a/pkg/serializer/internal/metrics/sketch_series_test.go b/pkg/serializer/internal/metrics/sketch_series_test.go index 221ca0cd46d05..84ecf06c676ec 100644 --- a/pkg/serializer/internal/metrics/sketch_series_test.go +++ b/pkg/serializer/internal/metrics/sketch_series_test.go @@ -12,8 +12,9 @@ import ( "github.com/DataDog/agent-payload/v5/gogen" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" - mock "github.com/DataDog/datadog-agent/pkg/config/mock" + "github.com/DataDog/datadog-agent/comp/serializer/compression/common" + "github.com/DataDog/datadog-agent/comp/serializer/compression/selector" + "github.com/DataDog/datadog-agent/pkg/config/mock" "github.com/DataDog/datadog-agent/pkg/metrics" "github.com/DataDog/datadog-agent/pkg/serializer/marshaler" "github.com/DataDog/datadog-agent/pkg/tagset" @@ -92,8 +93,8 @@ func TestSketchSeriesMarshalSplitCompressEmpty(t *testing.T) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { t.Run(name, func(t *testing.T) { @@ -101,7 +102,7 @@ func TestSketchSeriesMarshalSplitCompressEmpty(t *testing.T) { mockConfig.SetWithoutSource("serializer_compressor_kind", tc.kind) sl := SketchSeriesList{SketchesSource: metrics.NewSketchesSourceTest()} payload, _ := sl.Marshal() - strategy := compressionimpl.NewCompressor(mockConfig) + strategy := selector.NewCompressor(mockConfig) payloads, err := sl.MarshalSplitCompress(marshaler.NewBufferContext(), mockConfig, strategy) assert.Nil(t, err) @@ -121,8 +122,8 @@ func TestSketchSeriesMarshalSplitCompressItemTooBigIsDropped(t *testing.T) { kind string maxUncompressedSize int }{ - "zlib": {kind: compressionimpl.ZlibKind, maxUncompressedSize: 100}, - "zstd": {kind: compressionimpl.ZstdKind, maxUncompressedSize: 200}, + "zlib": {kind: common.ZlibKind, maxUncompressedSize: 100}, + "zstd": {kind: common.ZstdKind, maxUncompressedSize: 200}, } for name, tc := range tests { t.Run(name, func(t *testing.T) { @@ -143,7 +144,7 @@ func TestSketchSeriesMarshalSplitCompressItemTooBigIsDropped(t *testing.T) { }) serializer := SketchSeriesList{SketchesSource: sl} - strategy := compressionimpl.NewCompressor(mockConfig) + strategy := selector.NewCompressor(mockConfig) payloads, err := serializer.MarshalSplitCompress(marshaler.NewBufferContext(), mockConfig, strategy) assert.Nil(t, err) @@ -169,8 +170,8 @@ func TestSketchSeriesMarshalSplitCompress(t *testing.T) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { t.Run(name, func(t *testing.T) { @@ -184,7 +185,7 @@ func TestSketchSeriesMarshalSplitCompress(t *testing.T) { sl.Reset() serializer2 := SketchSeriesList{SketchesSource: sl} - strategy := compressionimpl.NewCompressor(mockConfig) + strategy := selector.NewCompressor(mockConfig) payloads, err := serializer2.MarshalSplitCompress(marshaler.NewBufferContext(), mockConfig, strategy) require.NoError(t, err) @@ -225,8 +226,8 @@ func TestSketchSeriesMarshalSplitCompressSplit(t *testing.T) { kind string maxUncompressedSize int }{ - "zlib": {kind: compressionimpl.ZlibKind, maxUncompressedSize: 2000}, - "zstd": {kind: compressionimpl.ZstdKind, maxUncompressedSize: 2000}, + "zlib": {kind: common.ZlibKind, maxUncompressedSize: 2000}, + "zstd": {kind: common.ZstdKind, maxUncompressedSize: 2000}, } for name, tc := range tests { t.Run(name, func(t *testing.T) { @@ -243,7 +244,7 @@ func TestSketchSeriesMarshalSplitCompressSplit(t *testing.T) { } serializer := SketchSeriesList{SketchesSource: sl} - strategy := compressionimpl.NewCompressor(mockConfig) + strategy := selector.NewCompressor(mockConfig) payloads, err := serializer.MarshalSplitCompress(marshaler.NewBufferContext(), mockConfig, strategy) assert.Nil(t, err) @@ -292,8 +293,8 @@ func TestSketchSeriesMarshalSplitCompressMultiple(t *testing.T) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { t.Run(name, func(t *testing.T) { @@ -307,7 +308,7 @@ func TestSketchSeriesMarshalSplitCompressMultiple(t *testing.T) { sl.Reset() serializer2 := SketchSeriesList{SketchesSource: sl} - strategy := compressionimpl.NewCompressor(mockConfig) + strategy := selector.NewCompressor(mockConfig) payloads, filteredPayloads, err := serializer2.MarshalSplitCompressMultiple(mockConfig, strategy, func(ss *metrics.SketchSeries) bool { return ss.Name == "name.0" }) diff --git a/pkg/serializer/internal/stream/compressor.go b/pkg/serializer/internal/stream/compressor.go index 2d84cdac4511b..dea456eef7dba 100644 --- a/pkg/serializer/internal/stream/compressor.go +++ b/pkg/serializer/internal/stream/compressor.go @@ -13,7 +13,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/telemetry" - "github.com/DataDog/datadog-agent/comp/serializer/compression" + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" ) var ( diff --git a/pkg/serializer/internal/stream/compressor_test.go b/pkg/serializer/internal/stream/compressor_test.go index b3f7c2d63eaed..f44b8cc2f617d 100644 --- a/pkg/serializer/internal/stream/compressor_test.go +++ b/pkg/serializer/internal/stream/compressor_test.go @@ -17,13 +17,14 @@ import ( "github.com/stretchr/testify/require" "github.com/DataDog/datadog-agent/comp/core/config" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" - mock "github.com/DataDog/datadog-agent/pkg/config/mock" + "github.com/DataDog/datadog-agent/comp/serializer/compression/common" + "github.com/DataDog/datadog-agent/comp/serializer/compression/selector" + "github.com/DataDog/datadog-agent/pkg/config/mock" "github.com/DataDog/datadog-agent/pkg/serializer/marshaler" ) func payloadToString(payload []byte, cfg config.Component) string { - strategy := compressionimpl.NewCompressor(cfg) + strategy := selector.NewCompressor(cfg) p, err := strategy.Decompress(payload) if err != nil { return err.Error() @@ -35,8 +36,8 @@ func TestCompressorSimple(t *testing.T) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { t.Run(name, func(t *testing.T) { @@ -47,7 +48,7 @@ func TestCompressorSimple(t *testing.T) { c, err := NewCompressor( &bytes.Buffer{}, &bytes.Buffer{}, maxPayloadSize, maxUncompressedSize, - []byte("{["), []byte("]}"), []byte(","), compressionimpl.NewCompressor(mockConfig)) + []byte("{["), []byte("]}"), []byte(","), selector.NewCompressor(mockConfig)) require.NoError(t, err) for i := 0; i < 5; i++ { @@ -69,8 +70,8 @@ func TestCompressorAddItemErrCodeWithEmptyCompressor(t *testing.T) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { t.Run(name, func(t *testing.T) { @@ -80,7 +81,7 @@ func TestCompressorAddItemErrCodeWithEmptyCompressor(t *testing.T) { c, err := NewCompressor( &bytes.Buffer{}, &bytes.Buffer{}, maxPayloadSize, maxUncompressedSize, - []byte("{["), []byte("]}"), []byte(","), compressionimpl.NewCompressor(mockConfig)) + []byte("{["), []byte("]}"), []byte(","), selector.NewCompressor(mockConfig)) require.NoError(t, err) payload := strings.Repeat("A", dataLen) @@ -114,8 +115,8 @@ func TestOnePayloadSimple(t *testing.T) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { t.Run(name, func(t *testing.T) { @@ -127,7 +128,7 @@ func TestOnePayloadSimple(t *testing.T) { mockConfig := mock.New(t) mockConfig.SetWithoutSource("serializer_compressor_kind", tc.kind) - builder := NewJSONPayloadBuilder(true, mockConfig, compressionimpl.NewCompressor(mockConfig)) + builder := NewJSONPayloadBuilder(true, mockConfig, selector.NewCompressor(mockConfig)) payloads, err := BuildJSONPayload(builder, m) require.NoError(t, err) require.Len(t, payloads, 1) @@ -142,8 +143,8 @@ func TestMaxCompressedSizePayload(t *testing.T) { kind string maxPayloadSize int }{ - "zlib": {kind: compressionimpl.ZlibKind, maxPayloadSize: 22}, - "zstd": {kind: compressionimpl.ZstdKind, maxPayloadSize: 90}, + "zlib": {kind: common.ZlibKind, maxPayloadSize: 22}, + "zstd": {kind: common.ZstdKind, maxPayloadSize: 90}, } for name, tc := range tests { t.Run(name, func(t *testing.T) { @@ -156,7 +157,7 @@ func TestMaxCompressedSizePayload(t *testing.T) { mockConfig.SetWithoutSource("serializer_compressor_kind", tc.kind) mockConfig.SetDefault("serializer_max_payload_size", tc.maxPayloadSize) - builder := NewJSONPayloadBuilder(true, mockConfig, compressionimpl.NewCompressor(mockConfig)) + builder := NewJSONPayloadBuilder(true, mockConfig, selector.NewCompressor(mockConfig)) payloads, err := BuildJSONPayload(builder, m) require.NoError(t, err) require.Len(t, payloads, 1) @@ -180,7 +181,7 @@ func TestZstdCompressionLevel(t *testing.T) { mockConfig.SetWithoutSource("serializer_compressor_kind", "zstd") mockConfig.SetDefault("serializer_zstd_compressor_level", level) - builder := NewJSONPayloadBuilder(true, mockConfig, compressionimpl.NewCompressor(mockConfig)) + builder := NewJSONPayloadBuilder(true, mockConfig, selector.NewCompressor(mockConfig)) payloads, err := BuildJSONPayload(builder, m) require.NoError(t, err) require.Len(t, payloads, 1) @@ -195,8 +196,8 @@ func TestTwoPayload(t *testing.T) { kind string maxPayloadSize int }{ - "zlib": {kind: compressionimpl.ZlibKind, maxPayloadSize: 22}, - "zstd": {kind: compressionimpl.ZstdKind, maxPayloadSize: 70}, + "zlib": {kind: common.ZlibKind, maxPayloadSize: 22}, + "zstd": {kind: common.ZstdKind, maxPayloadSize: 70}, } for name, tc := range tests { t.Run(name, func(t *testing.T) { @@ -209,7 +210,7 @@ func TestTwoPayload(t *testing.T) { mockConfig.SetDefault("serializer_max_payload_size", tc.maxPayloadSize) mockConfig.SetWithoutSource("serializer_compressor_kind", tc.kind) - builder := NewJSONPayloadBuilder(true, mockConfig, compressionimpl.NewCompressor(mockConfig)) + builder := NewJSONPayloadBuilder(true, mockConfig, selector.NewCompressor(mockConfig)) payloads, err := BuildJSONPayload(builder, m) require.NoError(t, err) require.Len(t, payloads, 2) @@ -224,8 +225,8 @@ func TestLockedCompressorProducesSamePayloads(t *testing.T) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { t.Run(name, func(t *testing.T) { @@ -237,8 +238,8 @@ func TestLockedCompressorProducesSamePayloads(t *testing.T) { mockConfig := mock.New(t) mockConfig.SetWithoutSource("serializer_compressor_kind", tc.kind) - builderLocked := NewJSONPayloadBuilder(true, mockConfig, compressionimpl.NewCompressor(mockConfig)) - builderUnLocked := NewJSONPayloadBuilder(false, mockConfig, compressionimpl.NewCompressor(mockConfig)) + builderLocked := NewJSONPayloadBuilder(true, mockConfig, selector.NewCompressor(mockConfig)) + builderUnLocked := NewJSONPayloadBuilder(false, mockConfig, selector.NewCompressor(mockConfig)) payloads1, err := BuildJSONPayload(builderLocked, m) require.NoError(t, err) payloads2, err := BuildJSONPayload(builderUnLocked, m) @@ -254,8 +255,8 @@ func TestBuildWithOnErrItemTooBigPolicyMetadata(t *testing.T) { kind string maxUncompressedPayloadSize int }{ - "zlib": {kind: compressionimpl.ZlibKind, maxUncompressedPayloadSize: 40}, - "zstd": {kind: compressionimpl.ZstdKind, maxUncompressedPayloadSize: 170}, + "zlib": {kind: common.ZlibKind, maxUncompressedPayloadSize: 40}, + "zstd": {kind: common.ZstdKind, maxUncompressedPayloadSize: 170}, } for name, tc := range tests { t.Run(name, func(t *testing.T) { @@ -263,7 +264,7 @@ func TestBuildWithOnErrItemTooBigPolicyMetadata(t *testing.T) { mockConfig.SetWithoutSource("serializer_compressor_kind", tc.kind) mockConfig.SetWithoutSource("serializer_max_uncompressed_payload_size", tc.maxUncompressedPayloadSize) marshaler := &IterableStreamJSONMarshalerMock{index: 0, maxIndex: 100} - builder := NewJSONPayloadBuilder(false, mockConfig, compressionimpl.NewCompressor(mockConfig)) + builder := NewJSONPayloadBuilder(false, mockConfig, selector.NewCompressor(mockConfig)) payloads, err := builder.BuildWithOnErrItemTooBigPolicy( marshaler, DropItemOnErrItemTooBig) diff --git a/pkg/serializer/internal/stream/json_payload_builder.go b/pkg/serializer/internal/stream/json_payload_builder.go index 2280dceddce0e..0c12e7c2fb078 100644 --- a/pkg/serializer/internal/stream/json_payload_builder.go +++ b/pkg/serializer/internal/stream/json_payload_builder.go @@ -16,7 +16,7 @@ import ( "github.com/DataDog/datadog-agent/comp/core/config" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder/transaction" - "github.com/DataDog/datadog-agent/comp/serializer/compression" + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" "github.com/DataDog/datadog-agent/pkg/serializer/marshaler" "github.com/DataDog/datadog-agent/pkg/telemetry" "github.com/DataDog/datadog-agent/pkg/util/log" diff --git a/pkg/serializer/serializer.go b/pkg/serializer/serializer.go index 801fcc659cc22..3b23839b026a2 100644 --- a/pkg/serializer/serializer.go +++ b/pkg/serializer/serializer.go @@ -21,7 +21,7 @@ import ( orchestratorForwarder "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorinterface" "github.com/DataDog/datadog-agent/comp/core/config" - "github.com/DataDog/datadog-agent/comp/serializer/compression" + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" "github.com/DataDog/datadog-agent/pkg/metrics" "github.com/DataDog/datadog-agent/pkg/metrics/event" "github.com/DataDog/datadog-agent/pkg/metrics/servicecheck" diff --git a/pkg/serializer/serializer_benchmark_test.go b/pkg/serializer/serializer_benchmark_test.go index aca93e2c85f5a..f02bc89a44f72 100644 --- a/pkg/serializer/serializer_benchmark_test.go +++ b/pkg/serializer/serializer_benchmark_test.go @@ -12,8 +12,8 @@ import ( "testing" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder/transaction" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" - mock "github.com/DataDog/datadog-agent/pkg/config/mock" + "github.com/DataDog/datadog-agent/comp/serializer/compression/selector" + "github.com/DataDog/datadog-agent/pkg/config/mock" "github.com/DataDog/datadog-agent/pkg/metrics/event" metricsserializer "github.com/DataDog/datadog-agent/pkg/serializer/internal/metrics" "github.com/DataDog/datadog-agent/pkg/serializer/internal/stream" @@ -43,7 +43,7 @@ func benchmarkJSONStream(b *testing.B, passes int, sharedBuffers bool, numberOfE events := buildEvents(numberOfEvents) marshaler := events.CreateSingleMarshaler() mockConfig := mock.New(b) - payloadBuilder := stream.NewJSONPayloadBuilder(sharedBuffers, mockConfig, compressionimpl.NewCompressor(mockConfig)) + payloadBuilder := stream.NewJSONPayloadBuilder(sharedBuffers, mockConfig, selector.NewCompressor(mockConfig)) b.ResetTimer() for n := 0; n < b.N; n++ { @@ -58,7 +58,7 @@ func benchmarkSplit(b *testing.B, numberOfEvents int) { b.ResetTimer() mockConfig := mock.New(b) - strategy := compressionimpl.NewCompressor(mockConfig) + strategy := selector.NewCompressor(mockConfig) for n := 0; n < b.N; n++ { results, _ = split.Payloads(events, true, split.JSONMarshalFct, strategy) } diff --git a/pkg/serializer/serializer_test.go b/pkg/serializer/serializer_test.go index ac275ec4a32c9..7675390cc3233 100644 --- a/pkg/serializer/serializer_test.go +++ b/pkg/serializer/serializer_test.go @@ -22,8 +22,9 @@ import ( forwarder "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder/transaction" - "github.com/DataDog/datadog-agent/comp/serializer/compression" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + "github.com/DataDog/datadog-agent/comp/serializer/compression/common" + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" + "github.com/DataDog/datadog-agent/comp/serializer/compression/selector" configmock "github.com/DataDog/datadog-agent/pkg/config/mock" "github.com/DataDog/datadog-agent/pkg/metrics" "github.com/DataDog/datadog-agent/pkg/metrics/event" @@ -35,7 +36,7 @@ import ( func TestInitExtraHeadersNoopCompression(t *testing.T) { mockConfig := configmock.New(t) mockConfig.SetWithoutSource("serializer_compressor_kind", "blah") - s := NewSerializer(nil, nil, compressionimpl.NewCompressor(mockConfig), mockConfig, "testhost") + s := NewSerializer(nil, nil, selector.NewCompressor(mockConfig), mockConfig, "testhost") initExtraHeaders(s) expected := make(http.Header) @@ -63,14 +64,14 @@ func TestInitExtraHeadersWithCompression(t *testing.T) { kind string expectedEncoding string }{ - "zlib": {kind: compressionimpl.ZlibKind, expectedEncoding: compression.ZlibEncoding}, - "zstd": {kind: compressionimpl.ZstdKind, expectedEncoding: compression.ZstdEncoding}, + "zlib": {kind: common.ZlibKind, expectedEncoding: compression.ZlibEncoding}, + "zstd": {kind: common.ZstdKind, expectedEncoding: compression.ZstdEncoding}, } for name, tc := range tests { t.Run(name, func(t *testing.T) { mockConfig := configmock.New(t) mockConfig.SetWithoutSource("serializer_compressor_kind", tc.kind) - s := NewSerializer(nil, nil, compressionimpl.NewCompressor(mockConfig), mockConfig, "testhost") + s := NewSerializer(nil, nil, selector.NewCompressor(mockConfig), mockConfig, "testhost") initExtraHeaders(s) expected := make(http.Header) @@ -249,8 +250,8 @@ func TestSendV1Events(t *testing.T) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { t.Run(name, func(t *testing.T) { @@ -259,7 +260,7 @@ func TestSendV1Events(t *testing.T) { mockConfig.SetWithoutSource("serializer_compressor_kind", tc.kind) f := &forwarder.MockedForwarder{} - s := NewSerializer(f, nil, compressionimpl.NewCompressor(mockConfig), mockConfig, "testhost") + s := NewSerializer(f, nil, selector.NewCompressor(mockConfig), mockConfig, "testhost") matcher := createJSONPayloadMatcher(`{"apiKey":"","events":{},"internalHostname"`, s) f.On("SubmitV1Intake", matcher, s.jsonExtraHeadersWithCompression).Return(nil).Times(1) @@ -275,8 +276,8 @@ func TestSendV1EventsCreateMarshalersBySourceType(t *testing.T) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { @@ -286,7 +287,7 @@ func TestSendV1EventsCreateMarshalersBySourceType(t *testing.T) { mockConfig.SetWithoutSource("serializer_compressor_kind", tc.kind) f := &forwarder.MockedForwarder{} - s := NewSerializer(f, nil, compressionimpl.NewCompressor(mockConfig), mockConfig, "testhost") + s := NewSerializer(f, nil, selector.NewCompressor(mockConfig), mockConfig, "testhost") events := event.Events{&event.Event{SourceTypeName: "source1"}, &event.Event{SourceTypeName: "source2"}, &event.Event{SourceTypeName: "source3"}} payloadsCountMatcher := func(payloadCount int) interface{} { @@ -314,8 +315,8 @@ func TestSendV1ServiceChecks(t *testing.T) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { @@ -324,7 +325,7 @@ func TestSendV1ServiceChecks(t *testing.T) { mockConfig := configmock.New(t) mockConfig.SetWithoutSource("enable_service_checks_stream_payload_serialization", false) mockConfig.SetWithoutSource("serializer_compressor_kind", tc.kind) - s := NewSerializer(f, nil, compressionimpl.NewCompressor(mockConfig), mockConfig, "testhost") + s := NewSerializer(f, nil, selector.NewCompressor(mockConfig), mockConfig, "testhost") matcher := createJSONPayloadMatcher(`[{"check":"","host_name":"","timestamp":0,"status":0,"message":"","tags":null}]`, s) f.On("SubmitV1CheckRuns", matcher, s.jsonExtraHeadersWithCompression).Return(nil).Times(1) @@ -339,8 +340,8 @@ func TestSendV1Series(t *testing.T) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { @@ -350,7 +351,7 @@ func TestSendV1Series(t *testing.T) { mockConfig.SetWithoutSource("enable_stream_payload_serialization", false) mockConfig.SetWithoutSource("use_v2_api.series", false) mockConfig.SetWithoutSource("serializer_compressor_kind", tc.kind) - s := NewSerializer(f, nil, compressionimpl.NewCompressor(mockConfig), mockConfig, "testhost") + s := NewSerializer(f, nil, selector.NewCompressor(mockConfig), mockConfig, "testhost") matcher := createJSONPayloadMatcher(`{"series":[]}`, s) f.On("SubmitV1Series", matcher, s.jsonExtraHeadersWithCompression).Return(nil).Times(1) @@ -366,8 +367,8 @@ func TestSendSeries(t *testing.T) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { @@ -376,7 +377,7 @@ func TestSendSeries(t *testing.T) { mockConfig := configmock.New(t) mockConfig.SetWithoutSource("use_v2_api.series", true) // default value, but just to be sure mockConfig.SetWithoutSource("serializer_compressor_kind", tc.kind) - s := NewSerializer(f, nil, compressionimpl.NewCompressor(mockConfig), mockConfig, "testhost") + s := NewSerializer(f, nil, selector.NewCompressor(mockConfig), mockConfig, "testhost") matcher := createProtoscopeMatcher(`1: { 1: { 1: {"host"} } 5: 3 @@ -395,8 +396,8 @@ func TestSendSketch(t *testing.T) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { @@ -405,7 +406,7 @@ func TestSendSketch(t *testing.T) { mockConfig := configmock.New(t) mockConfig.SetWithoutSource("use_v2_api.series", true) // default value, but just to be sure mockConfig.SetWithoutSource("serializer_compressor_kind", tc.kind) - s := NewSerializer(f, nil, compressionimpl.NewCompressor(mockConfig), mockConfig, "testhost") + s := NewSerializer(f, nil, selector.NewCompressor(mockConfig), mockConfig, "testhost") matcher := createProtoscopeMatcher(` 1: { 1: {"fakename"} 2: {"fakehost"} 8: { 1: { 4: 10 }}} 2: {} @@ -425,8 +426,8 @@ func TestSendMetadata(t *testing.T) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { @@ -434,7 +435,7 @@ func TestSendMetadata(t *testing.T) { f := &forwarder.MockedForwarder{} mockConfig := configmock.New(t) mockConfig.SetWithoutSource("serializer_compressor_kind", tc.kind) - compressor := compressionimpl.NewCompressor(mockConfig) + compressor := selector.NewCompressor(mockConfig) s := NewSerializer(f, nil, compressor, mockConfig, "testhost") jsonPayloads, _ := mkPayloads(jsonString, true, s) f.On("SubmitMetadata", jsonPayloads, s.jsonExtraHeadersWithCompression).Return(nil).Times(1) @@ -460,8 +461,8 @@ func TestSendProcessesMetadata(t *testing.T) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { @@ -470,7 +471,7 @@ func TestSendProcessesMetadata(t *testing.T) { payload := []byte("\"test\"") mockConfig := configmock.New(t) mockConfig.SetWithoutSource("serializer_compressor_kind", tc.kind) - s := NewSerializer(f, nil, compressionimpl.NewCompressor(mockConfig), mockConfig, "testhost") + s := NewSerializer(f, nil, selector.NewCompressor(mockConfig), mockConfig, "testhost") payloads, _ := mkPayloads(payload, true, s) f.On("SubmitV1Intake", payloads, s.jsonExtraHeadersWithCompression).Return(nil).Times(1) @@ -494,8 +495,8 @@ func TestSendWithDisabledKind(t *testing.T) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { @@ -510,7 +511,7 @@ func TestSendWithDisabledKind(t *testing.T) { mockConfig.SetWithoutSource("serializer_compressor_kind", tc.kind) f := &forwarder.MockedForwarder{} - s := NewSerializer(f, nil, compressionimpl.NewCompressor(mockConfig), mockConfig, "testhost") + s := NewSerializer(f, nil, selector.NewCompressor(mockConfig), mockConfig, "testhost") jsonPayloads, _ := mkPayloads(jsonString, true, s) payload := &testPayload{} diff --git a/pkg/serializer/series_benchmark_test.go b/pkg/serializer/series_benchmark_test.go index 9add8df416c63..0ec06d0833991 100644 --- a/pkg/serializer/series_benchmark_test.go +++ b/pkg/serializer/series_benchmark_test.go @@ -14,9 +14,8 @@ import ( "github.com/stretchr/testify/require" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder/transaction" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" - - mock "github.com/DataDog/datadog-agent/pkg/config/mock" + "github.com/DataDog/datadog-agent/comp/serializer/compression/selector" + "github.com/DataDog/datadog-agent/pkg/config/mock" "github.com/DataDog/datadog-agent/pkg/metrics" metricsserializer "github.com/DataDog/datadog-agent/pkg/serializer/internal/metrics" "github.com/DataDog/datadog-agent/pkg/serializer/internal/stream" @@ -80,10 +79,10 @@ func BenchmarkSeries(b *testing.B) { mockConfig := mock.New(b) pb := func(series metrics.Series) (transaction.BytesPayloads, error) { iterableSeries := metricsserializer.CreateIterableSeries(metricsserializer.CreateSerieSource(series)) - return iterableSeries.MarshalSplitCompress(bufferContext, mockConfig, compressionimpl.NewCompressor(mockConfig)) + return iterableSeries.MarshalSplitCompress(bufferContext, mockConfig, selector.NewCompressor(mockConfig)) } - payloadBuilder := stream.NewJSONPayloadBuilder(true, mockConfig, compressionimpl.NewCompressor(mockConfig)) + payloadBuilder := stream.NewJSONPayloadBuilder(true, mockConfig, selector.NewCompressor(mockConfig)) json := func(series metrics.Series) (transaction.BytesPayloads, error) { iterableSeries := metricsserializer.CreateIterableSeries(metricsserializer.CreateSerieSource(series)) return payloadBuilder.BuildWithOnErrItemTooBigPolicy(iterableSeries, stream.DropItemOnErrItemTooBig) diff --git a/pkg/serializer/split/split.go b/pkg/serializer/split/split.go index 45ede0cf413a0..0d73e9b6ff0e6 100644 --- a/pkg/serializer/split/split.go +++ b/pkg/serializer/split/split.go @@ -10,7 +10,7 @@ import ( "expvar" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder/transaction" - "github.com/DataDog/datadog-agent/comp/serializer/compression" + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" "github.com/DataDog/datadog-agent/pkg/serializer/marshaler" "github.com/DataDog/datadog-agent/pkg/telemetry" diff --git a/pkg/serializer/split/split_test.go b/pkg/serializer/split/split_test.go index c333dde3a3a43..22fa78e0ff9bd 100644 --- a/pkg/serializer/split/split_test.go +++ b/pkg/serializer/split/split_test.go @@ -15,14 +15,15 @@ import ( "github.com/stretchr/testify/require" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder/transaction" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + "github.com/DataDog/datadog-agent/comp/serializer/compression/common" + "github.com/DataDog/datadog-agent/comp/serializer/compression/selector" "github.com/DataDog/datadog-agent/pkg/metrics" "github.com/DataDog/datadog-agent/pkg/metrics/event" "github.com/DataDog/datadog-agent/pkg/metrics/servicecheck" metricsserializer "github.com/DataDog/datadog-agent/pkg/serializer/internal/metrics" "github.com/DataDog/datadog-agent/pkg/tagset" - mock "github.com/DataDog/datadog-agent/pkg/config/mock" + "github.com/DataDog/datadog-agent/pkg/config/mock" ) func TestSplitPayloadsSeries(t *testing.T) { @@ -54,8 +55,8 @@ func testSplitPayloadsSeries(t *testing.T, numPoints int, compress bool) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { t.Run(name, func(t *testing.T) { @@ -86,7 +87,7 @@ func testSplitPayloadsSeries(t *testing.T, numPoints int, compress bool) { mockConfig := mock.New(t) mockConfig.SetWithoutSource("serializer_compressor_kind", tc.kind) - strategy := compressionimpl.NewCompressor(mockConfig) + strategy := selector.NewCompressor(mockConfig) payloads, err := Payloads(testSeries, compress, JSONMarshalFct, strategy) require.Nil(t, err) @@ -136,7 +137,7 @@ func BenchmarkSplitPayloadsSeries(b *testing.B) { } mockConfig := mock.New(b) - strategy := compressionimpl.NewCompressor(mockConfig) + strategy := selector.NewCompressor(mockConfig) var r transaction.BytesPayloads for n := 0; n < b.N; n++ { // always record the result of Payloads to prevent @@ -193,8 +194,8 @@ func testSplitPayloadsEvents(t *testing.T, numPoints int, compress bool) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { t.Run(name, func(t *testing.T) { @@ -215,7 +216,7 @@ func testSplitPayloadsEvents(t *testing.T, numPoints int, compress bool) { mockConfig := mock.New(t) mockConfig.SetWithoutSource("serializer_compressor_kind", tc.kind) - strategy := compressionimpl.NewCompressor(mockConfig) + strategy := selector.NewCompressor(mockConfig) payloads, err := Payloads(testEvent, compress, JSONMarshalFct, strategy) require.Nil(t, err) @@ -274,8 +275,8 @@ func testSplitPayloadsServiceChecks(t *testing.T, numPoints int, compress bool) tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { t.Run(name, func(t *testing.T) { @@ -294,7 +295,7 @@ func testSplitPayloadsServiceChecks(t *testing.T, numPoints int, compress bool) mockConfig := mock.New(t) mockConfig.SetWithoutSource("serializer_compressor_kind", tc.kind) - strategy := compressionimpl.NewCompressor(mockConfig) + strategy := selector.NewCompressor(mockConfig) payloads, err := Payloads(testServiceChecks, compress, JSONMarshalFct, strategy) require.Nil(t, err) diff --git a/pkg/serverless/invocationlifecycle/lifecycle_test.go b/pkg/serverless/invocationlifecycle/lifecycle_test.go index 798df82a29d60..3eefd8dc51bbd 100644 --- a/pkg/serverless/invocationlifecycle/lifecycle_test.go +++ b/pkg/serverless/invocationlifecycle/lifecycle_test.go @@ -11,12 +11,14 @@ import ( "testing" "time" + "go.uber.org/fx" + "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer/demultiplexerimpl" "github.com/DataDog/datadog-agent/comp/core/hostname/hostnameimpl" log "github.com/DataDog/datadog-agent/comp/core/log/def" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" "github.com/DataDog/datadog-agent/pkg/metrics" pb "github.com/DataDog/datadog-agent/pkg/proto/pbgo/trace" "github.com/DataDog/datadog-agent/pkg/serverless/logs" @@ -24,7 +26,6 @@ import ( "github.com/DataDog/datadog-agent/pkg/trace/api" "github.com/DataDog/datadog-agent/pkg/trace/sampler" "github.com/DataDog/datadog-agent/pkg/util/fxutil" - "go.uber.org/fx" "github.com/stretchr/testify/assert" ) @@ -1382,5 +1383,5 @@ func getEventFromFile(filename string) []byte { } func createDemultiplexer(t *testing.T) demultiplexer.FakeSamplerMock { - return fxutil.Test[demultiplexer.FakeSamplerMock](t, fx.Provide(func() log.Component { return logmock.New(t) }), compressionimpl.MockModule(), demultiplexerimpl.FakeSamplerMockModule(), hostnameimpl.MockModule()) + return fxutil.Test[demultiplexer.FakeSamplerMock](t, fx.Provide(func() log.Component { return logmock.New(t) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule(), hostnameimpl.MockModule()) } diff --git a/pkg/serverless/logs/logs_test.go b/pkg/serverless/logs/logs_test.go index 0eb49fd520cd1..6a8f0d30d3cb0 100644 --- a/pkg/serverless/logs/logs_test.go +++ b/pkg/serverless/logs/logs_test.go @@ -26,7 +26,7 @@ import ( log "github.com/DataDog/datadog-agent/comp/core/log/def" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" "github.com/DataDog/datadog-agent/comp/logs/agent/config" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" "github.com/DataDog/datadog-agent/pkg/metrics" "github.com/DataDog/datadog-agent/pkg/serverless/executioncontext" serverlessMetrics "github.com/DataDog/datadog-agent/pkg/serverless/metrics" @@ -1473,5 +1473,5 @@ func TestMultipleStartLogCollection(t *testing.T) { } func createDemultiplexer(t *testing.T) demultiplexer.FakeSamplerMock { - return fxutil.Test[demultiplexer.FakeSamplerMock](t, fx.Provide(func() log.Component { return logmock.New(t) }), compressionimpl.MockModule(), demultiplexerimpl.FakeSamplerMockModule(), hostnameimpl.MockModule()) + return fxutil.Test[demultiplexer.FakeSamplerMock](t, fx.Provide(func() log.Component { return logmock.New(t) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule(), hostnameimpl.MockModule()) } diff --git a/pkg/serverless/metrics/enhanced_metrics_test.go b/pkg/serverless/metrics/enhanced_metrics_test.go index 81de716f01226..ea6619861f726 100644 --- a/pkg/serverless/metrics/enhanced_metrics_test.go +++ b/pkg/serverless/metrics/enhanced_metrics_test.go @@ -9,16 +9,17 @@ import ( "testing" "time" - "github.com/DataDog/datadog-agent/pkg/serverless/proc" "github.com/stretchr/testify/assert" "go.uber.org/fx" + compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" + "github.com/DataDog/datadog-agent/pkg/serverless/proc" + "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer/demultiplexerimpl" "github.com/DataDog/datadog-agent/comp/core/hostname/hostnameimpl" log "github.com/DataDog/datadog-agent/comp/core/log/def" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" "github.com/DataDog/datadog-agent/pkg/metrics" serverlessTags "github.com/DataDog/datadog-agent/pkg/serverless/tags" "github.com/DataDog/datadog-agent/pkg/util/fxutil" @@ -833,5 +834,5 @@ func TestSendFailoverReasonMetric(t *testing.T) { } func createDemultiplexer(t *testing.T) demultiplexer.FakeSamplerMock { - return fxutil.Test[demultiplexer.FakeSamplerMock](t, fx.Provide(func() log.Component { return logmock.New(t) }), compressionimpl.MockModule(), demultiplexerimpl.FakeSamplerMockModule(), hostnameimpl.MockModule()) + return fxutil.Test[demultiplexer.FakeSamplerMock](t, fx.Provide(func() log.Component { return logmock.New(t) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule(), hostnameimpl.MockModule()) } diff --git a/tasks/components.py b/tasks/components.py index 6608c29623de4..c534d63c56b83 100644 --- a/tasks/components.py +++ b/tasks/components.py @@ -143,7 +143,6 @@ def has_type_component(content) -> bool: 'comp/remote-config/rcservicemrf/rcservicemrfimpl', 'comp/remote-config/rcstatus/rcstatusimpl', 'comp/remote-config/rctelemetryreporter/rctelemetryreporterimpl', - 'comp/serializer/compression/compressionimpl', 'comp/snmptraps/config/configimpl', 'comp/snmptraps/formatter/formatterimpl', 'comp/snmptraps/forwarder/forwarderimpl', diff --git a/test/otel/dependencies.go b/test/otel/dependencies.go index eee8cb5f7596e..e3beed26a8adc 100644 --- a/test/otel/dependencies.go +++ b/test/otel/dependencies.go @@ -17,6 +17,7 @@ import ( "github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter" "github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient" "github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/statsprocessor" + strategy_none "github.com/DataDog/datadog-agent/comp/serializer/compression/impl-noop" "github.com/DataDog/datadog-agent/pkg/config/model" "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/proto/pbgo/trace" @@ -40,6 +41,7 @@ func _( _ setup.ConfigurationProviders, _ trace.Trace, _ *api.OTLPReceiver, + _ *strategy_none.NoopStrategy, ) { main() } diff --git a/test/otel/go.mod b/test/otel/go.mod index f0866eb2c74b2..793d0622ee5a3 100644 --- a/test/otel/go.mod +++ b/test/otel/go.mod @@ -102,6 +102,7 @@ require ( github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter v0.56.0-rc.3 github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient v0.56.0-rc.3 github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/statsprocessor v0.56.0-rc.1 + github.com/DataDog/datadog-agent/comp/serializer/compression v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 github.com/DataDog/datadog-agent/pkg/proto v0.56.0-rc.3 diff --git a/test/system/dogstatsd/receive_and_forward_test.go b/test/system/dogstatsd/receive_and_forward_test.go index c1a4221570f89..7961d4b43e8ee 100644 --- a/test/system/dogstatsd/receive_and_forward_test.go +++ b/test/system/dogstatsd/receive_and_forward_test.go @@ -16,10 +16,11 @@ import ( "github.com/stretchr/testify/require" "github.com/DataDog/datadog-agent/comp/metadata/host/hostimpl" - "github.com/DataDog/datadog-agent/comp/serializer/compression/compressionimpl" + "github.com/DataDog/datadog-agent/comp/serializer/compression/common" + "github.com/DataDog/datadog-agent/comp/serializer/compression/selector" "github.com/DataDog/datadog-agent/pkg/metrics/servicecheck" - mock "github.com/DataDog/datadog-agent/pkg/config/mock" + "github.com/DataDog/datadog-agent/pkg/config/mock" ) func testMetadata(t *testing.T, d *dogstatsdTest) { @@ -46,8 +47,8 @@ func TestReceiveAndForward(t *testing.T) { tests := map[string]struct { kind string }{ - "zlib": {kind: compressionimpl.ZlibKind}, - "zstd": {kind: compressionimpl.ZstdKind}, + "zlib": {kind: common.ZlibKind}, + "zstd": {kind: common.ZstdKind}, } for name, tc := range tests { @@ -72,7 +73,7 @@ func TestReceiveAndForward(t *testing.T) { mockConfig := mock.New(t) mockConfig.SetWithoutSource("serializer_compressor_kind", tc.kind) - strategy := compressionimpl.NewCompressor(mockConfig) + strategy := selector.NewCompressor(mockConfig) sc := []servicecheck.ServiceCheck{} decompressedBody, err := strategy.Decompress([]byte(requests[0])) From 1c86f1961f67fb45ff1e316842bd8eeb23c1e67e Mon Sep 17 00:00:00 2001 From: William Yu <7888158+wiyu@users.noreply.github.com> Date: Tue, 26 Nov 2024 17:42:29 -0500 Subject: [PATCH 073/439] [PROCS-4575] Split the ECS-EC2 process check running into the core agent into a separate suite (#31500) --- test/new-e2e/tests/process/ecs_test.go | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/test/new-e2e/tests/process/ecs_test.go b/test/new-e2e/tests/process/ecs_test.go index 3c33e15e021b3..95024a2bdea3d 100644 --- a/test/new-e2e/tests/process/ecs_test.go +++ b/test/new-e2e/tests/process/ecs_test.go @@ -87,13 +87,24 @@ func (s *ECSEC2Suite) TestProcessCheck() { assertContainersCollected(t, payloads, []string{"stress-ng"}) } -func (s *ECSEC2Suite) TestProcessCheckInCoreAgent() { - t := s.T() +// ECSEC2CoreAgentSuite runs the same test as ECSEC2Suite but with the process check running in the core agent +// This is duplicated as the tests have been flaky. This may be due to how pulumi is handling the provisioning of +// ecs tasks. +type ECSEC2CoreAgentSuite struct { + ECSEC2Suite +} + +func TestECSEC2CoreAgentSuite(t *testing.T) { + t.Parallel() + s := ECSEC2CoreAgentSuite{} + e2eParams := []e2e.SuiteOption{e2e.WithProvisioner( + e2e.NewTypedPulumiProvisioner("ecsEC2CoreAgentCPUStress", ecsEC2CPUStressProvisioner(true), nil))} - s.UpdateEnv(e2e.NewTypedPulumiProvisioner("ecsEC2CPUStress", ecsEC2CPUStressProvisioner(true), nil)) + e2e.Run(t, &s, e2eParams...) +} - // Flush fake intake to remove any payloads which may have - s.Env().FakeIntake.Client().FlushServerAndResetAggregators() +func (s *ECSEC2CoreAgentSuite) TestProcessCheckInCoreAgent() { + t := s.T() var payloads []*aggregator.ProcessPayload assert.EventuallyWithT(t, func(c *assert.CollectT) { From a768373c8f1c86c47ef043f9d9113d4b858a66fd Mon Sep 17 00:00:00 2001 From: val06 Date: Wed, 27 Nov 2024 02:41:47 +0200 Subject: [PATCH 074/439] [USM] refactored docker-compose testutil (#31470) Co-authored-by: Guy Arbitman --- .github/CODEOWNERS | 1 + .../module/impl_linux_test.go | 11 +- pkg/gpu/testutil/docker.go | 29 --- pkg/gpu/testutil/samplebins.go | 6 +- pkg/network/protocols/amqp/server.go | 10 +- pkg/network/protocols/kafka/server.go | 11 +- pkg/network/protocols/mongo/server.go | 11 +- pkg/network/protocols/mysql/server.go | 10 +- pkg/network/protocols/postgres/server.go | 11 +- pkg/network/protocols/redis/server.go | 10 +- pkg/network/protocols/testutil/pcaputils.go | 1 + pkg/network/protocols/testutil/serverutils.go | 155 --------------- .../protocols/testutil/tls_settings.go | 1 + .../protocols/tls/gotls/testutil/server.go | 11 +- pkg/network/protocols/tls/nodejs/nodejs.go | 14 +- pkg/network/usm/monitor_tls_test.go | 12 +- .../usm/sharedlibraries/testutil/testutil.go | 2 +- pkg/util/testutil/docker/config.go | 185 ++++++++++++++++++ pkg/util/testutil/docker/get.go | 47 +++++ pkg/util/testutil/docker/run.go | 108 ++++++++++ .../testutil/patternscanner.go | 6 +- 21 files changed, 437 insertions(+), 215 deletions(-) delete mode 100644 pkg/gpu/testutil/docker.go delete mode 100644 pkg/network/protocols/testutil/serverutils.go create mode 100644 pkg/util/testutil/docker/config.go create mode 100644 pkg/util/testutil/docker/get.go create mode 100644 pkg/util/testutil/docker/run.go rename pkg/{network/protocols => util}/testutil/patternscanner.go (95%) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index aea9022667a2e..e5db92be230da 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -465,6 +465,7 @@ /pkg/util/pdhutil/ @DataDog/windows-agent /pkg/util/winutil/ @DataDog/windows-agent /pkg/util/testutil/flake @DataDog/agent-devx-loops +/pkg/util/testutil/docker @DataDog/universal-service-monitoring @DataDog/ebpf-platform /pkg/util/trie @DataDog/container-integrations /pkg/languagedetection @DataDog/processes @DataDog/universal-service-monitoring /pkg/linters/ @DataDog/agent-devx-loops diff --git a/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go b/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go index bdea1f5c70c8c..bd71b5d00e6b5 100644 --- a/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go +++ b/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go @@ -46,12 +46,12 @@ import ( "github.com/DataDog/datadog-agent/pkg/collector/corechecks/servicediscovery/model" "github.com/DataDog/datadog-agent/pkg/network" "github.com/DataDog/datadog-agent/pkg/network/protocols/http/testutil" - protocolUtils "github.com/DataDog/datadog-agent/pkg/network/protocols/testutil" "github.com/DataDog/datadog-agent/pkg/network/protocols/tls/nodejs" fileopener "github.com/DataDog/datadog-agent/pkg/network/usm/sharedlibraries/testutil" usmtestutil "github.com/DataDog/datadog-agent/pkg/network/usm/testutil" "github.com/DataDog/datadog-agent/pkg/util/fxutil" "github.com/DataDog/datadog-agent/pkg/util/kernel" + dockerutils "github.com/DataDog/datadog-agent/pkg/util/testutil/docker" ) func setupDiscoveryModule(t *testing.T) string { @@ -772,10 +772,13 @@ func TestDocker(t *testing.T) { url := setupDiscoveryModule(t) dir, _ := testutil.CurDir() - err := protocolUtils.RunDockerServer(t, "foo-server", - dir+"/testdata/docker-compose.yml", []string{}, + dockerCfg := dockerutils.NewComposeConfig("foo-server", + dockerutils.DefaultTimeout, + dockerutils.DefaultRetries, regexp.MustCompile("Serving.*"), - protocolUtils.DefaultTimeout, 3) + dockerutils.EmptyEnv, + filepath.Join(dir, "testdata", "docker-compose.yml")) + err := dockerutils.Run(t, dockerCfg) require.NoError(t, err) proc, err := procfs.NewDefaultFS() diff --git a/pkg/gpu/testutil/docker.go b/pkg/gpu/testutil/docker.go deleted file mode 100644 index 5e17f9cc94af5..0000000000000 --- a/pkg/gpu/testutil/docker.go +++ /dev/null @@ -1,29 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2024-present Datadog, Inc. - -//go:build test - -// Package testutil holds different utilities and stubs for testing -package testutil - -import ( - "bytes" - "fmt" - "os/exec" - "strings" -) - -// GetDockerContainerID returns the ID of a docker container. -func GetDockerContainerID(dockerName string) (string, error) { - // Ensuring no previous instances exists. - c := exec.Command("docker", "inspect", "-f", "{{.Id}}", dockerName) - var stdout, stderr bytes.Buffer - c.Stdout = &stdout - c.Stderr = &stderr - if err := c.Run(); err != nil { - return "", fmt.Errorf("failed to get %s ID: %s", dockerName, stderr.String()) - } - return strings.TrimSpace(stdout.String()), nil -} diff --git a/pkg/gpu/testutil/samplebins.go b/pkg/gpu/testutil/samplebins.go index a8d74ba47992f..23ab544162e91 100644 --- a/pkg/gpu/testutil/samplebins.go +++ b/pkg/gpu/testutil/samplebins.go @@ -21,9 +21,9 @@ import ( "github.com/stretchr/testify/require" "github.com/DataDog/datadog-agent/pkg/network/protocols/http/testutil" - prototestutil "github.com/DataDog/datadog-agent/pkg/network/protocols/testutil" "github.com/DataDog/datadog-agent/pkg/security/utils" "github.com/DataDog/datadog-agent/pkg/util/log" + dockerutils "github.com/DataDog/datadog-agent/pkg/util/testutil/docker" ) // SampleName represents the name of the sample binary. @@ -177,12 +177,12 @@ func RunSampleInDockerWithArgs(t *testing.T, name SampleName, image DockerImage, var err error // The docker container might take a bit to start, so we retry until we get the PID require.EventuallyWithT(t, func(c *assert.CollectT) { - dockerPID, err = prototestutil.GetDockerPID(containerName) + dockerPID, err = dockerutils.GetMainPID(containerName) assert.NoError(c, err) }, 1*time.Second, 100*time.Millisecond, "failed to get docker PID") require.EventuallyWithT(t, func(c *assert.CollectT) { - dockerContainerID, err = GetDockerContainerID(containerName) + dockerContainerID, err = dockerutils.GetContainerID(containerName) assert.NoError(c, err) }, 1*time.Second, 100*time.Millisecond, "failed to get docker container ID") diff --git a/pkg/network/protocols/amqp/server.go b/pkg/network/protocols/amqp/server.go index ff01e2df4e56c..b6d5e14338e4a 100644 --- a/pkg/network/protocols/amqp/server.go +++ b/pkg/network/protocols/amqp/server.go @@ -16,6 +16,7 @@ import ( httpUtils "github.com/DataDog/datadog-agent/pkg/network/protocols/http/testutil" protocolsUtils "github.com/DataDog/datadog-agent/pkg/network/protocols/testutil" + dockerutils "github.com/DataDog/datadog-agent/pkg/util/testutil/docker" ) const ( @@ -44,7 +45,14 @@ func RunServer(t testing.TB, serverAddr, serverPort string, enableTLS bool) erro startupRegexp := startupRegexpGenerators[enableTLS](t, serverPort) dir, _ := httpUtils.CurDir() - return protocolsUtils.RunDockerServer(t, "amqp", dir+"/testdata/docker-compose.yml", env, startupRegexp, protocolsUtils.DefaultTimeout, 3) + + dockerCfg := dockerutils.NewComposeConfig("amqp", + dockerutils.DefaultTimeout, + dockerutils.DefaultRetries, + startupRegexp, + env, + filepath.Join(dir, "testdata", "docker-compose.yml")) + return dockerutils.Run(t, dockerCfg) } // getServerEnv returns the environment to configure the amqp server diff --git a/pkg/network/protocols/kafka/server.go b/pkg/network/protocols/kafka/server.go index 3a29851fcffcd..b1d892d985814 100644 --- a/pkg/network/protocols/kafka/server.go +++ b/pkg/network/protocols/kafka/server.go @@ -12,10 +12,9 @@ import ( "path/filepath" "regexp" "testing" - "time" "github.com/DataDog/datadog-agent/pkg/network/protocols/http/testutil" - protocolsUtils "github.com/DataDog/datadog-agent/pkg/network/protocols/testutil" + dockerutils "github.com/DataDog/datadog-agent/pkg/util/testutil/docker" ) // RunServer runs a kafka server in a docker container @@ -41,5 +40,11 @@ func RunServer(t testing.TB, serverAddr, serverPort string) error { return err } - return protocolsUtils.RunDockerServer(t, "kafka", dir+"/testdata/docker-compose.yml", env, regexp.MustCompile(`.*started \(kafka.server.KafkaServer\).*`), 1*time.Minute, 3) + dockerCfg := dockerutils.NewComposeConfig("kafka", + dockerutils.DefaultTimeout, + dockerutils.DefaultRetries, + regexp.MustCompile(`.*started \(kafka.server.KafkaServer\).*`), + env, + filepath.Join(dir, "testdata", "docker-compose.yml")) + return dockerutils.Run(t, dockerCfg) } diff --git a/pkg/network/protocols/mongo/server.go b/pkg/network/protocols/mongo/server.go index 70d31a67d8fa1..3abf2f69300a2 100644 --- a/pkg/network/protocols/mongo/server.go +++ b/pkg/network/protocols/mongo/server.go @@ -7,11 +7,12 @@ package mongo import ( "fmt" + "path/filepath" "regexp" "testing" "github.com/DataDog/datadog-agent/pkg/network/protocols/http/testutil" - protocolsUtils "github.com/DataDog/datadog-agent/pkg/network/protocols/testutil" + dockerutils "github.com/DataDog/datadog-agent/pkg/util/testutil/docker" ) const ( @@ -30,5 +31,11 @@ func RunServer(t testing.TB, serverAddress, serverPort string) error { "MONGO_PASSWORD=" + Pass, } dir, _ := testutil.CurDir() - return protocolsUtils.RunDockerServer(t, "mongo", dir+"/testdata/docker-compose.yml", env, regexp.MustCompile(fmt.Sprintf(".*Waiting for connections.*port.*:%s.*", serverPort)), protocolsUtils.DefaultTimeout, 3) + dockerCfg := dockerutils.NewComposeConfig("mongo", + dockerutils.DefaultTimeout, + dockerutils.DefaultRetries, + regexp.MustCompile(fmt.Sprintf(".*Waiting for connections.*port.*:%s.*", serverPort)), + env, + filepath.Join(dir, "testdata", "docker-compose.yml")) + return dockerutils.Run(t, dockerCfg) } diff --git a/pkg/network/protocols/mysql/server.go b/pkg/network/protocols/mysql/server.go index ac17a230353d9..2ead1b2cbe9b5 100644 --- a/pkg/network/protocols/mysql/server.go +++ b/pkg/network/protocols/mysql/server.go @@ -14,7 +14,7 @@ import ( "github.com/stretchr/testify/require" "github.com/DataDog/datadog-agent/pkg/network/protocols/http/testutil" - protocolsUtils "github.com/DataDog/datadog-agent/pkg/network/protocols/testutil" + dockerutils "github.com/DataDog/datadog-agent/pkg/util/testutil/docker" ) const ( @@ -45,5 +45,11 @@ func RunServer(t testing.TB, serverAddr, serverPort string, withTLS bool) error env = append(env, "MYSQL_TLS_ARGS=--require-secure-transport --ssl-cert=/mysql-test/cert.pem.0 --ssl-key=/mysql-test/server.key") } - return protocolsUtils.RunDockerServer(t, "MYSQL", dir+"/testdata/docker-compose.yml", env, regexp.MustCompile(fmt.Sprintf(".*ready for connections.*port: %s.*", serverPort)), protocolsUtils.DefaultTimeout, 3) + dockerCfg := dockerutils.NewComposeConfig("MYSQL", + dockerutils.DefaultTimeout, + dockerutils.DefaultRetries, + regexp.MustCompile(fmt.Sprintf(".*ready for connections.*port: %s.*", serverPort)), + env, + filepath.Join(dir, "testdata", "docker-compose.yml")) + return dockerutils.Run(t, dockerCfg) } diff --git a/pkg/network/protocols/postgres/server.go b/pkg/network/protocols/postgres/server.go index a4366bc661205..8b95627347c16 100644 --- a/pkg/network/protocols/postgres/server.go +++ b/pkg/network/protocols/postgres/server.go @@ -19,7 +19,7 @@ import ( "github.com/stretchr/testify/require" "github.com/DataDog/datadog-agent/pkg/network/protocols/http/testutil" - protocolsUtils "github.com/DataDog/datadog-agent/pkg/network/protocols/testutil" + dockerutils "github.com/DataDog/datadog-agent/pkg/util/testutil/docker" ) // RunServer runs a postgres server in a docker container @@ -48,8 +48,13 @@ func RunServer(t testing.TB, serverAddr, serverPort string, enableTLS bool) erro "ENCRYPTION_MODE=" + encryptionMode, "TESTDIR=" + testDataDir, } - - return protocolsUtils.RunDockerServer(t, "postgres", filepath.Join(testDataDir, "docker-compose.yml"), env, regexp.MustCompile(fmt.Sprintf(".*listening on IPv4 address \"0.0.0.0\", port %s", serverPort)), protocolsUtils.DefaultTimeout, 3) + dockerCfg := dockerutils.NewComposeConfig("postgres", + dockerutils.DefaultTimeout, + dockerutils.DefaultRetries, + regexp.MustCompile(fmt.Sprintf(".*listening on IPv4 address \"0.0.0.0\", port %s", serverPort)), + env, + filepath.Join(testDataDir, "docker-compose.yml")) + return dockerutils.Run(t, dockerCfg) } // copyFile copies a file from src to dst diff --git a/pkg/network/protocols/redis/server.go b/pkg/network/protocols/redis/server.go index 30f2500b616ce..4adf5191dc8bb 100644 --- a/pkg/network/protocols/redis/server.go +++ b/pkg/network/protocols/redis/server.go @@ -18,7 +18,7 @@ import ( "github.com/stretchr/testify/require" "github.com/DataDog/datadog-agent/pkg/network/protocols/http/testutil" - protocolsUtils "github.com/DataDog/datadog-agent/pkg/network/protocols/testutil" + dockerutils "github.com/DataDog/datadog-agent/pkg/util/testutil/docker" ) // RunServer runs a Redis server in a docker container @@ -42,5 +42,11 @@ func RunServer(t testing.TB, serverAddr, serverPort string, enableTLS bool) erro env = append(env, args) } - return protocolsUtils.RunDockerServer(t, "redis", dir+"/testdata/docker-compose.yml", env, regexp.MustCompile(".*Ready to accept connections"), protocolsUtils.DefaultTimeout, 3) + dockerCfg := dockerutils.NewComposeConfig("redis", + dockerutils.DefaultTimeout, + dockerutils.DefaultRetries, + regexp.MustCompile(".*Ready to accept connections"), + env, + filepath.Join(dir, "testdata", "docker-compose.yml")) + return dockerutils.Run(t, dockerCfg) } diff --git a/pkg/network/protocols/testutil/pcaputils.go b/pkg/network/protocols/testutil/pcaputils.go index 582d2fe65fd40..ede05ecd2ad67 100644 --- a/pkg/network/protocols/testutil/pcaputils.go +++ b/pkg/network/protocols/testutil/pcaputils.go @@ -5,6 +5,7 @@ //go:build linux +// Package testutil provides general utilities for protocols UTs. package testutil import ( diff --git a/pkg/network/protocols/testutil/serverutils.go b/pkg/network/protocols/testutil/serverutils.go deleted file mode 100644 index 1bced2d2d7a37..0000000000000 --- a/pkg/network/protocols/testutil/serverutils.go +++ /dev/null @@ -1,155 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -package testutil - -import ( - "bytes" - "context" - "fmt" - "os/exec" - "regexp" - "strconv" - "strings" - "testing" - "time" - - "github.com/stretchr/testify/require" -) - -const ( - // DefaultTimeout is the default timeout for running a server. - DefaultTimeout = time.Minute -) - -// GetDockerPID returns the PID of a docker container. -func GetDockerPID(dockerName string) (int64, error) { - // Ensuring no previous instances exists. - c := exec.Command("docker", "inspect", "-f", "{{.State.Pid}}", dockerName) - var stdout, stderr bytes.Buffer - c.Stdout = &stdout - c.Stderr = &stderr - if err := c.Run(); err != nil { - return 0, fmt.Errorf("failed to get %s pid: %s", dockerName, stderr.String()) - } - pid, err := strconv.ParseInt(strings.TrimSpace(stdout.String()), 10, 64) - if pid == 0 { - return 0, fmt.Errorf("failed to retrieve %s pid, container is not running", dockerName) - } - return pid, err -} - -// RunDockerServer is a template for running a protocols server in a docker. -// - serverName is a friendly name of the server we are setting (AMQP, mongo, etc.). -// - dockerPath is the path for the docker-compose. -// - env is any environment variable required for running the server. -// - serverStartRegex is a regex to be matched on the server logs to ensure it started correctly. -func RunDockerServer(t testing.TB, serverName, dockerPath string, env []string, serverStartRegex *regexp.Regexp, timeout time.Duration, retryCount int) error { - var err error - for i := 0; i < retryCount; i++ { - err = runDockerServer(t, serverName, dockerPath, env, serverStartRegex, timeout) - if err == nil { - return nil - } - t.Logf("failed to start %s server, retrying: %v", serverName, err) - time.Sleep(5 * time.Second) - } - return err -} - -func runDockerServer(t testing.TB, serverName, dockerPath string, env []string, serverStartRegex *regexp.Regexp, timeout time.Duration) error { - t.Helper() - // Ensuring the following command won't block for ever - timedContext, cancel := context.WithTimeout(context.Background(), timeout) - t.Cleanup(cancel) - // Ensuring no previous instances exists. - c := exec.CommandContext(timedContext, "docker-compose", "-f", dockerPath, "down", "--remove-orphans", "--volumes") - c.Env = append(c.Env, env...) - _ = c.Run() - cancel() - - ctx, cancel := context.WithCancel(context.Background()) - t.Cleanup(cancel) - - cmd := exec.CommandContext(ctx, "docker-compose", "-f", dockerPath, "up", "--remove-orphans", "-V") - patternScanner := NewScanner(serverStartRegex, make(chan struct{}, 1)) - - cmd.Stdout = patternScanner - cmd.Stderr = patternScanner - cmd.Env = append(cmd.Env, env...) - err := cmd.Start() - require.NoErrorf(t, err, "could not start %s with docker-compose", serverName) - - t.Cleanup(func() { - cancel() - _ = cmd.Wait() - timedContext, cancel := context.WithTimeout(context.Background(), timeout) - defer cancel() - - c := exec.CommandContext(timedContext, "docker-compose", "-f", dockerPath, "down", "--remove-orphans", "--volumes") - c.Env = append(c.Env, env...) - _ = c.Run() // We need to wait for the command to finish so that the docker containers get cleaned up properly before another docker-compose up call - }) - - for { - select { - case <-ctx.Done(): - if err := ctx.Err(); err != nil { - patternScanner.PrintLogs(t) - return fmt.Errorf("failed to start %s pid %d server: %s", serverName, cmd.Process.Pid, err) - } - case <-patternScanner.DoneChan: - t.Logf("%s server pid (docker) %d is ready", serverName, cmd.Process.Pid) - - return nil - case <-time.After(timeout): - patternScanner.PrintLogs(t) - // please don't use t.Fatalf() here as we could test if it failed later - return fmt.Errorf("failed to start %s server pid %d: timed out after %s", serverName, cmd.Process.Pid, timeout.String()) - } - } -} - -// RunHostServer is a template for running a command on the Host. -// - command is the path for the command to execute. -// - env is any environment variable required for running the server. -// - serverStartRegex is a regex to be matched on the server logs to ensure it started correctly. -// return true on success -func RunHostServer(t *testing.T, command []string, env []string, serverStartRegex *regexp.Regexp) bool { - if len(command) < 1 { - t.Fatalf("command not set %v host server", command) - } - t.Helper() - ctx, cancel := context.WithTimeout(context.Background(), time.Minute) - defer cancel() - - cmd := exec.CommandContext(ctx, command[0], command[1:]...) - serverName := cmd.String() - patternScanner := NewScanner(serverStartRegex, make(chan struct{}, 1)) - - cmd.Stdout = patternScanner - cmd.Stderr = patternScanner - cmd.Env = append(cmd.Env, env...) - err := cmd.Start() - require.NoErrorf(t, err, "could not start %s on host", serverName) - t.Cleanup(func() { - _ = cmd.Wait() - }) - - for { - select { - case <-ctx.Done(): - if err := ctx.Err(); err != nil { - patternScanner.PrintLogs(t) - t.Errorf("failed to start %s pid %d server: %s", serverName, cmd.Process.Pid, err) - } - return false - case <-patternScanner.DoneChan: - t.Logf("%s host server pid %d is ready", serverName, cmd.Process.Pid) - patternScanner.PrintLogs(t) - return true - } - } -} diff --git a/pkg/network/protocols/testutil/tls_settings.go b/pkg/network/protocols/testutil/tls_settings.go index c6f537883a98f..c2ffb0771b543 100644 --- a/pkg/network/protocols/testutil/tls_settings.go +++ b/pkg/network/protocols/testutil/tls_settings.go @@ -3,6 +3,7 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. +// Package testutil provides general utilities for protocols UTs. package testutil // Constants to represent whether the connection should be encrypted with TLSEnabled. diff --git a/pkg/network/protocols/tls/gotls/testutil/server.go b/pkg/network/protocols/tls/gotls/testutil/server.go index 866878dcc9c86..9ae6e47339709 100644 --- a/pkg/network/protocols/tls/gotls/testutil/server.go +++ b/pkg/network/protocols/tls/gotls/testutil/server.go @@ -10,7 +10,7 @@ import ( "testing" "github.com/DataDog/datadog-agent/pkg/network/protocols/http/testutil" - protocolsUtils "github.com/DataDog/datadog-agent/pkg/network/protocols/testutil" + dockerutils "github.com/DataDog/datadog-agent/pkg/util/testutil/docker" ) // RunServer runs a go-httpbin server in a docker container. @@ -21,5 +21,12 @@ func RunServer(t testing.TB, serverPort string) error { t.Helper() dir, _ := testutil.CurDir() - return protocolsUtils.RunDockerServer(t, "https-gotls", dir+"/../testdata/docker-compose.yml", env, regexp.MustCompile("go-httpbin listening on https://0.0.0.0:8080"), protocolsUtils.DefaultTimeout, 3) + dockerCfg := dockerutils.NewComposeConfig("https-gotls", + dockerutils.DefaultTimeout, + dockerutils.DefaultRetries, + regexp.MustCompile("go-httpbin listening on https://0.0.0.0:8080"), + env, + dir+"/../testdata/docker-compose.yml") + return dockerutils.Run(t, dockerCfg) + } diff --git a/pkg/network/protocols/tls/nodejs/nodejs.go b/pkg/network/protocols/tls/nodejs/nodejs.go index 09ee5ecebf497..c4b8b3682a25c 100644 --- a/pkg/network/protocols/tls/nodejs/nodejs.go +++ b/pkg/network/protocols/tls/nodejs/nodejs.go @@ -11,11 +11,12 @@ package nodejs import ( "io" "os" + "path" "regexp" "testing" "github.com/DataDog/datadog-agent/pkg/network/protocols/http/testutil" - protocolsUtils "github.com/DataDog/datadog-agent/pkg/network/protocols/testutil" + dockerutils "github.com/DataDog/datadog-agent/pkg/util/testutil/docker" ) func copyFile(src, dst string) error { @@ -61,10 +62,17 @@ func RunServerNodeJS(t *testing.T, key, cert, serverPort string) error { "CERTS_DIR=/v/certs", "TESTDIR=" + dir + "/testdata", } - return protocolsUtils.RunDockerServer(t, "nodejs-server", dir+"/testdata/docker-compose.yml", env, regexp.MustCompile("Server running at https.*"), protocolsUtils.DefaultTimeout, 3) + + dockerCfg := dockerutils.NewComposeConfig("nodejs-server", + dockerutils.DefaultTimeout, + dockerutils.DefaultRetries, + regexp.MustCompile("Server running at https.*"), + env, + path.Join(dir, "testdata", "docker-compose.yml")) + return dockerutils.Run(t, dockerCfg) } // GetNodeJSDockerPID returns the PID of the nodejs docker container. func GetNodeJSDockerPID() (int64, error) { - return protocolsUtils.GetDockerPID("node-node-1") + return dockerutils.GetMainPID("node-node-1") } diff --git a/pkg/network/usm/monitor_tls_test.go b/pkg/network/usm/monitor_tls_test.go index 4a0776f259dbd..daadd6ca3e3a2 100644 --- a/pkg/network/usm/monitor_tls_test.go +++ b/pkg/network/usm/monitor_tls_test.go @@ -38,7 +38,6 @@ import ( "github.com/DataDog/datadog-agent/pkg/network/protocols/http" "github.com/DataDog/datadog-agent/pkg/network/protocols/http/testutil" "github.com/DataDog/datadog-agent/pkg/network/protocols/http2" - protocolsUtils "github.com/DataDog/datadog-agent/pkg/network/protocols/testutil" gotlstestutil "github.com/DataDog/datadog-agent/pkg/network/protocols/tls/gotls/testutil" "github.com/DataDog/datadog-agent/pkg/network/protocols/tls/nodejs" usmconfig "github.com/DataDog/datadog-agent/pkg/network/usm/config" @@ -46,6 +45,7 @@ import ( usmtestutil "github.com/DataDog/datadog-agent/pkg/network/usm/testutil" "github.com/DataDog/datadog-agent/pkg/network/usm/utils" procmontestutil "github.com/DataDog/datadog-agent/pkg/process/monitor/testutil" + dockerutils "github.com/DataDog/datadog-agent/pkg/util/testutil/docker" ) type tlsSuite struct { @@ -111,8 +111,14 @@ func (s *tlsSuite) TestHTTPSViaLibraryIntegration() { require.NoError(t, err) dir = path.Join(dir, "testdata", "musl") - protocolsUtils.RunDockerServer(t, "musl-alpine", path.Join(dir, "/docker-compose.yml"), - nil, regexp.MustCompile("started"), protocolsUtils.DefaultTimeout, 3) + dockerCfg := dockerutils.NewComposeConfig("musl-alpine", + dockerutils.DefaultTimeout, + dockerutils.DefaultRetries, + regexp.MustCompile("started"), + dockerutils.EmptyEnv, + path.Join(dir, "/docker-compose.yml")) + err = dockerutils.Run(t, dockerCfg) + require.NoError(t, err) rawout, err := exec.Command("docker", "inspect", "-f", "{{.State.Pid}}", "musl-alpine-1").Output() require.NoError(t, err) diff --git a/pkg/network/usm/sharedlibraries/testutil/testutil.go b/pkg/network/usm/sharedlibraries/testutil/testutil.go index 80f6832cd2f63..be937a68d330a 100644 --- a/pkg/network/usm/sharedlibraries/testutil/testutil.go +++ b/pkg/network/usm/sharedlibraries/testutil/testutil.go @@ -19,9 +19,9 @@ import ( "github.com/stretchr/testify/require" "github.com/DataDog/datadog-agent/pkg/network/protocols/http/testutil" - protocolstestutil "github.com/DataDog/datadog-agent/pkg/network/protocols/testutil" usmtestutil "github.com/DataDog/datadog-agent/pkg/network/usm/testutil" "github.com/DataDog/datadog-agent/pkg/util/log" + protocolstestutil "github.com/DataDog/datadog-agent/pkg/util/testutil" ) // mutex protecting build process diff --git a/pkg/util/testutil/docker/config.go b/pkg/util/testutil/docker/config.go new file mode 100644 index 0000000000000..c7b34281a979e --- /dev/null +++ b/pkg/util/testutil/docker/config.go @@ -0,0 +1,185 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2024-present Datadog, Inc. + +//go:build test + +package docker + +import ( + "fmt" + "regexp" + "time" +) + +const ( + // DefaultTimeout is the default timeout for running a server. + DefaultTimeout = time.Minute + + // DefaultRetries is the default number of retries for starting a container/s. + DefaultRetries = 3 +) + +// EmptyEnv is a sugar syntax for empty environment variables +var EmptyEnv []string + +type commandType string + +const ( + dockerCommand commandType = "docker" + // we are using old v1 docker-compose command because our CI doesn't support docker cli v2 yet + composeCommand commandType = "docker-compose" + runCommand commandType = "run" + removeCommand commandType = "rm" +) + +type subCommandType int + +const ( + start = iota + kill +) + +// Compile-time interface compliance check +var _ LifecycleConfig = (*runConfig)(nil) +var _ LifecycleConfig = (*composeConfig)(nil) + +// LifecycleConfig is an interface for the common configuration of a container lifecycle. +type LifecycleConfig interface { + Timeout() time.Duration + Retries() int + LogPattern() *regexp.Regexp + Env() []string + Name() string + command() string + commandArgs(t subCommandType) []string +} + +// Timeout returns the timeout to be used when running a container/s +func (b baseConfig) Timeout() time.Duration { + return b.timeout +} + +// Retries returns the number of retries to be used when trying to start the container/s +func (b baseConfig) Retries() int { + return b.retries +} + +// LogPattern returns the regex pattern to match logs for readiness +func (b baseConfig) LogPattern() *regexp.Regexp { + return b.logPattern +} + +// Env returns the environment variables to set for the container/s +func (b baseConfig) Env() []string { + return b.env +} + +// Name returns the name of the docker container or a friendly name for the docker-compose setup +func (b baseConfig) Name() string { + return b.name +} + +// baseConfig contains shared configurations for both Docker and Docker Compose. +type baseConfig struct { + name string // Container name for docker or an alias for docker-compose + timeout time.Duration // Timeout for the entire operation. + retries int // Number of retries for starting. + logPattern *regexp.Regexp // Regex pattern to match logs for readiness. + env []string // Environment variables to set. +} + +// runConfig contains specific configurations for Docker containers, embedding BaseConfig. +type runConfig struct { + baseConfig // Embed general configuration. + ImageName string // Docker image to use. + Binary string // Binary to run inside the container. + BinaryArgs []string // Arguments for the binary. + Mounts map[string]string // Mounts (host path -> container path). +} + +func (r runConfig) command() string { + return string(dockerCommand) +} + +func (r runConfig) commandArgs(t subCommandType) []string { + var args []string + switch t { + case start: + // we want to remove the container after usage, as it is a temporary container for a particular test + args = []string{string(runCommand), "--rm"} + + // Add mounts + for hostPath, containerPath := range r.Mounts { + args = append(args, "-v", fmt.Sprintf("%s:%s", hostPath, containerPath)) + } + + // Pass environment variables to the container as docker args + for _, env := range r.Env() { + args = append(args, "-e", env) + } + + //append container name and container image name + args = append(args, "--name", r.Name(), r.ImageName) + + //provide main binary and binary arguments to run inside the docker container + args = append(args, r.Binary) + args = append(args, r.BinaryArgs...) + case kill: + args = []string{string(removeCommand), "-f", r.Name(), "--volumes"} + } + return args +} + +// composeConfig contains specific configurations for Docker Compose, embedding BaseConfig. +type composeConfig struct { + baseConfig // Embed general configuration. + File string // Path to the docker-compose file. +} + +func (c composeConfig) command() string { + return string(composeCommand) +} + +func (c composeConfig) commandArgs(t subCommandType) []string { + switch t { + case start: + return []string{"-f", c.File, "up", "--remove-orphans", "-V"} + case kill: + return []string{"-f", c.File, "down", "--remove-orphans", "--volumes"} + default: + return nil + } +} + +// NewRunConfig creates a new runConfig instance for a single docker container. +func NewRunConfig(name string, timeout time.Duration, retries int, logPattern *regexp.Regexp, env []string, imageName, binary string, binaryArgs []string, mounts map[string]string) LifecycleConfig { + return runConfig{ + baseConfig: baseConfig{ + timeout: timeout, + retries: retries, + logPattern: logPattern, + env: env, + name: name, + }, + ImageName: imageName, + Binary: binary, + BinaryArgs: binaryArgs, + Mounts: mounts, + } +} + +// NewComposeConfig creates a new composeConfig instance for the docker-compose. +func NewComposeConfig(name string, timeout time.Duration, retries int, logPattern *regexp.Regexp, env []string, file string) LifecycleConfig { + return composeConfig{ + baseConfig: baseConfig{ + timeout: timeout, + retries: retries, + logPattern: logPattern, + env: env, + name: name, + }, + File: file, + } +} diff --git a/pkg/util/testutil/docker/get.go b/pkg/util/testutil/docker/get.go new file mode 100644 index 0000000000000..eb4ea504ab892 --- /dev/null +++ b/pkg/util/testutil/docker/get.go @@ -0,0 +1,47 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2024-present Datadog, Inc. + +//go:build test + +// Package docker provides API to manage docker/docker-compose lifecycle in UTs +package docker + +import ( + "bytes" + "fmt" + "os/exec" + "strconv" + "strings" +) + +// GetMainPID returns the PID of the main process in the docker container. +func GetMainPID(dockerName string) (int64, error) { + // Ensuring no previous instances exists. + c := exec.Command("docker", "inspect", "-f", "{{.State.Pid}}", dockerName) + var stdout, stderr bytes.Buffer + c.Stdout = &stdout + c.Stderr = &stderr + if err := c.Run(); err != nil { + return 0, fmt.Errorf("failed to get %s pid: %s", dockerName, stderr.String()) + } + pid, err := strconv.ParseInt(strings.TrimSpace(stdout.String()), 10, 64) + if pid == 0 { + return 0, fmt.Errorf("failed to retrieve %s pid, container is not running", dockerName) + } + return pid, err +} + +// GetContainerID returns the ID of a docker container. +func GetContainerID(dockerName string) (string, error) { + // Ensuring no previous instances exists. + c := exec.Command("docker", "inspect", "-f", "{{.Id}}", dockerName) + var stdout, stderr bytes.Buffer + c.Stdout = &stdout + c.Stderr = &stderr + if err := c.Run(); err != nil { + return "", fmt.Errorf("failed to get %s ID: %s", dockerName, stderr.String()) + } + return strings.TrimSpace(stdout.String()), nil +} diff --git a/pkg/util/testutil/docker/run.go b/pkg/util/testutil/docker/run.go new file mode 100644 index 0000000000000..2f3049858675a --- /dev/null +++ b/pkg/util/testutil/docker/run.go @@ -0,0 +1,108 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2024-present Datadog, Inc. + +//go:build test + +package docker + +import ( + "context" + "fmt" + "os/exec" + "testing" + "time" + + "github.com/DataDog/datadog-agent/pkg/util/testutil" +) + +// Run starts the container/s and ensures their successful invocation +// LifecycleConfig is an interface that abstracts the configuration of the container/s +// Use NewRunConfig to run a single docker container or NewComposeConfig to spin docker-compose +// This method is using testing.TB interface to handle cleanup and logging during UTs execution +func Run(t testing.TB, cfg LifecycleConfig) error { + var err error + var ctx context.Context + for i := 0; i < cfg.Retries(); i++ { + t.Helper() + // Ensuring no previous instances exists. + killPreviousInstances(cfg) + + scanner := testutil.NewScanner(cfg.LogPattern(), make(chan struct{}, 1)) + // attempt to start the container/s + ctx, err = run(t, cfg, scanner) + if err != nil { + t.Logf("could not start %s: %v", cfg.Name(), err) + //this iteration failed, retry + continue + } + + //check container logs for successful start + if err = checkReadiness(ctx, cfg, scanner); err == nil { + // target container/s started successfully, we can stop the retries loop and finish here + t.Logf("%s command succeeded. %s container is running", cfg.command(), cfg.Name()) + return nil + } + t.Logf("[Attempt #%v] failed to start %s server: %v", i+1, cfg.Name(), err) + scanner.PrintLogs(t) + time.Sleep(5 * time.Second) + } + return err +} + +// we do best-effort to kill previous instances, hence ignoring any errors +func killPreviousInstances(cfg LifecycleConfig) { + // Ensuring the following command won't block forever + timedContext, cancel := context.WithTimeout(context.Background(), cfg.Timeout()) + defer cancel() + args := cfg.commandArgs(kill) + + // Ensuring no previous instances exists. + c := exec.CommandContext(timedContext, cfg.command(), args...) + c.Env = append(c.Env, cfg.Env()...) + + // run synchronously to ensure all instances are killed + _ = c.Run() +} + +func run(t testing.TB, cfg LifecycleConfig, scanner *testutil.PatternScanner) (context.Context, error) { + ctx, cancel := context.WithCancel(context.Background()) + t.Cleanup(cancel) + + args := cfg.commandArgs(start) + + //prepare the command + cmd := exec.CommandContext(ctx, cfg.command(), args...) + cmd.Env = append(cmd.Env, cfg.Env()...) + cmd.Stdout = scanner + cmd.Stderr = scanner + + // run asynchronously and don't wait for the command to finish + if err := cmd.Start(); err != nil { + return nil, err + } + //register cleanup function to kill the instances upon finishing the test + t.Cleanup(func() { + cancel() + _ = cmd.Wait() + killPreviousInstances(cfg) + }) + + return ctx, nil +} + +func checkReadiness(ctx context.Context, cfg LifecycleConfig, scanner *testutil.PatternScanner) error { + for { + select { + case <-ctx.Done(): + if err := ctx.Err(); err != nil { + return fmt.Errorf("failed to start the container %s due to: %w", cfg.Name(), err) + } + case <-scanner.DoneChan: + return nil + case <-time.After(cfg.Timeout()): + return fmt.Errorf("failed to start the container %s, reached timeout of %v", cfg.Name(), cfg.Timeout()) + } + } +} diff --git a/pkg/network/protocols/testutil/patternscanner.go b/pkg/util/testutil/patternscanner.go similarity index 95% rename from pkg/network/protocols/testutil/patternscanner.go rename to pkg/util/testutil/patternscanner.go index ef95e75b24c1a..a5b7d685e4f1d 100644 --- a/pkg/network/protocols/testutil/patternscanner.go +++ b/pkg/util/testutil/patternscanner.go @@ -3,7 +3,9 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -// Package testutil provides utilities for testing the network package. +//go:build test + +// Package testutil provides general test utilities package testutil import ( @@ -72,5 +74,5 @@ func (ps *PatternScanner) Write(p []byte) (n int, err error) { // PrintLogs writes the captured logs into the test logger. func (ps *PatternScanner) PrintLogs(t testing.TB) { - t.Log(strings.Join(ps.buffers, "")) + t.Log(strings.Join(ps.buffers, "\n")) } From 9907ab28c68ccc190ce4e5ace06c811e60e4a6f8 Mon Sep 17 00:00:00 2001 From: Alexandre Menasria <47357713+amenasria@users.noreply.github.com> Date: Wed, 27 Nov 2024 09:07:44 +0100 Subject: [PATCH 075/439] [CI] Make the technical lint jobs run at pipeline start (#31435) --- .gitlab/lint/technical_linters.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.gitlab/lint/technical_linters.yml b/.gitlab/lint/technical_linters.yml index d1e03b7ee4b02..b84b1ece24671 100644 --- a/.gitlab/lint/technical_linters.yml +++ b/.gitlab/lint/technical_linters.yml @@ -3,6 +3,7 @@ stage: lint image: registry.ddbuild.io/ci/datadog-agent-buildimages/deb_x64$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES tags: ["arch:amd64"] + needs: [] lint_licenses: extends: .lint @@ -46,19 +47,16 @@ lint_components: lint_python: extends: .lint - needs: [] script: - inv -e linter.python lint_update_go: extends: .lint - needs: [] script: - inv -e linter.update-go validate_modules: extends: .lint - needs: [] script: - inv -e modules.validate - inv -e modules.validate-used-by-otel From fb2da089191f8ae523150f719551c44f98358061 Mon Sep 17 00:00:00 2001 From: Alex Lopez Date: Wed, 27 Nov 2024 09:10:36 +0100 Subject: [PATCH 076/439] Remove PYTHON_VERSION from Docker image building (#31483) --- .gitlab/container_build/docker_linux.yml | 16 ++++++------- Dockerfiles/agent/Dockerfile | 29 ------------------------ tasks/agent.py | 11 ++------- 3 files changed, 10 insertions(+), 46 deletions(-) diff --git a/.gitlab/container_build/docker_linux.yml b/.gitlab/container_build/docker_linux.yml index df83b97171cb8..5f5c83c0dce67 100644 --- a/.gitlab/container_build/docker_linux.yml +++ b/.gitlab/container_build/docker_linux.yml @@ -61,7 +61,7 @@ docker_build_agent7: IMAGE: registry.ddbuild.io/ci/datadog-agent/agent BUILD_CONTEXT: Dockerfiles/agent TAG_SUFFIX: -7 - BUILD_ARG: --target test --build-arg PYTHON_VERSION=3 --build-arg DD_AGENT_ARTIFACT=datadog-agent-7*-amd64.tar.xz + BUILD_ARG: --target test --build-arg DD_AGENT_ARTIFACT=datadog-agent-7*-amd64.tar.xz single_machine_performance-amd64-a7: extends: .docker_publish_job_definition @@ -87,7 +87,7 @@ docker_build_agent7_arm64: IMAGE: registry.ddbuild.io/ci/datadog-agent/agent BUILD_CONTEXT: Dockerfiles/agent TAG_SUFFIX: -7 - BUILD_ARG: --target test --build-arg PYTHON_VERSION=3 --build-arg DD_AGENT_ARTIFACT=datadog-agent-7*-arm64.tar.xz + BUILD_ARG: --target test --build-arg DD_AGENT_ARTIFACT=datadog-agent-7*-arm64.tar.xz # build agent7 jmx image docker_build_agent7_jmx: @@ -101,7 +101,7 @@ docker_build_agent7_jmx: IMAGE: registry.ddbuild.io/ci/datadog-agent/agent BUILD_CONTEXT: Dockerfiles/agent TAG_SUFFIX: -7-jmx - BUILD_ARG: --target test --build-arg WITH_JMX=true --build-arg PYTHON_VERSION=3 --build-arg DD_AGENT_ARTIFACT=datadog-agent-7*-amd64.tar.xz + BUILD_ARG: --target test --build-arg WITH_JMX=true --build-arg DD_AGENT_ARTIFACT=datadog-agent-7*-amd64.tar.xz docker_build_agent7_jmx_arm64: extends: [.docker_build_job_definition_arm64, .docker_build_artifact] @@ -114,7 +114,7 @@ docker_build_agent7_jmx_arm64: IMAGE: registry.ddbuild.io/ci/datadog-agent/agent BUILD_CONTEXT: Dockerfiles/agent TAG_SUFFIX: -7-jmx - BUILD_ARG: --target test --build-arg WITH_JMX=true --build-arg PYTHON_VERSION=3 --build-arg DD_AGENT_ARTIFACT=datadog-agent-7*-arm64.tar.xz + BUILD_ARG: --target test --build-arg WITH_JMX=true --build-arg DD_AGENT_ARTIFACT=datadog-agent-7*-arm64.tar.xz # build agent7 UA image docker_build_ot_agent7: @@ -128,7 +128,7 @@ docker_build_ot_agent7: IMAGE: registry.ddbuild.io/ci/datadog-agent/agent BUILD_CONTEXT: Dockerfiles/agent TAG_SUFFIX: -7-ot-beta - BUILD_ARG: --target test --build-arg PYTHON_VERSION=3 --build-arg DD_AGENT_ARTIFACT=datadog-ot-agent-7*-amd64.tar.xz + BUILD_ARG: --target test --build-arg DD_AGENT_ARTIFACT=datadog-ot-agent-7*-amd64.tar.xz docker_build_ot_agent7_arm64: extends: [.docker_build_job_definition_arm64, .docker_build_artifact] @@ -141,7 +141,7 @@ docker_build_ot_agent7_arm64: IMAGE: registry.ddbuild.io/ci/datadog-agent/agent BUILD_CONTEXT: Dockerfiles/agent TAG_SUFFIX: -7-ot-beta - BUILD_ARG: --target test --build-arg PYTHON_VERSION=3 --build-arg DD_AGENT_ARTIFACT=datadog-ot-agent-7*-arm64.tar.xz + BUILD_ARG: --target test --build-arg DD_AGENT_ARTIFACT=datadog-ot-agent-7*-arm64.tar.xz # build agent7 jmx image docker_build_ot_agent7_jmx: @@ -155,7 +155,7 @@ docker_build_ot_agent7_jmx: IMAGE: registry.ddbuild.io/ci/datadog-agent/agent BUILD_CONTEXT: Dockerfiles/agent TAG_SUFFIX: -7-ot-beta-jmx - BUILD_ARG: --target test --build-arg WITH_JMX=true --build-arg PYTHON_VERSION=3 --build-arg DD_AGENT_ARTIFACT=datadog-ot-agent-7*-amd64.tar.xz + BUILD_ARG: --target test --build-arg WITH_JMX=true --build-arg DD_AGENT_ARTIFACT=datadog-ot-agent-7*-amd64.tar.xz docker_build_ot_agent7_jmx_arm64: extends: [.docker_build_job_definition_arm64, .docker_build_artifact] @@ -168,7 +168,7 @@ docker_build_ot_agent7_jmx_arm64: IMAGE: registry.ddbuild.io/ci/datadog-agent/agent BUILD_CONTEXT: Dockerfiles/agent TAG_SUFFIX: -7-ot-beta-jmx - BUILD_ARG: --target test --build-arg WITH_JMX=true --build-arg PYTHON_VERSION=3 --build-arg DD_AGENT_ARTIFACT=datadog-ot-agent-7*-arm64.tar.xz + BUILD_ARG: --target test --build-arg WITH_JMX=true --build-arg DD_AGENT_ARTIFACT=datadog-ot-agent-7*-arm64.tar.xz # build the cluster-agent image docker_build_cluster_agent_amd64: diff --git a/Dockerfiles/agent/Dockerfile b/Dockerfiles/agent/Dockerfile index 894a29f2d250e..bf99bef8e05a1 100644 --- a/Dockerfiles/agent/Dockerfile +++ b/Dockerfiles/agent/Dockerfile @@ -39,7 +39,6 @@ RUN gcc -pipe -Wall -Wextra -O2 -shared -fPIC -Wl,--version-script=/tmp/nosys.sy FROM baseimage AS extract ARG TARGETARCH ARG WITH_JMX -ARG PYTHON_VERSION ARG DD_AGENT_ARTIFACT=datadog-agent*-$TARGETARCH.tar.xz ARG GENERAL_ARTIFACTS_CACHE_BUCKET_URL @@ -75,25 +74,6 @@ RUN find / -maxdepth 1 -name "${DD_AGENT_ARTIFACT}" -exec tar xvf {} -C . \; \ opt/datadog-agent/embedded/share/man \ # self-test certificates that are detected (false positive) as private keys opt/datadog-agent/embedded/lib/python*/site-packages/future/backports/test \ - && if [ "$PYTHON_VERSION" = "2" ]; then \ - rm -rf \ - opt/datadog-agent/embedded/bin/2to3-3* \ - opt/datadog-agent/embedded/bin/easy_install-3* \ - opt/datadog-agent/embedded/bin/idle* \ - opt/datadog-agent/embedded/bin/pip3* \ - opt/datadog-agent/embedded/bin/pydoc* \ - opt/datadog-agent/embedded/bin/python3* \ - opt/datadog-agent/embedded/bin/pyvenv* \ - opt/datadog-agent/embedded/include/python3* \ - opt/datadog-agent/embedded/lib/*python3* || true ;\ - fi \ - && if [ "$PYTHON_VERSION" = "3" ]; then \ - rm -rf \ - opt/datadog-agent/embedded/bin/pip2* \ - opt/datadog-agent/embedded/bin/python2* \ - opt/datadog-agent/embedded/include/python2* \ - opt/datadog-agent/embedded/lib/*python2* || true ;\ - fi \ && find opt/datadog-agent/ -iname "*.a" -delete \ && if [ -z "$WITH_JMX" ]; then rm -rf opt/datadog-agent/bin/agent/dist/jmx; fi \ && mkdir conf.d checks.d @@ -116,11 +96,9 @@ RUN if [ -n "$WITH_JMX" ]; then cd /opt/bouncycastle-fips && mvn dependency:copy FROM baseimage AS release LABEL maintainer="Datadog " ARG WITH_JMX -ARG PYTHON_VERSION ARG DD_GIT_REPOSITORY_URL ARG DD_GIT_COMMIT_SHA ENV DOCKER_DD_AGENT=true \ - DD_PYTHON_VERSION=$PYTHON_VERSION \ PATH=/opt/datadog-agent/bin/agent/:/opt/datadog-agent/embedded/bin/:$PATH \ CURL_CA_BUNDLE=/opt/datadog-agent/embedded/ssl/certs/cacert.pem \ # Pass envvar variables to agents @@ -202,13 +180,6 @@ RUN tar xzf s6.tgz -C / --exclude="./bin" \ # * https://datadoghq.atlassian.net/wiki/spaces/TS/pages/2615709591/Why+the+containerized+Agent+runs+as+root#Agent-user RUN [ "$(getent passwd dd-agent | cut -d: -f 3)" -eq 100 ] -# Update links to python binaries -RUN if [ -n "$PYTHON_VERSION" ]; then \ - ln -sfn /opt/datadog-agent/embedded/bin/python${PYTHON_VERSION} /opt/datadog-agent/embedded/bin/python \ - && ln -sfn /opt/datadog-agent/embedded/bin/python${PYTHON_VERSION}-config /opt/datadog-agent/embedded/bin/python-config \ - && ln -sfn /opt/datadog-agent/embedded/bin/pip${PYTHON_VERSION} /opt/datadog-agent/embedded/bin/pip ; \ - fi - # Override the exit script by ours to fix --pid=host operations RUN mv /etc/s6/init/init-stage3 /etc/s6/init/init-stage3-original COPY init-stage3 /etc/s6/init/init-stage3 diff --git a/tasks/agent.py b/tasks/agent.py index af988249697a8..3399e4d7c4a58 100644 --- a/tasks/agent.py +++ b/tasks/agent.py @@ -12,7 +12,7 @@ import tempfile from invoke import task -from invoke.exceptions import Exit, ParseError +from invoke.exceptions import Exit from tasks.build_tags import filter_incompatible_tags, get_build_tags, get_default_build_tags from tasks.devcontainer import run_on_devcontainer @@ -359,15 +359,10 @@ def system_tests(_): @task -def image_build(ctx, arch='amd64', base_dir="omnibus", python_version="2", skip_tests=False, tag=None, push=False): +def image_build(ctx, arch='amd64', base_dir="omnibus", skip_tests=False, tag=None, push=False): """ Build the docker image """ - BOTH_VERSIONS = ["both", "2+3"] - VALID_VERSIONS = ["2", "3"] + BOTH_VERSIONS - if python_version not in VALID_VERSIONS: - raise ParseError("provided python_version is invalid") - build_context = "Dockerfiles/agent" base_dir = base_dir or os.environ["OMNIBUS_BASE_DIR"] pkg_dir = os.path.join(base_dir, 'pkg') @@ -386,8 +381,6 @@ def image_build(ctx, arch='amd64', base_dir="omnibus", python_version="2", skip_ tag = AGENT_TAG common_build_opts = f"-t {tag} -f {dockerfile_path}" - if python_version not in BOTH_VERSIONS: - common_build_opts = f"{common_build_opts} --build-arg PYTHON_VERSION={python_version}" # Build with the testing target if not skip_tests: From f8733b7c1ff93c19cd0797556576da68c723e16b Mon Sep 17 00:00:00 2001 From: Guillaume Pagnoux Date: Wed, 27 Nov 2024 09:32:48 +0100 Subject: [PATCH 077/439] system-probe: init remote tagger and global container provider (#30852) --- cmd/system-probe/api/module/common.go | 2 ++ cmd/system-probe/api/module/loader.go | 7 ++-- cmd/system-probe/api/restart.go | 5 +-- cmd/system-probe/api/server.go | 7 ++-- cmd/system-probe/subcommands/run/command.go | 32 +++++++++++++++---- .../module/impl_linux_test.go | 6 +++- 6 files changed, 45 insertions(+), 14 deletions(-) diff --git a/cmd/system-probe/api/module/common.go b/cmd/system-probe/api/module/common.go index 0e1b156553fd7..cec9bf608de45 100644 --- a/cmd/system-probe/api/module/common.go +++ b/cmd/system-probe/api/module/common.go @@ -9,6 +9,7 @@ package module import ( "errors" + tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/core/telemetry" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" "go.uber.org/fx" @@ -30,5 +31,6 @@ type FactoryDependencies struct { fx.In WMeta workloadmeta.Component + Tagger tagger.Component Telemetry telemetry.Component } diff --git a/cmd/system-probe/api/module/loader.go b/cmd/system-probe/api/module/loader.go index 51048f9d63a0e..5e028b0d538f7 100644 --- a/cmd/system-probe/api/module/loader.go +++ b/cmd/system-probe/api/module/loader.go @@ -16,6 +16,7 @@ import ( "github.com/gorilla/mux" sysconfigtypes "github.com/DataDog/datadog-agent/cmd/system-probe/config/types" + tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/core/telemetry" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" "github.com/DataDog/datadog-agent/pkg/util/log" @@ -63,7 +64,7 @@ func withModule(name sysconfigtypes.ModuleName, fn func()) { // * Initialization using the provided Factory; // * Registering the HTTP endpoints of each module; // * Register the gRPC server; -func Register(cfg *sysconfigtypes.Config, httpMux *mux.Router, factories []Factory, wmeta workloadmeta.Component, telemetry telemetry.Component) error { +func Register(cfg *sysconfigtypes.Config, httpMux *mux.Router, factories []Factory, wmeta workloadmeta.Component, tagger tagger.Component, telemetry telemetry.Component) error { var enabledModulesFactories []Factory for _, factory := range factories { if !cfg.ModuleIsEnabled(factory.Name) { @@ -83,6 +84,7 @@ func Register(cfg *sysconfigtypes.Config, httpMux *mux.Router, factories []Facto withModule(factory.Name, func() { deps := FactoryDependencies{ WMeta: wmeta, + Tagger: tagger, Telemetry: telemetry, } module, err = factory.Fn(cfg, deps) @@ -143,7 +145,7 @@ func GetStats() map[string]interface{} { } // RestartModule triggers a module restart -func RestartModule(factory Factory, wmeta workloadmeta.Component, telemetry telemetry.Component) error { +func RestartModule(factory Factory, wmeta workloadmeta.Component, tagger tagger.Component, telemetry telemetry.Component) error { l.Lock() defer l.Unlock() @@ -162,6 +164,7 @@ func RestartModule(factory Factory, wmeta workloadmeta.Component, telemetry tele currentModule.Close() deps := FactoryDependencies{ WMeta: wmeta, + Tagger: tagger, Telemetry: telemetry, } newModule, err = factory.Fn(l.cfg, deps) diff --git a/cmd/system-probe/api/restart.go b/cmd/system-probe/api/restart.go index 608f1c014ffe8..fb31c5cc8c684 100644 --- a/cmd/system-probe/api/restart.go +++ b/cmd/system-probe/api/restart.go @@ -14,11 +14,12 @@ import ( "github.com/DataDog/datadog-agent/cmd/system-probe/config" sysconfigtypes "github.com/DataDog/datadog-agent/cmd/system-probe/config/types" "github.com/DataDog/datadog-agent/cmd/system-probe/modules" + tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/core/telemetry" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" ) -func restartModuleHandler(w http.ResponseWriter, r *http.Request, wmeta workloadmeta.Component, telemetry telemetry.Component) { +func restartModuleHandler(w http.ResponseWriter, r *http.Request, wmeta workloadmeta.Component, tagger tagger.Component, telemetry telemetry.Component) { vars := mux.Vars(r) moduleName := sysconfigtypes.ModuleName(vars["module-name"]) @@ -39,7 +40,7 @@ func restartModuleHandler(w http.ResponseWriter, r *http.Request, wmeta workload return } - err := module.RestartModule(target, wmeta, telemetry) + err := module.RestartModule(target, wmeta, tagger, telemetry) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return diff --git a/cmd/system-probe/api/server.go b/cmd/system-probe/api/server.go index 1e4249eeb50ab..3e4a71056f143 100644 --- a/cmd/system-probe/api/server.go +++ b/cmd/system-probe/api/server.go @@ -21,6 +21,7 @@ import ( "github.com/DataDog/datadog-agent/cmd/system-probe/modules" "github.com/DataDog/datadog-agent/cmd/system-probe/utils" "github.com/DataDog/datadog-agent/comp/core/settings" + tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/core/telemetry" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" "github.com/DataDog/datadog-agent/pkg/ebpf" @@ -28,7 +29,7 @@ import ( ) // StartServer starts the HTTP and gRPC servers for the system-probe, which registers endpoints from all enabled modules. -func StartServer(cfg *sysconfigtypes.Config, telemetry telemetry.Component, wmeta workloadmeta.Component, settings settings.Component) error { +func StartServer(cfg *sysconfigtypes.Config, telemetry telemetry.Component, wmeta workloadmeta.Component, tagger tagger.Component, settings settings.Component) error { conn, err := server.NewListener(cfg.SocketAddress) if err != nil { return err @@ -36,7 +37,7 @@ func StartServer(cfg *sysconfigtypes.Config, telemetry telemetry.Component, wmet mux := gorilla.NewRouter() - err = module.Register(cfg, mux, modules.All, wmeta, telemetry) + err = module.Register(cfg, mux, modules.All, wmeta, tagger, telemetry) if err != nil { return fmt.Errorf("failed to create system probe: %s", err) } @@ -49,7 +50,7 @@ func StartServer(cfg *sysconfigtypes.Config, telemetry telemetry.Component, wmet setupConfigHandlers(mux, settings) // Module-restart handler - mux.HandleFunc("/module-restart/{module-name}", func(w http.ResponseWriter, r *http.Request) { restartModuleHandler(w, r, wmeta, telemetry) }).Methods("POST") + mux.HandleFunc("/module-restart/{module-name}", func(w http.ResponseWriter, r *http.Request) { restartModuleHandler(w, r, wmeta, tagger, telemetry) }).Methods("POST") mux.PathPrefix("/debug/pprof").Handler(http.DefaultServeMux) mux.Handle("/debug/vars", http.DefaultServeMux) diff --git a/cmd/system-probe/subcommands/run/command.go b/cmd/system-probe/subcommands/run/command.go index 4459dce978347..ab55fc4287c0a 100644 --- a/cmd/system-probe/subcommands/run/command.go +++ b/cmd/system-probe/subcommands/run/command.go @@ -42,6 +42,9 @@ import ( "github.com/DataDog/datadog-agent/comp/core/settings/settingsimpl" "github.com/DataDog/datadog-agent/comp/core/sysprobeconfig" "github.com/DataDog/datadog-agent/comp/core/sysprobeconfig/sysprobeconfigimpl" + tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" + remoteTaggerFx "github.com/DataDog/datadog-agent/comp/core/tagger/fx-remote" + taggerTypes "github.com/DataDog/datadog-agent/comp/core/tagger/types" "github.com/DataDog/datadog-agent/comp/core/telemetry" "github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl" wmcatalog "github.com/DataDog/datadog-agent/comp/core/workloadmeta/collectors/catalog" @@ -50,6 +53,7 @@ import ( compstatsd "github.com/DataDog/datadog-agent/comp/dogstatsd/statsd" "github.com/DataDog/datadog-agent/comp/remote-config/rcclient" "github.com/DataDog/datadog-agent/comp/remote-config/rcclient/rcclientimpl" + "github.com/DataDog/datadog-agent/pkg/api/security" "github.com/DataDog/datadog-agent/pkg/config/env" "github.com/DataDog/datadog-agent/pkg/config/model" commonsettings "github.com/DataDog/datadog-agent/pkg/config/settings" @@ -111,6 +115,14 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { workloadmetafx.Module(workloadmeta.Params{ AgentType: workloadmeta.Remote, }), + // Provide tagger module + remoteTaggerFx.Module(tagger.RemoteParams{ + RemoteTarget: func(c config.Component) (string, error) { return fmt.Sprintf(":%v", c.GetInt("cmd_port")), nil }, + RemoteTokenFetcher: func(c config.Component) func() (string, error) { + return func() (string, error) { return security.FetchAuthToken(c) } + }, + RemoteFilter: taggerTypes.NewMatchAllFilter(), + }), autoexitimpl.Module(), pidimpl.Module(), fx.Supply(pidimpl.NewParams(cliParams.pidfilePath)), @@ -140,7 +152,7 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { } // run starts the main loop. -func run(log log.Component, _ config.Component, statsd compstatsd.Component, telemetry telemetry.Component, sysprobeconfig sysprobeconfig.Component, rcclient rcclient.Component, wmeta workloadmeta.Component, _ pid.Component, _ healthprobe.Component, _ autoexit.Component, settings settings.Component) error { +func run(log log.Component, _ config.Component, statsd compstatsd.Component, telemetry telemetry.Component, sysprobeconfig sysprobeconfig.Component, rcclient rcclient.Component, wmeta workloadmeta.Component, tagger tagger.Component, _ pid.Component, _ healthprobe.Component, _ autoexit.Component, settings settings.Component) error { defer func() { stopSystemProbe() }() @@ -182,7 +194,7 @@ func run(log log.Component, _ config.Component, statsd compstatsd.Component, tel } }() - if err := startSystemProbe(log, statsd, telemetry, sysprobeconfig, rcclient, wmeta, settings); err != nil { + if err := startSystemProbe(log, statsd, telemetry, sysprobeconfig, rcclient, wmeta, tagger, settings); err != nil { if errors.Is(err, ErrNotEnabled) { // A sleep is necessary to ensure that supervisor registers this process as "STARTED" // If the exit is "too quick", we enter a BACKOFF->FATAL loop even though this is an expected exit @@ -226,9 +238,9 @@ func StartSystemProbeWithDefaults(ctxChan <-chan context.Context) (<-chan error, func runSystemProbe(ctxChan <-chan context.Context, errChan chan error) error { return fxutil.OneShot( - func(log log.Component, _ config.Component, statsd compstatsd.Component, telemetry telemetry.Component, sysprobeconfig sysprobeconfig.Component, rcclient rcclient.Component, wmeta workloadmeta.Component, _ healthprobe.Component, settings settings.Component) error { + func(log log.Component, _ config.Component, statsd compstatsd.Component, telemetry telemetry.Component, sysprobeconfig sysprobeconfig.Component, rcclient rcclient.Component, wmeta workloadmeta.Component, tagger tagger.Component, _ healthprobe.Component, settings settings.Component) error { defer StopSystemProbeWithDefaults() - err := startSystemProbe(log, statsd, telemetry, sysprobeconfig, rcclient, wmeta, settings) + err := startSystemProbe(log, statsd, telemetry, sysprobeconfig, rcclient, wmeta, tagger, settings) if err != nil { return err } @@ -273,6 +285,14 @@ func runSystemProbe(ctxChan <-chan context.Context, errChan chan error) error { workloadmetafx.Module(workloadmeta.Params{ AgentType: workloadmeta.Remote, }), + // Provide tagger module + remoteTaggerFx.Module(tagger.RemoteParams{ + RemoteTarget: func(c config.Component) (string, error) { return fmt.Sprintf(":%v", c.GetInt("cmd_port")), nil }, + RemoteTokenFetcher: func(c config.Component) func() (string, error) { + return func() (string, error) { return security.FetchAuthToken(c) } + }, + RemoteFilter: taggerTypes.NewMatchAllFilter(), + }), systemprobeloggerfx.Module(), fx.Provide(func(sysprobeconfig sysprobeconfig.Component) settings.Params { profilingGoRoutines := commonsettings.NewProfilingGoroutines() @@ -300,7 +320,7 @@ func StopSystemProbeWithDefaults() { } // startSystemProbe Initializes the system-probe process -func startSystemProbe(log log.Component, statsd compstatsd.Component, telemetry telemetry.Component, sysprobeconfig sysprobeconfig.Component, _ rcclient.Component, wmeta workloadmeta.Component, settings settings.Component) error { +func startSystemProbe(log log.Component, statsd compstatsd.Component, telemetry telemetry.Component, sysprobeconfig sysprobeconfig.Component, _ rcclient.Component, wmeta workloadmeta.Component, tagger tagger.Component, settings settings.Component) error { var err error cfg := sysprobeconfig.SysProbeObject() @@ -360,7 +380,7 @@ func startSystemProbe(log log.Component, statsd compstatsd.Component, telemetry }() } - if err = api.StartServer(cfg, telemetry, wmeta, settings); err != nil { + if err = api.StartServer(cfg, telemetry, wmeta, tagger, settings); err != nil { return log.Criticalf("error while starting api server, exiting: %v", err) } return nil diff --git a/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go b/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go index bd71b5d00e6b5..c51f0d69a964b 100644 --- a/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go +++ b/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go @@ -39,6 +39,7 @@ import ( "github.com/DataDog/datadog-agent/cmd/system-probe/config" "github.com/DataDog/datadog-agent/cmd/system-probe/config/types" "github.com/DataDog/datadog-agent/comp/core" + taggermock "github.com/DataDog/datadog-agent/comp/core/tagger/mock" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" wmmock "github.com/DataDog/datadog-agent/comp/core/workloadmeta/fx-mock" "github.com/DataDog/datadog-agent/pkg/collector/corechecks/servicediscovery/apm" @@ -61,6 +62,9 @@ func setupDiscoveryModule(t *testing.T) string { core.MockBundle(), wmmock.MockModule(workloadmeta.NewParams()), ) + + tagger := taggermock.SetupFakeTagger(t) + mux := gorillamux.NewRouter() cfg := &types.Config{ Enabled: true, @@ -84,7 +88,7 @@ func setupDiscoveryModule(t *testing.T) string { return false }, } - err := module.Register(cfg, mux, []module.Factory{m}, wmeta, nil) + err := module.Register(cfg, mux, []module.Factory{m}, wmeta, tagger, nil) require.NoError(t, err) srv := httptest.NewServer(mux) From 90535e90a71d31df934738c8b5738c806ffea8eb Mon Sep 17 00:00:00 2001 From: Maxime Riaud <65339037+misteriaud@users.noreply.github.com> Date: Wed, 27 Nov 2024 10:41:25 +0100 Subject: [PATCH 078/439] [ASCII-2547] Improve path concatenation for flare (#31312) --- comp/core/flare/helpers/builder.go | 9 +++++++ comp/core/flare/helpers/builder_test.go | 31 +++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/comp/core/flare/helpers/builder.go b/comp/core/flare/helpers/builder.go index 53ac0c4e12f3e..00277621b5c31 100644 --- a/comp/core/flare/helpers/builder.go +++ b/comp/core/flare/helpers/builder.go @@ -329,6 +329,11 @@ func (fb *builder) copyDirTo(shouldScrub bool, srcDir string, destDir string, sh if err != nil { return fb.logError("error getting absolute path for '%s': %s", srcDir, err) } + + if isLocal := filepath.IsLocal(destDir); !isLocal { + return fb.logError("the destination path is not local to the flare root path: %s", destDir) + } + fb.RegisterFilePerm(srcDir) err = filepath.Walk(srcDir, func(src string, f os.FileInfo, _ error) error { @@ -372,6 +377,10 @@ func (fb *builder) prepareFilePath(path string) (string, error) { return "", errors.New("flare builder is already closed") } + if isLocal := filepath.IsLocal(path); !isLocal { + return "", fb.logError("the destination path is not local to the flare root path: %s", path) + } + p := filepath.Join(fb.flareDir, path) err := os.MkdirAll(filepath.Dir(p), os.ModePerm) diff --git a/comp/core/flare/helpers/builder_test.go b/comp/core/flare/helpers/builder_test.go index fecee10bcbd26..26508575eef92 100644 --- a/comp/core/flare/helpers/builder_test.go +++ b/comp/core/flare/helpers/builder_test.go @@ -136,6 +136,37 @@ func TestAddFile(t *testing.T) { assertFileContent(t, fb, "api_key: \"********\"", "test/AddFile_scrubbed_api_key") } +func TestAddNonLocalFileFlare(t *testing.T) { + fb := getNewBuilder(t) + defer fb.clean() + + expectedError := "the destination path is not local to the flare root path" + + err := fb.AddFile(FromSlash("../test/AddFile"), []byte{}) + assert.ErrorContains(t, err, expectedError) + + err = fb.AddFileWithoutScrubbing(FromSlash("../test/AddFile"), []byte{}) + assert.ErrorContains(t, err, expectedError) + + err = fb.AddFileFromFunc(FromSlash("../test/AddFile"), func() ([]byte, error) { return []byte{}, nil }) + assert.ErrorContains(t, err, expectedError) + + path := filepath.Join(t.TempDir(), "test.data") + os.WriteFile(path, []byte("some data"), os.ModePerm) + err = fb.CopyFileTo(path, FromSlash("../test/AddFile")) + assert.ErrorContains(t, err, expectedError) + + root := setupDirWithData(t) + err = fb.CopyDirTo(root, "../test", func(string) bool { return true }) + assert.ErrorContains(t, err, expectedError) + + err = fb.CopyDirToWithoutScrubbing(root, "../test", func(string) bool { return true }) + assert.ErrorContains(t, err, expectedError) + + _, err = fb.PrepareFilePath("../test") + assert.ErrorContains(t, err, expectedError) +} + func TestAddFileWithoutScrubbing(t *testing.T) { fb := getNewBuilder(t) defer fb.clean() From 57115d85853ba1e6007594ddfdf320bba7477e63 Mon Sep 17 00:00:00 2001 From: Guillaume Barrier <77887537+Guillaume-Barrier@users.noreply.github.com> Date: Wed, 27 Nov 2024 10:53:58 +0100 Subject: [PATCH 079/439] Add Error Tracking Standalone Config option (#30065) Co-authored-by: GianlucaBortoli --- comp/trace/config/config_test.go | 13 ++ comp/trace/config/setup.go | 4 + pkg/config/config_template.yaml | 10 + pkg/config/setup/apm.go | 1 + pkg/trace/agent/agent.go | 34 ++- pkg/trace/agent/agent_test.go | 129 +++++++++- pkg/trace/api/otlp.go | 1 + pkg/trace/api/otlp_test.go | 220 +++++++++--------- pkg/trace/config/config.go | 5 + pkg/trace/transform/transform.go | 11 + ...dalone-config-option-1b88cedc9e164127.yaml | 13 ++ 11 files changed, 325 insertions(+), 116 deletions(-) create mode 100644 releasenotes/notes/add-error-tracking-standalone-config-option-1b88cedc9e164127.yaml diff --git a/comp/trace/config/config_test.go b/comp/trace/config/config_test.go index 8649b7f142cb2..7bdc5950e9cbf 100644 --- a/comp/trace/config/config_test.go +++ b/comp/trace/config/config_test.go @@ -953,6 +953,19 @@ func TestLoadEnv(t *testing.T) { assert.Equal(t, 12.3, cfg.OTLPReceiver.ProbabilisticSampling) }) + env = "DD_APM_ERROR_TRACKING_STANDALONE_ENABLED" + t.Run(env, func(t *testing.T) { + t.Setenv(env, "true") + + config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ + Params: corecomp.Params{ConfFilePath: "./testdata/undocumented.yaml"}, + })) + cfg := config.Object() + + assert.NotNil(t, cfg) + assert.Equal(t, true, cfg.ErrorTrackingStandalone) + }) + for _, envKey := range []string{ "DD_IGNORE_RESOURCE", // deprecated "DD_APM_IGNORE_RESOURCES", diff --git a/comp/trace/config/setup.go b/comp/trace/config/setup.go index 00a37fffc3315..70b0b3ac6355a 100644 --- a/comp/trace/config/setup.go +++ b/comp/trace/config/setup.go @@ -278,6 +278,10 @@ func applyDatadogConfig(c *config.AgentConfig, core corecompcfg.Component) error c.ProbabilisticSamplerHashSeed = uint32(core.GetInt("apm_config.probabilistic_sampler.hash_seed")) } + if core.IsSet("apm_config.error_tracking_standalone.enabled") { + c.ErrorTrackingStandalone = core.GetBool("apm_config.error_tracking_standalone.enabled") + } + if core.IsSet("apm_config.max_remote_traces_per_second") { c.MaxRemoteTPS = core.GetFloat64("apm_config.max_remote_traces_per_second") } diff --git a/pkg/config/config_template.yaml b/pkg/config/config_template.yaml index 8d1afed4b8267..a858e50ce8b7f 100644 --- a/pkg/config/config_template.yaml +++ b/pkg/config/config_template.yaml @@ -1462,6 +1462,16 @@ api_key: ## collectors using the probabilistic sampler to ensure consistent sampling. # hash_seed: 0 + ## @param error_tracking_standalone - object - optional + ## Enables Error Tracking Standalone + ## + #error_tracking_standalone: + # + ## @param enabled - boolean - optional - default: false + ## @env DD_APM_ERROR_TRACKING_STANDALONE_ENABLED - boolean - optional - default: false + ## Enables or disables Error Tracking Standalone + # enabled: false + {{- if .InternalProfiling -}} ## @param profiling - custom object - optional diff --git a/pkg/config/setup/apm.go b/pkg/config/setup/apm.go index 420403407a353..f792f9c57dd81 100644 --- a/pkg/config/setup/apm.go +++ b/pkg/config/setup/apm.go @@ -112,6 +112,7 @@ func setupAPM(config pkgconfigmodel.Setup) { config.BindEnv("apm_config.probabilistic_sampler.enabled", "DD_APM_PROBABILISTIC_SAMPLER_ENABLED") config.BindEnv("apm_config.probabilistic_sampler.sampling_percentage", "DD_APM_PROBABILISTIC_SAMPLER_SAMPLING_PERCENTAGE") config.BindEnv("apm_config.probabilistic_sampler.hash_seed", "DD_APM_PROBABILISTIC_SAMPLER_HASH_SEED") + config.BindEnvAndSetDefault("apm_config.error_tracking_standalone.enabled", false, "DD_APM_ERROR_TRACKING_STANDALONE_ENABLED") config.BindEnv("apm_config.max_memory", "DD_APM_MAX_MEMORY") config.BindEnv("apm_config.max_cpu_percent", "DD_APM_MAX_CPU_PERCENT") diff --git a/pkg/trace/agent/agent.go b/pkg/trace/agent/agent.go index a10e015be49f5..ff2307a3aeb49 100644 --- a/pkg/trace/agent/agent.go +++ b/pkg/trace/agent/agent.go @@ -568,7 +568,8 @@ func (a *Agent) ProcessStats(in *pb.ClientStatsPayload, lang, tracerVersion, con a.ClientStatsAggregator.In <- a.processStats(in, lang, tracerVersion, containerID) } -// sample performs all sampling on the processedTrace modifying it as needed and returning if the trace should be kept and the number of events in the trace +// sample performs all sampling on the processedTrace modifying it as needed and returning if the trace should be kept +// and the number of events in the trace func (a *Agent) sample(now time.Time, ts *info.TagStats, pt *traceutil.ProcessedTrace) (keep bool, numEvents int) { // We have a `keep` that is different from pt's `DroppedTrace` field as `DroppedTrace` will be sent to intake. // For example: We want to maintain the overall trace level sampling decision for a trace with Analytics Events @@ -579,7 +580,7 @@ func (a *Agent) sample(now time.Time, ts *info.TagStats, pt *traceutil.Processed if checkAnalyticsEvents { events = a.getAnalyzedEvents(pt, ts) } - if !keep { + if !keep && !a.conf.ErrorTrackingStandalone { modified := sampler.SingleSpanSampling(pt) if !modified { // If there were no sampled spans, and we're not keeping the trace, let's use the analytics events @@ -630,13 +631,23 @@ func (a *Agent) getAnalyzedEvents(pt *traceutil.ProcessedTrace, ts *info.TagStat // runSamplers runs the agent's configured samplers on pt and returns the sampling decision along // with the sampling rate. // -// The rare sampler is run first, catching all rare traces early. If the probabilistic sampler is +// If the agent is set as Error Tracking Standalone, only the ErrorSampler is run (other samplers are bypassed). +// Otherwise, the rare sampler is run first, catching all rare traces early. If the probabilistic sampler is // enabled, it is run on the trace, followed by the error sampler. Otherwise, If the trace has a // priority set, the sampling priority is used with the Priority Sampler. When there is no priority // set, the NoPrioritySampler is run. Finally, if the trace has not been sampled by the other // samplers, the error sampler is run. func (a *Agent) runSamplers(now time.Time, ts *info.TagStats, pt traceutil.ProcessedTrace) (keep bool, checkAnalyticsEvents bool) { - // run this early to make sure the signature gets counted by the RareSampler. + // ETS: chunks that don't contain errors (or spans with exception span events) are all dropped. + if a.conf.ErrorTrackingStandalone { + if traceContainsError(pt.TraceChunk.Spans, true) { + pt.TraceChunk.Tags["_dd.error_tracking_standalone.error"] = "true" + return a.ErrorsSampler.Sample(now, pt.TraceChunk.Spans, pt.Root, pt.TracerEnv), false + } + return false, false + } + + // Run this early to make sure the signature gets counted by the RareSampler. rare := a.RareSampler.Sample(now, pt.TraceChunk, pt.TracerEnv) if a.conf.ProbabilisticSamplerEnabled { @@ -647,7 +658,7 @@ func (a *Agent) runSamplers(now time.Time, ts *info.TagStats, pt traceutil.Proce pt.TraceChunk.Tags[tagDecisionMaker] = probabilitySampling return true, true } - if traceContainsError(pt.TraceChunk.Spans) { + if traceContainsError(pt.TraceChunk.Spans, false) { return a.ErrorsSampler.Sample(now, pt.TraceChunk.Spans, pt.Root, pt.TracerEnv), true } return false, true @@ -684,22 +695,29 @@ func (a *Agent) runSamplers(now time.Time, ts *info.TagStats, pt traceutil.Proce return true, true } - if traceContainsError(pt.TraceChunk.Spans) { + if traceContainsError(pt.TraceChunk.Spans, false) { return a.ErrorsSampler.Sample(now, pt.TraceChunk.Spans, pt.Root, pt.TracerEnv), true } return false, true } -func traceContainsError(trace pb.Trace) bool { +func traceContainsError(trace pb.Trace, considerExceptionEvents bool) bool { for _, span := range trace { - if span.Error != 0 { + if span.Error != 0 || (considerExceptionEvents && spanContainsExceptionSpanEvent(span)) { return true } } return false } +func spanContainsExceptionSpanEvent(span *pb.Span) bool { + if hasExceptionSpanEvents, ok := span.Meta["_dd.span_events.has_exception"]; ok && hasExceptionSpanEvents == "true" { + return true + } + return false +} + func filteredByTags(root *pb.Span, require, reject []*config.Tag, requireRegex, rejectRegex []*config.TagRegex) bool { for _, tag := range reject { if v, ok := root.Meta[tag.K]; ok && (tag.V == "" || v == tag.V) { diff --git a/pkg/trace/agent/agent_test.go b/pkg/trace/agent/agent_test.go index 302f3c5d03606..78cd9f8e0a9c9 100644 --- a/pkg/trace/agent/agent_test.go +++ b/pkg/trace/agent/agent_test.go @@ -1273,7 +1273,7 @@ func TestSampling(t *testing.T) { } } -func TestSample(t *testing.T) { +func TestSampleTrace(t *testing.T) { now := time.Now() cfg := &config.AgentConfig{TargetTPS: 5, ErrorTPS: 1000, Features: make(map[string]struct{})} genSpan := func(decisionMaker string, priority sampler.SamplingPriority, err int32) traceutil.ProcessedTrace { @@ -1357,6 +1357,133 @@ func TestSample(t *testing.T) { } } +func TestSample(t *testing.T) { + now := time.Now() + cfg := &config.AgentConfig{TargetTPS: 5, ErrorTPS: 1000, Features: make(map[string]struct{})} + genSpan := func(decisionMaker string, priority sampler.SamplingPriority, err int32, exceptionInSpanEvent bool) traceutil.ProcessedTrace { + root := &pb.Span{ + Service: "serv1", + Start: now.UnixNano(), + Duration: (100 * time.Millisecond).Nanoseconds(), + Metrics: map[string]float64{"_top_level": 1}, + Error: err, // If 1, the Error Sampler will keep the trace, if 0, it will not be sampled + Meta: map[string]string{}, + } + if exceptionInSpanEvent { + root.Meta["_dd.span_events.has_exception"] = "true" // the Error Sampler will keep the trace + } + chunk := testutil.TraceChunkWithSpan(root) + if decisionMaker != "" { + chunk.Tags["_dd.p.dm"] = decisionMaker + } + pt := traceutil.ProcessedTrace{TraceChunk: chunk, Root: root} + pt.TraceChunk.Priority = int32(priority) + return pt + } + statsd := &statsd.NoOpClient{} + tests := map[string]struct { + trace traceutil.ProcessedTrace + etsEnabled bool + keep bool + keepWithFeature bool + }{ + "userdrop-error-manual-dm-unsampled": { + trace: genSpan("-4", sampler.PriorityUserDrop, 1, false), + keep: false, + keepWithFeature: false, + }, + "userkeep-error-no-dm-sampled": { + trace: genSpan("", sampler.PriorityUserKeep, 1, false), + keep: true, + keepWithFeature: true, + }, + "userkeep-error-agent-dm-sampled": { + trace: genSpan("-1", sampler.PriorityUserKeep, 1, false), + keep: true, + keepWithFeature: true, + }, + "autodrop-error-sampled": { + trace: genSpan("", sampler.PriorityAutoDrop, 1, false), + keep: true, + keepWithFeature: true, + }, + "autodrop-not-sampled": { + trace: genSpan("", sampler.PriorityAutoDrop, 0, false), + keep: false, + keepWithFeature: false, + }, + "ets-userdrop-error-manual-dm-unsampled": { + trace: genSpan("-4", sampler.PriorityUserDrop, 1, false), + etsEnabled: true, + keep: true, + keepWithFeature: true, + }, + "ets-userdrop-errorspanevent-manual-dm-unsampled": { + trace: genSpan("-4", sampler.PriorityUserDrop, 1, false), + etsEnabled: true, + keep: true, + keepWithFeature: true, + }, + "ets-userdrop-manual-dm-unsampled": { + trace: genSpan("-4", sampler.PriorityUserDrop, 0, false), + etsEnabled: true, + keep: false, + keepWithFeature: false, + }, + "ets-userkeep-error-no-dm-sampled": { + trace: genSpan("", sampler.PriorityUserKeep, 1, false), + etsEnabled: true, + keep: true, + keepWithFeature: true, + }, + "ets-userkeep-error-agent-dm-sampled": { + trace: genSpan("-1", sampler.PriorityUserKeep, 1, false), + etsEnabled: true, + keep: true, + keepWithFeature: true, + }, + "ets-autodrop-error-sampled": { + trace: genSpan("", sampler.PriorityAutoDrop, 1, false), + etsEnabled: true, + keep: true, + keepWithFeature: true, + }, + "ets-autodrop-errorspanevent-sampled": { + trace: genSpan("", sampler.PriorityAutoDrop, 0, true), + etsEnabled: true, + keep: true, + keepWithFeature: true, + }, + "ets-autodrop-not-sampled": { + trace: genSpan("", sampler.PriorityAutoDrop, 0, false), + etsEnabled: true, + keep: false, + keepWithFeature: false, + }, + } + for name, tt := range tests { + cfg.ErrorTrackingStandalone = tt.etsEnabled + a := &Agent{ + NoPrioritySampler: sampler.NewNoPrioritySampler(cfg, statsd), + ErrorsSampler: sampler.NewErrorsSampler(cfg, statsd), + PrioritySampler: sampler.NewPrioritySampler(cfg, &sampler.DynamicConfig{}, statsd), + RareSampler: sampler.NewRareSampler(config.New(), statsd), + EventProcessor: newEventProcessor(cfg, statsd), + conf: cfg, + } + t.Run(name, func(t *testing.T) { + keep, _ := a.sample(now, info.NewReceiverStats().GetTagStats(info.Tags{}), &tt.trace) + assert.Equal(t, tt.keep, keep) + assert.Equal(t, !tt.keep, tt.trace.TraceChunk.DroppedTrace) + cfg.Features["error_rare_sample_tracer_drop"] = struct{}{} + defer delete(cfg.Features, "error_rare_sample_tracer_drop") + keep, _ = a.sample(now, info.NewReceiverStats().GetTagStats(info.Tags{}), &tt.trace) + assert.Equal(t, tt.keepWithFeature, keep) + assert.Equal(t, !tt.keepWithFeature, tt.trace.TraceChunk.DroppedTrace) + }) + } +} + func TestSampleManualUserDropNoAnalyticsEvents(t *testing.T) { // This test exists to confirm previous behavior where we did not extract nor tag analytics events on // user manual drop traces diff --git a/pkg/trace/api/otlp.go b/pkg/trace/api/otlp.go index 9dda5532f1338..7272df819a8e0 100644 --- a/pkg/trace/api/otlp.go +++ b/pkg/trace/api/otlp.go @@ -549,6 +549,7 @@ func (o *OTLPReceiver) convertSpan(rattr map[string]string, lib pcommon.Instrume if in.Events().Len() > 0 { transform.SetMetaOTLP(span, "events", transform.MarshalEvents(in.Events())) } + transform.TagSpanIfContainsExceptionEvent(in, span) if in.Links().Len() > 0 { transform.SetMetaOTLP(span, "_dd.span_links", transform.MarshalLinks(in.Links())) } diff --git a/pkg/trace/api/otlp_test.go b/pkg/trace/api/otlp_test.go index b3717ec09d990..bd6377ff4612d 100644 --- a/pkg/trace/api/otlp_test.go +++ b/pkg/trace/api/otlp_test.go @@ -1702,22 +1702,23 @@ func testOTelSpanToDDSpan(enableOperationAndResourceNameV2 bool, t *testing.T) { Duration: 200000000, Error: 1, Meta: map[string]string{ - "name": "john", - "otel.trace_id": "72df520af2bde7a5240031ead750e5f3", - "env": "staging", - "otel.status_code": "Error", - "otel.status_description": "Error", - "otel.library.name": "ddtracer", - "otel.library.version": "v2", - "service.version": "v1.2.3", - "w3c.tracestate": "state", - "version": "v1.2.3", - "events": `[{"time_unix_nano":123,"name":"boom","attributes":{"key":"Out of memory","accuracy":2.4},"dropped_attributes_count":2},{"time_unix_nano":456,"name":"exception","attributes":{"exception.message":"Out of memory","exception.type":"mem","exception.stacktrace":"1/2/3"},"dropped_attributes_count":2}]`, - "_dd.span_links": `[{"trace_id":"fedcba98765432100123456789abcdef","span_id":"abcdef0123456789","trace_state":"dd=asdf256,ee=jkl;128", "attributes":{"a1":"v1","a2":"v2"},"dropped_attributes_count":24},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210","attributes":{"a3":"v2","a4":"v4"}},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210","dropped_attributes_count":2},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210"}]`, - "error.msg": "Out of memory", - "error.type": "mem", - "error.stack": "1/2/3", - "span.kind": "server", + "name": "john", + "otel.trace_id": "72df520af2bde7a5240031ead750e5f3", + "env": "staging", + "otel.status_code": "Error", + "otel.status_description": "Error", + "otel.library.name": "ddtracer", + "otel.library.version": "v2", + "service.version": "v1.2.3", + "w3c.tracestate": "state", + "version": "v1.2.3", + "events": `[{"time_unix_nano":123,"name":"boom","attributes":{"key":"Out of memory","accuracy":2.4},"dropped_attributes_count":2},{"time_unix_nano":456,"name":"exception","attributes":{"exception.message":"Out of memory","exception.type":"mem","exception.stacktrace":"1/2/3"},"dropped_attributes_count":2}]`, + "_dd.span_links": `[{"trace_id":"fedcba98765432100123456789abcdef","span_id":"abcdef0123456789","trace_state":"dd=asdf256,ee=jkl;128", "attributes":{"a1":"v1","a2":"v2"},"dropped_attributes_count":24},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210","attributes":{"a3":"v2","a4":"v4"}},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210","dropped_attributes_count":2},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210"}]`, + "error.msg": "Out of memory", + "error.type": "mem", + "error.stack": "1/2/3", + "span.kind": "server", + "_dd.span_events.has_exception": "true", }, Metrics: map[string]float64{ "approx": 1.2, @@ -1829,25 +1830,26 @@ func testOTelSpanToDDSpan(enableOperationAndResourceNameV2 bool, t *testing.T) { Duration: 200000000, Error: 1, Meta: map[string]string{ - "name": "john", - "env": "", - "otel.trace_id": "72df520af2bde7a5240031ead750e5f3", - "otel.status_code": "Error", - "otel.status_description": "Error", - "otel.library.name": "ddtracer", - "otel.library.version": "v2", - "service.version": "v1.2.3", - "w3c.tracestate": "state", - "version": "v1.2.3", - "events": "[{\"time_unix_nano\":123,\"name\":\"boom\",\"attributes\":{\"message\":\"Out of memory\",\"accuracy\":2.4},\"dropped_attributes_count\":2},{\"time_unix_nano\":456,\"name\":\"exception\",\"attributes\":{\"exception.message\":\"Out of memory\",\"exception.type\":\"mem\",\"exception.stacktrace\":\"1/2/3\"},\"dropped_attributes_count\":2}]", - "_dd.span_links": `[{"trace_id":"fedcba98765432100123456789abcdef","span_id":"abcdef0123456789","trace_state":"dd=asdf256,ee=jkl;128","attributes":{"a1":"v1","a2":"v2"},"dropped_attributes_count":24},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210","attributes":{"a3":"v2","a4":"v4"}},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210","dropped_attributes_count":2},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210"}]`, - "error.msg": "Out of memory", - "error.type": "mem", - "error.stack": "1/2/3", - "http.method": "GET", - "http.route": "/path", - "peer.service": "userbase", - "span.kind": "server", + "name": "john", + "env": "", + "otel.trace_id": "72df520af2bde7a5240031ead750e5f3", + "otel.status_code": "Error", + "otel.status_description": "Error", + "otel.library.name": "ddtracer", + "otel.library.version": "v2", + "service.version": "v1.2.3", + "w3c.tracestate": "state", + "version": "v1.2.3", + "events": "[{\"time_unix_nano\":123,\"name\":\"boom\",\"attributes\":{\"message\":\"Out of memory\",\"accuracy\":2.4},\"dropped_attributes_count\":2},{\"time_unix_nano\":456,\"name\":\"exception\",\"attributes\":{\"exception.message\":\"Out of memory\",\"exception.type\":\"mem\",\"exception.stacktrace\":\"1/2/3\"},\"dropped_attributes_count\":2}]", + "_dd.span_links": `[{"trace_id":"fedcba98765432100123456789abcdef","span_id":"abcdef0123456789","trace_state":"dd=asdf256,ee=jkl;128","attributes":{"a1":"v1","a2":"v2"},"dropped_attributes_count":24},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210","attributes":{"a3":"v2","a4":"v4"}},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210","dropped_attributes_count":2},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210"}]`, + "error.msg": "Out of memory", + "error.type": "mem", + "error.stack": "1/2/3", + "http.method": "GET", + "http.route": "/path", + "peer.service": "userbase", + "span.kind": "server", + "_dd.span_events.has_exception": "true", }, Metrics: map[string]float64{ "approx": 1.2, @@ -1958,24 +1960,25 @@ func testOTelSpanToDDSpan(enableOperationAndResourceNameV2 bool, t *testing.T) { Duration: 200000000, Error: 1, Meta: map[string]string{ - "name": "john", - "env": "staging", - "otel.status_code": "Error", - "otel.status_description": "Error", - "otel.library.name": "ddtracer", - "otel.library.version": "v2", - "service.version": "v1.2.3", - "w3c.tracestate": "state", - "version": "v1.2.3", - "otel.trace_id": "72df520af2bde7a5240031ead750e5f3", - "events": "[{\"time_unix_nano\":123,\"name\":\"boom\",\"attributes\":{\"message\":\"Out of memory\",\"accuracy\":2.4},\"dropped_attributes_count\":2},{\"time_unix_nano\":456,\"name\":\"exception\",\"attributes\":{\"exception.message\":\"Out of memory\",\"exception.type\":\"mem\",\"exception.stacktrace\":\"1/2/3\"},\"dropped_attributes_count\":2}]", - "_dd.span_links": `[{"trace_id":"fedcba98765432100123456789abcdef","span_id":"abcdef0123456789","trace_state":"dd=asdf256,ee=jkl;128","attributes":{"a1":"v1","a2":"v2"},"dropped_attributes_count":24},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210","attributes":{"a3":"v2","a4":"v4"}},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210","dropped_attributes_count":2},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210"}]`, - "error.msg": "Out of memory", - "error.type": "mem", - "error.stack": "1/2/3", - "http.method": "GET", - "http.route": "/path", - "span.kind": "server", + "name": "john", + "env": "staging", + "otel.status_code": "Error", + "otel.status_description": "Error", + "otel.library.name": "ddtracer", + "otel.library.version": "v2", + "service.version": "v1.2.3", + "w3c.tracestate": "state", + "version": "v1.2.3", + "otel.trace_id": "72df520af2bde7a5240031ead750e5f3", + "events": "[{\"time_unix_nano\":123,\"name\":\"boom\",\"attributes\":{\"message\":\"Out of memory\",\"accuracy\":2.4},\"dropped_attributes_count\":2},{\"time_unix_nano\":456,\"name\":\"exception\",\"attributes\":{\"exception.message\":\"Out of memory\",\"exception.type\":\"mem\",\"exception.stacktrace\":\"1/2/3\"},\"dropped_attributes_count\":2}]", + "_dd.span_links": `[{"trace_id":"fedcba98765432100123456789abcdef","span_id":"abcdef0123456789","trace_state":"dd=asdf256,ee=jkl;128","attributes":{"a1":"v1","a2":"v2"},"dropped_attributes_count":24},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210","attributes":{"a3":"v2","a4":"v4"}},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210","dropped_attributes_count":2},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210"}]`, + "error.msg": "Out of memory", + "error.type": "mem", + "error.stack": "1/2/3", + "http.method": "GET", + "http.route": "/path", + "span.kind": "server", + "_dd.span_events.has_exception": "true", }, Metrics: map[string]float64{ "approx": 1.2, @@ -2397,22 +2400,23 @@ func testOTLPConvertSpan(enableOperationAndResourceNameV2 bool, t *testing.T) { Duration: 200000000, Error: 1, Meta: map[string]string{ - "name": "john", - "otel.trace_id": "72df520af2bde7a5240031ead750e5f3", - "env": "staging", - "otel.status_code": "Error", - "otel.status_description": "Error", - "otel.library.name": "ddtracer", - "otel.library.version": "v2", - "service.version": "v1.2.3", - "w3c.tracestate": "state", - "version": "v1.2.3", - "events": `[{"time_unix_nano":123,"name":"boom","attributes":{"key":"Out of memory","accuracy":2.4},"dropped_attributes_count":2},{"time_unix_nano":456,"name":"exception","attributes":{"exception.message":"Out of memory","exception.type":"mem","exception.stacktrace":"1/2/3"},"dropped_attributes_count":2}]`, - "_dd.span_links": `[{"trace_id":"fedcba98765432100123456789abcdef","span_id":"abcdef0123456789","trace_state":"dd=asdf256,ee=jkl;128", "attributes":{"a1":"v1","a2":"v2"},"dropped_attributes_count":24},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210","attributes":{"a3":"v2","a4":"v4"}},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210","dropped_attributes_count":2},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210"}]`, - "error.msg": "Out of memory", - "error.type": "mem", - "error.stack": "1/2/3", - "span.kind": "server", + "name": "john", + "otel.trace_id": "72df520af2bde7a5240031ead750e5f3", + "env": "staging", + "otel.status_code": "Error", + "otel.status_description": "Error", + "otel.library.name": "ddtracer", + "otel.library.version": "v2", + "service.version": "v1.2.3", + "w3c.tracestate": "state", + "version": "v1.2.3", + "events": `[{"time_unix_nano":123,"name":"boom","attributes":{"key":"Out of memory","accuracy":2.4},"dropped_attributes_count":2},{"time_unix_nano":456,"name":"exception","attributes":{"exception.message":"Out of memory","exception.type":"mem","exception.stacktrace":"1/2/3"},"dropped_attributes_count":2}]`, + "_dd.span_links": `[{"trace_id":"fedcba98765432100123456789abcdef","span_id":"abcdef0123456789","trace_state":"dd=asdf256,ee=jkl;128", "attributes":{"a1":"v1","a2":"v2"},"dropped_attributes_count":24},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210","attributes":{"a3":"v2","a4":"v4"}},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210","dropped_attributes_count":2},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210"}]`, + "error.msg": "Out of memory", + "error.type": "mem", + "error.stack": "1/2/3", + "span.kind": "server", + "_dd.span_events.has_exception": "true", }, Metrics: map[string]float64{ "approx": 1.2, @@ -2524,26 +2528,27 @@ func testOTLPConvertSpan(enableOperationAndResourceNameV2 bool, t *testing.T) { Duration: 200000000, Error: 1, Meta: map[string]string{ - "name": "john", - "env": "prod", - "deployment.environment": "prod", - "otel.trace_id": "72df520af2bde7a5240031ead750e5f3", - "otel.status_code": "Error", - "otel.status_description": "Error", - "otel.library.name": "ddtracer", - "otel.library.version": "v2", - "service.version": "v1.2.3", - "w3c.tracestate": "state", - "version": "v1.2.3", - "events": "[{\"time_unix_nano\":123,\"name\":\"boom\",\"attributes\":{\"message\":\"Out of memory\",\"accuracy\":2.4},\"dropped_attributes_count\":2},{\"time_unix_nano\":456,\"name\":\"exception\",\"attributes\":{\"exception.message\":\"Out of memory\",\"exception.type\":\"mem\",\"exception.stacktrace\":\"1/2/3\"},\"dropped_attributes_count\":2}]", - "_dd.span_links": `[{"trace_id":"fedcba98765432100123456789abcdef","span_id":"abcdef0123456789","trace_state":"dd=asdf256,ee=jkl;128","attributes":{"a1":"v1","a2":"v2"},"dropped_attributes_count":24},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210","attributes":{"a3":"v2","a4":"v4"}},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210","dropped_attributes_count":2},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210"}]`, - "error.msg": "Out of memory", - "error.type": "mem", - "error.stack": "1/2/3", - "http.method": "GET", - "http.route": "/path", - "peer.service": "userbase", - "span.kind": "server", + "name": "john", + "env": "prod", + "deployment.environment": "prod", + "otel.trace_id": "72df520af2bde7a5240031ead750e5f3", + "otel.status_code": "Error", + "otel.status_description": "Error", + "otel.library.name": "ddtracer", + "otel.library.version": "v2", + "service.version": "v1.2.3", + "w3c.tracestate": "state", + "version": "v1.2.3", + "events": "[{\"time_unix_nano\":123,\"name\":\"boom\",\"attributes\":{\"message\":\"Out of memory\",\"accuracy\":2.4},\"dropped_attributes_count\":2},{\"time_unix_nano\":456,\"name\":\"exception\",\"attributes\":{\"exception.message\":\"Out of memory\",\"exception.type\":\"mem\",\"exception.stacktrace\":\"1/2/3\"},\"dropped_attributes_count\":2}]", + "_dd.span_links": `[{"trace_id":"fedcba98765432100123456789abcdef","span_id":"abcdef0123456789","trace_state":"dd=asdf256,ee=jkl;128","attributes":{"a1":"v1","a2":"v2"},"dropped_attributes_count":24},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210","attributes":{"a3":"v2","a4":"v4"}},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210","dropped_attributes_count":2},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210"}]`, + "error.msg": "Out of memory", + "error.type": "mem", + "error.stack": "1/2/3", + "http.method": "GET", + "http.route": "/path", + "peer.service": "userbase", + "span.kind": "server", + "_dd.span_events.has_exception": "true", }, Metrics: map[string]float64{ "approx": 1.2, @@ -2654,24 +2659,25 @@ func testOTLPConvertSpan(enableOperationAndResourceNameV2 bool, t *testing.T) { Duration: 200000000, Error: 1, Meta: map[string]string{ - "name": "john", - "env": "staging", - "otel.status_code": "Error", - "otel.status_description": "Error", - "otel.library.name": "ddtracer", - "otel.library.version": "v2", - "service.version": "v1.2.3", - "w3c.tracestate": "state", - "version": "v1.2.3", - "otel.trace_id": "72df520af2bde7a5240031ead750e5f3", - "events": "[{\"time_unix_nano\":123,\"name\":\"boom\",\"attributes\":{\"message\":\"Out of memory\",\"accuracy\":2.4},\"dropped_attributes_count\":2},{\"time_unix_nano\":456,\"name\":\"exception\",\"attributes\":{\"exception.message\":\"Out of memory\",\"exception.type\":\"mem\",\"exception.stacktrace\":\"1/2/3\"},\"dropped_attributes_count\":2}]", - "_dd.span_links": `[{"trace_id":"fedcba98765432100123456789abcdef","span_id":"abcdef0123456789","trace_state":"dd=asdf256,ee=jkl;128","attributes":{"a1":"v1","a2":"v2"},"dropped_attributes_count":24},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210","attributes":{"a3":"v2","a4":"v4"}},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210","dropped_attributes_count":2},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210"}]`, - "error.msg": "Out of memory", - "error.type": "mem", - "error.stack": "1/2/3", - "http.method": "GET", - "http.route": "/path", - "span.kind": "server", + "name": "john", + "env": "staging", + "otel.status_code": "Error", + "otel.status_description": "Error", + "otel.library.name": "ddtracer", + "otel.library.version": "v2", + "service.version": "v1.2.3", + "w3c.tracestate": "state", + "version": "v1.2.3", + "otel.trace_id": "72df520af2bde7a5240031ead750e5f3", + "events": "[{\"time_unix_nano\":123,\"name\":\"boom\",\"attributes\":{\"message\":\"Out of memory\",\"accuracy\":2.4},\"dropped_attributes_count\":2},{\"time_unix_nano\":456,\"name\":\"exception\",\"attributes\":{\"exception.message\":\"Out of memory\",\"exception.type\":\"mem\",\"exception.stacktrace\":\"1/2/3\"},\"dropped_attributes_count\":2}]", + "_dd.span_links": `[{"trace_id":"fedcba98765432100123456789abcdef","span_id":"abcdef0123456789","trace_state":"dd=asdf256,ee=jkl;128","attributes":{"a1":"v1","a2":"v2"},"dropped_attributes_count":24},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210","attributes":{"a3":"v2","a4":"v4"}},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210","dropped_attributes_count":2},{"trace_id":"abcdef0123456789abcdef0123456789","span_id":"fedcba9876543210"}]`, + "error.msg": "Out of memory", + "error.type": "mem", + "error.stack": "1/2/3", + "http.method": "GET", + "http.route": "/path", + "span.kind": "server", + "_dd.span_events.has_exception": "true", }, Metrics: map[string]float64{ "approx": 1.2, diff --git a/pkg/trace/config/config.go b/pkg/trace/config/config.go index 7a86fc71ac8e4..bc84e401c88bf 100644 --- a/pkg/trace/config/config.go +++ b/pkg/trace/config/config.go @@ -320,6 +320,9 @@ type AgentConfig struct { ProbabilisticSamplerHashSeed uint32 ProbabilisticSamplerSamplingPercentage float32 + // Error Tracking Standalone + ErrorTrackingStandalone bool + // Receiver ReceiverEnabled bool // specifies whether Receiver listeners are enabled. Unless OTLPReceiver is used, this should always be true. ReceiverHost string @@ -502,6 +505,8 @@ func New() *AgentConfig { RareSamplerCooldownPeriod: 5 * time.Minute, RareSamplerCardinality: 200, + ErrorTrackingStandalone: false, + ReceiverEnabled: true, ReceiverHost: "localhost", ReceiverPort: 8126, diff --git a/pkg/trace/transform/transform.go b/pkg/trace/transform/transform.go index 3a02df7cd2add..8582b8c12e2c5 100644 --- a/pkg/trace/transform/transform.go +++ b/pkg/trace/transform/transform.go @@ -128,6 +128,7 @@ func OtelSpanToDDSpan( if otelspan.Events().Len() > 0 { ddspan.Meta["events"] = MarshalEvents(otelspan.Events()) } + TagSpanIfContainsExceptionEvent(otelspan, ddspan) if otelspan.Links().Len() > 0 { ddspan.Meta["_dd.span_links"] = MarshalLinks(otelspan.Links()) } @@ -195,6 +196,16 @@ func OtelSpanToDDSpan( return ddspan } +// TagSpanIfContainsExceptionEvent tags spans that contain at least on exception span event. +func TagSpanIfContainsExceptionEvent(otelspan ptrace.Span, ddspan *pb.Span) { + for i := range otelspan.Events().Len() { + if otelspan.Events().At(i).Name() == "exception" { + ddspan.Meta["_dd.span_events.has_exception"] = "true" + return + } + } +} + // MarshalEvents marshals events into JSON. func MarshalEvents(events ptrace.SpanEventSlice) string { var str strings.Builder diff --git a/releasenotes/notes/add-error-tracking-standalone-config-option-1b88cedc9e164127.yaml b/releasenotes/notes/add-error-tracking-standalone-config-option-1b88cedc9e164127.yaml new file mode 100644 index 0000000000000..12a123d78beba --- /dev/null +++ b/releasenotes/notes/add-error-tracking-standalone-config-option-1b88cedc9e164127.yaml @@ -0,0 +1,13 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +features: + - | + APM: Introducing the Error Tracking Standalone config option. Only span chunks + that contain errors or exception OpenTelemetry span events are taken into + consideration by sampling. From 4afce709300cda12434b63cdb0579a973ce8b89c Mon Sep 17 00:00:00 2001 From: Nicolas Schweitzer Date: Wed, 27 Nov 2024 10:59:15 +0100 Subject: [PATCH 080/439] fix(coverage): Pass the coverage flag in macos tests (#31380) --- .gitlab/source_test/macos.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab/source_test/macos.yml b/.gitlab/source_test/macos.yml index 338f2f9eca347..63d660ce8bf7c 100644 --- a/.gitlab/source_test/macos.yml +++ b/.gitlab/source_test/macos.yml @@ -22,7 +22,7 @@ tests_macos: - python3 -m pip install -r tasks/libs/requirements-github.txt --break-system-packages - FAST_TESTS_FLAG="" - if [[ "$FAST_TESTS" = "true" ]]; then FAST_TESTS_FLAG="--fast-tests true"; fi - - inv -e github.trigger-macos --workflow-type "test" --datadog-agent-ref "$CI_COMMIT_SHA" --version-cache "$VERSION_CACHE_CONTENT" $FAST_TESTS_FLAG --test-washer $COVERAGE_CACHE_FLAG + - inv -e github.trigger-macos --workflow-type "test" --datadog-agent-ref "$CI_COMMIT_SHA" --version-cache "$VERSION_CACHE_CONTENT" $FAST_TESTS_FLAG --test-washer timeout: 6h after_script: - $CI_PROJECT_DIR/tools/ci/junit_upload.sh "junit-*-repacked.tgz" @@ -51,7 +51,7 @@ tests_macos: - inv -e gitlab.generate-ci-visibility-links --output=$EXTERNAL_LINKS_PATH - FAST_TESTS_FLAG="" - if [[ "$FAST_TESTS" == "true" ]]; then FAST_TESTS_FLAG="--only-impacted-packages"; fi - - inv -e test --rerun-fails=2 --race --profile --cpus 12 --save-result-json $TEST_OUTPUT_FILE --junit-tar "junit-${CI_JOB_NAME}.tgz" $FAST_TESTS_FLAG --test-washer + - inv -e test --rerun-fails=2 --race --profile --cpus 12 --save-result-json $TEST_OUTPUT_FILE --junit-tar "junit-${CI_JOB_NAME}.tgz" $FAST_TESTS_FLAG --test-washer --coverage - inv -e invoke-unit-tests artifacts: expire_in: 2 weeks From b8ab8c98be153b5b0ba133e4381eeb4edd9538d3 Mon Sep 17 00:00:00 2001 From: Nicolas Schweitzer Date: Wed, 27 Nov 2024 11:19:14 +0100 Subject: [PATCH 081/439] feat(ssm): Remove unused variables (#31001) --- .gitlab-ci.yml | 42 ------------------------------------------ 1 file changed, 42 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e693da5c63ed1..2266b84ef3560 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -236,10 +236,7 @@ variables: # Start aws ssm variables # They must be defined as environment variables in the GitLab CI/CD settings, to ease rotation if needed - AGENT_QA_PROFILE: ci.datadog-agent.agent-qa-profile # agent-devx-infra API_KEY_ORG2: ci.datadog-agent.datadog_api_key_org2 # agent-devx-infra - API_KEY_DDDEV: ci.datadog-agent.datadog_api_key # agent-devx-infra - APP_KEY_ORG2: ci.datadog-agent.datadog_app_key_org2 # agent-devx-infra CHANGELOG_COMMIT_SHA: ci.datadog-agent.gitlab_changelog_commit_sha # agent-devx-infra CHOCOLATEY_API_KEY: ci.datadog-agent.chocolatey_api_key # windows-agent CODECOV_TOKEN: ci.datadog-agent.codecov_token # agent-devx-infra @@ -247,47 +244,8 @@ variables: DEB_SIGNING_PASSPHRASE: ci.datadog-agent.deb_signing_key_passphrase_${DEB_GPG_KEY_ID} # agent-delivery DOCKER_REGISTRY_LOGIN: ci.datadog-agent.docker_hub_login # container-integrations DOCKER_REGISTRY_PWD: ci.datadog-agent.docker_hub_pwd # container-integrations - E2E_TESTS_API_KEY: ci.datadog-agent.e2e_tests_api_key # agent-devx-loops - E2E_TESTS_APP_KEY: ci.datadog-agent.e2e_tests_app_key # agent-devx-loops - E2E_TESTS_RC_KEY: ci.datadog-agent.e2e_tests_rc_key # agent-devx-loops - E2E_TESTS_AZURE_CLIENT_ID: ci.datadog-agent.e2e_tests_azure_client_id # agent-devx-loops - E2E_TESTS_AZURE_CLIENT_SECRET: ci.datadog-agent.e2e_tests_azure_client_secret # agent-devx-loops - E2E_TESTS_AZURE_TENANT_ID: ci.datadog-agent.e2e_tests_azure_tenant_id # agent-devx-loops - E2E_TESTS_AZURE_SUBSCRIPTION_ID: ci.datadog-agent.e2e_tests_azure_subscription_id # agent-devx-loops - E2E_TESTS_GCP_CREDENTIALS: ci.datadog-agent.e2e_tests_gcp_credentials # agent-devx-loops - KITCHEN_EC2_SSH_KEY: ci.datadog-agent.aws_ec2_kitchen_ssh_key # agent-devx-loops - KITCHEN_AZURE_CLIENT_ID: ci.datadog-agent.azure_kitchen_client_id # agent-devx-loops - KITCHEN_AZURE_CLIENT_SECRET: ci.datadog-agent.azure_kitchen_client_secret # agent-devx-loops - KITCHEN_AZURE_SUBSCRIPTION_ID: ci.datadog-agent.azure_kitchen_subscription_id # agent-devx-loops - KITCHEN_AZURE_TENANT_ID: ci.datadog-agent.azure_kitchen_tenant_id # agent-devx-loops - GITHUB_PR_COMMENTER_APP_KEY: pr-commenter.github_app_key # agent-devx-infra - GITHUB_PR_COMMENTER_INTEGRATION_ID: pr-commenter.github_integration_id # agent-devx-infra - GITHUB_PR_COMMENTER_INSTALLATION_ID: pr-commenter.github_installation_id # agent-devx-infra - GITLAB_SCHEDULER_TOKEN: ci.datadog-agent.gitlab_pipelines_scheduler_token # ci-cd - GITLAB_READ_API_TOKEN: ci.datadog-agent.gitlab_read_api_token # ci-cd - GITLAB_FULL_API_TOKEN: ci.datadog-agent.gitlab_full_api_token # ci-cd - INSTALL_SCRIPT_API_KEY: ci.agent-linux-install-script.datadog_api_key_2 # agent-delivery - JIRA_READ_API_TOKEN: ci.datadog-agent.jira_read_api_token # agent-devx-infra - AGENT_GITHUB_APP_ID: ci.datadog-agent.platform-github-app-id # agent-devx-infra - AGENT_GITHUB_INSTALLATION_ID: ci.datadog-agent.platform-github-app-installation-id # agent-devx-infra - AGENT_GITHUB_KEY: ci.datadog-agent.platform-github-app-key # agent-devx-infra - MACOS_GITHUB_APP_ID: ci.datadog-agent.macos_github_app_id # agent-devx-infra - MACOS_GITHUB_INSTALLATION_ID: ci.datadog-agent.macos_github_installation_id # agent-devx-infra - MACOS_GITHUB_KEY: ci.datadog-agent.macos_github_key_b64 # agent-devx-infra - MACOS_GITHUB_APP_ID_2: ci.datadog-agent.macos_github_app_id_2 # agent-devx-infra - MACOS_GITHUB_INSTALLATION_ID_2: ci.datadog-agent.macos_github_installation_id_2 # agent-devx-infra - MACOS_GITHUB_KEY_2: ci.datadog-agent.macos_github_key_b64_2 # agent-devx-infra RPM_GPG_KEY: ci.datadog-agent.rpm_signing_private_key_${RPM_GPG_KEY_ID} # agent-delivery RPM_SIGNING_PASSPHRASE: ci.datadog-agent.rpm_signing_key_passphrase_${RPM_GPG_KEY_ID} # agent-delivery - SLACK_AGENT_CI_TOKEN: ci.datadog-agent.slack_agent_ci_token # agent-devx-infra - SMP_ACCOUNT_ID: ci.datadog-agent.single-machine-performance-account-id # single-machine-performance - SMP_AGENT_TEAM_ID: ci.datadog-agent.single-machine-performance-agent-team-id # single-machine-performance - SMP_API: ci.datadog-agent.single-machine-performance-api # single-machine-performance - SMP_BOT_ACCESS_KEY: ci.datadog-agent.single-machine-performance-bot-access-key # single-machine-performance - SMP_BOT_ACCESS_KEY_ID: ci.datadog-agent.single-machine-performance-bot-access-key-id # single-machine-performance - SSH_KEY: ci.datadog-agent.ssh_key # system-probe - SSH_KEY_RSA: ci.datadog-agent.ssh_key_rsa # agent-devx-loops - SSH_PUBLIC_KEY_RSA: ci.datadog-agent.ssh_public_key_rsa # agent-devx-loops VCPKG_BLOB_SAS_URL: ci.datadog-agent-buildimages.vcpkg_blob_sas_url # windows-agent WINGET_PAT: ci.datadog-agent.winget_pat # windows-agent # End aws ssm variables From 0c3e9fb3db16576c61911487409b8e9bfc28e60c Mon Sep 17 00:00:00 2001 From: Guillaume Pagnoux Date: Wed, 27 Nov 2024 11:28:19 +0100 Subject: [PATCH 082/439] discovery: add service containerID from system-probe module (#31305) --- .../corechecks/servicediscovery/cp_stub.go | 44 ----------- .../corechecks/servicediscovery/impl_linux.go | 19 +---- .../servicediscovery/impl_linux_test.go | 24 +++--- .../servicediscovery/module/comm_test.go | 9 ++- .../servicediscovery/module/config_test.go | 12 +-- .../module/ignore_proc_test.go | 2 +- .../servicediscovery/module/impl_linux.go | 19 ++++- .../module/impl_linux_test.go | 77 +++++++++++-------- .../servicediscovery/servicediscovery.go | 17 +--- 9 files changed, 91 insertions(+), 132 deletions(-) delete mode 100644 pkg/collector/corechecks/servicediscovery/cp_stub.go diff --git a/pkg/collector/corechecks/servicediscovery/cp_stub.go b/pkg/collector/corechecks/servicediscovery/cp_stub.go deleted file mode 100644 index a3c26578ae6e8..0000000000000 --- a/pkg/collector/corechecks/servicediscovery/cp_stub.go +++ /dev/null @@ -1,44 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2024-present Datadog, Inc. - -//go:build linux && test - -package servicediscovery - -import ( - "time" - - model "github.com/DataDog/agent-payload/v5/process" - - proccontainers "github.com/DataDog/datadog-agent/pkg/process/util/containers" -) - -const ( - dummyContainerID = "abcd" -) - -type containerProviderStub struct { - pidToCid map[int]string -} - -func newContainerProviderStub(targetPIDs []int) proccontainers.ContainerProvider { - pidToCid := make(map[int]string) - - for _, pid := range targetPIDs { - pidToCid[pid] = dummyContainerID - } - - return &containerProviderStub{ - pidToCid: pidToCid, - } -} - -func (*containerProviderStub) GetContainers(_ time.Duration, _ map[string]*proccontainers.ContainerRateMetrics) ([]*model.Container, map[string]*proccontainers.ContainerRateMetrics, map[int]string, error) { - return nil, nil, nil, nil -} - -func (s *containerProviderStub) GetPidToCid(_ time.Duration) map[int]string { - return s.pidToCid -} diff --git a/pkg/collector/corechecks/servicediscovery/impl_linux.go b/pkg/collector/corechecks/servicediscovery/impl_linux.go index a8c737762c249..30f4230425349 100644 --- a/pkg/collector/corechecks/servicediscovery/impl_linux.go +++ b/pkg/collector/corechecks/servicediscovery/impl_linux.go @@ -14,7 +14,6 @@ import ( "github.com/DataDog/datadog-agent/pkg/collector/corechecks/servicediscovery/servicetype" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" processnet "github.com/DataDog/datadog-agent/pkg/process/net" - proccontainers "github.com/DataDog/datadog-agent/pkg/process/util/containers" "github.com/DataDog/datadog-agent/pkg/util/log" ) @@ -28,20 +27,18 @@ type linuxImpl struct { getSysProbeClient processnet.SysProbeUtilGetter time timer - ignoreCfg map[string]bool - containerProvider proccontainers.ContainerProvider + ignoreCfg map[string]bool ignoreProcs map[int]bool aliveServices map[int]*serviceInfo potentialServices map[int]*serviceInfo } -func newLinuxImpl(ignoreCfg map[string]bool, containerProvider proccontainers.ContainerProvider) (osImpl, error) { +func newLinuxImpl(ignoreCfg map[string]bool) (osImpl, error) { return &linuxImpl{ getSysProbeClient: processnet.GetRemoteSystemProbeUtil, time: realTime{}, ignoreCfg: ignoreCfg, - containerProvider: containerProvider, ignoreProcs: make(map[int]bool), aliveServices: make(map[int]*serviceInfo), potentialServices: make(map[int]*serviceInfo), @@ -134,13 +131,6 @@ func (li *linuxImpl) handlePotentialServices(events *serviceEvents, now time.Tim return } - // Get container IDs to enrich the service info with it. The SD check is - // supposed to run once every minute, so we use this duration for cache - // validity. - // TODO: use/find a global constant for this delay, to keep in sync with - // the check delay if it were to change. - containers := li.containerProvider.GetPidToCid(1 * time.Minute) - // potentialServices contains processes that we scanned in the previous // iteration and had open ports. We check if they are still alive in this // iteration, and if so, we send a start-service telemetry event. @@ -150,11 +140,6 @@ func (li *linuxImpl) handlePotentialServices(events *serviceEvents, now time.Tim svc.service.RSS = service.RSS svc.service.CPUCores = service.CPUCores - if id, ok := containers[pid]; ok { - svc.service.ContainerID = id - log.Debugf("[pid: %d] add containerID to process: %s", pid, id) - } - li.aliveServices[pid] = svc events.start = append(events.start, *svc) } diff --git a/pkg/collector/corechecks/servicediscovery/impl_linux_test.go b/pkg/collector/corechecks/servicediscovery/impl_linux_test.go index 762f5dcb264ee..07c7810d7230f 100644 --- a/pkg/collector/corechecks/servicediscovery/impl_linux_test.go +++ b/pkg/collector/corechecks/servicediscovery/impl_linux_test.go @@ -32,6 +32,10 @@ type testProc struct { cwd string } +const ( + dummyContainerID = "abcd" +) + var ( bootTimeMilli = uint64(time.Date(2000, 01, 01, 0, 0, 0, 0, time.UTC).UnixMilli()) procLaunchedMilli = bootTimeMilli + uint64((12 * time.Hour).Milliseconds()) @@ -79,6 +83,7 @@ var ( CPUCores: 1.5, CommandLine: []string{"test-service-1"}, StartTimeMilli: procLaunchedMilli, + ContainerID: dummyContainerID, } portTCP8080UpdatedRSS = model.Service{ PID: procTestService1.pid, @@ -91,6 +96,7 @@ var ( CPUCores: 1.5, CommandLine: []string{"test-service-1"}, StartTimeMilli: procLaunchedMilli, + ContainerID: dummyContainerID, } portTCP8080DifferentPID = model.Service{ PID: procTestService1DifferentPID.pid, @@ -102,6 +108,7 @@ var ( APMInstrumentation: string(apm.Injected), CommandLine: []string{"test-service-1"}, StartTimeMilli: procLaunchedMilli, + ContainerID: dummyContainerID, } portTCP8081 = model.Service{ PID: procIgnoreService1.pid, @@ -109,6 +116,7 @@ var ( GeneratedName: "ignore-1", Ports: []uint16{8081}, StartTimeMilli: procLaunchedMilli, + ContainerID: dummyContainerID, } portTCP5000 = model.Service{ PID: procPythonService.pid, @@ -118,6 +126,7 @@ var ( Ports: []uint16{5000}, CommandLine: pythonCommandLine, StartTimeMilli: procLaunchedMilli, + ContainerID: dummyContainerID, } portTCP5432 = model.Service{ PID: procTestService1Repeat.pid, @@ -126,6 +135,7 @@ var ( Ports: []uint16{5432}, CommandLine: []string{"test-service-1"}, StartTimeMilli: procLaunchedMilli, + ContainerID: dummyContainerID, } ) @@ -172,16 +182,6 @@ func Test_linuxImpl(t *testing.T) { time time.Time } - collectTargetPIDs := func(checkRuns []*checkRun) []int { - targetPIDs := make([]int, 0) - for _, cr := range checkRuns { - for _, service := range cr.servicesResp.Services { - targetPIDs = append(targetPIDs, service.PID) - } - } - return targetPIDs - } - tests := []struct { name string checkRun []*checkRun @@ -567,9 +567,7 @@ func Test_linuxImpl(t *testing.T) { defer ctrl.Finish() // check and mocks setup - targetPIDs := collectTargetPIDs(tc.checkRun) - cpStub := newContainerProviderStub(targetPIDs) - check := newCheck(cpStub) + check := newCheck() mSender := mocksender.NewMockSender(check.ID()) mSender.SetupAcceptAll() diff --git a/pkg/collector/corechecks/servicediscovery/module/comm_test.go b/pkg/collector/corechecks/servicediscovery/module/comm_test.go index 5aab786449896..f7b49d8834486 100644 --- a/pkg/collector/corechecks/servicediscovery/module/comm_test.go +++ b/pkg/collector/corechecks/servicediscovery/module/comm_test.go @@ -30,7 +30,8 @@ const ( // TestIgnoreComm checks that the 'sshd' command is ignored and the 'node' command is not func TestIgnoreComm(t *testing.T) { serverDir := buildFakeServer(t) - url := setupDiscoveryModule(t) + url, mockContainerProvider := setupDiscoveryModule(t) + mockContainerProvider.EXPECT().GetContainers(1*time.Minute, nil).AnyTimes() ctx, cancel := context.WithCancel(context.Background()) t.Cleanup(func() { cancel() }) @@ -58,7 +59,7 @@ func TestIgnoreComm(t *testing.T) { // TestIgnoreCommsLengths checks that the map contains names no longer than 15 bytes. func TestIgnoreCommsLengths(t *testing.T) { - discovery := newDiscovery() + discovery := newDiscovery(nil) require.NotEmpty(t, discovery) require.Equal(t, len(discovery.config.ignoreComms), 10) @@ -114,7 +115,7 @@ func TestShouldIgnoreComm(t *testing.T) { serverBin := buildTestBin(t) serverDir := filepath.Dir(serverBin) - discovery := newDiscovery() + discovery := newDiscovery(nil) require.NotEmpty(t, discovery) require.NotEmpty(t, discovery.config.ignoreComms) require.Equal(t, len(discovery.config.ignoreComms), 10) @@ -208,7 +209,7 @@ func BenchmarkProcName(b *testing.B) { // BenchmarkShouldIgnoreComm benchmarks reading of command name from /proc//comm. func BenchmarkShouldIgnoreComm(b *testing.B) { - discovery := newDiscovery() + discovery := newDiscovery(nil) cmd := startProcessLongComm(b) b.ResetTimer() diff --git a/pkg/collector/corechecks/servicediscovery/module/config_test.go b/pkg/collector/corechecks/servicediscovery/module/config_test.go index fe58eb53b4219..eddf27b1c3253 100644 --- a/pkg/collector/corechecks/servicediscovery/module/config_test.go +++ b/pkg/collector/corechecks/servicediscovery/module/config_test.go @@ -57,7 +57,7 @@ func TestConfigIgnoredComms(t *testing.T) { commsStr := strings.Join(test.comms, " ") // intentionally multiple spaces for sensitivity testing mockSystemProbe.SetWithoutSource("discovery.ignored_command_names", commsStr) - discovery := newDiscovery() + discovery := newDiscovery(nil) require.NotEmpty(t, discovery) require.Equal(t, len(discovery.config.ignoreComms), len(test.comms)) @@ -74,7 +74,7 @@ func TestConfigIgnoredComms(t *testing.T) { t.Run("check default config length", func(t *testing.T) { mock.NewSystemProbe(t) - discovery := newDiscovery() + discovery := newDiscovery(nil) require.NotEmpty(t, discovery) assert.Equal(t, len(discovery.config.ignoreComms), 10) @@ -84,7 +84,7 @@ func TestConfigIgnoredComms(t *testing.T) { mock.NewSystemProbe(t) t.Setenv("DD_DISCOVERY_IGNORED_COMMAND_NAMES", "dummy1 dummy2") - discovery := newDiscovery() + discovery := newDiscovery(nil) require.NotEmpty(t, discovery) _, found := discovery.config.ignoreComms["dummy1"] @@ -120,7 +120,7 @@ func TestConfigIgnoredServices(t *testing.T) { servicesStr := strings.Join(test.services, " ") // intentionally multiple spaces for sensitivity testing mockSystemProbe.SetWithoutSource("discovery.ignored_services", servicesStr) - discovery := newDiscovery() + discovery := newDiscovery(nil) require.NotEmpty(t, discovery) require.Equal(t, len(discovery.config.ignoreServices), len(test.services)) @@ -134,7 +134,7 @@ func TestConfigIgnoredServices(t *testing.T) { t.Run("check default number of services", func(t *testing.T) { mock.NewSystemProbe(t) - discovery := newDiscovery() + discovery := newDiscovery(nil) require.NotEmpty(t, discovery) assert.Equal(t, len(discovery.config.ignoreServices), 6) @@ -144,7 +144,7 @@ func TestConfigIgnoredServices(t *testing.T) { mock.NewSystemProbe(t) t.Setenv("DD_DISCOVERY_IGNORED_SERVICES", "service1 service2") - discovery := newDiscovery() + discovery := newDiscovery(nil) require.NotEmpty(t, discovery) _, found := discovery.config.ignoreServices["service1"] diff --git a/pkg/collector/corechecks/servicediscovery/module/ignore_proc_test.go b/pkg/collector/corechecks/servicediscovery/module/ignore_proc_test.go index b33486cfa1b90..90d0dc9d8dcb3 100644 --- a/pkg/collector/corechecks/servicediscovery/module/ignore_proc_test.go +++ b/pkg/collector/corechecks/servicediscovery/module/ignore_proc_test.go @@ -66,7 +66,7 @@ func TestShouldIgnorePid(t *testing.T) { _ = cmd.Process.Kill() }) - discovery := newDiscovery() + discovery := newDiscovery(nil) require.NotEmpty(t, discovery) proc, err := customNewProcess(int32(cmd.Process.Pid)) diff --git a/pkg/collector/corechecks/servicediscovery/module/impl_linux.go b/pkg/collector/corechecks/servicediscovery/module/impl_linux.go index 302bd089499e2..70cee8a18beee 100644 --- a/pkg/collector/corechecks/servicediscovery/module/impl_linux.go +++ b/pkg/collector/corechecks/servicediscovery/module/impl_linux.go @@ -33,6 +33,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/languagedetection/privileged" "github.com/DataDog/datadog-agent/pkg/network" "github.com/DataDog/datadog-agent/pkg/process/procutil" + proccontainers "github.com/DataDog/datadog-agent/pkg/process/util/containers" "github.com/DataDog/datadog-agent/pkg/util/kernel" "github.com/DataDog/datadog-agent/pkg/util/log" ) @@ -81,9 +82,11 @@ type discovery struct { // lastCPUTimeUpdate is the last time lastGlobalCPUTime was updated. lastCPUTimeUpdate time.Time + + containerProvider proccontainers.ContainerProvider } -func newDiscovery() *discovery { +func newDiscovery(containerProvider proccontainers.ContainerProvider) *discovery { return &discovery{ config: newConfig(), mux: &sync.RWMutex{}, @@ -91,12 +94,14 @@ func newDiscovery() *discovery { ignorePids: make(map[int32]struct{}), privilegedDetector: privileged.NewLanguageDetector(), scrubber: procutil.NewDefaultDataScrubber(), + containerProvider: containerProvider, } } // NewDiscoveryModule creates a new discovery system probe module. -func NewDiscoveryModule(*sysconfigtypes.Config, module.FactoryDependencies) (module.Module, error) { - return newDiscovery(), nil +func NewDiscoveryModule(_ *sysconfigtypes.Config, deps module.FactoryDependencies) (module.Module, error) { + sharedContainerProvider := proccontainers.InitSharedContainerProvider(deps.WMeta, deps.Tagger) + return newDiscovery(sharedContainerProvider), nil } // GetStats returns the stats of the discovery module. @@ -623,6 +628,10 @@ func (s *discovery) getServices() (*[]model.Service, error) { var services []model.Service alivePids := make(map[int32]struct{}, len(pids)) + _, _, pidToCid, err := s.containerProvider.GetContainers(1*time.Minute, nil) + if err != nil { + log.Errorf("could not get containers: %s", err) + } for _, pid := range pids { alivePids[pid] = struct{}{} @@ -632,6 +641,10 @@ func (s *discovery) getServices() (*[]model.Service, error) { continue } + if id, ok := pidToCid[service.PID]; ok { + service.ContainerID = id + } + services = append(services, *service) } diff --git a/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go b/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go index c51f0d69a964b..6d5610c952a24 100644 --- a/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go +++ b/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go @@ -28,6 +28,7 @@ import ( "testing" "time" + "github.com/golang/mock/gomock" gorillamux "github.com/gorilla/mux" "github.com/prometheus/procfs" "github.com/shirou/gopsutil/v3/process" @@ -50,12 +51,13 @@ import ( "github.com/DataDog/datadog-agent/pkg/network/protocols/tls/nodejs" fileopener "github.com/DataDog/datadog-agent/pkg/network/usm/sharedlibraries/testutil" usmtestutil "github.com/DataDog/datadog-agent/pkg/network/usm/testutil" + proccontainersmocks "github.com/DataDog/datadog-agent/pkg/process/util/containers/mocks" "github.com/DataDog/datadog-agent/pkg/util/fxutil" "github.com/DataDog/datadog-agent/pkg/util/kernel" dockerutils "github.com/DataDog/datadog-agent/pkg/util/testutil/docker" ) -func setupDiscoveryModule(t *testing.T) string { +func setupDiscoveryModule(t *testing.T) (string, *proccontainersmocks.MockContainerProvider) { t.Helper() wmeta := fxutil.Test[workloadmeta.Component](t, @@ -64,6 +66,8 @@ func setupDiscoveryModule(t *testing.T) string { ) tagger := taggermock.SetupFakeTagger(t) + mockCtrl := gomock.NewController(t) + mockContainerProvider := proccontainersmocks.NewMockContainerProvider(mockCtrl) mux := gorillamux.NewRouter() cfg := &types.Config{ @@ -75,13 +79,10 @@ func setupDiscoveryModule(t *testing.T) string { m := module.Factory{ Name: config.DiscoveryModule, ConfigNamespaces: []string{"discovery"}, - Fn: func(cfg *types.Config, deps module.FactoryDependencies) (module.Module, error) { - module, err := NewDiscoveryModule(cfg, deps) - if err != nil { - return nil, err - } + Fn: func(*types.Config, module.FactoryDependencies) (module.Module, error) { + module := newDiscovery(mockContainerProvider) + module.config.cpuUsageUpdateDelay = time.Second - module.(*discovery).config.cpuUsageUpdateDelay = time.Second return module, nil }, NeedsEBPF: func() bool { @@ -93,7 +94,7 @@ func setupDiscoveryModule(t *testing.T) string { srv := httptest.NewServer(mux) t.Cleanup(srv.Close) - return srv.URL + return srv.URL, mockContainerProvider } func getServices(t *testing.T, url string) []model.Service { @@ -195,7 +196,8 @@ func startProcessWithFile(t *testing.T, f *os.File) *exec.Cmd { // Check that we get (only) listening processes for all expected protocols. func TestBasic(t *testing.T) { - url := setupDiscoveryModule(t) + url, mockContainerProvider := setupDiscoveryModule(t) + mockContainerProvider.EXPECT().GetContainers(1*time.Minute, nil).AnyTimes() var expectedPIDs []int var unexpectedPIDs []int @@ -248,7 +250,8 @@ func TestBasic(t *testing.T) { // Check that we get all listening ports for a process func TestPorts(t *testing.T) { - url := setupDiscoveryModule(t) + url, mockContainerProvider := setupDiscoveryModule(t) + mockContainerProvider.EXPECT().GetContainers(1*time.Minute, nil).AnyTimes() var expectedPorts []uint16 var unexpectedPorts []uint16 @@ -294,7 +297,8 @@ func TestPorts(t *testing.T) { } func TestPortsLimits(t *testing.T) { - url := setupDiscoveryModule(t) + url, mockContainerProvider := setupDiscoveryModule(t) + mockContainerProvider.EXPECT().GetContainers(1*time.Minute, nil).AnyTimes() var expectedPorts []int @@ -328,7 +332,8 @@ func TestPortsLimits(t *testing.T) { } func TestServiceName(t *testing.T) { - url := setupDiscoveryModule(t) + url, mockContainerProvider := setupDiscoveryModule(t) + mockContainerProvider.EXPECT().GetContainers(1*time.Minute, nil).AnyTimes() listener, err := net.Listen("tcp", "") require.NoError(t, err) @@ -362,11 +367,13 @@ func TestServiceName(t *testing.T) { assert.Equal(t, portMap[pid].DDService, portMap[pid].Name) assert.Equal(t, "sleep", portMap[pid].GeneratedName) assert.False(t, portMap[pid].DDServiceInjected) + assert.Equal(t, portMap[pid].ContainerID, "") }, 30*time.Second, 100*time.Millisecond) } func TestInjectedServiceName(t *testing.T) { - url := setupDiscoveryModule(t) + url, mockContainerProvider := setupDiscoveryModule(t) + mockContainerProvider.EXPECT().GetContainers(1*time.Minute, nil).AnyTimes() createEnvsMemfd(t, []string{ "OTHER_ENV=test", @@ -392,7 +399,8 @@ func TestInjectedServiceName(t *testing.T) { } func TestAPMInstrumentationInjected(t *testing.T) { - url := setupDiscoveryModule(t) + url, mockContainerProvider := setupDiscoveryModule(t) + mockContainerProvider.EXPECT().GetContainers(1*time.Minute, nil).AnyTimes() createEnvsMemfd(t, []string{ "DD_INJECTION_ENABLED=service_name,tracer", @@ -488,7 +496,8 @@ func testCaptureWrappedCommands(t *testing.T, script string, commandWrapper []st } t.Cleanup(func() { _ = proc.Kill() }) - url := setupDiscoveryModule(t) + url, mockContainerProvider := setupDiscoveryModule(t) + mockContainerProvider.EXPECT().GetContainers(1*time.Minute, nil).AnyTimes() pid := int(proc.Pid) require.EventuallyWithT(t, func(collect *assert.CollectT) { svcMap := getServicesMap(t, url) @@ -528,7 +537,8 @@ func TestAPMInstrumentationProvided(t *testing.T) { } serverDir := buildFakeServer(t) - url := setupDiscoveryModule(t) + url, mockContainerProvider := setupDiscoveryModule(t) + mockContainerProvider.EXPECT().GetContainers(1*time.Minute, nil).AnyTimes() for name, test := range testCases { t.Run(name, func(t *testing.T) { @@ -609,7 +619,8 @@ func assertCPU(t *testing.T, url string, pid int) { func TestCommandLineSanitization(t *testing.T) { serverDir := buildFakeServer(t) - url := setupDiscoveryModule(t) + url, mockContainerProvider := setupDiscoveryModule(t) + mockContainerProvider.EXPECT().GetContainers(1*time.Minute, nil).AnyTimes() ctx, cancel := context.WithCancel(context.Background()) t.Cleanup(func() { cancel() }) @@ -640,7 +651,8 @@ func TestNodeDocker(t *testing.T) { nodeJSPID, err := nodejs.GetNodeJSDockerPID() require.NoError(t, err) - url := setupDiscoveryModule(t) + url, mockContainerProvider := setupDiscoveryModule(t) + mockContainerProvider.EXPECT().GetContainers(1*time.Minute, nil).AnyTimes() pid := int(nodeJSPID) require.EventuallyWithT(t, func(collect *assert.CollectT) { @@ -697,7 +709,8 @@ func TestAPMInstrumentationProvidedWithMaps(t *testing.T) { cmd, err := fileopener.OpenFromProcess(t, fake, test.lib) require.NoError(t, err) - url := setupDiscoveryModule(t) + url, mockContainerProvider := setupDiscoveryModule(t) + mockContainerProvider.EXPECT().GetContainers(1*time.Minute, nil).AnyTimes() pid := cmd.Process.Pid require.EventuallyWithT(t, func(collect *assert.CollectT) { @@ -713,7 +726,8 @@ func TestAPMInstrumentationProvidedWithMaps(t *testing.T) { // Check that we can get listening processes in other namespaces. func TestNamespaces(t *testing.T) { - url := setupDiscoveryModule(t) + url, mockContainerProvider := setupDiscoveryModule(t) + mockContainerProvider.EXPECT().GetContainers(1*time.Minute, nil).AnyTimes() // Needed when changing namespaces runtime.LockOSThread() @@ -773,7 +787,7 @@ func TestNamespaces(t *testing.T) { // Check that we are able to find services inside Docker containers. func TestDocker(t *testing.T) { - url := setupDiscoveryModule(t) + url, mockContainerProvider := setupDiscoveryModule(t) dir, _ := testutil.CurDir() dockerCfg := dockerutils.NewComposeConfig("foo-server", @@ -798,6 +812,10 @@ func TestDocker(t *testing.T) { } if comm == "python-1111" { pid1111 = process.PID + mockContainerProvider.EXPECT().GetContainers(1*time.Minute, nil).Return(nil, nil, map[int]string{ + pid1111: "dummyCID", + }, nil) + break } } @@ -808,20 +826,17 @@ func TestDocker(t *testing.T) { require.Contains(t, portMap, pid1111) require.Contains(t, portMap[pid1111].Ports, uint16(1234)) + require.Contains(t, portMap[pid1111].ContainerID, "dummyCID") } // Check that the cache is cleaned when procceses die. func TestCache(t *testing.T) { - wmeta := fxutil.Test[workloadmeta.Component](t, - core.MockBundle(), - wmmock.MockModule(workloadmeta.NewParams()), - ) - deps := module.FactoryDependencies{ - WMeta: wmeta, - } - module, err := NewDiscoveryModule(nil, deps) - require.NoError(t, err) - discovery := module.(*discovery) + var err error + + mockCtrl := gomock.NewController(t) + mockContainerProvider := proccontainersmocks.NewMockContainerProvider(mockCtrl) + mockContainerProvider.EXPECT().GetContainers(1*time.Minute, nil).MinTimes(1) + discovery := newDiscovery(mockContainerProvider) ctx, cancel := context.WithCancel(context.Background()) t.Cleanup(func() { cancel() }) diff --git a/pkg/collector/corechecks/servicediscovery/servicediscovery.go b/pkg/collector/corechecks/servicediscovery/servicediscovery.go index 5400e33272bd2..6f96ccc775bb5 100644 --- a/pkg/collector/corechecks/servicediscovery/servicediscovery.go +++ b/pkg/collector/corechecks/servicediscovery/servicediscovery.go @@ -20,7 +20,6 @@ import ( "github.com/DataDog/datadog-agent/pkg/collector/corechecks" "github.com/DataDog/datadog-agent/pkg/collector/corechecks/servicediscovery/model" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" - proccontainers "github.com/DataDog/datadog-agent/pkg/process/util/containers" "github.com/DataDog/datadog-agent/pkg/util/log" "github.com/DataDog/datadog-agent/pkg/util/optional" ) @@ -59,7 +58,7 @@ type osImpl interface { DiscoverServices() (*discoveredServices, error) } -var newOSImpl func(ignoreCfg map[string]bool, containerProvider proccontainers.ContainerProvider) (osImpl, error) +var newOSImpl func(ignoreCfg map[string]bool) (osImpl, error) type config struct { IgnoreProcesses []string `yaml:"ignore_processes"` @@ -80,7 +79,6 @@ type Check struct { os osImpl sender *telemetrySender sentRepeatedEventPIDs map[int]bool - containerProvider proccontainers.ContainerProvider } // Factory creates a new check factory @@ -91,24 +89,17 @@ func Factory() optional.Option[func() check.Check] { return optional.NewNoneOption[func() check.Check]() } - sharedContainerProvider, err := proccontainers.GetSharedContainerProvider() - - if err != nil { - return optional.NewNoneOption[func() check.Check]() - } - return optional.NewOption(func() check.Check { - return newCheck(sharedContainerProvider) + return newCheck() }) } // TODO: add metastore param -func newCheck(containerProvider proccontainers.ContainerProvider) *Check { +func newCheck() *Check { return &Check{ CheckBase: corechecks.NewCheckBase(CheckName), cfg: &config{}, sentRepeatedEventPIDs: make(map[int]bool), - containerProvider: containerProvider, } } @@ -135,7 +126,7 @@ func (c *Check) Configure(senderManager sender.SenderManager, _ uint64, instance } c.sender = newTelemetrySender(s) - c.os, err = newOSImpl(ignoreCfg, c.containerProvider) + c.os, err = newOSImpl(ignoreCfg) if err != nil { return err } From 4451a3f18cf1d357e679478331b418212f0b33ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9lian=20Raimbault?= <161456554+CelianR@users.noreply.github.com> Date: Wed, 27 Nov 2024 06:00:26 -0500 Subject: [PATCH 083/439] [RFC] [ACIX-453] Implement Shared Agent 6 / 7 Tasks (#31176) Co-authored-by: sabrina lu Co-authored-by: pducolin <45568537+pducolin@users.noreply.github.com> --- tasks/__init__.py | 2 + tasks/git.py | 10 +- tasks/github_tasks.py | 14 ++- tasks/gotest.py | 11 +- .../libs/ciproviders/github_actions_tools.py | 6 +- tasks/libs/ciproviders/github_api.py | 3 +- tasks/libs/ciproviders/gitlab_api.py | 5 +- tasks/libs/common/constants.py | 1 - tasks/libs/common/git.py | 28 ++++- tasks/libs/common/gomodules.py | 5 +- tasks/libs/common/utils.py | 17 ++- tasks/libs/common/worktree.py | 109 ++++++++++++++++++ tasks/libs/notify/pipeline_status.py | 6 +- tasks/libs/pipeline/tools.py | 6 +- tasks/libs/releasing/json.py | 16 ++- tasks/libs/releasing/notes.py | 5 +- tasks/linter.py | 6 +- tasks/modules.py | 5 +- tasks/pipeline.py | 26 +++-- tasks/release.py | 26 +++-- tasks/setup.py | 5 +- .../unit_tests/libs/common/worktree_tests.py | 97 ++++++++++++++++ tasks/worktree.py | 88 ++++++++++++++ 23 files changed, 431 insertions(+), 66 deletions(-) create mode 100644 tasks/libs/common/worktree.py create mode 100644 tasks/unit_tests/libs/common/worktree_tests.py create mode 100644 tasks/worktree.py diff --git a/tasks/__init__.py b/tasks/__init__.py index 12753e9a67e68..93ce84f1c37b2 100644 --- a/tasks/__init__.py +++ b/tasks/__init__.py @@ -62,6 +62,7 @@ trace_agent, vim, vscode, + worktree, ) from tasks.build_tags import audit_tag_impact, print_default_build_tags from tasks.components import lint_components, lint_fxutil_oneshot_test @@ -210,6 +211,7 @@ ns.add_collection(collector) ns.add_collection(invoke_unit_tests) ns.add_collection(debug) +ns.add_collection(worktree) ns.configure( { "run": { diff --git a/tasks/git.py b/tasks/git.py index 658c6615cd621..8125035b04320 100644 --- a/tasks/git.py +++ b/tasks/git.py @@ -4,15 +4,19 @@ from invoke.exceptions import Exit from tasks.libs.common.color import color_message -from tasks.libs.common.git import get_current_branch +from tasks.libs.common.git import get_current_branch, get_default_branch @task def check_protected_branch(ctx): local_branch = get_current_branch(ctx) - if local_branch == 'main': - print(color_message("You're about to commit or push to the main, are you sure this is what you want?", "red")) + if local_branch == get_default_branch(): + print( + color_message( + f"You're about to commit or push to {get_default_branch()}, are you sure this is what you want?", "red" + ) + ) raise Exit(code=1) if re.fullmatch(r'^[0-9]+\.[0-9]+\.x$', local_branch): diff --git a/tasks/github_tasks.py b/tasks/github_tasks.py index b5723f232cd93..abe46fd6ff366 100644 --- a/tasks/github_tasks.py +++ b/tasks/github_tasks.py @@ -19,8 +19,9 @@ trigger_macos_workflow, ) from tasks.libs.common.color import color_message -from tasks.libs.common.constants import DEFAULT_BRANCH, DEFAULT_INTEGRATIONS_CORE_BRANCH +from tasks.libs.common.constants import DEFAULT_INTEGRATIONS_CORE_BRANCH from tasks.libs.common.datadog_api import create_gauge, send_event, send_metrics +from tasks.libs.common.git import get_default_branch from tasks.libs.common.junit_upload_core import repack_macos_junit_tar from tasks.libs.common.utils import get_git_pretty_ref from tasks.libs.owners.linter import codeowner_has_orphans, directory_has_packages_without_owner @@ -36,7 +37,7 @@ def concurrency_key(): current_ref = get_git_pretty_ref() # We want workflows to run to completion on the default branch and release branches - if re.search(rf'^({DEFAULT_BRANCH}|\d+\.\d+\.x)$', current_ref): + if re.search(rf'^({get_default_branch()}|\d+\.\d+\.x)$', current_ref): return None return current_ref @@ -68,7 +69,7 @@ def _trigger_macos_workflow(release, destination=None, retry_download=0, retry_i def trigger_macos( _, workflow_type="build", - datadog_agent_ref=DEFAULT_BRANCH, + datadog_agent_ref=None, release_version="nightly-a7", major_version="7", destination=".", @@ -79,6 +80,13 @@ def trigger_macos( test_washer=False, integrations_core_ref=DEFAULT_INTEGRATIONS_CORE_BRANCH, ): + """ + Args: + datadog_agent_ref: If None, will be the default branch. + """ + + datadog_agent_ref = datadog_agent_ref or get_default_branch() + if workflow_type == "build": conclusion = _trigger_macos_workflow( # Provide the release version to be able to fetch the associated diff --git a/tasks/gotest.py b/tasks/gotest.py index ceaee2f020bc2..3ef5ebc9de905 100644 --- a/tasks/gotest.py +++ b/tasks/gotest.py @@ -514,12 +514,13 @@ def get_modified_packages(ctx, build_tags=None, lint=False) -> list[GoModule]: modules_to_test[best_module_path] = GoModule(best_module_path, test_targets=[relative_target]) # Clean up duplicated paths to reduce Go test cmd length + default_modules = get_default_modules() for module in modules_to_test: modules_to_test[module].test_targets = clean_nested_paths(modules_to_test[module].test_targets) if ( len(modules_to_test[module].test_targets) >= WINDOWS_MAX_PACKAGES_NUMBER ): # With more packages we can reach the limit of the command line length on Windows - modules_to_test[module].test_targets = get_default_modules()[module].test_targets + modules_to_test[module].test_targets = default_modules[module].test_targets print("Running tests for the following modules:") for module in modules_to_test: @@ -752,16 +753,17 @@ def format_packages(ctx: Context, impacted_packages: set[str], build_tags: list[ packages = [f'{package.replace("github.com/DataDog/datadog-agent/", "./")}' for package in impacted_packages] modules_to_test = {} + default_modules = get_default_modules() for package in packages: module_path = get_go_module(package) # Check if the module is in the target list of the modules we want to test - if module_path not in get_default_modules() or not get_default_modules()[module_path].should_test(): + if module_path not in default_modules or not default_modules[module_path].should_test(): continue # Check if the package is in the target list of the module we want to test targeted = False - for target in get_default_modules()[module_path].test_targets: + for target in default_modules[module_path].test_targets: if normpath(os.path.join(module_path, target)) in package: targeted = True break @@ -784,12 +786,13 @@ def format_packages(ctx: Context, impacted_packages: set[str], build_tags: list[ modules_to_test[module_path] = GoModule(module_path, test_targets=[relative_target]) # Clean up duplicated paths to reduce Go test cmd length + default_modules = get_default_modules() for module in modules_to_test: modules_to_test[module].test_targets = clean_nested_paths(modules_to_test[module].test_targets) if ( len(modules_to_test[module].test_targets) >= WINDOWS_MAX_PACKAGES_NUMBER ): # With more packages we can reach the limit of the command line length on Windows - modules_to_test[module].test_targets = get_default_modules()[module].test_targets + modules_to_test[module].test_targets = default_modules[module].test_targets module_to_remove = [] # Clean up to avoid running tests on package with no Go files matching build tags diff --git a/tasks/libs/ciproviders/github_actions_tools.py b/tasks/libs/ciproviders/github_actions_tools.py index 8bef945f46460..9399302271b5d 100644 --- a/tasks/libs/ciproviders/github_actions_tools.py +++ b/tasks/libs/ciproviders/github_actions_tools.py @@ -11,13 +11,13 @@ from tasks.libs.ciproviders.github_api import GithubAPI from tasks.libs.common.color import color_message -from tasks.libs.common.utils import DEFAULT_BRANCH +from tasks.libs.common.git import get_default_branch def trigger_macos_workflow( workflow_name="macos.yaml", github_action_ref="master", - datadog_agent_ref=DEFAULT_BRANCH, + datadog_agent_ref=None, release_version=None, major_version=None, gitlab_pipeline_id=None, @@ -31,6 +31,8 @@ def trigger_macos_workflow( """ Trigger a workflow to build a MacOS Agent. """ + + datadog_agent_ref = datadog_agent_ref or get_default_branch() inputs = {} if datadog_agent_ref is not None: diff --git a/tasks/libs/ciproviders/github_api.py b/tasks/libs/ciproviders/github_api.py index 2d61567f5016b..f8ed33e3a3252 100644 --- a/tasks/libs/ciproviders/github_api.py +++ b/tasks/libs/ciproviders/github_api.py @@ -13,6 +13,7 @@ from tasks.libs.common.color import color_message from tasks.libs.common.constants import GITHUB_REPO_NAME +from tasks.libs.common.git import get_default_branch try: import semver @@ -494,7 +495,7 @@ def create_release_pr(title, base_branch, target_branch, version, changelog_pr=F ] if changelog_pr: - labels.append("backport/main") + labels.append(f"backport/{get_default_branch()}") updated_pr = github.update_pr( pull_number=pr.number, diff --git a/tasks/libs/ciproviders/gitlab_api.py b/tasks/libs/ciproviders/gitlab_api.py index 212e2ce38f142..0cf4c429b59b0 100644 --- a/tasks/libs/ciproviders/gitlab_api.py +++ b/tasks/libs/ciproviders/gitlab_api.py @@ -23,8 +23,7 @@ from invoke.exceptions import Exit from tasks.libs.common.color import Color, color_message -from tasks.libs.common.constants import DEFAULT_BRANCH -from tasks.libs.common.git import get_common_ancestor, get_current_branch +from tasks.libs.common.git import get_common_ancestor, get_current_branch, get_default_branch from tasks.libs.common.utils import retry_function BASE_URL = "https://gitlab.ddbuild.io" @@ -1214,7 +1213,7 @@ def compute_gitlab_ci_config_diff(ctx, before: str, after: str): after_name = after or "local files" # The before commit is the LCA commit between before and after - before = before or DEFAULT_BRANCH + before = before or get_default_branch() before = get_common_ancestor(ctx, before, after or "HEAD") print(f'Getting after changes config ({color_message(after_name, Color.BOLD)})') diff --git a/tasks/libs/common/constants.py b/tasks/libs/common/constants.py index ff9dc7a285a42..0b100a3432263 100644 --- a/tasks/libs/common/constants.py +++ b/tasks/libs/common/constants.py @@ -1,4 +1,3 @@ -DEFAULT_BRANCH = "main" DEFAULT_INTEGRATIONS_CORE_BRANCH = "master" GITHUB_ORG = "DataDog" REPO_NAME = "datadog-agent" diff --git a/tasks/libs/common/git.py b/tasks/libs/common/git.py index 8c7b9d9e2f080..6606a4ce522c2 100644 --- a/tasks/libs/common/git.py +++ b/tasks/libs/common/git.py @@ -5,10 +5,10 @@ from contextlib import contextmanager from typing import TYPE_CHECKING +from invoke import Context from invoke.exceptions import Exit from tasks.libs.common.color import Color, color_message -from tasks.libs.common.constants import DEFAULT_BRANCH from tasks.libs.common.user_interactions import yes_no_question if TYPE_CHECKING: @@ -90,7 +90,9 @@ def get_file_modifications( return modifications -def get_modified_files(ctx, base_branch="main") -> list[str]: +def get_modified_files(ctx, base_branch=None) -> list[str]: + base_branch = base_branch or get_default_branch() + return get_file_modifications( ctx, base_branch=base_branch, added=True, modified=True, only_names=True, no_renames=True ) @@ -100,7 +102,23 @@ def get_current_branch(ctx) -> str: return ctx.run("git rev-parse --abbrev-ref HEAD", hide=True).stdout.strip() -def get_common_ancestor(ctx, branch, base=DEFAULT_BRANCH) -> str: +def is_agent6(ctx) -> bool: + return get_current_branch(ctx).startswith("6.") + + +def get_default_branch(): + """Returns the default git branch given the current context (agent 6 / 7).""" + + # We create a context to avoid passing context in each function + # This context is used to get the current branch so there is no side effect + ctx = Context() + + return '6.53.x' if is_agent6(ctx) else 'main' + + +def get_common_ancestor(ctx, branch, base=None) -> str: + base = base or get_default_branch() + return ctx.run(f"git merge-base {branch} {base}", hide=True).stdout.strip() @@ -132,7 +150,7 @@ def get_main_parent_commit(ctx) -> str: """ Get the commit sha your current branch originated from """ - return ctx.run("git merge-base HEAD origin/main", hide=True).stdout.strip() + return ctx.run(f"git merge-base HEAD origin/{get_default_branch()}", hide=True).stdout.strip() def check_base_branch(branch, release_version): @@ -140,7 +158,7 @@ def check_base_branch(branch, release_version): Checks if the given branch is either the default branch or the release branch associated with the given release version. """ - return branch == DEFAULT_BRANCH or branch == release_version.branch() + return branch == get_default_branch() or branch == release_version.branch() def try_git_command(ctx, git_command): diff --git a/tasks/libs/common/gomodules.py b/tasks/libs/common/gomodules.py index ffbdd9f03d10d..357ab03dc515e 100644 --- a/tasks/libs/common/gomodules.py +++ b/tasks/libs/common/gomodules.py @@ -7,13 +7,13 @@ import sys from collections.abc import Callable from dataclasses import dataclass -from functools import lru_cache from pathlib import Path from typing import ClassVar import yaml import tasks +from tasks.libs.common.utils import agent_working_directory class ConfigDumper(yaml.SafeDumper): @@ -305,7 +305,6 @@ def dependency_path(self, agent_version): AGENT_MODULE_PATH_PREFIX = "github.com/DataDog/datadog-agent/" -@lru_cache def get_default_modules(base_dir: Path | None = None) -> dict[str, GoModule]: """Load the default modules from the modules.yml file. @@ -313,6 +312,8 @@ def get_default_modules(base_dir: Path | None = None) -> dict[str, GoModule]: base_dir: Root directory of the agent repository ('.' by default). """ + base_dir = base_dir or agent_working_directory() + return Configuration.from_file(base_dir).modules diff --git a/tasks/libs/common/utils.py b/tasks/libs/common/utils.py index 10882ddfeed7d..44758ae35b543 100644 --- a/tasks/libs/common/utils.py +++ b/tasks/libs/common/utils.py @@ -24,8 +24,8 @@ from invoke.exceptions import Exit from tasks.libs.common.color import Color, color_message -from tasks.libs.common.constants import ALLOWED_REPO_ALL_BRANCHES, DEFAULT_BRANCH, REPO_PATH -from tasks.libs.common.git import get_commit_sha +from tasks.libs.common.constants import ALLOWED_REPO_ALL_BRANCHES, REPO_PATH +from tasks.libs.common.git import get_commit_sha, get_default_branch from tasks.libs.owners.parsing import search_owners from tasks.libs.releasing.version import get_version from tasks.libs.types.arch import Arch @@ -373,6 +373,7 @@ def get_version_ldflags(ctx, major_version='7', install_path=None): Compute the version from the git tags, and set the appropriate compiler flags """ + payload_v = get_payload_version() commit = get_commit_sha(ctx, short=True) @@ -494,8 +495,8 @@ def environ(env): def is_pr_context(branch, pr_id, test_name): - if branch == DEFAULT_BRANCH: - print(f"Running on {DEFAULT_BRANCH}, skipping check for {test_name}.") + if branch == get_default_branch(): + print(f"Running on {get_default_branch()}, skipping check for {test_name}.") return False if not pr_id: print(f"PR not found, skipping check for {test_name}.") @@ -749,3 +750,11 @@ def get_metric_origin(origin_product, origin_sub_product, origin_product_detail, if origin_field: return {"origin": metric_origin} return metric_origin + + +def agent_working_directory(): + """Returns the working directory for the current context (agent 6 / 7).""" + + from tasks.libs.common.worktree import LOCAL_DIRECTORY, WORKTREE_DIRECTORY, is_worktree + + return WORKTREE_DIRECTORY if is_worktree() else LOCAL_DIRECTORY diff --git a/tasks/libs/common/worktree.py b/tasks/libs/common/worktree.py new file mode 100644 index 0000000000000..7e7da54af73df --- /dev/null +++ b/tasks/libs/common/worktree.py @@ -0,0 +1,109 @@ +"""Worktree utilities, used to execute tasks from this local repository (main) to a worktree with a different HEAD (e.g. 6.53.x). + +Common environment variables that can be used: +- WORKTREE_NO_PULL: If set to any value, the worktree will not be pulled before running the command. +""" + +import os +from contextlib import contextmanager +from pathlib import Path + +from invoke.exceptions import Exit + +from tasks.libs.common.color import Color, color_message +from tasks.libs.common.git import get_current_branch + +WORKTREE_DIRECTORY = Path.cwd().parent / "datadog-agent-worktree" +LOCAL_DIRECTORY = Path.cwd().resolve() + + +def init_env(ctx, branch: str | None = None): + """Will prepare the environment for commands applying to a worktree. + + To be used before each worktree section. + Will: + 1. Add the agent worktree if not present. + 2. Fetch the latest changes from the agent worktree. + """ + + if not WORKTREE_DIRECTORY.is_dir(): + if not ctx.run(f"git worktree add '{WORKTREE_DIRECTORY}' origin/{branch or 'main'}", warn=True): + raise Exit( + f'{color_message("Error", Color.RED)}: Cannot initialize worktree environment. You might want to reset the worktree directory with `inv worktree.remove`', + code=1, + ) + + if branch: + worktree_branch = ctx.run( + f"git -C '{WORKTREE_DIRECTORY}' rev-parse --abbrev-ref HEAD", hide=True + ).stdout.strip() + if worktree_branch != branch: + ctx.run(f"git -C '{WORKTREE_DIRECTORY}' checkout '{branch}'", hide=True) + + if not os.environ.get("AGENT_WORKTREE_NO_PULL"): + ctx.run(f"git -C '{WORKTREE_DIRECTORY}' pull", hide=True) + + +def remove_env(ctx): + """Will remove the environment for commands applying to a worktree.""" + + ctx.run(f"git worktree remove -f '{WORKTREE_DIRECTORY}'", warn=True) + + +def is_worktree(): + """Will return True if the current environment is a worktree environment.""" + + return Path.cwd() == WORKTREE_DIRECTORY + + +def enter_env(ctx, branch: str | None, skip_checkout=False): + """Enters the worktree environment.""" + + if not branch: + assert skip_checkout, 'skip_checkout must be set to True if branch is None' + + if not skip_checkout: + init_env(ctx, branch) + else: + assert WORKTREE_DIRECTORY.is_dir(), "Worktree directory is not present and skip_checkout is set to True" + + os.chdir(WORKTREE_DIRECTORY) + if skip_checkout and branch: + current_branch = get_current_branch(ctx) + assert ( + current_branch == branch + ), f"skip_checkout is True but the current branch ({current_branch}) is not {branch}. You should check out the branch before using this command, this can be safely done with `inv worktree.checkout {branch}`." + + +def exit_env(): + """Exits the worktree environment.""" + + os.chdir(LOCAL_DIRECTORY) + + +@contextmanager +def agent_context(ctx, branch: str | None, skip_checkout=False): + """Applies code to the worktree environment if the branch is not None. + + Args: + branch: The branch to switch to. If None, will enter the worktree environment without switching branch (ensures that skip_checkout is True). + skip_checkout: If True, the branch will not be checked out (no pull will be performed too). + + Usage: + > with agent_context(ctx, branch): + > ctx.run("head CHANGELOG.rst") # Displays the changelog of the target branch + """ + + # Do not stack two environments + if is_worktree(): + yield + return + + try: + # Enter + enter_env(ctx, branch, skip_checkout=skip_checkout) + + yield + finally: + # Exit + exit_env() diff --git a/tasks/libs/notify/pipeline_status.py b/tasks/libs/notify/pipeline_status.py index 25915ccc36d82..569973decfb0b 100644 --- a/tasks/libs/notify/pipeline_status.py +++ b/tasks/libs/notify/pipeline_status.py @@ -2,7 +2,7 @@ import re from tasks.libs.ciproviders.gitlab_api import get_commit, get_pipeline -from tasks.libs.common.constants import DEFAULT_BRANCH +from tasks.libs.common.git import get_default_branch from tasks.libs.notify.utils import DEPLOY_PIPELINES_CHANNEL, PIPELINES_CHANNEL, PROJECT_NAME from tasks.libs.pipeline.data import get_failed_jobs from tasks.libs.pipeline.notifications import ( @@ -40,7 +40,7 @@ def send_message(ctx, notification_type, dry_run): # For deploy pipelines not on the main branch, send notifications in a # dedicated channel. slack_channel = PIPELINES_CHANNEL - if notification_type == "deploy" and pipeline.ref != DEFAULT_BRANCH: + if notification_type == "deploy" and pipeline.ref != get_default_branch(): slack_channel = DEPLOY_PIPELINES_CHANNEL header = "" @@ -64,7 +64,7 @@ def send_message(ctx, notification_type, dry_run): else: send_slack_message(slack_channel, str(message)) - if should_send_message_to_author(pipeline.ref, DEFAULT_BRANCH): + if should_send_message_to_author(pipeline.ref, get_default_branch()): author_email = commit.author_email if dry_run: print(f"Would send to {author_email}:\n{str(message)}") diff --git a/tasks/libs/pipeline/tools.py b/tasks/libs/pipeline/tools.py index fc38ce67e883a..7f9d08e8eca6e 100644 --- a/tasks/libs/pipeline/tools.py +++ b/tasks/libs/pipeline/tools.py @@ -13,8 +13,8 @@ from tasks.libs.ciproviders.gitlab_api import refresh_pipeline from tasks.libs.common.color import Color, color_message +from tasks.libs.common.git import get_default_branch from tasks.libs.common.user_interactions import yes_no_question -from tasks.libs.common.utils import DEFAULT_BRANCH PIPELINE_FINISH_TIMEOUT_SEC = 3600 * 5 @@ -115,7 +115,7 @@ def gracefully_cancel_pipeline(repo: Project, pipeline: ProjectPipeline, force_c def trigger_agent_pipeline( repo: Project, - ref=DEFAULT_BRANCH, + ref=None, release_version_6="nightly", release_version_7="nightly-a7", branch="nightly", @@ -134,6 +134,8 @@ def trigger_agent_pipeline( - run a pipeline with all end-to-end tests, - run a deploy pipeline (includes all builds & kitchen tests + uploads artifacts to staging repositories); """ + + ref = ref or get_default_branch() args = {} if deploy: diff --git a/tasks/libs/releasing/json.py b/tasks/libs/releasing/json.py index e0ea089e43fa1..85270b23ce70e 100644 --- a/tasks/libs/releasing/json.py +++ b/tasks/libs/releasing/json.py @@ -7,6 +7,8 @@ from invoke.exceptions import Exit from tasks.libs.common.constants import TAG_FOUND_TEMPLATE +from tasks.libs.common.git import get_default_branch +from tasks.libs.common.worktree import is_worktree from tasks.libs.releasing.documentation import _stringify_config, nightly_entry_for, release_entry_for from tasks.libs.releasing.version import ( VERSION_RE, @@ -41,6 +43,12 @@ "datadog-agent-macos-build": "master", "datadog-agent": "main", } +DEFAULT_BRANCHES_AGENT6 = { + "omnibus-software": "6.53.x", + "omnibus-ruby": "6.53.x", + "datadog-agent-macos-build": "6.53.x", + "datadog-agent": "6.53.x", +} def load_release_json(): @@ -335,8 +343,12 @@ def generate_repo_data(warning_mode, next_version, release_branch): data = {} for repo in repos: branch = release_branch - if branch == "main": - branch = next_version.branch() if repo == "integrations-core" else DEFAULT_BRANCHES.get(repo, "main") + if branch == get_default_branch(): + branch = ( + next_version.branch() + if repo == "integrations-core" + else (DEFAULT_BRANCHES_AGENT6 if is_worktree() else DEFAULT_BRANCHES).get(repo, get_default_branch()) + ) data[repo] = { 'branch': branch, 'previous_tag': previous_tags.get(repo, ""), diff --git a/tasks/libs/releasing/notes.py b/tasks/libs/releasing/notes.py index 10edb3dab145d..d831f372b6197 100644 --- a/tasks/libs/releasing/notes.py +++ b/tasks/libs/releasing/notes.py @@ -2,7 +2,8 @@ from invoke import Failure -from tasks.libs.common.constants import DEFAULT_BRANCH, GITHUB_REPO_NAME +from tasks.libs.common.constants import GITHUB_REPO_NAME +from tasks.libs.common.git import get_default_branch from tasks.libs.releasing.version import current_version @@ -42,7 +43,7 @@ def _add_dca_prelude(ctx, agent7_version, agent6_version=""): f"""prelude: | Released on: {date.today()} - Pinned to datadog-agent v{agent7_version}: `CHANGELOG `_.""" + Pinned to datadog-agent v{agent7_version}: `CHANGELOG `_.""" ) ctx.run(f"git add {new_releasenote}") diff --git a/tasks/linter.py b/tasks/linter.py index 082c3065cc666..f549ae2005075 100644 --- a/tasks/linter.py +++ b/tasks/linter.py @@ -32,8 +32,8 @@ ) from tasks.libs.common.check_tools_version import check_tools_version from tasks.libs.common.color import Color, color_message -from tasks.libs.common.constants import DEFAULT_BRANCH, GITHUB_REPO_NAME -from tasks.libs.common.git import get_file_modifications, get_staged_files +from tasks.libs.common.constants import GITHUB_REPO_NAME +from tasks.libs.common.git import get_default_branch, get_file_modifications, get_staged_files from tasks.libs.common.utils import gitlab_section, is_pr_context, running_in_ci from tasks.libs.owners.parsing import read_owners from tasks.libs.types.copyright import CopyrightLinter, LintFailure @@ -52,7 +52,7 @@ def python(ctx): print( f"""Remember to set up pre-commit to lint your files before committing: - https://github.com/DataDog/datadog-agent/blob/{DEFAULT_BRANCH}/docs/dev/agent_dev_env.md#pre-commit-hooks""" + https://github.com/DataDog/datadog-agent/blob/{get_default_branch()}/docs/dev/agent_dev_env.md#pre-commit-hooks""" ) if running_in_ci(): diff --git a/tasks/modules.py b/tasks/modules.py index e26fe09b82b9f..43f91a2da959c 100644 --- a/tasks/modules.py +++ b/tasks/modules.py @@ -213,6 +213,7 @@ def validate_used_by_otel(ctx: Context): missing_used_by_otel_label: dict[str, list[str]] = defaultdict(list) # for every module labeled as "used_by_otel" + default_modules = get_default_modules() for otel_mod in otel_mods: gomod_path = f"{otel_mod}/go.mod" # get the go.mod data @@ -232,7 +233,7 @@ def validate_used_by_otel(ctx: Context): # we need the relative path of module (without github.com/DataDog/datadog-agent/ prefix) rel_path = require['Path'].removeprefix("github.com/DataDog/datadog-agent/") # check if indirect module is labeled as "used_by_otel" - if rel_path not in get_default_modules() or not get_default_modules()[rel_path].used_by_otel: + if rel_path not in default_modules or not default_modules[rel_path].used_by_otel: missing_used_by_otel_label[rel_path].append(otel_mod) if missing_used_by_otel_label: message = f"{color_message('ERROR', Color.RED)}: some indirect local dependencies of modules labeled \"used_by_otel\" are not correctly labeled in get_default_modules()\n" @@ -260,6 +261,7 @@ def show(_, path: str, remove_defaults: bool = False, base_dir: str = '.'): Args: remove_defaults: If True, will remove default values from the output. + base_dir: Where to load modules from. """ config = Configuration.from_file(Path(base_dir)) @@ -281,6 +283,7 @@ def show_all(_, base_dir: str = '.', ignored=False): """Show the list of modules. Args: + base_dir: Where to load modules from. ignored: If True, will list ignored modules. """ diff --git a/tasks/pipeline.py b/tasks/pipeline.py index 31b728798c334..8d63109fee536 100644 --- a/tasks/pipeline.py +++ b/tasks/pipeline.py @@ -19,8 +19,7 @@ refresh_pipeline, ) from tasks.libs.common.color import Color, color_message -from tasks.libs.common.constants import DEFAULT_BRANCH -from tasks.libs.common.git import get_commit_sha, get_current_branch +from tasks.libs.common.git import get_commit_sha, get_current_branch, get_default_branch from tasks.libs.common.utils import ( get_all_allowed_repo_branches, is_allowed_repo_branch, @@ -94,7 +93,7 @@ def check_deploy_pipeline(repo: Project, git_ref: str, release_version_6, releas @task -def clean_running_pipelines(ctx, git_ref=DEFAULT_BRANCH, here=False, use_latest_sha=False, sha=None): +def clean_running_pipelines(ctx, git_ref=None, here=False, use_latest_sha=False, sha=None): """ Fetch running pipelines on a target ref (+ optionally a git sha), and ask the user if they should be cancelled. @@ -104,6 +103,8 @@ def clean_running_pipelines(ctx, git_ref=DEFAULT_BRANCH, here=False, use_latest_ if here: git_ref = get_current_branch(ctx) + else: + git_ref = git_ref or get_default_branch() print(f"Fetching running pipelines on {git_ref}") @@ -130,11 +131,12 @@ def workflow_rules(gitlab_file=".gitlab-ci.yml"): @task -def trigger(_, git_ref=DEFAULT_BRANCH, release_version_6="dev", release_version_7="dev-a7", repo_branch="dev"): +def trigger(_, git_ref=None, release_version_6="dev", release_version_7="dev-a7", repo_branch="dev"): """ OBSOLETE: Trigger a deploy pipeline on the given git ref. Use pipeline.run with the --deploy option instead. """ + git_ref = git_ref or get_default_branch() use_release_entries = "" major_versions = [] @@ -829,16 +831,16 @@ def test_merge_queue(ctx): # Create a new main and push it print("Creating a new main branch") timestamp = int(datetime.now(timezone.utc).timestamp()) - test_main = f"mq/test_{timestamp}" + test_default = f"mq/test_{timestamp}" current_branch = get_current_branch(ctx) - ctx.run("git checkout main", hide=True) + ctx.run(f"git checkout {get_default_branch()}", hide=True) ctx.run("git pull", hide=True) - ctx.run(f"git checkout -b {test_main}", hide=True) - ctx.run(f"git push origin {test_main}", hide=True) + ctx.run(f"git checkout -b {test_default}", hide=True) + ctx.run(f"git push origin {test_default}", hide=True) # Create a PR towards this new branch and adds it to the merge queue print("Creating a PR and adding it to the merge queue") gh = GithubAPI() - pr = gh.create_pr(f"Test MQ for {current_branch}", "", test_main, current_branch) + pr = gh.create_pr(f"Test MQ for {current_branch}", "", test_default, current_branch) pr.create_issue_comment("/merge") # Search for the generated pipeline print(f"PR {pr.html_url} is waiting for MQ pipeline generation") @@ -848,7 +850,7 @@ def test_merge_queue(ctx): time.sleep(30) pipelines = agent.pipelines.list(per_page=100) try: - pipeline = next(p for p in pipelines if p.ref.startswith(f"mq-working-branch-{test_main}")) + pipeline = next(p for p in pipelines if p.ref.startswith(f"mq-working-branch-{test_default}")) print(f"Pipeline found: {pipeline.web_url}") break except StopIteration as e: @@ -866,8 +868,8 @@ def test_merge_queue(ctx): pipeline.cancel() pr.edit(state="closed") ctx.run(f"git checkout {current_branch}", hide=True) - ctx.run(f"git branch -D {test_main}", hide=True) - ctx.run(f"git push origin :{test_main}", hide=True) + ctx.run(f"git branch -D {test_default}", hide=True) + ctx.run(f"git push origin :{test_default}", hide=True) if not success: raise Exit(message="Merge queue test failed", code=1) diff --git a/tasks/release.py b/tasks/release.py index a82deec90161f..5e0b11483a938 100644 --- a/tasks/release.py +++ b/tasks/release.py @@ -20,7 +20,6 @@ from tasks.libs.ciproviders.gitlab_api import get_gitlab_repo from tasks.libs.common.color import Color, color_message from tasks.libs.common.constants import ( - DEFAULT_BRANCH, GITHUB_REPO_NAME, ) from tasks.libs.common.git import ( @@ -28,8 +27,10 @@ check_clean_branch_state, clone, get_current_branch, + get_default_branch, get_last_commit, get_last_release_tag, + is_agent6, try_git_command, ) from tasks.libs.common.gomodules import get_default_modules @@ -47,6 +48,8 @@ release_manager, ) from tasks.libs.releasing.json import ( + DEFAULT_BRANCHES, + DEFAULT_BRANCHES_AGENT6, UNFREEZE_REPO_AGENT, UNFREEZE_REPOS, _get_release_json_value, @@ -371,7 +374,7 @@ def create_rc(ctx, major_versions="6,7", patch_version=False, upstream="origin", if not check_base_branch(current_branch, new_highest_version): raise Exit( color_message( - f"The branch you are on is neither {DEFAULT_BRANCH} or the correct release branch ({new_highest_version.branch()}). Aborting.", + f"The branch you are on is neither {get_default_branch()} or the correct release branch ({new_highest_version.branch()}). Aborting.", "red", ), code=1, @@ -472,7 +475,7 @@ def build_rc(ctx, major_versions="6,7", patch_version=False, k8s_deployments=Fal if not check_base_branch(current_branch, new_version): raise Exit( color_message( - f"The branch you are on is neither {DEFAULT_BRANCH} or the correct release branch ({new_version.branch()}). Aborting.", + f"The branch you are on is neither {get_default_branch()} or the correct release branch ({new_version.branch()}). Aborting.", "red", ), code=1, @@ -663,7 +666,7 @@ def create_release_branches(ctx, base_directory="~/dd", major_versions="6,7", up create_release_pr( f"[release] Update current milestone to {next}", - "main", + get_default_branch(), milestone_branch, next, ) @@ -683,8 +686,8 @@ def create_release_branches(ctx, base_directory="~/dd", major_versions="6,7", up with open(file, "w") as gl: for line in file_content: - if re.search(r"compare_to: main", line): - gl.write(line.replace("main", f"{release_branch}")) + if re.search(rf"compare_to: {get_default_branch()}", line): + gl.write(line.replace(get_default_branch(), f"{release_branch}")) else: gl.write(line) @@ -754,7 +757,7 @@ def cleanup(ctx): current_milestone = _update_last_stable(ctx, version) # create pull request to update last stable version - main_branch = "main" + main_branch = get_default_branch() cleanup_branch = f"release/{version}-cleanup" ctx.run(f"git checkout -b {cleanup_branch}") ctx.run("git add release.json") @@ -787,9 +790,10 @@ def cleanup(ctx): @task def check_omnibus_branches(ctx): base_branch = _get_release_json_value('base_branch') - if base_branch == 'main': - omnibus_ruby_branch = 'datadog-5.5.0' - omnibus_software_branch = 'master' + if base_branch == get_default_branch(): + default_branches = DEFAULT_BRANCHES_AGENT6 if is_agent6(ctx) else DEFAULT_BRANCHES + omnibus_ruby_branch = default_branches['omnibus-ruby'] + omnibus_software_branch = default_branches['omnibus-software'] else: omnibus_ruby_branch = base_branch omnibus_software_branch = base_branch @@ -913,7 +917,7 @@ def get_active_release_branch(_): if release_branch: print(f"{release_branch.name}") else: - print("main") + print(get_default_branch()) @task diff --git a/tasks/setup.py b/tasks/setup.py index 0426543a16010..5e1eeee98d1f1 100644 --- a/tasks/setup.py +++ b/tasks/setup.py @@ -17,6 +17,7 @@ from tasks import vscode from tasks.libs.common.color import Color, color_message +from tasks.libs.common.git import get_default_branch from tasks.libs.common.status import Status from tasks.libs.common.utils import running_in_pyapp @@ -95,7 +96,7 @@ def check_git_repo(ctx) -> SetupResult: ctx.run("git fetch", hide=True) print(color_message("Checking main branch...", Color.BLUE)) - output = ctx.run('git rev-list "^HEAD" origin/main --count', hide=True) + output = ctx.run(f'git rev-list "^HEAD" origin/{get_default_branch()} --count', hide=True) count = output.stdout.strip() message = "" @@ -103,7 +104,7 @@ def check_git_repo(ctx) -> SetupResult: if count != "0": status = Status.WARN - message = f"Your branch is {count} commit(s) behind main. Please update your branch." + message = f"Your branch is {count} commit(s) behind {get_default_branch()}. Please update your branch." return SetupResult("Check git repository", status, message) diff --git a/tasks/unit_tests/libs/common/worktree_tests.py b/tasks/unit_tests/libs/common/worktree_tests.py new file mode 100644 index 0000000000000..3998357c1accc --- /dev/null +++ b/tasks/unit_tests/libs/common/worktree_tests.py @@ -0,0 +1,97 @@ +import os +import unittest + +from invoke import Context + +from tasks.libs.common.git import get_default_branch +from tasks.libs.common.gomodules import get_default_modules +from tasks.libs.common.worktree import agent_context, init_env, is_worktree + + +def get_ctx(): + return Context() + + +class TestWorktree(unittest.TestCase): + def setUp(self): + # Pull only once + init_env(get_ctx(), '6.53.x') + os.environ['AGENT_WORKTREE_NO_PULL'] = '1' + + def test_context_is_worktree_true(self): + with agent_context(get_ctx(), '6.53.x'): + self.assertTrue(is_worktree()) + + def test_context_is_worktree_false(self): + self.assertFalse(is_worktree()) + + def test_context_nested(self): + with agent_context(get_ctx(), '6.53.x'): + with agent_context(get_ctx(), '6.53.x'): + self.assertTrue(is_worktree()) + self.assertTrue(is_worktree()) + + def test_context_pwd(self): + ctx = get_ctx() + + with agent_context(ctx, None, skip_checkout=True): + pwdnone = ctx.run('pwd').stdout + + with agent_context(ctx, '6.53.x'): + pwd6 = ctx.run('pwd').stdout + + with agent_context(ctx, 'main'): + pwdmain = ctx.run('pwd').stdout + + self.assertEqual(pwd6, pwdnone) + self.assertEqual(pwd6, pwdmain) + + def test_context_modules(self): + ctx = get_ctx() + + with agent_context(ctx, 'main'): + modules7 = get_default_modules() + + with agent_context(ctx, '6.53.x'): + modules6 = get_default_modules() + + self.assertNotEqual(set(modules6.keys()), set(modules7.keys())) + + def test_context_branch(self): + ctx = get_ctx() + + with agent_context(ctx, 'main'): + branch7 = get_default_branch() + + with agent_context(ctx, '6.53.x'): + branch6 = get_default_branch() + + self.assertNotEqual(branch6, branch7) + + def test_context_no_checkout(self): + ctx = get_ctx() + + with agent_context(ctx, '6.53.x'): + branch6 = get_default_branch() + + with agent_context(ctx, 'main'): + branch7 = get_default_branch() + + with agent_context(ctx, 'main', skip_checkout=True): + branch_no_checkout = get_default_branch() + + self.assertNotEqual(branch6, branch7) + self.assertEqual(branch7, branch_no_checkout) + + def test_context_no_checkout_error(self): + ctx = get_ctx() + + with agent_context(ctx, '6.53.x'): + pass + + def switch_context(): + # The current branch is not main + with agent_context(ctx, 'main', skip_checkout=True): + pass + + self.assertRaises(AssertionError, switch_context) diff --git a/tasks/worktree.py b/tasks/worktree.py new file mode 100644 index 0000000000000..bb00ed751b370 --- /dev/null +++ b/tasks/worktree.py @@ -0,0 +1,88 @@ +from invoke import task +from invoke.exceptions import Exit + +from tasks.libs.common.color import Color, color_message +from tasks.libs.common.user_interactions import yes_no_question +from tasks.libs.common.worktree import WORKTREE_DIRECTORY, agent_context, enter_env, init_env, remove_env + + +@task +def init(ctx, branch: str | None = None): + """Will prepare the worktree context (git clone / pull of the agent branch).""" + + init_env(ctx, branch) + + +@task +def remove(ctx): + """Will remove the git worktree context.""" + + remove_env(ctx) + + +@task +def status(ctx): + """Displays the status of the worktree environment.""" + + if not WORKTREE_DIRECTORY.is_dir(): + raise Exit('No worktree environment found.') + + ctx.run(f"git -C '{WORKTREE_DIRECTORY}' status", pty=True) + + +@task +def checkout(ctx, ref): + """Changes the worktree environment to the specified ref. + + Note: + This won't pull. + """ + + if not WORKTREE_DIRECTORY.is_dir(): + raise Exit('No worktree environment found.') + + ctx.run(f"git -C '{WORKTREE_DIRECTORY}' checkout '{ref}'", pty=True) + + +@task +def pull(ctx): + """Pulls the worktree environment.""" + + if not WORKTREE_DIRECTORY.is_dir(): + raise Exit('No worktree environment found.') + + ctx.run(f"git -C '{WORKTREE_DIRECTORY}' pull", pty=True) + + +@task +def run(ctx, branch: str, command: str, skip_checkout: bool = False): + """Runs a command in the target worktree environment. + + Usage: + $ inv worktree.run 6.53.x "head CHANGELOG.rst" # Displays the changelog of the target branch + """ + + with agent_context(ctx, branch, skip_checkout=skip_checkout): + ctx.run(command) + + +@task +def invoke(ctx, branch: str, skip_checkout: bool = False, yes: bool = False): + """Enters the worktree environment in order to invoke tasks in this context. + + Note: + This task should be avoided when a --branch or --release-branch argument is available in the task. + + Usage: + > inv worktree.invoke 6.53.x --yes modules.show-all # Will show agent 6 modules + """ + + if yes or yes_no_question( + 'Warning: This task should be avoided, use --branch or --release-branch argument if available in the task. Want to proceed?', + color=Color.ORANGE, + default=False, + ): + # The tasks running after this one will be using the agent 6 environment + enter_env(ctx, branch, skip_checkout=skip_checkout) + else: + raise Exit(color_message('Aborted.', Color.RED)) From 6033a62ab4b16d5e99092d7b65c36dbbb176c15f Mon Sep 17 00:00:00 2001 From: Guy Arbitman Date: Wed, 27 Nov 2024 12:05:25 +0100 Subject: [PATCH 084/439] usm: tests: Add gitignore to avoid compiled files (#31505) --- .../servicediscovery/apm/testutil/instrumented2/.gitignore | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 pkg/collector/corechecks/servicediscovery/apm/testutil/instrumented2/.gitignore diff --git a/pkg/collector/corechecks/servicediscovery/apm/testutil/instrumented2/.gitignore b/pkg/collector/corechecks/servicediscovery/apm/testutil/instrumented2/.gitignore new file mode 100644 index 0000000000000..68892ef7c3c4f --- /dev/null +++ b/pkg/collector/corechecks/servicediscovery/apm/testutil/instrumented2/.gitignore @@ -0,0 +1,5 @@ +# Ignore Everything +* + +# But go files +!*.go From 6686f4d38b154028dcb3b33ae9292e44c9c9c7e7 Mon Sep 17 00:00:00 2001 From: Kylian Serrania Date: Wed, 27 Nov 2024 14:03:25 +0100 Subject: [PATCH 085/439] [e2e] Update datadog-cilium integration versions used in Agent install E2E tests (#31514) --- .../common/agent_integration.go | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/test/new-e2e/tests/agent-platform/common/agent_integration.go b/test/new-e2e/tests/agent-platform/common/agent_integration.go index 4016dfb33ff0a..ac36d0ce7e64f 100644 --- a/test/new-e2e/tests/agent-platform/common/agent_integration.go +++ b/test/new-e2e/tests/agent-platform/common/agent_integration.go @@ -23,48 +23,48 @@ func CheckIntegrationInstall(t *testing.T, client *TestClient) { freezeContent, err := client.FileManager.ReadFile(requirementIntegrationPath) require.NoError(t, err) - freezeContent = ciliumRegex.ReplaceAll(freezeContent, []byte("datadog-cilium==2.2.1")) + freezeContent = ciliumRegex.ReplaceAll(freezeContent, []byte("datadog-cilium==4.0.0")) _, err = client.FileManager.WriteFile(requirementIntegrationPath, freezeContent) require.NoError(t, err) t.Run("install-uninstall package", func(tt *testing.T) { - installIntegration(tt, client, "datadog-cilium==2.2.1") + installIntegration(tt, client, "datadog-cilium==4.0.0") freezeRequirement := client.AgentClient.Integration(agentclient.WithArgs([]string{"freeze"})) - require.Contains(tt, freezeRequirement, "datadog-cilium==2.2.1", "before removal integration should be in freeze") + require.Contains(tt, freezeRequirement, "datadog-cilium==4.0.0", "before removal integration should be in freeze") client.AgentClient.Integration(agentclient.WithArgs([]string{"remove", "-r", "datadog-cilium"})) freezeRequirementNew := client.AgentClient.Integration(agentclient.WithArgs([]string{"freeze"})) - require.NotContains(tt, freezeRequirementNew, "datadog-cilium==2.2.1", "after removal integration should not be in freeze") + require.NotContains(tt, freezeRequirementNew, "datadog-cilium==4.0.0", "after removal integration should not be in freeze") }) t.Run("upgrade a package", func(tt *testing.T) { - installIntegration(tt, client, "datadog-cilium==2.2.1") + installIntegration(tt, client, "datadog-cilium==4.0.0") freezeRequirement := client.AgentClient.Integration(agentclient.WithArgs([]string{"freeze"})) - require.NotContains(tt, freezeRequirement, "datadog-cilium==2.3.0", "before update integration should not be in 2.3.0") + require.NotContains(tt, freezeRequirement, "datadog-cilium==5.0.0", "before update integration should not be in 5.0.0") - installIntegration(tt, client, "datadog-cilium==2.3.0") + installIntegration(tt, client, "datadog-cilium==5.0.0") freezeRequirementNew := client.AgentClient.Integration(agentclient.WithArgs([]string{"freeze"})) - require.Contains(tt, freezeRequirementNew, "datadog-cilium==2.3.0", "after update integration should be in 2.3.0") + require.Contains(tt, freezeRequirementNew, "datadog-cilium==5.0.0", "after update integration should be in 5.0.0") }) t.Run("downgrade a package", func(tt *testing.T) { - installIntegration(tt, client, "datadog-cilium==2.3.0") + installIntegration(tt, client, "datadog-cilium==5.0.0") freezeRequirement := client.AgentClient.Integration(agentclient.WithArgs([]string{"freeze"})) - require.NotContains(tt, freezeRequirement, "datadog-cilium==2.2.1", "before downgrade integration should not be in 2.2.1") + require.NotContains(tt, freezeRequirement, "datadog-cilium==4.0.0", "before downgrade integration should not be in 4.0.0") - installIntegration(tt, client, "datadog-cilium==2.2.1") + installIntegration(tt, client, "datadog-cilium==4.0.0") freezeRequirementNew := client.AgentClient.Integration(agentclient.WithArgs([]string{"freeze"})) - require.Contains(tt, freezeRequirementNew, "datadog-cilium==2.2.1", "after downgrade integration should be in 2.2.1") + require.Contains(tt, freezeRequirementNew, "datadog-cilium==4.0.0", "after downgrade integration should be in 4.0.0") }) t.Run("downgrade to older version than shipped", func(tt *testing.T) { - _, err := client.AgentClient.IntegrationWithError(agentclient.WithArgs([]string{"install", "-r", "datadog-cilium==2.2.0"})) + _, err := client.AgentClient.IntegrationWithError(agentclient.WithArgs([]string{"install", "-r", "datadog-cilium==3.6.0"})) require.Error(tt, err, "should raise error when trying to install version older than the one shipped") }) } From c5298c35a0985621284ea7c33426efa131833a1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20Beauz=C3=A9e-Luyssen?= Date: Wed, 27 Nov 2024 14:17:57 +0100 Subject: [PATCH 086/439] tasks: release: group pushing the tags (#31409) --- tasks/release.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/tasks/release.py b/tasks/release.py index 5e0b11483a938..394f239f7f879 100644 --- a/tasks/release.py +++ b/tasks/release.py @@ -132,8 +132,9 @@ def __get_force_option(force: bool) -> str: return force_option -def __tag_single_module(ctx, module, agent_version, commit, push, force_option, devel): +def __tag_single_module(ctx, module, agent_version, commit, force_option, devel): """Tag a given module.""" + tags = [] for tag in module.tag(agent_version): if devel: tag += "-devel" @@ -146,9 +147,8 @@ def __tag_single_module(ctx, module, agent_version, commit, push, force_option, message = f"Could not create tag {tag}. Please rerun the task to retry creating the tags (you may need the --force option)" raise Exit(color_message(message, "red"), code=1) print(f"Created tag {tag}") - if push: - ctx.run(f"git push origin {tag}{force_option}") - print(f"Pushed tag {tag}") + tags.append(tag) + return tags @task @@ -173,11 +173,17 @@ def tag_modules(ctx, agent_version, commit="HEAD", verify=True, push=True, force check_version(agent_version) force_option = __get_force_option(force) + tags = [] for module in get_default_modules().values(): # Skip main module; this is tagged at tag_version via __tag_single_module. if module.should_tag and module.path != ".": - __tag_single_module(ctx, module, agent_version, commit, push, force_option, devel) + new_tags = __tag_single_module(ctx, module, agent_version, commit, force_option, devel) + tags.extend(new_tags) + if push: + tags_list = ' '.join(tags) + ctx.run(f"git push origin {tags_list}{force_option}") + print(f"Pushed tag {tags_list}") print(f"Created module tags for version {agent_version}") @@ -203,7 +209,11 @@ def tag_version(ctx, agent_version, commit="HEAD", verify=True, push=True, force # Always tag the main module force_option = __get_force_option(force) - __tag_single_module(ctx, get_default_modules()["."], agent_version, commit, push, force_option, devel) + tags = __tag_single_module(ctx, get_default_modules()["."], agent_version, commit, force_option, devel) + if push: + tags_list = ' '.join(tags) + ctx.run(f"git push origin {tags_list}{force_option}") + print(f"Pushed tag {tags_list}") print(f"Created tags for version {agent_version}") From fd5358b6f6e3aa3b73366ad813c02aa56ea13642 Mon Sep 17 00:00:00 2001 From: Yoann Ghigoff Date: Wed, 27 Nov 2024 16:13:17 +0100 Subject: [PATCH 087/439] [CWS] No warning log when a persisted profile already exists (#31516) --- .../security_profile/profile/profile_dir.go | 33 ++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/pkg/security/security_profile/profile/profile_dir.go b/pkg/security/security_profile/profile/profile_dir.go index 6f0ef53b76569..d9e6d62c71bd7 100644 --- a/pkg/security/security_profile/profile/profile_dir.go +++ b/pkg/security/security_profile/profile/profile_dir.go @@ -48,6 +48,11 @@ type profileFSEntry struct { selector cgroupModel.WorkloadSelector } +type existingProfileInfo struct { + path string + selector string +} + // DirectoryProvider is a ProfileProvider that fetches Security Profiles from the filesystem type DirectoryProvider struct { sync.Mutex @@ -213,24 +218,24 @@ func (dp *DirectoryProvider) listProfiles() ([]string, error) { return output, nil } -func (dp *DirectoryProvider) loadProfile(profilePath string) error { +func (dp *DirectoryProvider) loadProfile(profilePath string) (*existingProfileInfo, error) { profile, err := LoadProtoFromFile(profilePath) if err != nil { - return fmt.Errorf("couldn't load profile %s: %w", profilePath, err) + return nil, fmt.Errorf("couldn't load profile %s: %w", profilePath, err) } if len(profile.ProfileContexts) == 0 { - return fmt.Errorf("couldn't load profile %s: it did not contains any version", profilePath) + return nil, fmt.Errorf("couldn't load profile %s: it did not contains any version", profilePath) } imageName, imageTag := profile.Selector.GetImageName(), profile.Selector.GetImageTag() if imageTag == "" || imageName == "" { - return fmt.Errorf("couldn't load profile %s: it did not contains any valid image_name (%s) or image_tag (%s)", profilePath, imageName, imageTag) + return nil, fmt.Errorf("couldn't load profile %s: it did not contains any valid image_name (%s) or image_tag (%s)", profilePath, imageName, imageTag) } workloadSelector, err := cgroupModel.NewWorkloadSelector(imageName, imageTag) if err != nil { - return err + return nil, err } profileManagerSelector := workloadSelector profileManagerSelector.Tag = "*" @@ -241,7 +246,7 @@ func (dp *DirectoryProvider) loadProfile(profilePath string) error { // prioritize a persited profile over activity dumps if _, ok := dp.profileMapping[profileManagerSelector]; ok { dp.Unlock() - return fmt.Errorf("ignoring %s: a persisted profile already exists for workload %s", profilePath, profileManagerSelector.String()) + return &existingProfileInfo{path: profilePath, selector: profileManagerSelector.String()}, nil } // update profile mapping @@ -260,7 +265,7 @@ func (dp *DirectoryProvider) loadProfile(profilePath string) error { seclog.Debugf("security profile %s loaded from file system", workloadSelector) if propagateCb == nil { - return nil + return nil, nil } // check if this profile matches a workload selector @@ -269,7 +274,7 @@ func (dp *DirectoryProvider) loadProfile(profilePath string) error { propagateCb(workloadSelector, profile) } } - return nil + return nil, nil } func (dp *DirectoryProvider) loadProfiles() error { @@ -279,8 +284,11 @@ func (dp *DirectoryProvider) loadProfiles() error { } for _, profilePath := range files { - if err = dp.loadProfile(profilePath); err != nil { + existingProfile, err := dp.loadProfile(profilePath) + if err != nil { seclog.Errorf("couldn't load profile: %v", err) + } else if existingProfile != nil { + seclog.Debugf("ignoring %s: a persisted profile already exists for workload %s", existingProfile.path, existingProfile.selector) } } return nil @@ -340,13 +348,16 @@ func (dp *DirectoryProvider) onHandleFilesFromWatcher() { var filesToCleanup []string for file := range dp.newFiles { - if err := dp.loadProfile(file); err != nil { + existingProfile, err := dp.loadProfile(file) + if err != nil { if errors.Is(err, cgroupModel.ErrNoImageProvided) { seclog.Debugf("couldn't load new profile %s: %v", file, err) } else { seclog.Warnf("couldn't load new profile %s: %v", file, err) } - + filesToCleanup = append(filesToCleanup, file) + } else if existingProfile != nil { + seclog.Debugf("ignoring %s: a persisted profile already exists for workload %s", existingProfile.path, existingProfile.selector) filesToCleanup = append(filesToCleanup, file) } } From 4eca3c5e6252d72fa51b16210d77d799a249b280 Mon Sep 17 00:00:00 2001 From: Amit Slavin <108348428+amitslavin@users.noreply.github.com> Date: Wed, 27 Nov 2024 17:14:18 +0200 Subject: [PATCH 088/439] [USM] Add invalid batch count metric (#31473) --- pkg/network/protocols/events/consumer.go | 37 ++++++++++++------- pkg/network/protocols/events/consumer_test.go | 28 ++++++++++++++ 2 files changed, 51 insertions(+), 14 deletions(-) diff --git a/pkg/network/protocols/events/consumer.go b/pkg/network/protocols/events/consumer.go index 71927e65eddf5..dea561ee8297f 100644 --- a/pkg/network/protocols/events/consumer.go +++ b/pkg/network/protocols/events/consumer.go @@ -47,11 +47,12 @@ type Consumer[V any] struct { stopped bool // telemetry - metricGroup *telemetry.MetricGroup - eventsCount *telemetry.Counter - failedFlushesCount *telemetry.Counter - kernelDropsCount *telemetry.Counter - invalidEventsCount *telemetry.Counter + metricGroup *telemetry.MetricGroup + eventsCount *telemetry.Counter + failedFlushesCount *telemetry.Counter + kernelDropsCount *telemetry.Counter + lengthExceededEventCount, negativeLengthEventCount *telemetry.Counter + invalidBatchCount *telemetry.Counter } // NewConsumer instantiates a new event Consumer @@ -90,7 +91,9 @@ func NewConsumer[V any](proto string, ebpf *manager.Manager, callback func([]V)) eventsCount := metricGroup.NewCounter("events_captured") kernelDropsCount := metricGroup.NewCounter("kernel_dropped_events") - invalidEventsCount := metricGroup.NewCounter("invalid_events") + negativeLengthEventCount := metricGroup.NewCounter("out_of_bounds_event_count", "type:negative_length") + lengthExceededEventCount := metricGroup.NewCounter("out_of_bounds_event_count", "type:length_exceeded") + invalidBatchCount := metricGroup.NewCounter("invalid_batch_count") // failedFlushesCount tracks the number of failed calls to // `bpf_perf_event_output`. This is usually indicative of a slow-consumer @@ -115,11 +118,13 @@ func NewConsumer[V any](proto string, ebpf *manager.Manager, callback func([]V)) batchReader: batchReader, // telemetry - metricGroup: metricGroup, - eventsCount: eventsCount, - failedFlushesCount: failedFlushesCount, - kernelDropsCount: kernelDropsCount, - invalidEventsCount: invalidEventsCount, + metricGroup: metricGroup, + eventsCount: eventsCount, + failedFlushesCount: failedFlushesCount, + kernelDropsCount: kernelDropsCount, + negativeLengthEventCount: negativeLengthEventCount, + lengthExceededEventCount: lengthExceededEventCount, + invalidBatchCount: invalidBatchCount, }, nil } @@ -140,7 +145,7 @@ func (c *Consumer[V]) Start() { b, err := batchFromEventData(dataEvent.Data) if err != nil { - c.invalidEventsCount.Add(1) + c.invalidBatchCount.Add(1) dataEvent.Done() break } @@ -225,8 +230,12 @@ func (c *Consumer[V]) process(b *batch, syncing bool) { // true. In case they do we bail out and increment the counter tracking // invalid events // TODO: investigate why we're sometimes getting invalid offsets - if length < 0 || length > int(b.Cap) { - c.invalidEventsCount.Add(1) + if length < 0 { + c.negativeLengthEventCount.Add(1) + return + } + if length > int(b.Cap) { + c.lengthExceededEventCount.Add(1) return } diff --git a/pkg/network/protocols/events/consumer_test.go b/pkg/network/protocols/events/consumer_test.go index 54c1212a669f5..2b1bba26b97ad 100644 --- a/pkg/network/protocols/events/consumer_test.go +++ b/pkg/network/protocols/events/consumer_test.go @@ -18,10 +18,12 @@ import ( manager "github.com/DataDog/ebpf-manager" "github.com/cilium/ebpf" + "github.com/cilium/ebpf/ringbuf" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "golang.org/x/sys/unix" + ddebpf "github.com/DataDog/datadog-agent/pkg/ebpf" "github.com/DataDog/datadog-agent/pkg/ebpf/bytecode" "github.com/DataDog/datadog-agent/pkg/network/config" "github.com/DataDog/datadog-agent/pkg/util/kernel" @@ -169,3 +171,29 @@ func newEBPFProgram(c *config.Config) (*manager.Manager, error) { return m, nil } + +func TestInvalidBatchCountMetric(t *testing.T) { + kversion, err := kernel.HostVersion() + require.NoError(t, err) + if minVersion := kernel.VersionCode(4, 14, 0); kversion < minVersion { + t.Skipf("package not supported by kernels < %s", minVersion) + } + + program, err := newEBPFProgram(config.New()) + require.NoError(t, err) + + ringBufferHandler := ddebpf.NewRingBufferHandler(1) + ringBufferHandler.RecordHandler(&ringbuf.Record{ + RawSample: []byte("test"), + }, nil, nil) + + consumer, err := NewConsumer("test", program, func(_ []uint64) {}) + require.NoError(t, err) + consumer.handler = ringBufferHandler + + consumer.Start() + program.Stop(manager.CleanAll) + consumer.Stop() + + require.Equalf(t, int(consumer.invalidBatchCount.Get()), 1, "invalidBatchCount should be greater than 0") +} From f024f7d846ad9b982425b117c0ecd543383c367d Mon Sep 17 00:00:00 2001 From: Carlos Date: Wed, 27 Nov 2024 15:16:14 +0000 Subject: [PATCH 089/439] Making sure that JMX images are available for e2e tests to run (#31511) --- .gitlab/dev_container_deploy/e2e.yml | 17 +++++++++++++++++ .gitlab/e2e/e2e.yml | 1 + 2 files changed, 18 insertions(+) diff --git a/.gitlab/dev_container_deploy/e2e.yml b/.gitlab/dev_container_deploy/e2e.yml index 956f0ae8ef59c..f8c45e3fba8c2 100644 --- a/.gitlab/dev_container_deploy/e2e.yml +++ b/.gitlab/dev_container_deploy/e2e.yml @@ -17,6 +17,23 @@ qa_agent: IMG_SOURCES: ${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-amd64,${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-arm64,${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-win1809-amd64,${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-winltsc2022-amd64 IMG_DESTINATIONS: agent:${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA} +qa_agent_jmx: + extends: .docker_publish_job_definition + stage: dev_container_deploy + rules: + - !reference [.except_mergequeue] + - !reference [.except_disable_e2e_tests] + - when: on_success + needs: + - docker_build_agent7_jmx + - docker_build_agent7_jmx_arm64 + - docker_build_agent7_windows1809_jmx + - docker_build_agent7_windows2022_jmx + variables: + IMG_REGISTRIES: agent-qa + IMG_SOURCES: ${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-jmx-amd64,${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-jmx-arm64,${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-jmx-win1809-amd64,${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-jmx-winltsc2022-amd64 + IMG_DESTINATIONS: agent:${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-jmx + qa_agent_ot: extends: .docker_publish_job_definition stage: dev_container_deploy diff --git a/.gitlab/e2e/e2e.yml b/.gitlab/e2e/e2e.yml index aa3c21938b4ce..3906d03a02e98 100644 --- a/.gitlab/e2e/e2e.yml +++ b/.gitlab/e2e/e2e.yml @@ -79,6 +79,7 @@ needs: - !reference [.needs_new_e2e_template] - qa_agent + - qa_agent_jmx - qa_dca - qa_dogstatsd From 21470958dc882f0456cf5d35a01c88127d3733df Mon Sep 17 00:00:00 2001 From: Nicolas Schweitzer Date: Wed, 27 Nov 2024 16:20:53 +0100 Subject: [PATCH 090/439] fix(new-e2e): Prevent deployment of `dogstatsd-standalone` clients (#31512) --- test/new-e2e/pkg/environments/aws/kubernetes/eks.go | 8 +++++--- test/new-e2e/pkg/environments/aws/kubernetes/kind.go | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/test/new-e2e/pkg/environments/aws/kubernetes/eks.go b/test/new-e2e/pkg/environments/aws/kubernetes/eks.go index 0b75531ec4f73..22971ae20f9ed 100644 --- a/test/new-e2e/pkg/environments/aws/kubernetes/eks.go +++ b/test/new-e2e/pkg/environments/aws/kubernetes/eks.go @@ -142,9 +142,11 @@ func EKSRunFunc(ctx *pulumi.Context, env *environments.Kubernetes, params *Provi return err } - // dogstatsd clients that report to the dogstatsd standalone deployment - if _, err := dogstatsd.K8sAppDefinition(&awsEnv, cluster.KubeProvider, "workload-dogstatsd-standalone", dogstatsdstandalone.HostPort, dogstatsdstandalone.Socket, utils.PulumiDependsOn(cluster)); err != nil { - return err + if params.deployDogstatsd { + // dogstatsd clients that report to the dogstatsd standalone deployment + if _, err := dogstatsd.K8sAppDefinition(&awsEnv, cluster.KubeProvider, "workload-dogstatsd-standalone", dogstatsdstandalone.HostPort, dogstatsdstandalone.Socket, utils.PulumiDependsOn(cluster)); err != nil { + return err + } } if _, err := tracegen.K8sAppDefinition(&awsEnv, cluster.KubeProvider, "workload-tracegen", utils.PulumiDependsOn(cluster)); err != nil { diff --git a/test/new-e2e/pkg/environments/aws/kubernetes/kind.go b/test/new-e2e/pkg/environments/aws/kubernetes/kind.go index cdf3efa123931..60da0620167f9 100644 --- a/test/new-e2e/pkg/environments/aws/kubernetes/kind.go +++ b/test/new-e2e/pkg/environments/aws/kubernetes/kind.go @@ -167,9 +167,11 @@ agents: return err } - // dogstatsd clients that report to the dogstatsd standalone deployment - if _, err := dogstatsd.K8sAppDefinition(&awsEnv, kubeProvider, "workload-dogstatsd-standalone", dogstatsdstandalone.HostPort, dogstatsdstandalone.Socket); err != nil { - return err + if params.deployDogstatsd { + // dogstatsd clients that report to the dogstatsd standalone deployment + if _, err := dogstatsd.K8sAppDefinition(&awsEnv, kubeProvider, "workload-dogstatsd-standalone", dogstatsdstandalone.HostPort, dogstatsdstandalone.Socket); err != nil { + return err + } } if _, err := tracegen.K8sAppDefinition(&awsEnv, kubeProvider, "workload-tracegen"); err != nil { From 6b34b94372780247cbec3fa9dde246b0f5f04cd2 Mon Sep 17 00:00:00 2001 From: Ethan Wood-Thomas Date: Wed, 27 Nov 2024 10:23:20 -0500 Subject: [PATCH 091/439] [CONTINT-4405] add crio container image metadata collection (#31289) --- .../collectors/internal/crio/containers.go | 250 ++--- .../collectors/internal/crio/crio.go | 129 ++- .../collectors/internal/crio/crio_test.go | 886 +++++++++--------- .../collectors/internal/crio/image.go | 272 ++++++ .../internal/crio/image_sbom_stub.go | 16 + .../internal/crio/image_sbom_trivy.go | 186 ++++ .../collectors/internal/crio/mock.go | 92 ++ comp/core/workloadmeta/def/types.go | 22 +- pkg/collector/corechecks/sbom/processor.go | 46 +- pkg/sbom/collectors/collectors.go | 7 + pkg/sbom/collectors/crio/crio.go | 144 +++ pkg/sbom/collectors/crio/doc.go | 7 + pkg/util/crio/crio_util.go | 149 ++- pkg/util/trivy/trivy.go | 17 + ...ector-image-metadata-d721b1e797e82770.yaml | 11 + 15 files changed, 1613 insertions(+), 621 deletions(-) create mode 100644 comp/core/workloadmeta/collectors/internal/crio/image.go create mode 100644 comp/core/workloadmeta/collectors/internal/crio/image_sbom_stub.go create mode 100644 comp/core/workloadmeta/collectors/internal/crio/image_sbom_trivy.go create mode 100644 comp/core/workloadmeta/collectors/internal/crio/mock.go create mode 100644 pkg/sbom/collectors/crio/crio.go create mode 100644 pkg/sbom/collectors/crio/doc.go create mode 100644 releasenotes/notes/crio-collector-image-metadata-d721b1e797e82770.yaml diff --git a/comp/core/workloadmeta/collectors/internal/crio/containers.go b/comp/core/workloadmeta/collectors/internal/crio/containers.go index 8076b4dc4e0d8..7dab17440f43a 100644 --- a/comp/core/workloadmeta/collectors/internal/crio/containers.go +++ b/comp/core/workloadmeta/collectors/internal/crio/containers.go @@ -5,7 +5,6 @@ //go:build crio -// Package crio implements the crio Workloadmeta collector. package crio import ( @@ -17,20 +16,19 @@ import ( v1 "k8s.io/cri-api/pkg/apis/runtime/v1" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" - pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/util/crio" "github.com/DataDog/datadog-agent/pkg/util/log" ) -// convertToEvent converts a CRI-O container to a workloadmeta event. -func (c *collector) convertToEvent(ctx context.Context, ctr *v1.Container) workloadmeta.CollectorEvent { +// convertContainerToEvent converts a CRI-O container to a workloadmeta event. +func (c *collector) convertContainerToEvent(ctx context.Context, ctr *v1.Container) workloadmeta.CollectorEvent { name := getContainerName(ctr.GetMetadata()) namespace := getPodNamespace(ctx, c.client, ctr.GetPodSandboxId()) containerStatus, info := getContainerStatus(ctx, c.client, ctr.GetId()) pid, hostname, cgroupsPath := parseContainerInfo(info) cpuLimit, memLimit := getResourceLimits(containerStatus, info) image := getContainerImage(ctx, c.client, ctr.GetImage()) - ports := extractPortsFromAnnotations(ctr.GetAnnotations()) + ports := parsePortsFromAnnotations(ctr.GetAnnotations()) return workloadmeta.CollectorEvent{ Type: workloadmeta.EventTypeSet, @@ -61,15 +59,6 @@ func (c *collector) convertToEvent(ctx context.Context, ctr *v1.Container) workl } } -// getCRIOSocketPath returns the configured CRI-O socket path or the default path. -func getCRIOSocketPath() string { - criSocket := pkgconfigsetup.Datadog().GetString("cri_socket_path") - if criSocket == "" { - return defaultCrioSocketPath - } - return criSocket -} - // getContainerName retrieves the container name. func getContainerName(containerMetadata *v1.ContainerMetadata) string { if containerMetadata == nil { @@ -93,88 +82,30 @@ func getContainerStatus(ctx context.Context, client crio.Client, containerID str statusResponse, err := client.GetContainerStatus(ctx, containerID) if err != nil || statusResponse.GetStatus() == nil { log.Errorf("Failed to get container status for container %s: %v", containerID, err) - return &v1.ContainerStatus{State: v1.ContainerState_CONTAINER_UNKNOWN}, make(map[string]string) + return nil, nil } status := statusResponse.GetStatus() info := statusResponse.GetInfo() return status, info } -// getResourceLimits extracts CPU and memory limits from container status or info as a fallback. -func getResourceLimits(containerStatus *v1.ContainerStatus, info map[string]string) (*float64, *uint64) { - // First, try to get resources from containerStatus - if containerStatus != nil && containerStatus.GetResources() != nil && containerStatus.GetResources().GetLinux() != nil { - var cpuLimit *float64 - var memLimit *uint64 - cpuPeriod := float64(containerStatus.GetResources().GetLinux().GetCpuPeriod()) - cpuQuota := float64(containerStatus.GetResources().GetLinux().GetCpuQuota()) - memLimitInBytes := uint64(containerStatus.GetResources().GetLinux().GetMemoryLimitInBytes()) - - if cpuPeriod != 0 && cpuQuota != 0 { - limit := cpuQuota / cpuPeriod - cpuLimit = &limit - } - if memLimitInBytes != 0 { - memLimit = &memLimitInBytes - } - return cpuLimit, memLimit - } - - if info == nil || info["info"] == "" { - log.Warn("Info map is nil or does not contain resource information") - return nil, nil - } - - // Fallback to parsing resources from info if status resources are nil - var parsedInfo struct { - RuntimeSpec struct { - Linux struct { - Resources struct { - CPU struct { - Quota int64 `json:"quota"` - Period int64 `json:"period"` - } `json:"cpu"` - Memory struct { - LimitInBytes int64 `json:"memoryLimitInBytes"` - } `json:"memory"` - } `json:"resources"` - } `json:"linux"` - } `json:"runtimeSpec"` - } - - if err := json.Unmarshal([]byte(info["info"]), &parsedInfo); err != nil { - log.Warnf("Failed to parse resources from container info: %v", err) - return nil, nil - } - - cpuPeriod := float64(parsedInfo.RuntimeSpec.Linux.Resources.CPU.Period) - cpuQuota := float64(parsedInfo.RuntimeSpec.Linux.Resources.CPU.Quota) - memLimitInBytes := uint64(parsedInfo.RuntimeSpec.Linux.Resources.Memory.LimitInBytes) - - var cpuLimit *float64 - var memLimit *uint64 - if cpuPeriod != 0 && cpuQuota != 0 { - limit := cpuQuota / cpuPeriod - cpuLimit = &limit - } - if memLimitInBytes != 0 { - memLimit = &memLimitInBytes - } - return cpuLimit, memLimit -} - // getContainerImage retrieves and converts a container image to workloadmeta format. func getContainerImage(ctx context.Context, client crio.Client, imageSpec *v1.ImageSpec) workloadmeta.ContainerImage { if imageSpec == nil { log.Warn("Image spec is nil, cannot fetch image") return workloadmeta.ContainerImage{} } - image, err := client.GetContainerImage(ctx, imageSpec) - if err != nil || image == nil { - log.Warnf("Failed to fetch image: %v", err) + imageResp, err := client.GetContainerImage(ctx, imageSpec, false) + if err != nil || imageResp == nil || imageResp.GetImage() == nil { + log.Warnf( + "Failed to fetch image, err: %v, imageResp is nil: %v, imageResp.GetImage() is nil: %v", + err, + imageResp == nil, + imageResp != nil && imageResp.GetImage() == nil, + ) return workloadmeta.ContainerImage{} } - + image := imageResp.GetImage() imgID := image.GetId() imgName := "" if len(image.GetRepoTags()) > 0 { @@ -182,9 +113,17 @@ func getContainerImage(ctx context.Context, client crio.Client, imageSpec *v1.Im } wmImg, err := workloadmeta.NewContainerImage(imgID, imgName) if err != nil { - log.Warnf("Failed to create image: %v", err) + log.Debugf("Failed to create image: %v", err) return workloadmeta.ContainerImage{} } + + imgIDAsDigest, err := parseDigests(image.GetRepoDigests()) + if err == nil { + wmImg.ID = imgIDAsDigest + } else if sbomCollectionIsEnabled() { + log.Warnf("Failed to parse digest for image with ID %s: %v. As a result, SBOM vulnerabilities may not be properly linked to this image.", imgID, err) + } + if len(image.GetRepoDigests()) > 0 { wmImg.RepoDigest = image.GetRepoDigests()[0] } @@ -200,9 +139,9 @@ func getContainerState(containerStatus *v1.ContainerStatus) workloadmeta.Contain return workloadmeta.ContainerState{ Running: containerStatus.GetState() == v1.ContainerState_CONTAINER_RUNNING, Status: mapContainerStatus(containerStatus.GetState()), - CreatedAt: time.Unix(0, containerStatus.GetCreatedAt()), - StartedAt: time.Unix(0, containerStatus.GetStartedAt()), - FinishedAt: time.Unix(0, containerStatus.GetFinishedAt()), + CreatedAt: time.Unix(0, containerStatus.GetCreatedAt()).UTC(), + StartedAt: time.Unix(0, containerStatus.GetStartedAt()).UTC(), + FinishedAt: time.Unix(0, containerStatus.GetFinishedAt()).UTC(), ExitCode: &exitCode, } } @@ -222,8 +161,8 @@ func mapContainerStatus(state v1.ContainerState) workloadmeta.ContainerStatus { return workloadmeta.ContainerStatusUnknown } -// generateUnsetEvent creates an unset event for a given container ID. -func generateUnsetEvent(seenID workloadmeta.EntityID) workloadmeta.CollectorEvent { +// generateUnsetContainerEvent creates an unset event for a given container ID. +func generateUnsetContainerEvent(seenID workloadmeta.EntityID) workloadmeta.CollectorEvent { return workloadmeta.CollectorEvent{ Type: workloadmeta.EventTypeUnset, Source: workloadmeta.SourceRuntime, @@ -233,27 +172,76 @@ func generateUnsetEvent(seenID workloadmeta.EntityID) workloadmeta.CollectorEven } } -// extractPortsFromAnnotations parses container ports from annotations. -func extractPortsFromAnnotations(annotations map[string]string) []workloadmeta.ContainerPort { +// getResourceLimits extracts CPU and memory limits from container status or info as a fallback. +func getResourceLimits(containerStatus *v1.ContainerStatus, info map[string]string) (*float64, *uint64) { + // First, try to get resources from containerStatus + if containerStatus != nil && containerStatus.GetResources() != nil && containerStatus.GetResources().GetLinux() != nil { + cpuPeriod := float64(containerStatus.GetResources().GetLinux().GetCpuPeriod()) + cpuQuota := float64(containerStatus.GetResources().GetLinux().GetCpuQuota()) + memLimitInBytes := uint64(containerStatus.GetResources().GetLinux().GetMemoryLimitInBytes()) + + var cpuLimit *float64 + var memLimit *uint64 + + if cpuPeriod != 0 && cpuQuota != 0 { + limit := cpuQuota / cpuPeriod + cpuLimit = &limit + } + if memLimitInBytes != 0 { + memLimit = &memLimitInBytes + } + return cpuLimit, memLimit + } + + // If containerStatus is nil or does not contain resource information, try to get resources from container info + return parseResourceLimitsFromInfo(info) +} + +// parseResourceLimitsFromInfo extracts CPU and memory limits from JSON-encoded container info. +func parseResourceLimitsFromInfo(info map[string]string) (*float64, *uint64) { + if info == nil || info["info"] == "" { + log.Debug("Info map is nil or does not contain resource information") + return nil, nil + } + + var parsed resourceInfo + if err := json.Unmarshal([]byte(info["info"]), &parsed); err != nil { + log.Debugf("Failed to parse resources from container info: %v", err) + return nil, nil + } + + cpuPeriod := float64(parsed.RuntimeSpec.Linux.Resources.CPU.Period) + cpuQuota := float64(parsed.RuntimeSpec.Linux.Resources.CPU.Quota) + memLimitInBytes := uint64(parsed.RuntimeSpec.Linux.Resources.Memory.LimitInBytes) + + var cpuLimit *float64 + var memLimit *uint64 + if cpuPeriod != 0 && cpuQuota != 0 { + limit := cpuQuota / cpuPeriod + cpuLimit = &limit + } + if memLimitInBytes != 0 { + memLimit = &memLimitInBytes + } + return cpuLimit, memLimit +} + +// parsePortsFromAnnotations parses container ports from annotations. +func parsePortsFromAnnotations(annotations map[string]string) []workloadmeta.ContainerPort { var wmContainerPorts []workloadmeta.ContainerPort if len(annotations) == 0 { - log.Warn("Annotations are nil or empty") + log.Debug("Annotations are nil or empty") return wmContainerPorts } for key, value := range annotations { if strings.Contains(key, "ports") { - var ports []struct { - Name string `json:"name"` - ContainerPort int `json:"containerPort"` - Protocol string `json:"protocol"` - HostPort uint16 `json:"hostPort"` - } + var ports []portAnnotation if err := json.Unmarshal([]byte(value), &ports); err != nil { - log.Warnf("Failed to parse ports from annotation %s: %v", key, err) - continue //skip to next annotation + log.Debugf("Failed to parse ports from annotation %s: %v", key, err) + continue // skip to next annotation } for _, port := range ports { @@ -271,32 +259,52 @@ func extractPortsFromAnnotations(annotations map[string]string) []workloadmeta.C // parseContainerInfo takes a map[string]string with JSON-encoded data and extracts PID, Hostname, and CgroupsPath. func parseContainerInfo(info map[string]string) (int, string, string) { - var pid int - var hostname, cgroupsPath string - if info == nil || info["info"] == "" { - log.Warn("Container info is nil or empty") - return pid, hostname, cgroupsPath + log.Debug("Container info is nil or empty") + return 0, "", "" } - var parsedInfo struct { - PID int `json:"pid"` - RuntimeSpec struct { - Hostname string `json:"hostname"` - Linux struct { - CgroupsPath string `json:"cgroupsPath"` - } `json:"linux"` - } `json:"runtimeSpec"` + var parsed containerInfo + if err := json.Unmarshal([]byte(info["info"]), &parsed); err != nil { + log.Debugf("Failed to parse container info: %v", err) + return 0, "", "" } - // Unmarshal the JSON string into the struct - if err := json.Unmarshal([]byte(info["info"]), &parsedInfo); err == nil { - pid = parsedInfo.PID - hostname = parsedInfo.RuntimeSpec.Hostname - cgroupsPath = parsedInfo.RuntimeSpec.Linux.CgroupsPath - } else { - log.Warnf("Failed to parse container info: %v", err) - } + return parsed.PID, parsed.RuntimeSpec.Hostname, parsed.RuntimeSpec.Linux.CgroupsPath +} + +// resourceInfo contains CPU and memory resource information. +type resourceInfo struct { + RuntimeSpec struct { + Linux struct { + Resources struct { + CPU struct { + Quota int64 `json:"quota"` + Period int64 `json:"period"` + } `json:"cpu"` + Memory struct { + LimitInBytes int64 `json:"memoryLimitInBytes"` + } `json:"memory"` + } `json:"resources"` + } `json:"linux"` + } `json:"runtimeSpec"` +} + +// portAnnotation contains container port information. +type portAnnotation struct { + Name string `json:"name"` + ContainerPort int `json:"containerPort"` + Protocol string `json:"protocol"` + HostPort uint16 `json:"hostPort"` +} - return pid, hostname, cgroupsPath +// containerInfo contains additional container information. +type containerInfo struct { + PID int `json:"pid"` + RuntimeSpec struct { + Hostname string `json:"hostname"` + Linux struct { + CgroupsPath string `json:"cgroupsPath"` + } `json:"linux"` + } `json:"runtimeSpec"` } diff --git a/comp/core/workloadmeta/collectors/internal/crio/crio.go b/comp/core/workloadmeta/collectors/internal/crio/crio.go index e7ccff6d4b6ae..b4fd38a5307c2 100644 --- a/comp/core/workloadmeta/collectors/internal/crio/crio.go +++ b/comp/core/workloadmeta/collectors/internal/crio/crio.go @@ -10,37 +10,42 @@ package crio import ( "context" + "fmt" + "os" "go.uber.org/fx" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" "github.com/DataDog/datadog-agent/pkg/config/env" + pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" dderrors "github.com/DataDog/datadog-agent/pkg/errors" + "github.com/DataDog/datadog-agent/pkg/sbom/scanner" "github.com/DataDog/datadog-agent/pkg/util/crio" "github.com/DataDog/datadog-agent/pkg/util/log" ) const ( - collectorID = "crio" - componentName = "workloadmeta-crio" - defaultCrioSocketPath = "/var/run/crio/crio.sock" + collectorID = "crio" + componentName = "workloadmeta-crio" ) type collector struct { - id string - client crio.Client - store workloadmeta.Component - catalog workloadmeta.AgentType - seen map[workloadmeta.EntityID]struct{} + id string + client crio.Client + store workloadmeta.Component + catalog workloadmeta.AgentType + seenContainers map[workloadmeta.EntityID]struct{} + seenImages map[workloadmeta.EntityID]struct{} + sbomScanner *scanner.Scanner //nolint: unused } // NewCollector initializes a new CRI-O collector. func NewCollector() (workloadmeta.CollectorProvider, error) { return workloadmeta.CollectorProvider{ Collector: &collector{ - id: collectorID, - seen: make(map[workloadmeta.EntityID]struct{}), - catalog: workloadmeta.NodeAgent | workloadmeta.ProcessAgent, + id: collectorID, + seenContainers: make(map[workloadmeta.EntityID]struct{}), + catalog: workloadmeta.NodeAgent | workloadmeta.ProcessAgent, }, }, nil } @@ -51,20 +56,28 @@ func GetFxOptions() fx.Option { } // Start initializes the collector for workloadmeta. -func (c *collector) Start(_ context.Context, store workloadmeta.Component) error { +func (c *collector) Start(ctx context.Context, store workloadmeta.Component) error { if !env.IsFeaturePresent(env.Crio) { return dderrors.NewDisabled(componentName, "Crio not detected") } c.store = store - criSocket := getCRIOSocketPath() - client, err := crio.NewCRIOClient(criSocket) + client, err := crio.NewCRIOClient() if err != nil { - log.Errorf("CRI-O client creation failed for socket %s: %v", criSocket, err) - client.Close() - return err + return fmt.Errorf("CRI-O client creation failed: %v", err) } c.client = client + + if err := c.startSBOMCollection(ctx); err != nil { + return fmt.Errorf("SBOM collection initialization failed: %v", err) + } + + if imageMetadataCollectionIsEnabled() { + if err := checkOverlayImageDirectoryExists(); err != nil { + log.Warnf("Overlay image directory check failed: %v", err) + } + } + return nil } @@ -72,24 +85,61 @@ func (c *collector) Start(_ context.Context, store workloadmeta.Component) error func (c *collector) Pull(ctx context.Context) error { containers, err := c.client.GetAllContainers(ctx) if err != nil { - log.Errorf("Failed to pull container list: %v", err) - return err + return fmt.Errorf("failed to pull container list: %v", err) } - seen := make(map[workloadmeta.EntityID]struct{}) - events := make([]workloadmeta.CollectorEvent, 0, len(containers)) + seenContainers := make(map[workloadmeta.EntityID]struct{}) + seenImages := make(map[workloadmeta.EntityID]struct{}) + containerEvents := make([]workloadmeta.CollectorEvent, 0, len(containers)) + imageEvents := make([]workloadmeta.CollectorEvent, 0, len(containers)) + + collectImages := imageMetadataCollectionIsEnabled() + for _, container := range containers { - event := c.convertToEvent(ctx, container) - seen[event.Entity.GetID()] = struct{}{} - events = append(events, event) + // Generate container event + containerEvent := c.convertContainerToEvent(ctx, container) + seenContainers[containerEvent.Entity.GetID()] = struct{}{} + containerEvents = append(containerEvents, containerEvent) + + // Skip image collection if the condition is not met + if !collectImages { + continue + } + + imageEvent, err := c.generateImageEventFromContainer(ctx, container) + if err != nil { + log.Warnf("Image event generation failed for container %+v: %v", container, err) + continue + } + + imageID := imageEvent.Entity.GetID() + seenImages[imageID] = struct{}{} + imageEvents = append(imageEvents, *imageEvent) } - for seenID := range c.seen { - if _, ok := seen[seenID]; !ok { - events = append(events, generateUnsetEvent(seenID)) + + // Handle unset events for images if collecting images + if collectImages { + for seenID := range c.seenImages { + if _, ok := seenImages[seenID]; !ok { + unsetEvent := generateUnsetImageEvent(seenID) + imageEvents = append(imageEvents, *unsetEvent) + } } + c.seenImages = seenImages + c.store.Notify(imageEvents) } - c.seen = seen - c.store.Notify(events) + + // Handle unset events for containers + for seenID := range c.seenContainers { + if _, ok := seenContainers[seenID]; !ok { + unsetEvent := generateUnsetContainerEvent(seenID) + containerEvents = append(containerEvents, unsetEvent) + } + } + + c.seenContainers = seenContainers + c.store.Notify(containerEvents) + return nil } @@ -102,3 +152,24 @@ func (c *collector) GetID() string { func (c *collector) GetTargetCatalog() workloadmeta.AgentType { return c.catalog } + +// imageMetadataCollectionIsEnabled checks if image metadata collection is enabled via configuration. +func imageMetadataCollectionIsEnabled() bool { + return pkgconfigsetup.Datadog().GetBool("container_image.enabled") +} + +// sbomCollectionIsEnabled returns true if SBOM collection is enabled. +func sbomCollectionIsEnabled() bool { + return imageMetadataCollectionIsEnabled() && pkgconfigsetup.Datadog().GetBool("sbom.container_image.enabled") +} + +// checkOverlayImageDirectoryExists checks if the overlay-image directory exists. +func checkOverlayImageDirectoryExists() error { + overlayImagePath := crio.GetOverlayImagePath() + if _, err := os.Stat(overlayImagePath); os.IsNotExist(err) { + return fmt.Errorf("overlay-image directory %s does not exist. Ensure this directory is mounted to enable access to layer size and media type", overlayImagePath) + } else if err != nil { + return fmt.Errorf("failed to check overlay-image directory %s: %w. Ensure this directory is mounted to enable access to layer size and media type", overlayImagePath, err) + } + return nil +} diff --git a/comp/core/workloadmeta/collectors/internal/crio/crio_test.go b/comp/core/workloadmeta/collectors/internal/crio/crio_test.go index c2f4b60f316e7..fb6c8a280dbbd 100644 --- a/comp/core/workloadmeta/collectors/internal/crio/crio_test.go +++ b/comp/core/workloadmeta/collectors/internal/crio/crio_test.go @@ -10,470 +10,502 @@ package crio import ( "context" "errors" + "fmt" + "os" "testing" "time" + imgspecs "github.com/opencontainers/image-spec/specs-go/v1" "github.com/stretchr/testify/assert" v1 "k8s.io/cri-api/pkg/apis/runtime/v1" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" + "github.com/DataDog/datadog-agent/pkg/util/pointer" ) -// Helper functions to create pointer values for testing -func floatPtr(f float64) *float64 { - return &f -} - -func uintPtr(u uint64) *uint64 { - return &u -} - -// fakeWorkloadmetaStore is a mock implementation of the workloadmeta store. -type fakeWorkloadmetaStore struct { - workloadmeta.Component - notifiedEvents []workloadmeta.CollectorEvent -} - -func (store *fakeWorkloadmetaStore) Notify(events []workloadmeta.CollectorEvent) { - store.notifiedEvents = append(store.notifiedEvents, events...) -} - -// fakeCRIOClient simulates the CRI-O client for testing purposes. -type fakeCRIOClient struct { - mockGetAllContainers func(ctx context.Context) ([]*v1.Container, error) - mockGetContainerStatus func(ctx context.Context, containerID string) (*v1.ContainerStatusResponse, error) - mockGetPodStatus func(ctx context.Context, podID string) (*v1.PodSandboxStatus, error) - mockGetContainerImage func(ctx context.Context, imageSpec *v1.ImageSpec) (*v1.Image, error) - mockRuntimeMetadata func(ctx context.Context) (*v1.VersionResponse, error) -} - -func (f *fakeCRIOClient) GetAllContainers(ctx context.Context) ([]*v1.Container, error) { - if f.mockGetAllContainers != nil { - return f.mockGetAllContainers(ctx) - } - return []*v1.Container{}, nil -} - -func (f *fakeCRIOClient) GetContainerStatus(ctx context.Context, containerID string) (*v1.ContainerStatusResponse, error) { - if f.mockGetContainerStatus != nil { - return f.mockGetContainerStatus(ctx, containerID) - } - return &v1.ContainerStatusResponse{}, nil -} - -func (f *fakeCRIOClient) GetPodStatus(ctx context.Context, podID string) (*v1.PodSandboxStatus, error) { - if f.mockGetPodStatus != nil { - return f.mockGetPodStatus(ctx, podID) - } - return &v1.PodSandboxStatus{}, nil -} - -func (f *fakeCRIOClient) GetContainerImage(ctx context.Context, imageSpec *v1.ImageSpec) (*v1.Image, error) { - if f.mockGetContainerImage != nil { - return f.mockGetContainerImage(ctx, imageSpec) - } - return &v1.Image{}, nil -} - -func (f *fakeCRIOClient) RuntimeMetadata(ctx context.Context) (*v1.VersionResponse, error) { - if f.mockRuntimeMetadata != nil { - return f.mockRuntimeMetadata(ctx) - } - return &v1.VersionResponse{RuntimeName: "cri-o", RuntimeVersion: "v1.30.0"}, nil -} - -func (f *fakeCRIOClient) Close() error { - return nil -} - -// TestPull verifies that Pull populates container data correctly with PID, Hostname, and CgroupPath. func TestPull(t *testing.T) { - client := &fakeCRIOClient{ - mockGetAllContainers: func(_ context.Context) ([]*v1.Container, error) { - return []*v1.Container{ - {Id: "container1", PodSandboxId: "pod1", Metadata: &v1.ContainerMetadata{Name: "container1"}, Image: &v1.ImageSpec{Image: "myrepo/myimage:latest"}}, - }, nil - }, - mockGetPodStatus: func(_ context.Context, _ string) (*v1.PodSandboxStatus, error) { - return &v1.PodSandboxStatus{Metadata: &v1.PodSandboxMetadata{Namespace: "default"}}, nil - }, - mockGetContainerStatus: func(_ context.Context, _ string) (*v1.ContainerStatusResponse, error) { - return &v1.ContainerStatusResponse{ - Status: &v1.ContainerStatus{ - Metadata: &v1.ContainerMetadata{Name: "container1"}, - State: v1.ContainerState_CONTAINER_RUNNING, - CreatedAt: time.Now().Add(-10 * time.Minute).UnixNano(), - Resources: &v1.ContainerResources{ - Linux: &v1.LinuxContainerResources{ - CpuQuota: 50000, - CpuPeriod: 100000, - MemoryLimitInBytes: 104857600, + + const envVarName = "DD_CONTAINER_IMAGE_ENABLED" + originalValue := os.Getenv(envVarName) + defer os.Setenv(envVarName, originalValue) + + os.Setenv(envVarName, "false") + + createTime := time.Now().Add(-10 * time.Minute).UnixNano() + startTime := time.Now().Add(-5 * time.Minute).UnixNano() + finishTime := time.Now().UnixNano() + + tests := []struct { + name string + mockGetAllContainers func(ctx context.Context) ([]*v1.Container, error) + mockGetPodStatus func(ctx context.Context, podID string) (*v1.PodSandboxStatus, error) + mockGetContainerStatus func(ctx context.Context, containerID string) (*v1.ContainerStatusResponse, error) + mockGetContainerImage func(ctx context.Context, imageSpec *v1.ImageSpec, verbose bool) (*v1.ImageStatusResponse, error) + expectedEvents []workloadmeta.CollectorEvent + expectedError bool + }{ + { + name: "Valid container and image data", + mockGetAllContainers: func(_ context.Context) ([]*v1.Container, error) { + return []*v1.Container{ + {Id: "container1", Image: &v1.ImageSpec{Image: "myrepo/myimage:latest"}, PodSandboxId: "pod1", Metadata: &v1.ContainerMetadata{Name: "container1"}}, + }, nil + }, + mockGetPodStatus: func(_ context.Context, _ string) (*v1.PodSandboxStatus, error) { + return &v1.PodSandboxStatus{Metadata: &v1.PodSandboxMetadata{Namespace: "default"}}, nil + }, + mockGetContainerStatus: func(_ context.Context, _ string) (*v1.ContainerStatusResponse, error) { + return &v1.ContainerStatusResponse{ + Status: &v1.ContainerStatus{ + Metadata: &v1.ContainerMetadata{Name: "container1"}, + State: v1.ContainerState_CONTAINER_RUNNING, + CreatedAt: createTime, + StartedAt: startTime, + FinishedAt: finishTime, + Resources: &v1.ContainerResources{ + Linux: &v1.LinuxContainerResources{ + CpuQuota: 50000, + CpuPeriod: 100000, + MemoryLimitInBytes: 104857600, + }, + }, + }, + }, nil + }, + mockGetContainerImage: func(_ context.Context, _ *v1.ImageSpec, _ bool) (*v1.ImageStatusResponse, error) { + return &v1.ImageStatusResponse{ + Image: &v1.Image{ + Id: "image123", + RepoTags: []string{"myrepo/myimage:latest"}, + RepoDigests: []string{"myrepo/myimage@sha256:123abc"}, + }, + }, nil + }, + expectedEvents: []workloadmeta.CollectorEvent{ + { + Type: workloadmeta.EventTypeSet, + Source: workloadmeta.SourceRuntime, + Entity: &workloadmeta.Container{ + EntityID: workloadmeta.EntityID{Kind: workloadmeta.KindContainer, ID: "container1"}, + EntityMeta: workloadmeta.EntityMeta{ + Name: "container1", + Namespace: "default", + }, + Image: workloadmeta.ContainerImage{ + Name: "myrepo/myimage", + ShortName: "myimage", + RawName: "myrepo/myimage:latest", + ID: "sha256:123abc", + Tag: "latest", + RepoDigest: "myrepo/myimage@sha256:123abc", + }, + Resources: workloadmeta.ContainerResources{ + CPULimit: pointer.Ptr(0.5), + MemoryLimit: pointer.Ptr(uint64(104857600)), + }, + Runtime: workloadmeta.ContainerRuntimeCRIO, + State: workloadmeta.ContainerState{ + Status: workloadmeta.ContainerStatusRunning, + Running: true, + CreatedAt: time.Unix(0, createTime).UTC(), + StartedAt: time.Unix(0, startTime).UTC(), + FinishedAt: time.Unix(0, finishTime).UTC(), + ExitCode: pointer.Ptr(int64(0)), }, }, }, - Info: map[string]string{ - "info": `{ - "pid": 12345, - "runtimeSpec": { - "hostname": "container-host", - "linux": { - "cgroupsPath": "/crio/crio-45e0df1c6e04fda693f5ef2654363c1ff5667bee7f8a9042ff5c629d48fbcbc4" - } - } - }`, - }, - }, nil - }, - mockGetContainerImage: func(_ context.Context, _ *v1.ImageSpec) (*v1.Image, error) { - return &v1.Image{ - Id: "image123", - RepoTags: []string{"myrepo/myimage:latest"}, - RepoDigests: []string{"myrepo/myimage@sha256:123abc"}, - }, nil - }, - } - - store := &fakeWorkloadmetaStore{} - crioCollector := collector{ - client: client, - store: store, - } - - err := crioCollector.Pull(context.Background()) - assert.NoError(t, err) - assert.NotEmpty(t, store.notifiedEvents) - event := store.notifiedEvents[0] - container := event.Entity.(*workloadmeta.Container) - - assert.Equal(t, "container1", container.EntityMeta.Name) - assert.Equal(t, "default", container.EntityMeta.Namespace) - assert.Equal(t, "container1", container.EntityID.ID) - assert.Equal(t, floatPtr(0.5), container.Resources.CPULimit) - assert.Equal(t, uintPtr(104857600), container.Resources.MemoryLimit) - assert.Equal(t, "myrepo/myimage:latest", container.Image.RawName) - assert.Equal(t, 12345, container.PID) - assert.Equal(t, "container-host", container.Hostname) - assert.Equal(t, "/crio/crio-45e0df1c6e04fda693f5ef2654363c1ff5667bee7f8a9042ff5c629d48fbcbc4", container.CgroupPath) -} - -// TestPullContainerStatusError verifies that Pull handles errors when retrieving container status. -func TestPullContainerStatusError(t *testing.T) { - client := &fakeCRIOClient{ - mockGetAllContainers: func(_ context.Context) ([]*v1.Container, error) { - return []*v1.Container{ - {Id: "container1", PodSandboxId: "pod1"}, - }, nil + }, + expectedError: false, }, - mockGetContainerStatus: func(_ context.Context, _ string) (*v1.ContainerStatusResponse, error) { - return nil, errors.New("container status error") - }, - } - - store := &fakeWorkloadmetaStore{} - crioCollector := collector{ - client: client, - store: store, - } - - err := crioCollector.Pull(context.Background()) - assert.NoError(t, err) - assert.Len(t, store.notifiedEvents, 1) - event := store.notifiedEvents[0] - container := event.Entity.(*workloadmeta.Container) - - assert.Equal(t, workloadmeta.ContainerStatusUnknown, container.State.Status) - assert.Empty(t, container.Resources.CPULimit) - assert.Empty(t, container.Resources.MemoryLimit) - assert.Equal(t, 0, container.PID) // Default PID - assert.Equal(t, "", container.Hostname) // Default Hostname - assert.Equal(t, "", container.CgroupPath) // Default CgroupPath -} - -// TestPullNoPodNamespace verifies that Pull handles cases with a missing pod namespace. -func TestPullNoPodNamespace(t *testing.T) { - client := &fakeCRIOClient{ - mockGetAllContainers: func(_ context.Context) ([]*v1.Container, error) { - return []*v1.Container{ - {Id: "container1", PodSandboxId: "nonexistent-pod"}, - }, nil - }, - mockGetPodStatus: func(_ context.Context, _ string) (*v1.PodSandboxStatus, error) { - return nil, errors.New("pod not found") - }, - mockGetContainerStatus: func(_ context.Context, _ string) (*v1.ContainerStatusResponse, error) { - return &v1.ContainerStatusResponse{ - Status: &v1.ContainerStatus{ - Metadata: &v1.ContainerMetadata{Name: "container1"}, - State: v1.ContainerState_CONTAINER_RUNNING, - CreatedAt: time.Now().Add(-10 * time.Minute).UnixNano(), - }, - Info: map[string]string{ - "info": `{ - "pid": 12345, - "runtimeSpec": { - "hostname": "container-host", - "linux": { - "cgroupsPath": "/crio/crio-45e0df1c6e04fda693f5ef2654363c1ff5667bee7f8a9042ff5c629d48fbcbc4" + { + name: "Missing resources in container but available in Info", + mockGetAllContainers: func(_ context.Context) ([]*v1.Container, error) { + return []*v1.Container{ + {Id: "container1", PodSandboxId: "pod1"}, + }, nil + }, + mockGetContainerStatus: func(_ context.Context, _ string) (*v1.ContainerStatusResponse, error) { + return &v1.ContainerStatusResponse{ + Status: &v1.ContainerStatus{ + Metadata: &v1.ContainerMetadata{Name: "container1"}, + State: v1.ContainerState_CONTAINER_RUNNING, + CreatedAt: createTime, + StartedAt: startTime, + FinishedAt: finishTime, + }, + Info: map[string]string{ + "info": `{ + "pid": 12345, + "runtimeSpec": { + "hostname": "container-host", + "linux": { + "cgroupsPath": "/crio/crio-45e0df1c6e04fda693f5ef2654363c1ff5667bee7f8a9042ff5c629d48fbcbc4", + "resources": { + "cpu": { + "quota": 50000, + "period": 100000 + }, + "memory": { + "memoryLimitInBytes": 104857600 + } + } + } } - } - }`, + }`, + }, + }, nil + }, + expectedEvents: []workloadmeta.CollectorEvent{ + { + Type: workloadmeta.EventTypeSet, + Source: workloadmeta.SourceRuntime, + Entity: &workloadmeta.Container{ + EntityID: workloadmeta.EntityID{Kind: workloadmeta.KindContainer, ID: "container1"}, + Runtime: workloadmeta.ContainerRuntimeCRIO, + State: workloadmeta.ContainerState{ + Status: workloadmeta.ContainerStatusRunning, + Running: true, + CreatedAt: time.Unix(0, createTime).UTC(), + StartedAt: time.Unix(0, startTime).UTC(), + FinishedAt: time.Unix(0, finishTime).UTC(), + ExitCode: pointer.Ptr(int64(0)), + }, + Resources: workloadmeta.ContainerResources{ + CPULimit: pointer.Ptr(0.5), + MemoryLimit: pointer.Ptr(uint64(104857600)), + }, + PID: 12345, + Hostname: "container-host", + CgroupPath: "/crio/crio-45e0df1c6e04fda693f5ef2654363c1ff5667bee7f8a9042ff5c629d48fbcbc4", + }, }, - }, nil + }, + expectedError: false, }, - } - - store := &fakeWorkloadmetaStore{} - crioCollector := collector{ - client: client, - store: store, - } - - err := crioCollector.Pull(context.Background()) - assert.NoError(t, err) - container := store.notifiedEvents[0].Entity.(*workloadmeta.Container) - - assert.Equal(t, "", container.EntityMeta.Namespace) // Namespace should be empty - assert.Equal(t, 12345, container.PID) - assert.Equal(t, "container-host", container.Hostname) - assert.Equal(t, "/crio/crio-45e0df1c6e04fda693f5ef2654363c1ff5667bee7f8a9042ff5c629d48fbcbc4", container.CgroupPath) -} - -// TestPullContainerImageError verifies error handling when retrieving container image fails. -func TestPullContainerImageError(t *testing.T) { - client := &fakeCRIOClient{ - mockGetAllContainers: func(_ context.Context) ([]*v1.Container, error) { - return []*v1.Container{ - {Id: "container1", PodSandboxId: "pod1"}, - }, nil - }, - mockGetContainerStatus: func(_ context.Context, _ string) (*v1.ContainerStatusResponse, error) { - return &v1.ContainerStatusResponse{ - Status: &v1.ContainerStatus{ - Metadata: &v1.ContainerMetadata{Name: "container1"}, - State: v1.ContainerState_CONTAINER_RUNNING, - CreatedAt: time.Now().Add(-10 * time.Minute).UnixNano(), - }, - Info: map[string]string{ - "info": `{ - "pid": 12345, - "runtimeSpec": { - "hostname": "container-host", - "linux": { - "cgroupsPath": "/crio/crio-45e0df1c6e04fda693f5ef2654363c1ff5667bee7f8a9042ff5c629d48fbcbc4" - } - } - }`, + { + name: "Container with missing metadata", + mockGetAllContainers: func(_ context.Context) ([]*v1.Container, error) { + return []*v1.Container{ + {Id: "container1", PodSandboxId: "pod1", Metadata: nil}, + }, nil + }, + mockGetContainerStatus: func(_ context.Context, _ string) (*v1.ContainerStatusResponse, error) { + return &v1.ContainerStatusResponse{ + Status: &v1.ContainerStatus{ + State: v1.ContainerState_CONTAINER_RUNNING, + }, + }, nil + }, + expectedEvents: []workloadmeta.CollectorEvent{ + { + Type: workloadmeta.EventTypeSet, + Source: workloadmeta.SourceRuntime, + Entity: &workloadmeta.Container{ + EntityID: workloadmeta.EntityID{Kind: workloadmeta.KindContainer, ID: "container1"}, + Runtime: workloadmeta.ContainerRuntimeCRIO, + State: workloadmeta.ContainerState{ + Running: true, + Status: workloadmeta.ContainerStatusRunning, + CreatedAt: time.Unix(0, 0).UTC(), + StartedAt: time.Unix(0, 0).UTC(), + FinishedAt: time.Unix(0, 0).UTC(), + ExitCode: pointer.Ptr(int64(0)), + }, + }, }, - }, nil - }, - mockGetContainerImage: func(_ context.Context, _ *v1.ImageSpec) (*v1.Image, error) { - return nil, errors.New("image retrieval error") + }, + expectedError: false, }, - } - - store := &fakeWorkloadmetaStore{} - crioCollector := collector{ - client: client, - store: store, - } - - err := crioCollector.Pull(context.Background()) - assert.NoError(t, err) - container := store.notifiedEvents[0].Entity.(*workloadmeta.Container) - - assert.Empty(t, container.Image.ID) - assert.Empty(t, container.Image.RawName) - assert.Equal(t, 12345, container.PID) - assert.Equal(t, "container-host", container.Hostname) - assert.Equal(t, "/crio/crio-45e0df1c6e04fda693f5ef2654363c1ff5667bee7f8a9042ff5c629d48fbcbc4", container.CgroupPath) -} - -// TestPullNoContainers verifies that Pull handles an empty container list gracefully. -func TestPullNoContainers(t *testing.T) { - client := &fakeCRIOClient{ - mockGetAllContainers: func(_ context.Context) ([]*v1.Container, error) { - return []*v1.Container{}, nil - }, - } - - store := &fakeWorkloadmetaStore{} - crioCollector := collector{ - client: client, - store: store, - } - - err := crioCollector.Pull(context.Background()) - assert.NoError(t, err) - assert.Empty(t, store.notifiedEvents) // Should have no events -} - -// TestPullContainerRetrievalError verifies that Pull handles an error when retrieving containers. -func TestPullContainerRetrievalError(t *testing.T) { - client := &fakeCRIOClient{ - mockGetAllContainers: func(_ context.Context) ([]*v1.Container, error) { - return nil, errors.New("failed to retrieve containers") - }, - } - - store := &fakeWorkloadmetaStore{} - crioCollector := collector{ - client: client, - store: store, - } - - err := crioCollector.Pull(context.Background()) - assert.Error(t, err) - assert.Empty(t, store.notifiedEvents) // No events should be generated -} - -// TestPullContainerMissingMetadata verifies that Pull handles containers with missing metadata. -func TestPullContainerMissingMetadata(t *testing.T) { - client := &fakeCRIOClient{ - mockGetAllContainers: func(_ context.Context) ([]*v1.Container, error) { - return []*v1.Container{ - {Id: "container1", PodSandboxId: "pod1", Metadata: nil}, // Missing metadata - }, nil - }, - mockGetContainerStatus: func(_ context.Context, _ string) (*v1.ContainerStatusResponse, error) { - return &v1.ContainerStatusResponse{ - Status: &v1.ContainerStatus{ - State: v1.ContainerState_CONTAINER_RUNNING, - }, - Info: map[string]string{ - "info": `{ - "pid": 12345, - "runtimeSpec": { - "hostname": "container-host", - "linux": { - "cgroupsPath": "/crio/crio-45e0df1c6e04fda693f5ef2654363c1ff5667bee7f8a9042ff5c629d48fbcbc4" - } - } - }`, + { + name: "Error retrieving container status", + mockGetAllContainers: func(_ context.Context) ([]*v1.Container, error) { + return []*v1.Container{ + {Id: "container1", PodSandboxId: "pod1"}, + }, nil + }, + mockGetContainerStatus: func(_ context.Context, _ string) (*v1.ContainerStatusResponse, error) { + return nil, errors.New("container status error") + }, + expectedEvents: []workloadmeta.CollectorEvent{ + { + Type: workloadmeta.EventTypeSet, + Source: workloadmeta.SourceRuntime, + Entity: &workloadmeta.Container{ + EntityID: workloadmeta.EntityID{Kind: workloadmeta.KindContainer, ID: "container1"}, + Runtime: workloadmeta.ContainerRuntimeCRIO, + State: workloadmeta.ContainerState{ + Status: workloadmeta.ContainerStatusUnknown, + }, + }, }, - }, nil + }, + expectedError: false, }, - } - - store := &fakeWorkloadmetaStore{} - crioCollector := collector{ - client: client, - store: store, - } - - err := crioCollector.Pull(context.Background()) - assert.NoError(t, err) - container := store.notifiedEvents[0].Entity.(*workloadmeta.Container) - - assert.Equal(t, "", container.EntityMeta.Name) // Default to unknown name - assert.Equal(t, 12345, container.PID) - assert.Equal(t, "container-host", container.Hostname) - assert.Equal(t, "/crio/crio-45e0df1c6e04fda693f5ef2654363c1ff5667bee7f8a9042ff5c629d48fbcbc4", container.CgroupPath) -} - -// TestPullContainerDefaultResourceLimits verifies that Pull handles containers with default resource limits. -func TestPullContainerDefaultResourceLimits(t *testing.T) { - client := &fakeCRIOClient{ - mockGetAllContainers: func(_ context.Context) ([]*v1.Container, error) { - return []*v1.Container{ - {Id: "container1", PodSandboxId: "pod1"}, - }, nil + { + name: "No containers returned", + mockGetAllContainers: func(_ context.Context) ([]*v1.Container, error) { + return []*v1.Container{}, nil + }, + expectedEvents: nil, + expectedError: false, }, - mockGetContainerStatus: func(_ context.Context, _ string) (*v1.ContainerStatusResponse, error) { - return &v1.ContainerStatusResponse{ - Status: &v1.ContainerStatus{ - Metadata: &v1.ContainerMetadata{Name: "container1"}, - Resources: &v1.ContainerResources{ - Linux: &v1.LinuxContainerResources{ - CpuQuota: 0, CpuPeriod: 0, MemoryLimitInBytes: 0, + { + name: "Error retrieving containers", + mockGetAllContainers: func(_ context.Context) ([]*v1.Container, error) { + return nil, errors.New("failed to retrieve containers") + }, + expectedEvents: nil, + expectedError: true, + }, + { + name: "All resource limits are zero", + mockGetAllContainers: func(_ context.Context) ([]*v1.Container, error) { + return []*v1.Container{ + {Id: "container1", Image: &v1.ImageSpec{Image: "myrepo/myimage:latest"}, PodSandboxId: "pod1", Metadata: &v1.ContainerMetadata{Name: "container1"}}, + }, nil + }, + mockGetPodStatus: func(_ context.Context, _ string) (*v1.PodSandboxStatus, error) { + return &v1.PodSandboxStatus{Metadata: &v1.PodSandboxMetadata{Namespace: "default"}}, nil + }, + mockGetContainerStatus: func(_ context.Context, _ string) (*v1.ContainerStatusResponse, error) { + return &v1.ContainerStatusResponse{ + Status: &v1.ContainerStatus{ + Metadata: &v1.ContainerMetadata{Name: "container1"}, + State: v1.ContainerState_CONTAINER_RUNNING, + CreatedAt: createTime, + StartedAt: startTime, + FinishedAt: finishTime, + Resources: &v1.ContainerResources{ + Linux: &v1.LinuxContainerResources{ + CpuQuota: 0, + CpuPeriod: 0, + MemoryLimitInBytes: 0, + }, + }, + }, + }, nil + }, + expectedEvents: []workloadmeta.CollectorEvent{ + { + Type: workloadmeta.EventTypeSet, + Source: workloadmeta.SourceRuntime, + Entity: &workloadmeta.Container{ + EntityID: workloadmeta.EntityID{Kind: workloadmeta.KindContainer, ID: "container1"}, + EntityMeta: workloadmeta.EntityMeta{ + Name: "container1", + Namespace: "default", + }, + Image: workloadmeta.ContainerImage{ + Name: "myrepo/myimage", + ShortName: "myimage", + RawName: "myrepo/myimage:latest", + ID: "sha256:123abc", + Tag: "latest", + RepoDigest: "myrepo/myimage@sha256:123abc", + }, + Resources: workloadmeta.ContainerResources{ + CPULimit: nil, // No CPU limit + MemoryLimit: nil, // No memory limit + }, + Runtime: workloadmeta.ContainerRuntimeCRIO, + State: workloadmeta.ContainerState{ + Status: workloadmeta.ContainerStatusRunning, + Running: true, + CreatedAt: time.Unix(0, createTime).UTC(), + StartedAt: time.Unix(0, startTime).UTC(), + FinishedAt: time.Unix(0, finishTime).UTC(), + ExitCode: pointer.Ptr(int64(0)), }, }, }, - Info: map[string]string{ - "info": `{ - "pid": 12345, - "runtimeSpec": { - "hostname": "container-host", - "linux": { - "cgroupsPath": "/crio/crio-45e0df1c6e04fda693f5ef2654363c1ff5667bee7f8a9042ff5c629d48fbcbc4" - } - } - }`, - }, - }, nil + }, + expectedError: false, + }, + { + name: "Error retrieving container", + mockGetAllContainers: func(_ context.Context) ([]*v1.Container, error) { + return nil, errors.New("failed to retrieve containers") + }, + expectedEvents: nil, + expectedError: true, }, } - store := &fakeWorkloadmetaStore{} - crioCollector := collector{ - client: client, - store: store, + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + client := &mockCRIOClient{ + mockGetAllContainers: tt.mockGetAllContainers, + mockGetPodStatus: tt.mockGetPodStatus, + mockGetContainerStatus: tt.mockGetContainerStatus, + mockGetContainerImage: tt.mockGetContainerImage, + } + + store := &mockWorkloadmetaStore{} + crioCollector := collector{ + client: client, + store: store, + } + + err := crioCollector.Pull(context.Background()) + + if tt.expectedError { + assert.Error(t, err) + } else { + assert.NoError(t, err) + } + + assert.Equal(t, tt.expectedEvents, store.notifiedEvents) + }) } - - err := crioCollector.Pull(context.Background()) - assert.NoError(t, err) - container := store.notifiedEvents[0].Entity.(*workloadmeta.Container) - - assert.Nil(t, container.Resources.CPULimit) - assert.Nil(t, container.Resources.MemoryLimit) - assert.Equal(t, 12345, container.PID) - assert.Equal(t, "container-host", container.Hostname) - assert.Equal(t, "/crio/crio-45e0df1c6e04fda693f5ef2654363c1ff5667bee7f8a9042ff5c629d48fbcbc4", container.CgroupPath) } -// TestPullContainerResourceFallbackToInfo verifies that Pull uses resource limits from info when Resources in containerStatus is nil. -func TestPullContainerResourceFallbackToInfo(t *testing.T) { - client := &fakeCRIOClient{ - mockGetAllContainers: func(_ context.Context) ([]*v1.Container, error) { - return []*v1.Container{ - {Id: "container1", PodSandboxId: "pod1"}, - }, nil - }, - mockGetContainerStatus: func(_ context.Context, _ string) (*v1.ContainerStatusResponse, error) { - return &v1.ContainerStatusResponse{ - Status: &v1.ContainerStatus{ - Metadata: &v1.ContainerMetadata{Name: "container1"}, - State: v1.ContainerState_CONTAINER_RUNNING, - CreatedAt: time.Now().Add(-10 * time.Minute).UnixNano(), - Resources: nil, // No resources in status - }, - Info: map[string]string{ - "info": `{ - "pid": 12345, - "runtimeSpec": { - "hostname": "container-host", - "linux": { - "cgroupsPath": "/crio/crio-45e0df1c6e04fda693f5ef2654363c1ff5667bee7f8a9042ff5c629d48fbcbc4", - "resources": { - "cpu": { - "quota": 50000, - "period": 100000 +func TestGenerateImageEventFromContainer(t *testing.T) { + time1, _ := time.Parse(time.RFC3339, "2023-01-01T00:00:00Z") + time2, _ := time.Parse(time.RFC3339, "2023-01-02T00:00:00Z") + tests := []struct { + name string + mockGetContainerImg func(context.Context, *v1.ImageSpec, bool) (*v1.ImageStatusResponse, error) + container *v1.Container + expectedEvent *workloadmeta.CollectorEvent + expectError bool + }{ + { + name: "Valid image metadata with history and layers", + mockGetContainerImg: func(_ context.Context, _ *v1.ImageSpec, _ bool) (*v1.ImageStatusResponse, error) { + return &v1.ImageStatusResponse{ + Image: &v1.Image{ + Id: "image123", + RepoTags: []string{"myrepo/myimage:latest"}, + RepoDigests: []string{"myrepo/myimage@sha256:123abc"}, + }, + Info: map[string]string{ + "info": `{ + "labels": {"label1": "value1", "label2": "value2"}, + "imageSpec": { + "os": "linux", + "architecture": "amd64", + "variant": "v8", + "rootfs": { + "diff_ids": ["sha256:layer1digest", "sha256:layer2digest"] + }, + "history": [ + { + "created": "2023-01-01T00:00:00Z", + "created_by": "command1", + "author": "author1", + "comment": "Layer 1 comment", + "empty_layer": false }, - "memory": { - "memoryLimitInBytes": 104857600 + { + "created": "2023-01-02T00:00:00Z", + "created_by": "command2", + "author": "author2", + "comment": "Layer 2 comment", + "empty_layer": false } - } + ] } - } - }`, + }`, + }, + }, nil + }, + container: &v1.Container{ + Id: "container1", + Image: &v1.ImageSpec{Image: "myrepo/myimage:latest"}, + PodSandboxId: "pod1", + }, + expectedEvent: &workloadmeta.CollectorEvent{ + Type: workloadmeta.EventTypeSet, + Source: workloadmeta.SourceRuntime, + Entity: &workloadmeta.ContainerImageMetadata{ + EntityID: workloadmeta.EntityID{Kind: workloadmeta.KindContainerImageMetadata, ID: "sha256:123abc"}, + EntityMeta: workloadmeta.EntityMeta{ + Name: "myrepo/myimage:latest", + Labels: map[string]string{"label1": "value1", "label2": "value2"}, + }, + RepoTags: []string{"myrepo/myimage:latest"}, + RepoDigests: []string{"myrepo/myimage@sha256:123abc"}, + OS: "linux", + Architecture: "amd64", + Variant: "v8", + Layers: []workloadmeta.ContainerImageLayer{ + { + Digest: "sha256:layer1digest", + History: &imgspecs.History{Created: &time1, CreatedBy: "command1", Author: "author1", Comment: "Layer 1 comment"}, + SizeBytes: 0, + }, + { + Digest: "sha256:layer2digest", + History: &imgspecs.History{Created: &time2, CreatedBy: "command2", Author: "author2", Comment: "Layer 2 comment"}, + SizeBytes: 0, + }, + }, + }, + }, + expectError: false, + }, + { + name: "Image has no repo tags or digest", + mockGetContainerImg: func(_ context.Context, _ *v1.ImageSpec, _ bool) (*v1.ImageStatusResponse, error) { + return &v1.ImageStatusResponse{ + Image: &v1.Image{ + Id: "image123", + }, + }, nil + }, + container: &v1.Container{ + Id: "container1", + Image: &v1.ImageSpec{Image: "repo/image:tag"}, + PodSandboxId: "pod1", + }, + expectedEvent: &workloadmeta.CollectorEvent{ + Type: workloadmeta.EventTypeSet, + Source: workloadmeta.SourceRuntime, + Entity: &workloadmeta.ContainerImageMetadata{ + EntityID: workloadmeta.EntityID{Kind: workloadmeta.KindContainerImageMetadata, ID: "image123"}, + EntityMeta: workloadmeta.EntityMeta{ + Name: "", + }, + RepoTags: nil, + RepoDigests: nil, }, - }, nil + }, + expectError: false, + }, + { + name: "Error retrieving image metadata", + mockGetContainerImg: func(_ context.Context, _ *v1.ImageSpec, _ bool) (*v1.ImageStatusResponse, error) { + return nil, fmt.Errorf("failed to retrieve image metadata") + }, + container: &v1.Container{ + Id: "container1", + Image: &v1.ImageSpec{Image: "repo/image:tag"}, + PodSandboxId: "pod1", + }, + expectedEvent: nil, + expectError: true, }, } - store := &fakeWorkloadmetaStore{} - crioCollector := collector{ - client: client, - store: store, + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + client := &mockCRIOClient{ + mockGetContainerImage: tt.mockGetContainerImg, + } + store := &mockWorkloadmetaStore{} + crioCollector := collector{ + client: client, + store: store, + } + + event, err := crioCollector.generateImageEventFromContainer(context.Background(), tt.container) + + if tt.expectError { + assert.Error(t, err) + } else { + assert.NoError(t, err) + assert.Equal(t, tt.expectedEvent, event) + } + }) } - - err := crioCollector.Pull(context.Background()) - assert.NoError(t, err) - assert.Len(t, store.notifiedEvents, 1) - container := store.notifiedEvents[0].Entity.(*workloadmeta.Container) - - assert.Equal(t, floatPtr(0.5), container.Resources.CPULimit) - assert.Equal(t, uintPtr(104857600), container.Resources.MemoryLimit) - assert.Equal(t, 12345, container.PID) - assert.Equal(t, "container-host", container.Hostname) - assert.Equal(t, "/crio/crio-45e0df1c6e04fda693f5ef2654363c1ff5667bee7f8a9042ff5c629d48fbcbc4", container.CgroupPath) } diff --git a/comp/core/workloadmeta/collectors/internal/crio/image.go b/comp/core/workloadmeta/collectors/internal/crio/image.go new file mode 100644 index 0000000000000..a5f25dc5abfb7 --- /dev/null +++ b/comp/core/workloadmeta/collectors/internal/crio/image.go @@ -0,0 +1,272 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build crio + +package crio + +import ( + "context" + "encoding/json" + "fmt" + "os" + "strings" + "time" + + imgspecs "github.com/opencontainers/image-spec/specs-go/v1" + v1 "k8s.io/cri-api/pkg/apis/runtime/v1" + + workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" + "github.com/DataDog/datadog-agent/pkg/util/crio" + "github.com/DataDog/datadog-agent/pkg/util/log" +) + +// generateImageEventFromContainer creates a workloadmeta image event based on container image metadata. +func (c *collector) generateImageEventFromContainer(ctx context.Context, container *v1.Container) (*workloadmeta.CollectorEvent, error) { + if container.GetImage() == nil || container.GetImage().GetImage() == "" { + return nil, fmt.Errorf("container has an invalid image reference: %+v", container) + } + imageSpec := v1.ImageSpec{Image: container.GetImage().GetImage()} + imageResp, err := c.client.GetContainerImage(ctx, &imageSpec, true) + if err != nil { + return nil, fmt.Errorf("failed to retrieve image data for container %+v: %w", container, err) + } + image := imageResp.GetImage() + + namespace := getPodNamespace(ctx, c.client, container.GetPodSandboxId()) + + imageEvent := c.convertImageToEvent(image, imageResp.GetInfo(), namespace) + return imageEvent, nil +} + +// convertImageToEvent converts a CRI-O image and additional metadata into a workloadmeta CollectorEvent. +func (c *collector) convertImageToEvent(img *v1.Image, info map[string]string, namespace string) *workloadmeta.CollectorEvent { + var annotations map[string]string + if img.GetSpec() == nil { + annotations = nil + } else { + annotations = img.GetSpec().GetAnnotations() + } + + var name string + if len(img.GetRepoTags()) > 0 { + name = img.GetRepoTags()[0] + } + imgID := img.GetId() + imgInfo := parseImageInfo(info, crio.GetOverlayImagePath(), imgID) + + imgIDAsDigest, err := parseDigests(img.GetRepoDigests()) + if err == nil { + imgID = imgIDAsDigest + } else if sbomCollectionIsEnabled() { + log.Warnf("Failed to parse digest for image with ID %s: %v. As a result, SBOM vulnerabilities may not be properly linked to this image.", imgID, err) + } + + imgMeta := workloadmeta.ContainerImageMetadata{ + EntityID: workloadmeta.EntityID{ + Kind: workloadmeta.KindContainerImageMetadata, + ID: imgID, + }, + EntityMeta: workloadmeta.EntityMeta{ + Name: name, + Namespace: namespace, + Annotations: annotations, + Labels: imgInfo.labels, + }, + SizeBytes: imgInfo.size, + RepoTags: img.GetRepoTags(), + RepoDigests: img.GetRepoDigests(), + OS: imgInfo.os, + Architecture: imgInfo.arch, + Variant: imgInfo.variant, + Layers: imgInfo.layers, + } + + return &workloadmeta.CollectorEvent{ + Type: workloadmeta.EventTypeSet, + Source: workloadmeta.SourceRuntime, + Entity: &imgMeta, + } +} + +// generateUnsetImageEvent generates an unset CollectorEvent for a removed or deleted image. +func generateUnsetImageEvent(seenID workloadmeta.EntityID) *workloadmeta.CollectorEvent { + return &workloadmeta.CollectorEvent{ + Type: workloadmeta.EventTypeUnset, + Source: workloadmeta.SourceRuntime, + Entity: &workloadmeta.ContainerImageMetadata{ + EntityID: seenID, + }, + } +} + +// parseDigests extracts the SHA from the image reference digest. +// The backend requires the image ID to be set as the SHA to correctly associate the SBOM with the image. +func parseDigests(imageRefs []string) (string, error) { + if len(imageRefs) == 0 { + return "", fmt.Errorf("empty digests list") + } + parts := strings.SplitN(imageRefs[0], "@", 2) + if len(parts) < 2 { + return "", fmt.Errorf("invalid format: no digest found in %s", imageRefs[0]) + } + + return parts[1], nil +} + +// parseImageInfo extracts operating system, architecture, variant, labels, and layer history from image info metadata. +func parseImageInfo(info map[string]string, layerFilePath string, imgID string) imageInfo { + var imgInfo imageInfo + + // Fetch additional layer information from the file + layerDetails, err := parseLayerInfo(layerFilePath, imgID) + if err != nil { + log.Debugf("Failed to get layer mediaType and size: %v", err) + } + + if imgSpec, ok := info["info"]; ok { + var parsed parsedInfo + + if err := json.Unmarshal([]byte(imgSpec), &parsed); err == nil { + imgInfo.os = parsed.ImageSpec.OS + imgInfo.arch = parsed.ImageSpec.Architecture + imgInfo.variant = parsed.ImageSpec.Variant + imgInfo.labels = parsed.Labels + + // Match layers with their history entries, including empty layers + historyIndex := 0 + for layerIndex, layerDigest := range parsed.ImageSpec.RootFS.DiffIDs { + // Append all empty layers encountered before this layer + for historyIndex < len(parsed.ImageSpec.History) { + history := parsed.ImageSpec.History[historyIndex] + if history.EmptyLayer { + created, _ := time.Parse(time.RFC3339, history.Created) + imgInfo.layers = append(imgInfo.layers, workloadmeta.ContainerImageLayer{ + History: &imgspecs.History{ + Created: &created, + CreatedBy: history.CreatedBy, + Author: history.Author, + Comment: history.Comment, + EmptyLayer: history.EmptyLayer, + }, + }) + historyIndex++ + } else { + // Stop at the first non-empty layer + break + } + } + + // Match the non-empty history to this layer + var historyEntry *imgspecs.History + if historyIndex < len(parsed.ImageSpec.History) { + h := parsed.ImageSpec.History[historyIndex] + created, _ := time.Parse(time.RFC3339, h.Created) + historyEntry = &imgspecs.History{ + Created: &created, + CreatedBy: h.CreatedBy, + Author: h.Author, + Comment: h.Comment, + EmptyLayer: h.EmptyLayer, + } + historyIndex++ + } + + // Create and append the layer with the matched history + layer := workloadmeta.ContainerImageLayer{ + Digest: layerDigest, + History: historyEntry, + } + + // Add additional details from parsed layer info + if layerIndex < len(layerDetails) { + imgInfo.size += int64(layerDetails[layerIndex].Size) + layer.SizeBytes = int64(layerDetails[layerIndex].Size) + layer.MediaType = layerDetails[layerIndex].MediaType + } + + imgInfo.layers = append(imgInfo.layers, layer) + } + + // Append any remaining empty layers + for historyIndex < len(parsed.ImageSpec.History) { + history := parsed.ImageSpec.History[historyIndex] + if history.EmptyLayer { + created, _ := time.Parse(time.RFC3339, history.Created) + imgInfo.layers = append(imgInfo.layers, workloadmeta.ContainerImageLayer{ + History: &imgspecs.History{ + Created: &created, + CreatedBy: history.CreatedBy, + Author: history.Author, + Comment: history.Comment, + EmptyLayer: history.EmptyLayer, + }, + }) + } + historyIndex++ + } + } else { + log.Warnf("Failed to parse image info: %v", err) + } + } + + return imgInfo +} + +// parseLayerInfo reads a JSON file from the given path and returns a list of layerInfo +func parseLayerInfo(rootPath string, imgID string) ([]layerInfo, error) { + filePath := fmt.Sprintf("%s/%s/manifest", rootPath, imgID) + file, err := os.Open(filePath) + if err != nil { + return nil, fmt.Errorf("failed to open file: %w", err) + } + defer file.Close() + + var manifest struct { + Layers []layerInfo `json:"layers"` + } + + if err := json.NewDecoder(file).Decode(&manifest); err != nil { + return nil, fmt.Errorf("failed to decode JSON: %w", err) + } + + return manifest.Layers, nil +} + +// layerInfo holds the size and mediaType of each layer +type layerInfo struct { + Size int `json:"size"` + MediaType string `json:"mediaType"` +} + +// imageInfo holds the size, OS, architecture, variant, labels, and layers of an image. +type imageInfo struct { + size int64 + os string + arch string + variant string + labels map[string]string + layers []workloadmeta.ContainerImageLayer +} + +// parsedInfo holds layer metadata extracted from image JSON. +type parsedInfo struct { + Labels map[string]string `json:"labels"` + ImageSpec struct { + OS string `json:"os"` + Architecture string `json:"architecture"` + Variant string `json:"variant"` + RootFS struct { + DiffIDs []string `json:"diff_ids"` + } `json:"rootfs"` + History []struct { + Created string `json:"created"` + CreatedBy string `json:"created_by"` + Author string `json:"author"` + Comment string `json:"comment"` + EmptyLayer bool `json:"empty_layer"` + } `json:"history"` + } `json:"imageSpec"` +} diff --git a/comp/core/workloadmeta/collectors/internal/crio/image_sbom_stub.go b/comp/core/workloadmeta/collectors/internal/crio/image_sbom_stub.go new file mode 100644 index 0000000000000..3b7c67e101db1 --- /dev/null +++ b/comp/core/workloadmeta/collectors/internal/crio/image_sbom_stub.go @@ -0,0 +1,16 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build crio && !trivy + +package crio + +import ( + "context" +) + +func (c *collector) startSBOMCollection(context.Context) error { + return nil +} diff --git a/comp/core/workloadmeta/collectors/internal/crio/image_sbom_trivy.go b/comp/core/workloadmeta/collectors/internal/crio/image_sbom_trivy.go new file mode 100644 index 0000000000000..cdec9987ba615 --- /dev/null +++ b/comp/core/workloadmeta/collectors/internal/crio/image_sbom_trivy.go @@ -0,0 +1,186 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build crio && trivy + +package crio + +import ( + "context" + "fmt" + "os" + + "github.com/CycloneDX/cyclonedx-go" + + workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" + "github.com/DataDog/datadog-agent/pkg/sbom" + "github.com/DataDog/datadog-agent/pkg/sbom/collectors" + "github.com/DataDog/datadog-agent/pkg/sbom/collectors/crio" + "github.com/DataDog/datadog-agent/pkg/sbom/scanner" + crioutil "github.com/DataDog/datadog-agent/pkg/util/crio" + "github.com/DataDog/datadog-agent/pkg/util/log" +) + +// startSBOMCollection starts the SBOM collection process and subscribes to image metadata events. +func (c *collector) startSBOMCollection(ctx context.Context) error { + if !sbomCollectionIsEnabled() { + return nil + } + if err := overlayDirectoryAccess(); err != nil { + return fmt.Errorf("SBOM collection enabled, but error accessing overlay directories: %w", err) + } + c.sbomScanner = scanner.GetGlobalScanner() + if c.sbomScanner == nil { + return fmt.Errorf("global SBOM scanner not found") + } + + filter := workloadmeta.NewFilterBuilder(). + SetEventType(workloadmeta.EventTypeSet). + AddKind(workloadmeta.KindContainerImageMetadata). + Build() + + imgEventsCh := c.store.Subscribe("SBOM collector", workloadmeta.NormalPriority, filter) + + scanner := collectors.GetCrioScanner() + if scanner == nil { + return fmt.Errorf("failed to retrieve CRI-O SBOM scanner") + } + + resultChan := scanner.Channel() + if resultChan == nil { + return fmt.Errorf("failed to retrieve scanner result channel") + } + + go c.handleImageEvents(ctx, imgEventsCh) + go c.startScanResultHandler(ctx, resultChan) + return nil +} + +// handleImageEvents listens for container image metadata events, triggering SBOM generation for new images. +func (c *collector) handleImageEvents(ctx context.Context, imgEventsCh <-chan workloadmeta.EventBundle) { + for { + select { + case <-ctx.Done(): + return + case eventBundle, ok := <-imgEventsCh: + if !ok { + log.Warnf("Event channel closed, exiting event handling loop.") + return + } + c.handleEventBundle(eventBundle) + } + } +} + +// handleEventBundle handles ContainerImageMetadata set events for which no SBOM generation attempt was done. +func (c *collector) handleEventBundle(eventBundle workloadmeta.EventBundle) { + eventBundle.Acknowledge() + for _, event := range eventBundle.Events { + image := event.Entity.(*workloadmeta.ContainerImageMetadata) + + if image.SBOM != nil && image.SBOM.Status != workloadmeta.Pending { + continue + } + if err := c.extractSBOMWithTrivy(image.ID); err != nil { + log.Warnf("Error extracting SBOM for image: namespace=%s name=%s, err: %s", image.Namespace, image.Name, err) + } + } +} + +// extractSBOMWithTrivy emits a scan request to the SBOM scanner. The scan result will be sent to the resultChan. +func (c *collector) extractSBOMWithTrivy(imageID string) error { + if err := c.sbomScanner.Scan(crio.NewScanRequest(imageID)); err != nil { + return fmt.Errorf("failed to trigger SBOM generation for CRI-O image ID %s: %w", imageID, err) + } + return nil +} + +// startScanResultHandler receives SBOM scan results and updates the workloadmeta entities accordingly. +func (c *collector) startScanResultHandler(ctx context.Context, resultChan <-chan sbom.ScanResult) { + for { + select { + case <-ctx.Done(): + return + case result, ok := <-resultChan: + if !ok { + return + } + c.processScanResult(result) + } + } +} + +// processScanResult updates the workloadmeta store with the SBOM for the image. +func (c *collector) processScanResult(result sbom.ScanResult) { + if result.ImgMeta == nil { + log.Errorf("Scan result missing image identifier. Error: %v", result.Error) + return + } + + c.notifyStoreWithSBOMForImage(result.ImgMeta.ID, convertScanResultToSBOM(result)) +} + +// convertScanResultToSBOM converts an SBOM scan result to a workloadmeta SBOM. +func convertScanResultToSBOM(result sbom.ScanResult) *workloadmeta.SBOM { + status := workloadmeta.Success + reportedError := "" + var report *cyclonedx.BOM + + if result.Error != nil { + log.Errorf("SBOM generation failed for image: %v", result.Error) + status = workloadmeta.Failed + reportedError = result.Error.Error() + } else if bom, err := result.Report.ToCycloneDX(); err != nil { + log.Errorf("Failed to convert report to CycloneDX BOM.") + status = workloadmeta.Failed + reportedError = err.Error() + } else { + report = bom + } + + return &workloadmeta.SBOM{ + CycloneDXBOM: report, + GenerationTime: result.CreatedAt, + GenerationDuration: result.Duration, + Status: status, + Error: reportedError, + } +} + +// notifyStoreWithSBOMForImage notifies the store about the SBOM for a given image. +func (c *collector) notifyStoreWithSBOMForImage(imageID string, sbom *workloadmeta.SBOM) { + c.store.Notify([]workloadmeta.CollectorEvent{ + { + Type: workloadmeta.EventTypeSet, + Source: workloadmeta.SourceTrivy, + Entity: &workloadmeta.ContainerImageMetadata{ + EntityID: workloadmeta.EntityID{ + Kind: workloadmeta.KindContainerImageMetadata, + ID: imageID, + }, + SBOM: sbom, + }, + }, + }) +} + +// overlayDirectoryAccess checks if the overlay directory and overlay-layers directory are accessible. +func overlayDirectoryAccess() error { + overlayPath := crioutil.GetOverlayPath() + if _, err := os.Stat(overlayPath); os.IsNotExist(err) { + return fmt.Errorf("overlay directory %s does not exist. Ensure this directory is mounted for SBOM collection to work", overlayPath) + } else if err != nil { + return fmt.Errorf("failed to check overlay directory %s: %w. Ensure this directory is mounted for SBOM collection to work", overlayPath, err) + } + + overlayLayersPath := crioutil.GetOverlayLayersPath() + if _, err := os.Stat(overlayLayersPath); os.IsNotExist(err) { + return fmt.Errorf("overlay-layers directory %s does not exist. Ensure this directory is mounted for SBOM collection to work", overlayLayersPath) + } else if err != nil { + return fmt.Errorf("failed to check overlay-layers directory %s: %w. Ensure this directory is mounted for SBOM collection to work", overlayLayersPath, err) + } + + return nil +} diff --git a/comp/core/workloadmeta/collectors/internal/crio/mock.go b/comp/core/workloadmeta/collectors/internal/crio/mock.go new file mode 100644 index 0000000000000..f48fb7d0e8d10 --- /dev/null +++ b/comp/core/workloadmeta/collectors/internal/crio/mock.go @@ -0,0 +1,92 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build crio + +package crio + +import ( + "context" + "errors" + + v1 "k8s.io/cri-api/pkg/apis/runtime/v1" + + workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" +) + +// mockWorkloadmetaStore is a mock implementation of the workloadmeta store for testing purposes. +type mockWorkloadmetaStore struct { + workloadmeta.Component + notifiedEvents []workloadmeta.CollectorEvent +} + +// Notify appends events to the store's notifiedEvents, simulating notification behavior in tests. +func (store *mockWorkloadmetaStore) Notify(events []workloadmeta.CollectorEvent) { + store.notifiedEvents = append(store.notifiedEvents, events...) +} + +// mockCRIOClient simulates the CRI-O client, with configurable behavior through function hooks. +type mockCRIOClient struct { + mockGetAllContainers func(ctx context.Context) ([]*v1.Container, error) + mockGetContainerStatus func(ctx context.Context, containerID string) (*v1.ContainerStatusResponse, error) + mockGetPodStatus func(ctx context.Context, podID string) (*v1.PodSandboxStatus, error) + mockGetContainerImage func(ctx context.Context, imageSpec *v1.ImageSpec, verbose bool) (*v1.ImageStatusResponse, error) + mockRuntimeMetadata func(ctx context.Context) (*v1.VersionResponse, error) + mockGetCRIOImageLayers func(imgMeta *workloadmeta.ContainerImageMetadata) ([]string, error) +} + +// GetAllContainers returns a list of containers, or calls a mock function if defined. +func (f *mockCRIOClient) GetAllContainers(ctx context.Context) ([]*v1.Container, error) { + if f.mockGetAllContainers != nil { + return f.mockGetAllContainers(ctx) + } + return []*v1.Container{}, nil +} + +// GetContainerStatus retrieves the status of a container, or calls a mock function if defined. +func (f *mockCRIOClient) GetContainerStatus(ctx context.Context, containerID string) (*v1.ContainerStatusResponse, error) { + if f.mockGetContainerStatus != nil { + return f.mockGetContainerStatus(ctx, containerID) + } + return &v1.ContainerStatusResponse{}, nil +} + +// GetPodStatus retrieves the status of a pod, or calls a mock function if defined. +func (f *mockCRIOClient) GetPodStatus(ctx context.Context, podID string) (*v1.PodSandboxStatus, error) { + if f.mockGetPodStatus != nil { + return f.mockGetPodStatus(ctx, podID) + } + return &v1.PodSandboxStatus{}, nil +} + +// GetContainerImage retrieves image metadata, or calls a mock function if defined. +func (f *mockCRIOClient) GetContainerImage(ctx context.Context, imageSpec *v1.ImageSpec, verbose bool) (*v1.ImageStatusResponse, error) { + if f.mockGetContainerImage != nil { + return f.mockGetContainerImage(ctx, imageSpec, verbose) + } + return &v1.ImageStatusResponse{ + Image: &v1.Image{ + Id: "image123", + RepoTags: []string{"myrepo/myimage:latest"}, + RepoDigests: []string{"myrepo/myimage@sha256:123abc"}, + }, + }, nil +} + +// RuntimeMetadata retrieves the runtime metadata, or calls a mock function if defined. +func (f *mockCRIOClient) RuntimeMetadata(ctx context.Context) (*v1.VersionResponse, error) { + if f.mockRuntimeMetadata != nil { + return f.mockRuntimeMetadata(ctx) + } + return &v1.VersionResponse{RuntimeName: "cri-o", RuntimeVersion: "v1.30.0"}, nil +} + +// GetCRIOImageLayers retrieves the `diff` directories of each image layer, or calls a mock function if defined. +func (f *mockCRIOClient) GetCRIOImageLayers(_ *workloadmeta.ContainerImageMetadata) ([]string, error) { + if f.mockGetCRIOImageLayers != nil { + return f.mockGetCRIOImageLayers(nil) + } + return nil, errors.New("mock GetCRIOImageLayers function not defined") +} diff --git a/comp/core/workloadmeta/def/types.go b/comp/core/workloadmeta/def/types.go index da429ab5b0ff2..54bcfece491f7 100644 --- a/comp/core/workloadmeta/def/types.go +++ b/comp/core/workloadmeta/def/types.go @@ -64,6 +64,10 @@ const ( // use this source. SourceRuntime Source = "runtime" + // SourceTrivy represents entities detected by Trivy during the SBOM scan. + // `crio` uses this source. + SourceTrivy Source = "trivy" + // SourceNodeOrchestrator represents entities detected by the node // agent from an orchestrator. `kubelet` and `ecs` use this. SourceNodeOrchestrator Source = "node_orchestrator" @@ -1108,13 +1112,17 @@ func (i ContainerImageMetadata) String(verbose bool) string { _, _ = fmt.Fprintln(&sb, "Variant:", i.Variant) _, _ = fmt.Fprintln(&sb, "----------- SBOM -----------") - _, _ = fmt.Fprintln(&sb, "Status:", i.SBOM.Status) - switch i.SBOM.Status { - case Success: - _, _ = fmt.Fprintf(&sb, "Generated in: %.2f seconds\n", i.SBOM.GenerationDuration.Seconds()) - case Failed: - _, _ = fmt.Fprintf(&sb, "Error: %s\n", i.SBOM.Error) - default: + if i.SBOM != nil { + _, _ = fmt.Fprintln(&sb, "Status:", i.SBOM.Status) + switch i.SBOM.Status { + case Success: + _, _ = fmt.Fprintf(&sb, "Generated in: %.2f seconds\n", i.SBOM.GenerationDuration.Seconds()) + case Failed: + _, _ = fmt.Fprintf(&sb, "Error: %s\n", i.SBOM.Error) + default: + } + } else { + fmt.Fprintln(&sb, "SBOM is nil") } _, _ = fmt.Fprintln(&sb, "----------- Layers -----------") diff --git a/pkg/collector/corechecks/sbom/processor.go b/pkg/collector/corechecks/sbom/processor.go index 0be97cf271cb3..77c1e54a796e4 100644 --- a/pkg/collector/corechecks/sbom/processor.go +++ b/pkg/collector/corechecks/sbom/processor.go @@ -77,6 +77,7 @@ func newProcessor(workloadmetaStore workloadmeta.Component, sender sender.Sender } sender.EventPlatformEvent(encoded, eventplatform.EventTypeContainerSBOM) + log.Debugf("SBOM event sent with %d entities", len(entities)) }), workloadmetaStore: workloadmetaStore, tagger: tagger, @@ -94,24 +95,39 @@ func (p *processor) processContainerImagesEvents(evBundle workloadmeta.EventBund log.Tracef("Processing %d events", len(evBundle.Events)) + // Separate events into images and containers + var imageEvents []workloadmeta.Event + var containerEvents []workloadmeta.Event + for _, event := range evBundle.Events { - switch event.Entity.GetID().Kind { + entityID := event.Entity.GetID() + switch entityID.Kind { case workloadmeta.KindContainerImageMetadata: - switch event.Type { - case workloadmeta.EventTypeSet: - p.registerImage(event.Entity.(*workloadmeta.ContainerImageMetadata)) - p.processImageSBOM(event.Entity.(*workloadmeta.ContainerImageMetadata)) - case workloadmeta.EventTypeUnset: - p.unregisterImage(event.Entity.(*workloadmeta.ContainerImageMetadata)) - // Let the SBOM expire on back-end side - } + imageEvents = append(imageEvents, event) case workloadmeta.KindContainer: - switch event.Type { - case workloadmeta.EventTypeSet: - p.registerContainer(event.Entity.(*workloadmeta.Container)) - case workloadmeta.EventTypeUnset: - p.unregisterContainer(event.Entity.(*workloadmeta.Container)) - } + containerEvents = append(containerEvents, event) + } + } + + // Process all image events first + for _, event := range imageEvents { + switch event.Type { + case workloadmeta.EventTypeSet: + p.registerImage(event.Entity.(*workloadmeta.ContainerImageMetadata)) + p.processImageSBOM(event.Entity.(*workloadmeta.ContainerImageMetadata)) + case workloadmeta.EventTypeUnset: + p.unregisterImage(event.Entity.(*workloadmeta.ContainerImageMetadata)) + // Let the SBOM expire on back-end side + } + } + + // Process all container events after images + for _, event := range containerEvents { + switch event.Type { + case workloadmeta.EventTypeSet: + p.registerContainer(event.Entity.(*workloadmeta.Container)) + case workloadmeta.EventTypeUnset: + p.unregisterContainer(event.Entity.(*workloadmeta.Container)) } } } diff --git a/pkg/sbom/collectors/collectors.go b/pkg/sbom/collectors/collectors.go index de61f115c24c0..adeec30f9f27d 100644 --- a/pkg/sbom/collectors/collectors.go +++ b/pkg/sbom/collectors/collectors.go @@ -25,6 +25,8 @@ const ( HostScanType ScanType = "host" // ContainerdCollector is the name of the containerd collector ContainerdCollector = "containerd" + // CrioCollector is the name of the containerd collector + CrioCollector = "crio" // DockerCollector is the name of the docker collector DockerCollector = "docker" // HostCollector is the name of the host collector @@ -71,6 +73,11 @@ func GetContainerdScanner() Collector { return Collectors[ContainerdCollector] } +// GetCrioScanner returns the crio scanner +func GetCrioScanner() Collector { + return Collectors[CrioCollector] +} + // GetHostScanner returns the host scanner func GetHostScanner() Collector { return Collectors[HostCollector] diff --git a/pkg/sbom/collectors/crio/crio.go b/pkg/sbom/collectors/crio/crio.go new file mode 100644 index 0000000000000..92b8c5eb49f88 --- /dev/null +++ b/pkg/sbom/collectors/crio/crio.go @@ -0,0 +1,144 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build crio && trivy + +package crio + +import ( + "context" + "fmt" + "reflect" + + "github.com/DataDog/datadog-agent/comp/core/config" + workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" + "github.com/DataDog/datadog-agent/pkg/sbom" + "github.com/DataDog/datadog-agent/pkg/sbom/collectors" + crioUtil "github.com/DataDog/datadog-agent/pkg/util/crio" + "github.com/DataDog/datadog-agent/pkg/util/optional" + "github.com/DataDog/datadog-agent/pkg/util/trivy" +) + +const resultChanSize = 1000 + +// scanRequest defines a scan request. This struct should be +// hashable to be pushed in the work queue for processing. +type scanRequest struct { + imageID string +} + +// NewScanRequest creates a new scan request +func NewScanRequest(imageID string) sbom.ScanRequest { + return scanRequest{imageID: imageID} +} + +// Collector returns the collector name for the scan request +func (r scanRequest) Collector() string { + return collectors.CrioCollector +} + +// Type returns the scan request type based on ScanOptions +func (r scanRequest) Type(_ sbom.ScanOptions) string { + return sbom.ScanFilesystemType +} + +// ID returns the scan request ID +func (r scanRequest) ID() string { + return r.imageID +} + +// Collector defines a CRI-O SBOM collector +type Collector struct { + trivyCollector *trivy.Collector + resChan chan sbom.ScanResult + opts sbom.ScanOptions + crioClient crioUtil.Client + wmeta optional.Option[workloadmeta.Component] + + closed bool +} + +// CleanCache cleans the cache in the trivy collector +func (c *Collector) CleanCache() error { + return c.trivyCollector.CleanCache() +} + +// Init initializes the collector with configuration and workloadmeta component +func (c *Collector) Init(cfg config.Component, wmeta optional.Option[workloadmeta.Component]) error { + trivyCollector, err := trivy.GetGlobalCollector(cfg, wmeta) + if err != nil { + return err + } + c.wmeta = wmeta + c.trivyCollector = trivyCollector + c.opts = sbom.ScanOptionsFromConfig(cfg, true) + return nil +} + +// Scan performs the scan using CRI-O methods +func (c *Collector) Scan(ctx context.Context, request sbom.ScanRequest) sbom.ScanResult { + crioScanRequest, ok := request.(scanRequest) + if !ok { + return sbom.ScanResult{Error: fmt.Errorf("invalid request type '%s' for CRI-O collector", reflect.TypeOf(request))} + } + + if c.crioClient == nil { + cl, err := crioUtil.NewCRIOClient() + if err != nil { + return sbom.ScanResult{Error: fmt.Errorf("error creating CRI-O client: %w", err)} + } + c.crioClient = cl + } + + wmeta, ok := c.wmeta.Get() + if !ok { + return sbom.ScanResult{Error: fmt.Errorf("workloadmeta store is not initialized")} + } + + imageMeta, err := wmeta.GetImage(crioScanRequest.ID()) + if err != nil { + return sbom.ScanResult{Error: fmt.Errorf("image metadata not found for image ID %s: %w", crioScanRequest.ID(), err)} + } + + scanner := c.trivyCollector.ScanCRIOImageFromOverlayFS + report, err := scanner(ctx, imageMeta, c.crioClient, c.opts) + + scanResult := sbom.ScanResult{ + Error: err, + Report: report, + ImgMeta: imageMeta, + } + + return scanResult +} + +// Type returns the container image scan type +func (c *Collector) Type() collectors.ScanType { + return collectors.ContainerImageScanType +} + +// Channel returns the channel to send scan results +func (c *Collector) Channel() chan sbom.ScanResult { + return c.resChan +} + +// Options returns the collector options +func (c *Collector) Options() sbom.ScanOptions { + return c.opts +} + +// Shutdown shuts down the collector +func (c *Collector) Shutdown() { + if c.resChan != nil && !c.closed { + close(c.resChan) + } + c.closed = true +} + +func init() { + collectors.RegisterCollector(collectors.CrioCollector, &Collector{ + resChan: make(chan sbom.ScanResult, resultChanSize), + }) +} diff --git a/pkg/sbom/collectors/crio/doc.go b/pkg/sbom/collectors/crio/doc.go new file mode 100644 index 0000000000000..f4d505ce15fd0 --- /dev/null +++ b/pkg/sbom/collectors/crio/doc.go @@ -0,0 +1,7 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package crio holds crio related files +package crio diff --git a/pkg/util/crio/crio_util.go b/pkg/util/crio/crio_util.go index f1b200fa658f6..f5d670690a2c3 100644 --- a/pkg/util/crio/crio_util.go +++ b/pkg/util/crio/crio_util.go @@ -8,7 +8,11 @@ package crio import ( "context" + "encoding/json" "fmt" + "io" + "os" + "path/filepath" "time" "google.golang.org/grpc" @@ -16,19 +20,24 @@ import ( "google.golang.org/grpc/credentials/insecure" v1 "k8s.io/cri-api/pkg/apis/runtime/v1" + workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" + "github.com/DataDog/datadog-agent/pkg/config/env" + pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" + containersimage "github.com/DataDog/datadog-agent/pkg/util/containers/image" "github.com/DataDog/datadog-agent/pkg/util/retry" ) const ( - udsPrefix = "unix://%s" + defaultCrioSocketPath = "/var/run/crio/crio.sock" + udsPrefix = "unix://%s" + overlayPath = "/var/lib/containers/storage/overlay" + overlayImagePath = "/var/lib/containers/storage/overlay-images" + overlayLayersPath = "/var/lib/containers/storage/overlay-layers/layers.json" ) // Client defines an interface for interacting with the CRI-API, providing methods for // retrieving information about container and pod statuses, images, and metadata. type Client interface { - // Close terminates the CRI-O API connection and cleans up resources. - Close() error - // RuntimeMetadata returns metadata about the container runtime, including version details. // Accepts a context to manage request lifetime. RuntimeMetadata(ctx context.Context) (*v1.VersionResponse, error) @@ -42,12 +51,16 @@ type Client interface { GetContainerStatus(ctx context.Context, containerID string) (*v1.ContainerStatusResponse, error) // GetContainerImage fetches metadata for a specified image, identified by imageSpec. - // Accepts a context and the imageSpec to identify the image. - GetContainerImage(ctx context.Context, imageSpec *v1.ImageSpec) (*v1.Image, error) + // Accepts a context, the imageSpec to identify the image, and a verbose flag for detailed metadata. + GetContainerImage(ctx context.Context, imageSpec *v1.ImageSpec, verbose bool) (*v1.ImageStatusResponse, error) // GetPodStatus provides the status of a specified pod sandbox, identified by podSandboxID. // Takes a context to manage the request and returns sandbox status information. GetPodStatus(ctx context.Context, podSandboxID string) (*v1.PodSandboxStatus, error) + + // GetCRIOImageLayers returns paths to `diff` directories for each layer of the specified image, + // using imgMeta to identify the image and resolve its layers. + GetCRIOImageLayers(imgMeta *workloadmeta.ContainerImageMetadata) ([]string, error) } // clientImpl is a client to interact with the CRI-API. @@ -60,8 +73,8 @@ type clientImpl struct { } // NewCRIOClient creates a new CRI-O client implementing the Client interface. -func NewCRIOClient(socketPath string) (Client, error) { - +func NewCRIOClient() (Client, error) { + socketPath := getCRIOSocketPath() client := &clientImpl{socketPath: socketPath} client.initRetry.SetupRetrier(&retry.Config{ //nolint:errcheck @@ -74,20 +87,12 @@ func NewCRIOClient(socketPath string) (Client, error) { // Attempt connection with retry if err := client.initRetry.TriggerRetry(); err != nil { - return nil, fmt.Errorf("failed to initialize CRI-O client: %w", err) + return nil, fmt.Errorf("failed to initialize CRI-O client on socket %s: %w", socketPath, err) } return client, nil } -// Close closes the CRI-O client connection. -func (c *clientImpl) Close() error { - if c == nil || c.conn == nil { - return fmt.Errorf("CRI-O client is not initialized") - } - return c.conn.Close() -} - // RuntimeMetadata retrieves the runtime metadata including runtime name and version. func (c *clientImpl) RuntimeMetadata(ctx context.Context) (*v1.VersionResponse, error) { return c.runtimeClient.Version(ctx, &v1.VersionRequest{}) @@ -112,15 +117,15 @@ func (c *clientImpl) GetContainerStatus(ctx context.Context, containerID string) } // GetContainerImage retrieves the image status of a specific imageSpec. -func (c *clientImpl) GetContainerImage(ctx context.Context, imageSpec *v1.ImageSpec) (*v1.Image, error) { - imageStatusResponse, err := c.imageClient.ImageStatus(ctx, &v1.ImageStatusRequest{Image: imageSpec}) +func (c *clientImpl) GetContainerImage(ctx context.Context, imageSpec *v1.ImageSpec, verbose bool) (*v1.ImageStatusResponse, error) { + imageStatusResponse, err := c.imageClient.ImageStatus(ctx, &v1.ImageStatusRequest{Image: imageSpec, Verbose: verbose}) if err != nil { return nil, fmt.Errorf("failed to fetch image status for spec %s: %w", imageSpec.Image, err) } - if imageStatusResponse.GetImage() == nil { + if imageStatusResponse.Image == nil { return nil, fmt.Errorf("image not found for spec %s", imageSpec.Image) } - return imageStatusResponse.GetImage(), nil + return imageStatusResponse, nil } // GetPodStatus retrieves the status of a specific pod sandbox. @@ -129,7 +134,66 @@ func (c *clientImpl) GetPodStatus(ctx context.Context, podSandboxID string) (*v1 if err != nil { return nil, fmt.Errorf("failed to get pod status for pod ID %s: %w", podSandboxID, err) } - return podSandboxStatusResponse.GetStatus(), nil + return podSandboxStatusResponse.Status, nil +} + +// GetCRIOImageLayers returns the paths of each layer's `diff` directory in the correct order. +func (c *clientImpl) GetCRIOImageLayers(imgMeta *workloadmeta.ContainerImageMetadata) ([]string, error) { + var lowerDirs []string + + digestToIDMap, err := c.buildDigestToIDMap(imgMeta) + if err != nil { + return nil, fmt.Errorf("failed to build digest to ID map: %w", err) + } + + // Construct the list of lowerDirs by mapping each layer to its corresponding `diff` directory path + for _, layer := range imgMeta.Layers { + if layer.Digest == "" { // Skip empty layers + continue + } + layerID, found := digestToIDMap[layer.Digest] + if !found { + return nil, fmt.Errorf("layer ID not found for digest %s", layer.Digest) + } + + layerPath := filepath.Join(GetOverlayPath(), layerID, "diff") + lowerDirs = append([]string{layerPath}, lowerDirs...) + } + + return lowerDirs, nil +} + +// GetOverlayImagePath returns the path to the overlay-images directory. +func GetOverlayImagePath() string { + if env.IsContainerized() { + return containersimage.SanitizeHostPath(overlayImagePath) + } + return overlayImagePath +} + +// GetOverlayPath returns the path to the overlay directory. +func GetOverlayPath() string { + if env.IsContainerized() { + return containersimage.SanitizeHostPath(overlayPath) + } + return overlayPath +} + +// GetOverlayLayersPath returns the path to the overlay-layers directory. +func GetOverlayLayersPath() string { + if env.IsContainerized() { + return containersimage.SanitizeHostPath(overlayLayersPath) + } + return overlayLayersPath +} + +// getCRIOSocketPath returns the configured CRI-O socket path or the default path. +func getCRIOSocketPath() string { + criSocket := pkgconfigsetup.Datadog().GetString("cri_socket_path") + if criSocket == "" { + return defaultCrioSocketPath + } + return criSocket } // connect establishes a gRPC connection. @@ -160,3 +224,44 @@ func (c *clientImpl) connect() error { return nil } + +// buildDigestToIDMap creates a map of layer digests to IDs for the layers in imgMeta. +func (c *clientImpl) buildDigestToIDMap(imgMeta *workloadmeta.ContainerImageMetadata) (map[string]string, error) { + file, err := os.Open(GetOverlayLayersPath()) + if err != nil { + return nil, fmt.Errorf("failed to open layers.json: %w", err) + } + defer file.Close() + + fileBytes, err := io.ReadAll(file) + if err != nil { + return nil, fmt.Errorf("failed to read layers.json: %w", err) + } + + var layers []layerInfo + if err := json.Unmarshal(fileBytes, &layers); err != nil { + return nil, fmt.Errorf("failed to parse layers.json: %w", err) + } + + neededDigests := make(map[string]struct{}) + for _, layer := range imgMeta.Layers { + if layer.Digest != "" { // Skip empty layers + neededDigests[layer.Digest] = struct{}{} + } + } + + digestToIDMap := make(map[string]string) + for _, layer := range layers { + if _, found := neededDigests[layer.DiffDigest]; found { + digestToIDMap[layer.DiffDigest] = layer.ID + } + } + + return digestToIDMap, nil +} + +// layerInfo represents each entry in layers.json +type layerInfo struct { + ID string `json:"id"` + DiffDigest string `json:"diff-digest"` +} diff --git a/pkg/util/trivy/trivy.go b/pkg/util/trivy/trivy.go index e39d387b06276..07a15d58d93ac 100644 --- a/pkg/util/trivy/trivy.go +++ b/pkg/util/trivy/trivy.go @@ -30,6 +30,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/sbom" cutil "github.com/DataDog/datadog-agent/pkg/util/containerd" containersimage "github.com/DataDog/datadog-agent/pkg/util/containers/image" + "github.com/DataDog/datadog-agent/pkg/util/crio" "github.com/DataDog/datadog-agent/pkg/util/log" "github.com/DataDog/datadog-agent/pkg/util/optional" @@ -404,6 +405,22 @@ func (c *Collector) ScanContainerdImageFromFilesystem(ctx context.Context, imgMe return c.scanFilesystem(ctx, os.DirFS("/"), imagePath, imgMeta, scanOptions) } +// ScanCRIOImageFromOverlayFS scans the CRI-O image layers using OverlayFS. +func (c *Collector) ScanCRIOImageFromOverlayFS(ctx context.Context, imgMeta *workloadmeta.ContainerImageMetadata, client crio.Client, scanOptions sbom.ScanOptions) (sbom.Report, error) { + lowerDirs, err := client.GetCRIOImageLayers(imgMeta) + if err != nil { + return nil, fmt.Errorf("failed to retrieve layer directories: %w", err) + } + + report, err := c.scanOverlayFS(ctx, lowerDirs, imgMeta, scanOptions) + if err != nil { + return nil, err + } + + return report, nil +} + +// scanFilesystem scans the specified directory and logs detailed scan steps. func (c *Collector) scanFilesystem(ctx context.Context, fsys fs.FS, path string, imgMeta *workloadmeta.ContainerImageMetadata, scanOptions sbom.ScanOptions) (sbom.Report, error) { // For filesystem scans, it is required to walk the filesystem to get the persistentCache key so caching does not add any value. // TODO: Cache directly the trivy report for container images diff --git a/releasenotes/notes/crio-collector-image-metadata-d721b1e797e82770.yaml b/releasenotes/notes/crio-collector-image-metadata-d721b1e797e82770.yaml new file mode 100644 index 0000000000000..e77e8815cbded --- /dev/null +++ b/releasenotes/notes/crio-collector-image-metadata-d721b1e797e82770.yaml @@ -0,0 +1,11 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +features: + - | + Added support for collecting container image metadata when running on a CRI-O runtime. From 8f7cb53a4d427cf25b4dbb7878a8a9bd47ab2a49 Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Wed, 27 Nov 2024 16:32:42 +0100 Subject: [PATCH 092/439] [CWS] add and/or aliases in SECL operators documentation (#31523) --- docs/cloud-workload-security/agent_expressions.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/cloud-workload-security/agent_expressions.md b/docs/cloud-workload-security/agent_expressions.md index e051bb7d84ae3..386d12f3df6fc 100644 --- a/docs/cloud-workload-security/agent_expressions.md +++ b/docs/cloud-workload-security/agent_expressions.md @@ -40,7 +40,7 @@ SECL operators are used to combine event attributes together into a full express | `>=` | File | Greater or equal | 7.27 | | `<` | File | Lesser | 7.27 | | `<=` | File | Lesser or equal | 7.27 | -| `!` | File | Not | 7.27 | +| `!` or `not` | File | Not | 7.27 | | `^` | File | Binary not | 7.27 | | `in [elem1, ...]` | File | Element is contained in list | 7.27 | | `not in [elem1, ...]` | File | Element is not contained in list | 7.27 | @@ -48,8 +48,8 @@ SECL operators are used to combine event attributes together into a full express | `!~` | File | String not matching | 7.27 | | `&` | File | Binary and | 7.27 | | `\|` | File | Binary or | 7.27 | -| `&&` | File | Logical and | 7.27 | -| `\|\|` | File | Logical or | 7.27 | +| `&&` or `and` | File | Logical and | 7.27 | +| `\|\|` or `or` | File | Logical or | 7.27 | | `in CIDR` | Network | Element is in the IP range | 7.37 | | `not in CIDR` | Network | Element is not in the IP range | 7.37 | | `allin CIDR` | Network | All the elements are in the IP range | 7.37 | From 06deb63fb3e0728af12d5dc912882d6b9fd23ec2 Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Wed, 27 Nov 2024 16:47:38 +0100 Subject: [PATCH 093/439] [CWS] plug the remote tagger component down to the tags resolver (#31509) --- cmd/system-probe/modules/eventmonitor.go | 3 +- pkg/eventmonitor/eventmonitor.go | 5 +-- pkg/eventmonitor/testutil/testutil.go | 6 +-- pkg/network/config/config_bpf_linux_test.go | 6 +-- pkg/security/probe/probe_ebpf.go | 5 +-- pkg/security/probe/probe_ebpfless.go | 5 +-- pkg/security/probe/probe_linux.go | 7 ++-- pkg/security/probe/probe_windows.go | 9 ++-- pkg/security/resolvers/resolvers_ebpf.go | 5 +-- pkg/security/resolvers/resolvers_ebpfless.go | 5 +-- pkg/security/resolvers/resolvers_windows.go | 5 +-- pkg/security/resolvers/tags/resolver.go | 42 ++++++++----------- pkg/security/resolvers/tags/resolver_linux.go | 5 +-- pkg/security/resolvers/tags/resolver_other.go | 8 +--- pkg/security/tests/module_tester_linux.go | 2 +- pkg/security/tests/module_tester_windows.go | 2 +- 16 files changed, 46 insertions(+), 74 deletions(-) diff --git a/cmd/system-probe/modules/eventmonitor.go b/cmd/system-probe/modules/eventmonitor.go index 1f5e0e874667a..f74b13bec36af 100644 --- a/cmd/system-probe/modules/eventmonitor.go +++ b/cmd/system-probe/modules/eventmonitor.go @@ -36,6 +36,7 @@ func createEventMonitorModule(_ *sysconfigtypes.Config, deps module.FactoryDepen opts := eventmonitor.Opts{} opts.ProbeOpts.EnvsVarResolutionEnabled = emconfig.EnvVarsResolutionEnabled + opts.ProbeOpts.Tagger = deps.Tagger secmoduleOpts := secmodule.Opts{} // adapt options @@ -45,7 +46,7 @@ func createEventMonitorModule(_ *sysconfigtypes.Config, deps module.FactoryDepen secmodule.DisableRuntimeSecurity(secconfig) } - evm, err := eventmonitor.NewEventMonitor(emconfig, secconfig, opts, deps.Telemetry) + evm, err := eventmonitor.NewEventMonitor(emconfig, secconfig, opts) if err != nil { log.Errorf("error initializing event monitoring module: %v", err) return nil, module.ErrNotEnabled diff --git a/pkg/eventmonitor/eventmonitor.go b/pkg/eventmonitor/eventmonitor.go index e37ddebd55784..418a314a3ca12 100644 --- a/pkg/eventmonitor/eventmonitor.go +++ b/pkg/eventmonitor/eventmonitor.go @@ -19,7 +19,6 @@ import ( "google.golang.org/grpc" "github.com/DataDog/datadog-agent/cmd/system-probe/api/module" - "github.com/DataDog/datadog-agent/comp/core/telemetry" "github.com/DataDog/datadog-agent/pkg/eventmonitor/config" procstatsd "github.com/DataDog/datadog-agent/pkg/process/statsd" secconfig "github.com/DataDog/datadog-agent/pkg/security/config" @@ -224,7 +223,7 @@ func (m *EventMonitor) GetStats() map[string]interface{} { } // NewEventMonitor instantiates an event monitoring system-probe module -func NewEventMonitor(config *config.Config, secconfig *secconfig.Config, opts Opts, telemetry telemetry.Component) (*EventMonitor, error) { +func NewEventMonitor(config *config.Config, secconfig *secconfig.Config, opts Opts) (*EventMonitor, error) { if opts.StatsdClient == nil { opts.StatsdClient = procstatsd.Client } @@ -233,7 +232,7 @@ func NewEventMonitor(config *config.Config, secconfig *secconfig.Config, opts Op opts.ProbeOpts.StatsdClient = opts.StatsdClient } - probe, err := probe.NewProbe(secconfig, opts.ProbeOpts, telemetry) + probe, err := probe.NewProbe(secconfig, opts.ProbeOpts) if err != nil { return nil, err } diff --git a/pkg/eventmonitor/testutil/testutil.go b/pkg/eventmonitor/testutil/testutil.go index 83e1083ad2659..77f9e2772fad0 100644 --- a/pkg/eventmonitor/testutil/testutil.go +++ b/pkg/eventmonitor/testutil/testutil.go @@ -15,12 +15,9 @@ import ( "github.com/stretchr/testify/require" sysconfig "github.com/DataDog/datadog-agent/cmd/system-probe/config" - "github.com/DataDog/datadog-agent/comp/core/telemetry" - "github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl" "github.com/DataDog/datadog-agent/pkg/eventmonitor" emconfig "github.com/DataDog/datadog-agent/pkg/eventmonitor/config" secconfig "github.com/DataDog/datadog-agent/pkg/security/config" - "github.com/DataDog/datadog-agent/pkg/util/fxutil" ) // PreStartCallback is a callback to register clients to the event monitor before starting it @@ -39,8 +36,7 @@ func StartEventMonitor(t *testing.T, callback PreStartCallback) { require.NoError(t, os.MkdirAll("/opt/datadog-agent/run/", 0755)) opts := eventmonitor.Opts{} - telemetry := fxutil.Test[telemetry.Component](t, telemetryimpl.MockModule()) - evm, err := eventmonitor.NewEventMonitor(emconfig, secconfig, opts, telemetry) + evm, err := eventmonitor.NewEventMonitor(emconfig, secconfig, opts) require.NoError(t, err) require.NoError(t, evm.Init()) callback(t, evm) diff --git a/pkg/network/config/config_bpf_linux_test.go b/pkg/network/config/config_bpf_linux_test.go index a3b380c89fb2a..519653091b9c2 100644 --- a/pkg/network/config/config_bpf_linux_test.go +++ b/pkg/network/config/config_bpf_linux_test.go @@ -14,13 +14,10 @@ import ( "github.com/stretchr/testify/require" sysconfig "github.com/DataDog/datadog-agent/cmd/system-probe/config" - "github.com/DataDog/datadog-agent/comp/core/telemetry" - "github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl" configmock "github.com/DataDog/datadog-agent/pkg/config/mock" "github.com/DataDog/datadog-agent/pkg/eventmonitor" emconfig "github.com/DataDog/datadog-agent/pkg/eventmonitor/config" secconfig "github.com/DataDog/datadog-agent/pkg/security/config" - "github.com/DataDog/datadog-agent/pkg/util/fxutil" ) func TestEventStreamEnabledForSupportedKernelsLinux(t *testing.T) { @@ -35,8 +32,7 @@ func TestEventStreamEnabledForSupportedKernelsLinux(t *testing.T) { require.NoError(t, err) opts := eventmonitor.Opts{} - telemetry := fxutil.Test[telemetry.Component](t, telemetryimpl.MockModule()) - evm, err := eventmonitor.NewEventMonitor(emconfig, secconfig, opts, telemetry) + evm, err := eventmonitor.NewEventMonitor(emconfig, secconfig, opts) require.NoError(t, err) require.NoError(t, evm.Init()) } else { diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go index ad07856a00e42..05153e99bc2f5 100644 --- a/pkg/security/probe/probe_ebpf.go +++ b/pkg/security/probe/probe_ebpf.go @@ -32,7 +32,6 @@ import ( manager "github.com/DataDog/ebpf-manager" "github.com/DataDog/ebpf-manager/tracefs" - "github.com/DataDog/datadog-agent/comp/core/telemetry" "github.com/DataDog/datadog-agent/pkg/config/env" ddebpf "github.com/DataDog/datadog-agent/pkg/ebpf" ebpftelemetry "github.com/DataDog/datadog-agent/pkg/ebpf/telemetry" @@ -1852,7 +1851,7 @@ func (p *EBPFProbe) EnableEnforcement(state bool) { } // NewEBPFProbe instantiates a new runtime security agent probe -func NewEBPFProbe(probe *Probe, config *config.Config, opts Opts, telemetry telemetry.Component) (*EBPFProbe, error) { +func NewEBPFProbe(probe *Probe, config *config.Config, opts Opts) (*EBPFProbe, error) { nerpc, err := erpc.NewERPC() if err != nil { return nil, err @@ -2116,7 +2115,7 @@ func NewEBPFProbe(probe *Probe, config *config.Config, opts Opts, telemetry tele TTYFallbackEnabled: probe.Opts.TTYFallbackEnabled, } - p.Resolvers, err = resolvers.NewEBPFResolvers(config, p.Manager, probe.StatsdClient, probe.scrubber, p.Erpc, resolversOpts, telemetry) + p.Resolvers, err = resolvers.NewEBPFResolvers(config, p.Manager, probe.StatsdClient, probe.scrubber, p.Erpc, resolversOpts) if err != nil { return nil, err } diff --git a/pkg/security/probe/probe_ebpfless.go b/pkg/security/probe/probe_ebpfless.go index 124f295a03131..684e52ae12947 100644 --- a/pkg/security/probe/probe_ebpfless.go +++ b/pkg/security/probe/probe_ebpfless.go @@ -25,7 +25,6 @@ import ( "github.com/DataDog/datadog-go/v5/statsd" - "github.com/DataDog/datadog-agent/comp/core/telemetry" "github.com/DataDog/datadog-agent/pkg/security/config" "github.com/DataDog/datadog-agent/pkg/security/events" "github.com/DataDog/datadog-agent/pkg/security/probe/kfilters" @@ -660,7 +659,7 @@ func (p *EBPFLessProbe) GetAgentContainerContext() *events.AgentContainerContext } // NewEBPFLessProbe returns a new eBPF less probe -func NewEBPFLessProbe(probe *Probe, config *config.Config, opts Opts, telemetry telemetry.Component) (*EBPFLessProbe, error) { +func NewEBPFLessProbe(probe *Probe, config *config.Config, opts Opts) (*EBPFLessProbe, error) { opts.normalize() processKiller, err := NewProcessKiller(config) @@ -688,7 +687,7 @@ func NewEBPFLessProbe(probe *Probe, config *config.Config, opts Opts, telemetry Tagger: opts.Tagger, } - p.Resolvers, err = resolvers.NewEBPFLessResolvers(config, p.statsdClient, probe.scrubber, resolversOpts, telemetry) + p.Resolvers, err = resolvers.NewEBPFLessResolvers(config, p.statsdClient, probe.scrubber, resolversOpts) if err != nil { return nil, err } diff --git a/pkg/security/probe/probe_linux.go b/pkg/security/probe/probe_linux.go index 4f56171c12892..83c2c4800215d 100644 --- a/pkg/security/probe/probe_linux.go +++ b/pkg/security/probe/probe_linux.go @@ -7,7 +7,6 @@ package probe import ( - "github.com/DataDog/datadog-agent/comp/core/telemetry" "github.com/DataDog/datadog-agent/pkg/security/config" "github.com/DataDog/datadog-agent/pkg/security/ebpf/kernel" "github.com/DataDog/datadog-agent/pkg/security/events" @@ -23,7 +22,7 @@ const ( ) // NewProbe instantiates a new runtime security agent probe -func NewProbe(config *config.Config, opts Opts, telemetry telemetry.Component) (*Probe, error) { +func NewProbe(config *config.Config, opts Opts) (*Probe, error) { opts.normalize() p := newProbe(config, opts) @@ -34,14 +33,14 @@ func NewProbe(config *config.Config, opts Opts, telemetry telemetry.Component) ( } if opts.EBPFLessEnabled { - pp, err := NewEBPFLessProbe(p, config, opts, telemetry) + pp, err := NewEBPFLessProbe(p, config, opts) if err != nil { return nil, err } p.PlatformProbe = pp p.agentContainerContext = acc } else { - pp, err := NewEBPFProbe(p, config, opts, telemetry) + pp, err := NewEBPFProbe(p, config, opts) if err != nil { return nil, err } diff --git a/pkg/security/probe/probe_windows.go b/pkg/security/probe/probe_windows.go index 02761f8d95fd0..a1aea80b06594 100644 --- a/pkg/security/probe/probe_windows.go +++ b/pkg/security/probe/probe_windows.go @@ -18,7 +18,6 @@ import ( "github.com/cenkalti/backoff/v4" lru "github.com/hashicorp/golang-lru/v2" - "github.com/DataDog/datadog-agent/comp/core/telemetry" "github.com/DataDog/datadog-agent/comp/etw" etwimpl "github.com/DataDog/datadog-agent/comp/etw/impl" "github.com/DataDog/datadog-agent/pkg/security/config" @@ -1290,7 +1289,7 @@ func initializeWindowsProbe(config *config.Config, opts Opts) (*WindowsProbe, er } // NewWindowsProbe instantiates a new runtime security agent probe -func NewWindowsProbe(probe *Probe, config *config.Config, opts Opts, telemetry telemetry.Component) (*WindowsProbe, error) { +func NewWindowsProbe(probe *Probe, config *config.Config, opts Opts) (*WindowsProbe, error) { p, err := initializeWindowsProbe(config, opts) if err != nil { return nil, err @@ -1300,7 +1299,7 @@ func NewWindowsProbe(probe *Probe, config *config.Config, opts Opts, telemetry t resolversOpts := resolvers.Opts{ Tagger: probe.Opts.Tagger, } - p.Resolvers, err = resolvers.NewResolvers(config, p.statsdClient, probe.scrubber, telemetry, resolversOpts) + p.Resolvers, err = resolvers.NewResolvers(config, p.statsdClient, probe.scrubber, resolversOpts) if err != nil { return nil, err } @@ -1477,12 +1476,12 @@ func (p *WindowsProbe) EnableEnforcement(state bool) { } // NewProbe instantiates a new runtime security agent probe -func NewProbe(config *config.Config, opts Opts, telemetry telemetry.Component) (*Probe, error) { +func NewProbe(config *config.Config, opts Opts) (*Probe, error) { opts.normalize() p := newProbe(config, opts) - pp, err := NewWindowsProbe(p, config, opts, telemetry) + pp, err := NewWindowsProbe(p, config, opts) if err != nil { return nil, err } diff --git a/pkg/security/resolvers/resolvers_ebpf.go b/pkg/security/resolvers/resolvers_ebpf.go index 39343334d1b8d..3326a9ba50d27 100644 --- a/pkg/security/resolvers/resolvers_ebpf.go +++ b/pkg/security/resolvers/resolvers_ebpf.go @@ -17,7 +17,6 @@ import ( "github.com/DataDog/datadog-go/v5/statsd" manager "github.com/DataDog/ebpf-manager" - "github.com/DataDog/datadog-agent/comp/core/telemetry" "github.com/DataDog/datadog-agent/pkg/process/procutil" "github.com/DataDog/datadog-agent/pkg/security/config" "github.com/DataDog/datadog-agent/pkg/security/probe/erpc" @@ -64,7 +63,7 @@ type EBPFResolvers struct { } // NewEBPFResolvers creates a new instance of EBPFResolvers -func NewEBPFResolvers(config *config.Config, manager *manager.Manager, statsdClient statsd.ClientInterface, scrubber *procutil.DataScrubber, eRPC *erpc.ERPC, opts Opts, telemetry telemetry.Component) (*EBPFResolvers, error) { +func NewEBPFResolvers(config *config.Config, manager *manager.Manager, statsdClient statsd.ClientInterface, scrubber *procutil.DataScrubber, eRPC *erpc.ERPC, opts Opts) (*EBPFResolvers, error) { dentryResolver, err := dentry.NewResolver(config.Probe, statsdClient, eRPC) if err != nil { return nil, err @@ -96,7 +95,7 @@ func NewEBPFResolvers(config *config.Config, manager *manager.Manager, statsdCli return nil, err } - tagsResolver := tags.NewResolver(telemetry, opts.Tagger, cgroupsResolver) + tagsResolver := tags.NewResolver(opts.Tagger, cgroupsResolver) userGroupResolver, err := usergroup.NewResolver(cgroupsResolver) if err != nil { diff --git a/pkg/security/resolvers/resolvers_ebpfless.go b/pkg/security/resolvers/resolvers_ebpfless.go index 6713106a1f86c..25c799fbfa06f 100644 --- a/pkg/security/resolvers/resolvers_ebpfless.go +++ b/pkg/security/resolvers/resolvers_ebpfless.go @@ -13,7 +13,6 @@ import ( "github.com/DataDog/datadog-go/v5/statsd" - "github.com/DataDog/datadog-agent/comp/core/telemetry" "github.com/DataDog/datadog-agent/pkg/process/procutil" "github.com/DataDog/datadog-agent/pkg/security/config" "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup" @@ -32,13 +31,13 @@ type EBPFLessResolvers struct { } // NewEBPFLessResolvers creates a new instance of EBPFLessResolvers -func NewEBPFLessResolvers(config *config.Config, statsdClient statsd.ClientInterface, scrubber *procutil.DataScrubber, opts Opts, telemetry telemetry.Component) (*EBPFLessResolvers, error) { +func NewEBPFLessResolvers(config *config.Config, statsdClient statsd.ClientInterface, scrubber *procutil.DataScrubber, opts Opts) (*EBPFLessResolvers, error) { cgroupsResolver, err := cgroup.NewResolver() if err != nil { return nil, err } - tagsResolver := tags.NewResolver(telemetry, opts.Tagger, cgroupsResolver) + tagsResolver := tags.NewResolver(opts.Tagger, cgroupsResolver) processOpts := process.NewResolverOpts() processOpts.WithEnvsValue(config.Probe.EnvsWithValue) diff --git a/pkg/security/resolvers/resolvers_windows.go b/pkg/security/resolvers/resolvers_windows.go index 1ff1d0354bb94..6b90baae8a00d 100644 --- a/pkg/security/resolvers/resolvers_windows.go +++ b/pkg/security/resolvers/resolvers_windows.go @@ -9,7 +9,6 @@ package resolvers import ( "github.com/DataDog/datadog-go/v5/statsd" - "github.com/DataDog/datadog-agent/comp/core/telemetry" "github.com/DataDog/datadog-agent/pkg/process/procutil" "github.com/DataDog/datadog-agent/pkg/security/config" "github.com/DataDog/datadog-agent/pkg/security/resolvers/process" @@ -29,13 +28,13 @@ type Resolvers struct { } // NewResolvers creates a new instance of Resolvers -func NewResolvers(config *config.Config, statsdClient statsd.ClientInterface, scrubber *procutil.DataScrubber, telemetry telemetry.Component, opts Opts) (*Resolvers, error) { +func NewResolvers(config *config.Config, statsdClient statsd.ClientInterface, scrubber *procutil.DataScrubber, opts Opts) (*Resolvers, error) { processResolver, err := process.NewResolver(config, statsdClient, scrubber, process.NewResolverOpts()) if err != nil { return nil, err } - tagsResolver := tags.NewResolver(telemetry, opts.Tagger) + tagsResolver := tags.NewResolver(opts.Tagger) userSessionsResolver, err := usersessions.NewResolver(config.RuntimeSecurity) if err != nil { diff --git a/pkg/security/resolvers/tags/resolver.go b/pkg/security/resolvers/tags/resolver.go index 1ee12e3bc00f3..d0bb63a26903b 100644 --- a/pkg/security/resolvers/tags/resolver.go +++ b/pkg/security/resolvers/tags/resolver.go @@ -8,15 +8,9 @@ package tags import ( "context" - "fmt" - coreconfig "github.com/DataDog/datadog-agent/comp/core/config" - taggerdef "github.com/DataDog/datadog-agent/comp/core/tagger/def" - remotetagger "github.com/DataDog/datadog-agent/comp/core/tagger/impl-remote" "github.com/DataDog/datadog-agent/comp/core/tagger/types" - "github.com/DataDog/datadog-agent/comp/core/telemetry" - "github.com/DataDog/datadog-agent/pkg/api/security" - pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" + "github.com/DataDog/datadog-agent/pkg/security/seclog" "github.com/DataDog/datadog-agent/pkg/security/utils" "github.com/DataDog/datadog-agent/pkg/util/log" ) @@ -58,6 +52,10 @@ func (t *DefaultResolver) Resolve(id string) []string { // ResolveWithErr returns the tags for the given id func (t *DefaultResolver) ResolveWithErr(id string) ([]string, error) { + if t.tagger == nil { + return nil, nil + } + entityID := types.NewEntityID(types.ContainerID, id) return t.tagger.Tag(entityID, types.OrchestratorCardinality) } @@ -69,6 +67,10 @@ func (t *DefaultResolver) GetValue(id string, tag string) string { // Start the resolver func (t *DefaultResolver) Start(ctx context.Context) error { + if t.tagger == nil { + return nil + } + go func() { if err := t.tagger.Start(ctx); err != nil { log.Errorf("failed to init tagger: %s", err) @@ -85,29 +87,19 @@ func (t *DefaultResolver) Start(ctx context.Context) error { // Stop the resolver func (t *DefaultResolver) Stop() error { + if t.tagger == nil { + return nil + } return t.tagger.Stop() } // NewDefaultResolver returns a new default tags resolver -func NewDefaultResolver(telemetry telemetry.Component, tagger Tagger) *DefaultResolver { - ddConfig := pkgconfigsetup.Datadog() - resolver := &DefaultResolver{ - tagger: tagger, - } - - params := taggerdef.RemoteParams{ - RemoteFilter: types.NewMatchAllFilter(), - RemoteTarget: func(c coreconfig.Component) (string, error) { return fmt.Sprintf(":%v", c.GetInt("cmd_port")), nil }, - RemoteTokenFetcher: func(c coreconfig.Component) func() (string, error) { - return func() (string, error) { - return security.FetchAuthToken(c) - } - }, - } - +func NewDefaultResolver(tagger Tagger) *DefaultResolver { if tagger == nil { - resolver.tagger, _ = remotetagger.NewRemoteTagger(params, ddConfig, log.NewWrapper(2), telemetry) + seclog.Errorf("initializing tags resolver with nil tagger") } - return resolver + return &DefaultResolver{ + tagger: tagger, + } } diff --git a/pkg/security/resolvers/tags/resolver_linux.go b/pkg/security/resolvers/tags/resolver_linux.go index 7730902212f87..b56ad3b0438d1 100644 --- a/pkg/security/resolvers/tags/resolver_linux.go +++ b/pkg/security/resolvers/tags/resolver_linux.go @@ -11,7 +11,6 @@ import ( "fmt" "time" - "github.com/DataDog/datadog-agent/comp/core/telemetry" "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup" cgroupModel "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup/model" "github.com/DataDog/datadog-agent/pkg/security/utils" @@ -89,10 +88,10 @@ func (t *LinuxResolver) fetchTags(container *cgroupModel.CacheEntry) error { } // NewResolver returns a new tags resolver -func NewResolver(telemetry telemetry.Component, tagger Tagger, cgroupsResolver *cgroup.Resolver) *LinuxResolver { +func NewResolver(tagger Tagger, cgroupsResolver *cgroup.Resolver) *LinuxResolver { resolver := &LinuxResolver{ Notifier: utils.NewNotifier[Event, *cgroupModel.CacheEntry](), - DefaultResolver: NewDefaultResolver(telemetry, tagger), + DefaultResolver: NewDefaultResolver(tagger), workloadsWithoutTags: make(chan *cgroupModel.CacheEntry, 100), cgroupResolver: cgroupsResolver, } diff --git a/pkg/security/resolvers/tags/resolver_other.go b/pkg/security/resolvers/tags/resolver_other.go index d00f07ce02113..aced8e0a0d229 100644 --- a/pkg/security/resolvers/tags/resolver_other.go +++ b/pkg/security/resolvers/tags/resolver_other.go @@ -8,11 +8,7 @@ // Package tags holds tags related files package tags -import ( - "github.com/DataDog/datadog-agent/comp/core/telemetry" -) - // NewResolver returns a new tags resolver -func NewResolver(telemetry telemetry.Component, tagger Tagger) Resolver { - return NewDefaultResolver(telemetry, tagger) +func NewResolver(tagger Tagger) Resolver { + return NewDefaultResolver(tagger) } diff --git a/pkg/security/tests/module_tester_linux.go b/pkg/security/tests/module_tester_linux.go index c790771be8c29..268fc839f625e 100644 --- a/pkg/security/tests/module_tester_linux.go +++ b/pkg/security/tests/module_tester_linux.go @@ -741,7 +741,7 @@ func newTestModuleWithOnDemandProbes(t testing.TB, onDemandHooks []rules.OnDeman emopts.ProbeOpts.DontDiscardRuntime = false } - testMod.eventMonitor, err = eventmonitor.NewEventMonitor(emconfig, secconfig, emopts, nil) + testMod.eventMonitor, err = eventmonitor.NewEventMonitor(emconfig, secconfig, emopts) if err != nil { return nil, err } diff --git a/pkg/security/tests/module_tester_windows.go b/pkg/security/tests/module_tester_windows.go index 0d68f2aed4023..25876dc813692 100644 --- a/pkg/security/tests/module_tester_windows.go +++ b/pkg/security/tests/module_tester_windows.go @@ -163,7 +163,7 @@ func newTestModule(t testing.TB, macroDefs []*rules.MacroDefinition, ruleDefs [] emopts.ProbeOpts.Tagger = NewFakeTaggerDifferentImageNames() } - testMod.eventMonitor, err = eventmonitor.NewEventMonitor(emconfig, secconfig, emopts, nil) + testMod.eventMonitor, err = eventmonitor.NewEventMonitor(emconfig, secconfig, emopts) if err != nil { return nil, err } From b49aa344301c0ea892458475e89f82019ea8fedf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillermo=20Juli=C3=A1n?= Date: Wed, 27 Nov 2024 16:58:14 +0100 Subject: [PATCH 094/439] [EBPF] attacher: Add Log() call to registry (#31390) --- pkg/ebpf/uprobes/attacher.go | 6 ++++++ pkg/ebpf/uprobes/attacher_test.go | 3 +++ pkg/ebpf/uprobes/testutil.go | 5 +++++ 3 files changed, 14 insertions(+) diff --git a/pkg/ebpf/uprobes/attacher.go b/pkg/ebpf/uprobes/attacher.go index 903b69b59f620..f413462bea633 100644 --- a/pkg/ebpf/uprobes/attacher.go +++ b/pkg/ebpf/uprobes/attacher.go @@ -295,6 +295,9 @@ type FileRegistry interface { // GetRegisteredProcesses returns a map of all the processes that are currently registered in the registry GetRegisteredProcesses() map[uint32]struct{} + + // Log is a function that gets called periodically to log the state of the registry + Log() } // AttachCallback is a callback that is called whenever a probe is attached successfully @@ -489,6 +492,9 @@ func (ua *UprobeAttacher) Start() error { case <-processSync.C: // We always track process deletions in the scan, to avoid memory leaks. _ = ua.Sync(ua.config.EnablePeriodicScanNewProcesses, true) + + // Periodically log the state of the registry + ua.fileRegistry.Log() } } }() diff --git a/pkg/ebpf/uprobes/attacher_test.go b/pkg/ebpf/uprobes/attacher_test.go index 6003decb2ca42..55172da64b1bb 100644 --- a/pkg/ebpf/uprobes/attacher_test.go +++ b/pkg/ebpf/uprobes/attacher_test.go @@ -326,6 +326,7 @@ func TestMonitor(t *testing.T) { // Tell mockRegistry to return on any calls, we will check the values later mockRegistry.On("Clear").Return() + mockRegistry.On("Log").Return() mockRegistry.On("Unregister", mock.Anything).Return(nil) mockRegistry.On("Register", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) lib := getLibSSLPath(t) @@ -872,6 +873,7 @@ func (s *SharedLibrarySuite) TestSingleFile() { // Tell mockRegistry to return on any calls, we will check the values later mockRegistry.On("Clear").Return() + mockRegistry.On("Log").Return() mockRegistry.On("Unregister", mock.Anything).Return(nil) mockRegistry.On("Register", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) @@ -950,6 +952,7 @@ func (s *SharedLibrarySuite) TestDetectionWithPIDAndRootNamespace() { // Tell mockRegistry to return on any calls, we will check the values later mockRegistry.On("Clear").Return() + mockRegistry.On("Log").Return() mockRegistry.On("Unregister", mock.Anything).Return(nil) mockRegistry.On("Register", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) diff --git a/pkg/ebpf/uprobes/testutil.go b/pkg/ebpf/uprobes/testutil.go index d5d27d4e5b2aa..dcda53b56d155 100644 --- a/pkg/ebpf/uprobes/testutil.go +++ b/pkg/ebpf/uprobes/testutil.go @@ -78,6 +78,11 @@ func (m *MockFileRegistry) GetRegisteredProcesses() map[uint32]struct{} { return args.Get(0).(map[uint32]struct{}) } +// Log is a mock implementation of the FileRegistry.Log method. +func (m *MockFileRegistry) Log() { + m.Called() +} + // MockBinaryInspector is a mock implementation of the BinaryInspector interface. type MockBinaryInspector struct { mock.Mock From f4cfdf33222c1e0cf8fb63181be03f44decf3aa6 Mon Sep 17 00:00:00 2001 From: "John L. Peterson (Jack)" Date: Wed, 27 Nov 2024 11:03:16 -0500 Subject: [PATCH 095/439] add weekly update collector dependencies task (#31332) --- .../collector-generate-and-update.yml | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 .github/workflows/collector-generate-and-update.yml diff --git a/.github/workflows/collector-generate-and-update.yml b/.github/workflows/collector-generate-and-update.yml new file mode 100644 index 0000000000000..b0d3326cc44b2 --- /dev/null +++ b/.github/workflows/collector-generate-and-update.yml @@ -0,0 +1,72 @@ +name: Update OTel Collector Dependencies and Generate OTel Agent + +on: + schedule: + - cron: '0 12 * * 3' + workflow_dispatch: + +jobs: + update-and-generate: + runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: + - name: Set date + id: date + run: echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT + + - name: Checkout repository + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + + - name: Set up Python + uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 + with: + python-version: '3.12.6' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + + - name: Run update task + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: inv -e collector.update + + - name: Run generate task + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: inv -e collector.generate + + - name: Check for changes + id: check_changes + run: | + git config --global user.name "github-actions[bot]" + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git add . + if git diff-index --quiet HEAD; then + echo "No changes detected" + echo "changes_detected=false" >> $GITHUB_OUTPUT + else + echo "Changes detected" + echo "changes_detected=true" >> $GITHUB_OUTPUT + fi + + - name: Commit changes + if: steps.check_changes.outputs.changes_detected == 'true' + run: | + git switch -c update-otel-collector-dependencies-${{ steps.date.outputs.date }} + git commit -m "Update OTel Collector dependencies and generate OTel Agent" + git push -u origin update-otel-collector-dependencies-${{ steps.date.outputs.date }} + + - name: Install GitHub CLI + if: steps.check_changes.outputs.changes_detected == 'true' + run: | + sudo apt-get update + sudo apt-get install gh + + - name: Create draft pull request + if: steps.check_changes.outputs.changes_detected == 'true' + run: | + gh auth login --with-token <<< ${{ secrets.GITHUB_TOKEN }} + gh pr create --title "Update OTel collector dependencies" --body "This PR updates the OTel Collector dependencies to the latest version. Please ensure that all tests pass before marking ready for review." --base main --head update-otel-collector-dependencies-${{ steps.date.outputs.date }} --draft From a85c6614b131b1d0a2d5cc43ba8b06189c330e37 Mon Sep 17 00:00:00 2001 From: Derek Brown Date: Wed, 27 Nov 2024 08:06:52 -0800 Subject: [PATCH 096/439] [windows][network path] Add windows support for traceroute (#30201) Co-authored-by: ken-schneider <103530259+ken-schneider@users.noreply.github.com> --- pkg/networkpath/traceroute/tcp/tcpv4.go | 112 -------- pkg/networkpath/traceroute/tcp/tcpv4_unix.go | 127 +++++++++ .../traceroute/tcp/tcpv4_windows.go | 148 ++++++++++ pkg/networkpath/traceroute/tcp/utils.go | 149 +--------- pkg/networkpath/traceroute/tcp/utils_test.go | 265 ++++++------------ pkg/networkpath/traceroute/tcp/utils_unix.go | 151 ++++++++++ .../traceroute/tcp/utils_unix_test.go | 206 ++++++++++++++ .../traceroute/tcp/utils_windows.go | 138 +++++++++ .../traceroute/tcp/utils_windows_test.go | 155 ++++++++++ .../traceroute/traceroute_windows.go | 10 +- ...tial-windows-support-2a51f80234a2b0a1.yaml | 11 + 11 files changed, 1037 insertions(+), 435 deletions(-) create mode 100644 pkg/networkpath/traceroute/tcp/tcpv4_unix.go create mode 100644 pkg/networkpath/traceroute/tcp/tcpv4_windows.go create mode 100644 pkg/networkpath/traceroute/tcp/utils_unix.go create mode 100644 pkg/networkpath/traceroute/tcp/utils_unix_test.go create mode 100644 pkg/networkpath/traceroute/tcp/utils_windows.go create mode 100644 pkg/networkpath/traceroute/tcp/utils_windows_test.go create mode 100644 releasenotes/notes/network-path-initial-windows-support-2a51f80234a2b0a1.yaml diff --git a/pkg/networkpath/traceroute/tcp/tcpv4.go b/pkg/networkpath/traceroute/tcp/tcpv4.go index 23f3c45950689..64484f9c0ad60 100644 --- a/pkg/networkpath/traceroute/tcp/tcpv4.go +++ b/pkg/networkpath/traceroute/tcp/tcpv4.go @@ -7,14 +7,9 @@ package tcp import ( - "fmt" - "math/rand" "net" "time" - "golang.org/x/net/ipv4" - - "github.com/DataDog/datadog-agent/pkg/util/log" "github.com/google/gopacket/layers" ) @@ -54,113 +49,6 @@ type ( } ) -// TracerouteSequential runs a traceroute sequentially where a packet is -// sent and we wait for a response before sending the next packet -func (t *TCPv4) TracerouteSequential() (*Results, error) { - // Get local address for the interface that connects to this - // host and store in in the probe - // - // TODO: do this once for the probe and hang on to the - // listener until we decide to close the probe - addr, err := localAddrForHost(t.Target, t.DestPort) - if err != nil { - return nil, fmt.Errorf("failed to get local address for target: %w", err) - } - t.srcIP = addr.IP - t.srcPort = addr.AddrPort().Port() - - // So far I haven't had success trying to simply create a socket - // using syscalls directly, but in theory doing so would allow us - // to avoid creating two listeners since we could see all IP traffic - // this way - // - // Create a raw ICMP listener to catch ICMP responses - icmpConn, err := net.ListenPacket("ip4:icmp", addr.IP.String()) - if err != nil { - return nil, fmt.Errorf("failed to create ICMP listener: %w", err) - } - defer icmpConn.Close() - // RawConn is necessary to set the TTL and ID fields - rawIcmpConn, err := ipv4.NewRawConn(icmpConn) - if err != nil { - return nil, fmt.Errorf("failed to get raw ICMP listener: %w", err) - } - - // Create a raw TCP listener to catch the TCP response from our final - // hop if we get one - tcpConn, err := net.ListenPacket("ip4:tcp", addr.IP.String()) - if err != nil { - return nil, fmt.Errorf("failed to create TCP listener: %w", err) - } - defer tcpConn.Close() - log.Tracef("Listening for TCP on: %s\n", addr.IP.String()+":"+addr.AddrPort().String()) - // RawConn is necessary to set the TTL and ID fields - rawTCPConn, err := ipv4.NewRawConn(tcpConn) - if err != nil { - return nil, fmt.Errorf("failed to get raw TCP listener: %w", err) - } - - // hops should be of length # of hops - hops := make([]*Hop, 0, t.MaxTTL-t.MinTTL) - - for i := int(t.MinTTL); i <= int(t.MaxTTL); i++ { - seqNumber := rand.Uint32() - hop, err := t.sendAndReceive(rawIcmpConn, rawTCPConn, i, seqNumber, t.Timeout) - if err != nil { - return nil, fmt.Errorf("failed to run traceroute: %w", err) - } - hops = append(hops, hop) - log.Tracef("Discovered hop: %+v", hop) - // if we've reached our destination, - // we're done - if hop.IsDest { - break - } - } - - return &Results{ - Source: t.srcIP, - SourcePort: t.srcPort, - Target: t.Target, - DstPort: t.DestPort, - Hops: hops, - }, nil -} - -func (t *TCPv4) sendAndReceive(rawIcmpConn *ipv4.RawConn, rawTCPConn *ipv4.RawConn, ttl int, seqNum uint32, timeout time.Duration) (*Hop, error) { - tcpHeader, tcpPacket, err := createRawTCPSyn(t.srcIP, t.srcPort, t.Target, t.DestPort, seqNum, ttl) - if err != nil { - log.Errorf("failed to create TCP packet with TTL: %d, error: %s", ttl, err.Error()) - return nil, err - } - - err = sendPacket(rawTCPConn, tcpHeader, tcpPacket) - if err != nil { - log.Errorf("failed to send TCP SYN: %s", err.Error()) - return nil, err - } - - start := time.Now() // TODO: is this the best place to start? - hopIP, hopPort, icmpType, end, err := listenPackets(rawIcmpConn, rawTCPConn, timeout, t.srcIP, t.srcPort, t.Target, t.DestPort, seqNum) - if err != nil { - log.Errorf("failed to listen for packets: %s", err.Error()) - return nil, err - } - - rtt := time.Duration(0) - if !hopIP.Equal(net.IP{}) { - rtt = end.Sub(start) - } - - return &Hop{ - IP: hopIP, - Port: hopPort, - ICMPType: icmpType, - RTT: rtt, - IsDest: hopIP.Equal(t.Target), - }, nil -} - // Close doesn't to anything yet, but we should // use this to close out long running sockets // when we're done with a path test diff --git a/pkg/networkpath/traceroute/tcp/tcpv4_unix.go b/pkg/networkpath/traceroute/tcp/tcpv4_unix.go new file mode 100644 index 0000000000000..2952d504b2b26 --- /dev/null +++ b/pkg/networkpath/traceroute/tcp/tcpv4_unix.go @@ -0,0 +1,127 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build unix + +// Package tcp adds a TCP traceroute implementation to the agent +package tcp + +import ( + "fmt" + "math/rand" + "net" + "time" + + "golang.org/x/net/ipv4" + + "github.com/DataDog/datadog-agent/pkg/util/log" +) + +// TracerouteSequential runs a traceroute sequentially where a packet is +// sent and we wait for a response before sending the next packet +func (t *TCPv4) TracerouteSequential() (*Results, error) { + // Get local address for the interface that connects to this + // host and store in in the probe + // + // TODO: do this once for the probe and hang on to the + // listener until we decide to close the probe + addr, err := localAddrForHost(t.Target, t.DestPort) + if err != nil { + return nil, fmt.Errorf("failed to get local address for target: %w", err) + } + t.srcIP = addr.IP + t.srcPort = addr.AddrPort().Port() + + // So far I haven't had success trying to simply create a socket + // using syscalls directly, but in theory doing so would allow us + // to avoid creating two listeners since we could see all IP traffic + // this way + // + // Create a raw ICMP listener to catch ICMP responses + icmpConn, err := net.ListenPacket("ip4:icmp", addr.IP.String()) + if err != nil { + return nil, fmt.Errorf("failed to create ICMP listener: %w", err) + } + defer icmpConn.Close() + // RawConn is necessary to set the TTL and ID fields + rawIcmpConn, err := ipv4.NewRawConn(icmpConn) + if err != nil { + return nil, fmt.Errorf("failed to get raw ICMP listener: %w", err) + } + + // Create a raw TCP listener to catch the TCP response from our final + // hop if we get one + tcpConn, err := net.ListenPacket("ip4:tcp", addr.IP.String()) + if err != nil { + return nil, fmt.Errorf("failed to create TCP listener: %w", err) + } + defer tcpConn.Close() + log.Tracef("Listening for TCP on: %s\n", addr.IP.String()+":"+addr.AddrPort().String()) + // RawConn is necessary to set the TTL and ID fields + rawTCPConn, err := ipv4.NewRawConn(tcpConn) + if err != nil { + return nil, fmt.Errorf("failed to get raw TCP listener: %w", err) + } + + // hops should be of length # of hops + hops := make([]*Hop, 0, t.MaxTTL-t.MinTTL) + + for i := int(t.MinTTL); i <= int(t.MaxTTL); i++ { + seqNumber := rand.Uint32() + hop, err := t.sendAndReceive(rawIcmpConn, rawTCPConn, i, seqNumber, t.Timeout) + if err != nil { + return nil, fmt.Errorf("failed to run traceroute: %w", err) + } + hops = append(hops, hop) + log.Tracef("Discovered hop: %+v", hop) + // if we've reached our destination, + // we're done + if hop.IsDest { + break + } + } + + return &Results{ + Source: t.srcIP, + SourcePort: t.srcPort, + Target: t.Target, + DstPort: t.DestPort, + Hops: hops, + }, nil +} + +func (t *TCPv4) sendAndReceive(rawIcmpConn *ipv4.RawConn, rawTCPConn *ipv4.RawConn, ttl int, seqNum uint32, timeout time.Duration) (*Hop, error) { + tcpHeader, tcpPacket, err := createRawTCPSyn(t.srcIP, t.srcPort, t.Target, t.DestPort, seqNum, ttl) + if err != nil { + log.Errorf("failed to create TCP packet with TTL: %d, error: %s", ttl, err.Error()) + return nil, err + } + + err = sendPacket(rawTCPConn, tcpHeader, tcpPacket) + if err != nil { + log.Errorf("failed to send TCP SYN: %s", err.Error()) + return nil, err + } + + start := time.Now() // TODO: is this the best place to start? + hopIP, hopPort, icmpType, end, err := listenPackets(rawIcmpConn, rawTCPConn, timeout, t.srcIP, t.srcPort, t.Target, t.DestPort, seqNum) + if err != nil { + log.Errorf("failed to listen for packets: %s", err.Error()) + return nil, err + } + + rtt := time.Duration(0) + if !hopIP.Equal(net.IP{}) { + rtt = end.Sub(start) + } + + return &Hop{ + IP: hopIP, + Port: hopPort, + ICMPType: icmpType, + RTT: rtt, + IsDest: hopIP.Equal(t.Target), + }, nil +} diff --git a/pkg/networkpath/traceroute/tcp/tcpv4_windows.go b/pkg/networkpath/traceroute/tcp/tcpv4_windows.go new file mode 100644 index 0000000000000..3067695b0e559 --- /dev/null +++ b/pkg/networkpath/traceroute/tcp/tcpv4_windows.go @@ -0,0 +1,148 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package tcp adds a TCP traceroute implementation to the agent +package tcp + +import ( + "fmt" + "math/rand" + "net" + "time" + + "golang.org/x/sys/windows" + + "github.com/DataDog/datadog-agent/pkg/util/log" +) + +var ( + sendTo = windows.Sendto +) + +type winrawsocket struct { + s windows.Handle +} + +func (w *winrawsocket) close() { + if w.s != windows.InvalidHandle { + windows.Closesocket(w.s) // nolint: errcheck + } + w.s = windows.InvalidHandle +} + +func (t *TCPv4) sendRawPacket(w *winrawsocket, payload []byte) error { + + dst := t.Target.To4() + sa := &windows.SockaddrInet4{ + Port: int(t.DestPort), + Addr: [4]byte{dst[0], dst[1], dst[2], dst[3]}, + } + if err := sendTo(w.s, payload, 0, sa); err != nil { + return fmt.Errorf("failed to send packet: %w", err) + } + return nil +} + +func createRawSocket() (*winrawsocket, error) { + s, err := windows.Socket(windows.AF_INET, windows.SOCK_RAW, windows.IPPROTO_IP) + if err != nil { + return nil, fmt.Errorf("failed to create raw socket: %w", err) + } + on := int(1) + err = windows.SetsockoptInt(s, windows.IPPROTO_IP, windows.IP_HDRINCL, on) + if err != nil { + windows.Closesocket(s) // nolint: errcheck + return nil, fmt.Errorf("failed to set IP_HDRINCL: %w", err) + } + + err = windows.SetsockoptInt(s, windows.SOL_SOCKET, windows.SO_RCVTIMEO, 100) + if err != nil { + windows.Closesocket(s) // nolint: errcheck + return nil, fmt.Errorf("failed to set SO_RCVTIMEO: %w", err) + } + return &winrawsocket{s: s}, nil +} + +// TracerouteSequential runs a traceroute sequentially where a packet is +// sent and we wait for a response before sending the next packet +func (t *TCPv4) TracerouteSequential() (*Results, error) { + log.Debugf("Running traceroute to %+v", t) + // Get local address for the interface that connects to this + // host and store in in the probe + // + // TODO: do this once for the probe and hang on to the + // listener until we decide to close the probe + addr, err := localAddrForHost(t.Target, t.DestPort) + if err != nil { + return nil, fmt.Errorf("failed to get local address for target: %w", err) + } + t.srcIP = addr.IP + t.srcPort = addr.AddrPort().Port() + + rs, err := createRawSocket() + if err != nil { + return nil, fmt.Errorf("failed to create raw socket: %w", err) + } + defer rs.close() + + hops := make([]*Hop, 0, int(t.MaxTTL-t.MinTTL)+1) + + for i := int(t.MinTTL); i <= int(t.MaxTTL); i++ { + seqNumber := rand.Uint32() + hop, err := t.sendAndReceive(rs, i, seqNumber, t.Timeout) + if err != nil { + return nil, fmt.Errorf("failed to run traceroute: %w", err) + } + hops = append(hops, hop) + log.Tracef("Discovered hop: %+v", hop) + // if we've reached our destination, + // we're done + if hop.IsDest { + break + } + } + + return &Results{ + Source: t.srcIP, + SourcePort: t.srcPort, + Target: t.Target, + DstPort: t.DestPort, + Hops: hops, + }, nil +} + +func (t *TCPv4) sendAndReceive(rs *winrawsocket, ttl int, seqNum uint32, timeout time.Duration) (*Hop, error) { + _, buffer, _, err := createRawTCPSynBuffer(t.srcIP, t.srcPort, t.Target, t.DestPort, seqNum, ttl) + if err != nil { + log.Errorf("failed to create TCP packet with TTL: %d, error: %s", ttl, err.Error()) + return nil, err + } + + err = t.sendRawPacket(rs, buffer) + if err != nil { + log.Errorf("failed to send TCP packet: %s", err.Error()) + return nil, err + } + + start := time.Now() // TODO: is this the best place to start? + hopIP, hopPort, icmpType, end, err := rs.listenPackets(timeout, t.srcIP, t.srcPort, t.Target, t.DestPort, seqNum) + if err != nil { + log.Errorf("failed to listen for packets: %s", err.Error()) + return nil, err + } + + rtt := time.Duration(0) + if !hopIP.Equal(net.IP{}) { + rtt = end.Sub(start) + } + + return &Hop{ + IP: hopIP, + Port: hopPort, + ICMPType: icmpType, + RTT: rtt, + IsDest: hopIP.Equal(t.Target), + }, nil +} diff --git a/pkg/networkpath/traceroute/tcp/utils.go b/pkg/networkpath/traceroute/tcp/utils.go index be2ed9b6812c7..4e48dc7b42828 100644 --- a/pkg/networkpath/traceroute/tcp/utils.go +++ b/pkg/networkpath/traceroute/tcp/utils.go @@ -6,17 +6,13 @@ package tcp import ( - "context" "fmt" "net" "strconv" - "sync" - "time" "github.com/DataDog/datadog-agent/pkg/util/log" "github.com/google/gopacket" "github.com/google/gopacket/layers" - "go.uber.org/multierr" "golang.org/x/net/ipv4" ) @@ -59,12 +55,6 @@ type ( DstIP net.IP TCPResponse layers.TCP } - - rawConnWrapper interface { - SetReadDeadline(t time.Time) error - ReadFrom(b []byte) (*ipv4.Header, []byte, *ipv4.ControlMessage, error) - WriteTo(h *ipv4.Header, p []byte, cm *ipv4.ControlMessage) error - } ) func localAddrForHost(destIP net.IP, destPort uint16) (*net.UDPAddr, error) { @@ -88,6 +78,15 @@ func localAddrForHost(destIP net.IP, destPort uint16) (*net.UDPAddr, error) { // createRawTCPSyn creates a TCP packet with the specified parameters func createRawTCPSyn(sourceIP net.IP, sourcePort uint16, destIP net.IP, destPort uint16, seqNum uint32, ttl int) (*ipv4.Header, []byte, error) { + ipHdr, packet, hdrlen, err := createRawTCPSynBuffer(sourceIP, sourcePort, destIP, destPort, seqNum, ttl) + if err != nil { + return nil, nil, err + } + + return ipHdr, packet[hdrlen:], nil +} + +func createRawTCPSynBuffer(sourceIP net.IP, sourcePort uint16, destIP net.IP, destPort uint16, seqNum uint32, ttl int) (*ipv4.Header, []byte, int, error) { ipLayer := &layers.IPv4{ Version: 4, Length: 20, @@ -109,7 +108,7 @@ func createRawTCPSyn(sourceIP net.IP, sourcePort uint16, destIP net.IP, destPort err := tcpLayer.SetNetworkLayerForChecksum(ipLayer) if err != nil { - return nil, nil, fmt.Errorf("failed to create packet checksum: %w", err) + return nil, nil, 0, fmt.Errorf("failed to create packet checksum: %w", err) } buf := gopacket.NewSerializeBuffer() opts := gopacket.SerializeOptions{FixLengths: true, ComputeChecksums: true} @@ -118,138 +117,16 @@ func createRawTCPSyn(sourceIP net.IP, sourcePort uint16, destIP net.IP, destPort tcpLayer, ) if err != nil { - return nil, nil, fmt.Errorf("failed to serialize packet: %w", err) + return nil, nil, 0, fmt.Errorf("failed to serialize packet: %w", err) } packet := buf.Bytes() var ipHdr ipv4.Header if err := ipHdr.Parse(packet[:20]); err != nil { - return nil, nil, fmt.Errorf("failed to parse IP header: %w", err) - } - - return &ipHdr, packet[20:], nil -} - -// sendPacket sends a raw IPv4 packet using the passed connection -func sendPacket(rawConn rawConnWrapper, header *ipv4.Header, payload []byte) error { - if err := rawConn.WriteTo(header, payload, nil); err != nil { - return err - } - - return nil -} - -// listenPackets takes in raw ICMP and TCP connections and listens for matching ICMP -// and TCP responses based on the passed in trace information. If neither listener -// receives a matching packet within the timeout, a blank response is returned. -// Once a matching packet is received by a listener, it will cause the other listener -// to be canceled, and data from the matching packet will be returned to the caller -func listenPackets(icmpConn rawConnWrapper, tcpConn rawConnWrapper, timeout time.Duration, localIP net.IP, localPort uint16, remoteIP net.IP, remotePort uint16, seqNum uint32) (net.IP, uint16, layers.ICMPv4TypeCode, time.Time, error) { - var tcpErr error - var icmpErr error - var wg sync.WaitGroup - var icmpIP net.IP - var tcpIP net.IP - var icmpCode layers.ICMPv4TypeCode - var tcpFinished time.Time - var icmpFinished time.Time - var port uint16 - wg.Add(2) - ctx, cancel := context.WithTimeout(context.Background(), timeout) - defer cancel() - go func() { - defer wg.Done() - defer cancel() - tcpIP, port, _, tcpFinished, tcpErr = handlePackets(ctx, tcpConn, "tcp", localIP, localPort, remoteIP, remotePort, seqNum) - }() - go func() { - defer wg.Done() - defer cancel() - icmpIP, _, icmpCode, icmpFinished, icmpErr = handlePackets(ctx, icmpConn, "icmp", localIP, localPort, remoteIP, remotePort, seqNum) - }() - wg.Wait() - - if tcpErr != nil && icmpErr != nil { - _, tcpCanceled := tcpErr.(canceledError) - _, icmpCanceled := icmpErr.(canceledError) - if icmpCanceled && tcpCanceled { - log.Trace("timed out waiting for responses") - return net.IP{}, 0, 0, time.Time{}, nil - } - if tcpErr != nil { - log.Errorf("TCP listener error: %s", tcpErr.Error()) - } - if icmpErr != nil { - log.Errorf("ICMP listener error: %s", icmpErr.Error()) - } - - return net.IP{}, 0, 0, time.Time{}, multierr.Append(fmt.Errorf("tcp error: %w", tcpErr), fmt.Errorf("icmp error: %w", icmpErr)) + return nil, nil, 0, fmt.Errorf("failed to parse IP header: %w", err) } - // if there was an error for TCP, but not - // ICMP, return the ICMP response - if tcpErr != nil { - return icmpIP, port, icmpCode, icmpFinished, nil - } - - // return the TCP response - return tcpIP, port, 0, tcpFinished, nil -} - -// handlePackets in its current implementation should listen for the first matching -// packet on the connection and then return. If no packet is received within the -// timeout or if the listener is canceled, it should return a canceledError -func handlePackets(ctx context.Context, conn rawConnWrapper, listener string, localIP net.IP, localPort uint16, remoteIP net.IP, remotePort uint16, seqNum uint32) (net.IP, uint16, layers.ICMPv4TypeCode, time.Time, error) { - buf := make([]byte, 1024) - tp := newTCPParser() - for { - select { - case <-ctx.Done(): - return net.IP{}, 0, 0, time.Time{}, canceledError("listener canceled") - default: - } - now := time.Now() - err := conn.SetReadDeadline(now.Add(time.Millisecond * 100)) - if err != nil { - return net.IP{}, 0, 0, time.Time{}, fmt.Errorf("failed to read: %w", err) - } - header, packet, _, err := conn.ReadFrom(buf) - if err != nil { - if nerr, ok := err.(*net.OpError); ok { - if nerr.Timeout() { - continue - } - } - return net.IP{}, 0, 0, time.Time{}, err - } - // once we have a packet, take a timestamp to know when - // the response was received, if it matches, we will - // return this timestamp - received := time.Now() - // TODO: remove listener constraint and parse all packets - // in the same function return a succinct struct here - if listener == "icmp" { - icmpResponse, err := parseICMP(header, packet) - if err != nil { - log.Tracef("failed to parse ICMP packet: %s", err) - continue - } - if icmpMatch(localIP, localPort, remoteIP, remotePort, seqNum, icmpResponse) { - return icmpResponse.SrcIP, 0, icmpResponse.TypeCode, received, nil - } - } else if listener == "tcp" { - tcpResp, err := tp.parseTCP(header, packet) - if err != nil { - log.Tracef("failed to parse TCP packet: %s", err) - continue - } - if tcpMatch(localIP, localPort, remoteIP, remotePort, seqNum, tcpResp) { - return tcpResp.SrcIP, uint16(tcpResp.TCPResponse.SrcPort), 0, received, nil - } - } else { - return net.IP{}, 0, 0, received, fmt.Errorf("unsupported listener type") - } - } + return &ipHdr, packet, 20, nil } // parseICMP takes in an IPv4 header and payload and tries to convert to an ICMP diff --git a/pkg/networkpath/traceroute/tcp/utils_test.go b/pkg/networkpath/traceroute/tcp/utils_test.go index b38d7fd5bc492..c0ca91420d2b3 100644 --- a/pkg/networkpath/traceroute/tcp/utils_test.go +++ b/pkg/networkpath/traceroute/tcp/utils_test.go @@ -8,13 +8,9 @@ package tcp import ( - "context" - "errors" "net" "reflect" - "strings" "testing" - "time" "github.com/google/gopacket" "github.com/google/gopacket/layers" @@ -31,153 +27,66 @@ var ( innerDstIP = net.ParseIP("192.168.1.1") ) -type ( - mockRawConn struct { - setReadDeadlineErr error - readDeadline time.Time +func Test_createRawTCPSyn(t *testing.T) { + srcIP := net.ParseIP("1.2.3.4") + dstIP := net.ParseIP("5.6.7.8") + srcPort := uint16(12345) + dstPort := uint16(80) + seqNum := uint32(1000) + ttl := 64 - readTimeoutCount int - readFromErr error - header *ipv4.Header - payload []byte - cm *ipv4.ControlMessage + expectedIPHeader := &ipv4.Header{ + Version: 4, + TTL: ttl, + ID: 41821, + Protocol: 6, + Dst: dstIP, + Src: srcIP, + Len: 20, + TotalLen: 40, + Checksum: 51039, + } - writeDelay time.Duration - writeToErr error + expectedPktBytes := []byte{ + 0x30, 0x39, 0x0, 0x50, 0x0, 0x0, 0x3, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x50, 0x2, 0x4, 0x0, 0x67, 0x5e, 0x0, 0x0, } - mockTimeoutErr string -) + ipHeader, pktBytes, err := createRawTCPSyn(srcIP, srcPort, dstIP, dstPort, seqNum, ttl) + require.NoError(t, err) + assert.Equal(t, expectedIPHeader, ipHeader) + assert.Equal(t, expectedPktBytes, pktBytes) +} -func Test_handlePackets(t *testing.T) { - _, tcpBytes := createMockTCPPacket(createMockIPv4Header(dstIP, srcIP, 6), createMockTCPLayer(443, 12345, 28394, 28395, true, true, true)) +func Test_createRawTCPSynBuffer(t *testing.T) { + srcIP := net.ParseIP("1.2.3.4") + dstIP := net.ParseIP("5.6.7.8") + srcPort := uint16(12345) + dstPort := uint16(80) + seqNum := uint32(1000) + ttl := 64 - tt := []struct { - description string - // input - ctxTimeout time.Duration - conn rawConnWrapper - listener string - localIP net.IP - localPort uint16 - remoteIP net.IP - remotePort uint16 - seqNum uint32 - // output - expectedIP net.IP - expectedPort uint16 - expectedTypeCode layers.ICMPv4TypeCode - errMsg string - }{ - { - description: "canceled context returns canceledErr", - ctxTimeout: 300 * time.Millisecond, - conn: &mockRawConn{ - readTimeoutCount: 100, - readFromErr: errors.New("bad test error"), - }, - errMsg: "canceled", - }, - { - description: "set timeout error returns an error", - ctxTimeout: 300 * time.Millisecond, - conn: &mockRawConn{ - setReadDeadlineErr: errors.New("good test error"), - readTimeoutCount: 100, - readFromErr: errors.New("bad error"), - }, - errMsg: "good test error", - }, - { - description: "non-timeout read error returns an error", - ctxTimeout: 1 * time.Second, - conn: &mockRawConn{ - readFromErr: errors.New("test read error"), - }, - errMsg: "test read error", - }, - { - description: "invalid listener returns unsupported listener", - ctxTimeout: 1 * time.Second, - conn: &mockRawConn{ - header: &ipv4.Header{}, - payload: nil, - }, - listener: "invalid", - errMsg: "unsupported", - }, - { - description: "failed ICMP parsing eventuallly returns cancel timeout", - ctxTimeout: 500 * time.Millisecond, - conn: &mockRawConn{ - header: &ipv4.Header{}, - payload: nil, - }, - listener: "icmp", - errMsg: "canceled", - }, - { - description: "failed TCP parsing eventuallly returns cancel timeout", - ctxTimeout: 500 * time.Millisecond, - conn: &mockRawConn{ - header: &ipv4.Header{}, - payload: nil, - }, - listener: "tcp", - errMsg: "canceled", - }, - { - description: "successful ICMP parsing returns IP, port, and type code", - ctxTimeout: 500 * time.Millisecond, - conn: &mockRawConn{ - header: createMockIPv4Header(srcIP, dstIP, 1), - payload: createMockICMPPacket(createMockICMPLayer(layers.ICMPv4CodeTTLExceeded), createMockIPv4Layer(innerSrcIP, innerDstIP, layers.IPProtocolTCP), createMockTCPLayer(12345, 443, 28394, 12737, true, true, true), false), - }, - localIP: innerSrcIP, - localPort: 12345, - remoteIP: innerDstIP, - remotePort: 443, - seqNum: 28394, - listener: "icmp", - expectedIP: srcIP, - expectedPort: 0, - expectedTypeCode: layers.ICMPv4CodeTTLExceeded, - }, - { - description: "successful TCP parsing returns IP, port, and type code", - ctxTimeout: 500 * time.Millisecond, - conn: &mockRawConn{ - header: createMockIPv4Header(dstIP, srcIP, 6), - payload: tcpBytes, - }, - localIP: srcIP, - localPort: 12345, - remoteIP: dstIP, - remotePort: 443, - seqNum: 28394, - listener: "tcp", - expectedIP: dstIP, - expectedPort: 443, - expectedTypeCode: 0, - }, + expectedIPHeader := &ipv4.Header{ + Version: 4, + TTL: ttl, + ID: 41821, + Protocol: 6, + Dst: dstIP, + Src: srcIP, + Len: 20, + TotalLen: 40, + Checksum: 51039, } - for _, test := range tt { - t.Run(test.description, func(t *testing.T) { - ctx, cancel := context.WithTimeout(context.Background(), test.ctxTimeout) - defer cancel() - actualIP, actualPort, actualTypeCode, _, err := handlePackets(ctx, test.conn, test.listener, test.localIP, test.localPort, test.remoteIP, test.remotePort, test.seqNum) - if test.errMsg != "" { - require.Error(t, err) - assert.True(t, strings.Contains(err.Error(), test.errMsg)) - return - } - require.NoError(t, err) - assert.Truef(t, test.expectedIP.Equal(actualIP), "mismatch source IPs: expected %s, got %s", test.expectedIP.String(), actualIP.String()) - assert.Equal(t, test.expectedPort, actualPort) - assert.Equal(t, test.expectedTypeCode, actualTypeCode) - }) + expectedPktBytes := []byte{ + 0x45, 0x0, 0x0, 0x28, 0xa3, 0x5d, 0x0, 0x0, 0x40, 0x6, 0xc7, 0x5f, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x30, 0x39, 0x0, 0x50, 0x0, 0x0, 0x3, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x50, 0x2, 0x4, 0x0, 0x67, 0x5e, 0x0, 0x0, } + + ipHeader, pktBytes, headerLength, err := createRawTCPSynBuffer(srcIP, srcPort, dstIP, dstPort, seqNum, ttl) + + require.NoError(t, err) + assert.Equal(t, expectedIPHeader, ipHeader) + assert.Equal(t, 20, headerLength) + assert.Equal(t, expectedPktBytes, pktBytes) } func Test_parseICMP(t *testing.T) { @@ -210,14 +119,14 @@ func Test_parseICMP(t *testing.T) { { description: "missing inner layers should return an error", inHeader: ipv4Header, - inPayload: createMockICMPPacket(icmpLayer, nil, nil, false), + inPayload: createMockICMPPacket(nil, icmpLayer, nil, nil, false), expected: nil, errMsg: "failed to decode inner ICMP payload", }, { description: "ICMP packet with partial TCP header should create icmpResponse", inHeader: ipv4Header, - inPayload: createMockICMPPacket(icmpLayer, innerIPv4Layer, innerTCPLayer, true), + inPayload: createMockICMPPacket(nil, icmpLayer, innerIPv4Layer, innerTCPLayer, true), expected: &icmpResponse{ SrcIP: srcIP, DstIP: dstIP, @@ -232,7 +141,7 @@ func Test_parseICMP(t *testing.T) { { description: "full ICMP packet should create icmpResponse", inHeader: ipv4Header, - inPayload: createMockICMPPacket(icmpLayer, innerIPv4Layer, innerTCPLayer, true), + inPayload: createMockICMPPacket(nil, icmpLayer, innerIPv4Layer, innerTCPLayer, true), expected: &icmpResponse{ SrcIP: srcIP, DstIP: dstIP, @@ -275,7 +184,7 @@ func Test_parseTCP(t *testing.T) { tcpLayer := createMockTCPLayer(12345, 443, 28394, 12737, true, true, true) // full packet - encodedTCPLayer, fullTCPPacket := createMockTCPPacket(ipv4Header, tcpLayer) + encodedTCPLayer, fullTCPPacket := createMockTCPPacket(ipv4Header, tcpLayer, false) tt := []struct { description string @@ -337,7 +246,7 @@ func BenchmarkParseTCP(b *testing.B) { tcpLayer := createMockTCPLayer(12345, 443, 28394, 12737, true, true, true) // full packet - _, fullTCPPacket := createMockTCPPacket(ipv4Header, tcpLayer) + _, fullTCPPacket := createMockTCPPacket(ipv4Header, tcpLayer, false) tp := newTCPParser() @@ -350,40 +259,6 @@ func BenchmarkParseTCP(b *testing.B) { } } -func (m *mockRawConn) SetReadDeadline(t time.Time) error { - if m.setReadDeadlineErr != nil { - return m.setReadDeadlineErr - } - m.readDeadline = t - - return nil -} -func (m *mockRawConn) ReadFrom(_ []byte) (*ipv4.Header, []byte, *ipv4.ControlMessage, error) { - if m.readTimeoutCount > 0 { - m.readTimeoutCount-- - time.Sleep(time.Until(m.readDeadline)) - return nil, nil, nil, &net.OpError{Err: mockTimeoutErr("test timeout error")} - } - if m.readFromErr != nil { - return nil, nil, nil, m.readFromErr - } - - return m.header, m.payload, m.cm, nil -} - -func (m *mockRawConn) WriteTo(_ *ipv4.Header, _ []byte, _ *ipv4.ControlMessage) error { - time.Sleep(m.writeDelay) - return m.writeToErr -} - -func (me mockTimeoutErr) Error() string { - return string(me) -} - -func (me mockTimeoutErr) Timeout() bool { - return true -} - func createMockIPv4Header(srcIP, dstIP net.IP, protocol int) *ipv4.Header { return &ipv4.Header{ Version: 4, @@ -395,7 +270,7 @@ func createMockIPv4Header(srcIP, dstIP net.IP, protocol int) *ipv4.Header { } } -func createMockICMPPacket(icmpLayer *layers.ICMPv4, innerIP *layers.IPv4, innerTCP *layers.TCP, partialTCPHeader bool) []byte { +func createMockICMPPacket(ipLayer *layers.IPv4, icmpLayer *layers.ICMPv4, innerIP *layers.IPv4, innerTCP *layers.TCP, partialTCPHeader bool) []byte { innerBuf := gopacket.NewSerializeBuffer() opts := gopacket.SerializeOptions{FixLengths: true, ComputeChecksums: true} @@ -428,10 +303,21 @@ func createMockICMPPacket(icmpLayer *layers.ICMPv4, innerIP *layers.IPv4, innerT gopacket.Payload(payload), ) + icmpBytes := buf.Bytes() + if ipLayer == nil { + return icmpBytes + } + + buf = gopacket.NewSerializeBuffer() + gopacket.SerializeLayers(buf, opts, + ipLayer, + gopacket.Payload(icmpBytes), + ) + return buf.Bytes() } -func createMockTCPPacket(ipHeader *ipv4.Header, tcpLayer *layers.TCP) (*layers.TCP, []byte) { +func createMockTCPPacket(ipHeader *ipv4.Header, tcpLayer *layers.TCP, includeHeader bool) (*layers.TCP, []byte) { ipLayer := &layers.IPv4{ Version: 4, SrcIP: ipHeader.Src, @@ -443,9 +329,16 @@ func createMockTCPPacket(ipHeader *ipv4.Header, tcpLayer *layers.TCP) (*layers.T tcpLayer.SetNetworkLayerForChecksum(ipLayer) buf := gopacket.NewSerializeBuffer() opts := gopacket.SerializeOptions{FixLengths: true, ComputeChecksums: true} - gopacket.SerializeLayers(buf, opts, - tcpLayer, - ) + if includeHeader { + gopacket.SerializeLayers(buf, opts, + ipLayer, + tcpLayer, + ) + } else { + gopacket.SerializeLayers(buf, opts, + tcpLayer, + ) + } pkt := gopacket.NewPacket(buf.Bytes(), layers.LayerTypeTCP, gopacket.Default) diff --git a/pkg/networkpath/traceroute/tcp/utils_unix.go b/pkg/networkpath/traceroute/tcp/utils_unix.go new file mode 100644 index 0000000000000..2a52e5f8bea88 --- /dev/null +++ b/pkg/networkpath/traceroute/tcp/utils_unix.go @@ -0,0 +1,151 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build unix + +package tcp + +import ( + "context" + "fmt" + "net" + "sync" + "time" + + "github.com/DataDog/datadog-agent/pkg/util/log" + "github.com/google/gopacket/layers" + "go.uber.org/multierr" + "golang.org/x/net/ipv4" +) + +type ( + rawConnWrapper interface { + SetReadDeadline(t time.Time) error + ReadFrom(b []byte) (*ipv4.Header, []byte, *ipv4.ControlMessage, error) + WriteTo(h *ipv4.Header, p []byte, cm *ipv4.ControlMessage) error + } +) + +// sendPacket sends a raw IPv4 packet using the passed connection +func sendPacket(rawConn rawConnWrapper, header *ipv4.Header, payload []byte) error { + if err := rawConn.WriteTo(header, payload, nil); err != nil { + return err + } + + return nil +} + +// listenPackets takes in raw ICMP and TCP connections and listens for matching ICMP +// and TCP responses based on the passed in trace information. If neither listener +// receives a matching packet within the timeout, a blank response is returned. +// Once a matching packet is received by a listener, it will cause the other listener +// to be canceled, and data from the matching packet will be returned to the caller +func listenPackets(icmpConn rawConnWrapper, tcpConn rawConnWrapper, timeout time.Duration, localIP net.IP, localPort uint16, remoteIP net.IP, remotePort uint16, seqNum uint32) (net.IP, uint16, layers.ICMPv4TypeCode, time.Time, error) { + var tcpErr error + var icmpErr error + var wg sync.WaitGroup + var icmpIP net.IP + var tcpIP net.IP + var icmpCode layers.ICMPv4TypeCode + var tcpFinished time.Time + var icmpFinished time.Time + var port uint16 + wg.Add(2) + ctx, cancel := context.WithTimeout(context.Background(), timeout) + defer cancel() + go func() { + defer wg.Done() + defer cancel() + tcpIP, port, _, tcpFinished, tcpErr = handlePackets(ctx, tcpConn, "tcp", localIP, localPort, remoteIP, remotePort, seqNum) + }() + go func() { + defer wg.Done() + defer cancel() + icmpIP, _, icmpCode, icmpFinished, icmpErr = handlePackets(ctx, icmpConn, "icmp", localIP, localPort, remoteIP, remotePort, seqNum) + }() + wg.Wait() + + if tcpErr != nil && icmpErr != nil { + _, tcpCanceled := tcpErr.(canceledError) + _, icmpCanceled := icmpErr.(canceledError) + if icmpCanceled && tcpCanceled { + log.Trace("timed out waiting for responses") + return net.IP{}, 0, 0, time.Time{}, nil + } + if tcpErr != nil { + log.Errorf("TCP listener error: %s", tcpErr.Error()) + } + if icmpErr != nil { + log.Errorf("ICMP listener error: %s", icmpErr.Error()) + } + + return net.IP{}, 0, 0, time.Time{}, multierr.Append(fmt.Errorf("tcp error: %w", tcpErr), fmt.Errorf("icmp error: %w", icmpErr)) + } + + // if there was an error for TCP, but not + // ICMP, return the ICMP response + if tcpErr != nil { + return icmpIP, port, icmpCode, icmpFinished, nil + } + + // return the TCP response + return tcpIP, port, 0, tcpFinished, nil +} + +// handlePackets in its current implementation should listen for the first matching +// packet on the connection and then return. If no packet is received within the +// timeout or if the listener is canceled, it should return a canceledError +func handlePackets(ctx context.Context, conn rawConnWrapper, listener string, localIP net.IP, localPort uint16, remoteIP net.IP, remotePort uint16, seqNum uint32) (net.IP, uint16, layers.ICMPv4TypeCode, time.Time, error) { + buf := make([]byte, 1024) + tp := newTCPParser() + for { + select { + case <-ctx.Done(): + return net.IP{}, 0, 0, time.Time{}, canceledError("listener canceled") + default: + } + now := time.Now() + err := conn.SetReadDeadline(now.Add(time.Millisecond * 100)) + if err != nil { + return net.IP{}, 0, 0, time.Time{}, fmt.Errorf("failed to read: %w", err) + } + header, packet, _, err := conn.ReadFrom(buf) + if err != nil { + if nerr, ok := err.(*net.OpError); ok { + if nerr.Timeout() { + continue + } + } + return net.IP{}, 0, 0, time.Time{}, err + } + // once we have a packet, take a timestamp to know when + // the response was received, if it matches, we will + // return this timestamp + received := time.Now() + // TODO: remove listener constraint and parse all packets + // in the same function return a succinct struct here + if listener == "icmp" { + icmpResponse, err := parseICMP(header, packet) + if err != nil { + log.Tracef("failed to parse ICMP packet: %s", err) + continue + } + if icmpMatch(localIP, localPort, remoteIP, remotePort, seqNum, icmpResponse) { + return icmpResponse.SrcIP, 0, icmpResponse.TypeCode, received, nil + } + } else if listener == "tcp" { + tcpResp, err := tp.parseTCP(header, packet) + if err != nil { + log.Tracef("failed to parse TCP packet: %s", err) + continue + } + if tcpMatch(localIP, localPort, remoteIP, remotePort, seqNum, tcpResp) { + return tcpResp.SrcIP, uint16(tcpResp.TCPResponse.SrcPort), 0, received, nil + } + } else { + return net.IP{}, 0, 0, received, fmt.Errorf("unsupported listener type") + } + } +} diff --git a/pkg/networkpath/traceroute/tcp/utils_unix_test.go b/pkg/networkpath/traceroute/tcp/utils_unix_test.go new file mode 100644 index 0000000000000..731f5affe1380 --- /dev/null +++ b/pkg/networkpath/traceroute/tcp/utils_unix_test.go @@ -0,0 +1,206 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build test && unix + +package tcp + +import ( + "context" + "errors" + "net" + "strings" + "testing" + "time" + + "github.com/google/gopacket/layers" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "golang.org/x/net/ipv4" +) + +type ( + mockRawConn struct { + setReadDeadlineErr error + readDeadline time.Time + + readTimeoutCount int + readFromErr error + header *ipv4.Header + payload []byte + cm *ipv4.ControlMessage + + writeDelay time.Duration + writeToErr error + } + + mockTimeoutErr string +) + +func Test_handlePackets(t *testing.T) { + _, tcpBytes := createMockTCPPacket(createMockIPv4Header(dstIP, srcIP, 6), createMockTCPLayer(443, 12345, 28394, 28395, true, true, true), false) + + tt := []struct { + description string + // input + ctxTimeout time.Duration + conn rawConnWrapper + listener string + localIP net.IP + localPort uint16 + remoteIP net.IP + remotePort uint16 + seqNum uint32 + // output + expectedIP net.IP + expectedPort uint16 + expectedTypeCode layers.ICMPv4TypeCode + errMsg string + }{ + { + description: "canceled context returns canceledErr", + ctxTimeout: 300 * time.Millisecond, + conn: &mockRawConn{ + readTimeoutCount: 100, + readFromErr: errors.New("bad test error"), + }, + errMsg: "canceled", + }, + { + description: "set timeout error returns an error", + ctxTimeout: 300 * time.Millisecond, + conn: &mockRawConn{ + setReadDeadlineErr: errors.New("good test error"), + readTimeoutCount: 100, + readFromErr: errors.New("bad error"), + }, + errMsg: "good test error", + }, + { + description: "non-timeout read error returns an error", + ctxTimeout: 1 * time.Second, + conn: &mockRawConn{ + readFromErr: errors.New("test read error"), + }, + errMsg: "test read error", + }, + { + description: "invalid listener returns unsupported listener", + ctxTimeout: 1 * time.Second, + conn: &mockRawConn{ + header: &ipv4.Header{}, + payload: nil, + }, + listener: "invalid", + errMsg: "unsupported", + }, + { + description: "failed ICMP parsing eventuallly returns cancel timeout", + ctxTimeout: 500 * time.Millisecond, + conn: &mockRawConn{ + header: &ipv4.Header{}, + payload: nil, + }, + listener: "icmp", + errMsg: "canceled", + }, + { + description: "failed TCP parsing eventuallly returns cancel timeout", + ctxTimeout: 500 * time.Millisecond, + conn: &mockRawConn{ + header: &ipv4.Header{}, + payload: nil, + }, + listener: "tcp", + errMsg: "canceled", + }, + { + description: "successful ICMP parsing returns IP, port, and type code", + ctxTimeout: 500 * time.Millisecond, + conn: &mockRawConn{ + header: createMockIPv4Header(srcIP, dstIP, 1), + payload: createMockICMPPacket(nil, createMockICMPLayer(layers.ICMPv4CodeTTLExceeded), createMockIPv4Layer(innerSrcIP, innerDstIP, layers.IPProtocolTCP), createMockTCPLayer(12345, 443, 28394, 12737, true, true, true), false), + }, + localIP: innerSrcIP, + localPort: 12345, + remoteIP: innerDstIP, + remotePort: 443, + seqNum: 28394, + listener: "icmp", + expectedIP: srcIP, + expectedPort: 0, + expectedTypeCode: layers.ICMPv4CodeTTLExceeded, + }, + { + description: "successful TCP parsing returns IP, port, and type code", + ctxTimeout: 500 * time.Millisecond, + conn: &mockRawConn{ + header: createMockIPv4Header(dstIP, srcIP, 6), + payload: tcpBytes, + }, + localIP: srcIP, + localPort: 12345, + remoteIP: dstIP, + remotePort: 443, + seqNum: 28394, + listener: "tcp", + expectedIP: dstIP, + expectedPort: 443, + expectedTypeCode: 0, + }, + } + + for _, test := range tt { + t.Run(test.description, func(t *testing.T) { + ctx, cancel := context.WithTimeout(context.Background(), test.ctxTimeout) + defer cancel() + actualIP, actualPort, actualTypeCode, _, err := handlePackets(ctx, test.conn, test.listener, test.localIP, test.localPort, test.remoteIP, test.remotePort, test.seqNum) + if test.errMsg != "" { + require.Error(t, err) + assert.True(t, strings.Contains(err.Error(), test.errMsg)) + return + } + require.NoError(t, err) + assert.Truef(t, test.expectedIP.Equal(actualIP), "mismatch source IPs: expected %s, got %s", test.expectedIP.String(), actualIP.String()) + assert.Equal(t, test.expectedPort, actualPort) + assert.Equal(t, test.expectedTypeCode, actualTypeCode) + }) + } +} + +func (m *mockRawConn) SetReadDeadline(t time.Time) error { + if m.setReadDeadlineErr != nil { + return m.setReadDeadlineErr + } + m.readDeadline = t + + return nil +} + +func (m *mockRawConn) ReadFrom(_ []byte) (*ipv4.Header, []byte, *ipv4.ControlMessage, error) { + if m.readTimeoutCount > 0 { + m.readTimeoutCount-- + time.Sleep(time.Until(m.readDeadline)) + return nil, nil, nil, &net.OpError{Err: mockTimeoutErr("test timeout error")} + } + if m.readFromErr != nil { + return nil, nil, nil, m.readFromErr + } + + return m.header, m.payload, m.cm, nil +} + +func (m *mockRawConn) WriteTo(_ *ipv4.Header, _ []byte, _ *ipv4.ControlMessage) error { + time.Sleep(m.writeDelay) + return m.writeToErr +} + +func (me mockTimeoutErr) Error() string { + return string(me) +} + +func (me mockTimeoutErr) Timeout() bool { + return true +} diff --git a/pkg/networkpath/traceroute/tcp/utils_windows.go b/pkg/networkpath/traceroute/tcp/utils_windows.go new file mode 100644 index 0000000000000..077495f43203e --- /dev/null +++ b/pkg/networkpath/traceroute/tcp/utils_windows.go @@ -0,0 +1,138 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package tcp adds a TCP traceroute implementation to the agent +package tcp + +import ( + "context" + "fmt" + "net" + "sync" + "time" + + "golang.org/x/net/ipv4" + "golang.org/x/sys/windows" + + "github.com/DataDog/datadog-agent/pkg/util/log" + "github.com/google/gopacket/layers" +) + +var ( + recvFrom = windows.Recvfrom +) + +// listenPackets takes in raw ICMP and TCP connections and listens for matching ICMP +// and TCP responses based on the passed in trace information. If neither listener +// receives a matching packet within the timeout, a blank response is returned. +// Once a matching packet is received by a listener, it will cause the other listener +// to be canceled, and data from the matching packet will be returned to the caller +func (w *winrawsocket) listenPackets(timeout time.Duration, localIP net.IP, localPort uint16, remoteIP net.IP, remotePort uint16, seqNum uint32) (net.IP, uint16, layers.ICMPv4TypeCode, time.Time, error) { + var icmpErr error + var wg sync.WaitGroup + var icmpIP net.IP + //var tcpIP net.IP + //var icmpCode layers.ICMPv4TypeCode + //var tcpFinished time.Time + var icmpFinished time.Time + var port uint16 + wg.Add(1) + ctx, cancel := context.WithTimeout(context.Background(), timeout) + defer cancel() + go func() { + defer wg.Done() + defer cancel() + icmpIP, _, _, icmpFinished, icmpErr = w.handlePackets(ctx, localIP, localPort, remoteIP, remotePort, seqNum) + }() + wg.Wait() + + if icmpErr != nil { + _, icmpCanceled := icmpErr.(canceledError) + if icmpCanceled { + log.Trace("timed out waiting for responses") + return net.IP{}, 0, 0, time.Time{}, nil + } + if icmpErr != nil { + log.Errorf("ICMP listener error: %s", icmpErr.Error()) + } + + return net.IP{}, 0, 0, time.Time{}, fmt.Errorf("icmp error: %w", icmpErr) + } + + // return the TCP response + return icmpIP, port, 0, icmpFinished, nil +} + +// handlePackets in its current implementation should listen for the first matching +// packet on the connection and then return. If no packet is received within the +// timeout or if the listener is canceled, it should return a canceledError +func (w *winrawsocket) handlePackets(ctx context.Context, localIP net.IP, localPort uint16, remoteIP net.IP, remotePort uint16, seqNum uint32) (net.IP, uint16, layers.ICMPv4TypeCode, time.Time, error) { + buf := make([]byte, 512) + tp := newTCPParser() + for { + select { + case <-ctx.Done(): + return net.IP{}, 0, 0, time.Time{}, canceledError("listener canceled") + default: + } + + // the receive timeout is set to 100ms in the constructor, to match the + // linux side. This is a workaround for the lack of a deadline for sockets. + //err := conn.SetReadDeadline(now.Add(time.Millisecond * 100)) + n, _, err := recvFrom(w.s, buf, 0) + if err != nil { + if err == windows.WSAETIMEDOUT { + continue + } + if err == windows.WSAEMSGSIZE { + log.Warnf("Message too large for buffer") + continue + } + return nil, 0, 0, time.Time{}, err + } + log.Tracef("Got packet %+v", buf[:n]) + + if n < 20 { // min size of ipv4 header + continue + } + header, err := ipv4.ParseHeader(buf[:n]) + if err != nil { + continue + } + packet := buf[header.Len:header.TotalLen] + + // once we have a packet, take a timestamp to know when + // the response was received, if it matches, we will + // return this timestamp + received := time.Now() + // TODO: remove listener constraint and parse all packets + // in the same function return a succinct struct here + if header.Protocol == windows.IPPROTO_ICMP { + icmpResponse, err := parseICMP(header, packet) + if err != nil { + log.Tracef("failed to parse ICMP packet: %s", err.Error()) + continue + } + if icmpMatch(localIP, localPort, remoteIP, remotePort, seqNum, icmpResponse) { + return icmpResponse.SrcIP, 0, icmpResponse.TypeCode, received, nil + } + } else if header.Protocol == windows.IPPROTO_TCP { + // don't even bother parsing the packet if the src/dst ip don't match + if !localIP.Equal(header.Dst) || !remoteIP.Equal(header.Src) { + continue + } + tcpResp, err := tp.parseTCP(header, packet) + if err != nil { + log.Tracef("failed to parse TCP packet: %s", err.Error()) + continue + } + if tcpMatch(localIP, localPort, remoteIP, remotePort, seqNum, tcpResp) { + return tcpResp.SrcIP, uint16(tcpResp.TCPResponse.SrcPort), 0, received, nil + } + } else { + continue + } + } +} diff --git a/pkg/networkpath/traceroute/tcp/utils_windows_test.go b/pkg/networkpath/traceroute/tcp/utils_windows_test.go new file mode 100644 index 0000000000000..6e5b2a1c81ba4 --- /dev/null +++ b/pkg/networkpath/traceroute/tcp/utils_windows_test.go @@ -0,0 +1,155 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build test + +package tcp + +import ( + "context" + "errors" + "fmt" + "net" + "strings" + "testing" + "time" + + "golang.org/x/sys/windows" + + "github.com/google/gopacket/layers" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +type ( + mockRawConn struct { + readTimeoutCount int + readTimeout time.Duration + readFromErr error + + payload []byte + } +) + +func Test_handlePackets(t *testing.T) { + _, tcpBytes := createMockTCPPacket(createMockIPv4Header(dstIP, srcIP, 6), createMockTCPLayer(443, 12345, 28394, 28395, true, true, true), true) + + tt := []struct { + description string + // input + ctxTimeout time.Duration + conn *mockRawConn + localIP net.IP + localPort uint16 + remoteIP net.IP + remotePort uint16 + seqNum uint32 + // output + expectedIP net.IP + expectedPort uint16 + expectedTypeCode layers.ICMPv4TypeCode + errMsg string + }{ + { + description: "canceled context returns canceledErr", + ctxTimeout: 300 * time.Millisecond, + conn: &mockRawConn{ + readTimeoutCount: 100, + readTimeout: 100 * time.Millisecond, + readFromErr: errors.New("bad test error"), + }, + errMsg: "canceled", + }, + { + description: "non-timeout read error returns an error", + ctxTimeout: 1 * time.Second, + conn: &mockRawConn{ + readFromErr: errors.New("test read error"), + }, + errMsg: "test read error", + }, + // { + // description: "failed ICMP parsing eventuallly returns cancel timeout", + // ctxTimeout: 500 * time.Millisecond, + // conn: &mockRawConn{ + // payload: nil, + // }, + // errMsg: "canceled", + // }, + // { + // description: "failed TCP parsing eventuallly returns cancel timeout", + // ctxTimeout: 500 * time.Millisecond, + // conn: &mockRawConn{ + // header: &ipv4.Header{}, + // payload: nil, + // }, + // listener: "tcp", + // errMsg: "canceled", + // }, + { + description: "successful ICMP parsing returns IP, port, and type code", + ctxTimeout: 500 * time.Millisecond, + conn: &mockRawConn{ + payload: createMockICMPPacket(createMockIPv4Layer(srcIP, dstIP, layers.IPProtocolICMPv4), createMockICMPLayer(layers.ICMPv4CodeTTLExceeded), createMockIPv4Layer(innerSrcIP, innerDstIP, layers.IPProtocolTCP), createMockTCPLayer(12345, 443, 28394, 12737, true, true, true), false), + }, + localIP: innerSrcIP, + localPort: 12345, + remoteIP: innerDstIP, + remotePort: 443, + seqNum: 28394, + expectedIP: srcIP, + expectedPort: 0, + expectedTypeCode: layers.ICMPv4CodeTTLExceeded, + }, + { + description: "successful TCP parsing returns IP, port, and type code", + ctxTimeout: 500 * time.Millisecond, + conn: &mockRawConn{ + payload: tcpBytes, + }, + localIP: srcIP, + localPort: 12345, + remoteIP: dstIP, + remotePort: 443, + seqNum: 28394, + expectedIP: dstIP, + expectedPort: 443, + expectedTypeCode: 0, + }, + } + + for _, test := range tt { + t.Run(test.description, func(t *testing.T) { + ctx, cancel := context.WithTimeout(context.Background(), test.ctxTimeout) + defer cancel() + recvFrom = test.conn.RecvFrom + w := &winrawsocket{} + actualIP, actualPort, actualTypeCode, _, err := w.handlePackets(ctx, test.localIP, test.localPort, test.remoteIP, test.remotePort, test.seqNum) + if test.errMsg != "" { + require.Error(t, err) + assert.True(t, strings.Contains(err.Error(), test.errMsg), fmt.Sprintf("expected %q, got %q", test.errMsg, err.Error())) + return + } + require.NoError(t, err) + assert.Truef(t, test.expectedIP.Equal(actualIP), "mismatch source IPs: expected %s, got %s", test.expectedIP.String(), actualIP.String()) + assert.Equal(t, test.expectedPort, actualPort) + assert.Equal(t, test.expectedTypeCode, actualTypeCode) + }) + } +} + +func (m *mockRawConn) RecvFrom(_ windows.Handle, buf []byte, _ int) (int, windows.Sockaddr, error) { + if m.readTimeoutCount > 0 { + m.readTimeoutCount-- + time.Sleep(m.readTimeout) + return 0, nil, windows.WSAETIMEDOUT + } + if m.readFromErr != nil { + return 0, nil, m.readFromErr + } + copy(buf, m.payload) + + return len(m.payload), nil, nil +} diff --git a/pkg/networkpath/traceroute/traceroute_windows.go b/pkg/networkpath/traceroute/traceroute_windows.go index 8820ea1de8549..316caabd7cb03 100644 --- a/pkg/networkpath/traceroute/traceroute_windows.go +++ b/pkg/networkpath/traceroute/traceroute_windows.go @@ -10,6 +10,7 @@ package traceroute import ( "context" "encoding/json" + "errors" "github.com/DataDog/datadog-agent/comp/core/telemetry" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" @@ -20,7 +21,8 @@ import ( ) const ( - clientID = "traceroute-agent-windows" + clientID = "traceroute-agent-windows" + udpNotSupportedWindowsMsg = "UDP traceroute is not currently supported on Windows" ) // WindowsTraceroute defines a structure for @@ -34,6 +36,12 @@ type WindowsTraceroute struct { // based on an input configuration func New(cfg config.Config, _ telemetry.Component) (*WindowsTraceroute, error) { log.Debugf("Creating new traceroute with config: %+v", cfg) + + // UDP is not supported at the moment + if cfg.Protocol == payload.ProtocolUDP { + return nil, errors.New(udpNotSupportedWindowsMsg) + } + return &WindowsTraceroute{ cfg: cfg, }, nil diff --git a/releasenotes/notes/network-path-initial-windows-support-2a51f80234a2b0a1.yaml b/releasenotes/notes/network-path-initial-windows-support-2a51f80234a2b0a1.yaml new file mode 100644 index 0000000000000..1ff9197162c8c --- /dev/null +++ b/releasenotes/notes/network-path-initial-windows-support-2a51f80234a2b0a1.yaml @@ -0,0 +1,11 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +enhancements: + - | + Adds initial Windows support for TCP probes in Network Path. From 974c3540d84f0e04f58e20255656dd083e93caab Mon Sep 17 00:00:00 2001 From: Gustavo Caso Date: Wed, 27 Nov 2024 17:06:59 +0100 Subject: [PATCH 097/439] [ASCII-2562] Migrate forward eventplatform component to the latest file structure (#31471) --- cmd/agent/subcommands/run/command.go | 4 +- cmd/agent/subcommands/snmp/command.go | 6 +- .../subcommands/run/command.go | 4 +- .../subcommands/start/command.go | 4 +- cmd/dogstatsd/subcommands/start/command.go | 4 +- cmd/process-agent/command/main_common.go | 4 +- cmd/process-agent/subcommands/check/check.go | 4 +- cmd/serverless-init/metric/metric_test.go | 3 +- comp/agent/bundle_test.go | 4 +- comp/aggregator/bundle_test.go | 4 +- .../demultiplexerimpl/demultiplexer.go | 2 +- .../demultiplexer_fake_sampler_mock.go | 4 +- .../demultiplexerimpl/status_test.go | 4 +- .../test_agent_demultiplexer.go | 11 +- .../sendermanager.go | 5 +- .../collectorimpl/collector_demux_test.go | 3 +- .../eventplatform/{ => def}/component.go | 8 +- .../eventplatformimpl/epforwarder_mock.go | 27 ----- .../eventplatformimpl/epforwarder_mockgen.go | 101 ------------------ .../eventplatform/eventplatformimpl/params.go | 22 ---- comp/forwarder/eventplatform/fx-mock/fx.go | 21 ++++ comp/forwarder/eventplatform/fx-noop/fx.go | 21 ++++ comp/forwarder/eventplatform/fx/fx.go | 17 +++ .../forwarder/eventplatform/impl-noop/noop.go | 39 +++++++ .../epforwarder.go | 64 +++-------- .../{ => mock}/component_mock.go | 7 +- .../eventplatform/mock/epforwarder_mock.go | 36 +++++++ .../eventplatform/mock/epforwarder_mockgen.go | 77 +++++++++++++ .../eventplatformreceiverimpl/format.go | 2 +- comp/ndmtmp/bundle_test.go | 7 +- comp/ndmtmp/forwarder/component.go | 4 +- comp/ndmtmp/forwarder/component_mock.go | 4 +- .../forwarder/forwarderimpl/forwarder.go | 5 +- .../forwarder/forwarderimpl/forwarder_mock.go | 9 +- comp/netflow/flowaggregator/aggregator.go | 6 +- .../netflow/flowaggregator/aggregator_test.go | 22 ++-- comp/netflow/server/integration_test.go | 7 +- comp/netflow/testutil/testutil.go | 2 +- comp/networkpath/bundle_test.go | 4 +- .../npcollectorimpl/npcollector.go | 6 +- .../npcollectorimpl/npcollector_test.go | 6 +- .../npcollectorimpl/npcollector_testutils.go | 11 +- .../npcollectorimpl/npcollectorcomp.go | 30 +++--- comp/process/bundle_test.go | 4 +- comp/snmpscan/impl/devicescan.go | 5 +- comp/snmpscan/impl/snmpscan.go | 9 +- .../forwarder/forwarderimpl/forwarder.go | 2 +- .../forwarder/forwarderimpl/forwarder_test.go | 2 +- comp/snmptraps/status/statusimpl/status.go | 2 +- .../status/statusimpl/status_test.go | 2 +- pkg/aggregator/aggregator.go | 23 +--- pkg/aggregator/aggregator_test.go | 2 +- pkg/aggregator/check_sampler_bench_test.go | 6 +- pkg/aggregator/demultiplexer_agent.go | 6 +- pkg/aggregator/demultiplexer_agent_test.go | 6 +- pkg/aggregator/demultiplexer_mock.go | 6 +- pkg/aggregator/demultiplexer_test.go | 66 ++++-------- pkg/aggregator/mocksender/mocksender.go | 10 +- pkg/aggregator/sender_test.go | 20 ++-- pkg/cli/subcommands/check/command.go | 7 +- .../corechecks/containerimage/processor.go | 2 +- .../containerimage/processor_test.go | 2 +- .../containerlifecycle/processor.go | 2 +- .../cisco-sdwan/report/metadata.go | 2 +- .../corechecks/networkpath/networkpath.go | 2 +- pkg/collector/corechecks/sbom/processor.go | 2 +- .../corechecks/sbom/processor_test.go | 2 +- .../corechecks/servicediscovery/events.go | 2 +- .../internal/report/report_device_metadata.go | 2 +- pkg/diagnose/runner.go | 4 +- .../invocationlifecycle/lifecycle_test.go | 3 +- pkg/serverless/logs/logs_test.go | 3 +- .../metrics/enhanced_metrics_test.go | 3 +- tasks/components.py | 1 - 74 files changed, 400 insertions(+), 445 deletions(-) rename comp/forwarder/eventplatform/{ => def}/component.go (91%) delete mode 100644 comp/forwarder/eventplatform/eventplatformimpl/epforwarder_mock.go delete mode 100644 comp/forwarder/eventplatform/eventplatformimpl/epforwarder_mockgen.go delete mode 100644 comp/forwarder/eventplatform/eventplatformimpl/params.go create mode 100644 comp/forwarder/eventplatform/fx-mock/fx.go create mode 100644 comp/forwarder/eventplatform/fx-noop/fx.go create mode 100644 comp/forwarder/eventplatform/fx/fx.go create mode 100644 comp/forwarder/eventplatform/impl-noop/noop.go rename comp/forwarder/eventplatform/{eventplatformimpl => impl}/epforwarder.go (90%) rename comp/forwarder/eventplatform/{ => mock}/component_mock.go (60%) create mode 100644 comp/forwarder/eventplatform/mock/epforwarder_mock.go create mode 100644 comp/forwarder/eventplatform/mock/epforwarder_mockgen.go diff --git a/cmd/agent/subcommands/run/command.go b/cmd/agent/subcommands/run/command.go index 9c126f014aab2..88c47aa47ef3a 100644 --- a/cmd/agent/subcommands/run/command.go +++ b/cmd/agent/subcommands/run/command.go @@ -89,7 +89,7 @@ import ( dogstatsdStatusimpl "github.com/DataDog/datadog-agent/comp/dogstatsd/status/statusimpl" "github.com/DataDog/datadog-agent/comp/forwarder" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + eventplatformfx "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" orchestratorForwarderImpl "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" langDetectionCl "github.com/DataDog/datadog-agent/comp/languagedetection/client" @@ -424,7 +424,7 @@ func getSharedFxOption() fx.Option { langDetectionClimpl.Module(), metadata.Bundle(), orchestratorForwarderImpl.Module(orchestratorForwarderImpl.NewDefaultParams()), - eventplatformimpl.Module(eventplatformimpl.NewDefaultParams()), + eventplatformfx.Module(), eventplatformreceiverimpl.Module(), // injecting the shared Serializer to FX until we migrate it to a proper component. This allows other diff --git a/cmd/agent/subcommands/snmp/command.go b/cmd/agent/subcommands/snmp/command.go index 4dba953403985..516818867c618 100644 --- a/cmd/agent/subcommands/snmp/command.go +++ b/cmd/agent/subcommands/snmp/command.go @@ -23,7 +23,7 @@ import ( nooptagger "github.com/DataDog/datadog-agent/comp/core/tagger/fx-noop" "github.com/DataDog/datadog-agent/comp/forwarder" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + eventplatformfx "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" haagentfx "github.com/DataDog/datadog-agent/comp/haagent/fx" @@ -97,7 +97,7 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { demultiplexerimpl.Module(demultiplexerimpl.NewDefaultParams()), forwarder.Bundle(defaultforwarder.NewParams(defaultforwarder.WithFeatures(defaultforwarder.CoreFeatures))), orchestratorimpl.Module(orchestratorimpl.NewDefaultParams()), - eventplatformimpl.Module(eventplatformimpl.NewDefaultParams()), + eventplatformfx.Module(), compressionfx.Module(), nooptagger.Module(), eventplatformreceiverimpl.Module(), @@ -160,7 +160,7 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { aggregator.Bundle(demultiplexerimpl.NewDefaultParams()), orchestratorimpl.Module(orchestratorimpl.NewDefaultParams()), forwarder.Bundle(defaultforwarder.NewParams(defaultforwarder.WithFeatures(defaultforwarder.CoreFeatures))), - eventplatformimpl.Module(eventplatformimpl.NewDefaultParams()), + eventplatformfx.Module(), eventplatformreceiverimpl.Module(), compressionfx.Module(), nooptagger.Module(), diff --git a/cmd/cluster-agent-cloudfoundry/subcommands/run/command.go b/cmd/cluster-agent-cloudfoundry/subcommands/run/command.go index 42e40b88a7221..259931d1a0b36 100644 --- a/cmd/cluster-agent-cloudfoundry/subcommands/run/command.go +++ b/cmd/cluster-agent-cloudfoundry/subcommands/run/command.go @@ -46,7 +46,7 @@ import ( workloadmetafx "github.com/DataDog/datadog-agent/comp/core/workloadmeta/fx" "github.com/DataDog/datadog-agent/comp/forwarder" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + eventplatformfxnoop "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx-noop" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" orchestratorForwarderImpl "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" haagentfx "github.com/DataDog/datadog-agent/comp/haagent/fx" @@ -89,7 +89,7 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { compressionfx.Module(), demultiplexerimpl.Module(demultiplexerimpl.NewDefaultParams()), orchestratorForwarderImpl.Module(orchestratorForwarderImpl.NewDisabledParams()), - eventplatformimpl.Module(eventplatformimpl.NewDisabledParams()), + eventplatformfxnoop.Module(), eventplatformreceiverimpl.Module(), // setup workloadmeta diff --git a/cmd/cluster-agent/subcommands/start/command.go b/cmd/cluster-agent/subcommands/start/command.go index ed0030f0183cd..5c376d01ebe54 100644 --- a/cmd/cluster-agent/subcommands/start/command.go +++ b/cmd/cluster-agent/subcommands/start/command.go @@ -58,7 +58,7 @@ import ( workloadmetafx "github.com/DataDog/datadog-agent/comp/core/workloadmeta/fx" "github.com/DataDog/datadog-agent/comp/forwarder" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + eventplatformfxnoop "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx-noop" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" orchestratorForwarderImpl "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" haagentfx "github.com/DataDog/datadog-agent/comp/haagent/fx" @@ -141,7 +141,7 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { compressionfx.Module(), demultiplexerimpl.Module(demultiplexerimpl.NewDefaultParams()), orchestratorForwarderImpl.Module(orchestratorForwarderImpl.NewDefaultParams()), - eventplatformimpl.Module(eventplatformimpl.NewDisabledParams()), + eventplatformfxnoop.Module(), eventplatformreceiverimpl.Module(), // setup workloadmeta wmcatalog.GetCatalog(), diff --git a/cmd/dogstatsd/subcommands/start/command.go b/cmd/dogstatsd/subcommands/start/command.go index 245ff9139caff..ea7fe59c8051a 100644 --- a/cmd/dogstatsd/subcommands/start/command.go +++ b/cmd/dogstatsd/subcommands/start/command.go @@ -40,7 +40,7 @@ import ( dogstatsdServer "github.com/DataDog/datadog-agent/comp/dogstatsd/server" "github.com/DataDog/datadog-agent/comp/forwarder" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + eventplatformfxnoop "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx-noop" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" orchestratorForwarderImpl "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" haagentfx "github.com/DataDog/datadog-agent/comp/haagent/fx" @@ -149,7 +149,7 @@ func RunDogstatsdFct(cliParams *CLIParams, defaultConfPath string, defaultLogFil )), secretsimpl.Module(), orchestratorForwarderImpl.Module(orchestratorForwarderImpl.NewDisabledParams()), - eventplatformimpl.Module(eventplatformimpl.NewDisabledParams()), + eventplatformfxnoop.Module(), eventplatformreceiverimpl.Module(), hostnameimpl.Module(), localTaggerfx.Module(tagger.Params{}), diff --git a/cmd/process-agent/command/main_common.go b/cmd/process-agent/command/main_common.go index 188c9684fd30b..5c8d983e90b95 100644 --- a/cmd/process-agent/command/main_common.go +++ b/cmd/process-agent/command/main_common.go @@ -38,7 +38,7 @@ import ( workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" workloadmetafx "github.com/DataDog/datadog-agent/comp/core/workloadmeta/fx" compstatsd "github.com/DataDog/datadog-agent/comp/dogstatsd/statsd" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + eventplatformfx "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" hostMetadataUtils "github.com/DataDog/datadog-agent/comp/metadata/host/hostimpl/utils" "github.com/DataDog/datadog-agent/comp/networkpath" @@ -134,7 +134,7 @@ func runApp(ctx context.Context, globalParams *GlobalParams) error { process.Bundle(), eventplatformreceiverimpl.Module(), - eventplatformimpl.Module(eventplatformimpl.NewDefaultParams()), + eventplatformfx.Module(), // Provides the rdnssquerier module rdnsquerierfx.Module(), diff --git a/cmd/process-agent/subcommands/check/check.go b/cmd/process-agent/subcommands/check/check.go index ad2181d4ac90c..5f88b17cb11ef 100644 --- a/cmd/process-agent/subcommands/check/check.go +++ b/cmd/process-agent/subcommands/check/check.go @@ -32,7 +32,7 @@ import ( wmcatalog "github.com/DataDog/datadog-agent/comp/core/workloadmeta/collectors/catalog" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" workloadmetafx "github.com/DataDog/datadog-agent/comp/core/workloadmeta/fx" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + eventplatformfx "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" hostMetadataUtils "github.com/DataDog/datadog-agent/comp/metadata/host/hostimpl/utils" "github.com/DataDog/datadog-agent/comp/networkpath/npcollector" @@ -127,7 +127,7 @@ func MakeCommand(globalParamsGetter func() *command.GlobalParams, name string, a // Provide eventplatformimpl module eventplatformreceiverimpl.Module(), - eventplatformimpl.Module(eventplatformimpl.NewDefaultParams()), + eventplatformfx.Module(), // Provide rdnsquerier module rdnsquerierfx.Module(), diff --git a/cmd/serverless-init/metric/metric_test.go b/cmd/serverless-init/metric/metric_test.go index facd4acabca0c..874e10c13316d 100644 --- a/cmd/serverless-init/metric/metric_test.go +++ b/cmd/serverless-init/metric/metric_test.go @@ -14,7 +14,6 @@ import ( "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer/demultiplexerimpl" - "github.com/DataDog/datadog-agent/comp/core/hostname/hostnameimpl" log "github.com/DataDog/datadog-agent/comp/core/log/def" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" @@ -65,5 +64,5 @@ func TestAddShutdownMetric(t *testing.T) { } func createDemultiplexer(t *testing.T) demultiplexer.FakeSamplerMock { - return fxutil.Test[demultiplexer.FakeSamplerMock](t, fx.Provide(func() log.Component { return logmock.New(t) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule(), hostnameimpl.MockModule()) + return fxutil.Test[demultiplexer.FakeSamplerMock](t, fx.Provide(func() log.Component { return logmock.New(t) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule()) } diff --git a/comp/agent/bundle_test.go b/comp/agent/bundle_test.go index 8a1820206ee81..b392cba7ca396 100644 --- a/comp/agent/bundle_test.go +++ b/comp/agent/bundle_test.go @@ -14,7 +14,7 @@ import ( workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" workloadmetafxmock "github.com/DataDog/datadog-agent/comp/core/workloadmeta/fx-mock" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + eventplatformmock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx-mock" "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" "github.com/DataDog/datadog-agent/pkg/util/fxutil" @@ -27,7 +27,7 @@ func TestBundleDependencies(t *testing.T) { compressionmock.MockModule(), defaultforwarder.MockModule(), orchestratorimpl.MockModule(), - eventplatformimpl.MockModule(), + eventplatformmock.MockModule(), demultiplexerimpl.Module(demultiplexerimpl.NewDefaultParams()), workloadmetafxmock.MockModule(workloadmeta.NewParams()), ) diff --git a/comp/aggregator/bundle_test.go b/comp/aggregator/bundle_test.go index 2a38d5a0ac603..0b4b33bae168d 100644 --- a/comp/aggregator/bundle_test.go +++ b/comp/aggregator/bundle_test.go @@ -12,7 +12,7 @@ import ( "github.com/DataDog/datadog-agent/comp/core" nooptagger "github.com/DataDog/datadog-agent/comp/core/tagger/fx-noop" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + eventplatformmock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx-mock" orchestratorForwarderImpl "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" @@ -25,7 +25,7 @@ func TestBundleDependencies(t *testing.T) { compressionmock.MockModule(), defaultforwarder.MockModule(), orchestratorForwarderImpl.MockModule(), - eventplatformimpl.MockModule(), + eventplatformmock.MockModule(), nooptagger.Module(), haagentmock.Module(), ) diff --git a/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer.go b/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer.go index b6b1dd7d56310..0b4dba5fafbb9 100644 --- a/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer.go +++ b/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer.go @@ -18,7 +18,7 @@ import ( "github.com/DataDog/datadog-agent/comp/core/status" tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" orchestratorforwarder "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator" haagent "github.com/DataDog/datadog-agent/comp/haagent/def" compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" diff --git a/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer_fake_sampler_mock.go b/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer_fake_sampler_mock.go index 53e3beb5f77d6..e74314cf03f41 100644 --- a/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer_fake_sampler_mock.go +++ b/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer_fake_sampler_mock.go @@ -14,7 +14,6 @@ import ( "go.uber.org/fx" demultiplexerComp "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" - "github.com/DataDog/datadog-agent/comp/core/hostname" log "github.com/DataDog/datadog-agent/comp/core/log/def" compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" "github.com/DataDog/datadog-agent/pkg/aggregator" @@ -35,7 +34,6 @@ type fakeSamplerMockDependencies struct { fx.In Lc fx.Lifecycle Log log.Component - Hostname hostname.Component Compressor compression.Component } @@ -56,7 +54,7 @@ func (f *fakeSamplerMock) Stop(flush bool) { } func newFakeSamplerMock(deps fakeSamplerMockDependencies) demultiplexerComp.FakeSamplerMock { - demux := initTestAgentDemultiplexerWithFlushInterval(deps.Log, deps.Hostname, deps.Compressor, time.Hour) + demux := initTestAgentDemultiplexerWithFlushInterval(deps.Log, deps.Compressor, time.Hour) mock := &fakeSamplerMock{ TestAgentDemultiplexer: demux, } diff --git a/comp/aggregator/demultiplexer/demultiplexerimpl/status_test.go b/comp/aggregator/demultiplexer/demultiplexerimpl/status_test.go index 0e60ca002a79e..c22c827126590 100644 --- a/comp/aggregator/demultiplexer/demultiplexerimpl/status_test.go +++ b/comp/aggregator/demultiplexer/demultiplexerimpl/status_test.go @@ -18,7 +18,7 @@ import ( tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" taggerMock "github.com/DataDog/datadog-agent/comp/core/tagger/mock" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + eventplatformmock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx-mock" "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" @@ -64,7 +64,7 @@ func TestStatusOutPut(t *testing.T) { defaultforwarder.MockModule(), haagentmock.Module(), orchestratorimpl.MockModule(), - eventplatformimpl.MockModule(), + eventplatformmock.MockModule(), fx.Provide(func() tagger.Component { return mockTagger }), diff --git a/comp/aggregator/demultiplexer/demultiplexerimpl/test_agent_demultiplexer.go b/comp/aggregator/demultiplexer/demultiplexerimpl/test_agent_demultiplexer.go index 431bcdb8c06e2..f33ab36b0bf08 100644 --- a/comp/aggregator/demultiplexer/demultiplexerimpl/test_agent_demultiplexer.go +++ b/comp/aggregator/demultiplexer/demultiplexerimpl/test_agent_demultiplexer.go @@ -12,12 +12,11 @@ import ( "sync" "time" - "github.com/DataDog/datadog-agent/comp/core/hostname" log "github.com/DataDog/datadog-agent/comp/core/log/def" noopimpl "github.com/DataDog/datadog-agent/comp/core/tagger/impl-noop" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + eventplatformock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/mock" haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" "github.com/DataDog/datadog-agent/pkg/aggregator" @@ -68,7 +67,7 @@ func (a *TestAgentDemultiplexer) AggregateSample(sample metrics.MetricSample) { } // GetEventPlatformForwarder returns a event platform forwarder -func (a *TestAgentDemultiplexer) GetEventPlatformForwarder() (eventplatform.Forwarder, error) { +func (a *TestAgentDemultiplexer) GetEventPlatformForwarder() eventplatform.Component { return a.AgentDemultiplexer.GetEventPlatformForwarder() } @@ -176,7 +175,7 @@ func (a *TestAgentDemultiplexer) Reset() { } // initTestAgentDemultiplexerWithFlushInterval inits a TestAgentDemultiplexer with the given flush interval. -func initTestAgentDemultiplexerWithFlushInterval(log log.Component, hostname hostname.Component, compressor compression.Component, flushInterval time.Duration) *TestAgentDemultiplexer { +func initTestAgentDemultiplexerWithFlushInterval(log log.Component, compressor compression.Component, flushInterval time.Duration) *TestAgentDemultiplexer { opts := aggregator.DefaultAgentDemultiplexerOptions() opts.FlushInterval = flushInterval opts.DontStartForwarders = true @@ -185,7 +184,7 @@ func initTestAgentDemultiplexerWithFlushInterval(log log.Component, hostname hos sharedForwarderOptions := defaultforwarder.NewOptions(pkgconfigsetup.Datadog(), log, nil) sharedForwarder := defaultforwarder.NewDefaultForwarder(pkgconfigsetup.Datadog(), log, sharedForwarderOptions) orchestratorForwarder := optional.NewOption[defaultforwarder.Forwarder](defaultforwarder.NoopForwarder{}) - eventPlatformForwarder := optional.NewOptionPtr[eventplatform.Forwarder](eventplatformimpl.NewNoopEventPlatformForwarder(hostname)) + eventPlatformForwarder := eventplatformock.NewMock() demux := aggregator.InitAndStartAgentDemultiplexer(log, sharedForwarder, &orchestratorForwarder, opts, eventPlatformForwarder, haagentmock.NewMockHaAgent(), compressor, noopimpl.NewComponent(), "hostname") return NewTestAgentDemultiplexer(demux) } diff --git a/comp/aggregator/diagnosesendermanager/diagnosesendermanagerimpl/sendermanager.go b/comp/aggregator/diagnosesendermanager/diagnosesendermanagerimpl/sendermanager.go index 9e3c058314c79..afb0a6c869105 100644 --- a/comp/aggregator/diagnosesendermanager/diagnosesendermanagerimpl/sendermanager.go +++ b/comp/aggregator/diagnosesendermanager/diagnosesendermanagerimpl/sendermanager.go @@ -17,8 +17,7 @@ import ( log "github.com/DataDog/datadog-agent/comp/core/log/def" tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + eventplatformnoop "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/impl-noop" haagent "github.com/DataDog/datadog-agent/comp/haagent/def" compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" "github.com/DataDog/datadog-agent/pkg/aggregator" @@ -74,7 +73,7 @@ func (sender *diagnoseSenderManager) LazyGetSenderManager() (sender.SenderManage haAgent := sender.deps.HaAgent forwarder := defaultforwarder.NewDefaultForwarder(config, log, defaultforwarder.NewOptions(config, log, nil)) orchestratorForwarder := optional.NewOptionPtr[defaultforwarder.Forwarder](defaultforwarder.NoopForwarder{}) - eventPlatformForwarder := optional.NewOptionPtr[eventplatform.Forwarder](eventplatformimpl.NewNoopEventPlatformForwarder(sender.deps.Hostname)) + eventPlatformForwarder := eventplatformnoop.NewComponent() senderManager = aggregator.InitAndStartAgentDemultiplexer( log, forwarder, diff --git a/comp/collector/collector/collectorimpl/collector_demux_test.go b/comp/collector/collector/collectorimpl/collector_demux_test.go index b2daf0bc28fd9..e142221841f90 100644 --- a/comp/collector/collector/collectorimpl/collector_demux_test.go +++ b/comp/collector/collector/collectorimpl/collector_demux_test.go @@ -26,7 +26,6 @@ import ( "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer/demultiplexerimpl" - "github.com/DataDog/datadog-agent/comp/core/hostname/hostnameimpl" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" "github.com/DataDog/datadog-agent/pkg/collector/check/stub" "github.com/DataDog/datadog-agent/pkg/metrics" @@ -81,7 +80,7 @@ func (s *SenderManagerProxy) GetDefaultSender() (sender.Sender, error) { } func (suite *CollectorDemuxTestSuite) SetupTest() { - suite.demux = fxutil.Test[demultiplexer.FakeSamplerMock](suite.T(), fx.Provide(func() log.Component { return logmock.New(suite.T()) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule(), hostnameimpl.MockModule()) + suite.demux = fxutil.Test[demultiplexer.FakeSamplerMock](suite.T(), fx.Provide(func() log.Component { return logmock.New(suite.T()) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule()) suite.SenderManagerMock = NewSenderManagerMock(suite.demux) suite.c = newCollector(fxutil.Test[dependencies](suite.T(), core.MockBundle(), diff --git a/comp/forwarder/eventplatform/component.go b/comp/forwarder/eventplatform/def/component.go similarity index 91% rename from comp/forwarder/eventplatform/component.go rename to comp/forwarder/eventplatform/def/component.go index 65bb1c26d4b21..1132f6afed912 100644 --- a/comp/forwarder/eventplatform/component.go +++ b/comp/forwarder/eventplatform/def/component.go @@ -36,14 +36,10 @@ const ( EventTypeServiceDiscovery = "service-discovery" ) +//go:generate mockgen -source=../def/$GOFILE -package=mock -destination=../mock/epforwarder_mockgen.go + // Component is the interface of the event platform forwarder component. type Component interface { - // Get the forwarder instance if it exists. - Get() (Forwarder, bool) -} - -// Forwarder is the interface of the event platform forwarder. -type Forwarder interface { SendEventPlatformEvent(e *message.Message, eventType string) error SendEventPlatformEventBlocking(e *message.Message, eventType string) error Purge() map[string][]*message.Message diff --git a/comp/forwarder/eventplatform/eventplatformimpl/epforwarder_mock.go b/comp/forwarder/eventplatform/eventplatformimpl/epforwarder_mock.go deleted file mode 100644 index 2d4d6d296ca7e..0000000000000 --- a/comp/forwarder/eventplatform/eventplatformimpl/epforwarder_mock.go +++ /dev/null @@ -1,27 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -//go:build test - -package eventplatformimpl - -import ( - "github.com/DataDog/datadog-agent/comp/core/hostname" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" - "github.com/DataDog/datadog-agent/pkg/util/fxutil" - "github.com/DataDog/datadog-agent/pkg/util/optional" - "go.uber.org/fx" -) - -// MockModule defines the fx options for the mock component. -func MockModule() fxutil.Module { - return fxutil.Component( - fx.Provide(newMockComponent), - ) -} - -func newMockComponent(hostname hostname.Component) eventplatform.Component { - return optional.NewOptionPtr[eventplatform.Forwarder](NewNoopEventPlatformForwarder(hostname)) -} diff --git a/comp/forwarder/eventplatform/eventplatformimpl/epforwarder_mockgen.go b/comp/forwarder/eventplatform/eventplatformimpl/epforwarder_mockgen.go deleted file mode 100644 index 2c196bdad5aa5..0000000000000 --- a/comp/forwarder/eventplatform/eventplatformimpl/epforwarder_mockgen.go +++ /dev/null @@ -1,101 +0,0 @@ -// Code generated by MockGen. DO NOT EDIT. -// Source: epforwarder.go - -// Package eventplatformimpl is a generated GoMock package. -package eventplatformimpl - -import ( - reflect "reflect" - - message "github.com/DataDog/datadog-agent/pkg/logs/message" - gomock "github.com/golang/mock/gomock" -) - -// MockEventPlatformForwarder is a mock of EventPlatformForwarder interface. -type MockEventPlatformForwarder struct { - ctrl *gomock.Controller - recorder *MockEventPlatformForwarderMockRecorder -} - -// MockEventPlatformForwarderMockRecorder is the mock recorder for MockEventPlatformForwarder. -type MockEventPlatformForwarderMockRecorder struct { - mock *MockEventPlatformForwarder -} - -// NewMockEventPlatformForwarder creates a new mock instance. -func NewMockEventPlatformForwarder(ctrl *gomock.Controller) *MockEventPlatformForwarder { - mock := &MockEventPlatformForwarder{ctrl: ctrl} - mock.recorder = &MockEventPlatformForwarderMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockEventPlatformForwarder) EXPECT() *MockEventPlatformForwarderMockRecorder { - return m.recorder -} - -// Purge mocks base method. -func (m *MockEventPlatformForwarder) Purge() map[string][]*message.Message { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Purge") - ret0, _ := ret[0].(map[string][]*message.Message) - return ret0 -} - -// Purge indicates an expected call of Purge. -func (mr *MockEventPlatformForwarderMockRecorder) Purge() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Purge", reflect.TypeOf((*MockEventPlatformForwarder)(nil).Purge)) -} - -// SendEventPlatformEvent mocks base method. -func (m *MockEventPlatformForwarder) SendEventPlatformEvent(e *message.Message, eventType string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "SendEventPlatformEvent", e, eventType) - ret0, _ := ret[0].(error) - return ret0 -} - -// SendEventPlatformEvent indicates an expected call of SendEventPlatformEvent. -func (mr *MockEventPlatformForwarderMockRecorder) SendEventPlatformEvent(e, eventType interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendEventPlatformEvent", reflect.TypeOf((*MockEventPlatformForwarder)(nil).SendEventPlatformEvent), e, eventType) -} - -// SendEventPlatformEventBlocking mocks base method. -func (m *MockEventPlatformForwarder) SendEventPlatformEventBlocking(e *message.Message, eventType string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "SendEventPlatformEventBlocking", e, eventType) - ret0, _ := ret[0].(error) - return ret0 -} - -// SendEventPlatformEventBlocking indicates an expected call of SendEventPlatformEventBlocking. -func (mr *MockEventPlatformForwarderMockRecorder) SendEventPlatformEventBlocking(e, eventType interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendEventPlatformEventBlocking", reflect.TypeOf((*MockEventPlatformForwarder)(nil).SendEventPlatformEventBlocking), e, eventType) -} - -// Start mocks base method. -func (m *MockEventPlatformForwarder) Start() { - m.ctrl.T.Helper() - m.ctrl.Call(m, "Start") -} - -// Start indicates an expected call of Start. -func (mr *MockEventPlatformForwarderMockRecorder) Start() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Start", reflect.TypeOf((*MockEventPlatformForwarder)(nil).Start)) -} - -// Stop mocks base method. -func (m *MockEventPlatformForwarder) Stop() { - m.ctrl.T.Helper() - m.ctrl.Call(m, "Stop") -} - -// Stop indicates an expected call of Stop. -func (mr *MockEventPlatformForwarderMockRecorder) Stop() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Stop", reflect.TypeOf((*MockEventPlatformForwarder)(nil).Stop)) -} diff --git a/comp/forwarder/eventplatform/eventplatformimpl/params.go b/comp/forwarder/eventplatform/eventplatformimpl/params.go deleted file mode 100644 index 108f9e4b228d7..0000000000000 --- a/comp/forwarder/eventplatform/eventplatformimpl/params.go +++ /dev/null @@ -1,22 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2023-present Datadog, Inc. - -package eventplatformimpl - -// Params defines the parameters for the event platform forwarder. -type Params struct { - UseNoopEventPlatformForwarder bool - UseEventPlatformForwarder bool -} - -// NewDefaultParams returns the default parameters for the event platform forwarder. -func NewDefaultParams() Params { - return Params{UseEventPlatformForwarder: true, UseNoopEventPlatformForwarder: false} -} - -// NewDisabledParams returns the disabled parameters for the event platform forwarder. -func NewDisabledParams() Params { - return Params{UseEventPlatformForwarder: false, UseNoopEventPlatformForwarder: false} -} diff --git a/comp/forwarder/eventplatform/fx-mock/fx.go b/comp/forwarder/eventplatform/fx-mock/fx.go new file mode 100644 index 0000000000000..eb837f131e500 --- /dev/null +++ b/comp/forwarder/eventplatform/fx-mock/fx.go @@ -0,0 +1,21 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2024-present Datadog, Inc. + +// Package fx provides the fxmock module for the rdnsquerier component +package fx + +import ( + eventplatformmock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/mock" + "github.com/DataDog/datadog-agent/pkg/util/fxutil" +) + +// MockModule defines the fx options for the mock component. +func MockModule() fxutil.Module { + return fxutil.Component( + fxutil.ProvideComponentConstructor( + eventplatformmock.NewMock, + ), + ) +} diff --git a/comp/forwarder/eventplatform/fx-noop/fx.go b/comp/forwarder/eventplatform/fx-noop/fx.go new file mode 100644 index 0000000000000..76e656b46ef53 --- /dev/null +++ b/comp/forwarder/eventplatform/fx-noop/fx.go @@ -0,0 +1,21 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2024-present Datadog, Inc. + +// Package fx provides the fxnoop module for the rdnsquerier component +package fx + +import ( + eventplatformnoop "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/impl-noop" + "github.com/DataDog/datadog-agent/pkg/util/fxutil" +) + +// Module defines the fx options for the mock component. +func Module() fxutil.Module { + return fxutil.Component( + fxutil.ProvideComponentConstructor( + eventplatformnoop.NewComponent, + ), + ) +} diff --git a/comp/forwarder/eventplatform/fx/fx.go b/comp/forwarder/eventplatform/fx/fx.go new file mode 100644 index 0000000000000..74e287dbb79cb --- /dev/null +++ b/comp/forwarder/eventplatform/fx/fx.go @@ -0,0 +1,17 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package fx provides the fx module for the event platform component. +package fx + +import ( + eventplatformimpl "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/impl" + "github.com/DataDog/datadog-agent/pkg/util/fxutil" +) + +// Module defines the fx options for this component. +func Module() fxutil.Module { + return fxutil.Component(fxutil.ProvideComponentConstructor(eventplatformimpl.NewComponent)) +} diff --git a/comp/forwarder/eventplatform/impl-noop/noop.go b/comp/forwarder/eventplatform/impl-noop/noop.go new file mode 100644 index 0000000000000..7d6ed39c04940 --- /dev/null +++ b/comp/forwarder/eventplatform/impl-noop/noop.go @@ -0,0 +1,39 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package eventplatformimpl contains the logic for the noop forwarding component +package eventplatformimpl + +import ( + "errors" + + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/pkg/logs/message" +) + +type noopForwarder struct { +} + +// SendEventPlatformEvent sends messages to the event platform intake. +// SendEventPlatformEvent will drop messages and return an error if the input channel is already full. +func (s *noopForwarder) SendEventPlatformEvent(*message.Message, string) error { + return errors.New("noop forwarder does not support SendEventPlatformEvent") +} + +// SendEventPlatformEventBlocking sends messages to the event platform intake. +// SendEventPlatformEventBlocking will block if the input channel is already full. +func (s *noopForwarder) SendEventPlatformEventBlocking(*message.Message, string) error { + return errors.New("noop forwarder does not support SendEventPlatformEventBlocking") +} + +// Purge clears out all pipeline channels, returning a map of eventType to list of messages in that were removed from each channel +func (s *noopForwarder) Purge() map[string][]*message.Message { + return map[string][]*message.Message{} +} + +// NewComponent creates a new EventPlatformForwarder +func NewComponent() eventplatform.Component { + return &noopForwarder{} +} diff --git a/comp/forwarder/eventplatform/eventplatformimpl/epforwarder.go b/comp/forwarder/eventplatform/impl/epforwarder.go similarity index 90% rename from comp/forwarder/eventplatform/eventplatformimpl/epforwarder.go rename to comp/forwarder/eventplatform/impl/epforwarder.go index 9c4fb0d451ed5..18042c15df4aa 100644 --- a/comp/forwarder/eventplatform/eventplatformimpl/epforwarder.go +++ b/comp/forwarder/eventplatform/impl/epforwarder.go @@ -13,13 +13,11 @@ import ( "strings" "sync" - "go.uber.org/fx" - configcomp "github.com/DataDog/datadog-agent/comp/core/config" "github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + compdef "github.com/DataDog/datadog-agent/comp/def" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" "github.com/DataDog/datadog-agent/comp/logs/agent/config" "github.com/DataDog/datadog-agent/pkg/config/model" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" @@ -30,19 +28,10 @@ import ( "github.com/DataDog/datadog-agent/pkg/logs/message" "github.com/DataDog/datadog-agent/pkg/logs/metrics" "github.com/DataDog/datadog-agent/pkg/logs/sender" - "github.com/DataDog/datadog-agent/pkg/util/fxutil" "github.com/DataDog/datadog-agent/pkg/util/log" - "github.com/DataDog/datadog-agent/pkg/util/optional" "github.com/DataDog/datadog-agent/pkg/util/startstop" ) -//go:generate mockgen -source=$GOFILE -package=$GOPACKAGE -destination=epforwarder_mockgen.go - -// Module defines the fx options for this component. -func Module(params Params) fxutil.Module { - return fxutil.Component(fx.Provide(newEventPlatformForwarder), fx.Supply(params)) -} - const ( eventTypeDBMSamples = "dbm-samples" eventTypeDBMMetrics = "dbm-metrics" @@ -330,14 +319,14 @@ func (s *defaultEventPlatformForwarder) Purge() map[string][]*message.Message { return result } -func (s *defaultEventPlatformForwarder) Start() { +func (s *defaultEventPlatformForwarder) start() { s.destinationsCtx.Start() for _, p := range s.pipelines { p.Start() } } -func (s *defaultEventPlatformForwarder) Stop() { +func (s *defaultEventPlatformForwarder) stop() { log.Debugf("shutting down event platform forwarder") stopper := startstop.NewParallelStopper() for _, p := range s.pipelines { @@ -489,51 +478,28 @@ func newDefaultEventPlatformForwarder(config model.Reader, eventPlatformReceiver } } -type dependencies struct { - fx.In - Params Params +// Requires defined the eventplatform requirements +type Requires struct { + compdef.In Config configcomp.Component - Lc fx.Lifecycle + Lc compdef.Lifecycle EventPlatformReceiver eventplatformreceiver.Component Hostname hostnameinterface.Component } -// newEventPlatformForwarder creates a new EventPlatformForwarder -func newEventPlatformForwarder(deps dependencies) eventplatform.Component { - var forwarder *defaultEventPlatformForwarder +// NewComponent creates a new EventPlatformForwarder +func NewComponent(reqs Requires) eventplatform.Component { + forwarder := newDefaultEventPlatformForwarder(reqs.Config, reqs.EventPlatformReceiver) - if deps.Params.UseNoopEventPlatformForwarder { - forwarder = newNoopEventPlatformForwarder(deps.Hostname) - } else if deps.Params.UseEventPlatformForwarder { - forwarder = newDefaultEventPlatformForwarder(deps.Config, deps.EventPlatformReceiver) - } - if forwarder == nil { - return optional.NewNoneOptionPtr[eventplatform.Forwarder]() - } - deps.Lc.Append(fx.Hook{ + reqs.Lc.Append(compdef.Hook{ OnStart: func(context.Context) error { - forwarder.Start() + forwarder.start() return nil }, OnStop: func(context.Context) error { - forwarder.Stop() + forwarder.stop() return nil }, }) - return optional.NewOptionPtr[eventplatform.Forwarder](forwarder) -} - -// NewNoopEventPlatformForwarder returns the standard event platform forwarder with sending disabled, meaning events -// will build up in each pipeline channel without being forwarded to the intake -func NewNoopEventPlatformForwarder(hostname hostnameinterface.Component) eventplatform.Forwarder { - return newNoopEventPlatformForwarder(hostname) -} - -func newNoopEventPlatformForwarder(hostname hostnameinterface.Component) *defaultEventPlatformForwarder { - f := newDefaultEventPlatformForwarder(pkgconfigsetup.Datadog(), eventplatformreceiverimpl.NewReceiver(hostname).Comp) - // remove the senders - for _, p := range f.pipelines { - p.strategy = nil - } - return f + return forwarder } diff --git a/comp/forwarder/eventplatform/component_mock.go b/comp/forwarder/eventplatform/mock/component_mock.go similarity index 60% rename from comp/forwarder/eventplatform/component_mock.go rename to comp/forwarder/eventplatform/mock/component_mock.go index c8cf64fe4d5e3..e662cec2c630b 100644 --- a/comp/forwarder/eventplatform/component_mock.go +++ b/comp/forwarder/eventplatform/mock/component_mock.go @@ -3,11 +3,12 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2023-present Datadog, Inc. -//go:build test +// Package mock provides the mock interafce for the event platform component. +package mock -package eventplatform +import eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" // Mock implements mock-specific methods. type Mock interface { - Component + eventplatform.Component } diff --git a/comp/forwarder/eventplatform/mock/epforwarder_mock.go b/comp/forwarder/eventplatform/mock/epforwarder_mock.go new file mode 100644 index 0000000000000..659a458a61a00 --- /dev/null +++ b/comp/forwarder/eventplatform/mock/epforwarder_mock.go @@ -0,0 +1,36 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package mock + +import ( + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + message "github.com/DataDog/datadog-agent/pkg/logs/message" +) + +type mock struct { +} + +// SendEventPlatformEvent sends messages to the event platform intake. +// SendEventPlatformEvent will drop messages and return an error if the input channel is already full. +func (s *mock) SendEventPlatformEvent(*message.Message, string) error { + return nil +} + +// SendEventPlatformEventBlocking sends messages to the event platform intake. +// SendEventPlatformEventBlocking will block if the input channel is already full. +func (s *mock) SendEventPlatformEventBlocking(*message.Message, string) error { + return nil +} + +// Purge clears out all pipeline channels, returning a map of eventType to list of messages in that were removed from each channel +func (s *mock) Purge() map[string][]*message.Message { + return map[string][]*message.Message{} +} + +// NewMock returns a new mock component. +func NewMock() eventplatform.Component { + return &mock{} +} diff --git a/comp/forwarder/eventplatform/mock/epforwarder_mockgen.go b/comp/forwarder/eventplatform/mock/epforwarder_mockgen.go new file mode 100644 index 0000000000000..e1dabb87b6592 --- /dev/null +++ b/comp/forwarder/eventplatform/mock/epforwarder_mockgen.go @@ -0,0 +1,77 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: ../def/component.go + +// Package mock is a generated GoMock package. +package mock + +import ( + reflect "reflect" + + message "github.com/DataDog/datadog-agent/pkg/logs/message" + gomock "github.com/golang/mock/gomock" +) + +// MockComponent is a mock of Component interface. +type MockComponent struct { + ctrl *gomock.Controller + recorder *MockComponentMockRecorder +} + +// MockComponentMockRecorder is the mock recorder for MockComponent. +type MockComponentMockRecorder struct { + mock *MockComponent +} + +// NewMockComponent creates a new mock instance. +func NewMockComponent(ctrl *gomock.Controller) *MockComponent { + mock := &MockComponent{ctrl: ctrl} + mock.recorder = &MockComponentMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockComponent) EXPECT() *MockComponentMockRecorder { + return m.recorder +} + +// Purge mocks base method. +func (m *MockComponent) Purge() map[string][]*message.Message { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Purge") + ret0, _ := ret[0].(map[string][]*message.Message) + return ret0 +} + +// Purge indicates an expected call of Purge. +func (mr *MockComponentMockRecorder) Purge() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Purge", reflect.TypeOf((*MockComponent)(nil).Purge)) +} + +// SendEventPlatformEvent mocks base method. +func (m *MockComponent) SendEventPlatformEvent(e *message.Message, eventType string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "SendEventPlatformEvent", e, eventType) + ret0, _ := ret[0].(error) + return ret0 +} + +// SendEventPlatformEvent indicates an expected call of SendEventPlatformEvent. +func (mr *MockComponentMockRecorder) SendEventPlatformEvent(e, eventType interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendEventPlatformEvent", reflect.TypeOf((*MockComponent)(nil).SendEventPlatformEvent), e, eventType) +} + +// SendEventPlatformEventBlocking mocks base method. +func (m *MockComponent) SendEventPlatformEventBlocking(e *message.Message, eventType string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "SendEventPlatformEventBlocking", e, eventType) + ret0, _ := ret[0].(error) + return ret0 +} + +// SendEventPlatformEventBlocking indicates an expected call of SendEventPlatformEventBlocking. +func (mr *MockComponentMockRecorder) SendEventPlatformEventBlocking(e, eventType interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendEventPlatformEventBlocking", reflect.TypeOf((*MockComponent)(nil).SendEventPlatformEventBlocking), e, eventType) +} diff --git a/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl/format.go b/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl/format.go index 940757de88d16..e3529345a94ad 100644 --- a/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl/format.go +++ b/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl/format.go @@ -15,7 +15,7 @@ import ( "github.com/DataDog/agent-payload/v5/sbom" "google.golang.org/protobuf/proto" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" "github.com/DataDog/datadog-agent/pkg/logs/message" ) diff --git a/comp/ndmtmp/bundle_test.go b/comp/ndmtmp/bundle_test.go index c0bd689899558..57d0999b2d2a1 100644 --- a/comp/ndmtmp/bundle_test.go +++ b/comp/ndmtmp/bundle_test.go @@ -8,14 +8,15 @@ package ndmtmp import ( "testing" + "go.uber.org/fx" + "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer/demultiplexerimpl" "github.com/DataDog/datadog-agent/comp/core" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + eventplatformmock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx-mock" orchestratorForwarderImpl "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" ddagg "github.com/DataDog/datadog-agent/pkg/aggregator" "github.com/DataDog/datadog-agent/pkg/util/fxutil" - "go.uber.org/fx" ) func TestBundleDependencies(t *testing.T) { @@ -23,7 +24,7 @@ func TestBundleDependencies(t *testing.T) { demultiplexerimpl.MockModule(), orchestratorForwarderImpl.MockModule(), defaultforwarder.MockModule(), - eventplatformimpl.MockModule(), + eventplatformmock.MockModule(), core.MockBundle(), ) } diff --git a/comp/ndmtmp/forwarder/component.go b/comp/ndmtmp/forwarder/component.go index e8f535198e85b..fe0dbcdfe9d2e 100644 --- a/comp/ndmtmp/forwarder/component.go +++ b/comp/ndmtmp/forwarder/component.go @@ -7,12 +7,12 @@ package forwarder import ( - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" ) // team: ndm-core // Component is the component type. type Component interface { - eventplatform.Forwarder + eventplatform.Component } diff --git a/comp/ndmtmp/forwarder/component_mock.go b/comp/ndmtmp/forwarder/component_mock.go index 5df873226a3f1..9043d58474584 100644 --- a/comp/ndmtmp/forwarder/component_mock.go +++ b/comp/ndmtmp/forwarder/component_mock.go @@ -6,11 +6,11 @@ // Package forwarder exposes the event platform forwarder for netflow. package forwarder -import "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" +import "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/mock" // MockComponent is the type for mock components. // It is a gomock-generated mock of EventPlatformForwarder. type MockComponent interface { Component - EXPECT() *eventplatformimpl.MockEventPlatformForwarderMockRecorder + EXPECT() *mock.MockComponentMockRecorder } diff --git a/comp/ndmtmp/forwarder/forwarderimpl/forwarder.go b/comp/ndmtmp/forwarder/forwarderimpl/forwarder.go index a34fe908b1222..2652a75a1a413 100644 --- a/comp/ndmtmp/forwarder/forwarderimpl/forwarder.go +++ b/comp/ndmtmp/forwarder/forwarderimpl/forwarder.go @@ -7,10 +7,11 @@ package forwarderimpl import ( + "go.uber.org/fx" + "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" "github.com/DataDog/datadog-agent/comp/ndmtmp/forwarder" "github.com/DataDog/datadog-agent/pkg/util/fxutil" - "go.uber.org/fx" ) // Module defines the fx options for this component. @@ -19,6 +20,6 @@ func Module() fxutil.Module { fx.Provide(getForwarder)) } -func getForwarder(agg demultiplexer.Component) (forwarder.Component, error) { +func getForwarder(agg demultiplexer.Component) forwarder.Component { return agg.GetEventPlatformForwarder() } diff --git a/comp/ndmtmp/forwarder/forwarderimpl/forwarder_mock.go b/comp/ndmtmp/forwarder/forwarderimpl/forwarder_mock.go index a7efc1b2f8d2f..d6e2be374edc3 100644 --- a/comp/ndmtmp/forwarder/forwarderimpl/forwarder_mock.go +++ b/comp/ndmtmp/forwarder/forwarderimpl/forwarder_mock.go @@ -10,16 +10,17 @@ package forwarderimpl import ( "testing" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" - "github.com/DataDog/datadog-agent/comp/ndmtmp/forwarder" - "github.com/DataDog/datadog-agent/pkg/util/fxutil" "github.com/golang/mock/gomock" "go.uber.org/fx" + + eventplatformmock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/mock" + "github.com/DataDog/datadog-agent/comp/ndmtmp/forwarder" + "github.com/DataDog/datadog-agent/pkg/util/fxutil" ) func getMockForwarder(t testing.TB) forwarder.MockComponent { ctrl := gomock.NewController(t) - return eventplatformimpl.NewMockEventPlatformForwarder(ctrl) + return eventplatformmock.NewMockComponent(ctrl) } // MockModule defines a component with a mock forwarder diff --git a/comp/netflow/flowaggregator/aggregator.go b/comp/netflow/flowaggregator/aggregator.go index 93afc304748b8..8c64ab30a3cc8 100644 --- a/comp/netflow/flowaggregator/aggregator.go +++ b/comp/netflow/flowaggregator/aggregator.go @@ -17,7 +17,7 @@ import ( "go.uber.org/atomic" log "github.com/DataDog/datadog-agent/comp/core/log/def" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" "github.com/DataDog/datadog-agent/comp/netflow/format" rdnsquerier "github.com/DataDog/datadog-agent/comp/rdnsquerier/def" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" @@ -41,7 +41,7 @@ type FlowAggregator struct { rollupTrackerRefreshInterval time.Duration flowAcc *flowAccumulator sender sender.Sender - epForwarder eventplatform.Forwarder + epForwarder eventplatform.Component stopChan chan struct{} flushLoopDone chan struct{} runDone chan struct{} @@ -78,7 +78,7 @@ var maxNegativeSequenceDiffToReset = map[common.FlowType]int{ } // NewFlowAggregator returns a new FlowAggregator -func NewFlowAggregator(sender sender.Sender, epForwarder eventplatform.Forwarder, config *config.NetflowConfig, hostname string, logger log.Component, rdnsQuerier rdnsquerier.Component) *FlowAggregator { +func NewFlowAggregator(sender sender.Sender, epForwarder eventplatform.Component, config *config.NetflowConfig, hostname string, logger log.Component, rdnsQuerier rdnsquerier.Component) *FlowAggregator { flushInterval := time.Duration(config.AggregatorFlushInterval) * time.Second flowContextTTL := time.Duration(config.AggregatorFlowContextTTL) * time.Second rollupTrackerRefreshInterval := time.Duration(config.AggregatorRollupTrackerRefreshInterval) * time.Second diff --git a/comp/netflow/flowaggregator/aggregator_test.go b/comp/netflow/flowaggregator/aggregator_test.go index 181915ab3f628..25a233880264b 100644 --- a/comp/netflow/flowaggregator/aggregator_test.go +++ b/comp/netflow/flowaggregator/aggregator_test.go @@ -30,7 +30,7 @@ import ( "github.com/stretchr/testify/require" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + eventplatformmock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/mock" "github.com/DataDog/datadog-agent/pkg/aggregator/mocksender" "github.com/DataDog/datadog-agent/pkg/logs/message" "github.com/DataDog/datadog-agent/pkg/util/fxutil" @@ -87,7 +87,7 @@ func TestAggregator(t *testing.T) { TCPFlags: 19, EtherType: uint32(0x0800), } - epForwarder := eventplatformimpl.NewMockEventPlatformForwarder(gomock.NewController(t)) + epForwarder := eventplatformmock.NewMockComponent(gomock.NewController(t)) // language=json event := []byte(` @@ -246,7 +246,7 @@ func TestAggregator_withMockPayload(t *testing.T) { }, } ctrl := gomock.NewController(t) - epForwarder := eventplatformimpl.NewMockEventPlatformForwarder(ctrl) + epForwarder := eventplatformmock.NewMockComponent(ctrl) testutil.ExpectNetflow5Payloads(t, epForwarder) @@ -363,7 +363,7 @@ func TestFlowAggregator_flush_submitCollectorMetrics_error(t *testing.T) { } ctrl := gomock.NewController(t) - epForwarder := eventplatformimpl.NewMockEventPlatformForwarder(ctrl) + epForwarder := eventplatformmock.NewMockComponent(ctrl) aggregator := NewFlowAggregator(sender, epForwarder, &conf, "my-hostname", logger, rdnsQuerier) aggregator.goflowPrometheusGatherer = prometheus.GathererFunc(func() ([]*promClient.MetricFamily, error) { @@ -402,7 +402,7 @@ func TestFlowAggregator_submitCollectorMetrics(t *testing.T) { } ctrl := gomock.NewController(t) - epForwarder := eventplatformimpl.NewMockEventPlatformForwarder(ctrl) + epForwarder := eventplatformmock.NewMockComponent(ctrl) logger := logmock.New(t) rdnsQuerier := fxutil.Test[rdnsquerier.Component](t, rdnsquerierfxmock.MockModule()) @@ -479,7 +479,7 @@ func TestFlowAggregator_submitCollectorMetrics_error(t *testing.T) { } ctrl := gomock.NewController(t) - epForwarder := eventplatformimpl.NewMockEventPlatformForwarder(ctrl) + epForwarder := eventplatformmock.NewMockComponent(ctrl) logger := logmock.New(t) rdnsQuerier := fxutil.Test[rdnsquerier.Component](t, rdnsquerierfxmock.MockModule()) @@ -514,7 +514,7 @@ func TestFlowAggregator_sendExporterMetadata_multiplePayloads(t *testing.T) { } ctrl := gomock.NewController(t) - epForwarder := eventplatformimpl.NewMockEventPlatformForwarder(ctrl) + epForwarder := eventplatformmock.NewMockComponent(ctrl) logger := logmock.New(t) rdnsQuerier := fxutil.Test[rdnsquerier.Component](t, rdnsquerierfxmock.MockModule()) @@ -599,7 +599,7 @@ func TestFlowAggregator_sendExporterMetadata_noPayloads(t *testing.T) { } ctrl := gomock.NewController(t) - epForwarder := eventplatformimpl.NewMockEventPlatformForwarder(ctrl) + epForwarder := eventplatformmock.NewMockComponent(ctrl) logger := logmock.New(t) rdnsQuerier := fxutil.Test[rdnsquerier.Component](t, rdnsquerierfxmock.MockModule()) @@ -632,7 +632,7 @@ func TestFlowAggregator_sendExporterMetadata_invalidIPIgnored(t *testing.T) { } ctrl := gomock.NewController(t) - epForwarder := eventplatformimpl.NewMockEventPlatformForwarder(ctrl) + epForwarder := eventplatformmock.NewMockComponent(ctrl) logger := logmock.New(t) rdnsQuerier := fxutil.Test[rdnsquerier.Component](t, rdnsquerierfxmock.MockModule()) @@ -717,7 +717,7 @@ func TestFlowAggregator_sendExporterMetadata_multipleNamespaces(t *testing.T) { } ctrl := gomock.NewController(t) - epForwarder := eventplatformimpl.NewMockEventPlatformForwarder(ctrl) + epForwarder := eventplatformmock.NewMockComponent(ctrl) logger := logmock.New(t) rdnsQuerier := fxutil.Test[rdnsquerier.Component](t, rdnsquerierfxmock.MockModule()) @@ -821,7 +821,7 @@ func TestFlowAggregator_sendExporterMetadata_singleExporterIpWithMultipleFlowTyp } ctrl := gomock.NewController(t) - epForwarder := eventplatformimpl.NewMockEventPlatformForwarder(ctrl) + epForwarder := eventplatformmock.NewMockComponent(ctrl) logger := logmock.New(t) rdnsQuerier := fxutil.Test[rdnsquerier.Component](t, rdnsquerierfxmock.MockModule()) diff --git a/comp/netflow/server/integration_test.go b/comp/netflow/server/integration_test.go index 5945207807db6..8fc5a8e9aed36 100644 --- a/comp/netflow/server/integration_test.go +++ b/comp/netflow/server/integration_test.go @@ -13,14 +13,15 @@ import ( "testing" "time" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" - "github.com/DataDog/datadog-agent/comp/netflow/goflowlib" - "github.com/DataDog/datadog-agent/comp/netflow/goflowlib/netflowstate" "github.com/netsampler/goflow2/decoders/netflow/templates" "github.com/netsampler/goflow2/utils" "github.com/sirupsen/logrus" "go.uber.org/atomic" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/netflow/goflowlib" + "github.com/DataDog/datadog-agent/comp/netflow/goflowlib/netflowstate" + "github.com/golang/mock/gomock" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" diff --git a/comp/netflow/testutil/testutil.go b/comp/netflow/testutil/testutil.go index dedee4f79f427..1bc3ad9242331 100644 --- a/comp/netflow/testutil/testutil.go +++ b/comp/netflow/testutil/testutil.go @@ -25,7 +25,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/logs/message" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" "github.com/DataDog/datadog-agent/comp/ndmtmp/forwarder" "github.com/DataDog/datadog-agent/comp/netflow/payload" ) diff --git a/comp/networkpath/bundle_test.go b/comp/networkpath/bundle_test.go index 6eb6868e8acba..49e160d2b5ef4 100644 --- a/comp/networkpath/bundle_test.go +++ b/comp/networkpath/bundle_test.go @@ -9,7 +9,7 @@ import ( "testing" "github.com/DataDog/datadog-agent/comp/core" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + eventplatformmock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx-mock" rdnsquerier "github.com/DataDog/datadog-agent/comp/rdnsquerier/fx-mock" "github.com/DataDog/datadog-agent/pkg/util/fxutil" ) @@ -17,7 +17,7 @@ import ( func TestBundleDependencies(t *testing.T) { fxutil.TestBundle(t, Bundle(), core.MockBundle(), - eventplatformimpl.MockModule(), + eventplatformmock.MockModule(), rdnsquerier.MockModule(), ) } diff --git a/comp/networkpath/npcollector/npcollectorimpl/npcollector.go b/comp/networkpath/npcollector/npcollectorimpl/npcollector.go index 4ee787e567320..eb4ded2939a94 100644 --- a/comp/networkpath/npcollector/npcollectorimpl/npcollector.go +++ b/comp/networkpath/npcollector/npcollectorimpl/npcollector.go @@ -19,7 +19,7 @@ import ( log "github.com/DataDog/datadog-agent/comp/core/log/def" telemetryComp "github.com/DataDog/datadog-agent/comp/core/telemetry" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" "github.com/DataDog/datadog-agent/comp/networkpath/npcollector/npcollectorimpl/common" "github.com/DataDog/datadog-agent/comp/networkpath/npcollector/npcollectorimpl/pathteststore" rdnsquerier "github.com/DataDog/datadog-agent/comp/rdnsquerier/def" @@ -43,7 +43,7 @@ type npCollectorImpl struct { collectorConfigs *collectorConfigs // Deps - epForwarder eventplatform.Forwarder + epForwarder eventplatform.Component logger log.Component metricSender metricsender.MetricSender statsdClient ddgostatsd.ClientInterface @@ -84,7 +84,7 @@ func newNoopNpCollectorImpl() *npCollectorImpl { } } -func newNpCollectorImpl(epForwarder eventplatform.Forwarder, collectorConfigs *collectorConfigs, logger log.Component, telemetrycomp telemetryComp.Component, rdnsquerier rdnsquerier.Component) *npCollectorImpl { +func newNpCollectorImpl(epForwarder eventplatform.Component, collectorConfigs *collectorConfigs, logger log.Component, telemetrycomp telemetryComp.Component, rdnsquerier rdnsquerier.Component) *npCollectorImpl { logger.Infof("New NpCollector (workers=%d timeout=%d max_ttl=%d input_chan_size=%d processing_chan_size=%d pathtest_contexts_limit=%d pathtest_ttl=%s pathtest_interval=%s flush_interval=%s reverse_dns_enabled=%t reverse_dns_timeout=%d)", collectorConfigs.workers, collectorConfigs.timeout, diff --git a/comp/networkpath/npcollector/npcollectorimpl/npcollector_test.go b/comp/networkpath/npcollector/npcollectorimpl/npcollector_test.go index 390ce1c8684f4..b774c71b84f5a 100644 --- a/comp/networkpath/npcollector/npcollectorimpl/npcollector_test.go +++ b/comp/networkpath/npcollector/npcollectorimpl/npcollector_test.go @@ -24,8 +24,8 @@ import ( "github.com/stretchr/testify/assert" "github.com/DataDog/datadog-agent/comp/core/telemetry" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + eventplatformmock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/mock" "github.com/DataDog/datadog-agent/comp/networkpath/npcollector/npcollectorimpl/common" "github.com/DataDog/datadog-agent/comp/networkpath/npcollector/npcollectorimpl/pathteststore" rdnsquerier "github.com/DataDog/datadog-agent/comp/rdnsquerier/def" @@ -91,7 +91,7 @@ func Test_NpCollector_runningAndProcessing(t *testing.T) { stats := &teststatsd.Client{} - mockEpForwarder := eventplatformimpl.NewMockEventPlatformForwarder(gomock.NewController(t)) + mockEpForwarder := eventplatformmock.NewMockComponent(gomock.NewController(t)) npCollector.epForwarder = mockEpForwarder app.RequireStart() diff --git a/comp/networkpath/npcollector/npcollectorimpl/npcollector_testutils.go b/comp/networkpath/npcollector/npcollectorimpl/npcollector_testutils.go index 16d777c11fd79..3075c06bc75ce 100644 --- a/comp/networkpath/npcollector/npcollectorimpl/npcollector_testutils.go +++ b/comp/networkpath/npcollector/npcollectorimpl/npcollector_testutils.go @@ -15,17 +15,18 @@ import ( "time" model "github.com/DataDog/agent-payload/v5/process" + "github.com/stretchr/testify/require" + "go.uber.org/fx" + "go.uber.org/fx/fxtest" + "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer/demultiplexerimpl" "github.com/DataDog/datadog-agent/comp/core" "github.com/DataDog/datadog-agent/comp/core/config" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + eventplatformmock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx-mock" "github.com/DataDog/datadog-agent/comp/ndmtmp/forwarder/forwarderimpl" "github.com/DataDog/datadog-agent/comp/networkpath/npcollector" rdnsqueriermock "github.com/DataDog/datadog-agent/comp/rdnsquerier/fx-mock" - "github.com/stretchr/testify/require" - "go.uber.org/fx" - "go.uber.org/fx/fxtest" ) // MockTimeNow mocks time.Now @@ -43,7 +44,7 @@ var testOptions = fx.Options( demultiplexerimpl.MockModule(), defaultforwarder.MockModule(), core.MockBundle(), - eventplatformimpl.MockModule(), + eventplatformmock.MockModule(), rdnsqueriermock.MockModule(), ) diff --git a/comp/networkpath/npcollector/npcollectorimpl/npcollectorcomp.go b/comp/networkpath/npcollector/npcollectorimpl/npcollectorcomp.go index 01c0a42691ed9..31fa00d16ad86 100644 --- a/comp/networkpath/npcollector/npcollectorimpl/npcollectorcomp.go +++ b/comp/networkpath/npcollector/npcollectorimpl/npcollectorcomp.go @@ -13,7 +13,7 @@ import ( "github.com/DataDog/datadog-agent/comp/core/config" log "github.com/DataDog/datadog-agent/comp/core/log/def" "github.com/DataDog/datadog-agent/comp/core/telemetry" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" "github.com/DataDog/datadog-agent/comp/networkpath/npcollector" rdnsquerier "github.com/DataDog/datadog-agent/comp/rdnsquerier/def" nooprdnsquerier "github.com/DataDog/datadog-agent/comp/rdnsquerier/impl-none" @@ -61,23 +61,17 @@ func newNpCollector(deps dependencies) provides { rdnsQuerier = nooprdnsquerier.NewNone().Comp } - epForwarder, ok := deps.EpForwarder.Get() - if !ok { - deps.Logger.Errorf("Error getting EpForwarder") - collector = newNoopNpCollectorImpl() - } else { - collector = newNpCollectorImpl(epForwarder, configs, deps.Logger, deps.Telemetry, rdnsQuerier) - deps.Lc.Append(fx.Hook{ - // No need for OnStart hook since NpCollector.Init() will be called by clients when needed. - OnStart: func(context.Context) error { - return collector.start() - }, - OnStop: func(context.Context) error { - collector.stop() - return nil - }, - }) - } + collector = newNpCollectorImpl(deps.EpForwarder, configs, deps.Logger, deps.Telemetry, rdnsQuerier) + deps.Lc.Append(fx.Hook{ + // No need for OnStart hook since NpCollector.Init() will be called by clients when needed. + OnStart: func(context.Context) error { + return collector.start() + }, + OnStop: func(context.Context) error { + collector.stop() + return nil + }, + }) } else { deps.Logger.Debugf("Network Path Collector disabled") collector = newNoopNpCollectorImpl() diff --git a/comp/process/bundle_test.go b/comp/process/bundle_test.go index 591dce9f63cfb..8ebfe77be895f 100644 --- a/comp/process/bundle_test.go +++ b/comp/process/bundle_test.go @@ -23,7 +23,7 @@ import ( workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" workloadmetafx "github.com/DataDog/datadog-agent/comp/core/workloadmeta/fx" "github.com/DataDog/datadog-agent/comp/dogstatsd/statsd" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + eventplatformfx "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" "github.com/DataDog/datadog-agent/comp/networkpath/npcollector/npcollectorimpl" "github.com/DataDog/datadog-agent/comp/process/runner" @@ -96,7 +96,7 @@ func TestBundleOneShot(t *testing.T) { core.MockBundle(), workloadmetafx.Module(workloadmeta.NewParams()), eventplatformreceiverimpl.Module(), - eventplatformimpl.Module(eventplatformimpl.NewDefaultParams()), + eventplatformfx.Module(), rdnsquerier.MockModule(), npcollectorimpl.Module(), statsd.MockModule(), diff --git a/comp/snmpscan/impl/devicescan.go b/comp/snmpscan/impl/devicescan.go index cef73d6aee845..cb0505108a848 100644 --- a/comp/snmpscan/impl/devicescan.go +++ b/comp/snmpscan/impl/devicescan.go @@ -9,11 +9,12 @@ import ( "encoding/json" "time" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + "github.com/gosnmp/gosnmp" + + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" "github.com/DataDog/datadog-agent/pkg/logs/message" "github.com/DataDog/datadog-agent/pkg/networkdevice/metadata" "github.com/DataDog/datadog-agent/pkg/snmp/gosnmplib" - "github.com/gosnmp/gosnmp" ) func (s snmpScannerImpl) RunDeviceScan(snmpConnection *gosnmp.GoSNMP, deviceNamespace string, deviceIPAddress string) error { diff --git a/comp/snmpscan/impl/snmpscan.go b/comp/snmpscan/impl/snmpscan.go index 1beb572ac27c0..835866508cae1 100644 --- a/comp/snmpscan/impl/snmpscan.go +++ b/comp/snmpscan/impl/snmpscan.go @@ -10,7 +10,7 @@ import ( "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" log "github.com/DataDog/datadog-agent/comp/core/log/def" compdef "github.com/DataDog/datadog-agent/comp/def" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" rcclienttypes "github.com/DataDog/datadog-agent/comp/remote-config/rcclient/types" snmpscan "github.com/DataDog/datadog-agent/comp/snmpscan/def" ) @@ -30,10 +30,7 @@ type Provides struct { // NewComponent creates a new snmpscan component func NewComponent(reqs Requires) (Provides, error) { - forwarder, err := reqs.Demultiplexer.GetEventPlatformForwarder() - if err != nil { - return Provides{}, err - } + forwarder := reqs.Demultiplexer.GetEventPlatformForwarder() scanner := snmpScannerImpl{ log: reqs.Logger, epforwarder: forwarder, @@ -46,5 +43,5 @@ func NewComponent(reqs Requires) (Provides, error) { type snmpScannerImpl struct { log log.Component - epforwarder eventplatform.Forwarder + epforwarder eventplatform.Component } diff --git a/comp/snmptraps/forwarder/forwarderimpl/forwarder.go b/comp/snmptraps/forwarder/forwarderimpl/forwarder.go index 52f0c5113078a..c34d5809eaac4 100644 --- a/comp/snmptraps/forwarder/forwarderimpl/forwarder.go +++ b/comp/snmptraps/forwarder/forwarderimpl/forwarder.go @@ -14,7 +14,7 @@ import ( "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" log "github.com/DataDog/datadog-agent/comp/core/log/def" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" "github.com/DataDog/datadog-agent/comp/snmptraps/config" "github.com/DataDog/datadog-agent/comp/snmptraps/formatter" "github.com/DataDog/datadog-agent/comp/snmptraps/forwarder" diff --git a/comp/snmptraps/forwarder/forwarderimpl/forwarder_test.go b/comp/snmptraps/forwarder/forwarderimpl/forwarder_test.go index 8bf5df680100b..1aa47f244e21b 100644 --- a/comp/snmptraps/forwarder/forwarderimpl/forwarder_test.go +++ b/comp/snmptraps/forwarder/forwarderimpl/forwarder_test.go @@ -14,7 +14,7 @@ import ( "github.com/stretchr/testify/require" "go.uber.org/fx" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" "github.com/DataDog/datadog-agent/comp/snmptraps/config/configimpl" "github.com/DataDog/datadog-agent/comp/snmptraps/formatter" "github.com/DataDog/datadog-agent/comp/snmptraps/formatter/formatterimpl" diff --git a/comp/snmptraps/status/statusimpl/status.go b/comp/snmptraps/status/statusimpl/status.go index 0fd411f2615ae..01649bd2be17c 100644 --- a/comp/snmptraps/status/statusimpl/status.go +++ b/comp/snmptraps/status/statusimpl/status.go @@ -15,7 +15,7 @@ import ( "go.uber.org/fx" "github.com/DataDog/datadog-agent/comp/core/status" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" trapsStatus "github.com/DataDog/datadog-agent/comp/snmptraps/status" "github.com/DataDog/datadog-agent/pkg/util/fxutil" ) diff --git a/comp/snmptraps/status/statusimpl/status_test.go b/comp/snmptraps/status/statusimpl/status_test.go index ffa1fac2c5469..342512a463097 100644 --- a/comp/snmptraps/status/statusimpl/status_test.go +++ b/comp/snmptraps/status/statusimpl/status_test.go @@ -14,7 +14,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" _ "github.com/DataDog/datadog-agent/pkg/aggregator" ) diff --git a/pkg/aggregator/aggregator.go b/pkg/aggregator/aggregator.go index e8ac4fd425d13..96225d1fed599 100644 --- a/pkg/aggregator/aggregator.go +++ b/pkg/aggregator/aggregator.go @@ -7,7 +7,6 @@ package aggregator import ( - "errors" "expvar" "fmt" "sync" @@ -15,7 +14,7 @@ import ( tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/core/tagger/types" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" haagent "github.com/DataDog/datadog-agent/comp/haagent/def" "github.com/DataDog/datadog-agent/pkg/aggregator/internal/tags" checkid "github.com/DataDog/datadog-agent/pkg/collector/check/id" @@ -410,12 +409,8 @@ func (agg *BufferedAggregator) GetBufferedChannels() (chan []*event.Event, chan } // GetEventPlatformForwarder returns a event platform forwarder -func (agg *BufferedAggregator) GetEventPlatformForwarder() (eventplatform.Forwarder, error) { - forwarder, found := agg.eventPlatformForwarder.Get() - if !found { - return nil, errors.New("event platform forwarder not initialized") - } - return forwarder, nil +func (agg *BufferedAggregator) GetEventPlatformForwarder() eventplatform.Component { + return agg.eventPlatformForwarder } func (agg *BufferedAggregator) registerSender(id checkid.ID) error { @@ -464,13 +459,9 @@ func (agg *BufferedAggregator) handleSenderBucket(checkBucket senderHistogramBuc } func (agg *BufferedAggregator) handleEventPlatformEvent(event senderEventPlatformEvent) error { - forwarder, found := agg.eventPlatformForwarder.Get() - if !found { - return errors.New("event platform forwarder not initialized") - } m := message.NewMessage(event.rawEvent, nil, "", 0) // eventPlatformForwarder is threadsafe so no locking needed here - return forwarder.SendEventPlatformEvent(m, event.eventType) + return agg.eventPlatformForwarder.SendEventPlatformEvent(m, event.eventType) } // addServiceCheck adds the service check to the slice of current service checks @@ -689,11 +680,7 @@ func (agg *BufferedAggregator) GetEvents() event.Events { // GetEventPlatformEvents grabs the event platform events from the queue and clears them. // Note that this works only if using the 'noop' event platform forwarder func (agg *BufferedAggregator) GetEventPlatformEvents() map[string][]*message.Message { - forwarder, found := agg.eventPlatformForwarder.Get() - if !found { - return nil - } - return forwarder.Purge() + return agg.eventPlatformForwarder.Purge() } func (agg *BufferedAggregator) sendEvents(start time.Time, events event.Events) { diff --git a/pkg/aggregator/aggregator_test.go b/pkg/aggregator/aggregator_test.go index a60e3055f2206..2e3f5dddc2682 100644 --- a/pkg/aggregator/aggregator_test.go +++ b/pkg/aggregator/aggregator_test.go @@ -25,7 +25,7 @@ import ( taggerMock "github.com/DataDog/datadog-agent/comp/core/tagger/mock" "github.com/DataDog/datadog-agent/comp/core/tagger/types" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" orchestratorforwarder "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator" haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" diff --git a/pkg/aggregator/check_sampler_bench_test.go b/pkg/aggregator/check_sampler_bench_test.go index 1e3f5eae3fd8f..9a562434c955b 100644 --- a/pkg/aggregator/check_sampler_bench_test.go +++ b/pkg/aggregator/check_sampler_bench_test.go @@ -15,8 +15,7 @@ import ( log "github.com/DataDog/datadog-agent/comp/core/log/def" "github.com/DataDog/datadog-agent/comp/core/tagger/mock" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + eventplatformock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/mock" haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" //nolint:revive // TODO(AML) Fix revive linter @@ -52,9 +51,8 @@ func benchmarkAddBucket(bucketValue int64, b *testing.B) { options.DontStartForwarders = true sharedForwarder := forwarder.NewDefaultForwarder(pkgconfigsetup.Datadog(), deps.Log, forwarderOpts) orchestratorForwarder := optional.NewOption[defaultforwarder.Forwarder](defaultforwarder.NoopForwarder{}) - eventPlatformForwarder := optional.NewOptionPtr[eventplatform.Forwarder](eventplatformimpl.NewNoopEventPlatformForwarder(deps.Hostname)) haAgent := haagentmock.NewMockHaAgent() - demux := InitAndStartAgentDemultiplexer(deps.Log, sharedForwarder, &orchestratorForwarder, options, eventPlatformForwarder, haAgent, deps.Compressor, taggerComponent, "hostname") + demux := InitAndStartAgentDemultiplexer(deps.Log, sharedForwarder, &orchestratorForwarder, options, eventplatformock.NewMock(), haAgent, deps.Compressor, taggerComponent, "hostname") defer demux.Stop(true) checkSampler := newCheckSampler(1, true, true, 1000, tags.NewStore(true, "bench"), checkid.ID("hello:world:1234"), taggerComponent) diff --git a/pkg/aggregator/demultiplexer_agent.go b/pkg/aggregator/demultiplexer_agent.go index a519383eea73e..de52762a92294 100644 --- a/pkg/aggregator/demultiplexer_agent.go +++ b/pkg/aggregator/demultiplexer_agent.go @@ -15,7 +15,7 @@ import ( log "github.com/DataDog/datadog-agent/comp/core/log/def" tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" forwarder "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" orchestratorforwarder "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator" haagent "github.com/DataDog/datadog-agent/comp/haagent/def" compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" @@ -39,7 +39,7 @@ type DemultiplexerWithAggregator interface { // AggregateCheckSample adds check sample sent by a check from one of the collectors into a check sampler pipeline. AggregateCheckSample(sample metrics.MetricSample) Options() AgentDemultiplexerOptions - GetEventPlatformForwarder() (eventplatform.Forwarder, error) + GetEventPlatformForwarder() eventplatform.Component GetEventsAndServiceChecksChannels() (chan []*event.Event, chan []*servicecheck.ServiceCheck) DumpDogstatsdContexts(io.Writer) error } @@ -471,7 +471,7 @@ func (d *AgentDemultiplexer) GetEventsAndServiceChecksChannels() (chan []*event. } // GetEventPlatformForwarder returns underlying events and service checks channels. -func (d *AgentDemultiplexer) GetEventPlatformForwarder() (eventplatform.Forwarder, error) { +func (d *AgentDemultiplexer) GetEventPlatformForwarder() eventplatform.Component { return d.aggregator.GetEventPlatformForwarder() } diff --git a/pkg/aggregator/demultiplexer_agent_test.go b/pkg/aggregator/demultiplexer_agent_test.go index ce59d5ea8943f..079c80c2e2ebd 100644 --- a/pkg/aggregator/demultiplexer_agent_test.go +++ b/pkg/aggregator/demultiplexer_agent_test.go @@ -19,8 +19,8 @@ import ( tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/core/tagger/mock" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + eventplatformmock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx-mock" orchestratorforwarder "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator" "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" haagent "github.com/DataDog/datadog-agent/comp/haagent/def" @@ -170,7 +170,7 @@ func createDemultiplexerAgentTestDeps(t *testing.T) DemultiplexerAgentTestDeps { defaultforwarder.MockModule(), core.MockBundle(), orchestratorimpl.MockModule(), - eventplatformimpl.MockModule(), + eventplatformmock.MockModule(), haagentmock.Module(), compressionmock.MockModule(), fx.Provide(func() tagger.Component { return taggerComponent }), diff --git a/pkg/aggregator/demultiplexer_mock.go b/pkg/aggregator/demultiplexer_mock.go index 6d79e009338b3..84108c6cd9b92 100644 --- a/pkg/aggregator/demultiplexer_mock.go +++ b/pkg/aggregator/demultiplexer_mock.go @@ -14,8 +14,7 @@ import ( log "github.com/DataDog/datadog-agent/comp/core/log/def" nooptagger "github.com/DataDog/datadog-agent/comp/core/tagger/impl-noop" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + eventplatformock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/mock" haagent "github.com/DataDog/datadog-agent/comp/haagent/def" compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" "github.com/DataDog/datadog-agent/pkg/util/optional" @@ -34,6 +33,5 @@ type TestDeps struct { // InitAndStartAgentDemultiplexerForTest initializes an aggregator for tests. func InitAndStartAgentDemultiplexerForTest(deps TestDeps, options AgentDemultiplexerOptions, hostname string) *AgentDemultiplexer { orchestratorForwarder := optional.NewOption[defaultforwarder.Forwarder](defaultforwarder.NoopForwarder{}) - eventPlatformForwarder := optional.NewOptionPtr[eventplatform.Forwarder](eventplatformimpl.NewNoopEventPlatformForwarder(deps.Hostname)) - return InitAndStartAgentDemultiplexer(deps.Log, deps.SharedForwarder, &orchestratorForwarder, options, eventPlatformForwarder, deps.HaAgent, deps.Compressor, nooptagger.NewComponent(), hostname) + return InitAndStartAgentDemultiplexer(deps.Log, deps.SharedForwarder, &orchestratorForwarder, options, eventplatformock.NewMock(), deps.HaAgent, deps.Compressor, nooptagger.NewComponent(), hostname) } diff --git a/pkg/aggregator/demultiplexer_test.go b/pkg/aggregator/demultiplexer_test.go index 72ed3464eb346..5173b61f3ef15 100644 --- a/pkg/aggregator/demultiplexer_test.go +++ b/pkg/aggregator/demultiplexer_test.go @@ -16,8 +16,8 @@ import ( "github.com/DataDog/datadog-agent/comp/core" nooptagger "github.com/DataDog/datadog-agent/comp/core/tagger/impl-noop" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + eventplatformfx "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" orchestratorForwarder "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator" orchestratorForwarderImpl "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" @@ -43,7 +43,7 @@ func TestDemuxIsSetAsGlobalInstance(t *testing.T) { require := require.New(t) opts := demuxTestOptions() - deps := createDemuxDeps(t, opts, eventplatformimpl.NewDefaultParams()) + deps := createDemuxDeps(t, opts) demux := deps.Demultiplexer require.NotNil(demux) @@ -59,39 +59,12 @@ func TestDemuxForwardersCreated(t *testing.T) { opts := demuxTestOptions() - deps := createDemuxDeps(t, opts, eventplatformimpl.NewDefaultParams()) + deps := createDemuxDeps(t, opts) demux := deps.Demultiplexer require.NotNil(demux) - _, found := deps.EventPlatformFwd.Get() - require.True(found) - _, found = deps.OrchestratorFwd.Get() - require.Equal(orchestratorForwarderSupport, found) - require.NotNil(deps.SharedForwarder) - demux.Stop(false) - - // options no event platform forwarder - - opts = demuxTestOptions() - deps = createDemuxDeps(t, opts, eventplatformimpl.Params{UseEventPlatformForwarder: false}) - demux = deps.Demultiplexer - require.NotNil(demux) - _, found = deps.EventPlatformFwd.Get() - require.False(found) - _, found = deps.OrchestratorFwd.Get() - require.Equal(orchestratorForwarderSupport, found) - require.NotNil(deps.SharedForwarder) - demux.Stop(false) - - // options noop event platform forwarder - - opts = demuxTestOptions() - deps = createDemuxDeps(t, opts, eventplatformimpl.Params{UseNoopEventPlatformForwarder: true}) - demux = deps.Demultiplexer - require.NotNil(demux) - _, found = deps.EventPlatformFwd.Get() - require.True(found) - _, found = deps.OrchestratorFwd.Get() + require.NotNil(deps.EventPlatformFwd) + _, found := deps.OrchestratorFwd.Get() require.Equal(orchestratorForwarderSupport, found) require.NotNil(deps.SharedForwarder) demux.Stop(false) @@ -114,11 +87,10 @@ func TestDemuxForwardersCreated(t *testing.T) { // needed feature above, we should have an orchestrator forwarder instantiated now opts = demuxTestOptions() - deps = createDemuxDeps(t, opts, eventplatformimpl.NewDefaultParams()) + deps = createDemuxDeps(t, opts) demux = deps.Demultiplexer require.NotNil(demux) - _, found = deps.EventPlatformFwd.Get() - require.True(found) + require.NotNil(deps.EventPlatformFwd) require.NotNil(deps.SharedForwarder) demux.Stop(false) @@ -126,11 +98,10 @@ func TestDemuxForwardersCreated(t *testing.T) { opts = demuxTestOptions() params := orchestratorForwarderImpl.NewDisabledParams() - deps = createDemuxDepsWithOrchestratorFwd(t, opts, params, eventplatformimpl.NewDefaultParams()) + deps = createDemuxDepsWithOrchestratorFwd(t, opts, params) demux = deps.Demultiplexer require.NotNil(demux) - _, found = deps.EventPlatformFwd.Get() - require.True(found) + require.NotNil(deps.EventPlatformFwd) _, found = deps.OrchestratorFwd.Get() require.False(found) require.NotNil(deps.SharedForwarder) @@ -140,11 +111,10 @@ func TestDemuxForwardersCreated(t *testing.T) { opts = demuxTestOptions() params = orchestratorForwarderImpl.NewNoopParams() - deps = createDemuxDepsWithOrchestratorFwd(t, opts, params, eventplatformimpl.NewDefaultParams()) + deps = createDemuxDepsWithOrchestratorFwd(t, opts, params) demux = deps.Demultiplexer require.NotNil(demux) - _, found = deps.EventPlatformFwd.Get() - require.True(found) + require.NotNil(deps.EventPlatformFwd) _, found = deps.OrchestratorFwd.Get() require.True(found) require.NotNil(deps.SharedForwarder) @@ -157,7 +127,7 @@ func TestDemuxSerializerCreated(t *testing.T) { // default options should have created all forwarders opts := demuxTestOptions() - deps := createDemuxDeps(t, opts, eventplatformimpl.NewDefaultParams()) + deps := createDemuxDeps(t, opts) demux := deps.Demultiplexer require.NotNil(demux) @@ -173,7 +143,7 @@ func TestDemuxFlushAggregatorToSerializer(t *testing.T) { opts := demuxTestOptions() opts.FlushInterval = time.Hour - deps := createDemuxDeps(t, opts, eventplatformimpl.NewDefaultParams()) + deps := createDemuxDeps(t, opts) demux := initAgentDemultiplexer(deps.Log, deps.SharedForwarder, deps.OrchestratorFwd, opts, deps.EventPlatformFwd, deps.HaAgent, deps.Compressor, nooptagger.NewComponent(), "") demux.Aggregator().tlmContainerTagsEnabled = false require.NotNil(demux) @@ -273,8 +243,8 @@ func TestGetDogStatsDWorkerAndPipelineCount(t *testing.T) { assert.Equal(4, pipelines) } -func createDemuxDeps(t *testing.T, opts AgentDemultiplexerOptions, eventPlatformParams eventplatformimpl.Params) aggregatorDeps { - return createDemuxDepsWithOrchestratorFwd(t, opts, orchestratorForwarderImpl.NewDefaultParams(), eventPlatformParams) +func createDemuxDeps(t *testing.T, opts AgentDemultiplexerOptions) aggregatorDeps { + return createDemuxDepsWithOrchestratorFwd(t, opts, orchestratorForwarderImpl.NewDefaultParams()) } type internalDemutiplexerDeps struct { @@ -288,12 +258,12 @@ func createDemuxDepsWithOrchestratorFwd( t *testing.T, opts AgentDemultiplexerOptions, orchestratorParams orchestratorForwarderImpl.Params, - eventPlatformParams eventplatformimpl.Params) aggregatorDeps { +) aggregatorDeps { modules := fx.Options( defaultforwarder.MockModule(), core.MockBundle(), orchestratorForwarderImpl.Module(orchestratorParams), - eventplatformimpl.Module(eventPlatformParams), + eventplatformfx.Module(), eventplatformreceiverimpl.Module(), compressionmock.MockModule(), haagentmock.Module(), diff --git a/pkg/aggregator/mocksender/mocksender.go b/pkg/aggregator/mocksender/mocksender.go index d20e0a3d19081..340298442247f 100644 --- a/pkg/aggregator/mocksender/mocksender.go +++ b/pkg/aggregator/mocksender/mocksender.go @@ -12,13 +12,10 @@ import ( "github.com/stretchr/testify/mock" - "github.com/DataDog/datadog-agent/comp/core/hostname/hostnameimpl" logimpl "github.com/DataDog/datadog-agent/comp/core/log/impl" - "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" - nooptagger "github.com/DataDog/datadog-agent/comp/core/tagger/impl-noop" + "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" + eventplatformock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/mock" haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" "github.com/DataDog/datadog-agent/pkg/aggregator" @@ -42,9 +39,8 @@ func CreateDefaultDemultiplexer() *aggregator.AgentDemultiplexer { log := logimpl.NewTemporaryLoggerWithoutInit() sharedForwarder := defaultforwarder.NewDefaultForwarder(pkgconfigsetup.Datadog(), log, defaultforwarder.NewOptions(pkgconfigsetup.Datadog(), log, nil)) orchestratorForwarder := optional.NewOption[defaultforwarder.Forwarder](defaultforwarder.NoopForwarder{}) - eventPlatformForwarder := optional.NewOptionPtr[eventplatform.Forwarder](eventplatformimpl.NewNoopEventPlatformForwarder(hostnameimpl.NewHostnameService())) taggerComponent := nooptagger.NewComponent() - return aggregator.InitAndStartAgentDemultiplexer(log, sharedForwarder, &orchestratorForwarder, opts, eventPlatformForwarder, haagentmock.NewMockHaAgent(), compressionmock.NewMockCompressor(), taggerComponent, "") + return aggregator.InitAndStartAgentDemultiplexer(log, sharedForwarder, &orchestratorForwarder, opts, eventplatformock.NewMock(), haagentmock.NewMockHaAgent(), compressionmock.NewMockCompressor(), taggerComponent, "") } // NewMockSenderWithSenderManager returns a functional mocked Sender for testing diff --git a/pkg/aggregator/sender_test.go b/pkg/aggregator/sender_test.go index 994cc96969d1c..ae791c41b02d1 100644 --- a/pkg/aggregator/sender_test.go +++ b/pkg/aggregator/sender_test.go @@ -21,8 +21,7 @@ import ( log "github.com/DataDog/datadog-agent/comp/core/log/def" nooptagger "github.com/DataDog/datadog-agent/comp/core/tagger/impl-noop" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + eventplatformock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/mock" haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" checkid "github.com/DataDog/datadog-agent/pkg/collector/check/id" @@ -54,12 +53,11 @@ func initSender(id checkid.ID, defaultHostname string) (s senderWithChans) { return s } -func testDemux(log log.Component, hostname hostname.Component) *AgentDemultiplexer { +func testDemux(log log.Component) *AgentDemultiplexer { opts := DefaultAgentDemultiplexerOptions() opts.DontStartForwarders = true orchestratorForwarder := optional.NewOption[defaultforwarder.Forwarder](defaultforwarder.NoopForwarder{}) - eventPlatformForwarder := optional.NewOptionPtr[eventplatform.Forwarder](eventplatformimpl.NewNoopEventPlatformForwarder(hostname)) - demux := initAgentDemultiplexer(log, NewForwarderTest(log), &orchestratorForwarder, opts, eventPlatformForwarder, haagentmock.NewMockHaAgent(), compressionmock.NewMockCompressor(), nooptagger.NewComponent(), defaultHostname) + demux := initAgentDemultiplexer(log, NewForwarderTest(log), &orchestratorForwarder, opts, eventplatformock.NewMock(), haagentmock.NewMockHaAgent(), compressionmock.NewMockCompressor(), nooptagger.NewComponent(), defaultHostname) return demux } @@ -86,7 +84,7 @@ func TestGetDefaultSenderReturnsSameSender(t *testing.T) { // this test not using anything global // - deps := fxutil.Test[SenderTestDeps](t, core.MockBundle()) - demux := testDemux(deps.Log, deps.Hostname) + demux := testDemux(deps.Log) aggregatorInstance := demux.Aggregator() go aggregatorInstance.run() defer aggregatorInstance.Stop() @@ -106,7 +104,7 @@ func TestGetSenderWithDifferentIDsReturnsDifferentCheckSamplers(t *testing.T) { // this test not using anything global // - deps := fxutil.Test[SenderTestDeps](t, core.MockBundle()) - demux := testDemux(deps.Log, deps.Hostname) + demux := testDemux(deps.Log) aggregatorInstance := demux.Aggregator() go aggregatorInstance.run() @@ -136,7 +134,7 @@ func TestGetSenderWithSameIDsReturnsSameSender(t *testing.T) { // - deps := fxutil.Test[SenderTestDeps](t, core.MockBundle()) - demux := testDemux(deps.Log, deps.Hostname) + demux := testDemux(deps.Log) aggregatorInstance := demux.Aggregator() go aggregatorInstance.run() defer aggregatorInstance.Stop() @@ -159,7 +157,7 @@ func TestDestroySender(t *testing.T) { // - deps := fxutil.Test[SenderTestDeps](t, core.MockBundle()) - demux := testDemux(deps.Log, deps.Hostname) + demux := testDemux(deps.Log) aggregatorInstance := demux.Aggregator() go aggregatorInstance.run() defer aggregatorInstance.Stop() @@ -189,7 +187,7 @@ func TestGetAndSetSender(t *testing.T) { // - deps := fxutil.Test[SenderTestDeps](t, core.MockBundle()) - demux := testDemux(deps.Log, deps.Hostname) + demux := testDemux(deps.Log) itemChan := make(chan senderItem, 10) serviceCheckChan := make(chan servicecheck.ServiceCheck, 10) @@ -212,7 +210,7 @@ func TestGetSenderDefaultHostname(t *testing.T) { // - deps := fxutil.Test[SenderTestDeps](t, core.MockBundle()) - demux := testDemux(deps.Log, deps.Hostname) + demux := testDemux(deps.Log) aggregatorInstance := demux.Aggregator() go aggregatorInstance.run() diff --git a/pkg/cli/subcommands/check/command.go b/pkg/cli/subcommands/check/command.go index d914682340504..8c98dcd853086 100644 --- a/pkg/cli/subcommands/check/command.go +++ b/pkg/cli/subcommands/check/command.go @@ -58,7 +58,7 @@ import ( "github.com/DataDog/datadog-agent/comp/dogstatsd/server" "github.com/DataDog/datadog-agent/comp/forwarder" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + eventplatformnoopfx "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx-noop" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" orchestratorForwarderImpl "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" haagentfx "github.com/DataDog/datadog-agent/comp/haagent/fx" @@ -155,9 +155,6 @@ func MakeCommand(globalParamsGetter func() GlobalParams) *cobra.Command { cliParams.cmd = cmd cliParams.args = args - eventplatforParams := eventplatformimpl.NewDefaultParams() - eventplatforParams.UseNoopEventPlatformForwarder = true - disableCmdPort() return fxutil.OneShot(run, fx.Supply(cliParams), @@ -187,7 +184,7 @@ func MakeCommand(globalParamsGetter func() GlobalParams) *cobra.Command { // Initializing the aggregator with a flush interval of 0 (to disable the flush goroutines) demultiplexerimpl.Module(demultiplexerimpl.NewDefaultParams(demultiplexerimpl.WithFlushInterval(0))), orchestratorForwarderImpl.Module(orchestratorForwarderImpl.NewNoopParams()), - eventplatformimpl.Module(eventplatforParams), + eventplatformnoopfx.Module(), eventplatformreceiverimpl.Module(), fx.Supply( status.Params{ diff --git a/pkg/collector/corechecks/containerimage/processor.go b/pkg/collector/corechecks/containerimage/processor.go index d34bd492b1cb1..d1f9161975fd9 100644 --- a/pkg/collector/corechecks/containerimage/processor.go +++ b/pkg/collector/corechecks/containerimage/processor.go @@ -13,7 +13,7 @@ import ( tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/core/tagger/types" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" queue "github.com/DataDog/datadog-agent/pkg/util/aggregatingqueue" "github.com/DataDog/datadog-agent/pkg/util/hostname" diff --git a/pkg/collector/corechecks/containerimage/processor_test.go b/pkg/collector/corechecks/containerimage/processor_test.go index b6c89960d30fc..ec4ac078d8a26 100644 --- a/pkg/collector/corechecks/containerimage/processor_test.go +++ b/pkg/collector/corechecks/containerimage/processor_test.go @@ -20,7 +20,7 @@ import ( taggerMock "github.com/DataDog/datadog-agent/comp/core/tagger/mock" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" "github.com/DataDog/datadog-agent/pkg/aggregator/mocksender" "github.com/DataDog/datadog-agent/pkg/util/hostname" "github.com/DataDog/datadog-agent/pkg/util/pointer" diff --git a/pkg/collector/corechecks/containerlifecycle/processor.go b/pkg/collector/corechecks/containerlifecycle/processor.go index 2f514329c091c..113819babbf2d 100644 --- a/pkg/collector/corechecks/containerlifecycle/processor.go +++ b/pkg/collector/corechecks/containerlifecycle/processor.go @@ -13,7 +13,7 @@ import ( "github.com/DataDog/agent-payload/v5/contlcycle" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" types "github.com/DataDog/datadog-agent/pkg/containerlifecycle" "github.com/DataDog/datadog-agent/pkg/util/log" diff --git a/pkg/collector/corechecks/network-devices/cisco-sdwan/report/metadata.go b/pkg/collector/corechecks/network-devices/cisco-sdwan/report/metadata.go index 4de17c9626f00..bb86c815ff918 100644 --- a/pkg/collector/corechecks/network-devices/cisco-sdwan/report/metadata.go +++ b/pkg/collector/corechecks/network-devices/cisco-sdwan/report/metadata.go @@ -9,7 +9,7 @@ import ( "encoding/json" "time" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" devicemetadata "github.com/DataDog/datadog-agent/pkg/networkdevice/metadata" "github.com/DataDog/datadog-agent/pkg/util/log" ) diff --git a/pkg/collector/corechecks/networkpath/networkpath.go b/pkg/collector/corechecks/networkpath/networkpath.go index 28bef69f2bbca..3b48ef65235e0 100644 --- a/pkg/collector/corechecks/networkpath/networkpath.go +++ b/pkg/collector/corechecks/networkpath/networkpath.go @@ -15,7 +15,7 @@ import ( "github.com/DataDog/datadog-agent/comp/core/autodiscovery/integration" telemetryComp "github.com/DataDog/datadog-agent/comp/core/telemetry" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" "github.com/DataDog/datadog-agent/pkg/collector/check" core "github.com/DataDog/datadog-agent/pkg/collector/corechecks" diff --git a/pkg/collector/corechecks/sbom/processor.go b/pkg/collector/corechecks/sbom/processor.go index 77c1e54a796e4..b612aebbc6d52 100644 --- a/pkg/collector/corechecks/sbom/processor.go +++ b/pkg/collector/corechecks/sbom/processor.go @@ -16,7 +16,7 @@ import ( tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/core/tagger/types" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" diff --git a/pkg/collector/corechecks/sbom/processor_test.go b/pkg/collector/corechecks/sbom/processor_test.go index 4fcc1c3ba770e..bea2b359d42c4 100644 --- a/pkg/collector/corechecks/sbom/processor_test.go +++ b/pkg/collector/corechecks/sbom/processor_test.go @@ -31,7 +31,7 @@ import ( workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" workloadmetafxmock "github.com/DataDog/datadog-agent/comp/core/workloadmeta/fx-mock" workloadmetamock "github.com/DataDog/datadog-agent/comp/core/workloadmeta/mock" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" "github.com/DataDog/datadog-agent/pkg/aggregator/mocksender" configmock "github.com/DataDog/datadog-agent/pkg/config/mock" sbomscanner "github.com/DataDog/datadog-agent/pkg/sbom/scanner" diff --git a/pkg/collector/corechecks/servicediscovery/events.go b/pkg/collector/corechecks/servicediscovery/events.go index 5cba3f89243ac..b5e136f8cf23a 100644 --- a/pkg/collector/corechecks/servicediscovery/events.go +++ b/pkg/collector/corechecks/servicediscovery/events.go @@ -11,7 +11,7 @@ import ( "github.com/DataDog/datadog-agent/comp/core/hostname" "github.com/DataDog/datadog-agent/comp/core/hostname/hostnameimpl" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/util/log" diff --git a/pkg/collector/corechecks/snmp/internal/report/report_device_metadata.go b/pkg/collector/corechecks/snmp/internal/report/report_device_metadata.go index ff8d90912efb3..76d6f55117c26 100644 --- a/pkg/collector/corechecks/snmp/internal/report/report_device_metadata.go +++ b/pkg/collector/corechecks/snmp/internal/report/report_device_metadata.go @@ -13,7 +13,7 @@ import ( "strings" "time" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" "github.com/DataDog/datadog-agent/pkg/util" "github.com/DataDog/datadog-agent/pkg/util/log" diff --git a/pkg/diagnose/runner.go b/pkg/diagnose/runner.go index 5d7f2ee88d1db..303a520ddde4b 100644 --- a/pkg/diagnose/runner.go +++ b/pkg/diagnose/runner.go @@ -20,7 +20,7 @@ import ( "github.com/DataDog/datadog-agent/comp/core/secrets" tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" - "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/impl" integrations "github.com/DataDog/datadog-agent/comp/logs/integrations/def" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" "github.com/DataDog/datadog-agent/pkg/api/util" @@ -524,7 +524,7 @@ func RegisterConnectivityAutodiscovery(catalog *diagnosis.Catalog) { // RegisterConnectivityDatadogEventPlatform registers the connectivity-datadog-event-platform diagnose suite. func RegisterConnectivityDatadogEventPlatform(catalog *diagnosis.Catalog) { - catalog.Register("connectivity-datadog-event-platform", eventplatformimpl.Diagnose) + catalog.Register("connectivity-datadog-event-platform", eventplatform.Diagnose) } // RegisterPortConflict registers the port-conflict diagnose suite. diff --git a/pkg/serverless/invocationlifecycle/lifecycle_test.go b/pkg/serverless/invocationlifecycle/lifecycle_test.go index 3eefd8dc51bbd..7c4e90a02a7ab 100644 --- a/pkg/serverless/invocationlifecycle/lifecycle_test.go +++ b/pkg/serverless/invocationlifecycle/lifecycle_test.go @@ -15,7 +15,6 @@ import ( "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer/demultiplexerimpl" - "github.com/DataDog/datadog-agent/comp/core/hostname/hostnameimpl" log "github.com/DataDog/datadog-agent/comp/core/log/def" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" @@ -1383,5 +1382,5 @@ func getEventFromFile(filename string) []byte { } func createDemultiplexer(t *testing.T) demultiplexer.FakeSamplerMock { - return fxutil.Test[demultiplexer.FakeSamplerMock](t, fx.Provide(func() log.Component { return logmock.New(t) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule(), hostnameimpl.MockModule()) + return fxutil.Test[demultiplexer.FakeSamplerMock](t, fx.Provide(func() log.Component { return logmock.New(t) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule()) } diff --git a/pkg/serverless/logs/logs_test.go b/pkg/serverless/logs/logs_test.go index 6a8f0d30d3cb0..95b14e1f8d271 100644 --- a/pkg/serverless/logs/logs_test.go +++ b/pkg/serverless/logs/logs_test.go @@ -22,7 +22,6 @@ import ( "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer/demultiplexerimpl" - "github.com/DataDog/datadog-agent/comp/core/hostname/hostnameimpl" log "github.com/DataDog/datadog-agent/comp/core/log/def" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" "github.com/DataDog/datadog-agent/comp/logs/agent/config" @@ -1473,5 +1472,5 @@ func TestMultipleStartLogCollection(t *testing.T) { } func createDemultiplexer(t *testing.T) demultiplexer.FakeSamplerMock { - return fxutil.Test[demultiplexer.FakeSamplerMock](t, fx.Provide(func() log.Component { return logmock.New(t) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule(), hostnameimpl.MockModule()) + return fxutil.Test[demultiplexer.FakeSamplerMock](t, fx.Provide(func() log.Component { return logmock.New(t) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule()) } diff --git a/pkg/serverless/metrics/enhanced_metrics_test.go b/pkg/serverless/metrics/enhanced_metrics_test.go index ea6619861f726..4de32deeef01d 100644 --- a/pkg/serverless/metrics/enhanced_metrics_test.go +++ b/pkg/serverless/metrics/enhanced_metrics_test.go @@ -17,7 +17,6 @@ import ( "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer/demultiplexerimpl" - "github.com/DataDog/datadog-agent/comp/core/hostname/hostnameimpl" log "github.com/DataDog/datadog-agent/comp/core/log/def" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" "github.com/DataDog/datadog-agent/pkg/metrics" @@ -834,5 +833,5 @@ func TestSendFailoverReasonMetric(t *testing.T) { } func createDemultiplexer(t *testing.T) demultiplexer.FakeSamplerMock { - return fxutil.Test[demultiplexer.FakeSamplerMock](t, fx.Provide(func() log.Component { return logmock.New(t) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule(), hostnameimpl.MockModule()) + return fxutil.Test[demultiplexer.FakeSamplerMock](t, fx.Provide(func() log.Component { return logmock.New(t) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule()) } diff --git a/tasks/components.py b/tasks/components.py index c534d63c56b83..f80c62b00573a 100644 --- a/tasks/components.py +++ b/tasks/components.py @@ -109,7 +109,6 @@ def has_type_component(content) -> bool: 'comp/dogstatsd/serverDebug/serverdebugimpl', 'comp/dogstatsd/status/statusimpl', 'comp/etw/impl', - 'comp/forwarder/eventplatform/eventplatformimpl', 'comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl', 'comp/forwarder/orchestrator/orchestratorimpl', 'comp/languagedetection/client/clientimpl', From 2c0e253ebd3310284fe801bb2e23bf4e05062109 Mon Sep 17 00:00:00 2001 From: Baptiste Foy Date: Wed, 27 Nov 2024 17:09:48 +0100 Subject: [PATCH 098/439] fix(fleet): Add E2E retries on Ansible install & bump activating check timeout to 60s (#31526) --- test/new-e2e/tests/installer/host/host.go | 4 ++-- .../tests/installer/unix/all_packages_test.go | 16 +++++++++++++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/test/new-e2e/tests/installer/host/host.go b/test/new-e2e/tests/installer/host/host.go index 369c50f0bf5db..c98684ab498fa 100644 --- a/test/new-e2e/tests/installer/host/host.go +++ b/test/new-e2e/tests/installer/host/host.go @@ -143,7 +143,7 @@ func (h *Host) DeletePath(path string) { // WaitForUnitActive waits for a systemd unit to be active func (h *Host) WaitForUnitActive(units ...string) { for _, unit := range units { - _, err := h.remote.Execute(fmt.Sprintf("timeout=30; unit=%s; while ! systemctl is-active --quiet $unit && [ $timeout -gt 0 ]; do sleep 1; ((timeout--)); done; [ $timeout -ne 0 ]", unit)) + _, err := h.remote.Execute(fmt.Sprintf("timeout=60; unit=%s; while ! systemctl is-active --quiet $unit && [ $timeout -gt 0 ]; do sleep 1; ((timeout--)); done; [ $timeout -ne 0 ]", unit)) require.NoError(h.t, err, "unit %s did not become active. logs: %s", unit, h.remote.MustExecute("sudo journalctl -xeu "+unit)) } } @@ -151,7 +151,7 @@ func (h *Host) WaitForUnitActive(units ...string) { // WaitForUnitActivating waits for a systemd unit to be activating func (h *Host) WaitForUnitActivating(units ...string) { for _, unit := range units { - _, err := h.remote.Execute(fmt.Sprintf("timeout=30; unit=%s; while ! grep -q \"Active: activating\" <(sudo systemctl status $unit) && [ $timeout -gt 0 ]; do sleep 1; ((timeout--)); done; [ $timeout -ne 0 ]", unit)) + _, err := h.remote.Execute(fmt.Sprintf("timeout=60; unit=%s; while ! grep -q \"Active: activating\" <(sudo systemctl status $unit) && [ $timeout -gt 0 ]; do sleep 1; ((timeout--)); done; [ $timeout -ne 0 ]", unit)) require.NoError(h.t, err, "unit %s did not become activating. logs: %s", unit, h.remote.MustExecute("sudo journalctl -xeu "+unit)) } diff --git a/test/new-e2e/tests/installer/unix/all_packages_test.go b/test/new-e2e/tests/installer/unix/all_packages_test.go index 075668a50a3b4..f213a0fda8394 100644 --- a/test/new-e2e/tests/installer/unix/all_packages_test.go +++ b/test/new-e2e/tests/installer/unix/all_packages_test.go @@ -12,6 +12,7 @@ import ( "regexp" "strings" "testing" + "time" e2eos "github.com/DataDog/test-infra-definitions/components/os" "github.com/DataDog/test-infra-definitions/scenarios/aws/ec2" @@ -198,9 +199,18 @@ func (s *packageBaseSuite) RunInstallScript(params ...string) { require.NoErrorf(s.T(), err, "installer not properly installed. logs: \n%s\n%s", s.Env().RemoteHost.MustExecute("cat /tmp/datadog-installer-stdout.log"), s.Env().RemoteHost.MustExecute("cat /tmp/datadog-installer-stderr.log")) case InstallMethodAnsible: // Install ansible then install the agent - ansiblePrefix := s.installAnsible(s.os) - - s.Env().RemoteHost.MustExecute(fmt.Sprintf("%sansible-galaxy collection install -vvv datadog.dd", ansiblePrefix)) + var ansiblePrefix string + for i := 0; i < 3; i++ { + ansiblePrefix = s.installAnsible(s.os) + _, err := s.Env().RemoteHost.Execute(fmt.Sprintf("%sansible-galaxy collection install -vvv datadog.dd", ansiblePrefix)) + if err == nil { + break + } + if i == 2 { + s.T().Fatal("failed to install ansible-galaxy collection after 3 attempts") + } + time.Sleep(time.Second) + } // Write the playbook env := InstallScriptEnv(s.arch) From 73321995bb377b7a7b27ae3092d245dc5b86e469 Mon Sep 17 00:00:00 2001 From: "agent-platform-auto-pr[bot]" <153269286+agent-platform-auto-pr[bot]@users.noreply.github.com> Date: Wed, 27 Nov 2024 16:17:36 +0000 Subject: [PATCH 099/439] [test-infra-definitions][automated] Bump test-infra-definitions to 047dd64128b675c975af49d684903b37170401ac (#31531) Co-authored-by: agent-platform-auto-pr[bot] <153269286+agent-platform-auto-pr[bot]@users.noreply.github.com> --- .gitlab/common/test_infra_version.yml | 2 +- test/new-e2e/go.mod | 7 ++++--- test/new-e2e/go.sum | 14 ++++++++------ 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/.gitlab/common/test_infra_version.yml b/.gitlab/common/test_infra_version.yml index b2461c4666a84..dd6770058e7ec 100644 --- a/.gitlab/common/test_infra_version.yml +++ b/.gitlab/common/test_infra_version.yml @@ -4,4 +4,4 @@ variables: # and check the job creating the image to make sure you have the right SHA prefix TEST_INFRA_DEFINITIONS_BUILDIMAGES_SUFFIX: "" # Make sure to update test-infra-definitions version in go.mod as well - TEST_INFRA_DEFINITIONS_BUILDIMAGES: 7cd5e8a62570 + TEST_INFRA_DEFINITIONS_BUILDIMAGES: 047dd64128b6 diff --git a/test/new-e2e/go.mod b/test/new-e2e/go.mod index 4c388ea79fb24..ad07f9d5683ec 100644 --- a/test/new-e2e/go.mod +++ b/test/new-e2e/go.mod @@ -60,7 +60,7 @@ require ( // `TEST_INFRA_DEFINITIONS_BUILDIMAGES` matches the commit sha in the module version // Example: github.com/DataDog/test-infra-definitions v0.0.0-YYYYMMDDHHmmSS-0123456789AB // => TEST_INFRA_DEFINITIONS_BUILDIMAGES: 0123456789AB - github.com/DataDog/test-infra-definitions v0.0.0-20241115164330-7cd5e8a62570 + github.com/DataDog/test-infra-definitions v0.0.0-20241127134930-047dd64128b6 github.com/aws/aws-sdk-go-v2 v1.32.2 github.com/aws/aws-sdk-go-v2/config v1.27.40 github.com/aws/aws-sdk-go-v2/service/ec2 v1.164.2 @@ -78,7 +78,7 @@ require ( github.com/pulumi/pulumi-awsx/sdk/v2 v2.16.1 github.com/pulumi/pulumi-eks/sdk/v2 v2.7.8 // indirect github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.17.1 - github.com/pulumi/pulumi/sdk/v3 v3.137.0 + github.com/pulumi/pulumi/sdk/v3 v3.140.0 github.com/samber/lo v1.47.0 github.com/stretchr/testify v1.9.0 github.com/xeipuuv/gojsonschema v1.2.0 @@ -303,8 +303,9 @@ require ( github.com/pulumi/pulumi-azure-native-sdk/authorization/v2 v2.67.0 // indirect github.com/pulumi/pulumi-azure-native-sdk/compute/v2 v2.56.0 // indirect github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2 v2.67.0 // indirect + github.com/pulumi/pulumi-azure-native-sdk/managedidentity/v2 v2.73.1 // indirect github.com/pulumi/pulumi-azure-native-sdk/network/v2 v2.67.0 // indirect - github.com/pulumi/pulumi-azure-native-sdk/v2 v2.67.0 // indirect + github.com/pulumi/pulumi-azure-native-sdk/v2 v2.73.1 // indirect github.com/pulumi/pulumi-gcp/sdk/v6 v6.67.1 // indirect github.com/pulumi/pulumi-gcp/sdk/v7 v7.38.0 // indirect github.com/twinj/uuid v0.0.0-20151029044442-89173bcdda19 // indirect diff --git a/test/new-e2e/go.sum b/test/new-e2e/go.sum index fcf50dc3486ce..e1bf799b32880 100644 --- a/test/new-e2e/go.sum +++ b/test/new-e2e/go.sum @@ -16,8 +16,8 @@ github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw= github.com/DataDog/mmh3 v0.0.0-20200805151601-30884ca2197a h1:m9REhmyaWD5YJ0P53ygRHxKKo+KM+nw+zz0hEdKztMo= github.com/DataDog/mmh3 v0.0.0-20200805151601-30884ca2197a/go.mod h1:SvsjzyJlSg0rKsqYgdcFxeEVflx3ZNAyFfkUHP0TxXg= -github.com/DataDog/test-infra-definitions v0.0.0-20241115164330-7cd5e8a62570 h1:vVkrzQIPIhgxZP+GMd+9UhILnZTj1Uf4wZlxhcDGysA= -github.com/DataDog/test-infra-definitions v0.0.0-20241115164330-7cd5e8a62570/go.mod h1:l0n0FQYdWWQxbI5a2EkuynRQIteUQcYOaOhdxD9TvJs= +github.com/DataDog/test-infra-definitions v0.0.0-20241127134930-047dd64128b6 h1:7Cy8Iju8X6XdwqXyTrkke1ULq/yEikXVEwAgg4yCGFg= +github.com/DataDog/test-infra-definitions v0.0.0-20241127134930-047dd64128b6/go.mod h1:YYNx5mySRiinvCoTQIkToR8PcBXpxrRIW/HqmTw9XAY= github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f h1:5Vuo4niPKFkfwW55jV4vY0ih3VQ9RaQqeqY67fvRn8A= @@ -415,10 +415,12 @@ github.com/pulumi/pulumi-azure-native-sdk/compute/v2 v2.56.0 h1:MFOd6X9FPlixzriy github.com/pulumi/pulumi-azure-native-sdk/compute/v2 v2.56.0/go.mod h1:453Ff5wNscroYfq+zxME7Nbt7HdZv+dh0zLZwLyGBws= github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2 v2.67.0 h1:jvruQQSO1ESk7APFQ3mAge7C9SWKU9nbBHrilcyeSGU= github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2 v2.67.0/go.mod h1:d5nmekK1mrjM9Xo/JGGVlAs7mqqftBo3DmKji+1zbmw= +github.com/pulumi/pulumi-azure-native-sdk/managedidentity/v2 v2.73.1 h1:rkNZDAik+qlIhbmFoa09ln/oJMXey5+olw8ShmljgXc= +github.com/pulumi/pulumi-azure-native-sdk/managedidentity/v2 v2.73.1/go.mod h1:P/N/xG2lVxsHdspmKjH+d8d4ln+2arXBmOl3zhjWnnw= github.com/pulumi/pulumi-azure-native-sdk/network/v2 v2.67.0 h1:r26Xl6FdOJnbLs1ny9ekuRjFxAocZK8jS8SLrgXKEFE= github.com/pulumi/pulumi-azure-native-sdk/network/v2 v2.67.0/go.mod h1:8yXZtmHe2Zet5pb8gZ7D730d0VAm4kYUdwCj7sjhz6g= -github.com/pulumi/pulumi-azure-native-sdk/v2 v2.67.0 h1:FgfXLypiQ/DKWRPQpyNaftXcGl5HVgA93msBZTQ6Ddk= -github.com/pulumi/pulumi-azure-native-sdk/v2 v2.67.0/go.mod h1:0y4wJUCX1eA3ZSn0jJIRXtHeJA7qgbPfkrR9qvj+5D4= +github.com/pulumi/pulumi-azure-native-sdk/v2 v2.73.1 h1:yzXxwwq3tHdtSOi5vjKmKXq7HyKvDaKulF53MFTMbh8= +github.com/pulumi/pulumi-azure-native-sdk/v2 v2.73.1/go.mod h1:ChjIUNDNeN6jI33ZOivHUFqM6purDiLP01mghMGe1Fs= github.com/pulumi/pulumi-command/sdk v1.0.1 h1:ZuBSFT57nxg/fs8yBymUhKLkjJ6qmyN3gNvlY/idiN0= github.com/pulumi/pulumi-command/sdk v1.0.1/go.mod h1:C7sfdFbUIoXKoIASfXUbP/U9xnwPfxvz8dBpFodohlA= github.com/pulumi/pulumi-docker/sdk/v4 v4.5.5 h1:7OjAfgLz5PAy95ynbgPAlWls5WBe4I/QW/61TdPWRlQ= @@ -437,8 +439,8 @@ github.com/pulumi/pulumi-random/sdk/v4 v4.16.6 h1:M9BSF13bQxj74C61nBTVITrsgT6oRR github.com/pulumi/pulumi-random/sdk/v4 v4.16.6/go.mod h1:l5ew7S/G1GspPLH9KeWXqxQ4ZmS2hh2sEMv3bW9M3yc= github.com/pulumi/pulumi-tls/sdk/v4 v4.11.1 h1:tXemWrzeVTqG8zq6hBdv1TdPFXjgZ+dob63a/6GlF1o= github.com/pulumi/pulumi-tls/sdk/v4 v4.11.1/go.mod h1:hODo3iEmmXDFOXqPK+V+vwI0a3Ww7BLjs5Tgamp86Ng= -github.com/pulumi/pulumi/sdk/v3 v3.137.0 h1:bxhYpOY7Z4xt+VmezEpHuhjpOekkaMqOjzxFg/1OhCw= -github.com/pulumi/pulumi/sdk/v3 v3.137.0/go.mod h1:PvKsX88co8XuwuPdzolMvew5lZV+4JmZfkeSjj7A6dI= +github.com/pulumi/pulumi/sdk/v3 v3.140.0 h1:+Z/RBvdYg7tBNkBwk4p/FzlV7niBT3TbLAICq/Y0LDU= +github.com/pulumi/pulumi/sdk/v3 v3.140.0/go.mod h1:PvKsX88co8XuwuPdzolMvew5lZV+4JmZfkeSjj7A6dI= github.com/pulumiverse/pulumi-time/sdk v0.1.0 h1:xfi9HKDgV+GgDxQ23oSv9KxC3DQqViGTcMrJICRgJv0= github.com/pulumiverse/pulumi-time/sdk v0.1.0/go.mod h1:NUa1zA74DF002WrM6iF111A6UjX9knPpXufVRvBwNyg= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= From 2e988c015505b3cb5496f635d605fd2e37030ddd Mon Sep 17 00:00:00 2001 From: Jonathan Ribas Date: Wed, 27 Nov 2024 17:33:15 +0100 Subject: [PATCH 100/439] [CWS] Fix ptrace issues and add tests (#31510) --- .../ebpf/c/include/events_definition.h | 1 + pkg/security/ebpf/c/include/hooks/ptrace.h | 2 + .../ebpf/c/include/structs/syscalls.h | 1 + pkg/security/probe/probe_ebpf.go | 34 +++++++- pkg/security/secl/model/model_unix.go | 1 + .../secl/model/unmarshallers_linux.go | 5 +- pkg/security/serializers/serializers_linux.go | 16 +++- pkg/security/tests/ptrace_test.go | 76 +++++++++++++++-- .../tests/syscall_tester/c/syscall_tester.c | 15 ++++ pkg/security/utils/proc_linux.go | 84 +++++++++++++++++++ 10 files changed, 224 insertions(+), 11 deletions(-) diff --git a/pkg/security/ebpf/c/include/events_definition.h b/pkg/security/ebpf/c/include/events_definition.h index 6611da172b380..ef52f5edcf386 100644 --- a/pkg/security/ebpf/c/include/events_definition.h +++ b/pkg/security/ebpf/c/include/events_definition.h @@ -324,6 +324,7 @@ struct ptrace_event_t { u32 request; u32 pid; u64 addr; + u32 ns_pid; }; struct syscall_monitor_event_t { diff --git a/pkg/security/ebpf/c/include/hooks/ptrace.h b/pkg/security/ebpf/c/include/hooks/ptrace.h index 358966d12c2ac..187d424665b4b 100644 --- a/pkg/security/ebpf/c/include/hooks/ptrace.h +++ b/pkg/security/ebpf/c/include/hooks/ptrace.h @@ -11,6 +11,7 @@ HOOK_SYSCALL_ENTRY3(ptrace, u32, request, pid_t, pid, void *, addr) { .ptrace = { .request = request, .pid = 0, // 0 in case the root ns pid resolution failed + .ns_pid = (u32)pid, .addr = (u64)addr, } }; @@ -59,6 +60,7 @@ int __attribute__((always_inline)) sys_ptrace_ret(void *ctx, int retval) { .request = syscall->ptrace.request, .pid = syscall->ptrace.pid, .addr = syscall->ptrace.addr, + .ns_pid = syscall->ptrace.ns_pid, }; struct proc_cache_t *entry = fill_process_context(&event.process); diff --git a/pkg/security/ebpf/c/include/structs/syscalls.h b/pkg/security/ebpf/c/include/structs/syscalls.h index 31a2fc2b9f003..9515fa07df56b 100644 --- a/pkg/security/ebpf/c/include/structs/syscalls.h +++ b/pkg/security/ebpf/c/include/structs/syscalls.h @@ -156,6 +156,7 @@ struct syscall_cache_t { u32 request; u32 pid; u64 addr; + u32 ns_pid; } ptrace; struct { diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go index 05153e99bc2f5..f09797254e3d8 100644 --- a/pkg/security/probe/probe_ebpf.go +++ b/pkg/security/probe/probe_ebpf.go @@ -1072,14 +1072,42 @@ func (p *EBPFProbe) handleEvent(CPU int, data []byte) { seclog.Errorf("failed to decode ptrace event: %s (offset %d, len %d)", err, offset, len(data)) return } + // resolve tracee process context var pce *model.ProcessCacheEntry - if event.PTrace.PID == 0 { // pid can be 0 for a PTRACE_TRACEME request + if event.PTrace.Request == unix.PTRACE_TRACEME { // pid can be 0 for a PTRACE_TRACEME request pce = newPlaceholderProcessCacheEntryPTraceMe() + } else if event.PTrace.PID == 0 && event.PTrace.NSPID == 0 { + seclog.Errorf("ptrace event without any PID to resolve") + return } else { - pce = p.Resolvers.ProcessResolver.Resolve(event.PTrace.PID, event.PTrace.PID, 0, false, newEntryCb) + pidToResolve := event.PTrace.PID + + if pidToResolve == 0 { // resolve the PID given as argument instead + if event.ContainerContext.ContainerID == "" { + pidToResolve = event.PTrace.NSPID + } else { + // 1. get the pid namespace of the tracer + ns, err := utils.GetProcessPidNamespace(event.ProcessContext.Process.Pid) + if err != nil { + seclog.Errorf("Failed to resolve PID namespace: %v", err) + return + } + + // 2. find the host pid matching the arg pid with he tracer namespace + pid, err := utils.FindPidNamespace(event.PTrace.NSPID, ns) + if err != nil { + seclog.Warnf("Failed to resolve tracee PID namespace: %v", err) + return + } + + pidToResolve = pid + } + } + + pce = p.Resolvers.ProcessResolver.Resolve(pidToResolve, pidToResolve, 0, false, newEntryCb) if pce == nil { - pce = model.NewPlaceholderProcessCacheEntry(event.PTrace.PID, event.PTrace.PID, false) + pce = model.NewPlaceholderProcessCacheEntry(pidToResolve, pidToResolve, false) } } event.PTrace.Tracee = &pce.ProcessContext diff --git a/pkg/security/secl/model/model_unix.go b/pkg/security/secl/model/model_unix.go index af3714a54f521..caef9bf28ce3b 100644 --- a/pkg/security/secl/model/model_unix.go +++ b/pkg/security/secl/model/model_unix.go @@ -538,6 +538,7 @@ type PTraceEvent struct { Request uint32 `field:"request"` // SECLDoc[request] Definition:`ptrace request` Constants:`Ptrace constants` PID uint32 `field:"-"` + NSPID uint32 `field:"-"` Address uint64 `field:"-"` Tracee *ProcessContext `field:"tracee"` // process context of the tracee } diff --git a/pkg/security/secl/model/unmarshallers_linux.go b/pkg/security/secl/model/unmarshallers_linux.go index 51d4f892ba218..f198adf0bba84 100644 --- a/pkg/security/secl/model/unmarshallers_linux.go +++ b/pkg/security/secl/model/unmarshallers_linux.go @@ -833,14 +833,15 @@ func (e *PTraceEvent) UnmarshalBinary(data []byte) (int, error) { return 0, err } - if len(data)-read < 16 { + if len(data)-read < 20 { return 0, ErrNotEnoughData } e.Request = binary.NativeEndian.Uint32(data[read : read+4]) e.PID = binary.NativeEndian.Uint32(data[read+4 : read+8]) e.Address = binary.NativeEndian.Uint64(data[read+8 : read+16]) - return read + 16, nil + e.NSPID = binary.NativeEndian.Uint32(data[read+16 : read+20]) + return read + 20, nil } // UnmarshalBinary unmarshals a binary representation of itself diff --git a/pkg/security/serializers/serializers_linux.go b/pkg/security/serializers/serializers_linux.go index 7a409890794e0..07d102105713f 100644 --- a/pkg/security/serializers/serializers_linux.go +++ b/pkg/security/serializers/serializers_linux.go @@ -895,10 +895,24 @@ func newMProtectEventSerializer(e *model.Event) *MProtectEventSerializer { } func newPTraceEventSerializer(e *model.Event) *PTraceEventSerializer { + if e.PTrace.Tracee == nil { + return nil + } + + fakeTraceeEvent := &model.Event{ + BaseEvent: model.BaseEvent{ + FieldHandlers: e.FieldHandlers, + ProcessContext: e.PTrace.Tracee, + ContainerContext: &model.ContainerContext{ + ContainerID: e.PTrace.Tracee.ContainerID, + }, + }, + } + return &PTraceEventSerializer{ Request: model.PTraceRequest(e.PTrace.Request).String(), Address: fmt.Sprintf("0x%x", e.PTrace.Address), - Tracee: newProcessContextSerializer(e.PTrace.Tracee, e), + Tracee: newProcessContextSerializer(e.PTrace.Tracee, fakeTraceeEvent), } } diff --git a/pkg/security/tests/ptrace_test.go b/pkg/security/tests/ptrace_test.go index 1052a9791555d..f6f660422ae46 100644 --- a/pkg/security/tests/ptrace_test.go +++ b/pkg/security/tests/ptrace_test.go @@ -12,6 +12,7 @@ import ( "fmt" "os/exec" "testing" + "time" "github.com/stretchr/testify/assert" @@ -24,9 +25,17 @@ func TestPTraceEvent(t *testing.T) { ruleDefs := []*rules.RuleDefinition{ { - ID: "test_ptrace", + ID: "test_ptrace_cont", Expression: `ptrace.request == PTRACE_CONT && ptrace.tracee.file.name == "syscall_tester"`, }, + { + ID: "test_ptrace_me", + Expression: `ptrace.request == PTRACE_TRACEME && process.file.name == "syscall_tester"`, + }, + { + ID: "test_ptrace_attach", + Expression: `ptrace.request == PTRACE_ATTACH && ptrace.tracee.file.name == "syscall_tester"`, + }, } test, err := newTestModule(t, nil, ruleDefs) @@ -40,18 +49,18 @@ func TestPTraceEvent(t *testing.T) { t.Fatal(err) } - test.Run(t, "ptrace", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + test.Run(t, "ptrace-cont", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { args := []string{"ptrace-traceme"} envs := []string{} - test.WaitSignal(t, func() error { + err := test.GetEventSent(t, func() error { cmd := cmdFunc(syscallTester, args, envs) if out, err := cmd.CombinedOutput(); err != nil { return fmt.Errorf("%s: %w", out, err) } return nil - }, func(event *model.Event, _ *rules.Rule) { + }, func(_ *rules.Rule, event *model.Event) bool { assert.Equal(t, "ptrace", event.GetType(), "wrong event type") assert.Equal(t, uint64(42), event.PTrace.Address, "wrong address") @@ -59,6 +68,63 @@ func TestPTraceEvent(t *testing.T) { assert.Equal(t, value.(bool), false) test.validatePTraceSchema(t, event) - }) + return true + }, time.Second*3, "test_ptrace_cont") + if err != nil { + t.Error(err) + } + }) + + test.Run(t, "ptrace-me", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + args := []string{"ptrace-traceme"} + envs := []string{} + + err := test.GetEventSent(t, func() error { + cmd := cmdFunc(syscallTester, args, envs) + if out, err := cmd.CombinedOutput(); err != nil { + return fmt.Errorf("%s: %w", out, err) + } + + return nil + }, func(_ *rules.Rule, event *model.Event) bool { + assert.Equal(t, "ptrace", event.GetType(), "wrong event type") + assert.Equal(t, uint64(0), event.PTrace.Address, "wrong address") + + value, _ := event.GetFieldValue("event.async") + assert.Equal(t, value.(bool), false) + + test.validatePTraceSchema(t, event) + return true + }, time.Second*3, "test_ptrace_me") + if err != nil { + t.Error(err) + } + }) + + test.Run(t, "ptrace-attach", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { + args := []string{"ptrace-attach"} + envs := []string{} + + err := test.GetEventSent(t, func() error { + cmd := cmdFunc(syscallTester, args, envs) + if out, err := cmd.CombinedOutput(); err != nil { + return fmt.Errorf("%s: %w", out, err) + } + + return nil + }, func(_ *rules.Rule, event *model.Event) bool { + assert.Equal(t, "ptrace", event.GetType(), "wrong event type") + assert.Equal(t, uint64(0), event.PTrace.Address, "wrong address") + assert.Equal(t, event.PTrace.Tracee.PPid, event.PTrace.Tracee.Parent.Pid, "tracee wrong ppid / parent pid") + + value, _ := event.GetFieldValue("event.async") + assert.Equal(t, value.(bool), false) + + test.validatePTraceSchema(t, event) + return true + }, time.Second*3, "test_ptrace_attach") + if err != nil { + t.Error(err) + } }) } diff --git a/pkg/security/tests/syscall_tester/c/syscall_tester.c b/pkg/security/tests/syscall_tester/c/syscall_tester.c index 591bb2e6f8e81..76844cf222e5c 100644 --- a/pkg/security/tests/syscall_tester/c/syscall_tester.c +++ b/pkg/security/tests/syscall_tester/c/syscall_tester.c @@ -185,6 +185,19 @@ int ptrace_traceme() { return EXIT_SUCCESS; } +int ptrace_attach() { + int child = fork(); + if (child == 0) { + for (int i = 0; i < 20; i++) { + sleep(1); + } + } else { + ptrace(PTRACE_ATTACH, child, 0, NULL); + wait(NULL); + } + return EXIT_SUCCESS; +} + int test_signal_sigusr(int child, int sig) { int do_fork = child == 0; if (do_fork) { @@ -885,6 +898,8 @@ int main(int argc, char **argv) { exit_code = span_exec(sub_argc, sub_argv); } else if (strcmp(cmd, "ptrace-traceme") == 0) { exit_code = ptrace_traceme(); + } else if (strcmp(cmd, "ptrace-attach") == 0) { + exit_code = ptrace_attach(); } else if (strcmp(cmd, "span-open") == 0) { exit_code = span_open(sub_argc, sub_argv); } else if (strcmp(cmd, "pipe-chown") == 0) { diff --git a/pkg/security/utils/proc_linux.go b/pkg/security/utils/proc_linux.go index 241aae6f91b3f..9fcbbde812ca7 100644 --- a/pkg/security/utils/proc_linux.go +++ b/pkg/security/utils/proc_linux.go @@ -8,6 +8,7 @@ package utils import ( "bufio" + "errors" "fmt" "io" "os" @@ -20,6 +21,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/secl/model" "github.com/DataDog/datadog-agent/pkg/util/kernel" + "github.com/shirou/gopsutil/v3/process" ) // Getpid returns the current process ID in the host namespace @@ -384,3 +386,85 @@ func FetchLoadedModules() (map[string]ProcFSModule, error) { return output, nil } + +// GetProcessPidNamespace returns the PID namespace of the given PID +func GetProcessPidNamespace(pid uint32) (uint64, error) { + nspidPath := procPidPath(pid, "ns/pid") + link, err := os.Readlink(nspidPath) + if err != nil { + return 0, err + } + // link should be in for of: pid:[4026532294] + if !strings.HasPrefix(link, "pid:[") { + return 0, fmt.Errorf("Failed to retrieve PID NS, pid ns malformated: (%s) err: %v", link, err) + } + + link = strings.TrimPrefix(link, "pid:[") + link = strings.TrimSuffix(link, "]") + + ns, err := strconv.ParseUint(link, 10, 64) + if err != nil { + return 0, fmt.Errorf("Failed to retrieve PID NS, pid ns malformated: (%s) err: %v", link, err) + } + return ns, nil +} + +// GetNsPids returns the namespaced pids of the the givent root pid +func GetNsPids(pid uint32) ([]uint32, error) { + statusFile := StatusPath(pid) + content, err := os.ReadFile(statusFile) + if err != nil { + return nil, fmt.Errorf("failed to read status file: %w", err) + } + + lines := strings.Split(string(content), "\n") + for _, line := range lines { + if strings.HasPrefix(line, "NSpid:") { + // Remove "NSpid:" prefix and trim spaces + values := strings.TrimPrefix(line, "NSpid:") + values = strings.TrimSpace(values) + + // Split the remaining string into fields + fields := strings.Fields(values) + + // Convert string values to integers + nspids := make([]uint32, 0, len(fields)) + for _, field := range fields { + val, err := strconv.ParseUint(field, 10, 64) + if err != nil { + return nil, fmt.Errorf("failed to parse NSpid value: %w", err) + } + nspids = append(nspids, uint32(val)) + } + return nspids, nil + } + } + return nil, fmt.Errorf("NSpid field not found") +} + +// FindPidNamespace search and return the host PID for the given namespaced PID + its namespace +func FindPidNamespace(nspid uint32, ns uint64) (uint32, error) { + procPids, err := process.Pids() + if err != nil { + return 0, err + } + + for _, procPid := range procPids { + procNs, err := GetProcessPidNamespace(uint32(procPid)) + if err != nil { + continue + } + + if procNs == ns { + nspids, err := GetNsPids(uint32(procPid)) + if err != nil { + return 0, err + } + // we look only at the last one, as it the most inner one and corresponding to its /proc/pid/ns/pid namespace + if nspids[len(nspids)-1] == nspid { + return uint32(procPid), nil + } + } + } + return 0, errors.New("PID not found") +} From bb3031d03c857f40077c7f927f143dae577eab62 Mon Sep 17 00:00:00 2001 From: Branden Clark Date: Wed, 27 Nov 2024 11:38:25 -0500 Subject: [PATCH 101/439] add parallel matrix (#31497) --- .gitlab/e2e/e2e.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/.gitlab/e2e/e2e.yml b/.gitlab/e2e/e2e.yml index 3906d03a02e98..8a6869cae5baa 100644 --- a/.gitlab/e2e/e2e.yml +++ b/.gitlab/e2e/e2e.yml @@ -411,6 +411,20 @@ new-e2e-installer-windows: TARGETS: ./tests/installer/windows TEAM: fleet FLEET_INSTALL_METHOD: "windows" + parallel: + matrix: + # agent-package + - EXTRA_PARAMS: --run "TestAgentInstallsWithAgentUser$" + - EXTRA_PARAMS: --run "TestAgentInstalls$" + - EXTRA_PARAMS: --run "TestAgentUpgrades$" + # install-script + - EXTRA_PARAMS: --run "TestInstallScriptWithAgentUser$" + # installer-package + - EXTRA_PARAMS: --run "TestInstaller$" + - EXTRA_PARAMS: --run "TestInstallerRollback$" + - EXTRA_PARAMS: --run "TestInstallerSystemIntegrity$" + - EXTRA_PARAMS: --run "TestInstallerUpgrades$" + new-e2e-installer-ansible: extends: .new_e2e_template @@ -469,6 +483,10 @@ new-e2e-windows-systemprobe: TARGETS: ./tests/sysprobe-functional TEAM: windows-kernel-integrations SHOULD_RUN_IN_FLAKES_FINDER: "false" # Currently broken in flake finder ADXT-687 + parallel: + matrix: + - EXTRA_PARAMS: --run TestUSMAutoTaggingSuite + - EXTRA_PARAMS: --run TestVMSuite new-e2e-windows-security-agent: extends: .new_e2e_template From 199e77affa785ea8e64690bca27917c9242b7b4e Mon Sep 17 00:00:00 2001 From: Olivier G <52180542+ogaca-dd@users.noreply.github.com> Date: Wed, 27 Nov 2024 18:07:39 +0100 Subject: [PATCH 102/439] [OTEL-2181] Set a specific default timeout value when getting the flare for OTEL (#31388) --- comp/otelcol/collector/impl-pipeline/pipeline.go | 6 ++++-- pkg/config/setup/config.go | 1 + test/new-e2e/tests/otel/utils/config_utils.go | 2 -- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/comp/otelcol/collector/impl-pipeline/pipeline.go b/comp/otelcol/collector/impl-pipeline/pipeline.go index a0f72266efb8a..e3e2d89e2f87f 100644 --- a/comp/otelcol/collector/impl-pipeline/pipeline.go +++ b/comp/otelcol/collector/impl-pipeline/pipeline.go @@ -151,10 +151,12 @@ func NewComponent(reqs Requires) (Provides, error) { OnStart: collector.start, OnStop: collector.stop, }) - + timeoutCallback := func(flaretypes.FlareBuilder) time.Duration { + return time.Second * time.Duration(reqs.Config.GetInt("otelcollector.flare.timeout")) + } return Provides{ Comp: collector, - FlareProvider: flaretypes.NewProvider(collector.fillFlare), + FlareProvider: flaretypes.NewProviderWithTimeout(collector.fillFlare, timeoutCallback), StatusProvider: status.NewInformationProvider(collector), }, nil } diff --git a/pkg/config/setup/config.go b/pkg/config/setup/config.go index 5690289442f25..cb222ce628e73 100644 --- a/pkg/config/setup/config.go +++ b/pkg/config/setup/config.go @@ -879,6 +879,7 @@ func InitConfig(config pkgconfigmodel.Setup) { config.BindEnvAndSetDefault("otelcollector.extension_timeout", 0) // in seconds, 0 for default value config.BindEnvAndSetDefault("otelcollector.submit_dummy_metadata", false) // dev flag - to be removed config.BindEnvAndSetDefault("otelcollector.converter.enabled", true) + config.BindEnvAndSetDefault("otelcollector.flare.timeout", 60) // inventories config.BindEnvAndSetDefault("inventories_enabled", true) diff --git a/test/new-e2e/tests/otel/utils/config_utils.go b/test/new-e2e/tests/otel/utils/config_utils.go index a4daa89e3baa8..ddee2793648fa 100644 --- a/test/new-e2e/tests/otel/utils/config_utils.go +++ b/test/new-e2e/tests/otel/utils/config_utils.go @@ -21,7 +21,6 @@ import ( "k8s.io/apimachinery/pkg/fields" extension "github.com/DataDog/datadog-agent/comp/otelcol/ddflareextension/def" - "github.com/DataDog/datadog-agent/pkg/util/testutil/flake" "github.com/DataDog/datadog-agent/test/fakeintake/client/flare" ) @@ -105,7 +104,6 @@ func TestOTelFlareExtensionResponse(s OTelTestSuite, providedCfg string, fullCfg // TestOTelFlareFiles tests that the OTel Agent flares contain the expected files func TestOTelFlareFiles(s OTelTestSuite) { - flake.Mark(s.T()) err := s.Env().FakeIntake.Client().FlushServerAndResetAggregators() require.NoError(s.T(), err) agent := getAgentPod(s) From a159d213707c06e96a19cf828de2f93a52e0b1f5 Mon Sep 17 00:00:00 2001 From: Mackenzie <63265430+mackjmr@users.noreply.github.com> Date: Wed, 27 Nov 2024 18:43:29 +0100 Subject: [PATCH 103/439] Pull container_image_metadata entity from attribute oci.manifest.digest (#31307) Co-authored-by: jackgopack4 --- LICENSE-3rdparty.csv | 1 + .../processor/infraattributesprocessor/common.go | 8 +++++--- .../processor/infraattributesprocessor/metrics_test.go | 5 +++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/LICENSE-3rdparty.csv b/LICENSE-3rdparty.csv index ba2ac82c2ee84..32bfe097dee1d 100644 --- a/LICENSE-3rdparty.csv +++ b/LICENSE-3rdparty.csv @@ -2491,6 +2491,7 @@ core,go.opentelemetry.io/collector/semconv/v1.16.0,Apache-2.0,Copyright The Open core,go.opentelemetry.io/collector/semconv/v1.17.0,Apache-2.0,Copyright The OpenTelemetry Authors core,go.opentelemetry.io/collector/semconv/v1.18.0,Apache-2.0,Copyright The OpenTelemetry Authors core,go.opentelemetry.io/collector/semconv/v1.21.0,Apache-2.0,Copyright The OpenTelemetry Authors +core,go.opentelemetry.io/collector/semconv/v1.22.0,Apache-2.0,Copyright The OpenTelemetry Authors core,go.opentelemetry.io/collector/semconv/v1.25.0,Apache-2.0,Copyright The OpenTelemetry Authors core,go.opentelemetry.io/collector/semconv/v1.26.0,Apache-2.0,Copyright The OpenTelemetry Authors core,go.opentelemetry.io/collector/semconv/v1.27.0,Apache-2.0,Copyright The OpenTelemetry Authors diff --git a/comp/otelcol/otlp/components/processor/infraattributesprocessor/common.go b/comp/otelcol/otlp/components/processor/infraattributesprocessor/common.go index 44e2ff6be69a0..3ea280b2b2c56 100644 --- a/comp/otelcol/otlp/components/processor/infraattributesprocessor/common.go +++ b/comp/otelcol/otlp/components/processor/infraattributesprocessor/common.go @@ -7,11 +7,13 @@ package infraattributesprocessor import ( "fmt" - "go.uber.org/zap" "strings" + "go.uber.org/zap" + "go.opentelemetry.io/collector/pdata/pcommon" conventions "go.opentelemetry.io/collector/semconv/v1.21.0" + conventions22 "go.opentelemetry.io/collector/semconv/v1.22.0" "github.com/DataDog/datadog-agent/comp/core/tagger/tags" "github.com/DataDog/datadog-agent/comp/core/tagger/types" @@ -95,8 +97,8 @@ func entityIDsFromAttributes(attrs pcommon.Map, generateID GenerateKubeMetadataE if containerID, ok := attrs.Get(conventions.AttributeContainerID); ok { entityIDs = append(entityIDs, types.NewEntityID(types.ContainerID, containerID.AsString())) } - if containerImageID, ok := attrs.Get(conventions.AttributeContainerImageID); ok { - splitImageID := strings.SplitN(containerImageID.AsString(), "@sha256:", 2) + if ociManifestDigest, ok := attrs.Get(conventions22.AttributeOciManifestDigest); ok { + splitImageID := strings.SplitN(ociManifestDigest.AsString(), "@sha256:", 2) if len(splitImageID) == 2 { entityIDs = append(entityIDs, types.NewEntityID(types.ContainerImageMetadata, fmt.Sprintf("sha256:%v", splitImageID[1]))) } diff --git a/comp/otelcol/otlp/components/processor/infraattributesprocessor/metrics_test.go b/comp/otelcol/otlp/components/processor/infraattributesprocessor/metrics_test.go index 3117d8e74e1cf..fad3b1f3b4fc6 100644 --- a/comp/otelcol/otlp/components/processor/infraattributesprocessor/metrics_test.go +++ b/comp/otelcol/otlp/components/processor/infraattributesprocessor/metrics_test.go @@ -15,6 +15,7 @@ import ( "go.opentelemetry.io/collector/pdata/pmetric" "go.opentelemetry.io/collector/processor/processortest" conventions "go.opentelemetry.io/collector/semconv/v1.21.0" + conventions22 "go.opentelemetry.io/collector/semconv/v1.22.0" "github.com/DataDog/datadog-agent/comp/core/tagger/types" ) @@ -185,11 +186,11 @@ func TestEntityIDsFromAttributes(t *testing.T) { entityIDs: []string{"container_id://container_id_goes_here", "kubernetes_pod_uid://k8s_pod_uid_goes_here"}, }, { - name: "container image ID", + name: "image digest", attrs: func() pcommon.Map { attributes := pcommon.NewMap() attributes.FromRaw(map[string]interface{}{ - conventions.AttributeContainerImageID: "docker.io/foo@sha256:sha_goes_here", + conventions22.AttributeOciManifestDigest: "docker.io/foo@sha256:sha_goes_here", }) return attributes }(), From eb3d71d355397d56ca8c9d4d28d528540aca288e Mon Sep 17 00:00:00 2001 From: Len Gamburg <98782554+iglendd@users.noreply.github.com> Date: Wed, 27 Nov 2024 12:52:41 -0500 Subject: [PATCH 104/439] Adjust Prom metric monotonic values to Datadog-style metric non-monotonic values (#31463) --- .../agenttelemetry/impl/agenttelemetry.go | 128 +++++- .../impl/agenttelemetry_test.go | 391 +++++++++++++++++- comp/core/agenttelemetry/impl/sender.go | 12 +- ...etry-prom2dd-counter-5cde7684d71e8a6d.yaml | 13 + 4 files changed, 520 insertions(+), 24 deletions(-) create mode 100644 releasenotes/notes/agent-telemetry-prom2dd-counter-5cde7684d71e8a6d.yaml diff --git a/comp/core/agenttelemetry/impl/agenttelemetry.go b/comp/core/agenttelemetry/impl/agenttelemetry.go index de05da82a5b79..2b54f2b1eb5c7 100644 --- a/comp/core/agenttelemetry/impl/agenttelemetry.go +++ b/comp/core/agenttelemetry/impl/agenttelemetry.go @@ -7,12 +7,15 @@ package agenttelemetryimpl import ( + "bytes" "context" "encoding/json" "errors" "fmt" "net/http" "strconv" + "strings" + "sync" "golang.org/x/exp/maps" @@ -40,6 +43,10 @@ type atel struct { cancelCtx context.Context cancel context.CancelFunc + + prevPromMetricCounterValues map[string]float64 + prevPromMetricHistogramValues map[string]uint64 + prevPromMetricValuesMU sync.Mutex } // Requires defines the dependencies for the agenttelemetry component @@ -128,6 +135,9 @@ func createAtel( sender: sender, runner: runner, atelCfg: atelCfg, + + prevPromMetricCounterValues: make(map[string]float64), + prevPromMetricHistogramValues: make(map[string]uint64), } } @@ -189,8 +199,8 @@ func (a *atel) aggregateMetricTags(mCfg *MetricConfig, mt dto.MetricType, ms []* tagsKey := "" // if tags are defined, we need to create a key from them by dropping not specified - // in configuration tags. The key is constructed by conatenating specified tag names and values - // if the a timeseries has tags is not specified in + // in configuration tags. The key is constructed by concatenating specified tag names + // and values if a timeseries has tags is not specified origTags := m.GetLabel() if len(origTags) > 0 { // sort tags (to have a consistent key for the same tag set) @@ -245,6 +255,102 @@ func (a *atel) aggregateMetricTags(mCfg *MetricConfig, mt dto.MetricType, ms []* return maps.Values(amMap) } +func buildKeysForMetricsPreviousValues(mt dto.MetricType, metricName string, metrics []*dto.Metric) []string { + keyNames := make([]string, 0, len(metrics)) + for _, m := range metrics { + var keyName string + tags := m.GetLabel() + if len(tags) == 0 { + // start with the metric name + keyName = metricName + } else { + // Sort tags to stability of the key + sortedTags := cloneLabelsSorted(tags) + var builder strings.Builder + + // start with the metric name plus the tags + builder.WriteString(metricName) + for _, tag := range sortedTags { + builder.WriteString(makeLabelPairKey(tag)) + } + keyName = builder.String() + } + + if mt == dto.MetricType_HISTOGRAM { + // add bucket names to the key + for _, bucket := range m.Histogram.GetBucket() { + keyNames = append(keyNames, fmt.Sprintf("%v:%v", keyName, bucket.GetUpperBound())) + } + } else { + keyNames = append(keyNames, keyName) + } + } + + return keyNames +} + +func convertPromHistogramsToDatadogHistogramsValues(metrics []*dto.Metric, prevPromMetricValues map[string]uint64, keyNames []string) { + if len(metrics) > 0 { + bucketCount := len(metrics[0].Histogram.GetBucket()) + for i, m := range metrics { + // First, deduct the previous cumulative count from the current one + for j, b := range m.Histogram.GetBucket() { + key := keyNames[(i*bucketCount)+j] + curValue := b.GetCumulativeCount() + + // Adjust the counter value if found + if prevValue, ok := prevPromMetricValues[key]; ok { + *b.CumulativeCount -= prevValue + } + + // Upsert the cache of previous counter values + prevPromMetricValues[key] = curValue + } + + // Then, de-cumulate next bucket value from the previous bucket values + var prevValue uint64 + for _, b := range m.Histogram.GetBucket() { + curValue := b.GetCumulativeCount() + *b.CumulativeCount -= prevValue + prevValue = curValue + } + } + } +} + +func convertPromCountersToDatadogCountersValues(metrics []*dto.Metric, prevPromMetricValues map[string]float64, keyNames []string) { + for i, m := range metrics { + key := keyNames[i] + curValue := m.GetCounter().GetValue() + + // Adjust the counter value if found + if prevValue, ok := prevPromMetricValues[key]; ok { + *m.GetCounter().Value -= prevValue + } + + // Upsert the cache of previous counter values + prevPromMetricValues[key] = curValue + } +} + +// Convert ... +// 1. Prom Counters from monotonic to non-monotonic by resetting the counter during this call +// 2. Prom Histograms buckets counters from monotonic to non-monotonic by resetting the counter during this call +func (a *atel) convertPromMetricToDatadogMetricsValues(mt dto.MetricType, metricName string, metrics []*dto.Metric) { + if len(metrics) > 0 && (mt == dto.MetricType_COUNTER || mt == dto.MetricType_HISTOGRAM) { + // Build the keys for the metrics (or buckets) to cache their previous values + keyNames := buildKeysForMetricsPreviousValues(mt, metricName, metrics) + + a.prevPromMetricValuesMU.Lock() + defer a.prevPromMetricValuesMU.Unlock() + if mt == dto.MetricType_HISTOGRAM { + convertPromHistogramsToDatadogHistogramsValues(metrics, a.prevPromMetricHistogramValues, keyNames) + } else { + convertPromCountersToDatadogCountersValues(metrics, a.prevPromMetricCounterValues, keyNames) + } + } +} + func isMetricFiltered(p *Profile, mCfg *MetricConfig, mt dto.MetricType, m *dto.Metric) bool { // filter out zero values if specified in the profile if p.excludeZeroMetric && isZeroValueMetric(mt, m) { @@ -288,13 +394,17 @@ func (a *atel) transformMetricFamily(p *Profile, mfam *dto.MetricFamily) *agentm } } - amt := a.aggregateMetricTags(mCfg, mt, fm) - // nothing to report if len(fm) == 0 { return nil } + // Aggregate the metric tags + amt := a.aggregateMetricTags(mCfg, mt, fm) + + // Convert Prom Metrics values to the corresponding Datadog metrics style values + a.convertPromMetricToDatadogMetricsValues(mt, mCfg.Name, amt) + return &agentmetric{ name: mCfg.Name, metrics: amt, @@ -392,12 +502,18 @@ func (a *atel) GetAsJSON() ([]byte, error) { return nil, fmt.Errorf("unable to marshal agent telemetry payload: %w", err) } - jsonPayloadScrubbed, err := scrubber.ScrubJSONString(string(jsonPayload)) + jsonPayloadScrubbed, err := scrubber.ScrubJSON(jsonPayload) if err != nil { return nil, fmt.Errorf("unable to scrub agent telemetry payload: %w", err) } - return []byte(jsonPayloadScrubbed), nil + var prettyPayload bytes.Buffer + err = json.Indent(&prettyPayload, jsonPayloadScrubbed, "", "\t") + if err != nil { + return nil, fmt.Errorf("unable to pretified agent telemetry payload: %w", err) + } + + return prettyPayload.Bytes(), nil } // start is called by FX when the application starts. diff --git a/comp/core/agenttelemetry/impl/agenttelemetry_test.go b/comp/core/agenttelemetry/impl/agenttelemetry_test.go index 7cd659a2a45f1..f0524cae80129 100644 --- a/comp/core/agenttelemetry/impl/agenttelemetry_test.go +++ b/comp/core/agenttelemetry/impl/agenttelemetry_test.go @@ -265,6 +265,35 @@ func (p *Payload) UnmarshalJSON(b []byte) (err error) { return fmt.Errorf("request_type should be either agent-metrics or message-batch") } +func getPayload(a *atel) (*Payload, error) { + payloadJSON, err := a.GetAsJSON() + if err != nil { + return nil, err + } + + var payload Payload + err = json.Unmarshal(payloadJSON, &payload) + return &payload, err +} + +func getPayloadMetric(a *atel, metricName string) (*MetricPayload, bool) { + payload, err := getPayload(a) + if err != nil { + return nil, false + } + metrics := payload.Payload.(AgentMetricsPayload).Metrics + if metricItf, ok := metrics[metricName]; ok { + metric := metricItf.(MetricPayload) + return &metric, true + } + + return nil, false +} + +// Validate the payload + +// metric, ok := metrics["foo.bar"] + // ------------------------------ // Tests @@ -613,10 +642,7 @@ func TestTwoProfilesOnTheSameScheduleGenerateSinglePayload(t *testing.T) { require.True(t, a.enabled) // Get payload - payloadJSON, err := a.GetAsJSON() - assert.NoError(t, err) - var payload Payload - err = json.Unmarshal(payloadJSON, &payload) + payload, err := getPayload(a) require.NoError(t, err) // ----------------------- @@ -653,7 +679,7 @@ func TestOneProfileWithOneMetricMultipleContextsGenerateTwoPayloads(t *testing.T require.True(t, a.enabled) payloadJSON, err := a.GetAsJSON() - assert.NoError(t, err) + require.NoError(t, err) var payload map[string]interface{} err = json.Unmarshal(payloadJSON, &payload) require.NoError(t, err) @@ -729,10 +755,7 @@ func TestOneProfileWithTwoMetricGenerateSinglePayloads(t *testing.T) { require.True(t, a.enabled) // Get payload - payloadJSON, err := a.GetAsJSON() - assert.NoError(t, err) - var payload Payload - err = json.Unmarshal(payloadJSON, &payload) + payload, err := getPayload(a) require.NoError(t, err) // ----------------------- @@ -915,10 +938,7 @@ func TestGetAsJSONScrub(t *testing.T) { require.True(t, a.enabled) // Get payload - payloadJSON, err := a.GetAsJSON() - assert.NoError(t, err) - var payload Payload - err = json.Unmarshal(payloadJSON, &payload) + payload, err := getPayload(a) require.NoError(t, err) // Check the scrubbing @@ -934,3 +954,348 @@ func TestGetAsJSONScrub(t *testing.T) { require.True(t, ok) assert.Equal(t, "test", metric.(MetricPayload).Tags["text"]) } + +func TestAdjustPrometheusCounterValue(t *testing.T) { + var c = ` + agent_telemetry: + enabled: true + profiles: + - name: xxx + metric: + metrics: + - name: foo.bar + aggregate_tags: + - tag1 + - tag2 + - name: foo.cat + aggregate_tags: + - tag + - name: zoo.bar + aggregate_tags: + - tag1 + - tag2 + - name: zoo.cat + ` + + // setup and initiate atel + tel := makeTelMock(t) + o := convertYamlStrToMap(t, c) + s := makeSenderImpl(t, c) + r := newRunnerMock() + a := getTestAtel(t, tel, o, s, nil, r) + require.True(t, a.enabled) + + // setup metrics using few family names, metric names and tag- and tag-less counters + // to test various scenarios + counter1 := tel.NewCounter("foo", "bar", []string{"tag1", "tag2"}, "") + counter2 := tel.NewCounter("foo", "cat", []string{"tag"}, "") + counter3 := tel.NewCounter("zoo", "bar", []string{"tag1", "tag2"}, "") + counter4 := tel.NewCounter("zoo", "cat", nil, "") + + // First addition (expected values should be the same as the added values) + counter1.AddWithTags(1, map[string]string{"tag1": "tag1val", "tag2": "tag2val"}) + counter2.AddWithTags(2, map[string]string{"tag": "tagval"}) + counter3.AddWithTags(3, map[string]string{"tag1": "tag1val", "tag2": "tag2val"}) + counter4.Add(4) + payload1, err1 := getPayload(a) + require.NoError(t, err1) + metrics1 := payload1.Payload.(AgentMetricsPayload).Metrics + expecVals1 := map[string]float64{ + "foo.bar": 1.0, + "foo.cat": 2.0, + "zoo.bar": 3.0, + "zoo.cat": 4.0, + } + for ek, ev := range expecVals1 { + v, ok := metrics1[ek] + require.True(t, ok) + assert.Equal(t, ev, v.(MetricPayload).Value) + } + + // Second addition (expected values should be the same as the added values) + counter1.AddWithTags(10, map[string]string{"tag1": "tag1val", "tag2": "tag2val"}) + counter2.AddWithTags(20, map[string]string{"tag": "tagval"}) + counter3.AddWithTags(30, map[string]string{"tag1": "tag1val", "tag2": "tag2val"}) + counter4.Add(40) + payload2, err2 := getPayload(a) + require.NoError(t, err2) + metrics2 := payload2.Payload.(AgentMetricsPayload).Metrics + expecVals2 := map[string]float64{ + "foo.bar": 10.0, + "foo.cat": 20.0, + "zoo.bar": 30.0, + "zoo.cat": 40.0, + } + for ek, ev := range expecVals2 { + v, ok := metrics2[ek] + require.True(t, ok) + assert.Equal(t, ev, v.(MetricPayload).Value) + } + + // Third and fourth addition (expected values should be the sum of 3rd and 4th values) + counter1.AddWithTags(100, map[string]string{"tag1": "tag1val", "tag2": "tag2val"}) + counter2.AddWithTags(200, map[string]string{"tag": "tagval"}) + counter3.AddWithTags(300, map[string]string{"tag1": "tag1val", "tag2": "tag2val"}) + counter4.Add(400) + counter1.AddWithTags(1000, map[string]string{"tag1": "tag1val", "tag2": "tag2val"}) + counter2.AddWithTags(2000, map[string]string{"tag": "tagval"}) + counter3.AddWithTags(3000, map[string]string{"tag1": "tag1val", "tag2": "tag2val"}) + counter4.Add(4000) + payload34, err34 := getPayload(a) + require.NoError(t, err34) + metrics34 := payload34.Payload.(AgentMetricsPayload).Metrics + expecVals34 := map[string]float64{ + "foo.bar": 1100.0, + "foo.cat": 2200.0, + "zoo.bar": 3300.0, + "zoo.cat": 4400.0, + } + for ek, ev := range expecVals34 { + v, ok := metrics34[ek] + require.True(t, ok) + assert.Equal(t, ev, v.(MetricPayload).Value) + } + + // No addition (expected values should be zero) + payload5, err5 := getPayload(a) + require.NoError(t, err5) + metrics5 := payload5.Payload.(AgentMetricsPayload).Metrics + expecVals5 := map[string]float64{ + "foo.bar": 0.0, + "foo.cat": 0.0, + "zoo.bar": 0.0, + "zoo.cat": 0.0, + } + for ek, ev := range expecVals5 { + v, ok := metrics5[ek] + require.True(t, ok) + assert.Equal(t, ev, v.(MetricPayload).Value) + } +} + +func TestHistogramFloatUpperBoundNormalization(t *testing.T) { + var c = ` + agent_telemetry: + enabled: true + profiles: + - name: xxx + metric: + metrics: + - name: foo.bar + ` + + // setup and initiate atel + tel := makeTelMock(t) + o := convertYamlStrToMap(t, c) + s := makeSenderImpl(t, c) + r := newRunnerMock() + a := getTestAtel(t, tel, o, s, nil, r) + require.True(t, a.enabled) + + // setup and initiate atel + hist := tel.NewHistogram("foo", "bar", nil, "", []float64{1, 2, 5, 100}) + // bucket 0 - 5 + hist.Observe(1) + hist.Observe(1) + hist.Observe(1) + hist.Observe(1) + hist.Observe(1) + // bucket 1 - 0 + // .. + // bucket 2 - 3 + hist.Observe(5) + hist.Observe(5) + hist.Observe(5) + // bucket 4 - 6 + hist.Observe(6) + hist.Observe(100) + hist.Observe(100) + hist.Observe(100) + hist.Observe(100) + hist.Observe(100) + + // Test payload1 + metric1, ok := getPayloadMetric(a, "foo.bar") + require.True(t, ok) + require.True(t, len(metric1.Buckets) > 0) + expecVals1 := map[string]uint64{ + "1": 5, + "2": 0, + "5": 3, + "100": 6, + } + for k, b := range metric1.Buckets { + assert.Equal(t, expecVals1[k], b) + } + + // Test payload2 (no new observations, everything is reset) + metric2, ok := getPayloadMetric(a, "foo.bar") + require.True(t, ok) + require.True(t, len(metric2.Buckets) > 0) + expecVals2 := map[string]uint64{ + "1": 0, + "2": 0, + "5": 0, + "100": 0, + } + for k, b := range metric2.Buckets { + assert.Equal(t, expecVals2[k], b) + } + + // Repeat the same observation with the same results) + // bucket 0 - 5 + hist.Observe(1) + hist.Observe(1) + hist.Observe(1) + hist.Observe(1) + hist.Observe(1) + // bucket 1 - 0 + // .. + // bucket 2 - 3 + hist.Observe(5) + hist.Observe(5) + hist.Observe(5) + // bucket 4 - 6 + hist.Observe(6) + hist.Observe(100) + hist.Observe(100) + hist.Observe(100) + hist.Observe(100) + hist.Observe(100) + // Test payload3 + metric3, ok := getPayloadMetric(a, "foo.bar") + require.True(t, ok) + require.True(t, len(metric3.Buckets) > 0) + expecVals3 := map[string]uint64{ + "1": 5, + "2": 0, + "5": 3, + "100": 6, + } + for k, b := range metric3.Buckets { + assert.Equal(t, expecVals3[k], b) + } + + // Test raw buckets, they should be still accumulated + rawHist := hist.WithTags(nil) + expecVals4 := []uint64{10, 10, 16, 28} + for i, b := range rawHist.Get().Buckets { + assert.Equal(t, expecVals4[i], b.Count) + } +} + +// The same as above but with tags (to make sure that indexing with tags works) +func TestHistogramFloatUpperBoundNormalizationWithTags(t *testing.T) { + var c = ` + agent_telemetry: + enabled: true + profiles: + - name: xxx + metric: + metrics: + - name: foo.bar + aggregate_tags: + - tag1 + - tag2 + ` + + // setup and initiate atel + tel := makeTelMock(t) + o := convertYamlStrToMap(t, c) + s := makeSenderImpl(t, c) + r := newRunnerMock() + a := getTestAtel(t, tel, o, s, nil, r) + require.True(t, a.enabled) + + // setup and initiate atel + hist := tel.NewHistogram("foo", "bar", []string{"tag1", "tag2"}, "", []float64{1, 2, 5, 100}) + // bucket 0 - 5 + hist.Observe(1, "val1", "val2") + hist.Observe(1, "val1", "val2") + hist.Observe(1, "val1", "val2") + hist.Observe(1, "val1", "val2") + hist.Observe(1, "val1", "val2") + // bucket 1 - 0 + // .. + // bucket 2 - 3 + hist.Observe(5, "val1", "val2") + hist.Observe(5, "val1", "val2") + hist.Observe(5, "val1", "val2") + // bucket 4 - 6 + hist.Observe(6, "val1", "val2") + hist.Observe(100, "val1", "val2") + hist.Observe(100, "val1", "val2") + hist.Observe(100, "val1", "val2") + hist.Observe(100, "val1", "val2") + hist.Observe(100, "val1", "val2") + + // Test payload1 + metric1, ok := getPayloadMetric(a, "foo.bar") + require.True(t, ok) + require.True(t, len(metric1.Buckets) > 0) + expecVals1 := map[string]uint64{ + "1": 5, + "2": 0, + "5": 3, + "100": 6, + } + for k, b := range metric1.Buckets { + assert.Equal(t, expecVals1[k], b) + } + + // Test payload2 (no new observations, everything is reset) + metric2, ok := getPayloadMetric(a, "foo.bar") + require.True(t, ok) + require.True(t, len(metric2.Buckets) > 0) + expecVals2 := map[string]uint64{ + "1": 0, + "2": 0, + "5": 0, + "100": 0, + } + for k, b := range metric2.Buckets { + assert.Equal(t, expecVals2[k], b) + } + + // Repeat the same observation with the same results) + // bucket 0 - 5 + hist.Observe(1, "val1", "val2") + hist.Observe(1, "val1", "val2") + hist.Observe(1, "val1", "val2") + hist.Observe(1, "val1", "val2") + hist.Observe(1, "val1", "val2") + // bucket 1 - 0 + // .. + // bucket 2 - 3 + hist.Observe(5, "val1", "val2") + hist.Observe(5, "val1", "val2") + hist.Observe(5, "val1", "val2") + // bucket 4 - 6 + hist.Observe(6, "val1", "val2") + hist.Observe(100, "val1", "val2") + hist.Observe(100, "val1", "val2") + hist.Observe(100, "val1", "val2") + hist.Observe(100, "val1", "val2") + hist.Observe(100, "val1", "val2") + // Test payload3 + metric3, ok := getPayloadMetric(a, "foo.bar") + require.True(t, ok) + require.True(t, len(metric3.Buckets) > 0) + expecVals3 := map[string]uint64{ + "1": 5, + "2": 0, + "5": 3, + "100": 6, + } + for k, b := range metric3.Buckets { + assert.Equal(t, expecVals3[k], b) + } + + // Test raw buckets, they should be still accumulated + tags := map[string]string{"tag1": "val1", "tag2": "val2"} + rawHist := hist.WithTags(tags) + expecVals4 := []uint64{10, 10, 16, 28} + for i, b := range rawHist.Get().Buckets { + assert.Equal(t, expecVals4[i], b.Count) + } +} diff --git a/comp/core/agenttelemetry/impl/sender.go b/comp/core/agenttelemetry/impl/sender.go index d715863f862e4..585807eb6a539 100644 --- a/comp/core/agenttelemetry/impl/sender.go +++ b/comp/core/agenttelemetry/impl/sender.go @@ -14,6 +14,7 @@ import ( "net/http" "net/url" "strconv" + "strings" "time" dto "github.com/prometheus/client_model/go" @@ -131,7 +132,7 @@ type MetricPayload struct { Value float64 `json:"value"` Type string `json:"type"` Tags map[string]interface{} `json:"tags,omitempty"` - Buckets map[string]interface{} `json:"buckets,omitempty"` + Buckets map[string]uint64 `json:"buckets,omitempty"` } func httpClientFactory(cfg config.Reader, timeout time.Duration) func() *http.Client { @@ -240,17 +241,18 @@ func (s *senderImpl) addMetricPayload( metricType := metricFamily.GetType() switch metricType { case dto.MetricType_COUNTER: - payload.Type = "monotonic" + payload.Type = "counter" payload.Value = metric.GetCounter().GetValue() case dto.MetricType_GAUGE: payload.Type = "gauge" payload.Value = metric.GetGauge().GetValue() case dto.MetricType_HISTOGRAM: payload.Type = "histogram" - payload.Buckets = make(map[string]interface{}, 0) + payload.Buckets = make(map[string]uint64, 0) histogram := metric.GetHistogram() for _, bucket := range histogram.GetBucket() { - boundName := fmt.Sprintf("upperbound_%v", bucket.GetUpperBound()) + boundNameRaw := fmt.Sprintf("%v", bucket.GetUpperBound()) + boundName := strings.ReplaceAll(boundNameRaw, ".", "_") payload.Buckets[boundName] = bucket.GetCumulativeCount() } } @@ -319,7 +321,7 @@ func (s *senderImpl) flushSession(ss *senderSession) error { return fmt.Errorf("failed to marshal agent telemetry payload: %w", err) } - reqBody, err := scrubber.ScrubBytes(payloadJSON) + reqBody, err := scrubber.ScrubJSON(payloadJSON) if err != nil { return fmt.Errorf("failed to scrubl agent telemetry payload: %w", err) } diff --git a/releasenotes/notes/agent-telemetry-prom2dd-counter-5cde7684d71e8a6d.yaml b/releasenotes/notes/agent-telemetry-prom2dd-counter-5cde7684d71e8a6d.yaml new file mode 100644 index 0000000000000..1bf82635af8b0 --- /dev/null +++ b/releasenotes/notes/agent-telemetry-prom2dd-counter-5cde7684d71e8a6d.yaml @@ -0,0 +1,13 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +enhancements: + - | + Convert Prometheus style Counters and Histograms used in Agent telemetry + from monotonically increasing to non-monotonic values (reset on each scrape). + In addition de-accumulate Prometheus Histogram bucket values on each scrape. From fbc319c48534615abdba0d46dd38322e4c786127 Mon Sep 17 00:00:00 2001 From: Guillaume Barrier <77887537+Guillaume-Barrier@users.noreply.github.com> Date: Wed, 27 Nov 2024 19:21:29 +0100 Subject: [PATCH 105/439] Add infra agent config option (#30137) Co-authored-by: GianlucaBortoli Co-authored-by: carlosroman --- cmd/serverless/main.go | 2 +- comp/trace/config/setup.go | 2 +- pkg/config/setup/config.go | 17 ++++++- pkg/config/setup/config_test.go | 23 +++++++++ pkg/config/utils/miscellaneous.go | 26 ++++++++++ pkg/config/utils/miscellaneous_test.go | 66 ++++++++++++++++++++++++++ 6 files changed, 133 insertions(+), 3 deletions(-) create mode 100644 pkg/config/utils/miscellaneous_test.go diff --git a/cmd/serverless/main.go b/cmd/serverless/main.go index 4ac960ed6a32e..77f46c01fded4 100644 --- a/cmd/serverless/main.go +++ b/cmd/serverless/main.go @@ -345,7 +345,7 @@ func startOtlpAgent(wg *sync.WaitGroup, metricAgent *metrics.ServerlessMetricAge func startTraceAgent(wg *sync.WaitGroup, lambdaSpanChan chan *pb.Span, coldStartSpanId uint64, serverlessDaemon *daemon.Daemon, tagger tagger.Component, rcService *remoteconfig.CoreAgentService) { defer wg.Done() traceAgent := trace.StartServerlessTraceAgent(trace.StartServerlessTraceAgentArgs{ - Enabled: pkgconfigsetup.Datadog().GetBool("apm_config.enabled"), + Enabled: configUtils.IsAPMEnabled(pkgconfigsetup.Datadog()), LoadConfig: &trace.LoadConfig{Path: datadogConfigPath, Tagger: tagger}, LambdaSpanChan: lambdaSpanChan, ColdStartSpanID: coldStartSpanId, diff --git a/comp/trace/config/setup.go b/comp/trace/config/setup.go index 70b0b3ac6355a..c095990736ceb 100644 --- a/comp/trace/config/setup.go +++ b/comp/trace/config/setup.go @@ -194,7 +194,7 @@ func applyDatadogConfig(c *config.AgentConfig, core corecompcfg.Component) error c.SkipSSLValidation = core.GetBool("skip_ssl_validation") } if core.IsSet("apm_config.enabled") { - c.Enabled = core.GetBool("apm_config.enabled") + c.Enabled = utils.IsAPMEnabled(core) } if pkgconfigsetup.Datadog().IsSet("apm_config.log_file") { c.LogFilePath = pkgconfigsetup.Datadog().GetString("apm_config.log_file") diff --git a/pkg/config/setup/config.go b/pkg/config/setup/config.go index cb222ce628e73..53327bb3f2908 100644 --- a/pkg/config/setup/config.go +++ b/pkg/config/setup/config.go @@ -1122,6 +1122,10 @@ func agent(config pkgconfigmodel.Setup) { config.SetKnown("proxy.http") config.SetKnown("proxy.https") config.SetKnown("proxy.no_proxy") + + // Core agent (disabled for Error Tracking Standalone, Logs Collection Only) + config.BindEnvAndSetDefault("core_agent.enabled", true) + pkgconfigmodel.AddOverrideFunc(toggleDefaultPayloads) } func fleet(config pkgconfigmodel.Setup) { @@ -2385,6 +2389,17 @@ func sanitizeExternalMetricsProviderChunkSize(config pkgconfigmodel.Config) { } } +func toggleDefaultPayloads(config pkgconfigmodel.Config) { + // Disables metric data submission (including Custom Metrics) so that hosts stop showing up in Datadog. + // Used namely for Error Tracking Standalone where it is not needed. + if !config.GetBool("core_agent.enabled") { + config.Set("enable_payloads.events", false, pkgconfigmodel.SourceAgentRuntime) + config.Set("enable_payloads.series", false, pkgconfigmodel.SourceAgentRuntime) + config.Set("enable_payloads.service_checks", false, pkgconfigmodel.SourceAgentRuntime) + config.Set("enable_payloads.sketches", false, pkgconfigmodel.SourceAgentRuntime) + } +} + func bindEnvAndSetLogsConfigKeys(config pkgconfigmodel.Setup, prefix string) { config.BindEnv(prefix + "logs_dd_url") // Send the logs to a proxy. Must respect format ':' and '' to be an integer config.BindEnv(prefix + "dd_url") @@ -2596,7 +2611,7 @@ func GetRemoteConfigurationAllowedIntegrations(cfg pkgconfigmodel.Reader) map[st return allowMap } -// IsAgentTelemetryEnabled returns true if Agent Telemetry ise enabled +// IsAgentTelemetryEnabled returns true if Agent Telemetry is enabled func IsAgentTelemetryEnabled(cfg pkgconfigmodel.Reader) bool { // Disable Agent Telemetry for GovCloud if cfg.GetBool("fips.enabled") || cfg.GetString("site") == "ddog-gov.com" { diff --git a/pkg/config/setup/config_test.go b/pkg/config/setup/config_test.go index a6250a7156220..1421770758180 100644 --- a/pkg/config/setup/config_test.go +++ b/pkg/config/setup/config_test.go @@ -1423,6 +1423,29 @@ func TestServerlessConfigInit(t *testing.T) { assert.False(t, conf.IsKnown("inventories_enabled")) } +func TestDisableCoreAgent(t *testing.T) { + pkgconfigmodel.CleanOverride(t) + conf := pkgconfigmodel.NewConfig("datadog", "DD", strings.NewReplacer(".", "_")) // nolint: forbidigo // legit use case + pkgconfigmodel.AddOverrideFunc(toggleDefaultPayloads) + + InitConfig(conf) + assert.True(t, conf.GetBool("core_agent.enabled")) + pkgconfigmodel.ApplyOverrideFuncs(conf) + // ensure events default payloads are enabled + assert.True(t, conf.GetBool("enable_payloads.events")) + assert.True(t, conf.GetBool("enable_payloads.series")) + assert.True(t, conf.GetBool("enable_payloads.service_checks")) + assert.True(t, conf.GetBool("enable_payloads.sketches")) + + conf.BindEnvAndSetDefault("core_agent.enabled", false) + pkgconfigmodel.ApplyOverrideFuncs(conf) + // ensure events default payloads are disabled + assert.False(t, conf.GetBool("enable_payloads.events")) + assert.False(t, conf.GetBool("enable_payloads.series")) + assert.False(t, conf.GetBool("enable_payloads.service_checks")) + assert.False(t, conf.GetBool("enable_payloads.sketches")) +} + func TestAgentConfigInit(t *testing.T) { conf := newTestConf() diff --git a/pkg/config/utils/miscellaneous.go b/pkg/config/utils/miscellaneous.go index 18f87b9ade392..faf3572d318d3 100644 --- a/pkg/config/utils/miscellaneous.go +++ b/pkg/config/utils/miscellaneous.go @@ -31,3 +31,29 @@ func SetLogLevel(level string, config pkgconfigmodel.Writer, source pkgconfigmod config.Set("log_level", seelogLogLevel, source) return nil } + +// IsCoreAgentEnabled checks if the Agent is able to send the payloads it and other Agents need to function with +func IsCoreAgentEnabled(cfg pkgconfigmodel.Reader) bool { + if !cfg.GetBool("core_agent.enabled") { + return false + } + + // core_agent.enabled can be true but the following payloads if set to false means + // core_agent is disabled + if !cfg.GetBool("enable_payloads.events") && + !cfg.GetBool("enable_payloads.series") && + !cfg.GetBool("enable_payloads.service_checks") && + !cfg.GetBool("enable_payloads.sketches") { + return false + } + + return true +} + +// IsAPMEnabled checks if APM is enabled or if Error Tracking standalone is enabled, simplifying the setup for +// Error Tracking standalone only via the apm_config.error_tracking_standalone.enabled option instead of requiring +// to enable also apm_config.enabled. +func IsAPMEnabled(cfg pkgconfigmodel.Reader) bool { + return (cfg.GetBool("apm_config.enabled") && IsCoreAgentEnabled(cfg)) || + cfg.GetBool("apm_config.error_tracking_standalone.enabled") +} diff --git a/pkg/config/utils/miscellaneous_test.go b/pkg/config/utils/miscellaneous_test.go new file mode 100644 index 0000000000000..96c65f5b33b9c --- /dev/null +++ b/pkg/config/utils/miscellaneous_test.go @@ -0,0 +1,66 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package utils + +import ( + "github.com/stretchr/testify/assert" + "testing" + + configmock "github.com/DataDog/datadog-agent/pkg/config/mock" + "github.com/DataDog/datadog-agent/pkg/config/model" +) + +func TestIsCoreAgentEnabled(t *testing.T) { + + tests := []struct { + name string + expected bool + setConfig func(m model.Config) + }{ + { + name: "core_agent.enabled false", + expected: false, + setConfig: func(m model.Config) { + m.SetWithoutSource("core_agent.enabled", false) + }, + }, + { + name: "All enable_payloads.enabled false", + expected: false, + setConfig: func(m model.Config) { + m.SetWithoutSource("enable_payloads.events", false) + m.SetWithoutSource("enable_payloads.series", false) + m.SetWithoutSource("enable_payloads.service_checks", false) + m.SetWithoutSource("enable_payloads.sketches", false) + }, + }, + { + name: "Some enable_payloads.enabled false", + expected: true, + setConfig: func(m model.Config) { + m.SetWithoutSource("enable_payloads.events", false) + m.SetWithoutSource("enable_payloads.series", true) + m.SetWithoutSource("enable_payloads.service_checks", false) + m.SetWithoutSource("enable_payloads.sketches", true) + }, + }, + { + name: "default values", + expected: true, + setConfig: func(_ model.Config) {}, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + mockConfig := configmock.New(t) + test.setConfig(mockConfig) + assert.Equal(t, + test.expected, IsCoreAgentEnabled(mockConfig), + "Was expecting IsCoreAgentEnabled to return", test.expected) + }) + } +} From fee9312f1464717720373327d65e8c6fb189dee4 Mon Sep 17 00:00:00 2001 From: Kylian Serrania Date: Wed, 27 Nov 2024 19:38:32 +0100 Subject: [PATCH 106/439] [pkg/networkpath] Skip Test_createRawTCPSyn and Test_createRawTCPSynBuffer on macOS (#31541) Short-term fix for #incident-32860 --- pkg/networkpath/traceroute/tcp/utils_test.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkg/networkpath/traceroute/tcp/utils_test.go b/pkg/networkpath/traceroute/tcp/utils_test.go index c0ca91420d2b3..4542020a73249 100644 --- a/pkg/networkpath/traceroute/tcp/utils_test.go +++ b/pkg/networkpath/traceroute/tcp/utils_test.go @@ -10,6 +10,7 @@ package tcp import ( "net" "reflect" + "runtime" "testing" "github.com/google/gopacket" @@ -28,6 +29,10 @@ var ( ) func Test_createRawTCPSyn(t *testing.T) { + if runtime.GOOS == "darwin" { + t.Skip("Test_createRawTCPSyn is broken on macOS") + } + srcIP := net.ParseIP("1.2.3.4") dstIP := net.ParseIP("5.6.7.8") srcPort := uint16(12345) @@ -58,6 +63,10 @@ func Test_createRawTCPSyn(t *testing.T) { } func Test_createRawTCPSynBuffer(t *testing.T) { + if runtime.GOOS == "darwin" { + t.Skip("Test_createRawTCPSyn is broken on macOS") + } + srcIP := net.ParseIP("1.2.3.4") dstIP := net.ParseIP("5.6.7.8") srcPort := uint16(12345) From 47ef78d29a9d12e506a743df460428f20ccf0354 Mon Sep 17 00:00:00 2001 From: Arthur Bellal Date: Wed, 27 Nov 2024 19:52:30 +0100 Subject: [PATCH 107/439] (fleet) adding a simple install script to the bootstrap (#30258) --- pkg/fleet/installer/setup.sh | 47 ++++++++++++++++++++++++++++++++ tasks/installer.py | 52 ++++++++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 pkg/fleet/installer/setup.sh diff --git a/pkg/fleet/installer/setup.sh b/pkg/fleet/installer/setup.sh new file mode 100644 index 0000000000000..a3dee1323ce00 --- /dev/null +++ b/pkg/fleet/installer/setup.sh @@ -0,0 +1,47 @@ +#!/bin/bash +set -e +# This script is used to install Datadog. + +if [ "$(uname -s)" != "Linux" ] || { [ "$(uname -m)" != "x86_64" ] && [ "$(uname -m)" != "aarch64" ]; }; then + echo "This installer only supports linux running on amd64 or arm64." >&2 + exit 1 +fi + +installer_path="/opt/datadog-installer-bootstrap" + +install() { + if [ "$UID" == "0" ]; then + sudo_cmd='' + else + sudo_cmd='sudo' + fi + + case "$(uname -m)" in + x86_64) + echo "${installer_bin_linux_amd64}" | base64 -d | $sudo_cmd tee "${installer_path}" >/dev/null + ;; + aarch64) + echo "${installer_bin_linux_arm64}" | base64 -d | $sudo_cmd tee "${installer_path}" >/dev/null + ;; + esac + $sudo_cmd chmod +x "${installer_path}" + echo "Running the installer binary..." + $sudo_cmd "${installer_path}" "$@" + $sudo_cmd rm -f "${installer_path}" +} + +# Embedded installer binaries. +# Source: https://github.com/DataDog/datadog-agent/tree/INSTALLER_COMMIT/cmd/installer +installer_bin_linux_amd64=$( + cat < Date: Wed, 27 Nov 2024 19:57:43 +0100 Subject: [PATCH 108/439] [Invoke] Feature: Add required checks using invoke instead of Github UI (#31243) --- tasks/github_tasks.py | 35 ++++++- tasks/libs/ciproviders/github_api.py | 133 ++++++++++++++++++++++++++- 2 files changed, 166 insertions(+), 2 deletions(-) diff --git a/tasks/github_tasks.py b/tasks/github_tasks.py index abe46fd6ff366..54a4aad6ab53c 100644 --- a/tasks/github_tasks.py +++ b/tasks/github_tasks.py @@ -18,7 +18,7 @@ print_workflow_conclusion, trigger_macos_workflow, ) -from tasks.libs.common.color import color_message +from tasks.libs.common.color import Color, color_message from tasks.libs.common.constants import DEFAULT_INTEGRATIONS_CORE_BRANCH from tasks.libs.common.datadog_api import create_gauge, send_event, send_metrics from tasks.libs.common.git import get_default_branch @@ -546,3 +546,36 @@ def agenttelemetry_list_change_ack_check(_, pr_id=-1): print( "'need-change/agenttelemetry-governance' label found on the PR: potential change to Agent Telemetry metrics is acknowledged and the governance instructions are followed." ) + + +@task +def get_required_checks(_, branch: str = "main"): + """ + For this task to work: + - A Personal Access Token (PAT) needs the "repo" permissions. + - A fine-grained token needs the "Administration" repository permissions (read). + """ + from tasks.libs.ciproviders.github_api import GithubAPI + + gh = GithubAPI() + required_checks = gh.get_branch_required_checks(branch) + print(required_checks) + + +@task(iterable=['check']) +def add_required_checks(_, branch: str, check: str, force: bool = False): + """ + For this task to work: + - A Personal Access Token (PAT) needs the "repo" permissions. + - A fine-grained token needs the "Administration" repository permissions (write). + + Use it like this: + inv github.add-required-checks --branch=main --check="dd-gitlab/lint_codeowners" --check="dd-gitlab/lint_components" + """ + from tasks.libs.ciproviders.github_api import GithubAPI + + if not check: + raise Exit(color_message("No check name provided, exiting", Color.RED), code=1) + + gh = GithubAPI() + gh.add_branch_required_check(branch, check, force) diff --git a/tasks/libs/ciproviders/github_api.py b/tasks/libs/ciproviders/github_api.py index f8ed33e3a3252..4d1b3e6a6319b 100644 --- a/tasks/libs/ciproviders/github_api.py +++ b/tasks/libs/ciproviders/github_api.py @@ -11,9 +11,10 @@ import requests -from tasks.libs.common.color import color_message +from tasks.libs.common.color import Color, color_message from tasks.libs.common.constants import GITHUB_REPO_NAME from tasks.libs.common.git import get_default_branch +from tasks.libs.common.user_interactions import yes_no_question try: import semver @@ -90,6 +91,136 @@ def get_milestone_by_name(self, milestone_name): return milestone return None + def get_branch_protection(self, branch_name: str): + """ + Get the protection of a given branch + """ + branch = self.get_branch(branch_name) + if not branch: + raise Exit(color_message(f"Branch {branch_name} not found", Color.RED), code=1) + elif not branch.protected: + raise Exit(color_message(f"Branch {branch_name} doesn't have protection", Color.RED), code=1) + try: + protection = branch.get_protection() + except GithubException as e: + if e.status == 403: + error_msg = f"""Can't access {branch_name} branch protection, probably due to missing permissions. You need either: + - A Personal Access Token (PAT) needs the "repo" permissions. + - Or a fine-grained token needs the "Administration" repository permissions. +""" + raise PermissionError(error_msg) from e + raise + return protection + + def protection_to_payload(self, protection_raw_data: dict) -> dict: + """ + Convert the protection object to a payload. + See https://docs.github.com/en/rest/branches/branch-protection?apiVersion=2022-11-28#update-branch-protection + + The following seems to be defined at the Org scale, so we're not resending them here: + - required_pull_request_reviews > dismissal_restrictions + - required_pull_request_reviews > bypass_pull_request_allowances + """ + prot = protection_raw_data + return { + "required_status_checks": { + "strict": prot["required_status_checks"]["strict"], + "checks": [ + {"context": check["context"], "app_id": -1 if check["app_id"] is None else check["app_id"]} + for check in prot["required_status_checks"]["checks"] + ], + }, + "enforce_admins": prot["enforce_admins"]["enabled"], + "required_pull_request_reviews": { + "dismiss_stale_reviews": prot["required_pull_request_reviews"]["dismiss_stale_reviews"], + "require_code_owner_reviews": prot["required_pull_request_reviews"]["require_code_owner_reviews"], + "required_approving_review_count": prot["required_pull_request_reviews"][ + "required_approving_review_count" + ], + "require_last_push_approval": prot["required_pull_request_reviews"]["require_last_push_approval"], + }, + "restrictions": { + "users": prot["restrictions"]["users"], + "teams": prot["restrictions"]["teams"], + "apps": [app["slug"] for app in prot["restrictions"]["apps"]], + }, + "required_linear_history": prot["required_linear_history"]["enabled"], + "allow_force_pushes": prot["allow_force_pushes"]["enabled"], + "allow_deletions": prot["allow_deletions"]["enabled"], + "block_creations": prot["block_creations"]["enabled"], + "required_conversation_resolution": prot["required_conversation_resolution"]["enabled"], + "lock_branch": prot["lock_branch"]["enabled"], + "allow_fork_syncing": prot["allow_fork_syncing"]["enabled"], + } + + def get_branch_required_checks(self, branch_name: str) -> list[str]: + """ + Get the required checks for a given branch + """ + return self.get_branch_protection(branch_name).required_status_checks.contexts + + def add_branch_required_check(self, branch_name: str, checks: list[str], force: bool = False) -> None: + """ + Add required checks to a given branch + + It uses the Github API directly to add the required checks to the branch. + Using the "checks" argument is not supported by PyGithub. + :calls: `PUT /repos/{owner}/{repo}/branches/{branch}/protection + + """ + current_protection = self.get_branch_protection(branch_name) + current_required_checks = current_protection.required_status_checks.contexts + new_required_checks = [] + for check in checks: + if check in current_required_checks: + print( + color_message( + f"Ignoring the '{check}' check as it is already required on the {branch_name} branch", + Color.ORANGE, + ) + ) + else: + new_required_checks.append(check) + if not new_required_checks: + print(color_message("No new checks to add", Color.GREEN)) + return + print( + color_message( + f"Warning: You are about to add the following checks to the {branch_name} branch:\n{new_required_checks}", + Color.ORANGE, + ) + ) + print(color_message(f"Current required checks: {sorted(current_required_checks)}", Color.GREY)) + if force or yes_no_question("Are you sure?", default=False): + # We're crafting the request and not using PyGithub because it doesn't support passing the checks variable instead of contexts. + protection_url = f"{self.repo.url}/branches/{branch_name}/protection" + headers = { + "Accept": "application/vnd.github+json", + "Authorization": f"Bearer {os.environ['GITHUB_TOKEN']}", + "X-GitHub-Api-Version": "2022-11-28", + } + payload = self.protection_to_payload(current_protection.raw_data) + payload["required_status_checks"]["checks"] = sorted( + payload["required_status_checks"]["checks"] + + [{"context": check, "app_id": -1} for check in new_required_checks], + key=lambda x: x['context'], + ) + + response = requests.put(protection_url, headers=headers, json=payload, timeout=10) + if response.status_code != 200: + print( + color_message( + f"Error while sending the PUT request to {protection_url}\n{response.text}", Color.RED + ) + ) + raise Exit( + color_message(f"Failed to update the required checks for the {branch_name} branch", Color.RED), + code=1, + ) + print(color_message(f"The {checks} checks were successfully added!", Color.GREEN)) + else: + print(color_message("Aborting changes to the branch required checks", Color.GREEN)) + def is_release_note_needed(self, pull_number): """ Check if labels are ok for skipping QA From cedfd68a55bc86be6edefb391a124ae9791f1d63 Mon Sep 17 00:00:00 2001 From: Gabriel Dos Santos <91925154+gabedos@users.noreply.github.com> Date: Wed, 27 Nov 2024 14:52:26 -0500 Subject: [PATCH 109/439] [CONTP-48] Cluster Agent consistent tagging via global tags fix (#31386) Co-authored-by: DeForest Richards <56796055+drichards-87@users.noreply.github.com> --- .../subcommands/run/command.go | 6 +- .../subcommands/start/command.go | 6 +- .../tagger/collectors/workloadmeta_extract.go | 12 ++-- .../tagger/collectors/workloadmeta_main.go | 53 +++++++++------- .../tagger/collectors/workloadmeta_test.go | 58 +++++++++++++++--- comp/core/tagger/impl/local_tagger.go | 2 +- .../clusterchecks/dispatcher_isolate_test.go | 10 +++- .../clusterchecks/dispatcher_main.go | 16 ++++- .../dispatcher_rebalance_test.go | 13 ++-- .../clusterchecks/dispatcher_test.go | 60 ++++++++++++------- pkg/clusteragent/clusterchecks/handler.go | 5 +- .../clusterchecks/handler_test.go | 4 +- pkg/config/utils/tags.go | 14 +++++ pkg/util/static_tags.go | 36 +++++++++-- pkg/util/static_tags_test.go | 53 ++++++++++++---- ...fy-cluster-check-tag-0a8e854517742c0f.yaml | 11 ++++ 16 files changed, 270 insertions(+), 89 deletions(-) create mode 100644 releasenotes/notes/unify-cluster-check-tag-0a8e854517742c0f.yaml diff --git a/cmd/cluster-agent-cloudfoundry/subcommands/run/command.go b/cmd/cluster-agent-cloudfoundry/subcommands/run/command.go index 259931d1a0b36..9aa1076c8ec4a 100644 --- a/cmd/cluster-agent-cloudfoundry/subcommands/run/command.go +++ b/cmd/cluster-agent-cloudfoundry/subcommands/run/command.go @@ -195,7 +195,7 @@ func run( } var clusterCheckHandler *clusterchecks.Handler - clusterCheckHandler, err = setupClusterCheck(mainCtx, ac) + clusterCheckHandler, err = setupClusterCheck(mainCtx, ac, taggerComp) if err == nil { api.ModifyAPIRouter(func(r *mux.Router) { dcav1.InstallChecksEndpoints(r, clusteragent.ServerContext{ClusterCheckHandler: clusterCheckHandler}) @@ -302,8 +302,8 @@ func initializeBBSCache(ctx context.Context) error { } } -func setupClusterCheck(ctx context.Context, ac autodiscovery.Component) (*clusterchecks.Handler, error) { - handler, err := clusterchecks.NewHandler(ac) +func setupClusterCheck(ctx context.Context, ac autodiscovery.Component, tagger tagger.Component) (*clusterchecks.Handler, error) { + handler, err := clusterchecks.NewHandler(ac, tagger) if err != nil { return nil, err } diff --git a/cmd/cluster-agent/subcommands/start/command.go b/cmd/cluster-agent/subcommands/start/command.go index 5c376d01ebe54..98a671dad950d 100644 --- a/cmd/cluster-agent/subcommands/start/command.go +++ b/cmd/cluster-agent/subcommands/start/command.go @@ -389,7 +389,7 @@ func start(log log.Component, if config.GetBool("cluster_checks.enabled") { // Start the cluster check Autodiscovery - clusterCheckHandler, err := setupClusterCheck(mainCtx, ac) + clusterCheckHandler, err := setupClusterCheck(mainCtx, ac, taggerComp) if err == nil { api.ModifyAPIRouter(func(r *mux.Router) { dcav1.InstallChecksEndpoints(r, clusteragent.ServerContext{ClusterCheckHandler: clusterCheckHandler}) @@ -551,8 +551,8 @@ func start(log log.Component, return nil } -func setupClusterCheck(ctx context.Context, ac autodiscovery.Component) (*clusterchecks.Handler, error) { - handler, err := clusterchecks.NewHandler(ac) +func setupClusterCheck(ctx context.Context, ac autodiscovery.Component, tagger tagger.Component) (*clusterchecks.Handler, error) { + handler, err := clusterchecks.NewHandler(ac, tagger) if err != nil { return nil, err } diff --git a/comp/core/tagger/collectors/workloadmeta_extract.go b/comp/core/tagger/collectors/workloadmeta_extract.go index a3a14688f45cf..0ecf41398b582 100644 --- a/comp/core/tagger/collectors/workloadmeta_extract.go +++ b/comp/core/tagger/collectors/workloadmeta_extract.go @@ -225,8 +225,10 @@ func (c *WorkloadMetaCollector) handleContainer(ev workloadmeta.Event) []*types. } // static tags for ECS and EKS Fargate containers - for tag, value := range c.staticTags { - tagList.AddLow(tag, value) + for tag, valueList := range c.staticTags { + for _, value := range valueList { + tagList.AddLow(tag, value) + } } // gpu tags from container resource requests @@ -399,8 +401,10 @@ func (c *WorkloadMetaCollector) extractTagsFromPodEntity(pod *workloadmeta.Kuber } // static tags for EKS Fargate pods - for tag, value := range c.staticTags { - tagList.AddLow(tag, value) + for tag, valueList := range c.staticTags { + for _, value := range valueList { + tagList.AddLow(tag, value) + } } low, orch, high, standard := tagList.Compute() diff --git a/comp/core/tagger/collectors/workloadmeta_main.go b/comp/core/tagger/collectors/workloadmeta_main.go index 23c5973e363e4..59d82862ddf02 100644 --- a/comp/core/tagger/collectors/workloadmeta_main.go +++ b/comp/core/tagger/collectors/workloadmeta_main.go @@ -57,7 +57,7 @@ type WorkloadMetaCollector struct { containerEnvAsTags map[string]string containerLabelsAsTags map[string]string - staticTags map[string]string + staticTags map[string][]string // for ECS and EKS Fargate k8sResourcesAnnotationsAsTags map[string]map[string]string k8sResourcesLabelsAsTags map[string]map[string]string globContainerLabels map[string]glob.Glob @@ -91,42 +91,51 @@ func (c *WorkloadMetaCollector) initK8sResourcesMetaAsTags(resourcesLabelsAsTags // Run runs the continuous event watching loop and sends new tags to the // tagger based on the events sent by the workloadmeta. -func (c *WorkloadMetaCollector) Run(ctx context.Context) { - c.collectStaticGlobalTags(ctx) +func (c *WorkloadMetaCollector) Run(ctx context.Context, datadogConfig config.Component) { + c.collectStaticGlobalTags(ctx, datadogConfig) c.stream(ctx) } -func (c *WorkloadMetaCollector) collectStaticGlobalTags(ctx context.Context) { +func (c *WorkloadMetaCollector) collectStaticGlobalTags(ctx context.Context, datadogConfig config.Component) { c.staticTags = util.GetStaticTags(ctx) if _, exists := c.staticTags[clusterTagNamePrefix]; flavor.GetFlavor() == flavor.ClusterAgent && !exists { // If we are running the cluster agent, we want to set the kube_cluster_name tag as a global tag if we are able // to read it, for the instances where we are running in an environment where hostname cannot be detected. if cluster := clustername.GetClusterNameTagValue(ctx, ""); cluster != "" { if c.staticTags == nil { - c.staticTags = make(map[string]string, 1) + c.staticTags = make(map[string][]string, 1) } - c.staticTags[clusterTagNamePrefix] = cluster + if _, exists := c.staticTags[clusterTagNamePrefix]; !exists { + c.staticTags[clusterTagNamePrefix] = []string{} + } + c.staticTags[clusterTagNamePrefix] = append(c.staticTags[clusterTagNamePrefix], cluster) } } - if len(c.staticTags) > 0 { - tags := taglist.NewTagList() + // These are the global tags that should only be applied to the internal global entity on DCA. + // Whereas the static tags are applied to containers and pods directly as well. + globalEnvTags := util.GetGlobalEnvTags(datadogConfig) - for tag, value := range c.staticTags { - tags.AddLow(tag, value) - } + tagList := taglist.NewTagList() - low, orch, high, standard := tags.Compute() - c.tagProcessor.ProcessTagInfo([]*types.TagInfo{ - { - Source: staticSource, - EntityID: common.GetGlobalEntityID(), - HighCardTags: high, - OrchestratorCardTags: orch, - LowCardTags: low, - StandardTags: standard, - }, - }) + for _, tags := range []map[string][]string{c.staticTags, globalEnvTags} { + for tagKey, valueList := range tags { + for _, value := range valueList { + tagList.AddLow(tagKey, value) + } + } } + + low, orch, high, standard := tagList.Compute() + c.tagProcessor.ProcessTagInfo([]*types.TagInfo{ + { + Source: staticSource, + EntityID: common.GetGlobalEntityID(), + HighCardTags: high, + OrchestratorCardTags: orch, + LowCardTags: low, + StandardTags: standard, + }, + }) } func (c *WorkloadMetaCollector) stream(ctx context.Context) { diff --git a/comp/core/tagger/collectors/workloadmeta_test.go b/comp/core/tagger/collectors/workloadmeta_test.go index 48d8ea9691f37..93c2cf153d579 100644 --- a/comp/core/tagger/collectors/workloadmeta_test.go +++ b/comp/core/tagger/collectors/workloadmeta_test.go @@ -116,7 +116,7 @@ func TestHandleKubePod(t *testing.T) { tests := []struct { name string - staticTags map[string]string + staticTags map[string][]string k8sResourcesAnnotationsAsTags map[string]map[string]string k8sResourcesLabelsAsTags map[string]map[string]string pod workloadmeta.KubernetesPod @@ -789,8 +789,8 @@ func TestHandleKubePod(t *testing.T) { }, { name: "static tags", - staticTags: map[string]string{ - "eks_fargate_node": "foobar", + staticTags: map[string][]string{ + "eks_fargate_node": {"foobar"}, }, pod: workloadmeta.KubernetesPod{ EntityID: podEntityID, @@ -961,7 +961,7 @@ func TestHandleKubePodWithoutPvcAsTags(t *testing.T) { tests := []struct { name string - staticTags map[string]string + staticTags map[string][]string labelsAsTags map[string]string annotationsAsTags map[string]string nsLabelsAsTags map[string]string @@ -1117,7 +1117,7 @@ func TestHandleKubePodNoContainerName(t *testing.T) { tests := []struct { name string - staticTags map[string]string + staticTags map[string][]string labelsAsTags map[string]string annotationsAsTags map[string]string nsLabelsAsTags map[string]string @@ -1617,7 +1617,7 @@ func TestHandleContainer(t *testing.T) { tests := []struct { name string - staticTags map[string]string + staticTags map[string][]string labelsAsTags map[string]string envAsTags map[string]string container workloadmeta.Container @@ -2098,8 +2098,8 @@ func TestHandleContainer(t *testing.T) { }, { name: "static tags", - staticTags: map[string]string{ - "eks_fargate_node": "foobar", + staticTags: map[string][]string{ + "eks_fargate_node": {"foobar"}, }, container: workloadmeta.Container{ EntityID: entityID, @@ -2405,6 +2405,48 @@ func TestHandlePodWithDeletedContainer(t *testing.T) { assert.True(t, found, "TagInfo of deleted container not returned") } +func TestNoGlobalTags(t *testing.T) { + // This test checks that the tagger doesn't set any global entity tags on node agent + + mockConfig := configmock.New(t) + collectorCh := make(chan []*types.TagInfo, 10) + fakeProcessor := &fakeProcessor{ch: collectorCh} + + // Global tags that SHOULD NOT be stored in the tagger's global entity + mockConfig.SetWithoutSource("tags", []string{"some:tag"}) + mockConfig.SetWithoutSource("extra_tags", []string{"extra:tag"}) + mockConfig.SetWithoutSource("cluster_checks.extra_tags", []string{"cluster:tag"}) + mockConfig.SetWithoutSource("orchestrator_explorer.extra_tags", []string{"orch:tag"}) + + wmetaCollector := NewWorkloadMetaCollector(context.Background(), mockConfig, nil, fakeProcessor) + wmetaCollector.collectStaticGlobalTags(context.Background(), mockConfig) + + close(collectorCh) + + expectedEmptyEvent := &types.TagInfo{ + Source: staticSource, + EntityID: common.GetGlobalEntityID(), + HighCardTags: []string{}, + OrchestratorCardTags: []string{}, + LowCardTags: []string{}, + StandardTags: []string{}, + } + + var actualStaticSourceEvent *types.TagInfo + for evBundle := range collectorCh { + for _, event := range evBundle { + if event.Source == staticSource { + actualStaticSourceEvent = event + break + } + } + } + assert.True(t, reflect.DeepEqual(actualStaticSourceEvent, expectedEmptyEvent), + "Global Entity should be set with no tags:\nexpected: %v\nfound: %v ", + expectedEmptyEvent, actualStaticSourceEvent, + ) +} + func TestParseJSONValue(t *testing.T) { tests := []struct { name string diff --git a/comp/core/tagger/impl/local_tagger.go b/comp/core/tagger/impl/local_tagger.go index 8b6e524b0c577..acde0b3379b0b 100644 --- a/comp/core/tagger/impl/local_tagger.go +++ b/comp/core/tagger/impl/local_tagger.go @@ -60,7 +60,7 @@ func (t *localTagger) Start(ctx context.Context) error { ) go t.tagStore.Run(t.ctx) - go t.collector.Run(t.ctx) + go t.collector.Run(t.ctx, t.cfg) return nil } diff --git a/pkg/clusteragent/clusterchecks/dispatcher_isolate_test.go b/pkg/clusteragent/clusterchecks/dispatcher_isolate_test.go index 609d4264fa968..bd2cfbb276f83 100644 --- a/pkg/clusteragent/clusterchecks/dispatcher_isolate_test.go +++ b/pkg/clusteragent/clusterchecks/dispatcher_isolate_test.go @@ -13,13 +13,15 @@ import ( "github.com/stretchr/testify/assert" "github.com/DataDog/datadog-agent/comp/core/autodiscovery/integration" + "github.com/DataDog/datadog-agent/comp/core/tagger/mock" "github.com/DataDog/datadog-agent/pkg/clusteragent/clusterchecks/types" checkid "github.com/DataDog/datadog-agent/pkg/collector/check/id" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" ) func TestIsolateCheckSuccessful(t *testing.T) { - testDispatcher := newDispatcher() + fakeTagger := mock.SetupFakeTagger(t) + testDispatcher := newDispatcher(fakeTagger) testDispatcher.store.nodes["A"] = newNodeStore("A", "") testDispatcher.store.nodes["A"].workers = pkgconfigsetup.DefaultNumWorkers testDispatcher.store.nodes["B"] = newNodeStore("B", "") @@ -99,7 +101,8 @@ func TestIsolateCheckSuccessful(t *testing.T) { } func TestIsolateNonExistentCheckFails(t *testing.T) { - testDispatcher := newDispatcher() + fakeTagger := mock.SetupFakeTagger(t) + testDispatcher := newDispatcher(fakeTagger) testDispatcher.store.nodes["A"] = newNodeStore("A", "") testDispatcher.store.nodes["A"].workers = pkgconfigsetup.DefaultNumWorkers testDispatcher.store.nodes["B"] = newNodeStore("B", "") @@ -177,7 +180,8 @@ func TestIsolateNonExistentCheckFails(t *testing.T) { } func TestIsolateCheckOnlyOneRunnerFails(t *testing.T) { - testDispatcher := newDispatcher() + fakeTagger := mock.SetupFakeTagger(t) + testDispatcher := newDispatcher(fakeTagger) testDispatcher.store.nodes["A"] = newNodeStore("A", "") testDispatcher.store.nodes["A"].workers = pkgconfigsetup.DefaultNumWorkers diff --git a/pkg/clusteragent/clusterchecks/dispatcher_main.go b/pkg/clusteragent/clusterchecks/dispatcher_main.go index 398bf21d2c5c5..6f1a894f4e354 100644 --- a/pkg/clusteragent/clusterchecks/dispatcher_main.go +++ b/pkg/clusteragent/clusterchecks/dispatcher_main.go @@ -13,6 +13,8 @@ import ( "time" "github.com/DataDog/datadog-agent/comp/core/autodiscovery/integration" + tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" + "github.com/DataDog/datadog-agent/comp/core/tagger/types" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/status/health" "github.com/DataDog/datadog-agent/pkg/util/clusteragent" @@ -34,12 +36,21 @@ type dispatcher struct { rebalancingPeriod time.Duration } -func newDispatcher() *dispatcher { +func newDispatcher(tagger tagger.Component) *dispatcher { d := &dispatcher{ store: newClusterStore(), } d.nodeExpirationSeconds = pkgconfigsetup.Datadog().GetInt64("cluster_checks.node_expiration_timeout") - d.extraTags = pkgconfigsetup.Datadog().GetStringSlice("cluster_checks.extra_tags") + + // Attach the cluster agent's global tags to all dispatched checks + // as defined in the tagger's workloadmeta collector + var err error + d.extraTags, err = tagger.GlobalTags(types.LowCardinality) + if err != nil { + log.Warnf("Cannot get global tags from the tagger: %v", err) + } else { + log.Debugf("Adding global tags to cluster check dispatcher: %v", d.extraTags) + } excludedChecks := pkgconfigsetup.Datadog().GetStringSlice("cluster_checks.exclude_checks") // This option will almost always be empty @@ -77,7 +88,6 @@ func newDispatcher() *dispatcher { return d } - var err error d.clcRunnersClient, err = clusteragent.GetCLCRunnerClient() if err != nil { log.Warnf("Cannot create CLC runners client, advanced dispatching will be disabled: %v", err) diff --git a/pkg/clusteragent/clusterchecks/dispatcher_rebalance_test.go b/pkg/clusteragent/clusterchecks/dispatcher_rebalance_test.go index 09747e5c82abf..2c073bab0670b 100644 --- a/pkg/clusteragent/clusterchecks/dispatcher_rebalance_test.go +++ b/pkg/clusteragent/clusterchecks/dispatcher_rebalance_test.go @@ -15,6 +15,7 @@ import ( "github.com/stretchr/testify/require" "github.com/DataDog/datadog-agent/comp/core/autodiscovery/integration" + "github.com/DataDog/datadog-agent/comp/core/tagger/mock" "github.com/DataDog/datadog-agent/pkg/clusteragent/clusterchecks/types" checkid "github.com/DataDog/datadog-agent/pkg/collector/check/id" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" @@ -1377,7 +1378,8 @@ func TestRebalance(t *testing.T) { checkMetricSamplesWeight = originalMetricSamplesWeight }() - dispatcher := newDispatcher() + fakeTagger := mock.SetupFakeTagger(t) + dispatcher := newDispatcher(fakeTagger) // prepare store dispatcher.store.active = true @@ -1433,7 +1435,8 @@ func TestMoveCheck(t *testing.T) { }, } { t.Run(fmt.Sprintf("case %d", i), func(t *testing.T) { - dispatcher := newDispatcher() + fakeTagger := mock.SetupFakeTagger(t) + dispatcher := newDispatcher(fakeTagger) // setup check id id := checkid.BuildID(tc.check.config.Name, tc.check.config.FastDigest(), tc.check.config.Instances[0], tc.check.config.InitConfig) @@ -1477,7 +1480,8 @@ func TestCalculateAvg(t *testing.T) { checkMetricSamplesWeight = originalMetricSamplesWeight }() - testDispatcher := newDispatcher() + fakeTagger := mock.SetupFakeTagger(t) + testDispatcher := newDispatcher(fakeTagger) // The busyness of this node is 3 (1 + 2) testDispatcher.store.nodes["node1"] = newNodeStore("node1", "") @@ -1518,7 +1522,8 @@ func TestRebalanceUsingUtilization(t *testing.T) { // other tests specific for the checksDistribution struct that test more // complex scenarios. - testDispatcher := newDispatcher() + fakeTagger := mock.SetupFakeTagger(t) + testDispatcher := newDispatcher(fakeTagger) testDispatcher.store.active = true testDispatcher.store.nodes["node1"] = newNodeStore("node1", "") diff --git a/pkg/clusteragent/clusterchecks/dispatcher_test.go b/pkg/clusteragent/clusterchecks/dispatcher_test.go index f2c31184ff8b7..ff348a025ed58 100644 --- a/pkg/clusteragent/clusterchecks/dispatcher_test.go +++ b/pkg/clusteragent/clusterchecks/dispatcher_test.go @@ -16,6 +16,7 @@ import ( "gopkg.in/yaml.v2" "github.com/DataDog/datadog-agent/comp/core/autodiscovery/integration" + "github.com/DataDog/datadog-agent/comp/core/tagger/mock" "github.com/DataDog/datadog-agent/pkg/clusteragent/clusterchecks/types" "github.com/DataDog/datadog-agent/pkg/config/env" configmock "github.com/DataDog/datadog-agent/pkg/config/mock" @@ -49,7 +50,8 @@ func extractCheckNames(configs []integration.Config) []string { } func TestScheduleUnschedule(t *testing.T) { - dispatcher := newDispatcher() + fakeTagger := mock.SetupFakeTagger(t) + dispatcher := newDispatcher(fakeTagger) stored, err := dispatcher.getAllConfigs() assert.NoError(t, err) assert.Len(t, stored, 0) @@ -80,7 +82,8 @@ func TestScheduleUnschedule(t *testing.T) { } func TestScheduleUnscheduleEndpoints(t *testing.T) { - dispatcher := newDispatcher() + fakeTagger := mock.SetupFakeTagger(t) + dispatcher := newDispatcher(fakeTagger) config1 := generateIntegration("cluster-check") config2 := generateEndpointsIntegration("endpoints-check1", "node1", false) @@ -96,7 +99,8 @@ func TestScheduleUnscheduleEndpoints(t *testing.T) { } func TestExcludeEndpoint(t *testing.T) { - dispatcher := newDispatcher() + fakeTagger := mock.SetupFakeTagger(t) + dispatcher := newDispatcher(fakeTagger) config1 := generateEndpointsIntegration("endpoints-check1", "node1", true) config2 := generateEndpointsIntegration("endpoints-check2", "node2", false) @@ -109,7 +113,8 @@ func TestExcludeEndpoint(t *testing.T) { } func TestScheduleReschedule(t *testing.T) { - dispatcher := newDispatcher() + fakeTagger := mock.SetupFakeTagger(t) + dispatcher := newDispatcher(fakeTagger) config := generateIntegration("cluster-check") // Register to node1 @@ -141,7 +146,8 @@ func TestScheduleReschedule(t *testing.T) { } func TestScheduleRescheduleEndpoints(t *testing.T) { - dispatcher := newDispatcher() + fakeTagger := mock.SetupFakeTagger(t) + dispatcher := newDispatcher(fakeTagger) config := generateEndpointsIntegration("endpoints-check1", "node1", false) // Register to node1 @@ -172,7 +178,8 @@ func TestScheduleRescheduleEndpoints(t *testing.T) { } func TestDescheduleRescheduleSameNode(t *testing.T) { - dispatcher := newDispatcher() + fakeTagger := mock.SetupFakeTagger(t) + dispatcher := newDispatcher(fakeTagger) config := generateIntegration("cluster-check") // Schedule to node1 @@ -205,7 +212,8 @@ func TestDescheduleRescheduleSameNode(t *testing.T) { } func TestProcessNodeStatus(t *testing.T) { - dispatcher := newDispatcher() + fakeTagger := mock.SetupFakeTagger(t) + dispatcher := newDispatcher(fakeTagger) status1 := types.NodeStatus{LastChange: 10} // Warmup phase, upToDate is unconditionally true @@ -246,7 +254,8 @@ func TestProcessNodeStatus(t *testing.T) { } func TestGetNodeWithLessChecks(t *testing.T) { - dispatcher := newDispatcher() + fakeTagger := mock.SetupFakeTagger(t) + dispatcher := newDispatcher(fakeTagger) // No node registered -> empty string assert.Equal(t, "", dispatcher.getNodeWithLessChecks()) @@ -270,7 +279,8 @@ func TestGetNodeWithLessChecks(t *testing.T) { } func TestExpireNodes(t *testing.T) { - dispatcher := newDispatcher() + fakeTagger := mock.SetupFakeTagger(t) + dispatcher := newDispatcher(fakeTagger) // Node with no status (bug ?), handled by expiration dispatcher.addConfig(generateIntegration("one"), "node1") @@ -302,7 +312,8 @@ func TestExpireNodes(t *testing.T) { func TestRescheduleDanglingFromExpiredNodes(t *testing.T) { // This test case can represent a rollout of the cluster check workers - dispatcher := newDispatcher() + fakeTagger := mock.SetupFakeTagger(t) + dispatcher := newDispatcher(fakeTagger) // Register a node with a correct status & schedule a Check dispatcher.processNodeStatus("nodeA", "10.0.0.1", types.NodeStatus{}) @@ -352,7 +363,8 @@ func TestRescheduleDanglingFromExpiredNodes(t *testing.T) { } func TestDispatchFourConfigsTwoNodes(t *testing.T) { - dispatcher := newDispatcher() + fakeTagger := mock.SetupFakeTagger(t) + dispatcher := newDispatcher(fakeTagger) // Register two nodes dispatcher.processNodeStatus("nodeA", "10.0.0.1", types.NodeStatus{}) @@ -389,7 +401,8 @@ func TestDispatchFourConfigsTwoNodes(t *testing.T) { } func TestDanglingConfig(t *testing.T) { - dispatcher := newDispatcher() + fakeTagger := mock.SetupFakeTagger(t) + dispatcher := newDispatcher(fakeTagger) config := integration.Config{ Name: "cluster-check", ClusterCheck: true, @@ -416,7 +429,8 @@ func TestDanglingConfig(t *testing.T) { } func TestUnscheduleDanglingConfig(t *testing.T) { - testDispatcher := newDispatcher() + fakeTagger := mock.SetupFakeTagger(t) + testDispatcher := newDispatcher(fakeTagger) testConfig := integration.Config{ Name: "cluster-check-example", @@ -446,7 +460,8 @@ func TestUnscheduleDanglingConfig(t *testing.T) { } func TestReset(t *testing.T) { - dispatcher := newDispatcher() + fakeTagger := mock.SetupFakeTagger(t) + dispatcher := newDispatcher(fakeTagger) config := generateIntegration("cluster-check") // Register to node1 @@ -480,10 +495,11 @@ func TestPatchConfiguration(t *testing.T) { } initialDigest := checkConfig.Digest() + fakeTagger := mock.SetupFakeTagger(t) mockConfig := configmock.New(t) mockConfig.SetWithoutSource("cluster_name", "testing") clustername.ResetClusterName() - dispatcher := newDispatcher() + dispatcher := newDispatcher(fakeTagger) out, err := dispatcher.patchConfiguration(checkConfig) assert.NoError(t, err) @@ -517,10 +533,11 @@ func TestPatchEndpointsConfiguration(t *testing.T) { LogsConfig: integration.Data("[{\"service\":\"any_service\",\"source\":\"any_source\"}]"), } + fakeTagger := mock.SetupFakeTagger(t) mockConfig := configmock.New(t) mockConfig.SetWithoutSource("cluster_name", "testing") clustername.ResetClusterName() - dispatcher := newDispatcher() + dispatcher := newDispatcher(fakeTagger) out, err := dispatcher.patchEndpointsConfiguration(checkConfig) assert.NoError(t, err) @@ -555,20 +572,22 @@ func TestExtraTags(t *testing.T) { {[]string{"one", "two"}, "mycluster", "custom_name", []string{"one", "two", "custom_name:mycluster", "kube_cluster_name:mycluster"}}, } { t.Run("", func(t *testing.T) { + fakeTagger := mock.SetupFakeTagger(t) mockConfig := configmock.New(t) - mockConfig.SetWithoutSource("cluster_checks.extra_tags", tc.extraTagsConfig) + fakeTagger.SetGlobalTags(tc.extraTagsConfig, []string{}, []string{}, []string{}) mockConfig.SetWithoutSource("cluster_name", tc.clusterNameConfig) mockConfig.SetWithoutSource("cluster_checks.cluster_tag_name", tc.tagNameConfig) clustername.ResetClusterName() - dispatcher := newDispatcher() + dispatcher := newDispatcher(fakeTagger) assert.EqualValues(t, tc.expected, dispatcher.extraTags) }) } } func TestGetAllEndpointsCheckConfigs(t *testing.T) { - dispatcher := newDispatcher() + fakeTagger := mock.SetupFakeTagger(t) + dispatcher := newDispatcher(fakeTagger) // Register configs to different nodes dispatcher.addEndpointConfig(generateEndpointsIntegration("endpoints-check1", "node1", false), "node1") @@ -642,10 +661,11 @@ func (d *dummyClientStruct) GetRunnerWorkers(IP string) (types.Workers, error) { } func TestUpdateRunnersStats(t *testing.T) { + fakeTagger := mock.SetupFakeTagger(t) mockConfig := configmock.New(t) mockConfig.SetWithoutSource("cluster_checks.rebalance_with_utilization", true) - dispatcher := newDispatcher() + dispatcher := newDispatcher(fakeTagger) status := types.NodeStatus{LastChange: 10} dispatcher.store.active = true diff --git a/pkg/clusteragent/clusterchecks/handler.go b/pkg/clusteragent/clusterchecks/handler.go index fff45ba64e3d1..27edab2ff6d43 100644 --- a/pkg/clusteragent/clusterchecks/handler.go +++ b/pkg/clusteragent/clusterchecks/handler.go @@ -14,6 +14,7 @@ import ( "time" "github.com/DataDog/datadog-agent/comp/core/autodiscovery/scheduler" + tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/pkg/clusteragent/api" "github.com/DataDog/datadog-agent/pkg/clusteragent/clusterchecks/types" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" @@ -59,7 +60,7 @@ type Handler struct { // NewHandler returns a populated Handler // It will hook on the specified AutoConfig instance at Start -func NewHandler(ac pluggableAutoConfig) (*Handler, error) { +func NewHandler(ac pluggableAutoConfig, tagger tagger.Component) (*Handler, error) { if ac == nil { return nil, errors.New("empty autoconfig object") } @@ -68,7 +69,7 @@ func NewHandler(ac pluggableAutoConfig) (*Handler, error) { leaderStatusFreq: 5 * time.Second, warmupDuration: pkgconfigsetup.Datadog().GetDuration("cluster_checks.warmup_duration") * time.Second, leadershipChan: make(chan state, 1), - dispatcher: newDispatcher(), + dispatcher: newDispatcher(tagger), } if pkgconfigsetup.Datadog().GetBool("leader_election") { diff --git a/pkg/clusteragent/clusterchecks/handler_test.go b/pkg/clusteragent/clusterchecks/handler_test.go index bbf348e102674..c1b0c074e6aaf 100644 --- a/pkg/clusteragent/clusterchecks/handler_test.go +++ b/pkg/clusteragent/clusterchecks/handler_test.go @@ -20,6 +20,7 @@ import ( "github.com/stretchr/testify/mock" "github.com/DataDog/datadog-agent/comp/core/autodiscovery/integration" + taggerMock "github.com/DataDog/datadog-agent/comp/core/tagger/mock" "github.com/DataDog/datadog-agent/pkg/clusteragent/api" "github.com/DataDog/datadog-agent/pkg/clusteragent/clusterchecks/types" "github.com/DataDog/datadog-agent/pkg/util/testutil" @@ -138,6 +139,7 @@ func TestUpdateLeaderIP(t *testing.T) { func TestHandlerRun(t *testing.T) { dummyT := &testing.T{} ac := &mockedPluggableAutoConfig{} + fakeTagger := taggerMock.SetupFakeTagger(t) ac.Test(t) le := &fakeLeaderEngine{ err: errors.New("failing"), @@ -154,7 +156,7 @@ func TestHandlerRun(t *testing.T) { leaderStatusFreq: 100 * time.Millisecond, warmupDuration: 250 * time.Millisecond, leadershipChan: make(chan state, 1), - dispatcher: newDispatcher(), + dispatcher: newDispatcher(fakeTagger), leaderStatusCallback: le.get, leaderForwarder: api.NewLeaderForwarder(testPort, 10), } diff --git a/pkg/config/utils/tags.go b/pkg/config/utils/tags.go index 5a5d3afa16199..36d6aef5c7aed 100644 --- a/pkg/config/utils/tags.go +++ b/pkg/config/utils/tags.go @@ -28,3 +28,17 @@ func GetConfiguredTags(c pkgconfigmodel.Reader, includeDogstatsd bool) []string return combined } + +// GetConfiguredDCATags returns list of tags from a configuration, based on +// `cluster_checks.extra_tags` (DD_CLUSTER_CHECKS_EXTRA_TAGS) and +// `orchestrator_explorer.extra_tags (DD_ORCHESTRATOR_EXPLORER_EXTRA_TAGS). +func GetConfiguredDCATags(c pkgconfigmodel.Reader) []string { + clusterCheckTags := c.GetStringSlice("cluster_checks.extra_tags") + orchestratorTags := c.GetStringSlice("orchestrator_explorer.extra_tags") + + combined := make([]string, 0, len(clusterCheckTags)+len(orchestratorTags)) + combined = append(combined, clusterCheckTags...) + combined = append(combined, orchestratorTags...) + + return combined +} diff --git a/pkg/util/static_tags.go b/pkg/util/static_tags.go index f0591d0243f9d..f6173daa9e450 100644 --- a/pkg/util/static_tags.go +++ b/pkg/util/static_tags.go @@ -10,9 +10,11 @@ import ( "strings" "github.com/DataDog/datadog-agent/pkg/config/env" + "github.com/DataDog/datadog-agent/pkg/config/model" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" configUtils "github.com/DataDog/datadog-agent/pkg/config/utils" "github.com/DataDog/datadog-agent/pkg/util/fargate" + "github.com/DataDog/datadog-agent/pkg/util/flavor" "github.com/DataDog/datadog-agent/pkg/util/kubernetes/clustername" "github.com/DataDog/datadog-agent/pkg/util/log" ) @@ -70,19 +72,45 @@ func GetStaticTagsSlice(ctx context.Context) []string { return tags } -// GetStaticTags is similar to GetStaticTagsSlice, but returning a map[string]string containing +// GetStaticTags is similar to GetStaticTagsSlice, but returning a map[string][]string containing // : pairs for tags. Tags not matching this pattern are omitted. -func GetStaticTags(ctx context.Context) map[string]string { +func GetStaticTags(ctx context.Context) map[string][]string { tags := GetStaticTagsSlice(ctx) if tags == nil { return nil } + return sliceToMap(tags) +} + +// GetGlobalEnvTags is similar to GetStaticTags, but returning a map[string][]string containing +// : pairs for all global environment tags on the cluster agent. This includes: +// DD_TAGS, DD_EXTRA_TAGS, DD_CLUSTER_CHECKS_EXTRA_TAGS, and DD_ORCHESTRATOR_EXPLORER_EXTRA_TAGS +func GetGlobalEnvTags(config model.Reader) map[string][]string { + if flavor.GetFlavor() != flavor.ClusterAgent { + return nil + } + + // DD_TAGS / DD_EXTRA_TAGS + tags := configUtils.GetConfiguredTags(config, false) + + // DD_CLUSTER_CHECKS_EXTRA_TAGS / DD_ORCHESTRATOR_EXPLORER_EXTRA_TAGS + tags = append(tags, configUtils.GetConfiguredDCATags(config)...) - rv := make(map[string]string, len(tags)) + if tags == nil { + return nil + } + return sliceToMap(tags) +} + +func sliceToMap(tags []string) map[string][]string { + rv := make(map[string][]string, len(tags)) for _, t := range tags { tagParts := strings.SplitN(t, ":", 2) if len(tagParts) == 2 { - rv[tagParts[0]] = tagParts[1] + if _, ok := rv[tagParts[0]]; !ok { + rv[tagParts[0]] = []string{} + } + rv[tagParts[0]] = append(rv[tagParts[0]], tagParts[1]) } } return rv diff --git a/pkg/util/static_tags_test.go b/pkg/util/static_tags_test.go index e9d9de3374ad8..013e79689fe94 100644 --- a/pkg/util/static_tags_test.go +++ b/pkg/util/static_tags_test.go @@ -13,6 +13,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/config/env" configmock "github.com/DataDog/datadog-agent/pkg/config/mock" + "github.com/DataDog/datadog-agent/pkg/util/flavor" ) func TestStaticTags(t *testing.T) { @@ -26,10 +27,10 @@ func TestStaticTags(t *testing.T) { mockConfig.SetWithoutSource("tags", []string{"some:tag", "another:tag", "nocolon"}) defer mockConfig.SetWithoutSource("tags", []string{}) staticTags := GetStaticTags(context.Background()) - assert.Equal(t, map[string]string{ - "some": "tag", - "another": "tag", - "eks_fargate_node": "eksnode", + assert.Equal(t, map[string][]string{ + "some": {"tag"}, + "another": {"tag"}, + "eks_fargate_node": {"eksnode"}, }, staticTags) }) @@ -39,10 +40,10 @@ func TestStaticTags(t *testing.T) { defer mockConfig.SetWithoutSource("tags", []string{}) defer mockConfig.SetWithoutSource("extra_tags", []string{}) staticTags := GetStaticTags(context.Background()) - assert.Equal(t, map[string]string{ - "some": "tag", - "extra": "tag", - "eks_fargate_node": "eksnode", + assert.Equal(t, map[string][]string{ + "some": {"tag"}, + "extra": {"tag"}, + "eks_fargate_node": {"eksnode"}, }, staticTags) }) @@ -50,9 +51,9 @@ func TestStaticTags(t *testing.T) { mockConfig.SetWithoutSource("tags", []string{"kube_cluster_name:foo"}) defer mockConfig.SetWithoutSource("tags", []string{}) staticTags := GetStaticTags(context.Background()) - assert.Equal(t, map[string]string{ - "eks_fargate_node": "eksnode", - "kube_cluster_name": "foo", + assert.Equal(t, map[string][]string{ + "eks_fargate_node": {"eksnode"}, + "kube_cluster_name": {"foo"}, }, staticTags) }) } @@ -91,3 +92,33 @@ func TestStaticTagsSlice(t *testing.T) { }, staticTags) }) } + +func TestExtraGlobalEnvTags(t *testing.T) { + mockConfig := configmock.New(t) + mockConfig.SetWithoutSource("tags", []string{"some:tag", "nocolon"}) + mockConfig.SetWithoutSource("extra_tags", []string{"extra:tag", "missingcolon"}) + mockConfig.SetWithoutSource("cluster_checks.extra_tags", []string{"cluster:tag", "nocolon"}) + mockConfig.SetWithoutSource("orchestrator_explorer.extra_tags", []string{"orch:tag", "missingcolon"}) + + recordFlavor := flavor.GetFlavor() + defer func() { + flavor.SetFlavor(recordFlavor) + }() + + t.Run("Agent extraGlobalTags", func(t *testing.T) { + flavor.SetFlavor(flavor.DefaultAgent) + globalTags := GetGlobalEnvTags(mockConfig) + assert.Equal(t, map[string][]string(nil), globalTags) + }) + + t.Run("ClusterAgent extraGlobalTags", func(t *testing.T) { + flavor.SetFlavor(flavor.ClusterAgent) + globalTags := GetGlobalEnvTags(mockConfig) + assert.Equal(t, map[string][]string{ + "some": {"tag"}, + "extra": {"tag"}, + "cluster": {"tag"}, + "orch": {"tag"}, + }, globalTags) + }) +} diff --git a/releasenotes/notes/unify-cluster-check-tag-0a8e854517742c0f.yaml b/releasenotes/notes/unify-cluster-check-tag-0a8e854517742c0f.yaml new file mode 100644 index 0000000000000..5da73bd832bcf --- /dev/null +++ b/releasenotes/notes/unify-cluster-check-tag-0a8e854517742c0f.yaml @@ -0,0 +1,11 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +enhancements: + - | + Standardized cluster check tagging across all environments, allowing DD_TAGS, DD_EXTRA_TAGS, DD_CLUSTER_CHECKS_EXTRA_TAGS, and DD_ORCHESTRATOR_EXPLORER_EXTRA_TAGS to apply to all cluster check data when operating on the Cluster Agent, Node Agent, or Cluster Checks Runner. From 5e04382ad69b2582d59385a50d8c537f69209200 Mon Sep 17 00:00:00 2001 From: Arthur Bellal Date: Wed, 27 Nov 2024 22:14:22 +0100 Subject: [PATCH 110/439] (fleet) move /etc/datadog-packages to /etc/datadog-agent/managed (#31540) --- .../service/embedded/datadog-agent-exp.service | 2 +- .../embedded/datadog-agent-process-exp.service | 2 +- .../embedded/datadog-agent-process.service | 2 +- .../embedded/datadog-agent-security-exp.service | 4 ++-- .../embedded/datadog-agent-security.service | 4 ++-- .../embedded/datadog-agent-sysprobe-exp.service | 4 ++-- .../embedded/datadog-agent-sysprobe.service | 4 ++-- .../embedded/datadog-agent-trace-exp.service | 2 +- .../service/embedded/datadog-agent-trace.service | 2 +- .../service/embedded/datadog-agent.service | 2 +- pkg/fleet/internal/paths/installer_paths.go | 2 +- .../installer/unix/upgrade_scenario_test.go | 16 ++++++++-------- 12 files changed, 23 insertions(+), 23 deletions(-) diff --git a/pkg/fleet/installer/service/embedded/datadog-agent-exp.service b/pkg/fleet/installer/service/embedded/datadog-agent-exp.service index 40adc828787db..dd6eb94c5f4ad 100644 --- a/pkg/fleet/installer/service/embedded/datadog-agent-exp.service +++ b/pkg/fleet/installer/service/embedded/datadog-agent-exp.service @@ -12,7 +12,7 @@ Type=oneshot PIDFile=/opt/datadog-packages/datadog-agent/experiment/run/agent.pid User=dd-agent EnvironmentFile=-/etc/datadog-agent/environment -Environment="DD_FLEET_POLICIES_DIR=/etc/datadog-packages/datadog-agent/experiment" +Environment="DD_FLEET_POLICIES_DIR=/etc/datadog-agent/managed/datadog-agent/experiment" ExecStart=/opt/datadog-packages/datadog-agent/experiment/bin/agent/agent run -p /opt/datadog-packages/datadog-agent/experiment/run/agent.pid ExecStart=/bin/false ExecStop=/bin/false diff --git a/pkg/fleet/installer/service/embedded/datadog-agent-process-exp.service b/pkg/fleet/installer/service/embedded/datadog-agent-process-exp.service index 9583865d902df..09f5bd3b826c4 100644 --- a/pkg/fleet/installer/service/embedded/datadog-agent-process-exp.service +++ b/pkg/fleet/installer/service/embedded/datadog-agent-process-exp.service @@ -9,7 +9,7 @@ PIDFile=/opt/datadog-packages/datadog-agent/experiment/run/process-agent.pid User=dd-agent Restart=on-failure EnvironmentFile=-/etc/datadog-agent/environment -Environment="DD_FLEET_POLICIES_DIR=/etc/datadog-packages/datadog-agent/experiment" +Environment="DD_FLEET_POLICIES_DIR=/etc/datadog-agent/managed/datadog-agent/experiment" ExecStart=/opt/datadog-packages/datadog-agent/experiment/embedded/bin/process-agent --cfgpath=/etc/datadog-agent/datadog.yaml --sysprobe-config=/etc/datadog-agent/system-probe.yaml --pid=/opt/datadog-packages/datadog-agent/experiment/run/process-agent.pid # Since systemd 229, should be in [Unit] but in order to support systemd <229, # it is also supported to have it here. diff --git a/pkg/fleet/installer/service/embedded/datadog-agent-process.service b/pkg/fleet/installer/service/embedded/datadog-agent-process.service index 23e892f1ef5da..dd0d336ba2c75 100644 --- a/pkg/fleet/installer/service/embedded/datadog-agent-process.service +++ b/pkg/fleet/installer/service/embedded/datadog-agent-process.service @@ -9,7 +9,7 @@ PIDFile=/opt/datadog-packages/datadog-agent/stable/run/process-agent.pid User=dd-agent Restart=on-failure EnvironmentFile=-/etc/datadog-agent/environment -Environment="DD_FLEET_POLICIES_DIR=/etc/datadog-packages/datadog-agent/stable" +Environment="DD_FLEET_POLICIES_DIR=/etc/datadog-agent/managed/datadog-agent/stable" ExecStart=/opt/datadog-packages/datadog-agent/stable/embedded/bin/process-agent --cfgpath=/etc/datadog-agent/datadog.yaml --sysprobe-config=/etc/datadog-agent/system-probe.yaml --pid=/opt/datadog-packages/datadog-agent/stable/run/process-agent.pid # Since systemd 229, should be in [Unit] but in order to support systemd <229, # it is also supported to have it here. diff --git a/pkg/fleet/installer/service/embedded/datadog-agent-security-exp.service b/pkg/fleet/installer/service/embedded/datadog-agent-security-exp.service index 8366d8c61c5de..b593ece47463d 100644 --- a/pkg/fleet/installer/service/embedded/datadog-agent-security-exp.service +++ b/pkg/fleet/installer/service/embedded/datadog-agent-security-exp.service @@ -3,14 +3,14 @@ Description=Datadog Security Agent Experiment After=network.target BindsTo=datadog-agent-exp.service ConditionPathExists=|/etc/datadog-agent/security-agent.yaml -ConditionPathExists=|/etc/datadog-packages/datadog-agent/experiment/security-agent.yaml +ConditionPathExists=|/etc/datadog-agent/managed/datadog-agent/experiment/security-agent.yaml [Service] Type=simple PIDFile=/opt/datadog-packages/datadog-agent/experiment/run/security-agent.pid Restart=on-failure EnvironmentFile=-/etc/datadog-agent/environment -Environment="DD_FLEET_POLICIES_DIR=/etc/datadog-packages/datadog-agent/experiment" +Environment="DD_FLEET_POLICIES_DIR=/etc/datadog-agent/managed/datadog-agent/experiment" ExecStart=/opt/datadog-packages/datadog-agent/experiment/embedded/bin/security-agent start -c /etc/datadog-agent/datadog.yaml --pidfile /opt/datadog-packages/datadog-agent/experiment/run/security-agent.pid # Since systemd 229, should be in [Unit] but in order to support systemd <229, # it is also supported to have it here. diff --git a/pkg/fleet/installer/service/embedded/datadog-agent-security.service b/pkg/fleet/installer/service/embedded/datadog-agent-security.service index f3cca2a2889bd..12c51f65446bc 100644 --- a/pkg/fleet/installer/service/embedded/datadog-agent-security.service +++ b/pkg/fleet/installer/service/embedded/datadog-agent-security.service @@ -3,14 +3,14 @@ Description=Datadog Security Agent After=network.target datadog-agent.service BindsTo=datadog-agent.service ConditionPathExists=|/etc/datadog-agent/security-agent.yaml -ConditionPathExists=|/etc/datadog-packages/datadog-agent/stable/security-agent.yaml +ConditionPathExists=|/etc/datadog-agent/managed/datadog-agent/stable/security-agent.yaml [Service] Type=simple PIDFile=/opt/datadog-packages/datadog-agent/stable/run/security-agent.pid Restart=on-failure EnvironmentFile=-/etc/datadog-agent/environment -Environment="DD_FLEET_POLICIES_DIR=/etc/datadog-packages/datadog-agent/stable" +Environment="DD_FLEET_POLICIES_DIR=/etc/datadog-agent/managed/datadog-agent/stable" ExecStart=/opt/datadog-packages/datadog-agent/stable/embedded/bin/security-agent start -c /etc/datadog-agent/datadog.yaml --pidfile /opt/datadog-packages/datadog-agent/stable/run/security-agent.pid # Since systemd 229, should be in [Unit] but in order to support systemd <229, # it is also supported to have it here. diff --git a/pkg/fleet/installer/service/embedded/datadog-agent-sysprobe-exp.service b/pkg/fleet/installer/service/embedded/datadog-agent-sysprobe-exp.service index 201f36f7615b4..a0844c974021f 100644 --- a/pkg/fleet/installer/service/embedded/datadog-agent-sysprobe-exp.service +++ b/pkg/fleet/installer/service/embedded/datadog-agent-sysprobe-exp.service @@ -4,13 +4,13 @@ Requires=sys-kernel-debug.mount After=network.target sys-kernel-debug.mount BindsTo=datadog-agent-exp.service ConditionPathExists=|/etc/datadog-agent/system-probe.yaml -ConditionPathExists=|/etc/datadog-packages/datadog-agent/experiment/system-probe.yaml +ConditionPathExists=|/etc/datadog-agent/managed/datadog-agent/experiment/system-probe.yaml [Service] Type=simple PIDFile=/opt/datadog-packages/datadog-agent/experiment/run/system-probe.pid Restart=on-failure -Environment="DD_FLEET_POLICIES_DIR=/etc/datadog-packages/datadog-agent/experiment" +Environment="DD_FLEET_POLICIES_DIR=/etc/datadog-agent/managed/datadog-agent/experiment" ExecStart=/opt/datadog-packages/datadog-agent/experiment/embedded/bin/system-probe run --config=/etc/datadog-agent/system-probe.yaml --pid=/opt/datadog-packages/datadog-agent/experiment/run/system-probe.pid # Since systemd 229, should be in [Unit] but in order to support systemd <229, # it is also supported to have it here. diff --git a/pkg/fleet/installer/service/embedded/datadog-agent-sysprobe.service b/pkg/fleet/installer/service/embedded/datadog-agent-sysprobe.service index 9afe7d60a49d7..7465b1fce1889 100644 --- a/pkg/fleet/installer/service/embedded/datadog-agent-sysprobe.service +++ b/pkg/fleet/installer/service/embedded/datadog-agent-sysprobe.service @@ -5,13 +5,13 @@ Before=datadog-agent.service After=network.target sys-kernel-debug.mount BindsTo=datadog-agent.service ConditionPathExists=|/etc/datadog-agent/system-probe.yaml -ConditionPathExists=|/etc/datadog-packages/datadog-agent/stable/system-probe.yaml +ConditionPathExists=|/etc/datadog-agent/managed/datadog-agent/stable/system-probe.yaml [Service] Type=simple PIDFile=/opt/datadog-packages/datadog-agent/stable/run/system-probe.pid Restart=on-failure -Environment="DD_FLEET_POLICIES_DIR=/etc/datadog-packages/datadog-agent/stable" +Environment="DD_FLEET_POLICIES_DIR=/etc/datadog-agent/managed/datadog-agent/stable" ExecStart=/opt/datadog-packages/datadog-agent/stable/embedded/bin/system-probe run --config=/etc/datadog-agent/system-probe.yaml --pid=/opt/datadog-packages/datadog-agent/stable/run/system-probe.pid # Since systemd 229, should be in [Unit] but in order to support systemd <229, # it is also supported to have it here. diff --git a/pkg/fleet/installer/service/embedded/datadog-agent-trace-exp.service b/pkg/fleet/installer/service/embedded/datadog-agent-trace-exp.service index 17bc119e85290..b05cf8dd9e86e 100644 --- a/pkg/fleet/installer/service/embedded/datadog-agent-trace-exp.service +++ b/pkg/fleet/installer/service/embedded/datadog-agent-trace-exp.service @@ -8,7 +8,7 @@ PIDFile=/opt/datadog-packages/datadog-agent/experiment/run/trace-agent.pid User=dd-agent Restart=on-failure EnvironmentFile=-/etc/datadog-agent/environment -Environment="DD_FLEET_POLICIES_DIR=/etc/datadog-packages/datadog-agent/experiment" +Environment="DD_FLEET_POLICIES_DIR=/etc/datadog-agent/managed/datadog-agent/experiment" ExecStart=/opt/datadog-packages/datadog-agent/experiment/embedded/bin/trace-agent --config /etc/datadog-agent/datadog.yaml --pidfile /opt/datadog-packages/datadog-agent/experiment/run/trace-agent.pid # Since systemd 229, should be in [Unit] but in order to support systemd <229, # it is also supported to have it here. diff --git a/pkg/fleet/installer/service/embedded/datadog-agent-trace.service b/pkg/fleet/installer/service/embedded/datadog-agent-trace.service index c3568e7004738..94ec7fc0a70d5 100644 --- a/pkg/fleet/installer/service/embedded/datadog-agent-trace.service +++ b/pkg/fleet/installer/service/embedded/datadog-agent-trace.service @@ -9,7 +9,7 @@ PIDFile=/opt/datadog-packages/datadog-agent/stable/run/trace-agent.pid User=dd-agent Restart=on-failure EnvironmentFile=-/etc/datadog-agent/environment -Environment="DD_FLEET_POLICIES_DIR=/etc/datadog-packages/datadog-agent/stable" +Environment="DD_FLEET_POLICIES_DIR=/etc/datadog-agent/managed/datadog-agent/stable" ExecStart=/opt/datadog-packages/datadog-agent/stable/embedded/bin/trace-agent --config /etc/datadog-agent/datadog.yaml --pidfile /opt/datadog-packages/datadog-agent/stable/run/trace-agent.pid # Since systemd 229, should be in [Unit] but in order to support systemd <229, # it is also supported to have it here. diff --git a/pkg/fleet/installer/service/embedded/datadog-agent.service b/pkg/fleet/installer/service/embedded/datadog-agent.service index 0f527777fc2e1..32ec1e68557c0 100644 --- a/pkg/fleet/installer/service/embedded/datadog-agent.service +++ b/pkg/fleet/installer/service/embedded/datadog-agent.service @@ -11,7 +11,7 @@ PIDFile=/opt/datadog-packages/datadog-agent/stable/run/agent.pid User=dd-agent Restart=on-failure EnvironmentFile=-/etc/datadog-agent/environment -Environment="DD_FLEET_POLICIES_DIR=/etc/datadog-packages/datadog-agent/stable" +Environment="DD_FLEET_POLICIES_DIR=/etc/datadog-agent/managed/datadog-agent/stable" ExecStart=/opt/datadog-packages/datadog-agent/stable/bin/agent/agent run -p /opt/datadog-packages/datadog-agent/stable/run/agent.pid # Since systemd 229, should be in [Unit] but in order to support systemd <229, # it is also supported to have it here. diff --git a/pkg/fleet/internal/paths/installer_paths.go b/pkg/fleet/internal/paths/installer_paths.go index f5c00ac12ebd9..60bcdf5ec8e96 100644 --- a/pkg/fleet/internal/paths/installer_paths.go +++ b/pkg/fleet/internal/paths/installer_paths.go @@ -12,7 +12,7 @@ const ( // PackagesPath is the path to the packages directory. PackagesPath = "/opt/datadog-packages" // ConfigsPath is the path to the Fleet-managed configuration directory. - ConfigsPath = "/etc/datadog-packages" + ConfigsPath = "/etc/datadog-agent/managed" // LocksPath is the path to the packages locks directory. LocksPath = "/opt/datadog-packages/run/locks" // RootTmpDir is the temporary path where the bootstrapper will be extracted to. diff --git a/test/new-e2e/tests/installer/unix/upgrade_scenario_test.go b/test/new-e2e/tests/installer/unix/upgrade_scenario_test.go index 537dc408201e2..2ed3db8edffca 100644 --- a/test/new-e2e/tests/installer/unix/upgrade_scenario_test.go +++ b/test/new-e2e/tests/installer/unix/upgrade_scenario_test.go @@ -403,7 +403,7 @@ func (s *upgradeScenarioSuite) TestConfigUpgradeSuccessful() { s.host.WaitForFileExists(true, "/opt/datadog-packages/run/installer.sock") state := s.host.State() - state.AssertSymlinkExists("/etc/datadog-packages/datadog-agent/stable", "/etc/datadog-packages/datadog-agent/e94406c45ae766b7d34d2793e4759b9c4d15ed5d5e2b7f73ce1bf0e6836f728d", "root", "root") + state.AssertSymlinkExists("/etc/datadog-agent/managed/datadog-agent/stable", "/etc/datadog-agent/managed/datadog-agent/e94406c45ae766b7d34d2793e4759b9c4d15ed5d5e2b7f73ce1bf0e6836f728d", "root", "root") localCDN.UpdateLayer("config", "\"log_level\": \"error\"") s.executeConfigGoldenPath(localCDN.DirPath, "c78c5e96820c89c6cbc178ddba4ce20a167138a3a580ed4637369a9c5ed804c3") @@ -437,7 +437,7 @@ func (s *upgradeScenarioSuite) TestConfigUpgradeNewAgents() { ) state := s.host.State() - state.AssertSymlinkExists("/etc/datadog-packages/datadog-agent/stable", "/etc/datadog-packages/datadog-agent/e94406c45ae766b7d34d2793e4759b9c4d15ed5d5e2b7f73ce1bf0e6836f728d", "root", "root") + state.AssertSymlinkExists("/etc/datadog-agent/managed/datadog-agent/stable", "/etc/datadog-agent/managed/datadog-agent/e94406c45ae766b7d34d2793e4759b9c4d15ed5d5e2b7f73ce1bf0e6836f728d", "root", "root") // Enables security agent & sysprobe localCDN.AddLayer("config", ` @@ -511,8 +511,8 @@ func (s *upgradeScenarioSuite) TestConfigUpgradeNewAgents() { ) state = s.host.State() - state.AssertSymlinkExists("/etc/datadog-packages/datadog-agent/stable", fmt.Sprintf("/etc/datadog-packages/datadog-agent/%s", hash), "root", "root") - state.AssertSymlinkExists("/etc/datadog-packages/datadog-agent/experiment", fmt.Sprintf("/etc/datadog-packages/datadog-agent/%s", hash), "root", "root") + state.AssertSymlinkExists("/etc/datadog-agent/managed/datadog-agent/stable", fmt.Sprintf("/etc/datadog-agent/managed/datadog-agent/%s", hash), "root", "root") + state.AssertSymlinkExists("/etc/datadog-agent/managed/datadog-agent/experiment", fmt.Sprintf("/etc/datadog-agent/managed/datadog-agent/%s", hash), "root", "root") } func (s *upgradeScenarioSuite) TestUpgradeConfigFromExistingExperiment() { @@ -831,7 +831,7 @@ func (s *upgradeScenarioSuite) assertSuccessfulConfigStartExperiment(timestamp h ) state := s.host.State() - state.AssertSymlinkExists("/etc/datadog-packages/datadog-agent/experiment", fmt.Sprintf("/etc/datadog-packages/datadog-agent/%s", hash), "root", "root") + state.AssertSymlinkExists("/etc/datadog-agent/managed/datadog-agent/experiment", fmt.Sprintf("/etc/datadog-agent/managed/datadog-agent/%s", hash), "root", "root") } func (s *upgradeScenarioSuite) assertSuccessfulConfigPromoteExperiment(timestamp host.JournaldTimestamp, hash string) { @@ -852,8 +852,8 @@ func (s *upgradeScenarioSuite) assertSuccessfulConfigPromoteExperiment(timestamp ) state := s.host.State() - state.AssertSymlinkExists("/etc/datadog-packages/datadog-agent/stable", fmt.Sprintf("/etc/datadog-packages/datadog-agent/%s", hash), "root", "root") - state.AssertSymlinkExists("/etc/datadog-packages/datadog-agent/experiment", fmt.Sprintf("/etc/datadog-packages/datadog-agent/%s", hash), "root", "root") + state.AssertSymlinkExists("/etc/datadog-agent/managed/datadog-agent/stable", fmt.Sprintf("/etc/datadog-agent/managed/datadog-agent/%s", hash), "root", "root") + state.AssertSymlinkExists("/etc/datadog-agent/managed/datadog-agent/experiment", fmt.Sprintf("/etc/datadog-agent/managed/datadog-agent/%s", hash), "root", "root") } func (s *upgradeScenarioSuite) assertSuccessfulConfigStopExperiment(timestamp host.JournaldTimestamp) { @@ -872,7 +872,7 @@ func (s *upgradeScenarioSuite) assertSuccessfulConfigStopExperiment(timestamp ho ) state := s.host.State() - state.AssertSymlinkExists("/etc/datadog-packages/datadog-agent/experiment", "/etc/datadog-packages/datadog-agent/stable", "root", "root") + state.AssertSymlinkExists("/etc/datadog-agent/managed/datadog-agent/experiment", "/etc/datadog-agent/managed/datadog-agent/stable", "root", "root") } func (s *upgradeScenarioSuite) getInstallerStatus() installerStatus { From a24e59bb77f1008bb56267ff367e9148e6cdbd84 Mon Sep 17 00:00:00 2001 From: Ken Schneider <103530259+ken-schneider@users.noreply.github.com> Date: Wed, 27 Nov 2024 17:27:13 -0500 Subject: [PATCH 111/439] [Network Path] Use reserved TCP port (#31295) --- pkg/networkpath/traceroute/tcp/tcpv4_unix.go | 13 +++++++++---- pkg/networkpath/traceroute/tcp/utils.go | 16 ++++++++++++++++ pkg/networkpath/traceroute/tcp/utils_test.go | 15 +++++++++++++++ 3 files changed, 40 insertions(+), 4 deletions(-) diff --git a/pkg/networkpath/traceroute/tcp/tcpv4_unix.go b/pkg/networkpath/traceroute/tcp/tcpv4_unix.go index 2952d504b2b26..32cf7e19ee11e 100644 --- a/pkg/networkpath/traceroute/tcp/tcpv4_unix.go +++ b/pkg/networkpath/traceroute/tcp/tcpv4_unix.go @@ -24,15 +24,11 @@ import ( func (t *TCPv4) TracerouteSequential() (*Results, error) { // Get local address for the interface that connects to this // host and store in in the probe - // - // TODO: do this once for the probe and hang on to the - // listener until we decide to close the probe addr, err := localAddrForHost(t.Target, t.DestPort) if err != nil { return nil, fmt.Errorf("failed to get local address for target: %w", err) } t.srcIP = addr.IP - t.srcPort = addr.AddrPort().Port() // So far I haven't had success trying to simply create a socket // using syscalls directly, but in theory doing so would allow us @@ -51,6 +47,15 @@ func (t *TCPv4) TracerouteSequential() (*Results, error) { return nil, fmt.Errorf("failed to get raw ICMP listener: %w", err) } + // Create a TCP listener with port 0 to get a random port from the OS + // and reserve it for the duration of the traceroute + port, tcpListener, err := reserveLocalPort() + if err != nil { + return nil, fmt.Errorf("failed to create TCP listener: %w", err) + } + defer tcpListener.Close() + t.srcPort = port + // Create a raw TCP listener to catch the TCP response from our final // hop if we get one tcpConn, err := net.ListenPacket("ip4:tcp", addr.IP.String()) diff --git a/pkg/networkpath/traceroute/tcp/utils.go b/pkg/networkpath/traceroute/tcp/utils.go index 4e48dc7b42828..ae7d507f23940 100644 --- a/pkg/networkpath/traceroute/tcp/utils.go +++ b/pkg/networkpath/traceroute/tcp/utils.go @@ -76,6 +76,22 @@ func localAddrForHost(destIP net.IP, destPort uint16) (*net.UDPAddr, error) { return localUDPAddr, nil } +// reserveLocalPort reserves an ephemeral TCP port +// and returns both the listener and port because the +// listener should be held until the port is no longer +// in use +func reserveLocalPort() (uint16, net.Listener, error) { + // Create a TCP listener with port 0 to get a random port from the OS + // and reserve it for the duration of the traceroute + tcpListener, err := net.Listen("tcp", ":0") + if err != nil { + return 0, nil, fmt.Errorf("failed to create TCP listener: %w", err) + } + tcpAddr := tcpListener.Addr().(*net.TCPAddr) + + return uint16(tcpAddr.Port), tcpListener, nil +} + // createRawTCPSyn creates a TCP packet with the specified parameters func createRawTCPSyn(sourceIP net.IP, sourcePort uint16, destIP net.IP, destPort uint16, seqNum uint32, ttl int) (*ipv4.Header, []byte, error) { ipHdr, packet, hdrlen, err := createRawTCPSynBuffer(sourceIP, sourcePort, destIP, destPort, seqNum, ttl) diff --git a/pkg/networkpath/traceroute/tcp/utils_test.go b/pkg/networkpath/traceroute/tcp/utils_test.go index 4542020a73249..d79cda12ac5da 100644 --- a/pkg/networkpath/traceroute/tcp/utils_test.go +++ b/pkg/networkpath/traceroute/tcp/utils_test.go @@ -8,6 +8,7 @@ package tcp import ( + "fmt" "net" "reflect" "runtime" @@ -28,6 +29,20 @@ var ( innerDstIP = net.ParseIP("192.168.1.1") ) +func Test_reserveLocalPort(t *testing.T) { + // WHEN we reserve a local port + port, listener, err := reserveLocalPort() + require.NoError(t, err) + defer listener.Close() + require.NotNil(t, listener) + + // THEN we should not be able to get another connection + // on the same port + conn2, err := net.Listen("tcp", fmt.Sprintf("0.0.0.0:%d", port)) + assert.Error(t, err) + assert.Nil(t, conn2) +} + func Test_createRawTCPSyn(t *testing.T) { if runtime.GOOS == "darwin" { t.Skip("Test_createRawTCPSyn is broken on macOS") From 79b975d866143b84f6d4ce34b564b9a135dce105 Mon Sep 17 00:00:00 2001 From: "Brian L. Troutwine" Date: Wed, 27 Nov 2024 17:15:17 -0800 Subject: [PATCH 112/439] Introduce a quality gate experiment for "usual" logs tailing (#31326) Signed-off-by: Brian L. Troutwine --- .../conf.d/disk-listener.d/conf.yaml | 5 +++ .../datadog-agent/datadog.yaml | 19 ++++++++++ .../cases/quality_gate_logs/experiment.yaml | 38 +++++++++++++++++++ .../quality_gate_logs/lading/lading.yaml | 27 +++++++++++++ 4 files changed, 89 insertions(+) create mode 100644 test/regression/cases/quality_gate_logs/datadog-agent/conf.d/disk-listener.d/conf.yaml create mode 100644 test/regression/cases/quality_gate_logs/datadog-agent/datadog.yaml create mode 100644 test/regression/cases/quality_gate_logs/experiment.yaml create mode 100644 test/regression/cases/quality_gate_logs/lading/lading.yaml diff --git a/test/regression/cases/quality_gate_logs/datadog-agent/conf.d/disk-listener.d/conf.yaml b/test/regression/cases/quality_gate_logs/datadog-agent/conf.d/disk-listener.d/conf.yaml new file mode 100644 index 0000000000000..ec51a59de1c46 --- /dev/null +++ b/test/regression/cases/quality_gate_logs/datadog-agent/conf.d/disk-listener.d/conf.yaml @@ -0,0 +1,5 @@ +logs: + - type: file + path: "/smp-shared/*.log" + service: "my-service" + source: "my-client-app" diff --git a/test/regression/cases/quality_gate_logs/datadog-agent/datadog.yaml b/test/regression/cases/quality_gate_logs/datadog-agent/datadog.yaml new file mode 100644 index 0000000000000..d5aa08d9135ed --- /dev/null +++ b/test/regression/cases/quality_gate_logs/datadog-agent/datadog.yaml @@ -0,0 +1,19 @@ +auth_token_file_path: /tmp/agent-auth-token + +# Disable cloud detection. This stops the Agent from poking around the +# execution environment & network. This is particularly important if the target +# has network access. +cloud_provider_metadata: [] + +dd_url: http://127.0.0.1:9091 + +logs_enabled: true +logs_config: + logs_dd_url: 127.0.0.1:9092 + logs_no_ssl: true + force_use_http: true + +process_config.process_dd_url: http://localhost:9093 + +telemetry.enabled: true +telemetry.checks: '*' diff --git a/test/regression/cases/quality_gate_logs/experiment.yaml b/test/regression/cases/quality_gate_logs/experiment.yaml new file mode 100644 index 0000000000000..b1b2d9ee9c02b --- /dev/null +++ b/test/regression/cases/quality_gate_logs/experiment.yaml @@ -0,0 +1,38 @@ +optimization_goal: cpu +erratic: false + +target: + name: datadog-agent + command: /bin/entrypoint.sh + cpu_allotment: 8 + memory_allotment: 4GiB + + environment: + DD_API_KEY: 00000001 + DD_HOSTNAME: smp-regression + + profiling_environment: + DD_INTERNAL_PROFILING_BLOCK_PROFILE_RATE: 10000 + DD_INTERNAL_PROFILING_CPU_DURATION: 1m + DD_INTERNAL_PROFILING_DELTA_PROFILES: true + DD_INTERNAL_PROFILING_ENABLED: true + DD_INTERNAL_PROFILING_ENABLE_GOROUTINE_STACKTRACES: true + DD_INTERNAL_PROFILING_MUTEX_PROFILE_FRACTION: 10 + DD_INTERNAL_PROFILING_PERIOD: 1m + DD_INTERNAL_PROFILING_UNIX_SOCKET: /var/run/datadog/apm.socket + DD_PROFILING_EXECUTION_TRACE_ENABLED: true + DD_PROFILING_EXECUTION_TRACE_PERIOD: 1m + DD_PROFILING_WAIT_PROFILE: true + +checks: + - name: memory_usage + description: "Memory usage" + bounds: + series: total_rss_bytes + upper_bound: 440MiB + + - name: lost_bytes + description: "Allowable bytes not polled by log Agent" + bounds: + series: lost_bytes + upper_bound: 0KiB diff --git a/test/regression/cases/quality_gate_logs/lading/lading.yaml b/test/regression/cases/quality_gate_logs/lading/lading.yaml new file mode 100644 index 0000000000000..44bd1dda27ef0 --- /dev/null +++ b/test/regression/cases/quality_gate_logs/lading/lading.yaml @@ -0,0 +1,27 @@ +generator: + - file_gen: + logrotate_fs: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, + 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131] + load_profile: + constant: 500KiB + concurrent_logs: 2 + maximum_bytes_per_log: 50MiB + total_rotations: 5 + max_depth: 0 + variant: "ascii" + maximum_prebuild_cache_size_bytes: 300MiB + mount_point: /smp-shared + +blackhole: + - http: + binding_addr: "127.0.0.1:9091" + - http: + binding_addr: "127.0.0.1:9092" + response_delay_millis: 75 + - http: + binding_addr: "127.0.0.1:9093" + +target_metrics: + - prometheus: + uri: "http://127.0.0.1:5000/telemetry" From b1170d57bda3068b14c92edd4ce757061b38bd5a Mon Sep 17 00:00:00 2001 From: Arthur Bellal Date: Thu, 28 Nov 2024 09:28:31 +0100 Subject: [PATCH 113/439] (fleet) move /opt/datadog-installer/tmp to /opt/datadog-packages/tmp (#31538) --- pkg/fleet/installer/repository/repositories.go | 4 ++-- pkg/fleet/installer/repository/repositories_test.go | 4 ++++ pkg/fleet/installer/service/datadog_installer.go | 8 ++++---- pkg/fleet/internal/paths/installer_paths.go | 2 +- .../tests/installer/unix/package_installer_test.go | 2 +- 5 files changed, 12 insertions(+), 8 deletions(-) diff --git a/pkg/fleet/installer/repository/repositories.go b/pkg/fleet/installer/repository/repositories.go index b03364dab8198..b63714eb7acdc 100644 --- a/pkg/fleet/installer/repository/repositories.go +++ b/pkg/fleet/installer/repository/repositories.go @@ -58,8 +58,8 @@ func (r *Repositories) loadRepositories() (map[string]*Repository, error) { // Temporary dir created by Repositories.MkdirTemp, ignore continue } - if d.Name() == "run" { - // run dir, ignore + if d.Name() == "run" || d.Name() == "tmp" { + // run/tmp dir, ignore continue } repo := r.newRepository(d.Name()) diff --git a/pkg/fleet/installer/repository/repositories_test.go b/pkg/fleet/installer/repository/repositories_test.go index 00b38d2509542..ab66494b826ef 100644 --- a/pkg/fleet/installer/repository/repositories_test.go +++ b/pkg/fleet/installer/repository/repositories_test.go @@ -68,10 +68,14 @@ func TestLoadRepositories(t *testing.T) { os.Mkdir(path.Join(rootDir, "datadog-agent"), 0755) os.Mkdir(path.Join(rootDir, tempDirPrefix+"2394812349"), 0755) + os.Mkdir(path.Join(rootDir, "run"), 0755) + os.Mkdir(path.Join(rootDir, "tmp"), 0755) repositories, err := NewRepositories(rootDir, runDir).loadRepositories() assert.NoError(t, err) assert.Len(t, repositories, 1) assert.Contains(t, repositories, "datadog-agent") assert.NotContains(t, repositories, tempDirPrefix+"2394812349") + assert.NotContains(t, repositories, "run") + assert.NotContains(t, repositories, "tmp") } diff --git a/pkg/fleet/installer/service/datadog_installer.go b/pkg/fleet/installer/service/datadog_installer.go index ca41e32956916..722766a6a0659 100644 --- a/pkg/fleet/installer/service/datadog_installer.go +++ b/pkg/fleet/installer/service/datadog_installer.go @@ -108,13 +108,13 @@ func SetupInstaller(ctx context.Context) (err error) { } // Enforce that the directory exists. It should be created by the bootstrapper but // older versions don't do it - err = os.MkdirAll("/opt/datadog-installer/tmp", 0755) + err = os.MkdirAll("/opt/datadog-packages/tmp", 0755) if err != nil { - return fmt.Errorf("error creating /opt/datadog-installer/tmp: %w", err) + return fmt.Errorf("error creating /opt/datadog-packages/tmp: %w", err) } - err = os.Chown("/opt/datadog-installer/tmp", ddAgentUID, ddAgentGID) + err = os.Chown("/opt/datadog-packages/tmp", ddAgentUID, ddAgentGID) if err != nil { - return fmt.Errorf("error changing owner of /opt/datadog-installer/tmp: %w", err) + return fmt.Errorf("error changing owner of /opt/datadog-packages/tmp: %w", err) } // Create installer path symlink err = os.Symlink("/opt/datadog-packages/datadog-installer/stable/bin/installer/installer", "/usr/bin/datadog-installer") diff --git a/pkg/fleet/internal/paths/installer_paths.go b/pkg/fleet/internal/paths/installer_paths.go index 60bcdf5ec8e96..99b3193dd7a03 100644 --- a/pkg/fleet/internal/paths/installer_paths.go +++ b/pkg/fleet/internal/paths/installer_paths.go @@ -16,7 +16,7 @@ const ( // LocksPath is the path to the packages locks directory. LocksPath = "/opt/datadog-packages/run/locks" // RootTmpDir is the temporary path where the bootstrapper will be extracted to. - RootTmpDir = "/opt/datadog-installer/tmp" + RootTmpDir = "/opt/datadog-packages/tmp" // DefaultUserConfigsDir is the default Agent configuration directory. DefaultUserConfigsDir = "/etc" // StableInstallerPath is the path to the stable installer binary. diff --git a/test/new-e2e/tests/installer/unix/package_installer_test.go b/test/new-e2e/tests/installer/unix/package_installer_test.go index e5a94ece0b18e..8588ee018d210 100644 --- a/test/new-e2e/tests/installer/unix/package_installer_test.go +++ b/test/new-e2e/tests/installer/unix/package_installer_test.go @@ -40,7 +40,7 @@ func (s *packageInstallerSuite) TestInstall() { state.AssertDirExists("/opt/datadog-packages/run/locks", 0777, "root", "root") state.AssertDirExists("/opt/datadog-installer", 0755, "root", "root") - state.AssertDirExists("/opt/datadog-installer/tmp", 0755, "dd-agent", "dd-agent") + state.AssertDirExists("/opt/datadog-packages/tmp", 0755, "dd-agent", "dd-agent") state.AssertDirExists("/opt/datadog-packages", 0755, "root", "root") state.AssertDirExists("/opt/datadog-packages/datadog-installer", 0755, "root", "root") From 25f2be9ee7a35e6f8fdcf030172ea8569dd21aeb Mon Sep 17 00:00:00 2001 From: Guy Arbitman Date: Thu, 28 Nov 2024 09:43:53 +0100 Subject: [PATCH 114/439] service discovery: tests: test binary lives until terminated (#31536) --- .../servicediscovery/apm/detect_nix_test.go | 1 + .../apm/testutil/instrumented/instrumented.go | 21 +++++++++++++++++-- .../testutil/instrumented2/instrumented2.go | 20 ++++++++++++++++-- 3 files changed, 38 insertions(+), 4 deletions(-) diff --git a/pkg/collector/corechecks/servicediscovery/apm/detect_nix_test.go b/pkg/collector/corechecks/servicediscovery/apm/detect_nix_test.go index 2eba255192838..898e1dcaa9c30 100644 --- a/pkg/collector/corechecks/servicediscovery/apm/detect_nix_test.go +++ b/pkg/collector/corechecks/servicediscovery/apm/detect_nix_test.go @@ -307,6 +307,7 @@ func TestGoDetector(t *testing.T) { require.NoError(t, cmd.Start()) t.Cleanup(func() { _ = cmd.Process.Kill() + cmd.Wait() }) require.Eventually(t, func() bool { if cmd.Process.Pid == 0 { diff --git a/pkg/collector/corechecks/servicediscovery/apm/testutil/instrumented/instrumented.go b/pkg/collector/corechecks/servicediscovery/apm/testutil/instrumented/instrumented.go index 74b92599e66cb..6616ec99fefcb 100644 --- a/pkg/collector/corechecks/servicediscovery/apm/testutil/instrumented/instrumented.go +++ b/pkg/collector/corechecks/servicediscovery/apm/testutil/instrumented/instrumented.go @@ -8,12 +8,29 @@ package main import ( - "time" + "fmt" + "os" + "os/signal" + "syscall" "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" ) func main() { tracer.Start() - time.Sleep(time.Second * 20) + + signalChan := make(chan os.Signal, 1) + done := make(chan bool, 1) + + signal.Notify(signalChan, os.Interrupt, syscall.SIGTERM, syscall.SIGINT) + + go func() { + <-signalChan + done <- true + }() + + fmt.Println("Running... Press Ctrl+C to exit.") + + <-done // Block until a signal is received + fmt.Println("Gracefully shutting down.") } diff --git a/pkg/collector/corechecks/servicediscovery/apm/testutil/instrumented2/instrumented2.go b/pkg/collector/corechecks/servicediscovery/apm/testutil/instrumented2/instrumented2.go index b52588d9684a8..8b78293ec5bbf 100644 --- a/pkg/collector/corechecks/servicediscovery/apm/testutil/instrumented2/instrumented2.go +++ b/pkg/collector/corechecks/servicediscovery/apm/testutil/instrumented2/instrumented2.go @@ -9,7 +9,9 @@ package main import ( "fmt" - "time" + "os" + "os/signal" + "syscall" "github.com/DataDog/dd-trace-go/v2/ddtrace/tracer" ) @@ -20,5 +22,19 @@ func main() { fmt.Println(err) } - time.Sleep(time.Second * 20) + // Create a channel to listen for OS signals + signalChan := make(chan os.Signal, 1) + done := make(chan bool, 1) + + signal.Notify(signalChan, os.Interrupt, syscall.SIGTERM, syscall.SIGINT) + + go func() { + <-signalChan + done <- true + }() + + fmt.Println("Running... Press Ctrl+C to exit.") + + <-done // Block until a signal is received + fmt.Println("Gracefully shutting down.") } From 462437bf04f6609440c1bd8ff57b56ed570b28d9 Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Thu, 28 Nov 2024 10:06:29 +0100 Subject: [PATCH 115/439] [CWS] attach `GlobalTags` to CWS custom events on fargate/ebpfless mode (#31370) --- pkg/security/module/ecs_tags.go | 53 ------------------- pkg/security/module/noecs_tags.go | 13 ----- pkg/security/module/server.go | 46 +++++++++------- pkg/security/probe/custom_events.go | 20 +++++-- pkg/security/probe/field_handlers_ebpf.go | 3 +- pkg/security/probe/field_handlers_ebpfless.go | 4 +- pkg/security/probe/probe_ebpfless.go | 9 +--- pkg/security/proto/ebpfless/msg.go | 7 +-- pkg/security/ptracer/container_context.go | 24 +-------- pkg/security/resolvers/tags/resolver.go | 13 +++-- pkg/security/secl/model/model.go | 11 ++-- pkg/security/seclwin/model/model.go | 11 ++-- pkg/security/tests/fake_tags_resolver.go | 15 ++++++ 13 files changed, 85 insertions(+), 144 deletions(-) delete mode 100644 pkg/security/module/ecs_tags.go delete mode 100644 pkg/security/module/noecs_tags.go diff --git a/pkg/security/module/ecs_tags.go b/pkg/security/module/ecs_tags.go deleted file mode 100644 index 92564bd944acf..0000000000000 --- a/pkg/security/module/ecs_tags.go +++ /dev/null @@ -1,53 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -//go:build docker - -// Package module holds module related files -package module - -import ( - "context" - "strings" - "time" - - ecsmeta "github.com/DataDog/datadog-agent/pkg/util/ecs/metadata" -) - -func getCurrentECSTaskTags() (map[string]string, error) { - client, err := ecsmeta.V3orV4FromCurrentTask() - if err != nil { - return nil, err - } - - ctx, cancel := context.WithTimeout(context.Background(), time.Duration(5*time.Second)) - defer cancel() - - task, err := client.GetTask(ctx) - if err != nil { - return nil, err - } - - cont, err := client.GetContainer(ctx) - if err != nil { - return nil, err - } - imageName := cont.Name - imageTag := "" - image := strings.Split(cont.Image, ":") - if len(image) == 2 { - imageName = image[0] - imageTag = image[1] - } - - return map[string]string{ - "task_name": task.Family, - "task_family": task.Family, - "task_arn": task.TaskARN, - "task_version": task.Version, - "image_name": imageName, - "image_tag": imageTag, - }, nil -} diff --git a/pkg/security/module/noecs_tags.go b/pkg/security/module/noecs_tags.go deleted file mode 100644 index 93e2a2467d4b1..0000000000000 --- a/pkg/security/module/noecs_tags.go +++ /dev/null @@ -1,13 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -//go:build !docker - -// Package module holds module related files -package module - -func getCurrentECSTaskTags() (map[string]string, error) { - return nil, nil -} diff --git a/pkg/security/module/server.go b/pkg/security/module/server.go index 61ebecea1bbe0..20998d0660622 100644 --- a/pkg/security/module/server.go +++ b/pkg/security/module/server.go @@ -21,7 +21,7 @@ import ( "github.com/mailru/easyjson" "go.uber.org/atomic" - "github.com/DataDog/datadog-agent/pkg/config/env" + "github.com/DataDog/datadog-agent/comp/core/tagger/types" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/security/common" "github.com/DataDog/datadog-agent/pkg/security/config" @@ -38,6 +38,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/seclog" "github.com/DataDog/datadog-agent/pkg/security/serializers" "github.com/DataDog/datadog-agent/pkg/security/utils" + "github.com/DataDog/datadog-agent/pkg/util/fargate" "github.com/DataDog/datadog-agent/pkg/util/log" "github.com/DataDog/datadog-agent/pkg/util/startstop" "github.com/DataDog/datadog-agent/pkg/version" @@ -125,7 +126,6 @@ type APIServer struct { policiesStatusLock sync.RWMutex policiesStatus []*api.PolicyStatus msgSender MsgSender - ecsTags map[string]string stopChan chan struct{} stopper startstop.Stopper @@ -218,14 +218,15 @@ func (a *APIServer) dequeue(now time.Time, cb func(msg *pendingMsg) bool) { }) } -func (a *APIServer) updateMsgTags(msg *api.SecurityEventMessage) { - // apply ecs tag if possible - if a.ecsTags != nil { - for key, value := range a.ecsTags { - if !slices.ContainsFunc(msg.Tags, func(tag string) bool { - return strings.HasPrefix(tag, key+":") +func (a *APIServer) updateMsgTags(msg *api.SecurityEventMessage, includeGlobalTags bool) { + // on fargate, append global tags + if includeGlobalTags && fargate.IsFargateInstance() { + for _, tag := range a.getGlobalTags() { + key, _, _ := strings.Cut(tag, ":") + if !slices.ContainsFunc(msg.Tags, func(t string) bool { + return strings.HasPrefix(t, key+":") }) { - msg.Tags = append(msg.Tags, key+":"+value) + msg.Tags = append(msg.Tags, tag) } } } @@ -277,7 +278,7 @@ func (a *APIServer) start(ctx context.Context) { Service: msg.service, Tags: msg.tags, } - a.updateMsgTags(m) + a.updateMsgTags(m, false) a.msgSender.Send(m, a.expireEvent) @@ -403,7 +404,7 @@ func (a *APIServer) SendEvent(rule *rules.Rule, event events.Event, extTagsCb fu Service: service, Tags: tags, } - a.updateMsgTags(m) + a.updateMsgTags(m, true) a.msgSender.Send(m, a.expireEvent) } @@ -540,6 +541,21 @@ func (a *APIServer) SetCWSConsumer(consumer *CWSConsumer) { a.cwsConsumer = consumer } +func (a *APIServer) getGlobalTags() []string { + tagger := a.probe.Opts.Tagger + + if tagger == nil { + return nil + } + + globalTags, err := tagger.GlobalTags(types.OrchestratorCardinality) + if err != nil { + seclog.Errorf("failed to get global tags: %v", err) + return nil + } + return globalTags +} + // NewAPIServer returns a new gRPC event server func NewAPIServer(cfg *config.RuntimeSecurityConfig, probe *sprobe.Probe, msgSender MsgSender, client statsd.ClientInterface, selfTester *selftests.SelfTester) (*APIServer, error) { stopper := startstop.NewSerialStopper() @@ -574,13 +590,5 @@ func NewAPIServer(cfg *config.RuntimeSecurityConfig, probe *sprobe.Probe, msgSen } } - if env.IsECS() || env.IsECSFargate() { - tags, err := getCurrentECSTaskTags() - if err != nil { - return nil, err - } - as.ecsTags = tags - } - return as, nil } diff --git a/pkg/security/probe/custom_events.go b/pkg/security/probe/custom_events.go index 13c31b8b4bc47..6d1d61bc83a93 100644 --- a/pkg/security/probe/custom_events.go +++ b/pkg/security/probe/custom_events.go @@ -11,11 +11,14 @@ package probe import ( + coretags "github.com/DataDog/datadog-agent/comp/core/tagger/tags" "github.com/DataDog/datadog-agent/pkg/process/procutil" "github.com/DataDog/datadog-agent/pkg/security/events" "github.com/DataDog/datadog-agent/pkg/security/proto/ebpfless" + "github.com/DataDog/datadog-agent/pkg/security/resolvers/tags" "github.com/DataDog/datadog-agent/pkg/security/secl/model" "github.com/DataDog/datadog-agent/pkg/security/secl/rules" + "github.com/DataDog/datadog-agent/pkg/security/seclog" "github.com/DataDog/datadog-agent/pkg/security/serializers" "github.com/DataDog/datadog-agent/pkg/security/utils" ) @@ -71,7 +74,7 @@ func (e EBPFLessHelloMsgEvent) ToJSON() ([]byte, error) { } // NewEBPFLessHelloMsgEvent returns a eBPFLess hello custom event -func NewEBPFLessHelloMsgEvent(acc *events.AgentContainerContext, msg *ebpfless.HelloMsg, scrubber *procutil.DataScrubber) (*rules.Rule, *events.CustomEvent) { +func NewEBPFLessHelloMsgEvent(acc *events.AgentContainerContext, msg *ebpfless.HelloMsg, scrubber *procutil.DataScrubber, tagger tags.Tagger) (*rules.Rule, *events.CustomEvent) { args := msg.EntrypointArgs if scrubber != nil { args, _ = scrubber.ScrubCommand(msg.EntrypointArgs) @@ -81,9 +84,18 @@ func NewEBPFLessHelloMsgEvent(acc *events.AgentContainerContext, msg *ebpfless.H NSID: msg.NSID, } evt.Container.ID = msg.ContainerContext.ID - evt.Container.Name = msg.ContainerContext.Name - evt.Container.ImageShortName = msg.ContainerContext.ImageShortName - evt.Container.ImageTag = msg.ContainerContext.ImageTag + + if tagger != nil { + tags, err := tags.GetTagsOfContainer(tagger, msg.ContainerContext.ID) + if err != nil { + seclog.Errorf("Failed to get tags for container %s: %v", msg.ContainerContext.ID, err) + } else { + evt.Container.Name = utils.GetTagValue(coretags.EcsContainerName, tags) + evt.Container.ImageShortName = utils.GetTagValue(coretags.ShortImage, tags) + evt.Container.ImageTag = utils.GetTagValue(coretags.ImageTag, tags) + } + } + evt.EntrypointArgs = args evt.FillCustomEventCommonFields(acc) diff --git a/pkg/security/probe/field_handlers_ebpf.go b/pkg/security/probe/field_handlers_ebpf.go index 98dd813e7b55a..12749266a8a56 100644 --- a/pkg/security/probe/field_handlers_ebpf.go +++ b/pkg/security/probe/field_handlers_ebpf.go @@ -577,9 +577,8 @@ func (fh *EBPFFieldHandlers) ResolveContainerCreatedAt(ev *model.Event, e *model // ResolveContainerTags resolves the container tags of the event func (fh *EBPFFieldHandlers) ResolveContainerTags(_ *model.Event, e *model.ContainerContext) []string { - if (!e.TagsResolved || len(e.Tags) == 0) && e.ContainerID != "" { + if len(e.Tags) == 0 && e.ContainerID != "" { e.Tags = fh.resolvers.TagsResolver.Resolve(string(e.ContainerID)) - e.TagsResolved = true } return e.Tags } diff --git a/pkg/security/probe/field_handlers_ebpfless.go b/pkg/security/probe/field_handlers_ebpfless.go index f5f7de0f6549d..1412808889772 100644 --- a/pkg/security/probe/field_handlers_ebpfless.go +++ b/pkg/security/probe/field_handlers_ebpfless.go @@ -197,10 +197,8 @@ func (fh *EBPFLessFieldHandlers) ResolveContainerCreatedAt(ev *model.Event, e *m // ResolveContainerTags resolves the container tags of the event func (fh *EBPFLessFieldHandlers) ResolveContainerTags(_ *model.Event, e *model.ContainerContext) []string { - // e.Tags is never empty because of image name and tag - if (!e.TagsResolved) && e.ContainerID != "" { + if len(e.Tags) == 0 && e.ContainerID != "" { e.Tags = fh.resolvers.TagsResolver.Resolve(string(e.ContainerID)) - e.TagsResolved = true } return e.Tags } diff --git a/pkg/security/probe/probe_ebpfless.go b/pkg/security/probe/probe_ebpfless.go index 684e52ae12947..aea829794c956 100644 --- a/pkg/security/probe/probe_ebpfless.go +++ b/pkg/security/probe/probe_ebpfless.go @@ -96,15 +96,14 @@ func (p *EBPFLessProbe) handleClientMsg(cl *client, msg *ebpfless.Message) { case ebpfless.MessageTypeHello: if cl.nsID == 0 { p.probe.DispatchCustomEvent( - NewEBPFLessHelloMsgEvent(p.GetAgentContainerContext(), msg.Hello, p.probe.scrubber), + NewEBPFLessHelloMsgEvent(p.GetAgentContainerContext(), msg.Hello, p.probe.scrubber, p.probe.Opts.Tagger), ) cl.nsID = msg.Hello.NSID if msg.Hello.ContainerContext != nil { cl.containerID = msg.Hello.ContainerContext.ID - cl.containerName = msg.Hello.ContainerContext.Name p.containerContexts[msg.Hello.ContainerContext.ID] = msg.Hello.ContainerContext - seclog.Infof("tracing started for container ID [%s] (Name: [%s]) with entrypoint %q", msg.Hello.ContainerContext.ID, msg.Hello.ContainerContext.Name, msg.Hello.EntrypointArgs) + seclog.Infof("tracing started for container ID [%s] with entrypoint %q", msg.Hello.ContainerContext.ID, msg.Hello.EntrypointArgs) } } case ebpfless.MessageTypeSyscall: @@ -303,10 +302,6 @@ func (p *EBPFLessProbe) handleSyscallMsg(cl *client, syscallMsg *ebpfless.Syscal event.ContainerContext.ContainerID = containerutils.ContainerID(syscallMsg.ContainerID) if containerContext, exists := p.containerContexts[syscallMsg.ContainerID]; exists { event.ContainerContext.CreatedAt = containerContext.CreatedAt - event.ContainerContext.Tags = []string{ - "image_name:" + containerContext.ImageShortName, - "image_tag:" + containerContext.ImageTag, - } } // copy span context if any diff --git a/pkg/security/proto/ebpfless/msg.go b/pkg/security/proto/ebpfless/msg.go index b683da4dff0f1..7ca6d7a8d5888 100644 --- a/pkg/security/proto/ebpfless/msg.go +++ b/pkg/security/proto/ebpfless/msg.go @@ -93,11 +93,8 @@ const ( // ContainerContext defines a container context type ContainerContext struct { - ID string - Name string - ImageShortName string - ImageTag string - CreatedAt uint64 + ID string + CreatedAt uint64 } // FcntlSyscallMsg defines a fcntl message diff --git a/pkg/security/ptracer/container_context.go b/pkg/security/ptracer/container_context.go index e6a1375aaf6cd..27af2e24ef269 100644 --- a/pkg/security/ptracer/container_context.go +++ b/pkg/security/ptracer/container_context.go @@ -13,16 +13,12 @@ import ( "time" "github.com/DataDog/datadog-agent/pkg/security/proto/ebpfless" - "github.com/DataDog/datadog-agent/pkg/util/containers/image" ) // ECSMetadata defines ECS metadata // https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-metadata-endpoint-v4.html type ECSMetadata struct { - DockerID string `json:"DockerId"` - DockerName string `json:"DockerName"` - Name string `json:"Name"` - Image string `json:"Image"` + DockerID string `json:"DockerId"` } func retrieveECSMetadata(url string) (*ECSMetadata, error) { @@ -43,10 +39,6 @@ func retrieveEnvMetadata(ctx *ebpfless.ContainerContext) { if id := os.Getenv("DD_CONTAINER_ID"); id != "" { ctx.ID = id } - - if name := os.Getenv("DD_CONTAINER_NAME"); name != "" { - ctx.Name = name - } } func newContainerContext(containerID string) (*ebpfless.ContainerContext, error) { @@ -64,20 +56,6 @@ func newContainerContext(containerID string) (*ebpfless.ContainerContext, error) // only set the container ID if we previously failed to retrieve it from proc ctx.ID = data.DockerID } - if data.DockerName != "" { - ctx.Name = data.DockerName - } - if data.Image != "" { - _, _, shortImageName, tag, err := image.SplitImageName(data.Image) - if err == nil { - ctx.ImageShortName = shortImageName - if tag != "" { - ctx.ImageTag = tag - } else { - ctx.ImageTag = "latest" - } - } - } } } retrieveEnvMetadata(ctx) diff --git a/pkg/security/resolvers/tags/resolver.go b/pkg/security/resolvers/tags/resolver.go index d0bb63a26903b..99800bcbe4554 100644 --- a/pkg/security/resolvers/tags/resolver.go +++ b/pkg/security/resolvers/tags/resolver.go @@ -28,6 +28,7 @@ type Tagger interface { Start(ctx context.Context) error Stop() error Tag(entity types.EntityID, cardinality types.TagCardinality) ([]string, error) + GlobalTags(cardinality types.TagCardinality) ([]string, error) } // Resolver represents a cache resolver @@ -52,12 +53,18 @@ func (t *DefaultResolver) Resolve(id string) []string { // ResolveWithErr returns the tags for the given id func (t *DefaultResolver) ResolveWithErr(id string) ([]string, error) { - if t.tagger == nil { + return GetTagsOfContainer(t.tagger, id) +} + +// GetTagsOfContainer returns the tags for the given container id +// exported to share the code with other non-resolver users of tagger +func GetTagsOfContainer(tagger Tagger, containerID string) ([]string, error) { + if tagger == nil { return nil, nil } - entityID := types.NewEntityID(types.ContainerID, id) - return t.tagger.Tag(entityID, types.OrchestratorCardinality) + entityID := types.NewEntityID(types.ContainerID, containerID) + return tagger.Tag(entityID, types.OrchestratorCardinality) } // GetValue return the tag value for the given id and tag name diff --git a/pkg/security/secl/model/model.go b/pkg/security/secl/model/model.go index 792098c53c681..9e3ba2db7b5ba 100644 --- a/pkg/security/secl/model/model.go +++ b/pkg/security/secl/model/model.go @@ -72,12 +72,11 @@ func (r *Releasable) AppendReleaseCallback(callback func()) { // ContainerContext holds the container context of an event type ContainerContext struct { Releasable - ContainerID containerutils.ContainerID `field:"id,handler:ResolveContainerID"` // SECLDoc[id] Definition:`ID of the container` - CreatedAt uint64 `field:"created_at,handler:ResolveContainerCreatedAt"` // SECLDoc[created_at] Definition:`Timestamp of the creation of the container`` - Tags []string `field:"tags,handler:ResolveContainerTags,opts:skip_ad,weight:9999"` // SECLDoc[tags] Definition:`Tags of the container` - TagsResolved bool `field:"-"` - Resolved bool `field:"-"` - Runtime string `field:"runtime,handler:ResolveContainerRuntime"` // SECLDoc[runtime] Definition:`Runtime managing the container` + ContainerID containerutils.ContainerID `field:"id,handler:ResolveContainerID"` // SECLDoc[id] Definition:`ID of the container` + CreatedAt uint64 `field:"created_at,handler:ResolveContainerCreatedAt"` // SECLDoc[created_at] Definition:`Timestamp of the creation of the container`` + Tags []string `field:"tags,handler:ResolveContainerTags,opts:skip_ad,weight:9999"` // SECLDoc[tags] Definition:`Tags of the container` + Resolved bool `field:"-"` + Runtime string `field:"runtime,handler:ResolveContainerRuntime"` // SECLDoc[runtime] Definition:`Runtime managing the container` } // SecurityProfileContext holds the security context of the profile diff --git a/pkg/security/seclwin/model/model.go b/pkg/security/seclwin/model/model.go index 792098c53c681..9e3ba2db7b5ba 100644 --- a/pkg/security/seclwin/model/model.go +++ b/pkg/security/seclwin/model/model.go @@ -72,12 +72,11 @@ func (r *Releasable) AppendReleaseCallback(callback func()) { // ContainerContext holds the container context of an event type ContainerContext struct { Releasable - ContainerID containerutils.ContainerID `field:"id,handler:ResolveContainerID"` // SECLDoc[id] Definition:`ID of the container` - CreatedAt uint64 `field:"created_at,handler:ResolveContainerCreatedAt"` // SECLDoc[created_at] Definition:`Timestamp of the creation of the container`` - Tags []string `field:"tags,handler:ResolveContainerTags,opts:skip_ad,weight:9999"` // SECLDoc[tags] Definition:`Tags of the container` - TagsResolved bool `field:"-"` - Resolved bool `field:"-"` - Runtime string `field:"runtime,handler:ResolveContainerRuntime"` // SECLDoc[runtime] Definition:`Runtime managing the container` + ContainerID containerutils.ContainerID `field:"id,handler:ResolveContainerID"` // SECLDoc[id] Definition:`ID of the container` + CreatedAt uint64 `field:"created_at,handler:ResolveContainerCreatedAt"` // SECLDoc[created_at] Definition:`Timestamp of the creation of the container`` + Tags []string `field:"tags,handler:ResolveContainerTags,opts:skip_ad,weight:9999"` // SECLDoc[tags] Definition:`Tags of the container` + Resolved bool `field:"-"` + Runtime string `field:"runtime,handler:ResolveContainerRuntime"` // SECLDoc[runtime] Definition:`Runtime managing the container` } // SecurityProfileContext holds the security context of the profile diff --git a/pkg/security/tests/fake_tags_resolver.go b/pkg/security/tests/fake_tags_resolver.go index 02bd896865298..a8b1694349a3c 100644 --- a/pkg/security/tests/fake_tags_resolver.go +++ b/pkg/security/tests/fake_tags_resolver.go @@ -53,6 +53,11 @@ func (fr *FakeTagger) Tag(entity types.EntityID, _ types.TagCardinality) ([]stri return append(fakeTags, fmt.Sprintf("image_name:fake_ubuntu_%d", len(fr.containerIDs))), nil } +// GlobalTags returns the global tags +func (fr *FakeTagger) GlobalTags(_ types.TagCardinality) ([]string, error) { + return nil, nil +} + // NewFakeTaggerDifferentImageNames returns a new tagger func NewFakeTaggerDifferentImageNames() tags.Tagger { return &FakeTagger{} @@ -78,6 +83,11 @@ func (fmr *FakeMonoTagger) Tag(entity types.EntityID, _ types.TagCardinality) ([ return []string{"container_id:" + entity.GetID(), "image_name:fake_ubuntu", "image_tag:latest"}, nil } +// GlobalTags returns the global tags +func (fmr *FakeMonoTagger) GlobalTags(_ types.TagCardinality) ([]string, error) { + return nil, nil +} + // NewFakeMonoTagger returns a new tags tagger func NewFakeMonoTagger() tags.Tagger { return &FakeMonoTagger{} @@ -150,6 +160,11 @@ func (fmr *FakeManualTagger) Tag(entity types.EntityID, _ types.TagCardinality) return []string{"container_id:" + containerID, "image_name:" + selector.Image, "image_tag:" + selector.Tag}, nil } +// GlobalTags returns the global tags +func (fmr *FakeManualTagger) GlobalTags(_ types.TagCardinality) ([]string, error) { + return nil, nil +} + // NewFakeManualTagger returns a new tagger func NewFakeManualTagger() *FakeManualTagger { return &FakeManualTagger{ From 694ee5b3f2eed89e822643fe47b02f0656de0b74 Mon Sep 17 00:00:00 2001 From: Vincent Boulineau <58430298+vboulineau@users.noreply.github.com> Date: Thu, 28 Nov 2024 04:33:44 -0500 Subject: [PATCH 116/439] Downgrade log level of SBOM logs (#31528) --- .../collectors/internal/containerd/image_sbom_trivy.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/comp/core/workloadmeta/collectors/internal/containerd/image_sbom_trivy.go b/comp/core/workloadmeta/collectors/internal/containerd/image_sbom_trivy.go index 9867d2a6cb093..ccda07525ba30 100644 --- a/comp/core/workloadmeta/collectors/internal/containerd/image_sbom_trivy.go +++ b/comp/core/workloadmeta/collectors/internal/containerd/image_sbom_trivy.go @@ -138,11 +138,11 @@ func convertScanResultToSBOM(result sbom.ScanResult) *workloadmeta.SBOM { var report *cyclonedx.BOM if result.Error != nil { - log.Errorf("Failed to generate SBOM for containerd image: %s", result.Error) + log.Debugf("Failed to generate SBOM for containerd image: %s", result.Error) status = workloadmeta.Failed reportedError = result.Error.Error() } else if bom, err := result.Report.ToCycloneDX(); err != nil { - log.Errorf("Failed to extract SBOM from report") + log.Debugf("Failed to extract SBOM from report") status = workloadmeta.Failed reportedError = err.Error() } else { From 24309bd70556c4bea34fd603b369a1703674aab3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20Beauz=C3=A9e-Luyssen?= Date: Thu, 28 Nov 2024 10:47:49 +0100 Subject: [PATCH 117/439] Don't fail to build the agent locally when system probe is disabled (#30901) Co-authored-by: Alex Lopez --- omnibus/config/projects/agent.rb | 3 ++- .../config/software/datadog-agent-finalize.rb | 14 +++++++----- omnibus/config/software/datadog-agent.rb | 4 ++-- omnibus/config/software/system-probe.rb | 22 +++++++++---------- omnibus/lib/project_helpers.rb | 12 ++++++++++ 5 files changed, 34 insertions(+), 21 deletions(-) create mode 100644 omnibus/lib/project_helpers.rb diff --git a/omnibus/config/projects/agent.rb b/omnibus/config/projects/agent.rb index e678c447b7e7e..7678dd69eac28 100644 --- a/omnibus/config/projects/agent.rb +++ b/omnibus/config/projects/agent.rb @@ -3,6 +3,7 @@ # This product includes software developed at Datadog (https:#www.datadoghq.com/). # Copyright 2016-present Datadog, Inc. require "./lib/ostools.rb" +require "./lib/project_helpers.rb" flavor = ENV['AGENT_FLAVOR'] output_config_dir = ENV["OUTPUT_CONFIG_DIR"] @@ -224,7 +225,7 @@ dependency 'datadog-agent' # System-probe - if linux_target? && !heroku_target? + if sysprobe_enabled? dependency 'system-probe' end diff --git a/omnibus/config/software/datadog-agent-finalize.rb b/omnibus/config/software/datadog-agent-finalize.rb index f90a8843a2dfb..b797b6e8dcc55 100644 --- a/omnibus/config/software/datadog-agent-finalize.rb +++ b/omnibus/config/software/datadog-agent-finalize.rb @@ -91,15 +91,17 @@ move "#{install_dir}/etc/datadog-agent/datadog.yaml.example", "#{output_config_dir}/etc/datadog-agent" move "#{install_dir}/etc/datadog-agent/conf.d", "#{output_config_dir}/etc/datadog-agent", :force=>true unless heroku_target? - move "#{install_dir}/etc/datadog-agent/system-probe.yaml.example", "#{output_config_dir}/etc/datadog-agent" + if sysprobe_enabled? + move "#{install_dir}/etc/datadog-agent/system-probe.yaml.example", "#{output_config_dir}/etc/datadog-agent" + # SElinux policies aren't generated when system-probe isn't built + # Move SELinux policy + if debian_target? || redhat_target? + move "#{install_dir}/etc/datadog-agent/selinux", "#{output_config_dir}/etc/datadog-agent/selinux" + end + end move "#{install_dir}/etc/datadog-agent/security-agent.yaml.example", "#{output_config_dir}/etc/datadog-agent", :force=>true move "#{install_dir}/etc/datadog-agent/runtime-security.d", "#{output_config_dir}/etc/datadog-agent", :force=>true move "#{install_dir}/etc/datadog-agent/compliance.d", "#{output_config_dir}/etc/datadog-agent" - - # Move SELinux policy - if debian_target? || redhat_target? - move "#{install_dir}/etc/datadog-agent/selinux", "#{output_config_dir}/etc/datadog-agent/selinux" - end end if ot_target? diff --git a/omnibus/config/software/datadog-agent.rb b/omnibus/config/software/datadog-agent.rb index b84585631fd75..5fbbd18138d0a 100644 --- a/omnibus/config/software/datadog-agent.rb +++ b/omnibus/config/software/datadog-agent.rb @@ -4,6 +4,7 @@ # Copyright 2016-present Datadog, Inc. require './lib/ostools.rb' +require './lib/project_helpers.rb' require 'pathname' name 'datadog-agent' @@ -134,8 +135,7 @@ end # System-probe - sysprobe_support = (not heroku_target?) && (linux_target? || (windows_target? && do_windows_sysprobe != "")) - if sysprobe_support + if sysprobe_enabled? || (windows_target? && do_windows_sysprobe != "") if windows_target? command "invoke -e system-probe.build", env: env elsif linux_target? diff --git a/omnibus/config/software/system-probe.rb b/omnibus/config/software/system-probe.rb index 19fdf7f0b9dbb..8c889601879d8 100644 --- a/omnibus/config/software/system-probe.rb +++ b/omnibus/config/software/system-probe.rb @@ -21,19 +21,17 @@ mkdir "#{install_dir}/embedded/share/system-probe/ebpf/co-re/btf" mkdir "#{install_dir}/embedded/share/system-probe/java" - if ENV.has_key?('SYSTEM_PROBE_BIN') and not ENV['SYSTEM_PROBE_BIN'].empty? - arch = `uname -m`.strip - if arch == "aarch64" - arch = "arm64" - end - copy "pkg/ebpf/bytecode/build/#{arch}/*.o", "#{install_dir}/embedded/share/system-probe/ebpf/" - delete "#{install_dir}/embedded/share/system-probe/ebpf/usm_events_test*.o" - copy "pkg/ebpf/bytecode/build/#{arch}/co-re/*.o", "#{install_dir}/embedded/share/system-probe/ebpf/co-re/" - copy "pkg/ebpf/bytecode/build/runtime/*.c", "#{install_dir}/embedded/share/system-probe/ebpf/runtime/" - copy "#{ENV['SYSTEM_PROBE_BIN']}/clang-bpf", "#{install_dir}/embedded/bin/clang-bpf" - copy "#{ENV['SYSTEM_PROBE_BIN']}/llc-bpf", "#{install_dir}/embedded/bin/llc-bpf" - copy "#{ENV['SYSTEM_PROBE_BIN']}/minimized-btfs.tar.xz", "#{install_dir}/embedded/share/system-probe/ebpf/co-re/btf/minimized-btfs.tar.xz" + arch = `uname -m`.strip + if arch == "aarch64" + arch = "arm64" end + copy "pkg/ebpf/bytecode/build/#{arch}/*.o", "#{install_dir}/embedded/share/system-probe/ebpf/" + delete "#{install_dir}/embedded/share/system-probe/ebpf/usm_events_test*.o" + copy "pkg/ebpf/bytecode/build/#{arch}/co-re/*.o", "#{install_dir}/embedded/share/system-probe/ebpf/co-re/" + copy "pkg/ebpf/bytecode/build/runtime/*.c", "#{install_dir}/embedded/share/system-probe/ebpf/runtime/" + copy "#{ENV['SYSTEM_PROBE_BIN']}/clang-bpf", "#{install_dir}/embedded/bin/clang-bpf" + copy "#{ENV['SYSTEM_PROBE_BIN']}/llc-bpf", "#{install_dir}/embedded/bin/llc-bpf" + copy "#{ENV['SYSTEM_PROBE_BIN']}/minimized-btfs.tar.xz", "#{install_dir}/embedded/share/system-probe/ebpf/co-re/btf/minimized-btfs.tar.xz" copy 'pkg/ebpf/c/COPYING', "#{install_dir}/embedded/share/system-probe/ebpf/" end diff --git a/omnibus/lib/project_helpers.rb b/omnibus/lib/project_helpers.rb new file mode 100644 index 0000000000000..d1498342ec617 --- /dev/null +++ b/omnibus/lib/project_helpers.rb @@ -0,0 +1,12 @@ +# +# Project related helpers +# + +require './lib/ostools.rb' + +def sysprobe_enabled?() + # This doesn't account for Windows special case which build system probe as part of the + # agent build process + !heroku_target? && linux_target? && !ENV.fetch('SYSTEM_PROBE_BIN', '').empty? +end + From d2e4580ee397efe941f14b4b6013d98099066196 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 28 Nov 2024 09:53:48 +0000 Subject: [PATCH 118/439] Bump github.com/containerd/cgroups/v3 from 3.0.3 to 3.0.4 (#31348) Co-authored-by: L3n41c --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index e58ca2a03171c..a7a791af88629 100644 --- a/go.mod +++ b/go.mod @@ -742,7 +742,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.6 github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20240409155312-26d1ea377073 github.com/cloudfoundry-community/go-cfclient/v2 v2.0.1-0.20230503155151-3d15366c5820 - github.com/containerd/cgroups/v3 v3.0.3 + github.com/containerd/cgroups/v3 v3.0.4 github.com/containerd/typeurl/v2 v2.2.3 github.com/dvsekhvalnov/jose2go v1.7.0 github.com/elastic/go-seccomp-bpf v1.5.0 diff --git a/go.sum b/go.sum index c7e1e4bd5af60..cb2bc7549b4d4 100644 --- a/go.sum +++ b/go.sum @@ -480,8 +480,8 @@ github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb h1:EDmT6Q9Zs+SbUo github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb/go.mod h1:ZjrT6AXHbDs86ZSdt/osfBi5qfexBrKUdONk989Wnk4= github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0 h1:sDMmm+q/3+BukdIpxwO365v/Rbspp2Nt5XntgQRXq8Q= github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= -github.com/containerd/cgroups/v3 v3.0.3 h1:S5ByHZ/h9PMe5IOQoN7E+nMc2UcLEM/V48DGDJ9kip0= -github.com/containerd/cgroups/v3 v3.0.3/go.mod h1:8HBe7V3aWGLFPd/k03swSIsGjZhHI2WzJmticMgVuz0= +github.com/containerd/cgroups/v3 v3.0.4 h1:2fs7l3P0Qxb1nKWuJNFiwhp2CqiKzho71DQkDrHJIo4= +github.com/containerd/cgroups/v3 v3.0.4/go.mod h1:SA5DLYnXO8pTGYiAHXz94qvLQTKfVM5GEVisn4jpins= github.com/containerd/containerd v1.7.23 h1:H2CClyUkmpKAGlhQp95g2WXHfLYc7whAuvZGBNYOOwQ= github.com/containerd/containerd v1.7.23/go.mod h1:7QUzfURqZWCZV7RLNEn1XjUCQLEf0bkaK4GjUaZehxw= github.com/containerd/containerd/api v1.8.0 h1:hVTNJKR8fMc/2Tiw60ZRijntNMd1U+JVMyTRdsD2bS0= From 90bfbe5180e85ab99d96b88e01d8d8aed5c069db Mon Sep 17 00:00:00 2001 From: Nicolas Guerguadj <35628945+Kaderinho@users.noreply.github.com> Date: Thu, 28 Nov 2024 11:18:36 +0100 Subject: [PATCH 119/439] Add foundations for FIPS flavor (#31004) Co-authored-by: jeremy-hanna --- .gitlab-ci.yml | 44 +++++++-------- .gitlab/container_build/docker_linux.yml | 53 +++++++++++++++++++ .gitlab/deploy_packages/nix.yml | 36 +++++++++++++ .gitlab/dev_container_deploy/docker_linux.yml | 18 +++++++ .../internal_image_deploy.yml | 45 ++++++++++++++++ .gitlab/package_build/linux.yml | 14 +++++ .gitlab/packaging/deb.yml | 20 +++++++ .gitlab/packaging/rpm.yml | 29 ++++++++++ Dockerfiles/agent/Dockerfile | 7 +++ omnibus/config/projects/agent.rb | 15 ++++++ omnibus/config/software/datadog-agent.rb | 43 ++++++++++++++- .../config/software/openssl-fips-provider.rb | 47 ++++++++++++++++ .../openssl-fips-provider/fipsinstall.sh.erb | 29 ++++++++++ .../openssl-fips-provider/openssl.cnf.erb | 14 +++++ omnibus/lib/ostools.rb | 3 ++ omnibus/lib/symbols_inspectors.rb | 6 ++- omnibus/package-scripts/agent-deb/postinst | 6 ++- omnibus/package-scripts/agent-deb/prerm | 8 +++ omnibus/package-scripts/agent-rpm/posttrans | 5 ++ omnibus/package-scripts/agent-rpm/prerm | 8 +++ tasks/agent.py | 4 +- tasks/build_tags.py | 13 +++++ tasks/flavor.py | 4 ++ tasks/omnibus.py | 6 +++ tasks/process_agent.py | 4 +- tasks/security_agent.py | 4 +- tasks/system_probe.py | 4 +- tasks/trace_agent.py | 4 +- 28 files changed, 462 insertions(+), 31 deletions(-) create mode 100644 omnibus/config/software/openssl-fips-provider.rb create mode 100644 omnibus/config/templates/openssl-fips-provider/fipsinstall.sh.erb create mode 100644 omnibus/config/templates/openssl-fips-provider/openssl.cnf.erb diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2266b84ef3560..936abc4efddfb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -173,49 +173,49 @@ variables: # To use images from datadog-agent-buildimages dev branches, set the corresponding # SUFFIX variable to _test_only DATADOG_AGENT_BUILDIMAGES_SUFFIX: "" - DATADOG_AGENT_BUILDIMAGES: v48372186-ff395e52 + DATADOG_AGENT_BUILDIMAGES: v48815877-9bfad02c DATADOG_AGENT_WINBUILDIMAGES_SUFFIX: "" - DATADOG_AGENT_WINBUILDIMAGES: v48372186-ff395e52 + DATADOG_AGENT_WINBUILDIMAGES: v48815877-9bfad02c DATADOG_AGENT_ARMBUILDIMAGES_SUFFIX: "" - DATADOG_AGENT_ARMBUILDIMAGES: v48372186-ff395e52 + DATADOG_AGENT_ARMBUILDIMAGES: v48815877-9bfad02c DATADOG_AGENT_SYSPROBE_BUILDIMAGES_SUFFIX: "" - DATADOG_AGENT_SYSPROBE_BUILDIMAGES: v48372186-ff395e52 + DATADOG_AGENT_SYSPROBE_BUILDIMAGES: v48815877-9bfad02c DATADOG_AGENT_BTF_GEN_BUILDIMAGES_SUFFIX: "" - DATADOG_AGENT_BTF_GEN_BUILDIMAGES: v48372186-ff395e52 + DATADOG_AGENT_BTF_GEN_BUILDIMAGES: v48815877-9bfad02c # New images to enable different version per image - not used yet - CI_IMAGE_BTF_GEN: v48372186-ff395e52 + CI_IMAGE_BTF_GEN: v48815877-9bfad02c CI_IMAGE_BTF_GEN_SUFFIX: "" - CI_IMAGE_DEB_X64: v48372186-ff395e52 + CI_IMAGE_DEB_X64: v48815877-9bfad02c CI_IMAGE_DEB_X64_SUFFIX: "" - CI_IMAGE_DEB_ARM64: v48372186-ff395e52 + CI_IMAGE_DEB_ARM64: v48815877-9bfad02c CI_IMAGE_DEB_ARM64_SUFFIX: "" - CI_IMAGE_DEB_ARMHF: v48372186-ff395e52 + CI_IMAGE_DEB_ARMHF: v48815877-9bfad02c CI_IMAGE_DEB_ARMHF_SUFFIX: "" - CI_IMAGE_DD_AGENT_TESTING: v48372186-ff395e52 + CI_IMAGE_DD_AGENT_TESTING: v48815877-9bfad02c CI_IMAGE_DD_AGENT_TESTING_SUFFIX: "" - CI_IMAGE_DOCKER_X64: v48372186-ff395e52 + CI_IMAGE_DOCKER_X64: v48815877-9bfad02c CI_IMAGE_DOCKER_X64_SUFFIX: "" - CI_IMAGE_DOCKER_ARM64: v48372186-ff395e52 + CI_IMAGE_DOCKER_ARM64: v48815877-9bfad02c CI_IMAGE_DOCKER_ARM64_SUFFIX: "" - CI_IMAGE_GITLAB_AGENT_DEPLOY: v48372186-ff395e52 + CI_IMAGE_GITLAB_AGENT_DEPLOY: v48815877-9bfad02c CI_IMAGE_GITLAB_AGENT_DEPLOY_SUFFIX: "" - CI_IMAGE_LINUX_GLIBC_2_17_X64: v48372186-ff395e52 + CI_IMAGE_LINUX_GLIBC_2_17_X64: v48815877-9bfad02c CI_IMAGE_LINUX_GLIBC_2_17_X64_SUFFIX: "" - CI_IMAGE_LINUX_GLIBC_2_23_ARM64: v48372186-ff395e52 + CI_IMAGE_LINUX_GLIBC_2_23_ARM64: v48815877-9bfad02c CI_IMAGE_LINUX_GLIBC_2_23_ARM64_SUFFIX: "" - CI_IMAGE_SYSTEM_PROBE_X64: v48372186-ff395e52 + CI_IMAGE_SYSTEM_PROBE_X64: v48815877-9bfad02c CI_IMAGE_SYSTEM_PROBE_X64_SUFFIX: "" - CI_IMAGE_SYSTEM_PROBE_ARM64: v48372186-ff395e52 + CI_IMAGE_SYSTEM_PROBE_ARM64: v48815877-9bfad02c CI_IMAGE_SYSTEM_PROBE_ARM64_SUFFIX: "" - CI_IMAGE_RPM_X64: v48372186-ff395e52 + CI_IMAGE_RPM_X64: v48815877-9bfad02c CI_IMAGE_RPM_X64_SUFFIX: "" - CI_IMAGE_RPM_ARM64: v48372186-ff395e52 + CI_IMAGE_RPM_ARM64: v48815877-9bfad02c CI_IMAGE_RPM_ARM64_SUFFIX: "" - CI_IMAGE_RPM_ARMHF: v48372186-ff395e52 + CI_IMAGE_RPM_ARMHF: v48815877-9bfad02c CI_IMAGE_RPM_ARMHF_SUFFIX: "" - CI_IMAGE_WIN_1809_X64: v48372186-ff395e52 + CI_IMAGE_WIN_1809_X64: v48815877-9bfad02c CI_IMAGE_WIN_1809_X64_SUFFIX: "" - CI_IMAGE_WIN_LTSC2022_X64: v48372186-ff395e52 + CI_IMAGE_WIN_LTSC2022_X64: v48815877-9bfad02c CI_IMAGE_WIN_LTSC2022_X64_SUFFIX: "" DATADOG_AGENT_EMBEDDED_PATH: /opt/datadog-agent/embedded diff --git a/.gitlab/container_build/docker_linux.yml b/.gitlab/container_build/docker_linux.yml index 5f5c83c0dce67..773f91fd1ca3a 100644 --- a/.gitlab/container_build/docker_linux.yml +++ b/.gitlab/container_build/docker_linux.yml @@ -89,6 +89,33 @@ docker_build_agent7_arm64: TAG_SUFFIX: -7 BUILD_ARG: --target test --build-arg DD_AGENT_ARTIFACT=datadog-agent-7*-arm64.tar.xz +# build agent7 fips image +docker_build_fips_agent7: + extends: [.docker_build_job_definition_amd64, .docker_build_artifact] + rules: + - !reference [.except_mergequeue] + - when: on_success + needs: + - job: datadog-agent-7-x64-fips + variables: + IMAGE: registry.ddbuild.io/ci/datadog-agent/agent + BUILD_CONTEXT: Dockerfiles/agent + TAG_SUFFIX: -7-fips + BUILD_ARG: --target test --build-arg DD_AGENT_ARTIFACT=datadog-fips-agent-7*-amd64.tar.xz + +docker_build_fips_agent7_arm64: + extends: [.docker_build_job_definition_arm64, .docker_build_artifact] + rules: + - !reference [.except_mergequeue] + - when: on_success + needs: + - job: datadog-agent-7-arm64-fips + variables: + IMAGE: registry.ddbuild.io/ci/datadog-agent/agent + BUILD_CONTEXT: Dockerfiles/agent + TAG_SUFFIX: -7-fips + BUILD_ARG: --target test --build-arg DD_AGENT_ARTIFACT=datadog-fips-agent-7*-arm64.tar.xz + # build agent7 jmx image docker_build_agent7_jmx: extends: [.docker_build_job_definition_amd64, .docker_build_artifact] @@ -116,6 +143,32 @@ docker_build_agent7_jmx_arm64: TAG_SUFFIX: -7-jmx BUILD_ARG: --target test --build-arg WITH_JMX=true --build-arg DD_AGENT_ARTIFACT=datadog-agent-7*-arm64.tar.xz +docker_build_fips_agent7_jmx: + extends: [.docker_build_job_definition_amd64, .docker_build_artifact] + rules: + - !reference [.except_mergequeue] + - when: on_success + needs: + - job: datadog-agent-7-x64-fips + variables: + IMAGE: registry.ddbuild.io/ci/datadog-agent/agent + BUILD_CONTEXT: Dockerfiles/agent + TAG_SUFFIX: -7-fips-jmx + BUILD_ARG: --target test --build-arg DD_AGENT_ARTIFACT=datadog-fips-agent-7*-amd64.tar.xz + +docker_build_fips_agent7_arm64_jmx: + extends: [.docker_build_job_definition_arm64, .docker_build_artifact] + rules: + - !reference [.except_mergequeue] + - when: on_success + needs: + - job: datadog-agent-7-arm64-fips + variables: + IMAGE: registry.ddbuild.io/ci/datadog-agent/agent + BUILD_CONTEXT: Dockerfiles/agent + TAG_SUFFIX: -7-fips-jmx + BUILD_ARG: --target test --build-arg DD_AGENT_ARTIFACT=datadog-fips-agent-7*-arm64.tar.xz + # build agent7 UA image docker_build_ot_agent7: extends: [.docker_build_job_definition_amd64, .docker_build_artifact] diff --git a/.gitlab/deploy_packages/nix.yml b/.gitlab/deploy_packages/nix.yml index 8f16b27a38b55..314fcb4961fe7 100644 --- a/.gitlab/deploy_packages/nix.yml +++ b/.gitlab/deploy_packages/nix.yml @@ -14,6 +14,18 @@ deploy_packages_deb-arm64-7: variables: PACKAGE_ARCH: arm64 +deploy_packages_deb-x64-7-fips: + extends: .deploy_packages_deb-7 + needs: [ agent_deb-x64-a7-fips ] + variables: + PACKAGE_ARCH: amd64 + +deploy_packages_deb-arm64-7-fips: + extends: .deploy_packages_deb-7 + needs: [ agent_deb-arm64-a7-fips ] + variables: + PACKAGE_ARCH: arm64 + deploy_packages_heroku_deb-x64-7: extends: .deploy_packages_deb-7 needs: [ agent_heroku_deb-x64-a7 ] @@ -62,6 +74,18 @@ deploy_packages_rpm-arm64-7: variables: PACKAGE_ARCH: aarch64 +deploy_packages_rpm-x64-7-fips: + extends: .deploy_packages_rpm-7 + needs: [ agent_rpm-x64-a7-fips ] + variables: + PACKAGE_ARCH: x86_64 + +deploy_packages_rpm-arm64-7-fips: + extends: .deploy_packages_rpm-7 + needs: [ agent_rpm-arm64-a7-fips ] + variables: + PACKAGE_ARCH: aarch64 + deploy_packages_iot_rpm-x64-7: extends: .deploy_packages_rpm-7 needs: [ iot_agent_rpm-x64 ] @@ -98,6 +122,18 @@ deploy_packages_suse_rpm-arm64-7: variables: PACKAGE_ARCH: aarch64 +deploy_packages_suse_rpm-x64-7-fips: + extends: .deploy_packages_suse_rpm-7 + needs: [ agent_suse-x64-a7-fips ] + variables: + PACKAGE_ARCH: x86_64 + +deploy_packages_suse_rpm-arm64-7-fips: + extends: .deploy_packages_suse_rpm-7 + needs: [ agent_suse-arm64-a7-fips ] + variables: + PACKAGE_ARCH: aarch64 + deploy_packages_iot_suse_rpm-x64-7: extends: .deploy_packages_suse_rpm-7 needs: [ iot_agent_suse-x64 ] diff --git a/.gitlab/dev_container_deploy/docker_linux.yml b/.gitlab/dev_container_deploy/docker_linux.yml index 57178929aff04..5b61ffc403a2b 100644 --- a/.gitlab/dev_container_deploy/docker_linux.yml +++ b/.gitlab/dev_container_deploy/docker_linux.yml @@ -32,6 +32,24 @@ dev_branch_multiarch-a7: - IMG_SOURCES: ${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-jmx-amd64,${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-jmx-arm64 IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-py3-jmx +dev_branch_multiarch-fips: + extends: .docker_publish_job_definition + stage: dev_container_deploy + rules: !reference [.manual] + needs: + - docker_build_fips_agent7 + - docker_build_fips_agent7_arm64 + - docker_build_fips_agent7_jmx + - docker_build_fips_agent7_arm64_jmx + variables: + IMG_REGISTRIES: dev + parallel: + matrix: + - IMG_SOURCES: ${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-fips-amd64,${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-fips-arm64 + IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-fips + - IMG_SOURCES: ${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-fips-jmx-amd64,${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-fips-jmx-arm64 + IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-fips-jmx + dev_branch_multiarch-dogstatsd: extends: .docker_publish_job_definition stage: dev_container_deploy diff --git a/.gitlab/internal_image_deploy/internal_image_deploy.yml b/.gitlab/internal_image_deploy/internal_image_deploy.yml index 82ffc58bc25f8..7c155413ced58 100644 --- a/.gitlab/internal_image_deploy/internal_image_deploy.yml +++ b/.gitlab/internal_image_deploy/internal_image_deploy.yml @@ -47,6 +47,51 @@ docker_trigger_internal: --variable TARGET_ENV --variable DYNAMIC_BUILD_RENDER_TARGET_FORWARD_PARAMETERS" +docker_trigger_internal-fips: + stage: internal_image_deploy + rules: !reference [.on_deploy_internal_or_manual] + needs: + - job: docker_build_fips_agent7 + artifacts: false + - job: docker_build_fips_agent7_arm64 + artifacts: false + image: registry.ddbuild.io/ci/datadog-agent-buildimages/deb_x64$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES + tags: ["arch:amd64"] + variables: + DYNAMIC_BUILD_RENDER_RULES: agent-build-only # fake rule to not trigger the ones in the images repo + IMAGE_VERSION: tmpl-v11 + IMAGE_NAME: datadog-agent + RELEASE_TAG: ${CI_COMMIT_REF_SLUG}-fips + BUILD_TAG: ${CI_COMMIT_REF_SLUG}-fips + TMPL_SRC_IMAGE: v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-fips + TMPL_SRC_REPO: ci/datadog-agent/agent + RELEASE_STAGING: "true" + script: + - GITLAB_TOKEN=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $GITLAB_TOKEN write_api) || exit $?; export GITLAB_TOKEN + - if [ "$BUCKET_BRANCH" = "beta" ] || [ "$BUCKET_BRANCH" = "stable" ]; then TMPL_SRC_REPO="${TMPL_SRC_REPO}-release"; fi + - | + if [ "$BUCKET_BRANCH" = "nightly" ]; then + RELEASE_TAG="${RELEASE_TAG}-${CI_COMMIT_SHORT_SHA}" + TMPL_SRC_REPO="${TMPL_SRC_REPO}-nightly" + fi + - if [ "$BUCKET_BRANCH" = "dev" ]; then RELEASE_TAG="dev-${RELEASE_TAG}-${CI_COMMIT_SHORT_SHA}"; fi + - "inv pipeline.trigger-child-pipeline --project-name DataDog/images --git-ref master --timeout 3600 + --variable IMAGE_VERSION + --variable IMAGE_NAME + --variable RELEASE_TAG + --variable BUILD_TAG + --variable TMPL_SRC_IMAGE + --variable TMPL_SRC_REPO + --variable RELEASE_STAGING + --variable RELEASE_PROD + --variable DYNAMIC_BUILD_RENDER_RULES + --variable APPS + --variable BAZEL_TARGET + --variable DDR + --variable DDR_WORKFLOW_ID + --variable TARGET_ENV + --variable DYNAMIC_BUILD_RENDER_TARGET_FORWARD_PARAMETERS" + docker_trigger_internal-ot: stage: internal_image_deploy rules: !reference [.on_deploy_internal_or_manual] diff --git a/.gitlab/package_build/linux.yml b/.gitlab/package_build/linux.yml index d129676f3bc3c..f8d785d4ef62d 100644 --- a/.gitlab/package_build/linux.yml +++ b/.gitlab/package_build/linux.yml @@ -67,6 +67,12 @@ before_script: - export RELEASE_VERSION=$RELEASE_VERSION_7 +.agent_fips_build: + variables: + FLAVOR: fips + before_script: + - export RELEASE_VERSION=$RELEASE_VERSION_7 + # build Agent 7 binaries for x86_64 datadog-agent-7-x64: extends: [.agent_build_common, .agent_build_x86, .agent_7_build] @@ -83,6 +89,14 @@ datadog-ot-agent-7-x64: datadog-ot-agent-7-arm64: extends: [.agent_build_common, .agent_build_arm64, .ot_agent_7_build] +# build Agent 7 binaries for x86_64 with FIPS +datadog-agent-7-x64-fips: + extends: [.agent_build_common, .agent_build_x86, .agent_fips_build] + +# build Agent 7 binaries for arm64 with FIPS +datadog-agent-7-arm64-fips: + extends: [.agent_build_common, .agent_build_arm64, .agent_fips_build] + .iot-agent-common: extends: .agent_build_common needs: ["go_mod_tidy_check", "go_deps"] diff --git a/.gitlab/packaging/deb.yml b/.gitlab/packaging/deb.yml index a133b70d749a1..277897c6060f6 100644 --- a/.gitlab/packaging/deb.yml +++ b/.gitlab/packaging/deb.yml @@ -56,6 +56,26 @@ agent_deb-arm64-a7: variables: DD_PROJECT: "agent" +agent_deb-x64-a7-fips: + extends: [.package_deb_common, .package_deb_x86, .package_deb_agent_7] + rules: + - !reference [.except_mergequeue] + - when: on_success + needs: ["datadog-agent-7-x64-fips"] + variables: + OMNIBUS_EXTRA_ARGS: "--flavor fips" + DD_PROJECT: "agent" + +agent_deb-arm64-a7-fips: + extends: [.package_deb_common, .package_deb_arm64, .package_deb_agent_7] + rules: + - !reference [.except_mergequeue] + - when: on_success + needs: ["datadog-agent-7-arm64-fips"] + variables: + OMNIBUS_EXTRA_ARGS: "--flavor fips" + DD_PROJECT: "agent" + .package_ot_deb_common: extends: [.package_deb_common] script: diff --git a/.gitlab/packaging/rpm.yml b/.gitlab/packaging/rpm.yml index 9444f7062ad89..883f3910cc086 100644 --- a/.gitlab/packaging/rpm.yml +++ b/.gitlab/packaging/rpm.yml @@ -92,6 +92,35 @@ installer_rpm-amd64: # explicitly disable the check PACKAGE_REQUIRED_FILES_LIST: "" +agent_rpm-x64-a7-fips: + extends: [.package_rpm_common, .package_rpm_agent_7, .package_rpm_x86] + tags: ["arch:amd64"] + needs: ["datadog-agent-7-x64-fips"] + variables: + OMNIBUS_EXTRA_ARGS: "--flavor fips" + DD_PROJECT: agent + +agent_rpm-arm64-a7-fips: + extends: [.package_rpm_common, .package_rpm_agent_7, .package_rpm_arm64] + needs: ["datadog-agent-7-arm64-fips"] + variables: + OMNIBUS_EXTRA_ARGS: "--flavor fips" + DD_PROJECT: agent + +agent_suse-x64-a7-fips: + extends: [.package_suse_rpm_common, .package_rpm_agent_7, .package_rpm_x86] + needs: ["datadog-agent-7-x64-fips"] + variables: + OMNIBUS_EXTRA_ARGS: "--flavor fips" + DD_PROJECT: agent + +agent_suse-arm64-a7-fips: + extends: [.package_suse_rpm_common, .package_rpm_agent_7, .package_rpm_arm64] + needs: ["datadog-agent-7-arm64-fips"] + variables: + OMNIBUS_EXTRA_ARGS: "--flavor fips" + DD_PROJECT: agent + installer_rpm-arm64: extends: [.package_rpm_common, .package_rpm_agent_7, .package_rpm_arm64] needs: ["installer-arm64"] diff --git a/Dockerfiles/agent/Dockerfile b/Dockerfiles/agent/Dockerfile index bf99bef8e05a1..6c8cb42eedccf 100644 --- a/Dockerfiles/agent/Dockerfile +++ b/Dockerfiles/agent/Dockerfile @@ -180,6 +180,13 @@ RUN tar xzf s6.tgz -C / --exclude="./bin" \ # * https://datadoghq.atlassian.net/wiki/spaces/TS/pages/2615709591/Why+the+containerized+Agent+runs+as+root#Agent-user RUN [ "$(getent passwd dd-agent | cut -d: -f 3)" -eq 100 ] +# Enable FIPS if needed +RUN if [ -x /opt/datadog-agent/embedded/bin/fipsinstall.sh ]; then \ + /opt/datadog-agent/embedded/bin/fipsinstall.sh; \ +fi +# This is used by MSGO to enable FIPS mode so it won't affect the non-FIPS image +ENV GOFIPS=1 + # Override the exit script by ours to fix --pid=host operations RUN mv /etc/s6/init/init-stage3 /etc/s6/init/init-stage3-original COPY init-stage3 /etc/s6/init/init-stage3 diff --git a/omnibus/config/projects/agent.rb b/omnibus/config/projects/agent.rb index 7678dd69eac28..bd24283687dbf 100644 --- a/omnibus/config/projects/agent.rb +++ b/omnibus/config/projects/agent.rb @@ -237,6 +237,9 @@ if linux_target? dependency 'datadog-security-agent-policies' + if fips_mode? + dependency 'openssl-fips-provider' + end end # Include traps db file in snmp.d/traps_db/ @@ -326,10 +329,22 @@ GO_BINARIES << "#{install_dir}\\bin\\agent\\security-agent.exe" end + raise_if_fips_symbol_not_found = Proc.new { |symbols| + count = symbols.scan("github.com/microsoft/go-crypto-winnative").count() + if count == 0 + raise FIPSSymbolsNotFound.new("Expected to find symbol 'github.com/microsoft/go-crypto-winnative' but no symbol was found.") + end + } + GO_BINARIES.each do |bin| # Check the exported symbols from the binary inspect_binary(bin, &raise_if_forbidden_symbol_found) + if fips_mode? + # Check that CNG symbols are present + inspect_binary(bin, &raise_if_fips_symbol_not_found) + end + # strip the binary of debug symbols windows_symbol_stripping_file bin end diff --git a/omnibus/config/software/datadog-agent.rb b/omnibus/config/software/datadog-agent.rb index 5fbbd18138d0a..bfd08c4dd9a20 100644 --- a/omnibus/config/software/datadog-agent.rb +++ b/omnibus/config/software/datadog-agent.rb @@ -33,7 +33,9 @@ # set GOPATH on the omnibus source dir for this software gopath = Pathname.new(project_dir) + '../../../..' + msgoroot = "/usr/local/msgo" flavor_arg = ENV['AGENT_FLAVOR'] + fips_args = fips_mode? ? "--fips-mode" : "" if windows_target? env = { 'GOPATH' => gopath.to_path, @@ -58,6 +60,12 @@ # include embedded path (mostly for `pkg-config` binary) env = with_standard_compiler_flags(with_embedded_path(env)) + + # Use msgo toolchain when fips mode is enabled + if fips_mode? && !windows_target? + env["GOROOT"] = msgoroot + env["PATH"] = "#{msgoroot}/bin:#{env['PATH']}" + end default_install_dir = "/opt/datadog-agent" if Omnibus::Config.host_distribution == "ociru" default_install_dir = "#{install_dir}" @@ -139,7 +147,7 @@ if windows_target? command "invoke -e system-probe.build", env: env elsif linux_target? - command "invoke -e system-probe.build-sysprobe-binary --install-path=#{install_dir}", env: env + command "invoke -e system-probe.build-sysprobe-binary #{fips_args} --install-path=#{install_dir}", env: env end if windows_target? @@ -160,7 +168,7 @@ # Security agent secagent_support = (not heroku_target?) and (not windows_target? or (ENV['WINDOWS_DDPROCMON_DRIVER'] and not ENV['WINDOWS_DDPROCMON_DRIVER'].empty?)) if secagent_support - command "invoke -e security-agent.build --install-path=#{install_dir} --major-version #{major_version_arg}", :env => env + command "invoke -e security-agent.build #{fips_args} --install-path=#{install_dir} --major-version #{major_version_arg}", :env => env if windows_target? copy 'bin/security-agent/security-agent.exe', "#{install_dir}/bin/agent" else @@ -224,6 +232,37 @@ delete "#{install_dir}/uselessfile" end + # TODO: move this to omnibus-ruby::health-check.rb + # check that linux binaries contains OpenSSL symbols when building to support FIPS + if fips_mode? && linux_target? + # Put the ruby code in a block to prevent omnibus from running it directly but rather at build step with the rest of the code above. + # If not in a block, it will search for binaries that have not been built yet. + block do + LINUX_BINARIES = [ + "#{install_dir}/bin/agent/agent", + "#{install_dir}/embedded/bin/trace-agent", + "#{install_dir}/embedded/bin/process-agent", + "#{install_dir}/embedded/bin/security-agent", + "#{install_dir}/embedded/bin/system-probe", + ] + + symbol = "_Cfunc_go_openssl" + check_block = Proc.new { |binary, symbols| + count = symbols.scan(symbol).count + if count > 0 + log.info(log_key) { "Symbol '#{symbol}' found #{count} times in binary '#{binary}'." } + else + raise FIPSSymbolsNotFound.new("Expected to find '#{symbol}' symbol in #{binary} but did not") + end + }.curry + + LINUX_BINARIES.each do |bin| + partially_applied_check = check_block.call(bin) + GoSymbolsInspector.new(bin, &partially_applied_check).inspect() + end + end + end + python_scripts_dir = "#{project_dir}/omnibus/python-scripts" mkdir "#{install_dir}/python-scripts" copy "#{python_scripts_dir}/*", "#{install_dir}/python-scripts" diff --git a/omnibus/config/software/openssl-fips-provider.rb b/omnibus/config/software/openssl-fips-provider.rb new file mode 100644 index 0000000000000..776d7e81531b3 --- /dev/null +++ b/omnibus/config/software/openssl-fips-provider.rb @@ -0,0 +1,47 @@ +# Unless explicitly stated otherwise all files in this repository are licensed +# under the Apache License Version 2.0. +# This product includes software developed at Datadog (https://www.datadoghq.com). +# Copyright 2016-present Datadog, Inc. + +# Embedded OpenSSL to meet FIPS requirements. It comes in two parts: +# 1. The FIPS module itself (this software definition). It must use a FIPS-validated version +# and follow the build steps outlined in the OpenSSL FIPS Security Policy. +# 2. The OpenSSL library, which can be any 3.0.x version. This library will use the FIPS provider. + +name "openssl-fips-provider" +default_version "0.0.1" + +OPENSSL_FIPS_MODULE_VERSION="3.0.9" +OPENSSL_FIPS_MODULE_FILENAME="openssl-#{OPENSSL_FIPS_MODULE_VERSION}.tar.gz" +OPENSSL_FIPS_MODULE_SHA256_SUM="eb1ab04781474360f77c318ab89d8c5a03abc38e63d65a603cabbf1b00a1dc90" + +source url: "https://www.openssl.org/source/#{OPENSSL_FIPS_MODULE_FILENAME}", + sha256: "#{OPENSSL_FIPS_MODULE_SHA256_SUM}", + extract: :seven_zip + +relative_path "openssl-#{OPENSSL_FIPS_MODULE_VERSION}" + +build do + # Exact build steps from security policy: + # https://csrc.nist.gov/CSRC/media/projects/cryptographic-module-validation-program/documents/security-policies/140sp4282.pdf + # + # ---------------- DO NOT MODIFY LINES BELOW HERE ---------------- + command "./Configure enable-fips" + + command "make" + command "make install" + # ---------------- DO NOT MODIFY LINES ABOVE HERE ---------------- + + mkdir "#{install_dir}/embedded/ssl" + mkdir "#{install_dir}/embedded/lib/ossl-modules" + copy "/usr/local/lib*/ossl-modules/fips.so", "#{install_dir}/embedded/lib/ossl-modules/fips.so" + + erb source: "openssl.cnf.erb", + dest: "#{install_dir}/embedded/ssl/openssl.cnf.tmp", + mode: 0644, + vars: { install_dir: install_dir } + erb source: "fipsinstall.sh.erb", + dest: "#{install_dir}/embedded/bin/fipsinstall.sh", + mode: 0755, + vars: { install_dir: install_dir } +end diff --git a/omnibus/config/templates/openssl-fips-provider/fipsinstall.sh.erb b/omnibus/config/templates/openssl-fips-provider/fipsinstall.sh.erb new file mode 100644 index 0000000000000..a789db7c20df4 --- /dev/null +++ b/omnibus/config/templates/openssl-fips-provider/fipsinstall.sh.erb @@ -0,0 +1,29 @@ +#!/bin/bash + +# The OpenSSL security policy states: +# "The Module shall have the self-tests run, and the Module config file output generated on each +# platform where it is intended to be used. The Module config file output data shall not be copied from +# one machine to another." +# This script aims to run self-tests and generate `fipsmodule.cnf.` +# Because the provided `openssl.cnf` references to `fipsmodule.cnf` which is not yet created, we first create it +# as `openssl.cnf.tmp` and then move it to its final name `openssl.cnf` when `fipsmodule.cnf` has been created + +set -euo pipefail + +INSTALL_DIR="<%= install_dir %>/embedded" + +FIPS_MODULE_PATH="${INSTALL_DIR}/ssl/fipsmodule.cnf" +OPENSSL_CONF_PATH="${INSTALL_DIR}/ssl/openssl.cnf" + +FIPS_SO_PATH="${INSTALL_DIR}/lib/ossl-modules/fips.so" +OPENSSL_BIN="${INSTALL_DIR}/bin/openssl" + + +if [ ! -f "${FIPS_MODULE_PATH}" ]; then + "${OPENSSL_BIN}" fipsinstall -module "${FIPS_SO_PATH}" -out "${FIPS_MODULE_PATH}" + mv "${OPENSSL_CONF_PATH}.tmp" "${OPENSSL_CONF_PATH}" +fi + +if ! "${OPENSSL_BIN}" fipsinstall -module "${FIPS_SO_PATH}" -in "${FIPS_MODULE_PATH}" -verify; then + echo "openssl fipsinstall: verification of FIPS compliance failed. $INSTALL_DIR/fipsmodule.cnf was corrupted or the installation failed." +fi diff --git a/omnibus/config/templates/openssl-fips-provider/openssl.cnf.erb b/omnibus/config/templates/openssl-fips-provider/openssl.cnf.erb new file mode 100644 index 0000000000000..1304d1021b08d --- /dev/null +++ b/omnibus/config/templates/openssl-fips-provider/openssl.cnf.erb @@ -0,0 +1,14 @@ +config_diagnostics = 1 +openssl_conf = openssl_init + +.include <%= install_dir %>/embedded/ssl/fipsmodule.cnf + +[openssl_init] +providers = provider_sect + +[provider_sect] +fips = fips_sect +base = base_sect + +[base_sect] +activate = 1 diff --git a/omnibus/lib/ostools.rb b/omnibus/lib/ostools.rb index 13d8d26e06e67..6ec8612585c37 100644 --- a/omnibus/lib/ostools.rb +++ b/omnibus/lib/ostools.rb @@ -63,3 +63,6 @@ def os end end +def fips_mode?() + return ENV['AGENT_FLAVOR'] == "fips" && (linux_target? || windows_target?) +end \ No newline at end of file diff --git a/omnibus/lib/symbols_inspectors.rb b/omnibus/lib/symbols_inspectors.rb index 31a56c0171a9d..797f239c0dc12 100644 --- a/omnibus/lib/symbols_inspectors.rb +++ b/omnibus/lib/symbols_inspectors.rb @@ -5,6 +5,10 @@ class ForbiddenSymbolsFoundError < StandardError end +class FIPSSymbolsNotFound < StandardError + +end + # Helper class to locate `dumpbin.exe` on Windows class Dumpbin include Singleton @@ -76,4 +80,4 @@ def inspect() log.info(self.class.name) { "Inspecting binary #{@binary}" } @block.call(`go tool nm #{@binary}`) end -end \ No newline at end of file +end diff --git a/omnibus/package-scripts/agent-deb/postinst b/omnibus/package-scripts/agent-deb/postinst index f0d2f12e78ad1..09a1c4a0d6d41 100755 --- a/omnibus/package-scripts/agent-deb/postinst +++ b/omnibus/package-scripts/agent-deb/postinst @@ -65,7 +65,11 @@ install_method: echo "$install_info_content" > $CONFIG_DIR/install_info fi -set +e +if [ -x ${INSTALL_DIR}/embedded/bin/fipsinstall.sh ]; then + ${INSTALL_DIR}/embedded/bin/fipsinstall.sh +fi + +set +e generate_install_id() { # Try generating a UUID based on /proc/sys/kernel/random/uuid diff --git a/omnibus/package-scripts/agent-deb/prerm b/omnibus/package-scripts/agent-deb/prerm index 19c8714ec2cb9..67c916c335da5 100755 --- a/omnibus/package-scripts/agent-deb/prerm +++ b/omnibus/package-scripts/agent-deb/prerm @@ -167,6 +167,13 @@ remove_persist_integration_files() fi } +remove_fips_module() +{ + # We explicitly remove the ssl directory because files within this folder are generated via a script + # outside of package installation (deb package only removes files initially present in the package). + rm -rf "${INSTALL_DIR}/embedded/ssl/fipsmodule.cnf" || true +} + case "$1" in #this can't be merged with the later case block because running 'remove_custom_integrations' would defeat the persisting integrations feature upgrade) # We're upgrading. @@ -189,6 +196,7 @@ case "$1" in remove_version_history remove_sysprobe_secagent_files remove_remote_config_db + remove_fips_module remove_persist_integration_files ;; upgrade) diff --git a/omnibus/package-scripts/agent-rpm/posttrans b/omnibus/package-scripts/agent-rpm/posttrans index a560a4626b45d..7206123b61636 100755 --- a/omnibus/package-scripts/agent-rpm/posttrans +++ b/omnibus/package-scripts/agent-rpm/posttrans @@ -110,6 +110,11 @@ install_method: echo "$install_info_content" > $CONFIG_DIR/install_info fi +if [ -x ${INSTALL_DIR}/embedded/bin/fipsinstall.sh ]; then + ${INSTALL_DIR}/embedded/bin/fipsinstall.sh +fi + + set +e generate_install_id() { diff --git a/omnibus/package-scripts/agent-rpm/prerm b/omnibus/package-scripts/agent-rpm/prerm index 9568f9b55f5ee..df2a03b266047 100755 --- a/omnibus/package-scripts/agent-rpm/prerm +++ b/omnibus/package-scripts/agent-rpm/prerm @@ -151,6 +151,13 @@ remove_persist_integration_files() fi } +remove_fips_module() +{ + # We explicitly remove the ssl directory because files within this folder are generated via a script + # outside of package installation (rpm package only removes files initially present in the package). + rm -rf "${INSTALL_DIR}/embedded/ssl/fipsmodule.cnf" || true +} + case "$*" in 1) # We're upgrading. @@ -173,6 +180,7 @@ case "$*" in remove_version_history remove_sysprobe_secagent_files remove_remote_config_db + remove_fips_module remove_persist_integration_files ;; 1) diff --git a/tasks/agent.py b/tasks/agent.py index 3399e4d7c4a58..50d88463e274e 100644 --- a/tasks/agent.py +++ b/tasks/agent.py @@ -14,7 +14,7 @@ from invoke import task from invoke.exceptions import Exit -from tasks.build_tags import filter_incompatible_tags, get_build_tags, get_default_build_tags +from tasks.build_tags import add_fips_tags, filter_incompatible_tags, get_build_tags, get_default_build_tags from tasks.devcontainer import run_on_devcontainer from tasks.flavor import AgentFlavor from tasks.libs.common.utils import ( @@ -150,6 +150,7 @@ def build( if flavor.is_ot(): # for agent build purposes the UA agent is just like base flavor = AgentFlavor.base + fips_mode = flavor.is_fips() if not exclude_rtloader and not flavor.is_iot(): # If embedded_path is set, we should give it to rtloader as it should install the headers/libs @@ -193,6 +194,7 @@ def build( exclude_tags = [] if build_exclude is None else build_exclude.split(",") build_tags = get_build_tags(include_tags, exclude_tags) + build_tags = add_fips_tags(build_tags, fips_mode) cmd = "go build -mod={go_mod} {race_opt} {build_type} -tags \"{go_build_tags}\" " diff --git a/tasks/build_tags.py b/tasks/build_tags.py index 593219ef96b56..caa73601e65b6 100644 --- a/tasks/build_tags.py +++ b/tasks/build_tags.py @@ -105,6 +105,8 @@ } ) +FIPS_AGENT_TAGS = AGENT_TAGS.union({"goexperiment.systemcrypto"}) + # CLUSTER_AGENT_TAGS lists the tags needed when building the cluster-agent CLUSTER_AGENT_TAGS = {"clusterchecks", "datadog.no_waf", "kubeapiserver", "orchestrator", "zlib", "zstd", "ec2", "gce"} @@ -235,6 +237,11 @@ "lint": DOGSTATSD_TAGS.union(UNIT_TEST_TAGS).difference(UNIT_TEST_EXCLUDE_TAGS), "unit-tests": DOGSTATSD_TAGS.union(UNIT_TEST_TAGS).difference(UNIT_TEST_EXCLUDE_TAGS), }, + AgentFlavor.fips: { + "agent": FIPS_AGENT_TAGS, + "lint": FIPS_AGENT_TAGS.union(UNIT_TEST_TAGS).difference(UNIT_TEST_EXCLUDE_TAGS), + "unit-tests": FIPS_AGENT_TAGS.union(UNIT_TEST_TAGS).difference(UNIT_TEST_EXCLUDE_TAGS), + }, } @@ -414,3 +421,9 @@ def compute_config_build_tags(targets="all", build_include=None, build_exclude=N build_exclude = [] if build_exclude is None else build_exclude.split(",") use_tags = get_build_tags(build_include, build_exclude) return use_tags + + +def add_fips_tags(tags: list[str], fips_mode: bool) -> list[str]: + if fips_mode: + tags.append("goexperiment.systemcrypto") + return tags diff --git a/tasks/flavor.py b/tasks/flavor.py index 8b38d93b00181..d935211441053 100644 --- a/tasks/flavor.py +++ b/tasks/flavor.py @@ -8,9 +8,13 @@ class AgentFlavor(enum.Enum): heroku = 3 dogstatsd = 4 ot = 5 + fips = 6 def is_iot(self): return self == type(self).iot def is_ot(self): return self == type(self).ot + + def is_fips(self): + return self == type(self).fips diff --git a/tasks/omnibus.py b/tasks/omnibus.py index 10cbc9db9b899..649992fdcfb44 100644 --- a/tasks/omnibus.py +++ b/tasks/omnibus.py @@ -91,6 +91,7 @@ def get_omnibus_env( flavor=AgentFlavor.base, pip_config_file="pip.conf", custom_config_dir=None, + fips_mode=False, ): env = load_release_versions(ctx, release_version) @@ -133,6 +134,9 @@ def get_omnibus_env( if custom_config_dir: env["OUTPUT_CONFIG_DIR"] = custom_config_dir + if fips_mode: + env['FIPS_MODE'] = 'true' + # We need to override the workers variable in omnibus build when running on Kubernetes runners, # otherwise, ohai detect the number of CPU on the host and run the make jobs with all the CPU. kubernetes_cpu_request = os.environ.get('KUBERNETES_CPU_REQUEST') @@ -187,6 +191,7 @@ def build( """ flavor = AgentFlavor[flavor] + fips_mode = flavor.is_fips() durations = {} if not skip_deps: with timed(quiet=True) as durations['Deps']: @@ -211,6 +216,7 @@ def build( flavor=flavor, pip_config_file=pip_config_file, custom_config_dir=config_directory, + fips_mode=fips_mode, ) if not target_project: diff --git a/tasks/process_agent.py b/tasks/process_agent.py index 6c3481d9c5213..d1020f3e88899 100644 --- a/tasks/process_agent.py +++ b/tasks/process_agent.py @@ -6,7 +6,7 @@ from invoke import task from invoke.exceptions import Exit -from tasks.build_tags import filter_incompatible_tags, get_build_tags, get_default_build_tags +from tasks.build_tags import add_fips_tags, filter_incompatible_tags, get_build_tags, get_default_build_tags from tasks.flavor import AgentFlavor from tasks.libs.common.utils import REPO_PATH, bin_name, get_build_flags from tasks.system_probe import copy_ebpf_and_related_files @@ -35,6 +35,7 @@ def build( flavor = AgentFlavor[flavor] if flavor.is_ot(): flavor = AgentFlavor.base + fips_mode = flavor.is_fips() ldflags, gcflags, env = get_build_flags( ctx, @@ -67,6 +68,7 @@ def build( build_exclude = [] if build_exclude is None else build_exclude.split(",") build_tags = get_build_tags(build_include, build_exclude) + build_tags = add_fips_tags(build_tags, fips_mode) if os.path.exists(BIN_PATH): os.remove(BIN_PATH) diff --git a/tasks/security_agent.py b/tasks/security_agent.py index 3d0dc7e752d95..f591473c2217e 100644 --- a/tasks/security_agent.py +++ b/tasks/security_agent.py @@ -14,7 +14,7 @@ from invoke.tasks import task from tasks.agent import generate_config -from tasks.build_tags import get_default_build_tags +from tasks.build_tags import add_fips_tags, get_default_build_tags from tasks.go import run_golangci_lint from tasks.libs.build.ninja import NinjaWriter from tasks.libs.common.git import get_commit_sha, get_current_branch @@ -58,6 +58,7 @@ def build( go_mod="mod", skip_assets=False, static=False, + fips_mode=False, ): """ Build the security agent @@ -88,6 +89,7 @@ def build( ldflags += ' '.join([f"-X '{main + key}={value}'" for key, value in ld_vars.items()]) build_tags += get_default_build_tags(build="security-agent") + build_tags = add_fips_tags(build_tags, fips_mode) if os.path.exists(BIN_PATH): os.remove(BIN_PATH) diff --git a/tasks/system_probe.py b/tasks/system_probe.py index 2517cc71a2edd..5ddffee1496c8 100644 --- a/tasks/system_probe.py +++ b/tasks/system_probe.py @@ -19,7 +19,7 @@ from invoke.exceptions import Exit from invoke.tasks import task -from tasks.build_tags import UNIT_TEST_TAGS, get_default_build_tags +from tasks.build_tags import UNIT_TEST_TAGS, add_fips_tags, get_default_build_tags from tasks.libs.build.ninja import NinjaWriter from tasks.libs.common.color import color_message from tasks.libs.common.git import get_commit_sha @@ -735,6 +735,7 @@ def build_sysprobe_binary( install_path=None, bundle_ebpf=False, strip_binary=False, + fips_mode=False, static=False, ) -> None: arch_obj = Arch.from_str(arch) @@ -748,6 +749,7 @@ def build_sysprobe_binary( ) build_tags = get_default_build_tags(build="system-probe") + build_tags = add_fips_tags(build_tags, fips_mode) if bundle_ebpf: build_tags.append(BUNDLE_TAG) if strip_binary: diff --git a/tasks/trace_agent.py b/tasks/trace_agent.py index 812116eeb3c32..a9503e77c3453 100644 --- a/tasks/trace_agent.py +++ b/tasks/trace_agent.py @@ -3,7 +3,7 @@ from invoke import Exit, task -from tasks.build_tags import filter_incompatible_tags, get_build_tags, get_default_build_tags +from tasks.build_tags import add_fips_tags, filter_incompatible_tags, get_build_tags, get_default_build_tags from tasks.flavor import AgentFlavor from tasks.libs.common.utils import REPO_PATH, bin_name, get_build_flags from tasks.windows_resources import build_messagetable, build_rc, versioninfo_vars @@ -30,6 +30,7 @@ def build( flavor = AgentFlavor[flavor] if flavor.is_ot(): flavor = AgentFlavor.base + fips_mode = flavor.is_fips() ldflags, gcflags, env = get_build_flags( ctx, @@ -59,6 +60,7 @@ def build( build_exclude = [] if build_exclude is None else build_exclude.split(",") build_tags = get_build_tags(build_include, build_exclude) + build_tags = add_fips_tags(build_tags, fips_mode) race_opt = "-race" if race else "" build_type = "-a" if rebuild else "" From 2a21b7f0064af6b470a3cc797011ac8d619dd33b Mon Sep 17 00:00:00 2001 From: Guillaume Pagnoux Date: Thu, 28 Nov 2024 11:59:13 +0100 Subject: [PATCH 120/439] discovery: generate service name from container tags (#31306) --- .../corechecks/servicediscovery/impl_linux.go | 4 + .../servicediscovery/model/model.go | 27 ++-- .../servicediscovery/module/impl_linux.go | 142 ++++++++++++++---- .../module/impl_linux_test.go | 127 +++++++++++++++- 4 files changed, 258 insertions(+), 42 deletions(-) diff --git a/pkg/collector/corechecks/servicediscovery/impl_linux.go b/pkg/collector/corechecks/servicediscovery/impl_linux.go index 30f4230425349..c85e66d380a1a 100644 --- a/pkg/collector/corechecks/servicediscovery/impl_linux.go +++ b/pkg/collector/corechecks/servicediscovery/impl_linux.go @@ -104,6 +104,8 @@ func (li *linuxImpl) DiscoverServices() (*discoveredServices, error) { svc.LastHeartbeat = now svc.service.RSS = service.RSS svc.service.CPUCores = service.CPUCores + svc.service.ContainerID = service.ContainerID + svc.service.GeneratedName = service.GeneratedName events.heartbeat = append(events.heartbeat, *svc) } } @@ -139,6 +141,8 @@ func (li *linuxImpl) handlePotentialServices(events *serviceEvents, now time.Tim svc.LastHeartbeat = now svc.service.RSS = service.RSS svc.service.CPUCores = service.CPUCores + svc.service.ContainerID = service.ContainerID + svc.service.GeneratedName = service.GeneratedName li.aliveServices[pid] = svc events.start = append(events.start, *svc) diff --git a/pkg/collector/corechecks/servicediscovery/model/model.go b/pkg/collector/corechecks/servicediscovery/model/model.go index df67422cb089e..f45cbae150eb4 100644 --- a/pkg/collector/corechecks/servicediscovery/model/model.go +++ b/pkg/collector/corechecks/servicediscovery/model/model.go @@ -8,19 +8,20 @@ package model // Service represents a listening process. type Service struct { - PID int `json:"pid"` - Name string `json:"name"` - GeneratedName string `json:"generated_name"` - DDService string `json:"dd_service"` - DDServiceInjected bool `json:"dd_service_injected"` - Ports []uint16 `json:"ports"` - APMInstrumentation string `json:"apm_instrumentation"` - Language string `json:"language"` - RSS uint64 `json:"rss"` - CommandLine []string `json:"cmdline"` - StartTimeMilli uint64 `json:"start_time"` - CPUCores float64 `json:"cpu_cores"` - ContainerID string `json:"container_id"` + PID int `json:"pid"` + Name string `json:"name"` + GeneratedName string `json:"generated_name"` + DDService string `json:"dd_service"` + DDServiceInjected bool `json:"dd_service_injected"` + CheckedContainerData bool `json:"checked_container_data"` + Ports []uint16 `json:"ports"` + APMInstrumentation string `json:"apm_instrumentation"` + Language string `json:"language"` + RSS uint64 `json:"rss"` + CommandLine []string `json:"cmdline"` + StartTimeMilli uint64 `json:"start_time"` + CPUCores float64 `json:"cpu_cores"` + ContainerID string `json:"container_id"` } // ServicesResponse is the response for the system-probe /discovery/services endpoint. diff --git a/pkg/collector/corechecks/servicediscovery/module/impl_linux.go b/pkg/collector/corechecks/servicediscovery/module/impl_linux.go index 70cee8a18beee..dd02e8a13c2f4 100644 --- a/pkg/collector/corechecks/servicediscovery/module/impl_linux.go +++ b/pkg/collector/corechecks/servicediscovery/module/impl_linux.go @@ -20,6 +20,7 @@ import ( "sync" "time" + agentPayload "github.com/DataDog/agent-payload/v5/process" "github.com/shirou/gopsutil/v3/process" "github.com/DataDog/datadog-agent/cmd/system-probe/api/module" @@ -48,15 +49,16 @@ var _ module.Module = &discovery{} // serviceInfo holds process data that should be cached between calls to the // endpoint. type serviceInfo struct { - generatedName string - ddServiceName string - ddServiceInjected bool - language language.Language - apmInstrumentation apm.Instrumentation - cmdLine []string - startTimeMilli uint64 - cpuTime uint64 - cpuUsage float64 + generatedName string + ddServiceName string + ddServiceInjected bool + checkedContainerData bool + language language.Language + apmInstrumentation apm.Instrumentation + cmdLine []string + startTimeMilli uint64 + cpuTime uint64 + cpuUsage float64 } // discovery is an implementation of the Module interface for the discovery module. @@ -551,18 +553,19 @@ func (s *discovery) getService(context parsingContext, pid int32) *model.Service } return &model.Service{ - PID: int(pid), - Name: name, - GeneratedName: info.generatedName, - DDService: info.ddServiceName, - DDServiceInjected: info.ddServiceInjected, - Ports: ports, - APMInstrumentation: string(info.apmInstrumentation), - Language: string(info.language), - RSS: rss, - CommandLine: info.cmdLine, - StartTimeMilli: info.startTimeMilli, - CPUCores: info.cpuUsage, + PID: int(pid), + Name: name, + GeneratedName: info.generatedName, + DDService: info.ddServiceName, + DDServiceInjected: info.ddServiceInjected, + CheckedContainerData: info.checkedContainerData, + Ports: ports, + APMInstrumentation: string(info.apmInstrumentation), + Language: string(info.language), + RSS: rss, + CommandLine: info.cmdLine, + StartTimeMilli: info.startTimeMilli, + CPUCores: info.cpuUsage, } } @@ -613,6 +616,89 @@ func (s *discovery) updateServicesCPUStats(services []model.Service) error { return nil } +func getServiceNameFromContainerTags(tags []string) string { + // The tags we look for service name generation, in their priority order. + // The map entries will be filled as we go through the containers tags. + tagsPriority := []struct { + tagName string + tagValue *string + }{ + {"service", nil}, + {"app", nil}, + {"short_image", nil}, + {"kube_container_name", nil}, + {"kube_deployment", nil}, + {"kube_service", nil}, + } + + for _, tag := range tags { + // Get index of separator between name and value + sepIndex := strings.IndexRune(tag, ':') + if sepIndex < 0 || sepIndex >= len(tag)-1 { + // Malformed tag; we skip it + continue + } + + for i := range tagsPriority { + if tag[:sepIndex] != tagsPriority[i].tagName { + // Not a tag we care about; we skip it + continue + } + + value := tag[sepIndex+1:] + tagsPriority[i].tagValue = &value + break + } + } + + for _, tag := range tagsPriority { + if tag.tagValue == nil { + continue + } + + log.Debugf("Using %v:%v tag for service name", tag.tagName, *tag.tagValue) + return *tag.tagValue + } + + return "" +} + +func (s *discovery) enrichContainerData(service *model.Service, containers map[string]*agentPayload.Container, pidToCid map[int]string) { + id, ok := pidToCid[service.PID] + if !ok { + return + } + + service.ContainerID = id + + // We got the service name from container tags before, no need to do it again. + if service.CheckedContainerData { + return + } + + container, ok := containers[id] + if !ok { + return + } + + serviceName := getServiceNameFromContainerTags(container.Tags) + + if serviceName != "" { + service.GeneratedName = serviceName + } + service.CheckedContainerData = true + + s.mux.Lock() + serviceInfo, ok := s.cache[int32(service.PID)] + if ok { + if serviceName != "" { + serviceInfo.generatedName = serviceName + } + serviceInfo.checkedContainerData = true + } + s.mux.Unlock() +} + // getStatus returns the list of currently running services. func (s *discovery) getServices() (*[]model.Service, error) { procRoot := kernel.ProcFSRoot() @@ -628,11 +714,18 @@ func (s *discovery) getServices() (*[]model.Service, error) { var services []model.Service alivePids := make(map[int32]struct{}, len(pids)) - _, _, pidToCid, err := s.containerProvider.GetContainers(1*time.Minute, nil) + containers, _, pidToCid, err := s.containerProvider.GetContainers(1*time.Minute, nil) if err != nil { log.Errorf("could not get containers: %s", err) } + // Build mapping of Container ID to container object to avoid traversal of + // the containers slice for every services. + containersMap := make(map[string]*agentPayload.Container, len(containers)) + for _, c := range containers { + containersMap[c.Id] = c + } + for _, pid := range pids { alivePids[pid] = struct{}{} @@ -640,10 +733,7 @@ func (s *discovery) getServices() (*[]model.Service, error) { if service == nil { continue } - - if id, ok := pidToCid[service.PID]; ok { - service.ContainerID = id - } + s.enrichContainerData(service, containersMap, pidToCid) services = append(services, *service) } diff --git a/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go b/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go index 6d5610c952a24..a8154ea1b7925 100644 --- a/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go +++ b/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go @@ -28,6 +28,7 @@ import ( "testing" "time" + agentPayload "github.com/DataDog/agent-payload/v5/process" "github.com/golang/mock/gomock" gorillamux "github.com/gorilla/mux" "github.com/prometheus/procfs" @@ -812,9 +813,21 @@ func TestDocker(t *testing.T) { } if comm == "python-1111" { pid1111 = process.PID - mockContainerProvider.EXPECT().GetContainers(1*time.Minute, nil).Return(nil, nil, map[int]string{ - pid1111: "dummyCID", - }, nil) + mockContainerProvider. + EXPECT(). + GetContainers(1*time.Minute, nil). + Return( + []*agentPayload.Container{ + {Id: "dummyCID", Tags: []string{ + "sometag:somevalue", + "kube_service:kube_foo", // Should not have priority compared to app tag, for service naming + "app:foo_from_app_tag", + }}, + }, + nil, + map[int]string{ + pid1111: "dummyCID", + }, nil) break } @@ -827,6 +840,7 @@ func TestDocker(t *testing.T) { require.Contains(t, portMap, pid1111) require.Contains(t, portMap[pid1111].Ports, uint16(1234)) require.Contains(t, portMap[pid1111].ContainerID, "dummyCID") + require.Contains(t, portMap[pid1111].GeneratedName, "foo_from_app_tag") } // Check that the cache is cleaned when procceses die. @@ -895,6 +909,113 @@ func TestCache(t *testing.T) { require.Empty(t, discovery.cache) } +func TestTagsPriority(t *testing.T) { + cases := []struct { + name string + tags []string + expectedServiceName string + }{ + { + "nil tag list", + nil, + "", + }, + { + "empty tag list", + []string{}, + "", + }, + { + "no useful tags", + []string{"foo:bar"}, + "", + }, + { + "malformed tag", + []string{"foobar"}, + "", + }, + { + "service tag", + []string{"service:foo"}, + "foo", + }, + { + "app tag", + []string{"app:foo"}, + "foo", + }, + { + "short_image tag", + []string{"short_image:foo"}, + "foo", + }, + { + "kube_container_name tag", + []string{"kube_container_name:foo"}, + "foo", + }, + { + "kube_deployment tag", + []string{"kube_deployment:foo"}, + "foo", + }, + { + "kube_service tag", + []string{"kube_service:foo"}, + "foo", + }, + { + "multiple tags", + []string{ + "foo:bar", + "baz:biz", + "service:my_service", + "malformed", + }, + "my_service", + }, + { + "empty value", + []string{ + "service:", + "app:foo", + }, + "foo", + }, + { + "multiple tags with priority", + []string{ + "foo:bar", + "short_image:my_image", + "baz:biz", + "service:my_service", + "malformed", + }, + "my_service", + }, + { + "all priority tags", + []string{ + "kube_service:my_kube_service", + "kube_deployment:my_kube_deployment", + "kube_container_name:my_kube_container_name", + "short_iamge:my_short_image", + "app:my_app", + "service:my_service", + }, + "my_service", + }, + } + + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + name := getServiceNameFromContainerTags(c.tags) + require.Equalf(t, c.expectedServiceName, name, "got wrong service name from container tags") + }) + } +} + func BenchmarkOldProcess(b *testing.B) { b.ResetTimer() b.ReportAllocs() From 5782113fcc87284c6b2fd7aeeb1c0e94e0ad9f85 Mon Sep 17 00:00:00 2001 From: "agent-platform-auto-pr[bot]" <153269286+agent-platform-auto-pr[bot]@users.noreply.github.com> Date: Thu, 28 Nov 2024 11:15:17 +0000 Subject: [PATCH 121/439] [omnibus][automated] Bump OMNIBUS_SOFTWARE_VERSION (#31550) Co-authored-by: chouquette --- release.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/release.json b/release.json index 51be2bf1b6144..6ba0cdd4d879f 100644 --- a/release.json +++ b/release.json @@ -7,7 +7,7 @@ }, "nightly": { "INTEGRATIONS_CORE_VERSION": "master", - "OMNIBUS_SOFTWARE_VERSION": "58b335c2c49efc266e9e707d9a2a36198ff8f1a3", + "OMNIBUS_SOFTWARE_VERSION": "0059a287d5543305c01a098740ba328aef7fa8ff", "OMNIBUS_RUBY_VERSION": "d365e483ee05a13e55eeb5208d11452c5b65afbb", "JMXFETCH_VERSION": "0.49.6", "JMXFETCH_HASH": "f06bdac1f8ec41daf9b9839ac883f1865a068b04810ea82197b8a6afb9369cb9", @@ -26,7 +26,7 @@ }, "nightly-a7": { "INTEGRATIONS_CORE_VERSION": "master", - "OMNIBUS_SOFTWARE_VERSION": "58b335c2c49efc266e9e707d9a2a36198ff8f1a3", + "OMNIBUS_SOFTWARE_VERSION": "0059a287d5543305c01a098740ba328aef7fa8ff", "OMNIBUS_RUBY_VERSION": "d365e483ee05a13e55eeb5208d11452c5b65afbb", "JMXFETCH_VERSION": "0.49.6", "JMXFETCH_HASH": "f06bdac1f8ec41daf9b9839ac883f1865a068b04810ea82197b8a6afb9369cb9", From fc3a485e4bb1c2c3bab567a70b6a079326f859c5 Mon Sep 17 00:00:00 2001 From: Sylvain Baubeau Date: Thu, 28 Nov 2024 12:31:33 +0100 Subject: [PATCH 122/439] [CWS] Use ProcessCacheEntry cgroup context as event cgroup context (#31553) --- pkg/security/probe/probe_ebpf.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go index f09797254e3d8..aa8e75bba214f 100644 --- a/pkg/security/probe/probe_ebpf.go +++ b/pkg/security/probe/probe_ebpf.go @@ -685,6 +685,9 @@ func (p *EBPFProbe) setProcessContext(eventType model.EventType, event *model.Ev panic("should always return a process context") } + // do the same with cgroup context + event.CGroupContext = event.ProcessCacheEntry.CGroup + if process.IsKThread(event.ProcessContext.PPid, event.ProcessContext.Pid) { return false } From 04a7c8c5f840e89aa3811ee659e3c187f0b88e34 Mon Sep 17 00:00:00 2001 From: Dustin Long Date: Thu, 28 Nov 2024 06:48:44 -0500 Subject: [PATCH 123/439] Implement missing config methods for nodetreemodel (#31548) --- pkg/config/model/types.go | 4 +- pkg/config/model/viper.go | 21 +---- pkg/config/model/viper_test.go | 20 ----- pkg/config/nodetreemodel/config.go | 56 ++++++------- pkg/config/nodetreemodel/config_test.go | 78 +++++++++++++++++++ pkg/config/nodetreemodel/debug_string.go | 16 ++++ .../nodetreemodel/debug_string_testonly.go | 65 ++++++++++++++++ pkg/config/nodetreemodel/read_config_file.go | 8 +- pkg/config/teeconfig/teeconfig.go | 8 +- 9 files changed, 200 insertions(+), 76 deletions(-) create mode 100644 pkg/config/nodetreemodel/debug_string.go create mode 100644 pkg/config/nodetreemodel/debug_string_testonly.go diff --git a/pkg/config/model/types.go b/pkg/config/model/types.go index 9d22089e4d648..f97ec7efff5c5 100644 --- a/pkg/config/model/types.go +++ b/pkg/config/model/types.go @@ -82,6 +82,9 @@ type Reader interface { // OnUpdate adds a callback to the list receivers to be called each time a value is change in the configuration // by a call to the 'Set' method. The configuration will sequentially call each receiver. OnUpdate(callback NotificationReceiver) + + // Stringify stringifies the config + Stringify(source Source) string } // Writer is a subset of Config that only allows writing the configuration @@ -89,7 +92,6 @@ type Writer interface { Set(key string, value interface{}, source Source) SetWithoutSource(key string, value interface{}) UnsetForSource(key string, source Source) - CopyConfig(cfg Config) } // ReaderWriter is a subset of Config that allows reading and writing the configuration diff --git a/pkg/config/model/viper.go b/pkg/config/model/viper.go index 99964f052c2d6..4bac624a9270b 100644 --- a/pkg/config/model/viper.go +++ b/pkg/config/model/viper.go @@ -835,24 +835,9 @@ func NewConfig(name string, envPrefix string, envKeyReplacer *strings.Replacer) return &config } -// CopyConfig copies the given config to the receiver config. This should only be used in tests as replacing -// the global config reference is unsafe. -func (c *safeConfig) CopyConfig(cfg Config) { - c.Lock() - defer c.Unlock() - - if cfg, ok := cfg.(*safeConfig); ok { - c.Viper = cfg.Viper - c.configSources = cfg.configSources - c.envPrefix = cfg.envPrefix - c.envKeyReplacer = cfg.envKeyReplacer - c.proxies = cfg.proxies - c.configEnvVars = cfg.configEnvVars - c.unknownKeys = cfg.unknownKeys - c.notificationReceivers = cfg.notificationReceivers - return - } - panic("Replacement config must be an instance of safeConfig") +// Stringify stringifies the config, but only for nodetremodel with the test build tag +func (c *safeConfig) Stringify(_ Source) string { + return "safeConfig{...}" } // GetProxies returns the proxy settings from the configuration diff --git a/pkg/config/model/viper_test.go b/pkg/config/model/viper_test.go index acd73ca26503c..018b8d95ab804 100644 --- a/pkg/config/model/viper_test.go +++ b/pkg/config/model/viper_test.go @@ -249,26 +249,6 @@ func TestCheckKnownKey(t *testing.T) { assert.Contains(t, config.unknownKeys, "foobar") } -func TestCopyConfig(t *testing.T) { - config := NewConfig("test", "DD", strings.NewReplacer(".", "_")) // nolint: forbidigo - config.SetDefault("baz", "qux") - config.Set("foo", "bar", SourceFile) - config.BindEnv("xyz", "XXYYZZ") - config.SetKnown("tyu") - config.OnUpdate(func(_ string, _, _ any) {}) - - backup := NewConfig("test", "DD", strings.NewReplacer(".", "_")) // nolint: forbidigo - backup.CopyConfig(config) - - assert.Equal(t, "qux", backup.Get("baz")) - assert.Equal(t, "bar", backup.Get("foo")) - t.Setenv("XXYYZZ", "value") - assert.Equal(t, "value", backup.Get("xyz")) - assert.True(t, backup.IsKnown("tyu")) - // can't compare function pointers directly so just check the number of callbacks - assert.Len(t, backup.(*safeConfig).notificationReceivers, 1, "notification receivers should be copied") -} - func TestExtraConfig(t *testing.T) { config := NewConfig("test", "DD", strings.NewReplacer(".", "_")) // nolint: forbidigo diff --git a/pkg/config/nodetreemodel/config.go b/pkg/config/nodetreemodel/config.go index f59b6f7dbe324..14f727b6086a1 100644 --- a/pkg/config/nodetreemodel/config.go +++ b/pkg/config/nodetreemodel/config.go @@ -305,6 +305,18 @@ func (c *ntmConfig) BuildSchema() { } } +// Stringify stringifies the config, but only with the test build tag +func (c *ntmConfig) Stringify(source model.Source) string { + c.Lock() + defer c.Unlock() + // only does anything if the build tag "test" is enabled + text, err := c.toDebugString(source) + if err != nil { + return fmt.Sprintf("Stringify error: %s", err) + } + return text +} + func (c *ntmConfig) isReady() bool { return c.ready.Load() } @@ -482,14 +494,25 @@ func (c *ntmConfig) UnmarshalKey(key string, _rawVal interface{}, _opts ...viper c.RLock() defer c.RUnlock() c.checkKnownKey(key) - return c.logErrorNotImplemented("UnmarshalKey") + return fmt.Errorf("nodetreemodel.UnmarshalKey not available, use pkg/config/structure.UnmarshalKey instead") } // MergeConfig merges in another config -func (c *ntmConfig) MergeConfig(_in io.Reader) error { +func (c *ntmConfig) MergeConfig(in io.Reader) error { c.Lock() defer c.Unlock() - return c.logErrorNotImplemented("MergeConfig") + + content, err := io.ReadAll(in) + if err != nil { + return err + } + + other := newInnerNode(nil) + if err = c.readConfigurationContent(other, content); err != nil { + return err + } + + return c.root.Merge(other) } // MergeFleetPolicy merges the configuration from the reader given with an existing config @@ -619,11 +642,9 @@ func (c *ntmConfig) ConfigFileUsed() string { return c.configFile } -// SetTypeByDefaultValue enables typing using default values +// SetTypeByDefaultValue is a no-op func (c *ntmConfig) SetTypeByDefaultValue(_in bool) { - c.Lock() - defer c.Unlock() - c.logErrorNotImplemented("SetTypeByDefaultValue") + // do nothing: nodetreemodel always does this conversion } // BindEnvAndSetDefault binds an environment variable and sets a default for the given key @@ -661,7 +682,6 @@ func NewConfig(name string, envPrefix string, envKeyReplacer *strings.Replacer) envTransform: make(map[string]func(string) interface{}), } - config.SetTypeByDefaultValue(true) config.SetConfigName(name) config.SetEnvPrefix(envPrefix) config.SetEnvKeyReplacer(envKeyReplacer) @@ -669,26 +689,6 @@ func NewConfig(name string, envPrefix string, envKeyReplacer *strings.Replacer) return &config } -// CopyConfig copies the given config to the receiver config. This should only be used in tests as replacing -// the global config reference is unsafe. -func (c *ntmConfig) CopyConfig(cfg model.Config) { - c.Lock() - defer c.Unlock() - c.logErrorNotImplemented("CopyConfig") - if cfg, ok := cfg.(*ntmConfig); ok { - // TODO: Probably a bug, should be a deep copy, add a test and verify - c.root = cfg.root - c.envPrefix = cfg.envPrefix - c.envKeyReplacer = cfg.envKeyReplacer - c.proxies = cfg.proxies - c.configEnvVars = cfg.configEnvVars - c.unknownKeys = cfg.unknownKeys - c.notificationReceivers = cfg.notificationReceivers - return - } - panic("Replacement config must be an instance of ntmConfig") -} - // ExtraConfigFilesUsed returns the additional config files used func (c *ntmConfig) ExtraConfigFilesUsed() []string { c.Lock() diff --git a/pkg/config/nodetreemodel/config_test.go b/pkg/config/nodetreemodel/config_test.go index 5080841815605..c9f87747e2345 100644 --- a/pkg/config/nodetreemodel/config_test.go +++ b/pkg/config/nodetreemodel/config_test.go @@ -347,3 +347,81 @@ func TestAllKeysLowercased(t *testing.T) { sort.Strings(keys) assert.Equal(t, []string{"a", "b"}, keys) } + +func TestStringify(t *testing.T) { + configData := `network_path: + collector: + workers: 6 +secret_backend_command: ./my_secret_fetcher.sh +` + os.Setenv("TEST_SECRET_BACKEND_TIMEOUT", "60") + os.Setenv("TEST_NETWORK_PATH_COLLECTOR_INPUT_CHAN_SIZE", "23456") + + cfg := NewConfig("test", "TEST", strings.NewReplacer(".", "_")) + cfg.BindEnvAndSetDefault("network_path.collector.input_chan_size", 100000) + cfg.BindEnvAndSetDefault("network_path.collector.processing_chan_size", 100000) + cfg.BindEnvAndSetDefault("network_path.collector.workers", 4) + cfg.BindEnvAndSetDefault("secret_backend_command", "") + cfg.BindEnvAndSetDefault("secret_backend_timeout", 0) + cfg.BindEnvAndSetDefault("server_timeout", 30) + + cfg.BuildSchema() + err := cfg.ReadConfig(strings.NewReader(configData)) + require.NoError(t, err) + + txt := cfg.(*ntmConfig).Stringify("none") + expect := "Stringify error: invalid source: none" + assert.Equal(t, expect, txt) + + txt = cfg.(*ntmConfig).Stringify(model.SourceDefault) + expect = `network_path + collector + input_chan_size + val:100000, source:default + processing_chan_size + val:100000, source:default + workers + val:4, source:default +secret_backend_command + val:, source:default +secret_backend_timeout + val:0, source:default +server_timeout + val:30, source:default` + assert.Equal(t, expect, txt) + + txt = cfg.(*ntmConfig).Stringify(model.SourceFile) + expect = `network_path + collector + workers + val:6, source:file +secret_backend_command + val:./my_secret_fetcher.sh, source:file` + assert.Equal(t, expect, txt) + + txt = cfg.(*ntmConfig).Stringify(model.SourceEnvVar) + expect = `network_path + collector + input_chan_size + val:23456, source:environment-variable +secret_backend_timeout + val:60, source:environment-variable` + assert.Equal(t, expect, txt) + + txt = cfg.(*ntmConfig).Stringify("root") + expect = `network_path + collector + input_chan_size + val:23456, source:environment-variable + processing_chan_size + val:100000, source:default + workers + val:6, source:file +secret_backend_command + val:./my_secret_fetcher.sh, source:file +secret_backend_timeout + val:60, source:environment-variable +server_timeout + val:30, source:default` + assert.Equal(t, expect, txt) +} diff --git a/pkg/config/nodetreemodel/debug_string.go b/pkg/config/nodetreemodel/debug_string.go new file mode 100644 index 0000000000000..4d20a02800808 --- /dev/null +++ b/pkg/config/nodetreemodel/debug_string.go @@ -0,0 +1,16 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build !test +// +build !test + +package nodetreemodel + +import "github.com/DataDog/datadog-agent/pkg/config/model" + +func (c *ntmConfig) toDebugString(_ model.Source) (string, error) { + // don't show any data outside of tests, that way we don't have to worry about scrubbing + return "nodeTreeModelConfig{...}", nil +} diff --git a/pkg/config/nodetreemodel/debug_string_testonly.go b/pkg/config/nodetreemodel/debug_string_testonly.go new file mode 100644 index 0000000000000..a3cf3ae41cd94 --- /dev/null +++ b/pkg/config/nodetreemodel/debug_string_testonly.go @@ -0,0 +1,65 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build test +// +build test + +package nodetreemodel + +import ( + "fmt" + "strings" + + "github.com/DataDog/datadog-agent/pkg/config/model" +) + +func (c *ntmConfig) toDebugString(source model.Source) (string, error) { + var node Node + switch source { + case "root": + node = c.root + case model.SourceEnvVar: + node = c.envs + case model.SourceDefault: + node = c.defaults + case model.SourceFile: + node = c.file + default: + return "", fmt.Errorf("invalid source: %s", source) + } + lines, err := debugTree(node, 0) + if err != nil { + return "", err + } + return strings.Join(lines, "\n"), nil +} + +func debugTree(n Node, depth int) ([]string, error) { + padding := strings.Repeat(" ", depth) + if n == nil { + return []string{fmt.Sprintf("%s%v", padding, "")}, nil + } + if leaf, ok := n.(LeafNode); ok { + val := leaf.Get() + source := leaf.Source() + return []string{fmt.Sprintf("%sval:%v, source:%s", padding, val, source)}, nil + } + inner, ok := n.(InnerNode) + if !ok { + return nil, fmt.Errorf("unknown node type: %T", n) + } + keys := inner.ChildrenKeys() + result := []string{} + for _, key := range keys { + msg := fmt.Sprintf("%s%s", padding, key) + child, _ := n.GetChild(key) + rest, err := debugTree(child, depth+1) + if err != nil { + return nil, err + } + result = append(result, append([]string{msg}, rest...)...) + } + return result, nil +} diff --git a/pkg/config/nodetreemodel/read_config_file.go b/pkg/config/nodetreemodel/read_config_file.go index 5a7204616f346..c829ff6837aeb 100644 --- a/pkg/config/nodetreemodel/read_config_file.go +++ b/pkg/config/nodetreemodel/read_config_file.go @@ -60,7 +60,7 @@ func (c *ntmConfig) ReadConfig(in io.Reader) error { if err != nil { return err } - if err := c.readConfigurationContent(content); err != nil { + if err := c.readConfigurationContent(c.file, content); err != nil { return err } return c.mergeAllLayers() @@ -71,15 +71,15 @@ func (c *ntmConfig) readInConfig(filePath string) error { if err != nil { return err } - return c.readConfigurationContent(content) + return c.readConfigurationContent(c.file, content) } -func (c *ntmConfig) readConfigurationContent(content []byte) error { +func (c *ntmConfig) readConfigurationContent(target InnerNode, content []byte) error { var obj map[string]interface{} if err := yaml.Unmarshal(content, &obj); err != nil { return err } - c.warnings = append(c.warnings, loadYamlInto(c.defaults, c.file, obj, "")...) + c.warnings = append(c.warnings, loadYamlInto(c.defaults, target, obj, "")...) return nil } diff --git a/pkg/config/teeconfig/teeconfig.go b/pkg/config/teeconfig/teeconfig.go index 4101f43f4d5dd..f56190eca175b 100644 --- a/pkg/config/teeconfig/teeconfig.go +++ b/pkg/config/teeconfig/teeconfig.go @@ -364,11 +364,9 @@ func (t *teeConfig) Object() model.Reader { return t.baseline } -// CopyConfig copies the given config to the receiver config. This should only be used in tests as replacing -// the global config reference is unsafe. -func (t *teeConfig) CopyConfig(cfg model.Config) { - t.baseline.CopyConfig(cfg) - t.compare.CopyConfig(cfg) +// Stringify stringifies the config +func (t *teeConfig) Stringify(source model.Source) string { + return t.baseline.Stringify(source) } func (t *teeConfig) GetProxies() *model.Proxy { From 301fd84cb9a35cd273d7fac5c3ecd94fcca8596e Mon Sep 17 00:00:00 2001 From: Guillaume Fournier <36961134+Gui774ume@users.noreply.github.com> Date: Thu, 28 Nov 2024 13:01:28 +0100 Subject: [PATCH 124/439] [CWS] Skip empty lines in the trace logger (#31554) --- pkg/security/tests/trace_pipe.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkg/security/tests/trace_pipe.go b/pkg/security/tests/trace_pipe.go index 973c03f1023ea..424968b2e3aaa 100644 --- a/pkg/security/tests/trace_pipe.go +++ b/pkg/security/tests/trace_pipe.go @@ -94,6 +94,9 @@ func (t *TracePipe) ReadLine() (*TraceEvent, error) { if err != nil { return nil, err } + if line == "\n" { + return nil, io.EOF + } traceEvent, err := parseTraceLine(line) if err != nil { return nil, err From 23000dd9b546af4bf4659f39546fec20f5419147 Mon Sep 17 00:00:00 2001 From: Sylvain Afchain Date: Thu, 28 Nov 2024 13:05:24 +0100 Subject: [PATCH 125/439] [CWS] add action report debug log (#30888) --- pkg/security/module/server.go | 3 ++- pkg/security/probe/actions.go | 8 ++++++-- pkg/security/probe/actions_linux.go | 9 +++++++-- pkg/security/secl/model/model.go | 2 +- pkg/security/seclwin/model/model.go | 2 +- 5 files changed, 17 insertions(+), 7 deletions(-) diff --git a/pkg/security/module/server.go b/pkg/security/module/server.go index 20998d0660622..207525cd4909f 100644 --- a/pkg/security/module/server.go +++ b/pkg/security/module/server.go @@ -63,7 +63,8 @@ type pendingMsg struct { func (p *pendingMsg) isResolved() bool { for _, report := range p.actionReports { - if !report.IsResolved() { + if err := report.IsResolved(); err != nil { + seclog.Debugf("action report not resolved: %v", err) return false } } diff --git a/pkg/security/probe/actions.go b/pkg/security/probe/actions.go index 3e53dcc77c6a8..24af2b8b6a5f6 100644 --- a/pkg/security/probe/actions.go +++ b/pkg/security/probe/actions.go @@ -9,6 +9,7 @@ package probe import ( + "fmt" "sync" "time" @@ -62,12 +63,15 @@ type JKillActionReport struct { } // IsResolved return if the action is resolved -func (k *KillActionReport) IsResolved() bool { +func (k *KillActionReport) IsResolved() error { k.RLock() defer k.RUnlock() // for sigkill wait for exit - return k.Signal != "SIGKILL" || k.resolved || k.Status == KillActionStatusRuleDisarmed + if k.Signal != "SIGKILL" || k.resolved || k.Status == KillActionStatusRuleDisarmed { + return nil + } + return fmt.Errorf("kill action current state: %+v", k) } // ToJSON marshal the action diff --git a/pkg/security/probe/actions_linux.go b/pkg/security/probe/actions_linux.go index 54126bb2b12f5..fe2ac84377d97 100644 --- a/pkg/security/probe/actions_linux.go +++ b/pkg/security/probe/actions_linux.go @@ -9,6 +9,7 @@ package probe import ( + "fmt" "sync" "time" @@ -48,11 +49,15 @@ type HashActionReport struct { } // IsResolved return if the action is resolved -func (k *HashActionReport) IsResolved() bool { +func (k *HashActionReport) IsResolved() error { k.RLock() defer k.RUnlock() - return k.resolved + if k.resolved { + return nil + } + + return fmt.Errorf("hash action current state: %+v", k) } // ToJSON marshal the action diff --git a/pkg/security/secl/model/model.go b/pkg/security/secl/model/model.go index 9e3ba2db7b5ba..9a6ae500f2d6f 100644 --- a/pkg/security/secl/model/model.go +++ b/pkg/security/secl/model/model.go @@ -329,7 +329,7 @@ type MatchedRule struct { type ActionReport interface { ToJSON() ([]byte, error) IsMatchingRule(ruleID eval.RuleID) bool - IsResolved() bool + IsResolved() error } // NewMatchedRule return a new MatchedRule instance diff --git a/pkg/security/seclwin/model/model.go b/pkg/security/seclwin/model/model.go index 9e3ba2db7b5ba..9a6ae500f2d6f 100644 --- a/pkg/security/seclwin/model/model.go +++ b/pkg/security/seclwin/model/model.go @@ -329,7 +329,7 @@ type MatchedRule struct { type ActionReport interface { ToJSON() ([]byte, error) IsMatchingRule(ruleID eval.RuleID) bool - IsResolved() bool + IsResolved() error } // NewMatchedRule return a new MatchedRule instance From 3ac8f8cfd9bb2ded99e5c6e4834905c27348a7e8 Mon Sep 17 00:00:00 2001 From: Guillaume Fournier <36961134+Gui774ume@users.noreply.github.com> Date: Thu, 28 Nov 2024 13:07:24 +0100 Subject: [PATCH 126/439] [CSM] Prevent CSM program ID leak in ebpfcheck (#30997) --- pkg/ebpf/mappings.go | 11 ++++++ pkg/security/probe/probe_ebpf.go | 48 +++++++++++++++++++++++++-- pkg/security/resolvers/tc/resolver.go | 2 ++ 3 files changed, 59 insertions(+), 2 deletions(-) diff --git a/pkg/ebpf/mappings.go b/pkg/ebpf/mappings.go index 4f22298cc02cb..b7feb3f966195 100644 --- a/pkg/ebpf/mappings.go +++ b/pkg/ebpf/mappings.go @@ -38,6 +38,17 @@ func AddProgramNameMapping(progid uint32, name string, module string) { progModuleMapping[progid] = module } +// RemoveProgramID manually removes a program name mapping +func RemoveProgramID(progID uint32, expectedModule string) { + mappingLock.Lock() + defer mappingLock.Unlock() + + if progModuleMapping[progID] == expectedModule { + delete(progNameMapping, progID) + delete(progModuleMapping, progID) + } +} + // AddNameMappings adds the full name mappings for ebpf maps in the manager func AddNameMappings(mgr *manager.Manager, module string) { maps, err := mgr.GetMaps() diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go index aa8e75bba214f..6db379021bbc7 100644 --- a/pkg/security/probe/probe_ebpf.go +++ b/pkg/security/probe/probe_ebpf.go @@ -479,7 +479,6 @@ func (p *EBPFProbe) Setup() error { if err := p.Manager.Start(); err != nil { return err } - ddebpf.AddNameMappings(p.Manager, "cws") p.applyDefaultFilterPolicies() @@ -1525,7 +1524,52 @@ func (p *EBPFProbe) updateProbes(ruleEventTypes []eval.EventType, needRawSyscall return fmt.Errorf("failed to set enabled events: %w", err) } - return p.Manager.UpdateActivatedProbes(activatedProbes) + previousProbes := p.computeProbesIDs() + if err = p.Manager.UpdateActivatedProbes(activatedProbes); err != nil { + return err + } + newProbes := p.computeProbesIDs() + + p.computeProbesDiffAndRemoveMapping(previousProbes, newProbes) + return nil +} + +func (p *EBPFProbe) computeProbesIDs() map[string]lib.ProgramID { + out := make(map[string]lib.ProgramID) + progList, err := p.Manager.GetPrograms() + if err != nil { + return out + } + for funcName, prog := range progList { + programInfo, err := prog.Info() + if err != nil { + continue + } + + programID, isAvailable := programInfo.ID() + if isAvailable { + out[funcName] = programID + } + } + + return out +} + +func (p *EBPFProbe) computeProbesDiffAndRemoveMapping(previousProbes map[string]lib.ProgramID, newProbes map[string]lib.ProgramID) { + // Compute the list of programs that need to be deleted from the ddebpf mapping + var toDelete []lib.ProgramID + for previousProbeFuncName, programID := range previousProbes { + if _, ok := newProbes[previousProbeFuncName]; !ok { + toDelete = append(toDelete, programID) + } + } + + for _, id := range toDelete { + ddebpf.RemoveProgramID(uint32(id), "cws") + } + + // new programs could have been introduced during the update, add them now + ddebpf.AddNameMappings(p.Manager, "cws") } // GetDiscarders retrieve the discarders diff --git a/pkg/security/resolvers/tc/resolver.go b/pkg/security/resolvers/tc/resolver.go index eef9bbf1dfde9..3dc1f568b036c 100644 --- a/pkg/security/resolvers/tc/resolver.go +++ b/pkg/security/resolvers/tc/resolver.go @@ -149,6 +149,7 @@ func (tcr *Resolver) FlushNetworkNamespaceID(namespaceID uint32, m *manager.Mana for tcKey, tcProbe := range tcr.programs { if tcKey.NetDevice.NetNS == namespaceID { + ddebpf.RemoveProgramID(tcProbe.ID(), "cws") _ = m.DetachHook(tcProbe.ProbeIdentificationPair) delete(tcr.programs, tcKey) } @@ -166,6 +167,7 @@ func (tcr *Resolver) FlushInactiveProbes(m *manager.Manager, isLazy func(string) var linkName string for tcKey, tcProbe := range tcr.programs { if !tcProbe.IsTCFilterActive() { + ddebpf.RemoveProgramID(tcProbe.ID(), "cws") _ = m.DetachHook(tcProbe.ProbeIdentificationPair) delete(tcr.programs, tcKey) } else { From 974db6df7656880e94452d5c573c1649197c0f85 Mon Sep 17 00:00:00 2001 From: Guillaume Pagnoux Date: Thu, 28 Nov 2024 13:17:14 +0100 Subject: [PATCH 127/439] USM: enable Istio TLS monitoring by default (#31411) Co-authored-by: Esther Kim --- .../inventoryagentimpl/inventoryagent_test.go | 2 +- pkg/config/setup/system_probe.go | 2 +- pkg/network/config/config_test.go | 10 +++++----- pkg/network/usm/monitor_test.go | 2 ++ pkg/network/usm/usm_grpc_monitor_test.go | 1 + pkg/network/usm/usm_http2_monitor_test.go | 2 ++ .../enable-istio-tls-by-default-1da65945911f278a.yaml | 5 +++++ 7 files changed, 17 insertions(+), 7 deletions(-) create mode 100644 releasenotes/notes/enable-istio-tls-by-default-1da65945911f278a.yaml diff --git a/comp/metadata/inventoryagent/inventoryagentimpl/inventoryagent_test.go b/comp/metadata/inventoryagent/inventoryagentimpl/inventoryagent_test.go index 876dea30e8db8..10eb7430cf3bd 100644 --- a/comp/metadata/inventoryagent/inventoryagentimpl/inventoryagent_test.go +++ b/comp/metadata/inventoryagent/inventoryagentimpl/inventoryagent_test.go @@ -490,7 +490,7 @@ func TestFetchSystemProbeAgent(t *testing.T) { assert.False(t, ia.data["feature_usm_postgres_enabled"].(bool)) assert.False(t, ia.data["feature_usm_redis_enabled"].(bool)) assert.False(t, ia.data["feature_usm_http2_enabled"].(bool)) - assert.False(t, ia.data["feature_usm_istio_enabled"].(bool)) + assert.True(t, ia.data["feature_usm_istio_enabled"].(bool)) assert.False(t, ia.data["feature_usm_go_tls_enabled"].(bool)) assert.False(t, ia.data["feature_discovery_enabled"].(bool)) assert.False(t, ia.data["feature_tcp_queue_length_enabled"].(bool)) diff --git a/pkg/config/setup/system_probe.go b/pkg/config/setup/system_probe.go index 9cb7580607062..a31d90efac8d8 100644 --- a/pkg/config/setup/system_probe.go +++ b/pkg/config/setup/system_probe.go @@ -249,7 +249,7 @@ func InitSystemProbeConfig(cfg pkgconfigmodel.Config) { cfg.BindEnvAndSetDefault(join(smNS, "enable_kafka_monitoring"), false) cfg.BindEnv(join(smNS, "enable_postgres_monitoring")) cfg.BindEnv(join(smNS, "enable_redis_monitoring")) - cfg.BindEnvAndSetDefault(join(smNS, "tls", "istio", "enabled"), false) + cfg.BindEnvAndSetDefault(join(smNS, "tls", "istio", "enabled"), true) cfg.BindEnvAndSetDefault(join(smNS, "tls", "istio", "envoy_path"), defaultEnvoyPath) cfg.BindEnv(join(smNS, "tls", "nodejs", "enabled")) cfg.BindEnvAndSetDefault(join(smjtNS, "enabled"), false) diff --git a/pkg/network/config/config_test.go b/pkg/network/config/config_test.go index 991d461b2fe09..f325986082851 100644 --- a/pkg/network/config/config_test.go +++ b/pkg/network/config/config_test.go @@ -1269,23 +1269,23 @@ func TestIstioMonitoring(t *testing.T) { mock.NewSystemProbe(t) cfg := New() - assert.False(t, cfg.EnableIstioMonitoring) + assert.True(t, cfg.EnableIstioMonitoring) }) t.Run("via yaml", func(t *testing.T) { mockSystemProbe := mock.NewSystemProbe(t) - mockSystemProbe.SetWithoutSource("service_monitoring_config.tls.istio.enabled", true) + mockSystemProbe.SetWithoutSource("service_monitoring_config.tls.istio.enabled", false) cfg := New() - assert.True(t, cfg.EnableIstioMonitoring) + assert.False(t, cfg.EnableIstioMonitoring) }) t.Run("via deprecated ENV variable", func(t *testing.T) { mock.NewSystemProbe(t) - t.Setenv("DD_SERVICE_MONITORING_CONFIG_TLS_ISTIO_ENABLED", "true") + t.Setenv("DD_SERVICE_MONITORING_CONFIG_TLS_ISTIO_ENABLED", "false") cfg := New() - assert.True(t, cfg.EnableIstioMonitoring) + assert.False(t, cfg.EnableIstioMonitoring) }) } diff --git a/pkg/network/usm/monitor_test.go b/pkg/network/usm/monitor_test.go index 595ce9593ac6f..f78913db23d6b 100644 --- a/pkg/network/usm/monitor_test.go +++ b/pkg/network/usm/monitor_test.go @@ -82,6 +82,8 @@ func TestMonitorProtocolFail(t *testing.T) { cfg := config.New() cfg.EnableHTTPMonitoring = true + cfg.EnableIstioMonitoring = false + monitor, err := NewMonitor(cfg, nil) skipIfNotSupported(t, err) require.NoError(t, err) diff --git a/pkg/network/usm/usm_grpc_monitor_test.go b/pkg/network/usm/usm_grpc_monitor_test.go index 2a931a2d5d707..f597935aeecad 100644 --- a/pkg/network/usm/usm_grpc_monitor_test.go +++ b/pkg/network/usm/usm_grpc_monitor_test.go @@ -106,6 +106,7 @@ func getGRPCClientsArray(t *testing.T, size int, withTLS bool) ([]*grpc.Client, func (s *usmGRPCSuite) getConfig() *config.Config { cfg := config.New() + cfg.EnableIstioMonitoring = false cfg.EnableHTTP2Monitoring = true cfg.EnableGoTLSSupport = s.isTLS cfg.GoTLSExcludeSelf = s.isTLS diff --git a/pkg/network/usm/usm_http2_monitor_test.go b/pkg/network/usm/usm_http2_monitor_test.go index 564bd1adced94..17b7b29afbb51 100644 --- a/pkg/network/usm/usm_http2_monitor_test.go +++ b/pkg/network/usm/usm_http2_monitor_test.go @@ -79,6 +79,7 @@ type usmHTTP2Suite struct { func (s *usmHTTP2Suite) getCfg() *config.Config { cfg := config.New() + cfg.EnableIstioMonitoring = false cfg.EnableHTTP2Monitoring = true cfg.EnableGoTLSSupport = s.isTLS cfg.GoTLSExcludeSelf = s.isTLS @@ -1510,6 +1511,7 @@ func (s *usmHTTP2Suite) TestRawHuffmanEncoding() { func TestHTTP2InFlightMapCleaner(t *testing.T) { skipIfKernelNotSupported(t) cfg := config.New() + cfg.EnableIstioMonitoring = false cfg.EnableHTTP2Monitoring = true cfg.HTTP2DynamicTableMapCleanerInterval = 5 * time.Second cfg.HTTPIdleConnectionTTL = time.Second diff --git a/releasenotes/notes/enable-istio-tls-by-default-1da65945911f278a.yaml b/releasenotes/notes/enable-istio-tls-by-default-1da65945911f278a.yaml new file mode 100644 index 0000000000000..88417827a2524 --- /dev/null +++ b/releasenotes/notes/enable-istio-tls-by-default-1da65945911f278a.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + USM now monitors traffic encrypted with Istio mTLS by default. + To disable this feature, set the `service_monitoring_config.tls.istio.enabled` configuration option to false. From 24b62cefba83a0019fa08c5e9a5c83eae08ce8a6 Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Thu, 28 Nov 2024 13:25:53 +0100 Subject: [PATCH 128/439] [CWS] fix missing opts Tagger on macos (#31560) --- pkg/security/probe/opts_others.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/security/probe/opts_others.go b/pkg/security/probe/opts_others.go index 59cf8dccb1453..03c5f82382a78 100644 --- a/pkg/security/probe/opts_others.go +++ b/pkg/security/probe/opts_others.go @@ -8,8 +8,12 @@ // Package probe holds probe related files package probe +import "github.com/DataDog/datadog-agent/pkg/security/resolvers/tags" + // Opts defines some probe options type Opts struct { // DontDiscardRuntime do not discard the runtime. Mostly used by functional tests DontDiscardRuntime bool + // Tagger will override the default one. Mainly here for tests. + Tagger tags.Tagger } From 0f9693ff47d7ecc36a270ee2c056a991d25b0a07 Mon Sep 17 00:00:00 2001 From: Alexandre Yang Date: Thu, 28 Nov 2024 14:29:49 +0100 Subject: [PATCH 129/439] [ha-agent] Run HA enabled integrations only on leader agent (#31186) Co-authored-by: Jen Gilbert --- .../agent_check_metadata_test.go | 2 + .../collector/collectorimpl/collector.go | 16 ++- .../collectorimpl/collector_demux_test.go | 2 + .../collector/collectorimpl/collector_test.go | 2 + comp/haagent/def/component.go | 3 + comp/haagent/impl/config.go | 9 ++ comp/haagent/impl/haagent.go | 9 ++ comp/haagent/impl/haagent_comp.go | 4 +- comp/haagent/impl/haagent_test.go | 71 ++++++++++ comp/haagent/mock/mock.go | 4 + pkg/collector/runner/runner.go | 6 +- pkg/collector/runner/runner_test.go | 21 +-- pkg/collector/worker/worker.go | 11 ++ pkg/collector/worker/worker_test.go | 122 ++++++++++++++++-- ...ent-collector-worker-22f3972469c669c3.yaml | 11 ++ 15 files changed, 264 insertions(+), 29 deletions(-) create mode 100644 releasenotes/notes/NDMII-3154-ha-agent-collector-worker-22f3972469c669c3.yaml diff --git a/comp/collector/collector/collectorimpl/agent_check_metadata_test.go b/comp/collector/collector/collectorimpl/agent_check_metadata_test.go index 114dd0b8f93df..f997bd0332518 100644 --- a/comp/collector/collector/collectorimpl/agent_check_metadata_test.go +++ b/comp/collector/collector/collectorimpl/agent_check_metadata_test.go @@ -16,6 +16,7 @@ import ( "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer/demultiplexerimpl" "github.com/DataDog/datadog-agent/comp/core" "github.com/DataDog/datadog-agent/comp/core/config" + haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" "github.com/DataDog/datadog-agent/pkg/collector/externalhost" "github.com/DataDog/datadog-agent/pkg/serializer" "github.com/DataDog/datadog-agent/pkg/util/fxutil" @@ -36,6 +37,7 @@ func TestExternalHostTags(t *testing.T) { c := newCollector(fxutil.Test[dependencies](t, core.MockBundle(), demultiplexerimpl.MockModule(), + haagentmock.Module(), fx.Provide(func() optional.Option[serializer.MetricSerializer] { return optional.NewNoneOption[serializer.MetricSerializer]() }), diff --git a/comp/collector/collector/collectorimpl/collector.go b/comp/collector/collector/collectorimpl/collector.go index f90b0c61cec88..94b10a962d3ed 100644 --- a/comp/collector/collector/collectorimpl/collector.go +++ b/comp/collector/collector/collectorimpl/collector.go @@ -24,6 +24,7 @@ import ( flaretypes "github.com/DataDog/datadog-agent/comp/core/flare/types" log "github.com/DataDog/datadog-agent/comp/core/log/def" "github.com/DataDog/datadog-agent/comp/core/status" + haagent "github.com/DataDog/datadog-agent/comp/haagent/def" metadata "github.com/DataDog/datadog-agent/comp/metadata/runner/runnerimpl" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" pkgCollector "github.com/DataDog/datadog-agent/pkg/collector" @@ -48,17 +49,19 @@ const ( type dependencies struct { fx.In - Lc fx.Lifecycle - Config config.Component - Log log.Component + Lc fx.Lifecycle + Config config.Component + Log log.Component + HaAgent haagent.Component SenderManager sender.SenderManager MetricSerializer optional.Option[serializer.MetricSerializer] } type collectorImpl struct { - log log.Component - config config.Component + log log.Component + config config.Component + haAgent haagent.Component senderManager sender.SenderManager metricSerializer optional.Option[serializer.MetricSerializer] @@ -119,6 +122,7 @@ func newCollector(deps dependencies) *collectorImpl { c := &collectorImpl{ log: deps.Log, config: deps.Config, + haAgent: deps.HaAgent, senderManager: deps.SenderManager, metricSerializer: deps.MetricSerializer, checks: make(map[checkid.ID]*middleware.CheckWrapper), @@ -186,7 +190,7 @@ func (c *collectorImpl) start(_ context.Context) error { c.m.Lock() defer c.m.Unlock() - run := runner.NewRunner(c.senderManager) + run := runner.NewRunner(c.senderManager, c.haAgent) sched := scheduler.NewScheduler(run.GetChan()) // let the runner some visibility into the scheduler diff --git a/comp/collector/collector/collectorimpl/collector_demux_test.go b/comp/collector/collector/collectorimpl/collector_demux_test.go index e142221841f90..b68f7a91e546a 100644 --- a/comp/collector/collector/collectorimpl/collector_demux_test.go +++ b/comp/collector/collector/collectorimpl/collector_demux_test.go @@ -21,6 +21,7 @@ import ( "github.com/DataDog/datadog-agent/comp/core/config" log "github.com/DataDog/datadog-agent/comp/core/log/def" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" + haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" checkid "github.com/DataDog/datadog-agent/pkg/collector/check/id" @@ -84,6 +85,7 @@ func (suite *CollectorDemuxTestSuite) SetupTest() { suite.SenderManagerMock = NewSenderManagerMock(suite.demux) suite.c = newCollector(fxutil.Test[dependencies](suite.T(), core.MockBundle(), + haagentmock.Module(), fx.Provide(func() sender.SenderManager { return suite.SenderManagerMock }), diff --git a/comp/collector/collector/collectorimpl/collector_test.go b/comp/collector/collector/collectorimpl/collector_test.go index 1aea4301bc791..44ddc7e2f357c 100644 --- a/comp/collector/collector/collectorimpl/collector_test.go +++ b/comp/collector/collector/collectorimpl/collector_test.go @@ -22,6 +22,7 @@ import ( "github.com/DataDog/datadog-agent/comp/collector/collector/collectorimpl/internal/middleware" "github.com/DataDog/datadog-agent/comp/core" "github.com/DataDog/datadog-agent/comp/core/config" + haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" "github.com/DataDog/datadog-agent/pkg/aggregator" "github.com/DataDog/datadog-agent/pkg/collector/check" checkid "github.com/DataDog/datadog-agent/pkg/collector/check/id" @@ -97,6 +98,7 @@ func (suite *CollectorTestSuite) SetupTest() { suite.c = newCollector(fxutil.Test[dependencies](suite.T(), core.MockBundle(), demultiplexerimpl.MockModule(), + haagentmock.Module(), fx.Provide(func() optional.Option[serializer.MetricSerializer] { return optional.NewNoneOption[serializer.MetricSerializer]() }), diff --git a/comp/haagent/def/component.go b/comp/haagent/def/component.go index 2472322d9a400..f1d3f53ce3fa5 100644 --- a/comp/haagent/def/component.go +++ b/comp/haagent/def/component.go @@ -22,4 +22,7 @@ type Component interface { // SetLeader takes the leader agent hostname as input, if it matches the current agent hostname, // the isLeader state is set to true, otherwise false. SetLeader(leaderAgentHostname string) + + // ShouldRunIntegration returns true if the integration should be run + ShouldRunIntegration(integrationName string) bool } diff --git a/comp/haagent/impl/config.go b/comp/haagent/impl/config.go index 2417106455a7d..4fea0af76d0fd 100644 --- a/comp/haagent/impl/config.go +++ b/comp/haagent/impl/config.go @@ -9,6 +9,15 @@ import ( "github.com/DataDog/datadog-agent/comp/core/config" ) +// validHaIntegrations represent the list of integrations that will be considered as +// an "HA Integration", meaning it will only run on the leader Agent. +// At the moment, the list of HA Integrations is hardcoded here, but we might provide +// more dynamic way to configure which integration should be considered HA Integration. +var validHaIntegrations = map[string]bool{ + "snmp": true, + "network_path": true, +} + type haAgentConfigs struct { enabled bool group string diff --git a/comp/haagent/impl/haagent.go b/comp/haagent/impl/haagent.go index 5328d039da2d3..050596256e16a 100644 --- a/comp/haagent/impl/haagent.go +++ b/comp/haagent/impl/haagent.go @@ -50,6 +50,15 @@ func (h *haAgentImpl) SetLeader(leaderAgentHostname string) { h.isLeader.Store(agentHostname == leaderAgentHostname) } +// ShouldRunIntegration return true if the agent integrations should to run. +// When ha-agent is disabled, the agent behave as standalone agent (non HA) and will always run all integrations. +func (h *haAgentImpl) ShouldRunIntegration(integrationName string) bool { + if h.Enabled() && validHaIntegrations[integrationName] { + return h.isLeader.Load() + } + return true +} + func (h *haAgentImpl) onHaAgentUpdate(updates map[string]state.RawConfig, applyStateCallback func(string, state.ApplyStatus)) { h.log.Debugf("Updates received: count=%d", len(updates)) diff --git a/comp/haagent/impl/haagent_comp.go b/comp/haagent/impl/haagent_comp.go index f922325a9a440..19697bba7d464 100644 --- a/comp/haagent/impl/haagent_comp.go +++ b/comp/haagent/impl/haagent_comp.go @@ -28,8 +28,8 @@ type Provides struct { // NewComponent creates a new haagent component func NewComponent(reqs Requires) (Provides, error) { - haAgentConfigs := newHaAgentConfigs(reqs.AgentConfig) - haAgent := newHaAgentImpl(reqs.Logger, haAgentConfigs) + haAgentConf := newHaAgentConfigs(reqs.AgentConfig) + haAgent := newHaAgentImpl(reqs.Logger, haAgentConf) var rcListener rctypes.ListenerProvider if haAgent.Enabled() { reqs.Logger.Debug("Add onHaAgentUpdate RCListener") diff --git a/comp/haagent/impl/haagent_test.go b/comp/haagent/impl/haagent_test.go index b91e33f27c4b6..c427220404696 100644 --- a/comp/haagent/impl/haagent_test.go +++ b/comp/haagent/impl/haagent_test.go @@ -169,3 +169,74 @@ func Test_haAgentImpl_onHaAgentUpdate(t *testing.T) { }) } } + +func Test_haAgentImpl_ShouldRunIntegration(t *testing.T) { + testAgentHostname := "my-agent-hostname" + tests := []struct { + name string + leader string + agentConfigs map[string]interface{} + expectShouldRunIntegration map[string]bool + }{ + { + name: "ha agent enabled and agent is leader", + // should run HA-integrations + // should run "non HA integrations" + agentConfigs: map[string]interface{}{ + "hostname": testAgentHostname, + "ha_agent.enabled": true, + "ha_agent.group": testGroup, + }, + leader: testAgentHostname, + expectShouldRunIntegration: map[string]bool{ + "snmp": true, + "network_path": true, + "unknown_integration": true, + "cpu": true, + }, + }, + { + name: "ha agent enabled and agent is not leader", + // should skip HA-integrations + // should run "non HA integrations" + agentConfigs: map[string]interface{}{ + "hostname": testAgentHostname, + "ha_agent.enabled": true, + "ha_agent.group": testGroup, + }, + leader: "another-agent-is-leader", + expectShouldRunIntegration: map[string]bool{ + "snmp": false, + "network_path": false, + "unknown_integration": true, + "cpu": true, + }, + }, + { + name: "ha agent not enabled", + // should run all integrations + agentConfigs: map[string]interface{}{ + "hostname": testAgentHostname, + "ha_agent.enabled": false, + "ha_agent.group": testGroup, + }, + leader: testAgentHostname, + expectShouldRunIntegration: map[string]bool{ + "snmp": true, + "network_path": true, + "unknown_integration": true, + "cpu": true, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + haAgent := newTestHaAgentComponent(t, tt.agentConfigs) + haAgent.Comp.SetLeader(tt.leader) + + for integrationName, shouldRun := range tt.expectShouldRunIntegration { + assert.Equalf(t, shouldRun, haAgent.Comp.ShouldRunIntegration(integrationName), "fail for integration: "+integrationName) + } + }) + } +} diff --git a/comp/haagent/mock/mock.go b/comp/haagent/mock/mock.go index 52142737704c9..37c5cf4aa9916 100644 --- a/comp/haagent/mock/mock.go +++ b/comp/haagent/mock/mock.go @@ -44,6 +44,10 @@ func (m *mockHaAgent) SetEnabled(enabled bool) { m.enabled = enabled } +func (m *mockHaAgent) ShouldRunIntegration(_ string) bool { + return true +} + // Component is the component type. type Component interface { haagent.Component diff --git a/pkg/collector/runner/runner.go b/pkg/collector/runner/runner.go index e6ba495f02f2b..a388e73dea776 100644 --- a/pkg/collector/runner/runner.go +++ b/pkg/collector/runner/runner.go @@ -14,6 +14,7 @@ import ( "go.uber.org/atomic" + haagent "github.com/DataDog/datadog-agent/comp/haagent/def" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" "github.com/DataDog/datadog-agent/pkg/collector/check" checkid "github.com/DataDog/datadog-agent/pkg/collector/check/id" @@ -40,6 +41,7 @@ var ( // Runner is the object in charge of running all the checks type Runner struct { senderManager sender.SenderManager + haAgent haagent.Component isRunning *atomic.Bool id int // Globally unique identifier for the Runner workers map[int]*worker.Worker // Workers currrently under this Runner's management @@ -52,11 +54,12 @@ type Runner struct { } // NewRunner takes the number of desired goroutines processing incoming checks. -func NewRunner(senderManager sender.SenderManager) *Runner { +func NewRunner(senderManager sender.SenderManager, haAgent haagent.Component) *Runner { numWorkers := pkgconfigsetup.Datadog().GetInt("check_runners") r := &Runner{ senderManager: senderManager, + haAgent: haAgent, id: int(runnerIDGenerator.Inc()), isRunning: atomic.NewBool(true), workers: make(map[int]*worker.Worker), @@ -117,6 +120,7 @@ func (r *Runner) AddWorker() { func (r *Runner) newWorker() (*worker.Worker, error) { worker, err := worker.NewWorker( r.senderManager, + r.haAgent, r.id, int(workerIDGenerator.Inc()), r.pendingChecksChan, diff --git a/pkg/collector/runner/runner_test.go b/pkg/collector/runner/runner_test.go index 6ae3cd335c81b..b6a02aab0739f 100644 --- a/pkg/collector/runner/runner_test.go +++ b/pkg/collector/runner/runner_test.go @@ -15,6 +15,7 @@ import ( "github.com/stretchr/testify/require" "go.uber.org/atomic" + haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" "github.com/DataDog/datadog-agent/pkg/aggregator" checkid "github.com/DataDog/datadog-agent/pkg/collector/check/id" "github.com/DataDog/datadog-agent/pkg/collector/check/stub" @@ -152,7 +153,7 @@ func TestNewRunner(t *testing.T) { testSetUp(t) pkgconfigsetup.Datadog().SetWithoutSource("check_runners", "3") - r := NewRunner(aggregator.NewNoOpSenderManager()) + r := NewRunner(aggregator.NewNoOpSenderManager(), haagentmock.NewMockHaAgent()) require.NotNil(t, r) defer r.Stop() @@ -166,7 +167,7 @@ func TestRunnerAddWorker(t *testing.T) { testSetUp(t) pkgconfigsetup.Datadog().SetWithoutSource("check_runners", "1") - r := NewRunner(aggregator.NewNoOpSenderManager()) + r := NewRunner(aggregator.NewNoOpSenderManager(), haagentmock.NewMockHaAgent()) require.NotNil(t, r) defer r.Stop() @@ -181,7 +182,7 @@ func TestRunnerStaticUpdateNumWorkers(t *testing.T) { testSetUp(t) pkgconfigsetup.Datadog().SetWithoutSource("check_runners", "2") - r := NewRunner(aggregator.NewNoOpSenderManager()) + r := NewRunner(aggregator.NewNoOpSenderManager(), haagentmock.NewMockHaAgent()) require.NotNil(t, r) defer func() { r.Stop() @@ -212,7 +213,7 @@ func TestRunnerDynamicUpdateNumWorkers(t *testing.T) { assertAsyncWorkerCount(t, 0) min, max, expectedWorkers := testCase[0], testCase[1], testCase[2] - r := NewRunner(aggregator.NewNoOpSenderManager()) + r := NewRunner(aggregator.NewNoOpSenderManager(), haagentmock.NewMockHaAgent()) require.NotNil(t, r) for checks := min; checks <= max; checks++ { @@ -234,7 +235,7 @@ func TestRunner(t *testing.T) { checks[idx] = newCheck(t, fmt.Sprintf("mycheck_%d:123", idx), false, nil) } - r := NewRunner(aggregator.NewNoOpSenderManager()) + r := NewRunner(aggregator.NewNoOpSenderManager(), haagentmock.NewMockHaAgent()) require.NotNil(t, r) defer r.Stop() @@ -262,7 +263,7 @@ func TestRunnerStop(t *testing.T) { checks[idx].RunLock.Lock() } - r := NewRunner(aggregator.NewNoOpSenderManager()) + r := NewRunner(aggregator.NewNoOpSenderManager(), haagentmock.NewMockHaAgent()) require.NotNil(t, r) defer r.Stop() @@ -320,7 +321,7 @@ func TestRunnerStopWithStuckCheck(t *testing.T) { blockedCheck.RunLock.Lock() blockedCheck.StopLock.Lock() - r := NewRunner(aggregator.NewNoOpSenderManager()) + r := NewRunner(aggregator.NewNoOpSenderManager(), haagentmock.NewMockHaAgent()) require.NotNil(t, r) defer r.Stop() @@ -369,7 +370,7 @@ func TestRunnerStopCheck(t *testing.T) { blockedCheck.RunLock.Lock() blockedCheck.StopLock.Lock() - r := NewRunner(aggregator.NewNoOpSenderManager()) + r := NewRunner(aggregator.NewNoOpSenderManager(), haagentmock.NewMockHaAgent()) require.NotNil(t, r) defer func() { r.Stop() @@ -413,7 +414,7 @@ func TestRunnerScheduler(t *testing.T) { sched1 := newScheduler() sched2 := newScheduler() - r := NewRunner(aggregator.NewNoOpSenderManager()) + r := NewRunner(aggregator.NewNoOpSenderManager(), haagentmock.NewMockHaAgent()) require.NotNil(t, r) defer r.Stop() @@ -433,7 +434,7 @@ func TestRunnerShouldAddCheckStats(t *testing.T) { testCheck := newCheck(t, "test", false, nil) sched := newScheduler() - r := NewRunner(aggregator.NewNoOpSenderManager()) + r := NewRunner(aggregator.NewNoOpSenderManager(), haagentmock.NewMockHaAgent()) require.NotNil(t, r) defer r.Stop() diff --git a/pkg/collector/worker/worker.go b/pkg/collector/worker/worker.go index 00a0b40668135..144ecf58240f2 100644 --- a/pkg/collector/worker/worker.go +++ b/pkg/collector/worker/worker.go @@ -10,6 +10,7 @@ import ( "fmt" "time" + haagent "github.com/DataDog/datadog-agent/comp/haagent/def" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" "github.com/DataDog/datadog-agent/pkg/collector/check" checkid "github.com/DataDog/datadog-agent/pkg/collector/check/id" @@ -53,11 +54,13 @@ type Worker struct { runnerID int shouldAddCheckStatsFunc func(id checkid.ID) bool utilizationTickInterval time.Duration + haAgent haagent.Component } // NewWorker returns an instance of a `Worker` after parameter sanity checks are passed func NewWorker( senderManager sender.SenderManager, + haAgent haagent.Component, runnerID int, ID int, pendingChecksChan chan check.Check, @@ -84,6 +87,7 @@ func NewWorker( checksTracker, shouldAddCheckStatsFunc, senderManager.GetDefaultSender, + haAgent, pollingInterval, ) } @@ -98,6 +102,7 @@ func newWorkerWithOptions( checksTracker *tracker.RunningChecksTracker, shouldAddCheckStatsFunc func(id checkid.ID) bool, getDefaultSenderFunc func() (sender.Sender, error), + haAgent haagent.Component, utilizationTickInterval time.Duration, ) (*Worker, error) { @@ -115,6 +120,7 @@ func newWorkerWithOptions( runnerID: runnerID, shouldAddCheckStatsFunc: shouldAddCheckStatsFunc, getDefaultSenderFunc: getDefaultSenderFunc, + haAgent: haAgent, utilizationTickInterval: utilizationTickInterval, }, nil } @@ -135,6 +141,11 @@ func (w *Worker) Run() { checkLogger := CheckLogger{Check: check} longRunning := check.Interval() == 0 + if !w.haAgent.ShouldRunIntegration(check.String()) { + checkLogger.Debug("Check is an HA integration and current agent is not leader, skipping execution...") + continue + } + // Add check to tracker if it's not already running if !w.checksTracker.AddCheck(check) { checkLogger.Debug("Check is already running, skipping execution...") diff --git a/pkg/collector/worker/worker_test.go b/pkg/collector/worker/worker_test.go index 129ed30a499e8..3bbd9e659e224 100644 --- a/pkg/collector/worker/worker_test.go +++ b/pkg/collector/worker/worker_test.go @@ -15,7 +15,12 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "go.uber.org/atomic" + "go.uber.org/fx" + "github.com/DataDog/datadog-agent/comp/core/config" + logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" + haagentimpl "github.com/DataDog/datadog-agent/comp/haagent/impl" + haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" "github.com/DataDog/datadog-agent/pkg/aggregator" "github.com/DataDog/datadog-agent/pkg/aggregator/mocksender" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" @@ -26,6 +31,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/collector/runner/tracker" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/metrics/servicecheck" + "github.com/DataDog/datadog-agent/pkg/util/fxutil" ) type testCheck struct { @@ -122,16 +128,16 @@ func TestWorkerInit(t *testing.T) { mockShouldAddStatsFunc := func(checkid.ID) bool { return true } senderManager := aggregator.NewNoOpSenderManager() - _, err := NewWorker(senderManager, 1, 2, nil, checksTracker, mockShouldAddStatsFunc) + _, err := NewWorker(senderManager, haagentmock.NewMockHaAgent(), 1, 2, nil, checksTracker, mockShouldAddStatsFunc) require.NotNil(t, err) - _, err = NewWorker(senderManager, 1, 2, pendingChecksChan, nil, mockShouldAddStatsFunc) + _, err = NewWorker(senderManager, haagentmock.NewMockHaAgent(), 1, 2, pendingChecksChan, nil, mockShouldAddStatsFunc) require.NotNil(t, err) - _, err = NewWorker(senderManager, 1, 2, pendingChecksChan, checksTracker, nil) + _, err = NewWorker(senderManager, haagentmock.NewMockHaAgent(), 1, 2, pendingChecksChan, checksTracker, nil) require.NotNil(t, err) - worker, err := NewWorker(senderManager, 1, 2, pendingChecksChan, checksTracker, mockShouldAddStatsFunc) + worker, err := NewWorker(senderManager, haagentmock.NewMockHaAgent(), 1, 2, pendingChecksChan, checksTracker, mockShouldAddStatsFunc) assert.Nil(t, err) assert.NotNil(t, worker) } @@ -150,7 +156,7 @@ func TestWorkerInitExpvarStats(t *testing.T) { go func(idx int) { defer wg.Done() - worker, err := NewWorker(aggregator.NewNoOpSenderManager(), 1, idx, pendingChecksChan, checksTracker, mockShouldAddStatsFunc) + worker, err := NewWorker(aggregator.NewNoOpSenderManager(), haagentmock.NewMockHaAgent(), 1, idx, pendingChecksChan, checksTracker, mockShouldAddStatsFunc) assert.Nil(t, err) worker.Run() @@ -172,7 +178,7 @@ func TestWorkerName(t *testing.T) { for _, id := range []int{1, 100, 500} { expectedName := fmt.Sprintf("worker_%d", id) - worker, err := NewWorker(aggregator.NewNoOpSenderManager(), 1, id, pendingChecksChan, checksTracker, mockShouldAddStatsFunc) + worker, err := NewWorker(aggregator.NewNoOpSenderManager(), haagentmock.NewMockHaAgent(), 1, id, pendingChecksChan, checksTracker, mockShouldAddStatsFunc) assert.Nil(t, err) assert.NotNil(t, worker) @@ -224,7 +230,7 @@ func TestWorker(t *testing.T) { pendingChecksChan <- testCheck1 close(pendingChecksChan) - worker, err := NewWorker(aggregator.NewNoOpSenderManager(), 100, 200, pendingChecksChan, checksTracker, mockShouldAddStatsFunc) + worker, err := NewWorker(aggregator.NewNoOpSenderManager(), haagentmock.NewMockHaAgent(), 100, 200, pendingChecksChan, checksTracker, mockShouldAddStatsFunc) require.Nil(t, err) wg.Add(1) @@ -284,6 +290,7 @@ func TestWorkerUtilizationExpvars(t *testing.T) { checksTracker, mockShouldAddStatsFunc, func() (sender.Sender, error) { return nil, nil }, + haagentmock.NewMockHaAgent(), 100*time.Millisecond, ) require.Nil(t, err) @@ -354,7 +361,7 @@ func TestWorkerErrorAndWarningHandling(t *testing.T) { } close(pendingChecksChan) - worker, err := NewWorker(aggregator.NewNoOpSenderManager(), 100, 200, pendingChecksChan, checksTracker, mockShouldAddStatsFunc) + worker, err := NewWorker(aggregator.NewNoOpSenderManager(), haagentmock.NewMockHaAgent(), 100, 200, pendingChecksChan, checksTracker, mockShouldAddStatsFunc) require.Nil(t, err) AssertAsyncWorkerCount(t, 0) @@ -399,7 +406,7 @@ func TestWorkerConcurrentCheckScheduling(t *testing.T) { pendingChecksChan <- testCheck close(pendingChecksChan) - worker, err := NewWorker(aggregator.NewNoOpSenderManager(), 100, 200, pendingChecksChan, checksTracker, mockShouldAddStatsFunc) + worker, err := NewWorker(aggregator.NewNoOpSenderManager(), haagentmock.NewMockHaAgent(), 100, 200, pendingChecksChan, checksTracker, mockShouldAddStatsFunc) require.Nil(t, err) worker.Run() @@ -453,7 +460,7 @@ func TestWorkerStatsAddition(t *testing.T) { pendingChecksChan <- squelchedStatsCheck close(pendingChecksChan) - worker, err := NewWorker(aggregator.NewNoOpSenderManager(), 100, 200, pendingChecksChan, checksTracker, shouldAddStatsFunc) + worker, err := NewWorker(aggregator.NewNoOpSenderManager(), haagentmock.NewMockHaAgent(), 100, 200, pendingChecksChan, checksTracker, shouldAddStatsFunc) require.Nil(t, err) worker.Run() @@ -505,6 +512,7 @@ func TestWorkerServiceCheckSending(t *testing.T) { func() (sender.Sender, error) { return mockSender, nil }, + haagentmock.NewMockHaAgent(), pollingInterval, ) require.Nil(t, err) @@ -575,6 +583,7 @@ func TestWorkerSenderNil(t *testing.T) { func() (sender.Sender, error) { return nil, fmt.Errorf("testerr") }, + haagentmock.NewMockHaAgent(), pollingInterval, ) require.Nil(t, err) @@ -615,6 +624,7 @@ func TestWorkerServiceCheckSendingLongRunningTasks(t *testing.T) { func() (sender.Sender, error) { return mockSender, nil }, + haagentmock.NewMockHaAgent(), pollingInterval, ) require.Nil(t, err) @@ -628,6 +638,98 @@ func TestWorkerServiceCheckSendingLongRunningTasks(t *testing.T) { mockSender.AssertNumberOfCalls(t, "ServiceCheck", 0) } +func TestWorker_HaIntegration(t *testing.T) { + testHostname := "myhost" + + tests := []struct { + name string + haAgentEnabled bool + setLeaderValue string + expectedSnmpCheckRunCount int + expectedUnknownCheckRunCount int + }{ + { + name: "ha-agent enabled and is leader", + // should run HA-integrations + // should run "non HA integrations" + haAgentEnabled: true, + setLeaderValue: testHostname, + expectedSnmpCheckRunCount: 1, + expectedUnknownCheckRunCount: 1, + }, + { + name: "ha-agent enabled and not leader", + // should skip HA-integrations + // should run "non HA integrations" + haAgentEnabled: true, + setLeaderValue: "leader-is-another-agent", + expectedSnmpCheckRunCount: 0, + expectedUnknownCheckRunCount: 1, + }, + { + name: "ha-agent disabled", + // When ha-agent is disabled, the agent behave as standalone agent (non HA) and will always run all integrations. + // should run all integrations + haAgentEnabled: false, + setLeaderValue: "", + expectedSnmpCheckRunCount: 1, + expectedUnknownCheckRunCount: 1, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + expvars.Reset() + + var wg sync.WaitGroup + + checksTracker := tracker.NewRunningChecksTracker() + pendingChecksChan := make(chan check.Check, 10) + mockShouldAddStatsFunc := func(checkid.ID) bool { return true } + + snmpCheck := newCheck(t, "snmp:123", false, nil) + unknownCheck := newCheck(t, "unknown-check:123", false, nil) + + pendingChecksChan <- snmpCheck + pendingChecksChan <- unknownCheck + close(pendingChecksChan) + + agentConfigs := map[string]interface{}{ + "hostname": testHostname, + "ha_agent.enabled": tt.haAgentEnabled, + "ha_agent.group": "my-group-01", + } + logComponent := logmock.New(t) + agentConfigComponent := fxutil.Test[config.Component](t, fx.Options( + config.MockModule(), + fx.Replace(config.MockParams{Overrides: agentConfigs}), + )) + requires := haagentimpl.Requires{ + Logger: logComponent, + AgentConfig: agentConfigComponent, + } + haagentcomp, _ := haagentimpl.NewComponent(requires) + haagentcomp.Comp.SetLeader(tt.setLeaderValue) + + worker, err := NewWorker(aggregator.NewNoOpSenderManager(), haagentcomp.Comp, 100, 200, pendingChecksChan, checksTracker, mockShouldAddStatsFunc) + require.Nil(t, err) + + wg.Add(1) + go func() { + defer wg.Done() + worker.Run() + }() + + wg.Wait() + + assert.Equal(t, tt.expectedSnmpCheckRunCount, snmpCheck.RunCount()) + assert.Equal(t, tt.expectedUnknownCheckRunCount, unknownCheck.RunCount()) + + // make sure the check is deleted from checksTracker + assert.Equal(t, 0, len(checksTracker.RunningChecks())) + }) + } +} + // getWorkerUtilizationExpvar returns the utilization as presented by expvars // for a named worker. func getWorkerUtilizationExpvar(t *testing.T, name string) float64 { diff --git a/releasenotes/notes/NDMII-3154-ha-agent-collector-worker-22f3972469c669c3.yaml b/releasenotes/notes/NDMII-3154-ha-agent-collector-worker-22f3972469c669c3.yaml new file mode 100644 index 0000000000000..fa04e9cd53682 --- /dev/null +++ b/releasenotes/notes/NDMII-3154-ha-agent-collector-worker-22f3972469c669c3.yaml @@ -0,0 +1,11 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +enhancements: + - | + [ha-agent] Run HA enabled integrations only on leader Agent From b80f86c8411b2bef986860e2498637027f39e113 Mon Sep 17 00:00:00 2001 From: Gustavo Caso Date: Thu, 28 Nov 2024 14:48:37 +0100 Subject: [PATCH 130/439] Revert "[ASCII-2562] Migrate forward eventplatform component to the latest file structure" (#31563) --- cmd/agent/subcommands/run/command.go | 4 +- cmd/agent/subcommands/snmp/command.go | 6 +- .../subcommands/run/command.go | 4 +- .../subcommands/start/command.go | 4 +- cmd/dogstatsd/subcommands/start/command.go | 4 +- cmd/process-agent/command/main_common.go | 4 +- cmd/process-agent/subcommands/check/check.go | 4 +- cmd/serverless-init/metric/metric_test.go | 3 +- comp/agent/bundle_test.go | 4 +- comp/aggregator/bundle_test.go | 4 +- .../demultiplexerimpl/demultiplexer.go | 2 +- .../demultiplexer_fake_sampler_mock.go | 4 +- .../demultiplexerimpl/status_test.go | 4 +- .../test_agent_demultiplexer.go | 11 +- .../sendermanager.go | 5 +- .../collectorimpl/collector_demux_test.go | 3 +- .../eventplatform/{def => }/component.go | 8 +- .../{mock => }/component_mock.go | 7 +- .../epforwarder.go | 64 ++++++++--- .../eventplatformimpl/epforwarder_mock.go | 27 +++++ .../eventplatformimpl/epforwarder_mockgen.go | 101 ++++++++++++++++++ .../eventplatform/eventplatformimpl/params.go | 22 ++++ comp/forwarder/eventplatform/fx-mock/fx.go | 21 ---- comp/forwarder/eventplatform/fx-noop/fx.go | 21 ---- comp/forwarder/eventplatform/fx/fx.go | 17 --- .../forwarder/eventplatform/impl-noop/noop.go | 39 ------- .../eventplatform/mock/epforwarder_mock.go | 36 ------- .../eventplatform/mock/epforwarder_mockgen.go | 77 ------------- .../eventplatformreceiverimpl/format.go | 2 +- comp/ndmtmp/bundle_test.go | 7 +- comp/ndmtmp/forwarder/component.go | 4 +- comp/ndmtmp/forwarder/component_mock.go | 4 +- .../forwarder/forwarderimpl/forwarder.go | 5 +- .../forwarder/forwarderimpl/forwarder_mock.go | 9 +- comp/netflow/flowaggregator/aggregator.go | 6 +- .../netflow/flowaggregator/aggregator_test.go | 22 ++-- comp/netflow/server/integration_test.go | 7 +- comp/netflow/testutil/testutil.go | 2 +- comp/networkpath/bundle_test.go | 4 +- .../npcollectorimpl/npcollector.go | 6 +- .../npcollectorimpl/npcollector_test.go | 6 +- .../npcollectorimpl/npcollector_testutils.go | 11 +- .../npcollectorimpl/npcollectorcomp.go | 30 +++--- comp/process/bundle_test.go | 4 +- comp/snmpscan/impl/devicescan.go | 5 +- comp/snmpscan/impl/snmpscan.go | 9 +- .../forwarder/forwarderimpl/forwarder.go | 2 +- .../forwarder/forwarderimpl/forwarder_test.go | 2 +- comp/snmptraps/status/statusimpl/status.go | 2 +- .../status/statusimpl/status_test.go | 2 +- pkg/aggregator/aggregator.go | 23 +++- pkg/aggregator/aggregator_test.go | 2 +- pkg/aggregator/check_sampler_bench_test.go | 6 +- pkg/aggregator/demultiplexer_agent.go | 6 +- pkg/aggregator/demultiplexer_agent_test.go | 6 +- pkg/aggregator/demultiplexer_mock.go | 6 +- pkg/aggregator/demultiplexer_test.go | 66 ++++++++---- pkg/aggregator/mocksender/mocksender.go | 10 +- pkg/aggregator/sender_test.go | 20 ++-- pkg/cli/subcommands/check/command.go | 7 +- .../corechecks/containerimage/processor.go | 2 +- .../containerimage/processor_test.go | 2 +- .../containerlifecycle/processor.go | 2 +- .../cisco-sdwan/report/metadata.go | 2 +- .../corechecks/networkpath/networkpath.go | 2 +- pkg/collector/corechecks/sbom/processor.go | 2 +- .../corechecks/sbom/processor_test.go | 2 +- .../corechecks/servicediscovery/events.go | 2 +- .../internal/report/report_device_metadata.go | 2 +- pkg/diagnose/runner.go | 4 +- .../invocationlifecycle/lifecycle_test.go | 3 +- pkg/serverless/logs/logs_test.go | 3 +- .../metrics/enhanced_metrics_test.go | 3 +- tasks/components.py | 1 + 74 files changed, 445 insertions(+), 400 deletions(-) rename comp/forwarder/eventplatform/{def => }/component.go (91%) rename comp/forwarder/eventplatform/{mock => }/component_mock.go (60%) rename comp/forwarder/eventplatform/{impl => eventplatformimpl}/epforwarder.go (90%) create mode 100644 comp/forwarder/eventplatform/eventplatformimpl/epforwarder_mock.go create mode 100644 comp/forwarder/eventplatform/eventplatformimpl/epforwarder_mockgen.go create mode 100644 comp/forwarder/eventplatform/eventplatformimpl/params.go delete mode 100644 comp/forwarder/eventplatform/fx-mock/fx.go delete mode 100644 comp/forwarder/eventplatform/fx-noop/fx.go delete mode 100644 comp/forwarder/eventplatform/fx/fx.go delete mode 100644 comp/forwarder/eventplatform/impl-noop/noop.go delete mode 100644 comp/forwarder/eventplatform/mock/epforwarder_mock.go delete mode 100644 comp/forwarder/eventplatform/mock/epforwarder_mockgen.go diff --git a/cmd/agent/subcommands/run/command.go b/cmd/agent/subcommands/run/command.go index 88c47aa47ef3a..9c126f014aab2 100644 --- a/cmd/agent/subcommands/run/command.go +++ b/cmd/agent/subcommands/run/command.go @@ -89,7 +89,7 @@ import ( dogstatsdStatusimpl "github.com/DataDog/datadog-agent/comp/dogstatsd/status/statusimpl" "github.com/DataDog/datadog-agent/comp/forwarder" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - eventplatformfx "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" orchestratorForwarderImpl "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" langDetectionCl "github.com/DataDog/datadog-agent/comp/languagedetection/client" @@ -424,7 +424,7 @@ func getSharedFxOption() fx.Option { langDetectionClimpl.Module(), metadata.Bundle(), orchestratorForwarderImpl.Module(orchestratorForwarderImpl.NewDefaultParams()), - eventplatformfx.Module(), + eventplatformimpl.Module(eventplatformimpl.NewDefaultParams()), eventplatformreceiverimpl.Module(), // injecting the shared Serializer to FX until we migrate it to a proper component. This allows other diff --git a/cmd/agent/subcommands/snmp/command.go b/cmd/agent/subcommands/snmp/command.go index 516818867c618..4dba953403985 100644 --- a/cmd/agent/subcommands/snmp/command.go +++ b/cmd/agent/subcommands/snmp/command.go @@ -23,7 +23,7 @@ import ( nooptagger "github.com/DataDog/datadog-agent/comp/core/tagger/fx-noop" "github.com/DataDog/datadog-agent/comp/forwarder" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - eventplatformfx "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" haagentfx "github.com/DataDog/datadog-agent/comp/haagent/fx" @@ -97,7 +97,7 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { demultiplexerimpl.Module(demultiplexerimpl.NewDefaultParams()), forwarder.Bundle(defaultforwarder.NewParams(defaultforwarder.WithFeatures(defaultforwarder.CoreFeatures))), orchestratorimpl.Module(orchestratorimpl.NewDefaultParams()), - eventplatformfx.Module(), + eventplatformimpl.Module(eventplatformimpl.NewDefaultParams()), compressionfx.Module(), nooptagger.Module(), eventplatformreceiverimpl.Module(), @@ -160,7 +160,7 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { aggregator.Bundle(demultiplexerimpl.NewDefaultParams()), orchestratorimpl.Module(orchestratorimpl.NewDefaultParams()), forwarder.Bundle(defaultforwarder.NewParams(defaultforwarder.WithFeatures(defaultforwarder.CoreFeatures))), - eventplatformfx.Module(), + eventplatformimpl.Module(eventplatformimpl.NewDefaultParams()), eventplatformreceiverimpl.Module(), compressionfx.Module(), nooptagger.Module(), diff --git a/cmd/cluster-agent-cloudfoundry/subcommands/run/command.go b/cmd/cluster-agent-cloudfoundry/subcommands/run/command.go index 9aa1076c8ec4a..b16485b36f9e4 100644 --- a/cmd/cluster-agent-cloudfoundry/subcommands/run/command.go +++ b/cmd/cluster-agent-cloudfoundry/subcommands/run/command.go @@ -46,7 +46,7 @@ import ( workloadmetafx "github.com/DataDog/datadog-agent/comp/core/workloadmeta/fx" "github.com/DataDog/datadog-agent/comp/forwarder" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - eventplatformfxnoop "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx-noop" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" orchestratorForwarderImpl "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" haagentfx "github.com/DataDog/datadog-agent/comp/haagent/fx" @@ -89,7 +89,7 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { compressionfx.Module(), demultiplexerimpl.Module(demultiplexerimpl.NewDefaultParams()), orchestratorForwarderImpl.Module(orchestratorForwarderImpl.NewDisabledParams()), - eventplatformfxnoop.Module(), + eventplatformimpl.Module(eventplatformimpl.NewDisabledParams()), eventplatformreceiverimpl.Module(), // setup workloadmeta diff --git a/cmd/cluster-agent/subcommands/start/command.go b/cmd/cluster-agent/subcommands/start/command.go index 98a671dad950d..f85419780b657 100644 --- a/cmd/cluster-agent/subcommands/start/command.go +++ b/cmd/cluster-agent/subcommands/start/command.go @@ -58,7 +58,7 @@ import ( workloadmetafx "github.com/DataDog/datadog-agent/comp/core/workloadmeta/fx" "github.com/DataDog/datadog-agent/comp/forwarder" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - eventplatformfxnoop "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx-noop" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" orchestratorForwarderImpl "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" haagentfx "github.com/DataDog/datadog-agent/comp/haagent/fx" @@ -141,7 +141,7 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { compressionfx.Module(), demultiplexerimpl.Module(demultiplexerimpl.NewDefaultParams()), orchestratorForwarderImpl.Module(orchestratorForwarderImpl.NewDefaultParams()), - eventplatformfxnoop.Module(), + eventplatformimpl.Module(eventplatformimpl.NewDisabledParams()), eventplatformreceiverimpl.Module(), // setup workloadmeta wmcatalog.GetCatalog(), diff --git a/cmd/dogstatsd/subcommands/start/command.go b/cmd/dogstatsd/subcommands/start/command.go index ea7fe59c8051a..245ff9139caff 100644 --- a/cmd/dogstatsd/subcommands/start/command.go +++ b/cmd/dogstatsd/subcommands/start/command.go @@ -40,7 +40,7 @@ import ( dogstatsdServer "github.com/DataDog/datadog-agent/comp/dogstatsd/server" "github.com/DataDog/datadog-agent/comp/forwarder" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - eventplatformfxnoop "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx-noop" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" orchestratorForwarderImpl "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" haagentfx "github.com/DataDog/datadog-agent/comp/haagent/fx" @@ -149,7 +149,7 @@ func RunDogstatsdFct(cliParams *CLIParams, defaultConfPath string, defaultLogFil )), secretsimpl.Module(), orchestratorForwarderImpl.Module(orchestratorForwarderImpl.NewDisabledParams()), - eventplatformfxnoop.Module(), + eventplatformimpl.Module(eventplatformimpl.NewDisabledParams()), eventplatformreceiverimpl.Module(), hostnameimpl.Module(), localTaggerfx.Module(tagger.Params{}), diff --git a/cmd/process-agent/command/main_common.go b/cmd/process-agent/command/main_common.go index 5c8d983e90b95..188c9684fd30b 100644 --- a/cmd/process-agent/command/main_common.go +++ b/cmd/process-agent/command/main_common.go @@ -38,7 +38,7 @@ import ( workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" workloadmetafx "github.com/DataDog/datadog-agent/comp/core/workloadmeta/fx" compstatsd "github.com/DataDog/datadog-agent/comp/dogstatsd/statsd" - eventplatformfx "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" hostMetadataUtils "github.com/DataDog/datadog-agent/comp/metadata/host/hostimpl/utils" "github.com/DataDog/datadog-agent/comp/networkpath" @@ -134,7 +134,7 @@ func runApp(ctx context.Context, globalParams *GlobalParams) error { process.Bundle(), eventplatformreceiverimpl.Module(), - eventplatformfx.Module(), + eventplatformimpl.Module(eventplatformimpl.NewDefaultParams()), // Provides the rdnssquerier module rdnsquerierfx.Module(), diff --git a/cmd/process-agent/subcommands/check/check.go b/cmd/process-agent/subcommands/check/check.go index 5f88b17cb11ef..ad2181d4ac90c 100644 --- a/cmd/process-agent/subcommands/check/check.go +++ b/cmd/process-agent/subcommands/check/check.go @@ -32,7 +32,7 @@ import ( wmcatalog "github.com/DataDog/datadog-agent/comp/core/workloadmeta/collectors/catalog" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" workloadmetafx "github.com/DataDog/datadog-agent/comp/core/workloadmeta/fx" - eventplatformfx "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" hostMetadataUtils "github.com/DataDog/datadog-agent/comp/metadata/host/hostimpl/utils" "github.com/DataDog/datadog-agent/comp/networkpath/npcollector" @@ -127,7 +127,7 @@ func MakeCommand(globalParamsGetter func() *command.GlobalParams, name string, a // Provide eventplatformimpl module eventplatformreceiverimpl.Module(), - eventplatformfx.Module(), + eventplatformimpl.Module(eventplatformimpl.NewDefaultParams()), // Provide rdnsquerier module rdnsquerierfx.Module(), diff --git a/cmd/serverless-init/metric/metric_test.go b/cmd/serverless-init/metric/metric_test.go index 874e10c13316d..facd4acabca0c 100644 --- a/cmd/serverless-init/metric/metric_test.go +++ b/cmd/serverless-init/metric/metric_test.go @@ -14,6 +14,7 @@ import ( "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer/demultiplexerimpl" + "github.com/DataDog/datadog-agent/comp/core/hostname/hostnameimpl" log "github.com/DataDog/datadog-agent/comp/core/log/def" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" @@ -64,5 +65,5 @@ func TestAddShutdownMetric(t *testing.T) { } func createDemultiplexer(t *testing.T) demultiplexer.FakeSamplerMock { - return fxutil.Test[demultiplexer.FakeSamplerMock](t, fx.Provide(func() log.Component { return logmock.New(t) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule()) + return fxutil.Test[demultiplexer.FakeSamplerMock](t, fx.Provide(func() log.Component { return logmock.New(t) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule(), hostnameimpl.MockModule()) } diff --git a/comp/agent/bundle_test.go b/comp/agent/bundle_test.go index b392cba7ca396..8a1820206ee81 100644 --- a/comp/agent/bundle_test.go +++ b/comp/agent/bundle_test.go @@ -14,7 +14,7 @@ import ( workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" workloadmetafxmock "github.com/DataDog/datadog-agent/comp/core/workloadmeta/fx-mock" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - eventplatformmock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx-mock" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" "github.com/DataDog/datadog-agent/pkg/util/fxutil" @@ -27,7 +27,7 @@ func TestBundleDependencies(t *testing.T) { compressionmock.MockModule(), defaultforwarder.MockModule(), orchestratorimpl.MockModule(), - eventplatformmock.MockModule(), + eventplatformimpl.MockModule(), demultiplexerimpl.Module(demultiplexerimpl.NewDefaultParams()), workloadmetafxmock.MockModule(workloadmeta.NewParams()), ) diff --git a/comp/aggregator/bundle_test.go b/comp/aggregator/bundle_test.go index 0b4b33bae168d..2a38d5a0ac603 100644 --- a/comp/aggregator/bundle_test.go +++ b/comp/aggregator/bundle_test.go @@ -12,7 +12,7 @@ import ( "github.com/DataDog/datadog-agent/comp/core" nooptagger "github.com/DataDog/datadog-agent/comp/core/tagger/fx-noop" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - eventplatformmock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx-mock" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" orchestratorForwarderImpl "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" @@ -25,7 +25,7 @@ func TestBundleDependencies(t *testing.T) { compressionmock.MockModule(), defaultforwarder.MockModule(), orchestratorForwarderImpl.MockModule(), - eventplatformmock.MockModule(), + eventplatformimpl.MockModule(), nooptagger.Module(), haagentmock.Module(), ) diff --git a/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer.go b/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer.go index 0b4dba5fafbb9..b6b1dd7d56310 100644 --- a/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer.go +++ b/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer.go @@ -18,7 +18,7 @@ import ( "github.com/DataDog/datadog-agent/comp/core/status" tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" orchestratorforwarder "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator" haagent "github.com/DataDog/datadog-agent/comp/haagent/def" compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" diff --git a/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer_fake_sampler_mock.go b/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer_fake_sampler_mock.go index e74314cf03f41..53e3beb5f77d6 100644 --- a/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer_fake_sampler_mock.go +++ b/comp/aggregator/demultiplexer/demultiplexerimpl/demultiplexer_fake_sampler_mock.go @@ -14,6 +14,7 @@ import ( "go.uber.org/fx" demultiplexerComp "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" + "github.com/DataDog/datadog-agent/comp/core/hostname" log "github.com/DataDog/datadog-agent/comp/core/log/def" compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" "github.com/DataDog/datadog-agent/pkg/aggregator" @@ -34,6 +35,7 @@ type fakeSamplerMockDependencies struct { fx.In Lc fx.Lifecycle Log log.Component + Hostname hostname.Component Compressor compression.Component } @@ -54,7 +56,7 @@ func (f *fakeSamplerMock) Stop(flush bool) { } func newFakeSamplerMock(deps fakeSamplerMockDependencies) demultiplexerComp.FakeSamplerMock { - demux := initTestAgentDemultiplexerWithFlushInterval(deps.Log, deps.Compressor, time.Hour) + demux := initTestAgentDemultiplexerWithFlushInterval(deps.Log, deps.Hostname, deps.Compressor, time.Hour) mock := &fakeSamplerMock{ TestAgentDemultiplexer: demux, } diff --git a/comp/aggregator/demultiplexer/demultiplexerimpl/status_test.go b/comp/aggregator/demultiplexer/demultiplexerimpl/status_test.go index c22c827126590..0e60ca002a79e 100644 --- a/comp/aggregator/demultiplexer/demultiplexerimpl/status_test.go +++ b/comp/aggregator/demultiplexer/demultiplexerimpl/status_test.go @@ -18,7 +18,7 @@ import ( tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" taggerMock "github.com/DataDog/datadog-agent/comp/core/tagger/mock" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - eventplatformmock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx-mock" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" @@ -64,7 +64,7 @@ func TestStatusOutPut(t *testing.T) { defaultforwarder.MockModule(), haagentmock.Module(), orchestratorimpl.MockModule(), - eventplatformmock.MockModule(), + eventplatformimpl.MockModule(), fx.Provide(func() tagger.Component { return mockTagger }), diff --git a/comp/aggregator/demultiplexer/demultiplexerimpl/test_agent_demultiplexer.go b/comp/aggregator/demultiplexer/demultiplexerimpl/test_agent_demultiplexer.go index f33ab36b0bf08..431bcdb8c06e2 100644 --- a/comp/aggregator/demultiplexer/demultiplexerimpl/test_agent_demultiplexer.go +++ b/comp/aggregator/demultiplexer/demultiplexerimpl/test_agent_demultiplexer.go @@ -12,11 +12,12 @@ import ( "sync" "time" + "github.com/DataDog/datadog-agent/comp/core/hostname" log "github.com/DataDog/datadog-agent/comp/core/log/def" noopimpl "github.com/DataDog/datadog-agent/comp/core/tagger/impl-noop" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" - eventplatformock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/mock" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" "github.com/DataDog/datadog-agent/pkg/aggregator" @@ -67,7 +68,7 @@ func (a *TestAgentDemultiplexer) AggregateSample(sample metrics.MetricSample) { } // GetEventPlatformForwarder returns a event platform forwarder -func (a *TestAgentDemultiplexer) GetEventPlatformForwarder() eventplatform.Component { +func (a *TestAgentDemultiplexer) GetEventPlatformForwarder() (eventplatform.Forwarder, error) { return a.AgentDemultiplexer.GetEventPlatformForwarder() } @@ -175,7 +176,7 @@ func (a *TestAgentDemultiplexer) Reset() { } // initTestAgentDemultiplexerWithFlushInterval inits a TestAgentDemultiplexer with the given flush interval. -func initTestAgentDemultiplexerWithFlushInterval(log log.Component, compressor compression.Component, flushInterval time.Duration) *TestAgentDemultiplexer { +func initTestAgentDemultiplexerWithFlushInterval(log log.Component, hostname hostname.Component, compressor compression.Component, flushInterval time.Duration) *TestAgentDemultiplexer { opts := aggregator.DefaultAgentDemultiplexerOptions() opts.FlushInterval = flushInterval opts.DontStartForwarders = true @@ -184,7 +185,7 @@ func initTestAgentDemultiplexerWithFlushInterval(log log.Component, compressor c sharedForwarderOptions := defaultforwarder.NewOptions(pkgconfigsetup.Datadog(), log, nil) sharedForwarder := defaultforwarder.NewDefaultForwarder(pkgconfigsetup.Datadog(), log, sharedForwarderOptions) orchestratorForwarder := optional.NewOption[defaultforwarder.Forwarder](defaultforwarder.NoopForwarder{}) - eventPlatformForwarder := eventplatformock.NewMock() + eventPlatformForwarder := optional.NewOptionPtr[eventplatform.Forwarder](eventplatformimpl.NewNoopEventPlatformForwarder(hostname)) demux := aggregator.InitAndStartAgentDemultiplexer(log, sharedForwarder, &orchestratorForwarder, opts, eventPlatformForwarder, haagentmock.NewMockHaAgent(), compressor, noopimpl.NewComponent(), "hostname") return NewTestAgentDemultiplexer(demux) } diff --git a/comp/aggregator/diagnosesendermanager/diagnosesendermanagerimpl/sendermanager.go b/comp/aggregator/diagnosesendermanager/diagnosesendermanagerimpl/sendermanager.go index afb0a6c869105..9e3c058314c79 100644 --- a/comp/aggregator/diagnosesendermanager/diagnosesendermanagerimpl/sendermanager.go +++ b/comp/aggregator/diagnosesendermanager/diagnosesendermanagerimpl/sendermanager.go @@ -17,7 +17,8 @@ import ( log "github.com/DataDog/datadog-agent/comp/core/log/def" tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - eventplatformnoop "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/impl-noop" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" haagent "github.com/DataDog/datadog-agent/comp/haagent/def" compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" "github.com/DataDog/datadog-agent/pkg/aggregator" @@ -73,7 +74,7 @@ func (sender *diagnoseSenderManager) LazyGetSenderManager() (sender.SenderManage haAgent := sender.deps.HaAgent forwarder := defaultforwarder.NewDefaultForwarder(config, log, defaultforwarder.NewOptions(config, log, nil)) orchestratorForwarder := optional.NewOptionPtr[defaultforwarder.Forwarder](defaultforwarder.NoopForwarder{}) - eventPlatformForwarder := eventplatformnoop.NewComponent() + eventPlatformForwarder := optional.NewOptionPtr[eventplatform.Forwarder](eventplatformimpl.NewNoopEventPlatformForwarder(sender.deps.Hostname)) senderManager = aggregator.InitAndStartAgentDemultiplexer( log, forwarder, diff --git a/comp/collector/collector/collectorimpl/collector_demux_test.go b/comp/collector/collector/collectorimpl/collector_demux_test.go index b68f7a91e546a..ed91be6ef1ade 100644 --- a/comp/collector/collector/collectorimpl/collector_demux_test.go +++ b/comp/collector/collector/collectorimpl/collector_demux_test.go @@ -27,6 +27,7 @@ import ( "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer/demultiplexerimpl" + "github.com/DataDog/datadog-agent/comp/core/hostname/hostnameimpl" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" "github.com/DataDog/datadog-agent/pkg/collector/check/stub" "github.com/DataDog/datadog-agent/pkg/metrics" @@ -81,7 +82,7 @@ func (s *SenderManagerProxy) GetDefaultSender() (sender.Sender, error) { } func (suite *CollectorDemuxTestSuite) SetupTest() { - suite.demux = fxutil.Test[demultiplexer.FakeSamplerMock](suite.T(), fx.Provide(func() log.Component { return logmock.New(suite.T()) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule()) + suite.demux = fxutil.Test[demultiplexer.FakeSamplerMock](suite.T(), fx.Provide(func() log.Component { return logmock.New(suite.T()) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule(), hostnameimpl.MockModule()) suite.SenderManagerMock = NewSenderManagerMock(suite.demux) suite.c = newCollector(fxutil.Test[dependencies](suite.T(), core.MockBundle(), diff --git a/comp/forwarder/eventplatform/def/component.go b/comp/forwarder/eventplatform/component.go similarity index 91% rename from comp/forwarder/eventplatform/def/component.go rename to comp/forwarder/eventplatform/component.go index 1132f6afed912..65bb1c26d4b21 100644 --- a/comp/forwarder/eventplatform/def/component.go +++ b/comp/forwarder/eventplatform/component.go @@ -36,10 +36,14 @@ const ( EventTypeServiceDiscovery = "service-discovery" ) -//go:generate mockgen -source=../def/$GOFILE -package=mock -destination=../mock/epforwarder_mockgen.go - // Component is the interface of the event platform forwarder component. type Component interface { + // Get the forwarder instance if it exists. + Get() (Forwarder, bool) +} + +// Forwarder is the interface of the event platform forwarder. +type Forwarder interface { SendEventPlatformEvent(e *message.Message, eventType string) error SendEventPlatformEventBlocking(e *message.Message, eventType string) error Purge() map[string][]*message.Message diff --git a/comp/forwarder/eventplatform/mock/component_mock.go b/comp/forwarder/eventplatform/component_mock.go similarity index 60% rename from comp/forwarder/eventplatform/mock/component_mock.go rename to comp/forwarder/eventplatform/component_mock.go index e662cec2c630b..c8cf64fe4d5e3 100644 --- a/comp/forwarder/eventplatform/mock/component_mock.go +++ b/comp/forwarder/eventplatform/component_mock.go @@ -3,12 +3,11 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2023-present Datadog, Inc. -// Package mock provides the mock interafce for the event platform component. -package mock +//go:build test -import eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" +package eventplatform // Mock implements mock-specific methods. type Mock interface { - eventplatform.Component + Component } diff --git a/comp/forwarder/eventplatform/impl/epforwarder.go b/comp/forwarder/eventplatform/eventplatformimpl/epforwarder.go similarity index 90% rename from comp/forwarder/eventplatform/impl/epforwarder.go rename to comp/forwarder/eventplatform/eventplatformimpl/epforwarder.go index 18042c15df4aa..9c4fb0d451ed5 100644 --- a/comp/forwarder/eventplatform/impl/epforwarder.go +++ b/comp/forwarder/eventplatform/eventplatformimpl/epforwarder.go @@ -13,11 +13,13 @@ import ( "strings" "sync" + "go.uber.org/fx" + configcomp "github.com/DataDog/datadog-agent/comp/core/config" "github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface" - compdef "github.com/DataDog/datadog-agent/comp/def" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" "github.com/DataDog/datadog-agent/comp/logs/agent/config" "github.com/DataDog/datadog-agent/pkg/config/model" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" @@ -28,10 +30,19 @@ import ( "github.com/DataDog/datadog-agent/pkg/logs/message" "github.com/DataDog/datadog-agent/pkg/logs/metrics" "github.com/DataDog/datadog-agent/pkg/logs/sender" + "github.com/DataDog/datadog-agent/pkg/util/fxutil" "github.com/DataDog/datadog-agent/pkg/util/log" + "github.com/DataDog/datadog-agent/pkg/util/optional" "github.com/DataDog/datadog-agent/pkg/util/startstop" ) +//go:generate mockgen -source=$GOFILE -package=$GOPACKAGE -destination=epforwarder_mockgen.go + +// Module defines the fx options for this component. +func Module(params Params) fxutil.Module { + return fxutil.Component(fx.Provide(newEventPlatformForwarder), fx.Supply(params)) +} + const ( eventTypeDBMSamples = "dbm-samples" eventTypeDBMMetrics = "dbm-metrics" @@ -319,14 +330,14 @@ func (s *defaultEventPlatformForwarder) Purge() map[string][]*message.Message { return result } -func (s *defaultEventPlatformForwarder) start() { +func (s *defaultEventPlatformForwarder) Start() { s.destinationsCtx.Start() for _, p := range s.pipelines { p.Start() } } -func (s *defaultEventPlatformForwarder) stop() { +func (s *defaultEventPlatformForwarder) Stop() { log.Debugf("shutting down event platform forwarder") stopper := startstop.NewParallelStopper() for _, p := range s.pipelines { @@ -478,28 +489,51 @@ func newDefaultEventPlatformForwarder(config model.Reader, eventPlatformReceiver } } -// Requires defined the eventplatform requirements -type Requires struct { - compdef.In +type dependencies struct { + fx.In + Params Params Config configcomp.Component - Lc compdef.Lifecycle + Lc fx.Lifecycle EventPlatformReceiver eventplatformreceiver.Component Hostname hostnameinterface.Component } -// NewComponent creates a new EventPlatformForwarder -func NewComponent(reqs Requires) eventplatform.Component { - forwarder := newDefaultEventPlatformForwarder(reqs.Config, reqs.EventPlatformReceiver) +// newEventPlatformForwarder creates a new EventPlatformForwarder +func newEventPlatformForwarder(deps dependencies) eventplatform.Component { + var forwarder *defaultEventPlatformForwarder - reqs.Lc.Append(compdef.Hook{ + if deps.Params.UseNoopEventPlatformForwarder { + forwarder = newNoopEventPlatformForwarder(deps.Hostname) + } else if deps.Params.UseEventPlatformForwarder { + forwarder = newDefaultEventPlatformForwarder(deps.Config, deps.EventPlatformReceiver) + } + if forwarder == nil { + return optional.NewNoneOptionPtr[eventplatform.Forwarder]() + } + deps.Lc.Append(fx.Hook{ OnStart: func(context.Context) error { - forwarder.start() + forwarder.Start() return nil }, OnStop: func(context.Context) error { - forwarder.stop() + forwarder.Stop() return nil }, }) - return forwarder + return optional.NewOptionPtr[eventplatform.Forwarder](forwarder) +} + +// NewNoopEventPlatformForwarder returns the standard event platform forwarder with sending disabled, meaning events +// will build up in each pipeline channel without being forwarded to the intake +func NewNoopEventPlatformForwarder(hostname hostnameinterface.Component) eventplatform.Forwarder { + return newNoopEventPlatformForwarder(hostname) +} + +func newNoopEventPlatformForwarder(hostname hostnameinterface.Component) *defaultEventPlatformForwarder { + f := newDefaultEventPlatformForwarder(pkgconfigsetup.Datadog(), eventplatformreceiverimpl.NewReceiver(hostname).Comp) + // remove the senders + for _, p := range f.pipelines { + p.strategy = nil + } + return f } diff --git a/comp/forwarder/eventplatform/eventplatformimpl/epforwarder_mock.go b/comp/forwarder/eventplatform/eventplatformimpl/epforwarder_mock.go new file mode 100644 index 0000000000000..2d4d6d296ca7e --- /dev/null +++ b/comp/forwarder/eventplatform/eventplatformimpl/epforwarder_mock.go @@ -0,0 +1,27 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build test + +package eventplatformimpl + +import ( + "github.com/DataDog/datadog-agent/comp/core/hostname" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + "github.com/DataDog/datadog-agent/pkg/util/fxutil" + "github.com/DataDog/datadog-agent/pkg/util/optional" + "go.uber.org/fx" +) + +// MockModule defines the fx options for the mock component. +func MockModule() fxutil.Module { + return fxutil.Component( + fx.Provide(newMockComponent), + ) +} + +func newMockComponent(hostname hostname.Component) eventplatform.Component { + return optional.NewOptionPtr[eventplatform.Forwarder](NewNoopEventPlatformForwarder(hostname)) +} diff --git a/comp/forwarder/eventplatform/eventplatformimpl/epforwarder_mockgen.go b/comp/forwarder/eventplatform/eventplatformimpl/epforwarder_mockgen.go new file mode 100644 index 0000000000000..2c196bdad5aa5 --- /dev/null +++ b/comp/forwarder/eventplatform/eventplatformimpl/epforwarder_mockgen.go @@ -0,0 +1,101 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: epforwarder.go + +// Package eventplatformimpl is a generated GoMock package. +package eventplatformimpl + +import ( + reflect "reflect" + + message "github.com/DataDog/datadog-agent/pkg/logs/message" + gomock "github.com/golang/mock/gomock" +) + +// MockEventPlatformForwarder is a mock of EventPlatformForwarder interface. +type MockEventPlatformForwarder struct { + ctrl *gomock.Controller + recorder *MockEventPlatformForwarderMockRecorder +} + +// MockEventPlatformForwarderMockRecorder is the mock recorder for MockEventPlatformForwarder. +type MockEventPlatformForwarderMockRecorder struct { + mock *MockEventPlatformForwarder +} + +// NewMockEventPlatformForwarder creates a new mock instance. +func NewMockEventPlatformForwarder(ctrl *gomock.Controller) *MockEventPlatformForwarder { + mock := &MockEventPlatformForwarder{ctrl: ctrl} + mock.recorder = &MockEventPlatformForwarderMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockEventPlatformForwarder) EXPECT() *MockEventPlatformForwarderMockRecorder { + return m.recorder +} + +// Purge mocks base method. +func (m *MockEventPlatformForwarder) Purge() map[string][]*message.Message { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Purge") + ret0, _ := ret[0].(map[string][]*message.Message) + return ret0 +} + +// Purge indicates an expected call of Purge. +func (mr *MockEventPlatformForwarderMockRecorder) Purge() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Purge", reflect.TypeOf((*MockEventPlatformForwarder)(nil).Purge)) +} + +// SendEventPlatformEvent mocks base method. +func (m *MockEventPlatformForwarder) SendEventPlatformEvent(e *message.Message, eventType string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "SendEventPlatformEvent", e, eventType) + ret0, _ := ret[0].(error) + return ret0 +} + +// SendEventPlatformEvent indicates an expected call of SendEventPlatformEvent. +func (mr *MockEventPlatformForwarderMockRecorder) SendEventPlatformEvent(e, eventType interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendEventPlatformEvent", reflect.TypeOf((*MockEventPlatformForwarder)(nil).SendEventPlatformEvent), e, eventType) +} + +// SendEventPlatformEventBlocking mocks base method. +func (m *MockEventPlatformForwarder) SendEventPlatformEventBlocking(e *message.Message, eventType string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "SendEventPlatformEventBlocking", e, eventType) + ret0, _ := ret[0].(error) + return ret0 +} + +// SendEventPlatformEventBlocking indicates an expected call of SendEventPlatformEventBlocking. +func (mr *MockEventPlatformForwarderMockRecorder) SendEventPlatformEventBlocking(e, eventType interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendEventPlatformEventBlocking", reflect.TypeOf((*MockEventPlatformForwarder)(nil).SendEventPlatformEventBlocking), e, eventType) +} + +// Start mocks base method. +func (m *MockEventPlatformForwarder) Start() { + m.ctrl.T.Helper() + m.ctrl.Call(m, "Start") +} + +// Start indicates an expected call of Start. +func (mr *MockEventPlatformForwarderMockRecorder) Start() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Start", reflect.TypeOf((*MockEventPlatformForwarder)(nil).Start)) +} + +// Stop mocks base method. +func (m *MockEventPlatformForwarder) Stop() { + m.ctrl.T.Helper() + m.ctrl.Call(m, "Stop") +} + +// Stop indicates an expected call of Stop. +func (mr *MockEventPlatformForwarderMockRecorder) Stop() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Stop", reflect.TypeOf((*MockEventPlatformForwarder)(nil).Stop)) +} diff --git a/comp/forwarder/eventplatform/eventplatformimpl/params.go b/comp/forwarder/eventplatform/eventplatformimpl/params.go new file mode 100644 index 0000000000000..108f9e4b228d7 --- /dev/null +++ b/comp/forwarder/eventplatform/eventplatformimpl/params.go @@ -0,0 +1,22 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2023-present Datadog, Inc. + +package eventplatformimpl + +// Params defines the parameters for the event platform forwarder. +type Params struct { + UseNoopEventPlatformForwarder bool + UseEventPlatformForwarder bool +} + +// NewDefaultParams returns the default parameters for the event platform forwarder. +func NewDefaultParams() Params { + return Params{UseEventPlatformForwarder: true, UseNoopEventPlatformForwarder: false} +} + +// NewDisabledParams returns the disabled parameters for the event platform forwarder. +func NewDisabledParams() Params { + return Params{UseEventPlatformForwarder: false, UseNoopEventPlatformForwarder: false} +} diff --git a/comp/forwarder/eventplatform/fx-mock/fx.go b/comp/forwarder/eventplatform/fx-mock/fx.go deleted file mode 100644 index eb837f131e500..0000000000000 --- a/comp/forwarder/eventplatform/fx-mock/fx.go +++ /dev/null @@ -1,21 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2024-present Datadog, Inc. - -// Package fx provides the fxmock module for the rdnsquerier component -package fx - -import ( - eventplatformmock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/mock" - "github.com/DataDog/datadog-agent/pkg/util/fxutil" -) - -// MockModule defines the fx options for the mock component. -func MockModule() fxutil.Module { - return fxutil.Component( - fxutil.ProvideComponentConstructor( - eventplatformmock.NewMock, - ), - ) -} diff --git a/comp/forwarder/eventplatform/fx-noop/fx.go b/comp/forwarder/eventplatform/fx-noop/fx.go deleted file mode 100644 index 76e656b46ef53..0000000000000 --- a/comp/forwarder/eventplatform/fx-noop/fx.go +++ /dev/null @@ -1,21 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2024-present Datadog, Inc. - -// Package fx provides the fxnoop module for the rdnsquerier component -package fx - -import ( - eventplatformnoop "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/impl-noop" - "github.com/DataDog/datadog-agent/pkg/util/fxutil" -) - -// Module defines the fx options for the mock component. -func Module() fxutil.Module { - return fxutil.Component( - fxutil.ProvideComponentConstructor( - eventplatformnoop.NewComponent, - ), - ) -} diff --git a/comp/forwarder/eventplatform/fx/fx.go b/comp/forwarder/eventplatform/fx/fx.go deleted file mode 100644 index 74e287dbb79cb..0000000000000 --- a/comp/forwarder/eventplatform/fx/fx.go +++ /dev/null @@ -1,17 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -// Package fx provides the fx module for the event platform component. -package fx - -import ( - eventplatformimpl "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/impl" - "github.com/DataDog/datadog-agent/pkg/util/fxutil" -) - -// Module defines the fx options for this component. -func Module() fxutil.Module { - return fxutil.Component(fxutil.ProvideComponentConstructor(eventplatformimpl.NewComponent)) -} diff --git a/comp/forwarder/eventplatform/impl-noop/noop.go b/comp/forwarder/eventplatform/impl-noop/noop.go deleted file mode 100644 index 7d6ed39c04940..0000000000000 --- a/comp/forwarder/eventplatform/impl-noop/noop.go +++ /dev/null @@ -1,39 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -// Package eventplatformimpl contains the logic for the noop forwarding component -package eventplatformimpl - -import ( - "errors" - - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" - "github.com/DataDog/datadog-agent/pkg/logs/message" -) - -type noopForwarder struct { -} - -// SendEventPlatformEvent sends messages to the event platform intake. -// SendEventPlatformEvent will drop messages and return an error if the input channel is already full. -func (s *noopForwarder) SendEventPlatformEvent(*message.Message, string) error { - return errors.New("noop forwarder does not support SendEventPlatformEvent") -} - -// SendEventPlatformEventBlocking sends messages to the event platform intake. -// SendEventPlatformEventBlocking will block if the input channel is already full. -func (s *noopForwarder) SendEventPlatformEventBlocking(*message.Message, string) error { - return errors.New("noop forwarder does not support SendEventPlatformEventBlocking") -} - -// Purge clears out all pipeline channels, returning a map of eventType to list of messages in that were removed from each channel -func (s *noopForwarder) Purge() map[string][]*message.Message { - return map[string][]*message.Message{} -} - -// NewComponent creates a new EventPlatformForwarder -func NewComponent() eventplatform.Component { - return &noopForwarder{} -} diff --git a/comp/forwarder/eventplatform/mock/epforwarder_mock.go b/comp/forwarder/eventplatform/mock/epforwarder_mock.go deleted file mode 100644 index 659a458a61a00..0000000000000 --- a/comp/forwarder/eventplatform/mock/epforwarder_mock.go +++ /dev/null @@ -1,36 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -package mock - -import ( - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" - message "github.com/DataDog/datadog-agent/pkg/logs/message" -) - -type mock struct { -} - -// SendEventPlatformEvent sends messages to the event platform intake. -// SendEventPlatformEvent will drop messages and return an error if the input channel is already full. -func (s *mock) SendEventPlatformEvent(*message.Message, string) error { - return nil -} - -// SendEventPlatformEventBlocking sends messages to the event platform intake. -// SendEventPlatformEventBlocking will block if the input channel is already full. -func (s *mock) SendEventPlatformEventBlocking(*message.Message, string) error { - return nil -} - -// Purge clears out all pipeline channels, returning a map of eventType to list of messages in that were removed from each channel -func (s *mock) Purge() map[string][]*message.Message { - return map[string][]*message.Message{} -} - -// NewMock returns a new mock component. -func NewMock() eventplatform.Component { - return &mock{} -} diff --git a/comp/forwarder/eventplatform/mock/epforwarder_mockgen.go b/comp/forwarder/eventplatform/mock/epforwarder_mockgen.go deleted file mode 100644 index e1dabb87b6592..0000000000000 --- a/comp/forwarder/eventplatform/mock/epforwarder_mockgen.go +++ /dev/null @@ -1,77 +0,0 @@ -// Code generated by MockGen. DO NOT EDIT. -// Source: ../def/component.go - -// Package mock is a generated GoMock package. -package mock - -import ( - reflect "reflect" - - message "github.com/DataDog/datadog-agent/pkg/logs/message" - gomock "github.com/golang/mock/gomock" -) - -// MockComponent is a mock of Component interface. -type MockComponent struct { - ctrl *gomock.Controller - recorder *MockComponentMockRecorder -} - -// MockComponentMockRecorder is the mock recorder for MockComponent. -type MockComponentMockRecorder struct { - mock *MockComponent -} - -// NewMockComponent creates a new mock instance. -func NewMockComponent(ctrl *gomock.Controller) *MockComponent { - mock := &MockComponent{ctrl: ctrl} - mock.recorder = &MockComponentMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockComponent) EXPECT() *MockComponentMockRecorder { - return m.recorder -} - -// Purge mocks base method. -func (m *MockComponent) Purge() map[string][]*message.Message { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Purge") - ret0, _ := ret[0].(map[string][]*message.Message) - return ret0 -} - -// Purge indicates an expected call of Purge. -func (mr *MockComponentMockRecorder) Purge() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Purge", reflect.TypeOf((*MockComponent)(nil).Purge)) -} - -// SendEventPlatformEvent mocks base method. -func (m *MockComponent) SendEventPlatformEvent(e *message.Message, eventType string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "SendEventPlatformEvent", e, eventType) - ret0, _ := ret[0].(error) - return ret0 -} - -// SendEventPlatformEvent indicates an expected call of SendEventPlatformEvent. -func (mr *MockComponentMockRecorder) SendEventPlatformEvent(e, eventType interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendEventPlatformEvent", reflect.TypeOf((*MockComponent)(nil).SendEventPlatformEvent), e, eventType) -} - -// SendEventPlatformEventBlocking mocks base method. -func (m *MockComponent) SendEventPlatformEventBlocking(e *message.Message, eventType string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "SendEventPlatformEventBlocking", e, eventType) - ret0, _ := ret[0].(error) - return ret0 -} - -// SendEventPlatformEventBlocking indicates an expected call of SendEventPlatformEventBlocking. -func (mr *MockComponentMockRecorder) SendEventPlatformEventBlocking(e, eventType interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendEventPlatformEventBlocking", reflect.TypeOf((*MockComponent)(nil).SendEventPlatformEventBlocking), e, eventType) -} diff --git a/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl/format.go b/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl/format.go index e3529345a94ad..940757de88d16 100644 --- a/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl/format.go +++ b/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl/format.go @@ -15,7 +15,7 @@ import ( "github.com/DataDog/agent-payload/v5/sbom" "google.golang.org/protobuf/proto" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/pkg/logs/message" ) diff --git a/comp/ndmtmp/bundle_test.go b/comp/ndmtmp/bundle_test.go index 57d0999b2d2a1..c0bd689899558 100644 --- a/comp/ndmtmp/bundle_test.go +++ b/comp/ndmtmp/bundle_test.go @@ -8,15 +8,14 @@ package ndmtmp import ( "testing" - "go.uber.org/fx" - "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer/demultiplexerimpl" "github.com/DataDog/datadog-agent/comp/core" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - eventplatformmock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx-mock" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" orchestratorForwarderImpl "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" ddagg "github.com/DataDog/datadog-agent/pkg/aggregator" "github.com/DataDog/datadog-agent/pkg/util/fxutil" + "go.uber.org/fx" ) func TestBundleDependencies(t *testing.T) { @@ -24,7 +23,7 @@ func TestBundleDependencies(t *testing.T) { demultiplexerimpl.MockModule(), orchestratorForwarderImpl.MockModule(), defaultforwarder.MockModule(), - eventplatformmock.MockModule(), + eventplatformimpl.MockModule(), core.MockBundle(), ) } diff --git a/comp/ndmtmp/forwarder/component.go b/comp/ndmtmp/forwarder/component.go index fe0dbcdfe9d2e..e8f535198e85b 100644 --- a/comp/ndmtmp/forwarder/component.go +++ b/comp/ndmtmp/forwarder/component.go @@ -7,12 +7,12 @@ package forwarder import ( - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" ) // team: ndm-core // Component is the component type. type Component interface { - eventplatform.Component + eventplatform.Forwarder } diff --git a/comp/ndmtmp/forwarder/component_mock.go b/comp/ndmtmp/forwarder/component_mock.go index 9043d58474584..5df873226a3f1 100644 --- a/comp/ndmtmp/forwarder/component_mock.go +++ b/comp/ndmtmp/forwarder/component_mock.go @@ -6,11 +6,11 @@ // Package forwarder exposes the event platform forwarder for netflow. package forwarder -import "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/mock" +import "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" // MockComponent is the type for mock components. // It is a gomock-generated mock of EventPlatformForwarder. type MockComponent interface { Component - EXPECT() *mock.MockComponentMockRecorder + EXPECT() *eventplatformimpl.MockEventPlatformForwarderMockRecorder } diff --git a/comp/ndmtmp/forwarder/forwarderimpl/forwarder.go b/comp/ndmtmp/forwarder/forwarderimpl/forwarder.go index 2652a75a1a413..a34fe908b1222 100644 --- a/comp/ndmtmp/forwarder/forwarderimpl/forwarder.go +++ b/comp/ndmtmp/forwarder/forwarderimpl/forwarder.go @@ -7,11 +7,10 @@ package forwarderimpl import ( - "go.uber.org/fx" - "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" "github.com/DataDog/datadog-agent/comp/ndmtmp/forwarder" "github.com/DataDog/datadog-agent/pkg/util/fxutil" + "go.uber.org/fx" ) // Module defines the fx options for this component. @@ -20,6 +19,6 @@ func Module() fxutil.Module { fx.Provide(getForwarder)) } -func getForwarder(agg demultiplexer.Component) forwarder.Component { +func getForwarder(agg demultiplexer.Component) (forwarder.Component, error) { return agg.GetEventPlatformForwarder() } diff --git a/comp/ndmtmp/forwarder/forwarderimpl/forwarder_mock.go b/comp/ndmtmp/forwarder/forwarderimpl/forwarder_mock.go index d6e2be374edc3..a7efc1b2f8d2f 100644 --- a/comp/ndmtmp/forwarder/forwarderimpl/forwarder_mock.go +++ b/comp/ndmtmp/forwarder/forwarderimpl/forwarder_mock.go @@ -10,17 +10,16 @@ package forwarderimpl import ( "testing" - "github.com/golang/mock/gomock" - "go.uber.org/fx" - - eventplatformmock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/mock" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" "github.com/DataDog/datadog-agent/comp/ndmtmp/forwarder" "github.com/DataDog/datadog-agent/pkg/util/fxutil" + "github.com/golang/mock/gomock" + "go.uber.org/fx" ) func getMockForwarder(t testing.TB) forwarder.MockComponent { ctrl := gomock.NewController(t) - return eventplatformmock.NewMockComponent(ctrl) + return eventplatformimpl.NewMockEventPlatformForwarder(ctrl) } // MockModule defines a component with a mock forwarder diff --git a/comp/netflow/flowaggregator/aggregator.go b/comp/netflow/flowaggregator/aggregator.go index 8c64ab30a3cc8..93afc304748b8 100644 --- a/comp/netflow/flowaggregator/aggregator.go +++ b/comp/netflow/flowaggregator/aggregator.go @@ -17,7 +17,7 @@ import ( "go.uber.org/atomic" log "github.com/DataDog/datadog-agent/comp/core/log/def" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/comp/netflow/format" rdnsquerier "github.com/DataDog/datadog-agent/comp/rdnsquerier/def" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" @@ -41,7 +41,7 @@ type FlowAggregator struct { rollupTrackerRefreshInterval time.Duration flowAcc *flowAccumulator sender sender.Sender - epForwarder eventplatform.Component + epForwarder eventplatform.Forwarder stopChan chan struct{} flushLoopDone chan struct{} runDone chan struct{} @@ -78,7 +78,7 @@ var maxNegativeSequenceDiffToReset = map[common.FlowType]int{ } // NewFlowAggregator returns a new FlowAggregator -func NewFlowAggregator(sender sender.Sender, epForwarder eventplatform.Component, config *config.NetflowConfig, hostname string, logger log.Component, rdnsQuerier rdnsquerier.Component) *FlowAggregator { +func NewFlowAggregator(sender sender.Sender, epForwarder eventplatform.Forwarder, config *config.NetflowConfig, hostname string, logger log.Component, rdnsQuerier rdnsquerier.Component) *FlowAggregator { flushInterval := time.Duration(config.AggregatorFlushInterval) * time.Second flowContextTTL := time.Duration(config.AggregatorFlowContextTTL) * time.Second rollupTrackerRefreshInterval := time.Duration(config.AggregatorRollupTrackerRefreshInterval) * time.Second diff --git a/comp/netflow/flowaggregator/aggregator_test.go b/comp/netflow/flowaggregator/aggregator_test.go index 25a233880264b..181915ab3f628 100644 --- a/comp/netflow/flowaggregator/aggregator_test.go +++ b/comp/netflow/flowaggregator/aggregator_test.go @@ -30,7 +30,7 @@ import ( "github.com/stretchr/testify/require" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" - eventplatformmock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/mock" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" "github.com/DataDog/datadog-agent/pkg/aggregator/mocksender" "github.com/DataDog/datadog-agent/pkg/logs/message" "github.com/DataDog/datadog-agent/pkg/util/fxutil" @@ -87,7 +87,7 @@ func TestAggregator(t *testing.T) { TCPFlags: 19, EtherType: uint32(0x0800), } - epForwarder := eventplatformmock.NewMockComponent(gomock.NewController(t)) + epForwarder := eventplatformimpl.NewMockEventPlatformForwarder(gomock.NewController(t)) // language=json event := []byte(` @@ -246,7 +246,7 @@ func TestAggregator_withMockPayload(t *testing.T) { }, } ctrl := gomock.NewController(t) - epForwarder := eventplatformmock.NewMockComponent(ctrl) + epForwarder := eventplatformimpl.NewMockEventPlatformForwarder(ctrl) testutil.ExpectNetflow5Payloads(t, epForwarder) @@ -363,7 +363,7 @@ func TestFlowAggregator_flush_submitCollectorMetrics_error(t *testing.T) { } ctrl := gomock.NewController(t) - epForwarder := eventplatformmock.NewMockComponent(ctrl) + epForwarder := eventplatformimpl.NewMockEventPlatformForwarder(ctrl) aggregator := NewFlowAggregator(sender, epForwarder, &conf, "my-hostname", logger, rdnsQuerier) aggregator.goflowPrometheusGatherer = prometheus.GathererFunc(func() ([]*promClient.MetricFamily, error) { @@ -402,7 +402,7 @@ func TestFlowAggregator_submitCollectorMetrics(t *testing.T) { } ctrl := gomock.NewController(t) - epForwarder := eventplatformmock.NewMockComponent(ctrl) + epForwarder := eventplatformimpl.NewMockEventPlatformForwarder(ctrl) logger := logmock.New(t) rdnsQuerier := fxutil.Test[rdnsquerier.Component](t, rdnsquerierfxmock.MockModule()) @@ -479,7 +479,7 @@ func TestFlowAggregator_submitCollectorMetrics_error(t *testing.T) { } ctrl := gomock.NewController(t) - epForwarder := eventplatformmock.NewMockComponent(ctrl) + epForwarder := eventplatformimpl.NewMockEventPlatformForwarder(ctrl) logger := logmock.New(t) rdnsQuerier := fxutil.Test[rdnsquerier.Component](t, rdnsquerierfxmock.MockModule()) @@ -514,7 +514,7 @@ func TestFlowAggregator_sendExporterMetadata_multiplePayloads(t *testing.T) { } ctrl := gomock.NewController(t) - epForwarder := eventplatformmock.NewMockComponent(ctrl) + epForwarder := eventplatformimpl.NewMockEventPlatformForwarder(ctrl) logger := logmock.New(t) rdnsQuerier := fxutil.Test[rdnsquerier.Component](t, rdnsquerierfxmock.MockModule()) @@ -599,7 +599,7 @@ func TestFlowAggregator_sendExporterMetadata_noPayloads(t *testing.T) { } ctrl := gomock.NewController(t) - epForwarder := eventplatformmock.NewMockComponent(ctrl) + epForwarder := eventplatformimpl.NewMockEventPlatformForwarder(ctrl) logger := logmock.New(t) rdnsQuerier := fxutil.Test[rdnsquerier.Component](t, rdnsquerierfxmock.MockModule()) @@ -632,7 +632,7 @@ func TestFlowAggregator_sendExporterMetadata_invalidIPIgnored(t *testing.T) { } ctrl := gomock.NewController(t) - epForwarder := eventplatformmock.NewMockComponent(ctrl) + epForwarder := eventplatformimpl.NewMockEventPlatformForwarder(ctrl) logger := logmock.New(t) rdnsQuerier := fxutil.Test[rdnsquerier.Component](t, rdnsquerierfxmock.MockModule()) @@ -717,7 +717,7 @@ func TestFlowAggregator_sendExporterMetadata_multipleNamespaces(t *testing.T) { } ctrl := gomock.NewController(t) - epForwarder := eventplatformmock.NewMockComponent(ctrl) + epForwarder := eventplatformimpl.NewMockEventPlatformForwarder(ctrl) logger := logmock.New(t) rdnsQuerier := fxutil.Test[rdnsquerier.Component](t, rdnsquerierfxmock.MockModule()) @@ -821,7 +821,7 @@ func TestFlowAggregator_sendExporterMetadata_singleExporterIpWithMultipleFlowTyp } ctrl := gomock.NewController(t) - epForwarder := eventplatformmock.NewMockComponent(ctrl) + epForwarder := eventplatformimpl.NewMockEventPlatformForwarder(ctrl) logger := logmock.New(t) rdnsQuerier := fxutil.Test[rdnsquerier.Component](t, rdnsquerierfxmock.MockModule()) diff --git a/comp/netflow/server/integration_test.go b/comp/netflow/server/integration_test.go index 8fc5a8e9aed36..5945207807db6 100644 --- a/comp/netflow/server/integration_test.go +++ b/comp/netflow/server/integration_test.go @@ -13,15 +13,14 @@ import ( "testing" "time" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + "github.com/DataDog/datadog-agent/comp/netflow/goflowlib" + "github.com/DataDog/datadog-agent/comp/netflow/goflowlib/netflowstate" "github.com/netsampler/goflow2/decoders/netflow/templates" "github.com/netsampler/goflow2/utils" "github.com/sirupsen/logrus" "go.uber.org/atomic" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" - "github.com/DataDog/datadog-agent/comp/netflow/goflowlib" - "github.com/DataDog/datadog-agent/comp/netflow/goflowlib/netflowstate" - "github.com/golang/mock/gomock" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" diff --git a/comp/netflow/testutil/testutil.go b/comp/netflow/testutil/testutil.go index 1bc3ad9242331..dedee4f79f427 100644 --- a/comp/netflow/testutil/testutil.go +++ b/comp/netflow/testutil/testutil.go @@ -25,7 +25,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/logs/message" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/comp/ndmtmp/forwarder" "github.com/DataDog/datadog-agent/comp/netflow/payload" ) diff --git a/comp/networkpath/bundle_test.go b/comp/networkpath/bundle_test.go index 49e160d2b5ef4..6eb6868e8acba 100644 --- a/comp/networkpath/bundle_test.go +++ b/comp/networkpath/bundle_test.go @@ -9,7 +9,7 @@ import ( "testing" "github.com/DataDog/datadog-agent/comp/core" - eventplatformmock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx-mock" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" rdnsquerier "github.com/DataDog/datadog-agent/comp/rdnsquerier/fx-mock" "github.com/DataDog/datadog-agent/pkg/util/fxutil" ) @@ -17,7 +17,7 @@ import ( func TestBundleDependencies(t *testing.T) { fxutil.TestBundle(t, Bundle(), core.MockBundle(), - eventplatformmock.MockModule(), + eventplatformimpl.MockModule(), rdnsquerier.MockModule(), ) } diff --git a/comp/networkpath/npcollector/npcollectorimpl/npcollector.go b/comp/networkpath/npcollector/npcollectorimpl/npcollector.go index eb4ded2939a94..4ee787e567320 100644 --- a/comp/networkpath/npcollector/npcollectorimpl/npcollector.go +++ b/comp/networkpath/npcollector/npcollectorimpl/npcollector.go @@ -19,7 +19,7 @@ import ( log "github.com/DataDog/datadog-agent/comp/core/log/def" telemetryComp "github.com/DataDog/datadog-agent/comp/core/telemetry" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/comp/networkpath/npcollector/npcollectorimpl/common" "github.com/DataDog/datadog-agent/comp/networkpath/npcollector/npcollectorimpl/pathteststore" rdnsquerier "github.com/DataDog/datadog-agent/comp/rdnsquerier/def" @@ -43,7 +43,7 @@ type npCollectorImpl struct { collectorConfigs *collectorConfigs // Deps - epForwarder eventplatform.Component + epForwarder eventplatform.Forwarder logger log.Component metricSender metricsender.MetricSender statsdClient ddgostatsd.ClientInterface @@ -84,7 +84,7 @@ func newNoopNpCollectorImpl() *npCollectorImpl { } } -func newNpCollectorImpl(epForwarder eventplatform.Component, collectorConfigs *collectorConfigs, logger log.Component, telemetrycomp telemetryComp.Component, rdnsquerier rdnsquerier.Component) *npCollectorImpl { +func newNpCollectorImpl(epForwarder eventplatform.Forwarder, collectorConfigs *collectorConfigs, logger log.Component, telemetrycomp telemetryComp.Component, rdnsquerier rdnsquerier.Component) *npCollectorImpl { logger.Infof("New NpCollector (workers=%d timeout=%d max_ttl=%d input_chan_size=%d processing_chan_size=%d pathtest_contexts_limit=%d pathtest_ttl=%s pathtest_interval=%s flush_interval=%s reverse_dns_enabled=%t reverse_dns_timeout=%d)", collectorConfigs.workers, collectorConfigs.timeout, diff --git a/comp/networkpath/npcollector/npcollectorimpl/npcollector_test.go b/comp/networkpath/npcollector/npcollectorimpl/npcollector_test.go index b774c71b84f5a..390ce1c8684f4 100644 --- a/comp/networkpath/npcollector/npcollectorimpl/npcollector_test.go +++ b/comp/networkpath/npcollector/npcollectorimpl/npcollector_test.go @@ -24,8 +24,8 @@ import ( "github.com/stretchr/testify/assert" "github.com/DataDog/datadog-agent/comp/core/telemetry" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" - eventplatformmock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/mock" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" "github.com/DataDog/datadog-agent/comp/networkpath/npcollector/npcollectorimpl/common" "github.com/DataDog/datadog-agent/comp/networkpath/npcollector/npcollectorimpl/pathteststore" rdnsquerier "github.com/DataDog/datadog-agent/comp/rdnsquerier/def" @@ -91,7 +91,7 @@ func Test_NpCollector_runningAndProcessing(t *testing.T) { stats := &teststatsd.Client{} - mockEpForwarder := eventplatformmock.NewMockComponent(gomock.NewController(t)) + mockEpForwarder := eventplatformimpl.NewMockEventPlatformForwarder(gomock.NewController(t)) npCollector.epForwarder = mockEpForwarder app.RequireStart() diff --git a/comp/networkpath/npcollector/npcollectorimpl/npcollector_testutils.go b/comp/networkpath/npcollector/npcollectorimpl/npcollector_testutils.go index 3075c06bc75ce..16d777c11fd79 100644 --- a/comp/networkpath/npcollector/npcollectorimpl/npcollector_testutils.go +++ b/comp/networkpath/npcollector/npcollectorimpl/npcollector_testutils.go @@ -15,18 +15,17 @@ import ( "time" model "github.com/DataDog/agent-payload/v5/process" - "github.com/stretchr/testify/require" - "go.uber.org/fx" - "go.uber.org/fx/fxtest" - "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer/demultiplexerimpl" "github.com/DataDog/datadog-agent/comp/core" "github.com/DataDog/datadog-agent/comp/core/config" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - eventplatformmock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx-mock" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" "github.com/DataDog/datadog-agent/comp/ndmtmp/forwarder/forwarderimpl" "github.com/DataDog/datadog-agent/comp/networkpath/npcollector" rdnsqueriermock "github.com/DataDog/datadog-agent/comp/rdnsquerier/fx-mock" + "github.com/stretchr/testify/require" + "go.uber.org/fx" + "go.uber.org/fx/fxtest" ) // MockTimeNow mocks time.Now @@ -44,7 +43,7 @@ var testOptions = fx.Options( demultiplexerimpl.MockModule(), defaultforwarder.MockModule(), core.MockBundle(), - eventplatformmock.MockModule(), + eventplatformimpl.MockModule(), rdnsqueriermock.MockModule(), ) diff --git a/comp/networkpath/npcollector/npcollectorimpl/npcollectorcomp.go b/comp/networkpath/npcollector/npcollectorimpl/npcollectorcomp.go index 31fa00d16ad86..01c0a42691ed9 100644 --- a/comp/networkpath/npcollector/npcollectorimpl/npcollectorcomp.go +++ b/comp/networkpath/npcollector/npcollectorimpl/npcollectorcomp.go @@ -13,7 +13,7 @@ import ( "github.com/DataDog/datadog-agent/comp/core/config" log "github.com/DataDog/datadog-agent/comp/core/log/def" "github.com/DataDog/datadog-agent/comp/core/telemetry" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/comp/networkpath/npcollector" rdnsquerier "github.com/DataDog/datadog-agent/comp/rdnsquerier/def" nooprdnsquerier "github.com/DataDog/datadog-agent/comp/rdnsquerier/impl-none" @@ -61,17 +61,23 @@ func newNpCollector(deps dependencies) provides { rdnsQuerier = nooprdnsquerier.NewNone().Comp } - collector = newNpCollectorImpl(deps.EpForwarder, configs, deps.Logger, deps.Telemetry, rdnsQuerier) - deps.Lc.Append(fx.Hook{ - // No need for OnStart hook since NpCollector.Init() will be called by clients when needed. - OnStart: func(context.Context) error { - return collector.start() - }, - OnStop: func(context.Context) error { - collector.stop() - return nil - }, - }) + epForwarder, ok := deps.EpForwarder.Get() + if !ok { + deps.Logger.Errorf("Error getting EpForwarder") + collector = newNoopNpCollectorImpl() + } else { + collector = newNpCollectorImpl(epForwarder, configs, deps.Logger, deps.Telemetry, rdnsQuerier) + deps.Lc.Append(fx.Hook{ + // No need for OnStart hook since NpCollector.Init() will be called by clients when needed. + OnStart: func(context.Context) error { + return collector.start() + }, + OnStop: func(context.Context) error { + collector.stop() + return nil + }, + }) + } } else { deps.Logger.Debugf("Network Path Collector disabled") collector = newNoopNpCollectorImpl() diff --git a/comp/process/bundle_test.go b/comp/process/bundle_test.go index 8ebfe77be895f..591dce9f63cfb 100644 --- a/comp/process/bundle_test.go +++ b/comp/process/bundle_test.go @@ -23,7 +23,7 @@ import ( workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" workloadmetafx "github.com/DataDog/datadog-agent/comp/core/workloadmeta/fx" "github.com/DataDog/datadog-agent/comp/dogstatsd/statsd" - eventplatformfx "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" "github.com/DataDog/datadog-agent/comp/networkpath/npcollector/npcollectorimpl" "github.com/DataDog/datadog-agent/comp/process/runner" @@ -96,7 +96,7 @@ func TestBundleOneShot(t *testing.T) { core.MockBundle(), workloadmetafx.Module(workloadmeta.NewParams()), eventplatformreceiverimpl.Module(), - eventplatformfx.Module(), + eventplatformimpl.Module(eventplatformimpl.NewDefaultParams()), rdnsquerier.MockModule(), npcollectorimpl.Module(), statsd.MockModule(), diff --git a/comp/snmpscan/impl/devicescan.go b/comp/snmpscan/impl/devicescan.go index cb0505108a848..cef73d6aee845 100644 --- a/comp/snmpscan/impl/devicescan.go +++ b/comp/snmpscan/impl/devicescan.go @@ -9,12 +9,11 @@ import ( "encoding/json" "time" - "github.com/gosnmp/gosnmp" - - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/pkg/logs/message" "github.com/DataDog/datadog-agent/pkg/networkdevice/metadata" "github.com/DataDog/datadog-agent/pkg/snmp/gosnmplib" + "github.com/gosnmp/gosnmp" ) func (s snmpScannerImpl) RunDeviceScan(snmpConnection *gosnmp.GoSNMP, deviceNamespace string, deviceIPAddress string) error { diff --git a/comp/snmpscan/impl/snmpscan.go b/comp/snmpscan/impl/snmpscan.go index 835866508cae1..1beb572ac27c0 100644 --- a/comp/snmpscan/impl/snmpscan.go +++ b/comp/snmpscan/impl/snmpscan.go @@ -10,7 +10,7 @@ import ( "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" log "github.com/DataDog/datadog-agent/comp/core/log/def" compdef "github.com/DataDog/datadog-agent/comp/def" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" rcclienttypes "github.com/DataDog/datadog-agent/comp/remote-config/rcclient/types" snmpscan "github.com/DataDog/datadog-agent/comp/snmpscan/def" ) @@ -30,7 +30,10 @@ type Provides struct { // NewComponent creates a new snmpscan component func NewComponent(reqs Requires) (Provides, error) { - forwarder := reqs.Demultiplexer.GetEventPlatformForwarder() + forwarder, err := reqs.Demultiplexer.GetEventPlatformForwarder() + if err != nil { + return Provides{}, err + } scanner := snmpScannerImpl{ log: reqs.Logger, epforwarder: forwarder, @@ -43,5 +46,5 @@ func NewComponent(reqs Requires) (Provides, error) { type snmpScannerImpl struct { log log.Component - epforwarder eventplatform.Component + epforwarder eventplatform.Forwarder } diff --git a/comp/snmptraps/forwarder/forwarderimpl/forwarder.go b/comp/snmptraps/forwarder/forwarderimpl/forwarder.go index c34d5809eaac4..52f0c5113078a 100644 --- a/comp/snmptraps/forwarder/forwarderimpl/forwarder.go +++ b/comp/snmptraps/forwarder/forwarderimpl/forwarder.go @@ -14,7 +14,7 @@ import ( "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" log "github.com/DataDog/datadog-agent/comp/core/log/def" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/comp/snmptraps/config" "github.com/DataDog/datadog-agent/comp/snmptraps/formatter" "github.com/DataDog/datadog-agent/comp/snmptraps/forwarder" diff --git a/comp/snmptraps/forwarder/forwarderimpl/forwarder_test.go b/comp/snmptraps/forwarder/forwarderimpl/forwarder_test.go index 1aa47f244e21b..8bf5df680100b 100644 --- a/comp/snmptraps/forwarder/forwarderimpl/forwarder_test.go +++ b/comp/snmptraps/forwarder/forwarderimpl/forwarder_test.go @@ -14,7 +14,7 @@ import ( "github.com/stretchr/testify/require" "go.uber.org/fx" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/comp/snmptraps/config/configimpl" "github.com/DataDog/datadog-agent/comp/snmptraps/formatter" "github.com/DataDog/datadog-agent/comp/snmptraps/formatter/formatterimpl" diff --git a/comp/snmptraps/status/statusimpl/status.go b/comp/snmptraps/status/statusimpl/status.go index 01649bd2be17c..0fd411f2615ae 100644 --- a/comp/snmptraps/status/statusimpl/status.go +++ b/comp/snmptraps/status/statusimpl/status.go @@ -15,7 +15,7 @@ import ( "go.uber.org/fx" "github.com/DataDog/datadog-agent/comp/core/status" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" trapsStatus "github.com/DataDog/datadog-agent/comp/snmptraps/status" "github.com/DataDog/datadog-agent/pkg/util/fxutil" ) diff --git a/comp/snmptraps/status/statusimpl/status_test.go b/comp/snmptraps/status/statusimpl/status_test.go index 342512a463097..ffa1fac2c5469 100644 --- a/comp/snmptraps/status/statusimpl/status_test.go +++ b/comp/snmptraps/status/statusimpl/status_test.go @@ -14,7 +14,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" _ "github.com/DataDog/datadog-agent/pkg/aggregator" ) diff --git a/pkg/aggregator/aggregator.go b/pkg/aggregator/aggregator.go index 96225d1fed599..e8ac4fd425d13 100644 --- a/pkg/aggregator/aggregator.go +++ b/pkg/aggregator/aggregator.go @@ -7,6 +7,7 @@ package aggregator import ( + "errors" "expvar" "fmt" "sync" @@ -14,7 +15,7 @@ import ( tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/core/tagger/types" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" haagent "github.com/DataDog/datadog-agent/comp/haagent/def" "github.com/DataDog/datadog-agent/pkg/aggregator/internal/tags" checkid "github.com/DataDog/datadog-agent/pkg/collector/check/id" @@ -409,8 +410,12 @@ func (agg *BufferedAggregator) GetBufferedChannels() (chan []*event.Event, chan } // GetEventPlatformForwarder returns a event platform forwarder -func (agg *BufferedAggregator) GetEventPlatformForwarder() eventplatform.Component { - return agg.eventPlatformForwarder +func (agg *BufferedAggregator) GetEventPlatformForwarder() (eventplatform.Forwarder, error) { + forwarder, found := agg.eventPlatformForwarder.Get() + if !found { + return nil, errors.New("event platform forwarder not initialized") + } + return forwarder, nil } func (agg *BufferedAggregator) registerSender(id checkid.ID) error { @@ -459,9 +464,13 @@ func (agg *BufferedAggregator) handleSenderBucket(checkBucket senderHistogramBuc } func (agg *BufferedAggregator) handleEventPlatformEvent(event senderEventPlatformEvent) error { + forwarder, found := agg.eventPlatformForwarder.Get() + if !found { + return errors.New("event platform forwarder not initialized") + } m := message.NewMessage(event.rawEvent, nil, "", 0) // eventPlatformForwarder is threadsafe so no locking needed here - return agg.eventPlatformForwarder.SendEventPlatformEvent(m, event.eventType) + return forwarder.SendEventPlatformEvent(m, event.eventType) } // addServiceCheck adds the service check to the slice of current service checks @@ -680,7 +689,11 @@ func (agg *BufferedAggregator) GetEvents() event.Events { // GetEventPlatformEvents grabs the event platform events from the queue and clears them. // Note that this works only if using the 'noop' event platform forwarder func (agg *BufferedAggregator) GetEventPlatformEvents() map[string][]*message.Message { - return agg.eventPlatformForwarder.Purge() + forwarder, found := agg.eventPlatformForwarder.Get() + if !found { + return nil + } + return forwarder.Purge() } func (agg *BufferedAggregator) sendEvents(start time.Time, events event.Events) { diff --git a/pkg/aggregator/aggregator_test.go b/pkg/aggregator/aggregator_test.go index 2e3f5dddc2682..a60e3055f2206 100644 --- a/pkg/aggregator/aggregator_test.go +++ b/pkg/aggregator/aggregator_test.go @@ -25,7 +25,7 @@ import ( taggerMock "github.com/DataDog/datadog-agent/comp/core/tagger/mock" "github.com/DataDog/datadog-agent/comp/core/tagger/types" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" orchestratorforwarder "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator" haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" diff --git a/pkg/aggregator/check_sampler_bench_test.go b/pkg/aggregator/check_sampler_bench_test.go index 9a562434c955b..1e3f5eae3fd8f 100644 --- a/pkg/aggregator/check_sampler_bench_test.go +++ b/pkg/aggregator/check_sampler_bench_test.go @@ -15,7 +15,8 @@ import ( log "github.com/DataDog/datadog-agent/comp/core/log/def" "github.com/DataDog/datadog-agent/comp/core/tagger/mock" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - eventplatformock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/mock" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" //nolint:revive // TODO(AML) Fix revive linter @@ -51,8 +52,9 @@ func benchmarkAddBucket(bucketValue int64, b *testing.B) { options.DontStartForwarders = true sharedForwarder := forwarder.NewDefaultForwarder(pkgconfigsetup.Datadog(), deps.Log, forwarderOpts) orchestratorForwarder := optional.NewOption[defaultforwarder.Forwarder](defaultforwarder.NoopForwarder{}) + eventPlatformForwarder := optional.NewOptionPtr[eventplatform.Forwarder](eventplatformimpl.NewNoopEventPlatformForwarder(deps.Hostname)) haAgent := haagentmock.NewMockHaAgent() - demux := InitAndStartAgentDemultiplexer(deps.Log, sharedForwarder, &orchestratorForwarder, options, eventplatformock.NewMock(), haAgent, deps.Compressor, taggerComponent, "hostname") + demux := InitAndStartAgentDemultiplexer(deps.Log, sharedForwarder, &orchestratorForwarder, options, eventPlatformForwarder, haAgent, deps.Compressor, taggerComponent, "hostname") defer demux.Stop(true) checkSampler := newCheckSampler(1, true, true, 1000, tags.NewStore(true, "bench"), checkid.ID("hello:world:1234"), taggerComponent) diff --git a/pkg/aggregator/demultiplexer_agent.go b/pkg/aggregator/demultiplexer_agent.go index de52762a92294..a519383eea73e 100644 --- a/pkg/aggregator/demultiplexer_agent.go +++ b/pkg/aggregator/demultiplexer_agent.go @@ -15,7 +15,7 @@ import ( log "github.com/DataDog/datadog-agent/comp/core/log/def" tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" forwarder "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" orchestratorforwarder "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator" haagent "github.com/DataDog/datadog-agent/comp/haagent/def" compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" @@ -39,7 +39,7 @@ type DemultiplexerWithAggregator interface { // AggregateCheckSample adds check sample sent by a check from one of the collectors into a check sampler pipeline. AggregateCheckSample(sample metrics.MetricSample) Options() AgentDemultiplexerOptions - GetEventPlatformForwarder() eventplatform.Component + GetEventPlatformForwarder() (eventplatform.Forwarder, error) GetEventsAndServiceChecksChannels() (chan []*event.Event, chan []*servicecheck.ServiceCheck) DumpDogstatsdContexts(io.Writer) error } @@ -471,7 +471,7 @@ func (d *AgentDemultiplexer) GetEventsAndServiceChecksChannels() (chan []*event. } // GetEventPlatformForwarder returns underlying events and service checks channels. -func (d *AgentDemultiplexer) GetEventPlatformForwarder() eventplatform.Component { +func (d *AgentDemultiplexer) GetEventPlatformForwarder() (eventplatform.Forwarder, error) { return d.aggregator.GetEventPlatformForwarder() } diff --git a/pkg/aggregator/demultiplexer_agent_test.go b/pkg/aggregator/demultiplexer_agent_test.go index 079c80c2e2ebd..ce59d5ea8943f 100644 --- a/pkg/aggregator/demultiplexer_agent_test.go +++ b/pkg/aggregator/demultiplexer_agent_test.go @@ -19,8 +19,8 @@ import ( tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/core/tagger/mock" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" - eventplatformmock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx-mock" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" orchestratorforwarder "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator" "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" haagent "github.com/DataDog/datadog-agent/comp/haagent/def" @@ -170,7 +170,7 @@ func createDemultiplexerAgentTestDeps(t *testing.T) DemultiplexerAgentTestDeps { defaultforwarder.MockModule(), core.MockBundle(), orchestratorimpl.MockModule(), - eventplatformmock.MockModule(), + eventplatformimpl.MockModule(), haagentmock.Module(), compressionmock.MockModule(), fx.Provide(func() tagger.Component { return taggerComponent }), diff --git a/pkg/aggregator/demultiplexer_mock.go b/pkg/aggregator/demultiplexer_mock.go index 84108c6cd9b92..6d79e009338b3 100644 --- a/pkg/aggregator/demultiplexer_mock.go +++ b/pkg/aggregator/demultiplexer_mock.go @@ -14,7 +14,8 @@ import ( log "github.com/DataDog/datadog-agent/comp/core/log/def" nooptagger "github.com/DataDog/datadog-agent/comp/core/tagger/impl-noop" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - eventplatformock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/mock" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" haagent "github.com/DataDog/datadog-agent/comp/haagent/def" compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" "github.com/DataDog/datadog-agent/pkg/util/optional" @@ -33,5 +34,6 @@ type TestDeps struct { // InitAndStartAgentDemultiplexerForTest initializes an aggregator for tests. func InitAndStartAgentDemultiplexerForTest(deps TestDeps, options AgentDemultiplexerOptions, hostname string) *AgentDemultiplexer { orchestratorForwarder := optional.NewOption[defaultforwarder.Forwarder](defaultforwarder.NoopForwarder{}) - return InitAndStartAgentDemultiplexer(deps.Log, deps.SharedForwarder, &orchestratorForwarder, options, eventplatformock.NewMock(), deps.HaAgent, deps.Compressor, nooptagger.NewComponent(), hostname) + eventPlatformForwarder := optional.NewOptionPtr[eventplatform.Forwarder](eventplatformimpl.NewNoopEventPlatformForwarder(deps.Hostname)) + return InitAndStartAgentDemultiplexer(deps.Log, deps.SharedForwarder, &orchestratorForwarder, options, eventPlatformForwarder, deps.HaAgent, deps.Compressor, nooptagger.NewComponent(), hostname) } diff --git a/pkg/aggregator/demultiplexer_test.go b/pkg/aggregator/demultiplexer_test.go index 5173b61f3ef15..72ed3464eb346 100644 --- a/pkg/aggregator/demultiplexer_test.go +++ b/pkg/aggregator/demultiplexer_test.go @@ -16,8 +16,8 @@ import ( "github.com/DataDog/datadog-agent/comp/core" nooptagger "github.com/DataDog/datadog-agent/comp/core/tagger/impl-noop" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" - eventplatformfx "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" orchestratorForwarder "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator" orchestratorForwarderImpl "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" @@ -43,7 +43,7 @@ func TestDemuxIsSetAsGlobalInstance(t *testing.T) { require := require.New(t) opts := demuxTestOptions() - deps := createDemuxDeps(t, opts) + deps := createDemuxDeps(t, opts, eventplatformimpl.NewDefaultParams()) demux := deps.Demultiplexer require.NotNil(demux) @@ -59,12 +59,39 @@ func TestDemuxForwardersCreated(t *testing.T) { opts := demuxTestOptions() - deps := createDemuxDeps(t, opts) + deps := createDemuxDeps(t, opts, eventplatformimpl.NewDefaultParams()) demux := deps.Demultiplexer require.NotNil(demux) - require.NotNil(deps.EventPlatformFwd) - _, found := deps.OrchestratorFwd.Get() + _, found := deps.EventPlatformFwd.Get() + require.True(found) + _, found = deps.OrchestratorFwd.Get() + require.Equal(orchestratorForwarderSupport, found) + require.NotNil(deps.SharedForwarder) + demux.Stop(false) + + // options no event platform forwarder + + opts = demuxTestOptions() + deps = createDemuxDeps(t, opts, eventplatformimpl.Params{UseEventPlatformForwarder: false}) + demux = deps.Demultiplexer + require.NotNil(demux) + _, found = deps.EventPlatformFwd.Get() + require.False(found) + _, found = deps.OrchestratorFwd.Get() + require.Equal(orchestratorForwarderSupport, found) + require.NotNil(deps.SharedForwarder) + demux.Stop(false) + + // options noop event platform forwarder + + opts = demuxTestOptions() + deps = createDemuxDeps(t, opts, eventplatformimpl.Params{UseNoopEventPlatformForwarder: true}) + demux = deps.Demultiplexer + require.NotNil(demux) + _, found = deps.EventPlatformFwd.Get() + require.True(found) + _, found = deps.OrchestratorFwd.Get() require.Equal(orchestratorForwarderSupport, found) require.NotNil(deps.SharedForwarder) demux.Stop(false) @@ -87,10 +114,11 @@ func TestDemuxForwardersCreated(t *testing.T) { // needed feature above, we should have an orchestrator forwarder instantiated now opts = demuxTestOptions() - deps = createDemuxDeps(t, opts) + deps = createDemuxDeps(t, opts, eventplatformimpl.NewDefaultParams()) demux = deps.Demultiplexer require.NotNil(demux) - require.NotNil(deps.EventPlatformFwd) + _, found = deps.EventPlatformFwd.Get() + require.True(found) require.NotNil(deps.SharedForwarder) demux.Stop(false) @@ -98,10 +126,11 @@ func TestDemuxForwardersCreated(t *testing.T) { opts = demuxTestOptions() params := orchestratorForwarderImpl.NewDisabledParams() - deps = createDemuxDepsWithOrchestratorFwd(t, opts, params) + deps = createDemuxDepsWithOrchestratorFwd(t, opts, params, eventplatformimpl.NewDefaultParams()) demux = deps.Demultiplexer require.NotNil(demux) - require.NotNil(deps.EventPlatformFwd) + _, found = deps.EventPlatformFwd.Get() + require.True(found) _, found = deps.OrchestratorFwd.Get() require.False(found) require.NotNil(deps.SharedForwarder) @@ -111,10 +140,11 @@ func TestDemuxForwardersCreated(t *testing.T) { opts = demuxTestOptions() params = orchestratorForwarderImpl.NewNoopParams() - deps = createDemuxDepsWithOrchestratorFwd(t, opts, params) + deps = createDemuxDepsWithOrchestratorFwd(t, opts, params, eventplatformimpl.NewDefaultParams()) demux = deps.Demultiplexer require.NotNil(demux) - require.NotNil(deps.EventPlatformFwd) + _, found = deps.EventPlatformFwd.Get() + require.True(found) _, found = deps.OrchestratorFwd.Get() require.True(found) require.NotNil(deps.SharedForwarder) @@ -127,7 +157,7 @@ func TestDemuxSerializerCreated(t *testing.T) { // default options should have created all forwarders opts := demuxTestOptions() - deps := createDemuxDeps(t, opts) + deps := createDemuxDeps(t, opts, eventplatformimpl.NewDefaultParams()) demux := deps.Demultiplexer require.NotNil(demux) @@ -143,7 +173,7 @@ func TestDemuxFlushAggregatorToSerializer(t *testing.T) { opts := demuxTestOptions() opts.FlushInterval = time.Hour - deps := createDemuxDeps(t, opts) + deps := createDemuxDeps(t, opts, eventplatformimpl.NewDefaultParams()) demux := initAgentDemultiplexer(deps.Log, deps.SharedForwarder, deps.OrchestratorFwd, opts, deps.EventPlatformFwd, deps.HaAgent, deps.Compressor, nooptagger.NewComponent(), "") demux.Aggregator().tlmContainerTagsEnabled = false require.NotNil(demux) @@ -243,8 +273,8 @@ func TestGetDogStatsDWorkerAndPipelineCount(t *testing.T) { assert.Equal(4, pipelines) } -func createDemuxDeps(t *testing.T, opts AgentDemultiplexerOptions) aggregatorDeps { - return createDemuxDepsWithOrchestratorFwd(t, opts, orchestratorForwarderImpl.NewDefaultParams()) +func createDemuxDeps(t *testing.T, opts AgentDemultiplexerOptions, eventPlatformParams eventplatformimpl.Params) aggregatorDeps { + return createDemuxDepsWithOrchestratorFwd(t, opts, orchestratorForwarderImpl.NewDefaultParams(), eventPlatformParams) } type internalDemutiplexerDeps struct { @@ -258,12 +288,12 @@ func createDemuxDepsWithOrchestratorFwd( t *testing.T, opts AgentDemultiplexerOptions, orchestratorParams orchestratorForwarderImpl.Params, -) aggregatorDeps { + eventPlatformParams eventplatformimpl.Params) aggregatorDeps { modules := fx.Options( defaultforwarder.MockModule(), core.MockBundle(), orchestratorForwarderImpl.Module(orchestratorParams), - eventplatformfx.Module(), + eventplatformimpl.Module(eventPlatformParams), eventplatformreceiverimpl.Module(), compressionmock.MockModule(), haagentmock.Module(), diff --git a/pkg/aggregator/mocksender/mocksender.go b/pkg/aggregator/mocksender/mocksender.go index 340298442247f..d20e0a3d19081 100644 --- a/pkg/aggregator/mocksender/mocksender.go +++ b/pkg/aggregator/mocksender/mocksender.go @@ -12,10 +12,13 @@ import ( "github.com/stretchr/testify/mock" + "github.com/DataDog/datadog-agent/comp/core/hostname/hostnameimpl" logimpl "github.com/DataDog/datadog-agent/comp/core/log/impl" - nooptagger "github.com/DataDog/datadog-agent/comp/core/tagger/impl-noop" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - eventplatformock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/mock" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" + + nooptagger "github.com/DataDog/datadog-agent/comp/core/tagger/impl-noop" haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" "github.com/DataDog/datadog-agent/pkg/aggregator" @@ -39,8 +42,9 @@ func CreateDefaultDemultiplexer() *aggregator.AgentDemultiplexer { log := logimpl.NewTemporaryLoggerWithoutInit() sharedForwarder := defaultforwarder.NewDefaultForwarder(pkgconfigsetup.Datadog(), log, defaultforwarder.NewOptions(pkgconfigsetup.Datadog(), log, nil)) orchestratorForwarder := optional.NewOption[defaultforwarder.Forwarder](defaultforwarder.NoopForwarder{}) + eventPlatformForwarder := optional.NewOptionPtr[eventplatform.Forwarder](eventplatformimpl.NewNoopEventPlatformForwarder(hostnameimpl.NewHostnameService())) taggerComponent := nooptagger.NewComponent() - return aggregator.InitAndStartAgentDemultiplexer(log, sharedForwarder, &orchestratorForwarder, opts, eventplatformock.NewMock(), haagentmock.NewMockHaAgent(), compressionmock.NewMockCompressor(), taggerComponent, "") + return aggregator.InitAndStartAgentDemultiplexer(log, sharedForwarder, &orchestratorForwarder, opts, eventPlatformForwarder, haagentmock.NewMockHaAgent(), compressionmock.NewMockCompressor(), taggerComponent, "") } // NewMockSenderWithSenderManager returns a functional mocked Sender for testing diff --git a/pkg/aggregator/sender_test.go b/pkg/aggregator/sender_test.go index ae791c41b02d1..994cc96969d1c 100644 --- a/pkg/aggregator/sender_test.go +++ b/pkg/aggregator/sender_test.go @@ -21,7 +21,8 @@ import ( log "github.com/DataDog/datadog-agent/comp/core/log/def" nooptagger "github.com/DataDog/datadog-agent/comp/core/tagger/impl-noop" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - eventplatformock "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/mock" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" checkid "github.com/DataDog/datadog-agent/pkg/collector/check/id" @@ -53,11 +54,12 @@ func initSender(id checkid.ID, defaultHostname string) (s senderWithChans) { return s } -func testDemux(log log.Component) *AgentDemultiplexer { +func testDemux(log log.Component, hostname hostname.Component) *AgentDemultiplexer { opts := DefaultAgentDemultiplexerOptions() opts.DontStartForwarders = true orchestratorForwarder := optional.NewOption[defaultforwarder.Forwarder](defaultforwarder.NoopForwarder{}) - demux := initAgentDemultiplexer(log, NewForwarderTest(log), &orchestratorForwarder, opts, eventplatformock.NewMock(), haagentmock.NewMockHaAgent(), compressionmock.NewMockCompressor(), nooptagger.NewComponent(), defaultHostname) + eventPlatformForwarder := optional.NewOptionPtr[eventplatform.Forwarder](eventplatformimpl.NewNoopEventPlatformForwarder(hostname)) + demux := initAgentDemultiplexer(log, NewForwarderTest(log), &orchestratorForwarder, opts, eventPlatformForwarder, haagentmock.NewMockHaAgent(), compressionmock.NewMockCompressor(), nooptagger.NewComponent(), defaultHostname) return demux } @@ -84,7 +86,7 @@ func TestGetDefaultSenderReturnsSameSender(t *testing.T) { // this test not using anything global // - deps := fxutil.Test[SenderTestDeps](t, core.MockBundle()) - demux := testDemux(deps.Log) + demux := testDemux(deps.Log, deps.Hostname) aggregatorInstance := demux.Aggregator() go aggregatorInstance.run() defer aggregatorInstance.Stop() @@ -104,7 +106,7 @@ func TestGetSenderWithDifferentIDsReturnsDifferentCheckSamplers(t *testing.T) { // this test not using anything global // - deps := fxutil.Test[SenderTestDeps](t, core.MockBundle()) - demux := testDemux(deps.Log) + demux := testDemux(deps.Log, deps.Hostname) aggregatorInstance := demux.Aggregator() go aggregatorInstance.run() @@ -134,7 +136,7 @@ func TestGetSenderWithSameIDsReturnsSameSender(t *testing.T) { // - deps := fxutil.Test[SenderTestDeps](t, core.MockBundle()) - demux := testDemux(deps.Log) + demux := testDemux(deps.Log, deps.Hostname) aggregatorInstance := demux.Aggregator() go aggregatorInstance.run() defer aggregatorInstance.Stop() @@ -157,7 +159,7 @@ func TestDestroySender(t *testing.T) { // - deps := fxutil.Test[SenderTestDeps](t, core.MockBundle()) - demux := testDemux(deps.Log) + demux := testDemux(deps.Log, deps.Hostname) aggregatorInstance := demux.Aggregator() go aggregatorInstance.run() defer aggregatorInstance.Stop() @@ -187,7 +189,7 @@ func TestGetAndSetSender(t *testing.T) { // - deps := fxutil.Test[SenderTestDeps](t, core.MockBundle()) - demux := testDemux(deps.Log) + demux := testDemux(deps.Log, deps.Hostname) itemChan := make(chan senderItem, 10) serviceCheckChan := make(chan servicecheck.ServiceCheck, 10) @@ -210,7 +212,7 @@ func TestGetSenderDefaultHostname(t *testing.T) { // - deps := fxutil.Test[SenderTestDeps](t, core.MockBundle()) - demux := testDemux(deps.Log) + demux := testDemux(deps.Log, deps.Hostname) aggregatorInstance := demux.Aggregator() go aggregatorInstance.run() diff --git a/pkg/cli/subcommands/check/command.go b/pkg/cli/subcommands/check/command.go index 8c98dcd853086..d914682340504 100644 --- a/pkg/cli/subcommands/check/command.go +++ b/pkg/cli/subcommands/check/command.go @@ -58,7 +58,7 @@ import ( "github.com/DataDog/datadog-agent/comp/dogstatsd/server" "github.com/DataDog/datadog-agent/comp/forwarder" "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" - eventplatformnoopfx "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/fx-noop" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl" orchestratorForwarderImpl "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorimpl" haagentfx "github.com/DataDog/datadog-agent/comp/haagent/fx" @@ -155,6 +155,9 @@ func MakeCommand(globalParamsGetter func() GlobalParams) *cobra.Command { cliParams.cmd = cmd cliParams.args = args + eventplatforParams := eventplatformimpl.NewDefaultParams() + eventplatforParams.UseNoopEventPlatformForwarder = true + disableCmdPort() return fxutil.OneShot(run, fx.Supply(cliParams), @@ -184,7 +187,7 @@ func MakeCommand(globalParamsGetter func() GlobalParams) *cobra.Command { // Initializing the aggregator with a flush interval of 0 (to disable the flush goroutines) demultiplexerimpl.Module(demultiplexerimpl.NewDefaultParams(demultiplexerimpl.WithFlushInterval(0))), orchestratorForwarderImpl.Module(orchestratorForwarderImpl.NewNoopParams()), - eventplatformnoopfx.Module(), + eventplatformimpl.Module(eventplatforParams), eventplatformreceiverimpl.Module(), fx.Supply( status.Params{ diff --git a/pkg/collector/corechecks/containerimage/processor.go b/pkg/collector/corechecks/containerimage/processor.go index d1f9161975fd9..d34bd492b1cb1 100644 --- a/pkg/collector/corechecks/containerimage/processor.go +++ b/pkg/collector/corechecks/containerimage/processor.go @@ -13,7 +13,7 @@ import ( tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/core/tagger/types" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" queue "github.com/DataDog/datadog-agent/pkg/util/aggregatingqueue" "github.com/DataDog/datadog-agent/pkg/util/hostname" diff --git a/pkg/collector/corechecks/containerimage/processor_test.go b/pkg/collector/corechecks/containerimage/processor_test.go index ec4ac078d8a26..b6c89960d30fc 100644 --- a/pkg/collector/corechecks/containerimage/processor_test.go +++ b/pkg/collector/corechecks/containerimage/processor_test.go @@ -20,7 +20,7 @@ import ( taggerMock "github.com/DataDog/datadog-agent/comp/core/tagger/mock" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/pkg/aggregator/mocksender" "github.com/DataDog/datadog-agent/pkg/util/hostname" "github.com/DataDog/datadog-agent/pkg/util/pointer" diff --git a/pkg/collector/corechecks/containerlifecycle/processor.go b/pkg/collector/corechecks/containerlifecycle/processor.go index 113819babbf2d..2f514329c091c 100644 --- a/pkg/collector/corechecks/containerlifecycle/processor.go +++ b/pkg/collector/corechecks/containerlifecycle/processor.go @@ -13,7 +13,7 @@ import ( "github.com/DataDog/agent-payload/v5/contlcycle" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" types "github.com/DataDog/datadog-agent/pkg/containerlifecycle" "github.com/DataDog/datadog-agent/pkg/util/log" diff --git a/pkg/collector/corechecks/network-devices/cisco-sdwan/report/metadata.go b/pkg/collector/corechecks/network-devices/cisco-sdwan/report/metadata.go index bb86c815ff918..4de17c9626f00 100644 --- a/pkg/collector/corechecks/network-devices/cisco-sdwan/report/metadata.go +++ b/pkg/collector/corechecks/network-devices/cisco-sdwan/report/metadata.go @@ -9,7 +9,7 @@ import ( "encoding/json" "time" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" devicemetadata "github.com/DataDog/datadog-agent/pkg/networkdevice/metadata" "github.com/DataDog/datadog-agent/pkg/util/log" ) diff --git a/pkg/collector/corechecks/networkpath/networkpath.go b/pkg/collector/corechecks/networkpath/networkpath.go index 3b48ef65235e0..28bef69f2bbca 100644 --- a/pkg/collector/corechecks/networkpath/networkpath.go +++ b/pkg/collector/corechecks/networkpath/networkpath.go @@ -15,7 +15,7 @@ import ( "github.com/DataDog/datadog-agent/comp/core/autodiscovery/integration" telemetryComp "github.com/DataDog/datadog-agent/comp/core/telemetry" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" "github.com/DataDog/datadog-agent/pkg/collector/check" core "github.com/DataDog/datadog-agent/pkg/collector/corechecks" diff --git a/pkg/collector/corechecks/sbom/processor.go b/pkg/collector/corechecks/sbom/processor.go index b612aebbc6d52..77c1e54a796e4 100644 --- a/pkg/collector/corechecks/sbom/processor.go +++ b/pkg/collector/corechecks/sbom/processor.go @@ -16,7 +16,7 @@ import ( tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/core/tagger/types" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" diff --git a/pkg/collector/corechecks/sbom/processor_test.go b/pkg/collector/corechecks/sbom/processor_test.go index bea2b359d42c4..4fcc1c3ba770e 100644 --- a/pkg/collector/corechecks/sbom/processor_test.go +++ b/pkg/collector/corechecks/sbom/processor_test.go @@ -31,7 +31,7 @@ import ( workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" workloadmetafxmock "github.com/DataDog/datadog-agent/comp/core/workloadmeta/fx-mock" workloadmetamock "github.com/DataDog/datadog-agent/comp/core/workloadmeta/mock" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/pkg/aggregator/mocksender" configmock "github.com/DataDog/datadog-agent/pkg/config/mock" sbomscanner "github.com/DataDog/datadog-agent/pkg/sbom/scanner" diff --git a/pkg/collector/corechecks/servicediscovery/events.go b/pkg/collector/corechecks/servicediscovery/events.go index b5e136f8cf23a..5cba3f89243ac 100644 --- a/pkg/collector/corechecks/servicediscovery/events.go +++ b/pkg/collector/corechecks/servicediscovery/events.go @@ -11,7 +11,7 @@ import ( "github.com/DataDog/datadog-agent/comp/core/hostname" "github.com/DataDog/datadog-agent/comp/core/hostname/hostnameimpl" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/util/log" diff --git a/pkg/collector/corechecks/snmp/internal/report/report_device_metadata.go b/pkg/collector/corechecks/snmp/internal/report/report_device_metadata.go index 76d6f55117c26..ff8d90912efb3 100644 --- a/pkg/collector/corechecks/snmp/internal/report/report_device_metadata.go +++ b/pkg/collector/corechecks/snmp/internal/report/report_device_metadata.go @@ -13,7 +13,7 @@ import ( "strings" "time" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/def" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" "github.com/DataDog/datadog-agent/pkg/util" "github.com/DataDog/datadog-agent/pkg/util/log" diff --git a/pkg/diagnose/runner.go b/pkg/diagnose/runner.go index 303a520ddde4b..5d7f2ee88d1db 100644 --- a/pkg/diagnose/runner.go +++ b/pkg/diagnose/runner.go @@ -20,7 +20,7 @@ import ( "github.com/DataDog/datadog-agent/comp/core/secrets" tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" - eventplatform "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/impl" + "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform/eventplatformimpl" integrations "github.com/DataDog/datadog-agent/comp/logs/integrations/def" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" "github.com/DataDog/datadog-agent/pkg/api/util" @@ -524,7 +524,7 @@ func RegisterConnectivityAutodiscovery(catalog *diagnosis.Catalog) { // RegisterConnectivityDatadogEventPlatform registers the connectivity-datadog-event-platform diagnose suite. func RegisterConnectivityDatadogEventPlatform(catalog *diagnosis.Catalog) { - catalog.Register("connectivity-datadog-event-platform", eventplatform.Diagnose) + catalog.Register("connectivity-datadog-event-platform", eventplatformimpl.Diagnose) } // RegisterPortConflict registers the port-conflict diagnose suite. diff --git a/pkg/serverless/invocationlifecycle/lifecycle_test.go b/pkg/serverless/invocationlifecycle/lifecycle_test.go index 7c4e90a02a7ab..3eefd8dc51bbd 100644 --- a/pkg/serverless/invocationlifecycle/lifecycle_test.go +++ b/pkg/serverless/invocationlifecycle/lifecycle_test.go @@ -15,6 +15,7 @@ import ( "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer/demultiplexerimpl" + "github.com/DataDog/datadog-agent/comp/core/hostname/hostnameimpl" log "github.com/DataDog/datadog-agent/comp/core/log/def" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" @@ -1382,5 +1383,5 @@ func getEventFromFile(filename string) []byte { } func createDemultiplexer(t *testing.T) demultiplexer.FakeSamplerMock { - return fxutil.Test[demultiplexer.FakeSamplerMock](t, fx.Provide(func() log.Component { return logmock.New(t) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule()) + return fxutil.Test[demultiplexer.FakeSamplerMock](t, fx.Provide(func() log.Component { return logmock.New(t) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule(), hostnameimpl.MockModule()) } diff --git a/pkg/serverless/logs/logs_test.go b/pkg/serverless/logs/logs_test.go index 95b14e1f8d271..6a8f0d30d3cb0 100644 --- a/pkg/serverless/logs/logs_test.go +++ b/pkg/serverless/logs/logs_test.go @@ -22,6 +22,7 @@ import ( "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer/demultiplexerimpl" + "github.com/DataDog/datadog-agent/comp/core/hostname/hostnameimpl" log "github.com/DataDog/datadog-agent/comp/core/log/def" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" "github.com/DataDog/datadog-agent/comp/logs/agent/config" @@ -1472,5 +1473,5 @@ func TestMultipleStartLogCollection(t *testing.T) { } func createDemultiplexer(t *testing.T) demultiplexer.FakeSamplerMock { - return fxutil.Test[demultiplexer.FakeSamplerMock](t, fx.Provide(func() log.Component { return logmock.New(t) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule()) + return fxutil.Test[demultiplexer.FakeSamplerMock](t, fx.Provide(func() log.Component { return logmock.New(t) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule(), hostnameimpl.MockModule()) } diff --git a/pkg/serverless/metrics/enhanced_metrics_test.go b/pkg/serverless/metrics/enhanced_metrics_test.go index 4de32deeef01d..ea6619861f726 100644 --- a/pkg/serverless/metrics/enhanced_metrics_test.go +++ b/pkg/serverless/metrics/enhanced_metrics_test.go @@ -17,6 +17,7 @@ import ( "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer/demultiplexerimpl" + "github.com/DataDog/datadog-agent/comp/core/hostname/hostnameimpl" log "github.com/DataDog/datadog-agent/comp/core/log/def" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" "github.com/DataDog/datadog-agent/pkg/metrics" @@ -833,5 +834,5 @@ func TestSendFailoverReasonMetric(t *testing.T) { } func createDemultiplexer(t *testing.T) demultiplexer.FakeSamplerMock { - return fxutil.Test[demultiplexer.FakeSamplerMock](t, fx.Provide(func() log.Component { return logmock.New(t) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule()) + return fxutil.Test[demultiplexer.FakeSamplerMock](t, fx.Provide(func() log.Component { return logmock.New(t) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule(), hostnameimpl.MockModule()) } diff --git a/tasks/components.py b/tasks/components.py index f80c62b00573a..c534d63c56b83 100644 --- a/tasks/components.py +++ b/tasks/components.py @@ -109,6 +109,7 @@ def has_type_component(content) -> bool: 'comp/dogstatsd/serverDebug/serverdebugimpl', 'comp/dogstatsd/status/statusimpl', 'comp/etw/impl', + 'comp/forwarder/eventplatform/eventplatformimpl', 'comp/forwarder/eventplatformreceiver/eventplatformreceiverimpl', 'comp/forwarder/orchestrator/orchestratorimpl', 'comp/languagedetection/client/clientimpl', From 83246bddb980c18a7889cf12ebcd520085a55c70 Mon Sep 17 00:00:00 2001 From: Marethyu <45374460+Pythyu@users.noreply.github.com> Date: Thu, 28 Nov 2024 15:00:25 +0100 Subject: [PATCH 131/439] Clean useless python 2 home paths (#31486) Co-authored-by: Alex Lopez --- README.md | 4 +--- omnibus/config/software/datadog-agent.rb | 8 ++------ tasks/agent.py | 2 -- tasks/gotest.py | 2 -- tasks/libs/common/utils.py | 3 --- tasks/winbuildscripts/unittests.ps1 | 2 +- 6 files changed, 4 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index ab137bbe48339..8e93e1988c48e 100644 --- a/README.md +++ b/README.md @@ -28,8 +28,7 @@ To build the Agent you need: **Note:** you may want to use a python virtual environment to avoid polluting your system-wide python environment with the agent build/dev dependencies. You can create a virtual environment using `virtualenv` and then use the `invoke agent.build` - parameters `--python-home-2=` and/or `--python-home-3=` - (depending on the python versions you are using) to use the virtual environment's + parameters `--python-home-3=` to use the virtual environment's interpreter and libraries. By default, this environment is only used for dev dependencies listed in `requirements.txt`. @@ -55,7 +54,6 @@ To start working on the Agent, you can build the `main` branch: virtualenvs): invoke agent.build \ - --python-home-2=$GOPATH/src/github.com/DataDog/datadog-agent/venv2 \ --python-home-3=$GOPATH/src/github.com/DataDog/datadog-agent/venv3 Running `invoke agent.build`: diff --git a/omnibus/config/software/datadog-agent.rb b/omnibus/config/software/datadog-agent.rb index bfd08c4dd9a20..cabf4557c735c 100644 --- a/omnibus/config/software/datadog-agent.rb +++ b/omnibus/config/software/datadog-agent.rb @@ -66,10 +66,6 @@ env["GOROOT"] = msgoroot env["PATH"] = "#{msgoroot}/bin:#{env['PATH']}" end - default_install_dir = "/opt/datadog-agent" - if Omnibus::Config.host_distribution == "ociru" - default_install_dir = "#{install_dir}" - end # we assume the go deps are already installed before running omnibus if windows_target? @@ -92,10 +88,10 @@ if linux_target? include_sds = "--include-sds" # we only support SDS on Linux targets for now end - command "inv -e agent.build --exclude-rtloader #{include_sds} --major-version #{major_version_arg} --rebuild --no-development --install-path=#{install_dir} --embedded-path=#{default_install_dir}/embedded --python-home-2=#{default_install_dir}/embedded --python-home-3=#{default_install_dir}/embedded --flavor #{flavor_arg}", env: env + command "inv -e agent.build --exclude-rtloader #{include_sds} --major-version #{major_version_arg} --rebuild --no-development --install-path=#{install_dir} --embedded-path=#{install_dir}/embedded --flavor #{flavor_arg}", env: env if heroku_target? - command "inv -e agent.build --exclude-rtloader --major-version #{major_version_arg} --rebuild --no-development --install-path=#{install_dir} --embedded-path=#{install_dir}/embedded --python-home-2=#{install_dir}/embedded --python-home-3=#{install_dir}/embedded --flavor #{flavor_arg} --agent-bin=bin/agent/core-agent", env: env + command "inv -e agent.build --exclude-rtloader --major-version #{major_version_arg} --rebuild --no-development --install-path=#{install_dir} --embedded-path=#{install_dir}/embedded --flavor #{flavor_arg} --agent-bin=bin/agent/core-agent", env: env end end diff --git a/tasks/agent.py b/tasks/agent.py index 50d88463e274e..190c7b04c0916 100644 --- a/tasks/agent.py +++ b/tasks/agent.py @@ -127,7 +127,6 @@ def build( install_path=None, embedded_path=None, rtloader_root=None, - python_home_2=None, python_home_3=None, major_version='7', exclude_rtloader=False, @@ -164,7 +163,6 @@ def build( install_path=install_path, embedded_path=embedded_path, rtloader_root=rtloader_root, - python_home_2=python_home_2, python_home_3=python_home_3, major_version=major_version, ) diff --git a/tasks/gotest.py b/tasks/gotest.py index 3ef5ebc9de905..e9403679ea40a 100644 --- a/tasks/gotest.py +++ b/tasks/gotest.py @@ -255,7 +255,6 @@ def test( race=False, profile=False, rtloader_root=None, - python_home_2=None, python_home_3=None, cpus=None, major_version='7', @@ -303,7 +302,6 @@ def test( ldflags, gcflags, env = get_build_flags( ctx, rtloader_root=rtloader_root, - python_home_2=python_home_2, python_home_3=python_home_3, major_version=major_version, ) diff --git a/tasks/libs/common/utils.py b/tasks/libs/common/utils.py index 44758ae35b543..c6a024b60c0ae 100644 --- a/tasks/libs/common/utils.py +++ b/tasks/libs/common/utils.py @@ -203,7 +203,6 @@ def get_build_flags( run_path=None, embedded_path=None, rtloader_root=None, - python_home_2=None, python_home_3=None, major_version='7', headless_mode=False, @@ -243,8 +242,6 @@ def get_build_flags( ldflags += f"-X {REPO_PATH}/pkg/config/setup.defaultRunPath={run_path} " # setting python homes in the code - if python_home_2: - ldflags += f"-X {REPO_PATH}/pkg/collector/python.pythonHome2={python_home_2} " if python_home_3: ldflags += f"-X {REPO_PATH}/pkg/collector/python.pythonHome3={python_home_3} " diff --git a/tasks/winbuildscripts/unittests.ps1 b/tasks/winbuildscripts/unittests.ps1 index 5464db3dc228c..1b0f5e18ed438 100644 --- a/tasks/winbuildscripts/unittests.ps1 +++ b/tasks/winbuildscripts/unittests.ps1 @@ -54,7 +54,7 @@ if($err -ne 0){ Write-Host -ForegroundColor Red "Agent build failed $err" [Environment]::Exit($err) } -& inv -e test --junit-tar="$Env:JUNIT_TAR" --race --profile --rerun-fails=2 --coverage --cpus 8 --python-home-2=$Env:Python2_ROOT_DIR --python-home-3=$Env:Python3_ROOT_DIR --save-result-json C:\mnt\$test_output_file $Env:EXTRA_OPTS --build-stdlib $TEST_WASHER_FLAG +& inv -e test --junit-tar="$Env:JUNIT_TAR" --race --profile --rerun-fails=2 --coverage --cpus 8 --python-home-3=$Env:Python3_ROOT_DIR --save-result-json C:\mnt\$test_output_file $Env:EXTRA_OPTS --build-stdlib $TEST_WASHER_FLAG If ($LASTEXITCODE -ne "0") { exit $LASTEXITCODE } From a16fd6918eca7775376c9f951d89a735db9de207 Mon Sep 17 00:00:00 2001 From: Guillaume Pagnoux Date: Thu, 28 Nov 2024 15:29:46 +0100 Subject: [PATCH 132/439] USM: enable Go TLS monitoring by default (#31064) --- cmd/system-probe/config/adjust_usm.go | 1 + .../inventoryagentimpl/inventoryagent_test.go | 2 +- pkg/network/config/config_test.go | 37 +++++++++++-------- pkg/network/usm/kafka_monitor_test.go | 7 ++-- pkg/network/usm/monitor_test.go | 1 + pkg/network/usm/monitor_tls_test.go | 4 ++ .../usm/tests/tracer_usm_linux_test.go | 1 + pkg/network/usm/usm_http2_monitor_test.go | 1 + ...ble-gotls-by-default-f9c4fe517d075bcc.yaml | 6 +++ 9 files changed, 40 insertions(+), 20 deletions(-) create mode 100644 releasenotes/notes/enable-gotls-by-default-f9c4fe517d075bcc.yaml diff --git a/cmd/system-probe/config/adjust_usm.go b/cmd/system-probe/config/adjust_usm.go index 4241fa6ccbab9..b3c1bcf93f415 100644 --- a/cmd/system-probe/config/adjust_usm.go +++ b/cmd/system-probe/config/adjust_usm.go @@ -30,6 +30,7 @@ func adjustUSM(cfg model.Config) { deprecateBool(cfg, netNS("enable_http_monitoring"), smNS("enable_http_monitoring")) deprecateBool(cfg, netNS("enable_https_monitoring"), smNS("tls", "native", "enabled")) deprecateBool(cfg, smNS("enable_go_tls_support"), smNS("tls", "go", "enabled")) + applyDefault(cfg, smNS("tls", "go", "enabled"), true) deprecateGeneric(cfg, netNS("http_replace_rules"), smNS("http_replace_rules")) deprecateInt64(cfg, netNS("max_tracked_http_connections"), smNS("max_tracked_http_connections")) applyDefault(cfg, smNS("max_tracked_http_connections"), 1024) diff --git a/comp/metadata/inventoryagent/inventoryagentimpl/inventoryagent_test.go b/comp/metadata/inventoryagent/inventoryagentimpl/inventoryagent_test.go index 10eb7430cf3bd..281e87baba7e5 100644 --- a/comp/metadata/inventoryagent/inventoryagentimpl/inventoryagent_test.go +++ b/comp/metadata/inventoryagent/inventoryagentimpl/inventoryagent_test.go @@ -491,7 +491,7 @@ func TestFetchSystemProbeAgent(t *testing.T) { assert.False(t, ia.data["feature_usm_redis_enabled"].(bool)) assert.False(t, ia.data["feature_usm_http2_enabled"].(bool)) assert.True(t, ia.data["feature_usm_istio_enabled"].(bool)) - assert.False(t, ia.data["feature_usm_go_tls_enabled"].(bool)) + assert.True(t, ia.data["feature_usm_go_tls_enabled"].(bool)) assert.False(t, ia.data["feature_discovery_enabled"].(bool)) assert.False(t, ia.data["feature_tcp_queue_length_enabled"].(bool)) assert.False(t, ia.data["feature_oom_kill_enabled"].(bool)) diff --git a/pkg/network/config/config_test.go b/pkg/network/config/config_test.go index f325986082851..791cd0f872d63 100644 --- a/pkg/network/config/config_test.go +++ b/pkg/network/config/config_test.go @@ -1464,34 +1464,34 @@ func TestUSMTLSNativeEnabled(t *testing.T) { func TestUSMTLSGoEnabled(t *testing.T) { t.Run("via deprecated YAML", func(t *testing.T) { mockSystemProbe := mock.NewSystemProbe(t) - mockSystemProbe.SetWithoutSource("service_monitoring_config.enable_go_tls_support", true) + mockSystemProbe.SetWithoutSource("service_monitoring_config.enable_go_tls_support", false) cfg := New() - require.True(t, cfg.EnableGoTLSSupport) + require.False(t, cfg.EnableGoTLSSupport) }) t.Run("via deprecated ENV variable", func(t *testing.T) { mock.NewSystemProbe(t) - t.Setenv("DD_SERVICE_MONITORING_CONFIG_ENABLE_GO_TLS_SUPPORT", "true") + t.Setenv("DD_SERVICE_MONITORING_CONFIG_ENABLE_GO_TLS_SUPPORT", "false") cfg := New() - require.True(t, cfg.EnableGoTLSSupport) + require.False(t, cfg.EnableGoTLSSupport) }) t.Run("via YAML", func(t *testing.T) { mockSystemProbe := mock.NewSystemProbe(t) - mockSystemProbe.SetWithoutSource("service_monitoring_config.tls.go.enabled", true) + mockSystemProbe.SetWithoutSource("service_monitoring_config.tls.go.enabled", false) cfg := New() - require.True(t, cfg.EnableGoTLSSupport) + require.False(t, cfg.EnableGoTLSSupport) }) t.Run("via ENV variable", func(t *testing.T) { mock.NewSystemProbe(t) - t.Setenv("DD_SERVICE_MONITORING_CONFIG_TLS_GO_ENABLED", "true") + t.Setenv("DD_SERVICE_MONITORING_CONFIG_TLS_GO_ENABLED", "false") cfg := New() - require.True(t, cfg.EnableGoTLSSupport) + require.False(t, cfg.EnableGoTLSSupport) }) t.Run("Deprecated is enabled, new is disabled", func(t *testing.T) { @@ -1512,22 +1512,29 @@ func TestUSMTLSGoEnabled(t *testing.T) { require.True(t, cfg.EnableGoTLSSupport) }) - t.Run("Both enabled", func(t *testing.T) { + t.Run("Both disabled", func(t *testing.T) { mock.NewSystemProbe(t) - t.Setenv("DD_SERVICE_MONITORING_CONFIG_ENABLE_GO_TLS_SUPPORT", "true") - t.Setenv("DD_SERVICE_MONITORING_CONFIG_TLS_GO_ENABLED", "true") + t.Setenv("DD_SERVICE_MONITORING_CONFIG_ENABLE_GO_TLS_SUPPORT", "false") + t.Setenv("DD_SERVICE_MONITORING_CONFIG_TLS_GO_ENABLED", "false") cfg := New() - require.True(t, cfg.EnableGoTLSSupport) + require.False(t, cfg.EnableGoTLSSupport) }) - t.Run("Not enabled", func(t *testing.T) { - mock.NewSystemProbe(t) + t.Run("Deprecated is disabled takes precedence over default", func(t *testing.T) { + mockSystemProbe := mock.NewSystemProbe(t) + mockSystemProbe.SetWithoutSource("service_monitoring_config.enable_go_tls_support", false) cfg := New() - // Default value. require.False(t, cfg.EnableGoTLSSupport) }) + + t.Run("Enabled by default", func(t *testing.T) { + mock.NewSystemProbe(t) + cfg := New() + + require.True(t, cfg.EnableGoTLSSupport) + }) } func TestUSMTLSGoExcludeSelf(t *testing.T) { diff --git a/pkg/network/usm/kafka_monitor_test.go b/pkg/network/usm/kafka_monitor_test.go index c9fd9f5ca3776..52177ad873c24 100644 --- a/pkg/network/usm/kafka_monitor_test.go +++ b/pkg/network/usm/kafka_monitor_test.go @@ -1622,10 +1622,8 @@ func getDefaultTestConfiguration(tls bool) *config.Config { cfg := config.New() cfg.EnableKafkaMonitoring = true cfg.MaxTrackedConnections = 1000 - if tls { - cfg.EnableGoTLSSupport = true - cfg.GoTLSExcludeSelf = true - } + cfg.EnableGoTLSSupport = tls + cfg.GoTLSExcludeSelf = tls return cfg } @@ -1727,6 +1725,7 @@ func TestLoadKafkaBinary(t *testing.T) { func loadKafkaBinary(t *testing.T, debug bool) { cfg := config.New() // We don't have a way of enabling kafka without http at the moment + cfg.EnableGoTLSSupport = false cfg.EnableKafkaMonitoring = true cfg.MaxTrackedConnections = 1000 cfg.BPFDebug = debug diff --git a/pkg/network/usm/monitor_test.go b/pkg/network/usm/monitor_test.go index f78913db23d6b..014511d786ad6 100644 --- a/pkg/network/usm/monitor_test.go +++ b/pkg/network/usm/monitor_test.go @@ -81,6 +81,7 @@ func TestMonitorProtocolFail(t *testing.T) { patchProtocolMock(t, tt.spec) cfg := config.New() + cfg.EnableGoTLSSupport = false cfg.EnableHTTPMonitoring = true cfg.EnableIstioMonitoring = false diff --git a/pkg/network/usm/monitor_tls_test.go b/pkg/network/usm/monitor_tls_test.go index daadd6ca3e3a2..4a609e0ac9a30 100644 --- a/pkg/network/usm/monitor_tls_test.go +++ b/pkg/network/usm/monitor_tls_test.go @@ -69,6 +69,7 @@ func (s *tlsSuite) TestHTTPSViaLibraryIntegration() { t := s.T() cfg := config.New() + cfg.EnableGoTLSSupport = false cfg.EnableHTTPMonitoring = true cfg.EnableNativeTLSMonitoring = true /* enable protocol classification : TLS */ @@ -284,6 +285,7 @@ func (s *tlsSuite) TestOpenSSLVersions() { t := s.T() cfg := config.New() + cfg.EnableGoTLSSupport = false cfg.EnableNativeTLSMonitoring = true cfg.EnableHTTPMonitoring = true usmMonitor := setupUSMTLSMonitor(t, cfg) @@ -343,6 +345,7 @@ func (s *tlsSuite) TestOpenSSLVersionsSlowStart() { t := s.T() cfg := config.New() + cfg.EnableGoTLSSupport = false cfg.EnableNativeTLSMonitoring = true cfg.EnableHTTPMonitoring = true @@ -902,6 +905,7 @@ func (s *tlsSuite) TestNodeJSTLS() { require.NoError(t, err) cfg := config.New() + cfg.EnableGoTLSSupport = false cfg.EnableHTTPMonitoring = true cfg.EnableNodeJSMonitoring = true diff --git a/pkg/network/usm/tests/tracer_usm_linux_test.go b/pkg/network/usm/tests/tracer_usm_linux_test.go index a3186d6a8d883..551bf8e9650a7 100644 --- a/pkg/network/usm/tests/tracer_usm_linux_test.go +++ b/pkg/network/usm/tests/tracer_usm_linux_test.go @@ -299,6 +299,7 @@ func (s *USMSuite) TestIgnoreTLSClassificationIfApplicationProtocolWasDetected() t := s.T() cfg := tracertestutil.Config() cfg.ServiceMonitoringEnabled = true + cfg.EnableGoTLSSupport = false // USM cannot be enabled without a protocol. cfg.EnableHTTPMonitoring = true cfg.ProtocolClassificationEnabled = true diff --git a/pkg/network/usm/usm_http2_monitor_test.go b/pkg/network/usm/usm_http2_monitor_test.go index 17b7b29afbb51..2e92c2647989b 100644 --- a/pkg/network/usm/usm_http2_monitor_test.go +++ b/pkg/network/usm/usm_http2_monitor_test.go @@ -1511,6 +1511,7 @@ func (s *usmHTTP2Suite) TestRawHuffmanEncoding() { func TestHTTP2InFlightMapCleaner(t *testing.T) { skipIfKernelNotSupported(t) cfg := config.New() + cfg.EnableGoTLSSupport = false cfg.EnableIstioMonitoring = false cfg.EnableHTTP2Monitoring = true cfg.HTTP2DynamicTableMapCleanerInterval = 5 * time.Second diff --git a/releasenotes/notes/enable-gotls-by-default-f9c4fe517d075bcc.yaml b/releasenotes/notes/enable-gotls-by-default-f9c4fe517d075bcc.yaml new file mode 100644 index 0000000000000..87c5929483ed0 --- /dev/null +++ b/releasenotes/notes/enable-gotls-by-default-f9c4fe517d075bcc.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + USM now monitors TLS traffic encrypted with Go TLS by default. + To disable this feature, set the `service_monitoring_config.tls.go.enabled` + configuration option to false. From 4e201c03ae3e335843f7d575d97b7d2a42fb2d07 Mon Sep 17 00:00:00 2001 From: Florent Clarret Date: Thu, 28 Nov 2024 15:30:51 +0100 Subject: [PATCH 133/439] Do not validate signatures when an integration is manually installed in the E2E tests (#31530) --- test/new-e2e/tests/agent-platform/common/agent_integration.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/new-e2e/tests/agent-platform/common/agent_integration.go b/test/new-e2e/tests/agent-platform/common/agent_integration.go index ac36d0ce7e64f..dda703b8d7f90 100644 --- a/test/new-e2e/tests/agent-platform/common/agent_integration.go +++ b/test/new-e2e/tests/agent-platform/common/agent_integration.go @@ -80,7 +80,7 @@ func installIntegration(t *testing.T, client *TestClient, integration string) { maxRetries := 6 err := backoff.Retry(func() error { - _, err := client.AgentClient.IntegrationWithError(agentclient.WithArgs([]string{"install", "-r", integration})) + _, err := client.AgentClient.IntegrationWithError(agentclient.WithArgs([]string{"install", "--unsafe-disable-verification", "-r", integration})) return err }, backoff.WithMaxRetries(backoff.NewConstantBackOff(interval), uint64(maxRetries))) From 4cfa2daa0dc3ba2a349acfe883e2b266b33bbab8 Mon Sep 17 00:00:00 2001 From: Alexandre Yang Date: Thu, 28 Nov 2024 15:44:47 +0100 Subject: [PATCH 134/439] [ha-agent] Support more ndm integrations (#31522) Co-authored-by: Jen Gilbert --- comp/haagent/impl/config.go | 7 ++++++- comp/haagent/impl/haagent_test.go | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/comp/haagent/impl/config.go b/comp/haagent/impl/config.go index 4fea0af76d0fd..dc55f791264fc 100644 --- a/comp/haagent/impl/config.go +++ b/comp/haagent/impl/config.go @@ -14,7 +14,12 @@ import ( // At the moment, the list of HA Integrations is hardcoded here, but we might provide // more dynamic way to configure which integration should be considered HA Integration. var validHaIntegrations = map[string]bool{ - "snmp": true, + // NDM integrations + "snmp": true, + "cisco_aci": true, + "cisco_sdwan": true, + + // Other integrations "network_path": true, } diff --git a/comp/haagent/impl/haagent_test.go b/comp/haagent/impl/haagent_test.go index c427220404696..8821843e21c73 100644 --- a/comp/haagent/impl/haagent_test.go +++ b/comp/haagent/impl/haagent_test.go @@ -190,6 +190,8 @@ func Test_haAgentImpl_ShouldRunIntegration(t *testing.T) { leader: testAgentHostname, expectShouldRunIntegration: map[string]bool{ "snmp": true, + "cisco_aci": true, + "cisco_sdwan": true, "network_path": true, "unknown_integration": true, "cpu": true, @@ -207,6 +209,8 @@ func Test_haAgentImpl_ShouldRunIntegration(t *testing.T) { leader: "another-agent-is-leader", expectShouldRunIntegration: map[string]bool{ "snmp": false, + "cisco_aci": false, + "cisco_sdwan": false, "network_path": false, "unknown_integration": true, "cpu": true, @@ -223,6 +227,8 @@ func Test_haAgentImpl_ShouldRunIntegration(t *testing.T) { leader: testAgentHostname, expectShouldRunIntegration: map[string]bool{ "snmp": true, + "cisco_aci": true, + "cisco_sdwan": true, "network_path": true, "unknown_integration": true, "cpu": true, From 23ae050253ed47ac7dacbce6f4b1113ae545226b Mon Sep 17 00:00:00 2001 From: Guillaume Fournier <36961134+Gui774ume@users.noreply.github.com> Date: Thu, 28 Nov 2024 16:09:55 +0100 Subject: [PATCH 135/439] [CWS] Fix NetworkDeviceSerializer (#31568) --- pkg/security/serializers/serializers_linux.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/security/serializers/serializers_linux.go b/pkg/security/serializers/serializers_linux.go index 07d102105713f..f60785c997a09 100644 --- a/pkg/security/serializers/serializers_linux.go +++ b/pkg/security/serializers/serializers_linux.go @@ -1011,7 +1011,7 @@ func newNetworkDeviceSerializer(deviceCtx *model.NetworkDeviceContext, e *model. return &NetworkDeviceSerializer{ NetNS: deviceCtx.NetNS, IfIndex: deviceCtx.IfIndex, - IfName: e.FieldHandlers.ResolveNetworkDeviceIfName(e, &e.NetworkContext.Device), + IfName: e.FieldHandlers.ResolveNetworkDeviceIfName(e, deviceCtx), } } From 625691cd5141af77271eec671a0dc17df16c4c1a Mon Sep 17 00:00:00 2001 From: Yoann Ghigoff Date: Thu, 28 Nov 2024 16:18:06 +0100 Subject: [PATCH 136/439] [CWS] Bump security agent policies to v0.61.0 (#31569) --- release.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/release.json b/release.json index 6ba0cdd4d879f..ee50fc47b964e 100644 --- a/release.json +++ b/release.json @@ -49,7 +49,7 @@ "OMNIBUS_RUBY_VERSION": "7.56.0-rc.1", "JMXFETCH_VERSION": "0.49.6", "JMXFETCH_HASH": "f06bdac1f8ec41daf9b9839ac883f1865a068b04810ea82197b8a6afb9369cb9", - "SECURITY_AGENT_POLICIES_VERSION": "v0.60.0", + "SECURITY_AGENT_POLICIES_VERSION": "v0.61.0", "MACOS_BUILD_VERSION": "6.56.0-rc.3", "WINDOWS_DDNPM_DRIVER": "release-signed", "WINDOWS_DDNPM_VERSION": "2.7.1", @@ -64,7 +64,7 @@ "OMNIBUS_RUBY_VERSION": "7.56.0-rc.1", "JMXFETCH_VERSION": "0.49.6", "JMXFETCH_HASH": "f06bdac1f8ec41daf9b9839ac883f1865a068b04810ea82197b8a6afb9369cb9", - "SECURITY_AGENT_POLICIES_VERSION": "v0.60.0", + "SECURITY_AGENT_POLICIES_VERSION": "v0.61.0", "MACOS_BUILD_VERSION": "7.56.0-rc.3", "WINDOWS_DDNPM_DRIVER": "release-signed", "WINDOWS_DDNPM_VERSION": "2.7.1", From 1ade87da53a066b1fba5924c04a97769ccc3559e Mon Sep 17 00:00:00 2001 From: Vincent Whitchurch Date: Thu, 28 Nov 2024 16:26:59 +0100 Subject: [PATCH 137/439] usm: go-tls: Add periodic process check (#31529) --- pkg/network/usm/ebpf_gotls.go | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/pkg/network/usm/ebpf_gotls.go b/pkg/network/usm/ebpf_gotls.go index 5fcbec13f047e..e12871aa619bf 100644 --- a/pkg/network/usm/ebpf_gotls.go +++ b/pkg/network/usm/ebpf_gotls.go @@ -37,6 +37,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/network/usm/consts" "github.com/DataDog/datadog-agent/pkg/network/usm/utils" "github.com/DataDog/datadog-agent/pkg/process/monitor" + "github.com/DataDog/datadog-agent/pkg/util/kernel" "github.com/DataDog/datadog-agent/pkg/util/log" "github.com/DataDog/datadog-agent/pkg/util/safeelf" ) @@ -243,11 +244,8 @@ func (p *goTLSProgram) PreStart(m *manager.Manager) error { case <-p.done: return case <-processSync.C: - processSet := p.registry.GetRegisteredProcesses() - deletedPids := monitor.FindDeletedProcesses(processSet) - for deletedPid := range deletedPids { - _ = p.registry.Unregister(deletedPid) - } + p.sync() + p.registry.Log() } } }() @@ -255,6 +253,29 @@ func (p *goTLSProgram) PreStart(m *manager.Manager) error { return nil } +func (p *goTLSProgram) sync() { + deletionCandidates := p.registry.GetRegisteredProcesses() + + _ = kernel.WithAllProcs(p.procRoot, func(pid int) error { + if _, ok := deletionCandidates[uint32(pid)]; ok { + // We have previously hooked into this process and it remains active, + // so we remove it from the deletionCandidates list, and move on to the next PID + delete(deletionCandidates, uint32(pid)) + return nil + } + + // This is a new PID so we attempt to attach SSL probes to it + _ = p.AttachPID(uint32(pid)) + return nil + }) + + // At this point all entries from deletionCandidates are no longer alive, so + // we should detach our SSL probes from them + for pid := range deletionCandidates { + p.handleProcessExit(pid) + } +} + // PostStart registers the goTLS program to the attacher list. func (p *goTLSProgram) PostStart(*manager.Manager) error { utils.AddAttacher(consts.USMModuleName, p.Name(), p) From 7bf22e719d1c279bd066ea85274de88e204a23f1 Mon Sep 17 00:00:00 2001 From: Vincent Whitchurch Date: Thu, 28 Nov 2024 16:44:37 +0100 Subject: [PATCH 138/439] discovery: Tweak Python name heuristics (#31562) --- .../corechecks/servicediscovery/usm/python.go | 13 ++++++-- .../servicediscovery/usm/python_test.go | 32 +++++++++++++++++-- 2 files changed, 40 insertions(+), 5 deletions(-) diff --git a/pkg/collector/corechecks/servicediscovery/usm/python.go b/pkg/collector/corechecks/servicediscovery/usm/python.go index 16d774c191e01..44b2c02309463 100644 --- a/pkg/collector/corechecks/servicediscovery/usm/python.go +++ b/pkg/collector/corechecks/servicediscovery/usm/python.go @@ -78,14 +78,23 @@ func (p pythonDetector) detect(args []string) (ServiceMetadata, bool) { if value, ok := p.deducePackageName(path.Clean(stripped), filename); ok { return NewServiceMetadata(value), true } - return NewServiceMetadata(p.findNearestTopLevel(stripped)), true + + name := p.findNearestTopLevel(stripped) + // If we have generic/useless directory names, fallback to the filename. + if name == "." || name == "/" || name == "bin" || name == "sbin" { + name = p.findNearestTopLevel(filename) + } + + return NewServiceMetadata(name), true } if hasFlagPrefix && a == "-m" { moduleFlag = true } - prevArgIsFlag = hasFlagPrefix + // The -u (unbuffered) option doesn't take an argument so we should + // consider the next arg even though this one is a flag. + prevArgIsFlag = hasFlagPrefix && a != "-u" } return ServiceMetadata{}, false diff --git a/pkg/collector/corechecks/servicediscovery/usm/python_test.go b/pkg/collector/corechecks/servicediscovery/usm/python_test.go index cfa80ae32413a..631c843e8a9d7 100644 --- a/pkg/collector/corechecks/servicediscovery/usm/python_test.go +++ b/pkg/collector/corechecks/servicediscovery/usm/python_test.go @@ -3,6 +3,8 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. +//go:build !windows + package usm import ( @@ -16,8 +18,9 @@ import ( ) func TestPythonDetect(t *testing.T) { - //prepare the in mem fs - memFs := fstest.MapFS{ + // Wrap the MapFS in a SubDirFS since we want to test absolute paths and the + // former doesn't allow them in calls to Open(). + memFs := SubDirFS{FS: fstest.MapFS{ "modules/m1/first/nice/package/__init__.py": &fstest.MapFile{}, "modules/m1/first/nice/__init__.py": &fstest.MapFile{}, "modules/m1/first/nice/something.py": &fstest.MapFile{}, @@ -28,7 +31,9 @@ func TestPythonDetect(t *testing.T) { "apps/app2/cmd/run.py": &fstest.MapFile{}, "apps/app2/setup.py": &fstest.MapFile{}, "example.py": &fstest.MapFile{}, - } + "usr/bin/pytest": &fstest.MapFile{}, + "bin/WALinuxAgent.egg": &fstest.MapFile{}, + }} tests := []struct { name string cmd string @@ -79,6 +84,27 @@ func TestPythonDetect(t *testing.T) { cmd: "python example.py", expected: "example", }, + { + name: "root level script", + cmd: "python /example.py", + expected: "example", + }, + { + name: "root level script with ..", + // This results in a path of "." after findNearestTopLevel is called on the split path. + cmd: "python /../example.py", + expected: "example", + }, + { + name: "script in bin", + cmd: "python /usr/bin/pytest", + expected: "pytest", + }, + { + name: "script in bin with -u", + cmd: "python3 -u bin/WALinuxAgent.egg", + expected: "WALinuxAgent", + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { From ac6ee2a4d0abe667fdcc233e87a679da8dbb736a Mon Sep 17 00:00:00 2001 From: Sylvain Baubeau Date: Thu, 28 Nov 2024 17:21:49 +0100 Subject: [PATCH 139/439] [CWS] Allow Windows cross-compilation using mingw (#31272) --- comp/etw/impl/session.c | 6 ++-- .../system/wincrashdetect/probe/crashdump.h | 4 +-- .../winutil/eventlog/api/windows/render.go | 17 +++++++---- pkg/windowsdriver/procmon/procmon.go | 2 +- tasks/agent.py | 20 ++++++++----- tasks/build_tags.py | 3 +- tasks/libs/common/utils.py | 6 +++- tasks/windows_resources.py | 29 ++++++++++++++----- 8 files changed, 58 insertions(+), 29 deletions(-) diff --git a/comp/etw/impl/session.c b/comp/etw/impl/session.c index 6fe7fa5e4ef73..ba59f3289e119 100644 --- a/comp/etw/impl/session.c +++ b/comp/etw/impl/session.c @@ -50,7 +50,7 @@ ULONG DDEnableTrace( PEVENT_FILTER_EVENT_ID disabledFilters = NULL; if (PIDCount > 0) { - eventFilterDescriptors[eventFilterDescriptorIndex].Ptr = (ULONGLONG)PIDs; + eventFilterDescriptors[eventFilterDescriptorIndex].Ptr = (LONG_PTR)PIDs; eventFilterDescriptors[eventFilterDescriptorIndex].Size = (ULONG)(sizeof(PIDs[0]) * PIDCount); eventFilterDescriptors[eventFilterDescriptorIndex].Type = EVENT_FILTER_TYPE_PID; @@ -69,7 +69,7 @@ ULONG DDEnableTrace( { enabledFilters->Events[i] = enableFilterIDs[i]; } - eventFilterDescriptors[eventFilterDescriptorIndex].Ptr = (ULONGLONG)enabledFilters; + eventFilterDescriptors[eventFilterDescriptorIndex].Ptr = (LONG_PTR)enabledFilters; eventFilterDescriptors[eventFilterDescriptorIndex].Size = size; eventFilterDescriptors[eventFilterDescriptorIndex].Type = EVENT_FILTER_TYPE_EVENT_ID; @@ -88,7 +88,7 @@ ULONG DDEnableTrace( { disabledFilters->Events[i] = disableFilterIDs[i]; } - eventFilterDescriptors[eventFilterDescriptorIndex].Ptr = (ULONGLONG)disabledFilters; + eventFilterDescriptors[eventFilterDescriptorIndex].Ptr = (LONG_PTR)disabledFilters; eventFilterDescriptors[eventFilterDescriptorIndex].Size = size; eventFilterDescriptors[eventFilterDescriptorIndex].Type = EVENT_FILTER_TYPE_EVENT_ID; diff --git a/pkg/collector/corechecks/system/wincrashdetect/probe/crashdump.h b/pkg/collector/corechecks/system/wincrashdetect/probe/crashdump.h index 373357e600482..e426b8fbb844f 100644 --- a/pkg/collector/corechecks/system/wincrashdetect/probe/crashdump.h +++ b/pkg/collector/corechecks/system/wincrashdetect/probe/crashdump.h @@ -4,8 +4,8 @@ #include #include -#include -#include +#include +#include #ifdef __cplusplus extern "C" { diff --git a/pkg/util/winutil/eventlog/api/windows/render.go b/pkg/util/winutil/eventlog/api/windows/render.go index 8b8386ce57fa7..937d3b414411c 100644 --- a/pkg/util/winutil/eventlog/api/windows/render.go +++ b/pkg/util/winutil/eventlog/api/windows/render.go @@ -12,7 +12,7 @@ import ( "unsafe" "github.com/DataDog/datadog-agent/pkg/util/winutil" - "github.com/DataDog/datadog-agent/pkg/util/winutil/eventlog/api" + evtapi "github.com/DataDog/datadog-agent/pkg/util/winutil/eventlog/api" "golang.org/x/sys/windows" ) @@ -21,6 +21,8 @@ import ( // #include // #include // +// #include +// // /* Helper to get a pointer value from the union in EVT_VARIANT without abusing // * unsafe.Pointer+uintptr and triggering warnings that are not relevant because // * this pointer value is in C memory not Go memory. @@ -31,6 +33,11 @@ import ( import "C" // implements EvtVariantValues + +const ( + EvtVariantTypeMask = 0x7f // EvtVariantTypeMask is not exposed on all buildchains +) + type evtVariantValues struct { // C memory, filled by the EvtRender call buf unsafe.Pointer @@ -45,7 +52,7 @@ func (v *evtVariantValues) String(index uint) (string, error) { if err != nil { return "", err } - t := C.EVT_VARIANT_TYPE_MASK & value.Type + t := EvtVariantTypeMask & value.Type if t == evtapi.EvtVarTypeString { return windows.UTF16PtrToString((*uint16)(C.dataptr(value))), nil } @@ -57,7 +64,7 @@ func (v *evtVariantValues) UInt(index uint) (uint64, error) { if err != nil { return 0, err } - t := C.EVT_VARIANT_TYPE_MASK & value.Type + t := EvtVariantTypeMask & value.Type if t == evtapi.EvtVarTypeByte { return uint64(*(*uint8)(unsafe.Pointer(value))), nil } else if t == evtapi.EvtVarTypeUInt16 { @@ -74,7 +81,7 @@ func (v *evtVariantValues) Time(index uint) (int64, error) { if err != nil { return 0, err } - t := C.EVT_VARIANT_TYPE_MASK & value.Type + t := EvtVariantTypeMask & value.Type if t == evtapi.EvtVarTypeFileTime { ft := (*C.FILETIME)(unsafe.Pointer(value)) nsec := (uint64(ft.dwHighDateTime) << 32) | uint64(ft.dwLowDateTime) @@ -89,7 +96,7 @@ func (v *evtVariantValues) SID(index uint) (*windows.SID, error) { if err != nil { return nil, err } - t := C.EVT_VARIANT_TYPE_MASK & value.Type + t := EvtVariantTypeMask & value.Type if t == evtapi.EvtVarTypeSid { origSid := (*windows.SID)(C.dataptr(value)) s, err := origSid.Copy() diff --git a/pkg/windowsdriver/procmon/procmon.go b/pkg/windowsdriver/procmon/procmon.go index d6f4765e79501..ba9e49ef51e74 100644 --- a/pkg/windowsdriver/procmon/procmon.go +++ b/pkg/windowsdriver/procmon/procmon.go @@ -63,7 +63,7 @@ const ( var ( // signature - procmonSignature = ProcmonSignature + procmonSignature int64 = ProcmonSignature ) // NewWinProcMon creates a new WinProcmon diff --git a/tasks/agent.py b/tasks/agent.py index 190c7b04c0916..90fb9d2a831b1 100644 --- a/tasks/agent.py +++ b/tasks/agent.py @@ -167,18 +167,22 @@ def build( major_version=major_version, ) - if sys.platform == 'win32': + if sys.platform == 'win32' or os.getenv("GOOS") == "windows": # Important for x-compiling env["CGO_ENABLED"] = "1" build_messagetable(ctx) - vars = versioninfo_vars(ctx, major_version=major_version) - build_rc( - ctx, - "cmd/agent/windows_resources/agent.rc", - vars=vars, - out="cmd/agent/rsrc.syso", - ) + + # Do not call build_rc when cross-compiling on Linux as the intend is more + # to streamline the development process that producing a working executable / installer + if sys.platform == 'win32': + vars = versioninfo_vars(ctx, major_version=major_version) + build_rc( + ctx, + "cmd/agent/windows_resources/agent.rc", + vars=vars, + out="cmd/agent/rsrc.syso", + ) if flavor.is_iot(): # Iot mode overrides whatever passed through `--build-exclude` and `--build-include` diff --git a/tasks/build_tags.py b/tasks/build_tags.py index caa73601e65b6..81b0564285c3e 100644 --- a/tasks/build_tags.py +++ b/tasks/build_tags.py @@ -7,6 +7,7 @@ # so we only need to check that we don't run this code with old Python versions. from __future__ import annotations +import os import sys from invoke import task @@ -323,7 +324,7 @@ def filter_incompatible_tags(include, platform=sys.platform): if not platform.startswith("linux"): exclude = exclude.union(LINUX_ONLY_TAGS) - if platform == "win32": + if platform == "win32" or os.getenv("GOOS") == "windows": include = include.union(["wmi"]) exclude = exclude.union(WINDOWS_EXCLUDE_TAGS) diff --git a/tasks/libs/common/utils.py b/tasks/libs/common/utils.py index c6a024b60c0ae..1bbd88910a8e5 100644 --- a/tasks/libs/common/utils.py +++ b/tasks/libs/common/utils.py @@ -268,6 +268,10 @@ def get_build_flags( extra_cgo_flags += f" -I{rtloader_common_headers}" env['CGO_CFLAGS'] = os.environ.get('CGO_CFLAGS', '') + extra_cgo_flags + if sys.platform == 'linux' and os.getenv('GOOS') == "windows": + # fake the minimum windows version + env['CGO_CFLAGS'] = env['CGO_CFLAGS'] + " -D_WIN32_WINNT=0x0A00" + # if `static` was passed ignore setting rpath, even if `embedded_path` was passed as well if static: ldflags += "-s -w -linkmode=external " @@ -319,7 +323,7 @@ def get_build_flags( if os.getenv('DD_CXX'): env['CXX'] = os.getenv('DD_CXX') - if sys.platform == 'linux': + if sys.platform == 'linux' and os.getenv('GOOS') != "windows": # Enable lazy binding, which seems to be overridden when loading containerd # Required to fix go-nvml compilation (see https://github.com/NVIDIA/go-nvml/issues/18) extldflags += "-Wl,-z,lazy " diff --git a/tasks/windows_resources.py b/tasks/windows_resources.py index 3e4493a222b73..6dc3db43a5e57 100644 --- a/tasks/windows_resources.py +++ b/tasks/windows_resources.py @@ -1,4 +1,5 @@ import os +import sys from invoke import task @@ -10,36 +11,48 @@ @task def build_messagetable( ctx, + target='pe-x86-64', + host_target='', # prefix of the toolchain used to cross-compile, for instance x86_64-w64-mingw32 ): """ Build the header and resource for the MESSAGETABLE shared between agent binaries. """ - windres_target = 'pe-x86-64' - messagefile = MESSAGESTRINGS_MC_PATH root = os.path.dirname(messagefile) # Generate the message header and resource file - command = f"windmc --target {windres_target} -r {root} -h {root} {messagefile}" + windmc = "windmc" + if not host_target and sys.platform.startswith('linux'): + host_target = "x86_64-w64-mingw32" + + if host_target: + windmc = host_target + "-" + windmc + + command = f"{windmc} --target {target} -r {root} -h {root} {messagefile}" ctx.run(command) - build_rc(ctx, f'{root}/messagestrings.rc') + build_rc(ctx, f'{root}/messagestrings.rc', target=target, host_target=host_target) -def build_rc(ctx, rc_file, vars=None, out=None): +def build_rc(ctx, rc_file, vars=None, out=None, target='pe-x86-64', host_target=''): if vars is None: vars = {} - windres_target = 'pe-x86-64' - if out is None: root = os.path.dirname(rc_file) out = f'{root}/rsrc.syso' # Build the binary resource # go automatically detects+includes .syso files - command = f"windres --target {windres_target} -i {rc_file} -O coff -o {out}" + windres = "windres" + if not host_target and sys.platform.startswith('linux'): + host_target = "x86_64-w64-mingw32" + + if host_target: + windres = host_target + "-" + windres + + command = f"{windres} --target {target} -i {rc_file} -O coff -o {out}" for key, value in vars.items(): command += f" --define {key}={value}" From 4cc5e2bf0ca322489d6aa3d9a568085678a13c40 Mon Sep 17 00:00:00 2001 From: Sylvain Baubeau Date: Thu, 28 Nov 2024 17:29:18 +0100 Subject: [PATCH 140/439] [CWS] Use containerutils.ContainerID in mount resolver (#31566) --- pkg/security/probe/field_handlers_ebpf.go | 8 +++---- pkg/security/probe/probe_ebpf.go | 4 ++-- pkg/security/resolvers/mount/interface.go | 9 ++++---- .../resolvers/mount/no_op_resolver.go | 9 ++++---- pkg/security/resolvers/mount/resolver.go | 21 ++++++++++--------- pkg/security/resolvers/path/resolver.go | 4 ++-- .../resolvers/process/resolver_ebpf.go | 4 ++-- 7 files changed, 31 insertions(+), 28 deletions(-) diff --git a/pkg/security/probe/field_handlers_ebpf.go b/pkg/security/probe/field_handlers_ebpf.go index 12749266a8a56..e52a47b453d2f 100644 --- a/pkg/security/probe/field_handlers_ebpf.go +++ b/pkg/security/probe/field_handlers_ebpf.go @@ -99,7 +99,7 @@ func (fh *EBPFFieldHandlers) ResolveFileFilesystem(ev *model.Event, f *model.Fil if f.IsFileless() { f.Filesystem = model.TmpFS } else { - fs, err := fh.resolvers.MountResolver.ResolveFilesystem(f.FileFields.MountID, f.FileFields.Device, ev.PIDContext.Pid, string(ev.ContainerContext.ContainerID)) + fs, err := fh.resolvers.MountResolver.ResolveFilesystem(f.FileFields.MountID, f.FileFields.Device, ev.PIDContext.Pid, ev.ContainerContext.ContainerID) if err != nil { ev.SetPathResolutionError(f, err) } @@ -146,7 +146,7 @@ func (fh *EBPFFieldHandlers) ResolveXAttrNamespace(ev *model.Event, e *model.Set // ResolveMountPointPath resolves a mount point path func (fh *EBPFFieldHandlers) ResolveMountPointPath(ev *model.Event, e *model.MountEvent) string { if len(e.MountPointPath) == 0 { - mountPointPath, _, _, err := fh.resolvers.MountResolver.ResolveMountPath(e.MountID, 0, ev.PIDContext.Pid, string(ev.ContainerContext.ContainerID)) + mountPointPath, _, _, err := fh.resolvers.MountResolver.ResolveMountPath(e.MountID, 0, ev.PIDContext.Pid, ev.ContainerContext.ContainerID) if err != nil { e.MountPointPathResolutionError = err return "" @@ -159,7 +159,7 @@ func (fh *EBPFFieldHandlers) ResolveMountPointPath(ev *model.Event, e *model.Mou // ResolveMountSourcePath resolves a mount source path func (fh *EBPFFieldHandlers) ResolveMountSourcePath(ev *model.Event, e *model.MountEvent) string { if e.BindSrcMountID != 0 && len(e.MountSourcePath) == 0 { - bindSourceMountPath, _, _, err := fh.resolvers.MountResolver.ResolveMountPath(e.BindSrcMountID, 0, ev.PIDContext.Pid, string(ev.ContainerContext.ContainerID)) + bindSourceMountPath, _, _, err := fh.resolvers.MountResolver.ResolveMountPath(e.BindSrcMountID, 0, ev.PIDContext.Pid, ev.ContainerContext.ContainerID) if err != nil { e.MountSourcePathResolutionError = err return "" @@ -177,7 +177,7 @@ func (fh *EBPFFieldHandlers) ResolveMountSourcePath(ev *model.Event, e *model.Mo // ResolveMountRootPath resolves a mount root path func (fh *EBPFFieldHandlers) ResolveMountRootPath(ev *model.Event, e *model.MountEvent) string { if len(e.MountRootPath) == 0 { - mountRootPath, _, _, err := fh.resolvers.MountResolver.ResolveMountRoot(e.MountID, 0, ev.PIDContext.Pid, string(ev.ContainerContext.ContainerID)) + mountRootPath, _, _, err := fh.resolvers.MountResolver.ResolveMountRoot(e.MountID, 0, ev.PIDContext.Pid, ev.ContainerContext.ContainerID) if err != nil { e.MountRootPathResolutionError = err return "" diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go index 6db379021bbc7..82a65cb2aa83f 100644 --- a/pkg/security/probe/probe_ebpf.go +++ b/pkg/security/probe/probe_ebpf.go @@ -907,7 +907,7 @@ func (p *EBPFProbe) handleEvent(CPU int, data []byte) { // TODO: this should be moved in the resolver itself in order to handle the fallbacks if event.Mount.GetFSType() == "nsfs" { nsid := uint32(event.Mount.RootPathKey.Inode) - mountPath, _, _, err := p.Resolvers.MountResolver.ResolveMountPath(event.Mount.MountID, event.Mount.Device, event.PIDContext.Pid, string(event.ContainerContext.ContainerID)) + mountPath, _, _, err := p.Resolvers.MountResolver.ResolveMountPath(event.Mount.MountID, event.Mount.Device, event.PIDContext.Pid, event.ContainerContext.ContainerID) if err != nil { seclog.Debugf("failed to get mount path: %v", err) } else { @@ -923,7 +923,7 @@ func (p *EBPFProbe) handleEvent(CPU int, data []byte) { } // we can skip this error as this is for the umount only and there is no impact on the filepath resolution - mount, _, _, _ := p.Resolvers.MountResolver.ResolveMount(event.Umount.MountID, 0, event.PIDContext.Pid, string(event.ContainerContext.ContainerID)) + mount, _, _, _ := p.Resolvers.MountResolver.ResolveMount(event.Umount.MountID, 0, event.PIDContext.Pid, event.ContainerContext.ContainerID) if mount != nil && mount.GetFSType() == "nsfs" { nsid := uint32(mount.RootPathKey.Inode) if namespace := p.Resolvers.NamespaceResolver.ResolveNetworkNamespace(nsid); namespace != nil { diff --git a/pkg/security/resolvers/mount/interface.go b/pkg/security/resolvers/mount/interface.go index 80230e45065c8..818f6be74d2fe 100644 --- a/pkg/security/resolvers/mount/interface.go +++ b/pkg/security/resolvers/mount/interface.go @@ -9,6 +9,7 @@ package mount import ( + "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" "github.com/DataDog/datadog-agent/pkg/security/secl/model" ) @@ -17,12 +18,12 @@ type ResolverInterface interface { IsMountIDValid(mountID uint32) (bool, error) SyncCache(pid uint32) error Delete(mountID uint32) error - ResolveFilesystem(mountID uint32, device uint32, pid uint32, containerID string) (string, error) + ResolveFilesystem(mountID uint32, device uint32, pid uint32, containerID containerutils.ContainerID) (string, error) Insert(m model.Mount, pid uint32) error DelPid(pid uint32) - ResolveMountRoot(mountID uint32, device uint32, pid uint32, containerID string) (string, model.MountSource, model.MountOrigin, error) - ResolveMountPath(mountID uint32, device uint32, pid uint32, containerID string) (string, model.MountSource, model.MountOrigin, error) - ResolveMount(mountID uint32, device uint32, pid uint32, containerID string) (*model.Mount, model.MountSource, model.MountOrigin, error) + ResolveMountRoot(mountID uint32, device uint32, pid uint32, containerID containerutils.ContainerID) (string, model.MountSource, model.MountOrigin, error) + ResolveMountPath(mountID uint32, device uint32, pid uint32, containerID containerutils.ContainerID) (string, model.MountSource, model.MountOrigin, error) + ResolveMount(mountID uint32, device uint32, pid uint32, containerID containerutils.ContainerID) (*model.Mount, model.MountSource, model.MountOrigin, error) SendStats() error ToJSON() ([]byte, error) } diff --git a/pkg/security/resolvers/mount/no_op_resolver.go b/pkg/security/resolvers/mount/no_op_resolver.go index 94548b334fb8f..db185a4fbf584 100644 --- a/pkg/security/resolvers/mount/no_op_resolver.go +++ b/pkg/security/resolvers/mount/no_op_resolver.go @@ -11,6 +11,7 @@ package mount import ( "errors" + "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" "github.com/DataDog/datadog-agent/pkg/security/secl/model" ) @@ -34,7 +35,7 @@ func (mr *NoOpResolver) Delete(_ uint32) error { } // ResolveFilesystem returns the name of the filesystem -func (mr *NoOpResolver) ResolveFilesystem(_ uint32, _ uint32, _ uint32, _ string) (string, error) { +func (mr *NoOpResolver) ResolveFilesystem(_ uint32, _ uint32, _ uint32, _ containerutils.ContainerID) (string, error) { return "", nil } @@ -47,17 +48,17 @@ func (mr *NoOpResolver) Insert(_ model.Mount, _ uint32) error { func (mr *NoOpResolver) DelPid(_ uint32) {} // ResolveMountRoot returns the root of a mount identified by its mount ID. -func (mr *NoOpResolver) ResolveMountRoot(_ uint32, _ uint32, _ uint32, _ string) (string, model.MountSource, model.MountOrigin, error) { +func (mr *NoOpResolver) ResolveMountRoot(_ uint32, _ uint32, _ uint32, _ containerutils.ContainerID) (string, model.MountSource, model.MountOrigin, error) { return "", model.MountSourceUnknown, model.MountOriginUnknown, nil } // ResolveMountPath returns the path of a mount identified by its mount ID. -func (mr *NoOpResolver) ResolveMountPath(_ uint32, _ uint32, _ uint32, _ string) (string, model.MountSource, model.MountOrigin, error) { +func (mr *NoOpResolver) ResolveMountPath(_ uint32, _ uint32, _ uint32, _ containerutils.ContainerID) (string, model.MountSource, model.MountOrigin, error) { return "", model.MountSourceUnknown, model.MountOriginUnknown, nil } // ResolveMount returns the mount -func (mr *NoOpResolver) ResolveMount(_ uint32, _ uint32, _ uint32, _ string) (*model.Mount, model.MountSource, model.MountOrigin, error) { +func (mr *NoOpResolver) ResolveMount(_ uint32, _ uint32, _ uint32, _ containerutils.ContainerID) (*model.Mount, model.MountSource, model.MountOrigin, error) { return nil, model.MountSourceUnknown, model.MountOriginUnknown, errors.New("not available") } diff --git a/pkg/security/resolvers/mount/resolver.go b/pkg/security/resolvers/mount/resolver.go index a996fbef721d9..9a112d818546e 100644 --- a/pkg/security/resolvers/mount/resolver.go +++ b/pkg/security/resolvers/mount/resolver.go @@ -26,6 +26,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/metrics" "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup" cmodel "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup/model" + "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" "github.com/DataDog/datadog-agent/pkg/security/secl/model" "github.com/DataDog/datadog-agent/pkg/security/utils" "github.com/DataDog/datadog-agent/pkg/util/kernel" @@ -221,7 +222,7 @@ func (mr *Resolver) Delete(mountID uint32) error { } // ResolveFilesystem returns the name of the filesystem -func (mr *Resolver) ResolveFilesystem(mountID uint32, device uint32, pid uint32, containerID string) (string, error) { +func (mr *Resolver) ResolveFilesystem(mountID uint32, device uint32, pid uint32, containerID containerutils.ContainerID) (string, error) { mr.lock.Lock() defer mr.lock.Unlock() @@ -404,14 +405,14 @@ func (mr *Resolver) getMountPath(mountID uint32, device uint32, pid uint32) (str } // ResolveMountRoot returns the root of a mount identified by its mount ID. -func (mr *Resolver) ResolveMountRoot(mountID uint32, device uint32, pid uint32, containerID string) (string, model.MountSource, model.MountOrigin, error) { +func (mr *Resolver) ResolveMountRoot(mountID uint32, device uint32, pid uint32, containerID containerutils.ContainerID) (string, model.MountSource, model.MountOrigin, error) { mr.lock.Lock() defer mr.lock.Unlock() return mr.resolveMountRoot(mountID, device, pid, containerID) } -func (mr *Resolver) resolveMountRoot(mountID uint32, device uint32, pid uint32, containerID string) (string, model.MountSource, model.MountOrigin, error) { +func (mr *Resolver) resolveMountRoot(mountID uint32, device uint32, pid uint32, containerID containerutils.ContainerID) (string, model.MountSource, model.MountOrigin, error) { mount, source, origin, err := mr.resolveMount(mountID, device, pid, containerID) if err != nil { return "", source, origin, err @@ -420,7 +421,7 @@ func (mr *Resolver) resolveMountRoot(mountID uint32, device uint32, pid uint32, } // ResolveMountPath returns the path of a mount identified by its mount ID. -func (mr *Resolver) ResolveMountPath(mountID uint32, device uint32, pid uint32, containerID string) (string, model.MountSource, model.MountOrigin, error) { +func (mr *Resolver) ResolveMountPath(mountID uint32, device uint32, pid uint32, containerID containerutils.ContainerID) (string, model.MountSource, model.MountOrigin, error) { mr.lock.Lock() defer mr.lock.Unlock() @@ -431,7 +432,7 @@ func (mr *Resolver) syncCacheMiss() { mr.procMissStats.Inc() } -func (mr *Resolver) reSyncCache(mountID uint32, pids []uint32, containerID string, workload *cmodel.CacheEntry) error { +func (mr *Resolver) reSyncCache(mountID uint32, pids []uint32, containerID containerutils.ContainerID, workload *cmodel.CacheEntry) error { if workload != nil { pids = append(pids, workload.GetPIDs()...) } else if len(containerID) == 0 && !slices.Contains(pids, 1) { @@ -446,13 +447,13 @@ func (mr *Resolver) reSyncCache(mountID uint32, pids []uint32, containerID strin return nil } -func (mr *Resolver) resolveMountPath(mountID uint32, device uint32, pid uint32, containerID string) (string, model.MountSource, model.MountOrigin, error) { +func (mr *Resolver) resolveMountPath(mountID uint32, device uint32, pid uint32, containerID containerutils.ContainerID) (string, model.MountSource, model.MountOrigin, error) { if _, err := mr.IsMountIDValid(mountID); err != nil { return "", model.MountSourceUnknown, model.MountOriginUnknown, err } // force a resolution here to make sure the LRU keeps doing its job and doesn't evict important entries - workload, _ := mr.cgroupsResolver.GetWorkload(containerID) + workload, _ := mr.cgroupsResolver.GetWorkload(string(containerID)) path, source, origin, err := mr.getMountPath(mountID, device, pid) if err == nil { @@ -480,20 +481,20 @@ func (mr *Resolver) resolveMountPath(mountID uint32, device uint32, pid uint32, } // ResolveMount returns the mount -func (mr *Resolver) ResolveMount(mountID uint32, device uint32, pid uint32, containerID string) (*model.Mount, model.MountSource, model.MountOrigin, error) { +func (mr *Resolver) ResolveMount(mountID uint32, device uint32, pid uint32, containerID containerutils.ContainerID) (*model.Mount, model.MountSource, model.MountOrigin, error) { mr.lock.Lock() defer mr.lock.Unlock() return mr.resolveMount(mountID, device, pid, containerID) } -func (mr *Resolver) resolveMount(mountID uint32, device uint32, pid uint32, containerID string) (*model.Mount, model.MountSource, model.MountOrigin, error) { +func (mr *Resolver) resolveMount(mountID uint32, device uint32, pid uint32, containerID containerutils.ContainerID) (*model.Mount, model.MountSource, model.MountOrigin, error) { if _, err := mr.IsMountIDValid(mountID); err != nil { return nil, model.MountSourceUnknown, model.MountOriginUnknown, err } // force a resolution here to make sure the LRU keeps doing its job and doesn't evict important entries - workload, _ := mr.cgroupsResolver.GetWorkload(containerID) + workload, _ := mr.cgroupsResolver.GetWorkload(string(containerID)) mount, source, origin := mr.lookupMount(mountID, device, pid) if mount != nil { diff --git a/pkg/security/resolvers/path/resolver.go b/pkg/security/resolvers/path/resolver.go index c5eb914bc1d1c..4e8773e594c7e 100644 --- a/pkg/security/resolvers/path/resolver.go +++ b/pkg/security/resolvers/path/resolver.go @@ -58,7 +58,7 @@ func (r *Resolver) ResolveFileFieldsPath(e *model.FileFields, pidCtx *model.PIDC return pathStr, "", model.MountSourceMountID, model.MountOriginEvent, nil } - mountPath, source, origin, err := r.mountResolver.ResolveMountPath(e.MountID, e.Device, pidCtx.Pid, string(ctrCtx.ContainerID)) + mountPath, source, origin, err := r.mountResolver.ResolveMountPath(e.MountID, e.Device, pidCtx.Pid, ctrCtx.ContainerID) if err != nil { if _, err := r.mountResolver.IsMountIDValid(e.MountID); errors.Is(err, mount.ErrMountKernelID) { return pathStr, "", origin, source, &ErrPathResolutionNotCritical{Err: fmt.Errorf("mount ID(%d) invalid: %w", e.MountID, err)} @@ -66,7 +66,7 @@ func (r *Resolver) ResolveFileFieldsPath(e *model.FileFields, pidCtx *model.PIDC return pathStr, "", source, origin, &ErrPathResolution{Err: err} } - rootPath, source, origin, err := r.mountResolver.ResolveMountRoot(e.MountID, e.Device, pidCtx.Pid, string(ctrCtx.ContainerID)) + rootPath, source, origin, err := r.mountResolver.ResolveMountRoot(e.MountID, e.Device, pidCtx.Pid, ctrCtx.ContainerID) if err != nil { if _, err := r.mountResolver.IsMountIDValid(e.MountID); errors.Is(err, mount.ErrMountKernelID) { return pathStr, "", source, origin, &ErrPathResolutionNotCritical{Err: fmt.Errorf("mount ID(%d) invalid: %w", e.MountID, err)} diff --git a/pkg/security/resolvers/process/resolver_ebpf.go b/pkg/security/resolvers/process/resolver_ebpf.go index ef06b13cbefd8..d74425a724d37 100644 --- a/pkg/security/resolvers/process/resolver_ebpf.go +++ b/pkg/security/resolvers/process/resolver_ebpf.go @@ -390,7 +390,7 @@ func (p *EBPFResolver) enrichEventFromProc(entry *model.ProcessCacheEntry, proc entry.FileEvent.Filesystem = model.TmpFS } else { // resolve container path with the MountEBPFResolver - entry.FileEvent.Filesystem, err = p.mountResolver.ResolveFilesystem(entry.Process.FileEvent.MountID, entry.Process.FileEvent.Device, entry.Process.Pid, string(containerID)) + entry.FileEvent.Filesystem, err = p.mountResolver.ResolveFilesystem(entry.Process.FileEvent.MountID, entry.Process.FileEvent.Device, entry.Process.Pid, containerID) if err != nil { seclog.Debugf("snapshot failed for mount %d with pid %d : couldn't get the filesystem: %s", entry.Process.FileEvent.MountID, proc.Pid, err) } @@ -736,7 +736,7 @@ func (p *EBPFResolver) SetProcessSymlink(entry *model.ProcessCacheEntry) { // SetProcessFilesystem resolves process file system func (p *EBPFResolver) SetProcessFilesystem(entry *model.ProcessCacheEntry) (string, error) { if entry.FileEvent.MountID != 0 { - fs, err := p.mountResolver.ResolveFilesystem(entry.FileEvent.MountID, entry.FileEvent.Device, entry.Pid, string(entry.ContainerID)) + fs, err := p.mountResolver.ResolveFilesystem(entry.FileEvent.MountID, entry.FileEvent.Device, entry.Pid, entry.ContainerID) if err != nil { return "", err } From 654e2943da6d56ec2776905d1e7adbc8c4632998 Mon Sep 17 00:00:00 2001 From: maxime mouial Date: Thu, 28 Nov 2024 17:38:24 +0100 Subject: [PATCH 141/439] Refreshing trace secrets from the CLI (#31521) --- cmd/agent/subcommands/secret/command.go | 34 +++++++++++++++++++++++ cmd/otel-agent/subcommands/run/command.go | 2 ++ comp/trace/agent/impl/agent.go | 5 ++++ comp/trace/agent/impl/run.go | 21 ++++++++++++++ comp/trace/bundle_test.go | 2 ++ pkg/util/fxutil/provide_optional.go | 7 +++++ 6 files changed, 71 insertions(+) diff --git a/cmd/agent/subcommands/secret/command.go b/cmd/agent/subcommands/secret/command.go index 1f1ae9b0a6de5..e24f95ca6d693 100644 --- a/cmd/agent/subcommands/secret/command.go +++ b/cmd/agent/subcommands/secret/command.go @@ -8,6 +8,7 @@ package secret import ( "fmt" + "time" "github.com/spf13/cobra" "go.uber.org/fx" @@ -68,14 +69,47 @@ func showSecretInfo(config config.Component, _ log.Component) error { } func secretRefresh(config config.Component, _ log.Component) error { + fmt.Println("Agent refresh:") res, err := callIPCEndpoint(config, "agent/secret/refresh") if err != nil { return err } fmt.Println(string(res)) + + if config.GetBool("apm_config.enabled") { + fmt.Println("APM agent refresh:") + res, err = traceAgentSecretRefresh(config) + if err != nil { + return err + } + fmt.Println(string(res)) + } return nil } +func traceAgentSecretRefresh(conf config.Component) ([]byte, error) { + err := apiutil.SetAuthToken(conf) + if err != nil { + return nil, err + } + + port := conf.GetInt("apm_config.debug.port") + if port <= 0 { + return nil, fmt.Errorf("invalid apm_config.debug.port -- %d", port) + } + + c := apiutil.GetClient(false) + c.Timeout = conf.GetDuration("server_timeout") * time.Second + + url := fmt.Sprintf("http://127.0.0.1:%d/secret/refresh", port) + res, err := apiutil.DoGet(c, url, apiutil.CloseConnection) + if err != nil { + return nil, fmt.Errorf("could not contact trace-agent: %s", err) + } + + return res, nil +} + func callIPCEndpoint(config config.Component, endpointURL string) ([]byte, error) { endpoint, err := apiutil.NewIPCEndpoint(config, endpointURL) if err != nil { diff --git a/cmd/otel-agent/subcommands/run/command.go b/cmd/otel-agent/subcommands/run/command.go index 99106cc0b573d..a414674620e44 100644 --- a/cmd/otel-agent/subcommands/run/command.go +++ b/cmd/otel-agent/subcommands/run/command.go @@ -26,6 +26,7 @@ import ( "github.com/DataDog/datadog-agent/comp/core/hostname/remotehostnameimpl" log "github.com/DataDog/datadog-agent/comp/core/log/def" logtracefx "github.com/DataDog/datadog-agent/comp/core/log/fx-trace" + "github.com/DataDog/datadog-agent/comp/core/secrets" tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" remoteTaggerFx "github.com/DataDog/datadog-agent/comp/core/tagger/fx-remote" taggerTypes "github.com/DataDog/datadog-agent/comp/core/tagger/types" @@ -137,6 +138,7 @@ func runOTelAgentCommand(ctx context.Context, params *subcommands.GlobalParams, return acfg, nil }), fxutil.ProvideOptional[coreconfig.Component](), + fxutil.ProvideNoneOptional[secrets.Component](), workloadmetafx.Module(workloadmeta.Params{ AgentType: workloadmeta.NodeAgent, InitHelper: common.GetWorkloadmetaInit(), diff --git a/comp/trace/agent/impl/agent.go b/comp/trace/agent/impl/agent.go index 8ca8cf62d5140..b3d783288ceb6 100644 --- a/comp/trace/agent/impl/agent.go +++ b/comp/trace/agent/impl/agent.go @@ -24,6 +24,7 @@ import ( "go.opentelemetry.io/collector/pdata/ptrace" "go.uber.org/fx" + "github.com/DataDog/datadog-agent/comp/core/secrets" tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/dogstatsd/statsd" traceagent "github.com/DataDog/datadog-agent/comp/trace/agent/def" @@ -38,6 +39,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/trace/telemetry" "github.com/DataDog/datadog-agent/pkg/trace/watchdog" "github.com/DataDog/datadog-agent/pkg/util/log" + "github.com/DataDog/datadog-agent/pkg/util/optional" "github.com/DataDog/datadog-agent/pkg/version" ddgostatsd "github.com/DataDog/datadog-go/v5/statsd" @@ -59,6 +61,7 @@ type dependencies struct { Shutdowner fx.Shutdowner Config config.Component + Secrets optional.Option[secrets.Component] Context context.Context Params *Params TelemetryCollector telemetry.TelemetryCollector @@ -86,6 +89,7 @@ type component struct { cancel context.CancelFunc config config.Component + secrets optional.Option[secrets.Component] params *Params tagger tagger.Component telemetryCollector telemetry.TelemetryCollector @@ -107,6 +111,7 @@ func NewAgent(deps dependencies) (traceagent.Component, error) { c = component{ cancel: cancel, config: deps.Config, + secrets: deps.Secrets, params: deps.Params, telemetryCollector: deps.TelemetryCollector, tagger: deps.Tagger, diff --git a/comp/trace/agent/impl/run.go b/comp/trace/agent/impl/run.go index bea05f8916f2c..d42d90b41fbff 100644 --- a/comp/trace/agent/impl/run.go +++ b/comp/trace/agent/impl/run.go @@ -6,6 +6,7 @@ package agentimpl import ( + "encoding/json" "fmt" "math/rand" "net/http" @@ -70,6 +71,26 @@ func runAgentSidekicks(ag component) error { } else { ag.Agent.DebugServer.AddRoute("/config", ag.config.GetConfigHandler()) } + if secrets, ok := ag.secrets.Get(); ok { + // Adding a route to trigger a secrets refresh from the CLI. + // TODO - components: the secrets comp already export a route but it requires the API component which is not + // used by the trace agent. This should be removed once the trace-agent is fully componentize. + ag.Agent.DebugServer.AddRoute("/secret/refresh", http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { + if apiutil.Validate(w, req) != nil { + return + } + + res, err := secrets.Refresh() + if err != nil { + log.Errorf("error while refresing secrets: %s", err) + w.Header().Set("Content-Type", "application/json") + body, _ := json.Marshal(map[string]string{"error": err.Error()}) + http.Error(w, string(body), http.StatusInternalServerError) + return + } + w.Write([]byte(res)) + })) + } api.AttachEndpoint(api.Endpoint{ Pattern: "/config/set", diff --git a/comp/trace/bundle_test.go b/comp/trace/bundle_test.go index a42de7e5a93ca..e9874a4b40077 100644 --- a/comp/trace/bundle_test.go +++ b/comp/trace/bundle_test.go @@ -17,6 +17,7 @@ import ( coreconfig "github.com/DataDog/datadog-agent/comp/core/config" log "github.com/DataDog/datadog-agent/comp/core/log/def" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" + "github.com/DataDog/datadog-agent/comp/core/secrets" tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" taggerfx "github.com/DataDog/datadog-agent/comp/core/tagger/fx" "github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl" @@ -62,6 +63,7 @@ func TestMockBundleDependencies(t *testing.T) { fx.Provide(func() context.Context { return context.TODO() }), // fx.Supply(ctx) fails with a missing type error. fx.Supply(core.BundleParams{}), coreconfig.MockModule(), + fxutil.ProvideNoneOptional[secrets.Component](), telemetryimpl.MockModule(), fx.Provide(func() log.Component { return logmock.New(t) }), workloadmetafx.Module(workloadmeta.NewParams()), diff --git a/pkg/util/fxutil/provide_optional.go b/pkg/util/fxutil/provide_optional.go index 9733cb8b20065..f8b4ff23aa5bb 100644 --- a/pkg/util/fxutil/provide_optional.go +++ b/pkg/util/fxutil/provide_optional.go @@ -16,3 +16,10 @@ func ProvideOptional[T any]() fx.Option { return optional.NewOption[T](actualType) }) } + +// ProvideNoneOptional provide a none optional for the type +func ProvideNoneOptional[T any]() fx.Option { + return fx.Provide(func() optional.Option[T] { + return optional.NewNoneOption[T]() + }) +} From 4aa3121204b8311436292d411d4d7b3afa5307b6 Mon Sep 17 00:00:00 2001 From: maxime mouial Date: Thu, 28 Nov 2024 17:38:31 +0100 Subject: [PATCH 142/439] Implement teeconfig (#31478) --- pkg/config/model/viper.go | 4 +- pkg/config/nodetreemodel/config.go | 23 ++- pkg/config/teeconfig/go.mod | 2 +- pkg/config/teeconfig/teeconfig.go | 247 ++++++++++++++++++++++------- 4 files changed, 212 insertions(+), 64 deletions(-) diff --git a/pkg/config/model/viper.go b/pkg/config/model/viper.go index 4bac624a9270b..eeb4b65492e70 100644 --- a/pkg/config/model/viper.go +++ b/pkg/config/model/viper.go @@ -312,7 +312,9 @@ func (c *safeConfig) IsSet(key string) bool { func (c *safeConfig) AllKeysLowercased() []string { c.Lock() defer c.Unlock() - return c.Viper.AllKeys() + res := c.Viper.AllKeys() + slices.Sort(res) + return res } // Get wraps Viper for concurrent access diff --git a/pkg/config/nodetreemodel/config.go b/pkg/config/nodetreemodel/config.go index 14f727b6086a1..57d8ee8244c48 100644 --- a/pkg/config/nodetreemodel/config.go +++ b/pkg/config/nodetreemodel/config.go @@ -87,6 +87,8 @@ type ntmConfig struct { configName string configFile string configType string + // configPaths is the set of path to look for the configuration file + configPaths []string // configEnvVars is the set of env vars that are consulted for // any given configuration key. Multiple env vars can be associated with one key @@ -395,7 +397,9 @@ func (c *ntmConfig) AllKeysLowercased() []string { c.RLock() defer c.RUnlock() - return maps.Keys(c.knownKeys) + res := maps.Keys(c.knownKeys) + slices.Sort(res) + return res } func (c *ntmConfig) leafAtPath(key string) LeafNode { @@ -578,10 +582,23 @@ func (c *ntmConfig) AllSettingsBySource() map[model.Source]interface{} { } // AddConfigPath adds another config for the given path -func (c *ntmConfig) AddConfigPath(_in string) { +func (c *ntmConfig) AddConfigPath(in string) { c.Lock() defer c.Unlock() - c.logErrorNotImplemented("AddConfigPath") + + if !filepath.IsAbs(in) { + var err error + in, err = filepath.Abs(in) + if err != nil { + log.Errorf("could not get absolute path for configuration %q: %s", in, err) + return + } + } + + in = filepath.Clean(in) + if !slices.Contains(c.configPaths, in) { + c.configPaths = append(c.configPaths, in) + } } // AddExtraConfigPaths allows adding additional configuration files diff --git a/pkg/config/teeconfig/go.mod b/pkg/config/teeconfig/go.mod index 2e32352de592a..374d91579280a 100644 --- a/pkg/config/teeconfig/go.mod +++ b/pkg/config/teeconfig/go.mod @@ -10,11 +10,11 @@ replace ( require ( github.com/DataDog/datadog-agent/pkg/config/model v0.0.0-00010101000000-000000000000 + github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 github.com/DataDog/viper v1.13.5 ) require ( - github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/fsnotify/fsnotify v1.4.7 // indirect diff --git a/pkg/config/teeconfig/teeconfig.go b/pkg/config/teeconfig/teeconfig.go index f56190eca175b..efbc1c44b8e82 100644 --- a/pkg/config/teeconfig/teeconfig.go +++ b/pkg/config/teeconfig/teeconfig.go @@ -8,12 +8,15 @@ package teeconfig import ( "io" + "reflect" + "runtime" "strings" "time" "github.com/DataDog/viper" "github.com/DataDog/datadog-agent/pkg/config/model" + "github.com/DataDog/datadog-agent/pkg/util/log" ) // teeConfig is a combination of two configs, both get written to but only baseline is read @@ -67,14 +70,22 @@ func (t *teeConfig) SetKnown(key string) { // IsKnown returns whether a key is known func (t *teeConfig) IsKnown(key string) bool { - return t.baseline.IsKnown(key) + base := t.baseline.IsKnown(key) + compare := t.compare.IsKnown(key) + if base != compare { + log.Warnf("difference in config: IsKnown(%s) -> base: %v | compare %v", key, base, compare) + } + return base } // GetKnownKeysLowercased returns all the keys that meet at least one of these criteria: // 1) have a default, 2) have an environment variable binded or 3) have been SetKnown() // Note that it returns the keys lowercased. func (t *teeConfig) GetKnownKeysLowercased() map[string]interface{} { - return t.baseline.GetKnownKeysLowercased() + base := t.baseline.GetKnownKeysLowercased() + compare := t.compare.GetKnownKeysLowercased() + compareResult("", "GetKnownKeysLowercased", base, compare) + return base } // BuildSchema constructs the default schema and marks the config as ready for use @@ -111,91 +122,188 @@ func (t *teeConfig) ParseEnvAsSlice(key string, fn func(string) []interface{}) { // IsSet wraps Viper for concurrent access func (t *teeConfig) IsSet(key string) bool { - return t.baseline.IsSet(key) + base := t.baseline.IsSet(key) + compare := t.compare.IsSet(key) + if base != compare { + log.Warnf("difference in config: IsSet(%s) -> base: %v | compare %v", key, base, compare) + } + return base } func (t *teeConfig) AllKeysLowercased() []string { - return t.baseline.AllKeysLowercased() + base := t.baseline.AllKeysLowercased() + compare := t.compare.AllKeysLowercased() + if !reflect.DeepEqual(base, compare) { + log.Warnf("difference in config: allkeyslowercased() -> base len: %d | compare len: %d", len(base), len(compare)) + + i := 0 + j := 0 + for i < len(base) && j < len(compare) { + if base[i] != compare[j] { + i++ + j++ + continue + } + + log.Warnf("difference in config: allkeyslowercased() -> base[%d]: %v | compare[%d]: %v", i, base[i], j, compare[j]) + if strings.Compare(base[i], compare[j]) == -1 { + i++ + } else { + j++ + } + } + } + return base +} + +func compareResult(key, method string, base, compare interface{}) interface{} { + if !reflect.DeepEqual(base, compare) { + _, file, line, _ := runtime.Caller(2) + fileParts := strings.Split(file, "DataDog/datadog-agent/") + log.Warnf("difference in config: %s(%s) -> base: %v | compare %v from %s:%d", method, key, base, compare, fileParts[len(fileParts)-1], line) + } + return compare } // Get wraps Viper for concurrent access func (t *teeConfig) Get(key string) interface{} { - return t.baseline.Get(key) + base := t.baseline.Get(key) + compare := t.compare.Get(key) + return compareResult(key, "Get", base, compare) } // GetAllSources returns the value of a key for each source func (t *teeConfig) GetAllSources(key string) []model.ValueWithSource { - return t.baseline.GetAllSources(key) + base := t.baseline.GetAllSources(key) + compare := t.compare.GetAllSources(key) + compareResult(key, "GetAllSources", base, compare) + return base } // GetString wraps Viper for concurrent access func (t *teeConfig) GetString(key string) string { - return t.baseline.GetString(key) + base := t.baseline.GetString(key) + compare := t.compare.GetString(key) + compareResult(key, "GetString", base, compare) + return base + } // GetBool wraps Viper for concurrent access func (t *teeConfig) GetBool(key string) bool { - return t.baseline.GetBool(key) + base := t.baseline.GetBool(key) + compare := t.compare.GetBool(key) + compareResult(key, "GetBool", base, compare) + return base + } // GetInt wraps Viper for concurrent access func (t *teeConfig) GetInt(key string) int { - return t.baseline.GetInt(key) + base := t.baseline.GetInt(key) + compare := t.compare.GetInt(key) + compareResult(key, "GetInt", base, compare) + return base + } // GetInt32 wraps Viper for concurrent access func (t *teeConfig) GetInt32(key string) int32 { - return t.baseline.GetInt32(key) + base := t.baseline.GetInt32(key) + compare := t.compare.GetInt32(key) + compareResult(key, "GetInt32", base, compare) + return base + } // GetInt64 wraps Viper for concurrent access func (t *teeConfig) GetInt64(key string) int64 { - return t.baseline.GetInt64(key) + base := t.baseline.GetInt64(key) + compare := t.compare.GetInt64(key) + compareResult(key, "GetInt64", base, compare) + return base + } // GetFloat64 wraps Viper for concurrent access func (t *teeConfig) GetFloat64(key string) float64 { - return t.baseline.GetFloat64(key) + base := t.baseline.GetFloat64(key) + compare := t.compare.GetFloat64(key) + compareResult(key, "GetFloat64", base, compare) + return base + } // GetDuration wraps Viper for concurrent access func (t *teeConfig) GetDuration(key string) time.Duration { - return t.baseline.GetDuration(key) + base := t.baseline.GetDuration(key) + compare := t.compare.GetDuration(key) + compareResult(key, "GetDuration", base, compare) + return base + } // GetStringSlice wraps Viper for concurrent access func (t *teeConfig) GetStringSlice(key string) []string { - return t.baseline.GetStringSlice(key) + base := t.baseline.GetStringSlice(key) + compare := t.compare.GetStringSlice(key) + compareResult(key, "GetStringSlice", base, compare) + return base + } // GetFloat64Slice wraps Viper for concurrent access func (t *teeConfig) GetFloat64Slice(key string) []float64 { - return t.baseline.GetFloat64Slice(key) + base := t.baseline.GetFloat64Slice(key) + compare := t.compare.GetFloat64Slice(key) + compareResult(key, "GetFloat64Slice", base, compare) + return base + } // GetStringMap wraps Viper for concurrent access func (t *teeConfig) GetStringMap(key string) map[string]interface{} { - return t.baseline.GetStringMap(key) + base := t.baseline.GetStringMap(key) + compare := t.compare.GetStringMap(key) + compareResult(key, "GetStringMap", base, compare) + return base + } // GetStringMapString wraps Viper for concurrent access func (t *teeConfig) GetStringMapString(key string) map[string]string { - return t.baseline.GetStringMapString(key) + base := t.baseline.GetStringMapString(key) + compare := t.compare.GetStringMapString(key) + compareResult(key, "GetStringMapString", base, compare) + return base + } // GetStringMapStringSlice wraps Viper for concurrent access func (t *teeConfig) GetStringMapStringSlice(key string) map[string][]string { - return t.baseline.GetStringMapStringSlice(key) + base := t.baseline.GetStringMapStringSlice(key) + compare := t.compare.GetStringMapStringSlice(key) + compareResult(key, "GetStringMapStringSlice", base, compare) + return base + } // GetSizeInBytes wraps Viper for concurrent access func (t *teeConfig) GetSizeInBytes(key string) uint { - return t.baseline.GetSizeInBytes(key) + base := t.baseline.GetSizeInBytes(key) + compare := t.compare.GetSizeInBytes(key) + compareResult(key, "GetSizeInBytes", base, compare) + return base + } // GetSource wraps Viper for concurrent access func (t *teeConfig) GetSource(key string) model.Source { - return t.baseline.GetSource(key) + base := t.baseline.GetSource(key) + compare := t.compare.GetSource(key) + compareResult(key, "GetSource", base, compare) + return base + } // SetEnvPrefix wraps Viper for concurrent access, and keeps the envPrefix for @@ -226,41 +334,30 @@ func (t *teeConfig) UnmarshalKey(key string, rawVal interface{}, opts ...viper.D func (t *teeConfig) ReadInConfig() error { err1 := t.baseline.ReadInConfig() err2 := t.compare.ReadInConfig() - if err1 != nil { - return err1 - } - if err2 != nil { - return err2 + if (err1 == nil) != (err2 == nil) { + log.Warnf("difference in config: ReadInConfig() -> base error: %v | compare error: %v", err1, err2) } - return nil + return err1 } // ReadConfig wraps Viper for concurrent access func (t *teeConfig) ReadConfig(in io.Reader) error { err1 := t.baseline.ReadConfig(in) err2 := t.compare.ReadConfig(in) - if err1 != nil { - return err1 + if (err1 != nil && err2 == nil) || (err1 == nil && err2 != nil) { + log.Warnf("difference in config: ReadConfig() -> base error: %v | compare error: %v", err1, err2) } - if err2 != nil { - return err2 - } - return nil - + return err1 } // MergeConfig wraps Viper for concurrent access func (t *teeConfig) MergeConfig(in io.Reader) error { err1 := t.baseline.MergeConfig(in) err2 := t.compare.MergeConfig(in) - if err1 != nil { - return err1 - } - if err2 != nil { - return err2 + if (err1 != nil && err2 == nil) || (err1 == nil && err2 != nil) { + log.Warnf("difference in config: MergeConfig() -> base error: %v | compare error: %v", err1, err2) } - return nil - + return err1 } // MergeFleetPolicy merges the configuration from the reader given with an existing config @@ -271,28 +368,49 @@ func (t *teeConfig) MergeConfig(in io.Reader) error { func (t *teeConfig) MergeFleetPolicy(configPath string) error { err1 := t.baseline.MergeFleetPolicy(configPath) err2 := t.compare.MergeFleetPolicy(configPath) - if err1 != nil { - return err1 - } - if err2 != nil { - return err2 + if (err1 != nil && err2 == nil) || (err1 == nil && err2 != nil) { + log.Warnf("difference in config: MergeFleetPolicy(%s) -> base error: %v | compare error: %v", configPath, err1, err2) } - return nil + return err1 } // AllSettings wraps Viper for concurrent access func (t *teeConfig) AllSettings() map[string]interface{} { - return t.baseline.AllSettings() + base := t.baseline.AllSettings() + compare := t.compare.AllSettings() + if !reflect.DeepEqual(base, compare) { + log.Warnf("difference in config: AllSettings() -> base len: %v | compare len: %v", len(base), len(compare)) + for key := range base { + if _, ok := compare[key]; !ok { + log.Warnf("\titem %s missing from compare", key) + continue + } + if !reflect.DeepEqual(base[key], compare[key]) { + log.Warnf("\titem %s: %v | %v", key, base[key], compare[key]) + } + log.Flush() + } + } + return base + } // AllSettingsWithoutDefault returns a copy of the all the settings in the configuration without defaults func (t *teeConfig) AllSettingsWithoutDefault() map[string]interface{} { - return t.baseline.AllSettingsWithoutDefault() + base := t.baseline.AllSettingsWithoutDefault() + compare := t.compare.AllSettingsWithoutDefault() + compareResult("", "AllSettingsWithoutDefault", base, compare) + return base + } // AllSettingsBySource returns the settings from each source (file, env vars, ...) func (t *teeConfig) AllSettingsBySource() map[model.Source]interface{} { - return t.baseline.AllSettingsBySource() + base := t.baseline.AllSettingsBySource() + compare := t.compare.AllSettingsBySource() + compareResult("", "AllSettingsBySource", base, compare) + return base + } // AddConfigPath wraps Viper for concurrent access @@ -308,13 +426,10 @@ func (t *teeConfig) AddConfigPath(in string) { func (t *teeConfig) AddExtraConfigPaths(ins []string) error { err1 := t.baseline.AddExtraConfigPaths(ins) err2 := t.compare.AddExtraConfigPaths(ins) - if err1 != nil { - return err1 + if (err1 != nil && err2 == nil) || (err1 == nil && err2 != nil) { + log.Warnf("difference in config: AddExtraConfigPaths(%s) -> base error: %v | compare error: %v", ins, err1, err2) } - if err2 != nil { - return err2 - } - return nil + return err1 } // SetConfigName wraps Viper for concurrent access @@ -337,7 +452,11 @@ func (t *teeConfig) SetConfigType(in string) { // ConfigFileUsed wraps Viper for concurrent access func (t *teeConfig) ConfigFileUsed() string { - return t.baseline.ConfigFileUsed() + base := t.baseline.ConfigFileUsed() + compare := t.compare.ConfigFileUsed() + compareResult("", "ConfigFileUsed", base, compare) + return base + } //func (t *teeConfig) SetTypeByDefaultValue(in bool) { @@ -347,7 +466,11 @@ func (t *teeConfig) ConfigFileUsed() string { // GetEnvVars implements the Config interface func (t *teeConfig) GetEnvVars() []string { - return t.baseline.GetEnvVars() + base := t.baseline.GetEnvVars() + compare := t.compare.GetEnvVars() + compareResult("", "GetEnvVars", base, compare) + return base + } // BindEnvAndSetDefault implements the Config interface @@ -370,9 +493,15 @@ func (t *teeConfig) Stringify(source model.Source) string { } func (t *teeConfig) GetProxies() *model.Proxy { - return t.baseline.GetProxies() + base := t.baseline.GetProxies() + compare := t.compare.GetProxies() + compareResult("", "GetProxies", base, compare) + return base } func (t *teeConfig) ExtraConfigFilesUsed() []string { - return t.baseline.ExtraConfigFilesUsed() + base := t.baseline.ExtraConfigFilesUsed() + compare := t.compare.ExtraConfigFilesUsed() + compareResult("", "ExtraConfigFilesUsed", base, compare) + return base } From 57b1ae5e622e6877f995a40c53be75602fd5ca72 Mon Sep 17 00:00:00 2001 From: Florent Clarret Date: Thu, 28 Nov 2024 18:09:16 +0100 Subject: [PATCH 143/439] Update the codeowners file (#31575) --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index e5db92be230da..547304d1cbca5 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -36,7 +36,7 @@ /Makefile.trace @DataDog/agent-delivery /mkdocs.yml @DataDog/agent-devx-infra -/release.json @DataDog/agent-delivery @DataDog/agent-metrics-logs @DataDog/windows-kernel-integrations @DataDog/agent-release-management @DataDog/agent-security +/release.json @DataDog/agent-delivery @DataDog/agent-metrics-logs @DataDog/windows-kernel-integrations @DataDog/agent-security /requirements.txt @DataDog/agent-devx-infra /pyproject.toml @DataDog/agent-devx-infra @DataDog/agent-devx-loops /repository.datadog.yml @DataDog/agent-devx-infra From b5f2511bdc394396901a1398bfb50f5f8ab32028 Mon Sep 17 00:00:00 2001 From: Sylvain Baubeau Date: Thu, 28 Nov 2024 19:31:44 +0100 Subject: [PATCH 144/439] [CWS] Use containerutils.ContainerID in user and group resolver (#31579) --- pkg/security/probe/field_handlers_ebpf.go | 20 +++++++------- pkg/security/probe/probe_ebpf.go | 4 +-- pkg/security/probe/probe_others.go | 3 ++- .../resolvers/process/resolver_ebpf.go | 12 ++++----- .../resolvers/usergroup/resolver_linux.go | 27 ++++++++++--------- 5 files changed, 34 insertions(+), 32 deletions(-) diff --git a/pkg/security/probe/field_handlers_ebpf.go b/pkg/security/probe/field_handlers_ebpf.go index e52a47b453d2f..bc68736d3caa6 100644 --- a/pkg/security/probe/field_handlers_ebpf.go +++ b/pkg/security/probe/field_handlers_ebpf.go @@ -234,7 +234,7 @@ func (fh *EBPFFieldHandlers) ResolveRights(_ *model.Event, e *model.FileFields) // ResolveChownUID resolves the ResolveProcessCacheEntry id of a chown event to a username func (fh *EBPFFieldHandlers) ResolveChownUID(ev *model.Event, e *model.ChownEvent) string { if len(e.User) == 0 { - e.User, _ = fh.resolvers.UserGroupResolver.ResolveUser(int(e.UID), string(ev.ContainerContext.ContainerID)) + e.User, _ = fh.resolvers.UserGroupResolver.ResolveUser(int(e.UID), ev.ContainerContext.ContainerID) } return e.User } @@ -242,7 +242,7 @@ func (fh *EBPFFieldHandlers) ResolveChownUID(ev *model.Event, e *model.ChownEven // ResolveChownGID resolves the group id of a chown event to a group name func (fh *EBPFFieldHandlers) ResolveChownGID(ev *model.Event, e *model.ChownEvent) string { if len(e.Group) == 0 { - e.Group, _ = fh.resolvers.UserGroupResolver.ResolveGroup(int(e.GID), string(ev.ContainerContext.ContainerID)) + e.Group, _ = fh.resolvers.UserGroupResolver.ResolveGroup(int(e.GID), ev.ContainerContext.ContainerID) } return e.Group } @@ -313,7 +313,7 @@ func (fh *EBPFFieldHandlers) ResolveProcessIsThread(_ *model.Event, process *mod // ResolveSetuidUser resolves the user of the Setuid event func (fh *EBPFFieldHandlers) ResolveSetuidUser(ev *model.Event, e *model.SetuidEvent) string { if len(e.User) == 0 { - e.User, _ = fh.resolvers.UserGroupResolver.ResolveUser(int(e.UID), string(ev.ContainerContext.ContainerID)) + e.User, _ = fh.resolvers.UserGroupResolver.ResolveUser(int(e.UID), ev.ContainerContext.ContainerID) } return e.User } @@ -321,7 +321,7 @@ func (fh *EBPFFieldHandlers) ResolveSetuidUser(ev *model.Event, e *model.SetuidE // ResolveSetuidEUser resolves the effective user of the Setuid event func (fh *EBPFFieldHandlers) ResolveSetuidEUser(ev *model.Event, e *model.SetuidEvent) string { if len(e.EUser) == 0 { - e.EUser, _ = fh.resolvers.UserGroupResolver.ResolveUser(int(e.EUID), string(ev.ContainerContext.ContainerID)) + e.EUser, _ = fh.resolvers.UserGroupResolver.ResolveUser(int(e.EUID), ev.ContainerContext.ContainerID) } return e.EUser } @@ -329,7 +329,7 @@ func (fh *EBPFFieldHandlers) ResolveSetuidEUser(ev *model.Event, e *model.Setuid // ResolveSetuidFSUser resolves the file-system user of the Setuid event func (fh *EBPFFieldHandlers) ResolveSetuidFSUser(ev *model.Event, e *model.SetuidEvent) string { if len(e.FSUser) == 0 { - e.FSUser, _ = fh.resolvers.UserGroupResolver.ResolveUser(int(e.FSUID), string(ev.ContainerContext.ContainerID)) + e.FSUser, _ = fh.resolvers.UserGroupResolver.ResolveUser(int(e.FSUID), ev.ContainerContext.ContainerID) } return e.FSUser } @@ -337,7 +337,7 @@ func (fh *EBPFFieldHandlers) ResolveSetuidFSUser(ev *model.Event, e *model.Setui // ResolveSetgidGroup resolves the group of the Setgid event func (fh *EBPFFieldHandlers) ResolveSetgidGroup(ev *model.Event, e *model.SetgidEvent) string { if len(e.Group) == 0 { - e.Group, _ = fh.resolvers.UserGroupResolver.ResolveUser(int(e.GID), string(ev.ContainerContext.ContainerID)) + e.Group, _ = fh.resolvers.UserGroupResolver.ResolveUser(int(e.GID), ev.ContainerContext.ContainerID) } return e.Group } @@ -345,7 +345,7 @@ func (fh *EBPFFieldHandlers) ResolveSetgidGroup(ev *model.Event, e *model.Setgid // ResolveSetgidEGroup resolves the effective group of the Setgid event func (fh *EBPFFieldHandlers) ResolveSetgidEGroup(ev *model.Event, e *model.SetgidEvent) string { if len(e.EGroup) == 0 { - e.EGroup, _ = fh.resolvers.UserGroupResolver.ResolveUser(int(e.EGID), string(ev.ContainerContext.ContainerID)) + e.EGroup, _ = fh.resolvers.UserGroupResolver.ResolveUser(int(e.EGID), ev.ContainerContext.ContainerID) } return e.EGroup } @@ -353,7 +353,7 @@ func (fh *EBPFFieldHandlers) ResolveSetgidEGroup(ev *model.Event, e *model.Setgi // ResolveSetgidFSGroup resolves the file-system group of the Setgid event func (fh *EBPFFieldHandlers) ResolveSetgidFSGroup(ev *model.Event, e *model.SetgidEvent) string { if len(e.FSGroup) == 0 { - e.FSGroup, _ = fh.resolvers.UserGroupResolver.ResolveUser(int(e.FSGID), string(ev.ContainerContext.ContainerID)) + e.FSGroup, _ = fh.resolvers.UserGroupResolver.ResolveUser(int(e.FSGID), ev.ContainerContext.ContainerID) } return e.FSGroup } @@ -383,7 +383,7 @@ func (fh *EBPFFieldHandlers) GetProcessCacheEntry(ev *model.Event, newEntryCb fu // ResolveFileFieldsGroup resolves the group id of the file to a group name func (fh *EBPFFieldHandlers) ResolveFileFieldsGroup(ev *model.Event, e *model.FileFields) string { if len(e.Group) == 0 { - e.Group, _ = fh.resolvers.UserGroupResolver.ResolveGroup(int(e.GID), string(ev.ContainerContext.ContainerID)) + e.Group, _ = fh.resolvers.UserGroupResolver.ResolveGroup(int(e.GID), ev.ContainerContext.ContainerID) } return e.Group } @@ -403,7 +403,7 @@ func (fh *EBPFFieldHandlers) ResolveNetworkDeviceIfName(_ *model.Event, device * // ResolveFileFieldsUser resolves the user id of the file to a username func (fh *EBPFFieldHandlers) ResolveFileFieldsUser(ev *model.Event, e *model.FileFields) string { if len(e.User) == 0 { - e.User, _ = fh.resolvers.UserGroupResolver.ResolveUser(int(e.UID), string(ev.ContainerContext.ContainerID)) + e.User, _ = fh.resolvers.UserGroupResolver.ResolveUser(int(e.UID), ev.ContainerContext.ContainerID) } return e.User } diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go index 82a65cb2aa83f..ba861572e8314 100644 --- a/pkg/security/probe/probe_ebpf.go +++ b/pkg/security/probe/probe_ebpf.go @@ -1632,7 +1632,7 @@ func (p *EBPFProbe) FlushDiscarders() error { } // RefreshUserCache refreshes the user cache -func (p *EBPFProbe) RefreshUserCache(containerID string) error { +func (p *EBPFProbe) RefreshUserCache(containerID containerutils.ContainerID) error { return p.Resolvers.UserGroupResolver.RefreshCache(containerID) } @@ -2508,7 +2508,7 @@ func (p *EBPFProbe) HandleActions(ctx *eval.Context, rule *rules.Rule) { switch { case action.InternalCallback != nil && rule.ID == bundled.RefreshUserCacheRuleID: - _ = p.RefreshUserCache(string(ev.ContainerContext.ContainerID)) + _ = p.RefreshUserCache(ev.ContainerContext.ContainerID) case action.InternalCallback != nil && rule.ID == bundled.RefreshSBOMRuleID && p.Resolvers.SBOMResolver != nil && len(ev.ContainerContext.ContainerID) > 0: if err := p.Resolvers.SBOMResolver.RefreshSBOM(string(ev.ContainerContext.ContainerID)); err != nil { diff --git a/pkg/security/probe/probe_others.go b/pkg/security/probe/probe_others.go index ab2fcc2999ec6..b9dc61a9ae2e4 100644 --- a/pkg/security/probe/probe_others.go +++ b/pkg/security/probe/probe_others.go @@ -14,6 +14,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/events" "github.com/DataDog/datadog-agent/pkg/security/probe/kfilters" "github.com/DataDog/datadog-agent/pkg/security/secl/compiler/eval" + "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" "github.com/DataDog/datadog-agent/pkg/security/secl/model" "github.com/DataDog/datadog-agent/pkg/security/secl/rules" ) @@ -97,7 +98,7 @@ func (p *Probe) FlushDiscarders() error { } // RefreshUserCache refreshes the user cache -func (p *Probe) RefreshUserCache(_ string) error { +func (p *Probe) RefreshUserCache(_ containerutils.ContainerID) error { return nil } diff --git a/pkg/security/resolvers/process/resolver_ebpf.go b/pkg/security/resolvers/process/resolver_ebpf.go index d74425a724d37..89aaac120ca4e 100644 --- a/pkg/security/resolvers/process/resolver_ebpf.go +++ b/pkg/security/resolvers/process/resolver_ebpf.go @@ -1039,13 +1039,13 @@ func (p *EBPFResolver) SetProcessTTY(pce *model.ProcessCacheEntry) string { // SetProcessUsersGroups resolves and set users and groups func (p *EBPFResolver) SetProcessUsersGroups(pce *model.ProcessCacheEntry) { - pce.User, _ = p.userGroupResolver.ResolveUser(int(pce.Credentials.UID), string(pce.ContainerID)) - pce.EUser, _ = p.userGroupResolver.ResolveUser(int(pce.Credentials.EUID), string(pce.ContainerID)) - pce.FSUser, _ = p.userGroupResolver.ResolveUser(int(pce.Credentials.FSUID), string(pce.ContainerID)) + pce.User, _ = p.userGroupResolver.ResolveUser(int(pce.Credentials.UID), pce.ContainerID) + pce.EUser, _ = p.userGroupResolver.ResolveUser(int(pce.Credentials.EUID), pce.ContainerID) + pce.FSUser, _ = p.userGroupResolver.ResolveUser(int(pce.Credentials.FSUID), pce.ContainerID) - pce.Group, _ = p.userGroupResolver.ResolveGroup(int(pce.Credentials.GID), string(pce.ContainerID)) - pce.EGroup, _ = p.userGroupResolver.ResolveGroup(int(pce.Credentials.EGID), string(pce.ContainerID)) - pce.FSGroup, _ = p.userGroupResolver.ResolveGroup(int(pce.Credentials.FSGID), string(pce.ContainerID)) + pce.Group, _ = p.userGroupResolver.ResolveGroup(int(pce.Credentials.GID), pce.ContainerID) + pce.EGroup, _ = p.userGroupResolver.ResolveGroup(int(pce.Credentials.EGID), pce.ContainerID) + pce.FSGroup, _ = p.userGroupResolver.ResolveGroup(int(pce.Credentials.FSGID), pce.ContainerID) } // Get returns the cache entry for a specified pid diff --git a/pkg/security/resolvers/usergroup/resolver_linux.go b/pkg/security/resolvers/usergroup/resolver_linux.go index 88b375e161c1d..39d54b8b670ed 100644 --- a/pkg/security/resolvers/usergroup/resolver_linux.go +++ b/pkg/security/resolvers/usergroup/resolver_linux.go @@ -16,6 +16,7 @@ import ( usergrouputils "github.com/DataDog/datadog-agent/pkg/security/common/usergrouputils" "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup" cgroupModel "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup/model" + "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" "github.com/DataDog/datadog-agent/pkg/security/seclog" "github.com/DataDog/datadog-agent/pkg/security/utils" "golang.org/x/time/rate" @@ -38,8 +39,8 @@ type EntryCache struct { // Resolver resolves user and group ids to names type Resolver struct { cgroupResolver *cgroup.Resolver - nsUserCache *lru.Cache[string, *EntryCache] - nsGroupCache *lru.Cache[string, *EntryCache] + nsUserCache *lru.Cache[containerutils.ContainerID, *EntryCache] + nsGroupCache *lru.Cache[containerutils.ContainerID, *EntryCache] } type containerFS struct { @@ -75,11 +76,11 @@ func (fs *hostFS) Open(path string) (fs.File, error) { return os.Open(path) } -func (r *Resolver) getFilesystem(containerID string) (fs.FS, error) { +func (r *Resolver) getFilesystem(containerID containerutils.ContainerID) (fs.FS, error) { var fsys fs.FS if containerID != "" { - cgroupEntry, found := r.cgroupResolver.GetWorkload(containerID) + cgroupEntry, found := r.cgroupResolver.GetWorkload(string(containerID)) if !found { return nil, fmt.Errorf("failed to resolve container %s", containerID) } @@ -92,7 +93,7 @@ func (r *Resolver) getFilesystem(containerID string) (fs.FS, error) { } // RefreshCache refresh the user and group caches with data from files -func (r *Resolver) RefreshCache(containerID string) error { +func (r *Resolver) RefreshCache(containerID containerutils.ContainerID) error { fsys, err := r.getFilesystem(containerID) if err != nil { return err @@ -109,7 +110,7 @@ func (r *Resolver) RefreshCache(containerID string) error { return nil } -func (r *Resolver) refreshUserCache(containerID string, fsys fs.FS) (map[int]string, error) { +func (r *Resolver) refreshUserCache(containerID containerutils.ContainerID, fsys fs.FS) (map[int]string, error) { entryCache, found := r.nsUserCache.Get(containerID) if !found { // add the entry cache before we parse the fill so that we also @@ -131,7 +132,7 @@ func (r *Resolver) refreshUserCache(containerID string, fsys fs.FS) (map[int]str return entries, nil } -func (r *Resolver) refreshGroupCache(containerID string, fsys fs.FS) (map[int]string, error) { +func (r *Resolver) refreshGroupCache(containerID containerutils.ContainerID, fsys fs.FS) (map[int]string, error) { entryCache, found := r.nsGroupCache.Get(containerID) if !found { entryCache = &EntryCache{rateLimiter: rate.NewLimiter(rate.Limit(refreshCacheRateLimit), refreshCacheRateBurst)} @@ -152,7 +153,7 @@ func (r *Resolver) refreshGroupCache(containerID string, fsys fs.FS) (map[int]st } // ResolveUser resolves a user id to a username -func (r *Resolver) ResolveUser(uid int, containerID string) (string, error) { +func (r *Resolver) ResolveUser(uid int, containerID containerutils.ContainerID) (string, error) { userCache, found := r.nsUserCache.Get(containerID) if found { cachedEntry, found := userCache.entries[uid] @@ -181,7 +182,7 @@ func (r *Resolver) ResolveUser(uid int, containerID string) (string, error) { } // ResolveGroup resolves a group id to a group name -func (r *Resolver) ResolveGroup(gid int, containerID string) (string, error) { +func (r *Resolver) ResolveGroup(gid int, containerID containerutils.ContainerID) (string, error) { groupCache, found := r.nsGroupCache.Get(containerID) if found { cachedEntry, found := groupCache.entries[gid] @@ -211,18 +212,18 @@ func (r *Resolver) ResolveGroup(gid int, containerID string) (string, error) { // OnCGroupDeletedEvent is used to handle a CGroupDeleted event func (r *Resolver) OnCGroupDeletedEvent(sbom *cgroupModel.CacheEntry) { - r.nsGroupCache.Remove(string(sbom.CGroupID)) - r.nsUserCache.Remove(string(sbom.CGroupID)) + r.nsGroupCache.Remove(sbom.ContainerID) + r.nsUserCache.Remove(sbom.ContainerID) } // NewResolver instantiates a new user and group resolver func NewResolver(cgroupResolver *cgroup.Resolver) (*Resolver, error) { - nsUserCache, err := lru.New[string, *EntryCache](64) + nsUserCache, err := lru.New[containerutils.ContainerID, *EntryCache](64) if err != nil { return nil, err } - nsGroupCache, err := lru.New[string, *EntryCache](64) + nsGroupCache, err := lru.New[containerutils.ContainerID, *EntryCache](64) if err != nil { return nil, err } From bd7c058e79aebbf3acb74cf49690f4fdb2cf0d59 Mon Sep 17 00:00:00 2001 From: Guillaume Pagnoux Date: Thu, 28 Nov 2024 19:37:22 +0100 Subject: [PATCH 145/439] discovery: update legacy name field when using container tags (#31574) --- pkg/collector/corechecks/servicediscovery/impl_linux.go | 4 ++++ pkg/collector/corechecks/servicediscovery/impl_linux_test.go | 1 + .../corechecks/servicediscovery/module/impl_linux.go | 4 ++++ .../corechecks/servicediscovery/module/impl_linux_test.go | 1 + 4 files changed, 10 insertions(+) diff --git a/pkg/collector/corechecks/servicediscovery/impl_linux.go b/pkg/collector/corechecks/servicediscovery/impl_linux.go index c85e66d380a1a..c9d4e66bd0406 100644 --- a/pkg/collector/corechecks/servicediscovery/impl_linux.go +++ b/pkg/collector/corechecks/servicediscovery/impl_linux.go @@ -106,6 +106,8 @@ func (li *linuxImpl) DiscoverServices() (*discoveredServices, error) { svc.service.CPUCores = service.CPUCores svc.service.ContainerID = service.ContainerID svc.service.GeneratedName = service.GeneratedName + svc.service.Name = service.Name + svc.meta.Name = service.Name events.heartbeat = append(events.heartbeat, *svc) } } @@ -143,6 +145,8 @@ func (li *linuxImpl) handlePotentialServices(events *serviceEvents, now time.Tim svc.service.CPUCores = service.CPUCores svc.service.ContainerID = service.ContainerID svc.service.GeneratedName = service.GeneratedName + svc.service.Name = service.Name + svc.meta.Name = service.Name li.aliveServices[pid] = svc events.start = append(events.start, *svc) diff --git a/pkg/collector/corechecks/servicediscovery/impl_linux_test.go b/pkg/collector/corechecks/servicediscovery/impl_linux_test.go index 07c7810d7230f..b2ae5d1d4f962 100644 --- a/pkg/collector/corechecks/servicediscovery/impl_linux_test.go +++ b/pkg/collector/corechecks/servicediscovery/impl_linux_test.go @@ -87,6 +87,7 @@ var ( } portTCP8080UpdatedRSS = model.Service{ PID: procTestService1.pid, + Name: "test-service-1", GeneratedName: "test-service-1-generated", DDService: "test-service-1", DDServiceInjected: true, diff --git a/pkg/collector/corechecks/servicediscovery/module/impl_linux.go b/pkg/collector/corechecks/servicediscovery/module/impl_linux.go index dd02e8a13c2f4..181c22b662aaa 100644 --- a/pkg/collector/corechecks/servicediscovery/module/impl_linux.go +++ b/pkg/collector/corechecks/servicediscovery/module/impl_linux.go @@ -685,6 +685,10 @@ func (s *discovery) enrichContainerData(service *model.Service, containers map[s if serviceName != "" { service.GeneratedName = serviceName + // Update the legacy name field as well + if service.DDService == "" { + service.Name = serviceName + } } service.CheckedContainerData = true diff --git a/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go b/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go index a8154ea1b7925..81c5bdb6a9f3a 100644 --- a/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go +++ b/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go @@ -840,6 +840,7 @@ func TestDocker(t *testing.T) { require.Contains(t, portMap, pid1111) require.Contains(t, portMap[pid1111].Ports, uint16(1234)) require.Contains(t, portMap[pid1111].ContainerID, "dummyCID") + require.Contains(t, portMap[pid1111].Name, "foo_from_app_tag") require.Contains(t, portMap[pid1111].GeneratedName, "foo_from_app_tag") } From dba148ca30f9218d6ad566f1bdf423df8fd47461 Mon Sep 17 00:00:00 2001 From: Maxime Riaud <65339037+misteriaud@users.noreply.github.com> Date: Thu, 28 Nov 2024 19:51:16 +0100 Subject: [PATCH 146/439] [ASCII-2547] Make the GUI serve static files from FS + e2e test (#31187) --- comp/core/gui/guiimpl/gui.go | 21 ++- comp/core/gui/guiimpl/render.go | 2 +- .../views/private/fonts/FontAwesome.otf | Bin 134808 -> 0 bytes tasks/agent.py | 2 +- test/new-e2e/go.mod | 2 +- .../agent-shared-components/gui/gui_common.go | 174 ++++++++++++++++++ .../gui/gui_nix_test.go | 69 +++++++ .../gui/gui_win_test.go | 72 ++++++++ 8 files changed, 334 insertions(+), 8 deletions(-) delete mode 100644 comp/core/gui/guiimpl/views/private/fonts/FontAwesome.otf create mode 100644 test/new-e2e/tests/agent-shared-components/gui/gui_common.go create mode 100644 test/new-e2e/tests/agent-shared-components/gui/gui_nix_test.go create mode 100644 test/new-e2e/tests/agent-shared-components/gui/gui_win_test.go diff --git a/comp/core/gui/guiimpl/gui.go b/comp/core/gui/guiimpl/gui.go index f05b6d45e32e4..94be94e231c1f 100644 --- a/comp/core/gui/guiimpl/gui.go +++ b/comp/core/gui/guiimpl/gui.go @@ -17,6 +17,7 @@ import ( "net/http" "os" "path" + "path/filepath" "strconv" "time" @@ -26,6 +27,8 @@ import ( "github.com/dvsekhvalnov/jose2go/base64url" "github.com/gorilla/mux" + securejoin "github.com/cyphar/filepath-securejoin" + api "github.com/DataDog/datadog-agent/comp/api/api/def" "github.com/DataDog/datadog-agent/comp/collector/collector" "github.com/DataDog/datadog-agent/comp/core/autodiscovery" @@ -36,6 +39,7 @@ import ( "github.com/DataDog/datadog-agent/comp/core/status" "github.com/DataDog/datadog-agent/pkg/api/security" + "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/util/fxutil" "github.com/DataDog/datadog-agent/pkg/util/optional" "github.com/DataDog/datadog-agent/pkg/util/system" @@ -62,8 +66,8 @@ type gui struct { startTimestamp int64 } -//go:embed views -var viewsFS embed.FS +//go:embed views/templates +var templatesFS embed.FS // Payload struct is for the JSON messages received from a client POST request type Payload struct { @@ -198,7 +202,7 @@ func (g *gui) getIntentToken(w http.ResponseWriter, _ *http.Request) { } func renderIndexPage(w http.ResponseWriter, _ *http.Request) { - data, err := viewsFS.ReadFile("views/templates/index.tmpl") + data, err := templatesFS.ReadFile("views/templates/index.tmpl") if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return @@ -229,8 +233,15 @@ func renderIndexPage(w http.ResponseWriter, _ *http.Request) { } func serveAssets(w http.ResponseWriter, req *http.Request) { - path := path.Join("views", "private", req.URL.Path) - data, err := viewsFS.ReadFile(path) + staticFilePath := path.Join(setup.InstallPath, "bin", "agent", "dist", "views") + + // checking against path traversal + path, err := securejoin.SecureJoin(staticFilePath, req.URL.Path) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + } + + data, err := os.ReadFile(path) if err != nil { if os.IsNotExist(err) { http.Error(w, err.Error(), http.StatusNotFound) diff --git a/comp/core/gui/guiimpl/render.go b/comp/core/gui/guiimpl/render.go index b22cd883a7dbe..7ec8ff3a88d17 100644 --- a/comp/core/gui/guiimpl/render.go +++ b/comp/core/gui/guiimpl/render.go @@ -76,7 +76,7 @@ func renderError(name string) (string, error) { func fillTemplate(w io.Writer, data Data, request string) error { t := template.New(request + ".tmpl") t.Funcs(fmap) - tmpl, err := viewsFS.ReadFile("views/templates/" + request + ".tmpl") + tmpl, err := templatesFS.ReadFile("views/templates/" + request + ".tmpl") if err != nil { return err } diff --git a/comp/core/gui/guiimpl/views/private/fonts/FontAwesome.otf b/comp/core/gui/guiimpl/views/private/fonts/FontAwesome.otf deleted file mode 100644 index 401ec0f36e4f73b8efa40bd6f604fe80d286db70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134808 zcmbTed0Z368#p`*x!BDCB%zS7iCT}g-at@1S{090>rJgUas+}vf=M{#z9E1d;RZp( zTk)*csx3XW+FN?rySCrfT6=x96PQ4M&nDV$`+NU*-_Pr^*_qjA=9!u2oM&cT84zXq}B5k!$BD4Vu&?bM+1pscNs?|}TanB=Gw z>T*v6IVvN? z<7If|L2rZi0%KIN{&DZI4@2I75Kod~vRI*C@Lrk$zoRI`^F$Oyi5HuU*7@mriz!*p z<-;A`Xy{#P=sl02_dFc|Je%0lCgxR=#y~GBP(blD-RPP8(7$Z9zY}6%V9+^PV9-}S zeJrBBmiT&{^*|I7AO`uM0Hi@<&?Gbsg`hd;akL06LCaAD+KeKR9vM(F+JQ1r4k|#^ zs1dcJZgd2lM9-ss^cuQ?K0u$NAJA{;Pc%#+ibshkZ%Rq2DJ}Id^(YlWJx)DIMNpAc z5|u*jq{^s9s)OpGj#8(nv(yXJOVn%B73xFkTk0q37wW$hrbawy4?hpJ#{`cMkGUR8 zJl1$@@QCv;d1QK&dhGIO_1Npt2c7Ttc++FR<7`t1o^76cJ&$`{^t|GE>K)k3GNh{I92zC*(@N#&?yeeKjuZ6dlx1V>2carxUub+37cb#{GcawLQFW@Wryy^!4biE!Rvyz z1Ro2&68s>zBluk~A`}Rv!iR*c@Dbr8VURFXxJ0-?Xb@%!i-a}8CSkYmfbf{`wD2Y2 zHQ|TCuZ2Gd?+E`8Iz?iUS~N~HT@)&sEqYwENVHt^j3`EwC^CsML}j8zQLCs&bWn6u zbWZe&=$hzV(PyIXMgJ8IdI`P!y)<59y>wnnyw-WednI|Lc%^yedzE{&dmZ&U;dS2Y zC9k)=KJoh6>nE?fUc)p+Gqf+QqQ}#Z(Ua+EbTA!ChtYHBC+G$AVtOSVNypHsw2f|| z57Ecylk_F}HTnwuKK%v#9sN5!#306#5i&|f&5UPs%mQXL6UD?a$&8iBWb&C3W*5`Q zv@>1IKIR~ElsV0uWu9j)F|RV0nGcyynO~Sc#7N8&dy5s~(c*F9N5zxH)5SV*n0T&u zzW7P;)8bX)2=RLHX7M(0tk@t<5~ql*;tX-NIA2^QwuyI%8^q1xc5#<@ulRuYi1@hp zwD_F(g7_uz8{)Uc?~6Yae=7b${Ehf~@h$Nk@$ce$;z9ASgp!CPGKrr=CDBO6NhV2x zB{L+mB~M7gB}*jBBr7HBBpW4LCDD>N$##iRVwR*yvLv~ZLP@ElQc@#nl(b4ZC3__M zB!?u&Bqt@$NzO|yNnVz`E_qY(w&Z=uhmubvUr4@@d@s2rxg+^qa!)cS8J1E~zSK)9 zk@`rL(f}zd9W5OveN;MGI$f%hhDqm2=Svq!mr7Si*GSh%H%hlkqor}u?NX!EEKQSU zNpq!z(o$)qv_@JlZIZT0cT0Pu`=y7aebQ6Xv(gu&FG^pLz9GFTeMkC%^dspF>6g-P zrT>xsB>hGDhxAYBkaR@mArr`GnN;R0^OLD$8rc}xc-dpJDY770sBD((aoGadV%bvJ z3fUUjI@w0qR#~(xPPScUl$m8|vMgDytWZ`etCZEq>Sax`HrZ}jk8Ho}u&ht^oa~~k zU-p{pitJt4N3t8TFJ<4#{v-QI_KWNf*`Kl@*@(A?x4@hBmU{bo`+2LpHQr;q$9q5K zJ;gi7JIs5Y_Y&_F-p_b%_Kxx1?!Ci1!#mHr)Vtc-?%nR)<9*2cg!eh`7rkHie#`s1 z_YLoFynpom)%#EHVIQ6kPx>cKQ_h zRQS~TH2duK+2?cA=d{lYJ}>)R@p;$hBcCsPzVo^5^M}u%FY*=oN_~BO1AIsMPVk-L ztMi@Xo9LSspA==WB&S*uVl4V7bBsZ6Ow%WsQuJUl%vOsv%FNx7`s5UAW~xPRj!Q^N zwi+UnqRjDntAR@;SgfW*vp(6Brq42&k|Pt0u7@erYKn`qB*Yt|l44BpR&$iaU;sM- z4d^4IlC0K*WWCuG6&q_xHzvW8D|?VmP2oxsjM1iyl%%N4$e09kOp@NLPtiwN&H6aA z-eTa;a#fN{F^O?WQSqF~OEH*?dP|xqDK%Li3CQoKxK{5cQ&V=BV@$F7Xc#FxtWojs zXNfkM61h7$%AA;DPB2qoM4Ov7+011Nf%sPRE(aRk;t@!SiLC) z(4}(2HO9bnN2Nq^J%e^*xrU$#s~$RKF+`d5K(ClYZt5*oeM)3>R7_%elsPso3MS`4 z=E0Mj$&@IdAbalxm6OD4U#Myq|K@ z-&JTzbUk*Y0-^+{&H*ME<4mrECC04R8!ZMC(2?u*ebPc5H;tpCU=m%_jxw7~>F%j@ zrQFl$N~Wf`Uvh+X%>u^=z!V8t`pCG{q@?>vOLA0Fl0G9QDJnVY@1Ddb#95Q{QE_nz z(2-1F6PRS~8IxqP=wV8rtMRU$!gLw+F;Pi+V=Q2cGRB&cV@%1(K)mFrc%%OB*-1@# zFgILx%zA6OUJtY}rKE5z#efjS0T1cTZVdO+9M=22Ow*gK34rH*)?hLxWC7zvB>|5{ z#sH12*7O8mIkT%*9G`Hk>dLs;G!k%{O^NzUkTT2tE?TUH)Z}POWNL~_)Z7`ae_Ylj z(7?KJE)jQ&Hb*3o*rWtwBJh@*Xep@{0}KNAUT+2=21z$2x`_$+QVf~#34kTq)f2bC zy5teaYIF&ri#6S?KM*c=&h^$+?f%Ff49eYLDyV~)MBo$Pac=%%%@&IxHZ~dv3zK7v z)+Z&!aB~(1vu4#BfHILT-f*QjQFJ9zQ(O;j%x->){2xR8tH4$FUnM|M7YE+2!8H+| zWQx|On?W8yq%DaSP+~AC(dGnwTuhWj&oP~wvyCRJen%=uy)iDqm|)FJ(pxO9f_SqD zCJAN`7%eq6S|0`S9FuB|F{OY|rnuN6A;l5}g3RfWXkb3jsU|ZpPHK`V$znApB!a$$ zM&b>rphC>h6sWK0Bt38=XbW>{Od`+XNK_^W~`uM1%SkU{?CLrT| z*5rU5a4DAt4QsU|SYaF~z_MnbZd3}WFFoi`11Pc7q-YRfpk=(?HFGY!oON*L+>FN= zrpV-2sAV;nKn7Cumed63yhYD(iyLEHoL(PiGR3;=k4uAd$Ws$QzZ>JBRtl%)qmlt( zlrcu1tdC7hu*PwHfTp+Wtez}SISAlE3{#BBi@~MV=s9VU~oa*A29jU;4uHLv)t`=cj zMkBD=0}Gn;Kx|?3|5QxeB>h7H-63>M1rORUPw)_81!IgVnE33zbVFL~|4d{TmH>B{(ST?=mZBvFKDQ zs6e71u%5ZNZgM&lh)@6d3N{!aL268{00aWAef0lv1i^_}z`hyP% zyasc1UyCFdAscUwN{$1kE)jexW8Cx^)1woB65NEk+OUEqN;12DT?I)dX#Iaq$3L>1 z0{Z(M#~c61xyK|v7Q!EnR;&(y&k3ik}S zXTlwpYD`!>eg3q#=~2@ogTnwcEEv)N8U~)gNue|5Zu9Vhq$UQ zm=4KMxM#pU6K(*VJ`HXtpAMkY0d#r@+&Z`cZaTnC2e|2O?BUZ~t%L(~5I_e3bPzxX z0dx>R2LW^tKnFpq!O&_jzy$+bFu(=7JFw8*!oumUh8A)!p+c~``Gq=nX{h@Ft%X3% z5Wo-u7(xI;2v-IbLfjP=0TLY`(Lp;p0M!Ag4nTDPssm6Rfa;(#p#T>OaG?Mf3UHzB z&MfAN0W@?*-1IoE7(i!0*$e=k0iZLWYz8zr1Dc!>3NSJ7geGSI+)RL*32;EO5TIEI z&@2RK76LR20h)yX%|d1ZTo}NG0UQu4Bn;rfLgIqB84nAECszh=Krr33X>d=6I|%Mz zxI^I9!5s?s47g{)9hRo&)&V*omkuiHfLuBtmk!9K19ItrTsk0^ZaOp=1PulO91uze zgwg?_bU-K_5K0Gx(gC4#Kqws$N(Y3}0ikq2C>;pDE*Ri~0WKKefIhllfC~Y*5P%B- zI3SA-$f5(X=zuIbAd3#jq6+~y9l!xibU+gw&_o9`(E&|#KocF%L`hz;)DWmLP3;5fv}-Kn^2%lD9|PpXcG#w z2?g4O0&PNpHlaY9P@qjH&?XdU6AH8m1=@rHZ9;)Ip+K8ZpiO9yi^YTHyZbQTB``tr zgIpb(AMAd(*f?muyEF4$ViPofhWp)2_v3ym^WC`x?nk)$vC#ck*h}=pfDBO)G+>I#QjVRoW zDBO)G+>I#QjVRoWDBO)G+>I#QjVRoWDBO)G+>OYsYl7UmCTO7>(Ly((g>FP{jT5xc zjcB18(Ly((g>FO(-G~;t5iN8hTIfc!(2Z!3d+HXsN3_U|XptMyA~&K%?h!3=BU%JB z4s&B!kI%_aQR>IrR=x#+$+m z;mzdD<1ON?aK+rWLd3m{XXDlKF7tlj5kBJc_#(bPKaf9_AIz`iH}m)K`}oiCFYx>M zm-%n=-{;@vV?KeH`Llwpf*3)(AW4u1G4l#RpWvL}qTr5jrf`mMv2dxdS=b@mD?BVb zC463ZN%*qxvhY3O_rhO=4pE>e9OBP801EGXWnOSFyAwG zTv6*$;wj=_@l5eN@nZ2Zh*qaSY`R=r4N>V1@qY0M@g?y!@q6OWAO?L){EI{=882BR ziIpTnM7d02lhi{L`JCic$vcvdC7(mg_&<_gB)>zHn1$%@bchNskS>9k@H5g)QoS@! z+A2K_vEG-ZuS?&8IPWLY-yx#=u>zUPB{q&{POCP9RCmd^r+u&(rp@QL@y@~QS|_v!Z8?{m!OIiHIVSH0@lOL9!ke`vC zm%k`~TmGs1M>&>{C?twN#iNRuig}8ainWUMip`2>g+Y;`$W@dm8Wf$1Ud1uRDa8fF z%Zkg2w-oOyK2dzBxT(0M_(gG7NhzgDwQ`Jdsxm}5Tls`?vGQr%R{`icA`e!hMW`33q-@SEfp919`B@V$_Hqg<(g&v8BX9I=vHqtmmC?CQiTI)~<@i|)VblQ3H8$=5wV+lKpUN(tkX3=CokeSoksl^f7X+{TA zIF)6dh2AY2%Q6!H89e$99_(Y*(NEJ_CXL1~&@gHZ!{tKhI3Nu-(Ha=IyBUSBv$eHT zgB60#)|^Z&R`8NoCM!ETi&2iFnc+MaF`j>W($I9M|{Fdn9I0?i2Fo&$U{Z$8c3Z@s||tuw%~3Wi@-Qn;%~T~t_BQle$H z(%4@xz~aD7*k|q?4X(!xeC$IzBLc~&skAbfW@1}K{oBs2(=e?$os8k2kr~4h zJ2O0>T)++~{L*NRd_Vq^9U6!SiC8JPP*C~V5;d_4fTOkv@S@>s{2b%v$CGe8J!BW$ zWJe|m8oOG%dsIDzy=8keLkF>xe{|R014mR+Y`{OWCs<;@^T<4GVD_^hV!}nQuYO;{ z5XCB*xT4s7O{^guzsd)gfXJQqzy2L25&H1IC#;IT7k4stQAl`4B!EN5{B z%pdSc|Jk$sj4=3m_)QJ7aLt;9j9?+l;Lq7qmdS+Ivq3g^vuWr9Ori3g?wip|f$O8$ zKoRc7K@j_H<&QM^hJ3>(Z90(msVr_2V938oGun{|A+`@ijA8@%`OHKb zX4RUNno+1Fsm@K#$_0FLSyEoIDzhc4IalLA zb%1SMvT*GQkdEyv6C56npQmv*NZ^3*=Jo3^6G|OS!ffJ!A0cyp)U<7ESpTewESXBe z$ZR6j5FVLIBA1gywK2K6+Nce~K6us!{FM628+DDZYQJ1{Yuj%-_7@*4Jyh0S(blr7 zQ-nqAuHCuK`7N>MB2OiJDPqjMF*dWAQ9BcC&ID(IiorKn=&gOoj_sZd&SY^p4GIN6 z$ujr8`Q{!onZ=4VG(+JDv?mkDM~vf;4L=7e7Nj%+!^8^nu>vGj-o{J^t(iXu^z1a6 z0mZ>6lSYiTBz1Onc}b2oGRqXbRTVgdgMEsSh7)?(We#mOJJ+mOJP0 z(|Qi(A6B=uRoAs@&vhI)^SmmM?4jyV%qZQ#(?JiOp< zO{!&p^j-9@LQu~-JXr0BLP+N0wPX}7F42$#vX!5n)@nGY9y%j9*xJ{XrX>k@D<2ov z;k9@ap064LgRzKg!4DG~FhVD&S$f$cv~yq~%`67qSK?$420t)W6Gjt0(Gb6%U_j&E zc%%E!0Zp~w;f&=Ih*)jhQCFX?&9BMdRk$mb@co-hTT9zZMTPrL6hE)Vh1dg|@K!K* zTZoNO{z3a$X(ofl(}7b#UtVCzXvSV&Z`U&KzyA9B4F4p{ELy#Kk(SYcNpULjSf-&I zC$NOGes#q~y9(8uDPS^NbFd%F(Htv)nK+TfCuw38tlM_BUwZ`qLE~4!4&lS}a0Gsy z)i@LaJOb1^3B(c{rnOE5SBkCp2Rcz0O>36T0c(Z(aF&Ay)hz3moP-^ynaT#zZENX=Dem$rBj#FkIX-f$24$w)OS~yvH)( z;A7l3ngKsZp>)h9ckmtOY_fr@okIf1XkZJh%-n6NwH5?e3U*p|sN8HWU{vQg zCL+RkEEHe`i*@)@mf6%Uu+exiEpRDX8aihIL)OnReaLhgw+fiIp;iYz59ArZ1N^$W z8he9^5ti4N)s@r@Zyem{Z|+Sm1c_1NM_Js=uBDk{aG(Y}0$W-k%aA^j1y>(PYAw(T z+zKnO1%98!@D$>A;fbvRM)^KWHGP|@VZn;bpoa!(Sl4WS1|n(q!%|jb6E0=7PP@Zy zghoFgO>licKEUwAAHdZF*9VMpB6Jp?IRcHAdma(6LTQ!$uG!tPgz^r867LH@VA>{RgLukD%WQ6OsZCj^x4qz~8LrOebNhkr? zhA-l$aTnNsJcl$2$S9Iwjw&rKE3POGC>Jna&>Jp23*GpIQ^=f)f@R}>BQhZ34VuY? zuC(OB3vdOMU^W>c_GFn)xdG!Q_8Z-3M%jIh-&wc2wL|T=E9h*@$t=;PE#qgFWaMP2 zop%M91+ATRTE++?hk@I073jMNb_UCs&9<0cGt&Zt&uwAA!5GR1s|QvN61bM;yqFCe zz`4P-q;?feYH=;olG|l#X$fGIj>qtqNu8Y&vpO-(hm zc5O#vb9>EhY+ptD@9Hhso7N_RG2mP_3t9*N6mMs3^hANHvM2Ut83!nEPIqgioI}Ap z1!jzd;1ZSz)l6Zhy;JQJHyHgbL5aKZA zb(hGdvC@4#?Ry)wjXk9YGCG;OyqzUk>a3l0&3WL4tcPibPCGDuVP>#WUrwqV58>0~87#&v_za1|68Z4FK;8kSI~i6PbuJ&@4!#2{Vqkt@6*CBW zq^@pPT}^!eGrVzlV@XL_NqKPqQ_g}FCW-|#)7xu1ZSDo{#df;4m&vN%*__AV_vnc< ztWQ9f&-r{KOo>#5r5CZsjn6eVW?h8olB$@4yBkiYA0i8Ii+|h6)AqA!ybzBiW646s z&sK&@$s>5K20Z3KVyGY+Z7N$isbziwvcf!l0qZni2*D?ux8bmZ{_kk7Z*FE>ejwv4 zbdHCs&{^n!r=t+A@o*I~+Qz*6`kiWWejWLhq>&kaPQ)SF!4UxyB<#v;-jSl>Gy!K9 z_c!nB>ePHEWR}vf9AoeXS}I(AX~Ua%53qTT!;@|Wis8qh2iyWg3#%=of#GLn7MRT{ zbECO46BI#;)taIiFG#WW?AHQuh+RiB*5cfVZ=^pjXXMwjsOc zkew0cLXVfj0@@R=uF#&k)P3!ms3YH}Sa6as z-+zA+GXolCB%%>8a~>xQfqOv4<#Gf8qw+ZQUkE=Sl(6)xtKZdNR{`&U2{nTY%Z=Gy zQU@?kaW+rLjjCYpK2>ky-cG170gvZ*bTZ5S3j(38Pj8ECkL-!*sp+ZT(;%wrtK`(y z01g4q*A56nU{!-dJel_Py5?r>pr_+!zTJ*f@D^OGV%D(a3?88IT_J;)u-qaoyN@E#8N z^ERHLWduYvems$BhX*iN))}m0fC1Zjm{SewU=_fC!sS8&%w(Ed<}e?+tO*DVTnibc zjb?5OCxLy>IcnXjVQj0odcrtYOZ@ACHWTkB^Kz9)IrK@#E)UG?-_@ zyb8?I6c$t!s-r5ImuYEjb4^RDid!giOzq+bATcBw*$R$JIHO+5-eYcF4-aNs#yc&Z9}$OTab3Op!K zsi#?r5kN3(ctA*k8KJ|2W*Y1@b#+WBhy@XXJaSCQxr>XI5JASqMq`;Kld-bAz#$00 ztpcFt_QsBe-J-5)tZZ$AWh9Fys_?{Bn4R>8<~U#wLVSWzwKg=i)@Xj{dgtn?uS85y zNkc=G_ASRGep6Lr12>{F&gJADOr+tAHu+dj#*69~_v}8z2!d$r2jgt0YpT~ab=W(b zJ47G74Bb=05~M-RRIo}0>@4_3J@h$l%(1K^1eme4Lj_D}-_=l8r>SE?z=CZ86S8e& zIUj#3z}tqF^W95v5&=;zj_qMSouCH^rw1L}n$iK99dvpj=Sq}-Dj0CFsFSua$FYND zPO;olnE~&00?SOH$8oJ(gUJSmPspUu-~}@~tUIj*+5$_hX?G^01!GoJsIuU3WGsOG zeQ|v1iw{E-Ah;}8oko^b*A#PdasuQbgi|n#U^C0)=GoF(@|bS?1w>+UwkN0(S{Y$D zjA$O7#}Jli^7AV*8gm0cg@;4M8|<=lUq&}-bjUY<-uw33dw(+NiCU5+%q}j@)-ak$ zV^=|)i7GM?C@UchsS@NB+89kuQDJqV8u;ga?>H6f4(GwZl=v*SS`x%#fq>y#dXDBC zQ-e)v&&jOPGW^b}cJMHP-VQ#;_zG|&m|oztI3heD0H^c?uuv@gfh7oFhvfqi-60R*koEXQCOtVrdnj{zmqE>_i9bPb`GX62 z%G49LQ6IZ8mJvQn#{n`8INIQ-m3v0MgE_nfH^4OB@{rAN`_R8NF9v=C!@fh5W57ik%-Mi>^{T} zAofqh{)IFXkmhluc?M}pk>(20Qb_wa(#9a|5E``xjrtsoo`yz$h{jApW459(SJ1=L z(8JwmtQd{mfyRE0#@D3Q85wBC1vJxu!iLbSwP*{{<~*LE-IaVGUYz04?rEOYWd2m!c<6qo?@jsR*<}jaD?G6O-_{*1Urv_MvB%pml+0-2t@jI9m56dX`1&r=tz)(Z<)&rip0N z%V={r+TxA2^rJ0KwAGFxC!)wO6uAUNnowi|iu?dYeupA|N0EP_ZFMNhA4M%e(V-~% zB^3P~idltXE~D59DE0=@uRw82P+SL!yMy8%NAaH_Lpd_MixMWIgnX3n9ojw$ZNGsM z(^1kml+=onXQ1RRl>7!t{uLR=BI9giT#1Y^$XJYwmyq!-Wc&=7#voHYGQEaUSd=mz zr96&O)}tL1+CifoImrAJGS?%^Ok|mbEOU^h8d<(XmLX)VM5&c1Z4OF*3Z)xR`T)vU zf->GgnWIo<5y~2mc7~#zsc7f(C|irN3sLq*DCb3#%SX9wDEBv%>qL3aq5N=^-+}T! zK?OdjU^yx%K?S!^VHhg%Mn&PMC>s^EqoT8@I0zNjppu!WWF0Emg-U)!rK?bBIV$r) zWihDiYgDd4V8{4#1uMy)hzZ9r`lYF~xgO{l#ab@ZdokJ0YwXm=&r zeFJqphPpCP*Bhw27InXa_PmAmhoA#-=-?D|$P*oU5*_*o9af{m&!8il(UITK(dp>u zPw3bW==d&l!UvtWicU^IC&SUnbae7CI{7?0wF#XXM5mucr@PUa{ph)JbXJ7UJ%Y}) zq32oj{2g>Y8l8U^z3?`=a2#EnjV^wUE-BEZqv*w@sDCGV`8;}c3VPiez21r5SdHE| zhAzjU%YEp|W9Z5!=*=tWYCF2tjNYn1Z&#tWucCJX&^y`a-EHXIBj|&T=z~r)@CX`s z1%0>_efSdkh(aIzfK(Dxss|NMo1u%aJ6M?c1+A06nYN$97~(e0z?XMgl_8M?Cr z-T4;%`ULv*F8b{&^t%cDu?78CgYHg8gHebqrBFBpTm7Eh6pu&oj!^t*6#son@FgXT zr-U~tQ3WOHr9@v*USlbUQ`6s4%nFKWqQotfWHBY3LU{*JJ_5=olk(j``F=<#Kc)Oa zD8KKhhlVKsbCjxyQct7;HB{hoDzJ@W=TMpwO1q01b(R|aI5qkkYRqhEjDZ^SCH1hJ zdbo-j8%>Rir^YX&#@A631k{9TYQkx1!e`WkFQ^G$QI7;tk6fZ2y+l1WhI(u-HL;PJ z_$4*z32IUbHR&uhc`-Hl87ky)D&!!g%cXR`QK3RAl%+z0snEx%&{}GS7d3MX71lz9 zy-m%UOwC?Q&Hj;^6GqJ;)Z7Ww+|AV7R%-4`)Z>2C6C0>`YpD6}Q420m3l-F&`PAYo z)RIc-$w#Osd#I=Q)KkgSvL)2hfz;EVP|LScD>hOqFHx&9sMYhRHBxHrIBIPYwe~M+ z-4W{9)71J|)cQ5l`hC>;@2CwTYQq+4!w1yHd}`y%)TW8lCL^`!3bi?w+FVC%iKn)1 zptk-%MFvrkH>qtpYTGp`Y7Z6l3l+0~iuI&oXH&7yQn6`NY&)eNO~v_BaX(P;CMy1I z%CLemyh0@;QrqWI+drieuTx21P|1aqv5PWwQz=erhk-KJQr7cSY9f`kfl7~~GJdAA z)=@jnRCXbiGnL8}P`S@jc|}ydlPWkt6+c52S5w6!RB0+zrlraiRK=TAivl7{e^0k;pVIJl=A~4Sr zmb^S=Ab*r20=5#I5klDC;VB10R?)*D;Aab@fkPikN5!xh;yZTFK>k%nmXhqoQ!w0D z`nqozt^_Q@9)>G(x>pzi$Zj&3k1q>vKz!ymnp_qFm9B;FD#iR^J1oBn=phB{wUU8ByI>H$ zx8!$q^&C71XwoQrfyNoM=PID%C?&UCEhwxkFVqYV5Ia96*Ay3}8rg(L(}Np?fUSV< zJO&x*C>!j`DNaJG(1B7|a?Yb+Ls8lddmB)K6#yE|o@S4?6&lz_NK%B zkq5-McvwqBqNhLl@$vtvtKdW3|Ni*N)sM7Ti$$=S=i!I3M{ifpp6J)(lYyQ1kItoa2CREud1?qW}t zM4Dkg^u(WZ_eR(ZM4m(7XDhLZ?W2K;DP&7Sv38K>`~~8??IrDMDYinNha}2FiOrT> z8fWDINp)=E?=H;RV^ycIj%P?dzqq-zv{ikudG9{VMbCj6I~)g<*PUTb3Et$Cl1&4S zF!BbzGapVPj0g@yT%AR8J2pNGeYam|7_VzY*!nqQF95f6X_??}N zy}c^XE;S%19?&dkI$yl~L4z+~*L5H4Us%Ws+y(Fdhs9L_Wq|Ns$Xsne`9HBgz|0BS zI@STA#{FWu!U-$<>onnZrtTk~;dZTr?qf9E#+Bd{t+{3f-o#en+%_)cTwCLKgmtMA7k=EzdSd(S4Zx%j-keF30X!bM3MnU- z8j66_NCc!Hx&=wlHNVnQJ)A2URP3aIH7R9BUVB!JhAcZ!a5U#=){%f?FPu1c?7XP9 zzNX%;g3X%JI!)9Yi{4y!QB+r42wTR5h2^k^M8=FVwk0x#IF2}DiCZ?|Z$P`9YMsJ2-1-0Jt2 z_iqvv*W1hNYCD9#;9S?}KM!Uf$~#;TaDY6`&#G?E?Nnnk?C&(U@6xtku6wKg%HhVt zEeG4Mh9EFTT+L%xjVB!0tF3bl7)na&HF3|!pG&ydez5sa(-FM{#m`cG+2uf29T+j|ZIiwhQQaBtkbmc4h zV*1L{>(re1uZ-E4u3bcC^U0g_kh{yHmH{o!S;O6yP*aK?eR8GlIrLf!WX=NQ} zl-0KC%4&`Cy2I$a?lkf%Dk~~fPAeR#xB?(fU;`Fg9OsoyEfw9lO~izk`a33NvE*4H zDaYHQ`j*(D3<1M2&fB^96=_Ym0dLN)Eomrgs0^@IHq_MD4nFDl(0}kr=ZE~#y84O+ z*T#55Rl}~@x;H=cmzD$PU^(bJoKBC1kexsZf?x%YLg6^$J~snT1>~(@NrtTWEt=dV zRujbWz^k~ed>8_3pfCq;1O%)v1quT_hi*GgD0fz6=Vhx&xga~cxxGreOSl(62#Z(X zA$BiBT+4)mHfOx@bpGk=;~J-K=pethAZ1UAn*0C&Z6t!9S(Tdu{5MOGncLb~rEP=Q zA4JN25TvA}nhUf}-N-?Hc6@$JjLO&$c~UbNA;^NWaaGzbFvNhS7h358Tb@~!1DmVx z_GH7kgD!P2M1wlDgH!Yx?Ti(0x{x0qw<&$Sdi|!Z<8fM|#({jN9*5Fk5_<})?K|KU zmm@-em$A+WVi)4C;e?7a!XImBM}#9{cW3Q^g1rIK4463J7MLW(%%QuEyEkF00SI&# ztib=vkwqK_V2*(>_Fql>G5CnGwz<5euo0wxz#mR_)WCtYqVkerExAsv^Gk}k5axK; zxQifne+6VXLfF#W&|Iq}e>l3s*zU9;pvZUhPy=xAB$!U%%Sjj>?+L1FtLmz2vB6R7 zKe%3i4bI}~(yEf`(g3_6S$RCaKj)Z+6gn>QkLJYeGpK>p4KX{m=V(cx^CCYdA%9)G z%9#ec&S$|3=!WwSJ$c>fO&aGJJdn|Bwx#C>r03)dc5? zAQ0>a{PHX8IojnXR?+w>n0uP|5v4zdlM-a@4YEOv+h{nRk@Oqv3y#+|w%B&(H3302 zFb9P-psFeh%SwwyME)q55Ke;Ccr1+{!rmJ~ZfWK3!4VwLFF=?C4hb%2TVh3I(i9Rll`K}nIa8lYHz#W$V$QxpPX|K7v9$=H{JrZm zcO;b$JTV5ZejGomcJT4@usihU*V?LTTTQj97t{otb%O!$v5Jf#YdC#@z-MFdPg<_)c3024Z7yxZ zX{0cYR~4RM2kwqx@c?f$?fNN&-YH+?3Lg9@h7}K-&Vd2f-t!U`HWFZyYv51X39AI~ zBX9(T6FB=2;R#CsyAn7C`_jOmcwiy~)DvNo8CR06cq{ZBo^VydlqG%zmI)R-aLjT5 z$dyKK>5V>R)dUhLoL@E5fxJJ2r+RwNoQHE^{mbI%NHP~hYPvefSlepSzD2Y|_7Y@a zY9_B;Mtrq9a*a8bouZ7Kyex}qI7>K%ZEmcoYtnoOJ5IB&!x3QPO*ozPv>IsY^U4*> z*B)%^X+5Emg1U4M0T>=S!tD|Oe|w&02Q^B^RHqOA)%h%3KIB*DR6=!)KK+QMYa?F1 zolmHPzs$mnI&mQlCiH1I%`|c5y19|sCC&VdHw&)4qr$J?mv9HZ1=mZYgS_%&!Lp3y znk9MsPa|jcPgEZfcCbf;nEB;%OdZtXwv~GsC3X${ug9SJyOXFjR#4I8w#6b(t)~he;onKx4+XoqKb%twrsn zZAAyN4`l6wgH|(%)(tK@K4CK-GAA#%E)mvA&e}}LB zbPKXq<#~VgU-fe&x{oiW!Qm^{3D50t!n3=}wnu%nO4-cj7ufO(*=D<~Nqwt`5sRB&PuCXhsj@dTi<<52H7)AFK>?QUJBFvcpvC)#G_5a`ys+bV zK%Y6Pd$W4DT9B1hT9&1)sv+{@MTCu79+c&8kM9}+SLzF>e;nb^MU4(oR}p)R0Md691%r!J&2P;SdP_oLMFu6B05;>kLWc4)lfKS#W5?wI%|hoq`hu zfx>*xp@_k|@M(qn0}BG5U2uozAAEj+p&UwrwSy6k5G4?GJvc;fo9Di~NbR%>7R`O; zDYJGxI8E>dA7Mun!eUxuWd+Mv?U2Gj!*NnrXHTVJbU#n}+OZll+_5Y9iNS;+y;7d? z0U39NOnr$=5>;koRA#6jd8DT55v}v3;fIx1->hl6s;zGAs%wRSh*vrmsjKW&cDt&} zw!3n-W=#W`Q1glEkfXx}Qs8t(5j3uAvN51y4j&X3@w_#tyW_a0#W72@XmpdFU zwJ9yH+wscx?pEEqr)oTK)^?2gpr4CX53 zcPo2r+|^&z-!C2~cl=iL+i$A+vuEqhsqt()|4CRs?j#ddlj!)ks=9cs^W=y`S&tXv zr`qw7n>R~ts_}XJHWt7kx;Qcy=3~uSSTJ3~f$!iYD%?V7I(K0-txXmcqySZXyRjTUA+J_CRG|P7^tz5RVVzNI33P*p{0cvi@F5gCc zd9^pcZTn6w?|%2a%F6e&m9M>#@!Fp5nmy`T)iJ zi=lMC;hb$h#99HCFYoKypK~Bm9XMDJ$omVwLyP3QFYmJ9%@>Y}x)1)@aYEgJAF9c2 z)i&ppg=eaWmym3&;~XW`(=}vo>PGl*;8;06R*8>kPqf&4t^!sXg3 zyyb<%qV~NwZ_jfNI?$F?O!A_$YqN7y!S&8$^IAY1T7g3=@eIwg!b&{JjXj_hEbf?M zEK@gLs48#JHgOB#!m5g1=*G$8(2d;8w4Btc06Xa<-6fg9;ABVdud~@CVJga}S!k|L*VRApay+;r@@byUz821q4~J zRS758;d>ePZy(nsI9jUgbCvnt|COeLwHvZ3H`A^ILubet?!ZuCk*cVsu&zYI9sA)v zGJ-=ekJDBN!^g7eup%3bP`Z!i!?_^tiz8UTLA=U2kV(7FZo5idXSW0S-A-#P3w{Nj z#x1Ip`*!wN8(l|0ir~;uNp7CjIl(!ekHdtIfqrddhhbmhzSf3??|2r^5;`V0C-8G2 zp!+swo#B{R1cZqcz)f(j2>j7O#ZZKi9kN3h(-{K00(PezY(t3a>=TKwvclWo?6?j! zLbP4j$>Kxc+4nnyU_25bKx%^sscYZxnb-e+vHdADl<>_>P5x zpDIf#N=i#L&Qs1){L)g$sB;VLEp^p(wY6HuDaR>(Z7pQfE%w4(?KAKd+3>*d0H5oW zaByI7fRDQ{d__>kl02Nt-)q_4nxIbDo@23U$t)7a?PuUwaDneIoL36}2_&4tfiFUa zAn?UGti?3u(<|zq-WQ>9P{VEf$gcA#7t|Nd??2bAb)dmE{=Qf0uU=8XY8@)wR>FsN zBLfiN2Ty$z&FzfXNgk*?ya#4VzDi!pZ9pg?WGC|4Kv;H%(9q*lmdqijRqPr8-i7{#0a<#Ka z5A34sT|ZkS-?m|P(&X__ha89P75E+j!zU9`_u}vNP>7p&4*P8`_~JPv#&?x#Z%=$x z0Jaepk7N=bf8zK}X)mnIE-WN}kU#tj3$rT=?S=NLHaPY82mZs~Zf~oy7m7Y}{zutT z)Rb4N$*aw+C@5IA%paJys7M9+aXkw`skXL?vNq5S%{6xW#f$#%HDzN(Q$=I3y>OSP zBQB;P24VoK*@;6T%HfdV5IzCM6%K|BhVbz;JWYAxgze3^6Pz33A9rH8EiP{ARDVt& ze)xgU1z#1V^kEjq555e8fJoOlWlN#ED>-F_g*&q|bJGh&`6b2qc`BH$^(^KI>T0X2 zYqckPp6|K@8%Z@yE$yn#?AHIo*qgvNRqXBKAkAX*;*td0q&cU`A_^i%0XJ5GB4sD+ zTiIy~rL^h3rEQvKY11T4_kE*4Tb5E4WZwiS2x8q)@hYHl-79m_N%8kgTD;!(zVGM% zH_{|0=ggTi=giD^d7ftyIjhwQxcS3R(fs)ulJ3q{k{2{UIQbT(B{>tpbN^YU_X^7vwhtHfNgl_b`YXRm)J{q|E5@CJ!g zqd#cHJIZvm>6|Iw1xR~&nWMOfhfi_;Qix(^97Aj)aHo)eB0q#H`mMKdbF;H^vRQ=2 zVBmv;+4#Vk*eU5@l*vE&JE!cgMz`2(7MnVsF%yp-?P++w|7v-X+Z(?wB z-|(ho*6{Fdb+_7=mXWfauYL@R9v*I8))ek1Oz})<3O{CTYVvcRcApmYC*Nz_E(~^$ zU|>Zo0g)MC>L1gzAaWu@9)-GGxE>E)aEz{EsPn)r19p)FYIyX81`QdH4=8}eMqssG zKt5B9(1>>n`XOm!@tl5Ln;C+#%^Q^l^1Zruv%mNQQm=6@C$X9~_U5k%z%Qh~zgP@= zf8qV#7|8q=jh`EDqWY*R*It!(U)Wpz{^Cbrw~Eq`h1eqeq1;n$ZQNS!-*wd;>$|l) zDtU{Fe5u(|pS-7>Llm54^d@bVd0by(#215ydrtv#`~HSdS??add23-sB}j>^dpU_i z)o{WWG=7XhBkEz$V7tGJT?ZmnuKWA7vEBVKTwptE)qaPlMA^oo@F=7|O%asHB0bQr zL^!34igLy6RU;+0*Hu*?#j}#raf#{v^dHJka0F;f@C*j~i)ZyEBf6^L8sz)?e83)T zib2jdUDKV|o#^|E#?9V(Xh&@H^TiIHMxoJHz#q~55^kb^uG{XX+2P%Z?nE4pA@gM% zE;M=?eLeVt_9fWVAamn)*s==J0r#r|L%H`I=RZmGGWI}-BQ?155^{-Q_FUpE>~WER zfyj83q@x|f<#GgI*ulLAbz`R<9ws@3$D?FhQzcqZqz7IT3RC6rJ=8r z*C}53n#6Fmi40de>LwDBhH?;3oQ!xvy!#OBQ)FOl6lXa$-n`ectPr*v zko3-Sb$L14c5{@dD9xFes7f>>;gswwY&W(sDNzLyL@esgShSB@J2moZf02*-O+qxD zgPwz|a;Qy`w>C(P-NUJSh%oHbw{DWzG7?K;h2g?5e7wa@XvpnGEm>>I`mp3k^LRWDvH1T?jtan@DV9 z6B+cTl=jWjkiHT!D1_j!H|Zd3c@Rl)q{aGS>LAfbOpv zKRSdAA!3;yTFATI`*{c*atr;zyNPPpM{M~62e22_;1iA#k#G`>6bB1-=eswvzBTw) z*0UOEqc44$JdOT5crfc%NOLyGgqMYvMdZmBaRfS-uIp2wzYL>Rfcpt0Jq_p242pl> z!OdsJaBibJOLTf{(-7KMbuWpYP%ivB>{rrHMNWZcWd?(%-)~{_zvhH3o)t=AJSeU| zGO{a3uRnUmdnSPN`XeK~{wPe~py3c4*S8(vSD+aXGq|$){A*k{V!4OOVNqRONpp(| z^nmC(ZqkRar^0*fsc62N@8(205-SU<)p2gVJAho4ee|)YuJ-;BwH!T6-WDNu^1-3= zSNNXuU>rV)D>{j+LQ86MbS>A-yZQTeT6juyG(TyQC|XB;(1g|LIC7Z2Eka#hTRk_3 z4IM#;=6=9ZHS{n&EQ)65u8ZbAnk3TIHG!*zz>wQpT3syr-n-TJnUZu9im%`Y_HcdF}k_D~uF=<@})!5YYhonVs3Y zQyu@&N21!gk|uVpN&cetzs?2A9p{>aU+>$WI@q7M!)T0NG!HYuk--+#>Uu3yT{J%# zSMI&0p7s>!*lBt$Du7w6z=;4~fYCOrUlNOZ?b9&!&kH?^7D+El_0vhPdbHBfaiYJY$^ zPrx*ddC;9L=n6IN8h2-ztUs0bi*EHT#vj~fim4&Iq$)n`ar+=o8&X~P@`35|dVDcl=B09QZcH;~+ee~(4 z5nb2_2K20<$h;5I++h%^t_}vFLfRHi8t&XzCWgrnWXO{|Ka-B5uX8I_uUWBtjWjJa z#gKqd|E|3i&XS^Hp5&7x5>JMbyJ|Lj3NEr-d1Dj0g=k#l%B5Nk`4L~wjL+!WASvDd z9Cgq*dQG*(w#5<3<;68D&X`Y^zdTSC>&$W`a;tV$ZoT-=^CaY$`rw^eNk{mtw|+{x zqb9@2u!C2Knnz@vBP+@3cG4~_Zg*a4XJK||cz9_&G!VKYj5^r^nLyWy!bIQIsU)`m zi+PRiB62RrV#*QinX`AqG@9?xhI-^GdW-1kYh)LdbC#SuizxiUmhavt`GU4ZkOM}A zd)Vbe2K5!RWDrs@7!!~{nMilhS@c6S{SbxDBG|zH03z1_gjhy?E?plKJN{Mhp2<#G z?5FF|HAlVz0{!DZ(5I!{8{lp2h>6)j#m_y5nPipB{Vn{}`b=aPIdU3>-Xv=&QBy*1 z(zO^*XYpyVnL1GK@FSGC`>P}yi|G&XXy*<%rr$(M-)Cg2>Eprs0B zgP}ULhGSvB$H-&!(JyCFA73IG|HF_EF@TJuMo2JBqi;n`roO(IS86e_#gL_Z>!H@8 zdyY$sYn;^$Xc;yJ5QPaYFB!wScmle3N^ci0DTRmtx;I@QF$*$fswFwSw}%%L^NGSL zk;7Ktw6h-W=rA2rxJ}JsEo2(`^;xzoQXOSe&z+O2(s^lACr_J|8YRvA) z%+D^c_~lq34}eGvf9DQ(R-k73G1^!WUQHf5JHTc3v)BO4P&=Kud3GS`?iA$Pi%ms- zG|)W@f!#58?zEG@;C8?M0VWw~YlmG73RocNJRxgpZ-V6&h@XKj@_t5Wzb_I|&6@TB zWWTH%dnqyEwE?7v4INC$2q+Rf|JXy&cI%XEC#~E2-t)a#bN`^8eKD?Ug7r9WhpZip zMi9^3y6(RU?I~-&423siei3y4bLanCkf|CqXB26Z#yz6zpprZ_gg)^lOOorrLq^Ph zSUXE#p5qUG-}c>^uccjG-3OI0>0J^!EEwU&f6V9CKeuj#c8ru3gN_=!mmE`L;D$iW zIm~%JJ$rtN@NYH9eEs<71yS=O7D{QKg|kLdzrRlMDaMOx2nh7!>(17n+jT}t`kc9V zi}frZ-*&i-+9x3?{8imB}-hQDf;E;tR8X9et2nNnd$w?yRZF35m(} zC@De+7L`4^I;keN)!ypdS3oAeMMi#sRDo1#eEX>BsG12nkydh-_j;1d4j2rpnucbC zgwRkI35F>l!6wgeME#En^O4{9m>d;`bN5_s@N~h%_Nv`g*#t*Jyg4e%GfZP8J@j4Q0){MqSXa@p0GkwiYhWH)s^sI;KZ@h78Ke` zfyH86edNLZBI?T{-HHMCp>j+B2{1WmE&Y89C*K7KF2gz8*IhDyj#>Qgx=Tr0S5NwH z-KDzBT4QaG?vi{QPAALhcANgend4zG<$b1djlMPRjCH?SE zxUM|3v~V+buR}bV$`%F9=jpee08vsxGU&dmkL&kwU4VNL*{Lh%c=D|fAS$aUt*cYf zJIK_e$vkau$TD*fK(;%`P5gN0I(hyYc}(r@5Cc>|cyDY4;B0o{eVYFY)!cJI9_Igu z&R`fve7qW#2C#(wl0FFfV0VS&Dttg#;D3c}$nKsPE^(zGf~r6_qAm{(f~Z@U3!ib2 zOUw>Y`U`plwG}KfF6|@k?)e$nakeX>#?-}twJtAejD-@~@U(Tkpxhp^dDFTGX-N;Znm8HfPX%B!iC5$rRL&dbFsRz#AdJHhgD9v z@v92*Emp26xjB8WMY`ZXXnTk1K;iz1J>2gw*Pefoyp|!&F13`GsfhIZ?}_yM>8N!F zxFfDZ6>W7%%fr^L+3}|1VBvvsDQ36D0UGyQ2p?=C$$kArkC9CButwN*Mn>k5*EH21 zYTgyz{GKQ-lP@&wEUb;7E1m#miedm5tYJnax$ad{m<52fjtf| zT~nr^mE8ld2@W_mx!{Gv!1a~16NShPT#}f|fW{#%B?RculHx7UDuNcpL4=kN(gjep znsr8`gSDuE_r0IH12xC zmAhyYDT7*HkF=TY`R8>zzJIwomdEr7b4c`Q=SiI2S4AS|F!C(jMz8n2w&B|_5&<0? z#mP@QIrr%9(SYQhX>UK{1@`hZl0@FQBZ{rQ{#=8)_V(>s9{pgOCOh_UEL!#!dr}pT zGa#dULKmK*BsdZtmvY*I`BSIOKYNX=$7AR7*SC8bx%2&VP%lET@g-$RdT|O+s>5qD z8q;>B?(}PH-Mw#Ds}!OW4yURSLqVS%b(}p5BMJf^W+MQqvKOL@q6&B9`{_W9C@~|E ztEO|rDQW2`*?j79qt>`AG9xNIDwRrZ`sR5Li~#udACYl95)tq^3^qev7T2_K_ol}6 zsZsi<%pLUkXkSFdlT%f6wj`w>wZzPk;nA+`MUf?uei0kCZHm|^h4KaD$0CRz+bt9ZLT*XdN{n;aOE!w+oRzx`lwePMlm19`sAw>Y<;v{;4A|1U~%Oco*| z-^k<>D%Sp-QN@uH2t?%gV6%Kmh)kY=pL%|f&%sX&P!0w^9K&uISa(RK(GL;7O1y1+V&ot2&<_2$EwcT0N3d7Hq*F&H4SI1QWS1z&0=&prF=_Fd6?qV`D7tp=xI;;ZU#v3%}Hw36h^ z?R}M}_yf>Q5$`23HNqD1xz(iKhs)4H^11eSGjJ>18@k#Bt5i61bXIg)EY}iVxqhW8 zJY{8UG>3iOwlt2~1em2oi9^pNo((_3IcjWmwJMzASn9E;x47JroYE3idu;oLW1L+g zf9oWfn*(+?XnktxBc>yuUa^c0;?pBu-nLy$(R6c9{?(8>#jQK8jM}}SWzF7@1MAp|nb3H6p8|Kf2UJp_-Dkw z^nUo-U+JDnlDcO~O1lD-uPYdJVIj&?m%7sCx(hY_9TdsY{mLAHD+IHS#fb$E_Ymr6A6=HRA6qzDZfUJTj*pk@D7$h z)P`!hwex{oLgt#KS*G;lji%D6-2vSJK{6KZU8HdbxC02bk@En1!Gu71Q^yk1ILNJN zX87e!$kGC&yt+7O`=(YqfK<3OMd-m=NhA~L@cz&WaUn>2_78y5+M`n;bTEuQQ7B#% zR=b~6(q(M`9QgmJx{H=gIZE|Ny&Ge9x;(`D=~3N-mX>M6!vI+DOgC@5vdnIW<*h42wveq+9)&bonRy7rn^5h8L%v`Y@9B zOl0u?mC7F3E{|5w`WB}pI+BnZ@`5q69xYJjAZ8$)0(TvcT93>Z8x|Orj-!3a6aGH? z;qnu16y^}bXB1B&i0X5gC;&5+I|Jk|AiSOCUamy6Y&m1Njo>0)q&|ihkW%Tlhl-c2 zj9IRh&kxv^RNKhERrAJSmE2x^J?gXTDw6d+X(p@5bKE;`ebjVir?lnkn|r@g%Z&k; zU_~p)L#?f@R&}1;YRTi}&PlGMoVfVa>8n?%78OQTuHeenyXYe;F+=1k+x5gxcaB4C z(wZ_#_8lrXd`R{Cy6aTTZP=K;kv>R8N9aRpxn&aVH)zwk!6+@@)vaSU1uc?nerdP!rjde;9Q??q^o2Mluhw;l}!xu)amWI!Z zpF2Y};=s5)W4W3+JLk1%JLv>O5Z96kPn`~ZC-Op!bnA_;Hh!mm?|fy`JN%*gGfmY; zrKQbf@9$%g)BA&6S0`gBu#w0++;xZ%wF$&nW$o^e4E-P4!^p)FWYxXn8wjE}(4P*G zcwP~nec{FnV?D2Uo)!7~eAeZX0JD~>$z(y~JIWntOVgvd*SFEfS4>yWn6tBXHcz*I zPBTcxD`dM=_ip5c_f%JpkjF3Y<_hYL7d5Eu4y)PDS7d!ihm>uX7RJ};bZh7nGdHN> zDxwM!xDToCt&zlcvNXM-KB21h5_#e+b!}~ozLIZDB10xS5~R5pS&SF}-4*By;32)` zFCK~Jpj> z9NuWMRJwgdl6J0&`kWp5&-vWq+-0R9byADfY*Eosq#v{|hi>BxkrCMu>e#qkTO8kp zPV&$Q@{~y$Nc&MhNr$N;qjGFJ_~*fZov@e$tA$(SQ$a6GEU}hYO8AS1PoI6OT?(9m z`yr?^eoc1u1-#{*eq9UwMV-pL$PxLpj~au|^I%Xocp5?T=~0s3Z6)uxt;8v5B}YZb zW6c-esC@^nJQ*eKKgwV9nSa;QWHO)}dx*Z>{VLfbKZI<=zY`$5JRU@(NZLlu4dz-6 zC3RJmmheKR8mGfv-OHGxOPOPLs zm&x0zuXbNKdWy@e+VSZde@NS_$kRius`3k$U6<6CE@vcO;H~88pW5TNH=f)vJ~K{w zbkXjhaVoG!X3V4$c_Yvb-3jiYtk3b#mm~uh27VBezxZL(tXq?6~(0hH^F} zXW2}4%ndeBd&~}#&1lY+?g_<^4Qh|w=&(5RY;A2*9Ms~LJY?RWRm4PEOaXJV?eI2{gG zE`GvPC;d0C1I@2R&_atmLYG!a25FH0=??q~Nd?JD%`nDI0awNKyrv!0o@ej~;RQ)H zyt%v-8GkX8iv&zJAsKpiKPDH$liXG*a3aQ{SD-+0X zn54b{OgD$-kX-r&d7A!KA+=bn7FKFn8lReGNJ6OtC1DNQTg;sBX{fN?v%cB$sWddV zaYu_9Iq`}zCs0botkiNT%d26i4a7eH%kjl+Ac1$h-x1KLXV^NV%>k9eUmqF>(hvnx zoiNf6S`4k!A@Qd#2s$MhCB%x#?Ult9YIm);qB1oR{_ZGGtcXm<@V7IwHnX0i%Y@%V z@9Sn9oviMz6;GbAd>YcE%RIk{GNUqekt*8Z)myzNtL{>hfAl3Uu+SPv7z&m{4TP=G zL3JL5+M`>AIO1kNg2dBk%-3}KIXeCJSW=k#F6sZ|m!qz~PbA|%Zv##Kp@Zb-2&f;f zK^2Bd5%xn#h@D(paCR!vc%EOBw1ljr4y^FuY?P8(32`xxa)na6~2q< z9D{ckzl!*shI%KNbJF(+o#%+EjB7CX)o1N=R#YPS#`z*g$B9ykD>EzA4rfk|gRgg1 zRXOU9ka@mj&SF#_JNmIpGt@68b9~9XBlV7|Drdc)!+UAc{$#kby;(tD>j^{r zaqVVDJKuKrz~SbT#nnYMMK#je!sA5Rs78S|J_;X(=V;i>St_C9-*Je)f)E~=xU|jr z=36QtP?Z0qqdC-sszT_*5%c+ND?`_9UMCHU2pY43InD5xQIqc8=)=XIHpN`vH~#*| zR^p>Z#G!hB@j=@gQZil)m2q$#NC1Lrxa4C*jsQ#$QLab7#kI4SJmN(>4j7;0dzaGJ z=mg}eafW_VjuII!k2qABQ)#Q<*4FCI9#+*k>WZp4`Suq>o8k|?t!gTHySk1w&h&Zj zT)lGP{ChkuOCI~;#bK9-LUre(rW-qtQIW2QE7BF|N@AK9A6V74N;;+e+NeL&O>h!{ zW%`k|FWL{a`2b!|#Jhif^o zxH+~srYNRJswi(81B157>**V` z-|{Jx#qV~-$LH7*__ewPx>f4vXh%^j9~!VfdiO}}z67dHKLQH3jE&s5PaJY?u7xY8A4g2Ey=^q|m{ z+oU7r(}^KerJ|$1fiLyy8*e+xT3NG!+KVQ{s2G4ABP9VG&Wsjr%{yGuQYl4k%q69k z5_Nlf^}%Dj-6E3j+fNo+ekUq23--LCQv-7^ud4)+>KQN@^fHe{jCAmPk^B&Vd;kZ^ zXFyhQtH~t|N~HMKbJ{sxd5&8n8ORWI zBY6YlhZwAnox=-Vv@__U(t92TqhzSco}wg?C`m$5M^Yz4VeATU9m8cz@8f=Pb_*bj z-vP1+OUm0O-ZJO0GUX_f)f_ER=WU6e3IY7sbJ;sI9*YFkoZr(d-rCu7{#_hLOsAoy zFE_i0rj$HhT2WbE3j3P|lD;EKtPOX|b81@15ZsF+WLooQUu4w0-PqtdQk8!qwu(qy z@-Lol(f@}j{y&#^kbi|e$WBj%ve1bPVs@d)m7SU)mH&v%S=mtUHoMHl+1VKl$)O2} zxzc<~RC10g!vYDv4&Z4_}n!6me}HSdsd^V&{SlxW)`I;n+x?$ski2O zN0K?qk*wF-Oy${``DqrDF+C$U(~(-RJu%rS&B@C)+jvu&!I_oaQ)7b>_z`1qR7!MC zq%^L0OQoK38F!mqc_j{Wp}ojn>~NIkyqO!e#h73M{KA|jHQVhuc6FZ3Zc{nZt4xj} zXIe={Zi+M|w>UXool>^ln9CQ&Rb*BbNHa|_dNY@9j<3!uv}Bu1CUbgGq9dcoY>RAj zP9dzilg$TFurRRbG+d-Lf3L#kA7~7p62h$Bg_>K4h8m_3%4P zx$7G&mOQ7$nPr#8Cl~BWw;||-Xx6#g*FU*)Qkvt)x8|!W%mvBC8M*fCe3RXlUzF>F ze^H#9pPl70)wa)zd?0h528FpM> zm{p`tPIp?GGmNQH2gLC6)hQ`{U0V&7YFoLr%Ft6niLn|_ zTb`rRuj2@_buvO+lsu`#iB%pXtn~$S=q*thCunr1`bsrgBw5vCUG% z6(m;`Ik^JIk#tv1a$@piC$gEKiL+m+jpo{)uWF+1{{@E~2rTuWh%!-DHd z&CANmC^Y3|NS%qMq}nW}xw6obEX{)xnxo1|aU_-J0&fv-HgQ=Q$+;OulO;OVW=buM zwIeIO4Izs;eD(9 z#i0;iXpfM&eT5g5^obKsbuJ-KbdT>I?|UEV`3JJNmu2n=?g=7ye<4U&l~x)TN0aH0 z_%Mzxx+?a-}=DwmHLVrl?oQ0E3%PCPMaq`bEC5si>{F2UFK$ z`2F?Q1GkA~qg~8NMT!;q<$Er;${7Hg0Epe2awdxI4&`Aa|9pD?AcRE~2(+~VQI+KH z^J%Y`37lUs(=bW*r2BdjB|s5yK>GJm$J~h$AzetnFKWUNHb_}2KutSA9;2P4uZDJlKju*+X(T|_ z_>1~=#lgp?gD@AC87|8NZM@6_?u{-f8Y;~?rqaxQ^##-qFZ>6+b8n?;{p!4uEIkSx zBvQtHA>O^P-(lJRw#*9Au;qk&Sux%{QLtAdWF$^2Ve%tAXF`&^SA7l%CLWYG5T%8i z@WYmT6mj#GswTI_R>LKStjSzO)dO$Ds;S&Y>t6;Nc*V~=QHkIC{QE<{+oWA*x*t=L z*u~^$dYB7EW`(CK@p_c-p?@tvF!t`VJqr*(1pZ%SEO?gwKHVFUNdel?D`+M_f=zkd zM(TmPj2$?Zs@1F31-WkjjLSE&Hl zZyj0BWcVQgw!5gdx{3>HZrpHOJzFM!tk3ZcjbY7PbyaQQE_HorypyftR*!Zw}*Q<8B_ zDZ3}A<^KAKQz8~E;+fpEXwl-WlP9Vs?0W6Amh;we(Wwu&eXRcM!=^K*`EN#x7HY#M zy{eMe^qIJ8%Be*h&|>RF+EX3dK2f8mdJA2@Y#&xao)iPMAq(F6OVXE42) zRE{9fgo9ke!P2*nlSWzaeBFjM9GN?T29qafm>NXHl$_)o=;jQc`XqvrK_@jp1pQMM zz`|91?=V^b`9|rnx?4oTz;?+uz=C6~xOUG#vB%ooBBBpXI{7SlQf&l07pAy zZTnt*=6GS%Tf74+M!K>{|0%xm%s#aLl#DEcAuGeLYR%HZh3e;qZd){#r+ueQADS`P zFn-s>vx}um&wLztQ!Ss{=ldUbpSr=52j0K>qw6(C3P@^}_pA z7u1K_(xMyq3kx?6p?!j+WV+y1LewNTH^*l4%Xd2R^Ya@Td_P;6k|~NyONIK89$+8( zvXTZ4+tHAjpOv4P?`O(2=a_97`M!w9VHH|NJB8a6+^zF;h=fjbea~m)b34SDY+V3x}2Jp%gDBiFvQMZ97*WtL%Tgf&op1gI_ zCf+j~hi=-mb@F0WH`F6=gwTdi_RGMIoJ2I$(?&y;@}I8K6ZC|He(#>B^nMaD0XXS7 zib25`zz>R{LLm5nSU~e9ID7Xxl}wfbkUu#Y+4GZxO*4-Yc^B5WA~y19-#paTf@!LV z$nl6LlVQqlHr<%@E{9b9r=o)!7S%3P(+9?kp$}+lwFfuw!U)d@aHk^y(T_>#oKFH8mN@We9wFK84Oj{SvKe?5tU17cH(ou#xL7cUOp39NB*9 zii$i5)P#gQb>-5wl}9+?H_z|hQeEomGiQ2A{S~pw52ifRHdqZT+AH7{Z5i^$GuK|@ z-4)&CqS^1>*a$6!kw~FEL`L!~k*7d=vxdj}2^pqah{7ob2yk$rGy{YI8fT@ZyMrmN zQU&YN9<;RJr3px?T9Z;rc+x^!M8&D)>*7`S7$mF<(N>BzELpG>VMlMQ6%MqrSIDE8 zH1`U5+{1mu$cfdRunemgh}zW|ps`{_tRXVR4R8^)puST$T8$ z`04ScKPtiJ2W0<2A|KQ#pQ#rf8>hUw=ERIL?gt_feS>8mhyNjwp9(lBk=Fz?HRm>| zEs~H8VM{l!YFOyoW@|SsRIT5XxMkzIs`^N7!Dtb7U45uM_M-atuiu3>UaniBd`c{T zAYd+)OKhK#ZOvq;>ZeyukC+&=VR{&MW1gt7eAn*1>gMW%P<|YZ-A-q#5^Q*Je2d^3CNzyBE}~D4|cajd*j-A?cb!F^7+;&ea?})XKFUx={78`txhs=DfqV zY~CBxGNi=p`&CwvO=K&}1v2MN@B&=xV&NJC7G&Ji9XMe zm(3Mq)@HQoNx*vF*bgt8PpiLt&slPkKUsXN_So*Dd-mKgXNwRaBEhKNAue_m@#ugiCkZPb|V#;zZ zeM{no9qZHLVq&-Iwnm2~ZP82P=LKg3sprotZJNuks|nwuYu$P(>AmdhDWuugLJ~x! zmdZNSr+II=3b^v(hWvx-H`{EEgS<;(ZqF$ZS&}0xYtp0Zsl33fU1(XLPFk32 ze~!0p*qF0Losw#`r1Ca&jzvYLQfq}p>My$L-<1XiCuqiEd2XOAhKal_@JbRZNQgJn zgYoKDHc$noVWjeDgh7E|Tn`1c<30tocg5e1o)v%bh_f{$cLKHJcI`y6%V!J*GMI#r z#O-1$D6<5Ph$-R@@fUCGyAyu^*xA`NR~c}Z(F^Yeh{%Wm@`70YGdKzm@^!s~><@#B-^0>eNJ0flHm`__ibB{HK#b)g zt+wFRsVcHpGx^hkV|=^#Z@C%8-@Y9CH2p*GG|}!JMP31efZ@P$;W<1*>$O_c)w-wtZA#C(ml() z6o3Bp&(&nek7O>{frJCnpL88fK?Z&bT|A>|<(^G^Nn&o6F)lkLGc-HZ7zZM?QyTEr zGJx$E$`@RyQlSr6kc+T>WgN&-uhJN5eR2Gu<2$(3bXrEJRh2X^Y+l4FY3%zS=s!kO zn}q^DaX*8lFb4ptG!(BK96kp#;KLdcEY3Qeaku6+tMiwnlZ!rT{Q!0Lx%AcbtIbPh zPhT@oH;j83b;e3#gZ>5H$9624>q8!eV0a?@tBF)QqiWS|)Hx~FV2o#VHl-Tly>)&P zb%va-ifkn_LB8oGZ(@PgO{nd0&>Ett>7@y89gpPJ(AQX{$So?#VJJLdX;MB0~bq;IOJ z4U0ssN2|DiOA|m!^iNcF#LqK3AWFk^g`X*>Xq|%vmCe|oS#ThoiL`o$y0R_Zl z0qri}_QkbW`qd?Yco!TE2zdbyi203iDcpU=AW^P=9_#&uGO>dWp@S>|;w^(IuXr(c zOP~OtOqJdHli^+ZwhKUYD!Mu#hw0IJwCMK+7Pm%tfyt!;_Sd_g75fPt=(b?LY6a~D z4QwOOR`C(ERp`O7+^jcmtpGw9V5z_Xb+WEbHwdVDn9Pt?_jE#eU2(4y;5|&uJwp|e z{%n})PQzOqswrqQ*l3oDEy3P;vkjlZ#Ybdj*Qf}-&1Z23ys(u1*1@eZXyPs zQzo4~Zs0`P*DJP8`wsm0-Elk}M;@ZDBDwrB5pAju-LYULk`XuOwf(ejGn3GwMzGj~;E z%eMu2238FJh5jPSKx98vg)F-(gWJ6=rg4>ehYs?6{N~UVn-}#i$|%4c z0;l2Bz9aiu_=?Jc+6L9(?KRtWa~ZB8W3jrp$nJs@iTbfXSY%|<){R)x%S&JX)6?fK z7WZA;Ek@$@KBDWGGIJ1AmIQ5(MwsM@QC?cz@>1-}k%OO_J!t3PowGZ4{#JAS>gmrM zzX*@}x?1*Dw`2e)*^*JUB{NhioT0x$pH<;j;9xC95uinBmE=Rs{WUD_VvYSfSD*Jo^h> z)_v3%TO3#<5k%ms%5K^Q|&OxjhJF!6tXXJZl+9IyZ!>?R9DwnsvjN%!w9VJBNzeM zy+`9foyTh&x?R9FfyJTl`l^9QzhXH8QFR#r+Ds zS3mm1(Gk-%t+JDMBd52@*kTod1A=$VSi78ykBLEqaO&8(Pp4Cnl*WtGiD>T6Q*Xr8 z##G1GNY@_S@m{+M-1aqCm-KaH@Ih5sLm#Fq5&9W`C}|Opgjn`~Yc0VnTSBD%zzhOXQLgGj!3au<~t<30!81F)>Lczcust)^ptahI1P)sxO{9 zaIS$rcYMz!Bn&c3_{NIz-OZ}HjM}7fuB_ZuTc>JHXo@K3^6%cdd-Y@K)sI`g{SEyP zP5hk<6A2LPUZE=gu4+7b_(Mu zjzI?o4Qp6$c%c(t@4!N)x*TBU@DSWD&>g5u1ksxV5UEpK(G!&Dq&i6g6x7)|jS$`c zo&1iK#R2bAyYfw04xV(s=6piTX1^)ef&(7jgXnHV<3tRDP_F{GQ$nGX_ekBuz8!IS)^gU^Pp~ww*BL z5jI!BBpR*BGFmJ~t~F-u&K2q`+1UlxYHOT@mAq#N_7;Xn^p!P+TF3-=@nVWmuY_&^cyLm?hAkz}3A_aL_-NCxL3E> z@)d2cqS!dC@FrQhI|l@l6ivIhi=mLw;>e`H6zbFEl7Oe#1}bSVzO^%UYW3eBZ0@sw zu>D`yw7-C9+`oZo{|hYbZ;lT@X-qtp-BnK%bWASS9ZIU zup-S~IoNi%pK$*FrJ-9O7p@;8>(*h7TZ}RDHBIf3f8q&ZX%=W*!?+WjWTP13jO4N= zV%L@}SlpcZ&u`rd$;&6Ed>qMjS7AjYca`MhohLf3tC%t~Xvi)xStR4T+nDGrQ>g{F z1#{L%8bq;PVlM69mp8cQ0@M%W4KHzJD0(2(DZ90!P_t0%?{ohn3vBit%^vfYyf7qu zU~xdAyD!J?YM&!RNKmURPcBX5g2jo+SQt8((cR0rb}SQ(u8vYVUf2Bp*y;bHjIo;O zOsx&;Qjyi5jT#w`6xKS>t&IB2%yl=+bu-L$Z_U}@Z)SayQP_TBji8W|MgLj%u^PE_ z>I5`jcN@xNrgu1knA*uQxk1!K7_k@ZR#0@j>H&9vjRRVii4Guw$wUW+!Aa?m$z@uv z0zrpFo;^))HQ{zZ*+49h+=EcF7E^8;ylKXE?Wr6*WUt%K>h}$*)#}xsU}FeID7m{D zeteLo*N@L}*s-cS^W%NxcTd{$3c)&&VrgG6lNBBp%qE39@DfC%WK`!J>k!buRM)0N zF-#m3&m8T5gTH0D*TKJg((BmeB!7>7n z$AIyK%ArF(DuZVRkIc#twWulv5&@@|-_`%S2H1*9U=yr69m~yP%9UW_J;i`GbyGaC~d(;h9^TFqXQ)@jnocO^>r&q`Vn_fX1_0n`m1*M?0IS zu3Z!iDJ4t+SA~DbhJl_h4i0Ze7C?R-AE}n;M8m}4;UcPS3MYz83Dri!vV)XPv?!A* z!oyL~rf`wG`HmQ8(}^H59f;#W=NI2WdDEGKRHq2vb?v0HNd$!pYm?PWlE*{z9dg3B zgFVdgZuFPUgM$Bh?WAi0QhOBjcSz`va}+1o1`68(2DM9#o<&T^61!GdoUKI zVB_K>#9Oy;g?~T<9sV=csL+zPHT}Kp2(1!AbR8ZSc8tV$vjc-Xth|mL%xgpxCorIg zL;=yd4%)#)>+t4Pt?K|`Zwq@6@zp64+5$A)X;_!J@1d^c{oKfUE5DF=G=le4Aj7O2 z4y$Oue{F+R!wxFOLBee`zMbu5hiKoQ=X<0#oTFPa;+t~U# zS=_N@ySz215k6xz=tK?J$xnH|y4!Gam=9z_4{9JuBeazuhnc^HDLWZgh;hr2tKus*svFgAdV_^LL1oe9v4<)!|`}_yfvd*_qPn~&EdoVR+inw z9>2)$xx8yJAt3UR=1p{abk&y_KZfbdGT}Se@*Pch3I#QU z+l+}A&#!A4+RBKr=vLh0?Qkm(!p38vG`0!9%5{B&TJn^VLD#3vUoe%;SJ%#-d!G}G zbe(bv8qcl8o4-%1$EdtE|Ln9anrUa}UxWO`y`^38%5Pr#V05Hx^arnf!y%cz9_bw? z_QPSQfRfw*=5u!+a!)4gL}BESA-~W^AZvwH<{@i^pn#q{@(V<;dL>R2z%TX+llhCE z^-7Zofl7ik(qNJ)4r?bGxl~xxv71l}-%6cD5Km=eEp^6{im*_B{!gvnE+Cpvx!bxNe z>{Tpc0d{-=Ei64bt;poUAGe*#d_?nT!3!YOC9H@^T z!hcU69&(kwpbia6oHR+bz%{=@%MGJG>w(xEqN4o@=|jhda0uLL1f`CYt05!tX9Glv zefeX*79!Z%57&Z0uM5mSB;UOK1d(5i3(U;okbPr9Wqg;GtY&@XHu?$cecJy+U<4(3 z3vu<7HeCZPK#*j`e+a)SlQU8?^c-a9{uHeZoffuO4egPbt6l|+xbz|8)zEBw8Ud9t$9PYM z5cHyKn+E+NROT&^oL7=D%Rr3jL&pOq4LC<1I%XNK53StNqHoskt1N7h-fjNr0|ut| z`RTQQX1*|VUwlhpb7AFPeTx(Ye*K~hHN2+z1U8MJ-7JHrn+`J*LgVOuFM6FJZ7^xW zD5gc=7p~Yz^vOdQBDF}dASa*|%j4lb;DaPk2AHp61uR}TbqH4cHZ9y zGjAaFkw4j|Pj~0v_H%dMLR0*EzkeS?9?{67CiQv!Z^f`pBkj$St(@22Vv;fqjyxpSR25^PuzM2`o8C-Mqr~?`-IdH1t^iw zGF0S4P6XHZ1;Z+^nFg|QY09wK^x=85pL#=RK2{alULraf@bqyyLM{IitnOEr%)uJ; z!X0R>z&5-{lwiIP>C(k_`ItA4rk^Cg$UGhi@>%ZPO8M$o+?CXo4eJiXuqBM9%H&_N z6^w{VM$XFQt4X3p{$)JYuZmG&Z6bLpRt%7myic8 zkfHC8#~o6N;Jmm&~1*wNS@4-q~@jCQytQ?&~$( zu05n>#}1^kJYouvk4-s0^a`6 z96KfwzUexlw3nw>B-&?}`zF~F(v69p2mQPL@Wrw$3FXFj6Mf5!6$SQk;X!}VL%#08 z-TYy1iXO%Vn^^osGclO~tg>9`c~W?ij7Hf{3QviyUV`V;1n^-3*#sir^BnlakPYad zyDFum^pcF^K~gr6a7%9t|AqRr&>0c5!IJDsDK$!=)@`+^iwYfucHUWx@clbv1CU{C zIn-L=W99OdMX#R+Uhx`vb>1FP*AfYo$3NOV_i{QBmWarbBIR3ero1uNg#}i9y(_Hl zOi3(BP+KJl2`Q1OJdN?J@K~nI%}81MW{98Ahu$6IF^Sd~%69Bg7nbDZm-50QqW7-G znpq0eyLwMq!&?S^j9?;vlDpo8N$#UP6a0PZl*RSN-Eo!DVsAz^J>3jM7yOHE#g5dJ zZO#b42xooVZl=xEA>LLMwadV<_^Mr9S5sV5h^0!+8c3c)J&aj5!YPb#Fi&rbJhvs? zibLMd65&*L-~tRo?%QHwC6=OMYgJmYUusdDH8l;gm{#BJ+fa+s$`E7HNhZQj?(QTo zsyZ=n?Z&tNN7#FSH*sxU!#1|0xeg%-@(^3HM)ZUddJQEeK!DJ}1TdJ6ZQOA0MY83h z<|?^Y+%edI4Vd10CqPJmgc2YLNeBt#jC5q)e~q1c-}`+3^L(F+Mw*#(&dg}$oU`{{ zdo4^D#t9J_>ihx^`irI)J@qfp6YF7Ey@1D7`U2(#TZ*sBu@oIQdeqM0R7!-=^!Pr$ zrxWloh&A*;rrnF}PBZq*KkcW~(#?I=(glk=p~sSe+765LFmm8taP6$z%HDA6(+yum1x| zJb9w=>$@^rhsBqbcDGBaNGy*nrH{!Imo6ma)an0$L3%6;oIX`HwQ>3hz#xC5KbFRp zCsrg0HJ1?$@)+v?!>l&f%4@4T!JM^Nl~N|MygMF;Z)<}o{hxE#B zpbfV;3$r$iuL!bE_7%aCS3W$93-}pri znC75zY!Fl~dpRi^VHGzUwl??*3YxxKgM1Cj`VN!G*U%UQ3iV%|8XKCi#$plyUowdg zBt3n=`tkyaByOUmc+e0Zm!6i^JXADgS9CU<(@AQMRY65i}8Fi087pn&=$&yPUEx zc-Rh;7*uiK3xitqM9UoZK%`g0N;%eg`^Iez!;tyb&3rP2}h+KgTIjb22@ptD}%PD z?%ykWkpH0YK4&!Np3Tf+j1uXtRD?gpAygutF|Gaq0GPx9WGOOYKlbc^K7%0~hdO@s z_(J9z5fB#61qG~4T`!+FF~9IrrP{a%#J-F)7)F#%h<9*>+Omvt{JSRJf1r9G-@8Aj zVY{+=Th;dF>w`}csf4CY`Y$EVt@A0pGw$@0)O2u#Cs49hT-5K%*j?ck)^=1JO3(P8*=d8T+U(WNl4LSI-&a!Ibsjdk~e9wsy2W0KZc zc$L$%ndMCjIPj+>?cAl=Ek~0GSx86+=@8l8CoV`WUPGOJq?}xEUn2N!u?KB3SR{nW zkB7bW7W}N%TW~x8_u))G>^+{FG;iYS6~T-k!0pk2nmh#F$xcsKhe=|a$UmaxH7X7c z4Xp_P)x7TgYx4O=q@14!Ger=3)uBsw>W2ueV8_FK*ORopfL9CMuyhx1LVP^P$?Dw1 zg19jyN8nyFYUEn2UYDV?c?=OHWT+CMp_zXO|i3Zw@LB<)lARuP;BMU!|$z z{0ld4k7LqIW~~{#6T*06G=KwsEAf@%8x+%C8$ZDp-cQ!ih7JO*A%w`gVF(`B$h`uS zN_>7|Q3fyrLqz`}U(L=z1UoM$%VZYp#&E#c?Sa);2Y6{E@CK!wUURlAt|$f(;iZ$P zk!EsB7B8B!aE9%@C>OO(jfe>iw>i6Ll8kX?)up*EU0OXD%?+7K((q6KYL24~8LG^r zyku9nrHELO0~{{&YMe>9DJRElFuPXp@7+9i_t{^~5EJxK8?w`E4?N?-cO+ZlKm8pU`{cIubI(!s`@qOJh=Gsj@6G z+dsvZe$jEug*+A`#6H22)hW%8i7-+o_&fWMJ}mKevU&2JE||seol76Zs{t-#rV~9! z&$&RS@f_Z}@>P7F&TK^TPg%?QuCk!4M@e#yoO8jR=Y+Y?t5?JaGa^r$XJ<+Kb`*r9 zLuWx?yo{&`jS73C2o~N>t^;0mPNLBMe-|ZHXyd=iLg_{Q-^cq3ZTq0@&f`SeX!X?q zp-ob?LO9s};Z;urJu@;L7A*1`-&#LoJI0BNq1j+@5wEnhQTnk+moA}iUq+DaA~IcE zh}7a0Uy+r^t4OrS#*0_;m~Am)H=0Hc!sF^@-N4_Zw03>TEIbvVn zCjQBR)PpHv5j_GbmUi)Gx>V#wXNed8^LZA1Zi}U3ZJ&~{4df#cJtCe#dCLM?VQGia zU+yLvi~2Atg0(7`jvwUMXu|SBK)r|H$w!RDiG1gT{3MI>X2HlyLeKJ#6w`kUUq~Ba<$5QwOz55w zC;uPbgojIrDZyj8R&dOD{O_WNo7D`eRo+=pz7;k@?*5+_P}W<+$X+3&Ei4`2frAzP z*C(tYIXyX*TyrWc)hXk_@-vZ4r0a{BSVJPYs>m^AnRMi0Ec9)4rSu}hgCEa;FscRx zii86EXi%L$vyB!CB%nZUZl+nsm&WoFZ4*mvAQ9bbUD_MW3^?2WC5ibzGgEozj!P_V zSOj|2stgtKC^ECv%BX@Q^pzH8$+m*ZiUO`8zXpoNh??JWsZbRlRUkYmGD-#EC%V>6 zY^Hn3-kv7}{iJ_BNVBab>vh(4-FBT^r`LJ>ifq*#aG7$*(nW5sVAs6m-&R-e)mMkP z3OT-=4_9?Ld-$;af#(sJHy^mTyVD+e_dD))^rXj~J5baU2*Xz%nW*<%=_>Vot9;9? zT&bUU#M2dQ7CrCWAwBeW++FXu>uC>ncK{E2x*Ya=pg(fhs49#-WQE@YJg>;2 z7Cao6;rbN+<7P)xFT4|uDhx2r4>350L$>V}!fUt4O(&Z(o2am0ve?O|)a8eUrWy35 zU<>@?QFX9pS|_skRq1tc<#6{qyM#5Y)Q1JpTj;{$qBDZc5y;g>zG{48g+`vOtQ&qGrAMArk!a)lzTg+)LDw2{?RB6gIl_4Q7 zSzs%6>C&7hw@{~tI5Z+YLWNAU%;1t}fwI`8i)&CID|RU<&#F^xW2#gU#i4MTS^g52 z3F^|qbqPXjF37<$t*Z;9R$>)8-haA4AL`@6`|v*h)di|a70AJy5#%|AJFC=Q|L=DW z{KvdIyL`Dw(EO4d0}P{>-@|J160}hJ+E4dG?Ms`09Lqsc_}ll@TpG8U!eg7&iG z3zoJa{>Hb#2EmOax^$^?#q;O8c3sf#@^%%}!*+S==X>LAJ82gVfHYfUJ7IU7OMJ0# z_k_fSheHSp!dij|T~1+=5|b#~cH8#<8Vj}q4u8NYx-6~UT8ZgCcOS=?YuDG-WVZy~3k zQe7Tf00u`WsuzVABUP>us>BGWWjjm43L~miT&1ekSYCt?=$1=qfw{aA)HAklI4<9M z3{_Y?R^h)B-W`UJmmWZzTr%@DMpzArwEvxCIaoK57*?B?mY0&9f+X&g3`RF2Y>XWI z4gG&3BcLGkp}4p(zc^D_O&pCTtvNN%H8&NB-g4Vov38GcXJ!+_$BRq;*+pzLWtdZQ zUGq|tv#^V=m<+l~`aC0(Z(fTv$V<~o%~_@U$Y>X1p3amGx+zUgijgs-kFDw_N79jr zE}%O`DF;DmL)>3+Rjl>ZZ#MWdbA%yh$2LkLjmK_h;B_D$E>+Mo z#9#dCn`=b$$D>&~1DBHq^+w3e3NWlciPXhhsDtc0lbs3%3gC?7G#By{6KS-Ph7FaV z!Vmi^ez8dh3&%OQzrwl*ZZ4o=l}^`4?(byPYv^}cy~$rJNu`_a(|I>J+V>>waqx}o z*^`R^M-3+L_C}+5sknAVvmq}h+jO4{bjdByf`~mm3l8#bbnP~V%)o)l0Vzm8Qs!(4 z-MkS{>Y;R=jAoJWk!1D^5CknFPOFE=sHo5KLC|{WO=Jcw2aV6nWF3Cf(=`1-=98Rc zh&3l=ry?b-H%atk=yVAf^h;5Cyn;-Z5Z`84xMRsWS&xnmOlT(nU)Y~~3LsxE2Wv0u zQC!B)#Hy2#hy2?Zk}zKJYAO12d}FR%Ul17p7MrJ=-FGW(BR_T;&|krSCZ_g5wA&&I zO=w5q5=kZhfS?vrFY+;+NygG;OiGR^-7F`|#fAB~aH!?vYl~7$@W{;vjgki)1UcfU zI>ZP**iJkcnEJTD@c=WvC6gYK$@a*AM0W1WUZuqb1^J%r!`J#JF4n$>WZ!tjUy@Rx zL#F;>a)tjU+pI^{wW~Q*ouiV|rD6b+lYlu~YMT(fHe!A3I@h?}ajjtosXsr(B|lY_ znmt=Ry@`7)%gw>yhz7FuNQKg~Pz^HB36!%`waB%*JBd$n(?_6TWOZOd?%M zwUUh+bh-^nq8C2TrP&glpPxPeZd>YW5J~6L2@)bQ!bFx`tnl#%|6nVUPxQJR5RU89 zhAll(=#1B0k?1|Q5KL9C`? z3`fpM9+R3nItTeFCfpB#`kNIV+yHTMQF4LWEWkKj)aE2pf{6ibnt|opI{sn3MU>t{ zVQsSs9}%_e(K&c_-d18e=ZBDJx3;rF@vhRYwg5gr(p4#A3#Jp`q(!O!Uvvad z#&UBQAbw^;SsiYpvKOM{`2WpXZ?dwmS==mx|rV* zMM9h)FYbrFv#XZm>*b0-%lbQ@p2iN=zQUd%X!8f`<3`n8J8h!LcbppCM78AtK4Ck8 z=nev7norPHU!Se@EzR`}Eg)sWv{iGj98^w7|W^;ZO zQ+KT4%mdk7J*e)&p%cojTc0#vwJ2$^YT>3$0Rdaq`FO2eJcPdEox%8JY~AW7>tH3m zjazr>xMtnC$cqt-H^RH})uf-iRQwI*Bl;})6T_9-eMfhZ&mM#-Vs`zb0_xv=Js_*=hTiiFzE^U z82M-7STXHK<*U7^opN5p!bo2ovqcxU)mJzXzxu79aNL#gg1)nVaf{c^b=w2>Y|39) zusDBF!Tf#ence83abfO02s{&VOsT3;n^T$?(kTAx@sqy{%Hxq|w(N#$(U~}q-scH( z^5MCoH;D69KJ^#441&m*+fT2oc~)>W=~DL9w37u_RA;lUT)Fyy1W8+N?XnIb39O$w zE?T9^&Q~F{i`zawJ6~RIj`dU0k-*sX%|>!p4|b};F*YKtVeYFolKd0kmieV#JA*jTdztW>4! zEOCe~K3x`@u1=1VhpS3=DlZe)ZzOv(^$F!%O-yj1pL|PjVraB7Av$&ICK+WVn{tDS zVz|)qy2NJr&icZ-GG!ikj*P{OA=gk;C9^HJ+-7&G$|57wFR#oPg?&SDJ z+X+P0Z?7At9}zX4OI*Ba-4YEGPZbo&1PY8ISQb--a!Ky0eTiq7s2}vt9ztC6k>OeS z_gvxGL;KF;FvU=sLjsHfG=*5k6F24Q)I;lv7BS@$^drV%?~ZhflBHhLh?hju5`Qf0 zM*M-;1Mvr#Z^g&y@}o#7ydx&7Z11w0G=T{?i|CL{O^h<3T+;x*aW9Z%Hx%LA z%W4aE%6HTzhL$UfqH}|A?!6??BJIw$N&QYWC{6+e9U@j{WOuB zk190USMDEBwkuG%YLsQjj}obPupJGQv@~ol+aYhRiT2J{=0+L)ykv-klV@f&NFSw5 z=Cn~MF{(JmH_ST*YGS^nJ42Mw)#^RR0VJ0kH|;L3;da(GmmZL}H^*+NRhEUCHh(4S z4~A-qS8@3Es=|WmY|fBvsA!QrOBCB)TL-XSiD7|33DpNU;w?E)w5_4BFx-oy-V)2k zjue(K@REcOM=s{OFV9RhF%_8lFVNHZkT%3J3L>jhlIJdtp3H<&M;$!b4DK2#(bM;8 z!8chp`SRksDNH0D(FJ-kUyfAB1^P+|(cR6vbf)|}riM5gFw{w8Z)4pYZR{*sGJ}+e z`iLv%SIw)M-!!aZrU}xf)h|i4guKi56Ol^#h&`UXCmQD%>Rak1U*j9QB~%$5n!M>N z87A^ynKqS&a9e7cW838inoD=qD9dY1t++Bz$WwNN?E`U8RCEGl>NI&pTA>FhsFd*z zBW#?+Co?QNo(nZqCN;=+?5x<^q6BPJWLNnNkuN~|-NccCckXA4h1Kf}$bH+*RVKw$ z`^aeu^j6X^Io7BR3Au@w$~U>_AQhmK(;SSdOLkjOEosq9}%9YwB^6;9~-Ebp$782!=8)GFAr-GiWcQ(n{$;pW_^*S zkp9S17oFZ#8L5EV6lAQ+^ zPoB=4W5!eSy9*9e&%yN-kY?89XTz?|Hf0sa$vkm=QA`|A9zAJ@UWdbU}g9=81z6%1e-kR?LS(EJ3C(+{X8{e8rWS3rg$c zWT7}eFFggMxl#1v-ik`Io8zyLR9nRlWqG}XkH*!CrkNr#-|{DPFl_JA%ox4WH+`yp z)^tYiu`G_h&qdP#20B15qizztjt(fN1Gp0U-boL=?AnZ{##RmP(|!rOx4_R2;lRvt zy|Ov$uKwChMt|~T3AnDy$p9Ted4lo=G9a1^;Nr;p9w+p&Szk}p`(`nEnptLhSMWXJ z`*yOw)QVvLKntk+pV4YQk$z2nA-hGqie|F(qapMK*@a1%PNy@7v=aIY-9g+%Po}3?TQUsq7j!qDK)x2)5-gzX z6+U4Tx}a^M9+$~zd(7-cBee6cAuJDcAQF_U8!*g|5qwHB_)6ANO(*OiBRZ;~jCO+r zvX(9M*;O*2V+(mM0@b58%Uf;cSL8jLl{bq3Tgw9kc?ciUfylrMc>0%h++;0C59?^_ z6s*b=NFg&7(wFXn`(N#`(5P2vt;ZiWwb9tQs7XXKYw`21U3CQnhrJ4kIN^T zN0{cG+jHth{sl8xxPy4;$il!Ysypiai<#4JD_FzM=F_W-;I~?78>^>B$;y~ym(;kD zK_!D~hPa*{M0)uB6-`$9lE8d2>-WD-#}SwM-xxB-x{S?k&f62V{j00vo2G1|TQAYL zJQ^9%N8LO2BX9Su12-j&tf3oQ>H22yQY_NXJidV;qA{eeHxWV^5hSRDEd2Rc-G!F? zOS?(X9ul+@!T`ejat=v*M#T5X_b;b_JJq2Z!Z1w&z#){54yL&OMy7bJ z4cQz;<+JEW75%v6qx}ALpI+G9s6UdjHM>Q7WMU)SC(yqinLm5@oP zWR%zG*mL2#SCvMj1*L~Er1YhL^SAs#vhA-~7dcpGkd16W{G!CQI)=(JLVmp=8q~ z*daO^e1{F+(s$D*T81{I^#u<=KN&v`N(U1q=h?iX>xVo|+IuBoM?#G9mGGGUa9E;4uH>o%75_!~|U-Aqd0&-}PDR+3W&s zVTzd&1TO@6xMZPJGRPNGIr^u~IYq4%q9#e%`Ii+xhWB!!y*q^`cq_XP7q5M{P+fjAIS!Lw81FD_!hmRn#@kn{* zaqAB?-!ZoCZjNR)R|gS0U5++aYobi>c+Zv7S56NZtNr+3*3O)5xh(}P)h#W1_ijH> zafB&9Y(CHilQ&gRpR`Qn>sWoqRND!OW$Gs)H&Li#2bQ)AmZ=h}-+1<|vSX0gs-z!? zS{06Og=NP`t5TrhvO1ATc>dR;uUrr7W&>Q3>m7KtbvGLsTUJ?FT2@(A8WR~A8xx`A zKkXIKwXUkNYh9$W<2aqiF7fhOsA!7R)N1E}uRtK6rt0I&n$QO*U#WTs7%h@b})NAG**!(}x0pKU!uTDJG+bqWa!n zb9{&`o;~f=zGSJ_nk8J5HP-)?T(vitI*x??*_n$NUUp%)#WTueTwl$L*a;aAHLtA+J9YQxP2 zCSOx#tWfGDj}usPmbxM+5h?s-*@kFyCPV+Sea7a2Coe5FH31W112!cX%gnijrXp>b zDTA@Rpp@OP1EX%nBqkzG8<(h*er#tqV&$R()G2K)Bkg5(-Y$JL;(R>F(-|v{Q%nup=QSzxj4|RepVe)+{vW z=$_m@Y~c8e&AJ3re9_u{hkdRTG-R8zw-+`QG?zDHpA5!+M@^2lT%8RSXuU=iA2K68 zLKBo6kh0!5*I3->RhyWbRZ&`IHr3=5Rx-xSlF~v`R;K>jO<=|CX4m`uEe3UnA%qDr z7DXUe+7KJ1&WKNox|rE$Y$`d`s%z2JuF*|l63>)ZL~=z5^C64I<+o^>lZwWtr4%iW z&;%#PnoDZUwdyM#=}R;6J}%Z4Yj+3Nr7@3V=dR3Oz)0V>%eE_=)n3*{zsytZRPUg@ z8|VichTq65F;r)pTWX(gBn}(zgzt}NNHQM?K0BspE>kwHz$bVlQ=-`eiH{D(a*fRZ zD2kK1J7(A=>p(cHG#S%!(%}_O)oRNM1UBB7^iYN$Pgk;;(4$H+MrEx&RJo0jGWK?M z_?nn*c6PbBSyAOlCF-KwtZ0UQLAJ0N>U5(_Tbxpa7#XTErsovGZmmqxg)t}K6-rZu zL)j%-lNytptIjJnW#wb9OtZSO0yNionv^`HNmB?l7>2*#hUac;*{t$Z(kmo9lfL_P z*uCH*Yv`aAIDH(!pe?cLDPK;WL!D|XartiLoQ=7d+?d{)Q9&nP1N4OBsxG zk)xg6%k+vrnzAc1tIo&$7V~;OnK=0eMyj&2bDVQy!}*ZM5x0|WW?j#D;z{0{a>lb| zYQ+~iW|Mbn{8lAp=EaRP_BRg6q}}rSC9aw^V%^fkOM?=bfS7;`-Os<$w`g#7w{Loyr5QVI3*==YtHYJv-YE`uv6{dV9 z$5fQLP1}&soKs$~y}Wo&!XajLT-H<3WCVJh4muqA*j!mrU-!+W(+#-iRd(*T zc9AI;>3iRF&bb`B(Ouzr)rMvo8#5eA(8iHenaQ)*5c z2M}o;4@o+xlYtLg{+w!d)79q144u#a#inFH6$f%}^l#uUXVI@YjE4OPBLo4!P5Lnu zvJAOgKDnFn2YIF}_b&4;@n(7xfPU{!px0zEnRP z5xWf_bR4fPWD1TP%RMfaA{I!7&L4mT0}^J7VN(n=>@bZCVx%k5^3w~_@)Mfko8q^V zf;X?pP^0lVbv#M?8R>9_IBGD9pG!2>DMDx#jCodfa@n$*90N?w(aZ<3bS+)+30(xP zr$sNxdndOaxxxKyro-Sid2)Ks(MulYQB_JhutkIb2z5M%OM;X2x;x{qMzrsYMuRocxkbW*B|3d@WCxQ1@Ugpe)a*iIA@vflZ zx@L1-u_9HyiaYY1-gEijzn2k&ijtG1v^;`Fl@_Kk1 z>goc65Z4OYN(W}dF>x8uTm9tvU_JF+o0RGs$mxT;X)(RVft%fsDYHHTSf!!KGObQ1 zSsm)HQIaL~fcn(?-lo0e9k9wUW2HTOhA&2@?P51;yKGK#SVam~k#a(_V>kL6J~lT` zFUvO@borHJoF0^x;<5(^3zX(I;=o_oMP@U4M{hctI@qqLH+0_4ZPr`lnF3G|XZ(+G zo?rp64OjwOIIsk!RSG_Qi4!2bLKNelwH72p32WhUCu1z8KM`I7cEx0`*D3_yNH|-b zTCOhU5X^8Eo!vP9&@{QtSv+n2szn=-geEA8$EQLrcDYkiV@X|^Fm?D@)J|Q*RBsy& z+*F1tsZ(v7)`;gHU3ng{3NfjI9bN+f-|WT_i?;)1JBEK3S+kek0s^eyH(j!A!qVFR5`B&J zw9WDwmB3alB8e=0#RmrO@+a^7an<$lsR!%!tz=?K>LQNGkJVR|l_>Wed9d%%(pR(n z={v#R3_o%evhwvlIZ7YPS2&g+(gIWTA(+fcb|_}EFo-v6Tkmi3hO!2 zKpR=0&Jaqavx&h4aa}`>$zaYfyJna{;+{#{U$~I75_1};-8r!C8`bHw{Sy~q=cJOY z`lL8le6a@F{X${fk(dApSLsiU{&p(TuET_k528tag z!!8P$`hO`QCDfp*QCEkTY}GNgQStO!`qVaBM!r^%qsVZWj%2M5;N`-N;nC^j0?Njt zGlXP9szO6EP?)A-Auke{44@7j3n0yKkfe@qy5uHO39IZfofbK5aY8CEZ~7KF<^ufK z9rnvQ{uam%!oftQe|ZJYX#9>+xT+Nh#7=YRcqpb=qgJ^7p&-JFIr@*NGprhRz>mGzrS)dr&*TG`SIBM*2UMKQ1(`|v@!cQ}4k0r#s4CK`Z%E1Q=_c7) zEWPd~Nw6ANeM0LPQ5 zlcC$VfZXuxPYwMIV|1P%!VL8()|O}NOWqd1=xa7)jpXvFaYcY$wkdK}^G9R@qhI`L z4czD{m2vr~J*FrmivxRDomR9yK3cDjk1O(1f(}Wb3(dxM5=Ik9P6>iD5=k?pcCf0X zOt*v6l3`zO)5~sDJ*A($n8WCAtvs0z9nUNgksIa`N4+e~ezU)@50c^1g}26QsAO(P9N(Ub4}D_N0$n=IkIiPIaxNy$UYc#_Qq zdCiaVs$5fglT4Tj1`yJ?>mI(p`O`u=<>JqLb?eqNaO0Uf-Ge17{Jaf3E2_y@}Aa->Gh zp+^E4X|_8(5`@T(ESfCGA0C}KaDZZ`SVn_;*?|0D_2-$bfo?^w}wcFtr#iqeuAn>1>|i zU3o-YP2ThU zVb~ADtEkk6I$*QPr($zUQcKeAih>qU#43)E5djc$b0WQjvB*vI=Z}a*2X0{j5ptyc z$dpyYb2T_S`r#~QQb%SXNb^3}LR{r=^nS4O9I;p0Qrtu)mcCs88P#jH_hoePHIPY& zsEi|(NZwhD@%k5;wHK{saq#?NHwx1^Y!qEGa)rYAMOl)Pm0ynbLYpTN;an0!p6-|A(?X8nC_ z4m|R4{A}AQGLl0Y!eicrR_SFKsr19t1-SJAr{!1KX3^NXfhL z-JSS*!i&<8IF5cs?YNG|Vrn;f1a(x-Mm?Yd9E&hJ3wfc};HUz`@*j#SBOrj#eZlrl+U?a|B*G zHc1^7C5tpimnI?g11nPU3)2hbLdQ(UECd-t7q}dAiZ(DZfZdE26677MdE^yK&1E37 z3#P!5Eme>&05T=xzgEVQ4@ER;0^o81G)+ctkOHuT-2h!@C>c+Z?{fT-zgX(|F^%R| zi7M6MMPYK=DsdcOO-OTdwoMXylf9zn>U-Zl>&$YQF?Y=u(HzXP2!r}XM}>=jR()ub z9Eci{Vha&PnztoXV|47~q6gfxGkv4Y>OtBt0M51kOfuk{>Td1Drc=AmApJLxE@D7# zJA^t9>L>ql**Wsg8f75q7D(*z%8+;be9mo_rv$}pS*cup_2i-Bhff@I{rb|Wrk1S7 zdB+!3(4JLPQ9M2m>GY!7+NF*1ZOtvW4=NAbsyUUpo4J%5+O$+29IQ#&sysnv{q>j( zOC#d+6Q67700uWts307!ClPdAqyT{m2aY9N8Z6xfpf->xbc}d_0$@i^T++-~CHjhg zIsJrxG6(3oF+ikclI~8#|B7fBmf)wvI~yS$3Nh~jHr4CA3ou8W0C0f7oo!vZQ z$$Z>D^z~NZ26`<{>D2q~gtGl#0O6Q#-?~=BdO`;5`L#tpW!$B?-~xL6b9L)=rS&fi1NR$6Z9#QwJ!PK3Yc~XO zpEin`sw#KvlI@Dz;a|l`3*Y`uE7=Xx28R!j2Z?{OZ4&Lch^hI-%S}y9%BCjVgJWL2 zVDw0>a^^_NUJ|%l4}xPJNB-*9@C~<>R=rqH19#Juy&S?*FZ9YGFEDnE@o!?9{6Xt2 z*MF%G;D({v9=%C3m|SoJy|ftE__&O;cqN^%v@fpq$P=Pd<%f=4klmYoW=ed5HXZ%Z zIFGN$Skc+2rLFVilfRrZIW99UJ6?GL;P{Jumm%14F3MxiJo%)#|K4&O*6PTwM2n&} zE}bu%bYa20l9J5q5{`^G@tR(tBmTYR)AI}OmzHJ;TRu5{l8zTGtT?&pqWs>atKXJn zl%y3aJ;(%d@y$s(5nE1S%XgQqd{?3swk$;krTbaYxyl{wmt+s-otwyYG}B_XFS$Z4 z{{0%H6g~LxOL$I90y^Iz%&F;ZTUV}c$1Skn3vja8l5MeN5!>Q_n)}<5pXM@t2haGN zm6LCs&Yo%6aZvfwrC-nde4)Cyvb?;KAqvNpixzGQ;YKYQwPe&{CUo;WFE6>*yaP3x zm7~v$I63+(v%Y@m*%LBvOpI=cPqnUDCJ>mK+K4YwUtZ#QZR0ckK& zwEms}aWCw+z2oXP#3X9^yY8DSGFv7D?qfSfi6XDxQr(e1eOOX|PpQq+BG-rECtI(v zS)s;|t+FXmV>b!Pmq{I;ibxD`g)>1HeOKfw#qTkbGx(AaE@;BA;>oy=p4I2)*ts|`qSlW9s?e!h~^c0<6P^2oE7D+Y-AoqA~tKyQRIiO)Px5xsJe}_pBCj38_;2xj!)&ukuPU6l& zn1D!BM5_>r_23&l6>k4Rut)s6Wf5z;iFCBIICya(%WKSzQ`&BlIWhFQi1tY#hY&J; zBPVajp>n4bB`?I0fwN4^=H8;?6Qvt6^sw&r>D~LkMc*e%OiNBmkR_Os3gH`i)NlS6 z=zgctf4Ods2;Q(twr1O==5TJYZKe(o?i`J)rYp$fAvT$^a&we9xtS)NX)!<3rFq-7 zJ?*lCp{<*%xI7|nCEZT9TYA$CE?LOF%|vQrR`>o^q5Z;aQ$Z0}3ic{2Bgjez%S$j7 zfSGh1{@0Rs$lB}VUsp)?dl-21_(GGtH>GWs`}ky=kiabi*Y!x6iV-UfWGoqwK2AmG z$H1icY}RQJLmbWygrS8N~0G4O+11aU-AuV{s z+rgk@NoHv&9%(9yfy*n1o|eP^;YR{7U8^L*vX~5dIoIQ~l58ekB0Nem`uR6>que$H zNP!o&DYhxV54_-~@Cz}uyUc%iG;OzLkFsM61aL^heyD)V0{7Ksd;SgH1dv${)_c5& zP035pr=&36-cyr2irFWYWExPV9Z|FLkY|YAo6*zjETMIZ9#;WV4(`Adi{c z--X0JsK?^GfpNywK8I-QFu;(8VR_EM`WZh2`9n}aOkn~7W~+dsnw`HrK-slQqtPej zY8cPMKd0Br>wnHVd{~*At1r+XpQwb4fUt`bdDcsK_5YLI81CyA%VotGLGKM`?L6ut z*czC?x{&cD#?s7UZcAxcbDQiGB0&wcNm1q8^+P{x|1;|xsdPcIQm#3JEMD(YTUcA# zDBs)cyMDbd{Fu$WsT)-va2uF8FdXF00o7#_lOzb&0H_5v)2zGZDhg3w? z)>c;5a->D_=IIY_-aH-GhXXH5It^v9_ZUzN*^PSqH%H!+oZI@eRz%;Egj7b>bQS4I z221F>ohYEEgoBrd3>xMpI*5yW9}m)Z|NP%~upYErX32*O$nrBHfNn?}U5<2y1gOES zz;%k@I_xA%yw)sT>eY^zSuyyJX^B1qh$OYZGz1525-iunB$4BJ39jC$Q#g4JBwjzU zv|fUkmr(E&2VrZvd@=p-yogpxXc7qimk<>Sd*D}%Q_dtMFlC%Cg)1mHrA5y4*;DPkqP<-@NcgNSZy6X z3Cr~laHd#DUmlmPu_O209G|gt553I%2Arn}#zGFUJFShzS zlJ#Qga%`jPC8TvC+c94veR7=KpGfc1@qDB8b1_|SYZQvLqF4v=sVCBV*wSGAT=LHr zoX?Mz_se;n%*I7OKzwks`H)q}DX(_0Zs!ZxM`X3)p%NW~JNpoCA1V2>w&^VFUOAjj zpRU`KQ|Jq|FbVb9AhNtKxtDdP<<$9Iduk69A7zY%g$BgEKSc`G06I&k1A0hZ1t+cF zlw0t>1@Dsul5P7A7ao>lPSdqFZzZ#F)hco$_mzOty%$N?pLr1(SG{`j2VrRZ(V`(A zN^jV?Ii7{LUssuakT@;QBk#Db3>A^lU+igwRKSY$sp=KV%xIzGSevvVz@NJoElO3T ztCD2W_f?;hK^J?==E5B_VBS__#(dsv;0z_?%T`fERzYbwsI*HW5~;#JErKi4L~oBk z(kW6;mD0f~|K!hfI~Lkv`?y4>C&fg|BFked>-lNF7oOrws$5lm3bXPC+!e+%@*jxP zx7Q9R^O5#dt~IWrjx*BynDjt{Z-6XbkLR4zY^%wzEyQAv(mEDvvaas%tjG8PaQj?g6JFwn2r%eJF&Yu@W+WaW`a5234W{oNY^SR@^D#$9$%Vly+phT6MwfgjIWysE>;lxf( z?7rDvvr{R(RZ;+_u!h-0By4W1MxCHZO4Vg1RWVgb>Z(QZMbVMrLCURRsuYBFq&4cI z%);{0^3uk-24s;p6l?3`bq(6Y3Z?XLMM6PfZY%?}#GUL{v7c;Q$Zc2@8nG&CK^Bt8 zmrluKG6z9aWD}h%9~e-yZHrP`v!Xfdq~W#^Pvv`<;Epg5Pb1(np1&j2?;&P|pWc&8 zcRbuSdbv{Qh`?d=kgQ#{gBx{fT-CT!%bP!cxZoC!NJanUyK24PxLM00-8VAx{OC_~ zjcvBfHivhhxA~zk%>O2bc@M5f74fq)6MuWSLHsN`!SZB1iEK`!jt!+_Vd)H^Ljwan zJtyfs54(CE(cL?8I6vP-*qW3ydUPOtzk!NeM?}t^I9Nu-&xaGyZx60LujGg$aBhuH z9yd0+5bP^ha3W}5siT^ znBJmYpkc=dr3G6KpN0lCcplc@KYZBr@Zo#*j&3B zO2Q$cg@S@-&l(8pM=WpzBu=M5Eu*N*qfmCCv zk-l>zHZLJ}OHo{I`;GeJS$Vm|hki!%I>%52E!XT=byx}$ma--=CL=a|X=IQ(NWCmB zA~hm4N|%(*7-F+h^|H*gg2cj%qV#PBb7sD=405~1tc-%JtgOtFg%vrKx!={9bs0(X zXwS&aOw?w;`#uc~iVF8y5|@;vZGax~j>;3)$|{eYKXAF_BxbX@8K+kltBciV{RCpP z!{J8EX4dnuY+(lSUgc_CU`l*iLV7@QVn$*{P*ysAO}+(*RS{(wCLL2z1L0+5aZXL4 zx!jnQotsh0fCYkOKcn-Bay@{gfwmj0wM1h1k|c=UmP+{j4_R*v3O<+D&~5{^lK_6l z%K$Q`V}Qu^${NA)H^>SwzDQ`X8#S`~J`acuiuQ|l^`zo)ar6WEK-#mdeWWrcadkto zT%D4l(jfMqrd;p?SvK#D{0DKvj+~qZB|ML<_m8#CaXEo|lkBtJ1uXZVh#w~@OwLm! zcXXrvS`BAA2^}Vzvt(S*f~X8#Dzt-BHCnAMO_#yEy(rNcbUJwGa?|qUX0U^#<(4P` zUA7caoqz&{J4i6Qgg?AH)G7N49xh=;8=^RPIj^A3UF@sG+0zN3LnXu!)`3WpjF%h_ zxb3}*6YgTsF7IjEzmj*1xg-Qnd=!?~Vkpd5Op>3MfB)Hjt|R^-YplWSuHE``-n%#NTBzUb4Txd1 zi_K9?qe*nv8dvYl`h~kTlXlwf(s5acNIHW;3rovogw#m8h~6a=5RvTd2@Y8YOQrQN zOL`9`xa5>w4Dv%q+WR*M5{)D58Cd$T`hT%Sv19-=C|05?v|m18FdYC%iWPX+yB+=G zSB~fESgNHzz#9jtg-3qBDiIYC{|JY=GqD>`Y*bY4j6oNAR;YeU|Oyq1AblpirOoIMMPTk zC4ni-!>U34J>2>=UC}A{5lnRTWBMWKv5H&MaY5v(trNJuJjBg)4b58R8p{O{>2c^W z!d|OEwbLaoLg0Cc71WTOhp`q7M2PYDb-XXZjJA;NSU_?uo&Pi!UVSZlV#}eGWn6~` zJSf=-@tN`R`1p*p1Z9T@^8Q!GY+1ET2GXR}wd>jTw)%b)NyC^p<7ATI`*bEJv3a|o1t0M!vfI{dm zv3)@o{QJ`w$*Q_F`y&P4c({lZI%NV&Vl=uMwMJd0PFU%Jm7@KXb?t{>>Njf1B7_qB zfC(OzOO|NK;=hSMrWuX=R|M!|()fU6Nt^B5Boo{mcfu~P<&pO#q`)?nB|R@rqwnT} z@>fi{=iR$Qy30#!575m_eMAN-Ed#}dVnay@a>$?|9D%9-cDfketvb33NrKDKJp_?H zzmd)0*$oj-2^+NGGr61f!Vy;bm5RJ1CnYcfNRPWKa0^L?Z=@n6JwWaV7zuiPcX_IH}UZON+LRO_5sMlq&wZg39#@y4S=i0 zg#^;+H-9HR3}jx`U7V;h0pulM#IvH6bIWI^HkGqe$=7!!LPEw!GMN9H4DRVB z_9KI(?QY^>aGqh1=|=3~7m-7e%pR{`M8j-Vh>2l6k;AXuk>3%^LV4N&zseyKPJFi> zRJ3hzZLw`}uhtXhNZYHnS1XBRKwH1PE?H$|#xj91wR2~sxBXYAz zuY(X&1i2$3D~(`87(-Udp*k}b(B9-)}y#>O0yJzIx5G8eo zH}De)Of(jp5u-V)$3O+u3+g;F@Hq&wbgqJrL0ICG9Xe|n5@fN&z^jei4fpeksGcQm z;)l{;%U#}qwaqA*TA-H&j#^H;wGJy^yU+7jIzJ)E#aLC$JBn-{^53(znWd!nSkYwq zf$u!{jD6?rSso-bc$e}da)T}ufobDk2QMH&svkYa zMyn7Z0I_MD&3@+$z3gcX>0WW-huXa*7lXk&OZZ2uH2d@akFocFi{fhAhgZYQZZ^gk zmm#pj&Zw~)V=S>p(b!F5Lu1E=Ac7#hvvgP%SlFfa-ocK&ml!ogi6$l*O;6OACzdnI zS$zK2pn2Z+`G4Q{`+ctLPC4hynRd#3U-xwpZp$Yq-~GbuM8P%;0rP%o;85%dPK|2< z9r3O-A%yrzFUuBRytGiSmEBQc>NZ$12w>1^sjY3k9RFF$B~jY6O%1Xz@G=o4tQoPLH-Xdc zq~s>&8x-On9iN#UBYY;mxova^KXH;i;yp1XCL$@0_X(}4ZYnLTG>PSZ{GR`Smsv5~ zr=br9Rf*nLdyj1AymtC+i_m9h>4mT8>vYC3x|AP2Au4pXm>e0O9L0P2)iyU5RWw<| zs=Ggy$V|!W$ck0(kdb0_WKO7`{6reLjoWN1R7Jk5hSij+7iashS zlHcUrv~Pb+6@q}9(A@Mcl-=>cBzEm!GDED2Dhl1Ig-v)EjASyot23*I9G|n@mmE2R znA6l$KVJk24xlw|K8!8XHkLH8RX+5L?OTSPA*Yn->9uu69-y9@_67zDCJ9MN2>5_}Qf79dn2ecxmbN=8P)}my7``0ohB1rDFs8fU}aav$ITQqfkjw zn5)38nGIlu;^Pw%;>8deT}BNIXu{3r>}-osC?^I6EMbYykGkL5gUg9G$HgXqI}66c zv@lyAp#&LXjoI-z(0(%K0RJxM>5#T^xpC%LJ!U7}DI;v22uDm|^hR?$ED{!TE>f1F z1~(-WmuHB}iQ)CJu`yzVEu)AgF)>C~(OiK( zH!4c6j}oG6*#$J7i8AKs3;2TE+yZ1NB=OAmxJX3?eI7<~F)w@XYwkcuHrm7XSuZ&Vsio+*lA* z%oi6F6eF{oJ%Z`HU&;Y0q#+vm&X%q5QQHJ!4umOxEiK>|ei#$vDh9Y{ftKUK7zlE4}-D2Hvcv!eBv|4sqXm#)fLSvgO2&<(1!H|n@f@QKt z4e1$~7_>jVPn5Q)f;|7RKjjrns!!H^Dh2+omWnTA9r0;Hb7xPy_sTz-HcNkP%FMngI{ijvH+8SzQ9&w}OCV%MdFWa>>x z-8%M$su;&43xL`Dg`0QDtiQ#lyU5^1A{MILzQ4cY5`VI=tRw>-S$bob5n6dhLu!fv)HW)Ool9y=N>pliYIJHOkhLfz{!H4DoH}5cRJ2dmFs`t+ zu&xlReN=5%>n@jm(lWDs(a{aqZD)zkNyv$p6AlX-<~!C?Wz`mO#_p-H0q-gr+Vwdl zt3}eICNv2H5}7s?0#efCZ1O7!QTNy3iaWyqhQ8)xztQZUwgqs8fM?JtJ($U4Gs`pb zjm4QoPGq38A55Yw8ED%tC&-9)GA5+QCu%d<^m1c8!z0m{%(NO~x`a zo|2}1^H_k=TH%bSVLtEAYA9`ga)a$h-c86!%t|&p!PT4rS926QiC=cI=@;$&tIo+n%Q;&>mXaW7*rI zy@hBz4;y6uhAF@Gry#F*A~|qifN88T<&=y2%gYX&(Vh(1=TR=?1^Z=zAi5VV?>;D$ zuBHcf+W)SGI1SGJMEB8fkvcex96IE#*+<7{zDHEJD@27lEy}JA$-+Ikd-n-MQsf)k z{W^uJP4TX;bgXqT$>->0a`}a| zePdUl7W=h7Xs}RqM}SWF`{op z^4`ii)#YznA3V}N@_ex1TOqJ6b8lT`ZNEmNKK2ME*e_C1_AzoM6X`6O zm4_Z>-M7n#;twq`Bc63AFdV5sUoHli z(Ey~Q2U#*gm`cYEqW$~#r^`qrok>2OCH$65sB`tfr|UBp4j_|y3-z3)^~K7cu%1F>p))fT1pfmLYP-DB`aKW7V}G%#fGiG2C{-V zi#fw<%>>aYlb>~QNaqC~kOShoo5^d~ClEPT*os)!#o8q~%Su)VQmE|#htq$p`7D^1 z&`DwU$uqI%`17Z8N={+}(l5nC`86+uykN`(fw=oR;#q>p>L=wxkYV+3}*Up#a&S9Y_LuG?BnmL?Zyna|hEyX%4yuY8!V^prJ6Z zE+&3ZjlHOq0}}9g@=svGMdAl7`h({M5~{R~`;c}}YMZ0A?UdfY%zGz3Z{V{Nhj3=* zhg5|0EhWLALXE^Tq8R1;pMgv9PA9gvB&PTa}!0kDY%!Pa``Iq#% zw7k4bWy(lQ#YC)x&IB5@IF{}KPM%uY+W`fFC1Pzz^Og4YzG>|T$VfT9ZRCM=4LNCj zHi+9~++^C4U3}M(4z8#6H%2~Pu+-77(Z4yk6%Lmr+X!S#z?AnEX^nTX{UQCv1zw51 z_LcUlyla(Lgh_Szdy03LwmL0sW2Y@4@R-WZLUZkvWwmGydVpr52r`vTP=KhJ! z=7K%_z5KivoOK)tv9RfMFe1)gRusRxC1F$2CW8}P$Mcn>)eLOgTd-aQsi?bjhYR|2 z+u03ALDVze5s>?>2Ua#N&O1U99J9T>GPd#CyiyXp#UnIfam-5Zts9)+%Nf66^|qx! zA2^YyDNLMSlCO`}$K-2)Vr%4-@()^;9sngW67AY>+~<6Z(;Aw{BsMlDOE0N2vl_)U zB=LOS@rGRokcN&waJ1!Y`KL}a@>|AIYpQF|HYC->L8&(CTgH}#KzGdXTH~n!{yUKd zpY?LAXsv3lZMeM5@%N|1{stLb7k<}qk9l9_KBLNd4fZ=C0_E@_VTGk$rJlv^`CFVO z`7)LB^WLAKoe}+h;C$h>Z`78Et)U)HXT6wHd|8Ww0pk z65Aaz)mVQAitn(mEPRT&P6wI!_z$$-sj`2jFJ?!J;QO3>kvLu;pFvNn>kbqNL%CCn zvNyUdk8@piDdB)DSJ!?t@093)+2rBC{VSJ-xPSa{#rD$}!YEFawH_16`~LLRHlq3J;DOI8gbd}5 z;+WcIZBy2srUI;eSib4*MGzAF{5@g!?2Zj>77iWCFFJsbdF6TA1TLdG4UM_vtgK9{ zPN@{2UKU){jlvmcDJ9_Az~#4GT{X<39$~=2r9igH=`81!V$#RS6pT72GT?9-Kp0!jKrqyLDFHaT>12N2&tX+v4zxs1peo-)K;{s#9__3b z{Bk~;-|k4iR&e9q3!6D-VD8U9{ZM%I^ZPMlfpkpfCU0LhZmh?N+ut{R^6Txkxh?|w z*RMIhIWt0B_{QZQ7Ikx24Z=Ws(cmjo{A-(-to%4o|G`S_@^ZIBz5-bGdw9&8LwjlI zCi3x8n6bBzQP)YBpt0AJR@=}w$w=*~`toBiEKY8GL^$%Ewmz{gwpOUks>!agsL0i> zDO~cwwDyBq$%^N0ziFR9{aMpS!-fr7+Y{ybG`HmS&|GAt2k4%Iw!7=M@H3*XofkE6 z3aQ5(WnF!8Jr4`!bfqRme>(NF8JamEtZ9eQ$49Ffpr1ZM3FA3ks>~=Y%P7kOsRfU8 z$*J^_QnP#momoxaBVHFi$*Dgn*gBl;Lb&V8u1%e?WcIY_=jYrMG#mPTeeTQaV(-K1 zpMZgnk(7UTE`8MZ?4y;BI(3gUUu%A|-tJtOXuq{%BxfBeaJUoko~~=r0zMl_h{Q5RZ!FJ=zRzoee%N( zPekc;Jx8w70#ZP))2{$^#P6tzQTrzg`8yk9Yx3b@6(xIL|`(=q!`i+2EmY& zY)IlgQUk-i6IEM0Vj`BIFC~YQZrmlqNS<##e zijUmzKSm`jJ$?CN>o-leO_`2}D>fL#odpNp+QXkICB0k8nD>bAF42I3EYX}^RZ?54 zJ+<@1j&{gSts*fi$Okm$Pp6hiBg)4DU_lk(s|Sj7$`lMeqv(g)kZ}D9Fam@JhpqS3 zh8e@N!-02fFb7-vlLOC(VA9u}7r5mf9+fJQ6jlVVzSHT)#%jC9VtA|J1t~UI` zRu6&drA#^Pa@XZZcd8Bl<+QKKX}5Y{$MdwOcFAc=WgU!zAJQvuF`+kqlis9NZ~&}< z%Vi>ZV2$`b=%BKQh6(%STG%gqWrZ=lQj9zje;f>KUtp-3L+)2q8qmB*KiST4pU2K7-MD54`My$OH^E7lCr--x$06?Z9 z&37l@P|~S1_u*g?n9tSZfll)sc(w);@4+ODCyRArmrUD!Sxp~<6j^hB8uk-ckjH@Y z4eDfY1X(R$@rRzoMm3NHUG~>>P$5&3SJ9Z-BOt90>4QIw^eq`H)so(QaVIjYuv<*>vJ%o4PO?Y?g z*zB>qN7QDY@elVN^ATHv(*|wT8W5$VhhtAKq(n!j#qeE=SWPLGGNMI8Zdy*RR_mX~*cNM~-=m2mKQ0+iSF4r#~-tQ{OPBJA9H2Jr6`U z1e@UU2<+@2f%bRg&|nTg1bgzB#j<5TkROsg*M%)Wj6lp5djqjI5J>%g&#(h4)CznoZp1{9|r$uDqn}9IP{{HLclK`p9`weAo^( z8IPTRAbwSS?+^0wnd3p8yG0`JG~hipYst$9DpKS7d47B^TUpWOj{LM2W5nPjEj}&Y zkPwe^l()3)K3;JKPH!ZarAe)27;SW7UJ03HL@B}IHOblT2pMI%WP%J6Jg=G#>GRIH zT!B}_R<9^(w|?~K^$5K5*9S)KiQdy$uy{Uu(y zR9&66&%fG9<39Iu#Hl4S?*HQQ^U}(r^G5&T7~QQa7!#cqk{A8UXmDRa;fgn#$y_K@ z(s1s%`rtc1JI3S(r^Q5*-*i8};#Ch-^^bIGf z&HI4ffQnz>zkXum9$ZVOxzcw=QhUrx5m1G?%6}`!NOA}x^o6oY(f`YTO=mrvu7Rt7 zo02+Ksih9;x(d|mI!%INyc%&Xk2y)hw$<0SiG;J|g1^_Je#b5Wh*jIZRcg&e#s8h{ z2bb|^Ynu~M$mCfd2;&`Qlo zQ-e-AU?(4f#Ua`R$)45t4edTMT;#xu$-t_POT==CblCe@UGaud8i zvyKDk%}>|+0J_|75lyw~*yOZTt89a81050M6fF&u1|2(^c5Br!r&UL>XSHphZIB}! zPKEp6vO zhgbd$x}}0LrimHep2@Bug&{@3Wyu*S_=J`ESk@ZoOUcwN2=N7dRMvOl2yfhtyq)*i zC%e{DrPwt}NhX-MrX!xmS8Pp4l0Pcz0_DB;zZnB@+&9=U@4q)f>{_5qFvXh^Oe=PI zu54O!X)5VGoP0E$uId_Vo!n1P?yC}w@FKsdElDm+E=*C;0YFW<&fhGMesSru8J#emS8!Tlt>8&d3XY?4CSrcC#R-m_l*rVb{6;`J@&i1$}=l%XU4YY7i1Qi+VhhhsjS1Pg6nQ);;#dA z_wjtQDhRLvL+P9SYqfWfQOr_`qq{`JUG}UGw%_Zl)%FE0% zm*!i_Q>(#-2+)N+KB;h-OosafLpu%qt6OS7_PijN5b{o4=(X+9YumG(_I7DqShv~( zv?rVCE%0<%SQz;Jzm`}HqeluLNV_^XvIVj>@Q~sV&s>#zbq-*Fm+yaeS!P9rwzFfg z`dJ5#C$|aCRt2j`G|3(tr6zR4vkr1l2RZ;9d4}O*gJciiY>)lU%4YjJotAvA1}5r$ zwMVIat-Cw5_gn2p0PCp{NhPV`s_<|Qtg?_U^^<;d=6O1l$FyqZ;{N@}U0sz>`1B#X zFhfX>Aq70CA=O+Z`ow`%W+Vq3ZZ56-lV(EGfmRO1%3Klri1G2-00QmFN+B0xE>Cir zM~s>{9sTYkF&UA5F#J~Gu$BKgEbvuXwjQvmJ>}_BTMu+6*nopqn$4Lea6Y<`2$BxJ z8>DeAlXT3Sut7{h=V<18lT6$c^jMKH;ALs|DH649oN>@Lv5a!*utlQ+0)ETy5H6 zHweRXtNqX5deZ+TgMXjBS*hVNl#Z!YGF_i5LC38s|v z)R_47F>aA=UL#jem^pXy^kHsP5imJyV)FY&m2u@}!)87pB03;N45M~o^rh}^yKs5g zPUV|i5?IHROtz)2x+PmoFFZ~D%q(SEvargxvjl{x=&EmD77MOtd=Y&C#!Apcv~uLF z_dql;;IvRPZ)oWT-u4H(W!nySh>1lycg|pTBvozoRN`j6pJ37CQl1)s4nI0 zYr4!|xL`0|5bqlA20%Xx3Q{ENz!h>jvHmnD+2B~ zXXU?T%$>3wu9>uiCT}uQh&de}5b16-I(O(TVwPlvv`gkVGxt}FNm**E|7|mW}kx1xyubs3w(V2d|HFg?GXQ1chGgFHWi3EW*nVqRJqJ5 zD%m39^{db`{wLewKjROdC_PXYT)v=D{Gf5-apSLO!Hop6C=>ZhC!(U8Md`gF0Q2Mn zz0F2`l?0ZK0Qz29D4&)P?mJbWGg)Gg?lAj{8}jz@2roudYR49})POgYPcF!B_P#yw zu6I){fX-`ktVg;%$G3>`)A~;vY8t+)Yx!kQXl3Z(hHH&qHZ(L`PTliGedBj^d+IMY zd|TfhotsfuMs8^m?u}U9`N-L>iKC@-N2+ZU*hqG$Tqh3m8NzFNo>C}ii;NP-liQ4M z{EFRK9zO7Ky)8Bez)?osj5Yz@i}hf(SZ|aBklwhdnya|ew;wbhAf$x=Y)+eDTT?wR z3~Mbzhc=v^C|d=6lBIWO3E82thIMV_!c&S9AU*)Lzl`D(Wkonws7#6m_#iQ#iA*Uo zDYK%p@)=VI8)N%`>&A4T_cZV+DH&`xft>uMjk8NOF@~g+{47=z*V9Fj4nzfS#JKeN z$IxpKmQwl5Bt|o!r(WSqU;CU3C=9I;G4R+999_y!qWFRu!ZC zaJl?`ilGYs2)X=z;M*i)-sfP=Ga4aMi+?gB9)475SOazi2pA*kot`G6LvSvsMpgF@ z`pMK@17!+5gF%HK17wrr^8_g*&Jj7})B-Z&5*Xy-@q(Pl_l{Vv3ich~ILC?=;RCu;|@0jA=(QoIOAm|vJ> z$rTHNn5c-*q!78zihi4S)EyAzy?yrA)$b9=SOW$u_fOBf>|Ap(-!O~YSJ%)ECeI!{dzKX>=?lcD0LHA>!_KDB<9!GS z58t`7IJ`>ChhjjkS%wcO6a@h|0DfblqLNXe1Vtacn=kGHNuA5#8Y=X-H*wwf#;0N5 zzJ}*_#UkRapaS}adF)(ecc#CI$jO`fWLXR;S#rIfS2;8mRhA3tGkpi)>z~)S&+{5% zcp`Go%ManVJ}-Y)8Sc78yo&PsC=~UyHx6*Lj7x|17v4ZT#0D^S4pjisWdwpsB?GCt zAJtU(QN_cHhgj1CjGo<#1{Gw$(z^e84McK$y7%_Pa=NiwQcQj`($dp=4FWzZ-6(YD zmEWFpqYCQ)aN3;hetzCwUXp&iavXE?ATY@X4!%F*tG;PZE|USDHC*0Lww05dQtRM) z^1*@2mblww#3jvF|8^l)tZBH4ClyW6je%uCS@6#6jeI!uD`xlCnoAI$h%}Yu`Hf9l zXZEklNcobYDX4gp5Hh%w-Ct3HcG7O5i?emv0&aECTKDaOrk|t2Z~IpLDqi047PB}m16jnzzB8x&_UtU&QkeC;3 z786X-CVz|Sql)0FL)udZ_nmKRiSe%!wz)C5S^CoO2y+PU8xj#5mK(b#O8m;NB4CA< zG>+z?b_68(@+kIjC zt9x{1{T@0`WV&<#_S10>RkkW+*RR%8Zph@xL*zD7KVha+iFtl)f^9D3?*?X!6Q3CE4sSnm93W)M){^%gW{5 zXRjad_+X`<*Xmdi%(jZhv>(D#t?zMPExs^QaF$f;%*Bglh|aW^a>n^Z9fGq`Vmr=X zfcHUaAXRN1=bBHiJ-zPq$ET0LlD+!OsUOFZVF_oJ5fxP-U}P)VN?p#lo!~yjOAR@}bg8mmFZbL zUVa1750{CqvhuS<@QuyC{8@F#=jJO*KR^7`^|WU8EYWM_FXgE1A6z?89Ha_Hs<%~g zbnGcI;4~UReNQ`;st+A-6jIAyPGvNT1V=^B0p;HtxIdpV5THTW{b&v>$O<%33jZ*D zprBEt^hA@QnE1u_Y(+_2fJpXda(=;xv!2W%A>K2E;*(p-vWjGXkv77exwCuUgMDwoqB@E>v!VGP|qt$=_K9FeZHm~JY$MJE^xI$QUUCf}%>t00UeQ)wF_SlkBU{8qtPlnn9 zsUhWJ1#wr_wI-no zq?dIv+p+kQe;(wIW{Ngm`3-^E#CvQ7Uf}-yT}Gp%cARBT7nL5DXf=Ca_<{S3RmIlS zCWn=Y71*UxbnkKr!sY3yP`M}+CCz&>ckv{htwbT%FW*x--H0Tz8#L$h4!!aeZEKL!(xzu{}XVwvqYg=^1ebL~K>W zTWOnS4d&+4sw*sJC$DqFflht*ytbk=qgWuXoTU!zs*O7ljL(rN-!9Pxhb2b{wC@tq zmp#{BaS7pwh$h1Wjei?9oubU@Bif3R47lIbXJIv5wc$n1n@iy{OhV4rmyp-lrd`=} zr6QeVU5eu_W+_V+GefBbrX$1!4rfQvZOjh#V|~-1-!4XeZV=CZpd7Vn?K|W4uKP*6 z-u=#L*_!Tm&JCd_6nEK0FF#X@e`V#kgneXaA$b{wbbHC2yw&LqGzumJnn-JuRW0?> z)duf6x@Xr>0r2o)2#7i0p1w^8V-u2+6A(JkugS=qXv@1Gl1FqH64wRqIwB`_?yQIJ z{g{sSWb}sEcs<1G$Qd07?#2JWNOL~^*>%Tt2gMV-J@o)aPe)qxdmc(t9 zA~~m)hNp8WX{o6Q$1>aOm_%q?B=FPNgv6}uysN+E7K#bw?~!1WHajajTe!~VSQ6qg z#CAIT33-Rf%FNEp=D%jMvl0?Ssn1cl8Y(6sH8C-spTuhBp(42u;6z0hYCuV1h#`Me5I3~-OWy<2e!qF1r z;nGx5o;zjPmbIP_WnnMrzDCVProAQWxLI^ohD!PJs6vXli%_{S4}Lp@dfdaM*OEWJ zB+*An?k+O?Jg8wHLfi<`Oi$1O*=tTbc4ptRzRGk=oIqo?@i)Up!H;t}hx8+CF7nGaQEdo_5lfwfOw(zSwa?1S09aWKg z&T5J8hsxr=51C7FZd^G-`FnEUnlqOk3vUna;TInWY2x#AI7qzSQ06RS_U5-#?B^{O zLn`Q!MddDpFk;tm+jgboP13p1A#*pm3F|hx#%|?<12VG%MLI%Bhx;>DCnYWzab(SF zncZ!>OAhddcZGY_iVg0CA5GEPJjq|2o2Q2x#>@6@o^9>zt*!X;bQ3|bY31~WZH5Ga z8rckQOHfg?3MEAslqJ^lM-Jqc?GlRyGX7f^M=s=NFE81(Rn(NLHtr3+^u3n6b@O*( zfAMJ0#%7^uW6@$4#3Eb8Er{x(mT$?*;ELeBR?D~F5?4?uvkq1lPV+@qW7iCDZyCXM z&XWGTW*5TCC0Ag5U)HH?ja`3n57b1d>x>3XFE`0twr+XekJc81T@E@1t6w30`CezYOESE;Fuu!J)6s+O7x}Sju0ET4qV(z^mSEN zDocj};`%@Je^L9p&Ws=Tys~m#9kbQXtLX$z#XYdw!PFM7>q{oV6{0zz`ChVsOk=Xn z>beHd_e&t;h7;v`VsV&^RjccCdA)n>#jb5+cDz7eVG(~6C(c%WK%M>GN7$@0Or?l61Dq7vXt&6#J3bI* zD*=tiW$n@v^)G7DLy6eHyw;%rM{K~S3WTkjs5=Op`;(v(1hJldJI4ays}pgkjcVb4 zy#AtG!mBz|a1j`7dJ)b#2#~Igu0dQ^<+ZSa{5T#1mqe=wv^;IUhS%HGz)%b7_t;Q_6ue!g>4#Z3{prwWXP znWgXxNS#KL!JLxel$ny0oy1c$n~)F-MI!yO)KKQms*%U&%RH^5J7MU#MkC2<2p`>! zE2y~f%|$W8E7!L)NafjhH0)x5NoFxxng!_a%jA+AFK-XFYqCuZ@JOXIgR$`IU{iB5 z0*2g|2GAhKHy;sJ?F2aZ)?ai^j|bQu+8#0i0nyvHX{no1HlBkL6aGVnxUnrw`BhaS zfYuKm4|oD$T(b3FIw#~00yeuZ>0=;na^X(SbiH#YWJnR$&Pp9Xe7GX+;yKRb8EUZz zpyJi*g0_2#U43mgn8nMz-kYMOQ*p-zlK1XhYdH(HcZ5U|5bJ(JhN`L#mjgxf$Ar({ z5uWvbhGK(asnh21)L#`C7aZl!LvHHt>a8MZ+J?|dMCR-vt3f-kJ5exPr9JE4y7BQ} z@U6jAZRtTas_p$EfEnQ=R=0|Ls>aVseq~Uo&o<4U(-{Lq!{t((LK&!Ezk*ln|q z&?&91cBHpXSSY!IwH|-}{ku?Rl84vwcx7ori`csFc>ACHgA?SO4lDbQw?E+jJdTyt zfA$=A^V}!;v{r;3=V3JO+{fL}Nfw6}U%iPF4hd=vn?3EY;kwyeZ5@oQW3LW@;9&oh zwUS^A)pFJh8R4>xtoQ+MgeX!f?c${UwgZg3`U76AZCV6&T+?+~K(!&4iug-r1H^~t zvc8eqg3Cn+M7(O-V%q`?a+G}YZMST<eKbYMH`QJ@9{KFOM8x*_a20e2yEhDGl@)BCf%YTUmV{v&=Rc^J@1oBqU1|N5CPmtfZEF2p077vizC_p1O zgF1UA8sF6<;5$s2R(~zhgx?<81ah6n#hDC8&l<9lj`@jBIV`%Ae^BgqOO=`(UzgP_ zT{pm)Q9r_|ARoZaXEL(Ii`gEj<^x8()g|xr+k+lz6zXlQn>SQuU_Y$ah?K$A3 z2C7M`44I&$B z>{hfO5=$Oa!|gvur@5iGW&ju@v1&lX4yn=eBlPrZ^@fH<-ul0VMwZ>>bF{+vb8W+WtAI zKMo6U?Lww?;mk5{I^58&QMcUB~-ZgaMe$7Wvh^x0u{ zvrpUJZ1EaMOB%9jDjNCD;cR0~kWZF)4a6oiSdw782=)`8fuXVP3@Wd!tthV%;g_u~ z5B3wKfnD3UTS=dUeJc!*Rx@NA90&L4?>zmTHjkj=LdAi$)lArwgpVd^Z4YsKPRXN@ zQ)p4q%rv0Gbs?9?^zVtw_n5X^A}&2}Cexi6Co&x`RJ+xcJM6w^jnK7}UE{uG?b_X2 zj)>N!?2+Aj4uk*S0T`=8^dO})2B70UWD!*go&B(P_mRWyyVr=%yx7Ro@n_C!0oghP z*OZM!%K|mPnk$88{ZOL&nzg&#kBFUKY@w@p*;?7Q9p1La z#@JZf>LpoAb1}hml(Vi~BWEQ`Sh^eIlD%{_xywtdB}QVU)#nn=>Q9S^fg z3uM6=zQOG6KacV@#%Gd9U&bK*Lnwr`=vz}-6Ly9M1_t@ZHpJBH>s9n%r#)Ah*HnAr z99`g^FQ7es#H0uKWdy(+sR|EEjgJ!D{{pz?>c6y8yVAJY_QSQe{-B%Z)d-fL%B6wY zu<#%_8Tz`+1no~n2mB~{=m7o5ooKoJDHs;1$NF%;n5gBeF7MePgw_OChg7RVLZZWc z&>{odrXh+iFQ4py^iXQHkY8lT$P+W)szY!X8?Va9t}uSG_2fnEpEvG(eMYD&Z_01Z zYsqgbtf@&YOD>HrQsJBnV&Y7p{BU|B3IO4>(ma!xlUrqki<}|5eP?_xwr@6!0kU|k z8+_>s+Do8zgQ)!yidK9JM6g)$@l-LoIi|Hut7#ZVS5dc+$sr!KMVu6Xf{Y0x#yZq+*4I-YXVB1K0x(N@r(Xk*}?#FA!rO+NL zrwqoKyh?xEPhSzuK>^tT{G`EyCV3aTOqyWGTA8 z6_C{14w_B3v-r`2tYkECeaTuQRdZA0w=bFlGL{g4c9mqz!EdjBzJK-jY!Tl10RW`p zb@3<_rF4g>@m}5OLjRNQvjeNgLr`UdoUYgNbO39;g0Qw|`tk>pgqV<^`0!}e+7IZV zu;*{%h0;SGieUx8=BQHDN4KL;#|kYe&nGWmgu;1oMNUb+>d-}Up_u&6li$gq@O7Vx z#WCgj{BYI92?gjA%eBN6<6mb<0pC1=*I2YRft`SV;S2*YtpCs7OPzt8136NQ5H){V zE7-OSg*X4?LmlQw)k+MldqenoxM)jw2sA)vH*x$>^)oxnA+a5M1X^vifP+KkjDO}j z5IQ^XQ)6iAPikQ$C0oN2-wjHV{?Dmk5?ILBB z+si_l1hSrODlKagZP8T4MJ6Of39f8pLUy4@!j;__h9f=smu@*5nfPLB2#OiWdWB-E zD;w3FHbZ&!$l)&q;=mqk4)rP#n@gHY5Awu`y?S`oaRL2iB29 zFi+%X<>ZK@nYA595Z_X=mg&6VOlNV^+2Wg*=BB2A{4?39zk_Wv`@to06wJ&fgdNkK zHXkm@kerGDmb>JhqcojeKtE-kO>*NBvl24nGLo|#$&b>@vefod#v9`wvQvpxXEM1+ zzgjq-vHj{`$V|lt4b*H$x%jq@}WbFYjlI<-U0$Dx< zFYi%$fnEY(lY0gSiYN%w?@~(PHgFocG2>aOx8%%8J*C$ec+As;j3nyVWyd_RikwYh z>rFpJ#K3%Mvs`PF!HIa=0BQ!1KnoEnQ#{~AuA~p>|GPUp@~xr;k5 zhkq7_a0Q-x3TAUH85j3i*cHEvHXl0Lrn0H&+csZS=kX=ncJjJA>9d}^dg5;DgMx>k z(Hla8Fyk0ZYyK|$bJvfjNw4+fH6+>IZQrsd6C#PO(;b>ea=5a_&spj2Y!}LXhgr_d zLv#`d#Hi@|9{AY40f0=bqdX5uo0;n-(>F!PHH~tH`Pan$bgR7WJ5l3z7E^SG79z+b zJ#VZX{FnIGUj)ot19)6lhiyyA>&WB&{kNgN@fyD_f$Zim9)8txCRK?Y=zd;pr8*w$ z=ngAqQ5U2neLAz4<4{R=swJ=Sn4rDkHvDh#{@>({cG8bWyXE8u$#0Cgo@FstsS9;D z4niZ1-`*B(vynPxpvR`nY^N_#Z?1_t@`!hK+VUYCArcnwtpkrpuS#OaqqllxO~1$D zUw;$!C>fX`UzK;rCTF|fLVA#$ux70L<;DNy#Ef3(J2Hv$3k>uV-e&y*D{DpTPGwzX zWv%cVTU!|jS<78rJIMl_R7XBi(}T7;d3nb3>*LN9e&t1?P2>a z55gWM${NJ+Yl!kNVJDDv7-0b?g&{lEhlk)tSzrXSr|Mz_Fv;#R5^Ul#{e^ zlw~!`H?IByR|QB>OkQ;4^{L!05~}m~hNU57w+>|Y|Bo-*uTwY#X96UOZx_t^`{UMu zWCI@;=)3jD78f{|q}RD0{;K%m-2RZ@6N1kYCWUPY`XF~J?>#GVy*LAas~&Wc7A*52 z^FCai)3j1({FKRHH3cnaq4#PA3pI>>qV10x{!@Cm=lYg;$IFkM67kh@m5Mn*XonLcgkzjkDUA%hD zVv)Yvl|`MeJ}#%Bi&%I zG>SGr7_4=+pLxv*S_6OLdRj;8U?y4u>n#jFw=k}GLo6xU-&U}CQPM0 z>8PdDnWvlSIGE_YL`@7#MMJQ-UXV&3bnTUZ9NmImbQCJF8esiFbOlb?5wv9|VduK3 z1KS+n$5IcqvQn*C`753rKmrqWQ0^f^bWj_yb!^Zfd8!Vn!xJK6VjzAAhEXt7k$Ro< zx{is-ODHPVy6B3F5@PZM%}Q7-K}c~(DVK3biK+~i`s%Wac`{E9dqZIjm|p93GPwlt zL>L3P!IG0*BN?)!A2cbg`Hb}=w(Eu*JoP6__F>9T3R!8pGX+)aNh^}wz^fS}n?g3o z`)XOT0X6_K$bojR7b1^r6Og%(i(^79A+Sm6*^tn<@EDoS&Jr4s?pYq_)ai;5Xmnn2 zLWvykm!Btgx^`O1E7My;tDNLvrUj354>H6ZC)0!AamD}cC1|$5R3ZCO@be9#^6WK+ zvzqL)&H!U`ngM4gPMmlfqKN-LevnB{HF`8IeYO8ygljt;2A|J@v$w%qD5$af_U+pf zfBxA=hw?OOvz)CrcXNkz&-ebXT@xowyoD5@Ve&Ocd;eKwYs8VwplX>7puq{HCT$+> zu*PtZ*rx!+{2Vu)HW2Jwn#5UHJHgV~OEyPEtf};L0*K`^2KQ{?!tNq*W^&=(HDpkO z=e1NxL!e^EY0?JbInfyE;Ti@KT|NrFXW?X6n0sL}g7FAKnLS9y1L^ATFG(E^c%Y`K z7v95mG7cuH5t8dY`B}TfG)XLH0C5>)J>!!yl4De}cE-4lrd%6&Wg{QMZft`YiQ`Ad zoW8nKgd}fDqB#{hF$POFO>8TbGjAx^ zB%suvsUJf>8oeDf74u1??z!Pl=3Kj{-h)>T&YS1PzdF5UyWUyVC8cmdm?sQFOvJL* zA*CZDCT{^fjEf_{#b?xm+3@g$m>5hL!RV%`)6ahVkEJe)_4Wz!P7*gKG@2$1J*OeYgXp0;Q!lv_XR9*Y+GGJ8=3Vj z2I74mi&y(G8V~)TQH!Xqh`yylMJqrPHwU9{uP7C&L7Kuq9I4+u%0@!38Qo}C-r$u^)Df^ zYJ}ASLh5qpBPkWK;;)4Z2r4MoL+Q(o4z`6ce)0aHzC7_%@9;0Jg(q;Sb<}Ly!uTfa z3;{ZbVRK{53F!u_o$XJ@n7pFIBEG07D=$y9z9ijGPd8`h%P#x-L7RkykaEnSavui4fYcrgx(`%w~1L0lW=_oPm$#0K6CQ2<# zcDPV@i0ozV<`7Wtb-HroH#iom=wDj|TIqu>Bp`@Z`$HZu5>!HGyi@>51^Pms6)LR| zsS6~5%2_%ZNb=bZ-7|~BZ1oy7LTGwGd;H0*d;5q=Rc?-`2;x6tgZ1$-m^X_{ zsBSn#4E$KCyHCU=VqTKo9L>*RgCc^0&Eh_)x;5hQM=H8>B*;@%{vW#D10ag4Z5sw< zcGpcF+p-3B*%?jj-H2Ud?_IHCK|rNT?;REvmbS3;4uT4(s9?i_(ZqsX)WpQZ5>2AU z_!#4vIp@Bw`?_eLip-I3kt1B+3NJIXV%O7Ezp^y5 zWBn*ZYq3v3jx#qvJ_|_~kDh3#r{J963=*aYHOVrP8R#l)$`b>!z)F(WNQ4y>Cd@vul}YL+oiUJbO3=>=<{-#^Peo zH)uI<$lElEw>FZFwm7`CF|&oyx{Q~#S7YfBkeMEGD};5^-#RU9p)6TNVWWK;LfY$ zt>!DLdD)-cxoBqKR5gNgV(Jneh+ngx?7w&V-i9ZxzsAT~FmRnZv+N*HTyI~#{fabe zuHGfcpBO^3h(f&gI6d*xI|V7}mbfDyX3;eM*t|mC_U?&h^c~8apgj%N0hc{4IGsip zKg){rlD`I6;cPRNcHXyf!L-T)*t_5mS{+EgMZ(W+ax?4+O(h0coWnMi(YzGDNCRdue3FKaJw1HfAk!_Jn6lWe0D=F?q-M!N?R751x z$!9yr@Cu?mhz!` zQ_Tz9^2IZ7%R3*3A0D-dL8GZN$__5(UcCJpcev#q?(lgHh#*}>f~wEt7#+-*Htqjm z6ux}`&~`tvPm`OgFOABx#*m>e!nkh#x1rF%Nd0ZDOqOjum2ltLiYCaGOcJ$9{#(Ts zvKd_(^nf>$Jk8HPGq}IDFkH5xlKOc!C{C5{rnk!RfZ#1B6`nHk#u-fOmE;!{IYs>; z=GIWlF7C(xn}Qf`!!!9Ak!5<(#$!LC zTDDEw9U(?ElF-`z%SL*OmYV1h=aUOOOersI)qo+?PFzb*Efl zEjcL$d5|kAMbK%JsHh7+&Lq=+IwRjpO@EN^u5HsT=qG0}j`_?1tR`SK6tzVt3ccmM5co6Fow>ZLm$!5iE}PKW=Zd-zyK3&sed`_ZzFmT5Q)Ao6;XJ8@QIao7}12p%J~Mo zu|?qIe1xazpIP2$Q6zr}`-L=7^lt$43DbzlshzX``=>a{0SU=VVto11+#jebXjmYM zUM}CJ!C;7@i}a3Y(Y=z)({S)5zLQS)Aa8pZ&!e612aQ{@NZ!#({gnh@tPTzFleDaw zQ9E88799_2V?MMqCj*nOQoKbfL4bbB8#BEEQl-ID+;lzzW5j zcgC+WvTnbssjRB5mQ4>v^YYipP9HX8Gwr3Oy@s5)KMW^ZP>_NeJJ@-gg{k`C>e>+iu71e_ZvYbDd}Dw$lt*(9*W&@JD6>|t_2#} zD$2(68~6Cnml^AJGj;cR4g8RglZ-C`(MJFJ#K-1n})As11 z29J1yQfS~YI61>NNce`12C&n27Pj(6z7;Z;6yC*GIt~A8+waO05b~z5LKY4wGa@1@ zOzj=z?~4qL6sc$V&OH$TZ4us4-2vNQfDtT3Vcjib7pKtmu zT?IBR{$I$%7vqU5aFP&kP1}9?%=*jz#BEb^%^61oI|m(gKIYb#e&q1En@4uuBlbsr zJWrN<|HG5sPn+*I+=qAaUv;rHX%kqB>Qdkcg^+5_Szd;CTk+*%D|%szx^^^_LY|O8oN;Cu+nQ; z5xXUKPIJgXnN8caKIKPuerp#mTdAd;i@)-^RKy<7z13WNP-gOi+SZ?srwkrEZc4v? zf+0#Dkq})RUKC!KQIuSONRS~sDJ(8DH!wFaTUM;ikIP`A4FQQE zA%SUu`e1MuM8!wN%2F!zmAh3LnJFn5+|``hCyMT6>`tkQ-xqy)+g_(aUAb?Kx53*G z?57QqB_P929h&5o5D^B1xGq^2l!~fSvoo^|Iq9YQ_h*5C5HiMTDgf<~JaH%WN$HW} zC(mR)iMtlt;(gEVut)jE;Kc1oA-Yvzv9e?_b!fDi*{<+)poZN3bnQ0_F3=p}L;n*% z4=$HM6s513S!?Kn@S9#kV~4oeZe8uQZ2RV|n>Jg0nRPbj%Y>al?!KO2c5KG&lX)e3 zrH2^9jJmIqiV_cREcOVrbM~GQw+JNO;^NqaS+*zE%RW2;N47i*ZcUOQ*#;RG$%)X| zRUJvHjVp1>NzB$7q8J5jAI3#r@{?;G#! zsSDU1=HL|taY6H*$R^Qx>AelUg)?q%xf%tGSccx9_SO6OsiKULnUQJ18G-shT}W|Y zdX!ccmyi$Qp-}EKn`1W7EG#Q5HD0UL>ci7R!^0xNqJkqbBK3*dgm^

zA)4ApBHI0o=#zcPGS z;Z&!ro%w+kGBS6KGCVvbHIxgznSHPNtSni2yrej@II|?(+Ig1ml-NnKwsp?RQ^}|F zO}gZTzErxxGax!XBe5dpTEex+YhsT70Ytaq)>Q!VItrMO57SX_GJ&RFEXQ;dM}pfG z%CwLi`bm)1A@Wn5V`+F!62yc`u*X{|xAnJ@ft#TAO8dxuN%m!a+1X@J=KkBMxAk|B z4J=Lf$f9FIV`YFDu2ddRJCS-E*~8M4S`u4+j2P+A0(Gu7q4udQ#fn z^u1|&(+vJuc&TN$IOfr2^-D&yG(}gH)xhW z1L^au(#*n~q+;2Gc9}9_;exFT(~!+7W-QG~8+dWkofw3VW)O=Xe8sm7IW}L0H4P~n zhbobRk`&9Pk?G3V@~Ena-FRLs@H!=()}Kx}4Jab)24o^C4V8IW1(^j=xuMx9kf2UU z!=~BkIq6v$I7M?iv$9Uv8}otWv+2}k8?{3C82S@sR zM>JQ-kfTR~8^ex8Wa;$!thDBWvn6LL$Vdmm&LlQdgI4yf z(Y|p3)=_SeTXfrGyp6wd)9iuE=jayd795MXCW9vxY;I+bPyKeT@W$=+QH0jvjq?*7N7BtP1uUhKU2ONN>MIOxt0$MRYHGsf88a>kP!SoAn0w;bdwSIKH&eZG5rSRI(%=iaN$FRYKKv!9f7%q7{0*GQM%&{vh!d@VV zfPI*uB6wDn;`W|UNT_mMf#qd-8TLXi>r&5rp$as=jAj*)>4}|Z^ry}IR|v<(n+<1OR4D61r~_$K1@K4claWM_vn`DTi;Z|G_zd%>R1miu|hQ@}*$BTX^tN3{Q*2+i8MoIJCn)-T9+yPTxUvsxvq{HDiA^NnC^nE~-7`%bt?wo1x zU9tnAP5RJ8DzA7 z&bYa>r;7G`JeTy(VILZ zF(rjSW!xvizH`Ir&!d8=|gyfYv4Y};Bl%7xBm^uJ|jQY@+M|JV$E zSU}!Ivmkmn5$P@@7QOW?CQuUMQAXp8Uy9$Ok+FlidCPV?2I&qRmL|J@W^61PVTkxB zS2Q4!d){-KC#WaPT|2{@6Qah*`6x-rnqynf1!Ls-r|=H`+y!!scE-yU6=pl+!aE!0 zBgwgvW5-I)$>_o`CHYalb>~hbU$%Bwh(cOka+0iJv3~&Q4m~7}a0Hn3!S+}n7NVj1 zP|kMmFGrT-dZlk{sGqmWyOSoEY?%&Tg;K#>1)I&A!<|`5w%li5$@?RXsLxiNgVvGl zh?Qs?bVrY=5Kn3|Lz^cd6cLAFV*edWLM6n03h)!fl&Y`;Y(xjTQRO;n&bGghtRv=b z@COc5wb{dyqwM$;bOUQ3f~XTMfbz(_ zHHg|su{o=_<1bbL#Yt(cC&NQp^RGHbcJBJ3KYBZGh+8aL>bGSRhqd!P+%jF^W$ZVE zD&n}5gao~o|44%r=!JV1pWGrI0l5SWCGGOm1eT`Pjj|DH>b1|19wd{O`U?nUwVHi@y z)32?C$v{5(skX1+JHB!ys{o1rKR-fd#h&l}P2?)mXkIQC21wdvP`b+7B!?FNAe{JF?#Q4#O=aIHBWfx#3o2xvRn$>*WhQ&2 zopiy;6;~rzc-TiW@eyIVF!j<6r!OC?I&!3#BNOg2{4N@=-0I`x6vD!LZObIYgn_nc z!RDrG_b*jmtmYs{V8vwS7p4`eJMR+>H^nP&N@&*sjF)$)vy+N$l+uWPj8H3?v+BZa z4yncBlV?KrRHy(3dSi)OQ?u&!R~K#-7U&Yd`t)Ns56FT{Ia&gQYd_{pMcvu+IE7QU z)?b>NgOuA-2dc{(kE@8YJ9U;W+hDhJ+4>WgS#nBRlee#;jD-?yZ-!iwkblX!_R-Q6 zPU~0U?0z24L~dBCU5Cd`#3Z4I@S^i^vpkD&2I7n8pGUy~+_75B*mRdJtXR|t8Vsu( z(scl_R-0x?wuw1h6SFn$B26TJR6-5|)lBDh&Y>IBAtx9Z_i-e>zW9R`Zko!OYxdI) zPga|Cq!}&2d%k?l(XXSq#FCWK5*6Int+nl~l5IP7IYx3WN0aNDQP#Fv(r_rq z9qG5X+RK@Xlj;Tz>;wsl0|gU$W%lCGi9w$dKu4rFBVif-@D0^zDPJ=t zk~fUvH8JxUcAs`tQ`yidl)=ETN92eB=t;n}pAn4B1Ro|NKp)_*+L^H<%Y}U-3}6&L z4BGwE+_!3z^%0Ho>WQ^WVnrVUM~4CpUL~SA0-4jf#}A%Wx13zNG$u)07UMvbLUo)9 zyeI(3hcZRw)y6&Qn_t<@bqH{D_2Hlv+JgxV@Q(FXw=a@x-M;T=G&hJJ5dKy6R}o)X zQyK5eBxNNVjjGFMPG3HI+<9Xz`&t-|y-_Rv7$d@=Ac*+-a?_cXGskys$Ysd@;Wa}P z62%Y5aQ&k5aL)W~x?o4`iRBbr(|4lrGS<3xS}$tXX~pbtou3sco_UxoVZvI!TsoT* zuGeDRE9;zL$JDm`W0JvocCDyZvP1J_gZ)|-L_>?>7KJTlM}d{&10JT`@h?-RxLX8k zruez&=J~I0H696c+s#72WedYwN_nGLw`jjetwuN|t#ICwyID*|l>k!RSF~7;lBeHX zd{oB$3~68-Sjk=E{d>qNED{-Udk%R=dk2Sz7W>OB3udS6=zWGBV_xqVcC8<* z9c&&Fu}ECIj1dM%<6%r-E9C$F4knU&M1E!pE@oZ1q9Sua1MC0CmIuR*vW0FtGIyvI z2#$JWDn&B|I~N~;#2osZxf-$J~mrP)e6d$QNriN=;t-RK>c|lZSSV9a( zZRtD4Da6TVYo~RDvCGUy;F=s|E>>4wx({fiAE8RIk!fyn+X!sKCZU3XoIM_5E5T;eMy=TI+iZUF7d+?3K36U!tN=n4u|ZS^*^ud;pg2Qx`7A!i8Tx{9)W zc{PZZOD>;Szig@9hGiUe#>GZV(OGi5vHUcRsGuYj#i1kh@@XT&03p70<3(Uzwvaze_H{=Wzhv$c~?fVDIX*X%;X0YF$Zf_<> zHDHe_%1_aln#mbyQ2_)`+mOo$LDh)7P&Mr*iHwem1_;SVD2fl$hQxx?l}L1tPrL%QHGrOTs8Svl9!W- z6hN|)pLRlc#Dt~fM;1b=Tw)Zt+YOm%cx5}Krx4?M3xxZAVBG!5b2OvqS2jaW0+iWZ z+p0}>m18!n8_U9rxu5iq+}sl%UCJE^D0N(^It$(_ok5qO%aFZly7UL>p&~YO0X$+F z*#hUy#!uDsxlxV+;Qp4om#D?aKd~oLBN6$pPFQKsFF-jotZ)#6zB)l&wvVJwC}QGdd|e zE=HD^`1v3@QEig<5!W4zb=PCvHRmT_-JB$&HbY$3@b|i72Z^Z|Kev7L9`U{pemb;h z?&#l|x4===)#PvTR}LFS8j*UvhOQC(p_Pr#o!Kv6feac{Xfm!AWEmXpNu6XkFh!g2tgVdrrJGvTcj2(+FaXXR4nBRz$VN#fg>o^*S z41V8E(sgAZDS7moEPwsz0txvH!Tl~TdS_rV=kX)piX@MKps>(me(|G65F=+Elf}eB zvHwA{iQ^9{&unX4zi!*M_3Ik9ojudocou09u_?;4+Zxub+vd1VEIlihcI-}uI{Y|j z_&k39=i?{u{}ff?kt~p+>^lyc@sBar(VVO#BY;Qh1v4=cAhcc>s*l86FESDzl#`Jk zYDbr{7o4>tv0T*e!`fJ@CrEG=UE!0$3|1b=DYVgM9qV;Ungxit6U_oUj#)Io?oRLx zWZ@%Dfjk1OFBWp>=G{`#%dtSO7-)-%+(JN`-b!I_lZnLPFxe*ZNzOnT+cM|bWD>{w z30OM|geBNk+<{mp2sCvw{;F8qLFYmgT9`qw=86*XC+lhHL;AHElt70jfh2xCCzwkv z&OJ6FXOV2)a7Q#7y;bO{WaG)ci8pTCL(=D6XQf9s+#ZGVBpXp^XEG{ z>K8UR0V>oRw$p&xjlC5oH=91-k$UH>FwK3S!i?pM_Idgr^n>A z^R|u%U8+61&I%cHtM+>7H+gwk$HsbjZPI(~wcgk?_txxIx|*)G`cM*UwDQ`kKe>1B zsis@E?%X+Z)@qqySkb&=lbd(e)V35KJX3RhtxW%XHaKerKEI=9uQ#9ZDBdaCNdBV) zjrah3L~ii`uqN~I`DZGYv-}D&v9D%5wOk?M3x1|Q+enT>iRULpnc}961Ux+$AxBBZ z&zUox6AGn*AFqJkn=kLpD}Y<|WBEeq<~*Q%XZ{Fb7r94x_y=&pV8MzB4DgKdRO5xWVQf#?pGMMI zH#3EU$o74&zfylnuV=|}emXf|>i>*5AAWl2+?%wNV^#`>EShfr-Enlq-oYvGT-$c`PZ?V>8S3s@SQX~#TVl&hhI~OhK_C+My3gU$y~t(Q%;uL zjC>asgcCs+=*A)D6hfNX7h8!^iZ4w;q`T?Upm#6L^)F4k@H^^d*S3Yw0X*PQ;qKz+ z;pST7S9hSIrj9LGsf-R577If*JHU_ija6@4YTU9iL#x%&I+^na$lsxA2ogRHfESw`@s>+sYLz zgpND{z7UO1%}V0JuhThBbX4B~bcl6sT(ftC3S#o{arSkF7QqK{ z6Bl-a$w*Gm&Qxa^l4HT0zJSbvm?SZKO@>-WWp1j>1Nj_|xY08qo4rB09>fLwMD?hT zu#C3RHes1KC2jmNei`{^DweY^Awwv(Cr9ONy+mA3Q8LY;a-?Fpk-frHtDERHY$9^9 zBgz!&Y&9M1R3E__j(JW$eMmKA2(-<(=_78_8v%k^HN7Ten(1;5S9R!n+NeB1(8( zmHaAxh89AhGr)ULMqj^yqiV=oni)j>x4)Tv;1_H2lB_wP9{VEv z-IotYFWE1#`RDX1MSae3*QRk9wi#O|)1HCUBAA-JIgZ>YZh=)eS&2bU#mTFB)xpzg zmqM~vq*IHOSrySgq0c+}LK7XTqsu3*q+LTR`U2OGL-t#Nhdh(^7VaPq9qq<_bVM(L zPNWaK9cVq^c>4~ZZMhCzqq{bY4IH~jiF1BTgAp4C7q(i6gMi8ad0GFI! z0MGzll^u_fNcK55_fy)#iGHF6kah*|#1O3IhLMjKkS`Jl457YJ&t{Od*U1+z$;UD@ zkyhv#fYwS4d7K_jbKh~~Z2M>>$pv>s1X3m@vW@emS4>uq8t1uoIv5yc0D_%Ozg8h> zc_@Btoyo4b|HSiW^@Drm4L3MYeoe$<8%gp-zO48wCR^fd>JjwpcQM1lMl$(W*DwwL zQb}xFh_!QG- zC0Ub6rXg~$0_1Gu3j`+CWOD65xphJyE#X#?i2@(^Z)pQ2t%gG6sL9*xFp4NBV!^UU zd^B)}h@sb=8k0YgrrwQ_n_7_!@D9Ex|10t`Cr$Y?8;R9#U6Cg|RK9rKy2XIt{vus` zc3lfgc1s|sHO7&6Z6qPf$$=&C^^YQP_2(N;pFApSOYGA+>(a0jR4%v-vReOo+7EPu z`-G6y_P*;p7l)&5eR+qzIJ*2CfUdWK9u+K4x9yAt<|DM)7MYfDcdo2WbknHu#qM8w%quG z)6XorI{(J{`)&{2AH-ZtER}Wg$g_zRfvFw|kx9yPg2wx1 zW6}~6Qxnv&F|qx$W}0;9P6_&H%YxK zD{6aUWcbF4n2aP@(bo{k?w#AX6lcHY%C=jcGLJjogg;O}_@v@P z^kINJoWx!aBALi}UJ72X@L5RCi-9^~c7 zYTv+;liti#w8F!o8$^c3&>r5Pf0NR6@j{TDFdXh)VG(~i1VjCUY-V&;RCbI^e|_#x z6Ik@2{K0^td_%gZ+HC`spikR!h^W&s=7+8febz*_!tZG-2jayNf41b^*?+QV;Hdjk z1Dx*_1ejk+d=STbDfK}FO6sWb*MuO%D}5lADM^)PfQHSJ=NE&93?b(KF`ocHv8X5o z@T0(XcO(Q~&=vA?&}0k&Ju|9%PvE4x`}z83yhMT_?-iUXo$T54j#_(pHEq z){0Jrx?JncC!#u)?5x2of)AD;Z)7EY;tz=&m|saSgG3Le!=2XtQ>6{_34im0PF?Qi z6ILH85mpE*tf)7n%27!JZODr%)#v3}11D?*eTHlMiqAAh#p_inCvkwmM~~9jNTNpr zG968d<$Mo(we<*=19t+JKsYyWzQ(TD*iO0CAtT$7YyT`=WBN=Q#*AQnyk%o?Ux~O%Kc+au zH``Y&7+WM`G-Qm1TP(C9+Qm`hC=KGAyLV?7BQAjz!7bUby<-^CtkRKOCI*Zid233&AOfa?zja72g$abf2%fH$yI-X2Bu zHj>xo`Zn<)BflwypWxU=Y?FT~6^sxG!kIN8ijDJb!hB~rZ)^jFiZ~-Y{qM?8EwIji zw-W{QW(1i(w2^GWyoO_@zxrec^fC4&ZL!gHgTLJMR?jYo`!)ejGD9vRCetll|k zJ~fk3vw7>+x~jK2|3D`1;G&xRNiPqw$&)Po0=X|yYZ4}J>NjHQys5LN%=u=B)tT1D z-MQ-X&9-!Q6S%U+b^f=N(b-qO8~Z{HU(ho2&yIkg1O4&6=r(v}lFwzLRC+g&i)Q&x za&kr^tn2t)NpH~$@V#6hKBkY5+IX5VAt%9yo@T_A{Y{pyhQbEq5`T=~8}RwpVbRu+ z2E|!a&@Q8`$`_L6mrSjsc^LCTlIu2OBBS`RhT^s8d!g?t-`zDtGUEpZo}xa=B}uN! zxhc}PsCWo=he@`JNe-)pPb5L{y5c0342fXI33g9G_}rSw6sKkwN>qGrX%@6&+3ARO z-;t0np5FqmLbrFj=m=;c1u`uuVFiwA{*QLJq~1N2+%jUbtaNN9k>(>&;Af`GHj>h=EHA+K!nD_wMvZZ`bEdsvYt zGnq-(7d-so`t=_kF1S8%<$70pKUQGA4@nP>N(@1WM<}M7;^~5AR6WA_@Q(GBtJJg$ z`Uzd8o|u2#jf?k8baz)Fo7Due*2Vl1V#0HJvo5hVu7P|CQe##{Rh@`h7#rQ;dF8Q8uc2wIP=ADF1$crQIMaXU!l*BkS)6i>Cc~`cdabD zbdmc|SP-rc2oIO($TsCf)PXwj*IDNzye+(z+=hL9(HmZuK$|vu(yDl*xOvkQ0=FY5 z&?<-*FVBgrmP|49F_8Yej?M~ z%J_dt6_3D`=+HhXEP;2HwVB8Y2^qVK44h8j{09ifrB}=ik{7Gf43v#KT*P(6mlc0wv_gU=$@bQU|oAHvEjuXaV8CLEFG- z#1Y?H(|*uX{`S^f{}u#~FY(5WCdo?pGW!9rGo03|g+-JQ0uRO_OfUuYNh-#}fn*Q| zn$}(n=|7N8d_-rf=^5x(YVmy3Iaqo`hJ&b0lo;zCgJuGeN*nqPB|ecH7vQR~eWNlT1*rDdJmYo5Noo`HEmC9y0tDk67f z1Y)ELF;GoA>c*I5p}ajFcE45n68s^prcOi>vZkIv?XMG!EPG?xrKD&vV-1lhFw ztu`h~1&rZqY3=FiuPe{Xh*{Gq()E`5y<|r9t+g01=4i$}?)L$R)K@}B%%fu{yOis@ z35n73)gVgi;x*_YV#9wU5XeWrW1O@X`p1$Rr)ZbHCppSqzKML`5o)C6A<$$eC#|cI z4mDUlY?yTJM%Y6$d(Q8?_t);HWv17F6h;|hvbC%(12k@G10?AYBEkVP*%=sxsB*M9 zF&W6>#7UOJvtSWvDp1~AesKoia0aBF8uZe87oj^t=Jx>?59Au@tPe}*f;LNjE5!*Xt{Cm+qo(^ZW15Mi)XCJGk=PTjOYWh8yTERBY^C?=t=YN2Ha57 zd^~4Uscs@iH+bP)nnt&&XaKwoi%B4hyj3&{BVj*4GnUqeNZd%5#lNzC2kf(5{9OEE zH&wdGPR^^GJW(~lZ_1{5te=a~{(!$MHV>k#@C5Fz%qcJ6T3*zN#D6N#!jrL^$%wI} z59@bulMyxe$JnEWTb~|+A07iS%k8x1+*eeX?J{~$0-yfkd`xuh7ui!kP5oEuTEDa@_1t-K;=$F5H z|9C@ny#+@!fYp=!`nnw~tszT`PM;x~BV-&I2VYW@FhQ7ri;@M-taQ?4AURH17GEHB zSOYb3Q2R(`(qXv!!}Ns@nBNQUTlalU&)C3*sHRf@ zBf>%0hYT-eyE`FcP~tEG%ZYnnNSfP_}v#m8>LmRL)-%27it2F}N z7ooL33@x%vJ6S74{EFlu5UVz(c@h^2bqYgBZiIDYZgE_(8sPZi;w&)pX&D+;KksH@u2-haq3f&MV1d{xfrXGd_AOk0y zI)c-<5aMsq_k;68XVr+~!{Oja#Z!hHWHfNiHjr7>$}gg_JU6=!J&-V5PWfC;<)NZ?~>U5ktZ>u{{U2`DK`aoKZcbZGB zU~84;;_cz0lkuZk$a*=@(YBb7cfus4n{JnnTj$0uY2Gzy2Wok&e4wTpyn z|4Fo)4>wT2Vk?+khG<;|{+WdHAeP&9KbHR{I37(Y{WvUqK&5~tmV>4pZphHwc z)KmQWP7)4LJ{`B3`s-rSVhnNC@djf8gj-rb%8jg3ERTwTS~ZrFJ(|CkOruvZlMTlV z36SLHW#^}J-;?jfef_-z75M+pCErO3uv!{-p7^I_>u@C2e;>(*qr~!Du^KE#uhNM8 za0wEr&EMNFL%W(D@<3mI2dptcI!+fLb14*7grPe&gF0cbQnc|KE9yjq3F=0_03OkUI8_fU_5g9>tB8ddl-Pwg;!D{f= zFj+YndHHZtpf|n^h+7-8C-O47)JEc~)BIt&jdRmW2hvNiyRtnhL#$1FyPTmvwCR=P zhYmf?04It$bT~lD9bL0kAMHUm3cQt`ca*lh?;|d6uj|m8c$2)cIJ+ixkM%%uNl7>I z{D+mT#kCpU5l<@r1*yS%`4S4hz!>AXwFRovG>JY^dd!;?0>XOdWIE+rYW_O;r4^Bl zA=9UjH7So%Zf8E;CmSUdz9o;ak;xJp@y1#uKNaJ)SAPv0k>*1c2kFOGK4n)gcAGj* z1tpG+^b3*%$9Dg3iS#~Ol3b!MDZ$^z{i*am=|7E3R%7u-P;_p8?Dk-F3wPz+L70Dq zN<`;tVLCp16nuY?=mB$Tl7USBUoo}p%IBIGC9J$9$&m003;a^xmnj+jQ~IkOyt?F9 zJ|#WnCtfnP-3?xT!`j5qj02TP)3Ar)z3@r^XcXv|@2K}d?ne+QWk-md9T z7c(;YS}cl<1~huGwEbn<3nhkNLm7Ukge1|SN^n$sn0XYWe7Nx1q|Q1gEnGOMbNxxz z7Cr%KxB+c}TxZ4;W&-K4 z6m7f(&Bxy=@Kp3B+M#6WM3AH`MASwP+Urk{54 zes}>UztKfxKRsmi2Qt{ncMMiupTw`QvG~)5PXd2k`>r7Rg0$1aptrO|=8&z)SPL5Y z7UBr+$daSJ$|HzJmjXM5oi|^&=XonK95R&nSR^a}u16lj`mmP?cxnjiEXBV-=%_V*I>?fabSQ41!Dx+`70EkGp;?DBc^ai;h zSVJ1+2JM^@OnGa-eo)R^BNUC626U>w(cgqA!W8CO$72sj8#C!Y?R0lVE?Y%(0 zp17LdAnQyk$XawtN=!SI0TrG(9!Y{U$O_1c@V)ypkHs9ej;{`{@+pu(vsDO#JJP9g zLxQUZjiats4$g@S4sSiY^?Ks5BXCuYvm!%mX%TIv<{?8id@&2Kb;>dqt~@;OTn%W= z81$Ccj&Yf|dMSqm8s_I$=W#>(s~!hEbh!iZh%6UjX5z}D>%LC3PEJE=r25MfjpsAC zV|-KEzUX~{<#?g_&C1u`J$U`wlWO>6m$L+8N| zML1^GNC!mX6e`*b9v2-shrmU*qpd%)oeQ_Gp6@?fExvL6(RR0h$NaCi4XoQD3Y+Z4 z%LefEPpdSDpi2kA=KT)4Xad>yEDU%0(220x=zT)BM+vWWL|SlO3^AKzl?cicLOU~|NTN_@VC!eYW z3%Kwg+_O#2{a3UHf<5#Q;T9zU9QYuvcG zbH|UnHTN;cH$fvB4R3-GNt?Q~#LPs4Hr-m7$``|?RtCEku2C=B8RI94Ye9sUibLxY z^emHd>@gC34$#{*9ota!t^SgXYTsO;M(wg2@PfY3qjt0lBi_* zd&KE6Nn?}AdkQvTCOR)OORv)B<`(*}d{y{fL=L7zCp+8iVeh^p8~F;nL!) zQ}mKT*RM9-X>4uW@Tb>ZnSLBuGYpU&(^cUorT$Ygn_lAeY+Q7#p4CUkYExNqMTi72 zce-9x=4x;$$<4_OsSKqiHX89dCs+80(fvv@0jv20=qfcmW8U9!a8O5@NNS(A=KH1cVlP zfcUahM8Fvh+?VKa99t?0E(kAXL2pr9P*B2|uJb*VNWif}fH9AyWs>0V@L;YTsX%pR zSh0i^IaewqP=B%m+h`$2Mkg!vi6jAR%hOoJ!Dt60Hd2=)x)B#o2a9e)$FpZ7P{=dM zk(M!0^LN1rv0$NCp#JX~5WS*C8_8R9laXwd^X+tm(sj%RuV_{q9-b7gc5^ctK@dOj zl=JV4NI%(JGAtBN`Xm*ZR7CpUBE#6Lq~GD+$;4AKV{M(WPF+xtq%Gj~MnBu&s`6V) zzle5XwZ2J?!6CA!$iSq~O`CEysUrfD!O9XA8Mg&I34RkJ$J?rG^Tt}ErfU>X<1a@3gQ}xvwsvF){?VH#b zjjwOAQEWFa^RYKZJ=9zZ&3JB$oGs&^ddk zfm+Ki#L`_XN6%mwv3w0=^?y8(bYpiAE(C(_R!8R{cF-+Ta`0g8sv56_ZD0`g7f_2XS>Rrv;n&UcNv`a1iqR6 z?SSL7o6N_!JAAhoC`ilX>hg-}BkN>j$M?#4@Y~7BXg~#}GKFd=woC~03fz_9v^S8b z2EL^>7wKr3Pj+Q^l{zakB`piv7S%};4S2@0scx2Z*#YXlYg>zdGXk=WH z-GahgWm^Ka?%JUC@X9F-;9{~Ezw#)M?O=>``q-{57v=NbPL1@Tc*q*4Capa`gD2hW&<%t_^Mt%M6Za z)yGro0d%E5kcxw8sTCvuKJp5U-cjHI1TSr60&*%ME6{wTW@K{;XMm+XW)yYgsCPkf zesVz)gp*RCD2?3zk3U7gow-B0HggqCffwv6WQM57v1cuZg;chdi>(u$Lyhk!s{d9;6?zd9y1Nd$Yx;Wao` zjnto%h*axjNs=goE$$Qe3}!a%x|Z{|FI&~*FVp7c>GIVPkveS@XYU`ls={7IyEYSM zHtAu=OfjgVJ>0Y|>P=g+%eHZwDpm&hZ}PJ*UDf0#bGvaj^uBt3U0P->w`td!pq24! zwL9!H*UA)j_J)R?O={$dAsbZT{5tp9!Ec-0H#s?M+3x77UB2H@=3i1BwMSi6o>_o6 z*mz?7Z?dw2IAT;*YNfCv+sQ|Ji*oA2YoKb@*6`At|Kt~w-RrJx4PwW?=fK}ZM8*n>^i^Sn&@V*ZFO+Z~q+-J?AWOQM-nSW)`xEy$ zhJr|R|ACwBiYDL zBf-(ck1r+Lde?)Ua|{gRy)v+ znUV3A0RtNL1D9V}ZLC(eWNco`nG)LjEBC-RxzHz@&4}6sW>7fmB`cRvGfwe9m&R0* z2^ZiagojZNGEjylu!^HQU36L(j()Y4E~EdZhgI}EnFGN1IYVuF92+a8-NRdG_ZpMwxMoLO!Xj1%zxX2dW$h}p3L#B9; zo}XsO&y<~qk5^hxdZ}+-42ikH8IqaoJcwd+@9Pd3LL25NS<}^Y$MlEN%PZ11gmc@P zv-E@qw8nZ_g;a+-dM1HHbx7m4}jfjo6`o>nq%9}vYmZy z@~)PzJbyG}e{EKy^&Ngp=Ar1rzI(0dK=Orq{f;`vYHR8X|3_{}kReb#mu^vdl?K&l z_iGPi9VpwImX?;9mIiV4K~^sHtFoOu9NglU*EoVAOP87izP19ZgWEHbh}RCrw35HC zJgeJwY@OOJ*XJ!{S><#G&$oLp7$a56c(nk5cT;I1D;hp_qZQ&-!_nLpFd*Bs_Ezve2TP@ z=|B@r10uLDT|QkVbTO?_R+X1m0jUR8JUZ1UAi&2bpuFnKfM(~z>|y7%<#uXup5wb* zRf6>+lK~w5Q_{c9$-;j>$~^>)0nNaVF=7Pdr-0Wc5K9;u_f3= zBVtzs6r_vvp*QJ6laAOGjbe$45@U+dSV_^um~Nsb0o1I4HR^rWz!=Z@<(~h2p8tKW z<7TbB_Ue6o>-*lXW5{{HaFAa2Ejk z-y}#pgn^%9GI%K>&Yn%&c8bqCS$3lOsI+F`+@iTE`aV3TL4Ql%CTjPnkA_;b5``xj zr~)a^{v0s}v)Gd+90&U#;#LSCWw?XRT8|v<*TvzH{>&FxR02$c!A#uovjt@?bUC@^*#`aq*U3=of zrb{ZTqf9RL8~y4ZGKzPf1scO$`E^uEk^)yJBj|X#j+g(6?ZXHxerxf=L`K%1IG!AP zOcNWF5Re`qE%o1&4?*UU;KOyIL$JdVgOoB#BfkzbCt!Dz;YU-BMjr;&!rqcy<}Gh-*8CG>gX*|zw> zU5^WNaNb}k`SFRuKXq|@06#b6owui{)_B+L-J+4Ve0YEidX)dQRQ~JwQT=BO4VT8$ zCGOs>{O!h(JGK0U9j8w0JSRQ8Y{%SrN^%#vL5irOY!QtsJbUeDK5#?-0u^0KmXH5u=wzx%GTA^XgZ{m`j?;lX>D zm5KP*d411lcKBy|`6|8By)(S|%v`83s;w-qQ|&w$6{K;ewz^fy#9SO=`FF=(pYuzE zv@E?aAyx^|k38IYIImal=p|lf(eV=)IH^|#9W-+cT_g=#o;GEP(miiZ?i@ZfL7So7 z;J?dX<-0OugJw8cRX$!BlM#aIg3mUd@q^bToX0* zgTp6woKn@)WTw?x@LRL$;P-wRdYCZiiPLBa=*(g*VZ&NtUjIx{e@chPVNxuncwz_wv=UzH6xS zA}sFF;3WmxNwhOf-{vRHitw8VY0g=|oGb<>9(bR%bcP|DR%&Rh2j$_EmXVPLrK*{k z$~yo1Lr8p%G#8Rv(LazQD(rpCV-nA3s?w@-x(duizdII|rB=iiO1Gz{XQ!z~mr&nY zIw6Sq`Ofg775$}Io*}(`dE!It?l*(&ZxQs41-?&$6VLwkF)=&7=foZ|?CSCFj^C>! zQ+J-MKd~S9$0rGp9`x6U#w_dOb1nK3qSlwTockE`y1`&(+LgI0t)8a|u_WwvT+_BQ z!6%%kUtg$T9^>EWb9nuJCmh^nwv$b3cCD!PEOmOFhL@29QAln`c5p~=MraS0QmUOo z!aU0Ys7q{tg$eM^1ah^^j+?6JliPA$dg0t|;4hiYe zk0g}QFxOJg>J{~?oyexgfKnU1f8F7YjR8&|#m#h~n@@ZJzQc*@*TRZsqA#siCs=E*ussXGaL6GKD@6H>LzgWxXGpdMD^*?b2#zPu-il% zE6T0kUcXDZ&jDa3JHSKn1)xvL0Cn;exlNe)CHVq?DCP7v-=dc*p7qnqpY=1yMb8Q( z9WXoaE`q}x#j|Dlk)n>vl8$Bi5gp46BSgCbw?XgbvtUuFUxAO0(kIzB&X4zY znLdwNL`vy95^}Z>9Q-*ylVm;MJFFZ@gyDjM^c@9Mg&8(CA_R?2y5K1K75_8Pwo0+N9&Fq=IMl9oi&Q}{(kG%2Q(bz0d*!% zcwc*T-=SkX3w3P2-v(fy0Ta(*Lx3*{l{$24M-GAs9i-vtBHBeliKt0Fcbb(o2dN9hj&RgZXDIy?Jvu_(t=&VY2l)P|(61$=>dKQ4lNzhs|6nwk_o(|rt2ucY~ z4(8X)n;PV%!h+fZoArf{_C0F;MiVtVZq`gC9dd018QpYNSJcGk>|m%4O|>DO8pFJf z0SfokZ_S*!`m@WQp8V|k^^vKsEhG!uR&_9m;FI$7V)GrKd;o2`g44 zdO`kt=~u+*$GS)L-)g?R`A73pmD~nZvl{9(-=+&RsGw$uj0PxvjUqj#UEy~I`P6Sz zg>H?HjM0RWzH^|H&HRxxzo4kFNLjhQDkhKD6&*fQs)TB|^c?=M&(fM@DvzaM>!3m? zV(a#;D$HNv28v%Q-(gakp_YY4tU4(`)N$z%Hc@WBdh9@Pi_ z((Em)uG`N5tsqfiKL(Vyaz=f_PiLgTfjox+rNC}Vp?8PyMl7S)8DHfm^M1Dq(*>JSz`0-nXF7O8 zY^5w+TjKolu&?^uad9GJ7AjKChn?|1w)|7CE1s7&o?Lgr`((|P@n=>p!(GW1#|3Zo z*}mwS&&jMyM^1ujlID2)@cZ>pBsE!l`O`qJ;~LD!vqka<{jUZcFrXb!8kDNVM@F%Q zbfgkj99N)Y?xY@^0dLQV@L8%kymU_W+c*k~>9onXhn7N@onhiQ*|V_{!~#ZxPBAnG zHxO$m-I_OvO#Id9r<9+LU%2sk`DbTNe0sn1&WDG8km_fOQR1=SshBS#>wAgTk@b)* z>J%$#Fp^hqu_JUgW!Rs3ESc<6Goyi}^7Nu7gm%V%5vAC={r%ZciArZKO7%7sj zxBX_{zT;RNn;sFHFnK;TbHxT*WV}UWT>{9~ z>;~~dhlN607LgOHowa0;8`Rc_q~4wbhtE*q_6*3KprOqe`0Kl#8XTg`hI~G&IkseL zx;AFxJC0i1AeCuzf}I6_O}2uy#zV?+JFp2h7t;)p z;jVsy;w@0jGU%E!^lMR_RZrnaED$GwSD^$vx z+g-D1lIU4uM~h-4SR@b7sn-nNqK<0AdIiMbrepxiC5lWCJu3lWcBbARSDoXlz?}jS z{tpzhPZtnwdrn4fdbSgFd64}Cw52{G^2RU)4z9{-TpG;+WI5epa8l%^Lse-GSxkmG zW^V@pLzz=|kc4LxWHNN`Y??t-j`AvO=(3=K6z4w2bZiOJmFd)c{0HgTsafe6PPFIL zRAMb+sX-yE-FHOxi3nmyxw*;+{d!SOIx@j9Z-$AmF$8CiVFp#DW~8TXPjPx^*q9Sf zq~puuo#ZvcR;8wAKs%??E!>kOd^5d7>m+ZUw=tc0O>@c%IZLzhQXxi?>IlH*tei|~ zcJ}t|*%~PPjuYi%Z%59P$++Jq6*O2y6S!gvl-+3_))$W zNDkzjV&L1;C-a6D@#ME}{y}D(09?aN&E^YVc-&Rp{o=v_==Yv^f_hSPh^hKt6wrui ziSgZ+nNY3V7lgPjvoB}}K+xkmYz#*hsc}>B5Lgl(i`7HKxQ4eUOEHB=Dr3tczg1V3 zLAb=q831uzO!AD+fvF&}=q&AoIu92XaaRH?LWsQ~Vk88UCCGcxAjO8aW_!7+TxXv- z`j#dYI_(2!EbTqMdE9;A$&2qde}9h*2p|!3v8Drv_)M`tMa+((?I(fo;E5EE=|LZNwH( zPq6f(wwlgShJ0|=8Cv$q7#p0sgp>*+qN5{t!xeEvba}Pr14(sxc{Q)UBCalvj?gTY zkUXJ$5(@#e*L&fnP&&e}`g(P^`GX(qp?E4&LiO+s6!?i`y^JxcVFAMx)(@y@R^v;7 z@d}Mk#?p`x-T>_#%?B=j%WIly+FNJ#EZ5M{-mC;;FV4NG0oMM_i9Dls%>AEm+P0mwR#{94FO*>n4HHDg4c zs~+-9_YlHFL+BI9PSy@+3^8jAG!Eu1IG73t=TE_FBm++mN}yw6wU3FX0(cG@8VNa@ z5*00h0FDBho-~?WWd4^}-KW$^hx|z7^N2Ikpeq05;g1?JCG1N&X&0R@rD+}W74b4X zq)EUg!Nf6)(zuCWpzaR_>SVo(etQ%ZoIwKNCx@F3Cg7Gk1R0kmU&=b<%4}+G_|Xf0j)13&!pSbR9Nkb!5MSjNAae zv{C%ZY-RXf&!1^>;qJgM%;4)LB z$oe(1Ki0fRHUv3;`0pK-<#i&v;?=QShA~?a>q}oj1I%WeBOUqm>peo}spfg?Jhom# z9XGSQO*^yTBaMEF_@gr)wHWic1<9`uUT87*XsBIwuhOAi-8JB)WB6AtUYf_7Z<2ckLy- z-;n^J{cx&UHGr3|0HJvBeY#jBccoTC*DqV3IXhS+uPCYCoeSL!eOhqKW_1Y+Ch_an zq~ZwF36oRrHqL<;D$Nw=iqj} zBKn=?5LHSV5U@jzEnlS!h}i1y760U53Li?Gx3p5tXVUUb>q>o8@mtcP5{i=x(=?UZ z-M+<<(klP_;Ee!ENdj~|M!hRmMkN`(7*&yxSC^Ql(&_Swixame=4gD&!Ya4!m-;m& zHGK>+zWYw%bZ+yGGNmpjOLy=+kDxMMw{3gM)-CA)Ta;_6Hl5ymwEO^HA5*tenUj^B zQ&zt@p@84Hv3U7v3b@XhTa<}A5({-jd3l9=^X{vk9y}{ObF&JFc^y7m6g8Q(nKgV2 z30VX+SV}TmdfIm=v3g4t5*!rb)3mBCRC9Cc>A9yyNL%QjY7nI-D5=*1pzqtzk^Gj8 z*iD%EDYw=K*Zcyp_hmPZ^S_WGr*Y1ku7va-E>B6MLc4rR{JJ^{g=_$o>??|oPe=$; zm6L5Ea$BY!qvtBi!*!w2PKF}Tg@Uhp?Z`a%QJquA6Y~AB9Sxyz^PKc6XhXM%!)$dY z#?f<4AK7em2W-!bHa%3-Yhj5jNGz43=}e!*U)L-&VTexRtAsH~SrqL>J+zcQ!QtEu@9w0{+~Tjum|ICc1# zx~Ry0$n-*655#}n)z>Zst$vT6N}WpRwB?6DI`r&Jv}@u?GqWyds-MU^*S7eI;SQpxR`O|6jnVA$%< zJ@ijv)p8qq!R5y?xfJvof0T_OwL5G=X#g6|-i1cPTq@{nG3XZIEauz=c*o0yW`aZe z+67o}yuXW5%Day*vCs)Z;$Nc=PqLlo##~oAh6S7iLpozy^ z5FYMvVybR#h|`%BZ|{3k1th~~3@cnH7&3}&hQ_O(+k>x&&Gu{^iY$w*WLs(8{qjpU zz;gnkTzg7AL^c$>K4!o{XSoK0o(yUgG5tDpFsxNOws3DHj}$;#F*}H3vV@v#qN=wF z-YR;V-_du6bA3PQw90EypQ%2(R?$+asc+ly*N(^1qALZTeWuhO)w?S6a|{ylmtj#L zZ+I<~UZFR(8D5K`zX8ANENPblG9VO)3o=%D=-vVwQ3u8kMmsJ?o*Yu+8#?JoNWZZ4zmrJ^ zdf?Pd_5s6;t^RD!%1#q^F|~l-OD6vd9i8b=kjOg?ED|&^4#yfCq2Txo1Q=b%6GZjg z12H`@Jdw!%T8tOA16q!azTUXIN228Wj!yDD69p?Fn-y_!5m|AikSB_D#L+0W>y_Q) z_m3;hsxB>cVyq|Zv*{IIN=q@&aQ@or-6D#N;FWC!&r%V*S{clY1SuFsnh08%;-)KWNT*e;ols z+-vV2yb?Yz*F20}Byqb&}{B9jteD6c~o(?x4hIgJ)d^~$}XwbpHgXcdv z;3G9S(@aHCQC3AlkyI`gXtl*rSqWNgLRM69LXoy2tGHN7CQbz-W7h8Ia_^&#QRP8d z(b2xXj?q!z0*ZoK;|{lXy(^-2XO&ktH8gv^w#aR_v#Fy&UoPhWc9pWp}7AI6> z6%|1r_V0?5_vV~k(>U|W%ssDa<+qgaYqp0Z3<#AT&8~^eQig6^wqjB6gbkrzooFg5DJm)|OesjyWul-` zb?9RZlzweTrCB)Zx!-Q!%gT0E=LxEM@pwzp*=q*G#(QeLnS#cSjS8d!*mHS8gBqI*|zDzUdc7g-Ns4 zEn4g^%_{YYU4_jRP|L!kS!)W`Zs8x*om+W!Y~`kJGZGg{ zsZfCPSbyWGElCd(r#6^+m>Mf^e_M87ym!1!EX^R;SY@H#(M$A}qCUHq`ws|wi_YO45sJh4b*p)LNpdPP`QTwCx&FPPI(K(ac^Mx=k3`*;T#TSvy7ApNhMsZGC_ay;q$ z#`LuTkW2ZVCK}$Z1{#3FCeng?U02Ylra+VDmhHQW?+wjGJT|95uY8Lyx>|O=rcsI! zq#q0)EhDA7CK#S-CYTJkoFN>!DL) z=8o$-m)ZnU^_ppGhbB@hX;!*Fxcq3}N;>J6Eai~}#P`ilFk}i0eISOW;#b~CDnU1; zP9&|4%m#;7W{!%IM@XeqZ>y@`xjlQQ=3>f)+;f$CbbBgxRYFC?802o+&!oEcO7We7 zYYbCoI{`n`Cl`Jyg|x;9vm?hIp6DeE23!GTUergQMSMD*Y@+6yr=(L!&~sHUAq6bi z;f^^{nxtQ%AcyHTkU0+Fw~a>8!vIu)368o$pxZ`42!$MjlxX@zFCtuf*-+9^->Wm% zkWGGh{yiPvd9Rn~9OUHn&(2Ec(g%ttdY{$;-fH(79e2wDdkJqoE8QhcTUU#-61hGW zTZZT;`U~jz_PE!9JkUS?wYzL2@!QMy9|5faf{sFHdvUIj$!nZ%%H%f8Hjvqb%qC+t zGiEcdflaUmHn$^ZqQ!{?$vWsL5qGv=(=$f)tmQJ>9k|LmTBfocbTUa%%e6Ka)ba&3 zJJsc9Bs;;0EzFY1otc~czq?79o9N%&%$b|nf`1Du$b*}}3 z2(g_IO+TIMNOyuN#hy>+ig23E%2jCJDH-?L96J{?`X{ zoX7@n0?^MSNN;36(j0V$TCLkN+35lhrsq8ksN9ec>F*R7P`rL$6q)DjNGER+#kdty z;g>4p2`s_n(@RjGJPPTJqMu%xP#!{Uzm0MtlQ+?M&H+){^_2lml>tY!`zp!2r;Z*_ z_6(Wkb-V9?OSl=O8)-}#IaoaB(Z4QSc0w=49l$1|NH6{(#~0imeYf~iC+M6^G?oYD zYNO4&T`}bbe(l5nmFD%{7kRX}a-UP>KJBr93OesEN5J@iEWNUqFqy2xn0R0R7`^T$ zz=4zKwJLhE3Reh~m87K-$gl^{%Gb7$8{2RdQW;5Gq~uoTI0gNFHT_{V{u+dyP}$NH zX0VK-A>UDdG6pPPf6_l4$@eF_{_8E805;Q9tCyCMka4(f83V4sHqvT@(DLYsn|9GTvEfuFu0$N@MRE~T8V7Pw zbj(B1k0z6(e(g}O(6~Y|3Bq`bCfy~AMCAR|3d3~z1bfiw%*57nI-9~wCUZysb|9at z$s0hQ1gfB}HHJ*kKPG{1>c~{$c$LWRkr80@9acheT!3)j=MP4dn?}X~H$+|?(+h%t z7Zhc~=&XkI)$Rv2w3Oc}eIKh^P~JglLvCb_Ru!{dn;a7!7lFIA^Kl{TTzi+6e4VrN zH?k@BP)>DPZA5WIQD}5>d_oj1lOM+hOG8$L#BRtKnL6vMeZQ6-|B+lj_4U5@ziqr2 zvM=uV){>Mxar+udiuUiWDm#%Z-J4bsQM{ zu+Wt_eo*|T^tn6rSEN-(lx$1emKGn8yDc}OD!vL>s5aW_+>$C_*y*q0kQ`IzpC1+- z9-ZR9Bdk1Ze@b0>ZF&Cw=sM}M3MfU`c{uTmZ@uqMuf$Lv;1Dct2yF;CquY5{YODv@ zvxy2s7ktFCXk)NXaN@H1jqF4H#-_w0^+$H;&V?M2LbDeU>RVaG5$PZ6$Rg@;vI+>o zDUf{8zD}2cqzFF7F;H_pH@H9b{ew<`jzJ-qH^+WYPm)OQ>_rue4tYL+K-@e(qJEH@ zo0o%oFk6h)m7g3Z6R&4nulnQ!3MFJaKjH;IQ|WVk$3R8o?v44ukwM#1HdY2z1|3P+ zRk^z=|41a%Bq1YXfM1YS7hV>g8lD;(o*SMQRvTNJSDRN>n_3GcgmuqnD^hm_R|Ka9 zr$hzk2jvCtirSUGE3aZ#%5Leip`Er0`Mee3M^=>hg!_cYd)02N@i`rTxb{eG@tLjA zB^w9c?zHM{sQ3t0@u>Q$xa!=hywa-FYAIbzQWO#U))j8q8n88aU3EZpKx6X0>b*4u zjS>5>l>L`q&~CsZ?S|?s5Og@U7WC+0{M!@iZh&$5P|+Yadt@#!6Z90Q1V;qTW=>{( z%?6kaF&kkv+RW9=&1{C*+h+64)|>g5Z8i%ui!zHhOEOC{%Qf3&_MzD&vm0ign>{f5 z!>rwWn)yugx6S97FEaNuUuEuZ9%-ItUTEH6e$4!&`8o3s%s)22W`4{3OY`r|e>MNz zyxm-H!C6>a*jqSRs4a$DOtfgW_|oD#i(f4Muy|_GVew2T6iS3v!v4bH!imDyg;Rwy zg>!`qh0BHOgd2qc!cbv^Fk09wyej-f_)ugaau6v+ylA3mn&@rOJkcVNr)ZTZT$Ccp z5`84PCi+5jPb?M>6Gw@Y#M$B^agBJFc)z$o+$g>+ejxrs{8-{DnJZZ$@sg~S_(%dJ zp_2C`7bG7`u1H!WMDjw~M><+MQR*h0A)O~(B@L2plg3F;OYd3QTPiJ`Etgs@w_I(R zZCPYlVR_B+Tgx`f=Q0bKrOZlZD|3{MkWG=zlm*JtW#zI%vPRi^vL@MYvUXVqXU0i5 zp6kyI<=i-LE|iPr;<*$qlgr@>xE)+Aw~sr_o#ejeTDeZ{c@Og*c0FF}q3Yq>V_1(# zJ=}XN>9M|tPY?ed;XPt{B=$(_vA4&^J?{2+-qWI|rss&B^LsAsxxD9^o|}3G_6+YC z-E&9J6Foog`K0GFE1A`6Rw}FhR@1H4S%q4~S>;;ktV*q_t?I4zTD@m=-s+mwEvwsB z_pE-ldT8~h)njXswcL7`^(gBJ)>Eu!Si4)#xAw3Ouuiouw%%=h$oiD^dFzj?FI!)? zZn3^&{j2pK)}1y|n;tf{HcA_3n?W|iZN}TU+Dx}uXya+K#U|7y!=~Eipv`+W=WQ<9 zT($Ya=AO+jHox1n+5BZgZEbA(*-o-`vt45AXB%ysZCho#)AoSvVcSOA)3)brKe7GV z_K|J7?O(WRd|@ZHSmU7TH>U8!A_-5$Gl?M~WV zu>08Viro#nAM7655jlpuTqAdp50np+kCso9&z3I$G_{X>vpifLEsvL{$TQ{n@?v?F ze7F3d{FwZ-{G9xv{IdLp{7d;a^6%xp$e-E^?R(hU+V`?|u^(zb+J3720{eIDm)ozl z-(VkNA7LMBpJrcVztjGJeWU$*_UG*{+F!B1VSn5HJNw`4+w40PW(u)_Q#dL#iXn;# ziW!ReiX{p!#X5zbVv8b75vhn%BrEb16^gxzgNmbyCdDPi=Zd?EpA`=kkFl7UIaoSa zJIEcJ95fCt4uc$qJB)Fd;P9ryJO@vQ)eajR0v)0pQXKLeN*yX4>Kyhs9CUd1hD;A_ zolH?DZ}q0ko$0D~->kkIBI6{l2YODMto%Qx^x~c!lwP-gqx1p{`@c|n-TphJm(h0r zru619N-uU?kZFcw^E7~$gbl)|Ss)`va4`g`9`2O}%O3hM-jJ(mu|W(5j~ZNrI`Ft2 zWwh!VgIGBP*H^KT8h27JyDS+lDV>i3UQ;Aer&z&At2L zO=6^bUKUrDp&Z0RI8V(1w3181{4GgSqt(>L{P3WaGbt_&u@469rG%S_WF%9OgqO^e z$r&=h2tI339Ev>{R>#waGKuxR3IGCwdP|X6F;|#gm7?6X-zE=E^wnFd4T3 zRU}E0ae3+zS+$yD$iJK@1&m2a%B0-H{1l!WgT)SAGiE%~gp>kJb8(hK+k=sO{KDZlhYmtwtU8QFFs&!_^!XDr1R3 zc<01#s<|K(wCh&TW1x(Kz*-8bXPEl3m|J>cO*8l7o43$*-S>vTr-;Sy8y z#eh;3N1sC92LKeANdQgs6bD2vHOC;T@axSn{ZbmPOC4jNdO0dzV8LBpjBYSW&E3aU z!VVcXQf7saV87r}@_Emuchm;d_AD8z^Cjx0rXm@)lF=-D)LewDmqdVDpxH7`u>>;& zdi9t$-yFj&lew>y4dKL7P~SEn&Js^pO4Q^Yn(8vL!w`Oa)m%-!IvqU}DNByZIL2?{ zfgQVth2EpHWtO`0yrD%w($vpZcdQbfTQ>OEbd_OjtIRM~GX2=#bDn(1>St?2VRhs+ zbse-_#p|`?9b^NLW4H#D0E^3xy}hDan0U*KY9efSj_B%sRu`!xh}tc65UZ5UWf$H3kd@)B1zOeOj}+vqk)aY!c4P z5}?&`Swu$VkEmO{loY6$j?~zkxV(7WJ8S^Q{6^}bG(>=H zCJg)@wtQ$ocu52hqBqJi1y1{8BFTJNn%$XriX#C2Hsh z{EoR@l5s41OV^xeZa$&6ldW0Gb5B#%=mMlS2dyHG09IK?Ej26Xl1fugpG`me3hF5oWJi0U@2NL;O=KMF zK5oPpvk~T9E-Ge61=`x46so!UkYic(^-i2(4@RCI%}?X#e*9n>#;#eNleb2*D1VLj z#5YGQ>c7@$*L(FBs&4Ln=s30s=tsW~z??fsN%rHs8K)o1ciJ0t3T_GJMEypL&7taW z8P|K6D%ZmNNX;D}u`;lcK=Qahwbnqs2~vD)3bEkG0QKGmj-RuUsx!Uk zNfRYe*^%3$_}13SRu!m-&f&SFkLJ*JQ8p$!ow6dmBBPvtyN}uh-?>gl1XZAKPFc$H8nFmRbvPPxK~0d6Gz0} zBvJ<9pPW2i9|pXkqPzmgI)c%Mq{uiQuyX-=lk5HcxJt}I`ukv1jlq528)Bd)SwZM` z#=Vx5^ctS7hg@!^XmI4J*&5JkBP9VeMnt^~_c^F|)j2G|RsdpxV=zJIB#+z-DJn|W~c$4yYy({+$-H>epg<|ZW zFacvWe;t)0d=t|>o!9}{d@&dU=H4B5>BG{}!lFEYot22Pqs0lCadAozYbH~%-cQ2a zm9gIPj+z^bySi-{By8Ho0(oQMhckF?m+aebzn$=(e>u_!od!Y~SC~fpFr_;J_$~pQ z5#k@!nBE=5Ef~yaiDeEjZ}PW0ksIQ?OkGM&+8Ju;s1Mt`NKG$^XOPJv<6NYnEw128 z!p>nFXrI8^=D>$$#XxpEIMQEc!HMgz1=*?Q&d7}S*W4I2mMIk09%}>}b~-X2f0+tx zR9C&OV&`tw1I-aij64IR2dNZiq6&uVT+fhwdy}?@zcD?gRS5TnS6(lFRUU~Zt zGr1{hC|3h`TLCB8hxv3jN`Nj2MR4}m5racd&4tPII_`2TR%=j9ImQ`vjzNH&Ll)WH z1-sOJ-hxYArrYwF?q~QWU^~}I*jAW0sIi;kx}m(gkhr;8ETps%TQQKcfeua&b8)4( zppD}ylFQ>uxSJO*-sB{DHR&lT%hQ#VL4UNQD77dlpHIryW+$dYafZ~9BVO36iev>k z4Yb^{Qt=PPtU$mR2R0eDb4;ThHYq5Hha{>jrc!T(T?UPvE{aV}jE@Ckr6eIQp)iF{ z%g+Z+5k$VBQX6S6n$F>DU^SH5`D^+Z#)|^Q)COv%Y%piKs2_4*!Ux;SVKwfrF`e3T zB}LmI|DK<_Jy(@3(I%#*CM6`rI~hcVU7}I?ZzLR5PM3WnI+yb|?%3$yB}Zp;JX1*%x5s>9go16*%wbicZy09WXv?wq&avK*{Qjt=w>Vlf#O4VlEB6Sz1D)u;%-Sgin zfpm!(^;yP{)rrqCuuYl~pL5VQi&c4J6i8<_bcG6{JucWTRN$WWHApM_lc|U|A}c=L zY30iJ_^gPMI46!WR?g35dWRkBiJBjMXR}4vL??ZY77FL zEW*?ZV?Wdp9Ep6@sIwL96F0Vwqt=I=~*i~WsL39t`4h`JK%HrzPH$Gg5=^T`Ru3S@_KL-#SE+k}qR!BXk94+Ip z$;)Dm=)ox#du(`n=*mxSeSY%djjykcoyZ&h;@0vZ5fNJ>L!OLqEG{i6D=n7R)N=!; zPwVH>GPRYz|LN83s)E9z+@egbpA0;)+)>)5f4=56U#$%Xj7%8l^I8qJ9)jxkA^z8J zl*xe^#r!x)aCz9y1U|h$mr? zudY3Zy}d81x>tT#aF+a!l^d8~SX(~75;$H%F3~FrZAM~}R>gT#dK_G>0c@*IH0R7$ z8@^U?CwvdBUF++&W^IG-@#75*$9Xo+**e6Hz$OyRZYU{Bj$`|NOyR7>?a7xiY%Cc# z75mGPN3y+~-WGot-Gxi2#4UuXx+=G*5=S)>##x-gWj{8ioCzL~+){I{lc@P}YNdjL zck{D%CKSJah1mbDoZQl zK1Cm3jQ(z17W7baObWydUGun__0LYQ3}Uz32<He($3v zuqxuBQljJIdE+6Q=f?2QTErZ6Auil>fbVj~t|Rf=9dw8%0`Z~UyANr&9Z(SzkJ*9C8)Y3j&GGH&Bs>flCYs!aj; zrNJ5wcs#W`R9}h<^OKS?LCiwm#ex5l%u0`q3x^e1%&C@zZ42dk4bWSYyVH{Qxw(&%*v3;EmJp|@{S?_V*Kjj!&D*JJ8Gxj72wQlWCta%X47wF!J{zWT09y_I4KB73FXiH*hq|3)A}L ztd~D-Jd(S2FN@lbS8=K=1}`o=bK+|acLWmw*i`w;824fmm8Y}X3`(=+;7+>`0~cCd zqG}U&?@@9fV+*7L0m}z!15*VXqZ`b zE(sg<6!^ua2gi}8+##S=abQ7cz{;AK%+dY<5H~TWBS3=cN87{bE@fOc2a(cYkRz=i zJvefcwGxy#^Bi4)?$`&wKpvd17adFsdkMb~bK-`**qd%C@I@7cp_aosTQFMb3n0}W zRdbNhVq+b3#E$Ts0f##d(olUl0sff@>;x9f^75ZlAYt|wF9foeHp`bb3$d?Ro$MVkC`!#y>{y&H`tn$#R3otWWp1 zUU-8qybH|4Mju^&SjfLazx?nIPA|XxzqH7DSc=3)CDLR6w-Xhbbt1}bs7sMxg1}j@ zPtYJ}6nrH3s&}70e4jO~R;_&Nl-7Bzt6Dd<`n7Ipjcd(mt!iy(J=%J;_1o4zTA#OB zwef8O+6J}_Z=2FKuWeP^mbSRIoVKdAhPHEUSKGdA`=jl7yHz{iKBawL`>OUW?Q!in z?N#j!?dRIBwtw6H$5Ylf1W0-Bf21sEwQ23$>ejlTbxo^J>!#MAR&8ruYfbBs*5=mh zt>3k_wh7v7+MJQ{ptg~1Zfy(N*0cq+Y1{JJYTAypHMd=F`>w6EUC?gR-n-qceL?%0 z_MmocdtQ4@`;qqM_UrB6v6NqYkG{F$#lja;UyS_r{Kj~{{ciop`l0m$>)&vJcHjCJ>z}QEvi{Nf z2kY;xzq7t)eb@RM>#uRScH8o2Xpu>KrZZMUp%a*f8Gw)MX><*NVk?f>5=v7iS= z04HD<#~5~Im%r>6^Vw=^*QWvt<3JT$p6@!6CDAg<_q`V{p1-g(6EmL{2+{QqZ(U=~ zlGPu+|L3?dZ?w<~g3OxXPb=6e(jpmwU^R>VpC0zT+kGV)kO*UXH`>`dCJ2E9=BwWj zCK6${FgN4F{NQ16usGqSG{(o=wSv(mKPId6qbu&7rf|&7RBmQBy_?cDg@L);_-MQGZTt>9>d%e&!BS@| zAB&g08y{_Vxw^kunBHMBe?pkdUw0n=&188pK7W57%KDbcFKZ7|U3I7DhQ9iu+ujwI zDeQlmT7iQ3GnM<_@(lOxwzlauH=5#vf1xq`?)bXht(j@c7wScYcjV>o`mpSdll1}i zm}>=Yc#Q3Da%1Mpc)IKZyW=;yTfo2Zd$(!w&+=%h3sZUE&&}k<^1#@d)7OmB(0afuINbCe(I) zV{T^McIFq~#xaw*v$T!r!+bTK|FoO@!5n6hh%l%amLHZ5%n2|3YXutQSp#?D19y$_ z(RP)k+n>rjrnO`s}--{Qf`0zdj-yKcw-Ql|Znfx0~w!zqd?@PM#J($IXcPY%i zEZ_h1z^@g1Ol|+4@tg8wGTC=#XOF2am>qfKn907Io>$+Q-Sqy_u7zJb-R}@W`8!UQ zcf@Io%VaV)??c4o52#O#V%#1nXgU+|F>@jCcpKZ_J&A z@3MF03-+%5t`!Vm@tMZ>tLZTRq8EaGtY0v9QyVgOxLGr^J1@q*V@d<={Y-i7cC%-3 zywbm3mfe^J;$ivj&b!(ametFDK5R`erNd12{AYbi%)83U;>Nr+5`MbsN-G#{3WIoD znEk*1TOcrh-{|8tGo`?++wTaNU3N3C@eIPM{E6?6zA8c)@KO^scH4!o_z?+Q%*wmn#jm(a1a)TTyWOP%NAtDac1wZ1xhWn_FxWi1+ucgwYJT#~ zK%Cb7e0;;4r?1`W?L2GkmJN~4qeqVV*Kp^l{{GI!Pod5s-l5(hTfH|7pBcC%Y-)se zXkdW%%=z;?=1iS7X}-tI8Os*TU*xgWJ0#REaEtTU;p2yoG{&*O-+OJSH$rdp4si|( zbPn_NcK$oTQ1A6&%>Twfe8iWHh}$_VWbFp;fVCl;o!5qih4`%tH+tC;80NR$I~2)> zggJMo|95_U!@`0ljTphgukFg)aKFHRbQ}R(I`1u^-XjEW3IYW|f=EG#z)#>K@D+p! zoCVVbYXw^c-muMrZHr(7zB>y>3q}e?3H~J*4*OJrKYq@ygbFpjc?&`jF2opm1ANXz z>{}4$R6zvXL-7^>a}gdNK{#Sq3%@f3^9Az+9)daWH4PnaKI}6EGX%>73t(S_x2487 zLyxYu^5reqXbk0y)C1uXhO)6Q|5RQUW<7kE;@^l6 zA+LmC@2nIomJp<|0saGwdEX4TwQyzbeu8x<)8DadK`8dN9==1n>mmd$toB~5jen|b s)(&B4mq{38BT$mA^w<7dxZ%e9{-66Cfg0+{%@$)VvB8fK@L&J^FN3;7EdT%j diff --git a/tasks/agent.py b/tasks/agent.py index 90fb9d2a831b1..a3eee098dd2a9 100644 --- a/tasks/agent.py +++ b/tasks/agent.py @@ -307,7 +307,7 @@ def refresh_assets(_, build_tags, development=True, flavor=AgentFlavor.base.name os.path.join(dist_folder, "conf.d/process_agent.yaml.default"), ) - shutil.copytree("./comp/core/gui/guiimpl/views", os.path.join(dist_folder, "views"), dirs_exist_ok=True) + shutil.copytree("./comp/core/gui/guiimpl/views/private", os.path.join(dist_folder, "views"), dirs_exist_ok=True) if development: shutil.copytree("./dev/dist/", dist_folder, dirs_exist_ok=True) diff --git a/test/new-e2e/go.mod b/test/new-e2e/go.mod index ad07f9d5683ec..1fbadfd55daff 100644 --- a/test/new-e2e/go.mod +++ b/test/new-e2e/go.mod @@ -261,7 +261,7 @@ require ( go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f golang.org/x/mod v0.22.0 // indirect - golang.org/x/net v0.31.0 // indirect + golang.org/x/net v0.31.0 golang.org/x/oauth2 v0.22.0 // indirect golang.org/x/sync v0.9.0 // indirect golang.org/x/text v0.20.0 diff --git a/test/new-e2e/tests/agent-shared-components/gui/gui_common.go b/test/new-e2e/tests/agent-shared-components/gui/gui_common.go new file mode 100644 index 0000000000000..1f5491037edd8 --- /dev/null +++ b/test/new-e2e/tests/agent-shared-components/gui/gui_common.go @@ -0,0 +1,174 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package gui + +import ( + "fmt" + "io" + "net" + "net/http" + "net/url" + "path" + "strconv" + "strings" + "testing" + + "net/http/cookiejar" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "golang.org/x/net/html" + + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/components" +) + +const ( + agentAPIPort = 5001 + guiPort = 5002 + guiAPIEndpoint = "/agent/gui/intent" +) + +// assertAgentsUseKey checks that all agents are using the given key. +func getGUIIntentToken(t *assert.CollectT, host *components.RemoteHost, authtoken string) string { + hostHTTPClient := host.NewHTTPClient() + + apiEndpoint := &url.URL{ + Scheme: "https", + Host: net.JoinHostPort("localhost", strconv.Itoa(agentAPIPort)), + Path: guiAPIEndpoint, + } + + req, err := http.NewRequest(http.MethodGet, apiEndpoint.String(), nil) + require.NoErrorf(t, err, "failed to fetch API from %s", apiEndpoint.String()) + + req.Header.Set("Authorization", "Bearer "+authtoken) + + resp, err := hostHTTPClient.Do(req) + require.NoErrorf(t, err, "failed to fetch intent token from %s", apiEndpoint.String()) + defer resp.Body.Close() + + require.Equalf(t, http.StatusOK, resp.StatusCode, "unexpected status code for %s", apiEndpoint.String()) + + url, err := io.ReadAll(resp.Body) + require.NoErrorf(t, err, "failed to read response body from %s", apiEndpoint.String()) + + return string(url) +} + +// assertGuiIsAvailable checks that the Agent GUI server is up and running. +func getGUIClient(t *assert.CollectT, host *components.RemoteHost, authtoken string) *http.Client { + intentToken := getGUIIntentToken(t, host, authtoken) + + guiURL := url.URL{ + Scheme: "http", + Host: net.JoinHostPort("localhost", strconv.Itoa(guiPort)), + Path: "/auth", + RawQuery: url.Values{ + "intent": {intentToken}, + }.Encode(), + } + + jar, err := cookiejar.New(&cookiejar.Options{}) + require.NoError(t, err) + + guiClient := host.NewHTTPClient() + guiClient.Jar = jar + + // Make the GET request + resp, err := guiClient.Get(guiURL.String()) + require.NoErrorf(t, err, "failed to reach GUI at address %s", guiURL.String()) + require.Equalf(t, http.StatusOK, resp.StatusCode, "unexpected status code for %s", guiURL.String()) + defer resp.Body.Close() + + cookies := guiClient.Jar.Cookies(&guiURL) + assert.NotEmpty(t, cookies) + assert.Equal(t, cookies[0].Name, "accessToken", "GUI server didn't the accessToken cookie") + + // Assert redirection to "/" + assert.Equal(t, fmt.Sprintf("http://%v", net.JoinHostPort("localhost", strconv.Itoa(guiPort)))+"/", resp.Request.URL.String(), "GUI auth endpoint didn't redirect to root endpoint") + + return guiClient +} + +func checkStaticFiles(t *testing.T, client *http.Client, host *components.RemoteHost, installPath string) { + + var links []string + var traverse func(*html.Node) + + guiURL := url.URL{ + Scheme: "http", + Host: net.JoinHostPort("localhost", strconv.Itoa(guiPort)), + Path: "/", + } + + // Make the GET request + resp, err := client.Get(guiURL.String()) + require.NoErrorf(t, err, "failed to reach GUI at address %s", guiURL.String()) + require.Equalf(t, http.StatusOK, resp.StatusCode, "unexpected status code for %s", guiURL.String()) + defer resp.Body.Close() + + doc, err := html.Parse(resp.Body) + require.NoErrorf(t, err, "failed to parse HTML response from GUI at address %s", guiURL.String()) + + traverse = func(n *html.Node) { + if n.Type == html.ElementNode { + switch n.Data { + case "link": + for _, attr := range n.Attr { + if attr.Key == "href" { + links = append(links, attr.Val) + } + } + case "script": + for _, attr := range n.Attr { + if attr.Key == "src" { + links = append(links, attr.Val) + } + } + } + } + for c := n.FirstChild; c != nil; c = c.NextSibling { + traverse(c) + } + } + + traverse(doc) + for _, link := range links { + t.Logf("trying to reach asset %v", link) + fullLink := fmt.Sprintf("http://%v/%v", net.JoinHostPort("localhost", strconv.Itoa(guiPort)), link) + resp, err := client.Get(fullLink) + assert.NoErrorf(t, err, "failed to reach GUI asset at address %s", fullLink) + defer resp.Body.Close() + assert.Equalf(t, http.StatusOK, resp.StatusCode, "unexpected status code for %s", fullLink) + + body, err := io.ReadAll(resp.Body) + // We replace windows line break by linux so the tests pass on every OS + bodyContent := strings.Replace(string(body), "\r\n", "\n", -1) + assert.NoErrorf(t, err, "failed to read content of GUI asset at address %s", fullLink) + + // retrieving the served file in the Agent insallation director, removing the "view/" prefix + expectedBody, err := host.ReadFile(path.Join(installPath, "bin", "agent", "dist", "views", strings.TrimLeft(link, "view/"))) + // We replace windows line break by linux so the tests pass on every OS + expectedBodyContent := strings.Replace(string(expectedBody), "\r\n", "\n", -1) + assert.NoErrorf(t, err, "unable to retrieve file %v in the expected served files", link) + + assert.Equalf(t, expectedBodyContent, bodyContent, "content of the file %v is not the same as expected", link) + } +} + +func checkPingEndpoint(t *testing.T, client *http.Client) { + guiURL := url.URL{ + Scheme: "http", + Host: net.JoinHostPort("localhost", strconv.Itoa(guiPort)), + Path: "/agent/ping", + } + + // Make the GET request + resp, err := client.Post(guiURL.String(), "", nil) + require.NoErrorf(t, err, "failed to reach GUI at address %s", guiURL.String()) + require.Equalf(t, http.StatusOK, resp.StatusCode, "unexpected status code for %s", guiURL.String()) + defer resp.Body.Close() +} diff --git a/test/new-e2e/tests/agent-shared-components/gui/gui_nix_test.go b/test/new-e2e/tests/agent-shared-components/gui/gui_nix_test.go new file mode 100644 index 0000000000000..c0396429d896d --- /dev/null +++ b/test/new-e2e/tests/agent-shared-components/gui/gui_nix_test.go @@ -0,0 +1,69 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package gui + +import ( + "fmt" + "net/http" + "strings" + "testing" + "time" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/DataDog/test-infra-definitions/components/datadog/agentparams" + + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments" + awshost "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments/aws/host" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/utils/e2e/client/agentclientparams" +) + +type guiLinuxSuite struct { + e2e.BaseSuite[environments.Host] +} + +func TestGUILinuxSuite(t *testing.T) { + t.Parallel() + e2e.Run(t, &guiLinuxSuite{}, e2e.WithProvisioner(awshost.ProvisionerNoFakeIntake())) +} + +func (v *guiLinuxSuite) TestGUI() { + authTokenFilePath := "/etc/datadog-agent/auth_token" + + config := fmt.Sprintf(`auth_token_file_path: %v +cmd_port: %d +GUI_port: %d`, authTokenFilePath, agentAPIPort, guiPort) + // start the agent with that configuration + v.UpdateEnv(awshost.Provisioner( + awshost.WithAgentOptions( + agentparams.WithAgentConfig(config), + ), + awshost.WithAgentClientOptions( + agentclientparams.WithAuthTokenPath(authTokenFilePath), + ), + )) + + // get auth token + v.T().Log("Getting the authentication token") + authtokenContent := v.Env().RemoteHost.MustExecute("sudo cat " + authTokenFilePath) + authtoken := strings.TrimSpace(authtokenContent) + + v.T().Log("Testing GUI authentication flow") + + var guiClient *http.Client + // and check that the agents are using the new key + require.EventuallyWithT(v.T(), func(t *assert.CollectT) { + guiClient = getGUIClient(t, v.Env().RemoteHost, authtoken) + }, 30*time.Second, 5*time.Second) + + v.T().Log("Testing GUI static file server") + checkStaticFiles(v.T(), guiClient, v.Env().RemoteHost, "/opt/datadog-agent") + + v.T().Log("Testing GUI ping endpoint") + checkPingEndpoint(v.T(), guiClient) +} diff --git a/test/new-e2e/tests/agent-shared-components/gui/gui_win_test.go b/test/new-e2e/tests/agent-shared-components/gui/gui_win_test.go new file mode 100644 index 0000000000000..b20b3fb5ce01e --- /dev/null +++ b/test/new-e2e/tests/agent-shared-components/gui/gui_win_test.go @@ -0,0 +1,72 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. +package gui + +import ( + "fmt" + "net/http" + "strings" + "testing" + "time" + + "github.com/DataDog/test-infra-definitions/components/datadog/agentparams" + "github.com/DataDog/test-infra-definitions/components/os" + "github.com/DataDog/test-infra-definitions/scenarios/aws/ec2" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments" + awshost "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments/aws/host" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/utils/e2e/client/agentclientparams" +) + +type guiWindowsSuite struct { + e2e.BaseSuite[environments.Host] +} + +func TestGUIWindowsSuite(t *testing.T) { + t.Parallel() + e2e.Run(t, &guiWindowsSuite{}, e2e.WithProvisioner(awshost.ProvisionerNoFakeIntake(awshost.WithEC2InstanceOptions(ec2.WithOS(os.WindowsDefault))))) +} + +func (v *guiWindowsSuite) TestGUI() { + authTokenFilePath := `C:\ProgramData\Datadog\auth_token` + + config := fmt.Sprintf(`auth_token_file_path: %v +cmd_port: %d +GUI_port: %d`, authTokenFilePath, agentAPIPort, guiPort) + // start the agent with that configuration + v.UpdateEnv(awshost.Provisioner( + awshost.WithEC2InstanceOptions(ec2.WithOS(os.WindowsDefault)), + awshost.WithAgentOptions( + agentparams.WithAgentConfig(config), + ), + awshost.WithAgentClientOptions( + agentclientparams.WithAuthTokenPath(authTokenFilePath), + ), + )) + + // get auth token + v.T().Log("Getting the authentication token") + authtokenContent, err := v.Env().RemoteHost.ReadFile(authTokenFilePath) + require.NoError(v.T(), err) + + authtoken := strings.TrimSpace(string(authtokenContent)) + + v.T().Log("Trying to connect to GUI server") + + var guiClient *http.Client + // and check that the agents are using the new key + require.EventuallyWithT(v.T(), func(t *assert.CollectT) { + guiClient = getGUIClient(t, v.Env().RemoteHost, authtoken) + }, 1*time.Minute, 10*time.Second) + + v.T().Log("Testing GUI static file server") + checkStaticFiles(v.T(), guiClient, v.Env().RemoteHost, "c:/Program Files/Datadog/Datadog Agent") + + v.T().Log("Testing GUI ping endpoint") + checkPingEndpoint(v.T(), guiClient) +} From 9d960d3fdceba7a28aa4bbec53177c20c308b10e Mon Sep 17 00:00:00 2001 From: maxime mouial Date: Thu, 28 Nov 2024 20:07:45 +0100 Subject: [PATCH 147/439] Implement AllKeyLowercase to be compatible with Viper (#31480) --- pkg/config/nodetreemodel/config.go | 31 +++++++++++++++++++++++------ pkg/config/nodetreemodel/helpers.go | 11 ++++++++++ 2 files changed, 36 insertions(+), 6 deletions(-) diff --git a/pkg/config/nodetreemodel/config.go b/pkg/config/nodetreemodel/config.go index 57d8ee8244c48..9e293bb9a7592 100644 --- a/pkg/config/nodetreemodel/config.go +++ b/pkg/config/nodetreemodel/config.go @@ -19,7 +19,6 @@ import ( "github.com/DataDog/viper" "go.uber.org/atomic" - "golang.org/x/exp/maps" "golang.org/x/exp/slices" "github.com/DataDog/datadog-agent/pkg/config/model" @@ -100,6 +99,8 @@ type ntmConfig struct { // keys that have been used but are unknown // used to warn (a single time) on use unknownKeys map[string]struct{} + // allSettings contains all settings that we have a value for in the default tree + allSettings []string // extraConfigFilePaths represents additional configuration file paths that will be merged into the main configuration when ReadInConfig() is called. extraConfigFilePaths []string @@ -238,9 +239,9 @@ func (c *ntmConfig) SetKnown(key string) { if c.isReady() { panic("cannot SetKnown() once the config has been marked as ready for use") } + key = strings.ToLower(key) c.knownKeys[key] = struct{}{} - c.setDefault(key, nil) } // IsKnown returns whether a key is known @@ -296,6 +297,24 @@ func (c *ntmConfig) mergeAllLayers() error { return nil } +func computeAllSettings(node InnerNode, path string) []string { + knownKeys := []string{} + for _, name := range node.ChildrenKeys() { + newPath := joinKey(path, name) + + child, _ := node.GetChild(name) + if _, ok := child.(LeafNode); ok { + knownKeys = append(knownKeys, newPath) + } else if inner, ok := child.(InnerNode); ok { + knownKeys = append(knownKeys, computeAllSettings(inner, newPath)...) + } else { + log.Errorf("unknown node type in the tree: %T", child) + } + } + slices.Sort(knownKeys) + return knownKeys +} + // BuildSchema is called when Setup is complete, and the config is ready to be used func (c *ntmConfig) BuildSchema() { c.Lock() @@ -305,6 +324,7 @@ func (c *ntmConfig) BuildSchema() { if err := c.mergeAllLayers(); err != nil { c.warnings = append(c.warnings, err.Error()) } + c.allSettings = computeAllSettings(c.defaults, "") } // Stringify stringifies the config, but only with the test build tag @@ -392,14 +412,12 @@ func (c *ntmConfig) IsSet(key string) bool { return c.IsKnown(key) } -// AllKeysLowercased returns all keys lower-cased +// AllKeysLowercased returns all keys lower-cased from the default tree, but not keys that are merely marked as known func (c *ntmConfig) AllKeysLowercased() []string { c.RLock() defer c.RUnlock() - res := maps.Keys(c.knownKeys) - slices.Sort(res) - return res + return slices.Clone(c.allSettings) } func (c *ntmConfig) leafAtPath(key string) LeafNode { @@ -686,6 +704,7 @@ func NewConfig(name string, envPrefix string, envKeyReplacer *strings.Replacer) ready: atomic.NewBool(false), configEnvVars: map[string]string{}, knownKeys: map[string]struct{}{}, + allSettings: []string{}, unknownKeys: map[string]struct{}{}, defaults: newInnerNode(nil), file: newInnerNode(nil), diff --git a/pkg/config/nodetreemodel/helpers.go b/pkg/config/nodetreemodel/helpers.go index 33f96491b583a..9cbb3beb8e2d1 100644 --- a/pkg/config/nodetreemodel/helpers.go +++ b/pkg/config/nodetreemodel/helpers.go @@ -16,6 +16,17 @@ func splitKey(key string) []string { return strings.Split(strings.ToLower(key), ".") } +func joinKey(parts ...string) string { + nonEmptyParts := make([]string, 0, len(parts)) + for idx := range parts { + if parts[idx] == "" { + continue + } + nonEmptyParts = append(nonEmptyParts, parts[idx]) + } + return strings.Join(nonEmptyParts, ".") +} + func safeMul(a, b uint) uint { c := a * b // detect multiplication overflows From 08b90d29ba48063bf260d06f8f0fdd309ef6f1bc Mon Sep 17 00:00:00 2001 From: Sylvain Baubeau Date: Thu, 28 Nov 2024 20:20:30 +0100 Subject: [PATCH 148/439] [CWS] Use containerutils.ContainerID in SBOM resolver (#31581) --- pkg/security/probe/field_handlers_ebpf.go | 2 +- pkg/security/probe/probe_ebpf.go | 2 +- pkg/security/resolvers/sbom/resolver.go | 27 ++++++++++--------- .../resolvers/sbom/resolver_unsupported.go | 5 ++-- pkg/security/tests/sbom_test.go | 3 ++- 5 files changed, 21 insertions(+), 18 deletions(-) diff --git a/pkg/security/probe/field_handlers_ebpf.go b/pkg/security/probe/field_handlers_ebpf.go index bc68736d3caa6..9437a258b4dff 100644 --- a/pkg/security/probe/field_handlers_ebpf.go +++ b/pkg/security/probe/field_handlers_ebpf.go @@ -442,7 +442,7 @@ func (fh *EBPFFieldHandlers) resolveSBOMFields(ev *model.Event, f *model.FileEve return } - if pkg := fh.resolvers.SBOMResolver.ResolvePackage(string(ev.ContainerContext.ContainerID), f); pkg != nil { + if pkg := fh.resolvers.SBOMResolver.ResolvePackage(ev.ContainerContext.ContainerID, f); pkg != nil { f.PkgName = pkg.Name f.PkgVersion = pkg.Version f.PkgSrcVersion = pkg.SrcVersion diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go index ba861572e8314..679547e0ee055 100644 --- a/pkg/security/probe/probe_ebpf.go +++ b/pkg/security/probe/probe_ebpf.go @@ -2511,7 +2511,7 @@ func (p *EBPFProbe) HandleActions(ctx *eval.Context, rule *rules.Rule) { _ = p.RefreshUserCache(ev.ContainerContext.ContainerID) case action.InternalCallback != nil && rule.ID == bundled.RefreshSBOMRuleID && p.Resolvers.SBOMResolver != nil && len(ev.ContainerContext.ContainerID) > 0: - if err := p.Resolvers.SBOMResolver.RefreshSBOM(string(ev.ContainerContext.ContainerID)); err != nil { + if err := p.Resolvers.SBOMResolver.RefreshSBOM(ev.ContainerContext.ContainerID); err != nil { seclog.Warnf("failed to refresh SBOM for container %s, triggered by %s: %s", ev.ContainerContext.ContainerID, ev.ProcessContext.Comm, err) } diff --git a/pkg/security/resolvers/sbom/resolver.go b/pkg/security/resolvers/sbom/resolver.go index 13c308c67016d..d0a290975d6df 100644 --- a/pkg/security/resolvers/sbom/resolver.go +++ b/pkg/security/resolvers/sbom/resolver.go @@ -33,6 +33,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/config" "github.com/DataDog/datadog-agent/pkg/security/metrics" cgroupModel "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup/model" + "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" "github.com/DataDog/datadog-agent/pkg/security/secl/model" "github.com/DataDog/datadog-agent/pkg/security/seclog" "github.com/DataDog/datadog-agent/pkg/security/utils" @@ -57,7 +58,7 @@ type SBOM struct { Host string Source string Service string - ContainerID string + ContainerID containerutils.ContainerID workloadKey string deleted *atomic.Bool @@ -98,7 +99,7 @@ func (s *SBOM) reset() { } // NewSBOM returns a new empty instance of SBOM -func NewSBOM(host string, source string, id string, cgroup *cgroupModel.CacheEntry, workloadKey string) (*SBOM, error) { +func NewSBOM(host string, source string, id containerutils.ContainerID, cgroup *cgroupModel.CacheEntry, workloadKey string) (*SBOM, error) { sbom := &SBOM{ files: fileQuerier{}, Host: host, @@ -117,7 +118,7 @@ func NewSBOM(host string, source string, id string, cgroup *cgroupModel.CacheEnt type Resolver struct { cfg *config.RuntimeSecurityConfig sbomsLock sync.RWMutex - sboms map[string]*SBOM + sboms map[containerutils.ContainerID]*SBOM sbomsCacheLock sync.RWMutex sbomsCache *simplelru.LRU[string, *SBOM] scannerChan chan *SBOM @@ -165,7 +166,7 @@ func NewSBOMResolver(c *config.RuntimeSecurityConfig, statsdClient statsd.Client resolver := &Resolver{ cfg: c, statsdClient: statsdClient, - sboms: make(map[string]*SBOM), + sboms: make(map[containerutils.ContainerID]*SBOM), sbomsCache: sbomsCache, scannerChan: make(chan *SBOM, 100), sbomScanner: sbomScanner, @@ -258,7 +259,7 @@ func (r *Resolver) Start(ctx context.Context) error { } // RefreshSBOM regenerates a SBOM for a container -func (r *Resolver) RefreshSBOM(containerID string) error { +func (r *Resolver) RefreshSBOM(containerID containerutils.ContainerID) error { if sbom := r.getSBOM(containerID); sbom != nil { seclog.Debugf("Refreshing SBOM for container %s", containerID) sbom.refresh.Call() @@ -318,7 +319,7 @@ func (r *Resolver) doScan(sbom *SBOM) (*trivy.Report, error) { sbom.cgroup.RemovePID(rootCandidatePID) continue } - if string(computedID) != sbom.ContainerID { + if computedID != sbom.ContainerID { sbom.cgroup.RemovePID(rootCandidatePID) continue } @@ -403,7 +404,7 @@ func (r *Resolver) analyzeWorkload(sbom *SBOM) error { return nil } -func (r *Resolver) getSBOM(containerID string) *SBOM { +func (r *Resolver) getSBOM(containerID containerutils.ContainerID) *SBOM { r.sbomsLock.RLock() defer r.sbomsLock.RUnlock() @@ -416,7 +417,7 @@ func (r *Resolver) getSBOM(containerID string) *SBOM { // ResolvePackage returns the Package that owns the provided file. Make sure the internal fields of "file" are properly // resolved. -func (r *Resolver) ResolvePackage(containerID string, file *model.FileEvent) *Package { +func (r *Resolver) ResolvePackage(containerID containerutils.ContainerID, file *model.FileEvent) *Package { sbom := r.getSBOM(containerID) if sbom == nil { return nil @@ -430,7 +431,7 @@ func (r *Resolver) ResolvePackage(containerID string, file *model.FileEvent) *Pa // newWorkloadEntry (thread unsafe) creates a new SBOM entry for the sbom designated by the provided process cache // entry -func (r *Resolver) newWorkloadEntry(id string, cgroup *cgroupModel.CacheEntry, workloadKey string) (*SBOM, error) { +func (r *Resolver) newWorkloadEntry(id containerutils.ContainerID, cgroup *cgroupModel.CacheEntry, workloadKey string) (*SBOM, error) { sbom, err := NewSBOM(r.hostname, r.source, id, cgroup, workloadKey) if err != nil { return nil, err @@ -493,7 +494,7 @@ func (r *Resolver) OnWorkloadSelectorResolvedEvent(cgroup *cgroupModel.CacheEntr return } - id := string(cgroup.ContainerID) + id := cgroup.ContainerID // We don't scan hosts for now if len(id) == 0 { return @@ -511,7 +512,7 @@ func (r *Resolver) OnWorkloadSelectorResolvedEvent(cgroup *cgroupModel.CacheEntr } // GetWorkload returns the sbom of a provided ID -func (r *Resolver) GetWorkload(id string) *SBOM { +func (r *Resolver) GetWorkload(id containerutils.ContainerID) *SBOM { r.sbomsLock.RLock() defer r.sbomsLock.RUnlock() @@ -524,11 +525,11 @@ func (r *Resolver) GetWorkload(id string) *SBOM { // OnCGroupDeletedEvent is used to handle a CGroupDeleted event func (r *Resolver) OnCGroupDeletedEvent(cgroup *cgroupModel.CacheEntry) { - r.Delete(string(cgroup.CGroupID)) + r.Delete(cgroup.ContainerID) } // Delete removes the SBOM of the provided cgroup id -func (r *Resolver) Delete(id string) { +func (r *Resolver) Delete(id containerutils.ContainerID) { sbom := r.GetWorkload(id) if sbom == nil { return diff --git a/pkg/security/resolvers/sbom/resolver_unsupported.go b/pkg/security/resolvers/sbom/resolver_unsupported.go index a9b05d167589a..9e073e03e552c 100644 --- a/pkg/security/resolvers/sbom/resolver_unsupported.go +++ b/pkg/security/resolvers/sbom/resolver_unsupported.go @@ -15,6 +15,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/config" cgroupModel "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup/model" + "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" "github.com/DataDog/datadog-agent/pkg/security/secl/model" ) @@ -36,7 +37,7 @@ func (r *Resolver) OnWorkloadSelectorResolvedEvent(_ *cgroupModel.CacheEntry) { } // ResolvePackage returns the Package that owns the provided file -func (r *Resolver) ResolvePackage(_ string, _ *model.FileEvent) *Package { +func (r *Resolver) ResolvePackage(_ containerutils.ContainerID, _ *model.FileEvent) *Package { return nil } @@ -51,6 +52,6 @@ func (r *Resolver) Start(_ context.Context) error { } // RefreshSBOM regenerates a SBOM for a container -func (r *Resolver) RefreshSBOM(_ string) error { +func (r *Resolver) RefreshSBOM(_ containerutils.ContainerID) error { return nil } diff --git a/pkg/security/tests/sbom_test.go b/pkg/security/tests/sbom_test.go index fd014c5777495..3a0588aba3861 100644 --- a/pkg/security/tests/sbom_test.go +++ b/pkg/security/tests/sbom_test.go @@ -15,6 +15,7 @@ import ( "testing" sprobe "github.com/DataDog/datadog-agent/pkg/security/probe" + "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" "github.com/DataDog/datadog-agent/pkg/security/secl/model" "github.com/DataDog/datadog-agent/pkg/security/secl/rules" "github.com/DataDog/datadog-agent/pkg/util/flavor" @@ -69,7 +70,7 @@ func TestSBOM(t *testing.T) { dockerWrapper.Run(t, "package-rule", func(t *testing.T, _ wrapperType, cmdFunc func(bin string, args, env []string) *exec.Cmd) { test.WaitSignal(t, func() error { retry.Do(func() error { - sbom := p.Resolvers.SBOMResolver.GetWorkload(dockerWrapper.containerID) + sbom := p.Resolvers.SBOMResolver.GetWorkload(containerutils.ContainerID(dockerWrapper.containerID)) if sbom == nil { return fmt.Errorf("failed to find SBOM for '%s'", dockerWrapper.containerID) } From cdc6007f16ba7f6f68b7b24bb50fa33cc4592f09 Mon Sep 17 00:00:00 2001 From: Vincent Whitchurch Date: Thu, 28 Nov 2024 21:09:16 +0100 Subject: [PATCH 149/439] discovery: Report origin of generated service name (#31226) --- .../corechecks/servicediscovery/events.go | 78 +-- .../servicediscovery/events_test.go | 250 ++++----- .../servicediscovery/impl_linux_test.go | 497 +++++++++--------- .../servicediscovery/model/model.go | 1 + .../servicediscovery/module/impl_linux.go | 44 +- .../module/impl_linux_test.go | 5 + .../corechecks/servicediscovery/usm/java.go | 32 +- .../corechecks/servicediscovery/usm/jee.go | 17 +- .../servicediscovery/usm/jee_test.go | 3 +- .../corechecks/servicediscovery/usm/nodejs.go | 4 +- .../corechecks/servicediscovery/usm/php.go | 2 +- .../corechecks/servicediscovery/usm/python.go | 16 +- .../corechecks/servicediscovery/usm/ruby.go | 2 +- .../servicediscovery/usm/service.go | 44 +- .../servicediscovery/usm/service_test.go | 358 +++++++------ 15 files changed, 749 insertions(+), 604 deletions(-) diff --git a/pkg/collector/corechecks/servicediscovery/events.go b/pkg/collector/corechecks/servicediscovery/events.go index 5cba3f89243ac..fba57253ad552 100644 --- a/pkg/collector/corechecks/servicediscovery/events.go +++ b/pkg/collector/corechecks/servicediscovery/events.go @@ -26,25 +26,26 @@ const ( ) type eventPayload struct { - NamingSchemaVersion string `json:"naming_schema_version"` - ServiceName string `json:"service_name"` - GeneratedServiceName string `json:"generated_service_name"` - DDService string `json:"dd_service,omitempty"` - HostName string `json:"host_name"` - Env string `json:"env"` - ServiceLanguage string `json:"service_language"` - ServiceType string `json:"service_type"` - StartTime int64 `json:"start_time"` - StartTimeMilli int64 `json:"start_time_milli"` - LastSeen int64 `json:"last_seen"` - APMInstrumentation string `json:"apm_instrumentation"` - ServiceNameSource string `json:"service_name_source,omitempty"` - Ports []uint16 `json:"ports"` - PID int `json:"pid"` - CommandLine []string `json:"command_line"` - RSSMemory uint64 `json:"rss_memory"` - CPUCores float64 `json:"cpu_cores"` - ContainerID string `json:"container_id"` + NamingSchemaVersion string `json:"naming_schema_version"` + ServiceName string `json:"service_name"` + GeneratedServiceName string `json:"generated_service_name"` + GeneratedServiceNameSource string `json:"generated_service_name_source,omitempty"` + DDService string `json:"dd_service,omitempty"` + HostName string `json:"host_name"` + Env string `json:"env"` + ServiceLanguage string `json:"service_language"` + ServiceType string `json:"service_type"` + StartTime int64 `json:"start_time"` + StartTimeMilli int64 `json:"start_time_milli"` + LastSeen int64 `json:"last_seen"` + APMInstrumentation string `json:"apm_instrumentation"` + ServiceNameSource string `json:"service_name_source,omitempty"` + Ports []uint16 `json:"ports"` + PID int `json:"pid"` + CommandLine []string `json:"command_line"` + RSSMemory uint64 `json:"rss_memory"` + CPUCores float64 `json:"cpu_cores"` + ContainerID string `json:"container_id"` } type event struct { @@ -74,25 +75,26 @@ func (ts *telemetrySender) newEvent(t eventType, svc serviceInfo) *event { RequestType: t, APIVersion: "v2", Payload: &eventPayload{ - NamingSchemaVersion: "1", - ServiceName: svc.meta.Name, - GeneratedServiceName: svc.service.GeneratedName, - DDService: svc.service.DDService, - HostName: host, - Env: env, - ServiceLanguage: svc.meta.Language, - ServiceType: svc.meta.Type, - StartTime: int64(svc.service.StartTimeMilli / 1000), - StartTimeMilli: int64(svc.service.StartTimeMilli), - LastSeen: svc.LastHeartbeat.Unix(), - APMInstrumentation: svc.meta.APMInstrumentation, - ServiceNameSource: nameSource, - Ports: svc.service.Ports, - PID: svc.service.PID, - CommandLine: svc.service.CommandLine, - RSSMemory: svc.service.RSS, - CPUCores: svc.service.CPUCores, - ContainerID: svc.service.ContainerID, + NamingSchemaVersion: "1", + ServiceName: svc.meta.Name, + GeneratedServiceName: svc.service.GeneratedName, + GeneratedServiceNameSource: svc.service.GeneratedNameSource, + DDService: svc.service.DDService, + HostName: host, + Env: env, + ServiceLanguage: svc.meta.Language, + ServiceType: svc.meta.Type, + StartTime: int64(svc.service.StartTimeMilli / 1000), + StartTimeMilli: int64(svc.service.StartTimeMilli), + LastSeen: svc.LastHeartbeat.Unix(), + APMInstrumentation: svc.meta.APMInstrumentation, + ServiceNameSource: nameSource, + Ports: svc.service.Ports, + PID: svc.service.PID, + CommandLine: svc.service.CommandLine, + RSSMemory: svc.service.RSS, + CPUCores: svc.service.CPUCores, + ContainerID: svc.service.ContainerID, }, } } diff --git a/pkg/collector/corechecks/servicediscovery/events_test.go b/pkg/collector/corechecks/servicediscovery/events_test.go index 6974ae4c138a8..f8b7fc92bcfb3 100644 --- a/pkg/collector/corechecks/servicediscovery/events_test.go +++ b/pkg/collector/corechecks/servicediscovery/events_test.go @@ -56,16 +56,17 @@ func Test_telemetrySender(t *testing.T) { svc := serviceInfo{ service: model.Service{ - PID: 99, - CommandLine: []string{"test-service", "--args"}, - Ports: []uint16{80, 8080}, - StartTimeMilli: uint64(now.Add(-20 * time.Minute).UnixMilli()), - RSS: 500 * 1024 * 1024, - GeneratedName: "generated-name", - DDService: "dd-service", - DDServiceInjected: true, - CPUCores: 1.5, - ContainerID: "abcd", + PID: 99, + CommandLine: []string{"test-service", "--args"}, + Ports: []uint16{80, 8080}, + StartTimeMilli: uint64(now.Add(-20 * time.Minute).UnixMilli()), + RSS: 500 * 1024 * 1024, + GeneratedName: "generated-name", + GeneratedNameSource: "generated-name-source", + DDService: "dd-service", + DDServiceInjected: true, + CPUCores: 1.5, + ContainerID: "abcd", }, meta: ServiceMetadata{ Name: "test-service", @@ -85,75 +86,78 @@ func Test_telemetrySender(t *testing.T) { RequestType: "start-service", APIVersion: "v2", Payload: &eventPayload{ - NamingSchemaVersion: "1", - ServiceName: "test-service", - GeneratedServiceName: "generated-name", - DDService: "dd-service", - ServiceNameSource: "injected", - HostName: "test-host", - Env: "", - ServiceLanguage: "jvm", - ServiceType: "web_service", - StartTime: 1715557200, - StartTimeMilli: 1715557200 * 1000, - LastSeen: 1715558400, - APMInstrumentation: "injected", - Ports: []uint16{80, 8080}, - PID: 99, - CommandLine: []string{"test-service", "--args"}, - RSSMemory: 500 * 1024 * 1024, - CPUCores: 1.5, - ContainerID: "abcd", + NamingSchemaVersion: "1", + ServiceName: "test-service", + GeneratedServiceName: "generated-name", + GeneratedServiceNameSource: "generated-name-source", + DDService: "dd-service", + ServiceNameSource: "injected", + HostName: "test-host", + Env: "", + ServiceLanguage: "jvm", + ServiceType: "web_service", + StartTime: 1715557200, + StartTimeMilli: 1715557200 * 1000, + LastSeen: 1715558400, + APMInstrumentation: "injected", + Ports: []uint16{80, 8080}, + PID: 99, + CommandLine: []string{"test-service", "--args"}, + RSSMemory: 500 * 1024 * 1024, + CPUCores: 1.5, + ContainerID: "abcd", }, }, { RequestType: "heartbeat-service", APIVersion: "v2", Payload: &eventPayload{ - NamingSchemaVersion: "1", - ServiceName: "test-service", - GeneratedServiceName: "generated-name", - DDService: "dd-service", - ServiceNameSource: "injected", - HostName: "test-host", - Env: "", - ServiceLanguage: "jvm", - ServiceType: "web_service", - StartTime: 1715557200, - StartTimeMilli: 1715557200 * 1000, - LastSeen: 1715558400, - APMInstrumentation: "injected", - Ports: []uint16{80, 8080}, - PID: 99, - CommandLine: []string{"test-service", "--args"}, - RSSMemory: 500 * 1024 * 1024, - CPUCores: 1.5, - ContainerID: "abcd", + NamingSchemaVersion: "1", + ServiceName: "test-service", + GeneratedServiceName: "generated-name", + GeneratedServiceNameSource: "generated-name-source", + DDService: "dd-service", + ServiceNameSource: "injected", + HostName: "test-host", + Env: "", + ServiceLanguage: "jvm", + ServiceType: "web_service", + StartTime: 1715557200, + StartTimeMilli: 1715557200 * 1000, + LastSeen: 1715558400, + APMInstrumentation: "injected", + Ports: []uint16{80, 8080}, + PID: 99, + CommandLine: []string{"test-service", "--args"}, + RSSMemory: 500 * 1024 * 1024, + CPUCores: 1.5, + ContainerID: "abcd", }, }, { RequestType: "end-service", APIVersion: "v2", Payload: &eventPayload{ - NamingSchemaVersion: "1", - ServiceName: "test-service", - GeneratedServiceName: "generated-name", - DDService: "dd-service", - ServiceNameSource: "injected", - HostName: "test-host", - Env: "", - ServiceLanguage: "jvm", - ServiceType: "web_service", - StartTime: 1715557200, - StartTimeMilli: 1715557200 * 1000, - LastSeen: 1715558400, - APMInstrumentation: "injected", - Ports: []uint16{80, 8080}, - PID: 99, - CommandLine: []string{"test-service", "--args"}, - RSSMemory: 500 * 1024 * 1024, - CPUCores: 1.5, - ContainerID: "abcd", + NamingSchemaVersion: "1", + ServiceName: "test-service", + GeneratedServiceName: "generated-name", + GeneratedServiceNameSource: "generated-name-source", + DDService: "dd-service", + ServiceNameSource: "injected", + HostName: "test-host", + Env: "", + ServiceLanguage: "jvm", + ServiceType: "web_service", + StartTime: 1715557200, + StartTimeMilli: 1715557200 * 1000, + LastSeen: 1715558400, + APMInstrumentation: "injected", + Ports: []uint16{80, 8080}, + PID: 99, + CommandLine: []string{"test-service", "--args"}, + RSSMemory: 500 * 1024 * 1024, + CPUCores: 1.5, + ContainerID: "abcd", }, }, } @@ -184,12 +188,13 @@ func Test_telemetrySender_name_provided(t *testing.T) { svc := serviceInfo{ service: model.Service{ - PID: 55, - CommandLine: []string{"foo", "--option"}, - StartTimeMilli: uint64(now.Add(-20 * time.Minute).UnixMilli()), - GeneratedName: "generated-name2", - DDService: "dd-service-provided", - ContainerID: "abcd", + PID: 55, + CommandLine: []string{"foo", "--option"}, + StartTimeMilli: uint64(now.Add(-20 * time.Minute).UnixMilli()), + GeneratedName: "generated-name2", + GeneratedNameSource: "generated-name-source2", + DDService: "dd-service-provided", + ContainerID: "abcd", }, meta: ServiceMetadata{ Name: "test-service", @@ -209,66 +214,69 @@ func Test_telemetrySender_name_provided(t *testing.T) { RequestType: "start-service", APIVersion: "v2", Payload: &eventPayload{ - NamingSchemaVersion: "1", - ServiceName: "test-service", - GeneratedServiceName: "generated-name2", - DDService: "dd-service-provided", - ServiceNameSource: "provided", - HostName: "test-host", - Env: "", - ServiceLanguage: "jvm", - ServiceType: "web_service", - StartTime: 1715557200, - StartTimeMilli: 1715557200 * 1000, - LastSeen: 1715558400, - APMInstrumentation: "injected", - PID: 55, - CommandLine: []string{"foo", "--option"}, - ContainerID: "abcd", + NamingSchemaVersion: "1", + ServiceName: "test-service", + GeneratedServiceName: "generated-name2", + GeneratedServiceNameSource: "generated-name-source2", + DDService: "dd-service-provided", + ServiceNameSource: "provided", + HostName: "test-host", + Env: "", + ServiceLanguage: "jvm", + ServiceType: "web_service", + StartTime: 1715557200, + StartTimeMilli: 1715557200 * 1000, + LastSeen: 1715558400, + APMInstrumentation: "injected", + PID: 55, + CommandLine: []string{"foo", "--option"}, + ContainerID: "abcd", }, }, { RequestType: "heartbeat-service", APIVersion: "v2", Payload: &eventPayload{ - NamingSchemaVersion: "1", - ServiceName: "test-service", - GeneratedServiceName: "generated-name2", - DDService: "dd-service-provided", - ServiceNameSource: "provided", - HostName: "test-host", - Env: "", - ServiceLanguage: "jvm", - ServiceType: "web_service", - StartTime: 1715557200, - StartTimeMilli: 1715557200 * 1000, - LastSeen: 1715558400, - APMInstrumentation: "injected", - PID: 55, - CommandLine: []string{"foo", "--option"}, - ContainerID: "abcd", + NamingSchemaVersion: "1", + ServiceName: "test-service", + GeneratedServiceName: "generated-name2", + GeneratedServiceNameSource: "generated-name-source2", + DDService: "dd-service-provided", + ServiceNameSource: "provided", + HostName: "test-host", + Env: "", + ServiceLanguage: "jvm", + ServiceType: "web_service", + StartTime: 1715557200, + StartTimeMilli: 1715557200 * 1000, + LastSeen: 1715558400, + APMInstrumentation: "injected", + PID: 55, + CommandLine: []string{"foo", "--option"}, + ContainerID: "abcd", }, }, { RequestType: "end-service", APIVersion: "v2", Payload: &eventPayload{ - NamingSchemaVersion: "1", - ServiceName: "test-service", - GeneratedServiceName: "generated-name2", - DDService: "dd-service-provided", - ServiceNameSource: "provided", - HostName: "test-host", - Env: "", - ServiceLanguage: "jvm", - ServiceType: "web_service", - StartTime: 1715557200, - StartTimeMilli: 1715557200 * 1000, - LastSeen: 1715558400, - APMInstrumentation: "injected", - PID: 55, - CommandLine: []string{"foo", "--option"}, - ContainerID: "abcd", + NamingSchemaVersion: "1", + ServiceName: "test-service", + GeneratedServiceName: "generated-name2", + GeneratedServiceNameSource: "generated-name-source2", + DDService: "dd-service-provided", + ServiceNameSource: "provided", + HostName: "test-host", + Env: "", + ServiceLanguage: "jvm", + ServiceType: "web_service", + StartTime: 1715557200, + StartTimeMilli: 1715557200 * 1000, + LastSeen: 1715558400, + APMInstrumentation: "injected", + PID: 55, + CommandLine: []string{"foo", "--option"}, + ContainerID: "abcd", }, }, } diff --git a/pkg/collector/corechecks/servicediscovery/impl_linux_test.go b/pkg/collector/corechecks/servicediscovery/impl_linux_test.go index b2ae5d1d4f962..f3f7d4baaeb66 100644 --- a/pkg/collector/corechecks/servicediscovery/impl_linux_test.go +++ b/pkg/collector/corechecks/servicediscovery/impl_linux_test.go @@ -72,44 +72,47 @@ var ( var ( portTCP8080 = model.Service{ - PID: procTestService1.pid, - Name: "test-service-1", - GeneratedName: "test-service-1-generated", - DDService: "test-service-1", - DDServiceInjected: true, - Ports: []uint16{8080}, - APMInstrumentation: string(apm.None), - RSS: 100 * 1024 * 1024, - CPUCores: 1.5, - CommandLine: []string{"test-service-1"}, - StartTimeMilli: procLaunchedMilli, - ContainerID: dummyContainerID, + PID: procTestService1.pid, + Name: "test-service-1", + GeneratedName: "test-service-1-generated", + GeneratedNameSource: "test-service-1-generated-source", + DDService: "test-service-1", + DDServiceInjected: true, + Ports: []uint16{8080}, + APMInstrumentation: string(apm.None), + RSS: 100 * 1024 * 1024, + CPUCores: 1.5, + CommandLine: []string{"test-service-1"}, + StartTimeMilli: procLaunchedMilli, + ContainerID: dummyContainerID, } portTCP8080UpdatedRSS = model.Service{ - PID: procTestService1.pid, - Name: "test-service-1", - GeneratedName: "test-service-1-generated", - DDService: "test-service-1", - DDServiceInjected: true, - Ports: []uint16{8080}, - APMInstrumentation: string(apm.None), - RSS: 200 * 1024 * 1024, - CPUCores: 1.5, - CommandLine: []string{"test-service-1"}, - StartTimeMilli: procLaunchedMilli, - ContainerID: dummyContainerID, + PID: procTestService1.pid, + Name: "test-service-1", + GeneratedName: "test-service-1-generated", + GeneratedNameSource: "test-service-1-generated-source", + DDService: "test-service-1", + DDServiceInjected: true, + Ports: []uint16{8080}, + APMInstrumentation: string(apm.None), + RSS: 200 * 1024 * 1024, + CPUCores: 1.5, + CommandLine: []string{"test-service-1"}, + StartTimeMilli: procLaunchedMilli, + ContainerID: dummyContainerID, } portTCP8080DifferentPID = model.Service{ - PID: procTestService1DifferentPID.pid, - Name: "test-service-1", - GeneratedName: "test-service-1-generated", - DDService: "test-service-1", - DDServiceInjected: true, - Ports: []uint16{8080}, - APMInstrumentation: string(apm.Injected), - CommandLine: []string{"test-service-1"}, - StartTimeMilli: procLaunchedMilli, - ContainerID: dummyContainerID, + PID: procTestService1DifferentPID.pid, + Name: "test-service-1", + GeneratedName: "test-service-1-generated", + GeneratedNameSource: "test-service-1-generated-source", + DDService: "test-service-1", + DDServiceInjected: true, + Ports: []uint16{8080}, + APMInstrumentation: string(apm.Injected), + CommandLine: []string{"test-service-1"}, + StartTimeMilli: procLaunchedMilli, + ContainerID: dummyContainerID, } portTCP8081 = model.Service{ PID: procIgnoreService1.pid, @@ -120,23 +123,25 @@ var ( ContainerID: dummyContainerID, } portTCP5000 = model.Service{ - PID: procPythonService.pid, - Name: "python-service", - GeneratedName: "python-service", - Language: "python", - Ports: []uint16{5000}, - CommandLine: pythonCommandLine, - StartTimeMilli: procLaunchedMilli, - ContainerID: dummyContainerID, + PID: procPythonService.pid, + Name: "python-service", + GeneratedName: "python-service", + GeneratedNameSource: "python-service-source", + Language: "python", + Ports: []uint16{5000}, + CommandLine: pythonCommandLine, + StartTimeMilli: procLaunchedMilli, + ContainerID: dummyContainerID, } portTCP5432 = model.Service{ - PID: procTestService1Repeat.pid, - Name: "test-service-1", - GeneratedName: "test-service-1", - Ports: []uint16{5432}, - CommandLine: []string{"test-service-1"}, - StartTimeMilli: procLaunchedMilli, - ContainerID: dummyContainerID, + PID: procTestService1Repeat.pid, + Name: "test-service-1", + GeneratedName: "test-service-1", + GeneratedNameSource: "test-service-1-generated-source", + Ports: []uint16{5432}, + CommandLine: []string{"test-service-1"}, + StartTimeMilli: procLaunchedMilli, + ContainerID: dummyContainerID, } ) @@ -227,112 +232,117 @@ func Test_linuxImpl(t *testing.T) { RequestType: "start-service", APIVersion: "v2", Payload: &eventPayload{ - NamingSchemaVersion: "1", - ServiceName: "test-service-1", - GeneratedServiceName: "test-service-1-generated", - DDService: "test-service-1", - ServiceNameSource: "injected", - ServiceType: "web_service", - HostName: host, - Env: "", - StartTime: calcTime(0).Unix(), - StartTimeMilli: calcTime(0).UnixMilli(), - LastSeen: calcTime(1 * time.Minute).Unix(), - Ports: []uint16{8080}, - PID: 99, - CommandLine: []string{"test-service-1"}, - APMInstrumentation: "none", - RSSMemory: 100 * 1024 * 1024, - CPUCores: 1.5, - ContainerID: dummyContainerID, + NamingSchemaVersion: "1", + ServiceName: "test-service-1", + GeneratedServiceName: "test-service-1-generated", + GeneratedServiceNameSource: "test-service-1-generated-source", + DDService: "test-service-1", + ServiceNameSource: "injected", + ServiceType: "web_service", + HostName: host, + Env: "", + StartTime: calcTime(0).Unix(), + StartTimeMilli: calcTime(0).UnixMilli(), + LastSeen: calcTime(1 * time.Minute).Unix(), + Ports: []uint16{8080}, + PID: 99, + CommandLine: []string{"test-service-1"}, + APMInstrumentation: "none", + RSSMemory: 100 * 1024 * 1024, + CPUCores: 1.5, + ContainerID: dummyContainerID, }, }, { RequestType: "heartbeat-service", APIVersion: "v2", Payload: &eventPayload{ - NamingSchemaVersion: "1", - ServiceName: "test-service-1", - GeneratedServiceName: "test-service-1-generated", - DDService: "test-service-1", - ServiceNameSource: "injected", - ServiceType: "web_service", - HostName: host, - Env: "", - StartTime: calcTime(0).Unix(), - StartTimeMilli: calcTime(0).UnixMilli(), - LastSeen: calcTime(20 * time.Minute).Unix(), - Ports: []uint16{8080}, - PID: 99, - CommandLine: []string{"test-service-1"}, - APMInstrumentation: "none", - RSSMemory: 200 * 1024 * 1024, - CPUCores: 1.5, - ContainerID: dummyContainerID, + NamingSchemaVersion: "1", + ServiceName: "test-service-1", + GeneratedServiceName: "test-service-1-generated", + GeneratedServiceNameSource: "test-service-1-generated-source", + DDService: "test-service-1", + ServiceNameSource: "injected", + ServiceType: "web_service", + HostName: host, + Env: "", + StartTime: calcTime(0).Unix(), + StartTimeMilli: calcTime(0).UnixMilli(), + LastSeen: calcTime(20 * time.Minute).Unix(), + Ports: []uint16{8080}, + PID: 99, + CommandLine: []string{"test-service-1"}, + APMInstrumentation: "none", + RSSMemory: 200 * 1024 * 1024, + CPUCores: 1.5, + ContainerID: dummyContainerID, }, }, { RequestType: "end-service", APIVersion: "v2", Payload: &eventPayload{ - NamingSchemaVersion: "1", - ServiceName: "test-service-1", - GeneratedServiceName: "test-service-1-generated", - DDService: "test-service-1", - ServiceNameSource: "injected", - ServiceType: "web_service", - HostName: host, - Env: "", - StartTime: calcTime(0).Unix(), - StartTimeMilli: calcTime(0).UnixMilli(), - LastSeen: calcTime(20 * time.Minute).Unix(), - Ports: []uint16{8080}, - PID: 99, - CommandLine: []string{"test-service-1"}, - APMInstrumentation: "none", - RSSMemory: 200 * 1024 * 1024, - CPUCores: 1.5, - ContainerID: dummyContainerID, + NamingSchemaVersion: "1", + ServiceName: "test-service-1", + GeneratedServiceName: "test-service-1-generated", + GeneratedServiceNameSource: "test-service-1-generated-source", + DDService: "test-service-1", + ServiceNameSource: "injected", + ServiceType: "web_service", + HostName: host, + Env: "", + StartTime: calcTime(0).Unix(), + StartTimeMilli: calcTime(0).UnixMilli(), + LastSeen: calcTime(20 * time.Minute).Unix(), + Ports: []uint16{8080}, + PID: 99, + CommandLine: []string{"test-service-1"}, + APMInstrumentation: "none", + RSSMemory: 200 * 1024 * 1024, + CPUCores: 1.5, + ContainerID: dummyContainerID, }, }, { RequestType: "start-service", APIVersion: "v2", Payload: &eventPayload{ - NamingSchemaVersion: "1", - ServiceName: "python-service", - GeneratedServiceName: "python-service", - ServiceType: "web_service", - HostName: host, - Env: "", - StartTime: calcTime(0).Unix(), - StartTimeMilli: calcTime(0).UnixMilli(), - LastSeen: calcTime(1 * time.Minute).Unix(), - Ports: []uint16{5000}, - PID: 500, - ServiceLanguage: "python", - CommandLine: pythonCommandLine, - ContainerID: dummyContainerID, + NamingSchemaVersion: "1", + ServiceName: "python-service", + GeneratedServiceName: "python-service", + GeneratedServiceNameSource: "python-service-source", + ServiceType: "web_service", + HostName: host, + Env: "", + StartTime: calcTime(0).Unix(), + StartTimeMilli: calcTime(0).UnixMilli(), + LastSeen: calcTime(1 * time.Minute).Unix(), + Ports: []uint16{5000}, + PID: 500, + ServiceLanguage: "python", + CommandLine: pythonCommandLine, + ContainerID: dummyContainerID, }, }, { RequestType: "heartbeat-service", APIVersion: "v2", Payload: &eventPayload{ - NamingSchemaVersion: "1", - ServiceName: "python-service", - GeneratedServiceName: "python-service", - ServiceType: "web_service", - HostName: host, - Env: "", - StartTime: calcTime(0).Unix(), - StartTimeMilli: calcTime(0).UnixMilli(), - LastSeen: calcTime(20 * time.Minute).Unix(), - Ports: []uint16{5000}, - PID: 500, - ServiceLanguage: "python", - CommandLine: pythonCommandLine, - ContainerID: dummyContainerID, + NamingSchemaVersion: "1", + ServiceName: "python-service", + GeneratedServiceName: "python-service", + GeneratedServiceNameSource: "python-service-source", + ServiceType: "web_service", + HostName: host, + Env: "", + StartTime: calcTime(0).Unix(), + StartTimeMilli: calcTime(0).UnixMilli(), + LastSeen: calcTime(20 * time.Minute).Unix(), + Ports: []uint16{5000}, + PID: 500, + ServiceLanguage: "python", + CommandLine: pythonCommandLine, + ContainerID: dummyContainerID, }, }, }, @@ -376,105 +386,110 @@ func Test_linuxImpl(t *testing.T) { RequestType: "start-service", APIVersion: "v2", Payload: &eventPayload{ - NamingSchemaVersion: "1", - ServiceName: "test-service-1", - GeneratedServiceName: "test-service-1", - ServiceType: "db", - HostName: host, - Env: "", - StartTime: calcTime(0).Unix(), - StartTimeMilli: calcTime(0).UnixMilli(), - LastSeen: calcTime(1 * time.Minute).Unix(), - Ports: []uint16{5432}, - PID: 101, - CommandLine: []string{"test-service-1"}, - ContainerID: dummyContainerID, + NamingSchemaVersion: "1", + ServiceName: "test-service-1", + GeneratedServiceName: "test-service-1", + GeneratedServiceNameSource: "test-service-1-generated-source", + ServiceType: "db", + HostName: host, + Env: "", + StartTime: calcTime(0).Unix(), + StartTimeMilli: calcTime(0).UnixMilli(), + LastSeen: calcTime(1 * time.Minute).Unix(), + Ports: []uint16{5432}, + PID: 101, + CommandLine: []string{"test-service-1"}, + ContainerID: dummyContainerID, }, }, { RequestType: "start-service", APIVersion: "v2", Payload: &eventPayload{ - NamingSchemaVersion: "1", - ServiceName: "test-service-1", - GeneratedServiceName: "test-service-1-generated", - DDService: "test-service-1", - ServiceNameSource: "injected", - ServiceType: "web_service", - HostName: host, - Env: "", - StartTime: calcTime(0).Unix(), - StartTimeMilli: calcTime(0).UnixMilli(), - LastSeen: calcTime(1 * time.Minute).Unix(), - Ports: []uint16{8080}, - PID: 99, - CommandLine: []string{"test-service-1"}, - APMInstrumentation: "none", - RSSMemory: 100 * 1024 * 1024, - CPUCores: 1.5, - ContainerID: dummyContainerID, + NamingSchemaVersion: "1", + ServiceName: "test-service-1", + GeneratedServiceName: "test-service-1-generated", + GeneratedServiceNameSource: "test-service-1-generated-source", + DDService: "test-service-1", + ServiceNameSource: "injected", + ServiceType: "web_service", + HostName: host, + Env: "", + StartTime: calcTime(0).Unix(), + StartTimeMilli: calcTime(0).UnixMilli(), + LastSeen: calcTime(1 * time.Minute).Unix(), + Ports: []uint16{8080}, + PID: 99, + CommandLine: []string{"test-service-1"}, + APMInstrumentation: "none", + RSSMemory: 100 * 1024 * 1024, + CPUCores: 1.5, + ContainerID: dummyContainerID, }, }, { RequestType: "heartbeat-service", APIVersion: "v2", Payload: &eventPayload{ - NamingSchemaVersion: "1", - ServiceName: "test-service-1", - GeneratedServiceName: "test-service-1", - ServiceType: "db", - HostName: host, - Env: "", - StartTime: calcTime(0).Unix(), - StartTimeMilli: calcTime(0).UnixMilli(), - LastSeen: calcTime(20 * time.Minute).Unix(), - Ports: []uint16{5432}, - PID: 101, - CommandLine: []string{"test-service-1"}, - ContainerID: dummyContainerID, + NamingSchemaVersion: "1", + ServiceName: "test-service-1", + GeneratedServiceName: "test-service-1", + GeneratedServiceNameSource: "test-service-1-generated-source", + ServiceType: "db", + HostName: host, + Env: "", + StartTime: calcTime(0).Unix(), + StartTimeMilli: calcTime(0).UnixMilli(), + LastSeen: calcTime(20 * time.Minute).Unix(), + Ports: []uint16{5432}, + PID: 101, + CommandLine: []string{"test-service-1"}, + ContainerID: dummyContainerID, }, }, { RequestType: "end-service", APIVersion: "v2", Payload: &eventPayload{ - NamingSchemaVersion: "1", - ServiceName: "test-service-1", - GeneratedServiceName: "test-service-1", - ServiceType: "db", - HostName: host, - Env: "", - StartTime: calcTime(0).Unix(), - StartTimeMilli: calcTime(0).UnixMilli(), - LastSeen: calcTime(20 * time.Minute).Unix(), - Ports: []uint16{5432}, - PID: 101, - CommandLine: []string{"test-service-1"}, - ContainerID: dummyContainerID, + NamingSchemaVersion: "1", + ServiceName: "test-service-1", + GeneratedServiceName: "test-service-1", + GeneratedServiceNameSource: "test-service-1-generated-source", + ServiceType: "db", + HostName: host, + Env: "", + StartTime: calcTime(0).Unix(), + StartTimeMilli: calcTime(0).UnixMilli(), + LastSeen: calcTime(20 * time.Minute).Unix(), + Ports: []uint16{5432}, + PID: 101, + CommandLine: []string{"test-service-1"}, + ContainerID: dummyContainerID, }, }, { RequestType: "heartbeat-service", APIVersion: "v2", Payload: &eventPayload{ - NamingSchemaVersion: "1", - ServiceName: "test-service-1", - GeneratedServiceName: "test-service-1-generated", - DDService: "test-service-1", - ServiceNameSource: "injected", - ServiceType: "web_service", - HostName: host, - Env: "", - StartTime: calcTime(0).Unix(), - StartTimeMilli: calcTime(0).UnixMilli(), - LastSeen: calcTime(20 * time.Minute).Unix(), - Ports: []uint16{8080}, - PID: 99, - CommandLine: []string{"test-service-1"}, - APMInstrumentation: "none", - RSSMemory: 100 * 1024 * 1024, - CPUCores: 1.5, - ContainerID: dummyContainerID, + NamingSchemaVersion: "1", + ServiceName: "test-service-1", + GeneratedServiceName: "test-service-1-generated", + GeneratedServiceNameSource: "test-service-1-generated-source", + DDService: "test-service-1", + ServiceNameSource: "injected", + ServiceType: "web_service", + HostName: host, + Env: "", + StartTime: calcTime(0).Unix(), + StartTimeMilli: calcTime(0).UnixMilli(), + LastSeen: calcTime(20 * time.Minute).Unix(), + Ports: []uint16{8080}, + PID: 99, + CommandLine: []string{"test-service-1"}, + APMInstrumentation: "none", + RSSMemory: 100 * 1024 * 1024, + CPUCores: 1.5, + ContainerID: dummyContainerID, }, }, }, @@ -516,46 +531,48 @@ func Test_linuxImpl(t *testing.T) { RequestType: "start-service", APIVersion: "v2", Payload: &eventPayload{ - NamingSchemaVersion: "1", - ServiceName: "test-service-1", - GeneratedServiceName: "test-service-1-generated", - DDService: "test-service-1", - ServiceNameSource: "injected", - ServiceType: "web_service", - HostName: host, - Env: "", - StartTime: calcTime(0).Unix(), - StartTimeMilli: calcTime(0).UnixMilli(), - LastSeen: calcTime(1 * time.Minute).Unix(), - Ports: []uint16{8080}, - PID: 99, - CommandLine: []string{"test-service-1"}, - APMInstrumentation: "none", - RSSMemory: 100 * 1024 * 1024, - CPUCores: 1.5, - ContainerID: dummyContainerID, + NamingSchemaVersion: "1", + ServiceName: "test-service-1", + GeneratedServiceName: "test-service-1-generated", + GeneratedServiceNameSource: "test-service-1-generated-source", + DDService: "test-service-1", + ServiceNameSource: "injected", + ServiceType: "web_service", + HostName: host, + Env: "", + StartTime: calcTime(0).Unix(), + StartTimeMilli: calcTime(0).UnixMilli(), + LastSeen: calcTime(1 * time.Minute).Unix(), + Ports: []uint16{8080}, + PID: 99, + CommandLine: []string{"test-service-1"}, + APMInstrumentation: "none", + RSSMemory: 100 * 1024 * 1024, + CPUCores: 1.5, + ContainerID: dummyContainerID, }, }, { RequestType: "start-service", APIVersion: "v2", Payload: &eventPayload{ - NamingSchemaVersion: "1", - ServiceName: "test-service-1", - GeneratedServiceName: "test-service-1-generated", - DDService: "test-service-1", - ServiceNameSource: "injected", - ServiceType: "web_service", - HostName: host, - Env: "", - StartTime: calcTime(0).Unix(), - StartTimeMilli: calcTime(0).UnixMilli(), - LastSeen: calcTime(22 * time.Minute).Unix(), - Ports: []uint16{8080}, - PID: 102, - CommandLine: []string{"test-service-1"}, - APMInstrumentation: "injected", - ContainerID: dummyContainerID, + NamingSchemaVersion: "1", + ServiceName: "test-service-1", + GeneratedServiceName: "test-service-1-generated", + GeneratedServiceNameSource: "test-service-1-generated-source", + DDService: "test-service-1", + ServiceNameSource: "injected", + ServiceType: "web_service", + HostName: host, + Env: "", + StartTime: calcTime(0).Unix(), + StartTimeMilli: calcTime(0).UnixMilli(), + LastSeen: calcTime(22 * time.Minute).Unix(), + Ports: []uint16{8080}, + PID: 102, + CommandLine: []string{"test-service-1"}, + APMInstrumentation: "injected", + ContainerID: dummyContainerID, }, }, }, diff --git a/pkg/collector/corechecks/servicediscovery/model/model.go b/pkg/collector/corechecks/servicediscovery/model/model.go index f45cbae150eb4..ccaa3fc2a961c 100644 --- a/pkg/collector/corechecks/servicediscovery/model/model.go +++ b/pkg/collector/corechecks/servicediscovery/model/model.go @@ -11,6 +11,7 @@ type Service struct { PID int `json:"pid"` Name string `json:"name"` GeneratedName string `json:"generated_name"` + GeneratedNameSource string `json:"generated_name_source"` DDService string `json:"dd_service"` DDServiceInjected bool `json:"dd_service_injected"` CheckedContainerData bool `json:"checked_container_data"` diff --git a/pkg/collector/corechecks/servicediscovery/module/impl_linux.go b/pkg/collector/corechecks/servicediscovery/module/impl_linux.go index 181c22b662aaa..df021490fdd4c 100644 --- a/pkg/collector/corechecks/servicediscovery/module/impl_linux.go +++ b/pkg/collector/corechecks/servicediscovery/module/impl_linux.go @@ -50,6 +50,7 @@ var _ module.Module = &discovery{} // endpoint. type serviceInfo struct { generatedName string + generatedNameSource string ddServiceName string ddServiceInjected bool checkedContainerData bool @@ -420,13 +421,14 @@ func (s *discovery) getServiceInfo(proc *process.Process) (*serviceInfo, error) apmInstrumentation := apm.Detect(lang, ctx) return &serviceInfo{ - generatedName: nameMeta.Name, - ddServiceName: nameMeta.DDService, - language: lang, - apmInstrumentation: apmInstrumentation, - ddServiceInjected: nameMeta.DDServiceInjected, - cmdLine: sanitizeCmdLine(s.scrubber, cmdline), - startTimeMilli: uint64(createTime), + generatedName: nameMeta.Name, + generatedNameSource: string(nameMeta.Source), + ddServiceName: nameMeta.DDService, + language: lang, + apmInstrumentation: apmInstrumentation, + ddServiceInjected: nameMeta.DDServiceInjected, + cmdLine: sanitizeCmdLine(s.scrubber, cmdline), + startTimeMilli: uint64(createTime), }, nil } @@ -553,19 +555,19 @@ func (s *discovery) getService(context parsingContext, pid int32) *model.Service } return &model.Service{ - PID: int(pid), - Name: name, - GeneratedName: info.generatedName, - DDService: info.ddServiceName, - DDServiceInjected: info.ddServiceInjected, - CheckedContainerData: info.checkedContainerData, - Ports: ports, - APMInstrumentation: string(info.apmInstrumentation), - Language: string(info.language), - RSS: rss, - CommandLine: info.cmdLine, - StartTimeMilli: info.startTimeMilli, - CPUCores: info.cpuUsage, + PID: int(pid), + Name: name, + GeneratedName: info.generatedName, + GeneratedNameSource: info.generatedNameSource, + DDService: info.ddServiceName, + DDServiceInjected: info.ddServiceInjected, + Ports: ports, + APMInstrumentation: string(info.apmInstrumentation), + Language: string(info.language), + RSS: rss, + CommandLine: info.cmdLine, + StartTimeMilli: info.startTimeMilli, + CPUCores: info.cpuUsage, } } @@ -689,6 +691,7 @@ func (s *discovery) enrichContainerData(service *model.Service, containers map[s if service.DDService == "" { service.Name = serviceName } + service.GeneratedNameSource = string(usm.Container) } service.CheckedContainerData = true @@ -697,6 +700,7 @@ func (s *discovery) enrichContainerData(service *model.Service, containers map[s if ok { if serviceName != "" { serviceInfo.generatedName = serviceName + serviceInfo.generatedNameSource = string(usm.Container) } serviceInfo.checkedContainerData = true } diff --git a/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go b/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go index 81c5bdb6a9f3a..822e08866a0a1 100644 --- a/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go +++ b/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go @@ -47,6 +47,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/collector/corechecks/servicediscovery/apm" "github.com/DataDog/datadog-agent/pkg/collector/corechecks/servicediscovery/language" "github.com/DataDog/datadog-agent/pkg/collector/corechecks/servicediscovery/model" + "github.com/DataDog/datadog-agent/pkg/collector/corechecks/servicediscovery/usm" "github.com/DataDog/datadog-agent/pkg/network" "github.com/DataDog/datadog-agent/pkg/network/protocols/http/testutil" "github.com/DataDog/datadog-agent/pkg/network/protocols/tls/nodejs" @@ -367,6 +368,7 @@ func TestServiceName(t *testing.T) { assert.Equal(t, "foo_bar", portMap[pid].DDService) assert.Equal(t, portMap[pid].DDService, portMap[pid].Name) assert.Equal(t, "sleep", portMap[pid].GeneratedName) + assert.Equal(t, string(usm.CommandLine), portMap[pid].GeneratedNameSource) assert.False(t, portMap[pid].DDServiceInjected) assert.Equal(t, portMap[pid].ContainerID, "") }, 30*time.Second, 100*time.Millisecond) @@ -395,6 +397,7 @@ func TestInjectedServiceName(t *testing.T) { // The GeneratedName can vary depending on how the tests are run, so don't // assert for a specific value. require.NotEmpty(t, portMap[pid].GeneratedName) + require.NotEmpty(t, portMap[pid].GeneratedNameSource) require.NotEqual(t, portMap[pid].DDService, portMap[pid].GeneratedName) assert.True(t, portMap[pid].DDServiceInjected) } @@ -661,6 +664,7 @@ func TestNodeDocker(t *testing.T) { assert.Contains(collect, svcMap, pid) // test@... changed to test_... due to normalization. assert.Equal(collect, "test_nodejs-https-server", svcMap[pid].GeneratedName) + assert.Equal(collect, string(usm.Nodejs), svcMap[pid].GeneratedNameSource) assert.Equal(collect, svcMap[pid].GeneratedName, svcMap[pid].Name) assert.Equal(collect, "provided", svcMap[pid].APMInstrumentation) assertStat(collect, svcMap[pid]) @@ -842,6 +846,7 @@ func TestDocker(t *testing.T) { require.Contains(t, portMap[pid1111].ContainerID, "dummyCID") require.Contains(t, portMap[pid1111].Name, "foo_from_app_tag") require.Contains(t, portMap[pid1111].GeneratedName, "foo_from_app_tag") + require.Contains(t, portMap[pid1111].GeneratedNameSource, string(usm.Container)) } // Check that the cache is cleaned when procceses die. diff --git a/pkg/collector/corechecks/servicediscovery/usm/java.go b/pkg/collector/corechecks/servicediscovery/usm/java.go index 2102f8df7e720..bc8214bd3628f 100644 --- a/pkg/collector/corechecks/servicediscovery/usm/java.go +++ b/pkg/collector/corechecks/servicediscovery/usm/java.go @@ -18,13 +18,19 @@ func newJavaDetector(ctx DetectionContext) detector { return &javaDetector{ctx: ctx} } +var vendorToSource = map[serverVendor]ServiceNameSource{ + tomcat: Tomcat, + weblogic: WebLogic, + websphere: WebSphere, + jboss: JBoss, +} + func (jd javaDetector) detect(args []string) (metadata ServiceMetadata, success bool) { // Look for dd.service if index := slices.IndexFunc(args, func(arg string) bool { return strings.HasPrefix(arg, "-Ddd.service=") }); index != -1 { metadata.DDService = strings.TrimPrefix(args[index], "-Ddd.service=") } prevArgIsFlag := false - var additionalNames []string for _, a := range args { hasFlagPrefix := strings.HasPrefix(a, "-") @@ -38,18 +44,30 @@ func (jd javaDetector) detect(args []string) (metadata ServiceMetadata, success if arg = trimColonRight(arg); isRuneLetterAt(arg, 0) { // do JEE detection to see if we can extract additional service names from context roots. - additionalNames = jeeExtractor(jd).extractServiceNamesForJEEServer() + vendor, additionalNames := jeeExtractor(jd).extractServiceNamesForJEEServer() + + source := CommandLine + if len(additionalNames) > 0 { + if vendorSource, ok := vendorToSource[vendor]; ok { + // The name gets joined to the AdditionalNames, so a part of + // the name still comes from the command line, but report + // the source as the web server since that is not easy to + // guess from looking at the command line. + source = vendorSource + } + } + if strings.HasSuffix(arg, javaJarExtension) || strings.HasSuffix(arg, javaWarExtension) { // try to see if the application is a spring boot archive and extract its application name if len(additionalNames) == 0 { if springAppName, ok := newSpringBootParser(jd.ctx).GetSpringBootAppName(a); ok { success = true - metadata.Name = springAppName + metadata.SetNames(springAppName, Spring) return } } success = true - metadata.SetNames(arg[:len(arg)-len(javaJarExtension)], additionalNames...) + metadata.SetNames(arg[:len(arg)-len(javaJarExtension)], source, additionalNames...) return } if strings.HasPrefix(arg, javaApachePrefix) { @@ -58,7 +76,7 @@ func (jd javaDetector) detect(args []string) (metadata ServiceMetadata, success arg = arg[len(javaApachePrefix):] if idx := strings.Index(arg, "."); idx != -1 { success = true - metadata.SetNames(arg[:idx], additionalNames...) + metadata.SetNames(arg[:idx], source, additionalNames...) return } } @@ -66,12 +84,12 @@ func (jd javaDetector) detect(args []string) (metadata ServiceMetadata, success if idx := strings.LastIndex(arg, "."); idx != -1 && idx+1 < len(arg) { // take just the class name without the package success = true - metadata.SetNames(arg[idx+1:], additionalNames...) + metadata.SetNames(arg[idx+1:], source, additionalNames...) return } success = true - metadata.SetNames(arg, additionalNames...) + metadata.SetNames(arg, source, additionalNames...) return } } diff --git a/pkg/collector/corechecks/servicediscovery/usm/jee.go b/pkg/collector/corechecks/servicediscovery/usm/jee.go index 8980a5ef42df1..62d5fe08a6c01 100644 --- a/pkg/collector/corechecks/servicediscovery/usm/jee.go +++ b/pkg/collector/corechecks/servicediscovery/usm/jee.go @@ -297,19 +297,18 @@ func (je jeeExtractor) doExtractContextRoots(extractor vendorExtractor, app *jee return nil } -// extractServiceNamesForJEEServer takes args, cws and the fs (for testability reasons) and, after having determined the vendor, -// If the vendor can be determined, it returns the context roots if found, otherwise the server name. -// If the vendor is unknown, it returns a nil slice -func (je jeeExtractor) extractServiceNamesForJEEServer() []string { +// extractServiceNamesForJEEServer extracts the server vendor name and the +// service names from server-specific deployment files. +func (je jeeExtractor) extractServiceNamesForJEEServer() (serverVendor, []string) { vendor, domainHome := je.resolveAppServer() if vendor == unknown { - return nil + return vendor, nil } log.Debugf("running java enterprise service extraction - vendor %q", vendor) // check if able to find which applications are deployed extractorCreator, ok := extractors[vendor] if !ok { - return nil + return vendor, nil } extractor := extractorCreator(je.ctx) cwd, ok := workingDirFromEnvs(je.ctx.Envs) @@ -319,16 +318,16 @@ func (je jeeExtractor) extractServiceNamesForJEEServer() []string { apps, ok := extractor.findDeployedApps(domainHome) if !ok { - return nil + return vendor, nil } var contextRoots []string for _, app := range apps { contextRoots = append(contextRoots, normalizeContextRoot(je.doExtractContextRoots(extractor, &app)...)...) } if len(contextRoots) == 0 { - return nil + return vendor, nil } - return contextRoots + return vendor, contextRoots } func (s serverVendor) String() string { diff --git a/pkg/collector/corechecks/servicediscovery/usm/jee_test.go b/pkg/collector/corechecks/servicediscovery/usm/jee_test.go index 8da0f17ceea4c..792701947c459 100644 --- a/pkg/collector/corechecks/servicediscovery/usm/jee_test.go +++ b/pkg/collector/corechecks/servicediscovery/usm/jee_test.go @@ -246,7 +246,8 @@ func TestWeblogicExtractServiceNamesForJEEServer(t *testing.T) { "PWD": "wls/domain", } extractor := jeeExtractor{ctx: NewDetectionContext(cmd, envs.NewVariables(envsMap), memfs)} - extractedContextRoots := extractor.extractServiceNamesForJEEServer() + vendor, extractedContextRoots := extractor.extractServiceNamesForJEEServer() + require.Equal(t, vendor, weblogic) require.Equal(t, []string{ "app1_context", // taken from ear application.xml "app2_context", // taken from war weblogic.xml diff --git a/pkg/collector/corechecks/servicediscovery/usm/nodejs.go b/pkg/collector/corechecks/servicediscovery/usm/nodejs.go index 5efb671327276..89e62bcf222e4 100644 --- a/pkg/collector/corechecks/servicediscovery/usm/nodejs.go +++ b/pkg/collector/corechecks/servicediscovery/usm/nodejs.go @@ -62,14 +62,14 @@ func (n nodeDetector) detect(args []string) (ServiceMetadata, bool) { if _, err := fs.Stat(n.ctx.fs, absFile); err == nil { value, ok := n.findNameFromNearestPackageJSON(entryPoint) if ok { - return NewServiceMetadata(value), true + return NewServiceMetadata(value, Nodejs), true } // We couldn't find a package.json, fall back to the script/link // name since it should be better than just using "node". base := filepath.Base(absFile) name := strings.TrimSuffix(base, path.Ext(base)) - return NewServiceMetadata(name), true + return NewServiceMetadata(name, CommandLine), true } } } diff --git a/pkg/collector/corechecks/servicediscovery/usm/php.go b/pkg/collector/corechecks/servicediscovery/usm/php.go index e9e5c6b70f8de..c51d773034741 100644 --- a/pkg/collector/corechecks/servicediscovery/usm/php.go +++ b/pkg/collector/corechecks/servicediscovery/usm/php.go @@ -40,7 +40,7 @@ func (p phpDetector) detect(args []string) (ServiceMetadata, bool) { if !prevArgIsFlag && !hasFlagPrefix { basePath := removeFilePath(arg) if isRuneLetterAt(basePath, 0) && basePath == artisanConsole { - metadata.SetNames(newLaravelParser(p.ctx).GetLaravelAppName(arg)) + metadata.SetNames(newLaravelParser(p.ctx).GetLaravelAppName(arg), Laravel) return metadata, true } } diff --git a/pkg/collector/corechecks/servicediscovery/usm/python.go b/pkg/collector/corechecks/servicediscovery/usm/python.go index 44b2c02309463..27dedaba9bf46 100644 --- a/pkg/collector/corechecks/servicediscovery/usm/python.go +++ b/pkg/collector/corechecks/servicediscovery/usm/python.go @@ -56,7 +56,7 @@ func (p pythonDetector) detect(args []string) (ServiceMetadata, bool) { shouldSkipArg := prevArgIsFlag || hasFlagPrefix || isEnvVariable if moduleFlag { - return NewServiceMetadata(a), true + return NewServiceMetadata(a, CommandLine), true } if !shouldSkipArg { @@ -72,11 +72,11 @@ func (p pythonDetector) detect(args []string) (ServiceMetadata, bool) { stripped, filename = path.Split(stripped) // If the path is a root level file, return the filename if stripped == "" { - return NewServiceMetadata(p.findNearestTopLevel(filename)), true + return NewServiceMetadata(p.findNearestTopLevel(filename), CommandLine), true } } if value, ok := p.deducePackageName(path.Clean(stripped), filename); ok { - return NewServiceMetadata(value), true + return NewServiceMetadata(value, Python), true } name := p.findNearestTopLevel(stripped) @@ -85,7 +85,7 @@ func (p pythonDetector) detect(args []string) (ServiceMetadata, bool) { name = p.findNearestTopLevel(filename) } - return NewServiceMetadata(name), true + return NewServiceMetadata(name, CommandLine), true } if hasFlagPrefix && a == "-m" { @@ -142,20 +142,20 @@ func (g gunicornDetector) detect(args []string) (ServiceMetadata, bool) { if fromEnv, ok := extractEnvVar(g.ctx.Envs, gunicornEnvCmdArgs); ok { name, ok := extractGunicornNameFrom(strings.Split(fromEnv, " ")) if ok { - return NewServiceMetadata(name), true + return NewServiceMetadata(name, Gunicorn), true } } if wsgiApp, ok := extractEnvVar(g.ctx.Envs, wsgiAppEnv); ok && len(wsgiApp) > 0 { - return NewServiceMetadata(parseNameFromWsgiApp(wsgiApp)), true + return NewServiceMetadata(parseNameFromWsgiApp(wsgiApp), Gunicorn), true } if name, ok := extractGunicornNameFrom(args); ok { // gunicorn replaces the cmdline with something like "gunicorn: master // [package]", so strip out the square brackets. name = strings.Trim(name, "[]") - return NewServiceMetadata(name), true + return NewServiceMetadata(name, CommandLine), true } - return NewServiceMetadata("gunicorn"), true + return NewServiceMetadata("gunicorn", CommandLine), true } func extractGunicornNameFrom(args []string) (string, bool) { diff --git a/pkg/collector/corechecks/servicediscovery/usm/ruby.go b/pkg/collector/corechecks/servicediscovery/usm/ruby.go index 9c36d112ac99e..5404a1753d77d 100644 --- a/pkg/collector/corechecks/servicediscovery/usm/ruby.go +++ b/pkg/collector/corechecks/servicediscovery/usm/ruby.go @@ -65,7 +65,7 @@ func (r railsDetector) detect(_ []string) (ServiceMetadata, bool) { return ServiceMetadata{}, false } - return NewServiceMetadata(string(name)), true + return NewServiceMetadata(string(name), Rails), true } // findRailsApplicationName scans the `config/application.rb` file to find the diff --git a/pkg/collector/corechecks/servicediscovery/usm/service.go b/pkg/collector/corechecks/servicediscovery/usm/service.go index da160aebada3f..407b77179dfb7 100644 --- a/pkg/collector/corechecks/servicediscovery/usm/service.go +++ b/pkg/collector/corechecks/servicediscovery/usm/service.go @@ -51,19 +51,50 @@ const ( // ServiceMetadata holds information about a service. type ServiceMetadata struct { Name string + Source ServiceNameSource AdditionalNames []string DDService string DDServiceInjected bool // for future usage: we can detect also the type, vendor, frameworks, etc } +// ServiceNameSource is a string enum that represents the source of a generated service name +type ServiceNameSource string + +const ( + // CommandLine indicates that the name comes from the command line + CommandLine ServiceNameSource = "command-line" + // Container indicates the name comes from the container tags + Container ServiceNameSource = "container" + // Laravel indicates that the name comes from the Laravel application name + Laravel ServiceNameSource = "laravel" + // Python indicates that the name comes from the Python package name + Python ServiceNameSource = "python" + // Nodejs indicates that the name comes from the Node.js package name + Nodejs ServiceNameSource = "nodejs" + // Gunicorn indicates that the name comes from the Gunicorn application name + Gunicorn ServiceNameSource = "gunicorn" + // Rails indicates that the name comes from the Rails application name + Rails ServiceNameSource = "rails" + // Spring indicates that the name comes from the Spring application name + Spring ServiceNameSource = "spring" + // JBoss indicates that the name comes from the JBoss application name + JBoss ServiceNameSource = "jboss" + // Tomcat indicates that the name comes from the Tomcat application name + Tomcat ServiceNameSource = "tomcat" + // WebLogic indicates that the name comes from the WebLogic application name + WebLogic ServiceNameSource = "weblogic" + // WebSphere indicates that the name comes from the WebSphere application name + WebSphere ServiceNameSource = "websphere" +) + // NewServiceMetadata initializes ServiceMetadata. -func NewServiceMetadata(name string, additional ...string) ServiceMetadata { +func NewServiceMetadata(name string, source ServiceNameSource, additional ...string) ServiceMetadata { if len(additional) > 1 { // names are discovered in unpredictable order. We need to keep them sorted if we're going to join them slices.Sort(additional) } - return ServiceMetadata{Name: name, AdditionalNames: additional} + return ServiceMetadata{Name: name, Source: source, AdditionalNames: additional} } // SetAdditionalNames set additional names for the service @@ -76,8 +107,9 @@ func (s *ServiceMetadata) SetAdditionalNames(additional ...string) { } // SetNames sets generated names for the service. -func (s *ServiceMetadata) SetNames(name string, additional ...string) { +func (s *ServiceMetadata) SetNames(name string, source ServiceNameSource, additional ...string) { s.Name = name + s.Source = source s.SetAdditionalNames(additional...) } @@ -260,6 +292,7 @@ func ExtractServiceMetadata(lang language.Language, ctx DetectionContext) (metad if ok { metadata.Name = langMeta.Name + metadata.Source = langMeta.Source metadata.SetAdditionalNames(langMeta.AdditionalNames...) return } @@ -271,6 +304,7 @@ func ExtractServiceMetadata(lang language.Language, ctx DetectionContext) (metad } metadata.Name = exe + metadata.Source = CommandLine return } @@ -362,7 +396,7 @@ func (simpleDetector) detect(args []string) (ServiceMetadata, bool) { if !shouldSkipArg { if c := trimColonRight(removeFilePath(a)); isRuneLetterAt(c, 0) { - return NewServiceMetadata(c), true + return NewServiceMetadata(c, CommandLine), true } } @@ -381,7 +415,7 @@ func (dd dotnetDetector) detect(args []string) (ServiceMetadata, bool) { // https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-run#description if strings.HasSuffix(strings.ToLower(a), dllExtension) { file := removeFilePath(a) - return NewServiceMetadata(file[:len(file)-len(dllExtension)]), true + return NewServiceMetadata(file[:len(file)-len(dllExtension)], CommandLine), true } // dotnet cli syntax is something like `dotnet ` // if the first non arg (`-v, --something, ...) is not a dll file, exit early since nothing is matching a dll execute case diff --git a/pkg/collector/corechecks/servicediscovery/usm/service_test.go b/pkg/collector/corechecks/servicediscovery/usm/service_test.go index 9baa51f1780ff..8667662d64747 100644 --- a/pkg/collector/corechecks/servicediscovery/usm/service_test.go +++ b/pkg/collector/corechecks/servicediscovery/usm/service_test.go @@ -49,16 +49,17 @@ func TestExtractServiceMetadata(t *testing.T) { require.NoError(t, err) subUsmTestData := NewSubDirFS(usmFull) tests := []struct { - name string - cmdline []string - envs map[string]string - lang language.Language - expectedGeneratedName string - expectedDDService string - expectedAdditionalServices []string - ddServiceInjected bool - fs *SubDirFS - skipOnWindows bool + name string + cmdline []string + envs map[string]string + lang language.Language + expectedGeneratedName string + expectedDDService string + expectedAdditionalServices []string + expectedGeneratedNameSource ServiceNameSource + ddServiceInjected bool + fs *SubDirFS + skipOnWindows bool }{ { name: "empty", @@ -75,116 +76,130 @@ func TestExtractServiceMetadata(t *testing.T) { cmdline: []string{ "./my-server.sh", }, - expectedGeneratedName: "my-server", + expectedGeneratedName: "my-server", + expectedGeneratedNameSource: CommandLine, }, { name: "single arg executable with DD_SERVICE", cmdline: []string{ "./my-server.sh", }, - envs: map[string]string{"DD_SERVICE": "my-service"}, - expectedDDService: "my-service", - expectedGeneratedName: "my-server", + envs: map[string]string{"DD_SERVICE": "my-service"}, + expectedDDService: "my-service", + expectedGeneratedName: "my-server", + expectedGeneratedNameSource: CommandLine, }, { name: "single arg executable with DD_TAGS", cmdline: []string{ "./my-server.sh", }, - envs: map[string]string{"DD_TAGS": "service:my-service"}, - expectedDDService: "my-service", - expectedGeneratedName: "my-server", + envs: map[string]string{"DD_TAGS": "service:my-service"}, + expectedDDService: "my-service", + expectedGeneratedName: "my-server", + expectedGeneratedNameSource: CommandLine, }, { name: "single arg executable with special chars", cmdline: []string{ "./-my-server.sh-", }, - expectedGeneratedName: "my-server", + expectedGeneratedName: "my-server", + expectedGeneratedNameSource: CommandLine, }, { name: "sudo", cmdline: []string{ "sudo", "-E", "-u", "dog", "/usr/local/bin/myApp", "-items=0,1,2,3", "-foo=bar", }, - expectedGeneratedName: "myApp", + expectedGeneratedName: "myApp", + expectedGeneratedNameSource: CommandLine, }, { name: "python flask argument", cmdline: []string{ "/opt/python/2.7.11/bin/python2.7", "flask", "run", "--host=0.0.0.0", }, - lang: language.Python, - expectedGeneratedName: "flask", - envs: map[string]string{"PWD": "testdata/python"}, - fs: &subUsmTestData, + lang: language.Python, + expectedGeneratedName: "flask", + expectedGeneratedNameSource: Python, + envs: map[string]string{"PWD": "testdata/python"}, + fs: &subUsmTestData, }, { name: "python - flask argument in path", cmdline: []string{ "/opt/python/2.7.11/bin/python2.7", "testdata/python/flask", "run", "--host=0.0.0.0", "--without-threads", }, - lang: language.Python, - expectedGeneratedName: "flask", - fs: &subUsmTestData, + lang: language.Python, + expectedGeneratedName: "flask", + expectedGeneratedNameSource: Python, + fs: &subUsmTestData, }, { name: "python flask in single argument", cmdline: []string{ "/opt/python/2.7.11/bin/python2.7 flask run --host=0.0.0.0", }, - lang: language.Python, - envs: map[string]string{"PWD": "testdata/python"}, - expectedGeneratedName: "flask", - fs: &subUsmTestData, + lang: language.Python, + envs: map[string]string{"PWD": "testdata/python"}, + expectedGeneratedName: "flask", + expectedGeneratedNameSource: Python, + fs: &subUsmTestData, }, { name: "python - module hello", cmdline: []string{ "python3", "-m", "hello", }, - lang: language.Python, - expectedGeneratedName: "hello", + lang: language.Python, + expectedGeneratedName: "hello", + expectedGeneratedNameSource: CommandLine, }, { name: "ruby - td-agent", cmdline: []string{ "ruby", "/usr/sbin/td-agent", "--log", "/var/log/td-agent/td-agent.log", "--daemon", "/var/run/td-agent/td-agent.pid", }, - lang: language.Ruby, - expectedGeneratedName: "td-agent", + lang: language.Ruby, + expectedGeneratedName: "td-agent", + expectedGeneratedNameSource: CommandLine, }, { name: "java using the -jar flag to define the service", cmdline: []string{ "java", "-Xmx4000m", "-Xms4000m", "-XX:ReservedCodeCacheSize=256m", "-jar", "/opt/sheepdog/bin/myservice.jar", }, - lang: language.Java, - expectedGeneratedName: "myservice", + lang: language.Java, + expectedGeneratedName: "myservice", + expectedGeneratedNameSource: CommandLine, }, { name: "java using the -jar flag to point to a .war", cmdline: []string{ "java", "-Duser.home=/var/jenkins_home", "-Dhudson.lifecycle=hudson.lifecycle.ExitLifecycle", "-jar", "/usr/share/jenkins/jenkins.war", "--httpPort=8000", }, - lang: language.Java, - expectedGeneratedName: "jenkins", + lang: language.Java, + expectedGeneratedName: "jenkins", + expectedGeneratedNameSource: CommandLine, }, { name: "java class name as service", cmdline: []string{ "java", "-Xmx4000m", "-Xms4000m", "-XX:ReservedCodeCacheSize=256m", "com.datadog.example.HelloWorld", }, - lang: language.Java, - expectedGeneratedName: "HelloWorld", + lang: language.Java, + expectedGeneratedName: "HelloWorld", + expectedGeneratedNameSource: CommandLine, }, { name: "java kafka", cmdline: []string{ "java", "-Xmx4000m", "-Xms4000m", "-XX:ReservedCodeCacheSize=256m", "kafka.Kafka", }, - lang: language.Java, - expectedGeneratedName: "Kafka", + lang: language.Java, + expectedGeneratedName: "Kafka", + expectedGeneratedNameSource: CommandLine, }, { name: "java parsing for org.apache projects with cassandra as the service", @@ -194,16 +209,18 @@ func TestExtractServiceMetadata(t *testing.T) { "-cp", "/etc/cassandra:/usr/share/cassandra/lib/HdrHistogram-2.1.9.jar:/usr/share/cassandra/lib/cassandra-driver-core-3.0.1-shaded.jar", "org.apache.cassandra.service.CassandraDaemon", }, - lang: language.Java, - expectedGeneratedName: "cassandra", + lang: language.Java, + expectedGeneratedName: "cassandra", + expectedGeneratedNameSource: CommandLine, }, { name: "java space in java executable path", cmdline: []string{ "/home/dd/my java dir/java", "com.dog.cat", }, - lang: language.Java, - expectedGeneratedName: "cat", + lang: language.Java, + expectedGeneratedName: "cat", + expectedGeneratedNameSource: CommandLine, }, { name: "node js with package.json not present", @@ -215,8 +232,9 @@ func TestExtractServiceMetadata(t *testing.T) { "--", "/somewhere/index.js", }, - lang: language.Node, - expectedGeneratedName: "node", + lang: language.Node, + expectedGeneratedName: "node", + expectedGeneratedNameSource: CommandLine, }, { name: "node js with a broken package.json", @@ -224,9 +242,10 @@ func TestExtractServiceMetadata(t *testing.T) { "/usr/bin/node", "./testdata/inner/app.js", }, - lang: language.Node, - expectedGeneratedName: "app", - fs: &subUsmTestData, + lang: language.Node, + expectedGeneratedName: "app", + expectedGeneratedNameSource: CommandLine, + fs: &subUsmTestData, }, { name: "node js with a broken package.json", @@ -234,9 +253,10 @@ func TestExtractServiceMetadata(t *testing.T) { "/usr/bin/node", "./testdata/inner/link", }, - lang: language.Node, - expectedGeneratedName: "link", - fs: &subUsmTestData, + lang: language.Node, + expectedGeneratedName: "link", + expectedGeneratedNameSource: CommandLine, + fs: &subUsmTestData, }, { name: "node js with a valid package.json", @@ -248,9 +268,10 @@ func TestExtractServiceMetadata(t *testing.T) { "--", "./testdata/index.js", }, - lang: language.Node, - expectedGeneratedName: "my-awesome-package", - fs: &subUsmTestData, + lang: language.Node, + expectedGeneratedName: "my-awesome-package", + fs: &subUsmTestData, + expectedGeneratedNameSource: Nodejs, }, { name: "nodejs .cjs with a valid package.json", @@ -258,9 +279,10 @@ func TestExtractServiceMetadata(t *testing.T) { "/usr/bin/node", "./testdata/foo.cjs", }, - lang: language.Node, - expectedGeneratedName: "my-awesome-package", - fs: &subUsmTestData, + lang: language.Node, + expectedGeneratedName: "my-awesome-package", + expectedGeneratedNameSource: Nodejs, + fs: &subUsmTestData, }, { name: "nodejs .mjs with a valid package.json", @@ -268,9 +290,10 @@ func TestExtractServiceMetadata(t *testing.T) { "/usr/bin/node", "./testdata/bar.mjs", }, - lang: language.Node, - expectedGeneratedName: "my-awesome-package", - fs: &subUsmTestData, + lang: language.Node, + expectedGeneratedName: "my-awesome-package", + expectedGeneratedNameSource: Nodejs, + fs: &subUsmTestData, }, { name: "node js with a symlink to a .js file and valid package.json", @@ -282,10 +305,11 @@ func TestExtractServiceMetadata(t *testing.T) { "./testdata/bins/broken", "./testdata/bins/json-server", }, - lang: language.Node, - expectedGeneratedName: "json-server-package", - skipOnWindows: true, - fs: &subUsmTestData, + lang: language.Node, + expectedGeneratedName: "json-server-package", + expectedGeneratedNameSource: Nodejs, + skipOnWindows: true, + fs: &subUsmTestData, }, { name: "node js with a valid nested package.json and cwd", @@ -297,10 +321,11 @@ func TestExtractServiceMetadata(t *testing.T) { "--", "index.js", }, - lang: language.Node, - envs: map[string]string{"PWD": "testdata/deep"}, // it's relative but it's ok for testing purposes - fs: &subUsmTestData, - expectedGeneratedName: "my-awesome-package", + lang: language.Node, + envs: map[string]string{"PWD": "testdata/deep"}, // it's relative but it's ok for testing purposes + fs: &subUsmTestData, + expectedGeneratedName: "my-awesome-package", + expectedGeneratedNameSource: Nodejs, }, { name: "spring boot default options", @@ -309,8 +334,9 @@ func TestExtractServiceMetadata(t *testing.T) { "-jar", springBootAppFullPath, }, - lang: language.Java, - expectedGeneratedName: "default-app", + lang: language.Java, + expectedGeneratedName: "default-app", + expectedGeneratedNameSource: Spring, }, { name: "wildfly 18 standalone", @@ -338,11 +364,12 @@ func TestExtractServiceMetadata(t *testing.T) { "-Djboss.home.dir=" + jbossTestAppRoot, "-Djboss.server.base.dir=" + jbossTestAppRoot + "/standalone", }, - lang: language.Java, - expectedGeneratedName: "jboss-modules", - expectedAdditionalServices: []string{"my-jboss-webapp", "some_context_root", "web3"}, - fs: &sub, - envs: map[string]string{"PWD": "/sibiling"}, + lang: language.Java, + expectedGeneratedName: "jboss-modules", + expectedAdditionalServices: []string{"my-jboss-webapp", "some_context_root", "web3"}, + fs: &sub, + envs: map[string]string{"PWD": "/sibiling"}, + expectedGeneratedNameSource: JBoss, }, { name: "wildfly 18 domain", @@ -373,11 +400,12 @@ func TestExtractServiceMetadata(t *testing.T) { "" + jbossTestAppRoot + "/modules", "org.jboss.as.server", }, - lang: language.Java, - expectedGeneratedName: "jboss-modules", - expectedAdditionalServices: []string{"web3", "web4"}, - fs: &sub, - envs: map[string]string{"PWD": "/sibiling"}, + lang: language.Java, + expectedGeneratedName: "jboss-modules", + expectedGeneratedNameSource: JBoss, + expectedAdditionalServices: []string{"web3", "web4"}, + fs: &sub, + envs: map[string]string{"PWD": "/sibiling"}, }, { name: "weblogic 12", @@ -397,19 +425,21 @@ func TestExtractServiceMetadata(t *testing.T) { "-Dweblogic.home=/u01/oracle/wlserver/server", "weblogic.Server", }, - lang: language.Java, - envs: map[string]string{"PWD": weblogicTestAppRootAbsolute}, - expectedGeneratedName: "Server", - expectedAdditionalServices: []string{"my_context", "sample4", "some_context_root"}, + lang: language.Java, + envs: map[string]string{"PWD": weblogicTestAppRootAbsolute}, + expectedGeneratedName: "Server", + expectedGeneratedNameSource: WebLogic, + expectedAdditionalServices: []string{"my_context", "sample4", "some_context_root"}, }, { name: "java with dd_service as system property", cmdline: []string{ "/usr/bin/java", "-Ddd.service=custom", "-jar", "app.jar", }, - lang: language.Java, - expectedDDService: "custom", - expectedGeneratedName: "app", + lang: language.Java, + expectedDDService: "custom", + expectedGeneratedName: "app", + expectedGeneratedNameSource: CommandLine, }, { // The system property takes priority over the environment variable, see @@ -418,10 +448,11 @@ func TestExtractServiceMetadata(t *testing.T) { cmdline: []string{ "/usr/bin/java", "-Ddd.service=dd-service-from-property", "-jar", "app.jar", }, - lang: language.Java, - envs: map[string]string{"DD_SERVICE": "dd-service-from-env"}, - expectedDDService: "dd-service-from-property", - expectedGeneratedName: "app", + lang: language.Java, + envs: map[string]string{"DD_SERVICE": "dd-service-from-env"}, + expectedDDService: "dd-service-from-property", + expectedGeneratedName: "app", + expectedGeneratedNameSource: CommandLine, }, { name: "Tomcat 10.X", @@ -445,34 +476,38 @@ func TestExtractServiceMetadata(t *testing.T) { "org.apache.catalina.startup.Bootstrap", "start", }, - lang: language.Java, - expectedGeneratedName: "catalina", - expectedAdditionalServices: []string{"app2", "custom"}, - fs: &subUsmTestData, + lang: language.Java, + expectedGeneratedName: "catalina", + expectedGeneratedNameSource: Tomcat, + expectedAdditionalServices: []string{"app2", "custom"}, + fs: &subUsmTestData, }, { name: "dotnet cmd with dll", cmdline: []string{ "/usr/bin/dotnet", "./myservice.dll", }, - lang: language.DotNet, - expectedGeneratedName: "myservice", + lang: language.DotNet, + expectedGeneratedName: "myservice", + expectedGeneratedNameSource: CommandLine, }, { name: "dotnet cmd with dll and options", cmdline: []string{ "/usr/bin/dotnet", "-v", "--", "/app/lib/myservice.dll", }, - lang: language.DotNet, - expectedGeneratedName: "myservice", + lang: language.DotNet, + expectedGeneratedName: "myservice", + expectedGeneratedNameSource: CommandLine, }, { name: "dotnet cmd with unrecognized options", cmdline: []string{ "/usr/bin/dotnet", "run", "--project", "./projects/proj1/proj1.csproj", }, - lang: language.DotNet, - expectedGeneratedName: "dotnet", + lang: language.DotNet, + expectedGeneratedName: "dotnet", + expectedGeneratedNameSource: CommandLine, }, { name: "PHP Laravel", @@ -481,8 +516,9 @@ func TestExtractServiceMetadata(t *testing.T) { "artisan", "serve", }, - lang: language.PHP, - expectedGeneratedName: "laravel", + lang: language.PHP, + expectedGeneratedName: "laravel", + expectedGeneratedNameSource: Laravel, }, { name: "Plain PHP with INI", @@ -491,9 +527,10 @@ func TestExtractServiceMetadata(t *testing.T) { "-ddatadog.service=foo", "swoole-server.php", }, - lang: language.PHP, - expectedDDService: "foo", - expectedGeneratedName: "php", + lang: language.PHP, + expectedDDService: "foo", + expectedGeneratedName: "php", + expectedGeneratedNameSource: CommandLine, }, { name: "PHP with version number", @@ -502,8 +539,9 @@ func TestExtractServiceMetadata(t *testing.T) { "artisan", "migrate:fresh", }, - lang: language.PHP, - expectedGeneratedName: "laravel", + lang: language.PHP, + expectedGeneratedName: "laravel", + expectedGeneratedNameSource: Laravel, }, { name: "PHP with two-digit version number", @@ -512,8 +550,9 @@ func TestExtractServiceMetadata(t *testing.T) { "artisan", "migrate:fresh", }, - lang: language.PHP, - expectedGeneratedName: "laravel", + lang: language.PHP, + expectedGeneratedName: "laravel", + expectedGeneratedNameSource: Laravel, }, { name: "PHP-FPM shouldn't trigger php parsing", @@ -521,7 +560,8 @@ func TestExtractServiceMetadata(t *testing.T) { "php-fpm", "artisan", }, - expectedGeneratedName: "php-fpm", + expectedGeneratedName: "php-fpm", + expectedGeneratedNameSource: CommandLine, }, { name: "PHP-FPM with version number shouldn't trigger php parsing", @@ -529,32 +569,36 @@ func TestExtractServiceMetadata(t *testing.T) { "php8.1-fpm", "artisan", }, - expectedGeneratedName: "php8", + expectedGeneratedName: "php8", + expectedGeneratedNameSource: CommandLine, }, { - name: "DD_SERVICE_set_manually", - cmdline: []string{"java", "-jar", "Foo.jar"}, - lang: language.Java, - envs: map[string]string{"DD_SERVICE": "howdy"}, - expectedDDService: "howdy", - expectedGeneratedName: "Foo", + name: "DD_SERVICE_set_manually", + cmdline: []string{"java", "-jar", "Foo.jar"}, + lang: language.Java, + envs: map[string]string{"DD_SERVICE": "howdy"}, + expectedDDService: "howdy", + expectedGeneratedName: "Foo", + expectedGeneratedNameSource: CommandLine, }, { - name: "DD_SERVICE_set_manually_tags", - cmdline: []string{"java", "-jar", "Foo.jar"}, - lang: language.Java, - envs: map[string]string{"DD_TAGS": "service:howdy"}, - expectedDDService: "howdy", - expectedGeneratedName: "Foo", + name: "DD_SERVICE_set_manually_tags", + cmdline: []string{"java", "-jar", "Foo.jar"}, + lang: language.Java, + envs: map[string]string{"DD_TAGS": "service:howdy"}, + expectedDDService: "howdy", + expectedGeneratedName: "Foo", + expectedGeneratedNameSource: CommandLine, }, { - name: "DD_SERVICE_set_manually_injection", - cmdline: []string{"java", "-jar", "Foo.jar"}, - lang: language.Java, - envs: map[string]string{"DD_SERVICE": "howdy", "DD_INJECTION_ENABLED": "tracer,service_name"}, - expectedDDService: "howdy", - expectedGeneratedName: "Foo", - ddServiceInjected: true, + name: "DD_SERVICE_set_manually_injection", + cmdline: []string{"java", "-jar", "Foo.jar"}, + lang: language.Java, + envs: map[string]string{"DD_SERVICE": "howdy", "DD_INJECTION_ENABLED": "tracer,service_name"}, + expectedDDService: "howdy", + expectedGeneratedName: "Foo", + expectedGeneratedNameSource: CommandLine, + ddServiceInjected: true, }, { name: "gunicorn simple", @@ -563,8 +607,9 @@ func TestExtractServiceMetadata(t *testing.T) { "--workers=2", "test:app", }, - lang: language.Python, - expectedGeneratedName: "test", + lang: language.Python, + expectedGeneratedName: "test", + expectedGeneratedNameSource: CommandLine, }, { name: "gunicorn simple with python", @@ -574,8 +619,9 @@ func TestExtractServiceMetadata(t *testing.T) { "--workers=2", "foo:create_app()", }, - lang: language.Python, - expectedGeneratedName: "foo", + lang: language.Python, + expectedGeneratedName: "foo", + expectedGeneratedNameSource: CommandLine, }, { name: "gunicorn from name", @@ -588,7 +634,8 @@ func TestExtractServiceMetadata(t *testing.T) { "dummy", "test:app", }, - expectedGeneratedName: "dummy", + expectedGeneratedName: "dummy", + expectedGeneratedNameSource: CommandLine, }, { name: "gunicorn from name (long arg)", @@ -600,7 +647,8 @@ func TestExtractServiceMetadata(t *testing.T) { "--name=dummy", "test:app", }, - expectedGeneratedName: "dummy", + expectedGeneratedName: "dummy", + expectedGeneratedNameSource: CommandLine, }, { name: "gunicorn from name in env", @@ -608,16 +656,18 @@ func TestExtractServiceMetadata(t *testing.T) { "gunicorn", "test:app", }, - envs: map[string]string{"GUNICORN_CMD_ARGS": "--bind=127.0.0.1:8080 --workers=3 -n dummy"}, - expectedGeneratedName: "dummy", + envs: map[string]string{"GUNICORN_CMD_ARGS": "--bind=127.0.0.1:8080 --workers=3 -n dummy"}, + expectedGeneratedName: "dummy", + expectedGeneratedNameSource: Gunicorn, }, { name: "gunicorn without app found", cmdline: []string{ "gunicorn", }, - envs: map[string]string{"GUNICORN_CMD_ARGS": "--bind=127.0.0.1:8080 --workers=3"}, - expectedGeneratedName: "gunicorn", + envs: map[string]string{"GUNICORN_CMD_ARGS": "--bind=127.0.0.1:8080 --workers=3"}, + expectedGeneratedName: "gunicorn", + expectedGeneratedNameSource: CommandLine, }, { name: "gunicorn with partial wsgi app", @@ -625,7 +675,8 @@ func TestExtractServiceMetadata(t *testing.T) { "gunicorn", "my.package", }, - expectedGeneratedName: "my.package", + expectedGeneratedName: "my.package", + expectedGeneratedNameSource: CommandLine, }, { name: "gunicorn with empty WSGI_APP env", @@ -633,16 +684,18 @@ func TestExtractServiceMetadata(t *testing.T) { "gunicorn", "my.package", }, - envs: map[string]string{"WSGI_APP": ""}, - expectedGeneratedName: "my.package", + envs: map[string]string{"WSGI_APP": ""}, + expectedGeneratedName: "my.package", + expectedGeneratedNameSource: CommandLine, }, { name: "gunicorn with WSGI_APP env", cmdline: []string{ "gunicorn", }, - envs: map[string]string{"WSGI_APP": "test:app"}, - expectedGeneratedName: "test", + envs: map[string]string{"WSGI_APP": "test:app"}, + expectedGeneratedName: "test", + expectedGeneratedNameSource: Gunicorn, }, { name: "gunicorn with replaced cmdline with colon", @@ -651,7 +704,8 @@ func TestExtractServiceMetadata(t *testing.T) { "master", "[domains.foo.apps.bar:create_server()]", }, - expectedGeneratedName: "domains.foo.apps.bar", + expectedGeneratedName: "domains.foo.apps.bar", + expectedGeneratedNameSource: CommandLine, }, { name: "gunicorn with replaced cmdline", @@ -660,7 +714,8 @@ func TestExtractServiceMetadata(t *testing.T) { "master", "[mcservice]", }, - expectedGeneratedName: "mcservice", + expectedGeneratedName: "mcservice", + expectedGeneratedNameSource: CommandLine, }, } @@ -686,6 +741,7 @@ func TestExtractServiceMetadata(t *testing.T) { require.Equal(t, tt.expectedGeneratedName, meta.Name) require.Equal(t, tt.expectedAdditionalServices, meta.AdditionalNames) require.Equal(t, tt.ddServiceInjected, meta.DDServiceInjected) + require.Equal(t, tt.expectedGeneratedNameSource, meta.Source) } }) } From 21056eb17c168391721177e56c64f02efd768e78 Mon Sep 17 00:00:00 2001 From: Florent Clarret Date: Fri, 29 Nov 2024 09:32:19 +0100 Subject: [PATCH 150/439] [release] Update current milestone to 7.62.0 (#31588) --- release.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release.json b/release.json index ee50fc47b964e..6c42ba0c2fe30 100644 --- a/release.json +++ b/release.json @@ -1,6 +1,6 @@ { "base_branch": "main", - "current_milestone": "7.61.0", + "current_milestone": "7.62.0", "last_stable": { "6": "6.53.0", "7": "7.59.0" From 6f9432c28bf81cbd75057134653968371c1fd5f4 Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Fri, 29 Nov 2024 11:00:31 +0100 Subject: [PATCH 151/439] [CWS] switch arm64 fentry test to ubuntu 24.04 (#31585) --- .gitlab/kernel_matrix_testing/security_agent.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab/kernel_matrix_testing/security_agent.yml b/.gitlab/kernel_matrix_testing/security_agent.yml index 88a5628b851ee..26e9293844e9e 100644 --- a/.gitlab/kernel_matrix_testing/security_agent.yml +++ b/.gitlab/kernel_matrix_testing/security_agent.yml @@ -361,7 +361,7 @@ kmt_run_secagent_tests_arm64_fentry: parallel: matrix: - TAG: - - "amazon_2023" + - "ubuntu_24.04" TEST_SET: [cws_fentry] after_script: - !reference [.collect_outcomes_kmt] From 2e7ab54171a122e5298bba4ccce6082414d8f825 Mon Sep 17 00:00:00 2001 From: Sylvain Baubeau Date: Fri, 29 Nov 2024 11:00:38 +0100 Subject: [PATCH 152/439] [CWS] Use ContainerID type in tags resolver (#31582) --- pkg/security/probe/custom_events.go | 3 ++- pkg/security/probe/field_handlers_ebpf.go | 2 +- pkg/security/probe/field_handlers_ebpfless.go | 2 +- pkg/security/probe/probe.go | 5 +++-- pkg/security/probe/probe_ebpf.go | 4 ++-- pkg/security/probe/probe_ebpfless.go | 2 +- pkg/security/probe/probe_windows.go | 3 ++- pkg/security/resolvers/tags/resolver.go | 17 +++++++++-------- pkg/security/resolvers/tags/resolver_linux.go | 2 +- pkg/security/rules/engine.go | 2 +- .../security_profile/dump/activity_dump.go | 3 ++- 11 files changed, 25 insertions(+), 20 deletions(-) diff --git a/pkg/security/probe/custom_events.go b/pkg/security/probe/custom_events.go index 6d1d61bc83a93..b31d4ae688917 100644 --- a/pkg/security/probe/custom_events.go +++ b/pkg/security/probe/custom_events.go @@ -16,6 +16,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/events" "github.com/DataDog/datadog-agent/pkg/security/proto/ebpfless" "github.com/DataDog/datadog-agent/pkg/security/resolvers/tags" + "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" "github.com/DataDog/datadog-agent/pkg/security/secl/model" "github.com/DataDog/datadog-agent/pkg/security/secl/rules" "github.com/DataDog/datadog-agent/pkg/security/seclog" @@ -86,7 +87,7 @@ func NewEBPFLessHelloMsgEvent(acc *events.AgentContainerContext, msg *ebpfless.H evt.Container.ID = msg.ContainerContext.ID if tagger != nil { - tags, err := tags.GetTagsOfContainer(tagger, msg.ContainerContext.ID) + tags, err := tags.GetTagsOfContainer(tagger, containerutils.ContainerID(msg.ContainerContext.ID)) if err != nil { seclog.Errorf("Failed to get tags for container %s: %v", msg.ContainerContext.ID, err) } else { diff --git a/pkg/security/probe/field_handlers_ebpf.go b/pkg/security/probe/field_handlers_ebpf.go index 9437a258b4dff..2f643304e1529 100644 --- a/pkg/security/probe/field_handlers_ebpf.go +++ b/pkg/security/probe/field_handlers_ebpf.go @@ -578,7 +578,7 @@ func (fh *EBPFFieldHandlers) ResolveContainerCreatedAt(ev *model.Event, e *model // ResolveContainerTags resolves the container tags of the event func (fh *EBPFFieldHandlers) ResolveContainerTags(_ *model.Event, e *model.ContainerContext) []string { if len(e.Tags) == 0 && e.ContainerID != "" { - e.Tags = fh.resolvers.TagsResolver.Resolve(string(e.ContainerID)) + e.Tags = fh.resolvers.TagsResolver.Resolve(e.ContainerID) } return e.Tags } diff --git a/pkg/security/probe/field_handlers_ebpfless.go b/pkg/security/probe/field_handlers_ebpfless.go index 1412808889772..13d10e972d287 100644 --- a/pkg/security/probe/field_handlers_ebpfless.go +++ b/pkg/security/probe/field_handlers_ebpfless.go @@ -198,7 +198,7 @@ func (fh *EBPFLessFieldHandlers) ResolveContainerCreatedAt(ev *model.Event, e *m // ResolveContainerTags resolves the container tags of the event func (fh *EBPFLessFieldHandlers) ResolveContainerTags(_ *model.Event, e *model.ContainerContext) []string { if len(e.Tags) == 0 && e.ContainerID != "" { - e.Tags = fh.resolvers.TagsResolver.Resolve(string(e.ContainerID)) + e.Tags = fh.resolvers.TagsResolver.Resolve(e.ContainerID) } return e.Tags } diff --git a/pkg/security/probe/probe.go b/pkg/security/probe/probe.go index 8956d953ce753..52fd27e3508c8 100644 --- a/pkg/security/probe/probe.go +++ b/pkg/security/probe/probe.go @@ -24,6 +24,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/metrics" "github.com/DataDog/datadog-agent/pkg/security/probe/kfilters" "github.com/DataDog/datadog-agent/pkg/security/secl/compiler/eval" + "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" "github.com/DataDog/datadog-agent/pkg/security/secl/model" "github.com/DataDog/datadog-agent/pkg/security/secl/rules" "github.com/DataDog/datadog-agent/pkg/security/seclog" @@ -54,7 +55,7 @@ type PlatformProbe interface { GetFieldHandlers() model.FieldHandlers DumpProcessCache(_ bool) (string, error) AddDiscarderPushedCallback(_ DiscarderPushedCallback) - GetEventTags(_ string) []string + GetEventTags(_ containerutils.ContainerID) []string GetProfileManager() interface{} EnableEnforcement(bool) } @@ -367,7 +368,7 @@ func (p *Probe) StatsPollingInterval() time.Duration { } // GetEventTags returns the event tags -func (p *Probe) GetEventTags(containerID string) []string { +func (p *Probe) GetEventTags(containerID containerutils.ContainerID) []string { return p.PlatformProbe.GetEventTags(containerID) } diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go index 679547e0ee055..84d38e34619e9 100644 --- a/pkg/security/probe/probe_ebpf.go +++ b/pkg/security/probe/probe_ebpf.go @@ -533,7 +533,7 @@ func (p *EBPFProbe) playSnapshot(notifyConsumers bool) { } func (p *EBPFProbe) sendAnomalyDetection(event *model.Event) { - tags := p.probe.GetEventTags(string(event.ContainerContext.ContainerID)) + tags := p.probe.GetEventTags(event.ContainerContext.ContainerID) if service := p.probe.GetService(event); service != "" { tags = append(tags, "service:"+service) } @@ -1267,7 +1267,7 @@ func (p *EBPFProbe) AddDiscarderPushedCallback(cb DiscarderPushedCallback) { } // GetEventTags returns the event tags -func (p *EBPFProbe) GetEventTags(containerID string) []string { +func (p *EBPFProbe) GetEventTags(containerID containerutils.ContainerID) []string { return p.Resolvers.TagsResolver.Resolve(containerID) } diff --git a/pkg/security/probe/probe_ebpfless.go b/pkg/security/probe/probe_ebpfless.go index aea829794c956..c7bfb2456e480 100644 --- a/pkg/security/probe/probe_ebpfless.go +++ b/pkg/security/probe/probe_ebpfless.go @@ -632,7 +632,7 @@ func (p *EBPFLessProbe) DumpProcessCache(withArgs bool) (string, error) { func (p *EBPFLessProbe) AddDiscarderPushedCallback(_ DiscarderPushedCallback) {} // GetEventTags returns the event tags -func (p *EBPFLessProbe) GetEventTags(containerID string) []string { +func (p *EBPFLessProbe) GetEventTags(containerID containerutils.ContainerID) []string { return p.Resolvers.TagsResolver.Resolve(containerID) } diff --git a/pkg/security/probe/probe_windows.go b/pkg/security/probe/probe_windows.go index a1aea80b06594..b4f954d7e96aa 100644 --- a/pkg/security/probe/probe_windows.go +++ b/pkg/security/probe/probe_windows.go @@ -26,6 +26,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/resolvers" "github.com/DataDog/datadog-agent/pkg/security/resolvers/process" "github.com/DataDog/datadog-agent/pkg/security/secl/compiler/eval" + "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" "github.com/DataDog/datadog-agent/pkg/security/secl/model" "github.com/DataDog/datadog-agent/pkg/security/secl/rules" "github.com/DataDog/datadog-agent/pkg/security/seclog" @@ -1455,7 +1456,7 @@ func (p *WindowsProbe) HandleActions(ctx *eval.Context, rule *rules.Rule) { func (p *WindowsProbe) AddDiscarderPushedCallback(_ DiscarderPushedCallback) {} // GetEventTags returns the event tags -func (p *WindowsProbe) GetEventTags(_ string) []string { +func (p *WindowsProbe) GetEventTags(_ containerutils.ContainerID) []string { return nil } diff --git a/pkg/security/resolvers/tags/resolver.go b/pkg/security/resolvers/tags/resolver.go index 99800bcbe4554..180fcefd9f025 100644 --- a/pkg/security/resolvers/tags/resolver.go +++ b/pkg/security/resolvers/tags/resolver.go @@ -10,6 +10,7 @@ import ( "context" "github.com/DataDog/datadog-agent/comp/core/tagger/types" + "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" "github.com/DataDog/datadog-agent/pkg/security/seclog" "github.com/DataDog/datadog-agent/pkg/security/utils" "github.com/DataDog/datadog-agent/pkg/util/log" @@ -35,9 +36,9 @@ type Tagger interface { type Resolver interface { Start(ctx context.Context) error Stop() error - Resolve(id string) []string - ResolveWithErr(fid string) ([]string, error) - GetValue(id string, tag string) string + Resolve(id containerutils.ContainerID) []string + ResolveWithErr(fid containerutils.ContainerID) ([]string, error) + GetValue(id containerutils.ContainerID, tag string) string } // DefaultResolver represents a default resolver based directly on the underlying tagger @@ -46,29 +47,29 @@ type DefaultResolver struct { } // Resolve returns the tags for the given id -func (t *DefaultResolver) Resolve(id string) []string { +func (t *DefaultResolver) Resolve(id containerutils.ContainerID) []string { tags, _ := t.ResolveWithErr(id) return tags } // ResolveWithErr returns the tags for the given id -func (t *DefaultResolver) ResolveWithErr(id string) ([]string, error) { +func (t *DefaultResolver) ResolveWithErr(id containerutils.ContainerID) ([]string, error) { return GetTagsOfContainer(t.tagger, id) } // GetTagsOfContainer returns the tags for the given container id // exported to share the code with other non-resolver users of tagger -func GetTagsOfContainer(tagger Tagger, containerID string) ([]string, error) { +func GetTagsOfContainer(tagger Tagger, containerID containerutils.ContainerID) ([]string, error) { if tagger == nil { return nil, nil } - entityID := types.NewEntityID(types.ContainerID, containerID) + entityID := types.NewEntityID(types.ContainerID, string(containerID)) return tagger.Tag(entityID, types.OrchestratorCardinality) } // GetValue return the tag value for the given id and tag name -func (t *DefaultResolver) GetValue(id string, tag string) string { +func (t *DefaultResolver) GetValue(id containerutils.ContainerID, tag string) string { return utils.GetTagValue(tag, t.Resolve(id)) } diff --git a/pkg/security/resolvers/tags/resolver_linux.go b/pkg/security/resolvers/tags/resolver_linux.go index b56ad3b0438d1..40f368062eae4 100644 --- a/pkg/security/resolvers/tags/resolver_linux.go +++ b/pkg/security/resolvers/tags/resolver_linux.go @@ -79,7 +79,7 @@ func (t *LinuxResolver) checkTags(workload *cgroupModel.CacheEntry) { // fetchTags fetches tags for the provided workload func (t *LinuxResolver) fetchTags(container *cgroupModel.CacheEntry) error { - newTags, err := t.ResolveWithErr(string(container.ContainerID)) + newTags, err := t.ResolveWithErr(container.ContainerID) if err != nil { return fmt.Errorf("failed to resolve %s: %w", container.ContainerID, err) } diff --git a/pkg/security/rules/engine.go b/pkg/security/rules/engine.go index adcd1556c290e..6b0f98fd15666 100644 --- a/pkg/security/rules/engine.go +++ b/pkg/security/rules/engine.go @@ -446,7 +446,7 @@ func (e *RuleEngine) RuleMatch(rule *rules.Rule, event eval.Event) bool { // the container tags might not be resolved yet if time.Unix(0, int64(ev.ContainerContext.CreatedAt)).Add(TagMaxResolutionDelay).After(time.Now()) { extTagsCb = func() []string { - return e.probe.GetEventTags(string(containerID)) + return e.probe.GetEventTags(containerID) } } } diff --git a/pkg/security/security_profile/dump/activity_dump.go b/pkg/security/security_profile/dump/activity_dump.go index 256d37b509c47..80d1bb2ebe011 100644 --- a/pkg/security/security_profile/dump/activity_dump.go +++ b/pkg/security/security_profile/dump/activity_dump.go @@ -29,6 +29,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/config" "github.com/DataDog/datadog-agent/pkg/security/proto/api" cgroupModel "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup/model" + "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" "github.com/DataDog/datadog-agent/pkg/security/secl/model" "github.com/DataDog/datadog-agent/pkg/security/secl/rules" "github.com/DataDog/datadog-agent/pkg/security/seclog" @@ -621,7 +622,7 @@ func (ad *ActivityDump) resolveTags() error { } var err error - ad.Tags, err = ad.adm.resolvers.TagsResolver.ResolveWithErr(ad.Metadata.ContainerID) + ad.Tags, err = ad.adm.resolvers.TagsResolver.ResolveWithErr(containerutils.ContainerID(ad.Metadata.ContainerID)) if err != nil { return fmt.Errorf("failed to resolve %s: %w", ad.Metadata.ContainerID, err) } From e79f4ad586d76084c0e740e1db493d2e4196ad8c Mon Sep 17 00:00:00 2001 From: Wassim Dhif Date: Fri, 29 Nov 2024 11:20:49 +0100 Subject: [PATCH 153/439] feat(kubernetes_admission_events): implement webhook (#30715) Signed-off-by: Wassim DHIF --- cmd/cluster-agent/admission/server.go | 27 +- .../subcommands/start/command.go | 1 + .../admission/controllers/webhook/config.go | 5 +- .../controllers/webhook/controller_base.go | 21 +- .../webhook/controller_base_test.go | 2 + .../controllers/webhook/controller_v1.go | 58 ++-- .../controllers/webhook/controller_v1_test.go | 136 +++++---- .../controllers/webhook/controller_v1beta1.go | 71 +++-- .../webhook/controller_v1beta1_test.go | 136 +++++---- .../mutate/agent_sidecar/agent_sidecar.go | 16 +- .../auto_instrumentation.go | 24 +- .../mutate/autoscaling/autoscaling.go | 36 ++- .../admission/mutate/config/config.go | 16 +- .../admission/mutate/config/config_test.go | 4 +- .../cwsinstrumentation/cws_instrumentation.go | 64 +++-- .../admission/mutate/tagsfromlabels/tags.go | 16 +- pkg/clusteragent/admission/start.go | 10 +- pkg/clusteragent/admission/util.go | 22 +- .../admission/validate/common/common.go | 21 +- .../kubernetesadmissionevents.go | 208 ++++++++++++++ .../kubernetesadmissionevents_test.go | 268 ++++++++++++++++++ pkg/config/setup/config.go | 1 + ...tes_admission_events-0a5f9edb3153df5e.yaml | 14 + 23 files changed, 924 insertions(+), 253 deletions(-) create mode 100644 pkg/clusteragent/admission/validate/kubernetesadmissionevents/kubernetesadmissionevents.go create mode 100644 pkg/clusteragent/admission/validate/kubernetesadmissionevents/kubernetesadmissionevents_test.go create mode 100644 releasenotes-dca/notes/kubernetes_admission_events-0a5f9edb3153df5e.yaml diff --git a/cmd/cluster-agent/admission/server.go b/cmd/cluster-agent/admission/server.go index 5af71864f65c1..ea53230e19a35 100644 --- a/cmd/cluster-agent/admission/server.go +++ b/cmd/cluster-agent/admission/server.go @@ -21,9 +21,12 @@ import ( "github.com/cihub/seelog" admiv1 "k8s.io/api/admission/v1" admiv1beta1 "k8s.io/api/admission/v1beta1" + admissionregistrationv1 "k8s.io/api/admissionregistration/v1" authenticationv1 "k8s.io/api/authentication/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/apimachinery/pkg/types" "k8s.io/client-go/dynamic" "k8s.io/client-go/kubernetes" @@ -40,14 +43,22 @@ const jsonContentType = "application/json" // Request contains the information of an admission request type Request struct { - // Raw is the raw request object - Raw []byte + // UID is the unique identifier of the AdmissionRequest + UID types.UID // Name is the name of the object Name string // Namespace is the namespace of the object Namespace string + // Kind is the kind of the object + Kind metav1.GroupVersionKind + // Operation is the operation of the request + Operation admissionregistrationv1.OperationType // UserInfo contains information about the requesting user UserInfo *authenticationv1.UserInfo + // Object is the new object being admitted. It is null for DELETE operations + Object []byte + // OldObject is the existing object. It is null for CREATE and CONNECT operations + OldObject []byte // DynamicClient holds a dynamic Kubernetes client DynamicClient dynamic.Interface // APIClient holds a Kubernetes client @@ -190,10 +201,14 @@ func (s *Server) handle(w http.ResponseWriter, r *http.Request, webhookName stri admissionReview := &admiv1.AdmissionReview{} admissionReview.SetGroupVersionKind(*gvk) admissionRequest := Request{ - Raw: admissionReviewReq.Request.Object.Raw, + UID: admissionReviewReq.Request.UID, + Kind: admissionReviewReq.Request.Kind, Name: admissionReviewReq.Request.Name, Namespace: admissionReviewReq.Request.Namespace, + Operation: admissionregistrationv1.OperationType(admissionReviewReq.Request.Operation), UserInfo: &admissionReviewReq.Request.UserInfo, + Object: admissionReviewReq.Request.Object.Raw, + OldObject: admissionReviewReq.Request.OldObject.Raw, DynamicClient: dc, APIClient: apiClient, } @@ -212,10 +227,14 @@ func (s *Server) handle(w http.ResponseWriter, r *http.Request, webhookName stri admissionReview := &admiv1beta1.AdmissionReview{} admissionReview.SetGroupVersionKind(*gvk) admissionRequest := Request{ - Raw: admissionReviewReq.Request.Object.Raw, + UID: admissionReviewReq.Request.UID, + Kind: admissionReviewReq.Request.Kind, Name: admissionReviewReq.Request.Name, Namespace: admissionReviewReq.Request.Namespace, + Operation: admissionregistrationv1.OperationType(admissionReviewReq.Request.Operation), UserInfo: &admissionReviewReq.Request.UserInfo, + Object: admissionReviewReq.Request.Object.Raw, + OldObject: admissionReviewReq.Request.OldObject.Raw, DynamicClient: dc, APIClient: apiClient, } diff --git a/cmd/cluster-agent/subcommands/start/command.go b/cmd/cluster-agent/subcommands/start/command.go index f85419780b657..f43ae03615401 100644 --- a/cmd/cluster-agent/subcommands/start/command.go +++ b/cmd/cluster-agent/subcommands/start/command.go @@ -479,6 +479,7 @@ func start(log log.Component, Client: apiCl.Cl, StopCh: stopCh, ValidatingStopCh: validatingStopCh, + Demultiplexer: demultiplexer, } webhooks, err := admissionpkg.StartControllers(admissionCtx, wmeta, pa, datadogConfig) diff --git a/pkg/clusteragent/admission/controllers/webhook/config.go b/pkg/clusteragent/admission/controllers/webhook/config.go index 03f29eaa19e5a..90cec93a8d8db 100644 --- a/pkg/clusteragent/admission/controllers/webhook/config.go +++ b/pkg/clusteragent/admission/controllers/webhook/config.go @@ -27,6 +27,7 @@ type Config struct { namespace string admissionV1Enabled bool namespaceSelectorEnabled bool + matchConditionsSupported bool svcName string svcPort int32 timeout int32 @@ -35,7 +36,7 @@ type Config struct { } // NewConfig creates a webhook controller configuration -func NewConfig(admissionV1Enabled, namespaceSelectorEnabled bool) Config { +func NewConfig(admissionV1Enabled, namespaceSelectorEnabled, matchConditionsSupported bool) Config { return Config{ webhookName: pkgconfigsetup.Datadog().GetString("admission_controller.webhook_name"), secretName: pkgconfigsetup.Datadog().GetString("admission_controller.certificate.secret_name"), @@ -44,6 +45,7 @@ func NewConfig(admissionV1Enabled, namespaceSelectorEnabled bool) Config { namespace: common.GetResourcesNamespace(), admissionV1Enabled: admissionV1Enabled, namespaceSelectorEnabled: namespaceSelectorEnabled, + matchConditionsSupported: matchConditionsSupported, svcName: pkgconfigsetup.Datadog().GetString("admission_controller.service_name"), svcPort: int32(443), timeout: pkgconfigsetup.Datadog().GetInt32("admission_controller.timeout_seconds"), @@ -59,6 +61,7 @@ func (w *Config) isMutationEnabled() bool { return w.mutationEnabled } func (w *Config) getSecretNs() string { return w.namespace } func (w *Config) useAdmissionV1() bool { return w.admissionV1Enabled } func (w *Config) useNamespaceSelector() bool { return w.namespaceSelectorEnabled } +func (w *Config) supportsMatchConditions() bool { return w.matchConditionsSupported } func (w *Config) getServiceNs() string { return w.namespace } func (w *Config) getServiceName() string { return w.svcName } func (w *Config) getServicePort() int32 { return w.svcPort } diff --git a/pkg/clusteragent/admission/controllers/webhook/controller_base.go b/pkg/clusteragent/admission/controllers/webhook/controller_base.go index 5124704395ea3..79114dac7397f 100644 --- a/pkg/clusteragent/admission/controllers/webhook/controller_base.go +++ b/pkg/clusteragent/admission/controllers/webhook/controller_base.go @@ -22,6 +22,7 @@ import ( "k8s.io/client-go/util/workqueue" "github.com/DataDog/datadog-agent/cmd/cluster-agent/admission" + "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" "github.com/DataDog/datadog-agent/comp/core/config" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" "github.com/DataDog/datadog-agent/pkg/clusteragent/admission/common" @@ -32,6 +33,7 @@ import ( configWebhook "github.com/DataDog/datadog-agent/pkg/clusteragent/admission/mutate/config" "github.com/DataDog/datadog-agent/pkg/clusteragent/admission/mutate/cwsinstrumentation" "github.com/DataDog/datadog-agent/pkg/clusteragent/admission/mutate/tagsfromlabels" + "github.com/DataDog/datadog-agent/pkg/clusteragent/admission/validate/kubernetesadmissionevents" "github.com/DataDog/datadog-agent/pkg/clusteragent/autoscaling/workload" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/util/log" @@ -55,11 +57,12 @@ func NewController( wmeta workloadmeta.Component, pa workload.PodPatcher, datadogConfig config.Component, + demultiplexer demultiplexer.Component, ) Controller { if config.useAdmissionV1() { - return NewControllerV1(client, secretInformer, validatingInformers.V1().ValidatingWebhookConfigurations(), mutatingInformers.V1().MutatingWebhookConfigurations(), isLeaderFunc, isLeaderNotif, config, wmeta, pa, datadogConfig) + return NewControllerV1(client, secretInformer, validatingInformers.V1().ValidatingWebhookConfigurations(), mutatingInformers.V1().MutatingWebhookConfigurations(), isLeaderFunc, isLeaderNotif, config, wmeta, pa, datadogConfig, demultiplexer) } - return NewControllerV1beta1(client, secretInformer, validatingInformers.V1beta1().ValidatingWebhookConfigurations(), mutatingInformers.V1beta1().MutatingWebhookConfigurations(), isLeaderFunc, isLeaderNotif, config, wmeta, pa, datadogConfig) + return NewControllerV1beta1(client, secretInformer, validatingInformers.V1beta1().ValidatingWebhookConfigurations(), mutatingInformers.V1beta1().MutatingWebhookConfigurations(), isLeaderFunc, isLeaderNotif, config, wmeta, pa, datadogConfig, demultiplexer) } // Webhook represents an admission webhook @@ -73,14 +76,18 @@ type Webhook interface { // Endpoint returns the endpoint of the webhook Endpoint() string // Resources returns the kubernetes resources for which the webhook should - // be invoked - Resources() []string + // be invoked. + // The key is the API group, and the value is a list of resources. + Resources() map[string][]string // Operations returns the operations on the resources specified for which // the webhook should be invoked Operations() []admiv1.OperationType // LabelSelectors returns the label selectors that specify when the webhook // should be invoked LabelSelectors(useNamespaceSelector bool) (namespaceSelector *metav1.LabelSelector, objectSelector *metav1.LabelSelector) + // MatchConditions returns the Match Conditions used for fine-grained + // request filtering + MatchConditions() []admiv1.MatchCondition // WebhookFunc runs the logic of the webhook and returns the admission response WebhookFunc() admission.WebhookFunc } @@ -91,7 +98,7 @@ type Webhook interface { // The reason is that the volume mount for the APM socket added by the configWebhook webhook // doesn't always work on Fargate (one of the envs where we use an agent sidecar), and // the agent sidecar webhook needs to remove it. -func (c *controllerBase) generateWebhooks(wmeta workloadmeta.Component, pa workload.PodPatcher, datadogConfig config.Component) []Webhook { +func (c *controllerBase) generateWebhooks(wmeta workloadmeta.Component, pa workload.PodPatcher, datadogConfig config.Component, demultiplexer demultiplexer.Component) []Webhook { // Note: the auto_instrumentation pod injection filter is used across // multiple mutating webhooks, so we add it as a hard dependency to each // of the components that use it via the injectionFilter parameter. @@ -106,7 +113,9 @@ func (c *controllerBase) generateWebhooks(wmeta workloadmeta.Component, pa workl // Add Validating webhooks. if c.config.isValidationEnabled() { // Future validating webhooks can be added here. - validatingWebhooks = []Webhook{} + validatingWebhooks = []Webhook{ + kubernetesadmissionevents.NewWebhook(datadogConfig, demultiplexer, c.config.supportsMatchConditions()), + } webhooks = append(webhooks, validatingWebhooks...) } diff --git a/pkg/clusteragent/admission/controllers/webhook/controller_base_test.go b/pkg/clusteragent/admission/controllers/webhook/controller_base_test.go index bd26ed5f52bf5..c202f1ab38f25 100644 --- a/pkg/clusteragent/admission/controllers/webhook/controller_base_test.go +++ b/pkg/clusteragent/admission/controllers/webhook/controller_base_test.go @@ -40,6 +40,7 @@ func TestNewController(t *testing.T) { wmeta, nil, datadogConfig, + nil, ) assert.IsType(t, &ControllerV1{}, controller) @@ -56,6 +57,7 @@ func TestNewController(t *testing.T) { wmeta, nil, datadogConfig, + nil, ) assert.IsType(t, &ControllerV1beta1{}, controller) diff --git a/pkg/clusteragent/admission/controllers/webhook/controller_v1.go b/pkg/clusteragent/admission/controllers/webhook/controller_v1.go index 7724246423473..003ccbe10986a 100644 --- a/pkg/clusteragent/admission/controllers/webhook/controller_v1.go +++ b/pkg/clusteragent/admission/controllers/webhook/controller_v1.go @@ -24,6 +24,7 @@ import ( "k8s.io/client-go/tools/cache" "k8s.io/client-go/util/workqueue" + "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" "github.com/DataDog/datadog-agent/comp/core/config" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" "github.com/DataDog/datadog-agent/pkg/clusteragent/admission/common" @@ -57,6 +58,7 @@ func NewControllerV1( wmeta workloadmeta.Component, pa workload.PodPatcher, datadogConfig config.Component, + demultiplexer demultiplexer.Component, ) *ControllerV1 { controller := &ControllerV1{} controller.clientSet = client @@ -74,7 +76,7 @@ func NewControllerV1( ) controller.isLeaderFunc = isLeaderFunc controller.isLeaderNotif = isLeaderNotif - controller.webhooks = controller.generateWebhooks(wmeta, pa, datadogConfig) + controller.webhooks = controller.generateWebhooks(wmeta, pa, datadogConfig, demultiplexer) controller.generateTemplates() if _, err := secretInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ @@ -326,6 +328,7 @@ func (c *ControllerV1) generateTemplates() { webhook.Resources(), nsSelector, objSelector, + webhook.MatchConditions(), ), ) } @@ -347,13 +350,14 @@ func (c *ControllerV1) generateTemplates() { webhook.Resources(), nsSelector, objSelector, + webhook.MatchConditions(), ), ) } c.mutatingWebhookTemplates = mutatingWebhooks } -func (c *ControllerV1) getValidatingWebhookSkeleton(nameSuffix, path string, operations []admiv1.OperationType, resources []string, namespaceSelector, objectSelector *metav1.LabelSelector) admiv1.ValidatingWebhook { +func (c *ControllerV1) getValidatingWebhookSkeleton(nameSuffix, path string, operations []admiv1.OperationType, resourcesMap map[string][]string, namespaceSelector, objectSelector *metav1.LabelSelector, matchConditions []admiv1.MatchCondition) admiv1.ValidatingWebhook { matchPolicy := admiv1.Exact sideEffects := admiv1.SideEffectClassNone port := c.config.getServicePort() @@ -370,16 +374,6 @@ func (c *ControllerV1) getValidatingWebhookSkeleton(nameSuffix, path string, ope Path: &path, }, }, - Rules: []admiv1.RuleWithOperations{ - { - Operations: operations, - Rule: admiv1.Rule{ - APIGroups: []string{""}, - APIVersions: []string{"v1"}, - Resources: resources, - }, - }, - }, FailurePolicy: &failurePolicy, MatchPolicy: &matchPolicy, SideEffects: &sideEffects, @@ -387,12 +381,26 @@ func (c *ControllerV1) getValidatingWebhookSkeleton(nameSuffix, path string, ope AdmissionReviewVersions: []string{"v1", "v1beta1"}, NamespaceSelector: namespaceSelector, ObjectSelector: objectSelector, + MatchConditions: matchConditions, + } + + for group, resources := range resourcesMap { + for _, resource := range resources { + webhook.Rules = append(webhook.Rules, admiv1.RuleWithOperations{ + Operations: operations, + Rule: admiv1.Rule{ + APIGroups: []string{group}, + APIVersions: []string{"v1"}, + Resources: []string{resource}, + }, + }) + } } return webhook } -func (c *ControllerV1) getMutatingWebhookSkeleton(nameSuffix, path string, operations []admiv1.OperationType, resources []string, namespaceSelector, objectSelector *metav1.LabelSelector) admiv1.MutatingWebhook { +func (c *ControllerV1) getMutatingWebhookSkeleton(nameSuffix, path string, operations []admiv1.OperationType, resourcesMap map[string][]string, namespaceSelector, objectSelector *metav1.LabelSelector, matchConditions []admiv1.MatchCondition) admiv1.MutatingWebhook { matchPolicy := admiv1.Exact sideEffects := admiv1.SideEffectClassNone port := c.config.getServicePort() @@ -410,16 +418,6 @@ func (c *ControllerV1) getMutatingWebhookSkeleton(nameSuffix, path string, opera Path: &path, }, }, - Rules: []admiv1.RuleWithOperations{ - { - Operations: operations, - Rule: admiv1.Rule{ - APIGroups: []string{""}, - APIVersions: []string{"v1"}, - Resources: resources, - }, - }, - }, ReinvocationPolicy: &reinvocationPolicy, FailurePolicy: &failurePolicy, MatchPolicy: &matchPolicy, @@ -428,6 +426,20 @@ func (c *ControllerV1) getMutatingWebhookSkeleton(nameSuffix, path string, opera AdmissionReviewVersions: []string{"v1", "v1beta1"}, NamespaceSelector: namespaceSelector, ObjectSelector: objectSelector, + MatchConditions: matchConditions, + } + + for group, resources := range resourcesMap { + for _, resource := range resources { + webhook.Rules = append(webhook.Rules, admiv1.RuleWithOperations{ + Operations: operations, + Rule: admiv1.Rule{ + APIGroups: []string{group}, + APIVersions: []string{"v1"}, + Resources: []string{resource}, + }, + }) + } } return webhook diff --git a/pkg/clusteragent/admission/controllers/webhook/controller_v1_test.go b/pkg/clusteragent/admission/controllers/webhook/controller_v1_test.go index 62ea3440551de..a20efbcdcf1e9 100644 --- a/pkg/clusteragent/admission/controllers/webhook/controller_v1_test.go +++ b/pkg/clusteragent/admission/controllers/webhook/controller_v1_test.go @@ -42,7 +42,7 @@ const ( tick = 50 * time.Millisecond ) -var v1Cfg = NewConfig(true, false) +var v1Cfg = NewConfig(true, false, false) func TestSecretNotFoundV1(t *testing.T) { f := newFixtureV1(t) @@ -170,21 +170,21 @@ func TestAdmissionControllerFailureModeV1(t *testing.T) { for _, value := range []string{"Ignore", "ignore", "BadVal", ""} { mockConfig.SetWithoutSource("admission_controller.failure_policy", value) - c.config = NewConfig(true, false) + c.config = NewConfig(true, false, false) - validatingWebhookSkeleton := c.getValidatingWebhookSkeleton("foo", "/bar", []admiv1.OperationType{admiv1.Create}, []string{"pods"}, nil, nil) + validatingWebhookSkeleton := c.getValidatingWebhookSkeleton("foo", "/bar", []admiv1.OperationType{admiv1.Create}, map[string][]string{"": {"pods"}}, nil, nil, nil) assert.Equal(t, admiv1.Ignore, *validatingWebhookSkeleton.FailurePolicy) - mutatingWebhookSkeleton := c.getMutatingWebhookSkeleton("foo", "/bar", []admiv1.OperationType{admiv1.Create}, []string{"pods"}, nil, nil) + mutatingWebhookSkeleton := c.getMutatingWebhookSkeleton("foo", "/bar", []admiv1.OperationType{admiv1.Create}, map[string][]string{"": {"pods"}}, nil, nil, nil) assert.Equal(t, admiv1.Ignore, *mutatingWebhookSkeleton.FailurePolicy) } for _, value := range []string{"Fail", "fail"} { mockConfig.SetWithoutSource("admission_controller.failure_policy", value) - c.config = NewConfig(true, false) + c.config = NewConfig(true, false, false) - validatingWebhookSkeleton := c.getValidatingWebhookSkeleton("foo", "/bar", []admiv1.OperationType{admiv1.Create}, []string{"pods"}, nil, nil) + validatingWebhookSkeleton := c.getValidatingWebhookSkeleton("foo", "/bar", []admiv1.OperationType{admiv1.Create}, map[string][]string{"": {"pods"}}, nil, nil, nil) assert.Equal(t, admiv1.Fail, *validatingWebhookSkeleton.FailurePolicy) - mutatingWebhookSkeleton := c.getMutatingWebhookSkeleton("foo", "/bar", []admiv1.OperationType{admiv1.Create}, []string{"pods"}, nil, nil) + mutatingWebhookSkeleton := c.getMutatingWebhookSkeleton("foo", "/bar", []admiv1.OperationType{admiv1.Create}, map[string][]string{"": {"pods"}}, nil, nil, nil) assert.Equal(t, admiv1.Fail, *mutatingWebhookSkeleton.FailurePolicy) } } @@ -196,9 +196,9 @@ func TestAdmissionControllerReinvocationPolicyV1(t *testing.T) { for _, value := range []string{"IfNeeded", "ifneeded", "Never", "never", "wrong", ""} { mockConfig.SetWithoutSource("admission_controller.reinvocationpolicy", value) - c.config = NewConfig(true, false) + c.config = NewConfig(true, false, false) - mutatingWebhookSkeleton := c.getMutatingWebhookSkeleton("foo", "/bar", []admiv1.OperationType{admiv1.Create}, []string{"pods"}, nil, nil) + mutatingWebhookSkeleton := c.getMutatingWebhookSkeleton("foo", "/bar", []admiv1.OperationType{admiv1.Create}, map[string][]string{"": {"pods"}}, nil, nil, nil) assert.Equal(t, admiv1.IfNeededReinvocationPolicy, *mutatingWebhookSkeleton.ReinvocationPolicy) } } @@ -210,7 +210,7 @@ func TestGenerateTemplatesV1(t *testing.T) { sideEffects := admiv1.SideEffectClassNone port := int32(443) timeout := pkgconfigsetup.Datadog().GetInt32("admission_controller.timeout_seconds") - webhook := func(name, path string, objSelector, nsSelector *metav1.LabelSelector, operations []admiv1.OperationType, resources []string) admiv1.MutatingWebhook { + webhook := func(name, path string, objSelector, nsSelector *metav1.LabelSelector, matchConditions []admiv1.MatchCondition, operations []admiv1.OperationType, resources []string) admiv1.MutatingWebhook { return admiv1.MutatingWebhook{ Name: name, ClientConfig: admiv1.WebhookClientConfig{ @@ -239,6 +239,7 @@ func TestGenerateTemplatesV1(t *testing.T) { AdmissionReviewVersions: []string{"v1", "v1beta1"}, ObjectSelector: objSelector, NamespaceSelector: nsSelector, + MatchConditions: matchConditions, } } tests := []struct { @@ -256,7 +257,7 @@ func TestGenerateTemplatesV1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.auto_instrumentation.enabled", false) mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.enabled", false) }, - configFunc: func() Config { return NewConfig(false, false) }, + configFunc: func() Config { return NewConfig(false, false, false) }, want: func() []admiv1.MutatingWebhook { webhook := webhook("datadog.webhook.agent.config", "/injectconfig", &metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ @@ -266,7 +267,7 @@ func TestGenerateTemplatesV1(t *testing.T) { Values: []string{"false"}, }, }, - }, nil, []admiv1.OperationType{admiv1.Create}, []string{"pods"}) + }, nil, []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Create}, []string{"pods"}) return []admiv1.MutatingWebhook{webhook} }, }, @@ -279,13 +280,13 @@ func TestGenerateTemplatesV1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.auto_instrumentation.enabled", false) mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.enabled", false) }, - configFunc: func() Config { return NewConfig(false, false) }, + configFunc: func() Config { return NewConfig(false, false, false) }, want: func() []admiv1.MutatingWebhook { webhook := webhook("datadog.webhook.agent.config", "/injectconfig", &metav1.LabelSelector{ MatchLabels: map[string]string{ "admission.datadoghq.com/enabled": "true", }, - }, nil, []admiv1.OperationType{admiv1.Create}, []string{"pods"}) + }, nil, []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Create}, []string{"pods"}) return []admiv1.MutatingWebhook{webhook} }, }, @@ -298,7 +299,7 @@ func TestGenerateTemplatesV1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.auto_instrumentation.enabled", false) mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.enabled", false) }, - configFunc: func() Config { return NewConfig(false, false) }, + configFunc: func() Config { return NewConfig(false, false, false) }, want: func() []admiv1.MutatingWebhook { webhook := webhook("datadog.webhook.standard.tags", "/injecttags", &metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ @@ -308,7 +309,7 @@ func TestGenerateTemplatesV1(t *testing.T) { Values: []string{"false"}, }, }, - }, nil, []admiv1.OperationType{admiv1.Create}, []string{"pods"}) + }, nil, []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Create}, []string{"pods"}) return []admiv1.MutatingWebhook{webhook} }, }, @@ -321,13 +322,13 @@ func TestGenerateTemplatesV1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.auto_instrumentation.enabled", false) mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.enabled", false) }, - configFunc: func() Config { return NewConfig(false, false) }, + configFunc: func() Config { return NewConfig(false, false, false) }, want: func() []admiv1.MutatingWebhook { webhook := webhook("datadog.webhook.standard.tags", "/injecttags", &metav1.LabelSelector{ MatchLabels: map[string]string{ "admission.datadoghq.com/enabled": "true", }, - }, nil, []admiv1.OperationType{admiv1.Create}, []string{"pods"}) + }, nil, []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Create}, []string{"pods"}) return []admiv1.MutatingWebhook{webhook} }, }, @@ -340,7 +341,7 @@ func TestGenerateTemplatesV1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.auto_instrumentation.enabled", true) mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.enabled", false) }, - configFunc: func() Config { return NewConfig(false, false) }, + configFunc: func() Config { return NewConfig(false, false, false) }, want: func() []admiv1.MutatingWebhook { webhook := webhook("datadog.webhook.lib.injection", "/injectlib", &metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ @@ -350,7 +351,7 @@ func TestGenerateTemplatesV1(t *testing.T) { Values: []string{"false"}, }, }, - }, nil, []admiv1.OperationType{admiv1.Create}, []string{"pods"}) + }, nil, []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Create}, []string{"pods"}) return []admiv1.MutatingWebhook{webhook} }, }, @@ -363,13 +364,13 @@ func TestGenerateTemplatesV1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.auto_instrumentation.enabled", true) mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.enabled", false) }, - configFunc: func() Config { return NewConfig(false, false) }, + configFunc: func() Config { return NewConfig(false, false, false) }, want: func() []admiv1.MutatingWebhook { webhook := webhook("datadog.webhook.lib.injection", "/injectlib", &metav1.LabelSelector{ MatchLabels: map[string]string{ "admission.datadoghq.com/enabled": "true", }, - }, nil, []admiv1.OperationType{admiv1.Create}, []string{"pods"}) + }, nil, []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Create}, []string{"pods"}) return []admiv1.MutatingWebhook{webhook} }, }, @@ -381,18 +382,18 @@ func TestGenerateTemplatesV1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.auto_instrumentation.enabled", false) mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.enabled", false) }, - configFunc: func() Config { return NewConfig(false, false) }, + configFunc: func() Config { return NewConfig(false, false, false) }, want: func() []admiv1.MutatingWebhook { webhookConfig := webhook("datadog.webhook.agent.config", "/injectconfig", &metav1.LabelSelector{ MatchLabels: map[string]string{ "admission.datadoghq.com/enabled": "true", }, - }, nil, []admiv1.OperationType{admiv1.Create}, []string{"pods"}) + }, nil, []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Create}, []string{"pods"}) webhookTags := webhook("datadog.webhook.standard.tags", "/injecttags", &metav1.LabelSelector{ MatchLabels: map[string]string{ "admission.datadoghq.com/enabled": "true", }, - }, nil, []admiv1.OperationType{admiv1.Create}, []string{"pods"}) + }, nil, []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Create}, []string{"pods"}) return []admiv1.MutatingWebhook{webhookConfig, webhookTags} }, }, @@ -405,7 +406,7 @@ func TestGenerateTemplatesV1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.auto_instrumentation.enabled", false) mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.enabled", false) }, - configFunc: func() Config { return NewConfig(false, false) }, + configFunc: func() Config { return NewConfig(false, false, false) }, want: func() []admiv1.MutatingWebhook { webhookConfig := webhook("datadog.webhook.agent.config", "/injectconfig", &metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ @@ -415,7 +416,7 @@ func TestGenerateTemplatesV1(t *testing.T) { Values: []string{"false"}, }, }, - }, nil, []admiv1.OperationType{admiv1.Create}, []string{"pods"}) + }, nil, []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Create}, []string{"pods"}) webhookTags := webhook("datadog.webhook.standard.tags", "/injecttags", &metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ { @@ -424,7 +425,7 @@ func TestGenerateTemplatesV1(t *testing.T) { Values: []string{"false"}, }, }, - }, nil, []admiv1.OperationType{admiv1.Create}, []string{"pods"}) + }, nil, []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Create}, []string{"pods"}) return []admiv1.MutatingWebhook{webhookConfig, webhookTags} }, }, @@ -438,18 +439,18 @@ func TestGenerateTemplatesV1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.namespace_selector_fallback", true) mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.enabled", false) }, - configFunc: func() Config { return NewConfig(false, true) }, + configFunc: func() Config { return NewConfig(false, true, false) }, want: func() []admiv1.MutatingWebhook { webhookConfig := webhook("datadog.webhook.agent.config", "/injectconfig", nil, &metav1.LabelSelector{ MatchLabels: map[string]string{ "admission.datadoghq.com/enabled": "true", }, - }, []admiv1.OperationType{admiv1.Create}, []string{"pods"}) + }, []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Create}, []string{"pods"}) webhookTags := webhook("datadog.webhook.standard.tags", "/injecttags", nil, &metav1.LabelSelector{ MatchLabels: map[string]string{ "admission.datadoghq.com/enabled": "true", }, - }, []admiv1.OperationType{admiv1.Create}, []string{"pods"}) + }, []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Create}, []string{"pods"}) return []admiv1.MutatingWebhook{webhookConfig, webhookTags} }, }, @@ -464,7 +465,7 @@ func TestGenerateTemplatesV1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.inject_tags.enabled", false) mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.enabled", false) }, - configFunc: func() Config { return NewConfig(false, false) }, + configFunc: func() Config { return NewConfig(false, false, false) }, want: func() []admiv1.MutatingWebhook { webhook := webhook( "datadog.webhook.agent.config", @@ -496,6 +497,7 @@ func TestGenerateTemplatesV1(t *testing.T) { }, }, }, + []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Create}, []string{"pods"}, ) @@ -513,7 +515,7 @@ func TestGenerateTemplatesV1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.auto_instrumentation.enabled", false) mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.enabled", false) }, - configFunc: func() Config { return NewConfig(false, true) }, + configFunc: func() Config { return NewConfig(false, true, false) }, want: func() []admiv1.MutatingWebhook { webhook := webhook( "datadog.webhook.agent.config", @@ -542,6 +544,7 @@ func TestGenerateTemplatesV1(t *testing.T) { }, }, }, + []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Create}, []string{"pods"}, ) @@ -560,7 +563,7 @@ func TestGenerateTemplatesV1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.mutate_unlabelled", true) mockConfig.SetWithoutSource("cluster_agent.service_account_name", "datadog-cluster-agent") }, - configFunc: func() Config { return NewConfig(true, false) }, + configFunc: func() Config { return NewConfig(true, false, false) }, want: func() []admiv1.MutatingWebhook { podWebhook := webhook( "datadog.webhook.cws.pod.instrumentation", @@ -575,6 +578,7 @@ func TestGenerateTemplatesV1(t *testing.T) { }, }, nil, + []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Create}, []string{"pods"}, ) @@ -583,6 +587,7 @@ func TestGenerateTemplatesV1(t *testing.T) { "/inject-command-cws", nil, nil, + []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Connect}, []string{"pods/exec"}, ) @@ -601,7 +606,7 @@ func TestGenerateTemplatesV1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.mutate_unlabelled", false) mockConfig.SetWithoutSource("cluster_agent.service_account_name", "datadog-cluster-agent") }, - configFunc: func() Config { return NewConfig(true, false) }, + configFunc: func() Config { return NewConfig(true, false, false) }, want: func() []admiv1.MutatingWebhook { podWebhook := webhook( "datadog.webhook.cws.pod.instrumentation", @@ -612,6 +617,7 @@ func TestGenerateTemplatesV1(t *testing.T) { }, }, nil, + []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Create}, []string{"pods"}, ) @@ -620,6 +626,7 @@ func TestGenerateTemplatesV1(t *testing.T) { "/inject-command-cws", nil, nil, + []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Connect}, []string{"pods/exec"}, ) @@ -638,7 +645,7 @@ func TestGenerateTemplatesV1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.mutate_unlabelled", true) mockConfig.SetWithoutSource("cluster_agent.service_account_name", "datadog-cluster-agent") }, - configFunc: func() Config { return NewConfig(true, true) }, + configFunc: func() Config { return NewConfig(true, true, false) }, want: func() []admiv1.MutatingWebhook { podWebhook := webhook( "datadog.webhook.cws.pod.instrumentation", @@ -653,6 +660,7 @@ func TestGenerateTemplatesV1(t *testing.T) { }, }, }, + []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Create}, []string{"pods"}, ) @@ -661,6 +669,7 @@ func TestGenerateTemplatesV1(t *testing.T) { "/inject-command-cws", nil, nil, + []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Connect}, []string{"pods/exec"}, ) @@ -679,7 +688,7 @@ func TestGenerateTemplatesV1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.mutate_unlabelled", false) mockConfig.SetWithoutSource("cluster_agent.service_account_name", "datadog-cluster-agent") }, - configFunc: func() Config { return NewConfig(true, true) }, + configFunc: func() Config { return NewConfig(true, true, false) }, want: func() []admiv1.MutatingWebhook { podWebhook := webhook( "datadog.webhook.cws.pod.instrumentation", @@ -690,6 +699,7 @@ func TestGenerateTemplatesV1(t *testing.T) { cwsinstrumentation.PodLabelEnabled: "true", }, }, + []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Create}, []string{"pods"}, ) @@ -698,6 +708,7 @@ func TestGenerateTemplatesV1(t *testing.T) { "/inject-command-cws", nil, nil, + []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Connect}, []string{"pods/exec"}, ) @@ -719,7 +730,7 @@ func TestGenerateTemplatesV1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.agent_sidecar.selectors", "[]") mockConfig.SetWithoutSource("admission_controller.agent_sidecar.profiles", "misconfigured") }, - configFunc: func() Config { return NewConfig(true, true) }, + configFunc: func() Config { return NewConfig(true, true, false) }, want: func() []admiv1.MutatingWebhook { return []admiv1.MutatingWebhook{} }, @@ -739,7 +750,7 @@ func TestGenerateTemplatesV1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.agent_sidecar.selectors", "[]") mockConfig.SetWithoutSource("admission_controller.agent_sidecar.profiles", "[]") }, - configFunc: func() Config { return NewConfig(true, true) }, + configFunc: func() Config { return NewConfig(true, true, false) }, want: func() []admiv1.MutatingWebhook { podWebhook := webhook( "datadog.webhook.agent.sidecar", @@ -750,6 +761,7 @@ func TestGenerateTemplatesV1(t *testing.T) { }, }, nil, + []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Create}, []string{"pods"}, ) @@ -771,7 +783,7 @@ func TestGenerateTemplatesV1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.agent_sidecar.selectors", "[]") mockConfig.SetWithoutSource("admission_controller.agent_sidecar.profiles", "[]") }, - configFunc: func() Config { return NewConfig(true, true) }, + configFunc: func() Config { return NewConfig(true, true, false) }, want: func() []admiv1.MutatingWebhook { return []admiv1.MutatingWebhook{} }, @@ -791,7 +803,7 @@ func TestGenerateTemplatesV1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.agent_sidecar.selectors", "[]") mockConfig.SetWithoutSource("admission_controller.agent_sidecar.profiles", "[]") }, - configFunc: func() Config { return NewConfig(true, true) }, + configFunc: func() Config { return NewConfig(true, true, false) }, want: func() []admiv1.MutatingWebhook { return []admiv1.MutatingWebhook{} }, @@ -811,7 +823,7 @@ func TestGenerateTemplatesV1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.agent_sidecar.selectors", "[{\"NamespaceSelector\": {\"MatchLabels\": {\"labelKey\": \"labelVal\"}}}]") mockConfig.SetWithoutSource("admission_controller.agent_sidecar.profiles", "[]") }, - configFunc: func() Config { return NewConfig(true, true) }, + configFunc: func() Config { return NewConfig(true, true, false) }, want: func() []admiv1.MutatingWebhook { podWebhook := webhook( "datadog.webhook.agent.sidecar", @@ -820,6 +832,7 @@ func TestGenerateTemplatesV1(t *testing.T) { &metav1.LabelSelector{ MatchLabels: map[string]string{"labelKey": "labelVal"}, }, + []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Create}, []string{"pods"}, ) @@ -841,7 +854,7 @@ func TestGenerateTemplatesV1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.agent_sidecar.selectors", "[{\"ObjectSelector\": {\"MatchLabels\": {\"labelKey\": \"labelVal\"}}}]") mockConfig.SetWithoutSource("admission_controller.agent_sidecar.profiles", "[]") }, - configFunc: func() Config { return NewConfig(true, true) }, + configFunc: func() Config { return NewConfig(true, true, false) }, want: func() []admiv1.MutatingWebhook { return []admiv1.MutatingWebhook{} }, @@ -861,13 +874,14 @@ func TestGenerateTemplatesV1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.agent_sidecar.selectors", "[{\"ObjectSelector\": {\"MatchLabels\": {\"labelKey\": \"labelVal\"}}}]") mockConfig.SetWithoutSource("admission_controller.agent_sidecar.profiles", "[]") }, - configFunc: func() Config { return NewConfig(true, true) }, + configFunc: func() Config { return NewConfig(true, true, false) }, want: func() []admiv1.MutatingWebhook { podWebhook := webhook( "datadog.webhook.agent.sidecar", "/agentsidecar", &metav1.LabelSelector{MatchLabels: map[string]string{"labelKey": "labelVal"}}, &metav1.LabelSelector{}, + []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Create}, []string{"pods"}, ) @@ -889,13 +903,14 @@ func TestGenerateTemplatesV1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.agent_sidecar.selectors", "[{\"ObjectSelector\": {\"MatchLabels\": {\"labelKey1\": \"labelVal1\"}}, \"NamespaceSelector\": {\"MatchLabels\": {\"labelKey2\": \"labelVal2\"}}}]") mockConfig.SetWithoutSource("admission_controller.agent_sidecar.profiles", "[]") }, - configFunc: func() Config { return NewConfig(true, true) }, + configFunc: func() Config { return NewConfig(true, true, false) }, want: func() []admiv1.MutatingWebhook { podWebhook := webhook( "datadog.webhook.agent.sidecar", "/agentsidecar", &metav1.LabelSelector{MatchLabels: map[string]string{"labelKey1": "labelVal1"}}, &metav1.LabelSelector{MatchLabels: map[string]string{"labelKey2": "labelVal2"}}, + []admiv1.MatchCondition{}, []admiv1.OperationType{admiv1.Create}, []string{"pods"}, ) @@ -917,7 +932,7 @@ func TestGenerateTemplatesV1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.agent_sidecar.selectors", "[{\"NamespaceSelector\": {\"MatchLabels\":{\"labelKey1\": \"labelVal1\"}}} , {\"ObjectSelector\": {\"MatchLabels\": {\"labelKey2\": \"labelVal2\"}}}]") mockConfig.SetWithoutSource("admission_controller.agent_sidecar.profiles", "[]") }, - configFunc: func() Config { return NewConfig(true, true) }, + configFunc: func() Config { return NewConfig(true, true, false) }, want: func() []admiv1.MutatingWebhook { return []admiv1.MutatingWebhook{} }, @@ -937,7 +952,7 @@ func TestGenerateTemplatesV1(t *testing.T) { c := &ControllerV1{} c.config = tt.configFunc() - c.webhooks = c.generateWebhooks(wmeta, nil, mockConfig) + c.webhooks = c.generateWebhooks(wmeta, nil, mockConfig, nil) c.generateTemplates() assert.EqualValues(t, tt.want(), c.mutatingWebhookTemplates) @@ -956,7 +971,7 @@ func TestGetValidatingWebhookSkeletonV1(t *testing.T) { customTimeout := int32(2) namespaceSelector, _ := common.DefaultLabelSelectors(true) _, objectSelector := common.DefaultLabelSelectors(false) - webhook := func(to *int32, objSelector, nsSelector *metav1.LabelSelector) admiv1.ValidatingWebhook { + webhook := func(to *int32, objSelector, nsSelector *metav1.LabelSelector, matchConditions []admiv1.MatchCondition) admiv1.ValidatingWebhook { return admiv1.ValidatingWebhook{ Name: "datadog.webhook.foo", ClientConfig: admiv1.WebhookClientConfig{ @@ -986,6 +1001,7 @@ func TestGetValidatingWebhookSkeletonV1(t *testing.T) { AdmissionReviewVersions: []string{"v1", "v1beta1"}, ObjectSelector: objSelector, NamespaceSelector: nsSelector, + MatchConditions: matchConditions, } } type args struct { @@ -1006,7 +1022,7 @@ func TestGetValidatingWebhookSkeletonV1(t *testing.T) { path: "/bar", }, namespaceSelector: false, - want: webhook(&defaultTimeout, objectSelector, nil), + want: webhook(&defaultTimeout, objectSelector, nil, nil), }, { name: "namespace selector", @@ -1015,7 +1031,7 @@ func TestGetValidatingWebhookSkeletonV1(t *testing.T) { path: "/bar", }, namespaceSelector: true, - want: webhook(&defaultTimeout, nil, namespaceSelector), + want: webhook(&defaultTimeout, nil, namespaceSelector, nil), }, { name: "custom timeout", @@ -1025,7 +1041,7 @@ func TestGetValidatingWebhookSkeletonV1(t *testing.T) { }, timeout: &customTimeout, namespaceSelector: false, - want: webhook(&customTimeout, objectSelector, nil), + want: webhook(&customTimeout, objectSelector, nil, nil), }, } @@ -1039,11 +1055,11 @@ func TestGetValidatingWebhookSkeletonV1(t *testing.T) { } c := &ControllerV1{} - c.config = NewConfig(false, tt.namespaceSelector) + c.config = NewConfig(false, tt.namespaceSelector, false) nsSelector, objSelector := common.DefaultLabelSelectors(tt.namespaceSelector) - assert.EqualValues(t, tt.want, c.getValidatingWebhookSkeleton(tt.args.nameSuffix, tt.args.path, []admiv1.OperationType{admiv1.Create}, []string{"pods"}, nsSelector, objSelector)) + assert.EqualValues(t, tt.want, c.getValidatingWebhookSkeleton(tt.args.nameSuffix, tt.args.path, []admiv1.OperationType{admiv1.Create}, map[string][]string{"": {"pods"}}, nsSelector, objSelector, nil)) }) } } @@ -1060,7 +1076,7 @@ func TestGetMutatingWebhookSkeletonV1(t *testing.T) { customTimeout := int32(2) namespaceSelector, _ := common.DefaultLabelSelectors(true) _, objectSelector := common.DefaultLabelSelectors(false) - webhook := func(to *int32, objSelector, nsSelector *metav1.LabelSelector) admiv1.MutatingWebhook { + webhook := func(to *int32, objSelector, nsSelector *metav1.LabelSelector, matchConditions []admiv1.MatchCondition) admiv1.MutatingWebhook { return admiv1.MutatingWebhook{ Name: "datadog.webhook.foo", ClientConfig: admiv1.WebhookClientConfig{ @@ -1091,6 +1107,7 @@ func TestGetMutatingWebhookSkeletonV1(t *testing.T) { AdmissionReviewVersions: []string{"v1", "v1beta1"}, ObjectSelector: objSelector, NamespaceSelector: nsSelector, + MatchConditions: matchConditions, } } type args struct { @@ -1111,7 +1128,7 @@ func TestGetMutatingWebhookSkeletonV1(t *testing.T) { path: "/bar", }, namespaceSelector: false, - want: webhook(&defaultTimeout, objectSelector, nil), + want: webhook(&defaultTimeout, objectSelector, nil, nil), }, { name: "namespace selector", @@ -1120,7 +1137,7 @@ func TestGetMutatingWebhookSkeletonV1(t *testing.T) { path: "/bar", }, namespaceSelector: true, - want: webhook(&defaultTimeout, nil, namespaceSelector), + want: webhook(&defaultTimeout, nil, namespaceSelector, nil), }, { name: "custom timeout", @@ -1130,7 +1147,7 @@ func TestGetMutatingWebhookSkeletonV1(t *testing.T) { }, timeout: &customTimeout, namespaceSelector: false, - want: webhook(&customTimeout, objectSelector, nil), + want: webhook(&customTimeout, objectSelector, nil, nil), }, } @@ -1144,11 +1161,11 @@ func TestGetMutatingWebhookSkeletonV1(t *testing.T) { } c := &ControllerV1{} - c.config = NewConfig(false, tt.namespaceSelector) + c.config = NewConfig(false, tt.namespaceSelector, false) nsSelector, objSelector := common.DefaultLabelSelectors(tt.namespaceSelector) - assert.EqualValues(t, tt.want, c.getMutatingWebhookSkeleton(tt.args.nameSuffix, tt.args.path, []admiv1.OperationType{admiv1.Create}, []string{"pods"}, nsSelector, objSelector)) + assert.EqualValues(t, tt.want, c.getMutatingWebhookSkeleton(tt.args.nameSuffix, tt.args.path, []admiv1.OperationType{admiv1.Create}, map[string][]string{"": {"pods"}}, nsSelector, objSelector, nil)) }) } } @@ -1179,6 +1196,7 @@ func (f *fixtureV1) createController() (*ControllerV1, informers.SharedInformerF wmeta, nil, datadogConfig, + nil, ), factory } diff --git a/pkg/clusteragent/admission/controllers/webhook/controller_v1beta1.go b/pkg/clusteragent/admission/controllers/webhook/controller_v1beta1.go index 3cb88b2c40526..dad86838eff33 100644 --- a/pkg/clusteragent/admission/controllers/webhook/controller_v1beta1.go +++ b/pkg/clusteragent/admission/controllers/webhook/controller_v1beta1.go @@ -12,6 +12,7 @@ import ( "strings" "time" + admiv1 "k8s.io/api/admissionregistration/v1" admiv1beta1 "k8s.io/api/admissionregistration/v1beta1" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/errors" @@ -24,6 +25,7 @@ import ( "k8s.io/client-go/tools/cache" "k8s.io/client-go/util/workqueue" + "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" "github.com/DataDog/datadog-agent/comp/core/config" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" "github.com/DataDog/datadog-agent/pkg/clusteragent/admission/common" @@ -57,6 +59,7 @@ func NewControllerV1beta1( wmeta workloadmeta.Component, pa workload.PodPatcher, datadogConfig config.Component, + demultiplexer demultiplexer.Component, ) *ControllerV1beta1 { controller := &ControllerV1beta1{} controller.clientSet = client @@ -74,7 +77,7 @@ func NewControllerV1beta1( ) controller.isLeaderFunc = isLeaderFunc controller.isLeaderNotif = isLeaderNotif - controller.webhooks = controller.generateWebhooks(wmeta, pa, datadogConfig) + controller.webhooks = controller.generateWebhooks(wmeta, pa, datadogConfig, demultiplexer) controller.generateTemplates() if _, err := secretInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ @@ -327,6 +330,7 @@ func (c *ControllerV1beta1) generateTemplates() { webhook.Resources(), nsSelector, objSelector, + convertMatchConditions(webhook.MatchConditions()), ), ) } @@ -349,13 +353,14 @@ func (c *ControllerV1beta1) generateTemplates() { webhook.Resources(), nsSelector, objSelector, + convertMatchConditions(webhook.MatchConditions()), ), ) } c.mutatingWebhookTemplates = mutatingWebhooks } -func (c *ControllerV1beta1) getValidatingWebhookSkeleton(nameSuffix, path string, operations []admiv1beta1.OperationType, resources []string, namespaceSelector, objectSelector *metav1.LabelSelector) admiv1beta1.ValidatingWebhook { +func (c *ControllerV1beta1) getValidatingWebhookSkeleton(nameSuffix, path string, operations []admiv1beta1.OperationType, resourcesMap map[string][]string, namespaceSelector, objectSelector *metav1.LabelSelector, matchConditions []admiv1beta1.MatchCondition) admiv1beta1.ValidatingWebhook { matchPolicy := admiv1beta1.Exact sideEffects := admiv1beta1.SideEffectClassNone port := c.config.getServicePort() @@ -372,16 +377,6 @@ func (c *ControllerV1beta1) getValidatingWebhookSkeleton(nameSuffix, path string Path: &path, }, }, - Rules: []admiv1beta1.RuleWithOperations{ - { - Operations: operations, - Rule: admiv1beta1.Rule{ - APIGroups: []string{""}, - APIVersions: []string{"v1"}, - Resources: resources, - }, - }, - }, FailurePolicy: &failurePolicy, MatchPolicy: &matchPolicy, SideEffects: &sideEffects, @@ -389,12 +384,26 @@ func (c *ControllerV1beta1) getValidatingWebhookSkeleton(nameSuffix, path string AdmissionReviewVersions: []string{"v1beta1"}, NamespaceSelector: namespaceSelector, ObjectSelector: objectSelector, + MatchConditions: matchConditions, + } + + for group, resources := range resourcesMap { + for _, resource := range resources { + webhook.Rules = append(webhook.Rules, admiv1beta1.RuleWithOperations{ + Operations: operations, + Rule: admiv1beta1.Rule{ + APIGroups: []string{group}, + APIVersions: []string{"v1"}, + Resources: []string{resource}, + }, + }) + } } return webhook } -func (c *ControllerV1beta1) getMutatingWebhookSkeleton(nameSuffix, path string, operations []admiv1beta1.OperationType, resources []string, namespaceSelector, objectSelector *metav1.LabelSelector) admiv1beta1.MutatingWebhook { +func (c *ControllerV1beta1) getMutatingWebhookSkeleton(nameSuffix, path string, operations []admiv1beta1.OperationType, resourcesMap map[string][]string, namespaceSelector, objectSelector *metav1.LabelSelector, matchConditions []admiv1beta1.MatchCondition) admiv1beta1.MutatingWebhook { matchPolicy := admiv1beta1.Exact sideEffects := admiv1beta1.SideEffectClassNone port := c.config.getServicePort() @@ -412,16 +421,6 @@ func (c *ControllerV1beta1) getMutatingWebhookSkeleton(nameSuffix, path string, Path: &path, }, }, - Rules: []admiv1beta1.RuleWithOperations{ - { - Operations: operations, - Rule: admiv1beta1.Rule{ - APIGroups: []string{""}, - APIVersions: []string{"v1"}, - Resources: resources, - }, - }, - }, ReinvocationPolicy: &reinvocationPolicy, FailurePolicy: &failurePolicy, MatchPolicy: &matchPolicy, @@ -430,6 +429,20 @@ func (c *ControllerV1beta1) getMutatingWebhookSkeleton(nameSuffix, path string, AdmissionReviewVersions: []string{"v1beta1"}, NamespaceSelector: namespaceSelector, ObjectSelector: objectSelector, + MatchConditions: matchConditions, + } + + for group, resources := range resourcesMap { + for _, resource := range resources { + webhook.Rules = append(webhook.Rules, admiv1beta1.RuleWithOperations{ + Operations: operations, + Rule: admiv1beta1.Rule{ + APIGroups: []string{group}, + APIVersions: []string{"v1"}, + Resources: []string{resource}, + }, + }) + } } return webhook @@ -460,3 +473,15 @@ func (c *ControllerV1beta1) getReinvocationPolicy() admiv1beta1.ReinvocationPoli return admiv1beta1.IfNeededReinvocationPolicy } } + +// convertMatchConditions converts the match conditions from the v1 API to the v1beta1 API. +func convertMatchConditions(v1MatchConditions []admiv1.MatchCondition) []admiv1beta1.MatchCondition { + v1beta1MatchConditions := make([]admiv1beta1.MatchCondition, len(v1MatchConditions)) + for index, matchCondition := range v1MatchConditions { + v1beta1MatchConditions[index] = admiv1beta1.MatchCondition{ + Name: matchCondition.Name, + Expression: matchCondition.Expression, + } + } + return v1beta1MatchConditions +} diff --git a/pkg/clusteragent/admission/controllers/webhook/controller_v1beta1_test.go b/pkg/clusteragent/admission/controllers/webhook/controller_v1beta1_test.go index f136568f3031f..3d84c3f515db0 100644 --- a/pkg/clusteragent/admission/controllers/webhook/controller_v1beta1_test.go +++ b/pkg/clusteragent/admission/controllers/webhook/controller_v1beta1_test.go @@ -37,7 +37,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/util/kubernetes/certificate" ) -var v1beta1Cfg = NewConfig(false, false) +var v1beta1Cfg = NewConfig(false, false, false) func TestSecretNotFoundV1beta1(t *testing.T) { f := newFixtureV1beta1(t) @@ -165,21 +165,21 @@ func TestAdmissionControllerFailureModeV1beta1(t *testing.T) { for _, value := range []string{"Ignore", "ignore", "BadVal", ""} { mockConfig.SetWithoutSource("admission_controller.failure_policy", value) - c.config = NewConfig(true, false) + c.config = NewConfig(true, false, false) - validatingWebhookSkeleton := c.getValidatingWebhookSkeleton("foo", "/bar", []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}, nil, nil) + validatingWebhookSkeleton := c.getValidatingWebhookSkeleton("foo", "/bar", []admiv1beta1.OperationType{admiv1beta1.Create}, map[string][]string{"": {"pods"}}, nil, nil, nil) assert.Equal(t, admiv1beta1.Ignore, *validatingWebhookSkeleton.FailurePolicy) - mutatingWebhookSkeleton := c.getMutatingWebhookSkeleton("foo", "/bar", []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}, nil, nil) + mutatingWebhookSkeleton := c.getMutatingWebhookSkeleton("foo", "/bar", []admiv1beta1.OperationType{admiv1beta1.Create}, map[string][]string{"": {"pods"}}, nil, nil, nil) assert.Equal(t, admiv1beta1.Ignore, *mutatingWebhookSkeleton.FailurePolicy) } for _, value := range []string{"Fail", "fail"} { mockConfig.SetWithoutSource("admission_controller.failure_policy", value) - c.config = NewConfig(true, false) + c.config = NewConfig(true, false, false) - validatingWebhookSkeleton := c.getValidatingWebhookSkeleton("foo", "/bar", []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}, nil, nil) + validatingWebhookSkeleton := c.getValidatingWebhookSkeleton("foo", "/bar", []admiv1beta1.OperationType{admiv1beta1.Create}, map[string][]string{"": {"pods"}}, nil, nil, nil) assert.Equal(t, admiv1beta1.Fail, *validatingWebhookSkeleton.FailurePolicy) - mutatingWebhookSkeleton := c.getMutatingWebhookSkeleton("foo", "/bar", []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}, nil, nil) + mutatingWebhookSkeleton := c.getMutatingWebhookSkeleton("foo", "/bar", []admiv1beta1.OperationType{admiv1beta1.Create}, map[string][]string{"": {"pods"}}, nil, nil, nil) assert.Equal(t, admiv1beta1.Fail, *mutatingWebhookSkeleton.FailurePolicy) } } @@ -191,9 +191,9 @@ func TestAdmissionControllerReinvocationPolicyV1beta1(t *testing.T) { for _, value := range []string{"IfNeeded", "ifneeded", "Never", "never", "wrong", ""} { mockConfig.SetWithoutSource("admission_controller.reinvocationpolicy", value) - c.config = NewConfig(true, false) + c.config = NewConfig(true, false, false) - mutatingWebhookSkeleton := c.getMutatingWebhookSkeleton("foo", "/bar", []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}, nil, nil) + mutatingWebhookSkeleton := c.getMutatingWebhookSkeleton("foo", "/bar", []admiv1beta1.OperationType{admiv1beta1.Create}, map[string][]string{"": {"pods"}}, nil, nil, nil) assert.Equal(t, admiv1beta1.IfNeededReinvocationPolicy, *mutatingWebhookSkeleton.ReinvocationPolicy) } } @@ -205,7 +205,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { sideEffects := admiv1beta1.SideEffectClassNone port := int32(443) timeout := pkgconfigsetup.Datadog().GetInt32("admission_controller.timeout_seconds") - webhook := func(name, path string, objSelector, nsSelector *metav1.LabelSelector, operations []admiv1beta1.OperationType, resources []string) admiv1beta1.MutatingWebhook { + webhook := func(name, path string, objSelector, nsSelector *metav1.LabelSelector, matchConditions []admiv1beta1.MatchCondition, operations []admiv1beta1.OperationType, resources []string) admiv1beta1.MutatingWebhook { return admiv1beta1.MutatingWebhook{ Name: name, ClientConfig: admiv1beta1.WebhookClientConfig{ @@ -234,6 +234,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { AdmissionReviewVersions: []string{"v1beta1"}, ObjectSelector: objSelector, NamespaceSelector: nsSelector, + MatchConditions: matchConditions, } } tests := []struct { @@ -251,7 +252,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.auto_instrumentation.enabled", false) mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.enabled", false) }, - configFunc: func() Config { return NewConfig(false, false) }, + configFunc: func() Config { return NewConfig(false, false, false) }, want: func() []admiv1beta1.MutatingWebhook { webhook := webhook("datadog.webhook.agent.config", "/injectconfig", &metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ @@ -261,7 +262,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { Values: []string{"false"}, }, }, - }, nil, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}) + }, nil, []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}) return []admiv1beta1.MutatingWebhook{webhook} }, }, @@ -274,13 +275,13 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.auto_instrumentation.enabled", false) mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.enabled", false) }, - configFunc: func() Config { return NewConfig(false, false) }, + configFunc: func() Config { return NewConfig(false, false, false) }, want: func() []admiv1beta1.MutatingWebhook { webhook := webhook("datadog.webhook.agent.config", "/injectconfig", &metav1.LabelSelector{ MatchLabels: map[string]string{ "admission.datadoghq.com/enabled": "true", }, - }, nil, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}) + }, nil, []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}) return []admiv1beta1.MutatingWebhook{webhook} }, }, @@ -293,7 +294,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.auto_instrumentation.enabled", false) mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.enabled", false) }, - configFunc: func() Config { return NewConfig(false, false) }, + configFunc: func() Config { return NewConfig(false, false, false) }, want: func() []admiv1beta1.MutatingWebhook { webhook := webhook("datadog.webhook.standard.tags", "/injecttags", &metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ @@ -303,7 +304,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { Values: []string{"false"}, }, }, - }, nil, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}) + }, nil, []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}) return []admiv1beta1.MutatingWebhook{webhook} }, }, @@ -316,13 +317,13 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.auto_instrumentation.enabled", false) mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.enabled", false) }, - configFunc: func() Config { return NewConfig(false, false) }, + configFunc: func() Config { return NewConfig(false, false, false) }, want: func() []admiv1beta1.MutatingWebhook { webhook := webhook("datadog.webhook.standard.tags", "/injecttags", &metav1.LabelSelector{ MatchLabels: map[string]string{ "admission.datadoghq.com/enabled": "true", }, - }, nil, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}) + }, nil, []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}) return []admiv1beta1.MutatingWebhook{webhook} }, }, @@ -335,7 +336,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.auto_instrumentation.enabled", true) mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.enabled", false) }, - configFunc: func() Config { return NewConfig(false, false) }, + configFunc: func() Config { return NewConfig(false, false, false) }, want: func() []admiv1beta1.MutatingWebhook { webhook := webhook("datadog.webhook.lib.injection", "/injectlib", &metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ @@ -345,7 +346,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { Values: []string{"false"}, }, }, - }, nil, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}) + }, nil, []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}) return []admiv1beta1.MutatingWebhook{webhook} }, }, @@ -358,13 +359,13 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.auto_instrumentation.enabled", true) mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.enabled", false) }, - configFunc: func() Config { return NewConfig(false, false) }, + configFunc: func() Config { return NewConfig(false, false, false) }, want: func() []admiv1beta1.MutatingWebhook { webhook := webhook("datadog.webhook.lib.injection", "/injectlib", &metav1.LabelSelector{ MatchLabels: map[string]string{ "admission.datadoghq.com/enabled": "true", }, - }, nil, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}) + }, nil, []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}) return []admiv1beta1.MutatingWebhook{webhook} }, }, @@ -376,18 +377,18 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.auto_instrumentation.enabled", false) mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.enabled", false) }, - configFunc: func() Config { return NewConfig(false, false) }, + configFunc: func() Config { return NewConfig(false, false, false) }, want: func() []admiv1beta1.MutatingWebhook { webhookConfig := webhook("datadog.webhook.agent.config", "/injectconfig", &metav1.LabelSelector{ MatchLabels: map[string]string{ "admission.datadoghq.com/enabled": "true", }, - }, nil, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}) + }, nil, []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}) webhookTags := webhook("datadog.webhook.standard.tags", "/injecttags", &metav1.LabelSelector{ MatchLabels: map[string]string{ "admission.datadoghq.com/enabled": "true", }, - }, nil, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}) + }, nil, []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}) return []admiv1beta1.MutatingWebhook{webhookConfig, webhookTags} }, }, @@ -400,7 +401,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.auto_instrumentation.enabled", false) mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.enabled", false) }, - configFunc: func() Config { return NewConfig(false, false) }, + configFunc: func() Config { return NewConfig(false, false, false) }, want: func() []admiv1beta1.MutatingWebhook { webhookConfig := webhook("datadog.webhook.agent.config", "/injectconfig", &metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ @@ -410,7 +411,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { Values: []string{"false"}, }, }, - }, nil, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}) + }, nil, []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}) webhookTags := webhook("datadog.webhook.standard.tags", "/injecttags", &metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ { @@ -419,7 +420,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { Values: []string{"false"}, }, }, - }, nil, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}) + }, nil, []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}) return []admiv1beta1.MutatingWebhook{webhookConfig, webhookTags} }, }, @@ -433,18 +434,18 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.auto_instrumentation.enabled", false) mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.enabled", false) }, - configFunc: func() Config { return NewConfig(false, true) }, + configFunc: func() Config { return NewConfig(false, true, false) }, want: func() []admiv1beta1.MutatingWebhook { webhookConfig := webhook("datadog.webhook.agent.config", "/injectconfig", nil, &metav1.LabelSelector{ MatchLabels: map[string]string{ "admission.datadoghq.com/enabled": "true", }, - }, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}) + }, []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}) webhookTags := webhook("datadog.webhook.standard.tags", "/injecttags", nil, &metav1.LabelSelector{ MatchLabels: map[string]string{ "admission.datadoghq.com/enabled": "true", }, - }, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}) + }, []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}) return []admiv1beta1.MutatingWebhook{webhookConfig, webhookTags} }, }, @@ -459,7 +460,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.auto_instrumentation.enabled", false) mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.enabled", false) }, - configFunc: func() Config { return NewConfig(false, false) }, + configFunc: func() Config { return NewConfig(false, false, false) }, want: func() []admiv1beta1.MutatingWebhook { webhook := webhook( "datadog.webhook.agent.config", @@ -491,6 +492,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { }, }, }, + []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}, ) return []admiv1beta1.MutatingWebhook{webhook} @@ -507,7 +509,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.auto_instrumentation.enabled", false) mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.enabled", false) }, - configFunc: func() Config { return NewConfig(false, true) }, + configFunc: func() Config { return NewConfig(false, true, false) }, want: func() []admiv1beta1.MutatingWebhook { webhook := webhook( "datadog.webhook.agent.config", @@ -536,6 +538,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { }, }, }, + []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}, ) return []admiv1beta1.MutatingWebhook{webhook} @@ -553,7 +556,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.mutate_unlabelled", true) mockConfig.SetWithoutSource("cluster_agent.service_account_name", "datadog-cluster-agent") }, - configFunc: func() Config { return NewConfig(false, false) }, + configFunc: func() Config { return NewConfig(false, false, false) }, want: func() []admiv1beta1.MutatingWebhook { podWebhook := webhook( "datadog.webhook.cws.pod.instrumentation", @@ -568,6 +571,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { }, }, nil, + []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}, ) @@ -576,6 +580,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { "/inject-command-cws", nil, nil, + []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Connect}, []string{"pods/exec"}, ) @@ -594,7 +599,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.mutate_unlabelled", false) mockConfig.SetWithoutSource("cluster_agent.service_account_name", "datadog-cluster-agent") }, - configFunc: func() Config { return NewConfig(false, false) }, + configFunc: func() Config { return NewConfig(false, false, false) }, want: func() []admiv1beta1.MutatingWebhook { podWebhook := webhook( "datadog.webhook.cws.pod.instrumentation", @@ -605,6 +610,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { }, }, nil, + []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}, ) @@ -613,6 +619,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { "/inject-command-cws", nil, nil, + []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Connect}, []string{"pods/exec"}, ) @@ -631,7 +638,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.mutate_unlabelled", true) mockConfig.SetWithoutSource("cluster_agent.service_account_name", "datadog-cluster-agent") }, - configFunc: func() Config { return NewConfig(false, true) }, + configFunc: func() Config { return NewConfig(false, true, false) }, want: func() []admiv1beta1.MutatingWebhook { podWebhook := webhook( "datadog.webhook.cws.pod.instrumentation", @@ -646,6 +653,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { }, }, }, + []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}, ) @@ -654,6 +662,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { "/inject-command-cws", nil, nil, + []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Connect}, []string{"pods/exec"}, ) @@ -672,7 +681,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.cws_instrumentation.mutate_unlabelled", false) mockConfig.SetWithoutSource("cluster_agent.service_account_name", "datadog-cluster-agent") }, - configFunc: func() Config { return NewConfig(false, true) }, + configFunc: func() Config { return NewConfig(false, true, false) }, want: func() []admiv1beta1.MutatingWebhook { podWebhook := webhook( "datadog.webhook.cws.pod.instrumentation", @@ -683,6 +692,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { cwsinstrumentation.PodLabelEnabled: "true", }, }, + []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}, ) @@ -691,6 +701,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { "/inject-command-cws", nil, nil, + []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Connect}, []string{"pods/exec"}, ) @@ -712,7 +723,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.agent_sidecar.selectors", "[]") mockConfig.SetWithoutSource("admission_controller.agent_sidecar.profiles", "misconfigured") }, - configFunc: func() Config { return NewConfig(true, true) }, + configFunc: func() Config { return NewConfig(true, true, false) }, want: func() []admiv1beta1.MutatingWebhook { return []admiv1beta1.MutatingWebhook{} }, @@ -732,7 +743,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.agent_sidecar.selectors", "[]") mockConfig.SetWithoutSource("admission_controller.agent_sidecar.profiles", "[]") }, - configFunc: func() Config { return NewConfig(true, true) }, + configFunc: func() Config { return NewConfig(true, true, false) }, want: func() []admiv1beta1.MutatingWebhook { podWebhook := webhook( "datadog.webhook.agent.sidecar", @@ -743,6 +754,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { }, }, nil, + []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}, ) @@ -764,7 +776,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.agent_sidecar.selectors", "[]") mockConfig.SetWithoutSource("admission_controller.agent_sidecar.profiles", "[]") }, - configFunc: func() Config { return NewConfig(true, true) }, + configFunc: func() Config { return NewConfig(true, true, false) }, want: func() []admiv1beta1.MutatingWebhook { return []admiv1beta1.MutatingWebhook{} }, @@ -784,7 +796,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.agent_sidecar.selectors", "[]") mockConfig.SetWithoutSource("admission_controller.agent_sidecar.profiles", "[]") }, - configFunc: func() Config { return NewConfig(true, true) }, + configFunc: func() Config { return NewConfig(true, true, false) }, want: func() []admiv1beta1.MutatingWebhook { return []admiv1beta1.MutatingWebhook{} }, @@ -804,7 +816,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.agent_sidecar.selectors", "[{\"NamespaceSelector\": {\"MatchLabels\": {\"labelKey\": \"labelVal\"}}}]") mockConfig.SetWithoutSource("admission_controller.agent_sidecar.profiles", "[]") }, - configFunc: func() Config { return NewConfig(true, true) }, + configFunc: func() Config { return NewConfig(true, true, false) }, want: func() []admiv1beta1.MutatingWebhook { podWebhook := webhook( "datadog.webhook.agent.sidecar", @@ -813,6 +825,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { &metav1.LabelSelector{ MatchLabels: map[string]string{"labelKey": "labelVal"}, }, + []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}, ) @@ -834,7 +847,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.agent_sidecar.selectors", "[{\"ObjectSelector\": {\"MatchLabels\": {\"labelKey\": \"labelVal\"}}}]") mockConfig.SetWithoutSource("admission_controller.agent_sidecar.profiles", "[]") }, - configFunc: func() Config { return NewConfig(true, true) }, + configFunc: func() Config { return NewConfig(true, true, false) }, want: func() []admiv1beta1.MutatingWebhook { return []admiv1beta1.MutatingWebhook{} }, @@ -854,13 +867,14 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.agent_sidecar.selectors", "[{\"ObjectSelector\": {\"MatchLabels\": {\"labelKey\": \"labelVal\"}}}]") mockConfig.SetWithoutSource("admission_controller.agent_sidecar.profiles", "[]") }, - configFunc: func() Config { return NewConfig(true, true) }, + configFunc: func() Config { return NewConfig(true, true, false) }, want: func() []admiv1beta1.MutatingWebhook { podWebhook := webhook( "datadog.webhook.agent.sidecar", "/agentsidecar", &metav1.LabelSelector{MatchLabels: map[string]string{"labelKey": "labelVal"}}, &metav1.LabelSelector{}, + []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}, ) @@ -882,13 +896,14 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.agent_sidecar.selectors", "[{\"ObjectSelector\": {\"MatchLabels\": {\"labelKey1\": \"labelVal1\"}}, \"NamespaceSelector\": {\"MatchLabels\": {\"labelKey2\": \"labelVal2\"}}}]") mockConfig.SetWithoutSource("admission_controller.agent_sidecar.profiles", "[]") }, - configFunc: func() Config { return NewConfig(true, true) }, + configFunc: func() Config { return NewConfig(true, true, false) }, want: func() []admiv1beta1.MutatingWebhook { podWebhook := webhook( "datadog.webhook.agent.sidecar", "/agentsidecar", &metav1.LabelSelector{MatchLabels: map[string]string{"labelKey1": "labelVal1"}}, &metav1.LabelSelector{MatchLabels: map[string]string{"labelKey2": "labelVal2"}}, + []admiv1beta1.MatchCondition{}, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}, ) @@ -910,7 +925,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { mockConfig.SetWithoutSource("admission_controller.agent_sidecar.selectors", "[{\"NamespaceSelector\": {\"MatchLabels\":{\"labelKey1\": \"labelVal1\"}}} , {\"ObjectSelector\": {\"MatchLabels\": {\"labelKey2\": \"labelVal2\"}}}]") mockConfig.SetWithoutSource("admission_controller.agent_sidecar.profiles", "[]") }, - configFunc: func() Config { return NewConfig(true, true) }, + configFunc: func() Config { return NewConfig(true, true, false) }, want: func() []admiv1beta1.MutatingWebhook { return []admiv1beta1.MutatingWebhook{} }, @@ -930,7 +945,7 @@ func TestGenerateTemplatesV1beta1(t *testing.T) { c := &ControllerV1beta1{} c.config = tt.configFunc() - c.webhooks = c.generateWebhooks(wmeta, nil, mockConfig) + c.webhooks = c.generateWebhooks(wmeta, nil, mockConfig, nil) c.generateTemplates() assert.EqualValues(t, tt.want(), c.mutatingWebhookTemplates) @@ -949,7 +964,7 @@ func TestGetValidatingWebhookSkeletonV1beta1(t *testing.T) { customTimeout := int32(2) namespaceSelector, _ := common.DefaultLabelSelectors(true) _, objectSelector := common.DefaultLabelSelectors(false) - webhook := func(to *int32, objSelector, nsSelector *metav1.LabelSelector) admiv1beta1.ValidatingWebhook { + webhook := func(to *int32, objSelector, nsSelector *metav1.LabelSelector, matchConditions []admiv1beta1.MatchCondition) admiv1beta1.ValidatingWebhook { return admiv1beta1.ValidatingWebhook{ Name: "datadog.webhook.foo", ClientConfig: admiv1beta1.WebhookClientConfig{ @@ -979,6 +994,7 @@ func TestGetValidatingWebhookSkeletonV1beta1(t *testing.T) { AdmissionReviewVersions: []string{"v1beta1"}, ObjectSelector: objSelector, NamespaceSelector: nsSelector, + MatchConditions: matchConditions, } } type args struct { @@ -999,7 +1015,7 @@ func TestGetValidatingWebhookSkeletonV1beta1(t *testing.T) { path: "/bar", }, namespaceSelector: false, - want: webhook(&defaultTimeout, objectSelector, nil), + want: webhook(&defaultTimeout, objectSelector, nil, nil), }, { name: "namespace selector", @@ -1008,7 +1024,7 @@ func TestGetValidatingWebhookSkeletonV1beta1(t *testing.T) { path: "/bar", }, namespaceSelector: true, - want: webhook(&defaultTimeout, nil, namespaceSelector), + want: webhook(&defaultTimeout, nil, namespaceSelector, nil), }, { name: "custom timeout", @@ -1018,7 +1034,7 @@ func TestGetValidatingWebhookSkeletonV1beta1(t *testing.T) { }, timeout: &customTimeout, namespaceSelector: false, - want: webhook(&customTimeout, objectSelector, nil), + want: webhook(&customTimeout, objectSelector, nil, nil), }, } @@ -1032,11 +1048,11 @@ func TestGetValidatingWebhookSkeletonV1beta1(t *testing.T) { } c := &ControllerV1beta1{} - c.config = NewConfig(false, tt.namespaceSelector) + c.config = NewConfig(false, tt.namespaceSelector, false) nsSelector, objSelector := common.DefaultLabelSelectors(tt.namespaceSelector) - assert.EqualValues(t, tt.want, c.getValidatingWebhookSkeleton(tt.args.nameSuffix, tt.args.path, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}, nsSelector, objSelector)) + assert.EqualValues(t, tt.want, c.getValidatingWebhookSkeleton(tt.args.nameSuffix, tt.args.path, []admiv1beta1.OperationType{admiv1beta1.Create}, map[string][]string{"": {"pods"}}, nsSelector, objSelector, nil)) }) } } @@ -1053,7 +1069,7 @@ func TestGetMutatingWebhookSkeletonV1beta1(t *testing.T) { customTimeout := int32(2) namespaceSelector, _ := common.DefaultLabelSelectors(true) _, objectSelector := common.DefaultLabelSelectors(false) - webhook := func(to *int32, objSelector, nsSelector *metav1.LabelSelector) admiv1beta1.MutatingWebhook { + webhook := func(to *int32, objSelector, nsSelector *metav1.LabelSelector, matchConditions []admiv1beta1.MatchCondition) admiv1beta1.MutatingWebhook { return admiv1beta1.MutatingWebhook{ Name: "datadog.webhook.foo", ClientConfig: admiv1beta1.WebhookClientConfig{ @@ -1084,6 +1100,7 @@ func TestGetMutatingWebhookSkeletonV1beta1(t *testing.T) { AdmissionReviewVersions: []string{"v1beta1"}, ObjectSelector: objSelector, NamespaceSelector: nsSelector, + MatchConditions: matchConditions, } } type args struct { @@ -1104,7 +1121,7 @@ func TestGetMutatingWebhookSkeletonV1beta1(t *testing.T) { path: "/bar", }, namespaceSelector: false, - want: webhook(&defaultTimeout, objectSelector, nil), + want: webhook(&defaultTimeout, objectSelector, nil, nil), }, { name: "namespace selector", @@ -1113,7 +1130,7 @@ func TestGetMutatingWebhookSkeletonV1beta1(t *testing.T) { path: "/bar", }, namespaceSelector: true, - want: webhook(&defaultTimeout, nil, namespaceSelector), + want: webhook(&defaultTimeout, nil, namespaceSelector, nil), }, { name: "custom timeout", @@ -1123,7 +1140,7 @@ func TestGetMutatingWebhookSkeletonV1beta1(t *testing.T) { }, timeout: &customTimeout, namespaceSelector: false, - want: webhook(&customTimeout, objectSelector, nil), + want: webhook(&customTimeout, objectSelector, nil, nil), }, } @@ -1137,11 +1154,11 @@ func TestGetMutatingWebhookSkeletonV1beta1(t *testing.T) { } c := &ControllerV1beta1{} - c.config = NewConfig(false, tt.namespaceSelector) + c.config = NewConfig(false, tt.namespaceSelector, false) nsSelector, objSelector := common.DefaultLabelSelectors(tt.namespaceSelector) - assert.EqualValues(t, tt.want, c.getMutatingWebhookSkeleton(tt.args.nameSuffix, tt.args.path, []admiv1beta1.OperationType{admiv1beta1.Create}, []string{"pods"}, nsSelector, objSelector)) + assert.EqualValues(t, tt.want, c.getMutatingWebhookSkeleton(tt.args.nameSuffix, tt.args.path, []admiv1beta1.OperationType{admiv1beta1.Create}, map[string][]string{"": {"pods"}}, nsSelector, objSelector, nil)) }) } } @@ -1172,6 +1189,7 @@ func (f *fixtureV1beta1) createController() (*ControllerV1beta1, informers.Share wmeta, nil, datadogConfig, + nil, ), factory } diff --git a/pkg/clusteragent/admission/mutate/agent_sidecar/agent_sidecar.go b/pkg/clusteragent/admission/mutate/agent_sidecar/agent_sidecar.go index 783207a15d2c8..4314f1c911fa7 100644 --- a/pkg/clusteragent/admission/mutate/agent_sidecar/agent_sidecar.go +++ b/pkg/clusteragent/admission/mutate/agent_sidecar/agent_sidecar.go @@ -48,8 +48,9 @@ type Webhook struct { name string isEnabled bool endpoint string - resources []string + resources map[string][]string operations []admissionregistrationv1.OperationType + matchConditions []admissionregistrationv1.MatchCondition namespaceSelector *metav1.LabelSelector objectSelector *metav1.LabelSelector containerRegistry string @@ -78,8 +79,9 @@ func NewWebhook(datadogConfig config.Component) *Webhook { name: webhookName, isEnabled: datadogConfig.GetBool("admission_controller.agent_sidecar.enabled"), endpoint: datadogConfig.GetString("admission_controller.agent_sidecar.endpoint"), - resources: []string{"pods"}, + resources: map[string][]string{"": {"pods"}}, operations: []admissionregistrationv1.OperationType{admissionregistrationv1.Create}, + matchConditions: []admissionregistrationv1.MatchCondition{}, namespaceSelector: nsSelector, objectSelector: objSelector, containerRegistry: containerRegistry, @@ -118,7 +120,7 @@ func (w *Webhook) Endpoint() string { // Resources returns the kubernetes resources for which the webhook should // be invoked -func (w *Webhook) Resources() []string { +func (w *Webhook) Resources() map[string][]string { return w.resources } @@ -134,10 +136,16 @@ func (w *Webhook) LabelSelectors(_ bool) (namespaceSelector *metav1.LabelSelecto return w.namespaceSelector, w.objectSelector } +// MatchConditions returns the Match Conditions used for fine-grained +// request filtering +func (w *Webhook) MatchConditions() []admissionregistrationv1.MatchCondition { + return w.matchConditions +} + // WebhookFunc returns the function that mutates the resources func (w *Webhook) WebhookFunc() admission.WebhookFunc { return func(request *admission.Request) *admiv1.AdmissionResponse { - return common.MutationResponse(mutatecommon.Mutate(request.Raw, request.Namespace, w.Name(), w.injectAgentSidecar, request.DynamicClient)) + return common.MutationResponse(mutatecommon.Mutate(request.Object, request.Namespace, w.Name(), w.injectAgentSidecar, request.DynamicClient)) } } diff --git a/pkg/clusteragent/admission/mutate/autoinstrumentation/auto_instrumentation.go b/pkg/clusteragent/admission/mutate/autoinstrumentation/auto_instrumentation.go index 7fa407c3edeaa..b25289c3a1d31 100644 --- a/pkg/clusteragent/admission/mutate/autoinstrumentation/auto_instrumentation.go +++ b/pkg/clusteragent/admission/mutate/autoinstrumentation/auto_instrumentation.go @@ -46,9 +46,10 @@ const ( // Webhook is the auto instrumentation webhook type Webhook struct { - name string - resources []string - operations []admissionregistrationv1.OperationType + name string + resources map[string][]string + operations []admissionregistrationv1.OperationType + matchConditions []admissionregistrationv1.MatchCondition wmeta workloadmeta.Component @@ -79,9 +80,10 @@ func NewWebhook(wmeta workloadmeta.Component, datadogConfig config.Component, fi webhook := &Webhook{ name: webhookName, - resources: []string{"pods"}, - operations: []admissionregistrationv1.OperationType{admissionregistrationv1.Create}, - wmeta: wmeta, + resources: map[string][]string{"": {"pods"}}, + operations: []admissionregistrationv1.OperationType{admissionregistrationv1.Create}, + matchConditions: []admissionregistrationv1.MatchCondition{}, + wmeta: wmeta, config: config, } @@ -114,7 +116,7 @@ func (w *Webhook) Endpoint() string { // Resources returns the kubernetes resources for which the webhook should // be invoked -func (w *Webhook) Resources() []string { +func (w *Webhook) Resources() map[string][]string { return w.resources } @@ -130,10 +132,16 @@ func (w *Webhook) LabelSelectors(useNamespaceSelector bool) (namespaceSelector * return common.DefaultLabelSelectors(useNamespaceSelector) } +// MatchConditions returns the Match Conditions used for fine-grained +// request filtering +func (w *Webhook) MatchConditions() []admissionregistrationv1.MatchCondition { + return w.matchConditions +} + // WebhookFunc returns the function that mutates the resources func (w *Webhook) WebhookFunc() admission.WebhookFunc { return func(request *admission.Request) *admiv1.AdmissionResponse { - return common.MutationResponse(mutatecommon.Mutate(request.Raw, request.Namespace, w.Name(), w.inject, request.DynamicClient)) + return common.MutationResponse(mutatecommon.Mutate(request.Object, request.Namespace, w.Name(), w.inject, request.DynamicClient)) } } diff --git a/pkg/clusteragent/admission/mutate/autoscaling/autoscaling.go b/pkg/clusteragent/admission/mutate/autoscaling/autoscaling.go index e738079becb97..b4e7225ef710e 100644 --- a/pkg/clusteragent/admission/mutate/autoscaling/autoscaling.go +++ b/pkg/clusteragent/admission/mutate/autoscaling/autoscaling.go @@ -29,23 +29,25 @@ const ( // Webhook implements the MutatingWebhook interface type Webhook struct { - name string - isEnabled bool - endpoint string - resources []string - operations []admissionregistrationv1.OperationType - patcher workload.PodPatcher + name string + isEnabled bool + endpoint string + resources map[string][]string + operations []admissionregistrationv1.OperationType + matchConditions []admissionregistrationv1.MatchCondition + patcher workload.PodPatcher } // NewWebhook returns a new Webhook func NewWebhook(patcher workload.PodPatcher) *Webhook { return &Webhook{ - name: webhookName, - isEnabled: pkgconfigsetup.Datadog().GetBool("autoscaling.workload.enabled"), - endpoint: webhookEndpoint, - resources: []string{"pods"}, - operations: []admissionregistrationv1.OperationType{admissionregistrationv1.Create}, - patcher: patcher, + name: webhookName, + isEnabled: pkgconfigsetup.Datadog().GetBool("autoscaling.workload.enabled"), + endpoint: webhookEndpoint, + resources: map[string][]string{"": {"pods"}}, + operations: []admissionregistrationv1.OperationType{admissionregistrationv1.Create}, + matchConditions: []admissionregistrationv1.MatchCondition{}, + patcher: patcher, } } @@ -71,7 +73,7 @@ func (w *Webhook) Endpoint() string { // Resources returns the kubernetes resources for which the webhook should // be invoked -func (w *Webhook) Resources() []string { +func (w *Webhook) Resources() map[string][]string { return w.resources } @@ -89,10 +91,16 @@ func (w *Webhook) LabelSelectors(_ bool) (namespaceSelector *metav1.LabelSelecto return nil, nil } +// MatchConditions returns the Match Conditions used for fine-grained +// request filtering +func (w *Webhook) MatchConditions() []admissionregistrationv1.MatchCondition { + return w.matchConditions +} + // WebhookFunc returns the function that mutates the resources func (w *Webhook) WebhookFunc() admission.WebhookFunc { return func(request *admission.Request) *admiv1.AdmissionResponse { - return common.MutationResponse(mutatecommon.Mutate(request.Raw, request.Namespace, w.Name(), w.updateResources, request.DynamicClient)) + return common.MutationResponse(mutatecommon.Mutate(request.Object, request.Namespace, w.Name(), w.updateResources, request.DynamicClient)) } } diff --git a/pkg/clusteragent/admission/mutate/config/config.go b/pkg/clusteragent/admission/mutate/config/config.go index e0e54e03265b9..0b7683d838938 100644 --- a/pkg/clusteragent/admission/mutate/config/config.go +++ b/pkg/clusteragent/admission/mutate/config/config.go @@ -68,8 +68,9 @@ type Webhook struct { name string isEnabled bool endpoint string - resources []string + resources map[string][]string operations []admissionregistrationv1.OperationType + matchConditions []admissionregistrationv1.MatchCondition wmeta workloadmeta.Component injectionFilter mutatecommon.InjectionFilter @@ -90,8 +91,9 @@ func NewWebhook(wmeta workloadmeta.Component, injectionFilter mutatecommon.Injec name: webhookName, isEnabled: datadogConfig.GetBool("admission_controller.inject_config.enabled"), endpoint: datadogConfig.GetString("admission_controller.inject_config.endpoint"), - resources: []string{"pods"}, + resources: map[string][]string{"": {"pods"}}, operations: []admissionregistrationv1.OperationType{admissionregistrationv1.Create}, + matchConditions: []admissionregistrationv1.MatchCondition{}, wmeta: wmeta, injectionFilter: injectionFilter, @@ -126,7 +128,7 @@ func (w *Webhook) Endpoint() string { // Resources returns the kubernetes resources for which the webhook should // be invoked -func (w *Webhook) Resources() []string { +func (w *Webhook) Resources() map[string][]string { return w.resources } @@ -142,10 +144,16 @@ func (w *Webhook) LabelSelectors(useNamespaceSelector bool) (namespaceSelector * return common.DefaultLabelSelectors(useNamespaceSelector) } +// MatchConditions returns the Match Conditions used for fine-grained +// request filtering +func (w *Webhook) MatchConditions() []admissionregistrationv1.MatchCondition { + return w.matchConditions +} + // WebhookFunc returns the function that mutates the resources func (w *Webhook) WebhookFunc() admission.WebhookFunc { return func(request *admission.Request) *admiv1.AdmissionResponse { - return common.MutationResponse(mutatecommon.Mutate(request.Raw, request.Namespace, w.Name(), w.inject, request.DynamicClient)) + return common.MutationResponse(mutatecommon.Mutate(request.Object, request.Namespace, w.Name(), w.inject, request.DynamicClient)) } } diff --git a/pkg/clusteragent/admission/mutate/config/config_test.go b/pkg/clusteragent/admission/mutate/config/config_test.go index 4b481218151b1..f5f9f9a07c30e 100644 --- a/pkg/clusteragent/admission/mutate/config/config_test.go +++ b/pkg/clusteragent/admission/mutate/config/config_test.go @@ -482,7 +482,7 @@ func TestJSONPatchCorrectness(t *testing.T) { filter, _ := autoinstrumentation.NewInjectionFilter(datadogConfig) webhook := NewWebhook(wmeta, filter, datadogConfig) request := admission.Request{ - Raw: podJSON, + Object: podJSON, Namespace: "bar", } admissionResponse := webhook.WebhookFunc()(&request) @@ -518,7 +518,7 @@ func BenchmarkJSONPatch(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { request := admission.Request{ - Raw: podJSON, + Object: podJSON, Namespace: "bar", } admissionResponse := webhook.WebhookFunc()(&request) diff --git a/pkg/clusteragent/admission/mutate/cwsinstrumentation/cws_instrumentation.go b/pkg/clusteragent/admission/mutate/cwsinstrumentation/cws_instrumentation.go index e965cbe7ff376..e5da18c3b28dd 100644 --- a/pkg/clusteragent/admission/mutate/cwsinstrumentation/cws_instrumentation.go +++ b/pkg/clusteragent/admission/mutate/cwsinstrumentation/cws_instrumentation.go @@ -87,12 +87,13 @@ type mutatePodExecFunc func(*corev1.PodExecOptions, string, string, *authenticat // WebhookForPods is the webhook that injects CWS pod instrumentation type WebhookForPods struct { - name string - isEnabled bool - endpoint string - resources []string - operations []admissionregistrationv1.OperationType - admissionFunc admission.WebhookFunc + name string + isEnabled bool + endpoint string + resources map[string][]string + operations []admissionregistrationv1.OperationType + matchConditions []admissionregistrationv1.MatchCondition + admissionFunc admission.WebhookFunc } func newWebhookForPods(admissionFunc admission.WebhookFunc) *WebhookForPods { @@ -100,10 +101,11 @@ func newWebhookForPods(admissionFunc admission.WebhookFunc) *WebhookForPods { name: webhookForPodsName, isEnabled: pkgconfigsetup.Datadog().GetBool("admission_controller.cws_instrumentation.enabled") && len(pkgconfigsetup.Datadog().GetString("admission_controller.cws_instrumentation.image_name")) > 0, - endpoint: pkgconfigsetup.Datadog().GetString("admission_controller.cws_instrumentation.pod_endpoint"), - resources: []string{"pods"}, - operations: []admissionregistrationv1.OperationType{admissionregistrationv1.Create}, - admissionFunc: admissionFunc, + endpoint: pkgconfigsetup.Datadog().GetString("admission_controller.cws_instrumentation.pod_endpoint"), + resources: map[string][]string{"": {"pods"}}, + operations: []admissionregistrationv1.OperationType{admissionregistrationv1.Create}, + matchConditions: []admissionregistrationv1.MatchCondition{}, + admissionFunc: admissionFunc, } } @@ -129,7 +131,7 @@ func (w *WebhookForPods) Endpoint() string { // Resources returns the kubernetes resources for which the webhook should // be invoked -func (w *WebhookForPods) Resources() []string { +func (w *WebhookForPods) Resources() map[string][]string { return w.resources } @@ -145,6 +147,12 @@ func (w *WebhookForPods) LabelSelectors(useNamespaceSelector bool) (namespaceSel return labelSelectors(useNamespaceSelector) } +// MatchConditions returns the Match Conditions used for fine-grained +// request filtering +func (w *WebhookForPods) MatchConditions() []admissionregistrationv1.MatchCondition { + return w.matchConditions +} + // WebhookFunc returns the function that mutates the resources func (w *WebhookForPods) WebhookFunc() admission.WebhookFunc { return w.admissionFunc @@ -152,12 +160,13 @@ func (w *WebhookForPods) WebhookFunc() admission.WebhookFunc { // WebhookForCommands is the webhook that injects CWS pods/exec instrumentation type WebhookForCommands struct { - name string - isEnabled bool - endpoint string - resources []string - operations []admissionregistrationv1.OperationType - admissionFunc admission.WebhookFunc + name string + isEnabled bool + endpoint string + resources map[string][]string + operations []admissionregistrationv1.OperationType + matchConditions []admissionregistrationv1.MatchCondition + admissionFunc admission.WebhookFunc } func newWebhookForCommands(admissionFunc admission.WebhookFunc) *WebhookForCommands { @@ -165,10 +174,11 @@ func newWebhookForCommands(admissionFunc admission.WebhookFunc) *WebhookForComma name: webhookForCommandsName, isEnabled: pkgconfigsetup.Datadog().GetBool("admission_controller.cws_instrumentation.enabled") && len(pkgconfigsetup.Datadog().GetString("admission_controller.cws_instrumentation.image_name")) > 0, - endpoint: pkgconfigsetup.Datadog().GetString("admission_controller.cws_instrumentation.command_endpoint"), - resources: []string{"pods/exec"}, - operations: []admissionregistrationv1.OperationType{admissionregistrationv1.Connect}, - admissionFunc: admissionFunc, + endpoint: pkgconfigsetup.Datadog().GetString("admission_controller.cws_instrumentation.command_endpoint"), + resources: map[string][]string{"": {"pods/exec"}}, + operations: []admissionregistrationv1.OperationType{admissionregistrationv1.Connect}, + matchConditions: []admissionregistrationv1.MatchCondition{}, + admissionFunc: admissionFunc, } } @@ -194,7 +204,7 @@ func (w *WebhookForCommands) Endpoint() string { // Resources returns the kubernetes resources for which the webhook should // be invoked -func (w *WebhookForCommands) Resources() []string { +func (w *WebhookForCommands) Resources() map[string][]string { return w.resources } @@ -210,6 +220,12 @@ func (w *WebhookForCommands) LabelSelectors(_ bool) (namespaceSelector *metav1.L return nil, nil } +// MatchConditions returns the Match Conditions used for fine-grained +// request filtering +func (w *WebhookForCommands) MatchConditions() []admissionregistrationv1.MatchCondition { + return w.matchConditions +} + // WebhookFunc MutateFunc returns the function that mutates the resources func (w *WebhookForCommands) WebhookFunc() admission.WebhookFunc { return w.admissionFunc @@ -370,7 +386,7 @@ func (ci *CWSInstrumentation) WebhookForCommands() *WebhookForCommands { } func (ci *CWSInstrumentation) injectForCommand(request *admission.Request) *admiv1.AdmissionResponse { - return common.MutationResponse(mutatePodExecOptions(request.Raw, request.Name, request.Namespace, ci.webhookForCommands.Name(), request.UserInfo, ci.injectCWSCommandInstrumentation, request.DynamicClient, request.APIClient)) + return common.MutationResponse(mutatePodExecOptions(request.Object, request.Name, request.Namespace, ci.webhookForCommands.Name(), request.UserInfo, ci.injectCWSCommandInstrumentation, request.DynamicClient, request.APIClient)) } func (ci *CWSInstrumentation) resolveNodeArch(nodeName string, apiClient kubernetes.Interface) (string, error) { @@ -617,7 +633,7 @@ func (ci *CWSInstrumentation) injectCWSCommandInstrumentationRemoteCopy(pod *cor } func (ci *CWSInstrumentation) injectForPod(request *admission.Request) *admiv1.AdmissionResponse { - return common.MutationResponse(mutatecommon.Mutate(request.Raw, request.Namespace, ci.webhookForPods.Name(), ci.injectCWSPodInstrumentation, request.DynamicClient)) + return common.MutationResponse(mutatecommon.Mutate(request.Object, request.Namespace, ci.webhookForPods.Name(), ci.injectCWSPodInstrumentation, request.DynamicClient)) } func (ci *CWSInstrumentation) injectCWSPodInstrumentation(pod *corev1.Pod, ns string, _ dynamic.Interface) (bool, error) { diff --git a/pkg/clusteragent/admission/mutate/tagsfromlabels/tags.go b/pkg/clusteragent/admission/mutate/tagsfromlabels/tags.go index 355430d527c49..77f4d82e2cd70 100644 --- a/pkg/clusteragent/admission/mutate/tagsfromlabels/tags.go +++ b/pkg/clusteragent/admission/mutate/tagsfromlabels/tags.go @@ -47,8 +47,9 @@ type Webhook struct { name string isEnabled bool endpoint string - resources []string + resources map[string][]string operations []admissionregistrationv1.OperationType + matchConditions []admissionregistrationv1.MatchCondition ownerCacheTTL time.Duration wmeta workloadmeta.Component injectionFilter mutatecommon.InjectionFilter @@ -60,8 +61,9 @@ func NewWebhook(wmeta workloadmeta.Component, datadogConfig config.Component, in name: webhookName, isEnabled: datadogConfig.GetBool("admission_controller.inject_tags.enabled"), endpoint: datadogConfig.GetString("admission_controller.inject_tags.endpoint"), - resources: []string{"pods"}, + resources: map[string][]string{"": {"pods"}}, operations: []admissionregistrationv1.OperationType{admissionregistrationv1.Create}, + matchConditions: []admissionregistrationv1.MatchCondition{}, ownerCacheTTL: ownerCacheTTL(datadogConfig), wmeta: wmeta, injectionFilter: injectionFilter, @@ -90,7 +92,7 @@ func (w *Webhook) Endpoint() string { // Resources returns the kubernetes resources for which the webhook should // be invoked -func (w *Webhook) Resources() []string { +func (w *Webhook) Resources() map[string][]string { return w.resources } @@ -106,6 +108,12 @@ func (w *Webhook) LabelSelectors(useNamespaceSelector bool) (namespaceSelector * return common.DefaultLabelSelectors(useNamespaceSelector) } +// MatchConditions returns the Match Conditions used for fine-grained +// request filtering +func (w *Webhook) MatchConditions() []admissionregistrationv1.MatchCondition { + return w.matchConditions +} + type owner struct { name string namespace string @@ -128,7 +136,7 @@ func (o *ownerInfo) buildID(ns string) string { // WebhookFunc returns the function that mutates the resources func (w *Webhook) WebhookFunc() admission.WebhookFunc { return func(request *admission.Request) *admiv1.AdmissionResponse { - return common.MutationResponse(mutatecommon.Mutate(request.Raw, request.Namespace, w.Name(), func(pod *corev1.Pod, ns string, dc dynamic.Interface) (bool, error) { + return common.MutationResponse(mutatecommon.Mutate(request.Object, request.Namespace, w.Name(), func(pod *corev1.Pod, ns string, dc dynamic.Interface) (bool, error) { // Adds the DD_ENV, DD_VERSION, DD_SERVICE env vars to the pod template from pod and higher-level resource labels. return w.injectTags(pod, ns, dc) }, request.DynamicClient)) diff --git a/pkg/clusteragent/admission/start.go b/pkg/clusteragent/admission/start.go index 3bba12256f197..aee1183a3133d 100644 --- a/pkg/clusteragent/admission/start.go +++ b/pkg/clusteragent/admission/start.go @@ -11,6 +11,7 @@ package admission import ( "time" + "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" "github.com/DataDog/datadog-agent/comp/core/config" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" "github.com/DataDog/datadog-agent/pkg/clusteragent/admission/controllers/secret" @@ -35,6 +36,7 @@ type ControllerContext struct { Client kubernetes.Interface StopCh chan struct{} ValidatingStopCh chan struct{} + Demultiplexer demultiplexer.Component } // StartControllers starts the secret and webhook controllers @@ -67,12 +69,17 @@ func StartControllers(ctx ControllerContext, wmeta workloadmeta.Component, pa wo return webhooks, err } + matchConditionsSupported, err := supportsMatchConditions(ctx.Client.Discovery()) + if err != nil { + return webhooks, err + } + v1Enabled, err := UseAdmissionV1(ctx.Client.Discovery()) if err != nil { return webhooks, err } - webhookConfig := webhook.NewConfig(v1Enabled, nsSelectorEnabled) + webhookConfig := webhook.NewConfig(v1Enabled, nsSelectorEnabled, matchConditionsSupported) webhookController := webhook.NewController( ctx.Client, ctx.SecretInformers.Core().V1().Secrets(), @@ -84,6 +91,7 @@ func StartControllers(ctx ControllerContext, wmeta workloadmeta.Component, pa wo wmeta, pa, datadogConfig, + ctx.Demultiplexer, ) go secretController.Run(ctx.StopCh) diff --git a/pkg/clusteragent/admission/util.go b/pkg/clusteragent/admission/util.go index 90f0f893add60..9f13fc5488b3f 100644 --- a/pkg/clusteragent/admission/util.go +++ b/pkg/clusteragent/admission/util.go @@ -12,14 +12,30 @@ import ( "strconv" "time" + "golang.org/x/mod/semver" + "k8s.io/apimachinery/pkg/version" + "k8s.io/client-go/discovery" + pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/util/kubernetes/apiserver/common" "github.com/DataDog/datadog-agent/pkg/util/log" - - "k8s.io/apimachinery/pkg/version" - "k8s.io/client-go/discovery" ) +// supportsMatchConditions returns whether Kubernetes server version supports match conditions. +// Returns true if Kubernetes version is 1.28+. Otherwise, returns false. +// Match conditions are in alpha in 1.27 but require a feature gate to be enabled. They are not supported in 1.26. +func supportsMatchConditions(discoveryCl discovery.DiscoveryInterface) (bool, error) { + serverVersion, err := common.KubeServerVersion(discoveryCl, 10*time.Second) + if err != nil { + return false, fmt.Errorf("cannot get Kubernetes version: %w", err) + } + if semver.IsValid(serverVersion.String()) && semver.Compare(serverVersion.String(), "v1.28.0") >= 0 { + return true, nil + } + log.Debugf("Match conditions are not supported in Kubernetes version %s", serverVersion.String()) + return false, nil +} + // useNamespaceSelector returns whether we need to fallback to using namespace selector instead of object selector. // Returns true if `namespace_selector_fallback` is enabled and k8s version is between 1.10 and 1.14 (included). // Kubernetes 1.15+ supports object selectors. diff --git a/pkg/clusteragent/admission/validate/common/common.go b/pkg/clusteragent/admission/validate/common/common.go index 81802079c9e72..a602b8c25e9dd 100644 --- a/pkg/clusteragent/admission/validate/common/common.go +++ b/pkg/clusteragent/admission/validate/common/common.go @@ -9,31 +9,24 @@ package common import ( - "encoding/json" "fmt" "strconv" - corev1 "k8s.io/api/core/v1" "k8s.io/client-go/dynamic" + "github.com/DataDog/datadog-agent/cmd/cluster-agent/admission" "github.com/DataDog/datadog-agent/pkg/clusteragent/admission/metrics" ) -// ValidationFunc is a function that validates a pod -type ValidationFunc func(pod *corev1.Pod, ns string, cl dynamic.Interface) (bool, error) +// ValidationFunc is a function that validates an admission request. +type ValidationFunc func(request *admission.Request, ns string, cl dynamic.Interface) (bool, error) -// Validate handles validating pods and encoding and decoding admission -// requests and responses for the public validate functions -func Validate(rawPod []byte, ns string, webhookName string, v ValidationFunc, dc dynamic.Interface) (bool, error) { - var pod corev1.Pod - if err := json.Unmarshal(rawPod, &pod); err != nil { - return false, fmt.Errorf("failed to decode raw object: %w", err) - } - - validated, err := v(&pod, ns, dc) +// Validate handles validating, encoding and decoding admission requests and responses for the public validate functions. +func Validate(request *admission.Request, webhookName string, v ValidationFunc, dc dynamic.Interface) (bool, error) { + validated, err := v(request, request.Namespace, dc) if err != nil { metrics.ValidationAttempts.Inc(webhookName, metrics.StatusError, strconv.FormatBool(false), err.Error()) - return false, fmt.Errorf("failed to validate pod: %w", err) + return false, fmt.Errorf("failed to validate admission request: %w", err) } metrics.ValidationAttempts.Inc(webhookName, metrics.StatusSuccess, strconv.FormatBool(validated), "") diff --git a/pkg/clusteragent/admission/validate/kubernetesadmissionevents/kubernetesadmissionevents.go b/pkg/clusteragent/admission/validate/kubernetesadmissionevents/kubernetesadmissionevents.go new file mode 100644 index 0000000000000..0fea27429afbf --- /dev/null +++ b/pkg/clusteragent/admission/validate/kubernetesadmissionevents/kubernetesadmissionevents.go @@ -0,0 +1,208 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build kubeapiserver + +// Package kubernetesadmissionevents is a validation webhook that admit all requests and generate a Datadog Event. +package kubernetesadmissionevents + +import ( + "encoding/json" + "fmt" + "strings" + "time" + + admiv1 "k8s.io/api/admission/v1" + admissionregistrationv1 "k8s.io/api/admissionregistration/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/client-go/dynamic" + + "github.com/DataDog/datadog-agent/cmd/cluster-agent/admission" + "github.com/DataDog/datadog-agent/comp/core/config" + "github.com/DataDog/datadog-agent/pkg/aggregator" + "github.com/DataDog/datadog-agent/pkg/clusteragent/admission/common" + validatecommon "github.com/DataDog/datadog-agent/pkg/clusteragent/admission/validate/common" + checkid "github.com/DataDog/datadog-agent/pkg/collector/check/id" + "github.com/DataDog/datadog-agent/pkg/metrics/event" + "github.com/DataDog/datadog-agent/pkg/util/log" +) + +// Webhook is the KubernetesAdmissionEvents webhook. +type Webhook struct { + name string + isEnabled bool + endpoint string + resources map[string][]string + operations []admissionregistrationv1.OperationType + matchConditions []admissionregistrationv1.MatchCondition + demultiplexer aggregator.Demultiplexer + supportsMatchConditions bool + checkid checkid.ID +} + +// NewWebhook returns a new KubernetesAdmissionEvents webhook. +func NewWebhook(datadogConfig config.Component, demultiplexer aggregator.Demultiplexer, supportsMatchConditions bool) *Webhook { + return &Webhook{ + name: "kubernetes_admission_events", + isEnabled: datadogConfig.GetBool("admission_controller.kubernetes_admission_events.enabled"), + endpoint: "/kubernetes-admission-events", + // If we add more resources, we must rework the `kube_deployment` tag in the emitEvent() function. + resources: map[string][]string{ + "apps": { + "deployments", + }, + }, + operations: []admissionregistrationv1.OperationType{ + admissionregistrationv1.OperationAll, + }, + // Only supported by Kubernetes 1.28+. Otherwise, filtering is done in the emitEvent() function. + // This is to send events only for human users and not for system users as to avoid unneeded events. + matchConditions: []admissionregistrationv1.MatchCondition{ + { + Name: "exclude-system-users", + Expression: "!(request.userInfo.username.startsWith('system:'))", + }, + }, + demultiplexer: demultiplexer, + supportsMatchConditions: supportsMatchConditions, + checkid: "kubernetes_admission_events", + } +} + +// Name returns the name of the webhook +func (w *Webhook) Name() string { + return w.name +} + +// WebhookType returns the type of the webhook +func (w *Webhook) WebhookType() common.WebhookType { + return common.ValidatingWebhook +} + +// IsEnabled returns whether the webhook is enabled +func (w *Webhook) IsEnabled() bool { + return w.isEnabled +} + +// Endpoint returns the endpoint of the webhook +func (w *Webhook) Endpoint() string { + return w.endpoint +} + +// Resources returns the kubernetes resources for which the webhook should +// be invoked +func (w *Webhook) Resources() map[string][]string { + return w.resources +} + +// Operations returns the operations on the resources specified for which +// the webhook should be invoked +func (w *Webhook) Operations() []admissionregistrationv1.OperationType { + return w.operations +} + +// LabelSelectors returns the label selectors that specify when the webhook +// should be invoked +func (w *Webhook) LabelSelectors(useNamespaceSelector bool) (namespaceSelector *metav1.LabelSelector, objectSelector *metav1.LabelSelector) { + return common.DefaultLabelSelectors(useNamespaceSelector) +} + +// MatchConditions returns the Match Conditions used for fine-grained +// request filtering +func (w *Webhook) MatchConditions() []admissionregistrationv1.MatchCondition { + return w.matchConditions +} + +// WebhookFunc returns the function that generates a Datadog Event and admits the request. +func (w *Webhook) WebhookFunc() admission.WebhookFunc { + return func(request *admission.Request) *admiv1.AdmissionResponse { + return common.ValidationResponse(validatecommon.Validate(request, w.Name(), w.emitEvent, request.DynamicClient)) + } +} + +// emitEvent generates a Datadog Event, sends it to the kubernetes_admission_events sender and admits the request. +func (w *Webhook) emitEvent(request *admission.Request, _ string, _ dynamic.Interface) (bool, error) { + if !w.supportsMatchConditions { + // Manually filter out system users if match conditions are not supported. + // This is to send events only for human users and not for system users as to avoid unneeded events. + if strings.HasPrefix(request.UserInfo.Username, "system:") { + log.Debugf("Skipping system user: %s", request.UserInfo.Username) + return true, nil + } + } + + e, err := generateDatadogEvent(request, w.Name()) + if err != nil { + return true, fmt.Errorf("failed to generate event: %w", err) + } + + // Send the event to the sender. + s, err := w.demultiplexer.GetSender(w.checkid) + if err != nil { + _ = log.Errorf("Error getting the default sender: %s", err) + } else { + log.Debugf("Sending Kubernetes Audit Event: %v", e) + s.Event(e) + } + + // Validation must always validate incoming request. + return true, nil +} + +func generateDatadogEvent(request *admission.Request, webhookName string) (event.Event, error) { + // Decode object and oldObject. + var newResource unstructured.Unstructured + if request.Operation != admissionregistrationv1.Delete { + if err := json.Unmarshal(request.Object, &newResource); err != nil { + return event.Event{}, fmt.Errorf("failed to unmarshal object: %w", err) + } + } + var oldResource unstructured.Unstructured + if request.Operation != admissionregistrationv1.Create && request.Operation != admissionregistrationv1.Connect { + if err := json.Unmarshal(request.OldObject, &oldResource); err != nil { + return event.Event{}, fmt.Errorf("failed to unmarshal oldObject: %w", err) + } + } + + // Generate a Datadog Event. + title := fmt.Sprintf("%s Event for %s %s/%s by %s", request.Operation, request.Kind.Kind, request.Namespace, request.Name, request.UserInfo.Username) + text := "%%%" + + "**Kind:** " + request.Kind.Kind + "\\\n" + + "**Resource:** " + request.Namespace + "/" + request.Name + "\\\n" + + "**Username:** " + request.UserInfo.Username + "\\\n" + + "**Operation:** " + string(request.Operation) + "\\\n" + + "**Time:** " + time.Now().UTC().Format("January 02, 2006 at 03:04:05 PM MST") + "\\\n" + + "**Request UID:** " + string(request.UID) + + "%%%" + + tags := []string{ + "uid:" + string(request.UID), + "kube_username:" + request.UserInfo.Username, + "kube_kind:" + request.Kind.Kind, + "kube_namespace:" + request.Namespace, + "kube_deployment:" + request.Name, // Only if we are dealing with a deployment. If we add more resources, we should rework this. + "operation:" + string(request.Operation), + } + + // Add labels to the tags. + for key, value := range newResource.GetLabels() { + tags = append(tags, fmt.Sprintf("%s:%s", key, value)) + } + for key, value := range oldResource.GetLabels() { + tags = append(tags, fmt.Sprintf("%s:%s", key, value)) + } + + return event.Event{ + Title: title, + Text: text, + Ts: 0, + Priority: event.PriorityNormal, + Tags: tags, + AlertType: event.AlertTypeInfo, + SourceTypeName: "kubernetes admission", + EventType: webhookName, + }, nil +} diff --git a/pkg/clusteragent/admission/validate/kubernetesadmissionevents/kubernetesadmissionevents_test.go b/pkg/clusteragent/admission/validate/kubernetesadmissionevents/kubernetesadmissionevents_test.go new file mode 100644 index 0000000000000..954d338bae5e3 --- /dev/null +++ b/pkg/clusteragent/admission/validate/kubernetesadmissionevents/kubernetesadmissionevents_test.go @@ -0,0 +1,268 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build kubeapiserver + +package kubernetesadmissionevents + +import ( + "encoding/json" + "fmt" + "testing" + "time" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/mock" + "go.uber.org/fx" + admissionregistrationv1 "k8s.io/api/admissionregistration/v1" + authenticationv1 "k8s.io/api/authentication/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + + "github.com/DataDog/datadog-agent/cmd/cluster-agent/admission" + "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer" + "github.com/DataDog/datadog-agent/comp/aggregator/demultiplexer/demultiplexerimpl" + "github.com/DataDog/datadog-agent/comp/core" + "github.com/DataDog/datadog-agent/comp/core/config" + "github.com/DataDog/datadog-agent/comp/core/hostname/hostnameimpl" + "github.com/DataDog/datadog-agent/comp/core/log/def" + logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" + compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" + "github.com/DataDog/datadog-agent/pkg/aggregator/mocksender" + "github.com/DataDog/datadog-agent/pkg/metrics/event" + "github.com/DataDog/datadog-agent/pkg/util/fxutil" +) + +const ( + sourceTypeName = "kubernetes admission" + eventType = "kubernetes_admission_events" +) + +// TestKubernetesAdmissionEvents tests the KubernetesAdmissionEvents webhook. +func TestKubernetesAdmissionEvents(t *testing.T) { + // Mock demultiplexer and sender + demultiplexerMock := createDemultiplexer(t) + mockSender := mocksender.NewMockSenderWithSenderManager(eventType, demultiplexerMock) + err := demultiplexerMock.SetSender(mockSender, eventType) + assert.NoError(t, err) + + // Mock Datadog Config + datadogConfigMock := fxutil.Test[config.Component](t, core.MockBundle()) + datadogConfigMock.SetWithoutSource("admission_controller.kubernetes_admission_events.enabled", true) + + tests := []struct { + name string + supportsMatchConditions bool + expectedEmitted bool + request admission.Request + expectedEvent event.Event + }{ + { + name: "Pod creation", + supportsMatchConditions: true, + expectedEmitted: true, + request: admission.Request{ + UID: "000", + Name: "pod", + Namespace: "namespace", + Kind: metav1.GroupVersionKind{ + Group: "", + Version: "v1", + Kind: "Pod", + }, + Operation: admissionregistrationv1.Create, + UserInfo: &authenticationv1.UserInfo{Username: "username"}, + Object: func() []byte { + marshalledObject, _ := json.Marshal(&unstructured.Unstructured{Object: map[string]interface{}{"kind": "Pod"}}) + return marshalledObject + }(), + OldObject: func() []byte { + marshalledOldObject, _ := json.Marshal(&unstructured.Unstructured{Object: map[string]interface{}{"kind": "Pod"}}) + return marshalledOldObject + }(), + DynamicClient: nil, + APIClient: nil, + }, + expectedEvent: event.Event{ + Title: fmt.Sprintf("%s Event for %s %s/%s by %s", "CREATE", "Pod", "namespace", "pod", "username"), + Text: "%%%" + + "**Kind:** " + "Pod" + "\\\n" + + "**Resource:** " + "namespace" + "/" + "pod" + "\\\n" + + "**Username:** " + "username" + "\\\n" + + "**Operation:** " + "CREATE" + "\\\n" + + "**Time:** " + time.Now().UTC().Format("January 02, 2006 at 03:04:05 PM MST") + "\\\n" + + "**Request UID:** " + "000" + + "%%%", + Ts: 0, + Priority: event.PriorityNormal, + Tags: []string{ + "uid:" + "000", + "kube_username:" + "username", + "kube_kind:" + "Pod", + "kube_namespace:" + "namespace", + "kube_deployment:" + "pod", + "operation:" + "CREATE", + }, + AlertType: event.AlertTypeInfo, + SourceTypeName: sourceTypeName, + EventType: eventType, + }, + }, + { + name: "Pod update", + supportsMatchConditions: true, + expectedEmitted: true, + request: admission.Request{ + UID: "000", + Name: "pod", + Namespace: "namespace", + Kind: metav1.GroupVersionKind{ + Group: "", + Version: "v1", + Kind: "Pod", + }, + Operation: admissionregistrationv1.Update, + UserInfo: &authenticationv1.UserInfo{Username: "username"}, + Object: func() []byte { + marshalledObject, _ := json.Marshal(&unstructured.Unstructured{Object: map[string]interface{}{"kind": "Pod"}}) + return marshalledObject + }(), + OldObject: func() []byte { + marshalledOldObject, _ := json.Marshal(&unstructured.Unstructured{Object: map[string]interface{}{"kind": "Pod"}}) + return marshalledOldObject + }(), + DynamicClient: nil, + APIClient: nil, + }, + expectedEvent: event.Event{ + Title: fmt.Sprintf("%s Event for %s %s/%s by %s", "UPDATE", "Pod", "namespace", "pod", "username"), + Text: "%%%" + + "**Kind:** " + "Pod" + "\\\n" + + "**Resource:** " + "namespace" + "/" + "pod" + "\\\n" + + "**Username:** " + "username" + "\\\n" + + "**Operation:** " + "UPDATE" + "\\\n" + + "**Time:** " + time.Now().UTC().Format("January 02, 2006 at 03:04:05 PM MST") + "\\\n" + + "**Request UID:** " + "000" + + "%%%", + Ts: 0, + Priority: event.PriorityNormal, + Tags: []string{ + "uid:" + "000", + "kube_username:" + "username", + "kube_kind:" + "Pod", + "kube_namespace:" + "namespace", + "kube_deployment:" + "pod", + "operation:" + "UPDATE", + }, + AlertType: event.AlertTypeInfo, + SourceTypeName: sourceTypeName, + EventType: eventType, + }, + }, + { + name: "Pod deletion", + supportsMatchConditions: true, + expectedEmitted: true, + request: admission.Request{ + UID: "000", + Name: "pod", + Namespace: "namespace", + Kind: metav1.GroupVersionKind{ + Group: "", + Version: "v1", + Kind: "Pod", + }, + Operation: admissionregistrationv1.Delete, + UserInfo: &authenticationv1.UserInfo{Username: "username"}, + Object: func() []byte { + marshalledObject, _ := json.Marshal(&unstructured.Unstructured{Object: map[string]interface{}{"kind": "Pod"}}) + return marshalledObject + }(), + OldObject: func() []byte { + marshalledOldObject, _ := json.Marshal(&unstructured.Unstructured{Object: map[string]interface{}{"kind": "Pod"}}) + return marshalledOldObject + }(), + DynamicClient: nil, + APIClient: nil, + }, + expectedEvent: event.Event{ + Title: fmt.Sprintf("%s Event for %s %s/%s by %s", "DELETE", "Pod", "namespace", "pod", "username"), + Text: "%%%" + + "**Kind:** " + "Pod" + "\\\n" + + "**Resource:** " + "namespace" + "/" + "pod" + "\\\n" + + "**Username:** " + "username" + "\\\n" + + "**Operation:** " + "DELETE" + "\\\n" + + "**Time:** " + time.Now().UTC().Format("January 02, 2006 at 03:04:05 PM MST") + "\\\n" + + "**Request UID:** " + "000" + + "%%%", + Ts: 0, + Priority: event.PriorityNormal, + Tags: []string{ + "uid:" + "000", + "kube_username:" + "username", + "kube_kind:" + "Pod", + "kube_namespace:" + "namespace", + "kube_deployment:" + "pod", + "operation:" + "DELETE", + }, + AlertType: event.AlertTypeInfo, + SourceTypeName: sourceTypeName, + EventType: eventType, + }, + }, + { + name: "Pod creation by system user without match conditions", + supportsMatchConditions: false, + expectedEmitted: false, + request: admission.Request{ + UID: "000", + Name: "pod", + Namespace: "namespace", + Kind: metav1.GroupVersionKind{ + Group: "", + Version: "v1", + Kind: "Pod", + }, + Operation: admissionregistrationv1.Create, + UserInfo: &authenticationv1.UserInfo{Username: "system:serviceaccount"}, + Object: func() []byte { + marshalledObject, _ := json.Marshal(&unstructured.Unstructured{Object: map[string]interface{}{"kind": "Pod"}}) + return marshalledObject + }(), + OldObject: func() []byte { + marshalledOldObject, _ := json.Marshal(&unstructured.Unstructured{Object: map[string]interface{}{"kind": "Pod"}}) + return marshalledOldObject + }(), + DynamicClient: nil, + APIClient: nil, + }, + expectedEvent: event.Event{}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + // Create the webhook + kubernetesAuditWebhook := NewWebhook(datadogConfigMock, demultiplexerMock, tt.supportsMatchConditions) + assert.True(t, kubernetesAuditWebhook.IsEnabled()) + assert.Equal(t, eventType, kubernetesAuditWebhook.name) + + // Emit the event + mockSender.On("Event", mock.AnythingOfType("event.Event")).Return().Once() + validated, err := kubernetesAuditWebhook.emitEvent(&tt.request, "", nil) + assert.NoError(t, err) + assert.True(t, validated) + if tt.expectedEmitted { + mockSender.AssertCalled(t, "Event", tt.expectedEvent) + } else { + mockSender.AssertNotCalled(t, "Event") + } + }) + } +} + +// createDemultiplexer creates a demultiplexer for testing +func createDemultiplexer(t *testing.T) demultiplexer.FakeSamplerMock { + return fxutil.Test[demultiplexer.FakeSamplerMock](t, fx.Provide(func() log.Component { return logmock.New(t) }), compressionmock.MockModule(), demultiplexerimpl.FakeSamplerMockModule(), hostnameimpl.MockModule()) +} diff --git a/pkg/config/setup/config.go b/pkg/config/setup/config.go index 53327bb3f2908..3544b3753e331 100644 --- a/pkg/config/setup/config.go +++ b/pkg/config/setup/config.go @@ -796,6 +796,7 @@ func InitConfig(config pkgconfigmodel.Setup) { config.BindEnvAndSetDefault("admission_controller.agent_sidecar.image_name", "agent") config.BindEnvAndSetDefault("admission_controller.agent_sidecar.image_tag", "latest") config.BindEnvAndSetDefault("admission_controller.agent_sidecar.cluster_agent.enabled", "true") + config.BindEnvAndSetDefault("admission_controller.kubernetes_admission_events.enabled", false) // Declare other keys that don't have a default/env var. // Mostly, keys we use IsSet() on, because IsSet always returns true if a key has a default. diff --git a/releasenotes-dca/notes/kubernetes_admission_events-0a5f9edb3153df5e.yaml b/releasenotes-dca/notes/kubernetes_admission_events-0a5f9edb3153df5e.yaml new file mode 100644 index 0000000000000..1f66b0585e46d --- /dev/null +++ b/releasenotes-dca/notes/kubernetes_admission_events-0a5f9edb3153df5e.yaml @@ -0,0 +1,14 @@ +# Each section from every release note are combined when the +# CHANGELOG-DCA.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +features: + - | + Implements the Kubernetes Admission Events webhooks. This new webhooks will emit Datadog Events + when receving Validation Admission requests. It will track deployments operations made by non-system + users. + The webhook is controlled by using the `admission_controller.kubernetes_admission_events.enabled` setting. From 53e4dedec6ba3c1369b447d4f68382d1bc97a5e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillermo=20Juli=C3=A1n?= Date: Fri, 29 Nov 2024 11:22:49 +0100 Subject: [PATCH 154/439] [EBPF] gpu: do not store symbols that aren't used for CUDA kernels (#31383) --- pkg/gpu/cuda/fatbin.go | 36 +++++++++++++++++++++++++++++------- pkg/gpu/cuda/fatbin_test.go | 4 ++-- pkg/gpu/cuda/symbols.go | 5 ++++- pkg/gpu/stream_test.go | 20 ++++++++++---------- 4 files changed, 45 insertions(+), 20 deletions(-) diff --git a/pkg/gpu/cuda/fatbin.go b/pkg/gpu/cuda/fatbin.go index 5000defcd3934..275e0978b5b25 100644 --- a/pkg/gpu/cuda/fatbin.go +++ b/pkg/gpu/cuda/fatbin.go @@ -40,16 +40,40 @@ const fatbinDataMaxKind = fatbinDataKindSm // Fatbin holds all CUDA binaries found in one fatbin package type Fatbin struct { - Kernels map[CubinKernelKey]*CubinKernel + // kernels is a map of kernel keys to the kernel data + kernels map[CubinKernelKey]*CubinKernel + + // kernelNames is a map of kernel names to make easy lookup for HasKernelWithName + kernelNames map[string]struct{} +} + +// NewFatbin creates a new Fatbin instance +func NewFatbin() *Fatbin { + return &Fatbin{ + kernels: make(map[CubinKernelKey]*CubinKernel), + kernelNames: make(map[string]struct{}), + } } // GetKernel returns the kernel with the given name and SM version from the fatbin func (fb *Fatbin) GetKernel(name string, smVersion uint32) *CubinKernel { key := CubinKernelKey{Name: name, SmVersion: smVersion} - if _, ok := fb.Kernels[key]; !ok { + if _, ok := fb.kernels[key]; !ok { return nil } - return fb.Kernels[key] + return fb.kernels[key] +} + +// HasKernelWithName returns true if the fatbin has a kernel with the given name +func (fb *Fatbin) HasKernelWithName(name string) bool { + _, ok := fb.kernelNames[name] + return ok +} + +// AddKernel adds a kernel to the fatbin and updates internal indexes +func (fb *Fatbin) AddKernel(key CubinKernelKey, kernel *CubinKernel) { + fb.kernels[key] = kernel + fb.kernelNames[kernel.Name] = struct{}{} } type fatbinHeader struct { @@ -121,9 +145,7 @@ func getBufferOffset(buf io.Seeker) int64 { // ParseFatbinFromELFFile parses the fatbin sections of the given ELF file and returns the information found in it func ParseFatbinFromELFFile(elfFile *safeelf.File) (*Fatbin, error) { - fatbin := &Fatbin{ - Kernels: make(map[CubinKernelKey]*CubinKernel), - } + fatbin := NewFatbin() for _, sect := range elfFile.Sections { // CUDA embeds the fatbin data in sections named .nv_fatbin or __nv_relfatbin @@ -255,7 +277,7 @@ func parseFatbinData(buffer io.ReadSeeker, fatbin *Fatbin) error { // the SM version they were compiled for which is only available in the fatbin data for _, kernel := range parser.kernels { key := CubinKernelKey{Name: kernel.Name, SmVersion: fbData.SmVersion} - fatbin.Kernels[key] = kernel + fatbin.AddKernel(key, kernel) } return nil diff --git a/pkg/gpu/cuda/fatbin_test.go b/pkg/gpu/cuda/fatbin_test.go index 702a9fa0207e5..c4d6b6974fa73 100644 --- a/pkg/gpu/cuda/fatbin_test.go +++ b/pkg/gpu/cuda/fatbin_test.go @@ -47,7 +47,7 @@ func TestParseFatbinFromPath(t *testing.T) { kern2MangledName: 256, } - for key, kernel := range res.Kernels { + for key, kernel := range res.kernels { seenSmVersionsAndKernels[key.SmVersion] = append(seenSmVersionsAndKernels[key.SmVersion], key.Name) require.Equal(t, key.Name, kernel.Name) @@ -112,7 +112,7 @@ func TestParseBigFatbinFromPath(t *testing.T) { seenSmVersionsAndKernels := make(map[uint32][]string) - for key, kernel := range res.Kernels { + for key, kernel := range res.kernels { seenSmVersionsAndKernels[key.SmVersion] = append(seenSmVersionsAndKernels[key.SmVersion], key.Name) require.Equal(t, key.Name, kernel.Name) diff --git a/pkg/gpu/cuda/symbols.go b/pkg/gpu/cuda/symbols.go index 650d6ca7add1e..88ea6eccb1e00 100644 --- a/pkg/gpu/cuda/symbols.go +++ b/pkg/gpu/cuda/symbols.go @@ -44,7 +44,10 @@ func GetSymbols(path string) (*Symbols, error) { } for _, sym := range syms { - data.SymbolTable[sym.Value] = sym.Name + // Only store symbols that are CUDA kernels + if fatbin.HasKernelWithName(sym.Name) { + data.SymbolTable[sym.Value] = sym.Name + } } return data, nil diff --git a/pkg/gpu/stream_test.go b/pkg/gpu/stream_test.go index d6a424f3e2cc7..f33e4f342e98b 100644 --- a/pkg/gpu/stream_test.go +++ b/pkg/gpu/stream_test.go @@ -343,19 +343,19 @@ func TestKernelLaunchesIncludeEnrichedKernelData(t *testing.T) { procBinPath := path.Join(proc, fmt.Sprintf("%d/root/%s", pid, binPath)) kernKey := cuda.CubinKernelKey{Name: kernName, SmVersion: smVersion} + + fatbin := cuda.NewFatbin() + fatbin.AddKernel(kernKey, &cuda.CubinKernel{ + Name: kernName, + KernelSize: kernSize, + SharedMem: sharedMem, + ConstantMem: constantMem, + }) + sysCtx.cudaSymbols[procBinPath] = &symbolsEntry{ Symbols: &cuda.Symbols{ SymbolTable: map[uint64]string{kernAddress: kernName}, - Fatbin: &cuda.Fatbin{ - Kernels: map[cuda.CubinKernelKey]*cuda.CubinKernel{ - kernKey: { - Name: kernName, - KernelSize: kernSize, - SharedMem: sharedMem, - ConstantMem: constantMem, - }, - }, - }, + Fatbin: fatbin, }, } From ae10a85f57e5f52a0a87a1a656a11dd75fd84c99 Mon Sep 17 00:00:00 2001 From: Florent Clarret Date: Fri, 29 Nov 2024 11:27:29 +0100 Subject: [PATCH 155/439] Update the apm-ecosystems-reliability slack channel (#31557) --- tasks/libs/pipeline/github_slack_map.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/libs/pipeline/github_slack_map.yaml b/tasks/libs/pipeline/github_slack_map.yaml index 4e83262868150..fd021cf169528 100644 --- a/tasks/libs/pipeline/github_slack_map.yaml +++ b/tasks/libs/pipeline/github_slack_map.yaml @@ -44,5 +44,5 @@ '@datadog/agent-devx-infra': '#agent-devx-ops' '@datadog/agent-devx-loops': '#agent-devx-ops' '@datadog/apm-onboarding': '#apm-onboarding' -'@datadog/apm-reliability-and-performance': '#apm-ecosystems-reliability-and-performance' +'@datadog/apm-reliability-and-performance': '#apm-ecosystems-reliability' '@DataDog/container-ecosystems': '#container-ecosystems-ops' From 06353eccb6cb529bfa31f66f2efb7b1ecc052184 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9lian=20Raimbault?= <161456554+CelianR@users.noreply.github.com> Date: Fri, 29 Nov 2024 06:10:47 -0500 Subject: [PATCH 156/439] worktree: Use git clone instead of git worktree (#31594) --- tasks/libs/common/worktree.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/tasks/libs/common/worktree.py b/tasks/libs/common/worktree.py index 7e7da54af73df..18813788cfc43 100644 --- a/tasks/libs/common/worktree.py +++ b/tasks/libs/common/worktree.py @@ -27,7 +27,17 @@ def init_env(ctx, branch: str | None = None): """ if not WORKTREE_DIRECTORY.is_dir(): - if not ctx.run(f"git worktree add '{WORKTREE_DIRECTORY}' origin/{branch or 'main'}", warn=True): + print(f'{color_message("Info", Color.BLUE)}: Cloning datadog agent into {WORKTREE_DIRECTORY}') + remote = ctx.run("git remote get-url origin", hide=True).stdout.strip() + # Try to use this option to reduce cloning time + if all( + not ctx.run( + f"git clone '{remote}' '{WORKTREE_DIRECTORY}' -b {branch or 'main'} {filter_option}", + warn=True, + hide=True, + ) + for filter_option in ["--filter=blob:none", ""] + ): raise Exit( f'{color_message("Error", Color.RED)}: Cannot initialize worktree environment. You might want to reset the worktree directory with `inv worktree.remove`', code=1, @@ -47,7 +57,7 @@ def init_env(ctx, branch: str | None = None): def remove_env(ctx): """Will remove the environment for commands applying to a worktree.""" - ctx.run(f"git worktree remove -f '{WORKTREE_DIRECTORY}'", warn=True) + ctx.run(f"rm -rf '{WORKTREE_DIRECTORY}'", warn=True) def is_worktree(): From a9e81b3abcb3936cb6abaa0e422d3a5ec18f914f Mon Sep 17 00:00:00 2001 From: pducolin <45568537+pducolin@users.noreply.github.com> Date: Fri, 29 Nov 2024 12:17:15 +0100 Subject: [PATCH 157/439] [e2e] add local host provisioner based on podman (#31494) Co-authored-by: agent-platform-auto-pr[bot] <153269286+agent-platform-auto-pr[bot]@users.noreply.github.com> --- .../new-e2e/examples/agentenv_metrics_test.go | 1 - test/new-e2e/examples/vm_localpodman_test.go | 53 +++++ test/new-e2e/examples/vm_test.go | 6 - .../pkg/environments/local/host/podman.go | 182 ++++++++++++++++++ .../pkg/environments/local/kubernetes/kind.go | 2 - test/new-e2e/pkg/runner/configmap.go | 6 +- test/new-e2e/pkg/runner/configmap_test.go | 1 + test/new-e2e/pkg/utils/e2e/client/host.go | 2 +- 8 files changed, 242 insertions(+), 11 deletions(-) create mode 100644 test/new-e2e/examples/vm_localpodman_test.go create mode 100644 test/new-e2e/pkg/environments/local/host/podman.go diff --git a/test/new-e2e/examples/agentenv_metrics_test.go b/test/new-e2e/examples/agentenv_metrics_test.go index 513bfe72d8fdc..86150b5a5b26c 100644 --- a/test/new-e2e/examples/agentenv_metrics_test.go +++ b/test/new-e2e/examples/agentenv_metrics_test.go @@ -46,6 +46,5 @@ func (v *fakeintakeSuiteMetrics) Test3_FakeIntakeReceivesSystemUptimeHigherThanZ metrics, err := v.Env().FakeIntake.Client().FilterMetrics("system.uptime", client.WithMetricValueHigherThan(0)) assert.NoError(c, err) assert.Greater(c, len(metrics), 0, "no 'system.uptime' with value higher than 0 yet") - assert.Greater(c, len(metrics), 0, "no 'system.load.1' metrics yet") }, 5*time.Minute, 10*time.Second) } diff --git a/test/new-e2e/examples/vm_localpodman_test.go b/test/new-e2e/examples/vm_localpodman_test.go new file mode 100644 index 0000000000000..92941a6d7a8a4 --- /dev/null +++ b/test/new-e2e/examples/vm_localpodman_test.go @@ -0,0 +1,53 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package examples + +import ( + "testing" + "time" + + "github.com/stretchr/testify/assert" + + "github.com/DataDog/datadog-agent/test/fakeintake/client" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments" + localhost "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments/local/host" +) + +type vmLocalPodmanSuite struct { + e2e.BaseSuite[environments.Host] +} + +// TestVMLocalPodmanSuite runs tests for the VM interface provisioned on a local podman managed container. +func TestVMLocalPodmanSuite(t *testing.T) { + suiteParams := []e2e.SuiteOption{e2e.WithProvisioner(localhost.PodmanProvisioner())} + + e2e.Run(t, &vmLocalPodmanSuite{}, suiteParams...) +} + +func (v *vmLocalPodmanSuite) TestExecute() { + vm := v.Env().RemoteHost + + out, err := vm.Execute("whoami") + v.Require().NoError(err) + v.Require().NotEmpty(out) +} + +func (v *vmLocalPodmanSuite) TestFakeIntakeReceivesSystemLoadMetric() { + v.EventuallyWithT(func(c *assert.CollectT) { + metrics, err := v.Env().FakeIntake.Client().FilterMetrics("system.load.1") + assert.NoError(c, err) + assert.Greater(c, len(metrics), 0, "no 'system.load.1' metrics yet") + }, 5*time.Minute, 10*time.Second) +} + +func (v *vmLocalPodmanSuite) TestFakeIntakeReceivesSystemUptimeHigherThanZero() { + v.EventuallyWithT(func(c *assert.CollectT) { + metrics, err := v.Env().FakeIntake.Client().FilterMetrics("system.uptime", client.WithMetricValueHigherThan(0)) + assert.NoError(c, err) + assert.Greater(c, len(metrics), 0, "no 'system.uptime' with value higher than 0 yet") + }, 5*time.Minute, 10*time.Second) +} diff --git a/test/new-e2e/examples/vm_test.go b/test/new-e2e/examples/vm_test.go index ea5624354ca2c..a2fea62f01969 100644 --- a/test/new-e2e/examples/vm_test.go +++ b/test/new-e2e/examples/vm_test.go @@ -6,7 +6,6 @@ package examples import ( - "flag" "testing" "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e" @@ -14,8 +13,6 @@ import ( awshost "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments/aws/host" ) -var devMode = flag.Bool("devmode", false, "enable dev mode") - type vmSuite struct { e2e.BaseSuite[environments.Host] } @@ -23,9 +20,6 @@ type vmSuite struct { // TestVMSuite runs tests for the VM interface to ensure its implementation is correct. func TestVMSuite(t *testing.T) { suiteParams := []e2e.SuiteOption{e2e.WithProvisioner(awshost.ProvisionerNoAgentNoFakeIntake())} - if *devMode { - suiteParams = append(suiteParams, e2e.WithDevMode()) - } e2e.Run(t, &vmSuite{}, suiteParams...) } diff --git a/test/new-e2e/pkg/environments/local/host/podman.go b/test/new-e2e/pkg/environments/local/host/podman.go new file mode 100644 index 0000000000000..911a91f36ab76 --- /dev/null +++ b/test/new-e2e/pkg/environments/local/host/podman.go @@ -0,0 +1,182 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package localhost contains the provisioner for the local Host based environments +package localhost + +import ( + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/runner" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/utils/optional" + + "github.com/DataDog/test-infra-definitions/components/datadog/agent" + "github.com/DataDog/test-infra-definitions/components/datadog/agentparams" + "github.com/DataDog/test-infra-definitions/resources/local" + + fakeintakeComp "github.com/DataDog/test-infra-definitions/components/datadog/fakeintake" + "github.com/DataDog/test-infra-definitions/scenarios/aws/fakeintake" + localpodman "github.com/DataDog/test-infra-definitions/scenarios/local/podman" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +const ( + provisionerBaseID = "local-host-" + defaultName = "podman-host" +) + +// ProvisionerParams contains all the parameters needed to create the environment +type ProvisionerParams struct { + name string + agentOptions []agentparams.Option + fakeintakeOptions []fakeintake.Option + extraConfigParams runner.ConfigMap +} + +func newProvisionerParams() *ProvisionerParams { + return &ProvisionerParams{ + name: defaultName, + agentOptions: []agentparams.Option{}, + fakeintakeOptions: []fakeintake.Option{}, + extraConfigParams: runner.ConfigMap{}, + } +} + +// ProvisionerOption is a function that modifies the ProvisionerParams +type ProvisionerOption func(*ProvisionerParams) error + +// WithName sets the name of the provisioner +func WithName(name string) ProvisionerOption { + return func(params *ProvisionerParams) error { + params.name = name + return nil + } +} + +// WithAgentOptions adds options to the agent +func WithAgentOptions(opts ...agentparams.Option) ProvisionerOption { + return func(params *ProvisionerParams) error { + params.agentOptions = opts + return nil + } +} + +// WithoutFakeIntake removes the fake intake +func WithoutFakeIntake() ProvisionerOption { + return func(params *ProvisionerParams) error { + params.fakeintakeOptions = nil + return nil + } +} + +// WithoutAgent removes the agent +func WithoutAgent() ProvisionerOption { + return func(params *ProvisionerParams) error { + params.agentOptions = nil + return nil + } +} + +// WithExtraConfigParams adds extra config parameters to the environment +func WithExtraConfigParams(configMap runner.ConfigMap) ProvisionerOption { + return func(params *ProvisionerParams) error { + params.extraConfigParams = configMap + return nil + } +} + +// PodmanProvisionerNoAgentNoFakeIntake wraps Provisioner with hardcoded WithoutAgent and WithoutFakeIntake options. +func PodmanProvisionerNoAgentNoFakeIntake(opts ...ProvisionerOption) e2e.TypedProvisioner[environments.Host] { + mergedOpts := make([]ProvisionerOption, 0, len(opts)+2) + mergedOpts = append(mergedOpts, opts...) + mergedOpts = append(mergedOpts, WithoutAgent(), WithoutFakeIntake()) + + return PodmanProvisioner(mergedOpts...) +} + +// PodmanProvisionerNoFakeIntake wraps Provisioner with hardcoded WithoutFakeIntake option. +func PodmanProvisionerNoFakeIntake(opts ...ProvisionerOption) e2e.TypedProvisioner[environments.Host] { + mergedOpts := make([]ProvisionerOption, 0, len(opts)+1) + mergedOpts = append(mergedOpts, opts...) + mergedOpts = append(mergedOpts, WithoutFakeIntake()) + + return PodmanProvisioner(mergedOpts...) +} + +// PodmanProvisioner creates a new provisioner +func PodmanProvisioner(opts ...ProvisionerOption) e2e.TypedProvisioner[environments.Host] { + // We ALWAYS need to make a deep copy of `params`, as the provisioner can be called multiple times. + // and it's easy to forget about it, leading to hard to debug issues. + params := newProvisionerParams() + _ = optional.ApplyOptions(params, opts) + + provisioner := e2e.NewTypedPulumiProvisioner(provisionerBaseID+params.name, func(ctx *pulumi.Context, env *environments.Host) error { + // We ALWAYS need to make a deep copy of `params`, as the provisioner can be called multiple times. + // and it's easy to forget about it, leading to hard to debug issues. + params := newProvisionerParams() + _ = optional.ApplyOptions(params, opts) + + return PodmanRunFunc(ctx, env, params) + }, params.extraConfigParams) + + return provisioner +} + +// PodmanRunFunc is the Pulumi run function that runs the provisioner +func PodmanRunFunc(ctx *pulumi.Context, env *environments.Host, params *ProvisionerParams) error { + localEnv, err := local.NewEnvironment(ctx) + if err != nil { + return err + } + + vm, err := localpodman.NewVM(localEnv, params.name) + if err != nil { + return err + } + + err = vm.Export(ctx, &env.RemoteHost.HostOutput) + if err != nil { + return err + } + + if params.fakeintakeOptions != nil { + fakeIntake, err := fakeintakeComp.NewLocalDockerFakeintake(&localEnv, "fakeintake") + if err != nil { + return err + } + err = fakeIntake.Export(ctx, &env.FakeIntake.FakeintakeOutput) + if err != nil { + return err + } + + if params.agentOptions != nil { + newOpts := []agentparams.Option{agentparams.WithFakeintake(fakeIntake)} + params.agentOptions = append(newOpts, params.agentOptions...) + } + } else { + env.FakeIntake = nil + } + + if params.agentOptions != nil { + agentOptions := []agentparams.Option{agentparams.WithHostname("localdocker-vm")} + agentOptions = append(agentOptions, params.agentOptions...) + agent, err := agent.NewHostAgent(&localEnv, vm, agentOptions...) + if err != nil { + return err + } + err = agent.Export(ctx, &env.Agent.HostAgentOutput) + if err != nil { + return err + } + } else { + env.Agent = nil + } + + // explicit set the updater as nil as we do not use it + env.Updater = nil + + return nil +} diff --git a/test/new-e2e/pkg/environments/local/kubernetes/kind.go b/test/new-e2e/pkg/environments/local/kubernetes/kind.go index 90234eaaee38a..99703f64eb402 100644 --- a/test/new-e2e/pkg/environments/local/kubernetes/kind.go +++ b/test/new-e2e/pkg/environments/local/kubernetes/kind.go @@ -150,8 +150,6 @@ func KindRunFunc(ctx *pulumi.Context, env *environments.Kubernetes, params *Prov } if params.fakeintakeOptions != nil { - fakeintakeOpts := []fakeintake.Option{fakeintake.WithLoadBalancer()} - params.fakeintakeOptions = append(fakeintakeOpts, params.fakeintakeOptions...) fakeIntake, err := fakeintakeComp.NewLocalDockerFakeintake(&localEnv, "fakeintake") if err != nil { return err diff --git a/test/new-e2e/pkg/runner/configmap.go b/test/new-e2e/pkg/runner/configmap.go index 20dcb1a875cdd..bb4fd0a9fb0f7 100644 --- a/test/new-e2e/pkg/runner/configmap.go +++ b/test/new-e2e/pkg/runner/configmap.go @@ -13,6 +13,7 @@ import ( infraaws "github.com/DataDog/test-infra-definitions/resources/aws" infraazure "github.com/DataDog/test-infra-definitions/resources/azure" infragcp "github.com/DataDog/test-infra-definitions/resources/gcp" + infralocal "github.com/DataDog/test-infra-definitions/resources/local" "github.com/DataDog/datadog-agent/test/new-e2e/pkg/runner/parameters" @@ -62,6 +63,9 @@ const ( GCPPrivateKeyPath = commonconfig.DDInfraConfigNamespace + ":" + infragcp.DDInfraDefaultPrivateKeyPath // GCPPrivateKeyPassword pulumi config paramater name GCPPrivateKeyPassword = commonconfig.DDInfraConfigNamespace + ":" + infragcp.DDInfraDefaultPrivateKeyPassword + + // LocalPublicKeyPath pulumi config paramater name + LocalPublicKeyPath = commonconfig.DDInfraConfigNamespace + ":" + infralocal.DDInfraDefaultPublicKeyPath ) // ConfigMap type alias to auto.ConfigMap @@ -124,7 +128,7 @@ func BuildStackParameters(profile Profile, scenarioConfig ConfigMap) (ConfigMap, cm.Set(InfraEnvironmentVariables, profile.EnvironmentNames(), false) params := map[parameters.StoreKey][]string{ parameters.KeyPairName: {AWSKeyPairName}, - parameters.PublicKeyPath: {AWSPublicKeyPath, AzurePublicKeyPath, GCPPublicKeyPath}, + parameters.PublicKeyPath: {AWSPublicKeyPath, AzurePublicKeyPath, GCPPublicKeyPath, LocalPublicKeyPath}, parameters.PrivateKeyPath: {AWSPrivateKeyPath, AzurePrivateKeyPath, GCPPrivateKeyPath}, parameters.ExtraResourcesTags: {InfraExtraResourcesTags}, parameters.PipelineID: {AgentPipelineID}, diff --git a/test/new-e2e/pkg/runner/configmap_test.go b/test/new-e2e/pkg/runner/configmap_test.go index f60b91cfef341..2e9bf966a53a2 100644 --- a/test/new-e2e/pkg/runner/configmap_test.go +++ b/test/new-e2e/pkg/runner/configmap_test.go @@ -46,6 +46,7 @@ func Test_BuildStackParameters(t *testing.T) { "ddinfra:gcp/defaultPublicKeyPath": auto.ConfigValue{Value: "public_key_path", Secret: false}, "ddinfra:gcp/defaultPrivateKeyPath": auto.ConfigValue{Value: "private_key_path", Secret: false}, "ddinfra:gcp/defaultPrivateKeyPassword": auto.ConfigValue{Value: "private_key_password", Secret: true}, + "ddinfra:local/defaultPublicKeyPath": auto.ConfigValue{Value: "public_key_path", Secret: false}, "ddagent:pipeline_id": auto.ConfigValue{Value: "pipeline_id", Secret: false}, "ddagent:commit_sha": auto.ConfigValue{Value: "commit_sha", Secret: false}, "ddagent:majorVersion": auto.ConfigValue{Value: "major_version", Secret: false}, diff --git a/test/new-e2e/pkg/utils/e2e/client/host.go b/test/new-e2e/pkg/utils/e2e/client/host.go index 16d597805dd1a..e446f56ff32db 100644 --- a/test/new-e2e/pkg/utils/e2e/client/host.go +++ b/test/new-e2e/pkg/utils/e2e/client/host.go @@ -85,7 +85,7 @@ func NewHost(context e2e.Context, hostOutput remote.HostOutput) (*Host, error) { host := &Host{ context: context, username: hostOutput.Username, - host: fmt.Sprintf("%s:%d", hostOutput.Address, 22), + host: fmt.Sprintf("%s:%d", hostOutput.Address, hostOutput.Port), privateKey: privateSSHKey, privateKeyPassphrase: []byte(privateKeyPassword), buildCommand: buildCommandFactory(hostOutput.OSFamily), From bdf4917554eb4eaf0d5c427a9f6479120eb562d2 Mon Sep 17 00:00:00 2001 From: val06 Date: Fri, 29 Nov 2024 13:41:42 +0200 Subject: [PATCH 158/439] [EBPF] PatternScaner testutil - support matching finished log (#31564) Co-authored-by: Guy Arbitman --- .github/CODEOWNERS | 1 + .../usm/sharedlibraries/testutil/testutil.go | 3 +- pkg/util/testutil/docker/run.go | 7 +- pkg/util/testutil/patternscanner.go | 72 ++++++++++++++----- 4 files changed, 65 insertions(+), 18 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 547304d1cbca5..eaea27fa17792 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -465,6 +465,7 @@ /pkg/util/pdhutil/ @DataDog/windows-agent /pkg/util/winutil/ @DataDog/windows-agent /pkg/util/testutil/flake @DataDog/agent-devx-loops +/pkg/util/testutil/patternscanner.go @DataDog/universal-service-monitoring @DataDog/ebpf-platform /pkg/util/testutil/docker @DataDog/universal-service-monitoring @DataDog/ebpf-platform /pkg/util/trie @DataDog/container-integrations /pkg/languagedetection @DataDog/processes @DataDog/universal-service-monitoring diff --git a/pkg/network/usm/sharedlibraries/testutil/testutil.go b/pkg/network/usm/sharedlibraries/testutil/testutil.go index be937a68d330a..a5f36ab69c216 100644 --- a/pkg/network/usm/sharedlibraries/testutil/testutil.go +++ b/pkg/network/usm/sharedlibraries/testutil/testutil.go @@ -31,7 +31,8 @@ var mux sync.Mutex // handle to the given paths. func OpenFromProcess(t *testing.T, programExecutable string, paths ...string) (*exec.Cmd, error) { cmd := exec.Command(programExecutable, paths...) - patternScanner := protocolstestutil.NewScanner(regexp.MustCompile("awaiting signal"), make(chan struct{}, 1)) + patternScanner, err := protocolstestutil.NewScanner(regexp.MustCompile("awaiting signal"), protocolstestutil.NoPattern, make(chan struct{}, 1)) + require.NoError(t, err, "failed to create pattern scanner") cmd.Stdout = patternScanner cmd.Stderr = patternScanner diff --git a/pkg/util/testutil/docker/run.go b/pkg/util/testutil/docker/run.go index 2f3049858675a..acde40acd969c 100644 --- a/pkg/util/testutil/docker/run.go +++ b/pkg/util/testutil/docker/run.go @@ -14,6 +14,8 @@ import ( "testing" "time" + "github.com/stretchr/testify/require" + "github.com/DataDog/datadog-agent/pkg/util/testutil" ) @@ -24,12 +26,15 @@ import ( func Run(t testing.TB, cfg LifecycleConfig) error { var err error var ctx context.Context + var scanner *testutil.PatternScanner for i := 0; i < cfg.Retries(); i++ { t.Helper() // Ensuring no previous instances exists. killPreviousInstances(cfg) - scanner := testutil.NewScanner(cfg.LogPattern(), make(chan struct{}, 1)) + //TODO: in the following PR move the scanner to be a field of the LifecycleConfig + scanner, err = testutil.NewScanner(cfg.LogPattern(), testutil.NoPattern, make(chan struct{}, 1)) + require.NoError(t, err, "failed to create pattern scanner") // attempt to start the container/s ctx, err = run(t, cfg, scanner) if err != nil { diff --git a/pkg/util/testutil/patternscanner.go b/pkg/util/testutil/patternscanner.go index a5b7d685e4f1d..0610ad30afd72 100644 --- a/pkg/util/testutil/patternscanner.go +++ b/pkg/util/testutil/patternscanner.go @@ -9,38 +9,53 @@ package testutil import ( + "errors" "regexp" "strings" "sync" "testing" ) +// NoPattern is a sugar syntax for empty pattern +var NoPattern *regexp.Regexp + // PatternScanner is a helper to scan logs for a given pattern. type PatternScanner struct { - // The log pattern to match on - pattern *regexp.Regexp + // The log pattern to match on validating successful start + startPattern *regexp.Regexp + // The log pattern to match on validating successful finish. This is optional + finishPattern *regexp.Regexp // Once we've found the correct log, we should notify the caller. DoneChan chan struct{} // A sync.Once instance to ensure we notify the caller only once, and stop the operation. stopOnce sync.Once - // A helper to spare redundant calls to the analyzer once we've found the relevant log. + + // flag to indicate that start was found, and we should look for finishPattern now + startPatternFound bool + // A helper to spare redundant calls to the analyzer once we've found both start and finish stopped bool // keep the stdout/err in case of failure buffers []string - //Buffer for accumulating partial lines lineBuf string } // NewScanner returns a new instance of PatternScanner. -func NewScanner(pattern *regexp.Regexp, doneChan chan struct{}) *PatternScanner { - return &PatternScanner{ - pattern: pattern, - DoneChan: doneChan, - stopOnce: sync.Once{}, - stopped: false, +// at least one of the startPattern/finishPattern should be provided. +func NewScanner(startPattern, finishPattern *regexp.Regexp, doneChan chan struct{}) (*PatternScanner, error) { + if startPattern == nil && finishPattern == nil { + return nil, errors.New("at least one pattern should be provided") } + return &PatternScanner{ + startPattern: startPattern, + finishPattern: finishPattern, + DoneChan: doneChan, + stopOnce: sync.Once{}, + // skip looking for start pattern if not provided + startPatternFound: startPattern == nil, + stopped: false, + }, nil } // Write implemented io.Writer to be used as a callback for log/string writing. @@ -61,17 +76,42 @@ func (ps *PatternScanner) Write(p []byte) (n int, err error) { // Process all complete lines. for _, line := range lines[:len(lines)-1] { ps.buffers = append(ps.buffers, line) // Save the log line. - if !ps.stopped && ps.pattern.MatchString(line) { - ps.stopOnce.Do(func() { - ps.stopped = true - close(ps.DoneChan) // Notify the caller about the match. - }) - } + + // Check if we've met the scanning criteria + ps.matchPatterns(line) } return len(p), nil } +// matchPatterns checks if the current line matches the scanning requirements +func (ps *PatternScanner) matchPatterns(line string) { + switch { + // startPatternFound pattern not found yet, look for it + case !ps.startPatternFound: + if ps.startPattern.MatchString(line) { + // found start pattern, flip the flag to start looking for finish pattern for following iterations + ps.startPatternFound = true + + // no finishPattern provided, we can stop here + if ps.finishPattern == nil { + ps.notifyAndStop() + } + } + // startPatternFound pattern found, look for finish pattern if provided + case ps.finishPattern != nil && ps.finishPattern.MatchString(line): + ps.notifyAndStop() + } +} + +func (ps *PatternScanner) notifyAndStop() { + ps.stopOnce.Do(func() { + ps.buffers = append(ps.buffers, ps.lineBuf) // flush the last line + ps.stopped = true + close(ps.DoneChan) + }) +} + // PrintLogs writes the captured logs into the test logger. func (ps *PatternScanner) PrintLogs(t testing.TB) { t.Log(strings.Join(ps.buffers, "\n")) From 092a3cb15c50e5edf3945bcb66793c33f1e0cd4b Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Fri, 29 Nov 2024 13:15:46 +0100 Subject: [PATCH 159/439] [CWS] do not resolve new fields in functional test field collector (#31584) --- pkg/security/secl/compiler/eval/context.go | 8 + .../secl/compiler/eval/context_functests.go | 18 + .../secl/compiler/eval/context_regular.go | 13 + pkg/security/secl/compiler/eval/evaluators.go | 51 - .../generators/accessors/accessors.tmpl | 2 + pkg/security/secl/model/accessors_unix.go | 1410 +++++++++++++++++ pkg/security/secl/model/accessors_windows.go | 151 ++ .../secl/rules/collected_events_functests.go | 20 +- .../secl/rules/collected_events_regular.go | 2 +- pkg/security/secl/rules/ruleset.go | 2 +- pkg/security/seclwin/model/accessors_win.go | 151 ++ 11 files changed, 1764 insertions(+), 64 deletions(-) create mode 100644 pkg/security/secl/compiler/eval/context_functests.go create mode 100644 pkg/security/secl/compiler/eval/context_regular.go diff --git a/pkg/security/secl/compiler/eval/context.go b/pkg/security/secl/compiler/eval/context.go index dc8804a459c50..038a24634b353 100644 --- a/pkg/security/secl/compiler/eval/context.go +++ b/pkg/security/secl/compiler/eval/context.go @@ -35,6 +35,8 @@ type Context struct { now time.Time CachedAncestorsCount int + + resolvedFields []string } // Now return and cache the `now` timestamp @@ -61,6 +63,12 @@ func (c *Context) Reset() { clear(c.Registers) clear(c.RegisterCache) c.CachedAncestorsCount = 0 + clear(c.resolvedFields) +} + +// GetResolvedFields returns the resolved fields, always empty outside of functional tests +func (c *Context) GetResolvedFields() []string { + return c.resolvedFields } // NewContext return a new Context diff --git a/pkg/security/secl/compiler/eval/context_functests.go b/pkg/security/secl/compiler/eval/context_functests.go new file mode 100644 index 0000000000000..4c0a56683d9ea --- /dev/null +++ b/pkg/security/secl/compiler/eval/context_functests.go @@ -0,0 +1,18 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build functionaltests + +// Package eval holds eval related files +package eval + +// AppendResolvedField instructs the context that this field has been resolved +func (c *Context) AppendResolvedField(field string) { + if field == "" { + return + } + + c.resolvedFields = append(c.resolvedFields, field) +} diff --git a/pkg/security/secl/compiler/eval/context_regular.go b/pkg/security/secl/compiler/eval/context_regular.go new file mode 100644 index 0000000000000..b2a8ff0d71851 --- /dev/null +++ b/pkg/security/secl/compiler/eval/context_regular.go @@ -0,0 +1,13 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build !functionaltests + +// Package eval holds eval related files +package eval + +// AppendResolvedField is a no-op outside of functional tests +func (c *Context) AppendResolvedField(_ string) { +} diff --git a/pkg/security/secl/compiler/eval/evaluators.go b/pkg/security/secl/compiler/eval/evaluators.go index df2d7ab22609e..784d65a7c7bb5 100644 --- a/pkg/security/secl/compiler/eval/evaluators.go +++ b/pkg/security/secl/compiler/eval/evaluators.go @@ -18,7 +18,6 @@ type Evaluator interface { IsDeterministicFor(field Field) bool GetField() string IsStatic() bool - GetWeight() int } // BoolEvaluator returns a bool as result of the evaluation @@ -53,11 +52,6 @@ func (b *BoolEvaluator) IsStatic() bool { return b.EvalFnc == nil } -// GetWeight returns the weight of the evaluator -func (b *BoolEvaluator) GetWeight() int { - return b.Weight -} - // IntEvaluator returns an int as result of the evaluation type IntEvaluator struct { EvalFnc func(ctx *Context) int @@ -92,11 +86,6 @@ func (i *IntEvaluator) IsStatic() bool { return i.EvalFnc == nil } -// GetWeight returns the weight of the evaluator -func (i *IntEvaluator) GetWeight() int { - return i.Weight -} - // StringEvaluator returns a string as result of the evaluation type StringEvaluator struct { EvalFnc func(ctx *Context) string @@ -131,11 +120,6 @@ func (s *StringEvaluator) IsStatic() bool { return s.EvalFnc == nil } -// GetWeight returns the weight of the evaluator -func (s *StringEvaluator) GetWeight() int { - return s.Weight -} - // GetValue returns the evaluator value func (s *StringEvaluator) GetValue(ctx *Context) string { if s.EvalFnc == nil { @@ -190,11 +174,6 @@ func (s *StringArrayEvaluator) IsStatic() bool { return s.EvalFnc == nil } -// GetWeight returns the weight of the evaluator -func (s *StringArrayEvaluator) GetWeight() int { - return s.Weight -} - // AppendValue append the given value func (s *StringArrayEvaluator) AppendValue(value string) { s.Values = append(s.Values, value) @@ -230,11 +209,6 @@ func (s *StringValuesEvaluator) IsStatic() bool { return s.EvalFnc == nil } -// GetWeight returns the weight of the evaluator -func (s *StringValuesEvaluator) GetWeight() int { - return s.Weight -} - // Compile the underlying StringValues func (s *StringValuesEvaluator) Compile(opts StringCmpOpts) error { return s.Values.Compile(opts) @@ -301,11 +275,6 @@ func (i *IntArrayEvaluator) IsStatic() bool { return i.EvalFnc == nil } -// GetWeight returns the weight of the evaluator -func (i *IntArrayEvaluator) GetWeight() int { - return i.Weight -} - // AppendValues to the array evaluator func (i *IntArrayEvaluator) AppendValues(values ...int) { i.Values = append(i.Values, values...) @@ -343,11 +312,6 @@ func (b *BoolArrayEvaluator) IsStatic() bool { return b.EvalFnc == nil } -// GetWeight returns the weight of the evaluator -func (b *BoolArrayEvaluator) GetWeight() int { - return b.Weight -} - // AppendValues to the array evaluator func (b *BoolArrayEvaluator) AppendValues(values ...bool) { b.Values = append(b.Values, values...) @@ -386,11 +350,6 @@ func (s *CIDREvaluator) IsStatic() bool { return s.EvalFnc == nil } -// GetWeight returns the weight of the evaluator -func (s *CIDREvaluator) GetWeight() int { - return s.Weight -} - // CIDRValuesEvaluator returns a net.IP type CIDRValuesEvaluator struct { EvalFnc func(ctx *Context) *CIDRValues @@ -422,11 +381,6 @@ func (s *CIDRValuesEvaluator) IsStatic() bool { return s.EvalFnc == nil } -// GetWeight returns the weight of the evaluator -func (s *CIDRValuesEvaluator) GetWeight() int { - return s.Weight -} - // CIDRArrayEvaluator returns an array of net.IPNet type CIDRArrayEvaluator struct { EvalFnc func(ctx *Context) []net.IPNet @@ -459,8 +413,3 @@ func (s *CIDRArrayEvaluator) GetField() string { func (s *CIDRArrayEvaluator) IsStatic() bool { return s.EvalFnc == nil } - -// GetWeight returns the weight of the evaluator -func (s *CIDRArrayEvaluator) GetWeight() int { - return s.Weight -} diff --git a/pkg/security/secl/compiler/generators/accessors/accessors.tmpl b/pkg/security/secl/compiler/generators/accessors/accessors.tmpl index 979b8776cc535..4829db9985f8a 100644 --- a/pkg/security/secl/compiler/generators/accessors/accessors.tmpl +++ b/pkg/security/secl/compiler/generators/accessors/accessors.tmpl @@ -67,6 +67,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval {{- end}} {{- if and $Field.Iterator (not $Field.IsIterator) }} EvalFnc: func(ctx *eval.Context) []{{$Field.ReturnType}} { + ctx.AppendResolvedField(field) {{if $Field.Handler}} ev := ctx.Event.(*Event) {{end}} @@ -181,6 +182,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval {{- else}} {{- $ReturnType := $Field.ReturnType}} EvalFnc: func(ctx *eval.Context) {{$Field.GetArrayPrefix}}{{$ReturnType}} { + ctx.AppendResolvedField(field) {{- if not (and $Field.IsLength $Field.IsIterator)}} ev := ctx.Event.(*Event) {{end}} diff --git a/pkg/security/secl/model/accessors_unix.go b/pkg/security/secl/model/accessors_unix.go index 2d8d69b7f0c7a..50664604aaf6a 100644 --- a/pkg/security/secl/model/accessors_unix.go +++ b/pkg/security/secl/model/accessors_unix.go @@ -86,6 +86,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "bind.addr.family": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Bind.AddrFamily) }, @@ -95,6 +96,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "bind.addr.ip": return &eval.CIDREvaluator{ EvalFnc: func(ctx *eval.Context) net.IPNet { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Bind.Addr.IPNet }, @@ -104,6 +106,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "bind.addr.is_public": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveIsIPPublic(ev, &ev.Bind.Addr) }, @@ -113,6 +116,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "bind.addr.port": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Bind.Addr.Port) }, @@ -122,6 +126,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "bind.protocol": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Bind.Protocol) }, @@ -131,6 +136,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "bind.retval": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Bind.SyscallEvent.Retval) }, @@ -140,6 +146,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "bpf.cmd": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.BPF.Cmd) }, @@ -149,6 +156,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "bpf.map.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.BPF.Map.Name }, @@ -158,6 +166,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "bpf.map.type": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.BPF.Map.Type) }, @@ -167,6 +176,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "bpf.prog.attach_type": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.BPF.Program.AttachType) }, @@ -176,6 +186,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "bpf.prog.helpers": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) result := make([]int, len(ev.BPF.Program.Helpers)) for i, v := range ev.BPF.Program.Helpers { @@ -189,6 +200,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "bpf.prog.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.BPF.Program.Name }, @@ -198,6 +210,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "bpf.prog.tag": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.BPF.Program.Tag }, @@ -207,6 +220,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "bpf.prog.type": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.BPF.Program.Type) }, @@ -216,6 +230,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "bpf.retval": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.BPF.SyscallEvent.Retval) }, @@ -225,6 +240,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "capset.cap_effective": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Capset.CapEffective) }, @@ -234,6 +250,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "capset.cap_permitted": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Capset.CapPermitted) }, @@ -243,6 +260,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "cgroup.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.CGroupContext.CGroupFile.Inode) }, @@ -252,6 +270,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "cgroup.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.CGroupContext.CGroupFile.MountID) }, @@ -261,6 +280,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "cgroup.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveCGroupID(ev, &ev.CGroupContext) }, @@ -270,6 +290,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "cgroup.manager": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveCGroupManager(ev, &ev.CGroupContext) }, @@ -279,6 +300,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chdir.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chdir.File.FileFields.CTime) }, @@ -288,6 +310,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chdir.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFilesystem(ev, &ev.Chdir.File) }, @@ -297,6 +320,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chdir.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chdir.File.FileFields.GID) }, @@ -306,6 +330,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chdir.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsGroup(ev, &ev.Chdir.File.FileFields) }, @@ -315,6 +340,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chdir.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveHashesFromEvent(ev, &ev.Chdir.File) }, @@ -324,6 +350,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chdir.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsInUpperLayer(ev, &ev.Chdir.File.FileFields) }, @@ -333,6 +360,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chdir.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chdir.File.FileFields.PathKey.Inode) }, @@ -342,6 +370,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chdir.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chdir.File.FileFields.Mode) }, @@ -351,6 +380,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chdir.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chdir.File.FileFields.MTime) }, @@ -360,6 +390,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chdir.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chdir.File.FileFields.PathKey.MountID) }, @@ -370,6 +401,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileBasename(ev, &ev.Chdir.File) }, @@ -380,6 +412,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.Chdir.File)) }, @@ -389,6 +422,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chdir.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageName(ev, &ev.Chdir.File) }, @@ -398,6 +432,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chdir.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageSourceVersion(ev, &ev.Chdir.File) }, @@ -407,6 +442,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chdir.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageVersion(ev, &ev.Chdir.File) }, @@ -417,6 +453,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFilePath(ev, &ev.Chdir.File) }, @@ -427,6 +464,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.Chdir.File)) }, @@ -436,6 +474,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chdir.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveRights(ev, &ev.Chdir.File.FileFields)) }, @@ -445,6 +484,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chdir.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chdir.File.FileFields.UID) }, @@ -454,6 +494,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chdir.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsUser(ev, &ev.Chdir.File.FileFields) }, @@ -463,6 +504,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chdir.retval": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chdir.SyscallEvent.Retval) }, @@ -472,6 +514,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chdir.syscall.path": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveSyscallCtxArgsStr1(ev, &ev.Chdir.SyscallContext) }, @@ -481,6 +524,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chmod.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chmod.File.FileFields.CTime) }, @@ -490,6 +534,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chmod.file.destination.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chmod.Mode) }, @@ -499,6 +544,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chmod.file.destination.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chmod.Mode) }, @@ -508,6 +554,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chmod.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFilesystem(ev, &ev.Chmod.File) }, @@ -517,6 +564,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chmod.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chmod.File.FileFields.GID) }, @@ -526,6 +574,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chmod.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsGroup(ev, &ev.Chmod.File.FileFields) }, @@ -535,6 +584,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chmod.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveHashesFromEvent(ev, &ev.Chmod.File) }, @@ -544,6 +594,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chmod.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsInUpperLayer(ev, &ev.Chmod.File.FileFields) }, @@ -553,6 +604,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chmod.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chmod.File.FileFields.PathKey.Inode) }, @@ -562,6 +614,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chmod.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chmod.File.FileFields.Mode) }, @@ -571,6 +624,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chmod.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chmod.File.FileFields.MTime) }, @@ -580,6 +634,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chmod.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chmod.File.FileFields.PathKey.MountID) }, @@ -590,6 +645,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileBasename(ev, &ev.Chmod.File) }, @@ -600,6 +656,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.Chmod.File)) }, @@ -609,6 +666,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chmod.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageName(ev, &ev.Chmod.File) }, @@ -618,6 +676,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chmod.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageSourceVersion(ev, &ev.Chmod.File) }, @@ -627,6 +686,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chmod.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageVersion(ev, &ev.Chmod.File) }, @@ -637,6 +697,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFilePath(ev, &ev.Chmod.File) }, @@ -647,6 +708,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.Chmod.File)) }, @@ -656,6 +718,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chmod.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveRights(ev, &ev.Chmod.File.FileFields)) }, @@ -665,6 +728,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chmod.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chmod.File.FileFields.UID) }, @@ -674,6 +738,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chmod.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsUser(ev, &ev.Chmod.File.FileFields) }, @@ -683,6 +748,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chmod.retval": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chmod.SyscallEvent.Retval) }, @@ -692,6 +758,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chmod.syscall.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveSyscallCtxArgsInt2(ev, &ev.Chmod.SyscallContext)) }, @@ -701,6 +768,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chmod.syscall.path": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveSyscallCtxArgsStr1(ev, &ev.Chmod.SyscallContext) }, @@ -710,6 +778,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chown.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chown.File.FileFields.CTime) }, @@ -719,6 +788,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chown.file.destination.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chown.GID) }, @@ -728,6 +798,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chown.file.destination.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveChownGID(ev, &ev.Chown) }, @@ -737,6 +808,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chown.file.destination.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chown.UID) }, @@ -746,6 +818,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chown.file.destination.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveChownUID(ev, &ev.Chown) }, @@ -755,6 +828,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chown.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFilesystem(ev, &ev.Chown.File) }, @@ -764,6 +838,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chown.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chown.File.FileFields.GID) }, @@ -773,6 +848,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chown.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsGroup(ev, &ev.Chown.File.FileFields) }, @@ -782,6 +858,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chown.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveHashesFromEvent(ev, &ev.Chown.File) }, @@ -791,6 +868,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chown.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsInUpperLayer(ev, &ev.Chown.File.FileFields) }, @@ -800,6 +878,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chown.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chown.File.FileFields.PathKey.Inode) }, @@ -809,6 +888,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chown.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chown.File.FileFields.Mode) }, @@ -818,6 +898,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chown.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chown.File.FileFields.MTime) }, @@ -827,6 +908,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chown.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chown.File.FileFields.PathKey.MountID) }, @@ -837,6 +919,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileBasename(ev, &ev.Chown.File) }, @@ -847,6 +930,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.Chown.File)) }, @@ -856,6 +940,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chown.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageName(ev, &ev.Chown.File) }, @@ -865,6 +950,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chown.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageSourceVersion(ev, &ev.Chown.File) }, @@ -874,6 +960,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chown.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageVersion(ev, &ev.Chown.File) }, @@ -884,6 +971,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFilePath(ev, &ev.Chown.File) }, @@ -894,6 +982,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.Chown.File)) }, @@ -903,6 +992,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chown.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveRights(ev, &ev.Chown.File.FileFields)) }, @@ -912,6 +1002,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chown.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chown.File.FileFields.UID) }, @@ -921,6 +1012,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chown.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsUser(ev, &ev.Chown.File.FileFields) }, @@ -930,6 +1022,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chown.retval": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Chown.SyscallEvent.Retval) }, @@ -939,6 +1032,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chown.syscall.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveSyscallCtxArgsInt3(ev, &ev.Chown.SyscallContext)) }, @@ -948,6 +1042,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chown.syscall.path": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveSyscallCtxArgsStr1(ev, &ev.Chown.SyscallContext) }, @@ -957,6 +1052,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "chown.syscall.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveSyscallCtxArgsInt2(ev, &ev.Chown.SyscallContext)) }, @@ -966,6 +1062,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "connect.addr.family": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Connect.AddrFamily) }, @@ -975,6 +1072,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "connect.addr.ip": return &eval.CIDREvaluator{ EvalFnc: func(ctx *eval.Context) net.IPNet { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Connect.Addr.IPNet }, @@ -984,6 +1082,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "connect.addr.is_public": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveIsIPPublic(ev, &ev.Connect.Addr) }, @@ -993,6 +1092,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "connect.addr.port": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Connect.Addr.Port) }, @@ -1002,6 +1102,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "connect.protocol": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Connect.Protocol) }, @@ -1011,6 +1112,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "connect.retval": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Connect.SyscallEvent.Retval) }, @@ -1020,6 +1122,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "container.created_at": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveContainerCreatedAt(ev, ev.BaseEvent.ContainerContext)) }, @@ -1029,6 +1132,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "container.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveContainerID(ev, ev.BaseEvent.ContainerContext) }, @@ -1038,6 +1142,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "container.runtime": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveContainerRuntime(ev, ev.BaseEvent.ContainerContext) }, @@ -1047,6 +1152,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "container.tags": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveContainerTags(ev, ev.BaseEvent.ContainerContext) }, @@ -1056,6 +1162,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "dns.id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.DNS.ID) }, @@ -1065,6 +1172,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "dns.question.class": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.DNS.Class) }, @@ -1074,6 +1182,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "dns.question.count": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.DNS.Count) }, @@ -1083,6 +1192,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "dns.question.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.DNS.Size) }, @@ -1093,6 +1203,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.DNS.Name }, @@ -1103,6 +1214,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.DNS.Name) }, @@ -1112,6 +1224,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "dns.question.type": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.DNS.Type) }, @@ -1121,6 +1234,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "event.async": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveAsync(ev) }, @@ -1130,6 +1244,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "event.hostname": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveHostname(ev, &ev.BaseEvent) }, @@ -1139,6 +1254,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "event.origin": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.BaseEvent.Origin }, @@ -1148,6 +1264,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "event.os": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.BaseEvent.Os }, @@ -1157,6 +1274,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "event.service": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveService(ev, &ev.BaseEvent) }, @@ -1166,6 +1284,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "event.timestamp": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveEventTimestamp(ev, &ev.BaseEvent)) }, @@ -1175,6 +1294,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.args": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgs(ev, ev.Exec.Process) }, @@ -1184,6 +1304,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.args_flags": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgsFlags(ev, ev.Exec.Process) }, @@ -1193,6 +1314,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.args_options": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgsOptions(ev, ev.Exec.Process) }, @@ -1202,6 +1324,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.args_truncated": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgsTruncated(ev, ev.Exec.Process) }, @@ -1211,6 +1334,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.argv": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgv(ev, ev.Exec.Process) }, @@ -1220,6 +1344,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.argv0": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgv0(ev, ev.Exec.Process) }, @@ -1229,6 +1354,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.auid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exec.Process.Credentials.AUID) }, @@ -1238,6 +1364,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.cap_effective": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exec.Process.Credentials.CapEffective) }, @@ -1247,6 +1374,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.cap_permitted": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exec.Process.Credentials.CapPermitted) }, @@ -1256,6 +1384,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.cgroup.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exec.Process.CGroup.CGroupFile.Inode) }, @@ -1265,6 +1394,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.cgroup.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exec.Process.CGroup.CGroupFile.MountID) }, @@ -1274,6 +1404,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.cgroup.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveCGroupID(ev, &ev.Exec.Process.CGroup) }, @@ -1283,6 +1414,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.cgroup.manager": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveCGroupManager(ev, &ev.Exec.Process.CGroup) }, @@ -1292,6 +1424,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.comm": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exec.Process.Comm }, @@ -1301,6 +1434,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.container.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessContainerID(ev, ev.Exec.Process) }, @@ -1310,6 +1444,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.created_at": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveProcessCreatedAt(ev, ev.Exec.Process)) }, @@ -1319,6 +1454,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.egid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exec.Process.Credentials.EGID) }, @@ -1328,6 +1464,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.egroup": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exec.Process.Credentials.EGroup }, @@ -1337,6 +1474,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.envp": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvp(ev, ev.Exec.Process) }, @@ -1346,6 +1484,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.envs": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvs(ev, ev.Exec.Process) }, @@ -1355,6 +1494,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.envs_truncated": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvsTruncated(ev, ev.Exec.Process) }, @@ -1364,6 +1504,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.euid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exec.Process.Credentials.EUID) }, @@ -1373,6 +1514,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.euser": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exec.Process.Credentials.EUser }, @@ -1382,6 +1524,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.IsNotKworker() { return 0 @@ -1394,6 +1537,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.IsNotKworker() { return "" @@ -1406,6 +1550,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.IsNotKworker() { return 0 @@ -1418,6 +1563,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.IsNotKworker() { return "" @@ -1430,6 +1576,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.IsNotKworker() { return []string{} @@ -1442,6 +1589,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.IsNotKworker() { return false @@ -1454,6 +1602,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.IsNotKworker() { return 0 @@ -1466,6 +1615,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.IsNotKworker() { return 0 @@ -1478,6 +1628,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.IsNotKworker() { return 0 @@ -1490,6 +1641,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.IsNotKworker() { return 0 @@ -1503,6 +1655,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.IsNotKworker() { return "" @@ -1516,6 +1669,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.Exec.Process.FileEvent)) }, @@ -1525,6 +1679,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.IsNotKworker() { return "" @@ -1537,6 +1692,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.IsNotKworker() { return "" @@ -1549,6 +1705,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.IsNotKworker() { return "" @@ -1562,6 +1719,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.IsNotKworker() { return "" @@ -1575,6 +1733,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.Exec.Process.FileEvent)) }, @@ -1584,6 +1743,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.IsNotKworker() { return 0 @@ -1596,6 +1756,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.IsNotKworker() { return 0 @@ -1608,6 +1769,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.IsNotKworker() { return "" @@ -1620,6 +1782,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.fsgid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exec.Process.Credentials.FSGID) }, @@ -1629,6 +1792,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.fsgroup": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exec.Process.Credentials.FSGroup }, @@ -1638,6 +1802,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.fsuid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exec.Process.Credentials.FSUID) }, @@ -1647,6 +1812,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.fsuser": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exec.Process.Credentials.FSUser }, @@ -1656,6 +1822,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exec.Process.Credentials.GID) }, @@ -1665,6 +1832,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exec.Process.Credentials.Group }, @@ -1674,6 +1842,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.interpreter.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.HasInterpreter() { return 0 @@ -1686,6 +1855,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.interpreter.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.HasInterpreter() { return "" @@ -1698,6 +1868,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.interpreter.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.HasInterpreter() { return 0 @@ -1710,6 +1881,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.interpreter.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.HasInterpreter() { return "" @@ -1722,6 +1894,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.interpreter.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.HasInterpreter() { return []string{} @@ -1734,6 +1907,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.interpreter.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.HasInterpreter() { return false @@ -1746,6 +1920,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.interpreter.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.HasInterpreter() { return 0 @@ -1758,6 +1933,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.interpreter.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.HasInterpreter() { return 0 @@ -1770,6 +1946,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.interpreter.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.HasInterpreter() { return 0 @@ -1782,6 +1959,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.interpreter.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.HasInterpreter() { return 0 @@ -1795,6 +1973,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.HasInterpreter() { return "" @@ -1808,6 +1987,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.Exec.Process.LinuxBinprm.FileEvent)) }, @@ -1817,6 +1997,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.interpreter.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.HasInterpreter() { return "" @@ -1829,6 +2010,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.interpreter.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.HasInterpreter() { return "" @@ -1841,6 +2023,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.interpreter.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.HasInterpreter() { return "" @@ -1854,6 +2037,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.HasInterpreter() { return "" @@ -1867,6 +2051,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.Exec.Process.LinuxBinprm.FileEvent)) }, @@ -1876,6 +2061,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.interpreter.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.HasInterpreter() { return 0 @@ -1888,6 +2074,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.interpreter.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.HasInterpreter() { return 0 @@ -1900,6 +2087,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.interpreter.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exec.Process.HasInterpreter() { return "" @@ -1912,6 +2100,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.is_exec": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exec.Process.IsExec }, @@ -1921,6 +2110,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.is_kworker": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exec.Process.PIDContext.IsKworker }, @@ -1930,6 +2120,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.is_thread": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessIsThread(ev, ev.Exec.Process) }, @@ -1939,6 +2130,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.pid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exec.Process.PIDContext.Pid) }, @@ -1948,6 +2140,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.ppid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exec.Process.PPid) }, @@ -1957,6 +2150,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.syscall.path": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveSyscallCtxArgsStr1(ev, &ev.Exec.SyscallContext) }, @@ -1966,6 +2160,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.tid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exec.Process.PIDContext.Tid) }, @@ -1975,6 +2170,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.tty_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exec.Process.TTYName }, @@ -1984,6 +2180,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exec.Process.Credentials.UID) }, @@ -1993,6 +2190,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exec.Process.Credentials.User }, @@ -2002,6 +2200,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.user_session.k8s_groups": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveK8SGroups(ev, &ev.Exec.Process.UserSession) }, @@ -2011,6 +2210,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.user_session.k8s_uid": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveK8SUID(ev, &ev.Exec.Process.UserSession) }, @@ -2020,6 +2220,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.user_session.k8s_username": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveK8SUsername(ev, &ev.Exec.Process.UserSession) }, @@ -2029,6 +2230,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.args": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgs(ev, ev.Exit.Process) }, @@ -2038,6 +2240,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.args_flags": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgsFlags(ev, ev.Exit.Process) }, @@ -2047,6 +2250,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.args_options": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgsOptions(ev, ev.Exit.Process) }, @@ -2056,6 +2260,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.args_truncated": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgsTruncated(ev, ev.Exit.Process) }, @@ -2065,6 +2270,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.argv": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgv(ev, ev.Exit.Process) }, @@ -2074,6 +2280,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.argv0": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgv0(ev, ev.Exit.Process) }, @@ -2083,6 +2290,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.auid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exit.Process.Credentials.AUID) }, @@ -2092,6 +2300,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.cap_effective": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exit.Process.Credentials.CapEffective) }, @@ -2101,6 +2310,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.cap_permitted": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exit.Process.Credentials.CapPermitted) }, @@ -2110,6 +2320,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.cause": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exit.Cause) }, @@ -2119,6 +2330,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.cgroup.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exit.Process.CGroup.CGroupFile.Inode) }, @@ -2128,6 +2340,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.cgroup.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exit.Process.CGroup.CGroupFile.MountID) }, @@ -2137,6 +2350,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.cgroup.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveCGroupID(ev, &ev.Exit.Process.CGroup) }, @@ -2146,6 +2360,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.cgroup.manager": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveCGroupManager(ev, &ev.Exit.Process.CGroup) }, @@ -2155,6 +2370,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.code": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exit.Code) }, @@ -2164,6 +2380,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.comm": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exit.Process.Comm }, @@ -2173,6 +2390,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.container.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessContainerID(ev, ev.Exit.Process) }, @@ -2182,6 +2400,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.created_at": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveProcessCreatedAt(ev, ev.Exit.Process)) }, @@ -2191,6 +2410,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.egid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exit.Process.Credentials.EGID) }, @@ -2200,6 +2420,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.egroup": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exit.Process.Credentials.EGroup }, @@ -2209,6 +2430,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.envp": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvp(ev, ev.Exit.Process) }, @@ -2218,6 +2440,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.envs": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvs(ev, ev.Exit.Process) }, @@ -2227,6 +2450,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.envs_truncated": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvsTruncated(ev, ev.Exit.Process) }, @@ -2236,6 +2460,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.euid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exit.Process.Credentials.EUID) }, @@ -2245,6 +2470,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.euser": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exit.Process.Credentials.EUser }, @@ -2254,6 +2480,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.IsNotKworker() { return 0 @@ -2266,6 +2493,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.IsNotKworker() { return "" @@ -2278,6 +2506,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.IsNotKworker() { return 0 @@ -2290,6 +2519,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.IsNotKworker() { return "" @@ -2302,6 +2532,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.IsNotKworker() { return []string{} @@ -2314,6 +2545,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.IsNotKworker() { return false @@ -2326,6 +2558,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.IsNotKworker() { return 0 @@ -2338,6 +2571,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.IsNotKworker() { return 0 @@ -2350,6 +2584,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.IsNotKworker() { return 0 @@ -2362,6 +2597,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.IsNotKworker() { return 0 @@ -2375,6 +2611,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.IsNotKworker() { return "" @@ -2388,6 +2625,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.Exit.Process.FileEvent)) }, @@ -2397,6 +2635,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.IsNotKworker() { return "" @@ -2409,6 +2648,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.IsNotKworker() { return "" @@ -2421,6 +2661,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.IsNotKworker() { return "" @@ -2434,6 +2675,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.IsNotKworker() { return "" @@ -2447,6 +2689,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.Exit.Process.FileEvent)) }, @@ -2456,6 +2699,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.IsNotKworker() { return 0 @@ -2468,6 +2712,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.IsNotKworker() { return 0 @@ -2480,6 +2725,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.IsNotKworker() { return "" @@ -2492,6 +2738,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.fsgid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exit.Process.Credentials.FSGID) }, @@ -2501,6 +2748,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.fsgroup": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exit.Process.Credentials.FSGroup }, @@ -2510,6 +2758,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.fsuid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exit.Process.Credentials.FSUID) }, @@ -2519,6 +2768,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.fsuser": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exit.Process.Credentials.FSUser }, @@ -2528,6 +2778,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exit.Process.Credentials.GID) }, @@ -2537,6 +2788,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exit.Process.Credentials.Group }, @@ -2546,6 +2798,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.interpreter.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.HasInterpreter() { return 0 @@ -2558,6 +2811,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.interpreter.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.HasInterpreter() { return "" @@ -2570,6 +2824,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.interpreter.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.HasInterpreter() { return 0 @@ -2582,6 +2837,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.interpreter.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.HasInterpreter() { return "" @@ -2594,6 +2850,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.interpreter.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.HasInterpreter() { return []string{} @@ -2606,6 +2863,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.interpreter.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.HasInterpreter() { return false @@ -2618,6 +2876,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.interpreter.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.HasInterpreter() { return 0 @@ -2630,6 +2889,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.interpreter.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.HasInterpreter() { return 0 @@ -2642,6 +2902,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.interpreter.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.HasInterpreter() { return 0 @@ -2654,6 +2915,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.interpreter.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.HasInterpreter() { return 0 @@ -2667,6 +2929,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.HasInterpreter() { return "" @@ -2680,6 +2943,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.Exit.Process.LinuxBinprm.FileEvent)) }, @@ -2689,6 +2953,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.interpreter.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.HasInterpreter() { return "" @@ -2701,6 +2966,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.interpreter.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.HasInterpreter() { return "" @@ -2713,6 +2979,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.interpreter.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.HasInterpreter() { return "" @@ -2726,6 +2993,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.HasInterpreter() { return "" @@ -2739,6 +3007,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.Exit.Process.LinuxBinprm.FileEvent)) }, @@ -2748,6 +3017,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.interpreter.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.HasInterpreter() { return 0 @@ -2760,6 +3030,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.interpreter.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.HasInterpreter() { return 0 @@ -2772,6 +3043,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.interpreter.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Exit.Process.HasInterpreter() { return "" @@ -2784,6 +3056,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.is_exec": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exit.Process.IsExec }, @@ -2793,6 +3066,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.is_kworker": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exit.Process.PIDContext.IsKworker }, @@ -2802,6 +3076,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.is_thread": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessIsThread(ev, ev.Exit.Process) }, @@ -2811,6 +3086,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.pid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exit.Process.PIDContext.Pid) }, @@ -2820,6 +3096,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.ppid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exit.Process.PPid) }, @@ -2829,6 +3106,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.tid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exit.Process.PIDContext.Tid) }, @@ -2838,6 +3116,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.tty_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exit.Process.TTYName }, @@ -2847,6 +3126,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exit.Process.Credentials.UID) }, @@ -2856,6 +3136,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exit.Process.Credentials.User }, @@ -2865,6 +3146,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.user_session.k8s_groups": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveK8SGroups(ev, &ev.Exit.Process.UserSession) }, @@ -2874,6 +3156,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.user_session.k8s_uid": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveK8SUID(ev, &ev.Exit.Process.UserSession) }, @@ -2883,6 +3166,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.user_session.k8s_username": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveK8SUsername(ev, &ev.Exit.Process.UserSession) }, @@ -2892,6 +3176,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "imds.aws.is_imds_v2": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.IMDS.AWS.IsIMDSv2 }, @@ -2901,6 +3186,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "imds.aws.security_credentials.type": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.IMDS.AWS.SecurityCredentials.Type }, @@ -2910,6 +3196,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "imds.cloud_provider": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.IMDS.CloudProvider }, @@ -2919,6 +3206,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "imds.host": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.IMDS.Host }, @@ -2928,6 +3216,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "imds.server": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.IMDS.Server }, @@ -2937,6 +3226,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "imds.type": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.IMDS.Type }, @@ -2946,6 +3236,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "imds.url": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.IMDS.URL }, @@ -2955,6 +3246,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "imds.user_agent": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.IMDS.UserAgent }, @@ -2964,6 +3256,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Link.Source.FileFields.CTime) }, @@ -2973,6 +3266,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.destination.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Link.Target.FileFields.CTime) }, @@ -2982,6 +3276,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.destination.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFilesystem(ev, &ev.Link.Target) }, @@ -2991,6 +3286,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.destination.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Link.Target.FileFields.GID) }, @@ -3000,6 +3296,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.destination.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsGroup(ev, &ev.Link.Target.FileFields) }, @@ -3009,6 +3306,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.destination.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveHashesFromEvent(ev, &ev.Link.Target) }, @@ -3018,6 +3316,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.destination.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsInUpperLayer(ev, &ev.Link.Target.FileFields) }, @@ -3027,6 +3326,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.destination.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Link.Target.FileFields.PathKey.Inode) }, @@ -3036,6 +3336,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.destination.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Link.Target.FileFields.Mode) }, @@ -3045,6 +3346,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.destination.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Link.Target.FileFields.MTime) }, @@ -3054,6 +3356,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.destination.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Link.Target.FileFields.PathKey.MountID) }, @@ -3064,6 +3367,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileBasename(ev, &ev.Link.Target) }, @@ -3074,6 +3378,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.Link.Target)) }, @@ -3083,6 +3388,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.destination.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageName(ev, &ev.Link.Target) }, @@ -3092,6 +3398,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.destination.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageSourceVersion(ev, &ev.Link.Target) }, @@ -3101,6 +3408,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.destination.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageVersion(ev, &ev.Link.Target) }, @@ -3111,6 +3419,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFilePath(ev, &ev.Link.Target) }, @@ -3121,6 +3430,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.Link.Target)) }, @@ -3130,6 +3440,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.destination.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveRights(ev, &ev.Link.Target.FileFields)) }, @@ -3139,6 +3450,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.destination.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Link.Target.FileFields.UID) }, @@ -3148,6 +3460,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.destination.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsUser(ev, &ev.Link.Target.FileFields) }, @@ -3157,6 +3470,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFilesystem(ev, &ev.Link.Source) }, @@ -3166,6 +3480,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Link.Source.FileFields.GID) }, @@ -3175,6 +3490,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsGroup(ev, &ev.Link.Source.FileFields) }, @@ -3184,6 +3500,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveHashesFromEvent(ev, &ev.Link.Source) }, @@ -3193,6 +3510,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsInUpperLayer(ev, &ev.Link.Source.FileFields) }, @@ -3202,6 +3520,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Link.Source.FileFields.PathKey.Inode) }, @@ -3211,6 +3530,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Link.Source.FileFields.Mode) }, @@ -3220,6 +3540,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Link.Source.FileFields.MTime) }, @@ -3229,6 +3550,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Link.Source.FileFields.PathKey.MountID) }, @@ -3239,6 +3561,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileBasename(ev, &ev.Link.Source) }, @@ -3249,6 +3572,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.Link.Source)) }, @@ -3258,6 +3582,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageName(ev, &ev.Link.Source) }, @@ -3267,6 +3592,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageSourceVersion(ev, &ev.Link.Source) }, @@ -3276,6 +3602,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageVersion(ev, &ev.Link.Source) }, @@ -3286,6 +3613,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFilePath(ev, &ev.Link.Source) }, @@ -3296,6 +3624,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.Link.Source)) }, @@ -3305,6 +3634,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveRights(ev, &ev.Link.Source.FileFields)) }, @@ -3314,6 +3644,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Link.Source.FileFields.UID) }, @@ -3323,6 +3654,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsUser(ev, &ev.Link.Source.FileFields) }, @@ -3332,6 +3664,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.retval": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Link.SyscallEvent.Retval) }, @@ -3341,6 +3674,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.syscall.destination.path": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveSyscallCtxArgsStr2(ev, &ev.Link.SyscallContext) }, @@ -3350,6 +3684,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "link.syscall.path": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveSyscallCtxArgsStr1(ev, &ev.Link.SyscallContext) }, @@ -3359,6 +3694,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "load_module.args": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveModuleArgs(ev, &ev.LoadModule) }, @@ -3368,6 +3704,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "load_module.args_truncated": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.LoadModule.ArgsTruncated }, @@ -3377,6 +3714,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "load_module.argv": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveModuleArgv(ev, &ev.LoadModule) }, @@ -3386,6 +3724,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "load_module.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.LoadModule.File.FileFields.CTime) }, @@ -3395,6 +3734,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "load_module.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFilesystem(ev, &ev.LoadModule.File) }, @@ -3404,6 +3744,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "load_module.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.LoadModule.File.FileFields.GID) }, @@ -3413,6 +3754,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "load_module.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsGroup(ev, &ev.LoadModule.File.FileFields) }, @@ -3422,6 +3764,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "load_module.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveHashesFromEvent(ev, &ev.LoadModule.File) }, @@ -3431,6 +3774,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "load_module.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsInUpperLayer(ev, &ev.LoadModule.File.FileFields) }, @@ -3440,6 +3784,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "load_module.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.LoadModule.File.FileFields.PathKey.Inode) }, @@ -3449,6 +3794,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "load_module.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.LoadModule.File.FileFields.Mode) }, @@ -3458,6 +3804,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "load_module.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.LoadModule.File.FileFields.MTime) }, @@ -3467,6 +3814,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "load_module.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.LoadModule.File.FileFields.PathKey.MountID) }, @@ -3477,6 +3825,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileBasename(ev, &ev.LoadModule.File) }, @@ -3487,6 +3836,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.LoadModule.File)) }, @@ -3496,6 +3846,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "load_module.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageName(ev, &ev.LoadModule.File) }, @@ -3505,6 +3856,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "load_module.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageSourceVersion(ev, &ev.LoadModule.File) }, @@ -3514,6 +3866,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "load_module.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageVersion(ev, &ev.LoadModule.File) }, @@ -3524,6 +3877,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFilePath(ev, &ev.LoadModule.File) }, @@ -3534,6 +3888,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.LoadModule.File)) }, @@ -3543,6 +3898,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "load_module.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveRights(ev, &ev.LoadModule.File.FileFields)) }, @@ -3552,6 +3908,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "load_module.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.LoadModule.File.FileFields.UID) }, @@ -3561,6 +3918,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "load_module.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsUser(ev, &ev.LoadModule.File.FileFields) }, @@ -3570,6 +3928,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "load_module.loaded_from_memory": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.LoadModule.LoadedFromMemory }, @@ -3579,6 +3938,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "load_module.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.LoadModule.Name }, @@ -3588,6 +3948,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "load_module.retval": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.LoadModule.SyscallEvent.Retval) }, @@ -3597,6 +3958,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mkdir.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Mkdir.File.FileFields.CTime) }, @@ -3606,6 +3968,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mkdir.file.destination.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Mkdir.Mode) }, @@ -3615,6 +3978,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mkdir.file.destination.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Mkdir.Mode) }, @@ -3624,6 +3988,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mkdir.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFilesystem(ev, &ev.Mkdir.File) }, @@ -3633,6 +3998,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mkdir.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Mkdir.File.FileFields.GID) }, @@ -3642,6 +4008,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mkdir.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsGroup(ev, &ev.Mkdir.File.FileFields) }, @@ -3651,6 +4018,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mkdir.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveHashesFromEvent(ev, &ev.Mkdir.File) }, @@ -3660,6 +4028,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mkdir.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsInUpperLayer(ev, &ev.Mkdir.File.FileFields) }, @@ -3669,6 +4038,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mkdir.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Mkdir.File.FileFields.PathKey.Inode) }, @@ -3678,6 +4048,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mkdir.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Mkdir.File.FileFields.Mode) }, @@ -3687,6 +4058,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mkdir.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Mkdir.File.FileFields.MTime) }, @@ -3696,6 +4068,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mkdir.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Mkdir.File.FileFields.PathKey.MountID) }, @@ -3706,6 +4079,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileBasename(ev, &ev.Mkdir.File) }, @@ -3716,6 +4090,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.Mkdir.File)) }, @@ -3725,6 +4100,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mkdir.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageName(ev, &ev.Mkdir.File) }, @@ -3734,6 +4110,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mkdir.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageSourceVersion(ev, &ev.Mkdir.File) }, @@ -3743,6 +4120,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mkdir.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageVersion(ev, &ev.Mkdir.File) }, @@ -3753,6 +4131,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFilePath(ev, &ev.Mkdir.File) }, @@ -3763,6 +4142,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.Mkdir.File)) }, @@ -3772,6 +4152,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mkdir.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveRights(ev, &ev.Mkdir.File.FileFields)) }, @@ -3781,6 +4162,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mkdir.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Mkdir.File.FileFields.UID) }, @@ -3790,6 +4172,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mkdir.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsUser(ev, &ev.Mkdir.File.FileFields) }, @@ -3799,6 +4182,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mkdir.retval": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Mkdir.SyscallEvent.Retval) }, @@ -3808,6 +4192,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mmap.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.MMap.File.FileFields.CTime) }, @@ -3817,6 +4202,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mmap.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFilesystem(ev, &ev.MMap.File) }, @@ -3826,6 +4212,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mmap.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.MMap.File.FileFields.GID) }, @@ -3835,6 +4222,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mmap.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsGroup(ev, &ev.MMap.File.FileFields) }, @@ -3844,6 +4232,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mmap.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveHashesFromEvent(ev, &ev.MMap.File) }, @@ -3853,6 +4242,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mmap.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsInUpperLayer(ev, &ev.MMap.File.FileFields) }, @@ -3862,6 +4252,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mmap.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.MMap.File.FileFields.PathKey.Inode) }, @@ -3871,6 +4262,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mmap.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.MMap.File.FileFields.Mode) }, @@ -3880,6 +4272,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mmap.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.MMap.File.FileFields.MTime) }, @@ -3889,6 +4282,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mmap.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.MMap.File.FileFields.PathKey.MountID) }, @@ -3899,6 +4293,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileBasename(ev, &ev.MMap.File) }, @@ -3909,6 +4304,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.MMap.File)) }, @@ -3918,6 +4314,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mmap.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageName(ev, &ev.MMap.File) }, @@ -3927,6 +4324,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mmap.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageSourceVersion(ev, &ev.MMap.File) }, @@ -3936,6 +4334,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mmap.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageVersion(ev, &ev.MMap.File) }, @@ -3946,6 +4345,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFilePath(ev, &ev.MMap.File) }, @@ -3956,6 +4356,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.MMap.File)) }, @@ -3965,6 +4366,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mmap.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveRights(ev, &ev.MMap.File.FileFields)) }, @@ -3974,6 +4376,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mmap.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.MMap.File.FileFields.UID) }, @@ -3983,6 +4386,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mmap.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsUser(ev, &ev.MMap.File.FileFields) }, @@ -3992,6 +4396,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mmap.flags": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.MMap.Flags) }, @@ -4001,6 +4406,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mmap.protection": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.MMap.Protection) }, @@ -4010,6 +4416,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mmap.retval": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.MMap.SyscallEvent.Retval) }, @@ -4019,6 +4426,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mount.fs_type": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Mount.Mount.FSType }, @@ -4028,6 +4436,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mount.mountpoint.path": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveMountPointPath(ev, &ev.Mount) }, @@ -4037,6 +4446,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mount.retval": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Mount.SyscallEvent.Retval) }, @@ -4046,6 +4456,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mount.root.path": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveMountRootPath(ev, &ev.Mount) }, @@ -4055,6 +4466,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mount.source.path": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveMountSourcePath(ev, &ev.Mount) }, @@ -4064,6 +4476,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mount.syscall.fs_type": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveSyscallCtxArgsStr3(ev, &ev.Mount.SyscallContext) }, @@ -4073,6 +4486,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mount.syscall.mountpoint.path": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveSyscallCtxArgsStr2(ev, &ev.Mount.SyscallContext) }, @@ -4082,6 +4496,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mount.syscall.source.path": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveSyscallCtxArgsStr1(ev, &ev.Mount.SyscallContext) }, @@ -4091,6 +4506,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mprotect.req_protection": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.MProtect.ReqProtection }, @@ -4100,6 +4516,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mprotect.retval": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.MProtect.SyscallEvent.Retval) }, @@ -4109,6 +4526,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "mprotect.vm_protection": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.MProtect.VMProtection }, @@ -4118,6 +4536,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "network.destination.ip": return &eval.CIDREvaluator{ EvalFnc: func(ctx *eval.Context) net.IPNet { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.NetworkContext.Destination.IPNet }, @@ -4127,6 +4546,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "network.destination.is_public": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveIsIPPublic(ev, &ev.NetworkContext.Destination) }, @@ -4136,6 +4556,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "network.destination.port": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.NetworkContext.Destination.Port) }, @@ -4145,6 +4566,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "network.device.ifname": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveNetworkDeviceIfName(ev, &ev.NetworkContext.Device) }, @@ -4154,6 +4576,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "network.l3_protocol": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.NetworkContext.L3Protocol) }, @@ -4163,6 +4586,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "network.l4_protocol": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.NetworkContext.L4Protocol) }, @@ -4172,6 +4596,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "network.size": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.NetworkContext.Size) }, @@ -4181,6 +4606,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "network.source.ip": return &eval.CIDREvaluator{ EvalFnc: func(ctx *eval.Context) net.IPNet { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.NetworkContext.Source.IPNet }, @@ -4190,6 +4616,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "network.source.is_public": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveIsIPPublic(ev, &ev.NetworkContext.Source) }, @@ -4199,6 +4626,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "network.source.port": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.NetworkContext.Source.Port) }, @@ -4208,6 +4636,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ondemand.arg1.str": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveOnDemandArg1Str(ev, &ev.OnDemand) }, @@ -4217,6 +4646,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ondemand.arg1.uint": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveOnDemandArg1Uint(ev, &ev.OnDemand)) }, @@ -4226,6 +4656,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ondemand.arg2.str": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveOnDemandArg2Str(ev, &ev.OnDemand) }, @@ -4235,6 +4666,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ondemand.arg2.uint": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveOnDemandArg2Uint(ev, &ev.OnDemand)) }, @@ -4244,6 +4676,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ondemand.arg3.str": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveOnDemandArg3Str(ev, &ev.OnDemand) }, @@ -4253,6 +4686,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ondemand.arg3.uint": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveOnDemandArg3Uint(ev, &ev.OnDemand)) }, @@ -4262,6 +4696,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ondemand.arg4.str": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveOnDemandArg4Str(ev, &ev.OnDemand) }, @@ -4271,6 +4706,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ondemand.arg4.uint": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveOnDemandArg4Uint(ev, &ev.OnDemand)) }, @@ -4280,6 +4716,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ondemand.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveOnDemandName(ev, &ev.OnDemand) }, @@ -4289,6 +4726,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Open.File.FileFields.CTime) }, @@ -4298,6 +4736,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.file.destination.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Open.Mode) }, @@ -4307,6 +4746,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFilesystem(ev, &ev.Open.File) }, @@ -4316,6 +4756,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Open.File.FileFields.GID) }, @@ -4325,6 +4766,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsGroup(ev, &ev.Open.File.FileFields) }, @@ -4334,6 +4776,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveHashesFromEvent(ev, &ev.Open.File) }, @@ -4343,6 +4786,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsInUpperLayer(ev, &ev.Open.File.FileFields) }, @@ -4352,6 +4796,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Open.File.FileFields.PathKey.Inode) }, @@ -4361,6 +4806,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Open.File.FileFields.Mode) }, @@ -4370,6 +4816,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Open.File.FileFields.MTime) }, @@ -4379,6 +4826,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Open.File.FileFields.PathKey.MountID) }, @@ -4389,6 +4837,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileBasename(ev, &ev.Open.File) }, @@ -4399,6 +4848,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.Open.File)) }, @@ -4408,6 +4858,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageName(ev, &ev.Open.File) }, @@ -4417,6 +4868,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageSourceVersion(ev, &ev.Open.File) }, @@ -4426,6 +4878,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageVersion(ev, &ev.Open.File) }, @@ -4436,6 +4889,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFilePath(ev, &ev.Open.File) }, @@ -4446,6 +4900,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.Open.File)) }, @@ -4455,6 +4910,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveRights(ev, &ev.Open.File.FileFields)) }, @@ -4464,6 +4920,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Open.File.FileFields.UID) }, @@ -4473,6 +4930,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsUser(ev, &ev.Open.File.FileFields) }, @@ -4482,6 +4940,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.flags": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Open.Flags) }, @@ -4491,6 +4950,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.retval": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Open.SyscallEvent.Retval) }, @@ -4500,6 +4960,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.syscall.flags": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveSyscallCtxArgsInt2(ev, &ev.Open.SyscallContext)) }, @@ -4509,6 +4970,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.syscall.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveSyscallCtxArgsInt3(ev, &ev.Open.SyscallContext)) }, @@ -4518,6 +4980,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.syscall.path": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveSyscallCtxArgsStr1(ev, &ev.Open.SyscallContext) }, @@ -4527,6 +4990,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "packet.destination.ip": return &eval.CIDREvaluator{ EvalFnc: func(ctx *eval.Context) net.IPNet { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.RawPacket.NetworkContext.Destination.IPNet }, @@ -4536,6 +5000,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "packet.destination.is_public": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveIsIPPublic(ev, &ev.RawPacket.NetworkContext.Destination) }, @@ -4545,6 +5010,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "packet.destination.port": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.RawPacket.NetworkContext.Destination.Port) }, @@ -4554,6 +5020,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "packet.device.ifname": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveNetworkDeviceIfName(ev, &ev.RawPacket.NetworkContext.Device) }, @@ -4564,6 +5031,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: PacketFilterMatching, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.RawPacket.Filter }, @@ -4573,6 +5041,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "packet.l3_protocol": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.RawPacket.NetworkContext.L3Protocol) }, @@ -4582,6 +5051,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "packet.l4_protocol": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.RawPacket.NetworkContext.L4Protocol) }, @@ -4591,6 +5061,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "packet.size": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.RawPacket.NetworkContext.Size) }, @@ -4600,6 +5071,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "packet.source.ip": return &eval.CIDREvaluator{ EvalFnc: func(ctx *eval.Context) net.IPNet { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.RawPacket.NetworkContext.Source.IPNet }, @@ -4609,6 +5081,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "packet.source.is_public": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveIsIPPublic(ev, &ev.RawPacket.NetworkContext.Source) }, @@ -4618,6 +5091,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "packet.source.port": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.RawPacket.NetworkContext.Source.Port) }, @@ -4627,6 +5101,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "packet.tls.version": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.RawPacket.TLSContext.Version) }, @@ -4636,6 +5111,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.args": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -4663,6 +5139,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.args_flags": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -4690,6 +5167,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.args_options": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -4717,6 +5195,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.args_truncated": return &eval.BoolArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.BoolCache[field]; ok { return result @@ -4744,6 +5223,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.argv": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -4771,6 +5251,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.argv0": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -4798,6 +5279,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.auid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -4824,6 +5306,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.cap_effective": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -4850,6 +5333,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.cap_permitted": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -4876,6 +5360,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.cgroup.file.inode": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -4902,6 +5387,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.cgroup.file.mount_id": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -4928,6 +5414,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.cgroup.id": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -4955,6 +5442,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.cgroup.manager": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -4982,6 +5470,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.comm": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -5008,6 +5497,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.container.id": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -5035,6 +5525,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.created_at": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -5062,6 +5553,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.egid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -5088,6 +5580,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.egroup": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -5114,6 +5607,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.envp": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -5141,6 +5635,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.envs": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -5168,6 +5663,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.envs_truncated": return &eval.BoolArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.BoolCache[field]; ok { return result @@ -5195,6 +5691,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.euid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -5221,6 +5718,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.euser": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -5247,6 +5745,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.file.change_time": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -5279,6 +5778,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.file.filesystem": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -5312,6 +5812,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.file.gid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -5344,6 +5845,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.file.group": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -5377,6 +5879,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -5410,6 +5913,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.file.in_upper_layer": return &eval.BoolArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.BoolCache[field]; ok { return result @@ -5443,6 +5947,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.file.inode": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -5475,6 +5980,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.file.mode": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -5507,6 +6013,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.file.modification_time": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -5539,6 +6046,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.file.mount_id": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -5572,6 +6080,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringArrayEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -5606,6 +6115,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntArrayEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -5633,6 +6143,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.file.package.name": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -5666,6 +6177,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.file.package.source_version": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -5699,6 +6211,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.file.package.version": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -5733,6 +6246,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringArrayEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -5767,6 +6281,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntArrayEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -5794,6 +6309,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.file.rights": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -5827,6 +6343,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.file.uid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -5859,6 +6376,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.file.user": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -5892,6 +6410,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.fsgid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -5918,6 +6437,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.fsgroup": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -5944,6 +6464,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.fsuid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -5970,6 +6491,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.fsuser": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -5996,6 +6518,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.gid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -6022,6 +6545,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.group": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -6048,6 +6572,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.interpreter.file.change_time": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -6080,6 +6605,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.interpreter.file.filesystem": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -6113,6 +6639,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.interpreter.file.gid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -6145,6 +6672,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.interpreter.file.group": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -6178,6 +6706,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.interpreter.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -6211,6 +6740,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.interpreter.file.in_upper_layer": return &eval.BoolArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.BoolCache[field]; ok { return result @@ -6244,6 +6774,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.interpreter.file.inode": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -6276,6 +6807,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.interpreter.file.mode": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -6308,6 +6840,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.interpreter.file.modification_time": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -6340,6 +6873,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.interpreter.file.mount_id": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -6373,6 +6907,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringArrayEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -6407,6 +6942,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntArrayEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -6434,6 +6970,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.interpreter.file.package.name": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -6467,6 +7004,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.interpreter.file.package.source_version": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -6500,6 +7038,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.interpreter.file.package.version": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -6534,6 +7073,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringArrayEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -6568,6 +7108,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntArrayEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -6595,6 +7136,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.interpreter.file.rights": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -6628,6 +7170,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.interpreter.file.uid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -6660,6 +7203,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.interpreter.file.user": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -6693,6 +7237,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.is_exec": return &eval.BoolArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []bool { + ctx.AppendResolvedField(field) if result, ok := ctx.BoolCache[field]; ok { return result } @@ -6719,6 +7264,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.is_kworker": return &eval.BoolArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []bool { + ctx.AppendResolvedField(field) if result, ok := ctx.BoolCache[field]; ok { return result } @@ -6745,6 +7291,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.is_thread": return &eval.BoolArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.BoolCache[field]; ok { return result @@ -6772,6 +7319,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) iterator := &ProcessAncestorsIterator{} return iterator.Len(ctx) }, @@ -6781,6 +7329,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.pid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -6807,6 +7356,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.ppid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -6833,6 +7383,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.tid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -6859,6 +7410,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.tty_name": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -6885,6 +7437,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.uid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -6911,6 +7464,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.user": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -6937,6 +7491,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.user_session.k8s_groups": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -6964,6 +7519,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.user_session.k8s_uid": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -6991,6 +7547,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.user_session.k8s_username": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -7018,6 +7575,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.args": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgs(ev, &ev.BaseEvent.ProcessContext.Process) }, @@ -7027,6 +7585,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.args_flags": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgsFlags(ev, &ev.BaseEvent.ProcessContext.Process) }, @@ -7036,6 +7595,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.args_options": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgsOptions(ev, &ev.BaseEvent.ProcessContext.Process) }, @@ -7045,6 +7605,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.args_truncated": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgsTruncated(ev, &ev.BaseEvent.ProcessContext.Process) }, @@ -7054,6 +7615,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.argv": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgv(ev, &ev.BaseEvent.ProcessContext.Process) }, @@ -7063,6 +7625,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.argv0": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgv0(ev, &ev.BaseEvent.ProcessContext.Process) }, @@ -7072,6 +7635,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.auid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.BaseEvent.ProcessContext.Process.Credentials.AUID) }, @@ -7081,6 +7645,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.cap_effective": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.BaseEvent.ProcessContext.Process.Credentials.CapEffective) }, @@ -7090,6 +7655,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.cap_permitted": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.BaseEvent.ProcessContext.Process.Credentials.CapPermitted) }, @@ -7099,6 +7665,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.cgroup.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.BaseEvent.ProcessContext.Process.CGroup.CGroupFile.Inode) }, @@ -7108,6 +7675,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.cgroup.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.BaseEvent.ProcessContext.Process.CGroup.CGroupFile.MountID) }, @@ -7117,6 +7685,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.cgroup.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveCGroupID(ev, &ev.BaseEvent.ProcessContext.Process.CGroup) }, @@ -7126,6 +7695,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.cgroup.manager": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveCGroupManager(ev, &ev.BaseEvent.ProcessContext.Process.CGroup) }, @@ -7135,6 +7705,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.comm": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.BaseEvent.ProcessContext.Process.Comm }, @@ -7144,6 +7715,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.container.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessContainerID(ev, &ev.BaseEvent.ProcessContext.Process) }, @@ -7153,6 +7725,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.created_at": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveProcessCreatedAt(ev, &ev.BaseEvent.ProcessContext.Process)) }, @@ -7162,6 +7735,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.egid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.BaseEvent.ProcessContext.Process.Credentials.EGID) }, @@ -7171,6 +7745,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.egroup": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.BaseEvent.ProcessContext.Process.Credentials.EGroup }, @@ -7180,6 +7755,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.envp": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvp(ev, &ev.BaseEvent.ProcessContext.Process) }, @@ -7189,6 +7765,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.envs": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvs(ev, &ev.BaseEvent.ProcessContext.Process) }, @@ -7198,6 +7775,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.envs_truncated": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvsTruncated(ev, &ev.BaseEvent.ProcessContext.Process) }, @@ -7207,6 +7785,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.euid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.BaseEvent.ProcessContext.Process.Credentials.EUID) }, @@ -7216,6 +7795,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.euser": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.BaseEvent.ProcessContext.Process.Credentials.EUser }, @@ -7225,6 +7805,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.IsNotKworker() { return 0 @@ -7237,6 +7818,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.IsNotKworker() { return "" @@ -7249,6 +7831,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.IsNotKworker() { return 0 @@ -7261,6 +7844,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.IsNotKworker() { return "" @@ -7273,6 +7857,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.IsNotKworker() { return []string{} @@ -7285,6 +7870,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.IsNotKworker() { return false @@ -7297,6 +7883,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.IsNotKworker() { return 0 @@ -7309,6 +7896,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.IsNotKworker() { return 0 @@ -7321,6 +7909,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.IsNotKworker() { return 0 @@ -7333,6 +7922,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.IsNotKworker() { return 0 @@ -7346,6 +7936,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.IsNotKworker() { return "" @@ -7359,6 +7950,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.BaseEvent.ProcessContext.Process.FileEvent)) }, @@ -7368,6 +7960,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.IsNotKworker() { return "" @@ -7380,6 +7973,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.IsNotKworker() { return "" @@ -7392,6 +7986,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.IsNotKworker() { return "" @@ -7405,6 +8000,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.IsNotKworker() { return "" @@ -7418,6 +8014,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.BaseEvent.ProcessContext.Process.FileEvent)) }, @@ -7427,6 +8024,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.IsNotKworker() { return 0 @@ -7439,6 +8037,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.IsNotKworker() { return 0 @@ -7451,6 +8050,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.IsNotKworker() { return "" @@ -7463,6 +8063,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.fsgid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.BaseEvent.ProcessContext.Process.Credentials.FSGID) }, @@ -7472,6 +8073,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.fsgroup": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.BaseEvent.ProcessContext.Process.Credentials.FSGroup }, @@ -7481,6 +8083,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.fsuid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.BaseEvent.ProcessContext.Process.Credentials.FSUID) }, @@ -7490,6 +8093,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.fsuser": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.BaseEvent.ProcessContext.Process.Credentials.FSUser }, @@ -7499,6 +8103,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.BaseEvent.ProcessContext.Process.Credentials.GID) }, @@ -7508,6 +8113,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.BaseEvent.ProcessContext.Process.Credentials.Group }, @@ -7517,6 +8123,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.interpreter.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.HasInterpreter() { return 0 @@ -7529,6 +8136,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.interpreter.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.HasInterpreter() { return "" @@ -7541,6 +8149,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.interpreter.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.HasInterpreter() { return 0 @@ -7553,6 +8162,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.interpreter.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.HasInterpreter() { return "" @@ -7565,6 +8175,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.interpreter.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.HasInterpreter() { return []string{} @@ -7577,6 +8188,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.interpreter.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.HasInterpreter() { return false @@ -7589,6 +8201,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.interpreter.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.HasInterpreter() { return 0 @@ -7601,6 +8214,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.interpreter.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.HasInterpreter() { return 0 @@ -7613,6 +8227,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.interpreter.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.HasInterpreter() { return 0 @@ -7625,6 +8240,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.interpreter.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.HasInterpreter() { return 0 @@ -7638,6 +8254,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.HasInterpreter() { return "" @@ -7651,6 +8268,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.BaseEvent.ProcessContext.Process.LinuxBinprm.FileEvent)) }, @@ -7660,6 +8278,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.interpreter.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.HasInterpreter() { return "" @@ -7672,6 +8291,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.interpreter.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.HasInterpreter() { return "" @@ -7684,6 +8304,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.interpreter.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.HasInterpreter() { return "" @@ -7697,6 +8318,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.HasInterpreter() { return "" @@ -7710,6 +8332,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.BaseEvent.ProcessContext.Process.LinuxBinprm.FileEvent)) }, @@ -7719,6 +8342,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.interpreter.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.HasInterpreter() { return 0 @@ -7731,6 +8355,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.interpreter.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.HasInterpreter() { return 0 @@ -7743,6 +8368,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.interpreter.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.Process.HasInterpreter() { return "" @@ -7755,6 +8381,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.is_exec": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.BaseEvent.ProcessContext.Process.IsExec }, @@ -7764,6 +8391,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.is_kworker": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.BaseEvent.ProcessContext.Process.PIDContext.IsKworker }, @@ -7773,6 +8401,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.is_thread": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessIsThread(ev, &ev.BaseEvent.ProcessContext.Process) }, @@ -7782,6 +8411,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.args": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -7794,6 +8424,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.args_flags": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return []string{} @@ -7806,6 +8437,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.args_options": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return []string{} @@ -7818,6 +8450,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.args_truncated": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return false @@ -7830,6 +8463,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.argv": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return []string{} @@ -7842,6 +8476,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.argv0": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -7854,6 +8489,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.auid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -7866,6 +8502,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.cap_effective": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -7878,6 +8515,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.cap_permitted": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -7890,6 +8528,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.cgroup.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -7902,6 +8541,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.cgroup.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -7914,6 +8554,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.cgroup.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -7926,6 +8567,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.cgroup.manager": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -7938,6 +8580,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.comm": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -7950,6 +8593,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.container.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -7962,6 +8606,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.created_at": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -7974,6 +8619,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.egid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -7986,6 +8632,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.egroup": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -7998,6 +8645,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.envp": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return []string{} @@ -8010,6 +8658,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.envs": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return []string{} @@ -8022,6 +8671,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.envs_truncated": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return false @@ -8034,6 +8684,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.euid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -8046,6 +8697,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.euser": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -8058,6 +8710,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -8073,6 +8726,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -8088,6 +8742,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -8103,6 +8758,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -8118,6 +8774,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return []string{} @@ -8133,6 +8790,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return false @@ -8148,6 +8806,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -8163,6 +8822,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -8178,6 +8838,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -8193,6 +8854,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -8209,6 +8871,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -8225,6 +8888,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.BaseEvent.ProcessContext.Parent.FileEvent)) }, @@ -8234,6 +8898,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -8249,6 +8914,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -8264,6 +8930,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -8280,6 +8947,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -8296,6 +8964,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.BaseEvent.ProcessContext.Parent.FileEvent)) }, @@ -8305,6 +8974,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -8320,6 +8990,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -8335,6 +9006,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -8350,6 +9022,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.fsgid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -8362,6 +9035,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.fsgroup": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -8374,6 +9048,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.fsuid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -8386,6 +9061,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.fsuser": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -8398,6 +9074,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -8410,6 +9087,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -8422,6 +9100,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.interpreter.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -8437,6 +9116,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.interpreter.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -8452,6 +9132,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.interpreter.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -8467,6 +9148,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.interpreter.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -8482,6 +9164,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.interpreter.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return []string{} @@ -8497,6 +9180,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.interpreter.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return false @@ -8512,6 +9196,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.interpreter.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -8527,6 +9212,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.interpreter.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -8542,6 +9228,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.interpreter.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -8557,6 +9244,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.interpreter.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -8573,6 +9261,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -8589,6 +9278,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.BaseEvent.ProcessContext.Parent.LinuxBinprm.FileEvent)) }, @@ -8598,6 +9288,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.interpreter.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -8613,6 +9304,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.interpreter.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -8628,6 +9320,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.interpreter.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -8644,6 +9337,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -8660,6 +9354,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.BaseEvent.ProcessContext.Parent.LinuxBinprm.FileEvent)) }, @@ -8669,6 +9364,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.interpreter.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -8684,6 +9380,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.interpreter.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -8699,6 +9396,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.interpreter.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -8714,6 +9412,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.is_exec": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return false @@ -8726,6 +9425,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.is_kworker": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return false @@ -8738,6 +9438,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.is_thread": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return false @@ -8750,6 +9451,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.pid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -8762,6 +9464,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.ppid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -8774,6 +9477,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.tid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -8786,6 +9490,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.tty_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -8798,6 +9503,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -8810,6 +9516,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -8822,6 +9529,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.user_session.k8s_groups": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return []string{} @@ -8834,6 +9542,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.user_session.k8s_uid": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -8846,6 +9555,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.user_session.k8s_username": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -8858,6 +9568,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.pid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.BaseEvent.ProcessContext.Process.PIDContext.Pid) }, @@ -8867,6 +9578,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ppid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.BaseEvent.ProcessContext.Process.PPid) }, @@ -8876,6 +9588,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.tid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.BaseEvent.ProcessContext.Process.PIDContext.Tid) }, @@ -8885,6 +9598,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.tty_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.BaseEvent.ProcessContext.Process.TTYName }, @@ -8894,6 +9608,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.BaseEvent.ProcessContext.Process.Credentials.UID) }, @@ -8903,6 +9618,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.BaseEvent.ProcessContext.Process.Credentials.User }, @@ -8912,6 +9628,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.user_session.k8s_groups": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveK8SGroups(ev, &ev.BaseEvent.ProcessContext.Process.UserSession) }, @@ -8921,6 +9638,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.user_session.k8s_uid": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveK8SUID(ev, &ev.BaseEvent.ProcessContext.Process.UserSession) }, @@ -8930,6 +9648,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.user_session.k8s_username": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveK8SUsername(ev, &ev.BaseEvent.ProcessContext.Process.UserSession) }, @@ -8939,6 +9658,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.request": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.PTrace.Request) }, @@ -8948,6 +9668,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.retval": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.PTrace.SyscallEvent.Retval) }, @@ -8957,6 +9678,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.args": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -8984,6 +9706,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.args_flags": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -9011,6 +9734,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.args_options": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -9038,6 +9762,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.args_truncated": return &eval.BoolArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.BoolCache[field]; ok { return result @@ -9065,6 +9790,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.argv": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -9092,6 +9818,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.argv0": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -9119,6 +9846,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.auid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -9145,6 +9873,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.cap_effective": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -9171,6 +9900,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.cap_permitted": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -9197,6 +9927,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.cgroup.file.inode": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -9223,6 +9954,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.cgroup.file.mount_id": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -9249,6 +9981,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.cgroup.id": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -9276,6 +10009,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.cgroup.manager": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -9303,6 +10037,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.comm": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -9329,6 +10064,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.container.id": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -9356,6 +10092,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.created_at": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -9383,6 +10120,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.egid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -9409,6 +10147,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.egroup": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -9435,6 +10174,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.envp": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -9462,6 +10202,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.envs": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -9489,6 +10230,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.envs_truncated": return &eval.BoolArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.BoolCache[field]; ok { return result @@ -9516,6 +10258,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.euid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -9542,6 +10285,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.euser": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -9568,6 +10312,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.file.change_time": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -9600,6 +10345,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.file.filesystem": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -9633,6 +10379,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.file.gid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -9665,6 +10412,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.file.group": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -9698,6 +10446,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -9731,6 +10480,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.file.in_upper_layer": return &eval.BoolArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.BoolCache[field]; ok { return result @@ -9764,6 +10514,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.file.inode": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -9796,6 +10547,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.file.mode": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -9828,6 +10580,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.file.modification_time": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -9860,6 +10613,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.file.mount_id": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -9893,6 +10647,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringArrayEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -9927,6 +10682,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntArrayEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -9954,6 +10710,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.file.package.name": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -9987,6 +10744,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.file.package.source_version": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -10020,6 +10778,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.file.package.version": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -10054,6 +10813,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringArrayEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -10088,6 +10848,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntArrayEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -10115,6 +10876,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.file.rights": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -10148,6 +10910,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.file.uid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -10180,6 +10943,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.file.user": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -10213,6 +10977,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.fsgid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -10239,6 +11004,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.fsgroup": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -10265,6 +11031,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.fsuid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -10291,6 +11058,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.fsuser": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -10317,6 +11085,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.gid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -10343,6 +11112,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.group": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -10369,6 +11139,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.interpreter.file.change_time": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -10401,6 +11172,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.interpreter.file.filesystem": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -10434,6 +11206,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.interpreter.file.gid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -10466,6 +11239,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.interpreter.file.group": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -10499,6 +11273,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.interpreter.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -10532,6 +11307,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.interpreter.file.in_upper_layer": return &eval.BoolArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.BoolCache[field]; ok { return result @@ -10565,6 +11341,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.interpreter.file.inode": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -10597,6 +11374,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.interpreter.file.mode": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -10629,6 +11407,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.interpreter.file.modification_time": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -10661,6 +11440,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.interpreter.file.mount_id": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -10694,6 +11474,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringArrayEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -10728,6 +11509,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntArrayEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -10755,6 +11537,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.interpreter.file.package.name": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -10788,6 +11571,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.interpreter.file.package.source_version": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -10821,6 +11605,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.interpreter.file.package.version": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -10855,6 +11640,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringArrayEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -10889,6 +11675,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntArrayEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -10916,6 +11703,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.interpreter.file.rights": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -10949,6 +11737,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.interpreter.file.uid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -10981,6 +11770,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.interpreter.file.user": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -11014,6 +11804,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.is_exec": return &eval.BoolArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []bool { + ctx.AppendResolvedField(field) if result, ok := ctx.BoolCache[field]; ok { return result } @@ -11040,6 +11831,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.is_kworker": return &eval.BoolArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []bool { + ctx.AppendResolvedField(field) if result, ok := ctx.BoolCache[field]; ok { return result } @@ -11066,6 +11858,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.is_thread": return &eval.BoolArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.BoolCache[field]; ok { return result @@ -11093,6 +11886,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) iterator := &ProcessAncestorsIterator{} return iterator.Len(ctx) }, @@ -11102,6 +11896,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.pid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -11128,6 +11923,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.ppid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -11154,6 +11950,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.tid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -11180,6 +11977,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.tty_name": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -11206,6 +12004,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.uid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -11232,6 +12031,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.user": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -11258,6 +12058,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.user_session.k8s_groups": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -11285,6 +12086,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.user_session.k8s_uid": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -11312,6 +12114,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ancestors.user_session.k8s_username": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -11339,6 +12142,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.args": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgs(ev, &ev.PTrace.Tracee.Process) }, @@ -11348,6 +12152,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.args_flags": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgsFlags(ev, &ev.PTrace.Tracee.Process) }, @@ -11357,6 +12162,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.args_options": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgsOptions(ev, &ev.PTrace.Tracee.Process) }, @@ -11366,6 +12172,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.args_truncated": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgsTruncated(ev, &ev.PTrace.Tracee.Process) }, @@ -11375,6 +12182,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.argv": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgv(ev, &ev.PTrace.Tracee.Process) }, @@ -11384,6 +12192,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.argv0": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgv0(ev, &ev.PTrace.Tracee.Process) }, @@ -11393,6 +12202,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.auid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.PTrace.Tracee.Process.Credentials.AUID) }, @@ -11402,6 +12212,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.cap_effective": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.PTrace.Tracee.Process.Credentials.CapEffective) }, @@ -11411,6 +12222,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.cap_permitted": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.PTrace.Tracee.Process.Credentials.CapPermitted) }, @@ -11420,6 +12232,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.cgroup.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.PTrace.Tracee.Process.CGroup.CGroupFile.Inode) }, @@ -11429,6 +12242,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.cgroup.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.PTrace.Tracee.Process.CGroup.CGroupFile.MountID) }, @@ -11438,6 +12252,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.cgroup.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveCGroupID(ev, &ev.PTrace.Tracee.Process.CGroup) }, @@ -11447,6 +12262,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.cgroup.manager": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveCGroupManager(ev, &ev.PTrace.Tracee.Process.CGroup) }, @@ -11456,6 +12272,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.comm": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.PTrace.Tracee.Process.Comm }, @@ -11465,6 +12282,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.container.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessContainerID(ev, &ev.PTrace.Tracee.Process) }, @@ -11474,6 +12292,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.created_at": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveProcessCreatedAt(ev, &ev.PTrace.Tracee.Process)) }, @@ -11483,6 +12302,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.egid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.PTrace.Tracee.Process.Credentials.EGID) }, @@ -11492,6 +12312,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.egroup": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.PTrace.Tracee.Process.Credentials.EGroup }, @@ -11501,6 +12322,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.envp": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvp(ev, &ev.PTrace.Tracee.Process) }, @@ -11510,6 +12332,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.envs": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvs(ev, &ev.PTrace.Tracee.Process) }, @@ -11519,6 +12342,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.envs_truncated": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvsTruncated(ev, &ev.PTrace.Tracee.Process) }, @@ -11528,6 +12352,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.euid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.PTrace.Tracee.Process.Credentials.EUID) }, @@ -11537,6 +12362,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.euser": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.PTrace.Tracee.Process.Credentials.EUser }, @@ -11546,6 +12372,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.IsNotKworker() { return 0 @@ -11558,6 +12385,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.IsNotKworker() { return "" @@ -11570,6 +12398,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.IsNotKworker() { return 0 @@ -11582,6 +12411,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.IsNotKworker() { return "" @@ -11594,6 +12424,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.IsNotKworker() { return []string{} @@ -11606,6 +12437,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.IsNotKworker() { return false @@ -11618,6 +12450,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.IsNotKworker() { return 0 @@ -11630,6 +12463,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.IsNotKworker() { return 0 @@ -11642,6 +12476,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.IsNotKworker() { return 0 @@ -11654,6 +12489,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.IsNotKworker() { return 0 @@ -11667,6 +12503,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.IsNotKworker() { return "" @@ -11680,6 +12517,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.PTrace.Tracee.Process.FileEvent)) }, @@ -11689,6 +12527,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.IsNotKworker() { return "" @@ -11701,6 +12540,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.IsNotKworker() { return "" @@ -11713,6 +12553,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.IsNotKworker() { return "" @@ -11726,6 +12567,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.IsNotKworker() { return "" @@ -11739,6 +12581,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.PTrace.Tracee.Process.FileEvent)) }, @@ -11748,6 +12591,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.IsNotKworker() { return 0 @@ -11760,6 +12604,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.IsNotKworker() { return 0 @@ -11772,6 +12617,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.IsNotKworker() { return "" @@ -11784,6 +12630,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.fsgid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.PTrace.Tracee.Process.Credentials.FSGID) }, @@ -11793,6 +12640,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.fsgroup": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.PTrace.Tracee.Process.Credentials.FSGroup }, @@ -11802,6 +12650,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.fsuid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.PTrace.Tracee.Process.Credentials.FSUID) }, @@ -11811,6 +12660,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.fsuser": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.PTrace.Tracee.Process.Credentials.FSUser }, @@ -11820,6 +12670,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.PTrace.Tracee.Process.Credentials.GID) }, @@ -11829,6 +12680,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.PTrace.Tracee.Process.Credentials.Group }, @@ -11838,6 +12690,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.interpreter.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.HasInterpreter() { return 0 @@ -11850,6 +12703,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.interpreter.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.HasInterpreter() { return "" @@ -11862,6 +12716,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.interpreter.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.HasInterpreter() { return 0 @@ -11874,6 +12729,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.interpreter.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.HasInterpreter() { return "" @@ -11886,6 +12742,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.interpreter.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.HasInterpreter() { return []string{} @@ -11898,6 +12755,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.interpreter.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.HasInterpreter() { return false @@ -11910,6 +12768,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.interpreter.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.HasInterpreter() { return 0 @@ -11922,6 +12781,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.interpreter.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.HasInterpreter() { return 0 @@ -11934,6 +12794,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.interpreter.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.HasInterpreter() { return 0 @@ -11946,6 +12807,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.interpreter.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.HasInterpreter() { return 0 @@ -11959,6 +12821,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.HasInterpreter() { return "" @@ -11972,6 +12835,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.PTrace.Tracee.Process.LinuxBinprm.FileEvent)) }, @@ -11981,6 +12845,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.interpreter.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.HasInterpreter() { return "" @@ -11993,6 +12858,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.interpreter.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.HasInterpreter() { return "" @@ -12005,6 +12871,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.interpreter.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.HasInterpreter() { return "" @@ -12018,6 +12885,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.HasInterpreter() { return "" @@ -12031,6 +12899,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.PTrace.Tracee.Process.LinuxBinprm.FileEvent)) }, @@ -12040,6 +12909,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.interpreter.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.HasInterpreter() { return 0 @@ -12052,6 +12922,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.interpreter.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.HasInterpreter() { return 0 @@ -12064,6 +12935,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.interpreter.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.Process.HasInterpreter() { return "" @@ -12076,6 +12948,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.is_exec": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.PTrace.Tracee.Process.IsExec }, @@ -12085,6 +12958,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.is_kworker": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.PTrace.Tracee.Process.PIDContext.IsKworker }, @@ -12094,6 +12968,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.is_thread": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessIsThread(ev, &ev.PTrace.Tracee.Process) }, @@ -12103,6 +12978,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.args": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12115,6 +12991,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.args_flags": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return []string{} @@ -12127,6 +13004,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.args_options": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return []string{} @@ -12139,6 +13017,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.args_truncated": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return false @@ -12151,6 +13030,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.argv": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return []string{} @@ -12163,6 +13043,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.argv0": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12175,6 +13056,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.auid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -12187,6 +13069,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.cap_effective": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -12199,6 +13082,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.cap_permitted": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -12211,6 +13095,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.cgroup.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -12223,6 +13108,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.cgroup.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -12235,6 +13121,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.cgroup.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12247,6 +13134,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.cgroup.manager": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12259,6 +13147,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.comm": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12271,6 +13160,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.container.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12283,6 +13173,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.created_at": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -12295,6 +13186,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.egid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -12307,6 +13199,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.egroup": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12319,6 +13212,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.envp": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return []string{} @@ -12331,6 +13225,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.envs": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return []string{} @@ -12343,6 +13238,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.envs_truncated": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return false @@ -12355,6 +13251,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.euid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -12367,6 +13264,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.euser": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12379,6 +13277,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -12394,6 +13293,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12409,6 +13309,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -12424,6 +13325,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12439,6 +13341,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return []string{} @@ -12454,6 +13357,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return false @@ -12469,6 +13373,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -12484,6 +13389,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -12499,6 +13405,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -12514,6 +13421,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -12530,6 +13438,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12546,6 +13455,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.PTrace.Tracee.Parent.FileEvent)) }, @@ -12555,6 +13465,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12570,6 +13481,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12585,6 +13497,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12601,6 +13514,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12617,6 +13531,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.PTrace.Tracee.Parent.FileEvent)) }, @@ -12626,6 +13541,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -12641,6 +13557,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -12656,6 +13573,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12671,6 +13589,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.fsgid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -12683,6 +13602,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.fsgroup": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12695,6 +13615,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.fsuid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -12707,6 +13628,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.fsuser": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12719,6 +13641,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -12731,6 +13654,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12743,6 +13667,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.interpreter.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -12758,6 +13683,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.interpreter.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12773,6 +13699,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.interpreter.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -12788,6 +13715,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.interpreter.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12803,6 +13731,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.interpreter.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return []string{} @@ -12818,6 +13747,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.interpreter.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return false @@ -12833,6 +13763,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.interpreter.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -12848,6 +13779,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.interpreter.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -12863,6 +13795,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.interpreter.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -12878,6 +13811,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.interpreter.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -12894,6 +13828,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12910,6 +13845,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.PTrace.Tracee.Parent.LinuxBinprm.FileEvent)) }, @@ -12919,6 +13855,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.interpreter.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12934,6 +13871,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.interpreter.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12949,6 +13887,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.interpreter.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12965,6 +13904,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -12981,6 +13921,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.PTrace.Tracee.Parent.LinuxBinprm.FileEvent)) }, @@ -12990,6 +13931,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.interpreter.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -13005,6 +13947,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.interpreter.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -13020,6 +13963,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.interpreter.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -13035,6 +13979,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.is_exec": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return false @@ -13047,6 +13992,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.is_kworker": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return false @@ -13059,6 +14005,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.is_thread": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return false @@ -13071,6 +14018,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.pid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -13083,6 +14031,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.ppid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -13095,6 +14044,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.tid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -13107,6 +14057,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.tty_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -13119,6 +14070,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return 0 @@ -13131,6 +14083,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -13143,6 +14096,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.user_session.k8s_groups": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return []string{} @@ -13155,6 +14109,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.user_session.k8s_uid": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -13167,6 +14122,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.parent.user_session.k8s_username": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.PTrace.Tracee.HasParent() { return "" @@ -13179,6 +14135,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.pid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.PTrace.Tracee.Process.PIDContext.Pid) }, @@ -13188,6 +14145,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.ppid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.PTrace.Tracee.Process.PPid) }, @@ -13197,6 +14155,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.tid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.PTrace.Tracee.Process.PIDContext.Tid) }, @@ -13206,6 +14165,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.tty_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.PTrace.Tracee.Process.TTYName }, @@ -13215,6 +14175,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.PTrace.Tracee.Process.Credentials.UID) }, @@ -13224,6 +14185,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.PTrace.Tracee.Process.Credentials.User }, @@ -13233,6 +14195,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.user_session.k8s_groups": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveK8SGroups(ev, &ev.PTrace.Tracee.Process.UserSession) }, @@ -13242,6 +14205,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.user_session.k8s_uid": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveK8SUID(ev, &ev.PTrace.Tracee.Process.UserSession) }, @@ -13251,6 +14215,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "ptrace.tracee.user_session.k8s_username": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveK8SUsername(ev, &ev.PTrace.Tracee.Process.UserSession) }, @@ -13260,6 +14225,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "removexattr.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.RemoveXAttr.File.FileFields.CTime) }, @@ -13269,6 +14235,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "removexattr.file.destination.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveXAttrName(ev, &ev.RemoveXAttr) }, @@ -13278,6 +14245,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "removexattr.file.destination.namespace": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveXAttrNamespace(ev, &ev.RemoveXAttr) }, @@ -13287,6 +14255,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "removexattr.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFilesystem(ev, &ev.RemoveXAttr.File) }, @@ -13296,6 +14265,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "removexattr.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.RemoveXAttr.File.FileFields.GID) }, @@ -13305,6 +14275,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "removexattr.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsGroup(ev, &ev.RemoveXAttr.File.FileFields) }, @@ -13314,6 +14285,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "removexattr.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveHashesFromEvent(ev, &ev.RemoveXAttr.File) }, @@ -13323,6 +14295,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "removexattr.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsInUpperLayer(ev, &ev.RemoveXAttr.File.FileFields) }, @@ -13332,6 +14305,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "removexattr.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.RemoveXAttr.File.FileFields.PathKey.Inode) }, @@ -13341,6 +14315,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "removexattr.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.RemoveXAttr.File.FileFields.Mode) }, @@ -13350,6 +14325,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "removexattr.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.RemoveXAttr.File.FileFields.MTime) }, @@ -13359,6 +14335,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "removexattr.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.RemoveXAttr.File.FileFields.PathKey.MountID) }, @@ -13369,6 +14346,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileBasename(ev, &ev.RemoveXAttr.File) }, @@ -13379,6 +14357,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.RemoveXAttr.File)) }, @@ -13388,6 +14367,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "removexattr.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageName(ev, &ev.RemoveXAttr.File) }, @@ -13397,6 +14377,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "removexattr.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageSourceVersion(ev, &ev.RemoveXAttr.File) }, @@ -13406,6 +14387,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "removexattr.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageVersion(ev, &ev.RemoveXAttr.File) }, @@ -13416,6 +14398,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFilePath(ev, &ev.RemoveXAttr.File) }, @@ -13426,6 +14409,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.RemoveXAttr.File)) }, @@ -13435,6 +14419,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "removexattr.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveRights(ev, &ev.RemoveXAttr.File.FileFields)) }, @@ -13444,6 +14429,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "removexattr.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.RemoveXAttr.File.FileFields.UID) }, @@ -13453,6 +14439,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "removexattr.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsUser(ev, &ev.RemoveXAttr.File.FileFields) }, @@ -13462,6 +14449,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "removexattr.retval": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.RemoveXAttr.SyscallEvent.Retval) }, @@ -13471,6 +14459,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Rename.Old.FileFields.CTime) }, @@ -13480,6 +14469,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.destination.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Rename.New.FileFields.CTime) }, @@ -13489,6 +14479,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.destination.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFilesystem(ev, &ev.Rename.New) }, @@ -13498,6 +14489,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.destination.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Rename.New.FileFields.GID) }, @@ -13507,6 +14499,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.destination.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsGroup(ev, &ev.Rename.New.FileFields) }, @@ -13516,6 +14509,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.destination.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveHashesFromEvent(ev, &ev.Rename.New) }, @@ -13525,6 +14519,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.destination.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsInUpperLayer(ev, &ev.Rename.New.FileFields) }, @@ -13534,6 +14529,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.destination.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Rename.New.FileFields.PathKey.Inode) }, @@ -13543,6 +14539,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.destination.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Rename.New.FileFields.Mode) }, @@ -13552,6 +14549,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.destination.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Rename.New.FileFields.MTime) }, @@ -13561,6 +14559,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.destination.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Rename.New.FileFields.PathKey.MountID) }, @@ -13571,6 +14570,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileBasename(ev, &ev.Rename.New) }, @@ -13581,6 +14581,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.Rename.New)) }, @@ -13590,6 +14591,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.destination.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageName(ev, &ev.Rename.New) }, @@ -13599,6 +14601,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.destination.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageSourceVersion(ev, &ev.Rename.New) }, @@ -13608,6 +14611,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.destination.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageVersion(ev, &ev.Rename.New) }, @@ -13618,6 +14622,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFilePath(ev, &ev.Rename.New) }, @@ -13628,6 +14633,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.Rename.New)) }, @@ -13637,6 +14643,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.destination.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveRights(ev, &ev.Rename.New.FileFields)) }, @@ -13646,6 +14653,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.destination.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Rename.New.FileFields.UID) }, @@ -13655,6 +14663,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.destination.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsUser(ev, &ev.Rename.New.FileFields) }, @@ -13664,6 +14673,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFilesystem(ev, &ev.Rename.Old) }, @@ -13673,6 +14683,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Rename.Old.FileFields.GID) }, @@ -13682,6 +14693,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsGroup(ev, &ev.Rename.Old.FileFields) }, @@ -13691,6 +14703,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveHashesFromEvent(ev, &ev.Rename.Old) }, @@ -13700,6 +14713,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsInUpperLayer(ev, &ev.Rename.Old.FileFields) }, @@ -13709,6 +14723,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Rename.Old.FileFields.PathKey.Inode) }, @@ -13718,6 +14733,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Rename.Old.FileFields.Mode) }, @@ -13727,6 +14743,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Rename.Old.FileFields.MTime) }, @@ -13736,6 +14753,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Rename.Old.FileFields.PathKey.MountID) }, @@ -13746,6 +14764,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileBasename(ev, &ev.Rename.Old) }, @@ -13756,6 +14775,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.Rename.Old)) }, @@ -13765,6 +14785,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageName(ev, &ev.Rename.Old) }, @@ -13774,6 +14795,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageSourceVersion(ev, &ev.Rename.Old) }, @@ -13783,6 +14805,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageVersion(ev, &ev.Rename.Old) }, @@ -13793,6 +14816,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFilePath(ev, &ev.Rename.Old) }, @@ -13803,6 +14827,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.Rename.Old)) }, @@ -13812,6 +14837,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveRights(ev, &ev.Rename.Old.FileFields)) }, @@ -13821,6 +14847,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Rename.Old.FileFields.UID) }, @@ -13830,6 +14857,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsUser(ev, &ev.Rename.Old.FileFields) }, @@ -13839,6 +14867,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.retval": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Rename.SyscallEvent.Retval) }, @@ -13848,6 +14877,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.syscall.destination.path": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveSyscallCtxArgsStr2(ev, &ev.Rename.SyscallContext) }, @@ -13857,6 +14887,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rename.syscall.path": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveSyscallCtxArgsStr1(ev, &ev.Rename.SyscallContext) }, @@ -13866,6 +14897,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rmdir.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Rmdir.File.FileFields.CTime) }, @@ -13875,6 +14907,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rmdir.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFilesystem(ev, &ev.Rmdir.File) }, @@ -13884,6 +14917,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rmdir.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Rmdir.File.FileFields.GID) }, @@ -13893,6 +14927,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rmdir.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsGroup(ev, &ev.Rmdir.File.FileFields) }, @@ -13902,6 +14937,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rmdir.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveHashesFromEvent(ev, &ev.Rmdir.File) }, @@ -13911,6 +14947,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rmdir.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsInUpperLayer(ev, &ev.Rmdir.File.FileFields) }, @@ -13920,6 +14957,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rmdir.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Rmdir.File.FileFields.PathKey.Inode) }, @@ -13929,6 +14967,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rmdir.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Rmdir.File.FileFields.Mode) }, @@ -13938,6 +14977,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rmdir.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Rmdir.File.FileFields.MTime) }, @@ -13947,6 +14987,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rmdir.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Rmdir.File.FileFields.PathKey.MountID) }, @@ -13957,6 +14998,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileBasename(ev, &ev.Rmdir.File) }, @@ -13967,6 +15009,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.Rmdir.File)) }, @@ -13976,6 +15019,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rmdir.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageName(ev, &ev.Rmdir.File) }, @@ -13985,6 +15029,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rmdir.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageSourceVersion(ev, &ev.Rmdir.File) }, @@ -13994,6 +15039,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rmdir.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageVersion(ev, &ev.Rmdir.File) }, @@ -14004,6 +15050,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFilePath(ev, &ev.Rmdir.File) }, @@ -14014,6 +15061,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.Rmdir.File)) }, @@ -14023,6 +15071,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rmdir.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveRights(ev, &ev.Rmdir.File.FileFields)) }, @@ -14032,6 +15081,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rmdir.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Rmdir.File.FileFields.UID) }, @@ -14041,6 +15091,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rmdir.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsUser(ev, &ev.Rmdir.File.FileFields) }, @@ -14050,6 +15101,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "rmdir.retval": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Rmdir.SyscallEvent.Retval) }, @@ -14059,6 +15111,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "selinux.bool.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveSELinuxBoolName(ev, &ev.SELinux) }, @@ -14068,6 +15121,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "selinux.bool.state": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.SELinux.BoolChangeValue }, @@ -14077,6 +15131,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "selinux.bool_commit.state": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.SELinux.BoolCommitValue }, @@ -14086,6 +15141,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "selinux.enforce.status": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.SELinux.EnforceStatus }, @@ -14095,6 +15151,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setgid.egid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.SetGID.EGID) }, @@ -14104,6 +15161,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setgid.egroup": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveSetgidEGroup(ev, &ev.SetGID) }, @@ -14113,6 +15171,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setgid.fsgid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.SetGID.FSGID) }, @@ -14122,6 +15181,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setgid.fsgroup": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveSetgidFSGroup(ev, &ev.SetGID) }, @@ -14131,6 +15191,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setgid.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.SetGID.GID) }, @@ -14140,6 +15201,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setgid.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveSetgidGroup(ev, &ev.SetGID) }, @@ -14149,6 +15211,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setuid.euid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.SetUID.EUID) }, @@ -14158,6 +15221,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setuid.euser": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveSetuidEUser(ev, &ev.SetUID) }, @@ -14167,6 +15231,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setuid.fsuid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.SetUID.FSUID) }, @@ -14176,6 +15241,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setuid.fsuser": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveSetuidFSUser(ev, &ev.SetUID) }, @@ -14185,6 +15251,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setuid.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.SetUID.UID) }, @@ -14194,6 +15261,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setuid.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveSetuidUser(ev, &ev.SetUID) }, @@ -14203,6 +15271,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setxattr.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.SetXAttr.File.FileFields.CTime) }, @@ -14212,6 +15281,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setxattr.file.destination.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveXAttrName(ev, &ev.SetXAttr) }, @@ -14221,6 +15291,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setxattr.file.destination.namespace": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveXAttrNamespace(ev, &ev.SetXAttr) }, @@ -14230,6 +15301,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setxattr.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFilesystem(ev, &ev.SetXAttr.File) }, @@ -14239,6 +15311,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setxattr.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.SetXAttr.File.FileFields.GID) }, @@ -14248,6 +15321,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setxattr.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsGroup(ev, &ev.SetXAttr.File.FileFields) }, @@ -14257,6 +15331,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setxattr.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveHashesFromEvent(ev, &ev.SetXAttr.File) }, @@ -14266,6 +15341,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setxattr.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsInUpperLayer(ev, &ev.SetXAttr.File.FileFields) }, @@ -14275,6 +15351,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setxattr.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.SetXAttr.File.FileFields.PathKey.Inode) }, @@ -14284,6 +15361,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setxattr.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.SetXAttr.File.FileFields.Mode) }, @@ -14293,6 +15371,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setxattr.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.SetXAttr.File.FileFields.MTime) }, @@ -14302,6 +15381,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setxattr.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.SetXAttr.File.FileFields.PathKey.MountID) }, @@ -14312,6 +15392,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileBasename(ev, &ev.SetXAttr.File) }, @@ -14322,6 +15403,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.SetXAttr.File)) }, @@ -14331,6 +15413,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setxattr.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageName(ev, &ev.SetXAttr.File) }, @@ -14340,6 +15423,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setxattr.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageSourceVersion(ev, &ev.SetXAttr.File) }, @@ -14349,6 +15433,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setxattr.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageVersion(ev, &ev.SetXAttr.File) }, @@ -14359,6 +15444,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFilePath(ev, &ev.SetXAttr.File) }, @@ -14369,6 +15455,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.SetXAttr.File)) }, @@ -14378,6 +15465,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setxattr.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveRights(ev, &ev.SetXAttr.File.FileFields)) }, @@ -14387,6 +15475,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setxattr.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.SetXAttr.File.FileFields.UID) }, @@ -14396,6 +15485,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setxattr.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsUser(ev, &ev.SetXAttr.File.FileFields) }, @@ -14405,6 +15495,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "setxattr.retval": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.SetXAttr.SyscallEvent.Retval) }, @@ -14414,6 +15505,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.pid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Signal.PID) }, @@ -14423,6 +15515,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.retval": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Signal.SyscallEvent.Retval) }, @@ -14432,6 +15525,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.args": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -14459,6 +15553,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.args_flags": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -14486,6 +15581,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.args_options": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -14513,6 +15609,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.args_truncated": return &eval.BoolArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.BoolCache[field]; ok { return result @@ -14540,6 +15637,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.argv": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -14567,6 +15665,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.argv0": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -14594,6 +15693,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.auid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -14620,6 +15720,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.cap_effective": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -14646,6 +15747,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.cap_permitted": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -14672,6 +15774,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.cgroup.file.inode": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -14698,6 +15801,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.cgroup.file.mount_id": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -14724,6 +15828,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.cgroup.id": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -14751,6 +15856,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.cgroup.manager": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -14778,6 +15884,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.comm": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -14804,6 +15911,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.container.id": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -14831,6 +15939,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.created_at": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -14858,6 +15967,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.egid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -14884,6 +15994,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.egroup": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -14910,6 +16021,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.envp": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -14937,6 +16049,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.envs": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -14964,6 +16077,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.envs_truncated": return &eval.BoolArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.BoolCache[field]; ok { return result @@ -14991,6 +16105,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.euid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -15017,6 +16132,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.euser": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -15043,6 +16159,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.file.change_time": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -15075,6 +16192,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.file.filesystem": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -15108,6 +16226,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.file.gid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -15140,6 +16259,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.file.group": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -15173,6 +16293,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -15206,6 +16327,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.file.in_upper_layer": return &eval.BoolArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.BoolCache[field]; ok { return result @@ -15239,6 +16361,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.file.inode": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -15271,6 +16394,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.file.mode": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -15303,6 +16427,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.file.modification_time": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -15335,6 +16460,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.file.mount_id": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -15368,6 +16494,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringArrayEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -15402,6 +16529,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntArrayEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -15429,6 +16557,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.file.package.name": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -15462,6 +16591,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.file.package.source_version": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -15495,6 +16625,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.file.package.version": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -15529,6 +16660,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringArrayEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -15563,6 +16695,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntArrayEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -15590,6 +16723,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.file.rights": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -15623,6 +16757,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.file.uid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -15655,6 +16790,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.file.user": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -15688,6 +16824,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.fsgid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -15714,6 +16851,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.fsgroup": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -15740,6 +16878,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.fsuid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -15766,6 +16905,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.fsuser": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -15792,6 +16932,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.gid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -15818,6 +16959,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.group": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -15844,6 +16986,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.interpreter.file.change_time": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -15876,6 +17019,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.interpreter.file.filesystem": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -15909,6 +17053,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.interpreter.file.gid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -15941,6 +17086,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.interpreter.file.group": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -15974,6 +17120,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.interpreter.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -16007,6 +17154,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.interpreter.file.in_upper_layer": return &eval.BoolArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.BoolCache[field]; ok { return result @@ -16040,6 +17188,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.interpreter.file.inode": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -16072,6 +17221,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.interpreter.file.mode": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -16104,6 +17254,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.interpreter.file.modification_time": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -16136,6 +17287,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.interpreter.file.mount_id": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -16169,6 +17321,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringArrayEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -16203,6 +17356,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntArrayEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -16230,6 +17384,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.interpreter.file.package.name": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -16263,6 +17418,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.interpreter.file.package.source_version": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -16296,6 +17452,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.interpreter.file.package.version": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -16330,6 +17487,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringArrayEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -16364,6 +17522,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntArrayEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -16391,6 +17550,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.interpreter.file.rights": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -16424,6 +17584,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.interpreter.file.uid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -16456,6 +17617,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.interpreter.file.user": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -16489,6 +17651,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.is_exec": return &eval.BoolArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []bool { + ctx.AppendResolvedField(field) if result, ok := ctx.BoolCache[field]; ok { return result } @@ -16515,6 +17678,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.is_kworker": return &eval.BoolArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []bool { + ctx.AppendResolvedField(field) if result, ok := ctx.BoolCache[field]; ok { return result } @@ -16541,6 +17705,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.is_thread": return &eval.BoolArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.BoolCache[field]; ok { return result @@ -16568,6 +17733,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) iterator := &ProcessAncestorsIterator{} return iterator.Len(ctx) }, @@ -16577,6 +17743,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.pid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -16603,6 +17770,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.ppid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -16629,6 +17797,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.tid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -16655,6 +17824,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.tty_name": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -16681,6 +17851,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.uid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -16707,6 +17878,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.user": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -16733,6 +17905,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.user_session.k8s_groups": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -16760,6 +17933,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.user_session.k8s_uid": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -16787,6 +17961,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ancestors.user_session.k8s_username": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -16814,6 +17989,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.args": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgs(ev, &ev.Signal.Target.Process) }, @@ -16823,6 +17999,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.args_flags": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgsFlags(ev, &ev.Signal.Target.Process) }, @@ -16832,6 +18009,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.args_options": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgsOptions(ev, &ev.Signal.Target.Process) }, @@ -16841,6 +18019,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.args_truncated": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgsTruncated(ev, &ev.Signal.Target.Process) }, @@ -16850,6 +18029,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.argv": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgv(ev, &ev.Signal.Target.Process) }, @@ -16859,6 +18039,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.argv0": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessArgv0(ev, &ev.Signal.Target.Process) }, @@ -16868,6 +18049,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.auid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Signal.Target.Process.Credentials.AUID) }, @@ -16877,6 +18059,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.cap_effective": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Signal.Target.Process.Credentials.CapEffective) }, @@ -16886,6 +18069,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.cap_permitted": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Signal.Target.Process.Credentials.CapPermitted) }, @@ -16895,6 +18079,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.cgroup.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Signal.Target.Process.CGroup.CGroupFile.Inode) }, @@ -16904,6 +18089,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.cgroup.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Signal.Target.Process.CGroup.CGroupFile.MountID) }, @@ -16913,6 +18099,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.cgroup.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveCGroupID(ev, &ev.Signal.Target.Process.CGroup) }, @@ -16922,6 +18109,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.cgroup.manager": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveCGroupManager(ev, &ev.Signal.Target.Process.CGroup) }, @@ -16931,6 +18119,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.comm": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Signal.Target.Process.Comm }, @@ -16940,6 +18129,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.container.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessContainerID(ev, &ev.Signal.Target.Process) }, @@ -16949,6 +18139,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.created_at": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveProcessCreatedAt(ev, &ev.Signal.Target.Process)) }, @@ -16958,6 +18149,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.egid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Signal.Target.Process.Credentials.EGID) }, @@ -16967,6 +18159,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.egroup": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Signal.Target.Process.Credentials.EGroup }, @@ -16976,6 +18169,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.envp": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvp(ev, &ev.Signal.Target.Process) }, @@ -16985,6 +18179,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.envs": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvs(ev, &ev.Signal.Target.Process) }, @@ -16994,6 +18189,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.envs_truncated": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvsTruncated(ev, &ev.Signal.Target.Process) }, @@ -17003,6 +18199,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.euid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Signal.Target.Process.Credentials.EUID) }, @@ -17012,6 +18209,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.euser": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Signal.Target.Process.Credentials.EUser }, @@ -17021,6 +18219,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.IsNotKworker() { return 0 @@ -17033,6 +18232,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.IsNotKworker() { return "" @@ -17045,6 +18245,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.IsNotKworker() { return 0 @@ -17057,6 +18258,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.IsNotKworker() { return "" @@ -17069,6 +18271,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.IsNotKworker() { return []string{} @@ -17081,6 +18284,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.IsNotKworker() { return false @@ -17093,6 +18297,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.IsNotKworker() { return 0 @@ -17105,6 +18310,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.IsNotKworker() { return 0 @@ -17117,6 +18323,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.IsNotKworker() { return 0 @@ -17129,6 +18336,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.IsNotKworker() { return 0 @@ -17142,6 +18350,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.IsNotKworker() { return "" @@ -17155,6 +18364,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.Signal.Target.Process.FileEvent)) }, @@ -17164,6 +18374,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.IsNotKworker() { return "" @@ -17176,6 +18387,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.IsNotKworker() { return "" @@ -17188,6 +18400,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.IsNotKworker() { return "" @@ -17201,6 +18414,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.IsNotKworker() { return "" @@ -17214,6 +18428,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.Signal.Target.Process.FileEvent)) }, @@ -17223,6 +18438,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.IsNotKworker() { return 0 @@ -17235,6 +18451,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.IsNotKworker() { return 0 @@ -17247,6 +18464,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.IsNotKworker() { return "" @@ -17259,6 +18477,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.fsgid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Signal.Target.Process.Credentials.FSGID) }, @@ -17268,6 +18487,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.fsgroup": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Signal.Target.Process.Credentials.FSGroup }, @@ -17277,6 +18497,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.fsuid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Signal.Target.Process.Credentials.FSUID) }, @@ -17286,6 +18507,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.fsuser": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Signal.Target.Process.Credentials.FSUser }, @@ -17295,6 +18517,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Signal.Target.Process.Credentials.GID) }, @@ -17304,6 +18527,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Signal.Target.Process.Credentials.Group }, @@ -17313,6 +18537,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.interpreter.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.HasInterpreter() { return 0 @@ -17325,6 +18550,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.interpreter.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.HasInterpreter() { return "" @@ -17337,6 +18563,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.interpreter.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.HasInterpreter() { return 0 @@ -17349,6 +18576,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.interpreter.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.HasInterpreter() { return "" @@ -17361,6 +18589,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.interpreter.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.HasInterpreter() { return []string{} @@ -17373,6 +18602,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.interpreter.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.HasInterpreter() { return false @@ -17385,6 +18615,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.interpreter.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.HasInterpreter() { return 0 @@ -17397,6 +18628,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.interpreter.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.HasInterpreter() { return 0 @@ -17409,6 +18641,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.interpreter.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.HasInterpreter() { return 0 @@ -17421,6 +18654,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.interpreter.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.HasInterpreter() { return 0 @@ -17434,6 +18668,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.HasInterpreter() { return "" @@ -17447,6 +18682,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.Signal.Target.Process.LinuxBinprm.FileEvent)) }, @@ -17456,6 +18692,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.interpreter.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.HasInterpreter() { return "" @@ -17468,6 +18705,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.interpreter.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.HasInterpreter() { return "" @@ -17480,6 +18718,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.interpreter.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.HasInterpreter() { return "" @@ -17493,6 +18732,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.HasInterpreter() { return "" @@ -17506,6 +18746,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.Signal.Target.Process.LinuxBinprm.FileEvent)) }, @@ -17515,6 +18756,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.interpreter.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.HasInterpreter() { return 0 @@ -17527,6 +18769,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.interpreter.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.HasInterpreter() { return 0 @@ -17539,6 +18782,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.interpreter.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.Process.HasInterpreter() { return "" @@ -17551,6 +18795,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.is_exec": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Signal.Target.Process.IsExec }, @@ -17560,6 +18805,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.is_kworker": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Signal.Target.Process.PIDContext.IsKworker }, @@ -17569,6 +18815,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.is_thread": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessIsThread(ev, &ev.Signal.Target.Process) }, @@ -17578,6 +18825,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.args": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -17590,6 +18838,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.args_flags": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return []string{} @@ -17602,6 +18851,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.args_options": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return []string{} @@ -17614,6 +18864,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.args_truncated": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return false @@ -17626,6 +18877,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.argv": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return []string{} @@ -17638,6 +18890,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.argv0": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -17650,6 +18903,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.auid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -17662,6 +18916,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.cap_effective": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -17674,6 +18929,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.cap_permitted": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -17686,6 +18942,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.cgroup.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -17698,6 +18955,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.cgroup.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -17710,6 +18968,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.cgroup.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -17722,6 +18981,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.cgroup.manager": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -17734,6 +18994,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.comm": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -17746,6 +19007,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.container.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -17758,6 +19020,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.created_at": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -17770,6 +19033,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.egid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -17782,6 +19046,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.egroup": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -17794,6 +19059,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.envp": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return []string{} @@ -17806,6 +19072,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.envs": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return []string{} @@ -17818,6 +19085,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.envs_truncated": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return false @@ -17830,6 +19098,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.euid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -17842,6 +19111,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.euser": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -17854,6 +19124,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -17869,6 +19140,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -17884,6 +19156,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -17899,6 +19172,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -17914,6 +19188,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return []string{} @@ -17929,6 +19204,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return false @@ -17944,6 +19220,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -17959,6 +19236,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -17974,6 +19252,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -17989,6 +19268,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -18005,6 +19285,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -18021,6 +19302,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.Signal.Target.Parent.FileEvent)) }, @@ -18030,6 +19312,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -18045,6 +19328,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -18060,6 +19344,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -18076,6 +19361,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -18092,6 +19378,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.Signal.Target.Parent.FileEvent)) }, @@ -18101,6 +19388,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -18116,6 +19404,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -18131,6 +19420,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -18146,6 +19436,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.fsgid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -18158,6 +19449,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.fsgroup": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -18170,6 +19462,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.fsuid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -18182,6 +19475,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.fsuser": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -18194,6 +19488,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -18206,6 +19501,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -18218,6 +19514,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.interpreter.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -18233,6 +19530,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.interpreter.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -18248,6 +19546,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.interpreter.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -18263,6 +19562,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.interpreter.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -18278,6 +19578,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.interpreter.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return []string{} @@ -18293,6 +19594,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.interpreter.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return false @@ -18308,6 +19610,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.interpreter.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -18323,6 +19626,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.interpreter.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -18338,6 +19642,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.interpreter.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -18353,6 +19658,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.interpreter.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -18369,6 +19675,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -18385,6 +19692,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.Signal.Target.Parent.LinuxBinprm.FileEvent)) }, @@ -18394,6 +19702,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.interpreter.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -18409,6 +19718,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.interpreter.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -18424,6 +19734,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.interpreter.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -18440,6 +19751,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -18456,6 +19768,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.Signal.Target.Parent.LinuxBinprm.FileEvent)) }, @@ -18465,6 +19778,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.interpreter.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -18480,6 +19794,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.interpreter.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -18495,6 +19810,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.interpreter.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -18510,6 +19826,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.is_exec": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return false @@ -18522,6 +19839,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.is_kworker": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return false @@ -18534,6 +19852,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.is_thread": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return false @@ -18546,6 +19865,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.pid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -18558,6 +19878,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.ppid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -18570,6 +19891,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.tid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -18582,6 +19904,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.tty_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -18594,6 +19917,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return 0 @@ -18606,6 +19930,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -18618,6 +19943,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.user_session.k8s_groups": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return []string{} @@ -18630,6 +19956,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.user_session.k8s_uid": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -18642,6 +19969,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.parent.user_session.k8s_username": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.Signal.Target.HasParent() { return "" @@ -18654,6 +19982,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.pid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Signal.Target.Process.PIDContext.Pid) }, @@ -18663,6 +19992,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.ppid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Signal.Target.Process.PPid) }, @@ -18672,6 +20002,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.tid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Signal.Target.Process.PIDContext.Tid) }, @@ -18681,6 +20012,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.tty_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Signal.Target.Process.TTYName }, @@ -18690,6 +20022,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Signal.Target.Process.Credentials.UID) }, @@ -18699,6 +20032,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Signal.Target.Process.Credentials.User }, @@ -18708,6 +20042,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.user_session.k8s_groups": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveK8SGroups(ev, &ev.Signal.Target.Process.UserSession) }, @@ -18717,6 +20052,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.user_session.k8s_uid": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveK8SUID(ev, &ev.Signal.Target.Process.UserSession) }, @@ -18726,6 +20062,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.target.user_session.k8s_username": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveK8SUsername(ev, &ev.Signal.Target.Process.UserSession) }, @@ -18735,6 +20072,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "signal.type": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Signal.Type) }, @@ -18744,6 +20082,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "splice.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Splice.File.FileFields.CTime) }, @@ -18753,6 +20092,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "splice.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFilesystem(ev, &ev.Splice.File) }, @@ -18762,6 +20102,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "splice.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Splice.File.FileFields.GID) }, @@ -18771,6 +20112,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "splice.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsGroup(ev, &ev.Splice.File.FileFields) }, @@ -18780,6 +20122,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "splice.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveHashesFromEvent(ev, &ev.Splice.File) }, @@ -18789,6 +20132,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "splice.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsInUpperLayer(ev, &ev.Splice.File.FileFields) }, @@ -18798,6 +20142,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "splice.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Splice.File.FileFields.PathKey.Inode) }, @@ -18807,6 +20152,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "splice.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Splice.File.FileFields.Mode) }, @@ -18816,6 +20162,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "splice.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Splice.File.FileFields.MTime) }, @@ -18825,6 +20172,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "splice.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Splice.File.FileFields.PathKey.MountID) }, @@ -18835,6 +20183,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileBasename(ev, &ev.Splice.File) }, @@ -18845,6 +20194,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.Splice.File)) }, @@ -18854,6 +20204,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "splice.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageName(ev, &ev.Splice.File) }, @@ -18863,6 +20214,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "splice.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageSourceVersion(ev, &ev.Splice.File) }, @@ -18872,6 +20224,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "splice.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageVersion(ev, &ev.Splice.File) }, @@ -18882,6 +20235,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFilePath(ev, &ev.Splice.File) }, @@ -18892,6 +20246,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.Splice.File)) }, @@ -18901,6 +20256,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "splice.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveRights(ev, &ev.Splice.File.FileFields)) }, @@ -18910,6 +20266,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "splice.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Splice.File.FileFields.UID) }, @@ -18919,6 +20276,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "splice.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsUser(ev, &ev.Splice.File.FileFields) }, @@ -18928,6 +20286,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "splice.pipe_entry_flag": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Splice.PipeEntryFlag) }, @@ -18937,6 +20296,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "splice.pipe_exit_flag": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Splice.PipeExitFlag) }, @@ -18946,6 +20306,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "splice.retval": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Splice.SyscallEvent.Retval) }, @@ -18955,6 +20316,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "unlink.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Unlink.File.FileFields.CTime) }, @@ -18964,6 +20326,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "unlink.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFilesystem(ev, &ev.Unlink.File) }, @@ -18973,6 +20336,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "unlink.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Unlink.File.FileFields.GID) }, @@ -18982,6 +20346,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "unlink.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsGroup(ev, &ev.Unlink.File.FileFields) }, @@ -18991,6 +20356,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "unlink.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveHashesFromEvent(ev, &ev.Unlink.File) }, @@ -19000,6 +20366,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "unlink.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsInUpperLayer(ev, &ev.Unlink.File.FileFields) }, @@ -19009,6 +20376,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "unlink.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Unlink.File.FileFields.PathKey.Inode) }, @@ -19018,6 +20386,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "unlink.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Unlink.File.FileFields.Mode) }, @@ -19027,6 +20396,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "unlink.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Unlink.File.FileFields.MTime) }, @@ -19036,6 +20406,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "unlink.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Unlink.File.FileFields.PathKey.MountID) }, @@ -19046,6 +20417,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileBasename(ev, &ev.Unlink.File) }, @@ -19056,6 +20428,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.Unlink.File)) }, @@ -19065,6 +20438,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "unlink.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageName(ev, &ev.Unlink.File) }, @@ -19074,6 +20448,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "unlink.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageSourceVersion(ev, &ev.Unlink.File) }, @@ -19083,6 +20458,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "unlink.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageVersion(ev, &ev.Unlink.File) }, @@ -19093,6 +20469,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFilePath(ev, &ev.Unlink.File) }, @@ -19103,6 +20480,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.Unlink.File)) }, @@ -19112,6 +20490,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "unlink.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveRights(ev, &ev.Unlink.File.FileFields)) }, @@ -19121,6 +20500,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "unlink.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Unlink.File.FileFields.UID) }, @@ -19130,6 +20510,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "unlink.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsUser(ev, &ev.Unlink.File.FileFields) }, @@ -19139,6 +20520,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "unlink.flags": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Unlink.Flags) }, @@ -19148,6 +20530,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "unlink.retval": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Unlink.SyscallEvent.Retval) }, @@ -19157,6 +20540,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "unlink.syscall.dirfd": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveSyscallCtxArgsInt1(ev, &ev.Unlink.SyscallContext)) }, @@ -19166,6 +20550,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "unlink.syscall.flags": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveSyscallCtxArgsInt3(ev, &ev.Unlink.SyscallContext)) }, @@ -19175,6 +20560,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "unlink.syscall.path": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveSyscallCtxArgsStr2(ev, &ev.Unlink.SyscallContext) }, @@ -19184,6 +20570,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "unload_module.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.UnloadModule.Name }, @@ -19193,6 +20580,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "unload_module.retval": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.UnloadModule.SyscallEvent.Retval) }, @@ -19202,6 +20590,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "utimes.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Utimes.File.FileFields.CTime) }, @@ -19211,6 +20600,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "utimes.file.filesystem": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFilesystem(ev, &ev.Utimes.File) }, @@ -19220,6 +20610,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "utimes.file.gid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Utimes.File.FileFields.GID) }, @@ -19229,6 +20620,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "utimes.file.group": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsGroup(ev, &ev.Utimes.File.FileFields) }, @@ -19238,6 +20630,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "utimes.file.hashes": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveHashesFromEvent(ev, &ev.Utimes.File) }, @@ -19247,6 +20640,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "utimes.file.in_upper_layer": return &eval.BoolEvaluator{ EvalFnc: func(ctx *eval.Context) bool { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsInUpperLayer(ev, &ev.Utimes.File.FileFields) }, @@ -19256,6 +20650,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "utimes.file.inode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Utimes.File.FileFields.PathKey.Inode) }, @@ -19265,6 +20660,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "utimes.file.mode": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Utimes.File.FileFields.Mode) }, @@ -19274,6 +20670,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "utimes.file.modification_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Utimes.File.FileFields.MTime) }, @@ -19283,6 +20680,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "utimes.file.mount_id": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Utimes.File.FileFields.PathKey.MountID) }, @@ -19293,6 +20691,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileBasename(ev, &ev.Utimes.File) }, @@ -19303,6 +20702,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkBasename, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.Utimes.File)) }, @@ -19312,6 +20712,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "utimes.file.package.name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageName(ev, &ev.Utimes.File) }, @@ -19321,6 +20722,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "utimes.file.package.source_version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageSourceVersion(ev, &ev.Utimes.File) }, @@ -19330,6 +20732,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "utimes.file.package.version": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolvePackageVersion(ev, &ev.Utimes.File) }, @@ -19340,6 +20743,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFilePath(ev, &ev.Utimes.File) }, @@ -19350,6 +20754,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: ProcessSymlinkPathname, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.Utimes.File)) }, @@ -19359,6 +20764,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "utimes.file.rights": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveRights(ev, &ev.Utimes.File.FileFields)) }, @@ -19368,6 +20774,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "utimes.file.uid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Utimes.File.FileFields.UID) }, @@ -19377,6 +20784,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "utimes.file.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileFieldsUser(ev, &ev.Utimes.File.FileFields) }, @@ -19386,6 +20794,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "utimes.retval": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Utimes.SyscallEvent.Retval) }, @@ -19395,6 +20804,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "utimes.syscall.path": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveSyscallCtxArgsStr1(ev, &ev.Utimes.SyscallContext) }, diff --git a/pkg/security/secl/model/accessors_windows.go b/pkg/security/secl/model/accessors_windows.go index 9bd0e32d553b9..6f15992c5aab1 100644 --- a/pkg/security/secl/model/accessors_windows.go +++ b/pkg/security/secl/model/accessors_windows.go @@ -43,6 +43,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "change_permission.new_sd": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveNewSecurityDescriptor(ev, &ev.ChangePermission) }, @@ -52,6 +53,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "change_permission.old_sd": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveOldSecurityDescriptor(ev, &ev.ChangePermission) }, @@ -61,6 +63,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "change_permission.path": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.ChangePermission.ObjectName }, @@ -70,6 +73,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "change_permission.type": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.ChangePermission.ObjectType }, @@ -79,6 +83,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "change_permission.user_domain": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.ChangePermission.UserDomain }, @@ -88,6 +93,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "change_permission.username": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.ChangePermission.UserName }, @@ -97,6 +103,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "container.created_at": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveContainerCreatedAt(ev, ev.BaseEvent.ContainerContext)) }, @@ -106,6 +113,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "container.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveContainerID(ev, ev.BaseEvent.ContainerContext) }, @@ -115,6 +123,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "container.runtime": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveContainerRuntime(ev, ev.BaseEvent.ContainerContext) }, @@ -124,6 +133,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "container.tags": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveContainerTags(ev, ev.BaseEvent.ContainerContext) }, @@ -134,6 +144,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFimFilePath(ev, &ev.CreateNewFile.File) }, @@ -144,6 +155,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFimFilePath(ev, &ev.CreateNewFile.File)) }, @@ -154,6 +166,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFimFileBasename(ev, &ev.CreateNewFile.File) }, @@ -164,6 +177,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFimFileBasename(ev, &ev.CreateNewFile.File)) }, @@ -174,6 +188,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileUserPath(ev, &ev.CreateNewFile.File) }, @@ -184,6 +199,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileUserPath(ev, &ev.CreateNewFile.File)) }, @@ -193,6 +209,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "create.registry.key_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.CreateRegistryKey.Registry.KeyName }, @@ -202,6 +219,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "create.registry.key_name.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.CreateRegistryKey.Registry.KeyName) }, @@ -212,6 +230,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.CreateRegistryKey.Registry.KeyPath }, @@ -222,6 +241,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.CreateRegistryKey.Registry.KeyPath) }, @@ -231,6 +251,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "create_key.registry.key_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.CreateRegistryKey.Registry.KeyName }, @@ -240,6 +261,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "create_key.registry.key_name.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.CreateRegistryKey.Registry.KeyName) }, @@ -250,6 +272,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.CreateRegistryKey.Registry.KeyPath }, @@ -260,6 +283,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.CreateRegistryKey.Registry.KeyPath) }, @@ -270,6 +294,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFimFilePath(ev, &ev.DeleteFile.File) }, @@ -280,6 +305,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFimFilePath(ev, &ev.DeleteFile.File)) }, @@ -290,6 +316,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFimFileBasename(ev, &ev.DeleteFile.File) }, @@ -300,6 +327,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFimFileBasename(ev, &ev.DeleteFile.File)) }, @@ -310,6 +338,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileUserPath(ev, &ev.DeleteFile.File) }, @@ -320,6 +349,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileUserPath(ev, &ev.DeleteFile.File)) }, @@ -329,6 +359,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "delete.registry.key_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.DeleteRegistryKey.Registry.KeyName }, @@ -338,6 +369,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "delete.registry.key_name.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.DeleteRegistryKey.Registry.KeyName) }, @@ -348,6 +380,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.DeleteRegistryKey.Registry.KeyPath }, @@ -358,6 +391,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.DeleteRegistryKey.Registry.KeyPath) }, @@ -367,6 +401,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "delete_key.registry.key_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.DeleteRegistryKey.Registry.KeyName }, @@ -376,6 +411,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "delete_key.registry.key_name.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.DeleteRegistryKey.Registry.KeyName) }, @@ -386,6 +422,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.DeleteRegistryKey.Registry.KeyPath }, @@ -396,6 +433,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.DeleteRegistryKey.Registry.KeyPath) }, @@ -405,6 +443,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "event.hostname": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveHostname(ev, &ev.BaseEvent) }, @@ -414,6 +453,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "event.origin": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.BaseEvent.Origin }, @@ -423,6 +463,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "event.os": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.BaseEvent.Os }, @@ -432,6 +473,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "event.service": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveService(ev, &ev.BaseEvent) }, @@ -441,6 +483,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "event.timestamp": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveEventTimestamp(ev, &ev.BaseEvent)) }, @@ -451,6 +494,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessCmdLine(ev, ev.Exec.Process) }, @@ -460,6 +504,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.container.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exec.Process.ContainerID }, @@ -469,6 +514,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.created_at": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveProcessCreatedAt(ev, ev.Exec.Process)) }, @@ -478,6 +524,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.envp": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvp(ev, ev.Exec.Process) }, @@ -487,6 +534,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.envs": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvs(ev, ev.Exec.Process) }, @@ -497,6 +545,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileBasename(ev, &ev.Exec.Process.FileEvent) }, @@ -507,6 +556,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.Exec.Process.FileEvent)) }, @@ -517,6 +567,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFilePath(ev, &ev.Exec.Process.FileEvent) }, @@ -527,6 +578,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.Exec.Process.FileEvent)) }, @@ -536,6 +588,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.pid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exec.Process.PIDContext.Pid) }, @@ -545,6 +598,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.ppid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exec.Process.PPid) }, @@ -554,6 +608,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveUser(ev, ev.Exec.Process) }, @@ -563,6 +618,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.user_sid": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exec.Process.OwnerSidString }, @@ -572,6 +628,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.cause": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exit.Cause) }, @@ -582,6 +639,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessCmdLine(ev, ev.Exit.Process) }, @@ -591,6 +649,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.code": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exit.Code) }, @@ -600,6 +659,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.container.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exit.Process.ContainerID }, @@ -609,6 +669,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.created_at": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveProcessCreatedAt(ev, ev.Exit.Process)) }, @@ -618,6 +679,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.envp": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvp(ev, ev.Exit.Process) }, @@ -627,6 +689,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.envs": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvs(ev, ev.Exit.Process) }, @@ -637,6 +700,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileBasename(ev, &ev.Exit.Process.FileEvent) }, @@ -647,6 +711,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.Exit.Process.FileEvent)) }, @@ -657,6 +722,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFilePath(ev, &ev.Exit.Process.FileEvent) }, @@ -667,6 +733,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.Exit.Process.FileEvent)) }, @@ -676,6 +743,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.pid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exit.Process.PIDContext.Pid) }, @@ -685,6 +753,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.ppid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exit.Process.PPid) }, @@ -694,6 +763,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveUser(ev, ev.Exit.Process) }, @@ -703,6 +773,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.user_sid": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exit.Process.OwnerSidString }, @@ -712,6 +783,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.registry.key_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.OpenRegistryKey.Registry.KeyName }, @@ -721,6 +793,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.registry.key_name.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.OpenRegistryKey.Registry.KeyName) }, @@ -731,6 +804,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.OpenRegistryKey.Registry.KeyPath }, @@ -741,6 +815,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.OpenRegistryKey.Registry.KeyPath) }, @@ -750,6 +825,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open_key.registry.key_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.OpenRegistryKey.Registry.KeyName }, @@ -759,6 +835,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open_key.registry.key_name.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.OpenRegistryKey.Registry.KeyName) }, @@ -769,6 +846,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.OpenRegistryKey.Registry.KeyPath }, @@ -779,6 +857,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.OpenRegistryKey.Registry.KeyPath) }, @@ -789,6 +868,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringArrayEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -816,6 +896,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.container.id": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -842,6 +923,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.created_at": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -869,6 +951,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.envp": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -896,6 +979,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.envs": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -924,6 +1008,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringArrayEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -952,6 +1037,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntArrayEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -980,6 +1066,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringArrayEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -1008,6 +1095,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntArrayEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -1035,6 +1123,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) iterator := &ProcessAncestorsIterator{} return iterator.Len(ctx) }, @@ -1044,6 +1133,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.pid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -1070,6 +1160,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.ppid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -1096,6 +1187,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.user": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -1123,6 +1215,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.user_sid": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -1150,6 +1243,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessCmdLine(ev, &ev.BaseEvent.ProcessContext.Process) }, @@ -1159,6 +1253,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.container.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.BaseEvent.ProcessContext.Process.ContainerID }, @@ -1168,6 +1263,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.created_at": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveProcessCreatedAt(ev, &ev.BaseEvent.ProcessContext.Process)) }, @@ -1177,6 +1273,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.envp": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvp(ev, &ev.BaseEvent.ProcessContext.Process) }, @@ -1186,6 +1283,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.envs": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvs(ev, &ev.BaseEvent.ProcessContext.Process) }, @@ -1196,6 +1294,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileBasename(ev, &ev.BaseEvent.ProcessContext.Process.FileEvent) }, @@ -1206,6 +1305,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.BaseEvent.ProcessContext.Process.FileEvent)) }, @@ -1216,6 +1316,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFilePath(ev, &ev.BaseEvent.ProcessContext.Process.FileEvent) }, @@ -1226,6 +1327,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.BaseEvent.ProcessContext.Process.FileEvent)) }, @@ -1236,6 +1338,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -1248,6 +1351,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.container.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -1260,6 +1364,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.created_at": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -1272,6 +1377,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.envp": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return []string{} @@ -1284,6 +1390,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.envs": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return []string{} @@ -1297,6 +1404,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -1310,6 +1418,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.BaseEvent.ProcessContext.Parent.FileEvent)) }, @@ -1320,6 +1429,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -1333,6 +1443,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.BaseEvent.ProcessContext.Parent.FileEvent)) }, @@ -1342,6 +1453,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.pid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -1354,6 +1466,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.ppid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -1366,6 +1479,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -1378,6 +1492,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.user_sid": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -1390,6 +1505,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.pid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.BaseEvent.ProcessContext.Process.PIDContext.Pid) }, @@ -1399,6 +1515,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ppid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.BaseEvent.ProcessContext.Process.PPid) }, @@ -1408,6 +1525,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveUser(ev, &ev.BaseEvent.ProcessContext.Process) }, @@ -1417,6 +1535,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.user_sid": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.BaseEvent.ProcessContext.Process.OwnerSidString }, @@ -1427,6 +1546,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFimFilePath(ev, &ev.RenameFile.New) }, @@ -1437,6 +1557,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFimFilePath(ev, &ev.RenameFile.New)) }, @@ -1447,6 +1568,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFimFileBasename(ev, &ev.RenameFile.New) }, @@ -1457,6 +1579,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFimFileBasename(ev, &ev.RenameFile.New)) }, @@ -1467,6 +1590,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileUserPath(ev, &ev.RenameFile.New) }, @@ -1477,6 +1601,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileUserPath(ev, &ev.RenameFile.New)) }, @@ -1487,6 +1612,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFimFilePath(ev, &ev.RenameFile.Old) }, @@ -1497,6 +1623,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFimFilePath(ev, &ev.RenameFile.Old)) }, @@ -1507,6 +1634,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFimFileBasename(ev, &ev.RenameFile.Old) }, @@ -1517,6 +1645,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFimFileBasename(ev, &ev.RenameFile.Old)) }, @@ -1527,6 +1656,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileUserPath(ev, &ev.RenameFile.Old) }, @@ -1537,6 +1667,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileUserPath(ev, &ev.RenameFile.Old)) }, @@ -1546,6 +1677,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "set.registry.key_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.SetRegistryKeyValue.Registry.KeyName }, @@ -1555,6 +1687,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "set.registry.key_name.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.SetRegistryKeyValue.Registry.KeyName) }, @@ -1565,6 +1698,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.SetRegistryKeyValue.Registry.KeyPath }, @@ -1575,6 +1709,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.SetRegistryKeyValue.Registry.KeyPath) }, @@ -1584,6 +1719,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "set.registry.value_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.SetRegistryKeyValue.ValueName }, @@ -1593,6 +1729,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "set.registry.value_name.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.SetRegistryKeyValue.ValueName) }, @@ -1602,6 +1739,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "set.value_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.SetRegistryKeyValue.ValueName }, @@ -1611,6 +1749,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "set_key_value.registry.key_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.SetRegistryKeyValue.Registry.KeyName }, @@ -1620,6 +1759,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "set_key_value.registry.key_name.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.SetRegistryKeyValue.Registry.KeyName) }, @@ -1630,6 +1770,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.SetRegistryKeyValue.Registry.KeyPath }, @@ -1640,6 +1781,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.SetRegistryKeyValue.Registry.KeyPath) }, @@ -1649,6 +1791,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "set_key_value.registry.value_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.SetRegistryKeyValue.ValueName }, @@ -1658,6 +1801,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "set_key_value.registry.value_name.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.SetRegistryKeyValue.ValueName) }, @@ -1667,6 +1811,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "set_key_value.value_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.SetRegistryKeyValue.ValueName }, @@ -1677,6 +1822,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFimFilePath(ev, &ev.WriteFile.File) }, @@ -1687,6 +1833,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFimFilePath(ev, &ev.WriteFile.File)) }, @@ -1697,6 +1844,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFimFileBasename(ev, &ev.WriteFile.File) }, @@ -1707,6 +1855,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFimFileBasename(ev, &ev.WriteFile.File)) }, @@ -1717,6 +1866,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileUserPath(ev, &ev.WriteFile.File) }, @@ -1727,6 +1877,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileUserPath(ev, &ev.WriteFile.File)) }, diff --git a/pkg/security/secl/rules/collected_events_functests.go b/pkg/security/secl/rules/collected_events_functests.go index eda8cfdb28948..25754a4c574c6 100644 --- a/pkg/security/secl/rules/collected_events_functests.go +++ b/pkg/security/secl/rules/collected_events_functests.go @@ -10,19 +10,18 @@ package rules import ( "errors" + "slices" "sync" "github.com/DataDog/datadog-agent/pkg/security/secl/compiler/eval" ) -const maxFieldWeight = 999 - type EventCollector struct { sync.Mutex eventsCollected []CollectedEvent } -func (ec *EventCollector) CollectEvent(rs *RuleSet, event eval.Event, result bool) { +func (ec *EventCollector) CollectEvent(rs *RuleSet, ctx *eval.Context, event eval.Event, result bool) { ec.Lock() defer ec.Unlock() var fieldNotSupportedError *eval.ErrNotSupported @@ -34,7 +33,14 @@ func (ec *EventCollector) CollectEvent(rs *RuleSet, event eval.Event, result boo Fields: make(map[string]interface{}, len(rs.fields)), } + resolvedFields := ctx.GetResolvedFields() + for _, field := range rs.fields { + // skip fields that have not been resolved + if !slices.Contains(resolvedFields, field) { + continue + } + fieldEventType, err := event.GetFieldEventType(field) if err != nil { rs.logger.Errorf("failed to get event type for field %s: %v", field, err) @@ -44,14 +50,6 @@ func (ec *EventCollector) CollectEvent(rs *RuleSet, event eval.Event, result boo continue } - // for non-matching events, we want to avoid resolving costly fields (e.g. file hashes) - // to avoid impacting events that should be matching - if !result { - if evaluator, err := rs.model.GetEvaluator(field, ""); err == nil && evaluator.GetWeight() > maxFieldWeight { - continue - } - } - value, err := event.GetFieldValue(field) if err != nil { // GetFieldValue returns the default type value with ErrNotSupported in case the field Check test fails diff --git a/pkg/security/secl/rules/collected_events_regular.go b/pkg/security/secl/rules/collected_events_regular.go index bbac542fe9479..dc9b42defeadd 100644 --- a/pkg/security/secl/rules/collected_events_regular.go +++ b/pkg/security/secl/rules/collected_events_regular.go @@ -15,7 +15,7 @@ type EventCollector struct { } // CollectEvent collects event -func (ec *EventCollector) CollectEvent(_ *RuleSet, _ eval.Event, _ bool) { +func (ec *EventCollector) CollectEvent(_ *RuleSet, _ *eval.Context, _ eval.Event, _ bool) { // no-op } diff --git a/pkg/security/secl/rules/ruleset.go b/pkg/security/secl/rules/ruleset.go index 2e34abf5d0aa3..90be57e0b71a9 100644 --- a/pkg/security/secl/rules/ruleset.go +++ b/pkg/security/secl/rules/ruleset.go @@ -603,7 +603,7 @@ func (rs *RuleSet) Evaluate(event eval.Event) bool { // no-op in the general case, only used to collect events in functional tests // for debugging purposes - rs.eventCollector.CollectEvent(rs, event, result) + rs.eventCollector.CollectEvent(rs, ctx, event, result) return result } diff --git a/pkg/security/seclwin/model/accessors_win.go b/pkg/security/seclwin/model/accessors_win.go index 4b14373018f29..d7f989e58bd93 100644 --- a/pkg/security/seclwin/model/accessors_win.go +++ b/pkg/security/seclwin/model/accessors_win.go @@ -41,6 +41,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "change_permission.new_sd": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveNewSecurityDescriptor(ev, &ev.ChangePermission) }, @@ -50,6 +51,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "change_permission.old_sd": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveOldSecurityDescriptor(ev, &ev.ChangePermission) }, @@ -59,6 +61,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "change_permission.path": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.ChangePermission.ObjectName }, @@ -68,6 +71,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "change_permission.type": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.ChangePermission.ObjectType }, @@ -77,6 +81,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "change_permission.user_domain": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.ChangePermission.UserDomain }, @@ -86,6 +91,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "change_permission.username": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.ChangePermission.UserName }, @@ -95,6 +101,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "container.created_at": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveContainerCreatedAt(ev, ev.BaseEvent.ContainerContext)) }, @@ -104,6 +111,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "container.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveContainerID(ev, ev.BaseEvent.ContainerContext) }, @@ -113,6 +121,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "container.runtime": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveContainerRuntime(ev, ev.BaseEvent.ContainerContext) }, @@ -122,6 +131,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "container.tags": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveContainerTags(ev, ev.BaseEvent.ContainerContext) }, @@ -132,6 +142,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFimFilePath(ev, &ev.CreateNewFile.File) }, @@ -142,6 +153,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFimFilePath(ev, &ev.CreateNewFile.File)) }, @@ -152,6 +164,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFimFileBasename(ev, &ev.CreateNewFile.File) }, @@ -162,6 +175,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFimFileBasename(ev, &ev.CreateNewFile.File)) }, @@ -172,6 +186,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileUserPath(ev, &ev.CreateNewFile.File) }, @@ -182,6 +197,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileUserPath(ev, &ev.CreateNewFile.File)) }, @@ -191,6 +207,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "create.registry.key_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.CreateRegistryKey.Registry.KeyName }, @@ -200,6 +217,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "create.registry.key_name.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.CreateRegistryKey.Registry.KeyName) }, @@ -210,6 +228,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.CreateRegistryKey.Registry.KeyPath }, @@ -220,6 +239,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.CreateRegistryKey.Registry.KeyPath) }, @@ -229,6 +249,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "create_key.registry.key_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.CreateRegistryKey.Registry.KeyName }, @@ -238,6 +259,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "create_key.registry.key_name.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.CreateRegistryKey.Registry.KeyName) }, @@ -248,6 +270,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.CreateRegistryKey.Registry.KeyPath }, @@ -258,6 +281,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.CreateRegistryKey.Registry.KeyPath) }, @@ -268,6 +292,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFimFilePath(ev, &ev.DeleteFile.File) }, @@ -278,6 +303,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFimFilePath(ev, &ev.DeleteFile.File)) }, @@ -288,6 +314,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFimFileBasename(ev, &ev.DeleteFile.File) }, @@ -298,6 +325,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFimFileBasename(ev, &ev.DeleteFile.File)) }, @@ -308,6 +336,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileUserPath(ev, &ev.DeleteFile.File) }, @@ -318,6 +347,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileUserPath(ev, &ev.DeleteFile.File)) }, @@ -327,6 +357,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "delete.registry.key_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.DeleteRegistryKey.Registry.KeyName }, @@ -336,6 +367,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "delete.registry.key_name.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.DeleteRegistryKey.Registry.KeyName) }, @@ -346,6 +378,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.DeleteRegistryKey.Registry.KeyPath }, @@ -356,6 +389,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.DeleteRegistryKey.Registry.KeyPath) }, @@ -365,6 +399,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "delete_key.registry.key_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.DeleteRegistryKey.Registry.KeyName }, @@ -374,6 +409,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "delete_key.registry.key_name.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.DeleteRegistryKey.Registry.KeyName) }, @@ -384,6 +420,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.DeleteRegistryKey.Registry.KeyPath }, @@ -394,6 +431,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.DeleteRegistryKey.Registry.KeyPath) }, @@ -403,6 +441,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "event.hostname": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveHostname(ev, &ev.BaseEvent) }, @@ -412,6 +451,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "event.origin": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.BaseEvent.Origin }, @@ -421,6 +461,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "event.os": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.BaseEvent.Os }, @@ -430,6 +471,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "event.service": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveService(ev, &ev.BaseEvent) }, @@ -439,6 +481,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "event.timestamp": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveEventTimestamp(ev, &ev.BaseEvent)) }, @@ -449,6 +492,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessCmdLine(ev, ev.Exec.Process) }, @@ -458,6 +502,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.container.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exec.Process.ContainerID }, @@ -467,6 +512,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.created_at": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveProcessCreatedAt(ev, ev.Exec.Process)) }, @@ -476,6 +522,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.envp": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvp(ev, ev.Exec.Process) }, @@ -485,6 +532,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.envs": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvs(ev, ev.Exec.Process) }, @@ -495,6 +543,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileBasename(ev, &ev.Exec.Process.FileEvent) }, @@ -505,6 +554,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.Exec.Process.FileEvent)) }, @@ -515,6 +565,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFilePath(ev, &ev.Exec.Process.FileEvent) }, @@ -525,6 +576,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.Exec.Process.FileEvent)) }, @@ -534,6 +586,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.pid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exec.Process.PIDContext.Pid) }, @@ -543,6 +596,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.ppid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exec.Process.PPid) }, @@ -552,6 +606,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveUser(ev, ev.Exec.Process) }, @@ -561,6 +616,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exec.user_sid": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exec.Process.OwnerSidString }, @@ -570,6 +626,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.cause": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exit.Cause) }, @@ -580,6 +637,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessCmdLine(ev, ev.Exit.Process) }, @@ -589,6 +647,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.code": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exit.Code) }, @@ -598,6 +657,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.container.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exit.Process.ContainerID }, @@ -607,6 +667,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.created_at": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveProcessCreatedAt(ev, ev.Exit.Process)) }, @@ -616,6 +677,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.envp": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvp(ev, ev.Exit.Process) }, @@ -625,6 +687,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.envs": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvs(ev, ev.Exit.Process) }, @@ -635,6 +698,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileBasename(ev, &ev.Exit.Process.FileEvent) }, @@ -645,6 +709,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.Exit.Process.FileEvent)) }, @@ -655,6 +720,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFilePath(ev, &ev.Exit.Process.FileEvent) }, @@ -665,6 +731,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.Exit.Process.FileEvent)) }, @@ -674,6 +741,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.pid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exit.Process.PIDContext.Pid) }, @@ -683,6 +751,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.ppid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.Exit.Process.PPid) }, @@ -692,6 +761,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveUser(ev, ev.Exit.Process) }, @@ -701,6 +771,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "exit.user_sid": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.Exit.Process.OwnerSidString }, @@ -710,6 +781,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.registry.key_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.OpenRegistryKey.Registry.KeyName }, @@ -719,6 +791,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open.registry.key_name.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.OpenRegistryKey.Registry.KeyName) }, @@ -729,6 +802,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.OpenRegistryKey.Registry.KeyPath }, @@ -739,6 +813,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.OpenRegistryKey.Registry.KeyPath) }, @@ -748,6 +823,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open_key.registry.key_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.OpenRegistryKey.Registry.KeyName }, @@ -757,6 +833,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "open_key.registry.key_name.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.OpenRegistryKey.Registry.KeyName) }, @@ -767,6 +844,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.OpenRegistryKey.Registry.KeyPath }, @@ -777,6 +855,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.OpenRegistryKey.Registry.KeyPath) }, @@ -787,6 +866,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringArrayEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -814,6 +894,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.container.id": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -840,6 +921,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.created_at": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -867,6 +949,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.envp": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -894,6 +977,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.envs": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -922,6 +1006,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringArrayEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -950,6 +1035,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntArrayEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -978,6 +1064,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringArrayEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -1006,6 +1093,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntArrayEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.IntCache[field]; ok { return result @@ -1033,6 +1121,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) iterator := &ProcessAncestorsIterator{} return iterator.Len(ctx) }, @@ -1042,6 +1131,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.pid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -1068,6 +1158,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.ppid": return &eval.IntArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) if result, ok := ctx.IntCache[field]; ok { return result } @@ -1094,6 +1185,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.user": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if result, ok := ctx.StringCache[field]; ok { return result @@ -1121,6 +1213,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ancestors.user_sid": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) if result, ok := ctx.StringCache[field]; ok { return result } @@ -1148,6 +1241,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessCmdLine(ev, &ev.BaseEvent.ProcessContext.Process) }, @@ -1157,6 +1251,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.container.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.BaseEvent.ProcessContext.Process.ContainerID }, @@ -1166,6 +1261,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.created_at": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.FieldHandlers.ResolveProcessCreatedAt(ev, &ev.BaseEvent.ProcessContext.Process)) }, @@ -1175,6 +1271,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.envp": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvp(ev, &ev.BaseEvent.ProcessContext.Process) }, @@ -1184,6 +1281,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.envs": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveProcessEnvs(ev, &ev.BaseEvent.ProcessContext.Process) }, @@ -1194,6 +1292,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileBasename(ev, &ev.BaseEvent.ProcessContext.Process.FileEvent) }, @@ -1204,6 +1303,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.BaseEvent.ProcessContext.Process.FileEvent)) }, @@ -1214,6 +1314,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFilePath(ev, &ev.BaseEvent.ProcessContext.Process.FileEvent) }, @@ -1224,6 +1325,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.BaseEvent.ProcessContext.Process.FileEvent)) }, @@ -1234,6 +1336,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -1246,6 +1349,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.container.id": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -1258,6 +1362,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.created_at": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -1270,6 +1375,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.envp": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return []string{} @@ -1282,6 +1388,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.envs": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return []string{} @@ -1295,6 +1402,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -1308,6 +1416,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileBasename(ev, &ev.BaseEvent.ProcessContext.Parent.FileEvent)) }, @@ -1318,6 +1427,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -1331,6 +1441,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFilePath(ev, &ev.BaseEvent.ProcessContext.Parent.FileEvent)) }, @@ -1340,6 +1451,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.pid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -1352,6 +1464,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.ppid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return 0 @@ -1364,6 +1477,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -1376,6 +1490,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.parent.user_sid": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) if !ev.BaseEvent.ProcessContext.HasParent() { return "" @@ -1388,6 +1503,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.pid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.BaseEvent.ProcessContext.Process.PIDContext.Pid) }, @@ -1397,6 +1513,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.ppid": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return int(ev.BaseEvent.ProcessContext.Process.PPid) }, @@ -1406,6 +1523,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.user": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveUser(ev, &ev.BaseEvent.ProcessContext.Process) }, @@ -1415,6 +1533,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "process.user_sid": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.BaseEvent.ProcessContext.Process.OwnerSidString }, @@ -1425,6 +1544,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFimFilePath(ev, &ev.RenameFile.New) }, @@ -1435,6 +1555,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFimFilePath(ev, &ev.RenameFile.New)) }, @@ -1445,6 +1566,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFimFileBasename(ev, &ev.RenameFile.New) }, @@ -1455,6 +1577,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFimFileBasename(ev, &ev.RenameFile.New)) }, @@ -1465,6 +1588,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileUserPath(ev, &ev.RenameFile.New) }, @@ -1475,6 +1599,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileUserPath(ev, &ev.RenameFile.New)) }, @@ -1485,6 +1610,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFimFilePath(ev, &ev.RenameFile.Old) }, @@ -1495,6 +1621,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFimFilePath(ev, &ev.RenameFile.Old)) }, @@ -1505,6 +1632,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFimFileBasename(ev, &ev.RenameFile.Old) }, @@ -1515,6 +1643,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFimFileBasename(ev, &ev.RenameFile.Old)) }, @@ -1525,6 +1654,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileUserPath(ev, &ev.RenameFile.Old) }, @@ -1535,6 +1665,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileUserPath(ev, &ev.RenameFile.Old)) }, @@ -1544,6 +1675,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "set.registry.key_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.SetRegistryKeyValue.Registry.KeyName }, @@ -1553,6 +1685,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "set.registry.key_name.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.SetRegistryKeyValue.Registry.KeyName) }, @@ -1563,6 +1696,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.SetRegistryKeyValue.Registry.KeyPath }, @@ -1573,6 +1707,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.SetRegistryKeyValue.Registry.KeyPath) }, @@ -1582,6 +1717,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "set.registry.value_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.SetRegistryKeyValue.ValueName }, @@ -1591,6 +1727,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "set.registry.value_name.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.SetRegistryKeyValue.ValueName) }, @@ -1600,6 +1737,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "set.value_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.SetRegistryKeyValue.ValueName }, @@ -1609,6 +1747,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "set_key_value.registry.key_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.SetRegistryKeyValue.Registry.KeyName }, @@ -1618,6 +1757,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "set_key_value.registry.key_name.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.SetRegistryKeyValue.Registry.KeyName) }, @@ -1628,6 +1768,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.SetRegistryKeyValue.Registry.KeyPath }, @@ -1638,6 +1779,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.SetRegistryKeyValue.Registry.KeyPath) }, @@ -1647,6 +1789,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "set_key_value.registry.value_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.SetRegistryKeyValue.ValueName }, @@ -1656,6 +1799,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "set_key_value.registry.value_name.length": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.SetRegistryKeyValue.ValueName) }, @@ -1665,6 +1809,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval case "set_key_value.value_name": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.SetRegistryKeyValue.ValueName }, @@ -1675,6 +1820,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFimFilePath(ev, &ev.WriteFile.File) }, @@ -1685,6 +1831,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFimFilePath(ev, &ev.WriteFile.File)) }, @@ -1695,6 +1842,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFimFileBasename(ev, &ev.WriteFile.File) }, @@ -1705,6 +1853,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.CaseInsensitiveCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFimFileBasename(ev, &ev.WriteFile.File)) }, @@ -1715,6 +1864,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.StringEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) string { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return ev.FieldHandlers.ResolveFileUserPath(ev, &ev.WriteFile.File) }, @@ -1725,6 +1875,7 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval return &eval.IntEvaluator{ OpOverrides: eval.WindowsPathCmp, EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) ev := ctx.Event.(*Event) return len(ev.FieldHandlers.ResolveFileUserPath(ev, &ev.WriteFile.File)) }, From 1b84417a6e57871e1c328915f886fe4583682e7c Mon Sep 17 00:00:00 2001 From: Sylvain Afchain Date: Fri, 29 Nov 2024 13:20:18 +0100 Subject: [PATCH 160/439] [CWS] do not report imds error response (#31598) --- pkg/security/probe/probe_ebpf.go | 11 ++++++++--- pkg/security/secl/model/errors.go | 3 +++ pkg/security/secl/model/unmarshallers_linux.go | 4 ++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go index 84d38e34619e9..333a055c20052 100644 --- a/pkg/security/probe/probe_ebpf.go +++ b/pkg/security/probe/probe_ebpf.go @@ -1143,6 +1143,7 @@ func (p *EBPFProbe) handleEvent(CPU int, data []byte) { case model.UnloadModuleEventType: if _, err = event.UnloadModule.UnmarshalBinary(data[offset:]); err != nil { seclog.Errorf("failed to decode unload_module event: %s (offset %d, len %d)", err, offset, len(data)) + return } case model.SignalEventType: if _, err = event.Signal.UnmarshalBinary(data[offset:]); err != nil { @@ -1178,6 +1179,7 @@ func (p *EBPFProbe) handleEvent(CPU int, data []byte) { case model.DNSEventType: if read, err = event.NetworkContext.UnmarshalBinary(data[offset:]); err != nil { seclog.Errorf("failed to decode Network Context") + return } offset += read @@ -1195,12 +1197,15 @@ func (p *EBPFProbe) handleEvent(CPU int, data []byte) { case model.IMDSEventType: if read, err = event.NetworkContext.UnmarshalBinary(data[offset:]); err != nil { seclog.Errorf("failed to decode Network Context") + return } offset += read if _, err = event.IMDS.UnmarshalBinary(data[offset:]); err != nil { - // it's very possible we can't parse the IMDS body, as such let's put it as debug for now - seclog.Debugf("failed to decode IMDS event: %s (offset %d, len %d)", err, offset, len(data)) + if err != model.ErrNoUsefulData { + // it's very possible we can't parse the IMDS body, as such let's put it as debug for now + seclog.Debugf("failed to decode IMDS event: %s (offset %d, len %d)", err, offset, len(data)) + } return } defer p.Resolvers.ProcessResolver.UpdateAWSSecurityCredentials(event.PIDContext.Pid, event) @@ -1410,7 +1415,7 @@ func (p *EBPFProbe) validEventTypeForConfig(eventType string) bool { case "dns": return p.probe.IsNetworkEnabled() case "imds": - return p.probe.IsNetworkEnabled() && p.config.Probe.NetworkIngressEnabled + return p.probe.IsNetworkEnabled() case "packet": return p.probe.IsNetworkRawPacketEnabled() } diff --git a/pkg/security/secl/model/errors.go b/pkg/security/secl/model/errors.go index 5cba794e1b3f2..e1d664117c930 100644 --- a/pkg/security/secl/model/errors.go +++ b/pkg/security/secl/model/errors.go @@ -26,6 +26,9 @@ var ( // ErrIncorrectDataSize is returned when the data read size doesn't correspond to the expected one ErrIncorrectDataSize = errors.New("incorrect data size") + + // ErrNoUsefulData returned when there is no useful data + ErrNoUsefulData = errors.New("no useful data") ) // ErrInvalidKeyPath is returned when inode or mountid are not valid diff --git a/pkg/security/secl/model/unmarshallers_linux.go b/pkg/security/secl/model/unmarshallers_linux.go index f198adf0bba84..d6bdfb32fa825 100644 --- a/pkg/security/secl/model/unmarshallers_linux.go +++ b/pkg/security/secl/model/unmarshallers_linux.go @@ -1122,6 +1122,10 @@ func (e *IMDSEvent) UnmarshalBinary(data []byte) (int, error) { } e.fillFromIMDSHeader(resp.Header, "") + if resp.StatusCode != http.StatusOK { + return len(data), ErrNoUsefulData + } + // try to parse cloud provider specific data if e.CloudProvider == IMDSAWSCloudProvider { b := new(bytes.Buffer) From 3765564e824e2fd1e11cd8ac2180aa8810245c16 Mon Sep 17 00:00:00 2001 From: Sylvain Baubeau Date: Fri, 29 Nov 2024 13:46:25 +0100 Subject: [PATCH 161/439] [CWS] Use containerutils.ContainerID in cgroup resolver (#31586) --- pkg/security/probe/custom_events.go | 2 +- pkg/security/probe/field_handlers_ebpf.go | 4 ++-- pkg/security/probe/probe_ebpf.go | 8 ++++---- pkg/security/probe/probe_ebpfless.go | 6 +++--- pkg/security/proto/ebpfless/msg.go | 5 +++-- pkg/security/ptracer/container_context.go | 7 ++++--- pkg/security/ptracer/cws.go | 3 ++- pkg/security/ptracer/utils.go | 6 +++--- pkg/security/resolvers/cgroup/model/model.go | 6 +++--- pkg/security/resolvers/cgroup/resolver.go | 17 +++++++++-------- pkg/security/resolvers/hash/resolver_linux.go | 2 +- pkg/security/resolvers/mount/resolver.go | 4 ++-- pkg/security/resolvers/process/resolver_ebpf.go | 2 +- .../resolvers/process/resolver_ebpfless.go | 6 +++--- .../resolvers/usergroup/resolver_linux.go | 2 +- pkg/security/secl/containerutils/cgroup.go | 8 ++++---- pkg/security/secl/containerutils/helpers.go | 6 +++--- .../secl/containerutils/helpers_test.go | 2 +- 18 files changed, 50 insertions(+), 46 deletions(-) diff --git a/pkg/security/probe/custom_events.go b/pkg/security/probe/custom_events.go index b31d4ae688917..88ce01daa3c2d 100644 --- a/pkg/security/probe/custom_events.go +++ b/pkg/security/probe/custom_events.go @@ -84,7 +84,7 @@ func NewEBPFLessHelloMsgEvent(acc *events.AgentContainerContext, msg *ebpfless.H evt := EBPFLessHelloMsgEvent{ NSID: msg.NSID, } - evt.Container.ID = msg.ContainerContext.ID + evt.Container.ID = string(msg.ContainerContext.ID) if tagger != nil { tags, err := tags.GetTagsOfContainer(tagger, containerutils.ContainerID(msg.ContainerContext.ID)) diff --git a/pkg/security/probe/field_handlers_ebpf.go b/pkg/security/probe/field_handlers_ebpf.go index 2f643304e1529..fad69cf7bbfd2 100644 --- a/pkg/security/probe/field_handlers_ebpf.go +++ b/pkg/security/probe/field_handlers_ebpf.go @@ -190,7 +190,7 @@ func (fh *EBPFFieldHandlers) ResolveMountRootPath(ev *model.Event, e *model.Moun // ResolveContainerContext queries the cgroup resolver to retrieve the ContainerContext of the event func (fh *EBPFFieldHandlers) ResolveContainerContext(ev *model.Event) (*model.ContainerContext, bool) { if ev.ContainerContext.ContainerID != "" && !ev.ContainerContext.Resolved { - if containerContext, _ := fh.resolvers.CGroupResolver.GetWorkload(string(ev.ContainerContext.ContainerID)); containerContext != nil { + if containerContext, _ := fh.resolvers.CGroupResolver.GetWorkload(ev.ContainerContext.ContainerID); containerContext != nil { if containerContext.CGroupFlags.IsContainer() { ev.ContainerContext = &containerContext.ContainerContext } @@ -525,7 +525,7 @@ func (fh *EBPFFieldHandlers) ResolveCGroupID(ev *model.Event, e *model.CGroupCon entry.Process.CGroup.CGroupID = containerutils.CGroupID(cgroup) entry.CGroup.CGroupID = containerutils.CGroupID(cgroup) - containerID, _ := containerutils.GetContainerFromCgroup(string(entry.CGroup.CGroupID)) + containerID, _ := containerutils.GetContainerFromCgroup(entry.CGroup.CGroupID) entry.Process.ContainerID = containerutils.ContainerID(containerID) entry.ContainerID = containerutils.ContainerID(containerID) } else { diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go index 333a055c20052..f5135589812ba 100644 --- a/pkg/security/probe/probe_ebpf.go +++ b/pkg/security/probe/probe_ebpf.go @@ -810,12 +810,12 @@ func (p *EBPFProbe) handleEvent(CPU int, data []byte) { if pce != nil { path, err := p.Resolvers.DentryResolver.Resolve(event.CgroupWrite.File.PathKey, true) if err == nil && path != "" { - path = filepath.Dir(string(path)) - pce.CGroup.CGroupID = containerutils.CGroupID(path) - pce.Process.CGroup.CGroupID = containerutils.CGroupID(path) + cgroupID := containerutils.CGroupID(filepath.Dir(string(path))) + pce.CGroup.CGroupID = cgroupID + pce.Process.CGroup.CGroupID = cgroupID cgroupFlags := containerutils.CGroupFlags(event.CgroupWrite.CGroupFlags) if cgroupFlags.IsContainer() { - containerID, _ := containerutils.GetContainerFromCgroup(path) + containerID, _ := containerutils.GetContainerFromCgroup(cgroupID) pce.ContainerID = containerutils.ContainerID(containerID) pce.Process.ContainerID = containerutils.ContainerID(containerID) } diff --git a/pkg/security/probe/probe_ebpfless.go b/pkg/security/probe/probe_ebpfless.go index c7bfb2456e480..040af49fd827a 100644 --- a/pkg/security/probe/probe_ebpfless.go +++ b/pkg/security/probe/probe_ebpfless.go @@ -48,7 +48,7 @@ type client struct { conn net.Conn probe *EBPFLessProbe nsID uint64 - containerID string + containerID containerutils.ContainerID containerName string } @@ -62,7 +62,7 @@ type EBPFLessProbe struct { sync.Mutex Resolvers *resolvers.EBPFLessResolvers - containerContexts map[string]*ebpfless.ContainerContext + containerContexts map[containerutils.ContainerID]*ebpfless.ContainerContext // Constants and configuration opts Opts @@ -675,7 +675,7 @@ func NewEBPFLessProbe(probe *Probe, config *config.Config, opts Opts) (*EBPFLess cancelFnc: cancelFnc, clients: make(map[net.Conn]*client), processKiller: processKiller, - containerContexts: make(map[string]*ebpfless.ContainerContext), + containerContexts: make(map[containerutils.ContainerID]*ebpfless.ContainerContext), } resolversOpts := resolvers.Opts{ diff --git a/pkg/security/proto/ebpfless/msg.go b/pkg/security/proto/ebpfless/msg.go index 7ca6d7a8d5888..e8210ce48de67 100644 --- a/pkg/security/proto/ebpfless/msg.go +++ b/pkg/security/proto/ebpfless/msg.go @@ -9,6 +9,7 @@ package ebpfless import ( "encoding/json" + "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" "github.com/DataDog/datadog-agent/pkg/security/secl/model" "modernc.org/mathutil" ) @@ -93,7 +94,7 @@ const ( // ContainerContext defines a container context type ContainerContext struct { - ID string + ID containerutils.ContainerID CreatedAt uint64 } @@ -303,7 +304,7 @@ type SyscallMsg struct { SpanContext *SpanContext `json:",omitempty"` Timestamp uint64 Retval int64 - ContainerID string + ContainerID containerutils.ContainerID Exec *ExecSyscallMsg `json:",omitempty"` Open *OpenSyscallMsg `json:",omitempty"` Fork *ForkSyscallMsg `json:",omitempty"` diff --git a/pkg/security/ptracer/container_context.go b/pkg/security/ptracer/container_context.go index 27af2e24ef269..76748eb8540dd 100644 --- a/pkg/security/ptracer/container_context.go +++ b/pkg/security/ptracer/container_context.go @@ -13,6 +13,7 @@ import ( "time" "github.com/DataDog/datadog-agent/pkg/security/proto/ebpfless" + "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" ) // ECSMetadata defines ECS metadata @@ -37,11 +38,11 @@ func retrieveECSMetadata(url string) (*ECSMetadata, error) { func retrieveEnvMetadata(ctx *ebpfless.ContainerContext) { if id := os.Getenv("DD_CONTAINER_ID"); id != "" { - ctx.ID = id + ctx.ID = containerutils.ContainerID(id) } } -func newContainerContext(containerID string) (*ebpfless.ContainerContext, error) { +func newContainerContext(containerID containerutils.ContainerID) (*ebpfless.ContainerContext, error) { ctx := &ebpfless.ContainerContext{ ID: containerID, } @@ -54,7 +55,7 @@ func newContainerContext(containerID string) (*ebpfless.ContainerContext, error) if data != nil { if data.DockerID != "" && ctx.ID == "" { // only set the container ID if we previously failed to retrieve it from proc - ctx.ID = data.DockerID + ctx.ID = containerutils.ContainerID(data.DockerID) } } } diff --git a/pkg/security/ptracer/cws.go b/pkg/security/ptracer/cws.go index 828229fffe990..2082190ddf400 100644 --- a/pkg/security/ptracer/cws.go +++ b/pkg/security/ptracer/cws.go @@ -25,6 +25,7 @@ import ( "github.com/vmihailenco/msgpack/v5" "github.com/DataDog/datadog-agent/pkg/security/proto/ebpfless" + "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" ) const ( @@ -66,7 +67,7 @@ type CWSPtracerCtx struct { wg sync.WaitGroup cancel context.Context cancelFnc context.CancelFunc - containerID string + containerID containerutils.ContainerID probeAddr string client net.Conn clientReady chan bool diff --git a/pkg/security/ptracer/utils.go b/pkg/security/ptracer/utils.go index 7edfc091c612b..3b1b92eab4e38 100644 --- a/pkg/security/ptracer/utils.go +++ b/pkg/security/ptracer/utils.go @@ -74,7 +74,7 @@ func getProcControlGroupsFromFile(path string) ([]controlGroup, error) { } -func getContainerIDFromProcFS(cgroupPath string) (string, error) { +func getContainerIDFromProcFS(cgroupPath string) (containerutils.ContainerID, error) { cgroups, err := getProcControlGroupsFromFile(cgroupPath) if err != nil { return "", err @@ -88,11 +88,11 @@ func getContainerIDFromProcFS(cgroupPath string) (string, error) { return "", nil } -func getCurrentProcContainerID() (string, error) { +func getCurrentProcContainerID() (containerutils.ContainerID, error) { return getContainerIDFromProcFS("/proc/self/cgroup") } -func getProcContainerID(pid int) (string, error) { +func getProcContainerID(pid int) (containerutils.ContainerID, error) { return getContainerIDFromProcFS(fmt.Sprintf("/proc/%d/cgroup", pid)) } diff --git a/pkg/security/resolvers/cgroup/model/model.go b/pkg/security/resolvers/cgroup/model/model.go index 8abaf74cd47bb..1990c8511e033 100644 --- a/pkg/security/resolvers/cgroup/model/model.go +++ b/pkg/security/resolvers/cgroup/model/model.go @@ -29,15 +29,15 @@ type CacheEntry struct { } // NewCacheEntry returns a new instance of a CacheEntry -func NewCacheEntry(containerID string, cgroupFlags uint64, pids ...uint32) (*CacheEntry, error) { +func NewCacheEntry(containerID containerutils.ContainerID, cgroupFlags uint64, pids ...uint32) (*CacheEntry, error) { newCGroup := CacheEntry{ Deleted: atomic.NewBool(false), CGroupContext: model.CGroupContext{ - CGroupID: containerutils.GetCgroupFromContainer(containerutils.ContainerID(containerID), containerutils.CGroupFlags(cgroupFlags)), + CGroupID: containerutils.GetCgroupFromContainer(containerID, containerutils.CGroupFlags(cgroupFlags)), CGroupFlags: containerutils.CGroupFlags(cgroupFlags), }, ContainerContext: model.ContainerContext{ - ContainerID: containerutils.ContainerID(containerID), + ContainerID: containerID, }, PIDs: make(map[uint32]bool, 10), } diff --git a/pkg/security/resolvers/cgroup/resolver.go b/pkg/security/resolvers/cgroup/resolver.go index 28a85576fee8a..0e7b7b07b1cd2 100644 --- a/pkg/security/resolvers/cgroup/resolver.go +++ b/pkg/security/resolvers/cgroup/resolver.go @@ -15,6 +15,7 @@ import ( "github.com/hashicorp/golang-lru/v2/simplelru" cgroupModel "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup/model" + "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" "github.com/DataDog/datadog-agent/pkg/security/secl/model" "github.com/DataDog/datadog-agent/pkg/security/seclog" "github.com/DataDog/datadog-agent/pkg/security/utils" @@ -47,7 +48,7 @@ type ResolverInterface interface { type Resolver struct { *utils.Notifier[Event, *cgroupModel.CacheEntry] sync.RWMutex - workloads *simplelru.LRU[string, *cgroupModel.CacheEntry] + workloads *simplelru.LRU[containerutils.ContainerID, *cgroupModel.CacheEntry] } // NewResolver returns a new cgroups monitor @@ -55,7 +56,7 @@ func NewResolver() (*Resolver, error) { cr := &Resolver{ Notifier: utils.NewNotifier[Event, *cgroupModel.CacheEntry](), } - workloads, err := simplelru.NewLRU(1024, func(_ string, value *cgroupModel.CacheEntry) { + workloads, err := simplelru.NewLRU(1024, func(_ containerutils.ContainerID, value *cgroupModel.CacheEntry) { value.CallReleaseCallback() value.Deleted.Store(true) @@ -77,7 +78,7 @@ func (cr *Resolver) AddPID(process *model.ProcessCacheEntry) { cr.Lock() defer cr.Unlock() - entry, exists := cr.workloads.Get(string(process.ContainerID)) + entry, exists := cr.workloads.Get(process.ContainerID) if exists { entry.AddPID(process.Pid) return @@ -85,7 +86,7 @@ func (cr *Resolver) AddPID(process *model.ProcessCacheEntry) { var err error // create new entry now - newCGroup, err := cgroupModel.NewCacheEntry(string(process.ContainerID), uint64(process.CGroup.CGroupFlags), process.Pid) + newCGroup, err := cgroupModel.NewCacheEntry(process.ContainerID, uint64(process.CGroup.CGroupFlags), process.Pid) if err != nil { seclog.Errorf("couldn't create new cgroup_resolver cache entry: %v", err) return @@ -93,13 +94,13 @@ func (cr *Resolver) AddPID(process *model.ProcessCacheEntry) { newCGroup.CreatedAt = uint64(process.ProcessContext.ExecTime.UnixNano()) // add the new CGroup to the cache - cr.workloads.Add(string(process.ContainerID), newCGroup) + cr.workloads.Add(process.ContainerID, newCGroup) cr.NotifyListeners(CGroupCreated, newCGroup) } // GetWorkload returns the workload referenced by the provided ID -func (cr *Resolver) GetWorkload(id string) (*cgroupModel.CacheEntry, bool) { +func (cr *Resolver) GetWorkload(id containerutils.ContainerID) (*cgroupModel.CacheEntry, bool) { cr.RLock() defer cr.RUnlock() @@ -120,7 +121,7 @@ func (cr *Resolver) DelPID(pid uint32) { } // DelPIDWithID removes a PID from the cgroup cache entry referenced by the provided ID -func (cr *Resolver) DelPIDWithID(id string, pid uint32) { +func (cr *Resolver) DelPIDWithID(id containerutils.ContainerID, pid uint32) { cr.Lock() defer cr.Unlock() @@ -139,7 +140,7 @@ func (cr *Resolver) deleteWorkloadPID(pid uint32, workload *cgroupModel.CacheEnt // check if the workload should be deleted if len(workload.PIDs) <= 0 { - cr.workloads.Remove(string(workload.ContainerID)) + cr.workloads.Remove(workload.ContainerID) } } diff --git a/pkg/security/resolvers/hash/resolver_linux.go b/pkg/security/resolvers/hash/resolver_linux.go index df33bc537caea..5fdef9e8cb298 100644 --- a/pkg/security/resolvers/hash/resolver_linux.go +++ b/pkg/security/resolvers/hash/resolver_linux.go @@ -285,7 +285,7 @@ func (resolver *Resolver) HashFileEvent(eventType model.EventType, ctrID contain // add pid one for hash resolution outside of a container rootPIDs := []uint32{1, pid} if resolver.cgroupResolver != nil { - w, ok := resolver.cgroupResolver.GetWorkload(string(ctrID)) + w, ok := resolver.cgroupResolver.GetWorkload(ctrID) if ok { rootPIDs = w.GetPIDs() } diff --git a/pkg/security/resolvers/mount/resolver.go b/pkg/security/resolvers/mount/resolver.go index 9a112d818546e..2a0dbf7a52e2b 100644 --- a/pkg/security/resolvers/mount/resolver.go +++ b/pkg/security/resolvers/mount/resolver.go @@ -453,7 +453,7 @@ func (mr *Resolver) resolveMountPath(mountID uint32, device uint32, pid uint32, } // force a resolution here to make sure the LRU keeps doing its job and doesn't evict important entries - workload, _ := mr.cgroupsResolver.GetWorkload(string(containerID)) + workload, _ := mr.cgroupsResolver.GetWorkload(containerID) path, source, origin, err := mr.getMountPath(mountID, device, pid) if err == nil { @@ -494,7 +494,7 @@ func (mr *Resolver) resolveMount(mountID uint32, device uint32, pid uint32, cont } // force a resolution here to make sure the LRU keeps doing its job and doesn't evict important entries - workload, _ := mr.cgroupsResolver.GetWorkload(string(containerID)) + workload, _ := mr.cgroupsResolver.GetWorkload(containerID) mount, source, origin := mr.lookupMount(mountID, device, pid) if mount != nil { diff --git a/pkg/security/resolvers/process/resolver_ebpf.go b/pkg/security/resolvers/process/resolver_ebpf.go index 89aaac120ca4e..3d4b3d71f5c92 100644 --- a/pkg/security/resolvers/process/resolver_ebpf.go +++ b/pkg/security/resolvers/process/resolver_ebpf.go @@ -605,7 +605,7 @@ func (p *EBPFResolver) deleteEntry(pid uint32, exitTime time.Time) { } if p.cgroupResolver != nil { - p.cgroupResolver.DelPIDWithID(string(entry.ContainerID), entry.Pid) + p.cgroupResolver.DelPIDWithID(entry.ContainerID, entry.Pid) } entry.Exit(exitTime) diff --git a/pkg/security/resolvers/process/resolver_ebpfless.go b/pkg/security/resolvers/process/resolver_ebpfless.go index 474ba4dd66607..e77edbe749788 100644 --- a/pkg/security/resolvers/process/resolver_ebpfless.go +++ b/pkg/security/resolvers/process/resolver_ebpfless.go @@ -104,7 +104,7 @@ func (p *EBPFLessResolver) AddForkEntry(key CacheResolverKey, ppid uint32, ts ui // NewEntry returns a new entry func (p *EBPFLessResolver) NewEntry(key CacheResolverKey, ppid uint32, file string, argv []string, argsTruncated bool, - envs []string, envsTruncated bool, ctrID string, ts uint64, tty string, source uint64) *model.ProcessCacheEntry { + envs []string, envsTruncated bool, ctrID containerutils.ContainerID, ts uint64, tty string, source uint64) *model.ProcessCacheEntry { entry := p.processCacheEntryPool.Get() entry.PIDContext.Pid = key.Pid @@ -146,7 +146,7 @@ func (p *EBPFLessResolver) NewEntry(key CacheResolverKey, ppid uint32, file stri // AddExecEntry adds an entry to the local cache and returns the newly created entry func (p *EBPFLessResolver) AddExecEntry(key CacheResolverKey, ppid uint32, file string, argv []string, argsTruncated bool, - envs []string, envsTruncated bool, ctrID string, ts uint64, tty string) *model.ProcessCacheEntry { + envs []string, envsTruncated bool, ctrID containerutils.ContainerID, ts uint64, tty string) *model.ProcessCacheEntry { if key.Pid == 0 { return nil } @@ -163,7 +163,7 @@ func (p *EBPFLessResolver) AddExecEntry(key CacheResolverKey, ppid uint32, file // AddProcFSEntry add a procfs entry func (p *EBPFLessResolver) AddProcFSEntry(key CacheResolverKey, ppid uint32, file string, argv []string, argsTruncated bool, - envs []string, envsTruncated bool, ctrID string, ts uint64, tty string) *model.ProcessCacheEntry { + envs []string, envsTruncated bool, ctrID containerutils.ContainerID, ts uint64, tty string) *model.ProcessCacheEntry { if key.Pid == 0 { return nil } diff --git a/pkg/security/resolvers/usergroup/resolver_linux.go b/pkg/security/resolvers/usergroup/resolver_linux.go index 39d54b8b670ed..e8e4179ca7bb0 100644 --- a/pkg/security/resolvers/usergroup/resolver_linux.go +++ b/pkg/security/resolvers/usergroup/resolver_linux.go @@ -80,7 +80,7 @@ func (r *Resolver) getFilesystem(containerID containerutils.ContainerID) (fs.FS, var fsys fs.FS if containerID != "" { - cgroupEntry, found := r.cgroupResolver.GetWorkload(string(containerID)) + cgroupEntry, found := r.cgroupResolver.GetWorkload(containerID) if !found { return nil, fmt.Errorf("failed to resolve container %s", containerID) } diff --git a/pkg/security/secl/containerutils/cgroup.go b/pkg/security/secl/containerutils/cgroup.go index fe9c444a06f04..f6fc93b635f34 100644 --- a/pkg/security/secl/containerutils/cgroup.go +++ b/pkg/security/secl/containerutils/cgroup.go @@ -56,11 +56,11 @@ func GetCGroupManager(cgroup string) (string, CGroupFlags) { } // GetContainerFromCgroup extracts the container ID from a cgroup name -func GetContainerFromCgroup(cgroup string) (string, CGroupFlags) { - cgroup = strings.TrimLeft(cgroup, "/") +func GetContainerFromCgroup(cgroup CGroupID) (ContainerID, CGroupFlags) { + cgroupID := strings.TrimLeft(string(cgroup), "/") for runtimePrefix, runtimeFlag := range RuntimePrefixes { - if strings.HasPrefix(cgroup, runtimePrefix) { - return cgroup[len(runtimePrefix):], CGroupFlags(runtimeFlag) + if strings.HasPrefix(cgroupID, runtimePrefix) { + return ContainerID(cgroupID[len(runtimePrefix):]), CGroupFlags(runtimeFlag) } } return "", 0 diff --git a/pkg/security/secl/containerutils/helpers.go b/pkg/security/secl/containerutils/helpers.go index 701e4f9cd1d9f..80211d0671234 100644 --- a/pkg/security/secl/containerutils/helpers.go +++ b/pkg/security/secl/containerutils/helpers.go @@ -34,7 +34,7 @@ func isSystemdCgroup(cgroup string) bool { } // FindContainerID extracts the first sub string that matches the pattern of a container ID along with the container flags induced from the container runtime prefix -func FindContainerID(s string) (string, uint64) { +func FindContainerID(s string) (ContainerID, uint64) { match := containerIDPattern.FindIndex([]byte(s)) if match == nil { if isSystemdCgroup(s) { @@ -69,9 +69,9 @@ func FindContainerID(s string) (string, uint64) { // it starts or/and ends the initial string cgroupID := s[match[0]:match[1]] - containerID, flags := GetContainerFromCgroup(cgroupID) + containerID, flags := GetContainerFromCgroup(CGroupID(cgroupID)) if containerID == "" { - return cgroupID, uint64(flags) + return ContainerID(cgroupID), uint64(flags) } return containerID, uint64(flags) diff --git a/pkg/security/secl/containerutils/helpers_test.go b/pkg/security/secl/containerutils/helpers_test.go index 12a810542fbf6..5b479b3860d12 100644 --- a/pkg/security/secl/containerutils/helpers_test.go +++ b/pkg/security/secl/containerutils/helpers_test.go @@ -93,7 +93,7 @@ func TestFindContainerID(t *testing.T) { for _, test := range testCases { containerID, containerFlags := FindContainerID(test.input) - assert.Equal(t, test.output, containerID) + assert.Equal(t, test.output, string(containerID)) assert.Equal(t, uint64(test.flags), containerFlags, "wrong flags for container %s", containerID) } } From 6273684cbbae3462612b4c497e098a11154099aa Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Fri, 29 Nov 2024 13:46:32 +0100 Subject: [PATCH 162/439] [CWS] do not start/stop manually the remote tagger in the resolver (#31599) --- pkg/security/resolvers/tags/resolver.go | 25 ++----------------- pkg/security/tests/fake_tags_resolver.go | 31 ------------------------ 2 files changed, 2 insertions(+), 54 deletions(-) diff --git a/pkg/security/resolvers/tags/resolver.go b/pkg/security/resolvers/tags/resolver.go index 180fcefd9f025..051122e4436ec 100644 --- a/pkg/security/resolvers/tags/resolver.go +++ b/pkg/security/resolvers/tags/resolver.go @@ -13,7 +13,6 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" "github.com/DataDog/datadog-agent/pkg/security/seclog" "github.com/DataDog/datadog-agent/pkg/security/utils" - "github.com/DataDog/datadog-agent/pkg/util/log" ) // Event defines the tags event type @@ -26,8 +25,6 @@ const ( // Tagger defines a Tagger for the Tags Resolver type Tagger interface { - Start(ctx context.Context) error - Stop() error Tag(entity types.EntityID, cardinality types.TagCardinality) ([]string, error) GlobalTags(cardinality types.TagCardinality) ([]string, error) } @@ -74,31 +71,13 @@ func (t *DefaultResolver) GetValue(id containerutils.ContainerID, tag string) st } // Start the resolver -func (t *DefaultResolver) Start(ctx context.Context) error { - if t.tagger == nil { - return nil - } - - go func() { - if err := t.tagger.Start(ctx); err != nil { - log.Errorf("failed to init tagger: %s", err) - } - }() - - go func() { - <-ctx.Done() - _ = t.tagger.Stop() - }() - +func (t *DefaultResolver) Start(_ context.Context) error { return nil } // Stop the resolver func (t *DefaultResolver) Stop() error { - if t.tagger == nil { - return nil - } - return t.tagger.Stop() + return nil } // NewDefaultResolver returns a new default tags resolver diff --git a/pkg/security/tests/fake_tags_resolver.go b/pkg/security/tests/fake_tags_resolver.go index a8b1694349a3c..c1a5f9b7882d4 100644 --- a/pkg/security/tests/fake_tags_resolver.go +++ b/pkg/security/tests/fake_tags_resolver.go @@ -9,7 +9,6 @@ package tests import ( - "context" "fmt" "sync" @@ -26,16 +25,6 @@ type FakeTagger struct { containerIDs []string } -// Start the tagger -func (fr *FakeTagger) Start(_ context.Context) error { - return nil -} - -// Stop the tagger -func (fr *FakeTagger) Stop() error { - return nil -} - // Tag returns the tags for the given id func (fr *FakeTagger) Tag(entity types.EntityID, _ types.TagCardinality) ([]string, error) { containerID := entity.GetID() @@ -68,16 +57,6 @@ func NewFakeTaggerDifferentImageNames() tags.Tagger { // FakeMonoTagger represents a fake mono tagger type FakeMonoTagger struct{} -// Start the tagger -func (fmr *FakeMonoTagger) Start(_ context.Context) error { - return nil -} - -// Stop the tagger -func (fmr *FakeMonoTagger) Stop() error { - return nil -} - // Tag returns the tags for the given id func (fmr *FakeMonoTagger) Tag(entity types.EntityID, _ types.TagCardinality) ([]string, error) { return []string{"container_id:" + entity.GetID(), "image_name:fake_ubuntu", "image_tag:latest"}, nil @@ -103,16 +82,6 @@ type FakeManualTagger struct { nextSelectors []*cgroupModel.WorkloadSelector } -// Start the tagger -func (fmr *FakeManualTagger) Start(_ context.Context) error { - return nil -} - -// Stop the tagger -func (fmr *FakeManualTagger) Stop() error { - return nil -} - // SpecifyNextSelector specifies the next image name and tag to be resolved func (fmr *FakeManualTagger) SpecifyNextSelector(selector *cgroupModel.WorkloadSelector) { fmr.Lock() From 0e9db52da9552ee74f58b92a3f739b83a70577d2 Mon Sep 17 00:00:00 2001 From: Sylvain Baubeau Date: Fri, 29 Nov 2024 14:20:17 +0100 Subject: [PATCH 163/439] [CWS] Fix GetEventTags prototype on macOS (#31603) --- pkg/security/probe/probe_others.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/security/probe/probe_others.go b/pkg/security/probe/probe_others.go index b9dc61a9ae2e4..daf1ab253299a 100644 --- a/pkg/security/probe/probe_others.go +++ b/pkg/security/probe/probe_others.go @@ -68,7 +68,7 @@ func (p *Probe) GetService(_ *model.Event) string { } // GetEventTags returns the event tags -func (p *Probe) GetEventTags(_ string) []string { +func (p *Probe) GetEventTags(_ containerutils.ContainerID) []string { return nil } From 96c83b8e8627a8371586908d545e50ffdde484cf Mon Sep 17 00:00:00 2001 From: David Ortiz Date: Fri, 29 Nov 2024 14:29:27 +0100 Subject: [PATCH 164/439] [tagger/remote] Make constructor private (#31602) --- comp/core/tagger/impl-remote/remote.go | 6 ++---- comp/core/tagger/impl-remote/remote_test.go | 4 ++-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/comp/core/tagger/impl-remote/remote.go b/comp/core/tagger/impl-remote/remote.go index 68e56f3832847..111b14fc52895 100644 --- a/comp/core/tagger/impl-remote/remote.go +++ b/comp/core/tagger/impl-remote/remote.go @@ -97,7 +97,7 @@ type Options struct { // NewComponent returns a remote tagger func NewComponent(req Requires) (Provides, error) { - remoteTagger, err := NewRemoteTagger(req.Params, req.Config, req.Log, req.Telemetry) + remoteTagger, err := newRemoteTagger(req.Params, req.Config, req.Log, req.Telemetry) if err != nil { return Provides{}, err @@ -116,9 +116,7 @@ func NewComponent(req Requires) (Provides, error) { }, nil } -// NewRemoteTagger creates a new remote tagger. -// TODO: (components) remove once we pass the remote tagger instance to pkg/security/resolvers/tags/resolver.go -func NewRemoteTagger(params tagger.RemoteParams, cfg config.Component, log log.Component, telemetryComp coretelemetry.Component) (tagger.Component, error) { +func newRemoteTagger(params tagger.RemoteParams, cfg config.Component, log log.Component, telemetryComp coretelemetry.Component) (tagger.Component, error) { telemetryStore := telemetry.NewStore(telemetryComp) target, err := params.RemoteTarget(cfg) diff --git a/comp/core/tagger/impl-remote/remote_test.go b/comp/core/tagger/impl-remote/remote_test.go index 22a2354b4609e..60159eff7943f 100644 --- a/comp/core/tagger/impl-remote/remote_test.go +++ b/comp/core/tagger/impl-remote/remote_test.go @@ -39,7 +39,7 @@ func TestStart(t *testing.T) { log := logmock.New(t) telemetry := nooptelemetry.GetCompatComponent() - remoteTagger, err := NewRemoteTagger(params, cfg, log, telemetry) + remoteTagger, err := newRemoteTagger(params, cfg, log, telemetry) require.NoError(t, err) err = remoteTagger.Start(context.TODO()) require.NoError(t, err) @@ -61,7 +61,7 @@ func TestStartDoNotBlockIfServerIsNotAvailable(t *testing.T) { log := logmock.New(t) telemetry := nooptelemetry.GetCompatComponent() - remoteTagger, err := NewRemoteTagger(params, cfg, log, telemetry) + remoteTagger, err := newRemoteTagger(params, cfg, log, telemetry) require.NoError(t, err) err = remoteTagger.Start(context.TODO()) require.NoError(t, err) From 83ed39be3392ae7af0fb0e6763e496c2514b9969 Mon Sep 17 00:00:00 2001 From: Florent Clarret Date: Fri, 29 Nov 2024 14:51:25 +0100 Subject: [PATCH 165/439] Stop tagging the root module with `6.XX.0-devel` (#31608) --- tasks/libs/common/gomodules.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tasks/libs/common/gomodules.py b/tasks/libs/common/gomodules.py index 357ab03dc515e..8f33fa55ebb52 100644 --- a/tasks/libs/common/gomodules.py +++ b/tasks/libs/common/gomodules.py @@ -255,15 +255,14 @@ def __compute_dependencies(self): # Remove github.com/DataDog/datadog-agent/ from each line return [line[len(AGENT_MODULE_PATH_PREFIX) :] for line in output.strip().splitlines()] - # FIXME: Change when Agent 6 and Agent 7 releases are decoupled def tag(self, agent_version): """Return the module tag name for a given Agent version. >>> mods = [GoModule("."), GoModule("pkg/util/log")] >>> [mod.tag("7.27.0") for mod in mods] - [["6.27.0", "7.27.0"], ["pkg/util/log/v0.27.0"]] + [["7.27.0"], ["pkg/util/log/v0.27.0"]] """ if self.path == ".": - return ["6" + agent_version[1:], "7" + agent_version[1:]] + return ["7" + agent_version[1:]] return [f"{self.path}/{self.__version(agent_version)}"] From 191174d36d08a917b40e92c9d8e2dd7c194668eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20Beauz=C3=A9e-Luyssen?= Date: Fri, 29 Nov 2024 15:32:19 +0100 Subject: [PATCH 166/439] update build images (#31592) --- .circleci/config.yml | 2 +- .gitlab-ci.yml | 44 ++++++++++++++++++++++---------------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 7cf19e2302bab..034e8b60da323 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -15,7 +15,7 @@ experimental: templates: job_template: &job_template docker: - - image: gcr.io/datadoghq/agent-circleci-runner:v48372186-ff395e52 + - image: gcr.io/datadoghq/agent-circleci-runner:v50094600-7b86dd80 environment: USE_SYSTEM_LIBS: "1" working_directory: /go/src/github.com/DataDog/datadog-agent diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 936abc4efddfb..40bbf63917f41 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -173,49 +173,49 @@ variables: # To use images from datadog-agent-buildimages dev branches, set the corresponding # SUFFIX variable to _test_only DATADOG_AGENT_BUILDIMAGES_SUFFIX: "" - DATADOG_AGENT_BUILDIMAGES: v48815877-9bfad02c + DATADOG_AGENT_BUILDIMAGES: v50094600-7b86dd80 DATADOG_AGENT_WINBUILDIMAGES_SUFFIX: "" - DATADOG_AGENT_WINBUILDIMAGES: v48815877-9bfad02c + DATADOG_AGENT_WINBUILDIMAGES: v50094600-7b86dd80 DATADOG_AGENT_ARMBUILDIMAGES_SUFFIX: "" - DATADOG_AGENT_ARMBUILDIMAGES: v48815877-9bfad02c + DATADOG_AGENT_ARMBUILDIMAGES: v50094600-7b86dd80 DATADOG_AGENT_SYSPROBE_BUILDIMAGES_SUFFIX: "" - DATADOG_AGENT_SYSPROBE_BUILDIMAGES: v48815877-9bfad02c + DATADOG_AGENT_SYSPROBE_BUILDIMAGES: v50094600-7b86dd80 DATADOG_AGENT_BTF_GEN_BUILDIMAGES_SUFFIX: "" - DATADOG_AGENT_BTF_GEN_BUILDIMAGES: v48815877-9bfad02c + DATADOG_AGENT_BTF_GEN_BUILDIMAGES: v50094600-7b86dd80 # New images to enable different version per image - not used yet - CI_IMAGE_BTF_GEN: v48815877-9bfad02c + CI_IMAGE_BTF_GEN: v50094600-7b86dd80 CI_IMAGE_BTF_GEN_SUFFIX: "" - CI_IMAGE_DEB_X64: v48815877-9bfad02c + CI_IMAGE_DEB_X64: v50094600-7b86dd80 CI_IMAGE_DEB_X64_SUFFIX: "" - CI_IMAGE_DEB_ARM64: v48815877-9bfad02c + CI_IMAGE_DEB_ARM64: v50094600-7b86dd80 CI_IMAGE_DEB_ARM64_SUFFIX: "" - CI_IMAGE_DEB_ARMHF: v48815877-9bfad02c + CI_IMAGE_DEB_ARMHF: v50094600-7b86dd80 CI_IMAGE_DEB_ARMHF_SUFFIX: "" - CI_IMAGE_DD_AGENT_TESTING: v48815877-9bfad02c + CI_IMAGE_DD_AGENT_TESTING: v50094600-7b86dd80 CI_IMAGE_DD_AGENT_TESTING_SUFFIX: "" - CI_IMAGE_DOCKER_X64: v48815877-9bfad02c + CI_IMAGE_DOCKER_X64: v50094600-7b86dd80 CI_IMAGE_DOCKER_X64_SUFFIX: "" - CI_IMAGE_DOCKER_ARM64: v48815877-9bfad02c + CI_IMAGE_DOCKER_ARM64: v50094600-7b86dd80 CI_IMAGE_DOCKER_ARM64_SUFFIX: "" - CI_IMAGE_GITLAB_AGENT_DEPLOY: v48815877-9bfad02c + CI_IMAGE_GITLAB_AGENT_DEPLOY: v50094600-7b86dd80 CI_IMAGE_GITLAB_AGENT_DEPLOY_SUFFIX: "" - CI_IMAGE_LINUX_GLIBC_2_17_X64: v48815877-9bfad02c + CI_IMAGE_LINUX_GLIBC_2_17_X64: v50094600-7b86dd80 CI_IMAGE_LINUX_GLIBC_2_17_X64_SUFFIX: "" - CI_IMAGE_LINUX_GLIBC_2_23_ARM64: v48815877-9bfad02c + CI_IMAGE_LINUX_GLIBC_2_23_ARM64: v50094600-7b86dd80 CI_IMAGE_LINUX_GLIBC_2_23_ARM64_SUFFIX: "" - CI_IMAGE_SYSTEM_PROBE_X64: v48815877-9bfad02c + CI_IMAGE_SYSTEM_PROBE_X64: v50094600-7b86dd80 CI_IMAGE_SYSTEM_PROBE_X64_SUFFIX: "" - CI_IMAGE_SYSTEM_PROBE_ARM64: v48815877-9bfad02c + CI_IMAGE_SYSTEM_PROBE_ARM64: v50094600-7b86dd80 CI_IMAGE_SYSTEM_PROBE_ARM64_SUFFIX: "" - CI_IMAGE_RPM_X64: v48815877-9bfad02c + CI_IMAGE_RPM_X64: v50094600-7b86dd80 CI_IMAGE_RPM_X64_SUFFIX: "" - CI_IMAGE_RPM_ARM64: v48815877-9bfad02c + CI_IMAGE_RPM_ARM64: v50094600-7b86dd80 CI_IMAGE_RPM_ARM64_SUFFIX: "" - CI_IMAGE_RPM_ARMHF: v48815877-9bfad02c + CI_IMAGE_RPM_ARMHF: v50094600-7b86dd80 CI_IMAGE_RPM_ARMHF_SUFFIX: "" - CI_IMAGE_WIN_1809_X64: v48815877-9bfad02c + CI_IMAGE_WIN_1809_X64: v50094600-7b86dd80 CI_IMAGE_WIN_1809_X64_SUFFIX: "" - CI_IMAGE_WIN_LTSC2022_X64: v48815877-9bfad02c + CI_IMAGE_WIN_LTSC2022_X64: v50094600-7b86dd80 CI_IMAGE_WIN_LTSC2022_X64_SUFFIX: "" DATADOG_AGENT_EMBEDDED_PATH: /opt/datadog-agent/embedded From 33fe40a79cf537518b8d5578730781bdaf81f4c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20Beauz=C3=A9e-Luyssen?= Date: Fri, 29 Nov 2024 15:36:17 +0100 Subject: [PATCH 167/439] omnibus: don't build the agent twice on heroku (#31572) --- omnibus/config/software/datadog-agent.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/omnibus/config/software/datadog-agent.rb b/omnibus/config/software/datadog-agent.rb index cabf4557c735c..139b18f469612 100644 --- a/omnibus/config/software/datadog-agent.rb +++ b/omnibus/config/software/datadog-agent.rb @@ -85,14 +85,14 @@ command "inv -e rtloader.install" include_sds = "" - if linux_target? + if linux_target? && !heroku_target? include_sds = "--include-sds" # we only support SDS on Linux targets for now end - command "inv -e agent.build --exclude-rtloader #{include_sds} --major-version #{major_version_arg} --rebuild --no-development --install-path=#{install_dir} --embedded-path=#{install_dir}/embedded --flavor #{flavor_arg}", env: env - + agent_bin = "" if heroku_target? - command "inv -e agent.build --exclude-rtloader --major-version #{major_version_arg} --rebuild --no-development --install-path=#{install_dir} --embedded-path=#{install_dir}/embedded --flavor #{flavor_arg} --agent-bin=bin/agent/core-agent", env: env + agent_bin = "--agent-bin=bin/agent/core-agent" end + command "inv -e agent.build --exclude-rtloader #{include_sds} --major-version #{major_version_arg} --rebuild --no-development --install-path=#{install_dir} --embedded-path=#{install_dir}/embedded --flavor #{flavor_arg} #{agent_bin}", env: env end if osx_target? From 04718495a798518f09d645ccb539eebc6d349426 Mon Sep 17 00:00:00 2001 From: val06 Date: Fri, 29 Nov 2024 16:38:35 +0200 Subject: [PATCH 168/439] [EBPF] docker testutils: store patternScanner in base config (#31605) --- .../module/impl_linux_test.go | 7 ++- pkg/network/protocols/amqp/server.go | 5 +- pkg/network/protocols/kafka/server.go | 6 ++- pkg/network/protocols/mongo/server.go | 6 ++- pkg/network/protocols/mysql/server.go | 5 +- pkg/network/protocols/postgres/server.go | 6 ++- pkg/network/protocols/redis/server.go | 5 +- .../protocols/tls/gotls/testutil/server.go | 6 ++- pkg/network/protocols/tls/nodejs/nodejs.go | 6 ++- pkg/network/usm/monitor_tls_test.go | 5 +- .../usm/sharedlibraries/testutil/testutil.go | 2 +- pkg/util/testutil/docker/config.go | 53 +++++++++---------- pkg/util/testutil/docker/run.go | 24 +++------ pkg/util/testutil/patternscanner.go | 4 +- 14 files changed, 83 insertions(+), 57 deletions(-) diff --git a/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go b/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go index 822e08866a0a1..d99063dfac193 100644 --- a/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go +++ b/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go @@ -56,6 +56,7 @@ import ( proccontainersmocks "github.com/DataDog/datadog-agent/pkg/process/util/containers/mocks" "github.com/DataDog/datadog-agent/pkg/util/fxutil" "github.com/DataDog/datadog-agent/pkg/util/kernel" + globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" dockerutils "github.com/DataDog/datadog-agent/pkg/util/testutil/docker" ) @@ -795,13 +796,15 @@ func TestDocker(t *testing.T) { url, mockContainerProvider := setupDiscoveryModule(t) dir, _ := testutil.CurDir() + scanner, err := globalutils.NewScanner(regexp.MustCompile("Serving.*"), globalutils.NoPattern) + require.NoError(t, err, "failed to create pattern scanner") dockerCfg := dockerutils.NewComposeConfig("foo-server", dockerutils.DefaultTimeout, dockerutils.DefaultRetries, - regexp.MustCompile("Serving.*"), + scanner, dockerutils.EmptyEnv, filepath.Join(dir, "testdata", "docker-compose.yml")) - err := dockerutils.Run(t, dockerCfg) + err = dockerutils.Run(t, dockerCfg) require.NoError(t, err) proc, err := procfs.NewDefaultFS() diff --git a/pkg/network/protocols/amqp/server.go b/pkg/network/protocols/amqp/server.go index b6d5e14338e4a..ffd049cb36667 100644 --- a/pkg/network/protocols/amqp/server.go +++ b/pkg/network/protocols/amqp/server.go @@ -7,6 +7,7 @@ package amqp import ( "fmt" + globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" "os" "path/filepath" "regexp" @@ -46,10 +47,12 @@ func RunServer(t testing.TB, serverAddr, serverPort string, enableTLS bool) erro dir, _ := httpUtils.CurDir() + scanner, err := globalutils.NewScanner(startupRegexp, globalutils.NoPattern) + require.NoError(t, err, "failed to create pattern scanner") dockerCfg := dockerutils.NewComposeConfig("amqp", dockerutils.DefaultTimeout, dockerutils.DefaultRetries, - startupRegexp, + scanner, env, filepath.Join(dir, "testdata", "docker-compose.yml")) return dockerutils.Run(t, dockerCfg) diff --git a/pkg/network/protocols/kafka/server.go b/pkg/network/protocols/kafka/server.go index b1d892d985814..95c66ef23b8a1 100644 --- a/pkg/network/protocols/kafka/server.go +++ b/pkg/network/protocols/kafka/server.go @@ -8,6 +8,8 @@ package kafka import ( + globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" + "github.com/stretchr/testify/require" "os" "path/filepath" "regexp" @@ -40,10 +42,12 @@ func RunServer(t testing.TB, serverAddr, serverPort string) error { return err } + scanner, err := globalutils.NewScanner(regexp.MustCompile(`.*started \(kafka.server.KafkaServer\).*`), globalutils.NoPattern) + require.NoError(t, err, "failed to create pattern scanner") dockerCfg := dockerutils.NewComposeConfig("kafka", dockerutils.DefaultTimeout, dockerutils.DefaultRetries, - regexp.MustCompile(`.*started \(kafka.server.KafkaServer\).*`), + scanner, env, filepath.Join(dir, "testdata", "docker-compose.yml")) return dockerutils.Run(t, dockerCfg) diff --git a/pkg/network/protocols/mongo/server.go b/pkg/network/protocols/mongo/server.go index 3abf2f69300a2..59717d099a9ae 100644 --- a/pkg/network/protocols/mongo/server.go +++ b/pkg/network/protocols/mongo/server.go @@ -7,6 +7,8 @@ package mongo import ( "fmt" + globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" + "github.com/stretchr/testify/require" "path/filepath" "regexp" "testing" @@ -31,10 +33,12 @@ func RunServer(t testing.TB, serverAddress, serverPort string) error { "MONGO_PASSWORD=" + Pass, } dir, _ := testutil.CurDir() + scanner, err := globalutils.NewScanner(regexp.MustCompile(fmt.Sprintf(".*Waiting for connections.*port.*:%s.*", serverPort)), globalutils.NoPattern) + require.NoError(t, err, "failed to create pattern scanner") dockerCfg := dockerutils.NewComposeConfig("mongo", dockerutils.DefaultTimeout, dockerutils.DefaultRetries, - regexp.MustCompile(fmt.Sprintf(".*Waiting for connections.*port.*:%s.*", serverPort)), + scanner, env, filepath.Join(dir, "testdata", "docker-compose.yml")) return dockerutils.Run(t, dockerCfg) diff --git a/pkg/network/protocols/mysql/server.go b/pkg/network/protocols/mysql/server.go index 2ead1b2cbe9b5..1ea9ebb1ac1ec 100644 --- a/pkg/network/protocols/mysql/server.go +++ b/pkg/network/protocols/mysql/server.go @@ -7,6 +7,7 @@ package mysql import ( "fmt" + globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" "path/filepath" "regexp" "testing" @@ -45,10 +46,12 @@ func RunServer(t testing.TB, serverAddr, serverPort string, withTLS bool) error env = append(env, "MYSQL_TLS_ARGS=--require-secure-transport --ssl-cert=/mysql-test/cert.pem.0 --ssl-key=/mysql-test/server.key") } + scanner, err := globalutils.NewScanner(regexp.MustCompile(fmt.Sprintf(".*ready for connections.*port: %s.*", serverPort)), globalutils.NoPattern) + require.NoError(t, err, "failed to create pattern scanner") dockerCfg := dockerutils.NewComposeConfig("MYSQL", dockerutils.DefaultTimeout, dockerutils.DefaultRetries, - regexp.MustCompile(fmt.Sprintf(".*ready for connections.*port: %s.*", serverPort)), + scanner, env, filepath.Join(dir, "testdata", "docker-compose.yml")) return dockerutils.Run(t, dockerCfg) diff --git a/pkg/network/protocols/postgres/server.go b/pkg/network/protocols/postgres/server.go index 8b95627347c16..2b4bd55bde9c6 100644 --- a/pkg/network/protocols/postgres/server.go +++ b/pkg/network/protocols/postgres/server.go @@ -10,6 +10,7 @@ package postgres import ( "fmt" + globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" "io" "os" "path/filepath" @@ -48,10 +49,13 @@ func RunServer(t testing.TB, serverAddr, serverPort string, enableTLS bool) erro "ENCRYPTION_MODE=" + encryptionMode, "TESTDIR=" + testDataDir, } + + scanner, err := globalutils.NewScanner(regexp.MustCompile(fmt.Sprintf(".*listening on IPv4 address \"0.0.0.0\", port %s", serverPort)), globalutils.NoPattern) + require.NoError(t, err, "failed to create pattern scanner") dockerCfg := dockerutils.NewComposeConfig("postgres", dockerutils.DefaultTimeout, dockerutils.DefaultRetries, - regexp.MustCompile(fmt.Sprintf(".*listening on IPv4 address \"0.0.0.0\", port %s", serverPort)), + scanner, env, filepath.Join(testDataDir, "docker-compose.yml")) return dockerutils.Run(t, dockerCfg) diff --git a/pkg/network/protocols/redis/server.go b/pkg/network/protocols/redis/server.go index 4adf5191dc8bb..56d36fec8855c 100644 --- a/pkg/network/protocols/redis/server.go +++ b/pkg/network/protocols/redis/server.go @@ -11,6 +11,7 @@ package redis import ( "fmt" + globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" "path/filepath" "regexp" "testing" @@ -42,10 +43,12 @@ func RunServer(t testing.TB, serverAddr, serverPort string, enableTLS bool) erro env = append(env, args) } + scanner, err := globalutils.NewScanner(regexp.MustCompile(".*Ready to accept connections"), globalutils.NoPattern) + require.NoError(t, err, "failed to create pattern scanner") dockerCfg := dockerutils.NewComposeConfig("redis", dockerutils.DefaultTimeout, dockerutils.DefaultRetries, - regexp.MustCompile(".*Ready to accept connections"), + scanner, env, filepath.Join(dir, "testdata", "docker-compose.yml")) return dockerutils.Run(t, dockerCfg) diff --git a/pkg/network/protocols/tls/gotls/testutil/server.go b/pkg/network/protocols/tls/gotls/testutil/server.go index 9ae6e47339709..36a58b003c0e6 100644 --- a/pkg/network/protocols/tls/gotls/testutil/server.go +++ b/pkg/network/protocols/tls/gotls/testutil/server.go @@ -6,6 +6,8 @@ package testutil import ( + globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" + "github.com/stretchr/testify/require" "regexp" "testing" @@ -21,10 +23,12 @@ func RunServer(t testing.TB, serverPort string) error { t.Helper() dir, _ := testutil.CurDir() + scanner, err := globalutils.NewScanner(regexp.MustCompile("go-httpbin listening on https://0.0.0.0:8080"), globalutils.NoPattern) + require.NoError(t, err, "failed to create pattern scanner") dockerCfg := dockerutils.NewComposeConfig("https-gotls", dockerutils.DefaultTimeout, dockerutils.DefaultRetries, - regexp.MustCompile("go-httpbin listening on https://0.0.0.0:8080"), + scanner, env, dir+"/../testdata/docker-compose.yml") return dockerutils.Run(t, dockerCfg) diff --git a/pkg/network/protocols/tls/nodejs/nodejs.go b/pkg/network/protocols/tls/nodejs/nodejs.go index c4b8b3682a25c..fb7dc18f60a9a 100644 --- a/pkg/network/protocols/tls/nodejs/nodejs.go +++ b/pkg/network/protocols/tls/nodejs/nodejs.go @@ -9,6 +9,8 @@ package nodejs import ( + globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" + "github.com/stretchr/testify/require" "io" "os" "path" @@ -63,10 +65,12 @@ func RunServerNodeJS(t *testing.T, key, cert, serverPort string) error { "TESTDIR=" + dir + "/testdata", } + scanner, err := globalutils.NewScanner(regexp.MustCompile("Server running at https.*"), globalutils.NoPattern) + require.NoError(t, err, "failed to create pattern scanner") dockerCfg := dockerutils.NewComposeConfig("nodejs-server", dockerutils.DefaultTimeout, dockerutils.DefaultRetries, - regexp.MustCompile("Server running at https.*"), + scanner, env, path.Join(dir, "testdata", "docker-compose.yml")) return dockerutils.Run(t, dockerCfg) diff --git a/pkg/network/usm/monitor_tls_test.go b/pkg/network/usm/monitor_tls_test.go index 4a609e0ac9a30..24f0f7b3a5d2f 100644 --- a/pkg/network/usm/monitor_tls_test.go +++ b/pkg/network/usm/monitor_tls_test.go @@ -12,6 +12,7 @@ import ( "bytes" "crypto/tls" "fmt" + globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" "io" "math/rand" nethttp "net/http" @@ -112,10 +113,12 @@ func (s *tlsSuite) TestHTTPSViaLibraryIntegration() { require.NoError(t, err) dir = path.Join(dir, "testdata", "musl") + scanner, err := globalutils.NewScanner(regexp.MustCompile("started"), globalutils.NoPattern) + require.NoError(t, err, "failed to create pattern scanner") dockerCfg := dockerutils.NewComposeConfig("musl-alpine", dockerutils.DefaultTimeout, dockerutils.DefaultRetries, - regexp.MustCompile("started"), + scanner, dockerutils.EmptyEnv, path.Join(dir, "/docker-compose.yml")) err = dockerutils.Run(t, dockerCfg) diff --git a/pkg/network/usm/sharedlibraries/testutil/testutil.go b/pkg/network/usm/sharedlibraries/testutil/testutil.go index a5f36ab69c216..ff10b58e7367d 100644 --- a/pkg/network/usm/sharedlibraries/testutil/testutil.go +++ b/pkg/network/usm/sharedlibraries/testutil/testutil.go @@ -31,7 +31,7 @@ var mux sync.Mutex // handle to the given paths. func OpenFromProcess(t *testing.T, programExecutable string, paths ...string) (*exec.Cmd, error) { cmd := exec.Command(programExecutable, paths...) - patternScanner, err := protocolstestutil.NewScanner(regexp.MustCompile("awaiting signal"), protocolstestutil.NoPattern, make(chan struct{}, 1)) + patternScanner, err := protocolstestutil.NewScanner(regexp.MustCompile("awaiting signal"), protocolstestutil.NoPattern) require.NoError(t, err, "failed to create pattern scanner") cmd.Stdout = patternScanner cmd.Stderr = patternScanner diff --git a/pkg/util/testutil/docker/config.go b/pkg/util/testutil/docker/config.go index c7b34281a979e..d5f374afb79eb 100644 --- a/pkg/util/testutil/docker/config.go +++ b/pkg/util/testutil/docker/config.go @@ -9,8 +9,9 @@ package docker import ( "fmt" - "regexp" "time" + + "github.com/DataDog/datadog-agent/pkg/util/testutil" ) const ( @@ -49,7 +50,7 @@ var _ LifecycleConfig = (*composeConfig)(nil) type LifecycleConfig interface { Timeout() time.Duration Retries() int - LogPattern() *regexp.Regexp + PatternScanner() *testutil.PatternScanner Env() []string Name() string command() string @@ -66,9 +67,9 @@ func (b baseConfig) Retries() int { return b.retries } -// LogPattern returns the regex pattern to match logs for readiness -func (b baseConfig) LogPattern() *regexp.Regexp { - return b.logPattern +// PatternScanner returns the patternScanner object used to match logs for readiness and completion of the target container/s +func (b baseConfig) PatternScanner() *testutil.PatternScanner { + return b.patternScanner } // Env returns the environment variables to set for the container/s @@ -83,11 +84,11 @@ func (b baseConfig) Name() string { // baseConfig contains shared configurations for both Docker and Docker Compose. type baseConfig struct { - name string // Container name for docker or an alias for docker-compose - timeout time.Duration // Timeout for the entire operation. - retries int // Number of retries for starting. - logPattern *regexp.Regexp // Regex pattern to match logs for readiness. - env []string // Environment variables to set. + name string // Container name for docker or an alias for docker-compose + timeout time.Duration // Timeout for the entire operation. + retries int // Number of retries for starting. + patternScanner *testutil.PatternScanner // Used to monitor container logs for known patterns. + env []string // Environment variables to set. } // runConfig contains specific configurations for Docker containers, embedding BaseConfig. @@ -153,16 +154,20 @@ func (c composeConfig) commandArgs(t subCommandType) []string { } } +func createBaseConfig(name string, timeout time.Duration, retries int, patternScanner *testutil.PatternScanner, env []string) baseConfig { + return baseConfig{ + name: name, + timeout: timeout, + retries: retries, + patternScanner: patternScanner, + env: env, + } +} + // NewRunConfig creates a new runConfig instance for a single docker container. -func NewRunConfig(name string, timeout time.Duration, retries int, logPattern *regexp.Regexp, env []string, imageName, binary string, binaryArgs []string, mounts map[string]string) LifecycleConfig { +func NewRunConfig(name string, timeout time.Duration, retries int, patternScanner *testutil.PatternScanner, env []string, imageName, binary string, binaryArgs []string, mounts map[string]string) LifecycleConfig { return runConfig{ - baseConfig: baseConfig{ - timeout: timeout, - retries: retries, - logPattern: logPattern, - env: env, - name: name, - }, + baseConfig: createBaseConfig(name, timeout, retries, patternScanner, env), ImageName: imageName, Binary: binary, BinaryArgs: binaryArgs, @@ -171,15 +176,9 @@ func NewRunConfig(name string, timeout time.Duration, retries int, logPattern *r } // NewComposeConfig creates a new composeConfig instance for the docker-compose. -func NewComposeConfig(name string, timeout time.Duration, retries int, logPattern *regexp.Regexp, env []string, file string) LifecycleConfig { +func NewComposeConfig(name string, timeout time.Duration, retries int, patternScanner *testutil.PatternScanner, env []string, file string) LifecycleConfig { return composeConfig{ - baseConfig: baseConfig{ - timeout: timeout, - retries: retries, - logPattern: logPattern, - env: env, - name: name, - }, - File: file, + baseConfig: createBaseConfig(name, timeout, retries, patternScanner, env), + File: file, } } diff --git a/pkg/util/testutil/docker/run.go b/pkg/util/testutil/docker/run.go index acde40acd969c..c92bb8484ae4e 100644 --- a/pkg/util/testutil/docker/run.go +++ b/pkg/util/testutil/docker/run.go @@ -13,10 +13,6 @@ import ( "os/exec" "testing" "time" - - "github.com/stretchr/testify/require" - - "github.com/DataDog/datadog-agent/pkg/util/testutil" ) // Run starts the container/s and ensures their successful invocation @@ -26,17 +22,13 @@ import ( func Run(t testing.TB, cfg LifecycleConfig) error { var err error var ctx context.Context - var scanner *testutil.PatternScanner for i := 0; i < cfg.Retries(); i++ { t.Helper() // Ensuring no previous instances exists. killPreviousInstances(cfg) - //TODO: in the following PR move the scanner to be a field of the LifecycleConfig - scanner, err = testutil.NewScanner(cfg.LogPattern(), testutil.NoPattern, make(chan struct{}, 1)) - require.NoError(t, err, "failed to create pattern scanner") // attempt to start the container/s - ctx, err = run(t, cfg, scanner) + ctx, err = run(t, cfg) if err != nil { t.Logf("could not start %s: %v", cfg.Name(), err) //this iteration failed, retry @@ -44,13 +36,13 @@ func Run(t testing.TB, cfg LifecycleConfig) error { } //check container logs for successful start - if err = checkReadiness(ctx, cfg, scanner); err == nil { + if err = checkReadiness(ctx, cfg); err == nil { // target container/s started successfully, we can stop the retries loop and finish here t.Logf("%s command succeeded. %s container is running", cfg.command(), cfg.Name()) return nil } t.Logf("[Attempt #%v] failed to start %s server: %v", i+1, cfg.Name(), err) - scanner.PrintLogs(t) + cfg.PatternScanner().PrintLogs(t) time.Sleep(5 * time.Second) } return err @@ -71,7 +63,7 @@ func killPreviousInstances(cfg LifecycleConfig) { _ = c.Run() } -func run(t testing.TB, cfg LifecycleConfig, scanner *testutil.PatternScanner) (context.Context, error) { +func run(t testing.TB, cfg LifecycleConfig) (context.Context, error) { ctx, cancel := context.WithCancel(context.Background()) t.Cleanup(cancel) @@ -80,8 +72,8 @@ func run(t testing.TB, cfg LifecycleConfig, scanner *testutil.PatternScanner) (c //prepare the command cmd := exec.CommandContext(ctx, cfg.command(), args...) cmd.Env = append(cmd.Env, cfg.Env()...) - cmd.Stdout = scanner - cmd.Stderr = scanner + cmd.Stdout = cfg.PatternScanner() + cmd.Stderr = cfg.PatternScanner() // run asynchronously and don't wait for the command to finish if err := cmd.Start(); err != nil { @@ -97,14 +89,14 @@ func run(t testing.TB, cfg LifecycleConfig, scanner *testutil.PatternScanner) (c return ctx, nil } -func checkReadiness(ctx context.Context, cfg LifecycleConfig, scanner *testutil.PatternScanner) error { +func checkReadiness(ctx context.Context, cfg LifecycleConfig) error { for { select { case <-ctx.Done(): if err := ctx.Err(); err != nil { return fmt.Errorf("failed to start the container %s due to: %w", cfg.Name(), err) } - case <-scanner.DoneChan: + case <-cfg.PatternScanner().DoneChan: return nil case <-time.After(cfg.Timeout()): return fmt.Errorf("failed to start the container %s, reached timeout of %v", cfg.Name(), cfg.Timeout()) diff --git a/pkg/util/testutil/patternscanner.go b/pkg/util/testutil/patternscanner.go index 0610ad30afd72..06dc357466033 100644 --- a/pkg/util/testutil/patternscanner.go +++ b/pkg/util/testutil/patternscanner.go @@ -43,14 +43,14 @@ type PatternScanner struct { // NewScanner returns a new instance of PatternScanner. // at least one of the startPattern/finishPattern should be provided. -func NewScanner(startPattern, finishPattern *regexp.Regexp, doneChan chan struct{}) (*PatternScanner, error) { +func NewScanner(startPattern, finishPattern *regexp.Regexp) (*PatternScanner, error) { if startPattern == nil && finishPattern == nil { return nil, errors.New("at least one pattern should be provided") } return &PatternScanner{ startPattern: startPattern, finishPattern: finishPattern, - DoneChan: doneChan, + DoneChan: make(chan struct{}, 1), stopOnce: sync.Once{}, // skip looking for start pattern if not provided startPatternFound: startPattern == nil, From ad40689b877dbf92b7144518f46d2a8f55f29e2e Mon Sep 17 00:00:00 2001 From: Pierre Gimalac Date: Fri, 29 Nov 2024 15:57:23 +0100 Subject: [PATCH 169/439] Update testify to 1.10.0 (#31520) --- LICENSE-3rdparty.csv | 1 + comp/api/api/def/go.mod | 1 + comp/api/api/def/go.sum | 4 ++-- comp/api/authtoken/go.mod | 2 +- comp/api/authtoken/go.sum | 4 ++-- comp/core/config/go.mod | 2 +- comp/core/config/go.sum | 4 ++-- comp/core/flare/types/go.mod | 2 +- comp/core/flare/types/go.sum | 4 ++-- comp/core/hostname/hostnameinterface/go.mod | 2 +- comp/core/hostname/hostnameinterface/go.sum | 4 ++-- comp/core/log/def/go.mod | 2 +- comp/core/log/def/go.sum | 4 ++-- comp/core/log/impl-trace/go.mod | 2 +- comp/core/log/impl-trace/go.sum | 3 ++- comp/core/log/impl/go.mod | 2 +- comp/core/log/impl/go.sum | 4 ++-- comp/core/log/mock/go.sum | 4 ++-- comp/core/secrets/go.mod | 2 +- comp/core/secrets/go.sum | 4 ++-- comp/core/status/go.mod | 2 +- comp/core/status/go.sum | 4 ++-- comp/core/status/statusimpl/go.mod | 2 +- comp/core/status/statusimpl/go.sum | 4 ++-- comp/core/tagger/types/go.mod | 2 +- comp/core/tagger/types/go.sum | 4 ++-- comp/core/tagger/utils/go.mod | 2 +- comp/core/tagger/utils/go.sum | 4 ++-- comp/core/telemetry/go.mod | 2 +- comp/core/telemetry/go.sum | 4 ++-- comp/def/go.mod | 2 +- comp/def/go.sum | 4 ++-- comp/forwarder/defaultforwarder/go.mod | 2 +- comp/forwarder/defaultforwarder/go.sum | 3 ++- .../orchestrator/orchestratorinterface/go.mod | 2 +- .../orchestrator/orchestratorinterface/go.sum | 3 ++- comp/logs/agent/config/go.mod | 2 +- comp/logs/agent/config/go.sum | 4 ++-- comp/otelcol/collector-contrib/def/go.mod | 2 +- comp/otelcol/collector-contrib/def/go.sum | 4 ++-- comp/otelcol/collector-contrib/impl/go.mod | 2 +- comp/otelcol/collector-contrib/impl/go.sum | 3 ++- comp/otelcol/converter/def/go.mod | 1 + comp/otelcol/converter/def/go.sum | 4 ++-- comp/otelcol/converter/impl/go.mod | 2 +- comp/otelcol/converter/impl/go.sum | 4 ++-- comp/otelcol/ddflareextension/def/go.mod | 1 + comp/otelcol/ddflareextension/def/go.sum | 4 ++-- comp/otelcol/ddflareextension/impl/go.mod | 2 +- comp/otelcol/ddflareextension/impl/go.sum | 3 ++- comp/otelcol/logsagentpipeline/go.mod | 2 +- comp/otelcol/logsagentpipeline/go.sum | 4 ++-- .../logsagentpipelineimpl/go.mod | 2 +- .../logsagentpipelineimpl/go.sum | 3 ++- .../components/exporter/datadogexporter/go.mod | 2 +- .../components/exporter/datadogexporter/go.sum | 4 ++-- .../components/exporter/logsagentexporter/go.mod | 2 +- .../components/exporter/logsagentexporter/go.sum | 3 ++- .../exporter/serializerexporter/go.mod | 2 +- .../exporter/serializerexporter/go.sum | 3 ++- .../otelcol/otlp/components/metricsclient/go.mod | 2 +- .../otelcol/otlp/components/metricsclient/go.sum | 4 ++-- .../processor/infraattributesprocessor/go.mod | 2 +- .../processor/infraattributesprocessor/go.sum | 4 ++-- .../otlp/components/statsprocessor/go.mod | 2 +- .../otlp/components/statsprocessor/go.sum | 3 ++- comp/otelcol/otlp/testutil/go.mod | 2 +- comp/otelcol/otlp/testutil/go.sum | 3 ++- comp/serializer/compression/go.mod | 2 +- comp/serializer/compression/go.sum | 4 ++-- comp/trace/agent/def/go.sum | 4 ++-- go.mod | 2 +- go.sum | 3 ++- internal/tools/go.mod | 2 +- internal/tools/go.sum | 3 ++- internal/tools/modparser/go.mod | 2 +- internal/tools/modparser/go.sum | 4 ++-- pkg/aggregator/ckey/go.mod | 2 +- pkg/aggregator/ckey/go.sum | 4 ++-- pkg/api/go.mod | 2 +- pkg/api/go.sum | 4 ++-- .../snmp/internal/checkconfig/config_test.go | 16 ++++++++-------- pkg/config/env/go.mod | 2 +- pkg/config/env/go.sum | 4 ++-- pkg/config/mock/go.mod | 2 +- pkg/config/mock/go.sum | 4 ++-- pkg/config/model/go.mod | 2 +- pkg/config/model/go.sum | 4 ++-- pkg/config/nodetreemodel/go.mod | 2 +- pkg/config/nodetreemodel/go.sum | 4 ++-- pkg/config/remote/go.mod | 2 +- pkg/config/remote/go.sum | 4 ++-- pkg/config/setup/go.mod | 2 +- pkg/config/setup/go.sum | 4 ++-- pkg/config/structure/go.mod | 2 +- pkg/config/structure/go.sum | 4 ++-- pkg/config/teeconfig/go.sum | 4 ++-- pkg/config/utils/go.mod | 2 +- pkg/config/utils/go.sum | 4 ++-- pkg/errors/go.mod | 2 +- pkg/errors/go.sum | 4 ++-- pkg/gohai/go.mod | 2 +- pkg/gohai/go.sum | 4 ++-- pkg/linters/components/pkgconfigusage/go.mod | 2 +- pkg/linters/components/pkgconfigusage/go.sum | 4 ++-- pkg/logs/auditor/go.mod | 2 +- pkg/logs/auditor/go.sum | 4 ++-- pkg/logs/client/go.mod | 2 +- pkg/logs/client/go.sum | 4 ++-- pkg/logs/diagnostic/go.mod | 2 +- pkg/logs/diagnostic/go.sum | 4 ++-- pkg/logs/message/go.mod | 2 +- pkg/logs/message/go.sum | 4 ++-- pkg/logs/metrics/go.mod | 2 +- pkg/logs/metrics/go.sum | 4 ++-- pkg/logs/pipeline/go.mod | 2 +- pkg/logs/pipeline/go.sum | 4 ++-- pkg/logs/processor/go.mod | 2 +- pkg/logs/processor/go.sum | 4 ++-- pkg/logs/sds/go.mod | 2 +- pkg/logs/sds/go.sum | 4 ++-- pkg/logs/sender/go.mod | 2 +- pkg/logs/sender/go.sum | 4 ++-- pkg/logs/sources/go.mod | 2 +- pkg/logs/sources/go.sum | 4 ++-- pkg/logs/status/utils/go.mod | 2 +- pkg/logs/status/utils/go.sum | 4 ++-- pkg/logs/util/testutils/go.sum | 4 ++-- pkg/metrics/go.mod | 2 +- pkg/metrics/go.sum | 4 ++-- pkg/networkdevice/profile/go.mod | 2 +- pkg/networkdevice/profile/go.sum | 4 ++-- pkg/obfuscate/go.mod | 2 +- pkg/obfuscate/go.sum | 4 ++-- pkg/orchestrator/model/go.sum | 4 ++-- pkg/process/util/api/go.mod | 2 +- pkg/process/util/api/go.sum | 4 ++-- pkg/proto/go.mod | 2 +- pkg/proto/go.sum | 4 ++-- pkg/remoteconfig/state/go.mod | 2 +- pkg/remoteconfig/state/go.sum | 4 ++-- pkg/security/secl/go.mod | 2 +- pkg/security/secl/go.sum | 4 ++-- pkg/security/seclwin/go.sum | 4 ++-- pkg/serializer/go.mod | 2 +- pkg/serializer/go.sum | 3 ++- pkg/status/health/go.mod | 2 +- pkg/status/health/go.sum | 4 ++-- pkg/tagset/go.mod | 2 +- pkg/tagset/go.sum | 4 ++-- pkg/telemetry/go.mod | 2 +- pkg/telemetry/go.sum | 4 ++-- pkg/trace/go.mod | 2 +- pkg/trace/go.sum | 3 ++- pkg/trace/stats/oteltest/go.mod | 2 +- pkg/trace/stats/oteltest/go.sum | 3 ++- pkg/util/backoff/go.mod | 2 +- pkg/util/backoff/go.sum | 4 ++-- pkg/util/buf/go.mod | 2 +- pkg/util/buf/go.sum | 4 ++-- pkg/util/cache/go.mod | 2 +- pkg/util/cache/go.sum | 4 ++-- pkg/util/cgroups/go.mod | 2 +- pkg/util/cgroups/go.sum | 4 ++-- pkg/util/common/go.mod | 2 +- pkg/util/common/go.sum | 4 ++-- pkg/util/containers/image/go.mod | 2 +- pkg/util/containers/image/go.sum | 4 ++-- pkg/util/defaultpaths/go.sum | 4 ++-- pkg/util/executable/go.mod | 2 +- pkg/util/executable/go.sum | 4 ++-- pkg/util/filesystem/go.mod | 2 +- pkg/util/filesystem/go.sum | 4 ++-- pkg/util/flavor/go.mod | 2 +- pkg/util/flavor/go.sum | 4 ++-- pkg/util/fxutil/go.mod | 2 +- pkg/util/fxutil/go.sum | 4 ++-- pkg/util/grpc/go.mod | 2 +- pkg/util/grpc/go.sum | 4 ++-- pkg/util/hostname/validate/go.mod | 2 +- pkg/util/hostname/validate/go.sum | 4 ++-- pkg/util/http/go.mod | 2 +- pkg/util/http/go.sum | 4 ++-- pkg/util/json/go.mod | 2 +- pkg/util/json/go.sum | 4 ++-- pkg/util/log/go.mod | 2 +- pkg/util/log/go.sum | 4 ++-- pkg/util/log/setup/go.mod | 2 +- pkg/util/log/setup/go.sum | 4 ++-- pkg/util/optional/go.mod | 2 +- pkg/util/optional/go.sum | 4 ++-- pkg/util/scrubber/go.mod | 2 +- pkg/util/scrubber/go.sum | 4 ++-- pkg/util/sort/go.mod | 2 +- pkg/util/sort/go.sum | 4 ++-- pkg/util/startstop/go.mod | 2 +- pkg/util/startstop/go.sum | 4 ++-- pkg/util/statstracker/go.mod | 2 +- pkg/util/statstracker/go.sum | 4 ++-- pkg/util/system/go.mod | 2 +- pkg/util/system/go.sum | 4 ++-- pkg/util/testutil/go.mod | 2 +- pkg/util/testutil/go.sum | 4 ++-- pkg/util/utilizationtracker/go.mod | 2 +- pkg/util/utilizationtracker/go.sum | 4 ++-- pkg/util/uuid/go.sum | 4 ++-- pkg/util/winutil/go.mod | 2 +- pkg/util/winutil/go.sum | 4 ++-- pkg/version/go.mod | 2 +- pkg/version/go.sum | 4 ++-- test/fakeintake/go.mod | 2 +- test/fakeintake/go.sum | 4 ++-- test/new-e2e/go.mod | 2 +- test/new-e2e/go.sum | 4 ++-- test/otel/go.mod | 2 +- test/otel/go.sum | 4 ++-- 216 files changed, 334 insertions(+), 315 deletions(-) diff --git a/LICENSE-3rdparty.csv b/LICENSE-3rdparty.csv index 32bfe097dee1d..d964afa55b338 100644 --- a/LICENSE-3rdparty.csv +++ b/LICENSE-3rdparty.csv @@ -2143,6 +2143,7 @@ core,github.com/stormcat24/protodep/pkg/logger,Apache-2.0,Copyright Akinori Yama core,github.com/streadway/amqp,BSD-2-Clause,"Copyright (c) 2012-2019, Sean Treadway, SoundCloud Ltd" core,github.com/stretchr/objx,MIT,"Copyright (c) 2014 Stretchr, Inc | Copyright (c) 2017-2018 objx contributors" core,github.com/stretchr/testify/assert,MIT,"Copyright (c) 2012-2020 Mat Ryer, Tyler Bunnell and contributors" +core,github.com/stretchr/testify/assert/yaml,MIT,"Copyright (c) 2012-2020 Mat Ryer, Tyler Bunnell and contributors" core,github.com/stretchr/testify/mock,MIT,"Copyright (c) 2012-2020 Mat Ryer, Tyler Bunnell and contributors" core,github.com/stretchr/testify/require,MIT,"Copyright (c) 2012-2020 Mat Ryer, Tyler Bunnell and contributors" core,github.com/stretchr/testify/suite,MIT,"Copyright (c) 2012-2020 Mat Ryer, Tyler Bunnell and contributors" diff --git a/comp/api/api/def/go.mod b/comp/api/api/def/go.mod index ffcd616197878..d0e801edaa33c 100644 --- a/comp/api/api/def/go.mod +++ b/comp/api/api/def/go.mod @@ -5,6 +5,7 @@ go 1.22.0 require go.uber.org/fx v1.22.2 require ( + github.com/stretchr/testify v1.10.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect diff --git a/comp/api/api/def/go.sum b/comp/api/api/def/go.sum index 1f4bc972fc0d2..101b78c6cf5d6 100644 --- a/comp/api/api/def/go.sum +++ b/comp/api/api/def/go.sum @@ -2,8 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= diff --git a/comp/api/authtoken/go.mod b/comp/api/authtoken/go.mod index 02392ef9508b1..04da7d39a3ba8 100644 --- a/comp/api/authtoken/go.mod +++ b/comp/api/authtoken/go.mod @@ -47,7 +47,7 @@ require ( github.com/DataDog/datadog-agent/pkg/api v0.56.0 github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0 github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.uber.org/fx v1.22.2 ) diff --git a/comp/api/authtoken/go.sum b/comp/api/authtoken/go.sum index bbea552f0eb1a..a29a7509778c0 100644 --- a/comp/api/authtoken/go.sum +++ b/comp/api/authtoken/go.sum @@ -206,8 +206,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/comp/core/config/go.mod b/comp/core/config/go.mod index c425778ab3813..92b478489fc7e 100644 --- a/comp/core/config/go.mod +++ b/comp/core/config/go.mod @@ -44,7 +44,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 github.com/DataDog/viper v1.13.5 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.uber.org/fx v1.22.2 ) diff --git a/comp/core/config/go.sum b/comp/core/config/go.sum index fddfe23b60921..965c7b7e107bc 100644 --- a/comp/core/config/go.sum +++ b/comp/core/config/go.sum @@ -210,8 +210,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/comp/core/flare/types/go.mod b/comp/core/flare/types/go.mod index 15158d6218c92..323fc3f4191f4 100644 --- a/comp/core/flare/types/go.mod +++ b/comp/core/flare/types/go.mod @@ -10,7 +10,7 @@ require ( ) require ( - github.com/stretchr/testify v1.9.0 // indirect + github.com/stretchr/testify v1.10.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect diff --git a/comp/core/flare/types/go.sum b/comp/core/flare/types/go.sum index 926ff7c85c149..101b78c6cf5d6 100644 --- a/comp/core/flare/types/go.sum +++ b/comp/core/flare/types/go.sum @@ -2,8 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= diff --git a/comp/core/hostname/hostnameinterface/go.mod b/comp/core/hostname/hostnameinterface/go.mod index 99f785f9d2364..825b6c434289b 100644 --- a/comp/core/hostname/hostnameinterface/go.mod +++ b/comp/core/hostname/hostnameinterface/go.mod @@ -10,7 +10,7 @@ replace ( require ( github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.uber.org/fx v1.22.2 ) diff --git a/comp/core/hostname/hostnameinterface/go.sum b/comp/core/hostname/hostnameinterface/go.sum index 039e347ff9cfc..135756fb05924 100644 --- a/comp/core/hostname/hostnameinterface/go.sum +++ b/comp/core/hostname/hostnameinterface/go.sum @@ -10,8 +10,8 @@ github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= diff --git a/comp/core/log/def/go.mod b/comp/core/log/def/go.mod index 3528448f83d92..88318237b5c50 100644 --- a/comp/core/log/def/go.mod +++ b/comp/core/log/def/go.mod @@ -2,7 +2,7 @@ module github.com/DataDog/datadog-agent/comp/core/log/def go 1.22.0 -require github.com/stretchr/testify v1.9.0 +require github.com/stretchr/testify v1.10.0 require ( github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/comp/core/log/def/go.sum b/comp/core/log/def/go.sum index 60ce688a04104..713a0b4f0a3a9 100644 --- a/comp/core/log/def/go.sum +++ b/comp/core/log/def/go.sum @@ -2,8 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/comp/core/log/impl-trace/go.mod b/comp/core/log/impl-trace/go.mod index af67376532a37..268642de8f814 100644 --- a/comp/core/log/impl-trace/go.mod +++ b/comp/core/log/impl-trace/go.mod @@ -47,7 +47,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect; v2.6 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.uber.org/fx v1.22.2 // indirect ) diff --git a/comp/core/log/impl-trace/go.sum b/comp/core/log/impl-trace/go.sum index d4d8cda8bdd8d..a0d64ddd8c50b 100644 --- a/comp/core/log/impl-trace/go.sum +++ b/comp/core/log/impl-trace/go.sum @@ -212,8 +212,9 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/comp/core/log/impl/go.mod b/comp/core/log/impl/go.mod index d50f72726751c..075d19cf5918c 100644 --- a/comp/core/log/impl/go.mod +++ b/comp/core/log/impl/go.mod @@ -41,7 +41,7 @@ require ( github.com/DataDog/datadog-agent/pkg/config/mock v0.59.0 github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/DataDog/datadog-agent/pkg/util/log/setup v0.0.0-00010101000000-000000000000 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/comp/core/log/impl/go.sum b/comp/core/log/impl/go.sum index bbea552f0eb1a..a29a7509778c0 100644 --- a/comp/core/log/impl/go.sum +++ b/comp/core/log/impl/go.sum @@ -206,8 +206,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/comp/core/log/mock/go.sum b/comp/core/log/mock/go.sum index 5b99deeef04d3..94c21dfdbfce8 100644 --- a/comp/core/log/mock/go.sum +++ b/comp/core/log/mock/go.sum @@ -171,8 +171,8 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/comp/core/secrets/go.mod b/comp/core/secrets/go.mod index 952b3d81448f9..3432e8b1b2855 100644 --- a/comp/core/secrets/go.mod +++ b/comp/core/secrets/go.mod @@ -25,7 +25,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/winutil v0.56.0-rc.3 github.com/benbjohnson/clock v1.3.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.uber.org/fx v1.22.2 golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f golang.org/x/sys v0.27.0 diff --git a/comp/core/secrets/go.sum b/comp/core/secrets/go.sum index 7d688fb3c7c70..ca7f0ac65c1a0 100644 --- a/comp/core/secrets/go.sum +++ b/comp/core/secrets/go.sum @@ -46,8 +46,8 @@ github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= go.opentelemetry.io/otel/exporters/prometheus v0.42.0 h1:jwV9iQdvp38fxXi8ZC+lNpxjK16MRcZlpDYvbuO1FiA= diff --git a/comp/core/status/go.mod b/comp/core/status/go.mod index e9b817883b56e..a692306d9ceba 100644 --- a/comp/core/status/go.mod +++ b/comp/core/status/go.mod @@ -6,7 +6,7 @@ require ( github.com/dustin/go-humanize v1.0.1 github.com/fatih/color v1.16.0 github.com/spf13/cast v1.7.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.uber.org/fx v1.22.2 golang.org/x/text v0.20.0 ) diff --git a/comp/core/status/go.sum b/comp/core/status/go.sum index f18d7b4e54647..dc06983efbed2 100644 --- a/comp/core/status/go.sum +++ b/comp/core/status/go.sum @@ -23,8 +23,8 @@ github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZV github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= diff --git a/comp/core/status/statusimpl/go.mod b/comp/core/status/statusimpl/go.mod index 25a9194110a92..f9e78400f8b5d 100644 --- a/comp/core/status/statusimpl/go.mod +++ b/comp/core/status/statusimpl/go.mod @@ -52,7 +52,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 github.com/gorilla/mux v1.8.1 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.uber.org/fx v1.22.2 golang.org/x/text v0.20.0 ) diff --git a/comp/core/status/statusimpl/go.sum b/comp/core/status/statusimpl/go.sum index 8a07a5da2ca2a..4f7035a9ca416 100644 --- a/comp/core/status/statusimpl/go.sum +++ b/comp/core/status/statusimpl/go.sum @@ -216,8 +216,8 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= diff --git a/comp/core/tagger/types/go.mod b/comp/core/tagger/types/go.mod index 5b53752b6db32..9a402a40c1e32 100644 --- a/comp/core/tagger/types/go.mod +++ b/comp/core/tagger/types/go.mod @@ -32,7 +32,7 @@ replace ( require ( github.com/DataDog/datadog-agent/comp/core/tagger/utils v0.59.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/comp/core/tagger/types/go.sum b/comp/core/tagger/types/go.sum index 5fe56fd07e6db..6957a854c84ef 100644 --- a/comp/core/tagger/types/go.sum +++ b/comp/core/tagger/types/go.sum @@ -10,8 +10,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/comp/core/tagger/utils/go.mod b/comp/core/tagger/utils/go.mod index 6c66b5f466c8d..395b7fcf185b4 100644 --- a/comp/core/tagger/utils/go.mod +++ b/comp/core/tagger/utils/go.mod @@ -2,7 +2,7 @@ module github.com/DataDog/datadog-agent/comp/core/tagger/utils go 1.22.0 -require github.com/stretchr/testify v1.9.0 +require github.com/stretchr/testify v1.10.0 require ( github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/comp/core/tagger/utils/go.sum b/comp/core/tagger/utils/go.sum index 60ce688a04104..713a0b4f0a3a9 100644 --- a/comp/core/tagger/utils/go.sum +++ b/comp/core/tagger/utils/go.sum @@ -2,8 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/comp/core/telemetry/go.mod b/comp/core/telemetry/go.mod index 9f67e1de3c0b6..f3c5bd058f783 100644 --- a/comp/core/telemetry/go.mod +++ b/comp/core/telemetry/go.mod @@ -12,7 +12,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 github.com/prometheus/client_golang v1.17.0 github.com/prometheus/client_model v0.5.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.opentelemetry.io/otel/exporters/prometheus v0.42.0 go.opentelemetry.io/otel/metric v1.27.0 go.opentelemetry.io/otel/sdk/metric v1.27.0 diff --git a/comp/core/telemetry/go.sum b/comp/core/telemetry/go.sum index 4168353589568..514f0c77c0034 100644 --- a/comp/core/telemetry/go.sum +++ b/comp/core/telemetry/go.sum @@ -42,8 +42,8 @@ github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= go.opentelemetry.io/otel/exporters/prometheus v0.42.0 h1:jwV9iQdvp38fxXi8ZC+lNpxjK16MRcZlpDYvbuO1FiA= diff --git a/comp/def/go.mod b/comp/def/go.mod index e0a0f4cd3fdfe..43cd4e5e23dd6 100644 --- a/comp/def/go.mod +++ b/comp/def/go.mod @@ -2,7 +2,7 @@ module github.com/DataDog/datadog-agent/comp/def go 1.22.0 -require github.com/stretchr/testify v1.9.0 +require github.com/stretchr/testify v1.10.0 require ( github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/comp/def/go.sum b/comp/def/go.sum index 60ce688a04104..713a0b4f0a3a9 100644 --- a/comp/def/go.sum +++ b/comp/def/go.sum @@ -2,8 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/comp/forwarder/defaultforwarder/go.mod b/comp/forwarder/defaultforwarder/go.mod index c58d4ab1df44c..c976351040837 100644 --- a/comp/forwarder/defaultforwarder/go.mod +++ b/comp/forwarder/defaultforwarder/go.mod @@ -75,7 +75,7 @@ require ( github.com/DataDog/datadog-agent/pkg/version v0.57.1 github.com/golang/protobuf v1.5.3 github.com/hashicorp/go-multierror v1.1.1 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.uber.org/atomic v1.11.0 go.uber.org/fx v1.22.2 golang.org/x/text v0.20.0 diff --git a/comp/forwarder/defaultforwarder/go.sum b/comp/forwarder/defaultforwarder/go.sum index 6cd11bf22c595..98ac030df6f50 100644 --- a/comp/forwarder/defaultforwarder/go.sum +++ b/comp/forwarder/defaultforwarder/go.sum @@ -232,8 +232,9 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/comp/forwarder/orchestrator/orchestratorinterface/go.mod b/comp/forwarder/orchestrator/orchestratorinterface/go.mod index 380db17a9e236..d677e905f8ca8 100644 --- a/comp/forwarder/orchestrator/orchestratorinterface/go.mod +++ b/comp/forwarder/orchestrator/orchestratorinterface/go.mod @@ -143,7 +143,7 @@ require ( github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/objx v0.5.2 // indirect - github.com/stretchr/testify v1.9.0 // indirect + github.com/stretchr/testify v1.10.0 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect diff --git a/comp/forwarder/orchestrator/orchestratorinterface/go.sum b/comp/forwarder/orchestrator/orchestratorinterface/go.sum index bcc5d074d0c77..5bd7767a6476e 100644 --- a/comp/forwarder/orchestrator/orchestratorinterface/go.sum +++ b/comp/forwarder/orchestrator/orchestratorinterface/go.sum @@ -234,8 +234,9 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/comp/logs/agent/config/go.mod b/comp/logs/agent/config/go.mod index 9f42d20b4a700..21a46dec52c2f 100644 --- a/comp/logs/agent/config/go.mod +++ b/comp/logs/agent/config/go.mod @@ -46,7 +46,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 github.com/DataDog/viper v1.13.5 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.uber.org/fx v1.22.2 ) diff --git a/comp/logs/agent/config/go.sum b/comp/logs/agent/config/go.sum index bbea552f0eb1a..a29a7509778c0 100644 --- a/comp/logs/agent/config/go.sum +++ b/comp/logs/agent/config/go.sum @@ -206,8 +206,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/comp/otelcol/collector-contrib/def/go.mod b/comp/otelcol/collector-contrib/def/go.mod index 3c83814b009b0..724a707c71c7a 100644 --- a/comp/otelcol/collector-contrib/def/go.mod +++ b/comp/otelcol/collector-contrib/def/go.mod @@ -55,7 +55,7 @@ require ( github.com/shirou/gopsutil/v4 v4.24.10 // indirect github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/stretchr/testify v1.9.0 // indirect + github.com/stretchr/testify v1.10.0 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect diff --git a/comp/otelcol/collector-contrib/def/go.sum b/comp/otelcol/collector-contrib/def/go.sum index 0e45e08ca1376..0018b1f3994af 100644 --- a/comp/otelcol/collector-contrib/def/go.sum +++ b/comp/otelcol/collector-contrib/def/go.sum @@ -97,8 +97,8 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/comp/otelcol/collector-contrib/impl/go.mod b/comp/otelcol/collector-contrib/impl/go.mod index 59a9d3d11f185..0d6b0f4a9836f 100644 --- a/comp/otelcol/collector-contrib/impl/go.mod +++ b/comp/otelcol/collector-contrib/impl/go.mod @@ -228,7 +228,7 @@ require ( github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/objx v0.5.2 // indirect - github.com/stretchr/testify v1.9.0 // indirect + github.com/stretchr/testify v1.10.0 // indirect github.com/tinylib/msgp v1.2.4 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect diff --git a/comp/otelcol/collector-contrib/impl/go.sum b/comp/otelcol/collector-contrib/impl/go.sum index d9d7b58367343..85c06249af5a2 100644 --- a/comp/otelcol/collector-contrib/impl/go.sum +++ b/comp/otelcol/collector-contrib/impl/go.sum @@ -864,8 +864,9 @@ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1F github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/testcontainers/testcontainers-go v0.34.0 h1:5fbgF0vIN5u+nD3IWabQwRybuB4GY8G2HHgCkbMzMHo= diff --git a/comp/otelcol/converter/def/go.mod b/comp/otelcol/converter/def/go.mod index 2889709d6d8f3..be115884ce62f 100644 --- a/comp/otelcol/converter/def/go.mod +++ b/comp/otelcol/converter/def/go.mod @@ -11,6 +11,7 @@ require ( github.com/knadh/koanf/v2 v2.1.2 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect + github.com/stretchr/testify v1.10.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/comp/otelcol/converter/def/go.sum b/comp/otelcol/converter/def/go.sum index f16eed9e249b4..802c3d8c7c117 100644 --- a/comp/otelcol/converter/def/go.sum +++ b/comp/otelcol/converter/def/go.sum @@ -20,8 +20,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.opentelemetry.io/collector/confmap v1.20.0 h1:ARfOwmkKxFOud1njl03yAHQ30+uenlzqCO6LBYamDTE= go.opentelemetry.io/collector/confmap v1.20.0/go.mod h1:DMpd9Ay/ffls3JoQBQ73vWeRsz1rNuLbwjo6WtjSQus= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= diff --git a/comp/otelcol/converter/impl/go.mod b/comp/otelcol/converter/impl/go.mod index b7fd685b06954..f2162418928f9 100644 --- a/comp/otelcol/converter/impl/go.mod +++ b/comp/otelcol/converter/impl/go.mod @@ -41,7 +41,7 @@ replace ( require ( github.com/DataDog/datadog-agent/comp/core/config v0.56.2 github.com/DataDog/datadog-agent/comp/otelcol/converter/def v0.56.0-rc.3 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.opentelemetry.io/collector/confmap v1.20.0 go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0 go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0 diff --git a/comp/otelcol/converter/impl/go.sum b/comp/otelcol/converter/impl/go.sum index 96051d7ac6ba5..cfc250c7fb50e 100644 --- a/comp/otelcol/converter/impl/go.sum +++ b/comp/otelcol/converter/impl/go.sum @@ -219,8 +219,8 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= diff --git a/comp/otelcol/ddflareextension/def/go.mod b/comp/otelcol/ddflareextension/def/go.mod index 42c21799a0c31..7ef632104c53d 100644 --- a/comp/otelcol/ddflareextension/def/go.mod +++ b/comp/otelcol/ddflareextension/def/go.mod @@ -6,6 +6,7 @@ require go.opentelemetry.io/collector/extension v0.114.0 require ( github.com/gogo/protobuf v1.3.2 // indirect + github.com/stretchr/testify v1.10.0 // indirect go.opentelemetry.io/collector/component v0.114.0 // indirect go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect go.opentelemetry.io/collector/pdata v1.20.0 // indirect diff --git a/comp/otelcol/ddflareextension/def/go.sum b/comp/otelcol/ddflareextension/def/go.sum index ee0e91a7a15de..daae981c08540 100644 --- a/comp/otelcol/ddflareextension/def/go.sum +++ b/comp/otelcol/ddflareextension/def/go.sum @@ -12,8 +12,8 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= diff --git a/comp/otelcol/ddflareextension/impl/go.mod b/comp/otelcol/ddflareextension/impl/go.mod index 930c7cacfed08..1c34652e6292e 100644 --- a/comp/otelcol/ddflareextension/impl/go.mod +++ b/comp/otelcol/ddflareextension/impl/go.mod @@ -119,7 +119,7 @@ require ( github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0 github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.opentelemetry.io/collector/component v0.114.0 go.opentelemetry.io/collector/component/componentstatus v0.114.0 go.opentelemetry.io/collector/component/componenttest v0.114.0 diff --git a/comp/otelcol/ddflareextension/impl/go.sum b/comp/otelcol/ddflareextension/impl/go.sum index 3b7dcea39b6ac..9973ebc18ea56 100644 --- a/comp/otelcol/ddflareextension/impl/go.sum +++ b/comp/otelcol/ddflareextension/impl/go.sum @@ -789,8 +789,9 @@ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1F github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tidwall/gjson v1.10.2 h1:APbLGOM0rrEkd8WBw9C24nllro4ajFuJu0Sc9hRz8Bo= github.com/tidwall/gjson v1.10.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= diff --git a/comp/otelcol/logsagentpipeline/go.mod b/comp/otelcol/logsagentpipeline/go.mod index 2d1a300964364..64afcc04eee4f 100644 --- a/comp/otelcol/logsagentpipeline/go.mod +++ b/comp/otelcol/logsagentpipeline/go.mod @@ -145,7 +145,7 @@ require ( github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/stretchr/testify v1.9.0 // indirect + github.com/stretchr/testify v1.10.0 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect diff --git a/comp/otelcol/logsagentpipeline/go.sum b/comp/otelcol/logsagentpipeline/go.sum index 601934cb1bbbf..0c7f69245d9f9 100644 --- a/comp/otelcol/logsagentpipeline/go.sum +++ b/comp/otelcol/logsagentpipeline/go.sum @@ -224,8 +224,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod index 61cd7e5f4f5ff..fc19e21c7ea9e 100644 --- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod +++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod @@ -83,7 +83,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 github.com/DataDog/datadog-agent/pkg/util/startstop v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/testutil v0.56.0-rc.3 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.uber.org/fx v1.22.2 go.uber.org/zap v1.27.0 ) diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum index 00341258f4a82..b736646b68da3 100644 --- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum +++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum @@ -225,8 +225,9 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod index bf81569416a56..6b57e97886ed1 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod @@ -106,7 +106,7 @@ require ( github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0 github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.opentelemetry.io/collector/component v0.114.0 go.opentelemetry.io/collector/config/confignet v1.20.0 go.opentelemetry.io/collector/config/configretry v1.20.0 diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum index 7eee36ba8763a..4e46200b7bbdf 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum @@ -359,8 +359,8 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tinylib/msgp v1.1.9 h1:SHf3yoO2sGA0veCJeCBYLHuttAVFHGm2RHgNodW7wQU= github.com/tinylib/msgp v1.1.9/go.mod h1:BCXGB54lDD8qUEPmiG0cQQUANC4IUQyB2ItS2UDlO/k= diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod index 213fd4cb16878..1b2347d9f24e2 100644 --- a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod @@ -51,7 +51,7 @@ require ( github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0 github.com/stormcat24/protodep v0.1.8 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.opentelemetry.io/collector/component v0.114.0 go.opentelemetry.io/collector/exporter v0.114.0 go.opentelemetry.io/collector/exporter/exportertest v0.114.0 diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum index 47da0ff50cf4c..73ee4e46d9bdc 100644 --- a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum @@ -246,8 +246,9 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod index bc29f0dc5a7be..32e2889fbf704 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod @@ -74,7 +74,7 @@ require ( github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 github.com/tinylib/msgp v1.1.8 go.opentelemetry.io/collector/component v0.114.0 go.opentelemetry.io/collector/config/confignet v1.20.0 // indirect diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum index 0599bb87120a9..dad39da8df5dd 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum @@ -310,8 +310,9 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= diff --git a/comp/otelcol/otlp/components/metricsclient/go.mod b/comp/otelcol/otlp/components/metricsclient/go.mod index ce87cd0cc0cf0..0bf22c8f8eed2 100644 --- a/comp/otelcol/otlp/components/metricsclient/go.mod +++ b/comp/otelcol/otlp/components/metricsclient/go.mod @@ -7,7 +7,7 @@ replace github.com/DataDog/datadog-agent/pkg/trace => ../../../../../pkg/trace require ( github.com/DataDog/datadog-agent/pkg/trace v0.56.0-rc.3 github.com/DataDog/datadog-go/v5 v5.5.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.opentelemetry.io/otel v1.32.0 go.opentelemetry.io/otel/metric v1.32.0 go.opentelemetry.io/otel/sdk/metric v1.32.0 diff --git a/comp/otelcol/otlp/components/metricsclient/go.sum b/comp/otelcol/otlp/components/metricsclient/go.sum index 8615290d1ef0e..28792a9b75f4a 100644 --- a/comp/otelcol/otlp/components/metricsclient/go.sum +++ b/comp/otelcol/otlp/components/metricsclient/go.sum @@ -29,8 +29,8 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= diff --git a/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.mod b/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.mod index 5ced6ecc2e2ff..a64aa72d38da2 100644 --- a/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.mod +++ b/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.mod @@ -36,7 +36,7 @@ replace ( require ( github.com/DataDog/datadog-agent/comp/core/tagger/tags v0.0.0-00010101000000-000000000000 github.com/DataDog/datadog-agent/comp/core/tagger/types v0.59.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.opentelemetry.io/collector/component v0.114.0 go.opentelemetry.io/collector/component/componenttest v0.114.0 go.opentelemetry.io/collector/confmap v1.20.0 diff --git a/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.sum b/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.sum index e9c3ecb7a9efa..230527d5f3d4b 100644 --- a/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.sum +++ b/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.sum @@ -44,8 +44,8 @@ github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= diff --git a/comp/otelcol/otlp/components/statsprocessor/go.mod b/comp/otelcol/otlp/components/statsprocessor/go.mod index 227e60c4937e6..362e818372026 100644 --- a/comp/otelcol/otlp/components/statsprocessor/go.mod +++ b/comp/otelcol/otlp/components/statsprocessor/go.mod @@ -24,7 +24,7 @@ require ( github.com/DataDog/datadog-agent/pkg/trace v0.56.0-rc.3 github.com/DataDog/datadog-go/v5 v5.5.0 github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.opentelemetry.io/collector/component/componenttest v0.114.0 go.opentelemetry.io/collector/pdata v1.20.0 go.opentelemetry.io/otel/sdk/metric v1.32.0 diff --git a/comp/otelcol/otlp/components/statsprocessor/go.sum b/comp/otelcol/otlp/components/statsprocessor/go.sum index 1698d19621bf8..471fdccea1d4d 100644 --- a/comp/otelcol/otlp/components/statsprocessor/go.sum +++ b/comp/otelcol/otlp/components/statsprocessor/go.sum @@ -116,8 +116,9 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= diff --git a/comp/otelcol/otlp/testutil/go.mod b/comp/otelcol/otlp/testutil/go.mod index d092897c329c0..851e3aa6c47a0 100644 --- a/comp/otelcol/otlp/testutil/go.mod +++ b/comp/otelcol/otlp/testutil/go.mod @@ -40,7 +40,7 @@ require ( github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0 github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 github.com/DataDog/sketches-go v1.4.6 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.opentelemetry.io/collector/pdata v1.20.0 google.golang.org/protobuf v1.35.1 ) diff --git a/comp/otelcol/otlp/testutil/go.sum b/comp/otelcol/otlp/testutil/go.sum index b1b8218380841..c8de2ef38e100 100644 --- a/comp/otelcol/otlp/testutil/go.sum +++ b/comp/otelcol/otlp/testutil/go.sum @@ -224,8 +224,9 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= diff --git a/comp/serializer/compression/go.mod b/comp/serializer/compression/go.mod index 47015b1e18351..167dfbeb07366 100644 --- a/comp/serializer/compression/go.mod +++ b/comp/serializer/compression/go.mod @@ -86,7 +86,7 @@ require ( github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.0.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/stretchr/testify v1.9.0 // indirect + github.com/stretchr/testify v1.10.0 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect diff --git a/comp/serializer/compression/go.sum b/comp/serializer/compression/go.sum index 92da8d2bede28..7d46104035796 100644 --- a/comp/serializer/compression/go.sum +++ b/comp/serializer/compression/go.sum @@ -208,8 +208,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/comp/trace/agent/def/go.sum b/comp/trace/agent/def/go.sum index 15c48a0e652e6..96f740f700c35 100644 --- a/comp/trace/agent/def/go.sum +++ b/comp/trace/agent/def/go.sum @@ -33,8 +33,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= github.com/vmihailenco/msgpack/v4 v4.3.12 h1:07s4sz9IReOgdikxLTKNbBdqDMLsjPKXwvCazn8G65U= diff --git a/go.mod b/go.mod index a7a791af88629..864ec4fd5dc6c 100644 --- a/go.mod +++ b/go.mod @@ -274,7 +274,7 @@ require ( github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 github.com/streadway/amqp v1.1.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 github.com/tinylib/msgp v1.2.4 github.com/twmb/murmur3 v1.1.8 diff --git a/go.sum b/go.sum index cb2bc7549b4d4..465ece1027020 100644 --- a/go.sum +++ b/go.sum @@ -1768,8 +1768,9 @@ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1F github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= diff --git a/internal/tools/go.mod b/internal/tools/go.mod index 0062abfb5a49d..1ff612a893c22 100644 --- a/internal/tools/go.mod +++ b/internal/tools/go.mod @@ -195,7 +195,7 @@ require ( github.com/ssgreg/nlreturn/v2 v2.2.1 // indirect github.com/stbenjam/no-sprintf-host-port v0.1.1 // indirect github.com/stretchr/objx v0.5.2 // indirect - github.com/stretchr/testify v1.9.0 // indirect + github.com/stretchr/testify v1.10.0 // indirect github.com/subosito/gotenv v1.4.2 // indirect github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c // indirect github.com/tdakkota/asciicheck v0.2.0 // indirect diff --git a/internal/tools/go.sum b/internal/tools/go.sum index a47b8b5e8a6af..9a7b4402f18d2 100644 --- a/internal/tools/go.sum +++ b/internal/tools/go.sum @@ -660,8 +660,9 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8= github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c h1:+aPplBwWcHBo6q9xrfWdMrT9o4kltkmmvpemgIjep/8= diff --git a/internal/tools/modparser/go.mod b/internal/tools/modparser/go.mod index f6850c8bf7d2e..9ff9bcc206498 100644 --- a/internal/tools/modparser/go.mod +++ b/internal/tools/modparser/go.mod @@ -3,7 +3,7 @@ module github.com/DataDog/datadog-agent/internal/tools/modparser go 1.22.0 require ( - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 golang.org/x/mod v0.22.0 ) diff --git a/internal/tools/modparser/go.sum b/internal/tools/modparser/go.sum index 9cc00d9a761fc..0f285622b01a1 100644 --- a/internal/tools/modparser/go.sum +++ b/internal/tools/modparser/go.sum @@ -2,8 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= diff --git a/pkg/aggregator/ckey/go.mod b/pkg/aggregator/ckey/go.mod index 22cf02ba1e175..b56ec53b6793f 100644 --- a/pkg/aggregator/ckey/go.mod +++ b/pkg/aggregator/ckey/go.mod @@ -10,7 +10,7 @@ replace ( require ( github.com/DataDog/datadog-agent/pkg/tagset v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/sort v0.56.0-rc.3 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 github.com/twmb/murmur3 v1.1.8 ) diff --git a/pkg/aggregator/ckey/go.sum b/pkg/aggregator/ckey/go.sum index ec7ea5a8e7dbd..61bd0aafe2d5f 100644 --- a/pkg/aggregator/ckey/go.sum +++ b/pkg/aggregator/ckey/go.sum @@ -2,8 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/twmb/murmur3 v1.1.8 h1:8Yt9taO/WN3l08xErzjeschgZU2QSrwm1kclYq+0aRg= github.com/twmb/murmur3 v1.1.8/go.mod h1:Qq/R7NUyOfr65zD+6Q5IHKsJLwP7exErjN6lyyq3OSQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= diff --git a/pkg/api/go.mod b/pkg/api/go.mod index a0cc8796129ea..564ddda94e787 100644 --- a/pkg/api/go.mod +++ b/pkg/api/go.mod @@ -45,7 +45,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/pkg/api/go.sum b/pkg/api/go.sum index bbea552f0eb1a..a29a7509778c0 100644 --- a/pkg/api/go.sum +++ b/pkg/api/go.sum @@ -206,8 +206,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/pkg/collector/corechecks/snmp/internal/checkconfig/config_test.go b/pkg/collector/corechecks/snmp/internal/checkconfig/config_test.go index d8536a4931cb6..07b6ba9eefaa4 100644 --- a/pkg/collector/corechecks/snmp/internal/checkconfig/config_test.go +++ b/pkg/collector/corechecks/snmp/internal/checkconfig/config_test.go @@ -2138,14 +2138,14 @@ func TestCheckConfig_Copy(t *testing.T) { assert.Equal(t, &config, configCopy) - assert.NotSame(t, config.RequestedMetrics, configCopy.RequestedMetrics) - assert.NotSame(t, config.RequestedMetricTags, configCopy.RequestedMetricTags) - assert.NotSame(t, config.Metrics, configCopy.Metrics) - assert.NotSame(t, config.MetricTags, configCopy.MetricTags) - assert.NotSame(t, config.ProfileTags, configCopy.ProfileTags) - assert.NotSame(t, config.ExtraTags, configCopy.ExtraTags) - assert.NotSame(t, config.InstanceTags, configCopy.InstanceTags) - assert.NotSame(t, config.DeviceIDTags, configCopy.DeviceIDTags) + assert.NotSame(t, &config.RequestedMetrics, &configCopy.RequestedMetrics) + assert.NotSame(t, &config.RequestedMetricTags, &configCopy.RequestedMetricTags) + assert.NotSame(t, &config.Metrics, &configCopy.Metrics) + assert.NotSame(t, &config.MetricTags, &configCopy.MetricTags) + assert.NotSame(t, &config.ProfileTags, &configCopy.ProfileTags) + assert.NotSame(t, &config.ExtraTags, &configCopy.ExtraTags) + assert.NotSame(t, &config.InstanceTags, &configCopy.InstanceTags) + assert.NotSame(t, &config.DeviceIDTags, &configCopy.DeviceIDTags) } func TestCheckConfig_CopyWithNewIP(t *testing.T) { diff --git a/pkg/config/env/go.mod b/pkg/config/env/go.mod index 28028eb906718..1b8b190d06565 100644 --- a/pkg/config/env/go.mod +++ b/pkg/config/env/go.mod @@ -15,7 +15,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/filesystem v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/system/socket v0.56.0-rc.3 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/pkg/config/env/go.sum b/pkg/config/env/go.sum index 1a87a4e1f8386..9188458276b35 100644 --- a/pkg/config/env/go.sum +++ b/pkg/config/env/go.sum @@ -172,8 +172,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= diff --git a/pkg/config/mock/go.mod b/pkg/config/mock/go.mod index 3559629c3d248..d027b1ccacdaf 100644 --- a/pkg/config/mock/go.mod +++ b/pkg/config/mock/go.mod @@ -32,7 +32,7 @@ replace ( require ( github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/pkg/config/mock/go.sum b/pkg/config/mock/go.sum index 164d7c1e62c7d..e430d7f027344 100644 --- a/pkg/config/mock/go.sum +++ b/pkg/config/mock/go.sum @@ -204,8 +204,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/pkg/config/model/go.mod b/pkg/config/model/go.mod index 82e1928f3ba1c..3ac77b920f8ee 100644 --- a/pkg/config/model/go.mod +++ b/pkg/config/model/go.mod @@ -13,7 +13,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 github.com/DataDog/viper v1.13.5 github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f ) diff --git a/pkg/config/model/go.sum b/pkg/config/model/go.sum index 1abeca65a7f43..5ce9e24cba406 100644 --- a/pkg/config/model/go.sum +++ b/pkg/config/model/go.sum @@ -152,8 +152,8 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= diff --git a/pkg/config/nodetreemodel/go.mod b/pkg/config/nodetreemodel/go.mod index dbf7e7ae941d5..c51f9361c60b6 100644 --- a/pkg/config/nodetreemodel/go.mod +++ b/pkg/config/nodetreemodel/go.mod @@ -17,7 +17,7 @@ require ( github.com/DataDog/viper v1.13.5 github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 github.com/spf13/cast v1.7.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.uber.org/atomic v1.11.0 golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f gopkg.in/yaml.v2 v2.4.0 diff --git a/pkg/config/nodetreemodel/go.sum b/pkg/config/nodetreemodel/go.sum index a8411cb4b4df2..1211d26367b59 100644 --- a/pkg/config/nodetreemodel/go.sum +++ b/pkg/config/nodetreemodel/go.sum @@ -155,8 +155,8 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= diff --git a/pkg/config/remote/go.mod b/pkg/config/remote/go.mod index b87c51a79735d..2c972c2f7493e 100644 --- a/pkg/config/remote/go.mod +++ b/pkg/config/remote/go.mod @@ -56,7 +56,7 @@ require ( github.com/benbjohnson/clock v1.3.0 github.com/pkg/errors v0.9.1 github.com/secure-systems-lab/go-securesystemslib v0.7.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.etcd.io/bbolt v1.3.7 go.uber.org/atomic v1.11.0 google.golang.org/protobuf v1.33.0 diff --git a/pkg/config/remote/go.sum b/pkg/config/remote/go.sum index 417661769c498..3cd90e3c78269 100644 --- a/pkg/config/remote/go.sum +++ b/pkg/config/remote/go.sum @@ -293,8 +293,8 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= diff --git a/pkg/config/setup/go.mod b/pkg/config/setup/go.mod index ed5d5cfaf6323..32bbab5773575 100644 --- a/pkg/config/setup/go.mod +++ b/pkg/config/setup/go.mod @@ -49,7 +49,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.uber.org/fx v1.22.2 gopkg.in/yaml.v2 v2.4.0 ) diff --git a/pkg/config/setup/go.sum b/pkg/config/setup/go.sum index 76459cb929a41..4e9fda91af3c1 100644 --- a/pkg/config/setup/go.sum +++ b/pkg/config/setup/go.sum @@ -212,8 +212,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/pkg/config/structure/go.mod b/pkg/config/structure/go.mod index 74021409df252..11b426b459fac 100644 --- a/pkg/config/structure/go.mod +++ b/pkg/config/structure/go.mod @@ -38,7 +38,7 @@ require ( github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.0.0-00010101000000-000000000000 github.com/DataDog/viper v1.13.5 github.com/spf13/cast v1.7.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/pkg/config/structure/go.sum b/pkg/config/structure/go.sum index 7a923e42a77c2..ad0bf8e1c5d21 100644 --- a/pkg/config/structure/go.sum +++ b/pkg/config/structure/go.sum @@ -157,8 +157,8 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= diff --git a/pkg/config/teeconfig/go.sum b/pkg/config/teeconfig/go.sum index 4fd9cf82cf2c3..02e64e7a0270b 100644 --- a/pkg/config/teeconfig/go.sum +++ b/pkg/config/teeconfig/go.sum @@ -153,8 +153,8 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= diff --git a/pkg/config/utils/go.mod b/pkg/config/utils/go.mod index c918f10139e5f..ca43715e1bd66 100644 --- a/pkg/config/utils/go.mod +++ b/pkg/config/utils/go.mod @@ -40,7 +40,7 @@ require ( github.com/DataDog/datadog-agent/pkg/config/structure v0.59.0 github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/pkg/config/utils/go.sum b/pkg/config/utils/go.sum index 164d7c1e62c7d..e430d7f027344 100644 --- a/pkg/config/utils/go.sum +++ b/pkg/config/utils/go.sum @@ -204,8 +204,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/pkg/errors/go.mod b/pkg/errors/go.mod index 60ed78514353b..808a90c342fb2 100644 --- a/pkg/errors/go.mod +++ b/pkg/errors/go.mod @@ -2,7 +2,7 @@ module github.com/DataDog/datadog-agent/pkg/errors go 1.22.0 -require github.com/stretchr/testify v1.9.0 +require github.com/stretchr/testify v1.10.0 require ( github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/pkg/errors/go.sum b/pkg/errors/go.sum index 60ce688a04104..713a0b4f0a3a9 100644 --- a/pkg/errors/go.sum +++ b/pkg/errors/go.sum @@ -2,8 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/pkg/gohai/go.mod b/pkg/gohai/go.mod index 94fd87c288708..62c36204e984d 100644 --- a/pkg/gohai/go.mod +++ b/pkg/gohai/go.mod @@ -9,7 +9,7 @@ require ( github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 github.com/moby/sys/mountinfo v0.7.2 github.com/shirou/gopsutil/v3 v3.24.5 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 golang.org/x/sys v0.27.0 ) diff --git a/pkg/gohai/go.sum b/pkg/gohai/go.sum index 52888d504c7f5..b263ca25c2cfa 100644 --- a/pkg/gohai/go.sum +++ b/pkg/gohai/go.sum @@ -33,8 +33,8 @@ github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFt github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/pkg/linters/components/pkgconfigusage/go.mod b/pkg/linters/components/pkgconfigusage/go.mod index b6283b65dfa3d..a2c57afec4295 100644 --- a/pkg/linters/components/pkgconfigusage/go.mod +++ b/pkg/linters/components/pkgconfigusage/go.mod @@ -4,7 +4,7 @@ go 1.22.0 require ( github.com/golangci/plugin-module-register v0.1.1 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 golang.org/x/tools v0.27.0 ) diff --git a/pkg/linters/components/pkgconfigusage/go.sum b/pkg/linters/components/pkgconfigusage/go.sum index 15ea6b72c9e0e..870d5762aac9c 100644 --- a/pkg/linters/components/pkgconfigusage/go.sum +++ b/pkg/linters/components/pkgconfigusage/go.sum @@ -6,8 +6,8 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= diff --git a/pkg/logs/auditor/go.mod b/pkg/logs/auditor/go.mod index 6d6750edab39c..3f1f340492b82 100644 --- a/pkg/logs/auditor/go.mod +++ b/pkg/logs/auditor/go.mod @@ -48,7 +48,7 @@ require ( github.com/DataDog/datadog-agent/pkg/logs/sources v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/status/health v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/pkg/logs/auditor/go.sum b/pkg/logs/auditor/go.sum index 164d7c1e62c7d..e430d7f027344 100644 --- a/pkg/logs/auditor/go.sum +++ b/pkg/logs/auditor/go.sum @@ -204,8 +204,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/pkg/logs/client/go.mod b/pkg/logs/client/go.mod index 248888b50ddfe..37afb20c767e6 100644 --- a/pkg/logs/client/go.mod +++ b/pkg/logs/client/go.mod @@ -62,7 +62,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/http v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 golang.org/x/net v0.31.0 ) diff --git a/pkg/logs/client/go.sum b/pkg/logs/client/go.sum index b0bb34141f5f1..9ae147b4a2090 100644 --- a/pkg/logs/client/go.sum +++ b/pkg/logs/client/go.sum @@ -210,8 +210,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/pkg/logs/diagnostic/go.mod b/pkg/logs/diagnostic/go.mod index f3dba3dfded9e..d18d52a220f67 100644 --- a/pkg/logs/diagnostic/go.mod +++ b/pkg/logs/diagnostic/go.mod @@ -49,7 +49,7 @@ require ( github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 github.com/DataDog/datadog-agent/pkg/logs/message v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/logs/sources v0.56.0-rc.3 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/pkg/logs/diagnostic/go.sum b/pkg/logs/diagnostic/go.sum index bbea552f0eb1a..a29a7509778c0 100644 --- a/pkg/logs/diagnostic/go.sum +++ b/pkg/logs/diagnostic/go.sum @@ -206,8 +206,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/pkg/logs/message/go.mod b/pkg/logs/message/go.mod index edd47485ff8b4..18a8e92f8509f 100644 --- a/pkg/logs/message/go.mod +++ b/pkg/logs/message/go.mod @@ -43,7 +43,7 @@ require ( github.com/DataDog/datadog-agent/comp/logs/agent/config v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/logs/sources v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/pkg/logs/message/go.sum b/pkg/logs/message/go.sum index 164d7c1e62c7d..e430d7f027344 100644 --- a/pkg/logs/message/go.sum +++ b/pkg/logs/message/go.sum @@ -204,8 +204,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/pkg/logs/metrics/go.mod b/pkg/logs/metrics/go.mod index d7a851d653b61..077d2988f4c47 100644 --- a/pkg/logs/metrics/go.mod +++ b/pkg/logs/metrics/go.mod @@ -14,7 +14,7 @@ replace ( require ( github.com/DataDog/datadog-agent/pkg/telemetry v0.56.0-rc.3 github.com/benbjohnson/clock v1.3.5 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/pkg/logs/metrics/go.sum b/pkg/logs/metrics/go.sum index 38747b0736c7d..849ce5d2e6795 100644 --- a/pkg/logs/metrics/go.sum +++ b/pkg/logs/metrics/go.sum @@ -47,8 +47,8 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= go.opentelemetry.io/otel/exporters/prometheus v0.42.0 h1:jwV9iQdvp38fxXi8ZC+lNpxjK16MRcZlpDYvbuO1FiA= diff --git a/pkg/logs/pipeline/go.mod b/pkg/logs/pipeline/go.mod index 256b00b4cc489..11443f4acc6de 100644 --- a/pkg/logs/pipeline/go.mod +++ b/pkg/logs/pipeline/go.mod @@ -74,7 +74,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/DataDog/datadog-agent/pkg/util/startstop v0.56.0-rc.3 github.com/hashicorp/go-multierror v1.1.1 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.uber.org/atomic v1.11.0 ) diff --git a/pkg/logs/pipeline/go.sum b/pkg/logs/pipeline/go.sum index 3bc6eb3412ee8..f769262396028 100644 --- a/pkg/logs/pipeline/go.sum +++ b/pkg/logs/pipeline/go.sum @@ -221,8 +221,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/pkg/logs/processor/go.mod b/pkg/logs/processor/go.mod index 97ccb212e5894..70a6775f262e9 100644 --- a/pkg/logs/processor/go.mod +++ b/pkg/logs/processor/go.mod @@ -58,7 +58,7 @@ require ( github.com/DataDog/datadog-agent/pkg/logs/sds v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/logs/sources v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/pkg/logs/processor/go.sum b/pkg/logs/processor/go.sum index 6d53c6bedf790..23deabea16b5e 100644 --- a/pkg/logs/processor/go.sum +++ b/pkg/logs/processor/go.sum @@ -217,8 +217,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/pkg/logs/sds/go.mod b/pkg/logs/sds/go.mod index 43da29661237f..5791f5434e1f6 100644 --- a/pkg/logs/sds/go.mod +++ b/pkg/logs/sds/go.mod @@ -54,7 +54,7 @@ require ( github.com/DataDog/datadog-agent/pkg/telemetry v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/pkg/logs/sds/go.sum b/pkg/logs/sds/go.sum index d8485f7587c11..71aa3ceef1969 100644 --- a/pkg/logs/sds/go.sum +++ b/pkg/logs/sds/go.sum @@ -210,8 +210,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/pkg/logs/sender/go.mod b/pkg/logs/sender/go.mod index f26fcc4e5ef98..98b69acde609e 100644 --- a/pkg/logs/sender/go.mod +++ b/pkg/logs/sender/go.mod @@ -61,7 +61,7 @@ require ( github.com/DataDog/datadog-agent/pkg/telemetry v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/benbjohnson/clock v1.3.5 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/pkg/logs/sender/go.sum b/pkg/logs/sender/go.sum index b0bb34141f5f1..9ae147b4a2090 100644 --- a/pkg/logs/sender/go.sum +++ b/pkg/logs/sender/go.sum @@ -210,8 +210,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/pkg/logs/sources/go.mod b/pkg/logs/sources/go.mod index 48700f9bea973..ec060a733c103 100644 --- a/pkg/logs/sources/go.mod +++ b/pkg/logs/sources/go.mod @@ -43,7 +43,7 @@ require ( github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/DataDog/datadog-agent/pkg/util/statstracker v0.56.0-rc.3 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/pkg/logs/sources/go.sum b/pkg/logs/sources/go.sum index 164d7c1e62c7d..e430d7f027344 100644 --- a/pkg/logs/sources/go.sum +++ b/pkg/logs/sources/go.sum @@ -204,8 +204,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/pkg/logs/status/utils/go.mod b/pkg/logs/status/utils/go.mod index e9dd8e2332f2a..4a6fe8f44b45b 100644 --- a/pkg/logs/status/utils/go.mod +++ b/pkg/logs/status/utils/go.mod @@ -3,7 +3,7 @@ module github.com/DataDog/datadog-agent/pkg/logs/status/utils go 1.22.0 require ( - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.uber.org/atomic v1.11.0 ) diff --git a/pkg/logs/status/utils/go.sum b/pkg/logs/status/utils/go.sum index 8040b08ea112f..82752f45a5c57 100644 --- a/pkg/logs/status/utils/go.sum +++ b/pkg/logs/status/utils/go.sum @@ -2,8 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= diff --git a/pkg/logs/util/testutils/go.sum b/pkg/logs/util/testutils/go.sum index 164d7c1e62c7d..e430d7f027344 100644 --- a/pkg/logs/util/testutils/go.sum +++ b/pkg/logs/util/testutils/go.sum @@ -204,8 +204,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/pkg/metrics/go.mod b/pkg/metrics/go.mod index 2dd14396a7fef..6eb9ddca00743 100644 --- a/pkg/metrics/go.mod +++ b/pkg/metrics/go.mod @@ -48,7 +48,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/buf v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.uber.org/atomic v1.11.0 ) diff --git a/pkg/metrics/go.sum b/pkg/metrics/go.sum index e95081bd9b2e1..e4427151a2e4e 100644 --- a/pkg/metrics/go.sum +++ b/pkg/metrics/go.sum @@ -219,8 +219,8 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/pkg/networkdevice/profile/go.mod b/pkg/networkdevice/profile/go.mod index a597437498afe..a6b2ee6565e5f 100644 --- a/pkg/networkdevice/profile/go.mod +++ b/pkg/networkdevice/profile/go.mod @@ -5,7 +5,7 @@ go 1.22.0 require ( github.com/invopop/jsonschema v0.10.0 github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 gopkg.in/yaml.v2 v2.4.0 ) diff --git a/pkg/networkdevice/profile/go.sum b/pkg/networkdevice/profile/go.sum index 3ed0cc77db449..695fa1448f3c5 100644 --- a/pkg/networkdevice/profile/go.sum +++ b/pkg/networkdevice/profile/go.sum @@ -25,8 +25,8 @@ github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjR github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 h1:lZUw3E0/J3roVtGQ+SCrUrg3ON6NgVqpn3+iol9aGu4= github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPOhJotwFIyu2bBVN41fcDUY= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/wk8/go-ordered-map/v2 v2.1.8 h1:5h/BUHu93oj4gIdvHHHGsScSTMijfx5PeYkE/fJgbpc= github.com/wk8/go-ordered-map/v2 v2.1.8/go.mod h1:5nJHM5DyteebpVlHnWMV0rPz6Zp7+xBAnxjb1X5vnTw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/pkg/obfuscate/go.mod b/pkg/obfuscate/go.mod index 5f971734fcc4d..a3d535152eaea 100644 --- a/pkg/obfuscate/go.mod +++ b/pkg/obfuscate/go.mod @@ -6,7 +6,7 @@ require ( github.com/DataDog/datadog-go/v5 v5.5.0 github.com/DataDog/go-sqllexer v0.0.16 github.com/outcaste-io/ristretto v0.2.1 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.uber.org/atomic v1.10.0 ) diff --git a/pkg/obfuscate/go.sum b/pkg/obfuscate/go.sum index bcde2c4fb8e42..67a3e97516066 100644 --- a/pkg/obfuscate/go.sum +++ b/pkg/obfuscate/go.sum @@ -33,8 +33,8 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= diff --git a/pkg/orchestrator/model/go.sum b/pkg/orchestrator/model/go.sum index 5b3325ed13caf..2a28262f8369e 100644 --- a/pkg/orchestrator/model/go.sum +++ b/pkg/orchestrator/model/go.sum @@ -6,8 +6,8 @@ github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaR github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= diff --git a/pkg/process/util/api/go.mod b/pkg/process/util/api/go.mod index d995db5542469..93976516667be 100644 --- a/pkg/process/util/api/go.mod +++ b/pkg/process/util/api/go.mod @@ -14,7 +14,7 @@ require ( github.com/DataDog/agent-payload/v5 v5.0.114 github.com/DataDog/datadog-agent/pkg/telemetry v0.56.0-rc.3 github.com/gogo/protobuf v1.3.2 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/pkg/process/util/api/go.sum b/pkg/process/util/api/go.sum index b7b19b994a6da..7bf6969c0a53f 100644 --- a/pkg/process/util/api/go.sum +++ b/pkg/process/util/api/go.sum @@ -57,8 +57,8 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= diff --git a/pkg/proto/go.mod b/pkg/proto/go.mod index 2d92d4dfb9a31..3388c80e01d9f 100644 --- a/pkg/proto/go.mod +++ b/pkg/proto/go.mod @@ -9,7 +9,7 @@ require ( github.com/golang/protobuf v1.5.4 github.com/google/gofuzz v1.2.0 github.com/grpc-ecosystem/grpc-gateway v1.16.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 github.com/tinylib/msgp v1.1.8 github.com/vmihailenco/msgpack/v4 v4.3.12 google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d diff --git a/pkg/proto/go.sum b/pkg/proto/go.sum index 094c1167e0ff4..eb8bcf8192e2c 100644 --- a/pkg/proto/go.sum +++ b/pkg/proto/go.sum @@ -49,8 +49,8 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1: github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= github.com/vmihailenco/msgpack/v4 v4.3.12 h1:07s4sz9IReOgdikxLTKNbBdqDMLsjPKXwvCazn8G65U= diff --git a/pkg/remoteconfig/state/go.mod b/pkg/remoteconfig/state/go.mod index e78e465ed195b..8c36bdf9eee56 100644 --- a/pkg/remoteconfig/state/go.mod +++ b/pkg/remoteconfig/state/go.mod @@ -6,7 +6,7 @@ require ( github.com/DataDog/go-tuf v1.1.0-0.5.2 github.com/pkg/errors v0.9.1 github.com/secure-systems-lab/go-securesystemslib v0.7.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/pkg/remoteconfig/state/go.sum b/pkg/remoteconfig/state/go.sum index 6f9c918b2893e..f908ba00a83e8 100644 --- a/pkg/remoteconfig/state/go.sum +++ b/pkg/remoteconfig/state/go.sum @@ -18,8 +18,8 @@ github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZV github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/secure-systems-lab/go-securesystemslib v0.7.0 h1:OwvJ5jQf9LnIAS83waAjPbcMsODrTQUpJ02eNLUoxBg= github.com/secure-systems-lab/go-securesystemslib v0.7.0/go.mod h1:/2gYnlnHVQ6xeGtfIqFy7Do03K4cdCY0A/GlJLDKLHI= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= diff --git a/pkg/security/secl/go.mod b/pkg/security/secl/go.mod index 9e1263fed7d5d..90fe310f06435 100644 --- a/pkg/security/secl/go.mod +++ b/pkg/security/secl/go.mod @@ -16,7 +16,7 @@ require ( github.com/jellydator/ttlcache/v3 v3.3.0 github.com/skydive-project/go-debouncer v1.0.0 github.com/spf13/cast v1.7.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 github.com/xeipuuv/gojsonschema v1.2.0 golang.org/x/sys v0.27.0 golang.org/x/text v0.20.0 diff --git a/pkg/security/secl/go.sum b/pkg/security/secl/go.sum index 790ae4a5627db..16e4c35e91833 100644 --- a/pkg/security/secl/go.sum +++ b/pkg/security/secl/go.sum @@ -61,8 +61,8 @@ github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cA github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= diff --git a/pkg/security/seclwin/go.sum b/pkg/security/seclwin/go.sum index 357acc1abc086..1449dfd6b9037 100644 --- a/pkg/security/seclwin/go.sum +++ b/pkg/security/seclwin/go.sum @@ -12,8 +12,8 @@ github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94 github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= diff --git a/pkg/serializer/go.mod b/pkg/serializer/go.mod index 15122b4a65601..891083ce4c897 100644 --- a/pkg/serializer/go.mod +++ b/pkg/serializer/go.mod @@ -84,7 +84,7 @@ require ( github.com/json-iterator/go v1.1.12 github.com/protocolbuffers/protoscope v0.0.0-20221109213918-8e7a6aafa2c9 github.com/richardartoul/molecule v1.0.1-0.20221107223329-32cfee06a052 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 google.golang.org/protobuf v1.34.2 ) diff --git a/pkg/serializer/go.sum b/pkg/serializer/go.sum index f9739a4e3944c..6244a063459c5 100644 --- a/pkg/serializer/go.sum +++ b/pkg/serializer/go.sum @@ -264,8 +264,9 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/pkg/status/health/go.mod b/pkg/status/health/go.mod index bb3c1be9842f9..e5bb4fffa9003 100644 --- a/pkg/status/health/go.mod +++ b/pkg/status/health/go.mod @@ -2,7 +2,7 @@ module github.com/DataDog/datadog-agent/pkg/status/health go 1.22.0 -require github.com/stretchr/testify v1.9.0 +require github.com/stretchr/testify v1.10.0 require ( github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/pkg/status/health/go.sum b/pkg/status/health/go.sum index 60ce688a04104..713a0b4f0a3a9 100644 --- a/pkg/status/health/go.sum +++ b/pkg/status/health/go.sum @@ -2,8 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/pkg/tagset/go.mod b/pkg/tagset/go.mod index 4852f516a8536..ac929946f609e 100644 --- a/pkg/tagset/go.mod +++ b/pkg/tagset/go.mod @@ -6,7 +6,7 @@ replace github.com/DataDog/datadog-agent/pkg/util/sort => ../util/sort/ require ( github.com/DataDog/datadog-agent/pkg/util/sort v0.56.0-rc.3 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 github.com/twmb/murmur3 v1.1.8 ) diff --git a/pkg/tagset/go.sum b/pkg/tagset/go.sum index ec7ea5a8e7dbd..61bd0aafe2d5f 100644 --- a/pkg/tagset/go.sum +++ b/pkg/tagset/go.sum @@ -2,8 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/twmb/murmur3 v1.1.8 h1:8Yt9taO/WN3l08xErzjeschgZU2QSrwm1kclYq+0aRg= github.com/twmb/murmur3 v1.1.8/go.mod h1:Qq/R7NUyOfr65zD+6Q5IHKsJLwP7exErjN6lyyq3OSQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= diff --git a/pkg/telemetry/go.mod b/pkg/telemetry/go.mod index d4dd6b23365ad..1380e174bb06c 100644 --- a/pkg/telemetry/go.mod +++ b/pkg/telemetry/go.mod @@ -33,7 +33,7 @@ require ( github.com/prometheus/procfs v0.11.1 // indirect github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/stretchr/testify v1.9.0 // indirect + github.com/stretchr/testify v1.10.0 // indirect go.opentelemetry.io/otel v1.27.0 // indirect go.opentelemetry.io/otel/exporters/prometheus v0.42.0 // indirect go.opentelemetry.io/otel/metric v1.27.0 // indirect diff --git a/pkg/telemetry/go.sum b/pkg/telemetry/go.sum index 17c930e91caec..485978297a294 100644 --- a/pkg/telemetry/go.sum +++ b/pkg/telemetry/go.sum @@ -45,8 +45,8 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= go.opentelemetry.io/otel/exporters/prometheus v0.42.0 h1:jwV9iQdvp38fxXi8ZC+lNpxjK16MRcZlpDYvbuO1FiA= diff --git a/pkg/trace/go.mod b/pkg/trace/go.mod index 66b36093d36c4..3dd9fd6abd609 100644 --- a/pkg/trace/go.mod +++ b/pkg/trace/go.mod @@ -33,7 +33,7 @@ require ( github.com/google/uuid v1.6.0 github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 github.com/shirou/gopsutil/v3 v3.24.4 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 github.com/tinylib/msgp v1.1.8 github.com/vmihailenco/msgpack/v4 v4.3.12 go.opentelemetry.io/collector/component v0.114.0 // indirect diff --git a/pkg/trace/go.sum b/pkg/trace/go.sum index 0f33fc983415d..1b9afa36fddb2 100644 --- a/pkg/trace/go.sum +++ b/pkg/trace/go.sum @@ -169,8 +169,9 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= diff --git a/pkg/trace/stats/oteltest/go.mod b/pkg/trace/stats/oteltest/go.mod index 9af8a62565b80..a95e3c9144023 100644 --- a/pkg/trace/stats/oteltest/go.mod +++ b/pkg/trace/stats/oteltest/go.mod @@ -9,7 +9,7 @@ require ( github.com/DataDog/datadog-go/v5 v5.5.0 github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 github.com/google/go-cmp v0.6.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.opentelemetry.io/collector/component/componenttest v0.114.0 go.opentelemetry.io/collector/pdata v1.20.0 go.opentelemetry.io/collector/semconv v0.114.0 diff --git a/pkg/trace/stats/oteltest/go.sum b/pkg/trace/stats/oteltest/go.sum index 1698d19621bf8..471fdccea1d4d 100644 --- a/pkg/trace/stats/oteltest/go.sum +++ b/pkg/trace/stats/oteltest/go.sum @@ -116,8 +116,9 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= diff --git a/pkg/util/backoff/go.mod b/pkg/util/backoff/go.mod index d0b3e29bf3d43..9cf1b36b6806f 100644 --- a/pkg/util/backoff/go.mod +++ b/pkg/util/backoff/go.mod @@ -2,7 +2,7 @@ module github.com/DataDog/datadog-agent/pkg/util/backoff go 1.22.0 -require github.com/stretchr/testify v1.9.0 +require github.com/stretchr/testify v1.10.0 require ( github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/pkg/util/backoff/go.sum b/pkg/util/backoff/go.sum index 60ce688a04104..713a0b4f0a3a9 100644 --- a/pkg/util/backoff/go.sum +++ b/pkg/util/backoff/go.sum @@ -2,8 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/pkg/util/buf/go.mod b/pkg/util/buf/go.mod index ecbb514f609f4..4a0c13b4fd2fd 100644 --- a/pkg/util/buf/go.mod +++ b/pkg/util/buf/go.mod @@ -2,7 +2,7 @@ module github.com/DataDog/datadog-agent/pkg/util/buf go 1.22.0 -require github.com/stretchr/testify v1.9.0 +require github.com/stretchr/testify v1.10.0 require ( github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/pkg/util/buf/go.sum b/pkg/util/buf/go.sum index 60ce688a04104..713a0b4f0a3a9 100644 --- a/pkg/util/buf/go.sum +++ b/pkg/util/buf/go.sum @@ -2,8 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/pkg/util/cache/go.mod b/pkg/util/cache/go.mod index c9235e5db8314..16941396b78b5 100644 --- a/pkg/util/cache/go.mod +++ b/pkg/util/cache/go.mod @@ -4,7 +4,7 @@ go 1.22.0 require ( github.com/patrickmn/go-cache v2.1.0+incompatible - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/pkg/util/cache/go.sum b/pkg/util/cache/go.sum index d1ca0678c041b..291f4f06bcf16 100644 --- a/pkg/util/cache/go.sum +++ b/pkg/util/cache/go.sum @@ -4,8 +4,8 @@ github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaR github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/pkg/util/cgroups/go.mod b/pkg/util/cgroups/go.mod index 4b1dbb6e3be2d..fdb99e4995e03 100644 --- a/pkg/util/cgroups/go.mod +++ b/pkg/util/cgroups/go.mod @@ -14,7 +14,7 @@ require ( github.com/containerd/cgroups/v3 v3.0.2 github.com/google/go-cmp v0.6.0 github.com/karrick/godirwalk v1.17.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/pkg/util/cgroups/go.sum b/pkg/util/cgroups/go.sum index df00131f5e6cf..5b1eff0bbdf56 100644 --- a/pkg/util/cgroups/go.sum +++ b/pkg/util/cgroups/go.sum @@ -20,8 +20,8 @@ github.com/opencontainers/runtime-spec v1.0.2 h1:UfAcuLBJB9Coz72x1hgl8O5RVzTdNia github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= diff --git a/pkg/util/common/go.mod b/pkg/util/common/go.mod index a9f6cbc90625d..1971e45bf1627 100644 --- a/pkg/util/common/go.mod +++ b/pkg/util/common/go.mod @@ -2,7 +2,7 @@ module github.com/DataDog/datadog-agent/pkg/util/common go 1.22.0 -require github.com/stretchr/testify v1.9.0 +require github.com/stretchr/testify v1.10.0 require ( github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/pkg/util/common/go.sum b/pkg/util/common/go.sum index 60ce688a04104..713a0b4f0a3a9 100644 --- a/pkg/util/common/go.sum +++ b/pkg/util/common/go.sum @@ -2,8 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/pkg/util/containers/image/go.mod b/pkg/util/containers/image/go.mod index 7108f9f3db1a9..e94471c55838e 100644 --- a/pkg/util/containers/image/go.mod +++ b/pkg/util/containers/image/go.mod @@ -2,7 +2,7 @@ module github.com/DataDog/datadog-agent/pkg/util/containers/image go 1.22.0 -require github.com/stretchr/testify v1.9.0 +require github.com/stretchr/testify v1.10.0 require ( github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/pkg/util/containers/image/go.sum b/pkg/util/containers/image/go.sum index 60ce688a04104..713a0b4f0a3a9 100644 --- a/pkg/util/containers/image/go.sum +++ b/pkg/util/containers/image/go.sum @@ -2,8 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/pkg/util/defaultpaths/go.sum b/pkg/util/defaultpaths/go.sum index 2444ae15ecba4..f51e7d258022c 100644 --- a/pkg/util/defaultpaths/go.sum +++ b/pkg/util/defaultpaths/go.sum @@ -6,8 +6,8 @@ github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uia github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= diff --git a/pkg/util/executable/go.mod b/pkg/util/executable/go.mod index 321ce303bd76d..c3081fb6e6913 100644 --- a/pkg/util/executable/go.mod +++ b/pkg/util/executable/go.mod @@ -4,7 +4,7 @@ go 1.22.0 require ( github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/pkg/util/executable/go.sum b/pkg/util/executable/go.sum index 019aeec36eaa7..575488bc2ce21 100644 --- a/pkg/util/executable/go.sum +++ b/pkg/util/executable/go.sum @@ -4,8 +4,8 @@ github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uia github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/pkg/util/filesystem/go.mod b/pkg/util/filesystem/go.mod index 16bd7778b0411..932960867b175 100644 --- a/pkg/util/filesystem/go.mod +++ b/pkg/util/filesystem/go.mod @@ -12,7 +12,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 github.com/shirou/gopsutil/v3 v3.23.9 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 golang.org/x/sys v0.27.0 ) diff --git a/pkg/util/filesystem/go.sum b/pkg/util/filesystem/go.sum index 2a30655ece48d..4b150782b098c 100644 --- a/pkg/util/filesystem/go.sum +++ b/pkg/util/filesystem/go.sum @@ -24,8 +24,8 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= diff --git a/pkg/util/flavor/go.mod b/pkg/util/flavor/go.mod index bf7c8684b66fd..39fabc94b2a48 100644 --- a/pkg/util/flavor/go.mod +++ b/pkg/util/flavor/go.mod @@ -32,7 +32,7 @@ replace ( require ( github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/pkg/util/flavor/go.sum b/pkg/util/flavor/go.sum index 164d7c1e62c7d..e430d7f027344 100644 --- a/pkg/util/flavor/go.sum +++ b/pkg/util/flavor/go.sum @@ -204,8 +204,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/pkg/util/fxutil/go.mod b/pkg/util/fxutil/go.mod index 687a5f0030218..83d3e4300e794 100644 --- a/pkg/util/fxutil/go.mod +++ b/pkg/util/fxutil/go.mod @@ -6,7 +6,7 @@ require ( github.com/DataDog/datadog-agent/comp/def v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/optional v0.55.0 github.com/spf13/cobra v1.7.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.uber.org/fx v1.22.2 ) diff --git a/pkg/util/fxutil/go.sum b/pkg/util/fxutil/go.sum index 039e347ff9cfc..135756fb05924 100644 --- a/pkg/util/fxutil/go.sum +++ b/pkg/util/fxutil/go.sum @@ -10,8 +10,8 @@ github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= diff --git a/pkg/util/grpc/go.mod b/pkg/util/grpc/go.mod index 7155ae759c0ea..fb126847139c8 100644 --- a/pkg/util/grpc/go.mod +++ b/pkg/util/grpc/go.mod @@ -40,7 +40,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 github.com/grpc-ecosystem/go-grpc-middleware v1.2.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 golang.org/x/net v0.31.0 google.golang.org/grpc v1.59.0 ) diff --git a/pkg/util/grpc/go.sum b/pkg/util/grpc/go.sum index 782b8e78f8e1f..890d295927625 100644 --- a/pkg/util/grpc/go.sum +++ b/pkg/util/grpc/go.sum @@ -221,8 +221,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= diff --git a/pkg/util/hostname/validate/go.mod b/pkg/util/hostname/validate/go.mod index f20a7bbcd105f..d3e137199e729 100644 --- a/pkg/util/hostname/validate/go.mod +++ b/pkg/util/hostname/validate/go.mod @@ -9,7 +9,7 @@ replace ( require ( github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/pkg/util/hostname/validate/go.sum b/pkg/util/hostname/validate/go.sum index caba8ce83c9f8..cf981ce9890ae 100644 --- a/pkg/util/hostname/validate/go.sum +++ b/pkg/util/hostname/validate/go.sum @@ -4,8 +4,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= diff --git a/pkg/util/http/go.mod b/pkg/util/http/go.mod index 603de761bfc27..587b03d209013 100644 --- a/pkg/util/http/go.mod +++ b/pkg/util/http/go.mod @@ -34,7 +34,7 @@ require ( github.com/DataDog/datadog-agent/pkg/config/mock v0.59.0 github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 golang.org/x/net v0.31.0 ) diff --git a/pkg/util/http/go.sum b/pkg/util/http/go.sum index 7905bae85c49e..a371e73ed50c4 100644 --- a/pkg/util/http/go.sum +++ b/pkg/util/http/go.sum @@ -204,8 +204,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/pkg/util/json/go.mod b/pkg/util/json/go.mod index 9e7ef3c021106..ec6c02f9ba767 100644 --- a/pkg/util/json/go.mod +++ b/pkg/util/json/go.mod @@ -4,7 +4,7 @@ go 1.22.0 require ( github.com/json-iterator/go v1.1.12 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/pkg/util/json/go.sum b/pkg/util/json/go.sum index 09fb446e3abf1..2366e268aa511 100644 --- a/pkg/util/json/go.sum +++ b/pkg/util/json/go.sum @@ -12,8 +12,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/pkg/util/log/go.mod b/pkg/util/log/go.mod index b6a3ea0fd9245..0133bd1143b94 100644 --- a/pkg/util/log/go.mod +++ b/pkg/util/log/go.mod @@ -7,7 +7,7 @@ replace github.com/DataDog/datadog-agent/pkg/util/scrubber => ../scrubber require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.uber.org/atomic v1.11.0 go.uber.org/zap v1.22.0 ) diff --git a/pkg/util/log/go.sum b/pkg/util/log/go.sum index a6e97cc4198be..991cb97eaba89 100644 --- a/pkg/util/log/go.sum +++ b/pkg/util/log/go.sum @@ -11,8 +11,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= diff --git a/pkg/util/log/setup/go.mod b/pkg/util/log/setup/go.mod index 12e16b9767145..02af09c777767 100644 --- a/pkg/util/log/setup/go.mod +++ b/pkg/util/log/setup/go.mod @@ -35,7 +35,7 @@ require ( github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/pkg/util/log/setup/go.sum b/pkg/util/log/setup/go.sum index 164d7c1e62c7d..e430d7f027344 100644 --- a/pkg/util/log/setup/go.sum +++ b/pkg/util/log/setup/go.sum @@ -204,8 +204,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/pkg/util/optional/go.mod b/pkg/util/optional/go.mod index 0b70349083646..38b3a76a16a19 100644 --- a/pkg/util/optional/go.mod +++ b/pkg/util/optional/go.mod @@ -2,7 +2,7 @@ module github.com/DataDog/datadog-agent/pkg/util/optional go 1.22.0 -require github.com/stretchr/testify v1.9.0 +require github.com/stretchr/testify v1.10.0 require ( github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/pkg/util/optional/go.sum b/pkg/util/optional/go.sum index 60ce688a04104..713a0b4f0a3a9 100644 --- a/pkg/util/optional/go.sum +++ b/pkg/util/optional/go.sum @@ -2,8 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/pkg/util/scrubber/go.mod b/pkg/util/scrubber/go.mod index 759d875f2e1a2..7c312e2ffce17 100644 --- a/pkg/util/scrubber/go.mod +++ b/pkg/util/scrubber/go.mod @@ -3,7 +3,7 @@ module github.com/DataDog/datadog-agent/pkg/util/scrubber go 1.22.0 require ( - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 gopkg.in/yaml.v2 v2.4.0 ) diff --git a/pkg/util/scrubber/go.sum b/pkg/util/scrubber/go.sum index 7415634da7791..9946cb087f892 100644 --- a/pkg/util/scrubber/go.sum +++ b/pkg/util/scrubber/go.sum @@ -2,8 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= diff --git a/pkg/util/sort/go.mod b/pkg/util/sort/go.mod index 8f94719ed921e..8a2e9f4c0340c 100644 --- a/pkg/util/sort/go.mod +++ b/pkg/util/sort/go.mod @@ -2,7 +2,7 @@ module github.com/DataDog/datadog-agent/pkg/util/sort go 1.22.0 -require github.com/stretchr/testify v1.9.0 +require github.com/stretchr/testify v1.10.0 require ( github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/pkg/util/sort/go.sum b/pkg/util/sort/go.sum index 60ce688a04104..713a0b4f0a3a9 100644 --- a/pkg/util/sort/go.sum +++ b/pkg/util/sort/go.sum @@ -2,8 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/pkg/util/startstop/go.mod b/pkg/util/startstop/go.mod index d40b202c5a2d5..4b8aeca58989c 100644 --- a/pkg/util/startstop/go.mod +++ b/pkg/util/startstop/go.mod @@ -2,7 +2,7 @@ module github.com/DataDog/datadog-agent/pkg/util/startstop go 1.22.0 -require github.com/stretchr/testify v1.9.0 +require github.com/stretchr/testify v1.10.0 require ( github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/pkg/util/startstop/go.sum b/pkg/util/startstop/go.sum index 60ce688a04104..713a0b4f0a3a9 100644 --- a/pkg/util/startstop/go.sum +++ b/pkg/util/startstop/go.sum @@ -2,8 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/pkg/util/statstracker/go.mod b/pkg/util/statstracker/go.mod index a46771e15eacf..b6c6b78922c60 100644 --- a/pkg/util/statstracker/go.mod +++ b/pkg/util/statstracker/go.mod @@ -2,7 +2,7 @@ module github.com/DataDog/datadog-agent/pkg/util/statstracker go 1.22.0 -require github.com/stretchr/testify v1.9.0 +require github.com/stretchr/testify v1.10.0 require ( github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/pkg/util/statstracker/go.sum b/pkg/util/statstracker/go.sum index 60ce688a04104..713a0b4f0a3a9 100644 --- a/pkg/util/statstracker/go.sum +++ b/pkg/util/statstracker/go.sum @@ -2,8 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/pkg/util/system/go.mod b/pkg/util/system/go.mod index 0bf997443b822..511a9d3655ba7 100644 --- a/pkg/util/system/go.mod +++ b/pkg/util/system/go.mod @@ -18,7 +18,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/testutil v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/winutil v0.56.0-rc.3 github.com/shirou/gopsutil/v3 v3.23.12 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.uber.org/atomic v1.11.0 golang.org/x/sys v0.27.0 ) diff --git a/pkg/util/system/go.sum b/pkg/util/system/go.sum index 91c1c1aab4320..4a302f99b9afb 100644 --- a/pkg/util/system/go.sum +++ b/pkg/util/system/go.sum @@ -29,8 +29,8 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/pkg/util/testutil/go.mod b/pkg/util/testutil/go.mod index 4722f205ecb6d..68cb7a15be3da 100644 --- a/pkg/util/testutil/go.mod +++ b/pkg/util/testutil/go.mod @@ -3,7 +3,7 @@ module github.com/DataDog/datadog-agent/pkg/util/testutil go 1.22.0 require ( - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/pkg/util/testutil/go.sum b/pkg/util/testutil/go.sum index 60ce688a04104..713a0b4f0a3a9 100644 --- a/pkg/util/testutil/go.sum +++ b/pkg/util/testutil/go.sum @@ -2,8 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/pkg/util/utilizationtracker/go.mod b/pkg/util/utilizationtracker/go.mod index fd269ca0657a7..62e98ac848136 100644 --- a/pkg/util/utilizationtracker/go.mod +++ b/pkg/util/utilizationtracker/go.mod @@ -4,7 +4,7 @@ go 1.22.0 require ( github.com/benbjohnson/clock v1.3.5 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 ) require ( diff --git a/pkg/util/utilizationtracker/go.sum b/pkg/util/utilizationtracker/go.sum index 29fbd520c2821..ff6fcd97668a0 100644 --- a/pkg/util/utilizationtracker/go.sum +++ b/pkg/util/utilizationtracker/go.sum @@ -4,8 +4,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/pkg/util/uuid/go.sum b/pkg/util/uuid/go.sum index 181bb4f0fbf07..76258cf37685f 100644 --- a/pkg/util/uuid/go.sum +++ b/pkg/util/uuid/go.sum @@ -29,8 +29,8 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/pkg/util/winutil/go.mod b/pkg/util/winutil/go.mod index ba65d9206eb37..870749902af1a 100644 --- a/pkg/util/winutil/go.mod +++ b/pkg/util/winutil/go.mod @@ -11,7 +11,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 github.com/fsnotify/fsnotify v1.7.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 go.uber.org/atomic v1.11.0 golang.org/x/sys v0.27.0 ) diff --git a/pkg/util/winutil/go.sum b/pkg/util/winutil/go.sum index e0dc36d7b4670..024be704560f4 100644 --- a/pkg/util/winutil/go.sum +++ b/pkg/util/winutil/go.sum @@ -6,8 +6,8 @@ github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nos github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= diff --git a/pkg/version/go.mod b/pkg/version/go.mod index 4bc287cf8e086..19cfbe1f41d48 100644 --- a/pkg/version/go.mod +++ b/pkg/version/go.mod @@ -2,7 +2,7 @@ module github.com/DataDog/datadog-agent/pkg/version go 1.22.0 -require github.com/stretchr/testify v1.9.0 +require github.com/stretchr/testify v1.10.0 require ( github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/pkg/version/go.sum b/pkg/version/go.sum index 60ce688a04104..713a0b4f0a3a9 100644 --- a/pkg/version/go.sum +++ b/pkg/version/go.sum @@ -2,8 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/test/fakeintake/go.mod b/test/fakeintake/go.mod index 9665716301cb7..4b0d70c6581b9 100644 --- a/test/fakeintake/go.mod +++ b/test/fakeintake/go.mod @@ -21,7 +21,7 @@ require ( github.com/prometheus/client_golang v1.17.0 github.com/samber/lo v1.39.0 github.com/spf13/cobra v1.8.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 github.com/tinylib/msgp v1.1.8 google.golang.org/protobuf v1.33.0 modernc.org/sqlite v1.29.5 diff --git a/test/fakeintake/go.sum b/test/fakeintake/go.sum index d93977f79cdd4..393cb44415e62 100644 --- a/test/fakeintake/go.sum +++ b/test/fakeintake/go.sum @@ -80,8 +80,8 @@ github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= github.com/vmihailenco/msgpack/v4 v4.3.12 h1:07s4sz9IReOgdikxLTKNbBdqDMLsjPKXwvCazn8G65U= diff --git a/test/new-e2e/go.mod b/test/new-e2e/go.mod index 1fbadfd55daff..e5286b1a6623f 100644 --- a/test/new-e2e/go.mod +++ b/test/new-e2e/go.mod @@ -80,7 +80,7 @@ require ( github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.17.1 github.com/pulumi/pulumi/sdk/v3 v3.140.0 github.com/samber/lo v1.47.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 github.com/xeipuuv/gojsonschema v1.2.0 golang.org/x/crypto v0.29.0 golang.org/x/sys v0.27.0 diff --git a/test/new-e2e/go.sum b/test/new-e2e/go.sum index e1bf799b32880..966eb25eb3d8b 100644 --- a/test/new-e2e/go.sum +++ b/test/new-e2e/go.sum @@ -487,8 +487,8 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U= github.com/texttheater/golang-levenshtein v1.0.1/go.mod h1:PYAKrbF5sAiq9wd+H82hs7gNaen0CplQ9uvm6+enD/8= github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= diff --git a/test/otel/go.mod b/test/otel/go.mod index 793d0622ee5a3..20ff83b773e4c 100644 --- a/test/otel/go.mod +++ b/test/otel/go.mod @@ -253,7 +253,7 @@ require ( github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stormcat24/protodep v0.1.8 // indirect - github.com/stretchr/testify v1.9.0 // indirect + github.com/stretchr/testify v1.10.0 // indirect github.com/tinylib/msgp v1.1.9 // indirect github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect diff --git a/test/otel/go.sum b/test/otel/go.sum index 5f4a1d4e8b03b..0b9de9dec8d57 100644 --- a/test/otel/go.sum +++ b/test/otel/go.sum @@ -343,8 +343,8 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tinylib/msgp v1.1.9 h1:SHf3yoO2sGA0veCJeCBYLHuttAVFHGm2RHgNodW7wQU= github.com/tinylib/msgp v1.1.9/go.mod h1:BCXGB54lDD8qUEPmiG0cQQUANC4IUQyB2ItS2UDlO/k= From 145152b1090b0063071c620ae3365812d08ac51a Mon Sep 17 00:00:00 2001 From: Alexandre Menasria <47357713+amenasria@users.noreply.github.com> Date: Fri, 29 Nov 2024 16:16:45 +0100 Subject: [PATCH 170/439] [CI] Make the `tests_macos_gitlab_amd64` job not allowed to fail anymore (#31612) --- .gitlab/source_test/macos.yml | 2 +- comp/core/tagger/impl-remote/remote_test.go | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.gitlab/source_test/macos.yml b/.gitlab/source_test/macos.yml index 63d660ce8bf7c..da5ed4d68c8cf 100644 --- a/.gitlab/source_test/macos.yml +++ b/.gitlab/source_test/macos.yml @@ -40,7 +40,6 @@ tests_macos: rules: - !reference [.except_mergequeue] - when: on_success - allow_failure: true extends: .macos_gitlab needs: ["go_deps", "go_tools_deps"] variables: @@ -78,6 +77,7 @@ tests_macos_gitlab_arm64: rules: !reference [.manual] tags: ["macos:monterey-arm64", "specific:true"] + allow_failure: true after_script: - !reference [.vault_login] - !reference [.select_python_env_commands] diff --git a/comp/core/tagger/impl-remote/remote_test.go b/comp/core/tagger/impl-remote/remote_test.go index 60159eff7943f..8d29a965b8a23 100644 --- a/comp/core/tagger/impl-remote/remote_test.go +++ b/comp/core/tagger/impl-remote/remote_test.go @@ -7,6 +7,8 @@ package remotetaggerimpl import ( "context" + "os" + "runtime" "testing" "github.com/stretchr/testify/require" @@ -21,6 +23,9 @@ import ( ) func TestStart(t *testing.T) { + if os.Getenv("CI") == "true" && runtime.GOOS == "darwin" { + t.Skip("TestStart is known to fail on the macOS Gitlab runners because of the already running Agent") + } grpcServer, authToken, err := grpc.NewMockGrpcSecureServer("5001") require.NoError(t, err) defer grpcServer.Stop() From 795f8204212c31b584170b9408436508ff01406e Mon Sep 17 00:00:00 2001 From: Florent Clarret Date: Fri, 29 Nov 2024 16:16:52 +0100 Subject: [PATCH 171/439] Fix the RELEASE_BRANCH_PATTERN (#31611) --- tasks/libs/ciproviders/github_api.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/libs/ciproviders/github_api.py b/tasks/libs/ciproviders/github_api.py index 4d1b3e6a6319b..48bd741c85748 100644 --- a/tasks/libs/ciproviders/github_api.py +++ b/tasks/libs/ciproviders/github_api.py @@ -28,7 +28,7 @@ __all__ = ["GithubAPI"] -RELEASE_BRANCH_PATTERN = re.compile(r"\d+\.\d+\.x") +RELEASE_BRANCH_PATTERN = re.compile(r"^\d+\.\d+\.x$") class GithubAPI: From 102d8e44ff1e8642fa860d7c9cc5ad6b253d4039 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20Beauz=C3=A9e-Luyssen?= Date: Fri, 29 Nov 2024 16:56:54 +0100 Subject: [PATCH 172/439] Revert "omnibus: don't build the agent twice on heroku (#31572)" (#31625) --- omnibus/config/software/datadog-agent.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/omnibus/config/software/datadog-agent.rb b/omnibus/config/software/datadog-agent.rb index 139b18f469612..cabf4557c735c 100644 --- a/omnibus/config/software/datadog-agent.rb +++ b/omnibus/config/software/datadog-agent.rb @@ -85,14 +85,14 @@ command "inv -e rtloader.install" include_sds = "" - if linux_target? && !heroku_target? + if linux_target? include_sds = "--include-sds" # we only support SDS on Linux targets for now end - agent_bin = "" + command "inv -e agent.build --exclude-rtloader #{include_sds} --major-version #{major_version_arg} --rebuild --no-development --install-path=#{install_dir} --embedded-path=#{install_dir}/embedded --flavor #{flavor_arg}", env: env + if heroku_target? - agent_bin = "--agent-bin=bin/agent/core-agent" + command "inv -e agent.build --exclude-rtloader --major-version #{major_version_arg} --rebuild --no-development --install-path=#{install_dir} --embedded-path=#{install_dir}/embedded --flavor #{flavor_arg} --agent-bin=bin/agent/core-agent", env: env end - command "inv -e agent.build --exclude-rtloader #{include_sds} --major-version #{major_version_arg} --rebuild --no-development --install-path=#{install_dir} --embedded-path=#{install_dir}/embedded --flavor #{flavor_arg} #{agent_bin}", env: env end if osx_target? From daad6bc7197f23d24a8a07678fa543a64381c889 Mon Sep 17 00:00:00 2001 From: Baptiste Foy Date: Fri, 29 Nov 2024 17:53:20 +0100 Subject: [PATCH 173/439] upgrade(installer): Report and store policies metadata (#31474) --- pkg/fleet/daemon/daemon.go | 22 +- pkg/fleet/installer/installer.go | 8 +- pkg/fleet/installer/repository/repository.go | 44 ++ pkg/fleet/internal/cdn/cdn.go | 131 +++- pkg/fleet/internal/cdn/cdn_http.go | 49 +- pkg/fleet/internal/cdn/cdn_local.go | 35 +- pkg/fleet/internal/cdn/cdn_noop.go | 27 +- pkg/fleet/internal/cdn/cdn_rc.go | 50 +- .../internal/cdn/config_datadog_agent.go | 26 +- pkg/fleet/internal/cdn/config_datadog_apm.go | 25 +- .../datadog/remoteconfig/remoteconfig.proto | 14 +- pkg/proto/pbgo/core/remoteconfig.pb.go | 638 ++++++++++-------- pkg/proto/pbgo/core/remoteconfig_gen.go | 361 +++++++++- pkg/proto/pbgo/core/remoteconfig_gen_test.go | 58 ++ test/new-e2e/go.mod | 3 + test/new-e2e/go.sum | 19 + .../installer/unix/upgrade_scenario_test.go | 9 + 17 files changed, 1033 insertions(+), 486 deletions(-) diff --git a/pkg/fleet/daemon/daemon.go b/pkg/fleet/daemon/daemon.go index dab1305100748..d4d99ff7fd68e 100644 --- a/pkg/fleet/daemon/daemon.go +++ b/pkg/fleet/daemon/daemon.go @@ -71,7 +71,7 @@ type daemonImpl struct { env *env.Env installer installer.Installer rc *remoteConfig - cdn cdn.CDN + cdn *cdn.CDN catalog catalog requests chan remoteAPIRequest requestsWG sync.WaitGroup @@ -105,7 +105,7 @@ func NewDaemon(rcFetcher client.ConfigFetcher, config config.Reader) (Daemon, er return newDaemon(rc, installer, env, cdn), nil } -func newDaemon(rc *remoteConfig, installer installer.Installer, env *env.Env, cdn cdn.CDN) *daemonImpl { +func newDaemon(rc *remoteConfig, installer installer.Installer, env *env.Env, cdn *cdn.CDN) *daemonImpl { i := &daemonImpl{ env: env, rc: rc, @@ -556,15 +556,15 @@ func setRequestDone(ctx context.Context, err error) { } } -func (d *daemonImpl) resolveRemoteConfigVersion(ctx context.Context, pkg string) (string, error) { +func (d *daemonImpl) resolveRemoteConfigVersion(ctx context.Context, pkg string) (*pbgo.PoliciesState, error) { if !d.env.RemotePolicies { - return "", nil + return nil, nil } config, err := d.cdn.Get(ctx, pkg) if err != nil { - return "", err + return nil, err } - return config.Version(), nil + return config.State(), nil } func (d *daemonImpl) refreshState(ctx context.Context) { @@ -597,13 +597,13 @@ func (d *daemonImpl) refreshState(ctx context.Context) { } cs, hasConfig := configState[pkg] if hasConfig { - p.StableConfigVersion = cs.Stable - p.ExperimentConfigVersion = cs.Experiment + p.StableConfigState = cs.StablePoliciesState + p.ExperimentConfigState = cs.ExperimentPoliciesState } - configVersion, err := d.resolveRemoteConfigVersion(ctx, pkg) - if err == nil { - p.RemoteConfigVersion = configVersion + configState, err := d.resolveRemoteConfigVersion(ctx, pkg) + if err == nil && configState != nil { + p.RemoteConfigState = configState } else if err != cdn.ErrProductNotSupported { log.Warnf("could not get remote config version: %v", err) } diff --git a/pkg/fleet/installer/installer.go b/pkg/fleet/installer/installer.go index 391c5a1e2069a..4b62c43b5aee9 100644 --- a/pkg/fleet/installer/installer.go +++ b/pkg/fleet/installer/installer.go @@ -72,7 +72,7 @@ type installerImpl struct { m sync.Mutex env *fleetEnv.Env - cdn cdn.CDN + cdn *cdn.CDN db *db.PackagesDB downloader *oci.Downloader packages *repository.Repositories @@ -308,8 +308,8 @@ func (i *installerImpl) InstallConfigExperiment(ctx context.Context, pkg string, if err != nil { return fmt.Errorf("could not get cdn config: %w", err) } - if config.Version() != version { - return fmt.Errorf("version mismatch: expected %s, got %s", config.Version(), version) + if config.State().GetVersion() != version { + return fmt.Errorf("version mismatch: expected %s, got %s", config.State().GetVersion(), version) } tmpDir, err := i.packages.MkdirTemp() @@ -619,7 +619,7 @@ func (i *installerImpl) configurePackage(ctx context.Context, pkg string) (err e if err != nil { return fmt.Errorf("could not write %s config: %w", pkg, err) } - err = i.configs.Create(pkg, config.Version(), tmpDir) + err = i.configs.Create(pkg, config.State().GetVersion(), tmpDir) if err != nil { return fmt.Errorf("could not create %s repository: %w", pkg, err) } diff --git a/pkg/fleet/installer/repository/repository.go b/pkg/fleet/installer/repository/repository.go index 559bf88854641..b83a03d4e81d7 100644 --- a/pkg/fleet/installer/repository/repository.go +++ b/pkg/fleet/installer/repository/repository.go @@ -7,6 +7,7 @@ package repository import ( + "encoding/json" "errors" "fmt" "io/fs" @@ -16,6 +17,7 @@ import ( "github.com/DataDog/gopsutil/process" + pbgo "github.com/DataDog/datadog-agent/pkg/proto/pbgo/core" "github.com/DataDog/datadog-agent/pkg/util/log" ) @@ -62,6 +64,9 @@ type Repository struct { type State struct { Stable string Experiment string + + StablePoliciesState *pbgo.PoliciesState + ExperimentPoliciesState *pbgo.PoliciesState } // HasStable returns true if the repository has a stable package. @@ -98,12 +103,51 @@ func (r *Repository) GetState() (State, error) { if experiment == stable { experiment = "" } + + // Load the policies state + stablePoliciesState, err := r.loadPoliciesMetadata(stable) + if err != nil { + return State{}, fmt.Errorf("could not load stable policies state: %w", err) + } + + experimentPoliciesState, err := r.loadPoliciesMetadata(experiment) + if err != nil { + return State{}, fmt.Errorf("could not load experiment policies state: %w", err) + } + return State{ Stable: stable, Experiment: experiment, + + StablePoliciesState: stablePoliciesState, + ExperimentPoliciesState: experimentPoliciesState, }, nil } +func (r *Repository) loadPoliciesMetadata(version string) (*pbgo.PoliciesState, error) { + if version == "" { + return nil, nil + } + + statePath := filepath.Join(r.rootPath, version, "policy.metadata") + stateFile, err := os.ReadFile(statePath) + if err != nil { + if errors.Is(err, os.ErrNotExist) { + return nil, nil + } + return nil, fmt.Errorf("could not read policies state: %w", err) + } + + state := &pbgo.PoliciesState{} + err = json.Unmarshal(stateFile, state) + if err != nil { + return nil, fmt.Errorf("could not unmarshal policies state: %w", err) + } + state.Version = version + + return state, nil +} + // Create creates a fresh new repository at the given root path // and moves the given stable source path to the repository as the first stable. // If a repository already exists at the given path, it is fully removed. diff --git a/pkg/fleet/internal/cdn/cdn.go b/pkg/fleet/internal/cdn/cdn.go index 38083cccd5314..5f1ae7865a1d0 100644 --- a/pkg/fleet/internal/cdn/cdn.go +++ b/pkg/fleet/internal/cdn/cdn.go @@ -8,12 +8,20 @@ package cdn import ( "context" + "encoding/json" "errors" + "fmt" + "os" + "path/filepath" "runtime" "github.com/DataDog/datadog-agent/pkg/fleet/env" + pbgo "github.com/DataDog/datadog-agent/pkg/proto/pbgo/core" + "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" ) +const policyMetadataFilename = "policy.metadata" + var ( // ErrProductNotSupported is returned when the product is not supported. ErrProductNotSupported = errors.New("product not supported") @@ -21,24 +29,39 @@ var ( // Config represents a configuration. type Config interface { - Version() string + State() *pbgo.PoliciesState Write(dir string) error } +// fetcher provides access to the Remote Config CDN. +type fetcher interface { + get(ctx context.Context) ([][]byte, error) + close() error +} + // CDN provides access to the Remote Config CDN. -type CDN interface { - Get(ctx context.Context, pkg string) (Config, error) - Close() error +type CDN struct { + fetcher fetcher + hostTagsGetter hostTagsGetter } // New creates a new CDN and chooses the implementation depending // on the environment -func New(env *env.Env, configDBPath string) (CDN, error) { +func New(env *env.Env, configDBPath string) (*CDN, error) { + cdn := CDN{ + hostTagsGetter: newHostTagsGetter(env), + } + if runtime.GOOS == "windows" { // There's an assumption on windows that some directories are already there // but they are in fact created by the regular CDN implementation. Until // there is a fix on windows we keep the previous CDN behaviour for them - return newCDNHTTP(env, configDBPath) + fetcher, err := newHTTPFetcher(env, configDBPath) + if err != nil { + return nil, err + } + cdn.fetcher = fetcher + return &cdn, nil } if !env.RemotePolicies { @@ -46,21 +69,109 @@ func New(env *env.Env, configDBPath string) (CDN, error) { // and we don't want to create the directories that the CDN // implementation would create. We return a no-op CDN to avoid // nil pointer dereference. - return newCDNNoop() + fetcher, err := newNoopFetcher() + if err != nil { + return nil, err + } + cdn.fetcher = fetcher + return &cdn, nil } if env.CDNLocalDirPath != "" { // Mock the CDN for local development or testing - return newCDNLocal(env) + fetcher, err := newLocalFetcher(env) + if err != nil { + return nil, err + } + cdn.fetcher = fetcher + return &cdn, nil } if !env.CDNEnabled { // Remote policies are enabled but we don't want to use the CDN // as it's still in development. We use standard remote config calls // instead (dubbed "direct" CDN). - return newCDNRC(env, configDBPath) + fetcher, err := newRCFetcher(env, configDBPath) + if err != nil { + return nil, err + } + cdn.fetcher = fetcher + return &cdn, nil } // Regular CDN with the cloudfront distribution - return newCDNHTTP(env, configDBPath) + fetcher, err := newHTTPFetcher(env, configDBPath) + if err != nil { + return nil, err + } + cdn.fetcher = fetcher + return &cdn, nil +} + +// Get fetches the configuration for the given package. +func (c *CDN) Get(ctx context.Context, pkg string) (cfg Config, err error) { + span, _ := tracer.StartSpanFromContext(ctx, "cdn.Get") + defer func() { + spanErr := err + if spanErr == ErrProductNotSupported { + spanErr = nil + } + span.Finish(tracer.WithError(spanErr)) + }() + + switch pkg { + case "datadog-agent": + orderedLayers, err := c.fetcher.get(ctx) + if err != nil { + return nil, err + } + cfg, err = newAgentConfig(orderedLayers...) + if err != nil { + return nil, err + } + case "datadog-apm-inject": + orderedLayers, err := c.fetcher.get(ctx) + if err != nil { + return nil, err + } + cfg, err = newAPMConfig(c.hostTagsGetter.get(), orderedLayers...) + if err != nil { + return nil, err + } + default: + return nil, ErrProductNotSupported + } + + return cfg, nil +} + +// Close closes the CDN. +func (c *CDN) Close() error { + return c.fetcher.close() +} + +// writePolicyMetadata writes the policy metadata to the given directory +// and makes it readable to dd-agent +func writePolicyMetadata(config Config, dir string) error { + ddAgentUID, ddAgentGID, err := getAgentIDs() + if err != nil { + return fmt.Errorf("error getting dd-agent user and group IDs: %w", err) + } + + state := config.State() + stateBytes, err := json.Marshal(state) + if err != nil { + return fmt.Errorf("could not marshal state: %w", err) + } + err = os.WriteFile(filepath.Join(dir, policyMetadataFilename), stateBytes, 0440) + if err != nil { + return fmt.Errorf("could not write %s: %w", policyMetadataFilename, err) + } + if runtime.GOOS != "windows" { + err = os.Chown(filepath.Join(dir, policyMetadataFilename), ddAgentUID, ddAgentGID) + if err != nil { + return fmt.Errorf("could not chown %s: %w", policyMetadataFilename, err) + } + } + return nil } diff --git a/pkg/fleet/internal/cdn/cdn_http.go b/pkg/fleet/internal/cdn/cdn_http.go index 98633efdf46d4..53d8f379d124e 100644 --- a/pkg/fleet/internal/cdn/cdn_http.go +++ b/pkg/fleet/internal/cdn/cdn_http.go @@ -16,17 +16,16 @@ import ( "github.com/DataDog/datadog-agent/pkg/util/log" "github.com/DataDog/datadog-agent/pkg/version" "github.com/DataDog/go-tuf/data" - "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" ) -type cdnHTTP struct { +type fetcherHTTP struct { client *remoteconfig.HTTPClient currentRootsVersion uint64 hostTagsGetter hostTagsGetter env *env.Env } -func newCDNHTTP(env *env.Env, configDBPath string) (CDN, error) { +func newHTTPFetcher(env *env.Env, configDBPath string) (fetcher, error) { client, err := remoteconfig.NewHTTPClient( configDBPath, env.Site, @@ -36,7 +35,7 @@ func newCDNHTTP(env *env.Env, configDBPath string) (CDN, error) { if err != nil { return nil, err } - return &cdnHTTP{ + return &fetcherHTTP{ client: client, currentRootsVersion: 1, hostTagsGetter: newHostTagsGetter(env), @@ -44,51 +43,13 @@ func newCDNHTTP(env *env.Env, configDBPath string) (CDN, error) { }, nil } -// Get gets the configuration from the CDN. -func (c *cdnHTTP) Get(ctx context.Context, pkg string) (cfg Config, err error) { - span, _ := tracer.StartSpanFromContext(ctx, "cdn.Get") - span.SetTag("cdn_type", "cdn") - defer func() { - spanErr := err - if spanErr == ErrProductNotSupported { - spanErr = nil - } - span.Finish(tracer.WithError(spanErr)) - }() - - switch pkg { - case "datadog-agent": - orderedLayers, err := c.get(ctx) - if err != nil { - return nil, err - } - cfg, err = newAgentConfig(orderedLayers...) - if err != nil { - return nil, err - } - case "datadog-apm-inject": - orderedLayers, err := c.get(ctx) - if err != nil { - return nil, err - } - cfg, err = newAPMConfig(c.hostTagsGetter.get(), orderedLayers...) - if err != nil { - return nil, err - } - default: - return nil, ErrProductNotSupported - } - - return cfg, nil -} - // Close cleans up the CDN's resources -func (c *cdnHTTP) Close() error { +func (c *fetcherHTTP) close() error { return c.client.Close() } // get calls the Remote Config service to get the ordered layers. -func (c *cdnHTTP) get(ctx context.Context) ([][]byte, error) { +func (c *fetcherHTTP) get(ctx context.Context) ([][]byte, error) { agentConfigUpdate, err := c.client.GetCDNConfigUpdate( ctx, []string{"AGENT_CONFIG"}, diff --git a/pkg/fleet/internal/cdn/cdn_local.go b/pkg/fleet/internal/cdn/cdn_local.go index 83d6ed412cede..6cfefe31732b3 100644 --- a/pkg/fleet/internal/cdn/cdn_local.go +++ b/pkg/fleet/internal/cdn/cdn_local.go @@ -14,19 +14,18 @@ import ( "github.com/DataDog/datadog-agent/pkg/fleet/env" ) -type cdnLocal struct { +type fetcherLocal struct { dirPath string } -// newCDNLocal creates a new local CDN. -func newCDNLocal(env *env.Env) (CDN, error) { - return &cdnLocal{ +// newfetcherLocal creates a new local CDN. +func newLocalFetcher(env *env.Env) (fetcher, error) { + return &fetcherLocal{ dirPath: env.CDNLocalDirPath, }, nil } -// Get gets the configuration from the CDN. -func (c *cdnLocal) Get(_ context.Context, pkg string) (cfg Config, err error) { +func (c *fetcherLocal) get(_ context.Context) (orderedLayers [][]byte, err error) { f, err := os.ReadDir(c.dirPath) if err != nil { return nil, fmt.Errorf("couldn't read directory %s: %w", c.dirPath, err) @@ -46,29 +45,9 @@ func (c *cdnLocal) Get(_ context.Context, pkg string) (cfg Config, err error) { files[file.Name()] = contents } - layers, err := getOrderedScopedLayers(files, nil) - if err != nil { - return nil, err - } - - switch pkg { - case "datadog-agent": - cfg, err = newAgentConfig(layers...) - if err != nil { - return nil, err - } - case "datadog-apm-inject": - cfg, err = newAPMConfig([]string{}, layers...) - if err != nil { - return nil, err - } - default: - return nil, ErrProductNotSupported - } - - return cfg, nil + return getOrderedScopedLayers(files, nil) } -func (c *cdnLocal) Close() error { +func (c *fetcherLocal) close() error { return nil } diff --git a/pkg/fleet/internal/cdn/cdn_noop.go b/pkg/fleet/internal/cdn/cdn_noop.go index b18e0e788c011..9be9fb1ae3264 100644 --- a/pkg/fleet/internal/cdn/cdn_noop.go +++ b/pkg/fleet/internal/cdn/cdn_noop.go @@ -11,33 +11,20 @@ import ( "github.com/DataDog/datadog-agent/pkg/util/log" ) -type cdnNoop struct { +type fetcherNoop struct { } -type configNoop struct{} - -// newCDNNoop creates a new noop CDN. -func newCDNNoop() (CDN, error) { - return &cdnNoop{}, nil +// newNoopFetcher creates a new noop CDN. +func newNoopFetcher() (fetcher, error) { + return &fetcherNoop{}, nil } -// Get gets the configuration from the CDN. -func (c *cdnNoop) Get(_ context.Context, _ string) (Config, error) { +func (c *fetcherNoop) get(_ context.Context) ([][]byte, error) { log.Debug("Noop CDN get") - return &configNoop{}, nil + return nil, nil } -func (c *cdnNoop) Close() error { +func (c *fetcherNoop) close() error { log.Debug("Noop CDN close") return nil } - -func (c *configNoop) Version() string { - log.Debug("Noop CDN version") - return "" -} - -func (c *configNoop) Write(_ string) error { - log.Debug("Noop CDN write") - return nil -} diff --git a/pkg/fleet/internal/cdn/cdn_rc.go b/pkg/fleet/internal/cdn/cdn_rc.go index afee2a514fe67..e3db586530dd2 100644 --- a/pkg/fleet/internal/cdn/cdn_rc.go +++ b/pkg/fleet/internal/cdn/cdn_rc.go @@ -22,10 +22,9 @@ import ( "github.com/DataDog/datadog-agent/pkg/version" "github.com/DataDog/go-tuf/data" "github.com/google/uuid" - "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" ) -type cdnRC struct { +type fetcherRC struct { rcService *remoteconfig.CoreAgentService currentRootsVersion uint64 clientUUID string @@ -35,9 +34,9 @@ type cdnRC struct { env *env.Env } -// newCDNRC creates a new CDN with RC: it fetches the configuration from the remote config service instead of cloudfront +// newRCFetcher creates a new CDN fetcher with RC: it fetches the configuration from the remote config service instead of cloudfront // note: naming is a bit misleading, it's not really a cdn, but we're following the convention -func newCDNRC(env *env.Env, configDBPath string) (CDN, error) { +func newRCFetcher(env *env.Env, configDBPath string) (fetcher, error) { ctx := context.Background() ctx, cc := context.WithTimeout(ctx, 10*time.Second) defer cc() @@ -80,7 +79,7 @@ func newCDNRC(env *env.Env, configDBPath string) (CDN, error) { if err != nil { return nil, err } - cdn := &cdnRC{ + cdn := &fetcherRC{ rcService: service, currentRootsVersion: 1, clientUUID: uuid.New().String(), @@ -93,45 +92,8 @@ func newCDNRC(env *env.Env, configDBPath string) (CDN, error) { return cdn, nil } -func (c *cdnRC) Get(ctx context.Context, pkg string) (cfg Config, err error) { - span, _ := tracer.StartSpanFromContext(ctx, "cdn.Get") - span.SetTag("cdn_type", "remote_config") - defer func() { - spanErr := err - if spanErr == ErrProductNotSupported { - spanErr = nil - } - span.Finish(tracer.WithError(spanErr)) - }() - - switch pkg { - case "datadog-agent": - orderedLayers, err := c.get(ctx) - if err != nil { - return nil, err - } - cfg, err = newAgentConfig(orderedLayers...) - if err != nil { - return nil, err - } - case "datadog-apm-inject": - orderedLayers, err := c.get(ctx) - if err != nil { - return nil, err - } - cfg, err = newAPMConfig(c.hostTagsGetter.get(), orderedLayers...) - if err != nil { - return nil, err - } - default: - return nil, ErrProductNotSupported - } - - return cfg, nil -} - // get calls the Remote Config service to get the ordered layers. -func (c *cdnRC) get(ctx context.Context) ([][]byte, error) { +func (c *fetcherRC) get(ctx context.Context) ([][]byte, error) { if c.firstRequest { // A first request is made to the remote config service at service startup, // so if we do another request too close to the first one (in the same second) @@ -198,7 +160,7 @@ func (c *cdnRC) get(ctx context.Context) ([][]byte, error) { ) } -func (c *cdnRC) Close() error { +func (c *fetcherRC) close() error { err := c.rcService.Stop() if err != nil { return err diff --git a/pkg/fleet/internal/cdn/config_datadog_agent.go b/pkg/fleet/internal/cdn/config_datadog_agent.go index 8698095be1268..b9882ebaad469 100644 --- a/pkg/fleet/internal/cdn/config_datadog_agent.go +++ b/pkg/fleet/internal/cdn/config_datadog_agent.go @@ -16,6 +16,7 @@ import ( "runtime" "strconv" + pbgo "github.com/DataDog/datadog-agent/pkg/proto/pbgo/core" "github.com/DataDog/datadog-agent/pkg/util/log" "gopkg.in/yaml.v2" ) @@ -31,7 +32,9 @@ const ( // agentConfig represents the agent configuration from the CDN. type agentConfig struct { - version string + version string + policyIDs []string + datadog []byte securityAgent []byte systemProbe []byte @@ -45,14 +48,17 @@ type agentConfigLayer struct { SystemProbeConfig map[string]interface{} `json:"system_probe"` } -// Version returns the version (hash) of the agent configuration. -func (a *agentConfig) Version() string { - return a.version +// State returns the agent policies state +func (a *agentConfig) State() *pbgo.PoliciesState { + return &pbgo.PoliciesState{ + MatchedPolicies: a.policyIDs, + Version: a.version, + } } func newAgentConfig(orderedLayers ...[]byte) (*agentConfig, error) { // Compile ordered layers into a single config - layerIDs := []string{} + policyIDs := []string{} compiledLayer := &agentConfigLayer{ AgentConfig: map[string]interface{}{}, SecurityAgentConfig: map[string]interface{}{}, @@ -69,7 +75,7 @@ func newAgentConfig(orderedLayers ...[]byte) (*agentConfig, error) { continue } - layerIDs = append(layerIDs, layer.ID) + policyIDs = append(policyIDs, layer.ID) if layer.AgentConfig != nil { agentConfig, err := merge(compiledLayer.AgentConfig, layer.AgentConfig) @@ -97,7 +103,7 @@ func newAgentConfig(orderedLayers ...[]byte) (*agentConfig, error) { } // Report applied layers - compiledLayer.AgentConfig[layerKeys] = layerIDs + compiledLayer.AgentConfig[layerKeys] = policyIDs // Marshal into YAML configs config, err := marshalAgentConfig(compiledLayer.AgentConfig) @@ -121,7 +127,9 @@ func newAgentConfig(orderedLayers ...[]byte) (*agentConfig, error) { hash.Write(version) return &agentConfig{ - version: fmt.Sprintf("%x", hash.Sum(nil)), + version: fmt.Sprintf("%x", hash.Sum(nil)), + policyIDs: policyIDs, + datadog: config, securityAgent: securityAgentConfig, systemProbe: systemProbeConfig, @@ -171,7 +179,7 @@ func (a *agentConfig) Write(dir string) error { } } } - return nil + return writePolicyMetadata(a, dir) } // marshalAgentConfig marshals the config as YAML. diff --git a/pkg/fleet/internal/cdn/config_datadog_apm.go b/pkg/fleet/internal/cdn/config_datadog_apm.go index 30c2f2f19dceb..fd171f06e0d92 100644 --- a/pkg/fleet/internal/cdn/config_datadog_apm.go +++ b/pkg/fleet/internal/cdn/config_datadog_apm.go @@ -12,6 +12,7 @@ import ( "os" "path/filepath" + pbgo "github.com/DataDog/datadog-agent/pkg/proto/pbgo/core" "github.com/DataDog/datadog-agent/pkg/util/log" "github.com/vmihailenco/msgpack/v5" ) @@ -22,7 +23,9 @@ const ( // apmConfig represents the injector configuration from the CDN. type apmConfig struct { - version string + version string + policyIDs []string + injectorConfig []byte } @@ -32,14 +35,18 @@ type apmConfigLayer struct { InjectorConfig map[string]interface{} `json:"apm_ssi_config"` } -// Version returns the version (hash) of the agent configuration. -func (i *apmConfig) Version() string { - return i.version +// State returns the APM configs state +func (i *apmConfig) State() *pbgo.PoliciesState { + return &pbgo.PoliciesState{ + MatchedPolicies: i.policyIDs, + Version: i.version, + } } func newAPMConfig(hostTags []string, orderedLayers ...[]byte) (*apmConfig, error) { // Compile ordered layers into a single config // TODO: maybe we don't want that and we should reject if there are more than one config? + policyIDs := []string{} compiledLayer := &apmConfigLayer{ InjectorConfig: map[string]interface{}{}, } @@ -50,12 +57,14 @@ func newAPMConfig(hostTags []string, orderedLayers ...[]byte) (*apmConfig, error continue } + // Only add layers that match the injector if layer.InjectorConfig != nil { injectorConfig, err := merge(compiledLayer.InjectorConfig, layer.InjectorConfig) if err != nil { return nil, err } compiledLayer.InjectorConfig = injectorConfig.(map[string]interface{}) + policyIDs = append(policyIDs, layer.ID) } } @@ -76,7 +85,9 @@ func newAPMConfig(hostTags []string, orderedLayers ...[]byte) (*apmConfig, error } return &apmConfig{ - version: fmt.Sprintf("%x", hash.Sum(nil)), + version: fmt.Sprintf("%x", hash.Sum(nil)), + policyIDs: policyIDs, + injectorConfig: injectorConfig, }, nil } @@ -86,8 +97,8 @@ func (i *apmConfig) Write(dir string) error { if i.injectorConfig != nil { err := os.WriteFile(filepath.Join(dir, injectorConfigFilename), []byte(i.injectorConfig), 0644) // Must be world readable if err != nil { - return fmt.Errorf("could not write datadog.yaml: %w", err) + return fmt.Errorf("could not write %s: %w", injectorConfigFilename, err) } } - return nil + return writePolicyMetadata(i, dir) } diff --git a/pkg/proto/datadog/remoteconfig/remoteconfig.proto b/pkg/proto/datadog/remoteconfig/remoteconfig.proto index c592cde0fb2c2..488c406bae3d9 100644 --- a/pkg/proto/datadog/remoteconfig/remoteconfig.proto +++ b/pkg/proto/datadog/remoteconfig/remoteconfig.proto @@ -120,10 +120,18 @@ message PackageState { string package = 1; string stable_version = 2; string experiment_version = 3; - string stable_config_version = 5; - string experiment_config_version = 6; - string remote_config_version = 7; PackageStateTask task = 4; + reserved 5; + reserved 6; + reserved 7; + PoliciesState stable_config_state = 8; + PoliciesState experiment_config_state = 9; + PoliciesState remote_config_state = 10; +} + +message PoliciesState { + string version = 1; + repeated string matched_policies = 2; } message PackageStateTask { diff --git a/pkg/proto/pbgo/core/remoteconfig.pb.go b/pkg/proto/pbgo/core/remoteconfig.pb.go index e81826f5763ca..37f3f8aea7592 100644 --- a/pkg/proto/pbgo/core/remoteconfig.pb.go +++ b/pkg/proto/pbgo/core/remoteconfig.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.0 -// protoc v5.26.1 +// protoc-gen-go v1.34.2 +// protoc v5.28.3 // source: datadog/remoteconfig/remoteconfig.proto package core @@ -1100,13 +1100,13 @@ type PackageState struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Package string `protobuf:"bytes,1,opt,name=package,proto3" json:"package,omitempty"` - StableVersion string `protobuf:"bytes,2,opt,name=stable_version,json=stableVersion,proto3" json:"stable_version,omitempty"` - ExperimentVersion string `protobuf:"bytes,3,opt,name=experiment_version,json=experimentVersion,proto3" json:"experiment_version,omitempty"` - StableConfigVersion string `protobuf:"bytes,5,opt,name=stable_config_version,json=stableConfigVersion,proto3" json:"stable_config_version,omitempty"` - ExperimentConfigVersion string `protobuf:"bytes,6,opt,name=experiment_config_version,json=experimentConfigVersion,proto3" json:"experiment_config_version,omitempty"` - RemoteConfigVersion string `protobuf:"bytes,7,opt,name=remote_config_version,json=remoteConfigVersion,proto3" json:"remote_config_version,omitempty"` - Task *PackageStateTask `protobuf:"bytes,4,opt,name=task,proto3" json:"task,omitempty"` + Package string `protobuf:"bytes,1,opt,name=package,proto3" json:"package,omitempty"` + StableVersion string `protobuf:"bytes,2,opt,name=stable_version,json=stableVersion,proto3" json:"stable_version,omitempty"` + ExperimentVersion string `protobuf:"bytes,3,opt,name=experiment_version,json=experimentVersion,proto3" json:"experiment_version,omitempty"` + Task *PackageStateTask `protobuf:"bytes,4,opt,name=task,proto3" json:"task,omitempty"` + StableConfigState *PoliciesState `protobuf:"bytes,8,opt,name=stable_config_state,json=stableConfigState,proto3" json:"stable_config_state,omitempty"` + ExperimentConfigState *PoliciesState `protobuf:"bytes,9,opt,name=experiment_config_state,json=experimentConfigState,proto3" json:"experiment_config_state,omitempty"` + RemoteConfigState *PoliciesState `protobuf:"bytes,10,opt,name=remote_config_state,json=remoteConfigState,proto3" json:"remote_config_state,omitempty"` } func (x *PackageState) Reset() { @@ -1162,30 +1162,85 @@ func (x *PackageState) GetExperimentVersion() string { return "" } -func (x *PackageState) GetStableConfigVersion() string { +func (x *PackageState) GetTask() *PackageStateTask { if x != nil { - return x.StableConfigVersion + return x.Task } - return "" + return nil } -func (x *PackageState) GetExperimentConfigVersion() string { +func (x *PackageState) GetStableConfigState() *PoliciesState { if x != nil { - return x.ExperimentConfigVersion + return x.StableConfigState } - return "" + return nil } -func (x *PackageState) GetRemoteConfigVersion() string { +func (x *PackageState) GetExperimentConfigState() *PoliciesState { if x != nil { - return x.RemoteConfigVersion + return x.ExperimentConfigState + } + return nil +} + +func (x *PackageState) GetRemoteConfigState() *PoliciesState { + if x != nil { + return x.RemoteConfigState + } + return nil +} + +type PoliciesState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + MatchedPolicies []string `protobuf:"bytes,2,rep,name=matched_policies,json=matchedPolicies,proto3" json:"matched_policies,omitempty"` +} + +func (x *PoliciesState) Reset() { + *x = PoliciesState{} + if protoimpl.UnsafeEnabled { + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PoliciesState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PoliciesState) ProtoMessage() {} + +func (x *PoliciesState) ProtoReflect() protoreflect.Message { + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PoliciesState.ProtoReflect.Descriptor instead. +func (*PoliciesState) Descriptor() ([]byte, []int) { + return file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP(), []int{14} +} + +func (x *PoliciesState) GetVersion() string { + if x != nil { + return x.Version } return "" } -func (x *PackageState) GetTask() *PackageStateTask { +func (x *PoliciesState) GetMatchedPolicies() []string { if x != nil { - return x.Task + return x.MatchedPolicies } return nil } @@ -1203,7 +1258,7 @@ type PackageStateTask struct { func (x *PackageStateTask) Reset() { *x = PackageStateTask{} if protoimpl.UnsafeEnabled { - mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[14] + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1216,7 +1271,7 @@ func (x *PackageStateTask) String() string { func (*PackageStateTask) ProtoMessage() {} func (x *PackageStateTask) ProtoReflect() protoreflect.Message { - mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[14] + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1229,7 +1284,7 @@ func (x *PackageStateTask) ProtoReflect() protoreflect.Message { // Deprecated: Use PackageStateTask.ProtoReflect.Descriptor instead. func (*PackageStateTask) Descriptor() ([]byte, []int) { - return file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP(), []int{14} + return file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP(), []int{15} } func (x *PackageStateTask) GetId() string { @@ -1265,7 +1320,7 @@ type TaskError struct { func (x *TaskError) Reset() { *x = TaskError{} if protoimpl.UnsafeEnabled { - mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[15] + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1278,7 +1333,7 @@ func (x *TaskError) String() string { func (*TaskError) ProtoMessage() {} func (x *TaskError) ProtoReflect() protoreflect.Message { - mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[15] + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1291,7 +1346,7 @@ func (x *TaskError) ProtoReflect() protoreflect.Message { // Deprecated: Use TaskError.ProtoReflect.Descriptor instead. func (*TaskError) Descriptor() ([]byte, []int) { - return file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP(), []int{15} + return file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP(), []int{16} } func (x *TaskError) GetCode() uint64 { @@ -1323,7 +1378,7 @@ type ConfigState struct { func (x *ConfigState) Reset() { *x = ConfigState{} if protoimpl.UnsafeEnabled { - mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[16] + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1336,7 +1391,7 @@ func (x *ConfigState) String() string { func (*ConfigState) ProtoMessage() {} func (x *ConfigState) ProtoReflect() protoreflect.Message { - mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[16] + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1349,7 +1404,7 @@ func (x *ConfigState) ProtoReflect() protoreflect.Message { // Deprecated: Use ConfigState.ProtoReflect.Descriptor instead. func (*ConfigState) Descriptor() ([]byte, []int) { - return file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP(), []int{16} + return file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP(), []int{17} } func (x *ConfigState) GetId() string { @@ -1403,7 +1458,7 @@ type ClientState struct { func (x *ClientState) Reset() { *x = ClientState{} if protoimpl.UnsafeEnabled { - mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[17] + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1416,7 +1471,7 @@ func (x *ClientState) String() string { func (*ClientState) ProtoMessage() {} func (x *ClientState) ProtoReflect() protoreflect.Message { - mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[17] + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1429,7 +1484,7 @@ func (x *ClientState) ProtoReflect() protoreflect.Message { // Deprecated: Use ClientState.ProtoReflect.Descriptor instead. func (*ClientState) Descriptor() ([]byte, []int) { - return file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP(), []int{17} + return file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP(), []int{18} } func (x *ClientState) GetRootVersion() uint64 { @@ -1486,7 +1541,7 @@ type TargetFileHash struct { func (x *TargetFileHash) Reset() { *x = TargetFileHash{} if protoimpl.UnsafeEnabled { - mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[18] + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1499,7 +1554,7 @@ func (x *TargetFileHash) String() string { func (*TargetFileHash) ProtoMessage() {} func (x *TargetFileHash) ProtoReflect() protoreflect.Message { - mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[18] + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1512,7 +1567,7 @@ func (x *TargetFileHash) ProtoReflect() protoreflect.Message { // Deprecated: Use TargetFileHash.ProtoReflect.Descriptor instead. func (*TargetFileHash) Descriptor() ([]byte, []int) { - return file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP(), []int{18} + return file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP(), []int{19} } func (x *TargetFileHash) GetAlgorithm() string { @@ -1542,7 +1597,7 @@ type TargetFileMeta struct { func (x *TargetFileMeta) Reset() { *x = TargetFileMeta{} if protoimpl.UnsafeEnabled { - mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[19] + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1555,7 +1610,7 @@ func (x *TargetFileMeta) String() string { func (*TargetFileMeta) ProtoMessage() {} func (x *TargetFileMeta) ProtoReflect() protoreflect.Message { - mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[19] + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1568,7 +1623,7 @@ func (x *TargetFileMeta) ProtoReflect() protoreflect.Message { // Deprecated: Use TargetFileMeta.ProtoReflect.Descriptor instead. func (*TargetFileMeta) Descriptor() ([]byte, []int) { - return file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP(), []int{19} + return file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP(), []int{20} } func (x *TargetFileMeta) GetPath() string { @@ -1604,7 +1659,7 @@ type ClientGetConfigsRequest struct { func (x *ClientGetConfigsRequest) Reset() { *x = ClientGetConfigsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[20] + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1617,7 +1672,7 @@ func (x *ClientGetConfigsRequest) String() string { func (*ClientGetConfigsRequest) ProtoMessage() {} func (x *ClientGetConfigsRequest) ProtoReflect() protoreflect.Message { - mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[20] + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1630,7 +1685,7 @@ func (x *ClientGetConfigsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ClientGetConfigsRequest.ProtoReflect.Descriptor instead. func (*ClientGetConfigsRequest) Descriptor() ([]byte, []int) { - return file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP(), []int{20} + return file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP(), []int{21} } func (x *ClientGetConfigsRequest) GetClient() *Client { @@ -1661,7 +1716,7 @@ type ClientGetConfigsResponse struct { func (x *ClientGetConfigsResponse) Reset() { *x = ClientGetConfigsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[21] + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1674,7 +1729,7 @@ func (x *ClientGetConfigsResponse) String() string { func (*ClientGetConfigsResponse) ProtoMessage() {} func (x *ClientGetConfigsResponse) ProtoReflect() protoreflect.Message { - mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[21] + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1687,7 +1742,7 @@ func (x *ClientGetConfigsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ClientGetConfigsResponse.ProtoReflect.Descriptor instead. func (*ClientGetConfigsResponse) Descriptor() ([]byte, []int) { - return file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP(), []int{21} + return file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP(), []int{22} } func (x *ClientGetConfigsResponse) GetRoots() [][]byte { @@ -1730,7 +1785,7 @@ type FileMetaState struct { func (x *FileMetaState) Reset() { *x = FileMetaState{} if protoimpl.UnsafeEnabled { - mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[22] + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1743,7 +1798,7 @@ func (x *FileMetaState) String() string { func (*FileMetaState) ProtoMessage() {} func (x *FileMetaState) ProtoReflect() protoreflect.Message { - mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[22] + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1756,7 +1811,7 @@ func (x *FileMetaState) ProtoReflect() protoreflect.Message { // Deprecated: Use FileMetaState.ProtoReflect.Descriptor instead. func (*FileMetaState) Descriptor() ([]byte, []int) { - return file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP(), []int{22} + return file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP(), []int{23} } func (x *FileMetaState) GetVersion() uint64 { @@ -1787,7 +1842,7 @@ type GetStateConfigResponse struct { func (x *GetStateConfigResponse) Reset() { *x = GetStateConfigResponse{} if protoimpl.UnsafeEnabled { - mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[23] + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1800,7 +1855,7 @@ func (x *GetStateConfigResponse) String() string { func (*GetStateConfigResponse) ProtoMessage() {} func (x *GetStateConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[23] + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1813,7 +1868,7 @@ func (x *GetStateConfigResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStateConfigResponse.ProtoReflect.Descriptor instead. func (*GetStateConfigResponse) Descriptor() ([]byte, []int) { - return file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP(), []int{23} + return file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP(), []int{24} } func (x *GetStateConfigResponse) GetConfigState() map[string]*FileMetaState { @@ -1861,7 +1916,7 @@ type TracerPredicateV1 struct { func (x *TracerPredicateV1) Reset() { *x = TracerPredicateV1{} if protoimpl.UnsafeEnabled { - mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[24] + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1874,7 +1929,7 @@ func (x *TracerPredicateV1) String() string { func (*TracerPredicateV1) ProtoMessage() {} func (x *TracerPredicateV1) ProtoReflect() protoreflect.Message { - mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[24] + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1887,7 +1942,7 @@ func (x *TracerPredicateV1) ProtoReflect() protoreflect.Message { // Deprecated: Use TracerPredicateV1.ProtoReflect.Descriptor instead. func (*TracerPredicateV1) Descriptor() ([]byte, []int) { - return file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP(), []int{24} + return file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP(), []int{25} } func (x *TracerPredicateV1) GetClientID() string { @@ -1950,7 +2005,7 @@ type TracerPredicates struct { func (x *TracerPredicates) Reset() { *x = TracerPredicates{} if protoimpl.UnsafeEnabled { - mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[25] + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1963,7 +2018,7 @@ func (x *TracerPredicates) String() string { func (*TracerPredicates) ProtoMessage() {} func (x *TracerPredicates) ProtoReflect() protoreflect.Message { - mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[25] + mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1976,7 +2031,7 @@ func (x *TracerPredicates) ProtoReflect() protoreflect.Message { // Deprecated: Use TracerPredicates.ProtoReflect.Descriptor instead. func (*TracerPredicates) Descriptor() ([]byte, []int) { - return file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP(), []int{25} + return file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP(), []int{26} } func (x *TracerPredicates) GetTracerPredicatesV1() []*TracerPredicateV1 { @@ -2162,7 +2217,7 @@ var file_datadog_remoteconfig_remoteconfig_proto_rawDesc = []byte{ 0x65, 0x52, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x70, 0x61, 0x63, 0x65, 0x22, 0xd8, 0x02, + 0x61, 0x62, 0x6c, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x70, 0x61, 0x63, 0x65, 0x22, 0xbb, 0x03, 0x0a, 0x0c, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x62, @@ -2170,164 +2225,175 @@ var file_datadog_remoteconfig_remoteconfig_proto_rawDesc = []byte{ 0x52, 0x0d, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x65, 0x78, 0x70, - 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x32, - 0x0a, 0x15, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, - 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x19, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, - 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x32, - 0x0a, 0x15, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x61, - 0x73, 0x6b, 0x52, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x84, 0x01, 0x0a, 0x10, 0x50, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2f, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x61, - 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2f, - 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, - 0x61, 0x73, 0x6b, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, - 0x39, 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, - 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x0b, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x1f, - 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x22, 0x80, 0x02, 0x0a, 0x0b, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x72, 0x6f, 0x6f, 0x74, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x5f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0d, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x1b, - 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x12, 0x30, 0x0a, 0x14, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x12, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x22, 0x48, 0x0a, 0x0e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x46, 0x69, 0x6c, - 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, - 0x68, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, - 0x74, 0x68, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x74, 0x0a, - 0x0e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x12, - 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, - 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x36, 0x0a, 0x06, 0x68, - 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x52, 0x06, 0x68, 0x61, 0x73, - 0x68, 0x65, 0x73, 0x22, 0x99, 0x01, 0x0a, 0x17, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x47, 0x65, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x2e, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, - 0x4e, 0x0a, 0x13, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x11, 0x63, 0x61, - 0x63, 0x68, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x22, - 0xaa, 0x01, 0x0a, 0x18, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x72, 0x6f, 0x6f, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x05, 0x72, 0x6f, 0x6f, - 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x0c, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x22, 0x3d, 0x0a, 0x0d, - 0x46, 0x69, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0x81, 0x05, 0x0a, 0x16, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x60, 0x0a, 0x0e, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x66, 0x0a, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x66, - 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x46, 0x69, 0x6c, - 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0e, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x0d, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x5d, 0x0a, 0x10, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5f, 0x0a, 0x12, 0x44, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x34, + 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x61, + 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x04, + 0x74, 0x61, 0x73, 0x6b, 0x12, 0x4d, 0x0a, 0x13, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0xeb, 0x01, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x63, 0x65, 0x72, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x56, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, - 0x44, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, - 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, - 0x0a, 0x61, 0x70, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, - 0x0d, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x44, 0x22, 0x67, 0x0a, - 0x10, 0x54, 0x72, 0x61, 0x63, 0x65, 0x72, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x73, 0x12, 0x53, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x65, 0x64, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x76, 0x31, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x72, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x56, 0x31, 0x52, 0x12, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x73, 0x56, 0x31, 0x2a, 0x4a, 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x44, 0x4c, 0x45, 0x10, 0x00, 0x12, 0x0b, 0x0a, - 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, - 0x4e, 0x45, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, - 0x10, 0x04, 0x42, 0x15, 0x5a, 0x13, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, - 0x70, 0x62, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x69, 0x67, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x11, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x55, 0x0a, 0x17, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x15, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x4d, 0x0a, 0x13, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, + 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, + 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, + 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x22, 0x54, 0x0a, 0x0d, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, + 0x64, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, + 0x73, 0x22, 0x84, 0x01, 0x0a, 0x10, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x39, 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, + 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x80, 0x02, 0x0a, 0x0b, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f, 0x6f, + 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0b, 0x72, 0x6f, 0x6f, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x30, 0x0a, 0x14, 0x62, 0x61, + 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, + 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x48, 0x0a, 0x0e, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1c, + 0x0a, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x12, 0x0a, 0x04, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, + 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x74, 0x0a, 0x0e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x46, 0x69, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x12, 0x36, 0x0a, 0x06, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, + 0x48, 0x61, 0x73, 0x68, 0x52, 0x06, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x22, 0x99, 0x01, 0x0a, + 0x17, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, + 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x13, 0x63, 0x61, 0x63, 0x68, + 0x65, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x46, 0x69, 0x6c, + 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x11, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x22, 0xaa, 0x01, 0x0a, 0x18, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6f, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0c, 0x52, 0x05, 0x72, 0x6f, 0x6f, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x46, 0x69, 0x6c, + 0x65, 0x52, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x25, + 0x0a, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x73, 0x22, 0x3d, 0x0a, 0x0d, 0x46, 0x69, 0x6c, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x68, 0x61, 0x73, 0x68, 0x22, 0x81, 0x05, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x5a, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x60, 0x0a, 0x0e, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x66, 0x0a, + 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, + 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x5d, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4d, + 0x65, 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x5f, 0x0a, 0x12, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x46, 0x69, 0x6c, 0x65, + 0x4d, 0x65, 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x46, 0x69, + 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xeb, 0x01, 0x0a, 0x11, 0x54, 0x72, 0x61, + 0x63, 0x65, 0x72, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x56, 0x31, 0x12, 0x1a, + 0x0a, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, + 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x70, 0x70, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, + 0x72, 0x61, 0x63, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, + 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x75, 0x6e, 0x74, + 0x69, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x75, 0x6e, + 0x74, 0x69, 0x6d, 0x65, 0x49, 0x44, 0x22, 0x67, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x63, 0x65, 0x72, + 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x14, 0x74, 0x72, + 0x61, 0x63, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x5f, + 0x76, 0x31, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, + 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x72, + 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x56, 0x31, 0x52, 0x12, 0x74, 0x72, 0x61, + 0x63, 0x65, 0x72, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x56, 0x31, 0x2a, + 0x4a, 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x08, 0x0a, 0x04, + 0x49, 0x44, 0x4c, 0x45, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, + 0x47, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x11, 0x0a, + 0x0d, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x03, + 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x42, 0x15, 0x5a, 0x13, 0x70, + 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x62, 0x67, 0x6f, 0x2f, 0x63, 0x6f, + 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2343,8 +2409,8 @@ func file_datadog_remoteconfig_remoteconfig_proto_rawDescGZIP() []byte { } var file_datadog_remoteconfig_remoteconfig_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_datadog_remoteconfig_remoteconfig_proto_msgTypes = make([]protoimpl.MessageInfo, 29) -var file_datadog_remoteconfig_remoteconfig_proto_goTypes = []interface{}{ +var file_datadog_remoteconfig_remoteconfig_proto_msgTypes = make([]protoimpl.MessageInfo, 30) +var file_datadog_remoteconfig_remoteconfig_proto_goTypes = []any{ (TaskState)(0), // 0: datadog.config.TaskState (*ConfigMetas)(nil), // 1: datadog.config.ConfigMetas (*DirectorMetas)(nil), // 2: datadog.config.DirectorMetas @@ -2360,21 +2426,22 @@ var file_datadog_remoteconfig_remoteconfig_proto_goTypes = []interface{}{ (*ClientAgent)(nil), // 12: datadog.config.ClientAgent (*ClientUpdater)(nil), // 13: datadog.config.ClientUpdater (*PackageState)(nil), // 14: datadog.config.PackageState - (*PackageStateTask)(nil), // 15: datadog.config.PackageStateTask - (*TaskError)(nil), // 16: datadog.config.TaskError - (*ConfigState)(nil), // 17: datadog.config.ConfigState - (*ClientState)(nil), // 18: datadog.config.ClientState - (*TargetFileHash)(nil), // 19: datadog.config.TargetFileHash - (*TargetFileMeta)(nil), // 20: datadog.config.TargetFileMeta - (*ClientGetConfigsRequest)(nil), // 21: datadog.config.ClientGetConfigsRequest - (*ClientGetConfigsResponse)(nil), // 22: datadog.config.ClientGetConfigsResponse - (*FileMetaState)(nil), // 23: datadog.config.FileMetaState - (*GetStateConfigResponse)(nil), // 24: datadog.config.GetStateConfigResponse - (*TracerPredicateV1)(nil), // 25: datadog.config.TracerPredicateV1 - (*TracerPredicates)(nil), // 26: datadog.config.TracerPredicates - nil, // 27: datadog.config.GetStateConfigResponse.ConfigStateEntry - nil, // 28: datadog.config.GetStateConfigResponse.DirectorStateEntry - nil, // 29: datadog.config.GetStateConfigResponse.TargetFilenamesEntry + (*PoliciesState)(nil), // 15: datadog.config.PoliciesState + (*PackageStateTask)(nil), // 16: datadog.config.PackageStateTask + (*TaskError)(nil), // 17: datadog.config.TaskError + (*ConfigState)(nil), // 18: datadog.config.ConfigState + (*ClientState)(nil), // 19: datadog.config.ClientState + (*TargetFileHash)(nil), // 20: datadog.config.TargetFileHash + (*TargetFileMeta)(nil), // 21: datadog.config.TargetFileMeta + (*ClientGetConfigsRequest)(nil), // 22: datadog.config.ClientGetConfigsRequest + (*ClientGetConfigsResponse)(nil), // 23: datadog.config.ClientGetConfigsResponse + (*FileMetaState)(nil), // 24: datadog.config.FileMetaState + (*GetStateConfigResponse)(nil), // 25: datadog.config.GetStateConfigResponse + (*TracerPredicateV1)(nil), // 26: datadog.config.TracerPredicateV1 + (*TracerPredicates)(nil), // 27: datadog.config.TracerPredicates + nil, // 28: datadog.config.GetStateConfigResponse.ConfigStateEntry + nil, // 29: datadog.config.GetStateConfigResponse.DirectorStateEntry + nil, // 30: datadog.config.GetStateConfigResponse.TargetFilenamesEntry } var file_datadog_remoteconfig_remoteconfig_proto_depIdxs = []int32{ 4, // 0: datadog.config.ConfigMetas.roots:type_name -> datadog.config.TopMeta @@ -2390,31 +2457,34 @@ var file_datadog_remoteconfig_remoteconfig_proto_depIdxs = []int32{ 1, // 10: datadog.config.LatestConfigsResponse.config_metas:type_name -> datadog.config.ConfigMetas 2, // 11: datadog.config.LatestConfigsResponse.director_metas:type_name -> datadog.config.DirectorMetas 5, // 12: datadog.config.LatestConfigsResponse.target_files:type_name -> datadog.config.File - 18, // 13: datadog.config.Client.state:type_name -> datadog.config.ClientState + 19, // 13: datadog.config.Client.state:type_name -> datadog.config.ClientState 11, // 14: datadog.config.Client.client_tracer:type_name -> datadog.config.ClientTracer 12, // 15: datadog.config.Client.client_agent:type_name -> datadog.config.ClientAgent 13, // 16: datadog.config.Client.client_updater:type_name -> datadog.config.ClientUpdater 14, // 17: datadog.config.ClientUpdater.packages:type_name -> datadog.config.PackageState - 15, // 18: datadog.config.PackageState.task:type_name -> datadog.config.PackageStateTask - 0, // 19: datadog.config.PackageStateTask.state:type_name -> datadog.config.TaskState - 16, // 20: datadog.config.PackageStateTask.error:type_name -> datadog.config.TaskError - 17, // 21: datadog.config.ClientState.config_states:type_name -> datadog.config.ConfigState - 19, // 22: datadog.config.TargetFileMeta.hashes:type_name -> datadog.config.TargetFileHash - 10, // 23: datadog.config.ClientGetConfigsRequest.client:type_name -> datadog.config.Client - 20, // 24: datadog.config.ClientGetConfigsRequest.cached_target_files:type_name -> datadog.config.TargetFileMeta - 5, // 25: datadog.config.ClientGetConfigsResponse.target_files:type_name -> datadog.config.File - 27, // 26: datadog.config.GetStateConfigResponse.config_state:type_name -> datadog.config.GetStateConfigResponse.ConfigStateEntry - 28, // 27: datadog.config.GetStateConfigResponse.director_state:type_name -> datadog.config.GetStateConfigResponse.DirectorStateEntry - 29, // 28: datadog.config.GetStateConfigResponse.target_filenames:type_name -> datadog.config.GetStateConfigResponse.TargetFilenamesEntry - 10, // 29: datadog.config.GetStateConfigResponse.active_clients:type_name -> datadog.config.Client - 25, // 30: datadog.config.TracerPredicates.tracer_predicates_v1:type_name -> datadog.config.TracerPredicateV1 - 23, // 31: datadog.config.GetStateConfigResponse.ConfigStateEntry.value:type_name -> datadog.config.FileMetaState - 23, // 32: datadog.config.GetStateConfigResponse.DirectorStateEntry.value:type_name -> datadog.config.FileMetaState - 33, // [33:33] is the sub-list for method output_type - 33, // [33:33] is the sub-list for method input_type - 33, // [33:33] is the sub-list for extension type_name - 33, // [33:33] is the sub-list for extension extendee - 0, // [0:33] is the sub-list for field type_name + 16, // 18: datadog.config.PackageState.task:type_name -> datadog.config.PackageStateTask + 15, // 19: datadog.config.PackageState.stable_config_state:type_name -> datadog.config.PoliciesState + 15, // 20: datadog.config.PackageState.experiment_config_state:type_name -> datadog.config.PoliciesState + 15, // 21: datadog.config.PackageState.remote_config_state:type_name -> datadog.config.PoliciesState + 0, // 22: datadog.config.PackageStateTask.state:type_name -> datadog.config.TaskState + 17, // 23: datadog.config.PackageStateTask.error:type_name -> datadog.config.TaskError + 18, // 24: datadog.config.ClientState.config_states:type_name -> datadog.config.ConfigState + 20, // 25: datadog.config.TargetFileMeta.hashes:type_name -> datadog.config.TargetFileHash + 10, // 26: datadog.config.ClientGetConfigsRequest.client:type_name -> datadog.config.Client + 21, // 27: datadog.config.ClientGetConfigsRequest.cached_target_files:type_name -> datadog.config.TargetFileMeta + 5, // 28: datadog.config.ClientGetConfigsResponse.target_files:type_name -> datadog.config.File + 28, // 29: datadog.config.GetStateConfigResponse.config_state:type_name -> datadog.config.GetStateConfigResponse.ConfigStateEntry + 29, // 30: datadog.config.GetStateConfigResponse.director_state:type_name -> datadog.config.GetStateConfigResponse.DirectorStateEntry + 30, // 31: datadog.config.GetStateConfigResponse.target_filenames:type_name -> datadog.config.GetStateConfigResponse.TargetFilenamesEntry + 10, // 32: datadog.config.GetStateConfigResponse.active_clients:type_name -> datadog.config.Client + 26, // 33: datadog.config.TracerPredicates.tracer_predicates_v1:type_name -> datadog.config.TracerPredicateV1 + 24, // 34: datadog.config.GetStateConfigResponse.ConfigStateEntry.value:type_name -> datadog.config.FileMetaState + 24, // 35: datadog.config.GetStateConfigResponse.DirectorStateEntry.value:type_name -> datadog.config.FileMetaState + 36, // [36:36] is the sub-list for method output_type + 36, // [36:36] is the sub-list for method input_type + 36, // [36:36] is the sub-list for extension type_name + 36, // [36:36] is the sub-list for extension extendee + 0, // [0:36] is the sub-list for field type_name } func init() { file_datadog_remoteconfig_remoteconfig_proto_init() } @@ -2423,7 +2493,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*ConfigMetas); i { case 0: return &v.state @@ -2435,7 +2505,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return nil } } - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*DirectorMetas); i { case 0: return &v.state @@ -2447,7 +2517,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return nil } } - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*DelegatedMeta); i { case 0: return &v.state @@ -2459,7 +2529,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return nil } } - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*TopMeta); i { case 0: return &v.state @@ -2471,7 +2541,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return nil } } - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*File); i { case 0: return &v.state @@ -2483,7 +2553,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return nil } } - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*LatestConfigsRequest); i { case 0: return &v.state @@ -2495,7 +2565,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return nil } } - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*LatestConfigsResponse); i { case 0: return &v.state @@ -2507,7 +2577,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return nil } } - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*OrgDataResponse); i { case 0: return &v.state @@ -2519,7 +2589,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return nil } } - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[8].Exporter = func(v any, i int) any { switch v := v.(*OrgStatusResponse); i { case 0: return &v.state @@ -2531,7 +2601,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return nil } } - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[9].Exporter = func(v any, i int) any { switch v := v.(*Client); i { case 0: return &v.state @@ -2543,7 +2613,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return nil } } - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[10].Exporter = func(v any, i int) any { switch v := v.(*ClientTracer); i { case 0: return &v.state @@ -2555,7 +2625,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return nil } } - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[11].Exporter = func(v any, i int) any { switch v := v.(*ClientAgent); i { case 0: return &v.state @@ -2567,7 +2637,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return nil } } - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[12].Exporter = func(v any, i int) any { switch v := v.(*ClientUpdater); i { case 0: return &v.state @@ -2579,7 +2649,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return nil } } - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[13].Exporter = func(v any, i int) any { switch v := v.(*PackageState); i { case 0: return &v.state @@ -2591,7 +2661,19 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return nil } } - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[14].Exporter = func(v any, i int) any { + switch v := v.(*PoliciesState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[15].Exporter = func(v any, i int) any { switch v := v.(*PackageStateTask); i { case 0: return &v.state @@ -2603,7 +2685,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return nil } } - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[16].Exporter = func(v any, i int) any { switch v := v.(*TaskError); i { case 0: return &v.state @@ -2615,7 +2697,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return nil } } - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[17].Exporter = func(v any, i int) any { switch v := v.(*ConfigState); i { case 0: return &v.state @@ -2627,7 +2709,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return nil } } - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[18].Exporter = func(v any, i int) any { switch v := v.(*ClientState); i { case 0: return &v.state @@ -2639,7 +2721,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return nil } } - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[19].Exporter = func(v any, i int) any { switch v := v.(*TargetFileHash); i { case 0: return &v.state @@ -2651,7 +2733,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return nil } } - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[20].Exporter = func(v any, i int) any { switch v := v.(*TargetFileMeta); i { case 0: return &v.state @@ -2663,7 +2745,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return nil } } - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[21].Exporter = func(v any, i int) any { switch v := v.(*ClientGetConfigsRequest); i { case 0: return &v.state @@ -2675,7 +2757,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return nil } } - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[22].Exporter = func(v any, i int) any { switch v := v.(*ClientGetConfigsResponse); i { case 0: return &v.state @@ -2687,7 +2769,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return nil } } - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[23].Exporter = func(v any, i int) any { switch v := v.(*FileMetaState); i { case 0: return &v.state @@ -2699,7 +2781,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return nil } } - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[24].Exporter = func(v any, i int) any { switch v := v.(*GetStateConfigResponse); i { case 0: return &v.state @@ -2711,7 +2793,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return nil } } - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[25].Exporter = func(v any, i int) any { switch v := v.(*TracerPredicateV1); i { case 0: return &v.state @@ -2723,7 +2805,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { return nil } } - file_datadog_remoteconfig_remoteconfig_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_datadog_remoteconfig_remoteconfig_proto_msgTypes[26].Exporter = func(v any, i int) any { switch v := v.(*TracerPredicates); i { case 0: return &v.state @@ -2742,7 +2824,7 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_datadog_remoteconfig_remoteconfig_proto_rawDesc, NumEnums: 1, - NumMessages: 29, + NumMessages: 30, NumExtensions: 0, NumServices: 0, }, diff --git a/pkg/proto/pbgo/core/remoteconfig_gen.go b/pkg/proto/pbgo/core/remoteconfig_gen.go index 8b3916428bab6..cdaaa9e7c3d0a 100644 --- a/pkg/proto/pbgo/core/remoteconfig_gen.go +++ b/pkg/proto/pbgo/core/remoteconfig_gen.go @@ -3069,15 +3069,6 @@ func (z *PackageState) MarshalMsg(b []byte) (o []byte, err error) { // string "ExperimentVersion" o = append(o, 0xb1, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e) o = msgp.AppendString(o, z.ExperimentVersion) - // string "StableConfigVersion" - o = append(o, 0xb3, 0x53, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e) - o = msgp.AppendString(o, z.StableConfigVersion) - // string "ExperimentConfigVersion" - o = append(o, 0xb7, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e) - o = msgp.AppendString(o, z.ExperimentConfigVersion) - // string "RemoteConfigVersion" - o = append(o, 0xb3, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e) - o = msgp.AppendString(o, z.RemoteConfigVersion) // string "Task" o = append(o, 0xa4, 0x54, 0x61, 0x73, 0x6b) if z.Task == nil { @@ -3089,6 +3080,54 @@ func (z *PackageState) MarshalMsg(b []byte) (o []byte, err error) { return } } + // string "StableConfigState" + o = append(o, 0xb1, 0x53, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65) + if z.StableConfigState == nil { + o = msgp.AppendNil(o) + } else { + // map header, size 2 + // string "Version" + o = append(o, 0x82, 0xa7, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e) + o = msgp.AppendString(o, z.StableConfigState.Version) + // string "MatchedPolicies" + o = append(o, 0xaf, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73) + o = msgp.AppendArrayHeader(o, uint32(len(z.StableConfigState.MatchedPolicies))) + for za0001 := range z.StableConfigState.MatchedPolicies { + o = msgp.AppendString(o, z.StableConfigState.MatchedPolicies[za0001]) + } + } + // string "ExperimentConfigState" + o = append(o, 0xb5, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65) + if z.ExperimentConfigState == nil { + o = msgp.AppendNil(o) + } else { + // map header, size 2 + // string "Version" + o = append(o, 0x82, 0xa7, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e) + o = msgp.AppendString(o, z.ExperimentConfigState.Version) + // string "MatchedPolicies" + o = append(o, 0xaf, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73) + o = msgp.AppendArrayHeader(o, uint32(len(z.ExperimentConfigState.MatchedPolicies))) + for za0002 := range z.ExperimentConfigState.MatchedPolicies { + o = msgp.AppendString(o, z.ExperimentConfigState.MatchedPolicies[za0002]) + } + } + // string "RemoteConfigState" + o = append(o, 0xb1, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65) + if z.RemoteConfigState == nil { + o = msgp.AppendNil(o) + } else { + // map header, size 2 + // string "Version" + o = append(o, 0x82, 0xa7, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e) + o = msgp.AppendString(o, z.RemoteConfigState.Version) + // string "MatchedPolicies" + o = append(o, 0xaf, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73) + o = msgp.AppendArrayHeader(o, uint32(len(z.RemoteConfigState.MatchedPolicies))) + for za0003 := range z.RemoteConfigState.MatchedPolicies { + o = msgp.AppendString(o, z.RemoteConfigState.MatchedPolicies[za0003]) + } + } return } @@ -3128,24 +3167,6 @@ func (z *PackageState) UnmarshalMsg(bts []byte) (o []byte, err error) { err = msgp.WrapError(err, "ExperimentVersion") return } - case "StableConfigVersion": - z.StableConfigVersion, bts, err = msgp.ReadStringBytes(bts) - if err != nil { - err = msgp.WrapError(err, "StableConfigVersion") - return - } - case "ExperimentConfigVersion": - z.ExperimentConfigVersion, bts, err = msgp.ReadStringBytes(bts) - if err != nil { - err = msgp.WrapError(err, "ExperimentConfigVersion") - return - } - case "RemoteConfigVersion": - z.RemoteConfigVersion, bts, err = msgp.ReadStringBytes(bts) - if err != nil { - err = msgp.WrapError(err, "RemoteConfigVersion") - return - } case "Task": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) @@ -3163,6 +3184,183 @@ func (z *PackageState) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } + case "StableConfigState": + if msgp.IsNil(bts) { + bts, err = msgp.ReadNilBytes(bts) + if err != nil { + return + } + z.StableConfigState = nil + } else { + if z.StableConfigState == nil { + z.StableConfigState = new(PoliciesState) + } + var zb0002 uint32 + zb0002, bts, err = msgp.ReadMapHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err, "StableConfigState") + return + } + for zb0002 > 0 { + zb0002-- + field, bts, err = msgp.ReadMapKeyZC(bts) + if err != nil { + err = msgp.WrapError(err, "StableConfigState") + return + } + switch msgp.UnsafeString(field) { + case "Version": + z.StableConfigState.Version, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "StableConfigState", "Version") + return + } + case "MatchedPolicies": + var zb0003 uint32 + zb0003, bts, err = msgp.ReadArrayHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err, "StableConfigState", "MatchedPolicies") + return + } + if cap(z.StableConfigState.MatchedPolicies) >= int(zb0003) { + z.StableConfigState.MatchedPolicies = (z.StableConfigState.MatchedPolicies)[:zb0003] + } else { + z.StableConfigState.MatchedPolicies = make([]string, zb0003) + } + for za0001 := range z.StableConfigState.MatchedPolicies { + z.StableConfigState.MatchedPolicies[za0001], bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "StableConfigState", "MatchedPolicies", za0001) + return + } + } + default: + bts, err = msgp.Skip(bts) + if err != nil { + err = msgp.WrapError(err, "StableConfigState") + return + } + } + } + } + case "ExperimentConfigState": + if msgp.IsNil(bts) { + bts, err = msgp.ReadNilBytes(bts) + if err != nil { + return + } + z.ExperimentConfigState = nil + } else { + if z.ExperimentConfigState == nil { + z.ExperimentConfigState = new(PoliciesState) + } + var zb0004 uint32 + zb0004, bts, err = msgp.ReadMapHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err, "ExperimentConfigState") + return + } + for zb0004 > 0 { + zb0004-- + field, bts, err = msgp.ReadMapKeyZC(bts) + if err != nil { + err = msgp.WrapError(err, "ExperimentConfigState") + return + } + switch msgp.UnsafeString(field) { + case "Version": + z.ExperimentConfigState.Version, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "ExperimentConfigState", "Version") + return + } + case "MatchedPolicies": + var zb0005 uint32 + zb0005, bts, err = msgp.ReadArrayHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err, "ExperimentConfigState", "MatchedPolicies") + return + } + if cap(z.ExperimentConfigState.MatchedPolicies) >= int(zb0005) { + z.ExperimentConfigState.MatchedPolicies = (z.ExperimentConfigState.MatchedPolicies)[:zb0005] + } else { + z.ExperimentConfigState.MatchedPolicies = make([]string, zb0005) + } + for za0002 := range z.ExperimentConfigState.MatchedPolicies { + z.ExperimentConfigState.MatchedPolicies[za0002], bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "ExperimentConfigState", "MatchedPolicies", za0002) + return + } + } + default: + bts, err = msgp.Skip(bts) + if err != nil { + err = msgp.WrapError(err, "ExperimentConfigState") + return + } + } + } + } + case "RemoteConfigState": + if msgp.IsNil(bts) { + bts, err = msgp.ReadNilBytes(bts) + if err != nil { + return + } + z.RemoteConfigState = nil + } else { + if z.RemoteConfigState == nil { + z.RemoteConfigState = new(PoliciesState) + } + var zb0006 uint32 + zb0006, bts, err = msgp.ReadMapHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err, "RemoteConfigState") + return + } + for zb0006 > 0 { + zb0006-- + field, bts, err = msgp.ReadMapKeyZC(bts) + if err != nil { + err = msgp.WrapError(err, "RemoteConfigState") + return + } + switch msgp.UnsafeString(field) { + case "Version": + z.RemoteConfigState.Version, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "RemoteConfigState", "Version") + return + } + case "MatchedPolicies": + var zb0007 uint32 + zb0007, bts, err = msgp.ReadArrayHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err, "RemoteConfigState", "MatchedPolicies") + return + } + if cap(z.RemoteConfigState.MatchedPolicies) >= int(zb0007) { + z.RemoteConfigState.MatchedPolicies = (z.RemoteConfigState.MatchedPolicies)[:zb0007] + } else { + z.RemoteConfigState.MatchedPolicies = make([]string, zb0007) + } + for za0003 := range z.RemoteConfigState.MatchedPolicies { + z.RemoteConfigState.MatchedPolicies[za0003], bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "RemoteConfigState", "MatchedPolicies", za0003) + return + } + } + default: + bts, err = msgp.Skip(bts) + if err != nil { + err = msgp.WrapError(err, "RemoteConfigState") + return + } + } + } + } default: bts, err = msgp.Skip(bts) if err != nil { @@ -3177,12 +3375,39 @@ func (z *PackageState) UnmarshalMsg(bts []byte) (o []byte, err error) { // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message func (z *PackageState) Msgsize() (s int) { - s = 1 + 8 + msgp.StringPrefixSize + len(z.Package) + 14 + msgp.StringPrefixSize + len(z.StableVersion) + 18 + msgp.StringPrefixSize + len(z.ExperimentVersion) + 20 + msgp.StringPrefixSize + len(z.StableConfigVersion) + 24 + msgp.StringPrefixSize + len(z.ExperimentConfigVersion) + 20 + msgp.StringPrefixSize + len(z.RemoteConfigVersion) + 5 + s = 1 + 8 + msgp.StringPrefixSize + len(z.Package) + 14 + msgp.StringPrefixSize + len(z.StableVersion) + 18 + msgp.StringPrefixSize + len(z.ExperimentVersion) + 5 if z.Task == nil { s += msgp.NilSize } else { s += z.Task.Msgsize() } + s += 18 + if z.StableConfigState == nil { + s += msgp.NilSize + } else { + s += 1 + 8 + msgp.StringPrefixSize + len(z.StableConfigState.Version) + 16 + msgp.ArrayHeaderSize + for za0001 := range z.StableConfigState.MatchedPolicies { + s += msgp.StringPrefixSize + len(z.StableConfigState.MatchedPolicies[za0001]) + } + } + s += 22 + if z.ExperimentConfigState == nil { + s += msgp.NilSize + } else { + s += 1 + 8 + msgp.StringPrefixSize + len(z.ExperimentConfigState.Version) + 16 + msgp.ArrayHeaderSize + for za0002 := range z.ExperimentConfigState.MatchedPolicies { + s += msgp.StringPrefixSize + len(z.ExperimentConfigState.MatchedPolicies[za0002]) + } + } + s += 18 + if z.RemoteConfigState == nil { + s += msgp.NilSize + } else { + s += 1 + 8 + msgp.StringPrefixSize + len(z.RemoteConfigState.Version) + 16 + msgp.ArrayHeaderSize + for za0003 := range z.RemoteConfigState.MatchedPolicies { + s += msgp.StringPrefixSize + len(z.RemoteConfigState.MatchedPolicies[za0003]) + } + } return } @@ -3315,6 +3540,86 @@ func (z *PackageStateTask) Msgsize() (s int) { return } +// MarshalMsg implements msgp.Marshaler +func (z *PoliciesState) MarshalMsg(b []byte) (o []byte, err error) { + o = msgp.Require(b, z.Msgsize()) + // map header, size 2 + // string "Version" + o = append(o, 0x82, 0xa7, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e) + o = msgp.AppendString(o, z.Version) + // string "MatchedPolicies" + o = append(o, 0xaf, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73) + o = msgp.AppendArrayHeader(o, uint32(len(z.MatchedPolicies))) + for za0001 := range z.MatchedPolicies { + o = msgp.AppendString(o, z.MatchedPolicies[za0001]) + } + return +} + +// UnmarshalMsg implements msgp.Unmarshaler +func (z *PoliciesState) UnmarshalMsg(bts []byte) (o []byte, err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + for zb0001 > 0 { + zb0001-- + field, bts, err = msgp.ReadMapKeyZC(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + switch msgp.UnsafeString(field) { + case "Version": + z.Version, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "Version") + return + } + case "MatchedPolicies": + var zb0002 uint32 + zb0002, bts, err = msgp.ReadArrayHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err, "MatchedPolicies") + return + } + if cap(z.MatchedPolicies) >= int(zb0002) { + z.MatchedPolicies = (z.MatchedPolicies)[:zb0002] + } else { + z.MatchedPolicies = make([]string, zb0002) + } + for za0001 := range z.MatchedPolicies { + z.MatchedPolicies[za0001], bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "MatchedPolicies", za0001) + return + } + } + default: + bts, err = msgp.Skip(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + } + } + o = bts + return +} + +// Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message +func (z *PoliciesState) Msgsize() (s int) { + s = 1 + 8 + msgp.StringPrefixSize + len(z.Version) + 16 + msgp.ArrayHeaderSize + for za0001 := range z.MatchedPolicies { + s += msgp.StringPrefixSize + len(z.MatchedPolicies[za0001]) + } + return +} + // MarshalMsg implements msgp.Marshaler func (z TargetFileHash) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.Require(b, z.Msgsize()) diff --git a/pkg/proto/pbgo/core/remoteconfig_gen_test.go b/pkg/proto/pbgo/core/remoteconfig_gen_test.go index 8bb705b8db5b5..4f572c39bff7a 100644 --- a/pkg/proto/pbgo/core/remoteconfig_gen_test.go +++ b/pkg/proto/pbgo/core/remoteconfig_gen_test.go @@ -1168,6 +1168,64 @@ func BenchmarkUnmarshalPackageStateTask(b *testing.B) { } } +func TestMarshalUnmarshalPoliciesState(t *testing.T) { + v := PoliciesState{} + bts, err := v.MarshalMsg(nil) + if err != nil { + t.Fatal(err) + } + left, err := v.UnmarshalMsg(bts) + if err != nil { + t.Fatal(err) + } + if len(left) > 0 { + t.Errorf("%d bytes left over after UnmarshalMsg(): %q", len(left), left) + } + + left, err = msgp.Skip(bts) + if err != nil { + t.Fatal(err) + } + if len(left) > 0 { + t.Errorf("%d bytes left over after Skip(): %q", len(left), left) + } +} + +func BenchmarkMarshalMsgPoliciesState(b *testing.B) { + v := PoliciesState{} + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + v.MarshalMsg(nil) + } +} + +func BenchmarkAppendMsgPoliciesState(b *testing.B) { + v := PoliciesState{} + bts := make([]byte, 0, v.Msgsize()) + bts, _ = v.MarshalMsg(bts[0:0]) + b.SetBytes(int64(len(bts))) + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + bts, _ = v.MarshalMsg(bts[0:0]) + } +} + +func BenchmarkUnmarshalPoliciesState(b *testing.B) { + v := PoliciesState{} + bts, _ := v.MarshalMsg(nil) + b.ReportAllocs() + b.SetBytes(int64(len(bts))) + b.ResetTimer() + for i := 0; i < b.N; i++ { + _, err := v.UnmarshalMsg(bts) + if err != nil { + b.Fatal(err) + } + } +} + func TestMarshalUnmarshalTargetFileHash(t *testing.T) { v := TargetFileHash{} bts, err := v.MarshalMsg(nil) diff --git a/test/new-e2e/go.mod b/test/new-e2e/go.mod index e5286b1a6623f..22e7754303033 100644 --- a/test/new-e2e/go.mod +++ b/test/new-e2e/go.mod @@ -300,6 +300,7 @@ require ( require ( github.com/DataDog/datadog-agent/comp/core/tagger/utils v0.59.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect + github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect github.com/pulumi/pulumi-azure-native-sdk/authorization/v2 v2.67.0 // indirect github.com/pulumi/pulumi-azure-native-sdk/compute/v2 v2.56.0 // indirect github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2 v2.67.0 // indirect @@ -315,4 +316,6 @@ require ( go.opentelemetry.io/collector/pdata v1.20.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect + google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 // indirect ) diff --git a/test/new-e2e/go.sum b/test/new-e2e/go.sum index 966eb25eb3d8b..076037f33850b 100644 --- a/test/new-e2e/go.sum +++ b/test/new-e2e/go.sum @@ -1,4 +1,5 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= @@ -42,6 +43,7 @@ github.com/alessio/shellescape v1.4.2 h1:MHPfaU+ddJ0/bYWpgIeUnQUqKrlJ1S7BfEYPM4u github.com/alessio/shellescape v1.4.2/go.mod h1:PZAiSCk0LJaZkiCSkPv8qIobYglO3FPpyFjDCtHLS30= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY= github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= @@ -133,6 +135,7 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/containerd/console v1.0.4 h1:F2g4+oChYvBTsASRTz8NP6iIAi97J3TtSAsLbIFn4ro= github.com/containerd/console v1.0.4/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= @@ -168,7 +171,9 @@ github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxER github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84= github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= @@ -186,6 +191,7 @@ github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nos github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/fvbommel/sortorder v1.1.0 h1:fUmoe+HLsBTctBDoaBwpQo5N+nrCp8g/BjKb/6ZQmYw= github.com/fvbommel/sortorder v1.1.0/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gliderlabs/ssh v0.3.7 h1:iV3Bqi942d9huXnzEF2Mt+CY9gLu8DNM4Obd+8bODRE= github.com/gliderlabs/ssh v0.3.7/go.mod h1:zpHEXBstFnQYtGnB8k8kQLol82umzn/2/snG7alWVD8= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= @@ -225,6 +231,7 @@ github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfb github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -253,6 +260,7 @@ github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 h1:Xim43kblpZXfIBQsbu github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= @@ -261,6 +269,7 @@ github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/ad github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0= github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU= @@ -449,6 +458,7 @@ github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJ github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= @@ -583,12 +593,14 @@ golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200421231249-e086a090c8fd/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= @@ -602,10 +614,12 @@ golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA= golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -691,15 +705,19 @@ google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAs google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 h1:ImUcDPHjTrAqNhlOkSocDLfG9rrNHH7w7uoKWPaWZ8s= +google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7/go.mod h1:/3XmxOjePkvmKrHuBy4zNFw7IzxJXtAgdpXi8Ll990U= google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 h1:wKguEg1hsxI2/L3hUYrpo1RVi48K+uTyzKqprwLXsb8= google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142/go.mod h1:d6be+8HhtEtucleCbxpPW9PA9XwISACu8nvpPqF0BVo= google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= @@ -723,6 +741,7 @@ gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWD gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= diff --git a/test/new-e2e/tests/installer/unix/upgrade_scenario_test.go b/test/new-e2e/tests/installer/unix/upgrade_scenario_test.go index 2ed3db8edffca..74d3b888cab58 100644 --- a/test/new-e2e/tests/installer/unix/upgrade_scenario_test.go +++ b/test/new-e2e/tests/installer/unix/upgrade_scenario_test.go @@ -10,6 +10,7 @@ import ( "fmt" "time" + pbgo "github.com/DataDog/datadog-agent/pkg/proto/pbgo/core" "github.com/DataDog/datadog-agent/test/new-e2e/pkg/utils/e2e/client" "github.com/DataDog/datadog-agent/test/new-e2e/tests/installer/host" e2eos "github.com/DataDog/test-infra-definitions/components/os" @@ -404,6 +405,14 @@ func (s *upgradeScenarioSuite) TestConfigUpgradeSuccessful() { state := s.host.State() state.AssertSymlinkExists("/etc/datadog-agent/managed/datadog-agent/stable", "/etc/datadog-agent/managed/datadog-agent/e94406c45ae766b7d34d2793e4759b9c4d15ed5d5e2b7f73ce1bf0e6836f728d", "root", "root") + // Verify metadata + state.AssertFileExists("/etc/datadog-agent/managed/datadog-agent/e94406c45ae766b7d34d2793e4759b9c4d15ed5d5e2b7f73ce1bf0e6836f728d/policy.metadata", 0440, "dd-agent", "dd-agent") + file := s.Env().RemoteHost.MustExecute("sudo cat /etc/datadog-agent/managed/datadog-agent/e94406c45ae766b7d34d2793e4759b9c4d15ed5d5e2b7f73ce1bf0e6836f728d/policy.metadata") + policiesState := &pbgo.PoliciesState{} + err := json.Unmarshal([]byte(file), policiesState) + require.NoError(s.T(), err) + require.Len(s.T(), policiesState.MatchedPolicies, 1) + require.Equal(s.T(), policiesState.Version, "e94406c45ae766b7d34d2793e4759b9c4d15ed5d5e2b7f73ce1bf0e6836f728d") localCDN.UpdateLayer("config", "\"log_level\": \"error\"") s.executeConfigGoldenPath(localCDN.DirPath, "c78c5e96820c89c6cbc178ddba4ce20a167138a3a580ed4637369a9c5ed804c3") From e2e7e1a4c5ca7fe262e5a9c920f4637e1250e45b Mon Sep 17 00:00:00 2001 From: Jonathan Ribas Date: Fri, 29 Nov 2024 18:34:43 +0100 Subject: [PATCH 174/439] [CWS] Fix a ptrace test and add Centos7 support (#31552) --- pkg/security/probe/probe_ebpf.go | 16 +-- pkg/security/tests/ptrace_test.go | 4 +- .../tests/syscall_tester/c/syscall_tester.c | 5 +- pkg/security/utils/proc_linux.go | 97 +++++++++++++++++++ 4 files changed, 105 insertions(+), 17 deletions(-) diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go index f5135589812ba..6f1090b63a72c 100644 --- a/pkg/security/probe/probe_ebpf.go +++ b/pkg/security/probe/probe_ebpf.go @@ -1086,23 +1086,15 @@ func (p *EBPFProbe) handleEvent(CPU int, data []byte) { pidToResolve := event.PTrace.PID if pidToResolve == 0 { // resolve the PID given as argument instead - if event.ContainerContext.ContainerID == "" { + containerID := p.fieldHandlers.ResolveContainerID(event, event.ContainerContext) + if containerID == "" && event.PTrace.Request != unix.PTRACE_ATTACH { pidToResolve = event.PTrace.NSPID } else { - // 1. get the pid namespace of the tracer - ns, err := utils.GetProcessPidNamespace(event.ProcessContext.Process.Pid) + pid, err := utils.TryToResolveTraceePid(event.ProcessContext.Process.Pid, event.PTrace.NSPID) if err != nil { - seclog.Errorf("Failed to resolve PID namespace: %v", err) + seclog.Errorf("PTrace err: %v", err) return } - - // 2. find the host pid matching the arg pid with he tracer namespace - pid, err := utils.FindPidNamespace(event.PTrace.NSPID, ns) - if err != nil { - seclog.Warnf("Failed to resolve tracee PID namespace: %v", err) - return - } - pidToResolve = pid } } diff --git a/pkg/security/tests/ptrace_test.go b/pkg/security/tests/ptrace_test.go index f6f660422ae46..2ee8d4e170946 100644 --- a/pkg/security/tests/ptrace_test.go +++ b/pkg/security/tests/ptrace_test.go @@ -102,7 +102,7 @@ func TestPTraceEvent(t *testing.T) { }) test.Run(t, "ptrace-attach", func(t *testing.T, _ wrapperType, cmdFunc func(cmd string, args []string, envs []string) *exec.Cmd) { - args := []string{"ptrace-attach"} + args := []string{"sleep", "2", ";", "ptrace-attach"} envs := []string{} err := test.GetEventSent(t, func() error { @@ -122,7 +122,7 @@ func TestPTraceEvent(t *testing.T) { test.validatePTraceSchema(t, event) return true - }, time.Second*3, "test_ptrace_attach") + }, time.Second*6, "test_ptrace_attach") if err != nil { t.Error(err) } diff --git a/pkg/security/tests/syscall_tester/c/syscall_tester.c b/pkg/security/tests/syscall_tester/c/syscall_tester.c index 76844cf222e5c..5fc0ba53ddf09 100644 --- a/pkg/security/tests/syscall_tester/c/syscall_tester.c +++ b/pkg/security/tests/syscall_tester/c/syscall_tester.c @@ -188,12 +188,11 @@ int ptrace_traceme() { int ptrace_attach() { int child = fork(); if (child == 0) { - for (int i = 0; i < 20; i++) { - sleep(1); - } + sleep(3); } else { ptrace(PTRACE_ATTACH, child, 0, NULL); wait(NULL); + sleep(3); // sleep here to let the agent resolve the pid namespace on procfs } return EXIT_SUCCESS; } diff --git a/pkg/security/utils/proc_linux.go b/pkg/security/utils/proc_linux.go index 9fcbbde812ca7..5868a0a958457 100644 --- a/pkg/security/utils/proc_linux.go +++ b/pkg/security/utils/proc_linux.go @@ -468,3 +468,100 @@ func FindPidNamespace(nspid uint32, ns uint64) (uint32, error) { } return 0, errors.New("PID not found") } + +// GetTracerPid returns the tracer pid of the the givent root pid +func GetTracerPid(pid uint32) (uint32, error) { + statusFile := StatusPath(pid) + content, err := os.ReadFile(statusFile) + if err != nil { + return 0, fmt.Errorf("failed to read status file: %w", err) + } + + lines := strings.Split(string(content), "\n") + for _, line := range lines { + if strings.HasPrefix(line, "TracerPid:") { + // Remove "NSpid:" prefix and trim spaces + line = strings.TrimPrefix(line, "TracerPid:") + line = strings.TrimSpace(line) + + tracerPid, err := strconv.ParseUint(line, 10, 64) + if err != nil { + return 0, fmt.Errorf("failed to parse TracerPid value: %w", err) + } + return uint32(tracerPid), nil + } + } + return 0, fmt.Errorf("TracerPid field not found") +} + +// FindTraceesByTracerPid returns the process list being trced by the given tracer host PID +func FindTraceesByTracerPid(pid uint32) ([]uint32, error) { + procPids, err := process.Pids() + if err != nil { + return nil, err + } + + traceePids := []uint32{} + for _, procPid := range procPids { + tracerPid, err := GetTracerPid(uint32(procPid)) + if err != nil { + continue + } + if tracerPid == pid { + traceePids = append(traceePids, uint32(procPid)) + } + } + return traceePids, nil +} + +var isNsPidAvailable = sync.OnceValue(func() bool { + content, err := os.ReadFile("/proc/self/status") + if err != nil { + return false + } + lines := strings.Split(string(content), "\n") + for _, line := range lines { + if strings.HasPrefix(line, "NSpid:") { + return true + } + } + return false +}) + +// TryToResolveTraceePid tries to resolve and returnt the HOST tracee PID, given the HOST tracer PID and the namespaced tracee PID. +func TryToResolveTraceePid(hostTracerPID, NsTraceePid uint32) (uint32, error) { + // Look if the NSpid status field is available or not (it should be, except for Centos7). + if isNsPidAvailable() { + /* + If it's available, we will search for an host pid having the same PID namespace as the + tracer, and having the corresponding NS PID in its status field + */ + + // 1. get the pid namespace of the tracer + ns, err := GetProcessPidNamespace(hostTracerPID) + if err != nil { + return 0, fmt.Errorf("Failed to resolve PID namespace: %v", err) + } + + // 2. find the host pid matching the arg pid with he tracer namespace + pid, err := FindPidNamespace(NsTraceePid, ns) + if err != nil { + return 0, fmt.Errorf("Failed to resolve tracee PID namespace: %v", err) + } + return pid, nil + } + + /* + Otherwise, we look at all process matching the tracer PID. And as a tracer can attach + to multiple tracees, we return a result only if we found only one. + */ + traceePids, err := FindTraceesByTracerPid(hostTracerPID) + if err != nil { + return 0, fmt.Errorf("Failed to find tracee pids matching tracer pid: %v", err) + } + if len(traceePids) == 1 { + return traceePids[0], nil + } + + return 0, errors.New("Unable to resolve host tracee PID") +} From c86fec45705791989b6b81be7b33d33a487dc619 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20Beauz=C3=A9e-Luyssen?= Date: Fri, 29 Nov 2024 18:34:48 +0100 Subject: [PATCH 175/439] omnibus: don't bother creating the xz package for heroku (#31626) --- omnibus/config/projects/agent.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/omnibus/config/projects/agent.rb b/omnibus/config/projects/agent.rb index bd24283687dbf..62a6afb6deaf7 100644 --- a/omnibus/config/projects/agent.rb +++ b/omnibus/config/projects/agent.rb @@ -211,7 +211,7 @@ end package :xz do - skip_packager (!do_build && !BUILD_OCIRU) + skip_packager (!do_build && !BUILD_OCIRU) || heroku_target? compression_threads COMPRESSION_THREADS compression_level COMPRESSION_LEVEL end From 8c32e54d86186e0c28a32b7ff5e11fadee211e5f Mon Sep 17 00:00:00 2001 From: Arthur Bellal Date: Fri, 29 Nov 2024 19:02:38 +0100 Subject: [PATCH 176/439] (fleet) rename services => packages (#31613) --- pkg/fleet/installer/installer.go | 30 +++++++++---------- .../{service => packages}/apm_inject.go | 5 ++-- .../{service => packages}/apm_inject_test.go | 3 +- .../apm_inject_windows.go | 3 +- .../{service => packages}/apm_sockets.go | 3 +- .../{service => packages}/apm_sockets_test.go | 3 +- .../{service => packages}/app_armor.go | 3 +- .../{service => packages}/datadog_agent.go | 3 +- .../datadog_agent_windows.go | 3 +- .../datadog_installer.go | 3 +- .../datadog_installer_windows.go | 4 ++- .../installer/{service => packages}/docker.go | 3 +- .../{service => packages}/docker_test.go | 3 +- .../embedded/datadog-agent-exp.service | 0 .../datadog-agent-process-exp.service | 0 .../embedded/datadog-agent-process.service | 0 .../datadog-agent-security-exp.service | 0 .../embedded/datadog-agent-security.service | 0 .../datadog-agent-sysprobe-exp.service | 0 .../embedded/datadog-agent-sysprobe.service | 0 .../embedded/datadog-agent-trace-exp.service | 0 .../embedded/datadog-agent-trace.service | 0 .../embedded/datadog-agent.service | 0 .../embedded/datadog-installer-exp.service | 0 .../embedded/datadog-installer.service | 0 .../{service => packages}/embedded/dd-cleanup | 0 .../embedded/dd-container-install | 0 .../embedded/dd-host-install | 0 .../{service => packages}/embedded/embed.go | 0 .../installer/{service => packages}/file.go | 3 +- .../{service => packages}/file_test.go | 3 +- .../{service => packages}/msiexec.go | 7 +++-- .../{service => packages}/systemd.go | 5 ++-- .../{service => packages}/systemd_windows.go | 3 +- 34 files changed, 40 insertions(+), 50 deletions(-) rename pkg/fleet/installer/{service => packages}/apm_inject.go (98%) rename pkg/fleet/installer/{service => packages}/apm_inject_test.go (98%) rename pkg/fleet/installer/{service => packages}/apm_inject_windows.go (89%) rename pkg/fleet/installer/{service => packages}/apm_sockets.go (98%) rename pkg/fleet/installer/{service => packages}/apm_sockets_test.go (98%) rename pkg/fleet/installer/{service => packages}/app_armor.go (96%) rename pkg/fleet/installer/{service => packages}/datadog_agent.go (98%) rename pkg/fleet/installer/{service => packages}/datadog_agent_windows.go (97%) rename pkg/fleet/installer/{service => packages}/datadog_installer.go (98%) rename pkg/fleet/installer/{service => packages}/datadog_installer_windows.go (96%) rename pkg/fleet/installer/{service => packages}/docker.go (98%) rename pkg/fleet/installer/{service => packages}/docker_test.go (97%) rename pkg/fleet/installer/{service => packages}/embedded/datadog-agent-exp.service (100%) rename pkg/fleet/installer/{service => packages}/embedded/datadog-agent-process-exp.service (100%) rename pkg/fleet/installer/{service => packages}/embedded/datadog-agent-process.service (100%) rename pkg/fleet/installer/{service => packages}/embedded/datadog-agent-security-exp.service (100%) rename pkg/fleet/installer/{service => packages}/embedded/datadog-agent-security.service (100%) rename pkg/fleet/installer/{service => packages}/embedded/datadog-agent-sysprobe-exp.service (100%) rename pkg/fleet/installer/{service => packages}/embedded/datadog-agent-sysprobe.service (100%) rename pkg/fleet/installer/{service => packages}/embedded/datadog-agent-trace-exp.service (100%) rename pkg/fleet/installer/{service => packages}/embedded/datadog-agent-trace.service (100%) rename pkg/fleet/installer/{service => packages}/embedded/datadog-agent.service (100%) rename pkg/fleet/installer/{service => packages}/embedded/datadog-installer-exp.service (100%) rename pkg/fleet/installer/{service => packages}/embedded/datadog-installer.service (100%) rename pkg/fleet/installer/{service => packages}/embedded/dd-cleanup (100%) rename pkg/fleet/installer/{service => packages}/embedded/dd-container-install (100%) rename pkg/fleet/installer/{service => packages}/embedded/dd-host-install (100%) rename pkg/fleet/installer/{service => packages}/embedded/embed.go (100%) rename pkg/fleet/installer/{service => packages}/file.go (98%) rename pkg/fleet/installer/{service => packages}/file_test.go (98%) rename pkg/fleet/installer/{service => packages}/msiexec.go (99%) rename pkg/fleet/installer/{service => packages}/systemd.go (96%) rename pkg/fleet/installer/{service => packages}/systemd_windows.go (82%) diff --git a/pkg/fleet/installer/installer.go b/pkg/fleet/installer/installer.go index 4b62c43b5aee9..8db7bc07954a5 100644 --- a/pkg/fleet/installer/installer.go +++ b/pkg/fleet/installer/installer.go @@ -21,8 +21,8 @@ import ( "github.com/DataDog/datadog-agent/pkg/fleet/internal/paths" fleetEnv "github.com/DataDog/datadog-agent/pkg/fleet/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/packages" "github.com/DataDog/datadog-agent/pkg/fleet/installer/repository" - "github.com/DataDog/datadog-agent/pkg/fleet/installer/service" "github.com/DataDog/datadog-agent/pkg/fleet/internal/db" "github.com/DataDog/datadog-agent/pkg/fleet/internal/oci" "github.com/DataDog/datadog-agent/pkg/util/log" @@ -476,7 +476,7 @@ func (i *installerImpl) InstrumentAPMInjector(ctx context.Context, method string return fmt.Errorf("APM injector is not installed") } - err = service.InstrumentAPMInjector(ctx, method) + err = packages.InstrumentAPMInjector(ctx, method) if err != nil { return fmt.Errorf("could not instrument APM: %w", err) } @@ -496,7 +496,7 @@ func (i *installerImpl) UninstrumentAPMInjector(ctx context.Context, method stri return fmt.Errorf("APM injector is not installed") } - err = service.UninstrumentAPMInjector(ctx, method) + err = packages.UninstrumentAPMInjector(ctx, method) if err != nil { return fmt.Errorf("could not instrument APM: %w", err) } @@ -539,9 +539,9 @@ func (i *installerImpl) Close() error { func (i *installerImpl) startExperiment(ctx context.Context, pkg string) error { switch pkg { case packageDatadogAgent: - return service.StartAgentExperiment(ctx) + return packages.StartAgentExperiment(ctx) case packageDatadogInstaller: - return service.StartInstallerExperiment(ctx) + return packages.StartInstallerExperiment(ctx) default: return nil } @@ -550,9 +550,9 @@ func (i *installerImpl) startExperiment(ctx context.Context, pkg string) error { func (i *installerImpl) stopExperiment(ctx context.Context, pkg string) error { switch pkg { case packageDatadogAgent: - return service.StopAgentExperiment(ctx) + return packages.StopAgentExperiment(ctx) case packageDatadogInstaller: - return service.StopInstallerExperiment(ctx) + return packages.StopInstallerExperiment(ctx) default: return nil } @@ -561,9 +561,9 @@ func (i *installerImpl) stopExperiment(ctx context.Context, pkg string) error { func (i *installerImpl) promoteExperiment(ctx context.Context, pkg string) error { switch pkg { case packageDatadogAgent: - return service.PromoteAgentExperiment(ctx) + return packages.PromoteAgentExperiment(ctx) case packageDatadogInstaller: - return service.PromoteInstallerExperiment(ctx) + return packages.PromoteInstallerExperiment(ctx) default: return nil } @@ -572,11 +572,11 @@ func (i *installerImpl) promoteExperiment(ctx context.Context, pkg string) error func (i *installerImpl) setupPackage(ctx context.Context, pkg string, args []string) error { switch pkg { case packageDatadogInstaller: - return service.SetupInstaller(ctx) + return packages.SetupInstaller(ctx) case packageDatadogAgent: - return service.SetupAgent(ctx, args) + return packages.SetupAgent(ctx, args) case packageAPMInjector: - return service.SetupAPMInjector(ctx) + return packages.SetupAPMInjector(ctx) default: return nil } @@ -585,11 +585,11 @@ func (i *installerImpl) setupPackage(ctx context.Context, pkg string, args []str func (i *installerImpl) removePackage(ctx context.Context, pkg string) error { switch pkg { case packageDatadogAgent: - return service.RemoveAgent(ctx) + return packages.RemoveAgent(ctx) case packageAPMInjector: - return service.RemoveAPMInjector(ctx) + return packages.RemoveAPMInjector(ctx) case packageDatadogInstaller: - return service.RemoveInstaller(ctx) + return packages.RemoveInstaller(ctx) default: return nil } diff --git a/pkg/fleet/installer/service/apm_inject.go b/pkg/fleet/installer/packages/apm_inject.go similarity index 98% rename from pkg/fleet/installer/service/apm_inject.go rename to pkg/fleet/installer/packages/apm_inject.go index af60de60025dd..cd7c08504deb6 100644 --- a/pkg/fleet/installer/service/apm_inject.go +++ b/pkg/fleet/installer/packages/apm_inject.go @@ -5,8 +5,7 @@ //go:build !windows -// Package service provides a way to interact with os services -package service +package packages import ( "bytes" @@ -19,7 +18,7 @@ import ( "strings" "github.com/DataDog/datadog-agent/pkg/fleet/env" - "github.com/DataDog/datadog-agent/pkg/fleet/installer/service/embedded" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/packages/embedded" "github.com/DataDog/datadog-agent/pkg/util/log" "go.uber.org/multierr" "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" diff --git a/pkg/fleet/installer/service/apm_inject_test.go b/pkg/fleet/installer/packages/apm_inject_test.go similarity index 98% rename from pkg/fleet/installer/service/apm_inject_test.go rename to pkg/fleet/installer/packages/apm_inject_test.go index 559531541bd60..736077ea7b934 100644 --- a/pkg/fleet/installer/service/apm_inject_test.go +++ b/pkg/fleet/installer/packages/apm_inject_test.go @@ -5,8 +5,7 @@ //go:build !windows -// Package service provides a way to interact with os services -package service +package packages import ( "context" diff --git a/pkg/fleet/installer/service/apm_inject_windows.go b/pkg/fleet/installer/packages/apm_inject_windows.go similarity index 89% rename from pkg/fleet/installer/service/apm_inject_windows.go rename to pkg/fleet/installer/packages/apm_inject_windows.go index 75e041f8651e4..3e80c0d56a2c0 100644 --- a/pkg/fleet/installer/service/apm_inject_windows.go +++ b/pkg/fleet/installer/packages/apm_inject_windows.go @@ -5,8 +5,7 @@ //go:build windows -// Package service provides a way to interact with os services -package service +package packages import "context" diff --git a/pkg/fleet/installer/service/apm_sockets.go b/pkg/fleet/installer/packages/apm_sockets.go similarity index 98% rename from pkg/fleet/installer/service/apm_sockets.go rename to pkg/fleet/installer/packages/apm_sockets.go index a01889a47ea45..db2def19fe43f 100644 --- a/pkg/fleet/installer/service/apm_sockets.go +++ b/pkg/fleet/installer/packages/apm_sockets.go @@ -5,8 +5,7 @@ //go:build !windows -// Package service provides a way to interact with os services -package service +package packages import ( "bytes" diff --git a/pkg/fleet/installer/service/apm_sockets_test.go b/pkg/fleet/installer/packages/apm_sockets_test.go similarity index 98% rename from pkg/fleet/installer/service/apm_sockets_test.go rename to pkg/fleet/installer/packages/apm_sockets_test.go index 71148ecc8dca7..a65b6d959d9da 100644 --- a/pkg/fleet/installer/service/apm_sockets_test.go +++ b/pkg/fleet/installer/packages/apm_sockets_test.go @@ -5,8 +5,7 @@ //go:build !windows -// Package service provides a way to interact with os services -package service +package packages import ( "context" diff --git a/pkg/fleet/installer/service/app_armor.go b/pkg/fleet/installer/packages/app_armor.go similarity index 96% rename from pkg/fleet/installer/service/app_armor.go rename to pkg/fleet/installer/packages/app_armor.go index fceb30c9171a8..bd0ea2889802e 100644 --- a/pkg/fleet/installer/service/app_armor.go +++ b/pkg/fleet/installer/packages/app_armor.go @@ -5,8 +5,7 @@ //go:build !windows -// Package service provides a way to interact with os services -package service +package packages import ( "context" diff --git a/pkg/fleet/installer/service/datadog_agent.go b/pkg/fleet/installer/packages/datadog_agent.go similarity index 98% rename from pkg/fleet/installer/service/datadog_agent.go rename to pkg/fleet/installer/packages/datadog_agent.go index 56e039f5bb0c1..df7c9cbb37063 100644 --- a/pkg/fleet/installer/service/datadog_agent.go +++ b/pkg/fleet/installer/packages/datadog_agent.go @@ -5,8 +5,7 @@ //go:build !windows -// Package service provides a way to interact with os services -package service +package packages import ( "context" diff --git a/pkg/fleet/installer/service/datadog_agent_windows.go b/pkg/fleet/installer/packages/datadog_agent_windows.go similarity index 97% rename from pkg/fleet/installer/service/datadog_agent_windows.go rename to pkg/fleet/installer/packages/datadog_agent_windows.go index 98fb9dfeae519..3000a96fe712d 100644 --- a/pkg/fleet/installer/service/datadog_agent_windows.go +++ b/pkg/fleet/installer/packages/datadog_agent_windows.go @@ -5,8 +5,7 @@ //go:build windows -// Package service provides a way to interact with os services -package service +package packages import ( "context" diff --git a/pkg/fleet/installer/service/datadog_installer.go b/pkg/fleet/installer/packages/datadog_installer.go similarity index 98% rename from pkg/fleet/installer/service/datadog_installer.go rename to pkg/fleet/installer/packages/datadog_installer.go index 722766a6a0659..14d0f042cd0e6 100644 --- a/pkg/fleet/installer/service/datadog_installer.go +++ b/pkg/fleet/installer/packages/datadog_installer.go @@ -5,7 +5,8 @@ //go:build !windows -package service +// Package packages contains the install/upgrades/uninstall logic for packages +package packages import ( "context" diff --git a/pkg/fleet/installer/service/datadog_installer_windows.go b/pkg/fleet/installer/packages/datadog_installer_windows.go similarity index 96% rename from pkg/fleet/installer/service/datadog_installer_windows.go rename to pkg/fleet/installer/packages/datadog_installer_windows.go index 3bc775e2efa83..2d8dc8241c541 100644 --- a/pkg/fleet/installer/service/datadog_installer_windows.go +++ b/pkg/fleet/installer/packages/datadog_installer_windows.go @@ -5,10 +5,12 @@ //go:build windows -package service +// Package packages contains the install/upgrades/uninstall logic for packages +package packages import ( "context" + "github.com/DataDog/datadog-agent/pkg/util/log" "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" ) diff --git a/pkg/fleet/installer/service/docker.go b/pkg/fleet/installer/packages/docker.go similarity index 98% rename from pkg/fleet/installer/service/docker.go rename to pkg/fleet/installer/packages/docker.go index 088fb5678c2ac..8c19fc04a4ec8 100644 --- a/pkg/fleet/installer/service/docker.go +++ b/pkg/fleet/installer/packages/docker.go @@ -5,8 +5,7 @@ //go:build !windows -// Package service provides a way to interact with os services -package service +package packages import ( "bytes" diff --git a/pkg/fleet/installer/service/docker_test.go b/pkg/fleet/installer/packages/docker_test.go similarity index 97% rename from pkg/fleet/installer/service/docker_test.go rename to pkg/fleet/installer/packages/docker_test.go index cf72e877cebb6..0ef9c42be0a98 100644 --- a/pkg/fleet/installer/service/docker_test.go +++ b/pkg/fleet/installer/packages/docker_test.go @@ -5,8 +5,7 @@ //go:build !windows -// Package service provides a way to interact with os services -package service +package packages import ( "context" diff --git a/pkg/fleet/installer/service/embedded/datadog-agent-exp.service b/pkg/fleet/installer/packages/embedded/datadog-agent-exp.service similarity index 100% rename from pkg/fleet/installer/service/embedded/datadog-agent-exp.service rename to pkg/fleet/installer/packages/embedded/datadog-agent-exp.service diff --git a/pkg/fleet/installer/service/embedded/datadog-agent-process-exp.service b/pkg/fleet/installer/packages/embedded/datadog-agent-process-exp.service similarity index 100% rename from pkg/fleet/installer/service/embedded/datadog-agent-process-exp.service rename to pkg/fleet/installer/packages/embedded/datadog-agent-process-exp.service diff --git a/pkg/fleet/installer/service/embedded/datadog-agent-process.service b/pkg/fleet/installer/packages/embedded/datadog-agent-process.service similarity index 100% rename from pkg/fleet/installer/service/embedded/datadog-agent-process.service rename to pkg/fleet/installer/packages/embedded/datadog-agent-process.service diff --git a/pkg/fleet/installer/service/embedded/datadog-agent-security-exp.service b/pkg/fleet/installer/packages/embedded/datadog-agent-security-exp.service similarity index 100% rename from pkg/fleet/installer/service/embedded/datadog-agent-security-exp.service rename to pkg/fleet/installer/packages/embedded/datadog-agent-security-exp.service diff --git a/pkg/fleet/installer/service/embedded/datadog-agent-security.service b/pkg/fleet/installer/packages/embedded/datadog-agent-security.service similarity index 100% rename from pkg/fleet/installer/service/embedded/datadog-agent-security.service rename to pkg/fleet/installer/packages/embedded/datadog-agent-security.service diff --git a/pkg/fleet/installer/service/embedded/datadog-agent-sysprobe-exp.service b/pkg/fleet/installer/packages/embedded/datadog-agent-sysprobe-exp.service similarity index 100% rename from pkg/fleet/installer/service/embedded/datadog-agent-sysprobe-exp.service rename to pkg/fleet/installer/packages/embedded/datadog-agent-sysprobe-exp.service diff --git a/pkg/fleet/installer/service/embedded/datadog-agent-sysprobe.service b/pkg/fleet/installer/packages/embedded/datadog-agent-sysprobe.service similarity index 100% rename from pkg/fleet/installer/service/embedded/datadog-agent-sysprobe.service rename to pkg/fleet/installer/packages/embedded/datadog-agent-sysprobe.service diff --git a/pkg/fleet/installer/service/embedded/datadog-agent-trace-exp.service b/pkg/fleet/installer/packages/embedded/datadog-agent-trace-exp.service similarity index 100% rename from pkg/fleet/installer/service/embedded/datadog-agent-trace-exp.service rename to pkg/fleet/installer/packages/embedded/datadog-agent-trace-exp.service diff --git a/pkg/fleet/installer/service/embedded/datadog-agent-trace.service b/pkg/fleet/installer/packages/embedded/datadog-agent-trace.service similarity index 100% rename from pkg/fleet/installer/service/embedded/datadog-agent-trace.service rename to pkg/fleet/installer/packages/embedded/datadog-agent-trace.service diff --git a/pkg/fleet/installer/service/embedded/datadog-agent.service b/pkg/fleet/installer/packages/embedded/datadog-agent.service similarity index 100% rename from pkg/fleet/installer/service/embedded/datadog-agent.service rename to pkg/fleet/installer/packages/embedded/datadog-agent.service diff --git a/pkg/fleet/installer/service/embedded/datadog-installer-exp.service b/pkg/fleet/installer/packages/embedded/datadog-installer-exp.service similarity index 100% rename from pkg/fleet/installer/service/embedded/datadog-installer-exp.service rename to pkg/fleet/installer/packages/embedded/datadog-installer-exp.service diff --git a/pkg/fleet/installer/service/embedded/datadog-installer.service b/pkg/fleet/installer/packages/embedded/datadog-installer.service similarity index 100% rename from pkg/fleet/installer/service/embedded/datadog-installer.service rename to pkg/fleet/installer/packages/embedded/datadog-installer.service diff --git a/pkg/fleet/installer/service/embedded/dd-cleanup b/pkg/fleet/installer/packages/embedded/dd-cleanup similarity index 100% rename from pkg/fleet/installer/service/embedded/dd-cleanup rename to pkg/fleet/installer/packages/embedded/dd-cleanup diff --git a/pkg/fleet/installer/service/embedded/dd-container-install b/pkg/fleet/installer/packages/embedded/dd-container-install similarity index 100% rename from pkg/fleet/installer/service/embedded/dd-container-install rename to pkg/fleet/installer/packages/embedded/dd-container-install diff --git a/pkg/fleet/installer/service/embedded/dd-host-install b/pkg/fleet/installer/packages/embedded/dd-host-install similarity index 100% rename from pkg/fleet/installer/service/embedded/dd-host-install rename to pkg/fleet/installer/packages/embedded/dd-host-install diff --git a/pkg/fleet/installer/service/embedded/embed.go b/pkg/fleet/installer/packages/embedded/embed.go similarity index 100% rename from pkg/fleet/installer/service/embedded/embed.go rename to pkg/fleet/installer/packages/embedded/embed.go diff --git a/pkg/fleet/installer/service/file.go b/pkg/fleet/installer/packages/file.go similarity index 98% rename from pkg/fleet/installer/service/file.go rename to pkg/fleet/installer/packages/file.go index 5fa6e94541683..b8670b26ee34d 100644 --- a/pkg/fleet/installer/service/file.go +++ b/pkg/fleet/installer/packages/file.go @@ -5,8 +5,7 @@ //go:build !windows -// Package service provides a way to interact with os services -package service +package packages import ( "bytes" diff --git a/pkg/fleet/installer/service/file_test.go b/pkg/fleet/installer/packages/file_test.go similarity index 98% rename from pkg/fleet/installer/service/file_test.go rename to pkg/fleet/installer/packages/file_test.go index f795bd07bda49..8a8170ee6e5ee 100644 --- a/pkg/fleet/installer/service/file_test.go +++ b/pkg/fleet/installer/packages/file_test.go @@ -5,8 +5,7 @@ //go:build !windows -// Package service provides a way to interact with os services -package service +package packages import ( "context" diff --git a/pkg/fleet/installer/service/msiexec.go b/pkg/fleet/installer/packages/msiexec.go similarity index 99% rename from pkg/fleet/installer/service/msiexec.go rename to pkg/fleet/installer/packages/msiexec.go index 6eb0e0958bd38..e65692bb38c8f 100644 --- a/pkg/fleet/installer/service/msiexec.go +++ b/pkg/fleet/installer/packages/msiexec.go @@ -5,15 +5,16 @@ //go:build windows -package service +package packages import ( "fmt" + "os/exec" + "path/filepath" + "github.com/DataDog/datadog-agent/pkg/fleet/internal/paths" "github.com/DataDog/datadog-agent/pkg/util/log" "golang.org/x/sys/windows/registry" - "os/exec" - "path/filepath" ) func msiexec(target, product, operation string, args []string) (*exec.Cmd, error) { diff --git a/pkg/fleet/installer/service/systemd.go b/pkg/fleet/installer/packages/systemd.go similarity index 96% rename from pkg/fleet/installer/service/systemd.go rename to pkg/fleet/installer/packages/systemd.go index 264394b6858f2..679331907f7fd 100644 --- a/pkg/fleet/installer/service/systemd.go +++ b/pkg/fleet/installer/packages/systemd.go @@ -5,8 +5,7 @@ //go:build !windows -// Package service provides a way to interact with os services -package service +package packages import ( "context" @@ -17,7 +16,7 @@ import ( "path" "path/filepath" - "github.com/DataDog/datadog-agent/pkg/fleet/installer/service/embedded" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/packages/embedded" "github.com/DataDog/datadog-agent/pkg/util/log" "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" ) diff --git a/pkg/fleet/installer/service/systemd_windows.go b/pkg/fleet/installer/packages/systemd_windows.go similarity index 82% rename from pkg/fleet/installer/service/systemd_windows.go rename to pkg/fleet/installer/packages/systemd_windows.go index 8233b83a18e07..2ead580795638 100644 --- a/pkg/fleet/installer/service/systemd_windows.go +++ b/pkg/fleet/installer/packages/systemd_windows.go @@ -5,8 +5,7 @@ //go:build windows -// Package service provides a way to interact with os services -package service +package packages // IsSystemdRunning noop func IsSystemdRunning() (running bool, err error) { From 98b799cb74f2e95be94c27a0627643f0ab259a2c Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Fri, 29 Nov 2024 19:05:16 +0100 Subject: [PATCH 177/439] [CWS] switch auid hooks to fentry (#28769) --- pkg/security/ebpf/c/include/hooks/login_uid.h | 12 ++++++------ pkg/security/ebpf/kernel/kernel.go | 15 ++++++++++++--- pkg/security/probe/probe_ebpf.go | 14 +++++++++++--- pkg/security/tests/login_uid_test.go | 2 -- 4 files changed, 29 insertions(+), 14 deletions(-) diff --git a/pkg/security/ebpf/c/include/hooks/login_uid.h b/pkg/security/ebpf/c/include/hooks/login_uid.h index 86d25f0e94816..d96148bdfa84f 100644 --- a/pkg/security/ebpf/c/include/hooks/login_uid.h +++ b/pkg/security/ebpf/c/include/hooks/login_uid.h @@ -3,12 +3,12 @@ #include "helpers/syscalls.h" -SEC("kprobe/audit_set_loginuid") -int hook_audit_set_loginuid(struct pt_regs *ctx) { +HOOK_ENTRY("audit_set_loginuid") +int hook_audit_set_loginuid(ctx_t *ctx) { struct syscall_cache_t syscall = { .type = EVENT_LOGIN_UID_WRITE, .login_uid = { - .auid = (u32)PT_REGS_PARM1(ctx), + .auid = (u32)CTX_PARM1(ctx), }, }; @@ -16,9 +16,9 @@ int hook_audit_set_loginuid(struct pt_regs *ctx) { return 0; } -SEC("kretprobe/audit_set_loginuid") -int rethook_audit_set_loginuid(struct pt_regs *ctx) { - int retval = PT_REGS_RC(ctx); +HOOK_EXIT("audit_set_loginuid") +int rethook_audit_set_loginuid(ctx_t *ctx) { + int retval = CTX_PARMRET(ctx, 1); if (retval < 0) { return 0; } diff --git a/pkg/security/ebpf/kernel/kernel.go b/pkg/security/ebpf/kernel/kernel.go index e710b4a29eb9b..011273ef79589 100644 --- a/pkg/security/ebpf/kernel/kernel.go +++ b/pkg/security/ebpf/kernel/kernel.go @@ -332,8 +332,7 @@ func (k *Version) HaveLegacyPipeInodeInfoStruct() bool { return k.Code != 0 && k.Code < Kernel5_5 } -// HaveFentrySupport returns whether the kernel supports fentry probes -func (k *Version) HaveFentrySupport() bool { +func (k *Version) commonFentryCheck(funcName string) bool { if features.HaveProgramType(ebpf.Tracing) != nil { return false } @@ -341,7 +340,7 @@ func (k *Version) HaveFentrySupport() bool { spec := &ebpf.ProgramSpec{ Type: ebpf.Tracing, AttachType: ebpf.AttachTraceFEntry, - AttachTo: "vfs_open", + AttachTo: funcName, Instructions: asm.Instructions{ asm.LoadImm(asm.R0, 0, asm.DWord), asm.Return(), @@ -366,6 +365,16 @@ func (k *Version) HaveFentrySupport() bool { return true } +// HaveFentrySupport returns whether the kernel supports fentry probes +func (k *Version) HaveFentrySupport() bool { + return k.commonFentryCheck("vfs_open") +} + +// HaveFentrySupportWithStructArgs returns whether the kernel supports fentry probes with struct arguments +func (k *Version) HaveFentrySupportWithStructArgs() bool { + return k.commonFentryCheck("audit_set_loginuid") +} + // SupportBPFSendSignal returns true if the eBPF function bpf_send_signal is available func (k *Version) SupportBPFSendSignal() bool { return k.Code != 0 && k.Code >= Kernel5_3 diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go index 6f1090b63a72c..1c1e8fa37bc82 100644 --- a/pkg/security/probe/probe_ebpf.go +++ b/pkg/security/probe/probe_ebpf.go @@ -194,11 +194,19 @@ func (p *EBPFProbe) selectFentryMode() { return } - supported := p.kernelVersion.HaveFentrySupport() - if !supported { + if !p.kernelVersion.HaveFentrySupport() { + p.useFentry = false seclog.Errorf("fentry enabled but not supported, falling back to kprobe mode") + return } - p.useFentry = supported + + if !p.kernelVersion.HaveFentrySupportWithStructArgs() { + p.useFentry = false + seclog.Warnf("fentry enabled but not supported with struct args, falling back to kprobe mode") + return + } + + p.useFentry = true } func (p *EBPFProbe) isNetworkNotSupported() bool { diff --git a/pkg/security/tests/login_uid_test.go b/pkg/security/tests/login_uid_test.go index 31d548788e349..82743dcabeee7 100644 --- a/pkg/security/tests/login_uid_test.go +++ b/pkg/security/tests/login_uid_test.go @@ -89,8 +89,6 @@ func TestLoginUID(t *testing.T) { return err } - t.Logf("test out: %s\n", string(out)) - return nil }, func(event *model.Event, rule *rules.Rule) { assert.Equal(t, "exec", event.GetType(), "wrong event type") From 8a9c5b52a1033205b828483fe7fb98a01bfa8169 Mon Sep 17 00:00:00 2001 From: Guy Arbitman Date: Sun, 1 Dec 2024 11:40:36 +0200 Subject: [PATCH 178/439] usm: Fix imports (#31634) --- pkg/network/protocols/amqp/server.go | 2 +- pkg/network/protocols/kafka/server.go | 5 +++-- pkg/network/protocols/mongo/server.go | 5 +++-- pkg/network/protocols/mysql/server.go | 2 +- pkg/network/protocols/postgres/server.go | 2 +- pkg/network/protocols/redis/server.go | 2 +- pkg/network/protocols/tls/gotls/testutil/server.go | 5 +++-- pkg/network/protocols/tls/nodejs/nodejs.go | 5 +++-- pkg/network/usm/monitor_tls_test.go | 2 +- 9 files changed, 17 insertions(+), 13 deletions(-) diff --git a/pkg/network/protocols/amqp/server.go b/pkg/network/protocols/amqp/server.go index ffd049cb36667..fd343ab5a29ae 100644 --- a/pkg/network/protocols/amqp/server.go +++ b/pkg/network/protocols/amqp/server.go @@ -7,7 +7,6 @@ package amqp import ( "fmt" - globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" "os" "path/filepath" "regexp" @@ -17,6 +16,7 @@ import ( httpUtils "github.com/DataDog/datadog-agent/pkg/network/protocols/http/testutil" protocolsUtils "github.com/DataDog/datadog-agent/pkg/network/protocols/testutil" + globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" dockerutils "github.com/DataDog/datadog-agent/pkg/util/testutil/docker" ) diff --git a/pkg/network/protocols/kafka/server.go b/pkg/network/protocols/kafka/server.go index 95c66ef23b8a1..eeb5a91c58a5d 100644 --- a/pkg/network/protocols/kafka/server.go +++ b/pkg/network/protocols/kafka/server.go @@ -8,14 +8,15 @@ package kafka import ( - globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" - "github.com/stretchr/testify/require" "os" "path/filepath" "regexp" "testing" + "github.com/stretchr/testify/require" + "github.com/DataDog/datadog-agent/pkg/network/protocols/http/testutil" + globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" dockerutils "github.com/DataDog/datadog-agent/pkg/util/testutil/docker" ) diff --git a/pkg/network/protocols/mongo/server.go b/pkg/network/protocols/mongo/server.go index 59717d099a9ae..cc9bf63b55545 100644 --- a/pkg/network/protocols/mongo/server.go +++ b/pkg/network/protocols/mongo/server.go @@ -7,13 +7,14 @@ package mongo import ( "fmt" - globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" - "github.com/stretchr/testify/require" "path/filepath" "regexp" "testing" + "github.com/stretchr/testify/require" + "github.com/DataDog/datadog-agent/pkg/network/protocols/http/testutil" + globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" dockerutils "github.com/DataDog/datadog-agent/pkg/util/testutil/docker" ) diff --git a/pkg/network/protocols/mysql/server.go b/pkg/network/protocols/mysql/server.go index 1ea9ebb1ac1ec..423ca963943e7 100644 --- a/pkg/network/protocols/mysql/server.go +++ b/pkg/network/protocols/mysql/server.go @@ -7,7 +7,6 @@ package mysql import ( "fmt" - globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" "path/filepath" "regexp" "testing" @@ -15,6 +14,7 @@ import ( "github.com/stretchr/testify/require" "github.com/DataDog/datadog-agent/pkg/network/protocols/http/testutil" + globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" dockerutils "github.com/DataDog/datadog-agent/pkg/util/testutil/docker" ) diff --git a/pkg/network/protocols/postgres/server.go b/pkg/network/protocols/postgres/server.go index 2b4bd55bde9c6..556c918a1bd34 100644 --- a/pkg/network/protocols/postgres/server.go +++ b/pkg/network/protocols/postgres/server.go @@ -10,7 +10,6 @@ package postgres import ( "fmt" - globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" "io" "os" "path/filepath" @@ -20,6 +19,7 @@ import ( "github.com/stretchr/testify/require" "github.com/DataDog/datadog-agent/pkg/network/protocols/http/testutil" + globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" dockerutils "github.com/DataDog/datadog-agent/pkg/util/testutil/docker" ) diff --git a/pkg/network/protocols/redis/server.go b/pkg/network/protocols/redis/server.go index 56d36fec8855c..58e645a42b3fd 100644 --- a/pkg/network/protocols/redis/server.go +++ b/pkg/network/protocols/redis/server.go @@ -11,7 +11,6 @@ package redis import ( "fmt" - globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" "path/filepath" "regexp" "testing" @@ -19,6 +18,7 @@ import ( "github.com/stretchr/testify/require" "github.com/DataDog/datadog-agent/pkg/network/protocols/http/testutil" + globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" dockerutils "github.com/DataDog/datadog-agent/pkg/util/testutil/docker" ) diff --git a/pkg/network/protocols/tls/gotls/testutil/server.go b/pkg/network/protocols/tls/gotls/testutil/server.go index 36a58b003c0e6..ec2e56f054625 100644 --- a/pkg/network/protocols/tls/gotls/testutil/server.go +++ b/pkg/network/protocols/tls/gotls/testutil/server.go @@ -6,12 +6,13 @@ package testutil import ( - globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" - "github.com/stretchr/testify/require" "regexp" "testing" + "github.com/stretchr/testify/require" + "github.com/DataDog/datadog-agent/pkg/network/protocols/http/testutil" + globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" dockerutils "github.com/DataDog/datadog-agent/pkg/util/testutil/docker" ) diff --git a/pkg/network/protocols/tls/nodejs/nodejs.go b/pkg/network/protocols/tls/nodejs/nodejs.go index fb7dc18f60a9a..54a21acf99dd8 100644 --- a/pkg/network/protocols/tls/nodejs/nodejs.go +++ b/pkg/network/protocols/tls/nodejs/nodejs.go @@ -9,15 +9,16 @@ package nodejs import ( - globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" - "github.com/stretchr/testify/require" "io" "os" "path" "regexp" "testing" + "github.com/stretchr/testify/require" + "github.com/DataDog/datadog-agent/pkg/network/protocols/http/testutil" + globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" dockerutils "github.com/DataDog/datadog-agent/pkg/util/testutil/docker" ) diff --git a/pkg/network/usm/monitor_tls_test.go b/pkg/network/usm/monitor_tls_test.go index 24f0f7b3a5d2f..c7553370b7c7b 100644 --- a/pkg/network/usm/monitor_tls_test.go +++ b/pkg/network/usm/monitor_tls_test.go @@ -12,7 +12,6 @@ import ( "bytes" "crypto/tls" "fmt" - globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" "io" "math/rand" nethttp "net/http" @@ -46,6 +45,7 @@ import ( usmtestutil "github.com/DataDog/datadog-agent/pkg/network/usm/testutil" "github.com/DataDog/datadog-agent/pkg/network/usm/utils" procmontestutil "github.com/DataDog/datadog-agent/pkg/process/monitor/testutil" + globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" dockerutils "github.com/DataDog/datadog-agent/pkg/util/testutil/docker" ) From c6d0c1e0d7d4c9f7e82126a4961333c5fb81a138 Mon Sep 17 00:00:00 2001 From: Baptiste Foy Date: Sun, 1 Dec 2024 11:51:54 +0100 Subject: [PATCH 179/439] upgrade(installer): Return specific error codes (#31619) Co-authored-by: arbll --- cmd/installer/main.go | 24 ++++++- pkg/fleet/daemon/daemon.go | 2 +- pkg/fleet/installer/errors/errors.go | 71 +++++++++++++++------ pkg/fleet/installer/errors/errors_test.go | 27 ++++++-- pkg/fleet/installer/installer.go | 76 ++++++++++++++++++----- pkg/fleet/internal/exec/installer_exec.go | 6 +- pkg/fleet/internal/oci/download.go | 7 ++- 7 files changed, 170 insertions(+), 43 deletions(-) diff --git a/cmd/installer/main.go b/cmd/installer/main.go index 15fcd2a8eb91c..1cd198631d420 100644 --- a/cmd/installer/main.go +++ b/cmd/installer/main.go @@ -9,13 +9,33 @@ package main import ( + "fmt" "os" "github.com/DataDog/datadog-agent/cmd/installer/command" "github.com/DataDog/datadog-agent/cmd/installer/subcommands" - "github.com/DataDog/datadog-agent/cmd/internal/runcmd" + "github.com/spf13/cobra" + "go.uber.org/dig" + + installerErrors "github.com/DataDog/datadog-agent/pkg/fleet/installer/errors" ) func main() { - os.Exit(runcmd.Run(command.MakeCommand(subcommands.InstallerSubcommands()))) + os.Exit(runCmd(command.MakeCommand(subcommands.InstallerSubcommands()))) +} + +func runCmd(cmd *cobra.Command) int { + // always silence errors, since they are handled here + cmd.SilenceErrors = true + + err := cmd.Execute() + if err != nil { + if rootCauseErr := dig.RootCause(err); rootCauseErr != err { + fmt.Fprintln(cmd.ErrOrStderr(), installerErrors.FromErr(rootCauseErr).ToJSON()) + } else { + fmt.Fprintln(cmd.ErrOrStderr(), installerErrors.FromErr(err).ToJSON()) + } + return -1 + } + return 0 } diff --git a/pkg/fleet/daemon/daemon.go b/pkg/fleet/daemon/daemon.go index d4d99ff7fd68e..c0e38e5cc545c 100644 --- a/pkg/fleet/daemon/daemon.go +++ b/pkg/fleet/daemon/daemon.go @@ -552,7 +552,7 @@ func setRequestDone(ctx context.Context, err error) { state.State = pbgo.TaskState_DONE if err != nil { state.State = pbgo.TaskState_ERROR - state.Err = installerErrors.From(err) + state.Err = installerErrors.FromErr(err) } } diff --git a/pkg/fleet/installer/errors/errors.go b/pkg/fleet/installer/errors/errors.go index 589d8179a2fa8..736c609af033c 100644 --- a/pkg/fleet/installer/errors/errors.go +++ b/pkg/fleet/installer/errors/errors.go @@ -7,6 +7,7 @@ package errors import ( + "encoding/json" "errors" ) @@ -14,19 +15,15 @@ import ( type InstallerErrorCode uint64 const ( - errUnknown InstallerErrorCode = iota // This error code is purposefully not exported - // ErrInstallFailed is the code for an install failure. - ErrInstallFailed + errUnknown InstallerErrorCode = 0 // This error code is purposefully not exported // ErrDownloadFailed is the code for a download failure. - ErrDownloadFailed - // ErrInvalidHash is the code for an invalid hash. - ErrInvalidHash - // ErrInvalidState is the code for an invalid state. - ErrInvalidState + ErrDownloadFailed InstallerErrorCode = 1 + // ErrNotEnoughDiskSpace is the code for not enough disk space. + ErrNotEnoughDiskSpace InstallerErrorCode = 2 // ErrPackageNotFound is the code for a package not found. - ErrPackageNotFound - // ErrUpdateExperimentFailed is the code for an update experiment failure. - ErrUpdateExperimentFailed + ErrPackageNotFound InstallerErrorCode = 3 + // ErrFilesystemIssue is the code for a filesystem issue (e.g. permission issue). + ErrFilesystemIssue InstallerErrorCode = 4 ) // InstallerError is an error type used by the installer. @@ -35,6 +32,11 @@ type InstallerError struct { code InstallerErrorCode } +type installerErrorJSON struct { + Error string `json:"error"` + Code int `json:"code"` +} + // Error returns the error message. func (e InstallerError) Error() string { return e.err.Error() @@ -60,7 +62,7 @@ func (e InstallerError) Code() InstallerErrorCode { // If the given error is already an installer error, it is not wrapped and // left as it is. Only the deepest InstallerError remains. func Wrap(errCode InstallerErrorCode, err error) error { - if errors.Is(err, &InstallerError{}) { + if FromErr(err).code != errUnknown { return err } return &InstallerError{ @@ -69,18 +71,51 @@ func Wrap(errCode InstallerErrorCode, err error) error { } } -// From returns a new InstallerError from the given error. -func From(err error) *InstallerError { +// FromErr returns a new InstallerError from the given error. +// Unwraps the error until it finds an InstallerError and return unknown error code if not found. +func FromErr(err error) *InstallerError { if err == nil { return nil } - e, ok := err.(*InstallerError) if !ok { - return &InstallerError{ - err: err, - code: errUnknown, + unwrappedErr := errors.Unwrap(err) + if unwrappedErr == nil { + return &InstallerError{ + err: err, + code: errUnknown, + } } + return FromErr(unwrappedErr) } return e } + +// ToJSON returns the error as a JSON string. +func (e InstallerError) ToJSON() string { + tmp := installerErrorJSON{ + Error: e.err.Error(), + Code: int(e.code), + } + jsonErr, err := json.Marshal(tmp) + if err != nil { + return e.err.Error() + } + return string(jsonErr) +} + +// FromJSON returns an InstallerError from a JSON string. +func FromJSON(errStr string) InstallerError { + var jsonError installerErrorJSON + err := json.Unmarshal([]byte(errStr), &jsonError) + if err != nil { + return InstallerError{ + err: errors.New(errStr), + code: errUnknown, + } + } + return InstallerError{ + err: errors.New(jsonError.Error), + code: InstallerErrorCode(jsonError.Code), + } +} diff --git a/pkg/fleet/installer/errors/errors_test.go b/pkg/fleet/installer/errors/errors_test.go index 44a5cdc584b95..5115faaaf8a26 100644 --- a/pkg/fleet/installer/errors/errors_test.go +++ b/pkg/fleet/installer/errors/errors_test.go @@ -12,18 +12,34 @@ import ( "github.com/stretchr/testify/assert" ) -func TestFrom(t *testing.T) { +func TestFromErr(t *testing.T) { var err error = &InstallerError{ err: fmt.Errorf("test: test"), code: ErrDownloadFailed, } - taskErr := From(err) + taskErr := FromErr(err) assert.Equal(t, taskErr, &InstallerError{ err: fmt.Errorf("test: test"), code: ErrDownloadFailed, }) - assert.Nil(t, From(nil)) + assert.Nil(t, FromErr(nil)) +} + +func TestFromErrWithWrap(t *testing.T) { + err := fmt.Errorf("test: %w", &InstallerError{ + err: fmt.Errorf("test: test"), + code: ErrDownloadFailed, + }) + taskErr := FromErr(err) + assert.Equal(t, taskErr, &InstallerError{ + err: fmt.Errorf("test: test"), + code: ErrDownloadFailed, + }) + + taskErr2 := fmt.Errorf("Wrap 2: %w", fmt.Errorf("Wrap 1: %w", taskErr)) + assert.Equal(t, FromErr(taskErr2).Code(), ErrDownloadFailed) + assert.Nil(t, FromErr(nil)) } func TestWrap(t *testing.T) { @@ -36,9 +52,12 @@ func TestWrap(t *testing.T) { // Check that Wrap doesn't change anything if the error // is already an InstallerError - taskErr2 := Wrap(ErrInstallFailed, taskErr) + taskErr2 := Wrap(ErrNotEnoughDiskSpace, taskErr) assert.Equal(t, taskErr2, &InstallerError{ err: err, code: ErrDownloadFailed, }) + + taskErr3 := Wrap(ErrFilesystemIssue, fmt.Errorf("Wrap 2: %w", fmt.Errorf("Wrap 1: %w", taskErr2))) + assert.Equal(t, FromErr(taskErr3).Code(), ErrDownloadFailed) } diff --git a/pkg/fleet/installer/installer.go b/pkg/fleet/installer/installer.go index 8db7bc07954a5..be2706643df76 100644 --- a/pkg/fleet/installer/installer.go +++ b/pkg/fleet/installer/installer.go @@ -21,6 +21,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/fleet/internal/paths" fleetEnv "github.com/DataDog/datadog-agent/pkg/fleet/env" + installerErrors "github.com/DataDog/datadog-agent/pkg/fleet/installer/errors" "github.com/DataDog/datadog-agent/pkg/fleet/installer/packages" "github.com/DataDog/datadog-agent/pkg/fleet/installer/repository" "github.com/DataDog/datadog-agent/pkg/fleet/internal/db" @@ -227,30 +228,48 @@ func (i *installerImpl) InstallExperiment(ctx context.Context, url string) error defer i.m.Unlock() pkg, err := i.downloader.Download(ctx, url) if err != nil { - return fmt.Errorf("could not download package: %w", err) + return installerErrors.Wrap( + installerErrors.ErrDownloadFailed, + fmt.Errorf("could not download package: %w", err), + ) } err = checkAvailableDiskSpace(i.packages, pkg) if err != nil { - return fmt.Errorf("not enough disk space: %w", err) + return installerErrors.Wrap( + installerErrors.ErrNotEnoughDiskSpace, + fmt.Errorf("not enough disk space: %w", err), + ) } tmpDir, err := i.packages.MkdirTemp() if err != nil { - return fmt.Errorf("could not create temporary directory: %w", err) + return installerErrors.Wrap( + installerErrors.ErrFilesystemIssue, + fmt.Errorf("could create temporary directory: %w", err), + ) } defer os.RemoveAll(tmpDir) configDir := filepath.Join(i.userConfigsDir, pkg.Name) err = pkg.ExtractLayers(oci.DatadogPackageLayerMediaType, tmpDir) if err != nil { - return fmt.Errorf("could not extract package layers: %w", err) + return installerErrors.Wrap( + installerErrors.ErrDownloadFailed, + fmt.Errorf("could not extract package layer: %w", err), + ) } err = pkg.ExtractLayers(oci.DatadogPackageConfigLayerMediaType, configDir) if err != nil { - return fmt.Errorf("could not extract package config layer: %w", err) + return installerErrors.Wrap( + installerErrors.ErrDownloadFailed, + fmt.Errorf("could not extract package config layer: %w", err), + ) } repository := i.packages.Get(pkg.Name) err = repository.SetExperiment(pkg.Version, tmpDir) if err != nil { - return fmt.Errorf("could not set experiment: %w", err) + return installerErrors.Wrap( + installerErrors.ErrFilesystemIssue, + fmt.Errorf("could not set experiment: %w", err), + ) } return i.startExperiment(ctx, pkg.Name) @@ -267,7 +286,10 @@ func (i *installerImpl) RemoveExperiment(ctx context.Context, pkg string) error // will kill the current process, delete the experiment first. err := repository.DeleteExperiment() if err != nil { - return fmt.Errorf("could not delete experiment: %w", err) + return installerErrors.Wrap( + installerErrors.ErrFilesystemIssue, + fmt.Errorf("could not delete experiment: %w", err), + ) } err = i.stopExperiment(ctx, pkg) if err != nil { @@ -280,7 +302,10 @@ func (i *installerImpl) RemoveExperiment(ctx context.Context, pkg string) error } err = repository.DeleteExperiment() if err != nil { - return fmt.Errorf("could not delete experiment: %w", err) + return installerErrors.Wrap( + installerErrors.ErrFilesystemIssue, + fmt.Errorf("could not delete experiment: %w", err), + ) } } return nil @@ -306,27 +331,42 @@ func (i *installerImpl) InstallConfigExperiment(ctx context.Context, pkg string, config, err := i.cdn.Get(ctx, pkg) if err != nil { - return fmt.Errorf("could not get cdn config: %w", err) + return installerErrors.Wrap( + installerErrors.ErrDownloadFailed, + fmt.Errorf("could not get cdn config: %w", err), + ) } if config.State().GetVersion() != version { - return fmt.Errorf("version mismatch: expected %s, got %s", config.State().GetVersion(), version) + return installerErrors.Wrap( + installerErrors.ErrDownloadFailed, + fmt.Errorf("version mismatch: expected %s, got %s", config.State().GetVersion(), version), + ) } tmpDir, err := i.packages.MkdirTemp() if err != nil { - return fmt.Errorf("could not create temporary directory: %w", err) + return installerErrors.Wrap( + installerErrors.ErrFilesystemIssue, + fmt.Errorf("could not create temporary directory: %w", err), + ) } defer os.RemoveAll(tmpDir) err = config.Write(tmpDir) if err != nil { - return fmt.Errorf("could not write agent config: %w", err) + return installerErrors.Wrap( + installerErrors.ErrFilesystemIssue, + fmt.Errorf("could not write agent config: %w", err), + ) } configRepo := i.configs.Get(pkg) err = configRepo.SetExperiment(version, tmpDir) if err != nil { - return fmt.Errorf("could not set experiment: %w", err) + return installerErrors.Wrap( + installerErrors.ErrFilesystemIssue, + fmt.Errorf("could not set experiment: %w", err), + ) } switch runtime.GOOS { @@ -349,7 +389,10 @@ func (i *installerImpl) RemoveConfigExperiment(ctx context.Context, pkg string) repository := i.configs.Get(pkg) err = repository.DeleteExperiment() if err != nil { - return fmt.Errorf("could not delete experiment: %w", err) + return installerErrors.Wrap( + installerErrors.ErrFilesystemIssue, + fmt.Errorf("could not delete experiment: %w", err), + ) } return nil } @@ -362,7 +405,10 @@ func (i *installerImpl) PromoteConfigExperiment(ctx context.Context, pkg string) repository := i.configs.Get(pkg) err := repository.PromoteExperiment() if err != nil { - return fmt.Errorf("could not promote experiment: %w", err) + return installerErrors.Wrap( + installerErrors.ErrFilesystemIssue, + fmt.Errorf("could not promote experiment: %w", err), + ) } return i.promoteExperiment(ctx, pkg) } diff --git a/pkg/fleet/internal/exec/installer_exec.go b/pkg/fleet/internal/exec/installer_exec.go index 1841de484b841..34a3cfad4fbcf 100644 --- a/pkg/fleet/internal/exec/installer_exec.go +++ b/pkg/fleet/internal/exec/installer_exec.go @@ -19,6 +19,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/util/log" "github.com/DataDog/datadog-agent/pkg/fleet/env" + installerErrors "github.com/DataDog/datadog-agent/pkg/fleet/installer/errors" "github.com/DataDog/datadog-agent/pkg/fleet/installer/repository" "github.com/DataDog/datadog-agent/pkg/fleet/telemetry" "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" @@ -247,8 +248,9 @@ func (iCmd *installerCmd) Run() error { } if len(errBuf.Bytes()) == 0 { - return fmt.Errorf("run failed: %s", err.Error()) + return fmt.Errorf("run failed: %w", err) } - return fmt.Errorf("run failed: %s \n%s", strings.TrimSpace(errBuf.String()), err.Error()) + installerError := installerErrors.FromJSON(strings.TrimSpace(errBuf.String())) + return fmt.Errorf("run failed: %v \n%s", installerError, err.Error()) } diff --git a/pkg/fleet/internal/oci/download.go b/pkg/fleet/internal/oci/download.go index f4a19fe29e59c..6bf91468fa0e6 100644 --- a/pkg/fleet/internal/oci/download.go +++ b/pkg/fleet/internal/oci/download.go @@ -33,6 +33,8 @@ import ( "golang.org/x/net/http2" httptrace "gopkg.in/DataDog/dd-trace-go.v1/contrib/net/http" + installerErrors "github.com/DataDog/datadog-agent/pkg/fleet/installer/errors" + "github.com/DataDog/datadog-agent/pkg/fleet/env" "github.com/DataDog/datadog-agent/pkg/fleet/internal/tar" "github.com/DataDog/datadog-agent/pkg/util/log" @@ -304,7 +306,10 @@ func (d *Downloader) downloadIndex(index oci.ImageIndex) (oci.Image, error) { } return image, nil } - return nil, fmt.Errorf("no matching image found in the index") + return nil, installerErrors.Wrap( + installerErrors.ErrPackageNotFound, + fmt.Errorf("no matching image found in the index"), + ) } // ExtractLayers extracts the layers of the downloaded package with the given media type to the given directory. From 8ea4e935b5192660c2dca85ed0a39dd6e9624222 Mon Sep 17 00:00:00 2001 From: Arthur Bellal Date: Sun, 1 Dec 2024 13:23:20 +0100 Subject: [PATCH 180/439] (fleet) env cleanup (#31628) --- .../subcommands/installer/command.go | 4 +- .../telemetry/telemetryimpl/telemetry.go | 17 ++-- comp/updater/updater/updaterimpl/updater.go | 9 +- pkg/fleet/bootstrapper/bootstrapper.go | 2 +- pkg/fleet/daemon/daemon.go | 23 ++++- pkg/fleet/daemon/daemon_test.go | 2 +- pkg/fleet/env/http_client.go | 22 ----- pkg/fleet/env/install_script.go | 33 -------- pkg/fleet/installer/default_packages.go | 2 +- pkg/fleet/installer/default_packages_test.go | 2 +- pkg/fleet/{ => installer}/env/env.go | 83 ++++++++++++------- pkg/fleet/{ => installer}/env/env_test.go | 0 pkg/fleet/installer/installer.go | 8 +- pkg/fleet/installer/installer_test.go | 2 +- pkg/fleet/installer/packages/apm_inject.go | 2 +- .../installer/packages/apm_inject_test.go | 2 +- pkg/fleet/installer/setup.go | 2 +- pkg/fleet/internal/bootstrap/bootstrap.go | 3 +- pkg/fleet/internal/bootstrap/bootstrap_nix.go | 8 +- .../internal/bootstrap/bootstrap_windows.go | 8 +- pkg/fleet/internal/cdn/cdn.go | 2 +- pkg/fleet/internal/cdn/cdn_http.go | 2 +- pkg/fleet/internal/cdn/cdn_local.go | 2 +- pkg/fleet/internal/cdn/cdn_rc.go | 2 +- pkg/fleet/internal/cdn/scope_expression.go | 2 +- pkg/fleet/internal/cdn/tags.go | 2 +- pkg/fleet/internal/exec/installer_exec.go | 2 +- pkg/fleet/internal/oci/download.go | 3 +- pkg/fleet/internal/oci/download_test.go | 2 +- pkg/fleet/telemetry/telemetry.go | 5 +- 30 files changed, 126 insertions(+), 132 deletions(-) delete mode 100644 pkg/fleet/env/http_client.go delete mode 100644 pkg/fleet/env/install_script.go rename pkg/fleet/{ => installer}/env/env.go (85%) rename pkg/fleet/{ => installer}/env/env_test.go (100%) diff --git a/cmd/installer/subcommands/installer/command.go b/cmd/installer/subcommands/installer/command.go index f4b25dd1a164e..ebbe269aa7ebd 100644 --- a/cmd/installer/subcommands/installer/command.go +++ b/cmd/installer/subcommands/installer/command.go @@ -17,8 +17,8 @@ import ( "github.com/DataDog/datadog-agent/cmd/installer/command" "github.com/DataDog/datadog-agent/pkg/fleet/bootstrapper" - "github.com/DataDog/datadog-agent/pkg/fleet/env" "github.com/DataDog/datadog-agent/pkg/fleet/installer" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" "github.com/DataDog/datadog-agent/pkg/fleet/telemetry" "github.com/DataDog/datadog-agent/pkg/version" "github.com/spf13/cobra" @@ -226,7 +226,7 @@ func newTelemetry(env *env.Env) *telemetry.Telemetry { if site == "" { site = config.Site } - t, err := telemetry.NewTelemetry(apiKey, site, "datadog-installer") // No sampling rules for commands + t, err := telemetry.NewTelemetry(env.HTTPClient(), apiKey, site, "datadog-installer") // No sampling rules for commands if err != nil { fmt.Printf("failed to initialize telemetry: %v\n", err) return nil diff --git a/comp/updater/telemetry/telemetryimpl/telemetry.go b/comp/updater/telemetry/telemetryimpl/telemetry.go index caf3b90e73bcc..cf19e681c5708 100644 --- a/comp/updater/telemetry/telemetryimpl/telemetry.go +++ b/comp/updater/telemetry/telemetryimpl/telemetry.go @@ -7,14 +7,17 @@ package telemetryimpl import ( + "net/http" + "go.uber.org/fx" "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" "github.com/DataDog/datadog-agent/comp/core/config" "github.com/DataDog/datadog-agent/comp/updater/telemetry" - "github.com/DataDog/datadog-agent/pkg/fleet/env" + "github.com/DataDog/datadog-agent/pkg/config/utils" fleettelemetry "github.com/DataDog/datadog-agent/pkg/fleet/telemetry" "github.com/DataDog/datadog-agent/pkg/util/fxutil" + httputils "github.com/DataDog/datadog-agent/pkg/util/http" ) type dependencies struct { @@ -32,12 +35,14 @@ func Module() fxutil.Module { } func newTelemetry(deps dependencies) (telemetry.Component, error) { - env := env.FromConfig(deps.Config) - telemetry, err := fleettelemetry.NewTelemetry(env.APIKey, env.Site, "datadog-installer", + client := &http.Client{ + Transport: httputils.CreateHTTPTransport(deps.Config), + } + telemetry, err := fleettelemetry.NewTelemetry(client, utils.SanitizeAPIKey(deps.Config.GetString("api_key")), deps.Config.GetString("site"), "datadog-installer-daemon", fleettelemetry.WithSamplingRules( - tracer.NameServiceRule("cdn.*", "datadog-installer", 0.1), - tracer.NameServiceRule("*garbage_collect*", "datadog-installer", 0.05), - tracer.NameServiceRule("HTTPClient.*", "datadog-installer", 0.05), + tracer.NameServiceRule("cdn.*", "datadog-installer-daemon", 0.1), + tracer.NameServiceRule("*garbage_collect*", "datadog-installer-daemon", 0.05), + tracer.NameServiceRule("HTTPClient.*", "datadog-installer-daemon", 0.05), ), ) if err != nil { diff --git a/comp/updater/updater/updaterimpl/updater.go b/comp/updater/updater/updaterimpl/updater.go index 117ea9c937653..5ed1cbd252375 100644 --- a/comp/updater/updater/updaterimpl/updater.go +++ b/comp/updater/updater/updaterimpl/updater.go @@ -7,12 +7,14 @@ package updaterimpl import ( + "context" "errors" "fmt" "go.uber.org/fx" "github.com/DataDog/datadog-agent/comp/core/config" + "github.com/DataDog/datadog-agent/comp/core/hostname" log "github.com/DataDog/datadog-agent/comp/core/log/def" "github.com/DataDog/datadog-agent/comp/remote-config/rcservice" updatercomp "github.com/DataDog/datadog-agent/comp/updater/updater" @@ -36,6 +38,7 @@ func Module() fxutil.Module { type dependencies struct { fx.In + Hostname hostname.Component Log log.Component Config config.Component RemoteConfig optional.Option[rcservice.Component] @@ -46,7 +49,11 @@ func newUpdaterComponent(lc fx.Lifecycle, dependencies dependencies) (updatercom if !ok { return nil, errRemoteConfigRequired } - daemon, err := daemon.NewDaemon(remoteConfig, dependencies.Config) + hostname, err := dependencies.Hostname.Get(context.Background()) + if err != nil { + return nil, fmt.Errorf("could not get hostname: %w", err) + } + daemon, err := daemon.NewDaemon(hostname, remoteConfig, dependencies.Config) if err != nil { return nil, fmt.Errorf("could not create updater: %w", err) } diff --git a/pkg/fleet/bootstrapper/bootstrapper.go b/pkg/fleet/bootstrapper/bootstrapper.go index a21960a096527..e935a6cadc649 100644 --- a/pkg/fleet/bootstrapper/bootstrapper.go +++ b/pkg/fleet/bootstrapper/bootstrapper.go @@ -10,7 +10,7 @@ import ( "context" "fmt" - "github.com/DataDog/datadog-agent/pkg/fleet/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" "github.com/DataDog/datadog-agent/pkg/fleet/internal/bootstrap" "github.com/DataDog/datadog-agent/pkg/fleet/internal/exec" "github.com/DataDog/datadog-agent/pkg/fleet/internal/oci" diff --git a/pkg/fleet/daemon/daemon.go b/pkg/fleet/daemon/daemon.go index c0e38e5cc545c..566275521126a 100644 --- a/pkg/fleet/daemon/daemon.go +++ b/pkg/fleet/daemon/daemon.go @@ -16,6 +16,7 @@ import ( osexec "os/exec" "path/filepath" "runtime" + "strings" "sync" "time" @@ -24,8 +25,9 @@ import ( "github.com/DataDog/datadog-agent/comp/core/config" "github.com/DataDog/datadog-agent/pkg/config/remote/client" - "github.com/DataDog/datadog-agent/pkg/fleet/env" + "github.com/DataDog/datadog-agent/pkg/config/utils" "github.com/DataDog/datadog-agent/pkg/fleet/installer" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" installerErrors "github.com/DataDog/datadog-agent/pkg/fleet/installer/errors" "github.com/DataDog/datadog-agent/pkg/fleet/installer/repository" "github.com/DataDog/datadog-agent/pkg/fleet/internal/bootstrap" @@ -83,7 +85,7 @@ func newInstaller(env *env.Env, installerBin string) installer.Installer { } // NewDaemon returns a new daemon. -func NewDaemon(rcFetcher client.ConfigFetcher, config config.Reader) (Daemon, error) { +func NewDaemon(hostname string, rcFetcher client.ConfigFetcher, config config.Reader) (Daemon, error) { installerBin, err := os.Executable() if err != nil { return nil, fmt.Errorf("could not get installer executable path: %w", err) @@ -96,7 +98,22 @@ func NewDaemon(rcFetcher client.ConfigFetcher, config config.Reader) (Daemon, er if err != nil { return nil, fmt.Errorf("could not create remote config client: %w", err) } - env := env.FromConfig(config) + env := &env.Env{ + APIKey: utils.SanitizeAPIKey(config.GetString("api_key")), + Site: config.GetString("site"), + RemoteUpdates: config.GetBool("remote_updates"), + RemotePolicies: config.GetBool("remote_policies"), + Mirror: config.GetString("installer.mirror"), + RegistryOverride: config.GetString("installer.registry.url"), + RegistryAuthOverride: config.GetString("installer.registry.auth"), + RegistryUsername: config.GetString("installer.registry.username"), + RegistryPassword: config.GetString("installer.registry.password"), + Tags: utils.GetConfiguredTags(config, false), + Hostname: hostname, + HTTPProxy: config.GetString("proxy.http"), + HTTPSProxy: config.GetString("proxy.https"), + NoProxy: strings.Join(config.GetStringSlice("proxy.no_proxy"), ","), + } installer := newInstaller(env, installerBin) cdn, err := cdn.New(env, filepath.Join(paths.RunPath, "rc_daemon")) if err != nil { diff --git a/pkg/fleet/daemon/daemon_test.go b/pkg/fleet/daemon/daemon_test.go index 6a5db6fcf957c..228b37089845f 100644 --- a/pkg/fleet/daemon/daemon_test.go +++ b/pkg/fleet/daemon/daemon_test.go @@ -20,7 +20,7 @@ import ( "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" - "github.com/DataDog/datadog-agent/pkg/fleet/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" "github.com/DataDog/datadog-agent/pkg/fleet/installer/repository" "github.com/DataDog/datadog-agent/pkg/fleet/internal/cdn" pbgo "github.com/DataDog/datadog-agent/pkg/proto/pbgo/core" diff --git a/pkg/fleet/env/http_client.go b/pkg/fleet/env/http_client.go deleted file mode 100644 index 7d9184e944849..0000000000000 --- a/pkg/fleet/env/http_client.go +++ /dev/null @@ -1,22 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -package env - -import ( - "net/http" - - pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" - httputils "github.com/DataDog/datadog-agent/pkg/util/http" -) - -// GetHTTPClient returns an HTTP client with the proxy settings loaded from the environment. -func GetHTTPClient() *http.Client { - // Load proxy settings before creating any HTTP transport - pkgconfigsetup.LoadProxyFromEnv(pkgconfigsetup.Datadog()) - httpClient := http.DefaultClient - httpClient.Transport = httputils.CreateHTTPTransport(pkgconfigsetup.Datadog()) - return httpClient -} diff --git a/pkg/fleet/env/install_script.go b/pkg/fleet/env/install_script.go deleted file mode 100644 index eb89f36b74d44..0000000000000 --- a/pkg/fleet/env/install_script.go +++ /dev/null @@ -1,33 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -package env - -const ( - envApmInstrumentationEnabled = "DD_APM_INSTRUMENTATION_ENABLED" -) - -const ( - // APMInstrumentationEnabledAll enables APM instrumentation for all containers. - APMInstrumentationEnabledAll = "all" - // APMInstrumentationEnabledDocker enables APM instrumentation for Docker containers. - APMInstrumentationEnabledDocker = "docker" - // APMInstrumentationEnabledHost enables APM instrumentation for the host. - APMInstrumentationEnabledHost = "host" - // APMInstrumentationNotSet is the default value when the environment variable is not set. - APMInstrumentationNotSet = "not_set" -) - -// InstallScriptEnv contains the environment variables for the install script. -type InstallScriptEnv struct { - APMInstrumentationEnabled string -} - -func installScriptEnvFromEnv() InstallScriptEnv { - return InstallScriptEnv{ - // defaults to all if not set - APMInstrumentationEnabled: getEnvOrDefault(envApmInstrumentationEnabled, APMInstrumentationNotSet), - } -} diff --git a/pkg/fleet/installer/default_packages.go b/pkg/fleet/installer/default_packages.go index ff2e87cdb9e5f..66c7017f42bac 100644 --- a/pkg/fleet/installer/default_packages.go +++ b/pkg/fleet/installer/default_packages.go @@ -10,7 +10,7 @@ import ( "slices" "strings" - "github.com/DataDog/datadog-agent/pkg/fleet/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" "github.com/DataDog/datadog-agent/pkg/fleet/internal/oci" ) diff --git a/pkg/fleet/installer/default_packages_test.go b/pkg/fleet/installer/default_packages_test.go index 0e28847f0158e..e17645ec7cefb 100644 --- a/pkg/fleet/installer/default_packages_test.go +++ b/pkg/fleet/installer/default_packages_test.go @@ -8,7 +8,7 @@ package installer import ( "testing" - "github.com/DataDog/datadog-agent/pkg/fleet/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" "github.com/DataDog/datadog-agent/pkg/fleet/internal/oci" "github.com/stretchr/testify/assert" ) diff --git a/pkg/fleet/env/env.go b/pkg/fleet/installer/env/env.go similarity index 85% rename from pkg/fleet/env/env.go rename to pkg/fleet/installer/env/env.go index a1415ea1780a3..094003754ddb3 100644 --- a/pkg/fleet/env/env.go +++ b/pkg/fleet/installer/env/env.go @@ -7,16 +7,16 @@ package env import ( - "context" "fmt" + "net" + "net/http" + "net/url" "os" "slices" "strings" "time" - "github.com/DataDog/datadog-agent/pkg/config/model" - "github.com/DataDog/datadog-agent/pkg/config/utils" - "github.com/DataDog/datadog-agent/pkg/util/hostname" + "golang.org/x/net/http/httpproxy" ) const ( @@ -49,6 +49,9 @@ const ( envHTTPSProxy = "HTTPS_PROXY" envDDNoProxy = "DD_PROXY_NO_PROXY" envNoProxy = "NO_PROXY" + + // install script + envApmInstrumentationEnabled = "DD_APM_INSTRUMENTATION_ENABLED" ) var defaultEnv = Env{ @@ -80,6 +83,22 @@ type ApmLibLanguage string // ApmLibVersion is the version of the library defined in DD_APM_INSTRUMENTATION_LIBRARIES env var type ApmLibVersion string +const ( + // APMInstrumentationEnabledAll enables APM instrumentation for all containers. + APMInstrumentationEnabledAll = "all" + // APMInstrumentationEnabledDocker enables APM instrumentation for Docker containers. + APMInstrumentationEnabledDocker = "docker" + // APMInstrumentationEnabledHost enables APM instrumentation for the host. + APMInstrumentationEnabledHost = "host" + // APMInstrumentationNotSet is the default value when the environment variable is not set. + APMInstrumentationNotSet = "not_set" +) + +// InstallScriptEnv contains the environment variables for the install script. +type InstallScriptEnv struct { + APMInstrumentationEnabled string +} + // Env contains the configuration for the installer. type Env struct { APIKey string @@ -119,6 +138,32 @@ type Env struct { NoProxy string } +// HTTPClient returns an HTTP client with the proxy settings from the environment. +func (e *Env) HTTPClient() *http.Client { + proxyConfig := &httpproxy.Config{ + HTTPProxy: e.HTTPProxy, + HTTPSProxy: e.HTTPSProxy, + NoProxy: e.NoProxy, + } + proxyFunc := func(r *http.Request) (*url.URL, error) { + return proxyConfig.ProxyFunc()(r.URL) + } + client := &http.Client{ + Transport: &http.Transport{ + DialContext: (&net.Dialer{ + Timeout: 30 * time.Second, + KeepAlive: 30 * time.Second, + }).DialContext, + MaxIdleConns: 100, + IdleConnTimeout: 90 * time.Second, + TLSHandshakeTimeout: 10 * time.Second, + ExpectContinueTimeout: 1 * time.Second, + Proxy: proxyFunc, + }, + } + return client +} + // FromEnv returns an Env struct with values from the environment. func FromEnv() *Env { splitFunc := func(c rune) bool { @@ -150,7 +195,9 @@ func FromEnv() *Env { AgentMinorVersion: os.Getenv(envAgentMinorVersion), AgentUserName: getEnvOrDefault(envAgentUserName, os.Getenv(envAgentUserNameCompat)), - InstallScript: installScriptEnvFromEnv(), + InstallScript: InstallScriptEnv{ + APMInstrumentationEnabled: getEnvOrDefault(envApmInstrumentationEnabled, APMInstrumentationNotSet), + }, CDNEnabled: strings.ToLower(os.Getenv(envCDNEnabled)) == "true", CDNLocalDirPath: getEnvOrDefault(envCDNLocalDirPath, ""), @@ -167,32 +214,6 @@ func FromEnv() *Env { } } -// FromConfig returns an Env struct with values from the configuration. -func FromConfig(config model.Reader) *Env { - ctx, cancel := context.WithTimeout(context.Background(), time.Second) - defer cancel() - hostname, err := hostname.Get(ctx) - if err != nil { - hostname = "unknown" - } - return &Env{ - APIKey: utils.SanitizeAPIKey(config.GetString("api_key")), - Site: config.GetString("site"), - RemoteUpdates: config.GetBool("remote_updates"), - RemotePolicies: config.GetBool("remote_policies"), - Mirror: config.GetString("installer.mirror"), - RegistryOverride: config.GetString("installer.registry.url"), - RegistryAuthOverride: config.GetString("installer.registry.auth"), - RegistryUsername: config.GetString("installer.registry.username"), - RegistryPassword: config.GetString("installer.registry.password"), - Tags: utils.GetConfiguredTags(config, false), - Hostname: hostname, - HTTPProxy: config.GetString("proxy.http"), - HTTPSProxy: config.GetString("proxy.https"), - NoProxy: strings.Join(config.GetStringSlice("proxy.no_proxy"), ","), - } -} - // ToEnv returns a slice of environment variables from the Env struct. func (e *Env) ToEnv() []string { var env []string diff --git a/pkg/fleet/env/env_test.go b/pkg/fleet/installer/env/env_test.go similarity index 100% rename from pkg/fleet/env/env_test.go rename to pkg/fleet/installer/env/env_test.go diff --git a/pkg/fleet/installer/installer.go b/pkg/fleet/installer/installer.go index be2706643df76..8000be3c5a261 100644 --- a/pkg/fleet/installer/installer.go +++ b/pkg/fleet/installer/installer.go @@ -20,7 +20,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/fleet/internal/cdn" "github.com/DataDog/datadog-agent/pkg/fleet/internal/paths" - fleetEnv "github.com/DataDog/datadog-agent/pkg/fleet/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" installerErrors "github.com/DataDog/datadog-agent/pkg/fleet/installer/errors" "github.com/DataDog/datadog-agent/pkg/fleet/installer/packages" "github.com/DataDog/datadog-agent/pkg/fleet/installer/repository" @@ -72,7 +72,7 @@ type Installer interface { type installerImpl struct { m sync.Mutex - env *fleetEnv.Env + env *env.Env cdn *cdn.CDN db *db.PackagesDB downloader *oci.Downloader @@ -84,7 +84,7 @@ type installerImpl struct { } // NewInstaller returns a new Package Manager. -func NewInstaller(env *fleetEnv.Env) (Installer, error) { +func NewInstaller(env *env.Env) (Installer, error) { err := ensureRepositoriesExist() if err != nil { return nil, fmt.Errorf("could not ensure packages and config directory exists: %w", err) @@ -101,7 +101,7 @@ func NewInstaller(env *fleetEnv.Env) (Installer, error) { env: env, cdn: cdn, db: db, - downloader: oci.NewDownloader(env, fleetEnv.GetHTTPClient()), + downloader: oci.NewDownloader(env, env.HTTPClient()), packages: repository.NewRepositories(paths.PackagesPath, paths.LocksPath), configs: repository.NewRepositories(paths.ConfigsPath, paths.LocksPath), diff --git a/pkg/fleet/installer/installer_test.go b/pkg/fleet/installer/installer_test.go index a86562cc32609..9ab772b32dc0f 100644 --- a/pkg/fleet/installer/installer_test.go +++ b/pkg/fleet/installer/installer_test.go @@ -16,7 +16,7 @@ import ( "github.com/stretchr/testify/assert" - "github.com/DataDog/datadog-agent/pkg/fleet/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" "github.com/DataDog/datadog-agent/pkg/fleet/installer/repository" "github.com/DataDog/datadog-agent/pkg/fleet/internal/db" "github.com/DataDog/datadog-agent/pkg/fleet/internal/fixtures" diff --git a/pkg/fleet/installer/packages/apm_inject.go b/pkg/fleet/installer/packages/apm_inject.go index cd7c08504deb6..febd93ecf8dc7 100644 --- a/pkg/fleet/installer/packages/apm_inject.go +++ b/pkg/fleet/installer/packages/apm_inject.go @@ -17,7 +17,7 @@ import ( "path/filepath" "strings" - "github.com/DataDog/datadog-agent/pkg/fleet/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" "github.com/DataDog/datadog-agent/pkg/fleet/installer/packages/embedded" "github.com/DataDog/datadog-agent/pkg/util/log" "go.uber.org/multierr" diff --git a/pkg/fleet/installer/packages/apm_inject_test.go b/pkg/fleet/installer/packages/apm_inject_test.go index 736077ea7b934..254feab2b0075 100644 --- a/pkg/fleet/installer/packages/apm_inject_test.go +++ b/pkg/fleet/installer/packages/apm_inject_test.go @@ -11,7 +11,7 @@ import ( "context" "testing" - "github.com/DataDog/datadog-agent/pkg/fleet/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" "github.com/stretchr/testify/assert" ) diff --git a/pkg/fleet/installer/setup.go b/pkg/fleet/installer/setup.go index 230bc1b6a1bd1..6673e44e2b081 100644 --- a/pkg/fleet/installer/setup.go +++ b/pkg/fleet/installer/setup.go @@ -10,7 +10,7 @@ import ( "context" "fmt" - "github.com/DataDog/datadog-agent/pkg/fleet/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" "github.com/DataDog/datadog-agent/pkg/fleet/internal/exec" "github.com/DataDog/datadog-agent/pkg/fleet/internal/paths" ) diff --git a/pkg/fleet/internal/bootstrap/bootstrap.go b/pkg/fleet/internal/bootstrap/bootstrap.go index e16f0cd9d603e..5f15ec79167d5 100644 --- a/pkg/fleet/internal/bootstrap/bootstrap.go +++ b/pkg/fleet/internal/bootstrap/bootstrap.go @@ -8,7 +8,8 @@ package bootstrap import ( "context" - "github.com/DataDog/datadog-agent/pkg/fleet/env" + + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" ) const ( diff --git a/pkg/fleet/internal/bootstrap/bootstrap_nix.go b/pkg/fleet/internal/bootstrap/bootstrap_nix.go index 6a3a7dd36e6f2..fbc9817f0783c 100644 --- a/pkg/fleet/internal/bootstrap/bootstrap_nix.go +++ b/pkg/fleet/internal/bootstrap/bootstrap_nix.go @@ -16,12 +16,12 @@ import ( "github.com/DataDog/datadog-agent/pkg/fleet/internal/paths" - fleetEnv "github.com/DataDog/datadog-agent/pkg/fleet/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" "github.com/DataDog/datadog-agent/pkg/fleet/internal/exec" "github.com/DataDog/datadog-agent/pkg/fleet/internal/oci" ) -func install(ctx context.Context, env *fleetEnv.Env, url string, experiment bool) error { +func install(ctx context.Context, env *env.Env, url string, experiment bool) error { err := os.MkdirAll(paths.RootTmpDir, 0755) if err != nil { return fmt.Errorf("failed to create temporary directory: %w", err) @@ -48,9 +48,9 @@ func install(ctx context.Context, env *fleetEnv.Env, url string, experiment bool // 2. Export the installer image as an OCI layout on the disk. // 3. Extract the installer image layers on the disk. // 4. Create an installer executor from the extract layer. -func downloadInstaller(ctx context.Context, env *fleetEnv.Env, url string, tmpDir string) (*exec.InstallerExec, error) { +func downloadInstaller(ctx context.Context, env *env.Env, url string, tmpDir string) (*exec.InstallerExec, error) { // 1. Download the installer package from the registry. - downloader := oci.NewDownloader(env, fleetEnv.GetHTTPClient()) + downloader := oci.NewDownloader(env, env.HTTPClient()) downloadedPackage, err := downloader.Download(ctx, url) if err != nil { return nil, fmt.Errorf("failed to download installer package: %w", err) diff --git a/pkg/fleet/internal/bootstrap/bootstrap_windows.go b/pkg/fleet/internal/bootstrap/bootstrap_windows.go index 9e4d260e73897..c3d867f959db2 100644 --- a/pkg/fleet/internal/bootstrap/bootstrap_windows.go +++ b/pkg/fleet/internal/bootstrap/bootstrap_windows.go @@ -15,14 +15,14 @@ import ( "os/exec" "path/filepath" - fleetEnv "github.com/DataDog/datadog-agent/pkg/fleet/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" "github.com/DataDog/datadog-agent/pkg/fleet/internal/paths" iexec "github.com/DataDog/datadog-agent/pkg/fleet/internal/exec" "github.com/DataDog/datadog-agent/pkg/fleet/internal/oci" ) -func install(ctx context.Context, env *fleetEnv.Env, url string, experiment bool) error { +func install(ctx context.Context, env *env.Env, url string, experiment bool) error { err := paths.CreateInstallerDataDir() if err != nil { return fmt.Errorf("failed to create installer data directory: %w", err) @@ -47,8 +47,8 @@ func install(ctx context.Context, env *fleetEnv.Env, url string, experiment bool } // downloadInstaller downloads the installer package from the registry and returns the path to the executable. -func downloadInstaller(ctx context.Context, env *fleetEnv.Env, url string, tmpDir string) (*iexec.InstallerExec, error) { - downloader := oci.NewDownloader(env, fleetEnv.GetHTTPClient()) +func downloadInstaller(ctx context.Context, env *env.Env, url string, tmpDir string) (*iexec.InstallerExec, error) { + downloader := oci.NewDownloader(env, env.HTTPClient()) downloadedPackage, err := downloader.Download(ctx, url) if err != nil { return nil, fmt.Errorf("failed to download installer package: %w", err) diff --git a/pkg/fleet/internal/cdn/cdn.go b/pkg/fleet/internal/cdn/cdn.go index 5f1ae7865a1d0..ab74ce9bfe0a7 100644 --- a/pkg/fleet/internal/cdn/cdn.go +++ b/pkg/fleet/internal/cdn/cdn.go @@ -15,7 +15,7 @@ import ( "path/filepath" "runtime" - "github.com/DataDog/datadog-agent/pkg/fleet/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" pbgo "github.com/DataDog/datadog-agent/pkg/proto/pbgo/core" "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" ) diff --git a/pkg/fleet/internal/cdn/cdn_http.go b/pkg/fleet/internal/cdn/cdn_http.go index 53d8f379d124e..1e0c90b36d69a 100644 --- a/pkg/fleet/internal/cdn/cdn_http.go +++ b/pkg/fleet/internal/cdn/cdn_http.go @@ -11,7 +11,7 @@ import ( "encoding/json" remoteconfig "github.com/DataDog/datadog-agent/pkg/config/remote/service" - "github.com/DataDog/datadog-agent/pkg/fleet/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" pbgo "github.com/DataDog/datadog-agent/pkg/proto/pbgo/core" "github.com/DataDog/datadog-agent/pkg/util/log" "github.com/DataDog/datadog-agent/pkg/version" diff --git a/pkg/fleet/internal/cdn/cdn_local.go b/pkg/fleet/internal/cdn/cdn_local.go index 6cfefe31732b3..f657d870ab7d3 100644 --- a/pkg/fleet/internal/cdn/cdn_local.go +++ b/pkg/fleet/internal/cdn/cdn_local.go @@ -11,7 +11,7 @@ import ( "os" "path/filepath" - "github.com/DataDog/datadog-agent/pkg/fleet/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" ) type fetcherLocal struct { diff --git a/pkg/fleet/internal/cdn/cdn_rc.go b/pkg/fleet/internal/cdn/cdn_rc.go index e3db586530dd2..b0713047b586d 100644 --- a/pkg/fleet/internal/cdn/cdn_rc.go +++ b/pkg/fleet/internal/cdn/cdn_rc.go @@ -15,7 +15,7 @@ import ( "github.com/DataDog/datadog-agent/comp/remote-config/rctelemetryreporter/rctelemetryreporterimpl" remoteconfig "github.com/DataDog/datadog-agent/pkg/config/remote/service" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" - "github.com/DataDog/datadog-agent/pkg/fleet/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" pbgo "github.com/DataDog/datadog-agent/pkg/proto/pbgo/core" pkghostname "github.com/DataDog/datadog-agent/pkg/util/hostname" "github.com/DataDog/datadog-agent/pkg/util/log" diff --git a/pkg/fleet/internal/cdn/scope_expression.go b/pkg/fleet/internal/cdn/scope_expression.go index a67e701942848..659d6798c0670 100644 --- a/pkg/fleet/internal/cdn/scope_expression.go +++ b/pkg/fleet/internal/cdn/scope_expression.go @@ -10,7 +10,7 @@ import ( "fmt" "regexp" - "github.com/DataDog/datadog-agent/pkg/fleet/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" "github.com/DataDog/datadog-agent/pkg/version" "github.com/expr-lang/expr" ) diff --git a/pkg/fleet/internal/cdn/tags.go b/pkg/fleet/internal/cdn/tags.go index 53c20841143bb..101c3afec8ce3 100644 --- a/pkg/fleet/internal/cdn/tags.go +++ b/pkg/fleet/internal/cdn/tags.go @@ -13,7 +13,7 @@ import ( detectenv "github.com/DataDog/datadog-agent/pkg/config/env" "github.com/DataDog/datadog-agent/pkg/config/model" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" - "github.com/DataDog/datadog-agent/pkg/fleet/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" ) type hostTagsGetter struct { diff --git a/pkg/fleet/internal/exec/installer_exec.go b/pkg/fleet/internal/exec/installer_exec.go index 34a3cfad4fbcf..29ca01999dcb9 100644 --- a/pkg/fleet/internal/exec/installer_exec.go +++ b/pkg/fleet/internal/exec/installer_exec.go @@ -18,7 +18,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/fleet/internal/paths" "github.com/DataDog/datadog-agent/pkg/util/log" - "github.com/DataDog/datadog-agent/pkg/fleet/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" installerErrors "github.com/DataDog/datadog-agent/pkg/fleet/installer/errors" "github.com/DataDog/datadog-agent/pkg/fleet/installer/repository" "github.com/DataDog/datadog-agent/pkg/fleet/telemetry" diff --git a/pkg/fleet/internal/oci/download.go b/pkg/fleet/internal/oci/download.go index 6bf91468fa0e6..a03f7917d27df 100644 --- a/pkg/fleet/internal/oci/download.go +++ b/pkg/fleet/internal/oci/download.go @@ -33,9 +33,8 @@ import ( "golang.org/x/net/http2" httptrace "gopkg.in/DataDog/dd-trace-go.v1/contrib/net/http" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" installerErrors "github.com/DataDog/datadog-agent/pkg/fleet/installer/errors" - - "github.com/DataDog/datadog-agent/pkg/fleet/env" "github.com/DataDog/datadog-agent/pkg/fleet/internal/tar" "github.com/DataDog/datadog-agent/pkg/util/log" ) diff --git a/pkg/fleet/internal/oci/download_test.go b/pkg/fleet/internal/oci/download_test.go index c3fb215373c01..e3c9b61916145 100644 --- a/pkg/fleet/internal/oci/download_test.go +++ b/pkg/fleet/internal/oci/download_test.go @@ -18,7 +18,7 @@ import ( "github.com/stretchr/testify/assert" "golang.org/x/net/http2" - "github.com/DataDog/datadog-agent/pkg/fleet/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" "github.com/DataDog/datadog-agent/pkg/fleet/internal/fixtures" "github.com/google/go-containerregistry/pkg/authn" oci "github.com/google/go-containerregistry/pkg/v1" diff --git a/pkg/fleet/telemetry/telemetry.go b/pkg/fleet/telemetry/telemetry.go index 00372e69ce760..842ea1b678cbd 100644 --- a/pkg/fleet/telemetry/telemetry.go +++ b/pkg/fleet/telemetry/telemetry.go @@ -22,7 +22,6 @@ import ( "github.com/gorilla/mux" - "github.com/DataDog/datadog-agent/pkg/fleet/env" "github.com/DataDog/datadog-agent/pkg/internaltelemetry" pb "github.com/DataDog/datadog-agent/pkg/proto/pbgo/trace" traceconfig "github.com/DataDog/datadog-agent/pkg/trace/config" @@ -60,14 +59,14 @@ type Telemetry struct { type Option func(*Telemetry) // NewTelemetry creates a new telemetry instance -func NewTelemetry(apiKey string, site string, service string, opts ...Option) (*Telemetry, error) { +func NewTelemetry(client *http.Client, apiKey string, site string, service string, opts ...Option) (*Telemetry, error) { endpoint := &traceconfig.Endpoint{ Host: fmt.Sprintf("https://%s.%s", telemetrySubdomain, strings.TrimSpace(site)), APIKey: apiKey, } listener := newTelemetryListener() t := &Telemetry{ - telemetryClient: internaltelemetry.NewClient(env.GetHTTPClient(), []*traceconfig.Endpoint{endpoint}, service, site == "datad0g.com"), + telemetryClient: internaltelemetry.NewClient(client, []*traceconfig.Endpoint{endpoint}, service, site == "datad0g.com"), site: site, service: service, listener: listener, From 1434b74667b9df0b76a66f6b8b8192fd5d9ef043 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9lian=20Raimbault?= <161456554+CelianR@users.noreply.github.com> Date: Mon, 2 Dec 2024 03:46:38 -0500 Subject: [PATCH 181/439] [incident-32914] Disable worktree unit tests (#31641) --- .../unit_tests/libs/common/worktree_tests.py | 139 +++++++++--------- 1 file changed, 73 insertions(+), 66 deletions(-) diff --git a/tasks/unit_tests/libs/common/worktree_tests.py b/tasks/unit_tests/libs/common/worktree_tests.py index 3998357c1accc..8af09d2d128bc 100644 --- a/tasks/unit_tests/libs/common/worktree_tests.py +++ b/tasks/unit_tests/libs/common/worktree_tests.py @@ -1,97 +1,104 @@ -import os -import unittest +# TODO(celian): Reintroduce these tests -from invoke import Context +""" +NOTE: These tests are disabled since they use git commands that are not mocked yet. +This breaks unit tests ran with macos runners. +""" -from tasks.libs.common.git import get_default_branch -from tasks.libs.common.gomodules import get_default_modules -from tasks.libs.common.worktree import agent_context, init_env, is_worktree +# import os +# import unittest +# from invoke import Context -def get_ctx(): - return Context() +# from tasks.libs.common.git import get_default_branch +# from tasks.libs.common.gomodules import get_default_modules +# from tasks.libs.common.worktree import agent_context, init_env, is_worktree -class TestWorktree(unittest.TestCase): - def setUp(self): - # Pull only once - init_env(get_ctx(), '6.53.x') - os.environ['AGENT_WORKTREE_NO_PULL'] = '1' +# def get_ctx(): +# return Context() - def test_context_is_worktree_true(self): - with agent_context(get_ctx(), '6.53.x'): - self.assertTrue(is_worktree()) - def test_context_is_worktree_false(self): - self.assertFalse(is_worktree()) +# class TestWorktree(unittest.TestCase): +# def setUp(self): +# # Pull only once +# init_env(get_ctx(), '6.53.x') +# os.environ['AGENT_WORKTREE_NO_PULL'] = '1' - def test_context_nested(self): - with agent_context(get_ctx(), '6.53.x'): - with agent_context(get_ctx(), '6.53.x'): - self.assertTrue(is_worktree()) - self.assertTrue(is_worktree()) +# def test_context_is_worktree_true(self): +# with agent_context(get_ctx(), '6.53.x'): +# self.assertTrue(is_worktree()) - def test_context_pwd(self): - ctx = get_ctx() +# def test_context_is_worktree_false(self): +# self.assertFalse(is_worktree()) - with agent_context(ctx, None, skip_checkout=True): - pwdnone = ctx.run('pwd').stdout +# def test_context_nested(self): +# with agent_context(get_ctx(), '6.53.x'): +# with agent_context(get_ctx(), '6.53.x'): +# self.assertTrue(is_worktree()) +# self.assertTrue(is_worktree()) - with agent_context(ctx, '6.53.x'): - pwd6 = ctx.run('pwd').stdout +# def test_context_pwd(self): +# ctx = get_ctx() - with agent_context(ctx, 'main'): - pwdmain = ctx.run('pwd').stdout +# with agent_context(ctx, None, skip_checkout=True): +# pwdnone = ctx.run('pwd').stdout - self.assertEqual(pwd6, pwdnone) - self.assertEqual(pwd6, pwdmain) +# with agent_context(ctx, '6.53.x'): +# pwd6 = ctx.run('pwd').stdout - def test_context_modules(self): - ctx = get_ctx() +# with agent_context(ctx, 'main'): +# pwdmain = ctx.run('pwd').stdout - with agent_context(ctx, 'main'): - modules7 = get_default_modules() +# self.assertEqual(pwd6, pwdnone) +# self.assertEqual(pwd6, pwdmain) - with agent_context(ctx, '6.53.x'): - modules6 = get_default_modules() +# def test_context_modules(self): +# ctx = get_ctx() - self.assertNotEqual(set(modules6.keys()), set(modules7.keys())) +# with agent_context(ctx, 'main'): +# modules7 = get_default_modules() - def test_context_branch(self): - ctx = get_ctx() +# with agent_context(ctx, '6.53.x'): +# modules6 = get_default_modules() - with agent_context(ctx, 'main'): - branch7 = get_default_branch() +# self.assertNotEqual(set(modules6.keys()), set(modules7.keys())) - with agent_context(ctx, '6.53.x'): - branch6 = get_default_branch() +# def test_context_branch(self): +# ctx = get_ctx() - self.assertNotEqual(branch6, branch7) +# with agent_context(ctx, 'main'): +# branch7 = get_default_branch() - def test_context_no_checkout(self): - ctx = get_ctx() +# with agent_context(ctx, '6.53.x'): +# branch6 = get_default_branch() - with agent_context(ctx, '6.53.x'): - branch6 = get_default_branch() +# self.assertNotEqual(branch6, branch7) - with agent_context(ctx, 'main'): - branch7 = get_default_branch() +# def test_context_no_checkout(self): +# ctx = get_ctx() - with agent_context(ctx, 'main', skip_checkout=True): - branch_no_checkout = get_default_branch() +# with agent_context(ctx, '6.53.x'): +# branch6 = get_default_branch() - self.assertNotEqual(branch6, branch7) - self.assertEqual(branch7, branch_no_checkout) +# with agent_context(ctx, 'main'): +# branch7 = get_default_branch() - def test_context_no_checkout_error(self): - ctx = get_ctx() +# with agent_context(ctx, 'main', skip_checkout=True): +# branch_no_checkout = get_default_branch() - with agent_context(ctx, '6.53.x'): - pass +# self.assertNotEqual(branch6, branch7) +# self.assertEqual(branch7, branch_no_checkout) - def switch_context(): - # The current branch is not main - with agent_context(ctx, 'main', skip_checkout=True): - pass +# def test_context_no_checkout_error(self): +# ctx = get_ctx() - self.assertRaises(AssertionError, switch_context) +# with agent_context(ctx, '6.53.x'): +# pass + +# def switch_context(): +# # The current branch is not main +# with agent_context(ctx, 'main', skip_checkout=True): +# pass + +# self.assertRaises(AssertionError, switch_context) From e263f3754831e392ddee359a6110df64718a32a8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Dec 2024 09:00:42 +0000 Subject: [PATCH 182/439] Bump github/codeql-action from 3.27.1 to 3.27.5 (#31441) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/codeql-analysis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index ac6cb803af3f9..884c65f390ee8 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -45,7 +45,7 @@ jobs: go-version-file: ".go-version" - name: Initialize CodeQL - uses: github/codeql-action/init@4f3212b61783c3c68e8309a0f18a699764811cda # v3.27.1 + uses: github/codeql-action/init@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # v3.27.5 with: languages: ${{ matrix.language }} config: | @@ -67,4 +67,4 @@ jobs: invoke agent.build --build-exclude=systemd - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@4f3212b61783c3c68e8309a0f18a699764811cda # v3.27.1 + uses: github/codeql-action/analyze@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # v3.27.5 From f99d0f47f9d99b27acfd5321e87e259137e3b4dd Mon Sep 17 00:00:00 2001 From: "agent-platform-auto-pr[bot]" <153269286+agent-platform-auto-pr[bot]@users.noreply.github.com> Date: Mon, 2 Dec 2024 09:05:30 +0000 Subject: [PATCH 183/439] [test-infra-definitions][automated] Bump test-infra-definitions to 1f340fd450e3494bde2e48f5ef9a6b46d74fe99d (#31623) Co-authored-by: agent-platform-auto-pr[bot] <153269286+agent-platform-auto-pr[bot]@users.noreply.github.com> --- .gitlab/common/test_infra_version.yml | 2 +- test/new-e2e/go.mod | 8 ++++---- test/new-e2e/go.sum | 12 ++++++------ 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.gitlab/common/test_infra_version.yml b/.gitlab/common/test_infra_version.yml index dd6770058e7ec..7844ff82e9ee3 100644 --- a/.gitlab/common/test_infra_version.yml +++ b/.gitlab/common/test_infra_version.yml @@ -4,4 +4,4 @@ variables: # and check the job creating the image to make sure you have the right SHA prefix TEST_INFRA_DEFINITIONS_BUILDIMAGES_SUFFIX: "" # Make sure to update test-infra-definitions version in go.mod as well - TEST_INFRA_DEFINITIONS_BUILDIMAGES: 047dd64128b6 + TEST_INFRA_DEFINITIONS_BUILDIMAGES: 1f340fd450e3 diff --git a/test/new-e2e/go.mod b/test/new-e2e/go.mod index 22e7754303033..92f74bcc9a3d0 100644 --- a/test/new-e2e/go.mod +++ b/test/new-e2e/go.mod @@ -47,7 +47,7 @@ replace ( require ( github.com/DataDog/agent-payload/v5 v5.0.122 github.com/DataDog/datadog-agent/comp/otelcol/ddflareextension/def v0.56.2 - github.com/DataDog/datadog-agent/pkg/util/optional v0.56.2 + github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 github.com/DataDog/datadog-agent/pkg/util/pointer v0.56.2 github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.2 github.com/DataDog/datadog-agent/pkg/util/testutil v0.56.2 @@ -60,7 +60,7 @@ require ( // `TEST_INFRA_DEFINITIONS_BUILDIMAGES` matches the commit sha in the module version // Example: github.com/DataDog/test-infra-definitions v0.0.0-YYYYMMDDHHmmSS-0123456789AB // => TEST_INFRA_DEFINITIONS_BUILDIMAGES: 0123456789AB - github.com/DataDog/test-infra-definitions v0.0.0-20241127134930-047dd64128b6 + github.com/DataDog/test-infra-definitions v0.0.0-20241129143439-1f340fd450e3 github.com/aws/aws-sdk-go-v2 v1.32.2 github.com/aws/aws-sdk-go-v2/config v1.27.40 github.com/aws/aws-sdk-go-v2/service/ec2 v1.164.2 @@ -76,7 +76,7 @@ require ( github.com/pkg/sftp v1.13.6 github.com/pulumi/pulumi-aws/sdk/v6 v6.56.1 github.com/pulumi/pulumi-awsx/sdk/v2 v2.16.1 - github.com/pulumi/pulumi-eks/sdk/v2 v2.7.8 // indirect + github.com/pulumi/pulumi-eks/sdk/v2 v2.8.1 // indirect github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.17.1 github.com/pulumi/pulumi/sdk/v3 v3.140.0 github.com/samber/lo v1.47.0 @@ -227,7 +227,7 @@ require ( github.com/pulumi/pulumi-command/sdk v1.0.1 // indirect github.com/pulumi/pulumi-docker/sdk/v4 v4.5.5 // indirect github.com/pulumi/pulumi-libvirt/sdk v0.4.7 // indirect - github.com/pulumi/pulumi-random/sdk/v4 v4.16.6 // indirect + github.com/pulumi/pulumi-random/sdk/v4 v4.16.7 // indirect github.com/pulumi/pulumi-tls/sdk/v4 v4.11.1 // indirect github.com/pulumiverse/pulumi-time/sdk v0.1.0 // indirect github.com/rivo/uniseg v0.4.7 // indirect diff --git a/test/new-e2e/go.sum b/test/new-e2e/go.sum index 076037f33850b..0eec3057c4dae 100644 --- a/test/new-e2e/go.sum +++ b/test/new-e2e/go.sum @@ -17,8 +17,8 @@ github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw= github.com/DataDog/mmh3 v0.0.0-20200805151601-30884ca2197a h1:m9REhmyaWD5YJ0P53ygRHxKKo+KM+nw+zz0hEdKztMo= github.com/DataDog/mmh3 v0.0.0-20200805151601-30884ca2197a/go.mod h1:SvsjzyJlSg0rKsqYgdcFxeEVflx3ZNAyFfkUHP0TxXg= -github.com/DataDog/test-infra-definitions v0.0.0-20241127134930-047dd64128b6 h1:7Cy8Iju8X6XdwqXyTrkke1ULq/yEikXVEwAgg4yCGFg= -github.com/DataDog/test-infra-definitions v0.0.0-20241127134930-047dd64128b6/go.mod h1:YYNx5mySRiinvCoTQIkToR8PcBXpxrRIW/HqmTw9XAY= +github.com/DataDog/test-infra-definitions v0.0.0-20241129143439-1f340fd450e3 h1:s+bNaiOoY3W7vCSQVqD4mU3mrtXsbkeRX+vVTwCyStQ= +github.com/DataDog/test-infra-definitions v0.0.0-20241129143439-1f340fd450e3/go.mod h1:7nVt9okOqKKC9B9YfKqk4jitYuv1I3q2Cd/yZWuViZU= github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f h1:5Vuo4niPKFkfwW55jV4vY0ih3VQ9RaQqeqY67fvRn8A= @@ -434,8 +434,8 @@ github.com/pulumi/pulumi-command/sdk v1.0.1 h1:ZuBSFT57nxg/fs8yBymUhKLkjJ6qmyN3g github.com/pulumi/pulumi-command/sdk v1.0.1/go.mod h1:C7sfdFbUIoXKoIASfXUbP/U9xnwPfxvz8dBpFodohlA= github.com/pulumi/pulumi-docker/sdk/v4 v4.5.5 h1:7OjAfgLz5PAy95ynbgPAlWls5WBe4I/QW/61TdPWRlQ= github.com/pulumi/pulumi-docker/sdk/v4 v4.5.5/go.mod h1:XZKLFXbw13olxuztlWnmVUPYZp2a+BqzqhuMl0j/Ow8= -github.com/pulumi/pulumi-eks/sdk/v2 v2.7.8 h1:NeCKFxyOLpAaG4pJDk7+ewnCuV2IbXR7PggYSNujOno= -github.com/pulumi/pulumi-eks/sdk/v2 v2.7.8/go.mod h1:ARGNnIZENIpDUVSX21JEQJKrESj/0u0r0iT61rpb86I= +github.com/pulumi/pulumi-eks/sdk/v2 v2.8.1 h1:upeongxe3/2oCO2BHq78qqQbO7SGJz9rnp/KyDmJwqs= +github.com/pulumi/pulumi-eks/sdk/v2 v2.8.1/go.mod h1:ARGNnIZENIpDUVSX21JEQJKrESj/0u0r0iT61rpb86I= github.com/pulumi/pulumi-gcp/sdk/v6 v6.67.1 h1:PUH/sUbJmBmHjNFNthJ/dW2+riFuJV0FhrGAwuUuRIg= github.com/pulumi/pulumi-gcp/sdk/v6 v6.67.1/go.mod h1:OmZeji3dNMwB1qldAlaQfcfJPc2BaZyweVGH7Ej4SJg= github.com/pulumi/pulumi-gcp/sdk/v7 v7.38.0 h1:21oSj+TKlKTzQcxN9Hik7iSNNHPUQXN4s3itOnahy/w= @@ -444,8 +444,8 @@ github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.17.1 h1:VDX+hu+qK3fbf2FodgG5kfh2h1 github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.17.1/go.mod h1:e69ohZtUePLLYNLXYgiOWp0FvRGg6ya/3fsq3o00nN0= github.com/pulumi/pulumi-libvirt/sdk v0.4.7 h1:/BBnqqx/Gbg2vINvJxXIVb58THXzw2lSqFqxlRSXH9M= github.com/pulumi/pulumi-libvirt/sdk v0.4.7/go.mod h1:VKvjhAm1sGtzKZruYwIhgascabEx7+oVVRCoxp/cPi4= -github.com/pulumi/pulumi-random/sdk/v4 v4.16.6 h1:M9BSF13bQxj74C61nBTVITrsgT6oRR6cgudsKz7WOFU= -github.com/pulumi/pulumi-random/sdk/v4 v4.16.6/go.mod h1:l5ew7S/G1GspPLH9KeWXqxQ4ZmS2hh2sEMv3bW9M3yc= +github.com/pulumi/pulumi-random/sdk/v4 v4.16.7 h1:39rhOe/PTUGMYia8pR5T2wbxxMt2pwrlonf0ncYKSzE= +github.com/pulumi/pulumi-random/sdk/v4 v4.16.7/go.mod h1:cxxDhJzUPt/YElfvlWa15Q4NGF6XXS8kUs4OQsCxSBk= github.com/pulumi/pulumi-tls/sdk/v4 v4.11.1 h1:tXemWrzeVTqG8zq6hBdv1TdPFXjgZ+dob63a/6GlF1o= github.com/pulumi/pulumi-tls/sdk/v4 v4.11.1/go.mod h1:hODo3iEmmXDFOXqPK+V+vwI0a3Ww7BLjs5Tgamp86Ng= github.com/pulumi/pulumi/sdk/v3 v3.140.0 h1:+Z/RBvdYg7tBNkBwk4p/FzlV7niBT3TbLAICq/Y0LDU= From 1a573fb5ec66db0717cc9f10b5f3922422f4f010 Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Mon, 2 Dec 2024 10:20:34 +0100 Subject: [PATCH 184/439] [CWS] remove hash burst config, since we always have burst = 1 (#31633) --- pkg/config/setup/system_probe_cws.go | 1 - pkg/security/config/config.go | 3 --- pkg/security/resolvers/hash/resolver_linux.go | 8 +++++++- pkg/security/resolvers/hash/resolver_test.go | 8 -------- 4 files changed, 7 insertions(+), 13 deletions(-) diff --git a/pkg/config/setup/system_probe_cws.go b/pkg/config/setup/system_probe_cws.go index f7ee9bfd90395..b72d72df3c971 100644 --- a/pkg/config/setup/system_probe_cws.go +++ b/pkg/config/setup/system_probe_cws.go @@ -114,7 +114,6 @@ func initCWSSystemProbeConfig(cfg pkgconfigmodel.Config) { cfg.BindEnvAndSetDefault("runtime_security_config.hash_resolver.event_types", []string{"exec", "open"}) cfg.BindEnvAndSetDefault("runtime_security_config.hash_resolver.max_file_size", (1<<20)*10) // 10 MB cfg.BindEnvAndSetDefault("runtime_security_config.hash_resolver.max_hash_rate", 500) - cfg.BindEnvAndSetDefault("runtime_security_config.hash_resolver.max_hash_burst", 1000) cfg.BindEnvAndSetDefault("runtime_security_config.hash_resolver.hash_algorithms", []string{"sha1", "sha256", "ssdeep"}) cfg.BindEnvAndSetDefault("runtime_security_config.hash_resolver.cache_size", 500) cfg.BindEnvAndSetDefault("runtime_security_config.hash_resolver.replace", map[string]string{}) diff --git a/pkg/security/config/config.go b/pkg/security/config/config.go index bf5222cfcd72f..fc9cbcecc6a4b 100644 --- a/pkg/security/config/config.go +++ b/pkg/security/config/config.go @@ -215,8 +215,6 @@ type RuntimeSecurityConfig struct { HashResolverMaxFileSize int64 // HashResolverMaxHashRate defines the rate at which the hash resolver may compute hashes HashResolverMaxHashRate int - // HashResolverMaxHashBurst defines the burst of files for which the hash resolver may compute a hash - HashResolverMaxHashBurst int // HashResolverHashAlgorithms defines the hashes that hash resolver needs to compute HashResolverHashAlgorithms []model.HashAlgorithm // HashResolverEventTypes defines the list of event which files may be hashed @@ -407,7 +405,6 @@ func NewRuntimeSecurityConfig() (*RuntimeSecurityConfig, error) { HashResolverEventTypes: parseEventTypeStringSlice(pkgconfigsetup.SystemProbe().GetStringSlice("runtime_security_config.hash_resolver.event_types")), HashResolverMaxFileSize: pkgconfigsetup.SystemProbe().GetInt64("runtime_security_config.hash_resolver.max_file_size"), HashResolverHashAlgorithms: parseHashAlgorithmStringSlice(pkgconfigsetup.SystemProbe().GetStringSlice("runtime_security_config.hash_resolver.hash_algorithms")), - HashResolverMaxHashBurst: pkgconfigsetup.SystemProbe().GetInt("runtime_security_config.hash_resolver.max_hash_burst"), HashResolverMaxHashRate: pkgconfigsetup.SystemProbe().GetInt("runtime_security_config.hash_resolver.max_hash_rate"), HashResolverCacheSize: pkgconfigsetup.SystemProbe().GetInt("runtime_security_config.hash_resolver.cache_size"), HashResolverReplace: pkgconfigsetup.SystemProbe().GetStringMapString("runtime_security_config.hash_resolver.replace"), diff --git a/pkg/security/resolvers/hash/resolver_linux.go b/pkg/security/resolvers/hash/resolver_linux.go index 5fdef9e8cb298..772cce4fb5285 100644 --- a/pkg/security/resolvers/hash/resolver_linux.go +++ b/pkg/security/resolvers/hash/resolver_linux.go @@ -126,6 +126,12 @@ func NewResolver(c *config.RuntimeSecurityConfig, statsdClient statsd.ClientInte } } + burst := 1 + // if the rate limiter is disabled, set the burst to 0 + if c.HashResolverMaxHashRate == 0 { + burst = 0 + } + r := &Resolver{ opts: ResolverOpts{ Enabled: true, @@ -135,7 +141,7 @@ func NewResolver(c *config.RuntimeSecurityConfig, statsdClient statsd.ClientInte }, cgroupResolver: cgroupResolver, statsdClient: statsdClient, - limiter: rate.NewLimiter(rate.Limit(c.HashResolverMaxHashRate), c.HashResolverMaxHashBurst), + limiter: rate.NewLimiter(rate.Limit(c.HashResolverMaxHashRate), burst), cache: cache, hashCount: make(map[model.EventType]map[model.HashAlgorithm]*atomic.Uint64), hashMiss: make(map[model.EventType]map[model.HashState]*atomic.Uint64), diff --git a/pkg/security/resolvers/hash/resolver_test.go b/pkg/security/resolvers/hash/resolver_test.go index bcd089855337c..83fba9c1737c5 100644 --- a/pkg/security/resolvers/hash/resolver_test.go +++ b/pkg/security/resolvers/hash/resolver_test.go @@ -52,7 +52,6 @@ func TestResolver_ComputeHashes(t *testing.T) { HashResolverEventTypes: []model.EventType{model.ExecEventType}, HashResolverHashAlgorithms: []model.HashAlgorithm{model.SHA1, model.SHA256, model.MD5}, HashResolverMaxHashRate: 1, - HashResolverMaxHashBurst: 1, HashResolverMaxFileSize: 1 << 20, }, args: args{ @@ -89,7 +88,6 @@ func TestResolver_ComputeHashes(t *testing.T) { HashResolverEventTypes: []model.EventType{model.FileOpenEventType}, HashResolverHashAlgorithms: []model.HashAlgorithm{model.SHA1, model.SHA256, model.MD5}, HashResolverMaxHashRate: 1, - HashResolverMaxHashBurst: 1, HashResolverMaxFileSize: 1 << 20, }, args: args{ @@ -122,7 +120,6 @@ func TestResolver_ComputeHashes(t *testing.T) { HashResolverEventTypes: []model.EventType{model.ExecEventType}, HashResolverHashAlgorithms: []model.HashAlgorithm{model.SHA1, model.SHA256, model.MD5}, HashResolverMaxHashRate: 1, - HashResolverMaxHashBurst: 1, HashResolverMaxFileSize: 1 << 10, }, args: args{ @@ -159,7 +156,6 @@ func TestResolver_ComputeHashes(t *testing.T) { HashResolverEventTypes: []model.EventType{model.ExecEventType}, HashResolverHashAlgorithms: []model.HashAlgorithm{model.SHA1, model.SHA256, model.MD5}, HashResolverMaxHashRate: 1, - HashResolverMaxHashBurst: 1, HashResolverMaxFileSize: 1 << 10, }, args: args{ @@ -192,7 +188,6 @@ func TestResolver_ComputeHashes(t *testing.T) { HashResolverEventTypes: []model.EventType{model.ExecEventType}, HashResolverHashAlgorithms: []model.HashAlgorithm{model.SHA1, model.SHA256, model.MD5}, HashResolverMaxHashRate: 0, - HashResolverMaxHashBurst: 0, HashResolverMaxFileSize: 1 << 10, }, args: args{ @@ -307,7 +302,6 @@ func BenchmarkHashFunctions(b *testing.B) { HashResolverEventTypes: []model.EventType{model.ExecEventType}, HashResolverHashAlgorithms: []model.HashAlgorithm{model.SHA1}, HashResolverMaxHashRate: math.MaxInt, - HashResolverMaxHashBurst: math.MaxInt, HashResolverMaxFileSize: math.MaxInt64, }, fileSizes: []fileCase{ @@ -364,7 +358,6 @@ func BenchmarkHashFunctions(b *testing.B) { HashResolverEventTypes: []model.EventType{model.ExecEventType}, HashResolverHashAlgorithms: []model.HashAlgorithm{model.SHA256}, HashResolverMaxHashRate: math.MaxInt, - HashResolverMaxHashBurst: math.MaxInt, HashResolverMaxFileSize: math.MaxInt64, }, fileSizes: []fileCase{ @@ -421,7 +414,6 @@ func BenchmarkHashFunctions(b *testing.B) { HashResolverEventTypes: []model.EventType{model.ExecEventType}, HashResolverHashAlgorithms: []model.HashAlgorithm{model.MD5}, HashResolverMaxHashRate: math.MaxInt, - HashResolverMaxHashBurst: math.MaxInt, HashResolverMaxFileSize: math.MaxInt64, }, fileSizes: []fileCase{ From bbc457034d8107e3df6d5636f46c730965be7162 Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Mon, 2 Dec 2024 10:21:16 +0100 Subject: [PATCH 185/439] [CWS-2966] add validation that `pid-per-tracer` is greater or equal to 1 in attach mode (#31636) --- cmd/cws-instrumentation/subcommands/tracecmd/trace.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cmd/cws-instrumentation/subcommands/tracecmd/trace.go b/cmd/cws-instrumentation/subcommands/tracecmd/trace.go index c1b393d8721f1..3fa092606bc78 100644 --- a/cmd/cws-instrumentation/subcommands/tracecmd/trace.go +++ b/cmd/cws-instrumentation/subcommands/tracecmd/trace.go @@ -120,6 +120,10 @@ func Command() []*cobra.Command { // attach mode if n := len(params.PIDs); n > 0 { + if params.PIDPerTracer <= 0 { + return fmt.Errorf("%s option but be greater or equal to 1", pidPerTracer) + } + if n < params.PIDPerTracer { return ptracer.Attach(params.PIDs, params.ProbeAddr, opts) } From d06ed83faa07de5bbba50f5bb70ed0bbbffdac32 Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Mon, 2 Dec 2024 10:21:23 +0100 Subject: [PATCH 186/439] [CWS-2966] add missing cws-instrumentation flags in attach mode (#31637) --- .../subcommands/tracecmd/trace.go | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/cmd/cws-instrumentation/subcommands/tracecmd/trace.go b/cmd/cws-instrumentation/subcommands/tracecmd/trace.go index 3fa092606bc78..a8ad4238b2483 100644 --- a/cmd/cws-instrumentation/subcommands/tracecmd/trace.go +++ b/cmd/cws-instrumentation/subcommands/tracecmd/trace.go @@ -149,19 +149,17 @@ func Command() []*cobra.Command { go func(set []int) { defer wg.Done() - args := []string{"trace"} - - if params.ProcScanDisabled { - args = append(args, fmt.Sprintf(`--%s`, disableProcScanOpt)) - } - if params.Async { - args = append(args, fmt.Sprintf(`--%s`, asyncOpt)) + args := []string{ + "trace", + fmt.Sprintf(`--%s`, probeAddrOpt), + params.ProbeAddr, } + if params.Verbose { args = append(args, fmt.Sprintf(`--%s`, verboseOpt)) } - if params.StatsDisabled { - args = append(args, fmt.Sprintf(`--%s`, disableStatsOpt)) + if params.Debug { + args = append(args, fmt.Sprintf(`--%s`, debugOpt)) } if params.UID != -1 { args = append(args, fmt.Sprintf(`--%s`, uidOpt), fmt.Sprintf(`%d`, params.UID)) @@ -169,7 +167,21 @@ func Command() []*cobra.Command { if params.GID != -1 { args = append(args, fmt.Sprintf(`--%s`, gidOpt), fmt.Sprintf(`%d`, params.GID)) } - args = append(args, fmt.Sprintf(`--%s`, probeAddrOpt), params.ProbeAddr) + if params.Async { + args = append(args, fmt.Sprintf(`--%s`, asyncOpt)) + } + if params.StatsDisabled { + args = append(args, fmt.Sprintf(`--%s`, disableStatsOpt)) + } + if params.ProcScanDisabled { + args = append(args, fmt.Sprintf(`--%s`, disableProcScanOpt)) + } + if params.ScanProcEvery != "" { + args = append(args, fmt.Sprintf(`--%s`, scanProcEveryOpt), params.ScanProcEvery) + } + if params.SeccompDisabled { + args = append(args, fmt.Sprintf(`--%s`, disableSeccompOpt)) + } for _, pid := range set { args = append(args, fmt.Sprintf(`--%s`, pidOpt), fmt.Sprintf(`%d`, pid)) From 677d39bbfa740259626c82d978823282de510e6e Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Mon, 2 Dec 2024 10:37:58 +0100 Subject: [PATCH 187/439] [CWS] add additional fentry check for weak duplicated symbols (#31632) --- pkg/security/ebpf/kernel/kernel.go | 14 ++++++++++++++ pkg/security/probe/probe_ebpf.go | 6 ++++++ 2 files changed, 20 insertions(+) diff --git a/pkg/security/ebpf/kernel/kernel.go b/pkg/security/ebpf/kernel/kernel.go index 011273ef79589..65170a4d53c0f 100644 --- a/pkg/security/ebpf/kernel/kernel.go +++ b/pkg/security/ebpf/kernel/kernel.go @@ -12,6 +12,7 @@ import ( "fmt" "os" "path/filepath" + "runtime" "strings" "sync" @@ -375,6 +376,19 @@ func (k *Version) HaveFentrySupportWithStructArgs() bool { return k.commonFentryCheck("audit_set_loginuid") } +// HaveFentryNoDuplicatedWeakSymbols returns whether the kernel supports fentry probes with struct arguments +func (k *Version) HaveFentryNoDuplicatedWeakSymbols() bool { + var symbol string + switch runtime.GOARCH { + case "amd64": + symbol = "__ia32_sys_setregid16" + default: + return true + } + + return k.commonFentryCheck(symbol) +} + // SupportBPFSendSignal returns true if the eBPF function bpf_send_signal is available func (k *Version) SupportBPFSendSignal() bool { return k.Code != 0 && k.Code >= Kernel5_3 diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go index 1c1e8fa37bc82..8df6dcab2daf5 100644 --- a/pkg/security/probe/probe_ebpf.go +++ b/pkg/security/probe/probe_ebpf.go @@ -206,6 +206,12 @@ func (p *EBPFProbe) selectFentryMode() { return } + if !p.kernelVersion.HaveFentryNoDuplicatedWeakSymbols() { + p.useFentry = false + seclog.Warnf("fentry enabled but not supported with duplicated weak symbols, falling back to kprobe mode") + return + } + p.useFentry = true } From def88580e6cbfa4bc6295b1f38c3f7b86caeaa89 Mon Sep 17 00:00:00 2001 From: Guy Arbitman Date: Mon, 2 Dec 2024 11:50:33 +0200 Subject: [PATCH 188/439] usm: config: Default USM configuration should not warn about using network_config.enable_http_monitoring (#31635) --- cmd/system-probe/config/adjust_usm.go | 2 +- .../inventoryagentimpl/inventoryagent_test.go | 2 +- pkg/network/config/config_test.go | 28 +++++++++---------- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/cmd/system-probe/config/adjust_usm.go b/cmd/system-probe/config/adjust_usm.go index b3c1bcf93f415..e671f97f1255c 100644 --- a/cmd/system-probe/config/adjust_usm.go +++ b/cmd/system-probe/config/adjust_usm.go @@ -19,7 +19,6 @@ const ( func adjustUSM(cfg model.Config) { if cfg.GetBool(smNS("enabled")) { - applyDefault(cfg, netNS("enable_http_monitoring"), true) applyDefault(cfg, netNS("enable_https_monitoring"), true) applyDefault(cfg, spNS("enable_runtime_compiler"), true) applyDefault(cfg, spNS("enable_kernel_header_download"), true) @@ -28,6 +27,7 @@ func adjustUSM(cfg model.Config) { } deprecateBool(cfg, netNS("enable_http_monitoring"), smNS("enable_http_monitoring")) + applyDefault(cfg, smNS("enable_http_monitoring"), true) deprecateBool(cfg, netNS("enable_https_monitoring"), smNS("tls", "native", "enabled")) deprecateBool(cfg, smNS("enable_go_tls_support"), smNS("tls", "go", "enabled")) applyDefault(cfg, smNS("tls", "go", "enabled"), true) diff --git a/comp/metadata/inventoryagent/inventoryagentimpl/inventoryagent_test.go b/comp/metadata/inventoryagent/inventoryagentimpl/inventoryagent_test.go index 281e87baba7e5..18aab8f237c77 100644 --- a/comp/metadata/inventoryagent/inventoryagentimpl/inventoryagent_test.go +++ b/comp/metadata/inventoryagent/inventoryagentimpl/inventoryagent_test.go @@ -483,7 +483,7 @@ func TestFetchSystemProbeAgent(t *testing.T) { assert.False(t, ia.data["feature_cws_security_profiles_enabled"].(bool)) assert.True(t, ia.data["feature_cws_remote_config_enabled"].(bool)) assert.False(t, ia.data["feature_networks_enabled"].(bool)) - assert.False(t, ia.data["feature_networks_http_enabled"].(bool)) + assert.True(t, ia.data["feature_networks_http_enabled"].(bool)) assert.False(t, ia.data["feature_networks_https_enabled"].(bool)) assert.False(t, ia.data["feature_usm_enabled"].(bool)) assert.False(t, ia.data["feature_usm_kafka_enabled"].(bool)) diff --git a/pkg/network/config/config_test.go b/pkg/network/config/config_test.go index 791cd0f872d63..a5fefa550aa68 100644 --- a/pkg/network/config/config_test.go +++ b/pkg/network/config/config_test.go @@ -75,42 +75,48 @@ func TestDisablingProtocolClassification(t *testing.T) { } func TestEnableHTTPMonitoring(t *testing.T) { + t.Run("Default", func(t *testing.T) { + mock.NewSystemProbe(t) + cfg := New() + assert.True(t, cfg.EnableHTTPMonitoring) + }) + t.Run("via deprecated YAML", func(t *testing.T) { mockSystemProbe := mock.NewSystemProbe(t) - mockSystemProbe.SetWithoutSource("network_config.enable_http_monitoring", true) + mockSystemProbe.SetWithoutSource("network_config.enable_http_monitoring", false) cfg := New() - assert.True(t, cfg.EnableHTTPMonitoring) + assert.False(t, cfg.EnableHTTPMonitoring) }) t.Run("via deprecated ENV variable", func(t *testing.T) { mock.NewSystemProbe(t) - t.Setenv("DD_SYSTEM_PROBE_NETWORK_ENABLE_HTTP_MONITORING", "true") + t.Setenv("DD_SYSTEM_PROBE_NETWORK_ENABLE_HTTP_MONITORING", "false") cfg := New() _, err := sysconfig.New("", "") require.NoError(t, err) - assert.True(t, cfg.EnableHTTPMonitoring) + assert.False(t, cfg.EnableHTTPMonitoring) }) t.Run("via YAML", func(t *testing.T) { mockSystemProbe := mock.NewSystemProbe(t) - mockSystemProbe.SetWithoutSource("service_monitoring_config.enable_http_monitoring", true) + mockSystemProbe.SetWithoutSource("service_monitoring_config.enable_http_monitoring", false) cfg := New() - assert.True(t, cfg.EnableHTTPMonitoring) + assert.False(t, cfg.EnableHTTPMonitoring) }) t.Run("via ENV variable", func(t *testing.T) { mock.NewSystemProbe(t) - t.Setenv("DD_SERVICE_MONITORING_CONFIG_ENABLE_HTTP_MONITORING", "true") + t.Setenv("DD_SERVICE_MONITORING_CONFIG_ENABLE_HTTP_MONITORING", "false") cfg := New() _, err := sysconfig.New("", "") require.NoError(t, err) - assert.True(t, cfg.EnableHTTPMonitoring) + assert.False(t, cfg.EnableHTTPMonitoring) }) t.Run("Deprecated is enabled, new is disabled", func(t *testing.T) { @@ -148,12 +154,6 @@ func TestEnableHTTPMonitoring(t *testing.T) { assert.True(t, cfg.EnableHTTPMonitoring) }) - - t.Run("Not enabled", func(t *testing.T) { - mock.NewSystemProbe(t) - cfg := New() - assert.False(t, cfg.EnableHTTPMonitoring) - }) } func TestEnableHTTP2Monitoring(t *testing.T) { From de096e7b84d831a7a92267f129216ba036c84771 Mon Sep 17 00:00:00 2001 From: Kevin Fairise <132568982+KevinFairise2@users.noreply.github.com> Date: Mon, 2 Dec 2024 11:27:17 +0100 Subject: [PATCH 189/439] [ADXT-767] [lint] Exclude test/new-e2e from windows and macos linter (#31627) --- modules.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/modules.yml b/modules.yml index 76f89c8ba8211..cc5d5666b14dd 100644 --- a/modules.yml +++ b/modules.yml @@ -268,6 +268,7 @@ modules: lint_targets: - . - ./examples + should_test_condition: is_linux test_targets: - ./pkg/runner - ./pkg/utils/e2e/client From 55cc0d64ca7fa4629c428b891a0f7be06fb39953 Mon Sep 17 00:00:00 2001 From: pducolin <45568537+pducolin@users.noreply.github.com> Date: Mon, 2 Dec 2024 11:47:56 +0100 Subject: [PATCH 190/439] [github] update qa check logic (#31600) Co-authored-by: Alexandre Menasria <47357713+amenasria@users.noreply.github.com> --- .github/PULL_REQUEST_TEMPLATE.md | 12 ++++- .github/workflows/label-analysis.yml | 31 ++++++------- tasks/github_tasks.py | 32 ++++++++++++- tasks/unit_tests/github_tasks_tests.py | 63 +++++++++++++++++++++----- 4 files changed, 108 insertions(+), 30 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index cd1de234a6014..7f5c8e1546904 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -12,7 +12,17 @@ ### Motivation -### Describe how to test/QA your changes +### Describe how you validated your changes + ### Possible Drawbacks / Trade-offs diff --git a/.github/workflows/label-analysis.yml b/.github/workflows/label-analysis.yml index 183063c69fc69..ec53d5a695fed 100644 --- a/.github/workflows/label-analysis.yml +++ b/.github/workflows/label-analysis.yml @@ -102,25 +102,24 @@ jobs: if: github.triggering_actor != 'dd-devflow[bot]' runs-on: ubuntu-latest steps: + - name: Checkout repository + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + with: + persist-credentials: false + - name: Setup Python3 + uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 + with: + python-version: "3.12.6" + cache: "pip" + cache-dependency-path: '**/requirements*.txt' + - name: Install python dependencies + run: pip3 install -r requirements.txt - name: Check qa/[done|no-code-change] labels are not set together - run: | - is_qa_done=1 - is_qa_no_code_change=1 - for label in $LABELS; do - if [[ "$label" == "qa/done" ]]; then - is_qa_done=0 - fi - if [[ "$label" == "qa/no-code-change" ]]; then - is_qa_no_code_change=0 - fi - done - if [ $is_qa_done -eq 0 ] && [ $is_qa_no_code_change -eq 0 ]; then - echo "Both 'qa/done' and 'qa/no-code-change' labels are set -- only one of them should be set" - exit 1 - fi - echo "No issue with 'qa/done' and 'qa/no-code-change' labels" env: LABELS: ${{ needs.fetch-labels.outputs.LABELS}} + run: | + inv -e github.check-qa-labels --labels "${LABELS[@]}" + agenttelemetry-list-change-ack-check: if: github.triggering_actor != 'dd-devflow[bot]' runs-on: ubuntu-latest diff --git a/tasks/github_tasks.py b/tasks/github_tasks.py index 54a4aad6ab53c..7cc67757a61c3 100644 --- a/tasks/github_tasks.py +++ b/tasks/github_tasks.py @@ -454,7 +454,7 @@ def pr_merge_dd_event_sender( tags = [f'repo:{pr.base.repo.full_name}', f'pr_id:{pr.number}', f'author:{pr.user.login}'] labels = set(github.get_pr_labels(pr.number)) - all_qa_labels = {'qa/done', 'qa/no-code-change'} + all_qa_labels = {'qa/done', 'qa/no-code-change', 'qa/rc-required'} qa_labels = all_qa_labels.intersection(labels) if len(qa_labels) == 0: tags.append('qa_label:missing') @@ -495,7 +495,7 @@ def extract_test_qa_description(pr_body: str) -> str: pr_body_lines = pr_body.splitlines() index_of_test_qa_section = -1 for i, line in enumerate(pr_body_lines): - if line.startswith('### Describe how to test'): + if line.startswith('### Describe how you validated your changes'): index_of_test_qa_section = i break if index_of_test_qa_section == -1: @@ -579,3 +579,31 @@ def add_required_checks(_, branch: str, check: str, force: bool = False): gh = GithubAPI() gh.add_branch_required_check(branch, check, force) + + +@task +def check_qa_labels(_, labels: str): + """ + Check if the PR has one of qa/[done|no-code-change|rc-required] label + """ + labels = set(labels.split(" ")) + all_qa_labels = {'qa/done', 'qa/no-code-change', 'qa/rc-required'} + qa_labels = all_qa_labels.intersection(labels) + docs = "\n".join( + [ + "You must set one of:", + "- 'qa/no-code-change' if your PR does not contain changes to the agent code or has no impact to the agent functionalities", + " Examples: code owner changes, e2e test framework changes, documentation changes", + "- 'qa/done' if your PR contains changes impacting the Agent binary code that are validated through automated tests, double checked through manual validation if needed.", + " If you want additional validation by a second person, you can ask reviewers to do it. Describe how to set up an environment for manual tests in the PR description. Manual validation is expected to happen on every commit before merge.", + " Any manual validation step should then map to an automated test. Manual validation should not substitute automation, minus exceptions not supported by test tooling yet.", + "- 'qa/rc-required' if your PR changes require validation on the Release Candidate. Examples are changes that need workloads that we cannot emulate, or changes that require validation on prod during RC deployment", + "", + "See https://datadoghq.atlassian.net/wiki/spaces/agent/pages/3341649081/QA+Best+Practices for more details.", + ] + ) + if len(qa_labels) == 0: + raise Exit(f"No QA label set.\n{docs}", code=1) + if len(qa_labels) > 1: + raise Exit(f"More than one QA label set.\n{docs}", code=1) + print("QA label set correctly") diff --git a/tasks/unit_tests/github_tasks_tests.py b/tasks/unit_tests/github_tasks_tests.py index d72fd769d7dd3..650391207238a 100644 --- a/tasks/unit_tests/github_tasks_tests.py +++ b/tasks/unit_tests/github_tasks_tests.py @@ -7,7 +7,13 @@ from invoke.context import Context import tasks -from tasks.github_tasks import Exit, assign_team_label, extract_test_qa_description, pr_merge_dd_event_sender +from tasks.github_tasks import ( + Exit, + assign_team_label, + check_qa_labels, + extract_test_qa_description, + pr_merge_dd_event_sender, +) class GithubAPIMock: @@ -136,7 +142,7 @@ class TestExtractBodyCase: ### Motivation -### Describe how to test/QA your changes +### Describe how you validated your changes I added one test ### Possible Drawbacks / Trade-offs @@ -150,7 +156,7 @@ class TestExtractBodyCase: ### Motivation -### Describe how to test/QA your changes +### Describe how you validated your changes I added one unit test and one e2e test ### Possible Drawbacks / Trade-offs @@ -166,7 +172,7 @@ class TestExtractBodyCase: ### Motivation -### Describe how to test/QA your changes +### Describe how you validated your changes ### Possible Drawbacks / Trade-offs @@ -180,7 +186,7 @@ class TestExtractBodyCase: ### Motivation -### Describe how to test/QA your changes +### Describe how you validated your changes Here is a test description @@ -220,7 +226,7 @@ class TestExtractBodyCase: ### Motivation -### Describe how to test/QA your changes +### Describe how you validated your changes Here is a test description with special characters: `~!@#$,%^&*()_-+={[]}|\\:;\"'<>.?/ @@ -248,7 +254,7 @@ class TestExtractBodyCase: ### Motivation -### Describe how to test/QA your changes +### Describe how you validated your changes Here is how to test this PR """, expected="Here is how to test this PR", @@ -285,7 +291,7 @@ class TestSendPRMergeEventCase: number=123, login="testuser", body=""" -### Describe how to test/QA your changes +### Describe how you validated your changes This is covered by unit tests ### Possible Drawbacks / Trade-offs""", ref="main", @@ -319,7 +325,7 @@ class TestSendPRMergeEventCase: number=123, login="testuser", body=""" -### Describe how to test/QA your changes +### Describe how you validated your changes ### Possible Drawbacks / Trade-offs""", ref="main", @@ -341,7 +347,7 @@ class TestSendPRMergeEventCase: number=123, login="testuser", body=""" -### Describe how to test/QA your changes +### Describe how you validated your changes You should do #### Step 1 Create an ubuntu VM @@ -408,7 +414,6 @@ class TestSendPRMergeEventCase: send_event_mock.return_value = None - # with self.assertRaises(Exit) as exit_mock: try: pr_merge_dd_event_sender(Context(), pr_id=tc.number, dry_run=tc.dry_run) except Exit as exception: @@ -423,3 +428,39 @@ class TestSendPRMergeEventCase: self.fail(f"Test case: {tc.name} should have raised an error") send_event_mock.assert_called_once_with(title="PR merged", text=tc.expected_text, tags=tc.expected_tags) + + +class TestCheckQALabels(unittest.TestCase): + def test_check_qa_labels(self): + @dataclass + class TestCheckQALabelsCase: + name: str + labels: list[str] + expected_error: str = None + + testcases: list[TestCheckQALabelsCase] = [ + TestCheckQALabelsCase( + name="No QA labels", + labels="team/team-a", + expected_error="No QA label set.", + ), + TestCheckQALabelsCase( + name="Multiple labels", + labels="qa/done qa/no-code-change team/team-b", + expected_error="More than one QA label set.", + ), + TestCheckQALabelsCase( + name="Single label", + labels="qa/done team/team-a changelog/yes", + ), + ] + + for tc in testcases: + try: + check_qa_labels(Context(), tc.labels) + except Exit as exception: + if tc.expected_error: + self.assertEqual(exception.code, 1, f"Test case: {tc.name}") + self.assertEqual(exception.message.split("\n")[0], tc.expected_error, f"Test case: {tc.name}") + continue + self.fail(f"Test case: {tc.name} should not have raised an error") From 0399385a21a07949d3b1f31b5971e6c1bfece4cc Mon Sep 17 00:00:00 2001 From: Guillaume Pagnoux Date: Mon, 2 Dec 2024 12:42:21 +0100 Subject: [PATCH 191/439] USM: tests: add test helper to get empty config (#31567) --- pkg/network/usm/compile_test.go | 4 +- pkg/network/usm/ebpf_ssl_test.go | 3 +- pkg/network/usm/istio_test.go | 4 +- pkg/network/usm/kafka_monitor_test.go | 10 ++--- pkg/network/usm/monitor_test.go | 35 ++++++++++++----- pkg/network/usm/monitor_tls_test.go | 38 +++++++++---------- pkg/network/usm/postgres_monitor_test.go | 4 +- .../usm/sharedlibraries/watcher_test.go | 15 ++++---- .../usm/tests/tracer_usm_linux_test.go | 8 +++- pkg/network/usm/usm_grpc_monitor_test.go | 5 +-- pkg/network/usm/utils/testutils.go | 23 ++++++++++- 11 files changed, 91 insertions(+), 58 deletions(-) diff --git a/pkg/network/usm/compile_test.go b/pkg/network/usm/compile_test.go index e15ec250797b7..02cbe64026eda 100644 --- a/pkg/network/usm/compile_test.go +++ b/pkg/network/usm/compile_test.go @@ -13,8 +13,8 @@ import ( "github.com/stretchr/testify/require" "github.com/DataDog/datadog-agent/pkg/ebpf/ebpftest" - "github.com/DataDog/datadog-agent/pkg/network/config" usmconfig "github.com/DataDog/datadog-agent/pkg/network/usm/config" + "github.com/DataDog/datadog-agent/pkg/network/usm/utils" "github.com/DataDog/datadog-agent/pkg/util/kernel" ) @@ -25,7 +25,7 @@ func TestHttpCompile(t *testing.T) { if currKernelVersion < usmconfig.MinimumKernelVersion { t.Skip("USM Runtime compilation not supported on this kernel version") } - cfg := config.New() + cfg := utils.NewUSMEmptyConfig() cfg.BPFDebug = true out, err := getRuntimeCompiledUSM(cfg) require.NoError(t, err) diff --git a/pkg/network/usm/ebpf_ssl_test.go b/pkg/network/usm/ebpf_ssl_test.go index f94dde8fb3110..2e3ef3043d00d 100644 --- a/pkg/network/usm/ebpf_ssl_test.go +++ b/pkg/network/usm/ebpf_ssl_test.go @@ -16,7 +16,6 @@ import ( "github.com/stretchr/testify/require" - "github.com/DataDog/datadog-agent/pkg/network/config" "github.com/DataDog/datadog-agent/pkg/network/protocols/http/testutil" usmconfig "github.com/DataDog/datadog-agent/pkg/network/usm/config" "github.com/DataDog/datadog-agent/pkg/network/usm/consts" @@ -25,7 +24,7 @@ import ( ) func testArch(t *testing.T, arch string) { - cfg := config.New() + cfg := utils.NewUSMEmptyConfig() cfg.EnableNativeTLSMonitoring = true if !usmconfig.TLSSupported(cfg) { diff --git a/pkg/network/usm/istio_test.go b/pkg/network/usm/istio_test.go index e61c3372ccc77..73efaf1a4ef4b 100644 --- a/pkg/network/usm/istio_test.go +++ b/pkg/network/usm/istio_test.go @@ -38,7 +38,7 @@ func TestGetEnvoyPath(t *testing.T) { } func TestGetEnvoyPathWithConfig(t *testing.T) { - cfg := config.New() + cfg := utils.NewUSMEmptyConfig() cfg.EnableIstioMonitoring = true cfg.EnvoyPath = "/test/envoy" monitor := newIstioTestMonitorWithCFG(t, cfg) @@ -100,7 +100,7 @@ func createFakeProcess(t *testing.T, processName string) (procRoot string, pid i } func newIstioTestMonitor(t *testing.T) *istioMonitor { - cfg := config.New() + cfg := utils.NewUSMEmptyConfig() cfg.EnableIstioMonitoring = true return newIstioTestMonitorWithCFG(t, cfg) diff --git a/pkg/network/usm/kafka_monitor_test.go b/pkg/network/usm/kafka_monitor_test.go index 52177ad873c24..645db1e3bc064 100644 --- a/pkg/network/usm/kafka_monitor_test.go +++ b/pkg/network/usm/kafka_monitor_test.go @@ -168,7 +168,7 @@ func (s *KafkaProtocolParsingSuite) TestKafkaProtocolParsing() { for mode, name := range map[bool]string{false: "without TLS", true: "with TLS"} { t.Run(name, func(t *testing.T) { - if mode && !gotlsutils.GoTLSSupported(t, config.New()) { + if mode && !gotlsutils.GoTLSSupported(t, utils.NewUSMEmptyConfig()) { t.Skip("GoTLS not supported for this setup") } if mode && isUnsupportedUbuntu(t) { @@ -1265,7 +1265,7 @@ func (s *KafkaProtocolParsingSuite) TestKafkaFetchRaw() { }) t.Run("with TLS", func(t *testing.T) { - if !gotlsutils.GoTLSSupported(t, config.New()) { + if !gotlsutils.GoTLSSupported(t, utils.NewUSMEmptyConfig()) { t.Skip("GoTLS not supported for this setup") } if isUnsupportedUbuntu(t) { @@ -1494,7 +1494,7 @@ func (s *KafkaProtocolParsingSuite) TestKafkaProduceRaw() { }) t.Run("with TLS", func(t *testing.T) { - if !gotlsutils.GoTLSSupported(t, config.New()) { + if !gotlsutils.GoTLSSupported(t, utils.NewUSMEmptyConfig()) { t.Skip("GoTLS not supported for this setup") } if isUnsupportedUbuntu(t) { @@ -1619,7 +1619,7 @@ func getAndValidateKafkaStatsWithErrorCodes(t *testing.T, monitor *Monitor, expe } func getDefaultTestConfiguration(tls bool) *config.Config { - cfg := config.New() + cfg := utils.NewUSMEmptyConfig() cfg.EnableKafkaMonitoring = true cfg.MaxTrackedConnections = 1000 cfg.EnableGoTLSSupport = tls @@ -1723,7 +1723,7 @@ func TestLoadKafkaBinary(t *testing.T) { } func loadKafkaBinary(t *testing.T, debug bool) { - cfg := config.New() + cfg := utils.NewUSMEmptyConfig() // We don't have a way of enabling kafka without http at the moment cfg.EnableGoTLSSupport = false cfg.EnableKafkaMonitoring = true diff --git a/pkg/network/usm/monitor_test.go b/pkg/network/usm/monitor_test.go index 014511d786ad6..402243c2562d1 100644 --- a/pkg/network/usm/monitor_test.go +++ b/pkg/network/usm/monitor_test.go @@ -39,6 +39,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/network/protocols/http/testutil" libtelemetry "github.com/DataDog/datadog-agent/pkg/network/protocols/telemetry" usmconfig "github.com/DataDog/datadog-agent/pkg/network/usm/config" + "github.com/DataDog/datadog-agent/pkg/network/usm/utils" "github.com/DataDog/datadog-agent/pkg/util/kernel" "github.com/DataDog/datadog-agent/pkg/util/log" ) @@ -80,10 +81,8 @@ func TestMonitorProtocolFail(t *testing.T) { // Replace the HTTP protocol with a Mock patchProtocolMock(t, tt.spec) - cfg := config.New() - cfg.EnableGoTLSSupport = false + cfg := utils.NewUSMEmptyConfig() cfg.EnableHTTPMonitoring = true - cfg.EnableIstioMonitoring = false monitor, err := NewMonitor(cfg, nil) skipIfNotSupported(t, err) @@ -123,7 +122,7 @@ func (s *HTTPTestSuite) TestHTTPStats() { }) t.Cleanup(srvDoneFn) - monitor := newHTTPMonitorWithCfg(t, config.New()) + monitor := newHTTPMonitorWithCfg(t, utils.NewUSMEmptyConfig()) resp, err := nethttp.Get(fmt.Sprintf("http://%s/%d/test", serverAddr, nethttp.StatusNoContent)) require.NoError(t, err) @@ -155,7 +154,7 @@ func (s *HTTPTestSuite) TestHTTPMonitorLoadWithIncompleteBuffers() { slowServerAddr := "localhost:8080" fastServerAddr := "localhost:8081" - monitor := newHTTPMonitorWithCfg(t, config.New()) + monitor := newHTTPMonitorWithCfg(t, utils.NewUSMEmptyConfig()) slowSrvDoneFn := testutil.HTTPServer(t, slowServerAddr, testutil.Options{ SlowResponse: time.Millisecond * 500, // Half a second. WriteTimeout: time.Millisecond * 200, @@ -230,7 +229,7 @@ func (s *HTTPTestSuite) TestHTTPMonitorIntegrationWithResponseBody() { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - monitor := newHTTPMonitorWithCfg(t, config.New()) + monitor := newHTTPMonitorWithCfg(t, utils.NewUSMEmptyConfig()) srvDoneFn := testutil.HTTPServer(t, serverAddr, testutil.Options{ EnableKeepAlive: true, }) @@ -286,7 +285,7 @@ func (s *HTTPTestSuite) TestHTTPMonitorIntegrationSlowResponse() { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - cfg := config.New() + cfg := utils.NewUSMEmptyConfig() cfg.HTTPMapCleanerInterval = time.Duration(tt.mapCleanerIntervalSeconds) * time.Second cfg.HTTPIdleConnectionTTL = time.Duration(tt.httpIdleConnectionTTLSeconds) * time.Second monitor := newHTTPMonitorWithCfg(t, cfg) @@ -353,7 +352,7 @@ func (s *HTTPTestSuite) TestSanity() { t.Run(tt.name, func(t *testing.T) { for _, keepAliveEnabled := range []bool{true, false} { t.Run(testNameHelper("with keep alive", "without keep alive", keepAliveEnabled), func(t *testing.T) { - monitor := newHTTPMonitorWithCfg(t, config.New()) + monitor := newHTTPMonitorWithCfg(t, utils.NewUSMEmptyConfig()) srvDoneFn := testutil.HTTPServer(t, tt.serverAddress, testutil.Options{EnableKeepAlive: keepAliveEnabled}) t.Cleanup(srvDoneFn) @@ -379,7 +378,7 @@ func (s *HTTPTestSuite) TestSanity() { func (s *HTTPTestSuite) TestRSTPacketRegression() { t := s.T() - monitor := newHTTPMonitorWithCfg(t, config.New()) + monitor := newHTTPMonitorWithCfg(t, utils.NewUSMEmptyConfig()) serverAddr := "127.0.0.1:8080" srvDoneFn := testutil.HTTPServer(t, serverAddr, testutil.Options{ @@ -414,7 +413,7 @@ func (s *HTTPTestSuite) TestRSTPacketRegression() { func (s *HTTPTestSuite) TestKeepAliveWithIncompleteResponseRegression() { t := s.T() - monitor := newHTTPMonitorWithCfg(t, config.New()) + monitor := newHTTPMonitorWithCfg(t, utils.NewUSMEmptyConfig()) const req = "GET /200/foobar HTTP/1.1\n" const rsp = "HTTP/1.1 200 OK\n" @@ -474,6 +473,22 @@ func (s *HTTPTestSuite) TestKeepAliveWithIncompleteResponseRegression() { assertAllRequestsExists(t, monitor, []*nethttp.Request{{URL: url, Method: "GET"}}) } +// TestEmptyConfig checks the test helper indeed returns a config with no +// protocols enable, by checking it prevents USM from running. +// If this test fails after enabling a protocol by default, you MUST NOT change +// this test, and instead update `NewUSMEmptyConfig` to make sure it disables the +// new protocol. +func TestEmptyConfig(t *testing.T) { + cfg := utils.NewUSMEmptyConfig() + require.True(t, cfg.ServiceMonitoringEnabled) + + // The monitor should not start, and not return an error when no protocols + // are enabled. + monitor, err := NewMonitor(cfg, nil) + require.Nil(t, monitor) + require.NoError(t, err) +} + func assertAllRequestsExists(t *testing.T, monitor *Monitor, requests []*nethttp.Request) { requestsExist := make([]bool, len(requests)) diff --git a/pkg/network/usm/monitor_tls_test.go b/pkg/network/usm/monitor_tls_test.go index c7553370b7c7b..a4fd5924bd630 100644 --- a/pkg/network/usm/monitor_tls_test.go +++ b/pkg/network/usm/monitor_tls_test.go @@ -59,7 +59,7 @@ func TestTLSSuite(t *testing.T) { modes = append(modes, ebpftest.Prebuilt) } ebpftest.TestBuildModes(t, modes, "", func(t *testing.T) { - if !usmconfig.TLSSupported(config.New()) { + if !usmconfig.TLSSupported(utils.NewUSMEmptyConfig()) { t.Skip("TLS not supported for this setup") } suite.Run(t, new(tlsSuite)) @@ -69,8 +69,7 @@ func TestTLSSuite(t *testing.T) { func (s *tlsSuite) TestHTTPSViaLibraryIntegration() { t := s.T() - cfg := config.New() - cfg.EnableGoTLSSupport = false + cfg := utils.NewUSMEmptyConfig() cfg.EnableHTTPMonitoring = true cfg.EnableNativeTLSMonitoring = true /* enable protocol classification : TLS */ @@ -287,8 +286,7 @@ func prefetchLib(t *testing.T, filenames ...string) *exec.Cmd { func (s *tlsSuite) TestOpenSSLVersions() { t := s.T() - cfg := config.New() - cfg.EnableGoTLSSupport = false + cfg := utils.NewUSMEmptyConfig() cfg.EnableNativeTLSMonitoring = true cfg.EnableHTTPMonitoring = true usmMonitor := setupUSMTLSMonitor(t, cfg) @@ -347,8 +345,7 @@ func (s *tlsSuite) TestOpenSSLVersions() { func (s *tlsSuite) TestOpenSSLVersionsSlowStart() { t := s.T() - cfg := config.New() - cfg.EnableGoTLSSupport = false + cfg := utils.NewUSMEmptyConfig() cfg.EnableNativeTLSMonitoring = true cfg.EnableHTTPMonitoring = true @@ -476,15 +473,15 @@ func TestHTTPGoTLSAttachProbes(t *testing.T) { modes := []ebpftest.BuildMode{ebpftest.RuntimeCompiled, ebpftest.CORE} ebpftest.TestBuildModes(t, modes, "", func(t *testing.T) { - if !gotlstestutil.GoTLSSupported(t, config.New()) { + if !gotlstestutil.GoTLSSupported(t, utils.NewUSMEmptyConfig()) { t.Skip("GoTLS not supported for this setup") } t.Run("new process", func(t *testing.T) { - testHTTPGoTLSCaptureNewProcess(t, config.New(), false) + testHTTPGoTLSCaptureNewProcess(t, utils.NewUSMEmptyConfig(), false) }) t.Run("already running process", func(t *testing.T) { - testHTTPGoTLSCaptureAlreadyRunning(t, config.New(), false) + testHTTPGoTLSCaptureAlreadyRunning(t, utils.NewUSMEmptyConfig(), false) }) }) } @@ -511,13 +508,13 @@ func testHTTP2GoTLSAttachProbes(t *testing.T, cfg *config.Config) { func TestHTTP2GoTLSAttachProbes(t *testing.T) { t.Run("netlink", func(tt *testing.T) { - cfg := config.New() + cfg := utils.NewUSMEmptyConfig() cfg.EnableUSMEventStream = false testHTTP2GoTLSAttachProbes(tt, cfg) }) t.Run("event stream", func(tt *testing.T) { - cfg := config.New() + cfg := utils.NewUSMEmptyConfig() cfg.EnableUSMEventStream = true testHTTP2GoTLSAttachProbes(tt, cfg) }) @@ -527,15 +524,15 @@ func TestHTTPSGoTLSAttachProbesOnContainer(t *testing.T) { t.Skip("Skipping a flaky test") modes := []ebpftest.BuildMode{ebpftest.RuntimeCompiled, ebpftest.CORE} ebpftest.TestBuildModes(t, modes, "", func(t *testing.T) { - if !gotlstestutil.GoTLSSupported(t, config.New()) { + if !gotlstestutil.GoTLSSupported(t, utils.NewUSMEmptyConfig()) { t.Skip("GoTLS not supported for this setup") } t.Run("new process", func(t *testing.T) { - testHTTPSGoTLSCaptureNewProcessContainer(t, config.New()) + testHTTPSGoTLSCaptureNewProcessContainer(t, utils.NewUSMEmptyConfig()) }) t.Run("already running process", func(t *testing.T) { - testHTTPSGoTLSCaptureAlreadyRunningContainer(t, config.New()) + testHTTPSGoTLSCaptureAlreadyRunningContainer(t, utils.NewUSMEmptyConfig()) }) }) } @@ -545,7 +542,7 @@ func TestOldConnectionRegression(t *testing.T) { modes := []ebpftest.BuildMode{ebpftest.RuntimeCompiled, ebpftest.CORE} ebpftest.TestBuildModes(t, modes, "", func(t *testing.T) { - if !gotlstestutil.GoTLSSupported(t, config.New()) { + if !gotlstestutil.GoTLSSupported(t, utils.NewUSMEmptyConfig()) { t.Skip("GoTLS not supported for this setup") } @@ -567,7 +564,7 @@ func TestOldConnectionRegression(t *testing.T) { defer conn.Close() // Start USM monitor - cfg := config.New() + cfg := utils.NewUSMEmptyConfig() cfg.EnableHTTPMonitoring = true cfg.EnableGoTLSSupport = true cfg.GoTLSExcludeSelf = false @@ -620,7 +617,7 @@ func TestOldConnectionRegression(t *testing.T) { func TestLimitListenerRegression(t *testing.T) { modes := []ebpftest.BuildMode{ebpftest.RuntimeCompiled, ebpftest.CORE} ebpftest.TestBuildModes(t, modes, "", func(t *testing.T) { - if !gotlstestutil.GoTLSSupported(t, config.New()) { + if !gotlstestutil.GoTLSSupported(t, utils.NewUSMEmptyConfig()) { t.Skip("GoTLS not supported for this setup") } @@ -634,7 +631,7 @@ func TestLimitListenerRegression(t *testing.T) { t.Cleanup(closeServer) // Start USM monitor - cfg := config.New() + cfg := utils.NewUSMEmptyConfig() cfg.EnableHTTPMonitoring = true cfg.EnableGoTLSSupport = true cfg.GoTLSExcludeSelf = false @@ -907,8 +904,7 @@ func (s *tlsSuite) TestNodeJSTLS() { nodeJSPID, err := nodejs.GetNodeJSDockerPID() require.NoError(t, err) - cfg := config.New() - cfg.EnableGoTLSSupport = false + cfg := utils.NewUSMEmptyConfig() cfg.EnableHTTPMonitoring = true cfg.EnableNodeJSMonitoring = true diff --git a/pkg/network/usm/postgres_monitor_test.go b/pkg/network/usm/postgres_monitor_test.go index 9243756cfe76c..76c616beff5bd 100644 --- a/pkg/network/usm/postgres_monitor_test.go +++ b/pkg/network/usm/postgres_monitor_test.go @@ -144,7 +144,7 @@ func (s *postgresProtocolParsingSuite) TestDecoding() { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if tt.isTLS && !gotlstestutil.GoTLSSupported(t, config.New()) { + if tt.isTLS && !gotlstestutil.GoTLSSupported(t, utils.NewUSMEmptyConfig()) { t.Skip("GoTLS not supported for this setup") } testDecoding(t, tt.isTLS) @@ -762,7 +762,7 @@ func (s *postgresProtocolParsingSuite) TestCleanupEBPFEntriesOnTermination() { } func getPostgresDefaultTestConfiguration(enableTLS bool) *config.Config { - cfg := config.New() + cfg := utils.NewUSMEmptyConfig() cfg.EnablePostgresMonitoring = true cfg.MaxTrackedConnections = 1000 cfg.EnableGoTLSSupport = enableTLS diff --git a/pkg/network/usm/sharedlibraries/watcher_test.go b/pkg/network/usm/sharedlibraries/watcher_test.go index deb27b067b673..ec8eddb5f8edf 100644 --- a/pkg/network/usm/sharedlibraries/watcher_test.go +++ b/pkg/network/usm/sharedlibraries/watcher_test.go @@ -28,7 +28,6 @@ import ( "github.com/DataDog/datadog-agent/pkg/ebpf/ebpftest" "github.com/DataDog/datadog-agent/pkg/ebpf/prebuilt" eventmonitortestutil "github.com/DataDog/datadog-agent/pkg/eventmonitor/testutil" - "github.com/DataDog/datadog-agent/pkg/network/config" usmconfig "github.com/DataDog/datadog-agent/pkg/network/usm/config" fileopener "github.com/DataDog/datadog-agent/pkg/network/usm/sharedlibraries/testutil" "github.com/DataDog/datadog-agent/pkg/network/usm/utils" @@ -52,7 +51,7 @@ type SharedLibrarySuite struct { } func TestSharedLibrary(t *testing.T) { - if !usmconfig.TLSSupported(config.New()) { + if !usmconfig.TLSSupported(utils.NewUSMEmptyConfig()) { t.Skip("shared library tracing not supported for this platform") } @@ -81,7 +80,7 @@ func (s *SharedLibrarySuite) TestSharedLibraryDetection() { registerRecorder := new(utils.CallbackRecorder) unregisterRecorder := new(utils.CallbackRecorder) - watcher, err := NewWatcher(config.New(), LibsetCrypto, + watcher, err := NewWatcher(utils.NewUSMEmptyConfig(), LibsetCrypto, Rule{ Re: regexp.MustCompile(`foo-libssl.so`), RegisterCB: registerRecorder.Callback(), @@ -138,7 +137,7 @@ func (s *SharedLibrarySuite) TestSharedLibraryDetectionWithPIDAndRootNamespace() return nil } - watcher, err := NewWatcher(config.New(), LibsetCrypto, + watcher, err := NewWatcher(utils.NewUSMEmptyConfig(), LibsetCrypto, Rule{ Re: regexp.MustCompile(`fooroot-crypto.so`), RegisterCB: callback, @@ -186,7 +185,7 @@ func (s *SharedLibrarySuite) TestSameInodeRegression() { registerRecorder := new(utils.CallbackRecorder) unregisterRecorder := new(utils.CallbackRecorder) - watcher, err := NewWatcher(config.New(), LibsetCrypto, + watcher, err := NewWatcher(utils.NewUSMEmptyConfig(), LibsetCrypto, Rule{ Re: regexp.MustCompile(`foo-libssl.so`), RegisterCB: registerRecorder.Callback(), @@ -227,7 +226,7 @@ func (s *SharedLibrarySuite) TestSoWatcherLeaks() { registerCB := registerRecorder.Callback() unregisterCB := unregisterRecorder.Callback() - watcher, err := NewWatcher(config.New(), LibsetCrypto, + watcher, err := NewWatcher(utils.NewUSMEmptyConfig(), LibsetCrypto, Rule{ Re: regexp.MustCompile(`foo-libssl.so`), RegisterCB: registerCB, @@ -293,7 +292,7 @@ func (s *SharedLibrarySuite) TestSoWatcherProcessAlreadyHoldingReferences() { registerCB := registerRecorder.Callback() unregisterCB := unregisterRecorder.Callback() - watcher, err := NewWatcher(config.New(), LibsetCrypto, + watcher, err := NewWatcher(utils.NewUSMEmptyConfig(), LibsetCrypto, Rule{ Re: regexp.MustCompile(`foo-libssl.so`), RegisterCB: registerCB, @@ -363,7 +362,7 @@ func createTempTestFile(t *testing.T, name string) (string, utils.PathIdentifier } func BenchmarkScanSOWatcherNew(b *testing.B) { - w, _ := NewWatcher(config.New(), LibsetCrypto, + w, _ := NewWatcher(utils.NewUSMEmptyConfig(), LibsetCrypto, Rule{ Re: regexp.MustCompile(`libssl.so`), }, diff --git a/pkg/network/usm/tests/tracer_usm_linux_test.go b/pkg/network/usm/tests/tracer_usm_linux_test.go index 551bf8e9650a7..9187bfbde28b5 100644 --- a/pkg/network/usm/tests/tracer_usm_linux_test.go +++ b/pkg/network/usm/tests/tracer_usm_linux_test.go @@ -119,7 +119,7 @@ func skipIfUsingNAT(t *testing.T, ctx testContext) { // skipIfGoTLSNotSupported skips the test if GoTLS is not supported. func skipIfGoTLSNotSupported(t *testing.T, _ testContext) { - if !gotlstestutil.GoTLSSupported(t, config.New()) { + if !gotlstestutil.GoTLSSupported(t, utils.NewUSMEmptyConfig()) { t.Skip("GoTLS is not supported") } } @@ -685,7 +685,11 @@ func testHTTPSClassification(t *testing.T, tr *tracer.Tracer, clientHost, target } func TestFullMonitorWithTracer(t *testing.T) { - cfg := config.New() + if !httpSupported() { + t.Skip("USM is not supported") + } + + cfg := utils.NewUSMEmptyConfig() cfg.EnableHTTPMonitoring = true cfg.EnableHTTP2Monitoring = true cfg.EnableKafkaMonitoring = true diff --git a/pkg/network/usm/usm_grpc_monitor_test.go b/pkg/network/usm/usm_grpc_monitor_test.go index f597935aeecad..bfc6833bf897d 100644 --- a/pkg/network/usm/usm_grpc_monitor_test.go +++ b/pkg/network/usm/usm_grpc_monitor_test.go @@ -78,7 +78,7 @@ func TestGRPCScenarios(t *testing.T) { }, } { t.Run(tc.name, func(t *testing.T) { - if tc.isTLS && !gotlsutils.GoTLSSupported(t, config.New()) { + if tc.isTLS && !gotlsutils.GoTLSSupported(t, utils.NewUSMEmptyConfig()) { t.Skip("GoTLS not supported for this setup") } suite.Run(t, &usmGRPCSuite{isTLS: tc.isTLS}) @@ -105,8 +105,7 @@ func getGRPCClientsArray(t *testing.T, size int, withTLS bool) ([]*grpc.Client, } func (s *usmGRPCSuite) getConfig() *config.Config { - cfg := config.New() - cfg.EnableIstioMonitoring = false + cfg := utils.NewUSMEmptyConfig() cfg.EnableHTTP2Monitoring = true cfg.EnableGoTLSSupport = s.isTLS cfg.GoTLSExcludeSelf = s.isTLS diff --git a/pkg/network/usm/utils/testutils.go b/pkg/network/usm/utils/testutils.go index 9622c0486a999..2b9f2d19a126e 100644 --- a/pkg/network/usm/utils/testutils.go +++ b/pkg/network/usm/utils/testutils.go @@ -7,7 +7,11 @@ package utils -import "sync" +import ( + "sync" + + "github.com/DataDog/datadog-agent/pkg/network/config" +) // CallbackRecorder is meant to assist with *testing* the `FileRegistry` code // as well as code interacting with it such as `sharedlibraries.Watcher`. @@ -56,3 +60,20 @@ func (r *CallbackRecorder) TotalCalls() int { } return total } + +// NewUSMEmptyConfig creates a new network config, with every USM protocols disabled. +func NewUSMEmptyConfig() *config.Config { + cfg := config.New() + cfg.ServiceMonitoringEnabled = true + cfg.EnableHTTPMonitoring = false + cfg.EnableHTTP2Monitoring = false + cfg.EnableKafkaMonitoring = false + cfg.EnablePostgresMonitoring = false + cfg.EnableRedisMonitoring = false + cfg.EnableNativeTLSMonitoring = false + cfg.EnableIstioMonitoring = false + cfg.EnableNodeJSMonitoring = false + cfg.EnableGoTLSSupport = false + + return cfg +} From 9f01de8ff5eaab4861c0188ec97c1e8b6f18fdd6 Mon Sep 17 00:00:00 2001 From: Carlos Date: Mon, 2 Dec 2024 12:19:25 +0000 Subject: [PATCH 192/439] Add a basic e2e test JMXFetch (#31320) --- .gitlab/e2e/e2e.yml | 1 + .../pkg/utils/e2e/client/agent_commands.go | 9 ++ .../pkg/utils/e2e/client/agentclient/agent.go | 3 + .../tests/agent-metrics-logs/jmxfetch/docs.go | 7 + .../jmxfetch/jmxfetch_nix_test.go | 137 ++++++++++++++++++ .../jmxfetch/testdata/docker-labels.yaml | 43 ++++++ 6 files changed, 200 insertions(+) create mode 100644 test/new-e2e/tests/agent-metrics-logs/jmxfetch/docs.go create mode 100644 test/new-e2e/tests/agent-metrics-logs/jmxfetch/jmxfetch_nix_test.go create mode 100644 test/new-e2e/tests/agent-metrics-logs/jmxfetch/testdata/docker-labels.yaml diff --git a/.gitlab/e2e/e2e.yml b/.gitlab/e2e/e2e.yml index 8a6869cae5baa..6a6f1914cac0e 100644 --- a/.gitlab/e2e/e2e.yml +++ b/.gitlab/e2e/e2e.yml @@ -277,6 +277,7 @@ new-e2e-aml: - deploy_deb_testing-a7_x64 - deploy_windows_testing-a7 - qa_agent + - qa_agent_jmx - qa_dca rules: - !reference [.on_aml_or_e2e_changes] diff --git a/test/new-e2e/pkg/utils/e2e/client/agent_commands.go b/test/new-e2e/pkg/utils/e2e/client/agent_commands.go index d20813afe89b2..c812050d986c0 100644 --- a/test/new-e2e/pkg/utils/e2e/client/agent_commands.go +++ b/test/new-e2e/pkg/utils/e2e/client/agent_commands.go @@ -175,6 +175,15 @@ func (agent *agentCommandRunner) StatusWithError(commandArgs ...agentclient.Agen }, err } +// JMX run the jmx command and returns a Status struct and error +func (agent *agentCommandRunner) JMX(commandArgs ...agentclient.AgentArgsOption) (*agentclient.Status, error) { + status, err := agent.executeCommandWithError("jmx", commandArgs...) + + return &agentclient.Status{ + Content: status, + }, err +} + // waitForReadyTimeout blocks up to timeout waiting for agent to be ready. // Retries every 100 ms up to timeout. // Returns error on failure. diff --git a/test/new-e2e/pkg/utils/e2e/client/agentclient/agent.go b/test/new-e2e/pkg/utils/e2e/client/agentclient/agent.go index d6f94f9c3222f..e3a3f11bd6219 100644 --- a/test/new-e2e/pkg/utils/e2e/client/agentclient/agent.go +++ b/test/new-e2e/pkg/utils/e2e/client/agentclient/agent.go @@ -59,6 +59,9 @@ type Agent interface { // StatusWithError runs status command and returns a Status struct and error StatusWithError(commandArgs ...AgentArgsOption) (*Status, error) + + // JMX run the jmx command and returns a Status struct and error + JMX(commandArgs ...AgentArgsOption) (*Status, error) } // Status contains the Agent status content diff --git a/test/new-e2e/tests/agent-metrics-logs/jmxfetch/docs.go b/test/new-e2e/tests/agent-metrics-logs/jmxfetch/docs.go new file mode 100644 index 0000000000000..1005b5a84b028 --- /dev/null +++ b/test/new-e2e/tests/agent-metrics-logs/jmxfetch/docs.go @@ -0,0 +1,7 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package jmxfetch contains e2e tests for the JMXFetch. +package jmxfetch diff --git a/test/new-e2e/tests/agent-metrics-logs/jmxfetch/jmxfetch_nix_test.go b/test/new-e2e/tests/agent-metrics-logs/jmxfetch/jmxfetch_nix_test.go new file mode 100644 index 0000000000000..c8f573f95307d --- /dev/null +++ b/test/new-e2e/tests/agent-metrics-logs/jmxfetch/jmxfetch_nix_test.go @@ -0,0 +1,137 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package jmxfetch + +import ( + _ "embed" + "strings" + "testing" + "time" + + "github.com/DataDog/datadog-agent/test/fakeintake/client" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments" + awsdocker "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments/aws/docker" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/utils/e2e/client/agentclient" + + "github.com/DataDog/test-infra-definitions/components/datadog/apps/jmxfetch" + "github.com/DataDog/test-infra-definitions/components/datadog/dockeragentparams" + "github.com/DataDog/test-infra-definitions/components/docker" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +//go:embed testdata/docker-labels.yaml +var jmxFetchADLabels string + +var jmxFetchADLabelsDockerComposeManifest = docker.ComposeInlineManifest{ + Name: "jmx-test-app-labels", + Content: pulumi.String(jmxFetchADLabels), +} + +type jmxfetchNixTest struct { + e2e.BaseSuite[environments.DockerHost] +} + +func TestJMXFetchNix(t *testing.T) { + t.Parallel() + suiteParams := []e2e.SuiteOption{e2e.WithProvisioner( + awsdocker.Provisioner( + awsdocker.WithAgentOptions( + dockeragentparams.WithLogs(), + dockeragentparams.WithJMX(), + dockeragentparams.WithExtraComposeInlineManifest( + jmxfetch.DockerComposeManifest, + jmxFetchADLabelsDockerComposeManifest, + ), + )))} + + e2e.Run(t, + &jmxfetchNixTest{}, + suiteParams..., + ) +} + +func (j *jmxfetchNixTest) Test_FakeIntakeReceivesJMXFetchMetrics() { + metricNames := []string{ + "test.e2e.jmxfetch.counter_100", + "test.e2e.jmxfetch.gauge_200", + "test.e2e.jmxfetch.increment_counter", + } + start := time.Now() + j.EventuallyWithT(func(c *assert.CollectT) { + for _, metricName := range metricNames { + metrics, err := j.Env().FakeIntake.Client(). + FilterMetrics(metricName, client.WithMetricValueHigherThan(0)) + assert.NoError(c, err) + assert.NotEmpty(j.T(), metrics, "no metrics found for", metricName) + } + }, 5*time.Minute, 10*time.Second) + j.T().Logf("Started: %v and took %v", start, time.Since(start)) + + // Helpful debug when things fail + if j.T().Failed() { + names, err := j.Env().FakeIntake.Client().GetMetricNames() + assert.NoError(j.T(), err) + for _, name := range names { + j.T().Logf("Got metric: %q", name) + } + for _, metricName := range metricNames { + tjc, err := j.Env().FakeIntake.Client().FilterMetrics(metricName) + assert.NoError(j.T(), err) + assert.NotEmpty(j.T(), tjc, "Filter metrics was empty for", metricName) + if len(tjc) > 0 { + for _, point := range tjc[0].Points { + j.T().Logf("Found metrics: %q \n%v - %v \n%q", tjc[0].Metric, point, point.Value, tjc[0].Type) + } + } + } + } +} + +func (j *jmxfetchNixTest) TestJMXListCollectedWithRateMetrics() { + status, err := j.Env().Agent.Client.JMX(agentclient.WithArgs([]string{"list", "collected", "with-rate-metrics"})) + require.NoError(j.T(), err) + assert.NotEmpty(j.T(), status.Content) + + lines := strings.Split(status.Content, "\n") + var consoleReporterOut []string + var foundShouldBe100, foundShouldBe200, foundIncrementCounter bool + for _, line := range lines { + if strings.Contains(line, "ConsoleReporter") { + consoleReporterOut = append(consoleReporterOut, line) + if strings.Contains(line, "dd.test.sample:name=default,type=simple") { + if strings.Contains(line, "ShouldBe100") { + foundShouldBe100 = true + } + if strings.Contains(line, "ShouldBe200") { + foundShouldBe200 = true + } + if strings.Contains(line, "IncrementCounter") { + foundIncrementCounter = true + } + } + } + } + + assert.NotEmpty(j.T(), consoleReporterOut, "Did not find ConsoleReporter output in status") + assert.True(j.T(), foundShouldBe100, + "Did not find bean name: dd.test.sample:name=default,type=simple - Attribute name: ShouldBe100 - Attribute type: java.lang.Integer") + assert.True(j.T(), foundShouldBe200, + "Did not find bean name: dd.test.sample:name=default,type=simple - Attribute name: ShouldBe200 - Attribute type: java.lang.Double") + assert.True(j.T(), foundIncrementCounter, + "Did not find bean name: dd.test.sample:name=default,type=simple - Attribute name: IncrementCounter - Attribute type: java.lang.Integer") + + // Helpful debug when things fail + if j.T().Failed() { + for _, line := range consoleReporterOut { + j.T().Log(line) + } + } +} diff --git a/test/new-e2e/tests/agent-metrics-logs/jmxfetch/testdata/docker-labels.yaml b/test/new-e2e/tests/agent-metrics-logs/jmxfetch/testdata/docker-labels.yaml new file mode 100644 index 0000000000000..487a8a3dba6b5 --- /dev/null +++ b/test/new-e2e/tests/agent-metrics-logs/jmxfetch/testdata/docker-labels.yaml @@ -0,0 +1,43 @@ +--- +services: + + jmx-test-app: + labels: + com.datadoghq.ad.checks: | + { + "test": { + "init_config": { + "is_jmx": true, + "collect_default_metrics": true, + "new_gc_metrics": true, + "conf": [ + { + "include": { + "domain": "dd.test.sample", + "type": "simple", + "attribute": { + "ShouldBe100": { + "metric_type": "gauge", + "alias": "test.e2e.jmxfetch.counter_100" + }, + "ShouldBe200": { + "metric_type": "gauge", + "alias": "test.e2e.jmxfetch.gauge_200" + }, + "IncrementCounter": { + "metric_type": "counter", + "alias": "test.e2e.jmxfetch.increment_counter" + } + } + } + } + ] + }, + "instances": [ + { + "host": "%%host%%", + "port": "9010" + } + ] + } + } From c04b9f01c9f1324f58292bcbd5b3d103773b6637 Mon Sep 17 00:00:00 2001 From: David Ortiz Date: Mon, 2 Dec 2024 14:17:45 +0100 Subject: [PATCH 193/439] [tagger/remote] Fix "tagger-list" command (#31647) --- comp/core/tagger/impl-dual/dual.go | 3 +- comp/core/tagger/impl-remote/remote.go | 23 +++++++++-- comp/core/tagger/impl-remote/remote_test.go | 44 +++++++++++++++++++++ 3 files changed, 66 insertions(+), 4 deletions(-) diff --git a/comp/core/tagger/impl-dual/dual.go b/comp/core/tagger/impl-dual/dual.go index 261eeb6a2d942..4f99d713ab4f8 100644 --- a/comp/core/tagger/impl-dual/dual.go +++ b/comp/core/tagger/impl-dual/dual.go @@ -54,7 +54,8 @@ func NewComponent(req Requires) (Provides, error) { return Provides{ local.Provides{ - Comp: provide.Comp, + Comp: provide.Comp, + Endpoint: provide.Endpoint, }, }, nil } diff --git a/comp/core/tagger/impl-remote/remote.go b/comp/core/tagger/impl-remote/remote.go index 111b14fc52895..8bd21920748e9 100644 --- a/comp/core/tagger/impl-remote/remote.go +++ b/comp/core/tagger/impl-remote/remote.go @@ -9,8 +9,10 @@ package remotetaggerimpl import ( "context" "crypto/tls" + "encoding/json" "fmt" "net" + "net/http" "time" "github.com/cenkalti/backoff" @@ -21,6 +23,7 @@ import ( "google.golang.org/grpc/grpclog" "google.golang.org/grpc/metadata" + api "github.com/DataDog/datadog-agent/comp/api/api/def" "github.com/DataDog/datadog-agent/comp/core/config" log "github.com/DataDog/datadog-agent/comp/core/log/def" taggercommon "github.com/DataDog/datadog-agent/comp/core/tagger/common" @@ -35,6 +38,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/tagset" "github.com/DataDog/datadog-agent/pkg/util/common" grpcutil "github.com/DataDog/datadog-agent/pkg/util/grpc" + httputils "github.com/DataDog/datadog-agent/pkg/util/http" ) const ( @@ -59,7 +63,8 @@ type Requires struct { type Provides struct { compdef.Out - Comp tagger.Component + Comp tagger.Component + Endpoint api.AgentEndpointProvider } type remoteTagger struct { @@ -112,11 +117,12 @@ func NewComponent(req Requires) (Provides, error) { }}) return Provides{ - Comp: remoteTagger, + Comp: remoteTagger, + Endpoint: api.NewAgentEndpointProvider(remoteTagger.writeList, "/tagger-list", "GET"), }, nil } -func newRemoteTagger(params tagger.RemoteParams, cfg config.Component, log log.Component, telemetryComp coretelemetry.Component) (tagger.Component, error) { +func newRemoteTagger(params tagger.RemoteParams, cfg config.Component, log log.Component, telemetryComp coretelemetry.Component) (*remoteTagger, error) { telemetryStore := telemetry.NewStore(telemetryComp) target, err := params.RemoteTarget(cfg) @@ -494,6 +500,17 @@ func (t *remoteTagger) startTaggerStream(maxElapsed time.Duration) error { }, expBackoff) } +func (t *remoteTagger) writeList(w http.ResponseWriter, _ *http.Request) { + response := t.List() + + jsonTags, err := json.Marshal(response) + if err != nil { + httputils.SetJSONError(w, t.log.Errorf("Unable to marshal tagger list response: %s", err), 500) + return + } + w.Write(jsonTags) +} + func convertEventType(t pb.EventType) (types.EventType, error) { switch t { case pb.EventType_ADDED: diff --git a/comp/core/tagger/impl-remote/remote_test.go b/comp/core/tagger/impl-remote/remote_test.go index 8d29a965b8a23..48c00d8006bf7 100644 --- a/comp/core/tagger/impl-remote/remote_test.go +++ b/comp/core/tagger/impl-remote/remote_test.go @@ -7,10 +7,14 @@ package remotetaggerimpl import ( "context" + "encoding/json" + "net/http" + "net/http/httptest" "os" "runtime" "testing" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/DataDog/datadog-agent/comp/core/config" @@ -18,6 +22,7 @@ import ( tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/core/tagger/types" nooptelemetry "github.com/DataDog/datadog-agent/comp/core/telemetry/noopsimpl" + compdef "github.com/DataDog/datadog-agent/comp/def" configmock "github.com/DataDog/datadog-agent/pkg/config/mock" "github.com/DataDog/datadog-agent/pkg/util/grpc" ) @@ -72,3 +77,42 @@ func TestStartDoNotBlockIfServerIsNotAvailable(t *testing.T) { require.NoError(t, err) remoteTagger.Stop() } + +func TestNewComponentSetsTaggerListEndpoint(t *testing.T) { + req := Requires{ + Lc: compdef.NewTestLifecycle(t), + Config: configmock.New(t), + Log: logmock.New(t), + Params: tagger.RemoteParams{ + RemoteTarget: func(config.Component) (string, error) { return ":5001", nil }, + RemoteTokenFetcher: func(config.Component) func() (string, error) { + return func() (string, error) { + return "something", nil + } + }, + }, + Telemetry: nooptelemetry.GetCompatComponent(), + } + provides, err := NewComponent(req) + require.NoError(t, err) + + endpointProvider := provides.Endpoint.Provider + + assert.Equal(t, []string{"GET"}, endpointProvider.Methods()) + assert.Equal(t, "/tagger-list", endpointProvider.Route()) + + // Create a test server with the endpoint handler + server := httptest.NewServer(endpointProvider.HandlerFunc()) + defer server.Close() + + // Make a request to the endpoint + resp, err := http.Get(server.URL + "/tagger-list") + require.NoError(t, err) + defer resp.Body.Close() + assert.Equal(t, http.StatusOK, resp.StatusCode) + + var response types.TaggerListResponse + err = json.NewDecoder(resp.Body).Decode(&response) + require.NoError(t, err) + assert.NotNil(t, response.Entities) +} From 407d3f8b0b2fbb274d0552834524f55404273070 Mon Sep 17 00:00:00 2001 From: val06 Date: Mon, 2 Dec 2024 15:47:20 +0200 Subject: [PATCH 194/439] [EBPF] fix flaky gpu-module test (#31645) --- pkg/gpu/probe_test.go | 53 ++++-------- pkg/gpu/testdata/cudasample.c | 19 +++-- pkg/gpu/testutil/samplebins.go | 151 ++++++++++++++++----------------- 3 files changed, 102 insertions(+), 121 deletions(-) diff --git a/pkg/gpu/probe_test.go b/pkg/gpu/probe_test.go index 9739fc0eccd51..9b47b39998ab4 100644 --- a/pkg/gpu/probe_test.go +++ b/pkg/gpu/probe_test.go @@ -11,18 +11,15 @@ import ( "testing" "time" - "golang.org/x/exp/maps" - "github.com/stretchr/testify/require" "github.com/stretchr/testify/suite" + "golang.org/x/exp/maps" "github.com/DataDog/datadog-agent/pkg/collector/corechecks/gpu/model" "github.com/DataDog/datadog-agent/pkg/ebpf/ebpftest" consumerstestutil "github.com/DataDog/datadog-agent/pkg/eventmonitor/consumers/testutil" "github.com/DataDog/datadog-agent/pkg/gpu/config" "github.com/DataDog/datadog-agent/pkg/gpu/testutil" - "github.com/DataDog/datadog-agent/pkg/network/usm/utils" - "github.com/DataDog/datadog-agent/pkg/util/testutil/flake" ) type probeTestSuite struct { @@ -72,9 +69,8 @@ func (s *probeTestSuite) TestCanReceiveEvents() { t := s.T() probe := s.getProbe() - cmd := testutil.RunSample(t, testutil.CudaSample) - - utils.WaitForProgramsToBeTraced(t, gpuModuleName, gpuAttacherName, cmd.Process.Pid, utils.ManualTracingFallbackDisabled) + cmd, err := testutil.RunSample(t, testutil.CudaSample) + require.NoError(t, err) var handlerStream, handlerGlobal *StreamHandler require.Eventually(t, func() bool { @@ -89,7 +85,7 @@ func (s *probeTestSuite) TestCanReceiveEvents() { } return handlerStream != nil && handlerGlobal != nil && len(handlerStream.kernelSpans) > 0 && len(handlerGlobal.allocations) > 0 - }, 10*time.Second, 500*time.Millisecond, "stream and global handlers not found: existing is %v", probe.consumer.streamHandlers) + }, 3*time.Second, 100*time.Millisecond, "stream and global handlers not found: existing is %v", probe.consumer.streamHandlers) // Check device assignments require.Contains(t, probe.consumer.sysCtx.selectedDeviceByPIDAndTID, cmd.Process.Pid) @@ -115,15 +111,14 @@ func (s *probeTestSuite) TestCanGenerateStats() { probe := s.getProbe() - cmd := testutil.RunSample(t, testutil.CudaSample) - - utils.WaitForProgramsToBeTraced(t, gpuModuleName, gpuAttacherName, cmd.Process.Pid, utils.ManualTracingFallbackDisabled) + cmd, err := testutil.RunSample(t, testutil.CudaSample) + require.NoError(t, err) - // Wait until the process finishes and we can get the stats. Run this instead of waiting for the process to finish - // so that we can time out correctly + //TODO: change this check to count telemetry counter of the consumer (once added). + // we are expecting 2 different streamhandlers because cudasample generates 3 events in total for 2 different streams (stream 0 and stream 30) require.Eventually(t, func() bool { - return !utils.IsProgramTraced(gpuModuleName, gpuAttacherName, cmd.Process.Pid) - }, 20*time.Second, 500*time.Millisecond, "process not stopped") + return len(probe.consumer.streamHandlers) == 2 + }, 3*time.Second, 100*time.Millisecond, "stream handlers count mismatch: expected: 2, got: %d", len(probe.consumer.streamHandlers)) stats, err := probe.GetAndFlush() require.NoError(t, err) @@ -145,21 +140,20 @@ func (s *probeTestSuite) TestMultiGPUSupport() { sampleArgs := testutil.SampleArgs{ StartWaitTimeSec: 6, // default wait time for WaitForProgramsToBeTraced is 5 seconds, give margin to attach manually to avoid flakes - EndWaitTimeSec: 1, // We need the process to stay active a bit so we can inspect its environment variables, if it ends too quickly we get no information CudaVisibleDevicesEnv: "1,2", SelectedDevice: 1, } // Visible devices 1,2 -> selects 1 in that array -> global device index = 2 selectedGPU := testutil.GPUUUIDs[2] - cmd := testutil.RunSampleWithArgs(t, testutil.CudaSample, sampleArgs) - utils.WaitForProgramsToBeTraced(t, gpuModuleName, gpuAttacherName, cmd.Process.Pid, utils.ManualTracingFallbackEnabled) + cmd, err := testutil.RunSampleWithArgs(t, testutil.CudaSample, sampleArgs) + require.NoError(t, err) - // Wait until the process finishes and we can get the stats. Run this instead of waiting for the process to finish - // so that we can time out correctly + //TODO: change this check to count telemetry counter of the consumer (once added). + // we are expecting 2 different streamhandlers because cudasample generates 3 events in total for 2 different streams (stream 0 and stream 30) require.Eventually(t, func() bool { - return !utils.IsProgramTraced(gpuModuleName, gpuAttacherName, cmd.Process.Pid) - }, 60*time.Second, 500*time.Millisecond, "process not stopped") + return len(probe.consumer.streamHandlers) == 2 + }, 3*time.Second, 100*time.Millisecond, "stream handlers count mismatch: expected: 2, got: %d", len(probe.consumer.streamHandlers)) stats, err := probe.GetAndFlush() require.NoError(t, err) @@ -175,22 +169,9 @@ func (s *probeTestSuite) TestMultiGPUSupport() { func (s *probeTestSuite) TestDetectsContainer() { t := s.T() - // Flaky test in CI, avoid failures on main for now. - flake.Mark(t) - probe := s.getProbe() - args := testutil.GetDefaultArgs() - args.EndWaitTimeSec = 1 - pid, cid := testutil.RunSampleInDockerWithArgs(t, testutil.CudaSample, testutil.MinimalDockerImage, args) - - utils.WaitForProgramsToBeTraced(t, gpuModuleName, gpuAttacherName, pid, utils.ManualTracingFallbackDisabled) - - // Wait until the process finishes and we can get the stats. Run this instead of waiting for the process to finish - // so that we can time out correctly - require.Eventually(t, func() bool { - return !utils.IsProgramTraced(gpuModuleName, gpuAttacherName, pid) - }, 20*time.Second, 500*time.Millisecond, "process not stopped") + pid, cid := testutil.RunSampleInDocker(t, testutil.CudaSample, testutil.MinimalDockerImage) // Check that the stream handlers have the correct container ID assigned for key, handler := range probe.consumer.streamHandlers { diff --git a/pkg/gpu/testdata/cudasample.c b/pkg/gpu/testdata/cudasample.c index aa65df206567b..870092a19afa0 100644 --- a/pkg/gpu/testdata/cudasample.c +++ b/pkg/gpu/testdata/cudasample.c @@ -39,15 +39,16 @@ cudaError_t cudaSetDevice(int device) { int main(int argc, char **argv) { cudaStream_t stream = 30; - if (argc != 4) { - fprintf(stderr, "Usage: %s \n", argv[0]); + if (argc != 3) { + fprintf(stderr, "Usage: %s \n", argv[0]); return 1; } int waitStart = atoi(argv[1]); - int waitEnd = atoi(argv[2]); - int device = atoi(argv[3]); + int device = atoi(argv[2]); + // This string is used by PatternScanner to validate a proper start of this sample program inside the container + fprintf(stderr, "Starting CudaSample program\n"); fprintf(stderr, "Waiting for %d seconds before starting\n", waitStart); // Give time for the eBPF program to load @@ -62,12 +63,12 @@ int main(int argc, char **argv) { cudaFree(ptr); cudaStreamSynchronize(stream); - fprintf(stderr, "CUDA calls made. Waiting for %d seconds before exiting\n", waitEnd); + // we don't exit to avoid flakiness when the process is terminated before it was hooked for gpu monitoring + // the expected usage is to send a kill signal to the process (or stop the container that is running it) - // Give time for the agent to inspect this process and check environment variables/etc before this exits - sleep(waitEnd); - - fprintf(stderr, "Exiting\n"); + //this line is used as a market by patternScanner to indicate the end of the program + fprintf(stderr, "CUDA calls made.\n"); + pause(); // Wait for signal to finish the process return 0; } diff --git a/pkg/gpu/testutil/samplebins.go b/pkg/gpu/testutil/samplebins.go index 23ab544162e91..c38865a405909 100644 --- a/pkg/gpu/testutil/samplebins.go +++ b/pkg/gpu/testutil/samplebins.go @@ -8,11 +8,11 @@ package testutil import ( - "bufio" + "context" "fmt" - "io" "os/exec" "path/filepath" + "regexp" "strconv" "testing" "time" @@ -23,35 +23,33 @@ import ( "github.com/DataDog/datadog-agent/pkg/network/protocols/http/testutil" "github.com/DataDog/datadog-agent/pkg/security/utils" "github.com/DataDog/datadog-agent/pkg/util/log" + procutil "github.com/DataDog/datadog-agent/pkg/util/testutil" dockerutils "github.com/DataDog/datadog-agent/pkg/util/testutil/docker" ) -// SampleName represents the name of the sample binary. -type SampleName string +// sampleName represents the name of the sample binary. +type sampleName string const ( // CudaSample is the sample binary that uses CUDA. - CudaSample SampleName = "cudasample" + CudaSample sampleName = "cudasample" ) -// DockerImage represents the Docker image to use for running the sample binary. -type DockerImage string +// dockerImage represents the Docker image to use for running the sample binary. +type dockerImage string + +var startedPattern = regexp.MustCompile("Starting CudaSample program") +var finishedPattern = regexp.MustCompile("CUDA calls made") const ( // MinimalDockerImage is the minimal docker image, just used for running a binary - MinimalDockerImage DockerImage = "alpine:3.20.3" + MinimalDockerImage dockerImage = "alpine:3.20.3" ) type SampleArgs struct { //nolint:revive // TODO // StartWaitTimeSec represents the time in seconds to wait before the binary starting the CUDA calls StartWaitTimeSec int - // EndWaitTimeSec represents the time in seconds to wait before the binary stops after making the CUDA calls - // This is necessary because the mock CUDA calls are instant, which means that the binary will exit before the - // eBPF probe has a chance to read the events and inspect the binary. To make the behavior of the sample binary - // more predictable and avoid flakiness in the tests, we introduce a delay before the binary exits. - EndWaitTimeSec int - // CudaVisibleDevicesEnv represents the value of the CUDA_VISIBLE_DEVICES environment variable CudaVisibleDevicesEnv string @@ -60,34 +58,21 @@ type SampleArgs struct { //nolint:revive // TODO } func (a *SampleArgs) getEnv() []string { - env := []string{} if a.CudaVisibleDevicesEnv != "" { - env = append(env, fmt.Sprintf("CUDA_VISIBLE_DEVICES=%s", a.CudaVisibleDevicesEnv)) + return []string{fmt.Sprintf("CUDA_VISIBLE_DEVICES=%s", a.CudaVisibleDevicesEnv)} } - return env + return nil } func (a *SampleArgs) getCLIArgs() []string { return []string{ - strconv.Itoa(int(a.StartWaitTimeSec)), - strconv.Itoa(int(a.EndWaitTimeSec)), + strconv.Itoa(a.StartWaitTimeSec), strconv.Itoa(a.SelectedDevice), } } -// redirectReaderToLog reads from the reader and logs the output with the given prefix -func redirectReaderToLog(r io.Reader, prefix string) { - go func() { - scanner := bufio.NewScanner(r) - for scanner.Scan() { - log.Debugf("%s: %s", prefix, scanner.Text()) - } - // Automatically exits when the scanner reaches EOF, that is, when the command finishes - }() -} - // RunSampleWithArgs executes the sample binary and returns the command. Cleanup is configured automatically -func getBuiltSamplePath(t *testing.T, sample SampleName) string { +func getBuiltSamplePath(t *testing.T, sample sampleName) string { curDir, err := testutil.CurDir() require.NoError(t, err) @@ -100,91 +85,105 @@ func getBuiltSamplePath(t *testing.T, sample SampleName) string { return builtBin } -// GetDefaultArgs returns the default arguments for the sample binary -func GetDefaultArgs() SampleArgs { +// getDefaultArgs returns the default arguments for the sample binary +func getDefaultArgs() SampleArgs { return SampleArgs{ StartWaitTimeSec: 5, - EndWaitTimeSec: 1, // We need the process to stay active a bit so we can inspect its environment variables, if it ends too quickly we get no information CudaVisibleDevicesEnv: "", SelectedDevice: 0, } } -func runCommandAndPipeOutput(t *testing.T, command []string, args SampleArgs, logName string) *exec.Cmd { +func runCommandAndPipeOutput(t *testing.T, command []string, args SampleArgs) (cmd *exec.Cmd, err error) { command = append(command, args.getCLIArgs()...) + ctx, cancel := context.WithCancel(context.Background()) + t.Cleanup(cancel) - cmd := exec.Command(command[0], command[1:]...) + cmd = exec.CommandContext(ctx, command[0], command[1:]...) t.Cleanup(func() { if cmd.Process != nil { _ = cmd.Process.Kill() + _ = cmd.Wait() } }) + scanner, err := procutil.NewScanner(startedPattern, finishedPattern) + require.NoError(t, err, "failed to create pattern scanner") + defer func() { + //print the cudasample log in case there was an error + if err != nil { + scanner.PrintLogs(t) + } + }() env := args.getEnv() cmd.Env = append(cmd.Env, env...) + cmd.Stdout = scanner + cmd.Stderr = scanner - stdout, err := cmd.StdoutPipe() - require.NoError(t, err) - stderr, err := cmd.StderrPipe() - require.NoError(t, err) - - redirectReaderToLog(stdout, fmt.Sprintf("%s stdout", logName)) - redirectReaderToLog(stderr, fmt.Sprintf("%s stderr", logName)) - - log.Debugf("Running command %v, env=%v", command, env) err = cmd.Start() - require.NoError(t, err) + if err != nil { + return nil, err + } - return cmd + for { + select { + case <-ctx.Done(): + if err = ctx.Err(); err != nil { + return nil, fmt.Errorf("failed to start the process %s due to: %w", command[0], err) + } + case <-scanner.DoneChan: + t.Logf("%s command succeeded", command) + return cmd, nil + case <-time.After(dockerutils.DefaultTimeout): + //setting the error explicitly to trigger the defer function + err = fmt.Errorf("%s execution attempt reached timeout %v ", CudaSample, dockerutils.DefaultTimeout) + return nil, err + } + } } // RunSample executes the sample binary and returns the command. Cleanup is configured automatically -func RunSample(t *testing.T, name SampleName) *exec.Cmd { - return RunSampleWithArgs(t, name, GetDefaultArgs()) +func RunSample(t *testing.T, name sampleName) (*exec.Cmd, error) { + return RunSampleWithArgs(t, name, getDefaultArgs()) } // RunSampleWithArgs executes the sample binary with args and returns the command. Cleanup is configured automatically -func RunSampleWithArgs(t *testing.T, name SampleName, args SampleArgs) *exec.Cmd { +func RunSampleWithArgs(t *testing.T, name sampleName, args SampleArgs) (*exec.Cmd, error) { builtBin := getBuiltSamplePath(t, name) - - return runCommandAndPipeOutput(t, []string{builtBin}, args, string(name)) + return runCommandAndPipeOutput(t, []string{builtBin}, args) } // RunSampleInDocker executes the sample binary in a Docker container and returns the PID of the main container process, and the container ID -func RunSampleInDocker(t *testing.T, name SampleName, image DockerImage) (int, string) { - return RunSampleInDockerWithArgs(t, name, image, GetDefaultArgs()) +func RunSampleInDocker(t *testing.T, name sampleName, image dockerImage) (int, string) { + return RunSampleInDockerWithArgs(t, name, image, getDefaultArgs()) } // RunSampleInDockerWithArgs executes the sample binary in a Docker container and returns the PID of the main container process, and the container ID -func RunSampleInDockerWithArgs(t *testing.T, name SampleName, image DockerImage, args SampleArgs) (int, string) { +func RunSampleInDockerWithArgs(t *testing.T, name sampleName, image dockerImage, args SampleArgs) (int, string) { builtBin := getBuiltSamplePath(t, name) containerName := fmt.Sprintf("gpu-testutil-%s", utils.RandString(10)) - mountArg := fmt.Sprintf("%s:%s", builtBin, builtBin) - - command := []string{"docker", "run", "--rm", "-v", mountArg, "--name", containerName} + scanner, err := procutil.NewScanner(startedPattern, finishedPattern) + require.NoError(t, err, "failed to create pattern scanner") - // Pass environment variables to the container as docker args - for _, env := range args.getEnv() { - command = append(command, "-e", env) - } + dockerConfig := dockerutils.NewRunConfig(containerName, + dockerutils.DefaultTimeout, + dockerutils.DefaultRetries, + scanner, + args.getEnv(), + string(image), + builtBin, + args.getCLIArgs(), + map[string]string{builtBin: builtBin}) - command = append(command, string(image), builtBin) - - _ = runCommandAndPipeOutput(t, command, args, string(name)) + require.NoError(t, dockerutils.Run(t, dockerConfig)) var dockerPID int64 var dockerContainerID string - var err error - // The docker container might take a bit to start, so we retry until we get the PID - require.EventuallyWithT(t, func(c *assert.CollectT) { - dockerPID, err = dockerutils.GetMainPID(containerName) - assert.NoError(c, err) - }, 1*time.Second, 100*time.Millisecond, "failed to get docker PID") - - require.EventuallyWithT(t, func(c *assert.CollectT) { - dockerContainerID, err = dockerutils.GetContainerID(containerName) - assert.NoError(c, err) - }, 1*time.Second, 100*time.Millisecond, "failed to get docker container ID") + + dockerPID, err = dockerutils.GetMainPID(containerName) + assert.NoError(t, err, "failed to get docker PID") + dockerContainerID, err = dockerutils.GetContainerID(containerName) + assert.NoError(t, err, "failed to get docker container ID") log.Debugf("Sample binary %s running in Docker container %s (CID=%s) with PID %d", name, containerName, dockerContainerID, dockerPID) From 5dc2ddb15d1258f51a3f34ce400390deaac587c6 Mon Sep 17 00:00:00 2001 From: Kevin Fairise <132568982+KevinFairise2@users.noreply.github.com> Date: Mon, 2 Dec 2024 15:07:32 +0100 Subject: [PATCH 195/439] Move containers integration tests to e2e provisioners (#30546) --- .../pkg/environments/aws/kubernetes/eks.go | 15 +- .../pkg/environments/aws/kubernetes/kind.go | 12 +- test/new-e2e/tests/containers/base_test.go | 47 +-- test/new-e2e/tests/containers/docker_test.go | 43 +-- .../tests/containers/dump_cluster_state.go | 341 ------------------ test/new-e2e/tests/containers/ecs_test.go | 70 ++-- test/new-e2e/tests/containers/eks_test.go | 100 +---- test/new-e2e/tests/containers/k8s_test.go | 99 +++-- test/new-e2e/tests/containers/kindvm_test.go | 82 +---- 9 files changed, 130 insertions(+), 679 deletions(-) delete mode 100644 test/new-e2e/tests/containers/dump_cluster_state.go diff --git a/test/new-e2e/pkg/environments/aws/kubernetes/eks.go b/test/new-e2e/pkg/environments/aws/kubernetes/eks.go index 22971ae20f9ed..92262aa9d7380 100644 --- a/test/new-e2e/pkg/environments/aws/kubernetes/eks.go +++ b/test/new-e2e/pkg/environments/aws/kubernetes/eks.go @@ -112,6 +112,15 @@ func EKSRunFunc(ctx *pulumi.Context, env *environments.Kubernetes, params *Provi // Deploy the agent if params.agentOptions != nil { params.agentOptions = append(params.agentOptions, kubernetesagentparams.WithPulumiResourceOptions(utils.PulumiDependsOn(cluster)), kubernetesagentparams.WithFakeintake(fakeIntake), kubernetesagentparams.WithTags([]string{"stackid:" + ctx.Stack()})) + + eksParams, err := eks.NewParams(params.eksOptions...) + if err != nil { + return err + } + if eksParams.WindowsNodeGroup { + params.agentOptions = append(params.agentOptions, kubernetesagentparams.WithDeployWindows()) + } + kubernetesAgent, err := helm.NewKubernetesAgent(&awsEnv, "eks", cluster.KubeProvider, params.agentOptions...) if err != nil { return err @@ -126,7 +135,7 @@ func EKSRunFunc(ctx *pulumi.Context, env *environments.Kubernetes, params *Provi } // Deploy standalone dogstatsd if params.deployDogstatsd { - if _, err := dogstatsdstandalone.K8sAppDefinition(&awsEnv, cluster.KubeProvider, "dogstatsd-standalone", fakeIntake, true, ""); err != nil { + if _, err := dogstatsdstandalone.K8sAppDefinition(&awsEnv, cluster.KubeProvider, "dogstatsd-standalone", fakeIntake, true, "", utils.PulumiDependsOn(cluster)); err != nil { return err } } @@ -138,7 +147,7 @@ func EKSRunFunc(ctx *pulumi.Context, env *environments.Kubernetes, params *Provi } // dogstatsd clients that report to the Agent - if _, err := dogstatsd.K8sAppDefinition(&awsEnv, cluster.KubeProvider, "workload-dogstatsd", 8125, "/var/run/datadog/dsd.socket", utils.PulumiDependsOn(cluster)); err != nil { + if _, err := dogstatsd.K8sAppDefinition(&awsEnv, cluster.KubeProvider, "workload-dogstatsd", 8125, "/var/run/datadog/dsd.socket", utils.PulumiDependsOn(workloadWithCRDDeps...)); err != nil { return err } @@ -157,7 +166,7 @@ func EKSRunFunc(ctx *pulumi.Context, env *environments.Kubernetes, params *Provi return err } - if _, err := mutatedbyadmissioncontroller.K8sAppDefinition(&awsEnv, cluster.KubeProvider, "workload-mutated", "workload-mutated-lib-injection", utils.PulumiDependsOn(cluster)); err != nil { + if _, err := mutatedbyadmissioncontroller.K8sAppDefinition(&awsEnv, cluster.KubeProvider, "workload-mutated", "workload-mutated-lib-injection", utils.PulumiDependsOn(workloadWithCRDDeps...)); err != nil { return err } diff --git a/test/new-e2e/pkg/environments/aws/kubernetes/kind.go b/test/new-e2e/pkg/environments/aws/kubernetes/kind.go index 60da0620167f9..2230f1a9c1736 100644 --- a/test/new-e2e/pkg/environments/aws/kubernetes/kind.go +++ b/test/new-e2e/pkg/environments/aws/kubernetes/kind.go @@ -129,19 +129,17 @@ func KindRunFunc(ctx *pulumi.Context, env *environments.Kubernetes, params *Prov var dependsOnCrd []pulumi.Resource if params.agentOptions != nil { - kindClusterName := ctx.Stack() - helmValues := fmt.Sprintf(` + helmValues := ` datadog: kubelet: tlsVerify: false - clusterName: "%s" agents: useHostNetwork: true -`, kindClusterName) +` - newOpts := []kubernetesagentparams.Option{kubernetesagentparams.WithHelmValues(helmValues), kubernetesagentparams.WithTags([]string{"stackid:" + ctx.Stack()})} + newOpts := []kubernetesagentparams.Option{kubernetesagentparams.WithHelmValues(helmValues), kubernetesagentparams.WithClusterName(kindCluster.ClusterName), kubernetesagentparams.WithTags([]string{"stackid:" + ctx.Stack()})} params.agentOptions = append(newOpts, params.agentOptions...) - agent, err := helm.NewKubernetesAgent(&awsEnv, kindClusterName, kubeProvider, params.agentOptions...) + agent, err := helm.NewKubernetesAgent(&awsEnv, "kind", kubeProvider, params.agentOptions...) if err != nil { return err } @@ -182,7 +180,7 @@ agents: return err } - if _, err := mutatedbyadmissioncontroller.K8sAppDefinition(&awsEnv, kubeProvider, "workload-mutated", "workload-mutated-lib-injection"); err != nil { + if _, err := mutatedbyadmissioncontroller.K8sAppDefinition(&awsEnv, kubeProvider, "workload-mutated", "workload-mutated-lib-injection", utils.PulumiDependsOn(dependsOnCrd...)); err != nil { return err } diff --git a/test/new-e2e/tests/containers/base_test.go b/test/new-e2e/tests/containers/base_test.go index 84bce8ea70197..7bc4735a43dd2 100644 --- a/test/new-e2e/tests/containers/base_test.go +++ b/test/new-e2e/tests/containers/base_test.go @@ -14,7 +14,6 @@ import ( "github.com/samber/lo" "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/suite" "gopkg.in/yaml.v3" "gopkg.in/zorkian/go-datadog-api.v2" @@ -23,39 +22,21 @@ import ( "github.com/DataDog/datadog-agent/pkg/util/pointer" "github.com/DataDog/datadog-agent/test/fakeintake/aggregator" fakeintake "github.com/DataDog/datadog-agent/test/fakeintake/client" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/runner" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/runner/parameters" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e" ) -type baseSuite struct { - suite.Suite +type baseSuite[Env any] struct { + e2e.BaseSuite[Env] - startTime time.Time - endTime time.Time - datadogClient *datadog.Client - Fakeintake *fakeintake.Client - clusterName string + Fakeintake *fakeintake.Client + clusterName string } -func (suite *baseSuite) SetupSuite() { - apiKey, err := runner.GetProfile().SecretStore().Get(parameters.APIKey) - suite.Require().NoError(err) - appKey, err := runner.GetProfile().SecretStore().Get(parameters.APPKey) - suite.Require().NoError(err) - suite.datadogClient = datadog.NewClient(apiKey, appKey) - - suite.startTime = time.Now() -} - -func (suite *baseSuite) TearDownSuite() { - suite.endTime = time.Now() -} - -func (suite *baseSuite) BeforeTest(suiteName, testName string) { +func (suite *baseSuite[Env]) BeforeTest(suiteName, testName string) { suite.T().Logf("START %s/%s %s", suiteName, testName, time.Now()) } -func (suite *baseSuite) AfterTest(suiteName, testName string) { +func (suite *baseSuite[Env]) AfterTest(suiteName, testName string) { suite.T().Logf("FINISH %s/%s %s", suiteName, testName, time.Now()) } @@ -98,7 +79,7 @@ func (mc *myCollectT) Errorf(format string, args ...interface{}) { mc.CollectT.Errorf(format, args...) } -func (suite *baseSuite) testMetric(args *testMetricArgs) { +func (suite *baseSuite[Env]) testMetric(args *testMetricArgs) { prettyMetricQuery := fmt.Sprintf("%s{%s}", args.Filter.Name, strings.Join(args.Filter.Tags, ",")) suite.Run("metric "+prettyMetricQuery, func() { @@ -107,7 +88,7 @@ func (suite *baseSuite) testMetric(args *testMetricArgs) { expectedTags = lo.Map(*args.Expect.Tags, func(tag string, _ int) *regexp.Regexp { return regexp.MustCompile(tag) }) } - var optionalTags []*regexp.Regexp + optionalTags := []*regexp.Regexp{regexp.MustCompile("stackid:.*")} // The stackid tag is added by the framework itself to allow filtering on the stack id if args.Optional.Tags != nil { optionalTags = lo.Map(*args.Optional.Tags, func(tag string, _ int) *regexp.Regexp { return regexp.MustCompile(tag) }) } @@ -120,7 +101,7 @@ func (suite *baseSuite) testMetric(args *testMetricArgs) { return "filter_tag_" + tag }) - if _, err := suite.datadogClient.PostEvent(&datadog.Event{ + if _, err := suite.DatadogClient().PostEvent(&datadog.Event{ Title: pointer.Ptr(fmt.Sprintf("testMetric %s", prettyMetricQuery)), Text: pointer.Ptr(fmt.Sprintf(`%%%%%% ### Result @@ -227,7 +208,7 @@ type testLogExpectArgs struct { Message string } -func (suite *baseSuite) testLog(args *testLogArgs) { +func (suite *baseSuite[Env]) testLog(args *testLogArgs) { prettyLogQuery := fmt.Sprintf("%s{%s}", args.Filter.Service, strings.Join(args.Filter.Tags, ",")) suite.Run("log "+prettyLogQuery, func() { @@ -249,7 +230,7 @@ func (suite *baseSuite) testLog(args *testLogArgs) { return "filter_tag_" + tag }) - if _, err := suite.datadogClient.PostEvent(&datadog.Event{ + if _, err := suite.DatadogClient().PostEvent(&datadog.Event{ Title: pointer.Ptr(fmt.Sprintf("testLog %s", prettyLogQuery)), Text: pointer.Ptr(fmt.Sprintf(`%%%%%% ### Result @@ -356,7 +337,7 @@ type testCheckRunExpectArgs struct { AcceptUnexpectedTags bool } -func (suite *baseSuite) testCheckRun(args *testCheckRunArgs) { +func (suite *baseSuite[Env]) testCheckRun(args *testCheckRunArgs) { prettyCheckRunQuery := fmt.Sprintf("%s{%s}", args.Filter.Name, strings.Join(args.Filter.Tags, ",")) suite.Run("checkRun "+prettyCheckRunQuery, func() { @@ -378,7 +359,7 @@ func (suite *baseSuite) testCheckRun(args *testCheckRunArgs) { return "filter_tag_" + tag }) - if _, err := suite.datadogClient.PostEvent(&datadog.Event{ + if _, err := suite.DatadogClient().PostEvent(&datadog.Event{ Title: pointer.Ptr(fmt.Sprintf("testCheckRun %s", prettyCheckRunQuery)), Text: pointer.Ptr(fmt.Sprintf(`%%%%%% ### Result diff --git a/test/new-e2e/tests/containers/docker_test.go b/test/new-e2e/tests/containers/docker_test.go index a7d27f4fa2987..985d80e46b757 100644 --- a/test/new-e2e/tests/containers/docker_test.go +++ b/test/new-e2e/tests/containers/docker_test.go @@ -6,53 +6,24 @@ package containers import ( - "context" - "encoding/json" - "fmt" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/components" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/runner" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/utils/infra" - "github.com/DataDog/test-infra-definitions/scenarios/aws/ec2" - "github.com/pulumi/pulumi/sdk/v3/go/auto" - "github.com/stretchr/testify/suite" - "os" "testing" + + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments" + awsdocker "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments/aws/docker" ) type DockerSuite struct { - baseSuite + baseSuite[environments.DockerHost] } func TestDockerSuite(t *testing.T) { - suite.Run(t, &DockerSuite{}) + e2e.Run(t, &DockerSuite{}, e2e.WithProvisioner(awsdocker.Provisioner(awsdocker.WithTestingWorkload()))) } func (suite *DockerSuite) SetupSuite() { - ctx := context.Background() - - stackConfig := runner.ConfigMap{ - "ddagent:deploy": auto.ConfigValue{Value: "true"}, - "ddagent:fakeintake": auto.ConfigValue{Value: "true"}, - } - - _, stackOutput, err := infra.GetStackManager().GetStack(ctx, "dockerstack", stackConfig, ec2.VMRunWithDocker, false) - suite.Require().NoError(err) - - var fakeintake components.FakeIntake - fiSerialized, err := json.Marshal(stackOutput.Outputs["dd-Fakeintake-aws-aws-vm"].Value) - suite.Require().NoError(err) - suite.Require().NoError(fakeintake.Import(fiSerialized, &fakeintake)) - suite.Require().NoError(fakeintake.Init(suite)) - suite.Fakeintake = fakeintake.Client() - - var host components.RemoteHost - hostSerialized, err := json.Marshal(stackOutput.Outputs["dd-Host-aws-vm"].Value) - suite.Require().NoError(err) - suite.Require().NoError(host.Import(hostSerialized, &host)) - suite.Require().NoError(host.Init(suite)) - suite.clusterName = fmt.Sprintf("%s-%v", os.Getenv("USER"), host.Address) - suite.baseSuite.SetupSuite() + suite.Fakeintake = suite.Env().FakeIntake.Client() } func (suite *DockerSuite) TestDSDWithUDS() { diff --git a/test/new-e2e/tests/containers/dump_cluster_state.go b/test/new-e2e/tests/containers/dump_cluster_state.go deleted file mode 100644 index ddf546d889d09..0000000000000 --- a/test/new-e2e/tests/containers/dump_cluster_state.go +++ /dev/null @@ -1,341 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2023-present Datadog, Inc. - -package containers - -import ( - "bytes" - "context" - "encoding/base64" - "fmt" - "io" - "net" - "os" - "os/user" - "strings" - "sync" - - "github.com/DataDog/datadog-agent/pkg/util/pointer" - awsconfig "github.com/aws/aws-sdk-go-v2/config" - awsec2 "github.com/aws/aws-sdk-go-v2/service/ec2" - awsec2types "github.com/aws/aws-sdk-go-v2/service/ec2/types" - awseks "github.com/aws/aws-sdk-go-v2/service/eks" - awsekstypes "github.com/aws/aws-sdk-go-v2/service/eks/types" - "golang.org/x/crypto/ssh" - "golang.org/x/crypto/ssh/agent" - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/cli-runtime/pkg/genericclioptions" - "k8s.io/cli-runtime/pkg/genericiooptions" - "k8s.io/client-go/kubernetes" - "k8s.io/client-go/tools/clientcmd" - clientcmdapi "k8s.io/client-go/tools/clientcmd/api" - kubectlget "k8s.io/kubectl/pkg/cmd/get" - kubectlutil "k8s.io/kubectl/pkg/cmd/util" -) - -func dumpEKSClusterState(ctx context.Context, name string) (ret string) { - var out strings.Builder - defer func() { ret = out.String() }() - - cfg, err := awsconfig.LoadDefaultConfig(ctx) - if err != nil { - fmt.Fprintf(&out, "Failed to load AWS config: %v\n", err) - return - } - - client := awseks.NewFromConfig(cfg) - - clusterDescription, err := client.DescribeCluster(ctx, &awseks.DescribeClusterInput{ - Name: &name, - }) - if err != nil { - fmt.Fprintf(&out, "Failed to describe cluster %s: %v\n", name, err) - return - } - - cluster := clusterDescription.Cluster - if cluster.Status != awsekstypes.ClusterStatusActive { - fmt.Fprintf(&out, "EKS cluster %s is not in active state. Current status: %s\n", name, cluster.Status) - return - } - - kubeconfig := clientcmdapi.NewConfig() - kubeconfig.Clusters[name] = &clientcmdapi.Cluster{ - Server: *cluster.Endpoint, - } - if kubeconfig.Clusters[name].CertificateAuthorityData, err = base64.StdEncoding.DecodeString(*cluster.CertificateAuthority.Data); err != nil { - fmt.Fprintf(&out, "Failed to decode certificate authority: %v\n", err) - } - kubeconfig.AuthInfos[name] = &clientcmdapi.AuthInfo{ - Exec: &clientcmdapi.ExecConfig{ - APIVersion: "client.authentication.k8s.io/v1beta1", - Command: "aws", - Args: []string{ - "--region", - cfg.Region, - "eks", - "get-token", - "--cluster-name", - name, - "--output", - "json", - }, - }, - } - kubeconfig.Contexts[name] = &clientcmdapi.Context{ - Cluster: name, - AuthInfo: name, - } - kubeconfig.CurrentContext = name - - dumpK8sClusterState(ctx, kubeconfig, &out) - - return -} - -func dumpKindClusterState(ctx context.Context, name string) (ret string) { - var out strings.Builder - defer func() { ret = out.String() }() - - cfg, err := awsconfig.LoadDefaultConfig(ctx) - if err != nil { - fmt.Fprintf(&out, "Failed to load AWS config: %v\n", err) - return - } - - ec2Client := awsec2.NewFromConfig(cfg) - - user, _ := user.Current() - instancesDescription, err := ec2Client.DescribeInstances(ctx, &awsec2.DescribeInstancesInput{ - Filters: []awsec2types.Filter{ - { - Name: pointer.Ptr("tag:managed-by"), - Values: []string{"pulumi"}, - }, - { - Name: pointer.Ptr("tag:username"), - Values: []string{user.Username}, - }, - { - Name: pointer.Ptr("tag:Name"), - Values: []string{name + "-aws-kind"}, - }, - }, - }) - if err != nil { - fmt.Fprintf(&out, "Failed to describe instances: %v\n", err) - return - } - - if instancesDescription == nil || (len(instancesDescription.Reservations) != 1 && len(instancesDescription.Reservations[0].Instances) != 1) { - fmt.Fprintf(&out, "Didn’t find exactly one instance for cluster %s\n", name) - return - } - - instanceIP := instancesDescription.Reservations[0].Instances[0].PrivateIpAddress - - auth := []ssh.AuthMethod{} - - if sshAgentSocket, found := os.LookupEnv("SSH_AUTH_SOCK"); found { - sshAgent, err := net.Dial("unix", sshAgentSocket) - if err != nil { - fmt.Fprintf(&out, "Failed to connect to SSH agent: %v\n", err) - return - } - defer sshAgent.Close() - - auth = append(auth, ssh.PublicKeysCallback(agent.NewClient(sshAgent).Signers)) - } - - if sshKeyPath, found := os.LookupEnv("E2E_PRIVATE_KEY_PATH"); found { - sshKey, err := os.ReadFile(sshKeyPath) - if err != nil { - fmt.Fprintf(&out, "Failed to read SSH key: %v\n", err) - return - } - - signer, err := ssh.ParsePrivateKey(sshKey) - if err != nil { - fmt.Fprintf(&out, "Failed to parse SSH key: %v\n", err) - return - } - - auth = append(auth, ssh.PublicKeys(signer)) - } - - var sshClient *ssh.Client - err = nil - for _, user := range []string{"ec2-user", "ubuntu"} { - sshClient, err = ssh.Dial("tcp", *instanceIP+":22", &ssh.ClientConfig{ - User: user, - Auth: auth, - HostKeyCallback: ssh.InsecureIgnoreHostKey(), - }) - if err == nil { - break - } - } - if err != nil { - fmt.Fprintf(&out, "Failed to dial SSH server %s: %v\n", *instanceIP, err) - return - } - defer sshClient.Close() - - sshSession, err := sshClient.NewSession() - if err != nil { - fmt.Fprintf(&out, "Failed to create SSH session: %v\n", err) - return - } - defer sshSession.Close() - - stdout, err := sshSession.StdoutPipe() - if err != nil { - fmt.Fprintf(&out, "Failed to create stdout pipe: %v\n", err) - return - } - - stderr, err := sshSession.StderrPipe() - if err != nil { - fmt.Fprintf(&out, "Failed to create stderr pipe: %v\n", err) - return - } - - err = sshSession.Start("kind get kubeconfig --name \"$(kind get clusters | head -n 1)\"") - if err != nil { - fmt.Fprintf(&out, "Failed to start remote command: %v\n", err) - return - } - - var stdoutBuf bytes.Buffer - - var wg sync.WaitGroup - wg.Add(2) - - go func() { - if _, err := io.Copy(&stdoutBuf, stdout); err != nil { - fmt.Fprintf(&out, "Failed to read stdout: %v\n", err) - } - wg.Done() - }() - - go func() { - if _, err := io.Copy(&out, stderr); err != nil { - fmt.Fprintf(&out, "Failed to read stderr: %v\n", err) - } - wg.Done() - }() - - err = sshSession.Wait() - wg.Wait() - if err != nil { - fmt.Fprintf(&out, "Remote command exited with error: %v\n", err) - return - } - - kubeconfig, err := clientcmd.Load(stdoutBuf.Bytes()) - if err != nil { - fmt.Fprintf(&out, "Failed to parse kubeconfig: %v\n", err) - return - } - - for _, cluster := range kubeconfig.Clusters { - cluster.Server = strings.Replace(cluster.Server, "0.0.0.0", *instanceIP, 1) - cluster.CertificateAuthorityData = nil - cluster.InsecureSkipTLSVerify = true - } - - dumpK8sClusterState(ctx, kubeconfig, &out) - - return -} - -func dumpK8sClusterState(ctx context.Context, kubeconfig *clientcmdapi.Config, out *strings.Builder) { - kubeconfigFile, err := os.CreateTemp("", "kubeconfig") - if err != nil { - fmt.Fprintf(out, "Failed to create kubeconfig temporary file: %v\n", err) - return - } - defer os.Remove(kubeconfigFile.Name()) - - if err := clientcmd.WriteToFile(*kubeconfig, kubeconfigFile.Name()); err != nil { - fmt.Fprintf(out, "Failed to write kubeconfig file: %v\n", err) - return - } - - if err := kubeconfigFile.Close(); err != nil { - fmt.Fprintf(out, "Failed to close kubeconfig file: %v\n", err) - } - - fmt.Fprintf(out, "\n") - - configFlags := genericclioptions.NewConfigFlags(false) - kubeconfigFileName := kubeconfigFile.Name() - configFlags.KubeConfig = &kubeconfigFileName - - factory := kubectlutil.NewFactory(configFlags) - - streams := genericiooptions.IOStreams{ - Out: out, - ErrOut: out, - } - - getCmd := kubectlget.NewCmdGet("", factory, streams) - getCmd.SetOut(out) - getCmd.SetErr(out) - getCmd.SetContext(ctx) - getCmd.SetArgs([]string{ - "nodes,all", - "--all-namespaces", - "-o", - "wide", - }) - if err := getCmd.ExecuteContext(ctx); err != nil { - fmt.Fprintf(out, "Failed to execute Get command: %v\n", err) - return - } - - // Get the logs of containers that have restarted - config, err := clientcmd.BuildConfigFromFlags("", kubeconfigFile.Name()) - if err != nil { - fmt.Fprintf(out, "Failed to build Kubernetes config: %v\n", err) - return - } - k8sClient, err := kubernetes.NewForConfig(config) - if err != nil { - fmt.Fprintf(out, "Failed to create Kubernetes client: %v\n", err) - return - } - - pods, err := k8sClient.CoreV1().Pods("").List(ctx, metav1.ListOptions{}) - if err != nil { - fmt.Fprintf(out, "Failed to list pods: %v\n", err) - return - } - - for _, pod := range pods.Items { - for _, containerStatus := range pod.Status.ContainerStatuses { - if containerStatus.RestartCount > 0 { - fmt.Fprintf(out, "\nLOGS FOR POD %s/%s CONTAINER %s:\n", pod.Namespace, pod.Name, containerStatus.Name) - logs, err := k8sClient.CoreV1().Pods(pod.Namespace).GetLogs(pod.Name, &corev1.PodLogOptions{ - Container: containerStatus.Name, - Previous: true, - // TailLines: pointer.Ptr(int64(100)), - }).Stream(ctx) - if err != nil { - fmt.Fprintf(out, "Failed to get logs: %v\n", err) - continue - } - defer logs.Close() - - _, err = io.Copy(out, logs) - if err != nil { - fmt.Fprintf(out, "Failed to copy logs: %v\n", err) - continue - } - } - } - } -} diff --git a/test/new-e2e/tests/containers/ecs_test.go b/test/new-e2e/tests/containers/ecs_test.go index 9498aa9414deb..f5603278f017e 100644 --- a/test/new-e2e/tests/containers/ecs_test.go +++ b/test/new-e2e/tests/containers/ecs_test.go @@ -7,29 +7,26 @@ package containers import ( "context" - "encoding/json" "regexp" "strings" "testing" "time" - ecsComp "github.com/DataDog/test-infra-definitions/components/ecs" - "github.com/DataDog/test-infra-definitions/scenarios/aws/ecs" - "github.com/DataDog/datadog-agent/pkg/util/pointer" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/components" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/runner" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/utils/infra" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments" awsconfig "github.com/aws/aws-sdk-go-v2/config" awsecs "github.com/aws/aws-sdk-go-v2/service/ecs" awsecstypes "github.com/aws/aws-sdk-go-v2/service/ecs/types" "github.com/fatih/color" - "github.com/pulumi/pulumi/sdk/v3/go/auto" "github.com/samber/lo" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/stretchr/testify/suite" + + tifecs "github.com/DataDog/test-infra-definitions/scenarios/aws/ecs" + + envecs "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments/aws/ecs" ) const ( @@ -41,52 +38,27 @@ const ( ) type ecsSuite struct { - baseSuite - + baseSuite[environments.ECS] ecsClusterName string } func TestECSSuite(t *testing.T) { - suite.Run(t, &ecsSuite{}) + e2e.Run(t, &ecsSuite{}, e2e.WithProvisioner(envecs.Provisioner( + envecs.WithECSOptions( + tifecs.WithFargateCapacityProvider(), + tifecs.WithLinuxNodeGroup(), + tifecs.WithWindowsNodeGroup(), + tifecs.WithLinuxBottleRocketNodeGroup(), + ), + envecs.WithTestingWorkload(), + ))) } func (suite *ecsSuite) SetupSuite() { - ctx := context.Background() - - // Creating the stack - stackConfig := runner.ConfigMap{ - "ddinfra:aws/ecs/linuxECSOptimizedNodeGroup": auto.ConfigValue{Value: "true"}, - "ddinfra:aws/ecs/linuxBottlerocketNodeGroup": auto.ConfigValue{Value: "true"}, - "ddinfra:aws/ecs/windowsLTSCNodeGroup": auto.ConfigValue{Value: "true"}, - "ddagent:deploy": auto.ConfigValue{Value: "true"}, - "ddagent:fakeintake": auto.ConfigValue{Value: "true"}, - "ddtestworkload:deploy": auto.ConfigValue{Value: "true"}, - } - - _, stackOutput, err := infra.GetStackManager().GetStackNoDeleteOnFailure( - ctx, - "ecs-cluster", - ecs.Run, - infra.WithConfigMap(stackConfig), - ) - suite.Require().NoError(err) - - fakeintake := &components.FakeIntake{} - fiSerialized, err := json.Marshal(stackOutput.Outputs["dd-Fakeintake-aws-ecs"].Value) - suite.Require().NoError(err) - suite.Require().NoError(fakeintake.Import(fiSerialized, fakeintake)) - suite.Require().NoError(fakeintake.Init(suite)) - suite.Fakeintake = fakeintake.Client() - - clusterSerialized, err := json.Marshal(stackOutput.Outputs["dd-Cluster-ecs"].Value) - suite.Require().NoError(err) - ecsCluster := &ecsComp.ClusterOutput{} - suite.Require().NoError(ecsCluster.Import(clusterSerialized, ecsCluster)) - - suite.ecsClusterName = ecsCluster.ClusterName - suite.clusterName = suite.ecsClusterName - suite.baseSuite.SetupSuite() + suite.Fakeintake = suite.Env().FakeIntake.Client() + suite.ecsClusterName = suite.Env().ECSCluster.ClusterName + suite.clusterName = suite.Env().ECSCluster.ClusterName } func (suite *ecsSuite) TearDownSuite() { @@ -99,8 +71,8 @@ func (suite *ecsSuite) TearDownSuite() { suite.T().Log(c("https://dddev.datadoghq.com/dashboard/mnw-tdr-jd8/e2e-tests-containers-ecs?refresh_mode=paused&tpl_var_ecs_cluster_name%%5B0%%5D=%s&tpl_var_fake_intake_task_family%%5B0%%5D=%s-fakeintake-ecs&from_ts=%d&to_ts=%d&live=false", suite.ecsClusterName, strings.TrimSuffix(suite.ecsClusterName, "-ecs"), - suite.startTime.UnixMilli(), - suite.endTime.UnixMilli(), + suite.StartTime().UnixMilli(), + suite.EndTime().UnixMilli(), )) } diff --git a/test/new-e2e/tests/containers/eks_test.go b/test/new-e2e/tests/containers/eks_test.go index 6562eff6abb80..163bcdba0f0b4 100644 --- a/test/new-e2e/tests/containers/eks_test.go +++ b/test/new-e2e/tests/containers/eks_test.go @@ -6,104 +6,32 @@ package containers import ( - "context" - "encoding/json" "testing" - "github.com/DataDog/test-infra-definitions/scenarios/aws/eks" + tifeks "github.com/DataDog/test-infra-definitions/scenarios/aws/eks" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/components" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/runner" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/runner/parameters" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/utils/infra" - - "github.com/pulumi/pulumi/sdk/v3/go/auto" - "github.com/stretchr/testify/suite" - "k8s.io/client-go/tools/clientcmd" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e" + awskubernetes "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments/aws/kubernetes" ) type eksSuite struct { k8sSuite - initOnly bool } func TestEKSSuite(t *testing.T) { - var initOnly bool - initOnlyParam, err := runner.GetProfile().ParamStore().GetBoolWithDefault(parameters.InitOnly, false) - if err == nil { - initOnly = initOnlyParam - } - suite.Run(t, &eksSuite{initOnly: initOnly}) + e2e.Run(t, &eksSuite{}, e2e.WithProvisioner(awskubernetes.EKSProvisioner( + awskubernetes.WithEKSOptions( + tifeks.WithLinuxNodeGroup(), + tifeks.WithWindowsNodeGroup(), + tifeks.WithBottlerocketNodeGroup(), + tifeks.WithLinuxARMNodeGroup(), + ), + awskubernetes.WithDeployDogstatsd(), + awskubernetes.WithDeployTestWorkload(), + ))) } func (suite *eksSuite) SetupSuite() { - ctx := context.Background() - - stackConfig := runner.ConfigMap{ - "ddagent:deploy": auto.ConfigValue{Value: "true"}, - "ddagent:fakeintake": auto.ConfigValue{Value: "true"}, - "ddtestworkload:deploy": auto.ConfigValue{Value: "true"}, - "dddogstatsd:deploy": auto.ConfigValue{Value: "true"}, - } - - _, stackOutput, err := infra.GetStackManager().GetStackNoDeleteOnFailure( - ctx, - "eks-cluster", - eks.Run, - infra.WithConfigMap(stackConfig), - ) - - if !suite.Assert().NoError(err) { - stackName, err := infra.GetStackManager().GetPulumiStackName("eks-cluster") - suite.Require().NoError(err) - suite.T().Log(dumpEKSClusterState(ctx, stackName)) - if !runner.GetProfile().AllowDevMode() || !*keepStacks { - infra.GetStackManager().DeleteStack(ctx, "eks-cluster", nil) - } - suite.T().FailNow() - } - - if suite.initOnly { - suite.T().Skip("E2E_INIT_ONLY is set, skipping tests") - } - - fakeintake := &components.FakeIntake{} - fiSerialized, err := json.Marshal(stackOutput.Outputs["dd-Fakeintake-aws-ecs"].Value) - suite.Require().NoError(err) - suite.Require().NoError(fakeintake.Import(fiSerialized, &fakeintake)) - suite.Require().NoError(fakeintake.Init(suite)) - suite.Fakeintake = fakeintake.Client() - - kubeCluster := &components.KubernetesCluster{} - kubeSerialized, err := json.Marshal(stackOutput.Outputs["dd-Cluster-eks"].Value) - suite.Require().NoError(err) - suite.Require().NoError(kubeCluster.Import(kubeSerialized, &kubeCluster)) - suite.Require().NoError(kubeCluster.Init(suite)) - suite.KubeClusterName = kubeCluster.ClusterName - suite.K8sClient = kubeCluster.Client() - suite.K8sConfig, err = clientcmd.RESTConfigFromKubeConfig([]byte(kubeCluster.KubeConfig)) - suite.Require().NoError(err) - - kubernetesAgent := &components.KubernetesAgent{} - kubernetesAgentSerialized, err := json.Marshal(stackOutput.Outputs["dd-KubernetesAgent-aws-datadog-agent"].Value) - suite.Require().NoError(err) - suite.Require().NoError(kubernetesAgent.Import(kubernetesAgentSerialized, &kubernetesAgent)) - - suite.KubernetesAgentRef = kubernetesAgent - suite.k8sSuite.SetupSuite() -} - -func (suite *eksSuite) TearDownSuite() { - if suite.initOnly { - suite.T().Logf("E2E_INIT_ONLY is set, skipping deletion") - return - } - - suite.k8sSuite.TearDownSuite() - - ctx := context.Background() - stackName, err := infra.GetStackManager().GetPulumiStackName("eks-cluster") - suite.Require().NoError(err) - suite.T().Log(dumpEKSClusterState(ctx, stackName)) + suite.Fakeintake = suite.Env().FakeIntake.Client() } diff --git a/test/new-e2e/tests/containers/k8s_test.go b/test/new-e2e/tests/containers/k8s_test.go index fb235f979c951..6290166cf6055 100644 --- a/test/new-e2e/tests/containers/k8s_test.go +++ b/test/new-e2e/tests/containers/k8s_test.go @@ -21,7 +21,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/util/pointer" "github.com/DataDog/datadog-agent/test/fakeintake/aggregator" fakeintake "github.com/DataDog/datadog-agent/test/fakeintake/client" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/components" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments" "github.com/fatih/color" "github.com/samber/lo" @@ -31,9 +31,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/types" - "k8s.io/client-go/kubernetes" "k8s.io/client-go/kubernetes/scheme" - restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/remotecommand" ) @@ -51,21 +49,12 @@ const ( var GitCommit string type k8sSuite struct { - baseSuite - - KubeClusterName string - AgentLinuxHelmInstallName string - AgentWindowsHelmInstallName string - KubernetesAgentRef *components.KubernetesAgent - - K8sConfig *restclient.Config - K8sClient kubernetes.Interface + baseSuite[environments.Kubernetes] } func (suite *k8sSuite) SetupSuite() { - suite.clusterName = suite.KubeClusterName - suite.baseSuite.SetupSuite() + suite.clusterName = suite.Env().KubernetesCluster.ClusterName } func (suite *k8sSuite) TearDownSuite() { @@ -76,10 +65,10 @@ func (suite *k8sSuite) TearDownSuite() { suite.T().Log(c("The data produced and asserted by these tests can be viewed on this dashboard:")) c = color.New(color.Bold, color.FgBlue).SprintfFunc() suite.T().Log(c("https://dddev.datadoghq.com/dashboard/qcp-brm-ysc/e2e-tests-containers-k8s?refresh_mode=paused&tpl_var_kube_cluster_name%%5B0%%5D=%s&tpl_var_fake_intake_task_family%%5B0%%5D=%s-fakeintake-ecs&from_ts=%d&to_ts=%d&live=false", - suite.KubeClusterName, - suite.KubeClusterName, - suite.startTime.UnixMilli(), - suite.endTime.UnixMilli(), + suite.clusterName, + suite.clusterName, + suite.StartTime().UnixMilli(), + suite.EndTime().UnixMilli(), )) } @@ -119,7 +108,7 @@ func (suite *k8sSuite) testUpAndRunning(waitFor time.Duration) { suite.Run("agent pods are ready and not restarting", func() { suite.EventuallyWithTf(func(c *assert.CollectT) { - linuxNodes, err := suite.K8sClient.CoreV1().Nodes().List(ctx, metav1.ListOptions{ + linuxNodes, err := suite.Env().KubernetesCluster.Client().CoreV1().Nodes().List(ctx, metav1.ListOptions{ LabelSelector: fields.OneTermEqualSelector("kubernetes.io/os", "linux").String(), }) // Can be replaced by require.NoErrorf(…) once https://github.com/stretchr/testify/pull/1481 is merged @@ -127,7 +116,7 @@ func (suite *k8sSuite) testUpAndRunning(waitFor time.Duration) { return } - windowsNodes, err := suite.K8sClient.CoreV1().Nodes().List(ctx, metav1.ListOptions{ + windowsNodes, err := suite.Env().KubernetesCluster.Client().CoreV1().Nodes().List(ctx, metav1.ListOptions{ LabelSelector: fields.OneTermEqualSelector("kubernetes.io/os", "windows").String(), }) // Can be replaced by require.NoErrorf(…) once https://github.com/stretchr/testify/pull/1481 is merged @@ -135,39 +124,39 @@ func (suite *k8sSuite) testUpAndRunning(waitFor time.Duration) { return } - linuxPods, err := suite.K8sClient.CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ - LabelSelector: fields.OneTermEqualSelector("app", suite.KubernetesAgentRef.LinuxNodeAgent.LabelSelectors["app"]).String(), + linuxPods, err := suite.Env().KubernetesCluster.Client().CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ + LabelSelector: fields.OneTermEqualSelector("app", suite.Env().Agent.LinuxNodeAgent.LabelSelectors["app"]).String(), }) // Can be replaced by require.NoErrorf(…) once https://github.com/stretchr/testify/pull/1481 is merged if !assert.NoErrorf(c, err, "Failed to list Linux datadog agent pods") { return } - windowsPods, err := suite.K8sClient.CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ - LabelSelector: fields.OneTermEqualSelector("app", suite.KubernetesAgentRef.WindowsNodeAgent.LabelSelectors["app"]).String(), + windowsPods, err := suite.Env().KubernetesCluster.Client().CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ + LabelSelector: fields.OneTermEqualSelector("app", suite.Env().Agent.WindowsNodeAgent.LabelSelectors["app"]).String(), }) // Can be replaced by require.NoErrorf(…) once https://github.com/stretchr/testify/pull/1481 is merged if !assert.NoErrorf(c, err, "Failed to list Windows datadog agent pods") { return } - clusterAgentPods, err := suite.K8sClient.CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ - LabelSelector: fields.OneTermEqualSelector("app", suite.KubernetesAgentRef.LinuxClusterAgent.LabelSelectors["app"]).String(), + clusterAgentPods, err := suite.Env().KubernetesCluster.Client().CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ + LabelSelector: fields.OneTermEqualSelector("app", suite.Env().Agent.LinuxClusterAgent.LabelSelectors["app"]).String(), }) // Can be replaced by require.NoErrorf(…) once https://github.com/stretchr/testify/pull/1481 is merged if !assert.NoErrorf(c, err, "Failed to list datadog cluster agent pods") { return } - clusterChecksPods, err := suite.K8sClient.CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ - LabelSelector: fields.OneTermEqualSelector("app", suite.KubernetesAgentRef.LinuxClusterChecks.LabelSelectors["app"]).String(), + clusterChecksPods, err := suite.Env().KubernetesCluster.Client().CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ + LabelSelector: fields.OneTermEqualSelector("app", suite.Env().Agent.LinuxClusterChecks.LabelSelectors["app"]).String(), }) // Can be replaced by require.NoErrorf(…) once https://github.com/stretchr/testify/pull/1481 is merged if !assert.NoErrorf(c, err, "Failed to list datadog cluster checks runner pods") { return } - dogstatsdPods, err := suite.K8sClient.CoreV1().Pods("dogstatsd-standalone").List(ctx, metav1.ListOptions{ + dogstatsdPods, err := suite.Env().KubernetesCluster.Client().CoreV1().Pods("dogstatsd-standalone").List(ctx, metav1.ListOptions{ LabelSelector: fields.OneTermEqualSelector("app", "dogstatsd-standalone").String(), }) // Can be replaced by require.NoErrorf(…) once https://github.com/stretchr/testify/pull/1481 is merged @@ -198,13 +187,13 @@ func (suite *k8sSuite) TestAdmissionControllerWebhooksExist() { expectedWebhookName := "datadog-webhook" suite.Run("agent registered mutating webhook configuration", func() { - mutatingConfig, err := suite.K8sClient.AdmissionregistrationV1().MutatingWebhookConfigurations().Get(ctx, expectedWebhookName, metav1.GetOptions{}) + mutatingConfig, err := suite.Env().KubernetesCluster.Client().AdmissionregistrationV1().MutatingWebhookConfigurations().Get(ctx, expectedWebhookName, metav1.GetOptions{}) suite.Require().NoError(err) suite.NotNilf(mutatingConfig, "None of the mutating webhook configurations have the name '%s'", expectedWebhookName) }) suite.Run("agent registered validating webhook configuration", func() { - validatingConfig, err := suite.K8sClient.AdmissionregistrationV1().ValidatingWebhookConfigurations().Get(ctx, expectedWebhookName, metav1.GetOptions{}) + validatingConfig, err := suite.Env().KubernetesCluster.Client().AdmissionregistrationV1().ValidatingWebhookConfigurations().Get(ctx, expectedWebhookName, metav1.GetOptions{}) suite.Require().NoError(err) suite.NotNilf(validatingConfig, "None of the validating webhook configurations have the name '%s'", expectedWebhookName) }) @@ -221,27 +210,27 @@ func (suite *k8sSuite) TestVersion() { }{ { "Linux agent", - suite.KubernetesAgentRef.LinuxNodeAgent.LabelSelectors["app"], + suite.Env().Agent.LinuxNodeAgent.LabelSelectors["app"], "agent", }, { "Windows agent", - suite.KubernetesAgentRef.WindowsNodeAgent.LabelSelectors["app"], + suite.Env().Agent.WindowsNodeAgent.LabelSelectors["app"], "agent", }, { "cluster agent", - suite.KubernetesAgentRef.LinuxClusterAgent.LabelSelectors["app"], + suite.Env().Agent.LinuxClusterAgent.LabelSelectors["app"], "cluster-agent", }, { "cluster checks", - suite.KubernetesAgentRef.LinuxClusterChecks.LabelSelectors["app"], + suite.Env().Agent.LinuxClusterChecks.LabelSelectors["app"], "agent", }, } { suite.Run(tt.podType+" pods are running the good version", func() { - linuxPods, err := suite.K8sClient.CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ + linuxPods, err := suite.Env().KubernetesCluster.Client().CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ LabelSelector: fields.OneTermEqualSelector("app", tt.appSelector).String(), Limit: 1, }) @@ -276,8 +265,8 @@ func (suite *k8sSuite) TestCLI() { func (suite *k8sSuite) testAgentCLI() { ctx := context.Background() - pod, err := suite.K8sClient.CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ - LabelSelector: fields.OneTermEqualSelector("app", suite.KubernetesAgentRef.LinuxNodeAgent.LabelSelectors["app"]).String(), + pod, err := suite.Env().KubernetesCluster.Client().CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ + LabelSelector: fields.OneTermEqualSelector("app", suite.Env().Agent.LinuxNodeAgent.LabelSelectors["app"]).String(), Limit: 1, }) suite.Require().NoError(err) @@ -383,8 +372,8 @@ func (suite *k8sSuite) testAgentCLI() { func (suite *k8sSuite) testClusterAgentCLI() { ctx := context.Background() - pod, err := suite.K8sClient.CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ - LabelSelector: fields.OneTermEqualSelector("app", suite.KubernetesAgentRef.LinuxClusterAgent.LabelSelectors["app"]).String(), + pod, err := suite.Env().KubernetesCluster.Client().CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ + LabelSelector: fields.OneTermEqualSelector("app", suite.Env().Agent.LinuxClusterAgent.LabelSelectors["app"]).String(), Limit: 1, }) suite.Require().NoError(err) @@ -844,7 +833,7 @@ func (suite *k8sSuite) testDogstatsdExternalData(kubeNamespace, kubeDeployment s ctx := context.Background() // Record old pod, so we can be sure we are not looking at the incorrect one after deletion - oldPods, err := suite.K8sClient.CoreV1().Pods(kubeNamespace).List(ctx, metav1.ListOptions{ + oldPods, err := suite.Env().KubernetesCluster.KubernetesClient.K8sClient.CoreV1().Pods(kubeNamespace).List(ctx, metav1.ListOptions{ LabelSelector: fields.OneTermEqualSelector("app", kubeDeployment).String(), }) suite.Require().NoError(err) @@ -852,7 +841,7 @@ func (suite *k8sSuite) testDogstatsdExternalData(kubeNamespace, kubeDeployment s oldPod := oldPods.Items[0] // Delete the pod to ensure it is recreated after the admission controller is deployed - err = suite.K8sClient.CoreV1().Pods(kubeNamespace).DeleteCollection(ctx, metav1.DeleteOptions{}, metav1.ListOptions{ + err = suite.Env().KubernetesCluster.KubernetesClient.K8sClient.CoreV1().Pods(kubeNamespace).DeleteCollection(ctx, metav1.DeleteOptions{}, metav1.ListOptions{ LabelSelector: fields.OneTermEqualSelector("app", kubeDeployment).String(), }) suite.Require().NoError(err) @@ -860,7 +849,7 @@ func (suite *k8sSuite) testDogstatsdExternalData(kubeNamespace, kubeDeployment s // Wait for the fresh pod to be created var pod corev1.Pod suite.Require().EventuallyWithTf(func(c *assert.CollectT) { - pods, err := suite.K8sClient.CoreV1().Pods(kubeNamespace).List(ctx, metav1.ListOptions{ + pods, err := suite.Env().KubernetesCluster.KubernetesClient.K8sClient.CoreV1().Pods(kubeNamespace).List(ctx, metav1.ListOptions{ LabelSelector: fields.OneTermEqualSelector("app", kubeDeployment).String(), }) if !assert.NoError(c, err) { @@ -1004,7 +993,7 @@ func (suite *k8sSuite) testAdmissionControllerPod(namespace string, name string, // libraries for the detected language are injected if languageShouldBeAutoDetected { suite.Require().EventuallyWithTf(func(c *assert.CollectT) { - deployment, err := suite.K8sClient.AppsV1().Deployments(namespace).Get(ctx, name, metav1.GetOptions{}) + deployment, err := suite.Env().KubernetesCluster.Client().AppsV1().Deployments(namespace).Get(ctx, name, metav1.GetOptions{}) if !assert.NoError(c, err) { return } @@ -1022,7 +1011,7 @@ func (suite *k8sSuite) testAdmissionControllerPod(namespace string, name string, } // Record old pod, so we can be sure we are not looking at the incorrect one after deletion - oldPods, err := suite.K8sClient.CoreV1().Pods(namespace).List(ctx, metav1.ListOptions{ + oldPods, err := suite.Env().KubernetesCluster.Client().CoreV1().Pods(namespace).List(ctx, metav1.ListOptions{ LabelSelector: fields.OneTermEqualSelector("app", name).String(), }) suite.Require().NoError(err) @@ -1030,7 +1019,7 @@ func (suite *k8sSuite) testAdmissionControllerPod(namespace string, name string, oldPod := oldPods.Items[0] // Delete the pod to ensure it is recreated after the admission controller is deployed - err = suite.K8sClient.CoreV1().Pods(namespace).DeleteCollection(ctx, metav1.DeleteOptions{}, metav1.ListOptions{ + err = suite.Env().KubernetesCluster.Client().CoreV1().Pods(namespace).DeleteCollection(ctx, metav1.DeleteOptions{}, metav1.ListOptions{ LabelSelector: fields.OneTermEqualSelector("app", name).String(), }) suite.Require().NoError(err) @@ -1038,7 +1027,7 @@ func (suite *k8sSuite) testAdmissionControllerPod(namespace string, name string, // Wait for the fresh pod to be created var pod corev1.Pod suite.Require().EventuallyWithTf(func(c *assert.CollectT) { - pods, err := suite.K8sClient.CoreV1().Pods(namespace).List(ctx, metav1.ListOptions{ + pods, err := suite.Env().KubernetesCluster.Client().CoreV1().Pods(namespace).List(ctx, metav1.ListOptions{ LabelSelector: fields.OneTermEqualSelector("app", name).String(), }) if !assert.NoError(c, err) { @@ -1134,7 +1123,7 @@ func (suite *k8sSuite) testAdmissionControllerPod(namespace string, name string, func (suite *k8sSuite) TestContainerImage() { sendEvent := func(alertType, text string) { - if _, err := suite.datadogClient.PostEvent(&datadog.Event{ + if _, err := suite.DatadogClient().PostEvent(&datadog.Event{ Title: pointer.Ptr(suite.T().Name()), Text: pointer.Ptr(fmt.Sprintf(`%%%%%% `+"```"+` @@ -1204,7 +1193,7 @@ func (suite *k8sSuite) TestContainerImage() { func (suite *k8sSuite) TestSBOM() { sendEvent := func(alertType, text string) { - if _, err := suite.datadogClient.PostEvent(&datadog.Event{ + if _, err := suite.DatadogClient().PostEvent(&datadog.Event{ Title: pointer.Ptr(suite.T().Name()), Text: pointer.Ptr(fmt.Sprintf(`%%%%%% `+"```"+` @@ -1329,7 +1318,7 @@ func (suite *k8sSuite) TestSBOM() { func (suite *k8sSuite) TestContainerLifecycleEvents() { sendEvent := func(alertType, text string) { - if _, err := suite.datadogClient.PostEvent(&datadog.Event{ + if _, err := suite.DatadogClient().PostEvent(&datadog.Event{ Title: pointer.Ptr(suite.T().Name()), Text: pointer.Ptr(fmt.Sprintf(`%%%%%% `+"```"+` @@ -1359,7 +1348,7 @@ func (suite *k8sSuite) TestContainerLifecycleEvents() { var nginxPod corev1.Pod suite.Require().EventuallyWithTf(func(c *assert.CollectT) { - pods, err := suite.K8sClient.CoreV1().Pods("workload-nginx").List(context.Background(), metav1.ListOptions{ + pods, err := suite.Env().KubernetesCluster.Client().CoreV1().Pods("workload-nginx").List(context.Background(), metav1.ListOptions{ LabelSelector: fields.OneTermEqualSelector("app", "nginx").String(), FieldSelector: fields.OneTermEqualSelector("status.phase", "Running").String(), }) @@ -1379,7 +1368,7 @@ func (suite *k8sSuite) TestContainerLifecycleEvents() { }) }, 1*time.Minute, 10*time.Second, "Failed to find an nginx pod") - err := suite.K8sClient.CoreV1().Pods("workload-nginx").Delete(context.Background(), nginxPod.Name, metav1.DeleteOptions{}) + err := suite.Env().KubernetesCluster.Client().CoreV1().Pods("workload-nginx").Delete(context.Background(), nginxPod.Name, metav1.DeleteOptions{}) suite.Require().NoError(err) suite.EventuallyWithTf(func(collect *assert.CollectT) { @@ -1422,7 +1411,7 @@ func (suite *k8sSuite) TestContainerLifecycleEvents() { func (suite *k8sSuite) testHPA(namespace, deployment string) { suite.Run(fmt.Sprintf("hpa kubernetes_state.deployment.replicas_available{kube_namespace:%s,kube_deployment:%s}", namespace, deployment), func() { sendEvent := func(alertType, text string, time *int) { - if _, err := suite.datadogClient.PostEvent(&datadog.Event{ + if _, err := suite.DatadogClient().PostEvent(&datadog.Event{ Title: pointer.Ptr(fmt.Sprintf("testHPA %s/%s", namespace, deployment)), Text: pointer.Ptr(fmt.Sprintf(`%%%%%% %s @@ -1510,7 +1499,7 @@ func (suite *k8sSuite) testHPA(namespace, deployment string) { type podExecOption func(*corev1.PodExecOptions) func (suite *k8sSuite) podExec(namespace, pod, container string, cmd []string, podOptions ...podExecOption) (stdout, stderr string, err error) { - req := suite.K8sClient.CoreV1().RESTClient().Post().Resource("pods").Namespace(namespace).Name(pod).SubResource("exec") + req := suite.Env().KubernetesCluster.Client().CoreV1().RESTClient().Post().Resource("pods").Namespace(namespace).Name(pod).SubResource("exec") option := &corev1.PodExecOptions{ Stdin: false, Stdout: true, @@ -1529,7 +1518,7 @@ func (suite *k8sSuite) podExec(namespace, pod, container string, cmd []string, p scheme.ParameterCodec, ) - exec, err := remotecommand.NewSPDYExecutor(suite.K8sConfig, "POST", req.URL()) + exec, err := remotecommand.NewSPDYExecutor(suite.Env().KubernetesCluster.KubernetesClient.K8sConfig, "POST", req.URL()) if err != nil { return "", "", err } diff --git a/test/new-e2e/tests/containers/kindvm_test.go b/test/new-e2e/tests/containers/kindvm_test.go index 5282e6fd65e34..01d10f2b5ea1a 100644 --- a/test/new-e2e/tests/containers/kindvm_test.go +++ b/test/new-e2e/tests/containers/kindvm_test.go @@ -6,19 +6,13 @@ package containers import ( - "context" - "encoding/json" "testing" - "github.com/DataDog/test-infra-definitions/scenarios/aws/kindvm" + "github.com/DataDog/test-infra-definitions/scenarios/aws/ec2" + "github.com/DataDog/test-infra-definitions/scenarios/aws/fakeintake" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/components" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/runner" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/utils/infra" - - "github.com/pulumi/pulumi/sdk/v3/go/auto" - "github.com/stretchr/testify/suite" - "k8s.io/client-go/tools/clientcmd" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e" + awskubernetes "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments/aws/kubernetes" ) type kindSuite struct { @@ -26,69 +20,19 @@ type kindSuite struct { } func TestKindSuite(t *testing.T) { - suite.Run(t, &kindSuite{}) + e2e.Run(t, &kindSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner( + awskubernetes.WithEC2VMOptions( + ec2.WithInstanceType("t3.xlarge"), + ), + awskubernetes.WithFakeIntakeOptions(fakeintake.WithMemory(2048)), + awskubernetes.WithDeployDogstatsd(), + awskubernetes.WithDeployTestWorkload(), + ))) } func (suite *kindSuite) SetupSuite() { - ctx := context.Background() - - stackConfig := runner.ConfigMap{ - "ddinfra:aws/defaultInstanceType": auto.ConfigValue{Value: "t3.xlarge"}, - "ddagent:deploy": auto.ConfigValue{Value: "true"}, - "ddagent:fakeintake": auto.ConfigValue{Value: "true"}, - "ddtestworkload:deploy": auto.ConfigValue{Value: "true"}, - "dddogstatsd:deploy": auto.ConfigValue{Value: "true"}, - } - - _, stackOutput, err := infra.GetStackManager().GetStackNoDeleteOnFailure( - ctx, - "kind-cluster", - kindvm.Run, - infra.WithConfigMap(stackConfig), - ) - if !suite.Assert().NoError(err) { - stackName, err := infra.GetStackManager().GetPulumiStackName("kind-cluster") - suite.Require().NoError(err) - suite.T().Log(dumpKindClusterState(ctx, stackName)) - if !runner.GetProfile().AllowDevMode() || !*keepStacks { - infra.GetStackManager().DeleteStack(ctx, "kind-cluster", nil) - } - suite.T().FailNow() - } - - var fakeintake components.FakeIntake - fiSerialized, err := json.Marshal(stackOutput.Outputs["dd-Fakeintake-aws-kind"].Value) - suite.Require().NoError(err) - suite.Require().NoError(fakeintake.Import(fiSerialized, &fakeintake)) - suite.Require().NoError(fakeintake.Init(suite)) - suite.Fakeintake = fakeintake.Client() - - var kubeCluster components.KubernetesCluster - kubeSerialized, err := json.Marshal(stackOutput.Outputs["dd-Cluster-kind"].Value) - suite.Require().NoError(err) - suite.Require().NoError(kubeCluster.Import(kubeSerialized, &kubeCluster)) - suite.Require().NoError(kubeCluster.Init(suite)) - suite.KubeClusterName = kubeCluster.ClusterName - suite.K8sClient = kubeCluster.Client() - suite.K8sConfig, err = clientcmd.RESTConfigFromKubeConfig([]byte(kubeCluster.KubeConfig)) - suite.Require().NoError(err) - - kubernetesAgent := &components.KubernetesAgent{} - kubernetesAgentSerialized, err := json.Marshal(stackOutput.Outputs["dd-KubernetesAgent-aws-datadog-agent"].Value) - suite.Require().NoError(err) - suite.Require().NoError(kubernetesAgent.Import(kubernetesAgentSerialized, &kubernetesAgent)) - suite.KubernetesAgentRef = kubernetesAgent - suite.k8sSuite.SetupSuite() -} - -func (suite *kindSuite) TearDownSuite() { - suite.k8sSuite.TearDownSuite() - - ctx := context.Background() - stackName, err := infra.GetStackManager().GetPulumiStackName("kind-cluster") - suite.Require().NoError(err) - suite.T().Log(dumpKindClusterState(ctx, stackName)) + suite.Fakeintake = suite.Env().FakeIntake.Client() } func (suite *kindSuite) TestControlPlane() { From 79868ca28cd6adc9f907b063440705825e9111f5 Mon Sep 17 00:00:00 2001 From: pducolin <45568537+pducolin@users.noreply.github.com> Date: Mon, 2 Dec 2024 15:10:22 +0100 Subject: [PATCH 196/439] [.run] add context about .run folder (#31117) --- .run/README.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .run/README.md diff --git a/.run/README.md b/.run/README.md new file mode 100644 index 0000000000000..4293536650335 --- /dev/null +++ b/.run/README.md @@ -0,0 +1,3 @@ +# IntelliJ Goland out of the box configuration + +This folder contains scripts and tasks for IntelliJ Goland to build and run the agent and its sub-processes \ No newline at end of file From 067141b189314c6af5206a75e99303254f83095e Mon Sep 17 00:00:00 2001 From: Alexandre Menasria <47357713+amenasria@users.noreply.github.com> Date: Mon, 2 Dec 2024 15:29:46 +0100 Subject: [PATCH 197/439] [JUnit] Raise error on `datadog-ci` command not found (#29458) --- tasks/libs/common/junit_upload_core.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/tasks/libs/common/junit_upload_core.py b/tasks/libs/common/junit_upload_core.py index 54d01fc2af0a4..b7282d9bf4ebc 100644 --- a/tasks/libs/common/junit_upload_core.py +++ b/tasks/libs/common/junit_upload_core.py @@ -29,14 +29,17 @@ E2E_INTERNAL_ERROR_STRING = "E2E INTERNAL ERROR" CODEOWNERS_ORG_PREFIX = "@DataDog/" REPO_NAME_PREFIX = "github.com/DataDog/datadog-agent/" -if platform.system() == "Windows": - DATADOG_CI_COMMAND = [r"c:\devtools\datadog-ci\datadog-ci", "junit", "upload"] -else: - DATADOG_CI_COMMAND = [which("datadog-ci"), "junit", "upload"] JOB_ENV_FILE_NAME = "job_env.txt" TAGS_FILE_NAME = "tags.txt" +def get_datadog_ci_command(): + path_datadog_ci = which("datadog-ci") + if path_datadog_ci is None: + raise FileNotFoundError("datadog-ci command not found") + return path_datadog_ci + + def enrich_junitxml(xml_path: str, flavor: AgentFlavor): """ Modifies the JUnit XML file: @@ -232,6 +235,7 @@ def upload_junitxmls(team_dir: Path): """ Upload all per-team split JUnit XMLs from given directory. """ + datadog_ci_command = [get_datadog_ci_command(), "junit", "upload"] additional_tags = read_additional_tags(team_dir.parent) process_env = _update_environ(team_dir.parent) processes = [] @@ -242,7 +246,7 @@ def upload_junitxmls(team_dir: Path): for flags, files in xml_files.items(): args = set_tags(owner, flavor, flags, additional_tags, files[0]) args.extend(files) - processes.append(Popen(DATADOG_CI_COMMAND + args, bufsize=-1, env=process_env, stdout=PIPE, stderr=PIPE)) + processes.append(Popen(datadog_ci_command + args, bufsize=-1, env=process_env, stdout=PIPE, stderr=PIPE)) for process in processes: stdout, stderr = process.communicate() @@ -250,7 +254,7 @@ def upload_junitxmls(team_dir: Path): print(f" Uploaded {len(tuple(team_dir.iterdir()))} files for {team_dir.name}") if stderr: print(f"Failed uploading junit:\n{stderr.decode()}", file=sys.stderr) - raise CalledProcessError(process.returncode, DATADOG_CI_COMMAND) + raise CalledProcessError(process.returncode, datadog_ci_command) return "" # For ThreadPoolExecutor.map. Without this it prints None in the log output. From a480276bd0091d23576efd236a819b33fc46e70d Mon Sep 17 00:00:00 2001 From: Guy Arbitman Date: Mon, 2 Dec 2024 16:42:53 +0200 Subject: [PATCH 198/439] usm: http2: tests: Use empty configuration (#31652) --- pkg/network/usm/usm_http2_monitor_test.go | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/pkg/network/usm/usm_http2_monitor_test.go b/pkg/network/usm/usm_http2_monitor_test.go index 2e92c2647989b..438dd4cf8ccd4 100644 --- a/pkg/network/usm/usm_http2_monitor_test.go +++ b/pkg/network/usm/usm_http2_monitor_test.go @@ -78,8 +78,7 @@ type usmHTTP2Suite struct { } func (s *usmHTTP2Suite) getCfg() *config.Config { - cfg := config.New() - cfg.EnableIstioMonitoring = false + cfg := utils.NewUSMEmptyConfig() cfg.EnableHTTP2Monitoring = true cfg.EnableGoTLSSupport = s.isTLS cfg.GoTLSExcludeSelf = s.isTLS @@ -1510,9 +1509,7 @@ func (s *usmHTTP2Suite) TestRawHuffmanEncoding() { func TestHTTP2InFlightMapCleaner(t *testing.T) { skipIfKernelNotSupported(t) - cfg := config.New() - cfg.EnableGoTLSSupport = false - cfg.EnableIstioMonitoring = false + cfg := utils.NewUSMEmptyConfig() cfg.EnableHTTP2Monitoring = true cfg.HTTP2DynamicTableMapCleanerInterval = 5 * time.Second cfg.HTTPIdleConnectionTTL = time.Second From 467c6a4e8e88488b63876999a770275668555905 Mon Sep 17 00:00:00 2001 From: Nenad Noveljic <18366081+nenadnoveljic@users.noreply.github.com> Date: Mon, 2 Dec 2024 16:58:48 +0100 Subject: [PATCH 199/439] Increase extreme memory usage limit (#31604) --- pkg/collector/corechecks/oracle/oracle_integration_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/collector/corechecks/oracle/oracle_integration_test.go b/pkg/collector/corechecks/oracle/oracle_integration_test.go index a94e716c5df91..c0df585ca2065 100644 --- a/pkg/collector/corechecks/oracle/oracle_integration_test.go +++ b/pkg/collector/corechecks/oracle/oracle_integration_test.go @@ -216,7 +216,7 @@ func TestChkRun(t *testing.T) { diff1 := (pgaAfter1StRun - pgaBefore) / 1024 var extremePGAUsage float64 if isDbVersionGreaterOrEqualThan(&c, "12.2") { - extremePGAUsage = 1024 + extremePGAUsage = 2048 } else { extremePGAUsage = 8192 } From 0200b9d306bb8f796bdd9046aba181a6d67c2f4b Mon Sep 17 00:00:00 2001 From: Mackenzie <63265430+mackjmr@users.noreply.github.com> Date: Mon, 2 Dec 2024 17:09:31 +0100 Subject: [PATCH 200/439] Fix converter (#31487) --- comp/otelcol/converter/impl/autoconfigure.go | 85 +++++++----- comp/otelcol/converter/impl/converter_test.go | 123 +++++++++++++++++- comp/otelcol/converter/impl/prometheus.go | 32 ++--- .../connectors/already-set/config.yaml | 2 +- .../connectors/no-dd-connector/config.yaml | 2 +- .../connectors/set-default/config-result.yaml | 2 +- .../connectors/set-default/config.yaml | 2 +- .../dd-core-cfg/all/api-section/acfg.yaml | 2 + .../all/api-section/config-result.yaml | 41 ++++++ .../dd-core-cfg/all/api-section/config.yaml | 39 ++++++ .../all/key-site-section/acfg.yaml | 2 + .../all/key-site-section/config-result.yaml | 41 ++++++ .../all/key-site-section/config.yaml | 41 ++++++ .../dd-core-cfg/all/no-api-section/acfg.yaml | 2 + .../all/no-api-section/config-result.yaml | 41 ++++++ .../all/no-api-section/config.yaml | 38 ++++++ .../dd-core-cfg/all/no-overrides/acfg.yaml | 2 + .../dd-core-cfg/all/no-overrides/config.yaml | 41 ++++++ .../apikey/api-set-no-key/acfg.yaml | 2 + .../apikey/api-set-no-key/config-result.yaml | 41 ++++++ .../apikey/api-set-no-key/config.yaml | 40 ++++++ .../dd-core-cfg/apikey/empty-string/acfg.yaml | 1 + .../apikey/empty-string/config-result.yaml | 40 ++++++ .../apikey/empty-string/config.yaml | 40 ++++++ .../apikey/multiple-dd-exporter/acfg.yaml | 1 + .../multiple-dd-exporter/config-result.yaml | 45 +++++++ .../apikey/multiple-dd-exporter/config.yaml | 47 +++++++ .../apikey/no-api-key-section/acfg.yaml | 1 + .../no-api-key-section/config-result.yaml | 40 ++++++ .../apikey/no-api-key-section/config.yaml | 38 ++++++ .../dd-core-cfg/apikey/secret/acfg.yaml | 1 + .../apikey/secret/config-result.yaml | 40 ++++++ .../dd-core-cfg/apikey/secret/config.yaml | 40 ++++++ .../dd-core-cfg/apikey/unset/acfg.yaml | 1 + .../apikey/unset/config-result.yaml | 40 ++++++ .../dd-core-cfg/apikey/unset/config.yaml | 39 ++++++ .../impl/testdata/dd-core-cfg/none/acfg.yaml | 0 .../dd-core-cfg/none/config-result.yaml | 41 ++++++ .../testdata/dd-core-cfg/none/config.yaml | 41 ++++++ .../site/api-set-no-site/acfg.yaml | 1 + .../site/api-set-no-site/config-result.yaml | 41 ++++++ .../site/api-set-no-site/config.yaml | 40 ++++++ .../dd-core-cfg/site/empty-string/acfg.yaml | 2 + .../site/empty-string/config-result.yaml | 41 ++++++ .../dd-core-cfg/site/empty-string/config.yaml | 41 ++++++ .../site/multiple-dd-exporter/acfg.yaml | 2 + .../multiple-dd-exporter/config-result.yaml | 47 +++++++ .../site/multiple-dd-exporter/config.yaml | 47 +++++++ .../site/no-api-site-section/acfg.yaml | 2 + .../no-api-site-section/config-result.yaml | 41 ++++++ .../site/no-api-site-section/config.yaml | 40 ++++++ .../testdata/dd-core-cfg/site/unset/acfg.yaml | 2 + .../dd-core-cfg/site/unset/config-result.yaml | 41 ++++++ .../dd-core-cfg/site/unset/config.yaml | 41 ++++++ .../impl/testdata/dd/config-result.yaml | 2 +- .../converter/impl/testdata/dd/config.yaml | 2 +- .../processors/no-changes/config.yaml | 2 +- .../no-processor-partial/config-result.yaml | 2 +- .../no-processor-partial/config.yaml | 2 +- .../no-processors/config-result.yaml | 2 +- .../processors/no-processors/config.yaml | 2 +- .../other-processors/config-result.yaml | 2 +- .../processors/other-processors/config.yaml | 2 +- .../job-name-change/config-result.yaml | 2 +- .../receivers/job-name-change/config.yaml | 2 +- .../multi-dd-partial-prom/config-result.yaml | 6 +- .../multi-dd-partial-prom/config.yaml | 6 +- .../config.yaml | 43 ++++++ .../no-changes-multiple-dd/config.yaml | 47 +++++++ .../testdata/receivers/no-changes/config.yaml | 2 +- .../no-prom-multi-dd/config-result.yaml | 4 +- .../receivers/no-prom-multi-dd/config.yaml | 4 +- .../config-result.yaml | 2 +- .../no-prom-not-default-addr/config.yaml | 2 +- .../no-prometheus-receiver/config-result.yaml | 2 +- .../no-prometheus-receiver/config.yaml | 2 +- .../no-receivers-defined/config-result.yaml | 2 +- .../no-receivers-defined/config.yaml | 2 +- 78 files changed, 1611 insertions(+), 81 deletions(-) create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/all/api-section/acfg.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/all/api-section/config-result.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/all/api-section/config.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/all/key-site-section/acfg.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/all/key-site-section/config-result.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/all/key-site-section/config.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/all/no-api-section/acfg.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/all/no-api-section/config-result.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/all/no-api-section/config.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/all/no-overrides/acfg.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/all/no-overrides/config.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/api-set-no-key/acfg.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/api-set-no-key/config-result.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/api-set-no-key/config.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/empty-string/acfg.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/empty-string/config-result.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/empty-string/config.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/multiple-dd-exporter/acfg.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/multiple-dd-exporter/config-result.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/multiple-dd-exporter/config.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/no-api-key-section/acfg.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/no-api-key-section/config-result.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/no-api-key-section/config.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/secret/acfg.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/secret/config-result.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/secret/config.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/unset/acfg.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/unset/config-result.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/unset/config.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/none/acfg.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/none/config-result.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/none/config.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/site/api-set-no-site/acfg.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/site/api-set-no-site/config-result.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/site/api-set-no-site/config.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/site/empty-string/acfg.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/site/empty-string/config-result.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/site/empty-string/config.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/site/multiple-dd-exporter/acfg.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/site/multiple-dd-exporter/config-result.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/site/multiple-dd-exporter/config.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/site/no-api-site-section/acfg.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/site/no-api-site-section/config-result.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/site/no-api-site-section/config.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/site/unset/acfg.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/site/unset/config-result.yaml create mode 100644 comp/otelcol/converter/impl/testdata/dd-core-cfg/site/unset/config.yaml create mode 100644 comp/otelcol/converter/impl/testdata/receivers/no-changes-multiple-dd-same-pipeline/config.yaml create mode 100644 comp/otelcol/converter/impl/testdata/receivers/no-changes-multiple-dd/config.yaml diff --git a/comp/otelcol/converter/impl/autoconfigure.go b/comp/otelcol/converter/impl/autoconfigure.go index af0eb118c008c..b2c5a287c51bc 100644 --- a/comp/otelcol/converter/impl/autoconfigure.go +++ b/comp/otelcol/converter/impl/autoconfigure.go @@ -120,6 +120,9 @@ func addComponentToPipeline(conf *confmap.Conf, comp component, pipelineName str // For example, if api key is not found in otel config, it can be retrieved from core // agent config instead. func addCoreAgentConfig(conf *confmap.Conf, coreCfg config.Component) { + if coreCfg == nil { + return + } stringMapConf := conf.ToStringMap() exporters, ok := stringMapConf["exporters"] if !ok { @@ -129,43 +132,61 @@ func addCoreAgentConfig(conf *confmap.Conf, coreCfg config.Component) { if !ok { return } - datadog, ok := exporterMap["datadog"] - if !ok { + reg, err := regexp.Compile(secretRegex) + if err != nil { return } - datadogMap, ok := datadog.(map[string]any) - if !ok { - return - } - api, ok := datadogMap["api"] - if !ok { - return - } - apiMap, ok := api.(map[string]any) - if !ok { - return - } - - apiKey, ok := apiMap["key"] - if ok { - key, ok := apiKey.(string) - if ok && key != "" { - match, _ := regexp.MatchString(secretRegex, apiKey.(string)) - if !match { + for exporter := range exporterMap { + if componentName(exporter) == "datadog" { + datadog, ok := exporterMap[exporter] + if !ok { return } + datadogMap, ok := datadog.(map[string]any) + if !ok { + // datadog section is there, but there is nothing in it. We + // need to add it so we can add to it. + exporterMap[exporter] = make(map[string]any) + datadogMap = exporterMap[exporter].(map[string]any) + } + api, ok := datadogMap["api"] + // ok can be true if api section is there but contains nothing (api == nil). + // In which case, we need to add it so we can add to it. + if !ok || api == nil { + datadogMap["api"] = make(map[string]any, 2) + api = datadogMap["api"] + } + apiMap, ok := api.(map[string]any) + if !ok { + return + } + + // api::site + apiSite := apiMap["site"] + if (apiSite == nil || apiSite == "") && coreCfg.Get("site") != nil { + apiMap["site"] = coreCfg.Get("site") + } + + // api::key + var match bool + apiKey, ok := apiMap["key"] + if ok { + var key string + if keyString, okString := apiKey.(string); okString { + key = keyString + } + if ok && key != "" { + match = reg.Match([]byte(key)) + if !match { + continue + } + } + } + // TODO: add logic to either fail or log message if api key not found + if (apiKey == nil || apiKey == "" || match) && coreCfg.Get("api_key") != nil { + apiMap["key"] = coreCfg.Get("api_key") + } } } - // this is the only reference to Requires.Conf - // TODO: add logic to either fail or log message if api key not found - if coreCfg != nil { - apiMap["key"] = coreCfg.Get("api_key") - - apiSite, ok := apiMap["site"] - if ok && apiSite == "" { - apiMap["site"] = coreCfg.Get("site") - } - } - *conf = *confmap.NewFromStringMap(stringMapConf) } diff --git a/comp/otelcol/converter/impl/converter_test.go b/comp/otelcol/converter/impl/converter_test.go index b742e066059fe..8ef0926120ae6 100644 --- a/comp/otelcol/converter/impl/converter_test.go +++ b/comp/otelcol/converter/impl/converter_test.go @@ -7,10 +7,13 @@ package converterimpl import ( "context" + "os" "path/filepath" "testing" + "github.com/DataDog/datadog-agent/comp/core/config" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "go.opentelemetry.io/collector/confmap" "go.opentelemetry.io/collector/confmap/provider/envprovider" "go.opentelemetry.io/collector/confmap/provider/fileprovider" @@ -48,6 +51,7 @@ func TestConvert(t *testing.T) { name string provided string expectedResult string + agentConfig string }{ { name: "connectors/no-dd-connector", @@ -109,6 +113,16 @@ func TestConvert(t *testing.T) { provided: "receivers/no-changes/config.yaml", expectedResult: "receivers/no-changes/config.yaml", }, + { + name: "receivers/no-changes-multiple-dd", + provided: "receivers/no-changes-multiple-dd/config.yaml", + expectedResult: "receivers/no-changes-multiple-dd/config.yaml", + }, + { + name: "receivers/no-changes-multiple-dd-same-pipeline", + provided: "receivers/no-changes-multiple-dd-same-pipeline/config.yaml", + expectedResult: "receivers/no-changes-multiple-dd-same-pipeline/config.yaml", + }, { name: "receivers/no-prometheus-receiver", provided: "receivers/no-prometheus-receiver/config.yaml", @@ -144,11 +158,114 @@ func TestConvert(t *testing.T) { provided: "processors/dd-connector-multi-pipelines/config.yaml", expectedResult: "processors/dd-connector-multi-pipelines/config-result.yaml", }, + { + name: "dd-core-cfg/apikey/empty-string", + provided: "dd-core-cfg/apikey/empty-string/config.yaml", + expectedResult: "dd-core-cfg/apikey/empty-string/config-result.yaml", + agentConfig: "dd-core-cfg/apikey/empty-string/acfg.yaml", + }, + { + name: "dd-core-cfg/apikey/unset", + provided: "dd-core-cfg/apikey/unset/config.yaml", + expectedResult: "dd-core-cfg/apikey/unset/config-result.yaml", + agentConfig: "dd-core-cfg/apikey/unset/acfg.yaml", + }, + { + name: "dd-core-cfg/apikey/secret", + provided: "dd-core-cfg/apikey/secret/config.yaml", + expectedResult: "dd-core-cfg/apikey/secret/config-result.yaml", + agentConfig: "dd-core-cfg/apikey/secret/acfg.yaml", + }, + { + name: "dd-core-cfg/apikey/api-set-no-key", + provided: "dd-core-cfg/apikey/api-set-no-key/config.yaml", + expectedResult: "dd-core-cfg/apikey/api-set-no-key/config-result.yaml", + agentConfig: "dd-core-cfg/apikey/api-set-no-key/acfg.yaml", + }, + { + name: "dd-core-cfg/apikey/no-api-key-section", + provided: "dd-core-cfg/apikey/no-api-key-section/config.yaml", + expectedResult: "dd-core-cfg/apikey/no-api-key-section/config-result.yaml", + agentConfig: "dd-core-cfg/apikey/no-api-key-section/acfg.yaml", + }, + { + name: "dd-core-cfg/apikey/multiple-dd-exporter", + provided: "dd-core-cfg/apikey/multiple-dd-exporter/config.yaml", + expectedResult: "dd-core-cfg/apikey/multiple-dd-exporter/config-result.yaml", + agentConfig: "dd-core-cfg/apikey/multiple-dd-exporter/acfg.yaml", + }, + { + name: "dd-core-cfg/site/empty-string", + provided: "dd-core-cfg/site/empty-string/config.yaml", + expectedResult: "dd-core-cfg/site/empty-string/config-result.yaml", + agentConfig: "dd-core-cfg/site/empty-string/acfg.yaml", + }, + { + name: "dd-core-cfg/site/multiple-dd-exporter", + provided: "dd-core-cfg/site/multiple-dd-exporter/config.yaml", + expectedResult: "dd-core-cfg/site/multiple-dd-exporter/config-result.yaml", + agentConfig: "dd-core-cfg/site/multiple-dd-exporter/acfg.yaml", + }, + { + name: "dd-core-cfg/site/no-api-site-section", + provided: "dd-core-cfg/site/no-api-site-section/config.yaml", + expectedResult: "dd-core-cfg/site/no-api-site-section/config-result.yaml", + agentConfig: "dd-core-cfg/site/no-api-site-section/acfg.yaml", + }, + { + name: "dd-core-cfg/site/unset", + provided: "dd-core-cfg/site/unset/config.yaml", + expectedResult: "dd-core-cfg/site/unset/config-result.yaml", + agentConfig: "dd-core-cfg/site/unset/acfg.yaml", + }, + { + name: "dd-core-cfg/site/api-set-no-site", + provided: "dd-core-cfg/site/api-set-no-site/config.yaml", + expectedResult: "dd-core-cfg/site/api-set-no-site/config-result.yaml", + agentConfig: "dd-core-cfg/site/api-set-no-site/acfg.yaml", + }, + { + name: "dd-core-cfg/all/no-overrides", + provided: "dd-core-cfg/all/no-overrides/config.yaml", + expectedResult: "dd-core-cfg/all/no-overrides/config.yaml", + agentConfig: "dd-core-cfg/all/no-overrides/acfg.yaml", + }, + { + name: "dd-core-cfg/all/api-section", + provided: "dd-core-cfg/all/api-section/config.yaml", + expectedResult: "dd-core-cfg/all/api-section/config-result.yaml", + agentConfig: "dd-core-cfg/all/api-section/acfg.yaml", + }, + { + name: "dd-core-cfg/all/key-site-section", + provided: "dd-core-cfg/all/key-site-section/config.yaml", + expectedResult: "dd-core-cfg/all/key-site-section/config-result.yaml", + agentConfig: "dd-core-cfg/all/key-site-section/acfg.yaml", + }, + { + name: "dd-core-cfg/all/no-api-section", + provided: "dd-core-cfg/all/no-api-section/config.yaml", + expectedResult: "dd-core-cfg/all/no-api-section/config-result.yaml", + agentConfig: "dd-core-cfg/all/no-api-section/acfg.yaml", + }, + { + name: "dd-core-cfg/none", + provided: "dd-core-cfg/none/config.yaml", + expectedResult: "dd-core-cfg/none/config-result.yaml", + agentConfig: "dd-core-cfg/none/acfg.yaml", + }, } for _, tc := range tests { t.Run(tc.name, func(t *testing.T) { - converter, err := NewConverterForAgent(Requires{}) + r := Requires{} + if tc.agentConfig != "" { + f, err := os.ReadFile(uriFromFile(tc.agentConfig)[0]) + require.NoError(t, err) + acfg := config.NewMockFromYAML(t, string(f)) + r.Conf = acfg + } + converter, err := NewConverterForAgent(r) assert.NoError(t, err) resolver, err := newResolver(uriFromFile(tc.provided)) @@ -166,9 +283,13 @@ func TestConvert(t *testing.T) { assert.Equal(t, confResult.ToStringMap(), conf.ToStringMap()) }) } + // test using newConverter function to simulate ocb environment nopLogger := zap.NewNop() for _, tc := range tests { + if tc.agentConfig != "" { + continue + } t.Run(tc.name, func(t *testing.T) { converter := newConverter(confmap.ConverterSettings{Logger: nopLogger}) diff --git a/comp/otelcol/converter/impl/prometheus.go b/comp/otelcol/converter/impl/prometheus.go index a26b0d7e5342a..9e3dc9e489ff8 100644 --- a/comp/otelcol/converter/impl/prometheus.go +++ b/comp/otelcol/converter/impl/prometheus.go @@ -116,9 +116,11 @@ func addPrometheusReceiver(conf *confmap.Conf, comp component) { return } if targetString == internalMetricsAddress { - if ddExporter := receiverInPipelineWithDatadogExporter(conf, receiver); ddExporter != "" { + if ddExporters := receiverInPipelineWithDatadogExporter(conf, receiver); ddExporters != nil { scrapeConfigMap["job_name"] = "datadog-agent" - delete(datadogExportersMap, ddExporter) + for _, ddExporter := range ddExporters { + delete(datadogExportersMap, ddExporter) + } } } } @@ -186,28 +188,29 @@ func addPrometheusReceiver(conf *confmap.Conf, comp component) { } } -func receiverInPipelineWithDatadogExporter(conf *confmap.Conf, receiverName string) string { +func receiverInPipelineWithDatadogExporter(conf *confmap.Conf, receiverName string) []string { + var ddExporters []string stringMapConf := conf.ToStringMap() service, ok := stringMapConf["service"] if !ok { - return "" + return nil } serviceMap, ok := service.(map[string]any) if !ok { - return "" + return nil } pipelines, ok := serviceMap["pipelines"] if !ok { - return "" + return nil } pipelinesMap, ok := pipelines.(map[string]any) if !ok { - return "" + return nil } for _, components := range pipelinesMap { componentsMap, ok := components.(map[string]any) if !ok { - return "" + return nil } exporters, ok := componentsMap["exporters"] if !ok { @@ -215,7 +218,7 @@ func receiverInPipelineWithDatadogExporter(conf *confmap.Conf, receiverName stri } exportersSlice, ok := exporters.([]any) if !ok { - return "" + return nil } for _, exporter := range exportersSlice { if exporterString, ok := exporter.(string); ok { @@ -227,26 +230,23 @@ func receiverInPipelineWithDatadogExporter(conf *confmap.Conf, receiverName stri } receiverSlice, ok := receivers.([]any) if !ok { - return "" + return nil } for _, receiver := range receiverSlice { receiverString, ok := receiver.(string) if !ok { - return "" + return nil } if receiverString == receiverName { - return exporterString + ddExporters = append(ddExporters, exporterString) } - } - } } } } - - return "" + return ddExporters } func getDatadogExporters(conf *confmap.Conf) map[string]any { diff --git a/comp/otelcol/converter/impl/testdata/connectors/already-set/config.yaml b/comp/otelcol/converter/impl/testdata/connectors/already-set/config.yaml index 143029b8cef5b..4c06c79247850 100644 --- a/comp/otelcol/converter/impl/testdata/connectors/already-set/config.yaml +++ b/comp/otelcol/converter/impl/testdata/connectors/already-set/config.yaml @@ -11,7 +11,7 @@ receivers: exporters: datadog: api: - key: 12345 + key: abcde12345 extensions: pprof/user-defined: diff --git a/comp/otelcol/converter/impl/testdata/connectors/no-dd-connector/config.yaml b/comp/otelcol/converter/impl/testdata/connectors/no-dd-connector/config.yaml index 2a72d6336d491..dccb5d98e85f9 100644 --- a/comp/otelcol/converter/impl/testdata/connectors/no-dd-connector/config.yaml +++ b/comp/otelcol/converter/impl/testdata/connectors/no-dd-connector/config.yaml @@ -11,7 +11,7 @@ receivers: exporters: datadog: api: - key: 12345 + key: abcde12345 extensions: pprof/user-defined: diff --git a/comp/otelcol/converter/impl/testdata/connectors/set-default/config-result.yaml b/comp/otelcol/converter/impl/testdata/connectors/set-default/config-result.yaml index 9c87aac4819d8..4d11433766dcb 100644 --- a/comp/otelcol/converter/impl/testdata/connectors/set-default/config-result.yaml +++ b/comp/otelcol/converter/impl/testdata/connectors/set-default/config-result.yaml @@ -11,7 +11,7 @@ receivers: exporters: datadog: api: - key: 12345 + key: abcde12345 extensions: pprof/user-defined: diff --git a/comp/otelcol/converter/impl/testdata/connectors/set-default/config.yaml b/comp/otelcol/converter/impl/testdata/connectors/set-default/config.yaml index 61e1a2a871c6a..45994878a3ee1 100644 --- a/comp/otelcol/converter/impl/testdata/connectors/set-default/config.yaml +++ b/comp/otelcol/converter/impl/testdata/connectors/set-default/config.yaml @@ -11,7 +11,7 @@ receivers: exporters: datadog: api: - key: 12345 + key: abcde12345 extensions: pprof/user-defined: diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/api-section/acfg.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/api-section/acfg.yaml new file mode 100644 index 0000000000000..d5a8a57302902 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/api-section/acfg.yaml @@ -0,0 +1,2 @@ +api_key: ggggg77777 +site: datadoghq.eu \ No newline at end of file diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/api-section/config-result.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/api-section/config-result.yaml new file mode 100644 index 0000000000000..45c95534aae74 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/api-section/config-result.yaml @@ -0,0 +1,41 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: ggggg77777 + site: datadoghq.eu + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/api-section/config.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/api-section/config.yaml new file mode 100644 index 0000000000000..58a150f658497 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/api-section/config.yaml @@ -0,0 +1,39 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/key-site-section/acfg.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/key-site-section/acfg.yaml new file mode 100644 index 0000000000000..d5a8a57302902 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/key-site-section/acfg.yaml @@ -0,0 +1,2 @@ +api_key: ggggg77777 +site: datadoghq.eu \ No newline at end of file diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/key-site-section/config-result.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/key-site-section/config-result.yaml new file mode 100644 index 0000000000000..45c95534aae74 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/key-site-section/config-result.yaml @@ -0,0 +1,41 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: ggggg77777 + site: datadoghq.eu + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/key-site-section/config.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/key-site-section/config.yaml new file mode 100644 index 0000000000000..f9d9173c1238a --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/key-site-section/config.yaml @@ -0,0 +1,41 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: + site: + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/no-api-section/acfg.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/no-api-section/acfg.yaml new file mode 100644 index 0000000000000..d5a8a57302902 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/no-api-section/acfg.yaml @@ -0,0 +1,2 @@ +api_key: ggggg77777 +site: datadoghq.eu \ No newline at end of file diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/no-api-section/config-result.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/no-api-section/config-result.yaml new file mode 100644 index 0000000000000..45c95534aae74 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/no-api-section/config-result.yaml @@ -0,0 +1,41 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: ggggg77777 + site: datadoghq.eu + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/no-api-section/config.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/no-api-section/config.yaml new file mode 100644 index 0000000000000..c8919b426c09a --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/no-api-section/config.yaml @@ -0,0 +1,38 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/no-overrides/acfg.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/no-overrides/acfg.yaml new file mode 100644 index 0000000000000..d5a8a57302902 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/no-overrides/acfg.yaml @@ -0,0 +1,2 @@ +api_key: ggggg77777 +site: datadoghq.eu \ No newline at end of file diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/no-overrides/config.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/no-overrides/config.yaml new file mode 100644 index 0000000000000..efe926f1a8046 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/all/no-overrides/config.yaml @@ -0,0 +1,41 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: abc123 + site: us1.datadoghq.com + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/api-set-no-key/acfg.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/api-set-no-key/acfg.yaml new file mode 100644 index 0000000000000..bd45eb60c4a4d --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/api-set-no-key/acfg.yaml @@ -0,0 +1,2 @@ +api_key: ggggg77777 +site: datadoghq.eu diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/api-set-no-key/config-result.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/api-set-no-key/config-result.yaml new file mode 100644 index 0000000000000..959a117fc8eef --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/api-set-no-key/config-result.yaml @@ -0,0 +1,41 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: ggggg77777 + site: datadoghq.eu + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/api-set-no-key/config.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/api-set-no-key/config.yaml new file mode 100644 index 0000000000000..63923dcf01ede --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/api-set-no-key/config.yaml @@ -0,0 +1,40 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + site: datadoghq.eu + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/empty-string/acfg.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/empty-string/acfg.yaml new file mode 100644 index 0000000000000..9bf23f6b554ed --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/empty-string/acfg.yaml @@ -0,0 +1 @@ +api_key: ggggg77777 diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/empty-string/config-result.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/empty-string/config-result.yaml new file mode 100644 index 0000000000000..0f4753e0690e5 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/empty-string/config-result.yaml @@ -0,0 +1,40 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: ggggg77777 + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/empty-string/config.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/empty-string/config.yaml new file mode 100644 index 0000000000000..f31a6089fe240 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/empty-string/config.yaml @@ -0,0 +1,40 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: "" + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/multiple-dd-exporter/acfg.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/multiple-dd-exporter/acfg.yaml new file mode 100644 index 0000000000000..9bf23f6b554ed --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/multiple-dd-exporter/acfg.yaml @@ -0,0 +1 @@ +api_key: ggggg77777 diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/multiple-dd-exporter/config-result.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/multiple-dd-exporter/config-result.yaml new file mode 100644 index 0000000000000..38413568a0848 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/multiple-dd-exporter/config-result.yaml @@ -0,0 +1,45 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: ggggg77777 + datadog/2: + api: + key: ggggg77777 +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics/1: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog/2] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/multiple-dd-exporter/config.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/multiple-dd-exporter/config.yaml new file mode 100644 index 0000000000000..e1a8d16c5ada3 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/multiple-dd-exporter/config.yaml @@ -0,0 +1,47 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: + datadog/2: + api: + key: + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics/1: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog/2] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/no-api-key-section/acfg.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/no-api-key-section/acfg.yaml new file mode 100644 index 0000000000000..9bf23f6b554ed --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/no-api-key-section/acfg.yaml @@ -0,0 +1 @@ +api_key: ggggg77777 diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/no-api-key-section/config-result.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/no-api-key-section/config-result.yaml new file mode 100644 index 0000000000000..0f4753e0690e5 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/no-api-key-section/config-result.yaml @@ -0,0 +1,40 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: ggggg77777 + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/no-api-key-section/config.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/no-api-key-section/config.yaml new file mode 100644 index 0000000000000..c8919b426c09a --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/no-api-key-section/config.yaml @@ -0,0 +1,38 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/secret/acfg.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/secret/acfg.yaml new file mode 100644 index 0000000000000..9bf23f6b554ed --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/secret/acfg.yaml @@ -0,0 +1 @@ +api_key: ggggg77777 diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/secret/config-result.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/secret/config-result.yaml new file mode 100644 index 0000000000000..0f4753e0690e5 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/secret/config-result.yaml @@ -0,0 +1,40 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: ggggg77777 + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/secret/config.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/secret/config.yaml new file mode 100644 index 0000000000000..7d51de23ea767 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/secret/config.yaml @@ -0,0 +1,40 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: "ENC[my-secret]" + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/unset/acfg.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/unset/acfg.yaml new file mode 100644 index 0000000000000..9bf23f6b554ed --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/unset/acfg.yaml @@ -0,0 +1 @@ +api_key: ggggg77777 diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/unset/config-result.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/unset/config-result.yaml new file mode 100644 index 0000000000000..0f4753e0690e5 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/unset/config-result.yaml @@ -0,0 +1,40 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: ggggg77777 + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/unset/config.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/unset/config.yaml new file mode 100644 index 0000000000000..b80558a7bc040 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/apikey/unset/config.yaml @@ -0,0 +1,39 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/none/acfg.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/none/acfg.yaml new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/none/config-result.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/none/config-result.yaml new file mode 100644 index 0000000000000..f9d9173c1238a --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/none/config-result.yaml @@ -0,0 +1,41 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: + site: + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/none/config.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/none/config.yaml new file mode 100644 index 0000000000000..e293d7ca773fe --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/none/config.yaml @@ -0,0 +1,41 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: + site: + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/api-set-no-site/acfg.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/api-set-no-site/acfg.yaml new file mode 100644 index 0000000000000..9e0316073c26b --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/api-set-no-site/acfg.yaml @@ -0,0 +1 @@ +site: datadoghq.eu diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/api-set-no-site/config-result.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/api-set-no-site/config-result.yaml new file mode 100644 index 0000000000000..959a117fc8eef --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/api-set-no-site/config-result.yaml @@ -0,0 +1,41 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: ggggg77777 + site: datadoghq.eu + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/api-set-no-site/config.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/api-set-no-site/config.yaml new file mode 100644 index 0000000000000..0f4753e0690e5 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/api-set-no-site/config.yaml @@ -0,0 +1,40 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: ggggg77777 + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/empty-string/acfg.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/empty-string/acfg.yaml new file mode 100644 index 0000000000000..bd45eb60c4a4d --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/empty-string/acfg.yaml @@ -0,0 +1,2 @@ +api_key: ggggg77777 +site: datadoghq.eu diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/empty-string/config-result.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/empty-string/config-result.yaml new file mode 100644 index 0000000000000..959a117fc8eef --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/empty-string/config-result.yaml @@ -0,0 +1,41 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: ggggg77777 + site: datadoghq.eu + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/empty-string/config.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/empty-string/config.yaml new file mode 100644 index 0000000000000..1578ae633dbe1 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/empty-string/config.yaml @@ -0,0 +1,41 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: ggggg77777 + site: "" + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/multiple-dd-exporter/acfg.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/multiple-dd-exporter/acfg.yaml new file mode 100644 index 0000000000000..d5a8a57302902 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/multiple-dd-exporter/acfg.yaml @@ -0,0 +1,2 @@ +api_key: ggggg77777 +site: datadoghq.eu \ No newline at end of file diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/multiple-dd-exporter/config-result.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/multiple-dd-exporter/config-result.yaml new file mode 100644 index 0000000000000..5018db5b7b3b2 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/multiple-dd-exporter/config-result.yaml @@ -0,0 +1,47 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: abcde12345 + site: datadoghq.eu + datadog/2: + api: + key: abcde12345 + site: datadoghq.eu +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics/1: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog/2] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/multiple-dd-exporter/config.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/multiple-dd-exporter/config.yaml new file mode 100644 index 0000000000000..7577e98dfdbfd --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/multiple-dd-exporter/config.yaml @@ -0,0 +1,47 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: abcde12345 + datadog/2: + api: + key: abcde12345 + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics/1: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog/2] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/no-api-site-section/acfg.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/no-api-site-section/acfg.yaml new file mode 100644 index 0000000000000..bd45eb60c4a4d --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/no-api-site-section/acfg.yaml @@ -0,0 +1,2 @@ +api_key: ggggg77777 +site: datadoghq.eu diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/no-api-site-section/config-result.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/no-api-site-section/config-result.yaml new file mode 100644 index 0000000000000..959a117fc8eef --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/no-api-site-section/config-result.yaml @@ -0,0 +1,41 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: ggggg77777 + site: datadoghq.eu + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/no-api-site-section/config.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/no-api-site-section/config.yaml new file mode 100644 index 0000000000000..6c633ac386d33 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/no-api-site-section/config.yaml @@ -0,0 +1,40 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: ggggg77777 + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/unset/acfg.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/unset/acfg.yaml new file mode 100644 index 0000000000000..d5a8a57302902 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/unset/acfg.yaml @@ -0,0 +1,2 @@ +api_key: ggggg77777 +site: datadoghq.eu \ No newline at end of file diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/unset/config-result.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/unset/config-result.yaml new file mode 100644 index 0000000000000..c2bacbcf1533d --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/unset/config-result.yaml @@ -0,0 +1,41 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: abcde12345 + site: datadoghq.eu + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/unset/config.yaml b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/unset/config.yaml new file mode 100644 index 0000000000000..99ee6d6f9faa3 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/dd-core-cfg/site/unset/config.yaml @@ -0,0 +1,41 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +processors: + infraattributes/user-defined: + +exporters: + datadog: + api: + key: abcde12345 + site: + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + logs: + receivers: [otlp] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/dd/config-result.yaml b/comp/otelcol/converter/impl/testdata/dd/config-result.yaml index 9f02c5c92a25c..c311a477af6e1 100644 --- a/comp/otelcol/converter/impl/testdata/dd/config-result.yaml +++ b/comp/otelcol/converter/impl/testdata/dd/config-result.yaml @@ -7,7 +7,7 @@ processors: exporters: datadog: api: - key: 12345 + key: abcde12345 connectors: nop/connector: diff --git a/comp/otelcol/converter/impl/testdata/dd/config.yaml b/comp/otelcol/converter/impl/testdata/dd/config.yaml index 9f02c5c92a25c..c311a477af6e1 100644 --- a/comp/otelcol/converter/impl/testdata/dd/config.yaml +++ b/comp/otelcol/converter/impl/testdata/dd/config.yaml @@ -7,7 +7,7 @@ processors: exporters: datadog: api: - key: 12345 + key: abcde12345 connectors: nop/connector: diff --git a/comp/otelcol/converter/impl/testdata/processors/no-changes/config.yaml b/comp/otelcol/converter/impl/testdata/processors/no-changes/config.yaml index 756f84e487050..2ecc50630bc2a 100644 --- a/comp/otelcol/converter/impl/testdata/processors/no-changes/config.yaml +++ b/comp/otelcol/converter/impl/testdata/processors/no-changes/config.yaml @@ -11,7 +11,7 @@ receivers: exporters: datadog: api: - key: 12345 + key: abcde12345 extensions: pprof/user-defined: diff --git a/comp/otelcol/converter/impl/testdata/processors/no-processor-partial/config-result.yaml b/comp/otelcol/converter/impl/testdata/processors/no-processor-partial/config-result.yaml index 697c77659af90..3c350b584f7a9 100644 --- a/comp/otelcol/converter/impl/testdata/processors/no-processor-partial/config-result.yaml +++ b/comp/otelcol/converter/impl/testdata/processors/no-processor-partial/config-result.yaml @@ -11,7 +11,7 @@ receivers: exporters: datadog: api: - key: 12345 + key: abcde12345 processors: k8sattributes: diff --git a/comp/otelcol/converter/impl/testdata/processors/no-processor-partial/config.yaml b/comp/otelcol/converter/impl/testdata/processors/no-processor-partial/config.yaml index 4e82649cac147..513076b06b32a 100644 --- a/comp/otelcol/converter/impl/testdata/processors/no-processor-partial/config.yaml +++ b/comp/otelcol/converter/impl/testdata/processors/no-processor-partial/config.yaml @@ -11,7 +11,7 @@ receivers: exporters: datadog: api: - key: 12345 + key: abcde12345 processors: k8sattributes: diff --git a/comp/otelcol/converter/impl/testdata/processors/no-processors/config-result.yaml b/comp/otelcol/converter/impl/testdata/processors/no-processors/config-result.yaml index 6da189e4a2256..fa3868f86a597 100644 --- a/comp/otelcol/converter/impl/testdata/processors/no-processors/config-result.yaml +++ b/comp/otelcol/converter/impl/testdata/processors/no-processors/config-result.yaml @@ -11,7 +11,7 @@ receivers: exporters: datadog: api: - key: 12345 + key: abcde12345 extensions: pprof/user-defined: diff --git a/comp/otelcol/converter/impl/testdata/processors/no-processors/config.yaml b/comp/otelcol/converter/impl/testdata/processors/no-processors/config.yaml index e024121c05626..18c8bde47c533 100644 --- a/comp/otelcol/converter/impl/testdata/processors/no-processors/config.yaml +++ b/comp/otelcol/converter/impl/testdata/processors/no-processors/config.yaml @@ -11,7 +11,7 @@ receivers: exporters: datadog: api: - key: 12345 + key: abcde12345 extensions: pprof/user-defined: diff --git a/comp/otelcol/converter/impl/testdata/processors/other-processors/config-result.yaml b/comp/otelcol/converter/impl/testdata/processors/other-processors/config-result.yaml index e84cc09f734ce..bcb0096299ea8 100644 --- a/comp/otelcol/converter/impl/testdata/processors/other-processors/config-result.yaml +++ b/comp/otelcol/converter/impl/testdata/processors/other-processors/config-result.yaml @@ -11,7 +11,7 @@ receivers: exporters: datadog: api: - key: 12345 + key: abcde12345 extensions: pprof/user-defined: diff --git a/comp/otelcol/converter/impl/testdata/processors/other-processors/config.yaml b/comp/otelcol/converter/impl/testdata/processors/other-processors/config.yaml index de77e594c7f8f..f76d6b0e3a4a2 100644 --- a/comp/otelcol/converter/impl/testdata/processors/other-processors/config.yaml +++ b/comp/otelcol/converter/impl/testdata/processors/other-processors/config.yaml @@ -11,7 +11,7 @@ receivers: exporters: datadog: api: - key: 12345 + key: abcde12345 processors: k8sattributes: diff --git a/comp/otelcol/converter/impl/testdata/receivers/job-name-change/config-result.yaml b/comp/otelcol/converter/impl/testdata/receivers/job-name-change/config-result.yaml index 3fff816644e2d..c2f8aa89006de 100644 --- a/comp/otelcol/converter/impl/testdata/receivers/job-name-change/config-result.yaml +++ b/comp/otelcol/converter/impl/testdata/receivers/job-name-change/config-result.yaml @@ -11,7 +11,7 @@ receivers: exporters: datadog: api: - key: 12345 + key: abcde12345 extensions: pprof/user-defined: diff --git a/comp/otelcol/converter/impl/testdata/receivers/job-name-change/config.yaml b/comp/otelcol/converter/impl/testdata/receivers/job-name-change/config.yaml index 47e9b4f58463c..2dcc8524c58cf 100644 --- a/comp/otelcol/converter/impl/testdata/receivers/job-name-change/config.yaml +++ b/comp/otelcol/converter/impl/testdata/receivers/job-name-change/config.yaml @@ -11,7 +11,7 @@ receivers: exporters: datadog: api: - key: 12345 + key: abcde12345 extensions: pprof/user-defined: diff --git a/comp/otelcol/converter/impl/testdata/receivers/multi-dd-partial-prom/config-result.yaml b/comp/otelcol/converter/impl/testdata/receivers/multi-dd-partial-prom/config-result.yaml index baf1856351220..e4434fd09f952 100644 --- a/comp/otelcol/converter/impl/testdata/receivers/multi-dd-partial-prom/config-result.yaml +++ b/comp/otelcol/converter/impl/testdata/receivers/multi-dd-partial-prom/config-result.yaml @@ -18,13 +18,13 @@ receivers: exporters: datadog/1: api: - key: 12345 + key: abcde12345 datadog/2: api: - key: 12345 + key: abcde12345 datadog/3: api: - key: 12345 + key: abcde12345 extensions: pprof/user-defined: diff --git a/comp/otelcol/converter/impl/testdata/receivers/multi-dd-partial-prom/config.yaml b/comp/otelcol/converter/impl/testdata/receivers/multi-dd-partial-prom/config.yaml index 51b90562c7f44..a4e8c166d74d8 100644 --- a/comp/otelcol/converter/impl/testdata/receivers/multi-dd-partial-prom/config.yaml +++ b/comp/otelcol/converter/impl/testdata/receivers/multi-dd-partial-prom/config.yaml @@ -11,13 +11,13 @@ receivers: exporters: datadog/1: api: - key: 12345 + key: abcde12345 datadog/2: api: - key: 12345 + key: abcde12345 datadog/3: api: - key: 12345 + key: abcde12345 extensions: pprof/user-defined: diff --git a/comp/otelcol/converter/impl/testdata/receivers/no-changes-multiple-dd-same-pipeline/config.yaml b/comp/otelcol/converter/impl/testdata/receivers/no-changes-multiple-dd-same-pipeline/config.yaml new file mode 100644 index 0000000000000..c17a3fdbd4482 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/receivers/no-changes-multiple-dd-same-pipeline/config.yaml @@ -0,0 +1,43 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +exporters: + datadog: + api: + key: abcde12345 + datadog/2: + api: + key: abcde12345 + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +processors: + infraattributes/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [nop] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [nop, prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog, datadog/2] + logs: + receivers: [nop] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/receivers/no-changes-multiple-dd/config.yaml b/comp/otelcol/converter/impl/testdata/receivers/no-changes-multiple-dd/config.yaml new file mode 100644 index 0000000000000..8f48837890504 --- /dev/null +++ b/comp/otelcol/converter/impl/testdata/receivers/no-changes-multiple-dd/config.yaml @@ -0,0 +1,47 @@ +receivers: + otlp: + prometheus/user-defined: + config: + scrape_configs: + - job_name: 'datadog-agent' + scrape_interval: 10s + static_configs: + - targets: ['0.0.0.0:8888'] + +exporters: + datadog: + api: + key: abcde12345 + datadog/2: + api: + key: abcde12345 + +extensions: + pprof/user-defined: + health_check/user-defined: + zpages/user-defined: + endpoint: "localhost:55679" + ddflare/user-defined: + +processors: + infraattributes/user-defined: + +service: + extensions: [pprof/user-defined, zpages/user-defined, health_check/user-defined, ddflare/user-defined] + pipelines: + traces: + receivers: [nop] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics: + receivers: [nop, prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog] + metrics/2: + receivers: [prometheus/user-defined] + processors: [infraattributes/user-defined] + exporters: [datadog/2] + logs: + receivers: [nop] + processors: [infraattributes/user-defined] + exporters: [datadog] diff --git a/comp/otelcol/converter/impl/testdata/receivers/no-changes/config.yaml b/comp/otelcol/converter/impl/testdata/receivers/no-changes/config.yaml index 3d814075872f2..3625ed308e769 100644 --- a/comp/otelcol/converter/impl/testdata/receivers/no-changes/config.yaml +++ b/comp/otelcol/converter/impl/testdata/receivers/no-changes/config.yaml @@ -11,7 +11,7 @@ receivers: exporters: datadog: api: - key: 12345 + key: abcde12345 extensions: pprof/user-defined: diff --git a/comp/otelcol/converter/impl/testdata/receivers/no-prom-multi-dd/config-result.yaml b/comp/otelcol/converter/impl/testdata/receivers/no-prom-multi-dd/config-result.yaml index a31a1402f3500..da86cf2366964 100644 --- a/comp/otelcol/converter/impl/testdata/receivers/no-prom-multi-dd/config-result.yaml +++ b/comp/otelcol/converter/impl/testdata/receivers/no-prom-multi-dd/config-result.yaml @@ -11,10 +11,10 @@ receivers: exporters: datadog/1: api: - key: 12345 + key: abcde12345 datadog/2: api: - key: 6789 + key: fghi6789 extensions: pprof/user-defined: diff --git a/comp/otelcol/converter/impl/testdata/receivers/no-prom-multi-dd/config.yaml b/comp/otelcol/converter/impl/testdata/receivers/no-prom-multi-dd/config.yaml index d0a052ac1e521..c454b7930f2b5 100644 --- a/comp/otelcol/converter/impl/testdata/receivers/no-prom-multi-dd/config.yaml +++ b/comp/otelcol/converter/impl/testdata/receivers/no-prom-multi-dd/config.yaml @@ -4,10 +4,10 @@ receivers: exporters: datadog/1: api: - key: 12345 + key: abcde12345 datadog/2: api: - key: 6789 + key: fghi6789 extensions: pprof/user-defined: diff --git a/comp/otelcol/converter/impl/testdata/receivers/no-prom-not-default-addr/config-result.yaml b/comp/otelcol/converter/impl/testdata/receivers/no-prom-not-default-addr/config-result.yaml index 7a6cd6cf2558d..f0c0de3c28d35 100644 --- a/comp/otelcol/converter/impl/testdata/receivers/no-prom-not-default-addr/config-result.yaml +++ b/comp/otelcol/converter/impl/testdata/receivers/no-prom-not-default-addr/config-result.yaml @@ -11,7 +11,7 @@ receivers: exporters: datadog: api: - key: 12345 + key: abcde12345 extensions: pprof/user-defined: diff --git a/comp/otelcol/converter/impl/testdata/receivers/no-prom-not-default-addr/config.yaml b/comp/otelcol/converter/impl/testdata/receivers/no-prom-not-default-addr/config.yaml index 9da2bedafb8bc..ad61bd222f51b 100644 --- a/comp/otelcol/converter/impl/testdata/receivers/no-prom-not-default-addr/config.yaml +++ b/comp/otelcol/converter/impl/testdata/receivers/no-prom-not-default-addr/config.yaml @@ -4,7 +4,7 @@ receivers: exporters: datadog: api: - key: 12345 + key: abcde12345 extensions: pprof/user-defined: diff --git a/comp/otelcol/converter/impl/testdata/receivers/no-prometheus-receiver/config-result.yaml b/comp/otelcol/converter/impl/testdata/receivers/no-prometheus-receiver/config-result.yaml index 203185d2272ff..67f8f6463ff1a 100644 --- a/comp/otelcol/converter/impl/testdata/receivers/no-prometheus-receiver/config-result.yaml +++ b/comp/otelcol/converter/impl/testdata/receivers/no-prometheus-receiver/config-result.yaml @@ -11,7 +11,7 @@ receivers: exporters: datadog: api: - key: 12345 + key: abcde12345 extensions: pprof/user-defined: diff --git a/comp/otelcol/converter/impl/testdata/receivers/no-prometheus-receiver/config.yaml b/comp/otelcol/converter/impl/testdata/receivers/no-prometheus-receiver/config.yaml index 07452dca0f605..e5b635da1cb3a 100644 --- a/comp/otelcol/converter/impl/testdata/receivers/no-prometheus-receiver/config.yaml +++ b/comp/otelcol/converter/impl/testdata/receivers/no-prometheus-receiver/config.yaml @@ -4,7 +4,7 @@ receivers: exporters: datadog: api: - key: 12345 + key: abcde12345 extensions: pprof/user-defined: diff --git a/comp/otelcol/converter/impl/testdata/receivers/no-receivers-defined/config-result.yaml b/comp/otelcol/converter/impl/testdata/receivers/no-receivers-defined/config-result.yaml index 39e6cb511c45f..6e57ae36b8dda 100644 --- a/comp/otelcol/converter/impl/testdata/receivers/no-receivers-defined/config-result.yaml +++ b/comp/otelcol/converter/impl/testdata/receivers/no-receivers-defined/config-result.yaml @@ -10,7 +10,7 @@ receivers: exporters: datadog: api: - key: 12345 + key: abcde12345 extensions: pprof/user-defined: diff --git a/comp/otelcol/converter/impl/testdata/receivers/no-receivers-defined/config.yaml b/comp/otelcol/converter/impl/testdata/receivers/no-receivers-defined/config.yaml index 9a1ec2e6c0fa9..cf5430beb88cd 100644 --- a/comp/otelcol/converter/impl/testdata/receivers/no-receivers-defined/config.yaml +++ b/comp/otelcol/converter/impl/testdata/receivers/no-receivers-defined/config.yaml @@ -1,7 +1,7 @@ exporters: datadog: api: - key: 12345 + key: abcde12345 extensions: pprof/user-defined: From 8540f58278acfcd49d67550ff7764c061005555f Mon Sep 17 00:00:00 2001 From: Florent Clarret Date: Mon, 2 Dec 2024 17:36:24 +0100 Subject: [PATCH 201/439] Suffix the branch name with a timestamp when creating a new branch to build a release candidate (#31660) --- tasks/release.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/release.py b/tasks/release.py index 394f239f7f879..9d2ce03afe866 100644 --- a/tasks/release.py +++ b/tasks/release.py @@ -378,7 +378,7 @@ def create_rc(ctx, major_versions="6,7", patch_version=False, upstream="origin", # Check that the current and update branches are valid current_branch = get_current_branch(ctx) - update_branch = f"release/{new_highest_version}" + update_branch = f"release/{new_highest_version}-{int(time.time())}" check_clean_branch_state(ctx, github, update_branch) if not check_base_branch(current_branch, new_highest_version): From 66d4a62472deb67a301837d8adebcc1a3b66ebd2 Mon Sep 17 00:00:00 2001 From: Guy Arbitman Date: Mon, 2 Dec 2024 18:40:14 +0200 Subject: [PATCH 202/439] [usm] Create entry in `connection_protocol` only if needed (#31524) --- .../classification/dispatcher-helpers.h | 21 ++-- .../classification/protocol-classification.h | 37 ++++---- .../ebpf/c/protocols/classification/routing.h | 5 + .../classification/shared-tracer-maps.h | 27 ++++-- pkg/network/ebpf/c/protocols/tls/https.h | 18 ++-- pkg/network/ebpf/c/tracer/stats.h | 7 +- pkg/network/tracer/tracer_testutil.go | 11 ++- .../usm/tests/tracer_usm_linux_test.go | 95 +++++++++++++++++++ 8 files changed, 174 insertions(+), 47 deletions(-) diff --git a/pkg/network/ebpf/c/protocols/classification/dispatcher-helpers.h b/pkg/network/ebpf/c/protocols/classification/dispatcher-helpers.h index fb4b0e91030e5..76effcf172090 100644 --- a/pkg/network/ebpf/c/protocols/classification/dispatcher-helpers.h +++ b/pkg/network/ebpf/c/protocols/classification/dispatcher-helpers.h @@ -124,16 +124,7 @@ static __always_inline void protocol_dispatcher_entrypoint(struct __sk_buff *skb bpf_map_delete_elem(&connection_states, &skb_tup); } - protocol_stack_t *stack = get_protocol_stack(&skb_tup); - if (!stack) { - // should never happen, but it is required by the eBPF verifier - return; - } - - // This is used to signal the tracer program that this protocol stack - // is also shared with our USM program for the purposes of deletion. - // For more context refer to the comments in `delete_protocol_stack` - stack->flags |= FLAG_USM_ENABLED; + protocol_stack_t *stack = get_protocol_stack_if_exists(&skb_tup); protocol_t cur_fragment_protocol = get_protocol_from_stack(stack, LAYER_APPLICATION); if (tcp_termination) { @@ -157,6 +148,16 @@ static __always_inline void protocol_dispatcher_entrypoint(struct __sk_buff *skb log_debug("[protocol_dispatcher_entrypoint]: %p Classifying protocol as: %d", skb, cur_fragment_protocol); // If there has been a change in the classification, save the new protocol. if (cur_fragment_protocol != PROTOCOL_UNKNOWN) { + stack = get_or_create_protocol_stack(&skb_tup); + if (!stack) { + // should never happen, but it is required by the eBPF verifier + return; + } + + // This is used to signal the tracer program that this protocol stack + // is also shared with our USM program for the purposes of deletion. + // For more context refer to the comments in `delete_protocol_stack` + set_protocol_flag(stack, FLAG_USM_ENABLED); set_protocol(stack, cur_fragment_protocol); } } diff --git a/pkg/network/ebpf/c/protocols/classification/protocol-classification.h b/pkg/network/ebpf/c/protocols/classification/protocol-classification.h index 67169936daf69..e3f44bfa16bdc 100644 --- a/pkg/network/ebpf/c/protocols/classification/protocol-classification.h +++ b/pkg/network/ebpf/c/protocols/classification/protocol-classification.h @@ -147,10 +147,7 @@ __maybe_unused static __always_inline void protocol_classifier_entrypoint(struct return; } - protocol_stack_t *protocol_stack = get_protocol_stack(&usm_ctx->tuple); - if (!protocol_stack) { - return; - } + protocol_stack_t *protocol_stack = get_protocol_stack_if_exists(&usm_ctx->tuple); if (is_fully_classified(protocol_stack) || is_protocol_layer_known(protocol_stack, LAYER_ENCRYPTION)) { return; @@ -164,6 +161,10 @@ __maybe_unused static __always_inline void protocol_classifier_entrypoint(struct protocol_t app_layer_proto = get_protocol_from_stack(protocol_stack, LAYER_APPLICATION); if ((app_layer_proto == PROTOCOL_UNKNOWN || app_layer_proto == PROTOCOL_POSTGRES) && is_tls(buffer, usm_ctx->buffer.size, skb_info.data_end)) { + protocol_stack = get_or_create_protocol_stack(&usm_ctx->tuple); + if (!protocol_stack) { + return; + } // TLS classification update_protocol_information(usm_ctx, protocol_stack, PROTOCOL_TLS); // The connection is TLS encrypted, thus we cannot classify the protocol @@ -180,6 +181,10 @@ __maybe_unused static __always_inline void protocol_classifier_entrypoint(struct } if (app_layer_proto != PROTOCOL_UNKNOWN) { + protocol_stack = get_or_create_protocol_stack(&usm_ctx->tuple); + if (!protocol_stack) { + return; + } update_protocol_information(usm_ctx, protocol_stack, app_layer_proto); if (app_layer_proto == PROTOCOL_HTTP2) { @@ -206,7 +211,7 @@ __maybe_unused static __always_inline void protocol_classifier_entrypoint_queues goto next_program; } - protocol_stack_t *protocol_stack = get_protocol_stack(&usm_ctx->tuple); + protocol_stack_t *protocol_stack = get_or_create_protocol_stack(&usm_ctx->tuple); if (!protocol_stack) { return; } @@ -229,7 +234,7 @@ __maybe_unused static __always_inline void protocol_classifier_entrypoint_dbs(st goto next_program; } - protocol_stack_t *protocol_stack = get_protocol_stack(&usm_ctx->tuple); + protocol_stack_t *protocol_stack = get_or_create_protocol_stack(&usm_ctx->tuple); if (!protocol_stack) { return; } @@ -246,16 +251,16 @@ __maybe_unused static __always_inline void protocol_classifier_entrypoint_grpc(s return; } - protocol_stack_t *protocol_stack = get_protocol_stack(&usm_ctx->tuple); - if (!protocol_stack) { - return; - } - - // The GRPC classification program can be called without a prior - // classification of HTTP2, which is a precondition. - protocol_t app_layer_proto = get_protocol_from_stack(protocol_stack, LAYER_APPLICATION); - if (app_layer_proto == PROTOCOL_HTTP2) { - classify_grpc(usm_ctx, protocol_stack, skb, &usm_ctx->skb_info); + // gRPC classification can happen only if the application layer is known + // So if we don't have a protocol stack, we can continue to the next program. + protocol_stack_t *protocol_stack = get_protocol_stack_if_exists(&usm_ctx->tuple); + if (protocol_stack) { + // The GRPC classification program can be called without a prior + // classification of HTTP2, which is a precondition. + protocol_t app_layer_proto = get_protocol_from_stack(protocol_stack, LAYER_APPLICATION); + if (app_layer_proto == PROTOCOL_HTTP2) { + classify_grpc(usm_ctx, protocol_stack, skb, &usm_ctx->skb_info); + } } classification_next_program(skb, usm_ctx); diff --git a/pkg/network/ebpf/c/protocols/classification/routing.h b/pkg/network/ebpf/c/protocols/classification/routing.h index 8e2b092e0afba..9a4b534553b35 100644 --- a/pkg/network/ebpf/c/protocols/classification/routing.h +++ b/pkg/network/ebpf/c/protocols/classification/routing.h @@ -55,6 +55,11 @@ static __always_inline void init_routing_cache(usm_context_t *usm_ctx, protocol_ usm_ctx->routing_skip_layers = 0; usm_ctx->routing_current_program = CLASSIFICATION_PROG_UNKNOWN; + // No protocol stack, nothing to mark for skipping + if (!stack) { + return; + } + // We skip a given layer in two cases: // 1) If the protocol for that layer is known // 2) If there are no programs registered for that layer diff --git a/pkg/network/ebpf/c/protocols/classification/shared-tracer-maps.h b/pkg/network/ebpf/c/protocols/classification/shared-tracer-maps.h index 1300f2a5f999d..d3e3c4c73a558 100644 --- a/pkg/network/ebpf/c/protocols/classification/shared-tracer-maps.h +++ b/pkg/network/ebpf/c/protocols/classification/shared-tracer-maps.h @@ -15,26 +15,35 @@ static __always_inline bool is_protocol_classification_supported() { return val > 0; } -static __always_inline protocol_stack_t* __get_protocol_stack(conn_tuple_t* tuple) { +static __always_inline protocol_stack_t* __get_protocol_stack_if_exists(conn_tuple_t* tuple) { protocol_stack_wrapper_t *wrapper = bpf_map_lookup_elem(&connection_protocol, tuple); if (!wrapper) { return NULL; } + wrapper->updated = bpf_ktime_get_ns(); return &wrapper->stack; } -static __always_inline protocol_stack_t* get_protocol_stack(conn_tuple_t *skb_tup) { +// Returns the protocol_stack_t associated with the given connection tuple. +// If the tuple is not found, returns NULL. +static __always_inline protocol_stack_t* get_protocol_stack_if_exists(conn_tuple_t* tuple) { + conn_tuple_t normalized_tup = *tuple; + normalize_tuple(&normalized_tup); + return __get_protocol_stack_if_exists(&normalized_tup); +} + +// Returns the protocol_stack_t associated with the given connection tuple. +// If the tuple is not found, creates a new entry and returns it. +static __always_inline protocol_stack_t* get_or_create_protocol_stack(conn_tuple_t *skb_tup) { conn_tuple_t normalized_tup = *skb_tup; normalize_tuple(&normalized_tup); - protocol_stack_wrapper_t* wrapper = bpf_map_lookup_elem(&connection_protocol, &normalized_tup); + protocol_stack_t *wrapper = __get_protocol_stack_if_exists(&normalized_tup); if (wrapper) { - wrapper->updated = bpf_ktime_get_ns(); - return &wrapper->stack; + return wrapper; } // this code path is executed once during the entire connection lifecycle protocol_stack_wrapper_t empty_wrapper = {0}; - empty_wrapper.updated = bpf_ktime_get_ns(); // We skip EEXIST because of the use of BPF_NOEXIST flag. Emitting telemetry for EEXIST here spams metrics // and do not provide any useful signal since the key is expected to be present sometimes. @@ -42,7 +51,7 @@ static __always_inline protocol_stack_t* get_protocol_stack(conn_tuple_t *skb_tu // EBUSY can be returned if a program tries to access an already held bucket lock // https://elixir.bootlin.com/linux/latest/source/kernel/bpf/hashtab.c#L164 // Before kernel version 6.7 it was possible for a program to get interrupted before disabling - // interrupts for acquring the bucket spinlock but after marking a bucket as busy. + // interrupts for acquiring the bucket spinlock but after marking a bucket as busy. // https://github.com/torvalds/linux/commit/d35381aa73f7e1e8b25f3ed5283287a64d9ddff5 // As such a program running from an irq context would falsely see a bucket as busy in certain cases // as explained in the linked commit message. @@ -51,11 +60,11 @@ static __always_inline protocol_stack_t* get_protocol_stack(conn_tuple_t *skb_tu // above scenario. // However the EBUSY error does not carry any signal for us since this is caused by a kernel bug. bpf_map_update_with_telemetry(connection_protocol, &normalized_tup, &empty_wrapper, BPF_NOEXIST, -EEXIST, -EBUSY); - return __get_protocol_stack(&normalized_tup); + return __get_protocol_stack_if_exists(&normalized_tup); } __maybe_unused static __always_inline void update_protocol_stack(conn_tuple_t* skb_tup, protocol_t cur_fragment_protocol) { - protocol_stack_t *stack = get_protocol_stack(skb_tup); + protocol_stack_t *stack = get_or_create_protocol_stack(skb_tup); if (!stack) { return; } diff --git a/pkg/network/ebpf/c/protocols/tls/https.h b/pkg/network/ebpf/c/protocols/tls/https.h index db485ab14403c..f1d0562033a54 100644 --- a/pkg/network/ebpf/c/protocols/tls/https.h +++ b/pkg/network/ebpf/c/protocols/tls/https.h @@ -38,9 +38,6 @@ static __always_inline void http_process(http_event_t *event, skb_info_t *skb_in /* this function is called by all TLS hookpoints (OpenSSL, GnuTLS and GoTLS, JavaTLS) and */ /* it's used for classify the subset of protocols that is supported by `classify_protocol_for_dispatcher` */ static __always_inline void classify_decrypted_payload(protocol_stack_t *stack, conn_tuple_t *t, void *buffer, size_t len) { - // we're in the context of TLS hookpoints, thus the protocol is TLS. - set_protocol(stack, PROTOCOL_TLS); - if (is_protocol_layer_known(stack, LAYER_APPLICATION)) { // No classification is needed. return; @@ -72,11 +69,14 @@ static __always_inline void tls_process(struct pt_regs *ctx, conn_tuple_t *t, vo normalized_tuple.pid = 0; normalized_tuple.netns = 0; - protocol_stack_t *stack = get_protocol_stack(&normalized_tuple); + protocol_stack_t *stack = get_or_create_protocol_stack(&normalized_tuple); if (!stack) { return; } + // we're in the context of TLS hookpoints, thus the protocol is TLS. + set_protocol(stack, PROTOCOL_TLS); + const __u32 zero = 0; protocol_t protocol = get_protocol_from_stack(stack, LAYER_APPLICATION); if (protocol == PROTOCOL_UNKNOWN) { @@ -166,7 +166,7 @@ static __always_inline void tls_dispatch_kafka(struct pt_regs *ctx) return; } - protocol_stack_t *stack = get_protocol_stack(&normalized_tuple); + protocol_stack_t *stack = get_or_create_protocol_stack(&normalized_tuple); if (!stack) { return; } @@ -182,10 +182,10 @@ static __always_inline void tls_finish(struct pt_regs *ctx, conn_tuple_t *t, boo normalized_tuple.pid = 0; normalized_tuple.netns = 0; - protocol_stack_t *stack = get_protocol_stack(&normalized_tuple); - if (!stack) { - return; - } + // Using __get_protocol_stack_if_exists as `conn_tuple_copy` is already normalized. + protocol_stack_t *stack = __get_protocol_stack_if_exists(&normalized_tuple); + // No need to explicitly checking if the stack is NULL, as `get_protocol_from_stack` will return PROTOCOL_UNKNOWN + // and then we will return from the function as we will hit the default case of the switch statement. protocol_prog_t prog; protocol_t protocol = get_protocol_from_stack(stack, LAYER_APPLICATION); diff --git a/pkg/network/ebpf/c/tracer/stats.h b/pkg/network/ebpf/c/tracer/stats.h index 0cadc576b0cff..b05811c86190a 100644 --- a/pkg/network/ebpf/c/tracer/stats.h +++ b/pkg/network/ebpf/c/tracer/stats.h @@ -105,7 +105,8 @@ static __always_inline void update_protocol_classification_information(conn_tupl conn_tuple_copy.pid = 0; normalize_tuple(&conn_tuple_copy); - protocol_stack_t *protocol_stack = __get_protocol_stack(&conn_tuple_copy); + // Using __get_protocol_stack_if_exists as `conn_tuple_copy` is already normalized. + protocol_stack_t *protocol_stack = __get_protocol_stack_if_exists(&conn_tuple_copy); set_protocol_flag(protocol_stack, FLAG_NPM_ENABLED); mark_protocol_direction(t, &conn_tuple_copy, protocol_stack); merge_protocol_stacks(&stats->protocol_stack, protocol_stack); @@ -116,7 +117,9 @@ static __always_inline void update_protocol_classification_information(conn_tupl } conn_tuple_copy = *cached_skb_conn_tup_ptr; - protocol_stack = __get_protocol_stack(&conn_tuple_copy); + normalize_tuple(&conn_tuple_copy); + // Using __get_protocol_stack_if_exists as `conn_tuple_copy` is already normalized. + protocol_stack = __get_protocol_stack_if_exists(&conn_tuple_copy); set_protocol_flag(protocol_stack, FLAG_NPM_ENABLED); mark_protocol_direction(t, &conn_tuple_copy, protocol_stack); merge_protocol_stacks(&stats->protocol_stack, protocol_stack); diff --git a/pkg/network/tracer/tracer_testutil.go b/pkg/network/tracer/tracer_testutil.go index f7ad18a688115..2be249e6028f2 100644 --- a/pkg/network/tracer/tracer_testutil.go +++ b/pkg/network/tracer/tracer_testutil.go @@ -7,7 +7,11 @@ package tracer -import "github.com/DataDog/datadog-agent/pkg/network/usm" +import ( + "github.com/cilium/ebpf" + + "github.com/DataDog/datadog-agent/pkg/network/usm" +) // RemoveClient stops tracking stateful data for a given client func (t *Tracer) RemoveClient(clientID string) { @@ -18,3 +22,8 @@ func (t *Tracer) RemoveClient(clientID string) { func (t *Tracer) USMMonitor() *usm.Monitor { return t.usmMonitor } + +// GetMap returns the map with the given name +func (t *Tracer) GetMap(name string) (*ebpf.Map, error) { + return t.ebpfTracer.GetMap(name) +} diff --git a/pkg/network/usm/tests/tracer_usm_linux_test.go b/pkg/network/usm/tests/tracer_usm_linux_test.go index 9187bfbde28b5..cb7cf47e30e4a 100644 --- a/pkg/network/usm/tests/tracer_usm_linux_test.go +++ b/pkg/network/usm/tests/tracer_usm_linux_test.go @@ -23,7 +23,9 @@ import ( "syscall" "testing" "time" + "unsafe" + "github.com/cilium/ebpf" gorilla "github.com/gorilla/mux" redis2 "github.com/redis/go-redis/v9" "github.com/stretchr/testify/assert" @@ -41,6 +43,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/ebpf/ebpftest" "github.com/DataDog/datadog-agent/pkg/network/config" netebpf "github.com/DataDog/datadog-agent/pkg/network/ebpf" + "github.com/DataDog/datadog-agent/pkg/network/ebpf/probes" netlink "github.com/DataDog/datadog-agent/pkg/network/netlink/testutil" "github.com/DataDog/datadog-agent/pkg/network/protocols" "github.com/DataDog/datadog-agent/pkg/network/protocols/amqp" @@ -704,6 +707,94 @@ func TestFullMonitorWithTracer(t *testing.T) { require.NoError(t, tr.RegisterClient(clientID)) } +func testUnclassifiedProtocol(t *testing.T, tr *tracer.Tracer, clientHost, targetHost, serverHost string) { + defaultDialer := &net.Dialer{ + LocalAddr: &net.TCPAddr{ + IP: net.ParseIP(clientHost), + }, + } + + serverAddress := net.JoinHostPort(serverHost, rawTrafficPort) + targetAddress := net.JoinHostPort(targetHost, rawTrafficPort) + + server := tracertestutil.NewTCPServerOnAddress(serverAddress, func(c net.Conn) { + _, _ = io.Copy(c, c) + }) + require.NoError(t, server.Run()) + t.Cleanup(server.Shutdown) + + tests := []protocolClassificationAttributes{ + { + name: "unsupported TCP protocol", + context: testContext{ + serverPort: rawTrafficPort, + serverAddress: serverAddress, + targetAddress: targetAddress, + extras: make(map[string]interface{}), + }, + postTracerSetup: func(t *testing.T, ctx testContext) { + c, err := defaultDialer.Dial("tcp", ctx.targetAddress) + require.NoError(t, err) + ctx.extras["client"] = c + + const inputText = "Hello, World!" + _, err = c.Write([]byte(inputText)) + require.NoError(t, err) + n, err := c.Read(make([]byte, len(inputText))) + require.NoError(t, err) + require.Equal(t, len(inputText), n) + + }, + validation: func(t *testing.T, ctx testContext, tr *tracer.Tracer) { + m, err := tr.GetMap(probes.ConnectionProtocolMap) + require.NoError(t, err) + + client := ctx.extras["client"].(net.Conn) + defer client.Close() + localAddrString, _, err := net.SplitHostPort(client.LocalAddr().(*net.TCPAddr).String()) + require.NoError(t, err) + localAddr, err := netip.ParseAddr(localAddrString) + require.NoError(t, err) + remoteAddrString, _, err := net.SplitHostPort(client.RemoteAddr().(*net.TCPAddr).String()) + require.NoError(t, err) + remoteAddr, err := netip.ParseAddr(remoteAddrString) + require.NoError(t, err) + + ll, lh := util.ToLowHighIP(localAddr) + rl, rh := util.ToLowHighIP(remoteAddr) + key := netebpf.ConnTuple{ + Saddr_h: lh, + Saddr_l: ll, + Daddr_h: rh, + Daddr_l: rl, + Sport: uint16(client.LocalAddr().(*net.TCPAddr).Port), + Dport: uint16(client.RemoteAddr().(*net.TCPAddr).Port), + Metadata: uint32(netebpf.TCP), + } + inverseKey := netebpf.ConnTuple{ + Saddr_h: key.Daddr_h, + Saddr_l: key.Daddr_l, + Daddr_h: key.Saddr_h, + Daddr_l: key.Saddr_l, + Sport: key.Dport, + Dport: key.Sport, + Metadata: key.Metadata, + } + value := netebpf.ProtocolStackWrapper{} + keyExistence := m.Lookup(unsafe.Pointer(&key), unsafe.Pointer(&value)) + require.ErrorIs(t, keyExistence, ebpf.ErrKeyNotExist) + keyExistence = m.Lookup(unsafe.Pointer(&inverseKey), unsafe.Pointer(&value)) + require.ErrorIs(t, keyExistence, ebpf.ErrKeyNotExist) + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + testProtocolClassificationInner(t, tt, tr) + }) + } +} + func testKafkaProtocolClassification(t *testing.T, tr *tracer.Tracer, clientHost, targetHost, serverHost string) { const topicName = "franz-kafka" testIndex := 0 @@ -2375,6 +2466,10 @@ func testProtocolClassificationLinux(t *testing.T, tr *tracer.Tracer, clientHost name string testFunc func(t *testing.T, tr *tracer.Tracer, clientHost, targetHost, serverHost string) }{ + { + name: "unclassified", + testFunc: testUnclassifiedProtocol, + }, { name: "kafka", testFunc: testKafkaProtocolClassification, From e6773fd7f50eebeb94e225a50c082bf278caf531 Mon Sep 17 00:00:00 2001 From: Mackenzie <63265430+mackjmr@users.noreply.github.com> Date: Mon, 2 Dec 2024 17:49:19 +0100 Subject: [PATCH 203/439] refactor isEnabled in separate package configcheck (#31519) --- comp/metadata/host/hostimpl/utils/host.go | 4 +- .../collector/impl-pipeline/pipeline.go | 3 +- .../otelcol/collector/impl-pipeline/status.go | 3 +- comp/otelcol/otlp/config.go | 74 +--------------- comp/otelcol/otlp/config_test.go | 5 +- comp/otelcol/otlp/configcheck/configcheck.go | 84 +++++++++++++++++++ .../configcheck_no_otlp.go} | 3 +- .../otlp/pipeline_validator_serverless.go | 3 +- comp/trace/config/setup.go | 4 +- pkg/serverless/otlp/otlp.go | 3 +- 10 files changed, 105 insertions(+), 81 deletions(-) create mode 100644 comp/otelcol/otlp/configcheck/configcheck.go rename comp/otelcol/otlp/{no_otlp.go => configcheck/configcheck_no_otlp.go} (89%) diff --git a/comp/metadata/host/hostimpl/utils/host.go b/comp/metadata/host/hostimpl/utils/host.go index e59019459e5d6..11c6b26f50e4d 100644 --- a/comp/metadata/host/hostimpl/utils/host.go +++ b/comp/metadata/host/hostimpl/utils/host.go @@ -16,7 +16,7 @@ import ( "time" "github.com/DataDog/datadog-agent/comp/metadata/host/hostimpl/hosttags" - "github.com/DataDog/datadog-agent/comp/otelcol/otlp" + "github.com/DataDog/datadog-agent/comp/otelcol/otlp/configcheck" "github.com/DataDog/datadog-agent/pkg/collector/python" "github.com/DataDog/datadog-agent/pkg/config/model" "github.com/DataDog/datadog-agent/pkg/logs/status" @@ -36,7 +36,7 @@ var ( hostInfoCacheKey = cache.BuildAgentKey("host", "utils", "hostInfo") // for testing - otlpIsEnabled = otlp.IsEnabled + otlpIsEnabled = configcheck.IsEnabled installinfoGet = installinfo.Get ) diff --git a/comp/otelcol/collector/impl-pipeline/pipeline.go b/comp/otelcol/collector/impl-pipeline/pipeline.go index e3e2d89e2f87f..ab46ab875bcff 100644 --- a/comp/otelcol/collector/impl-pipeline/pipeline.go +++ b/comp/otelcol/collector/impl-pipeline/pipeline.go @@ -24,6 +24,7 @@ import ( collector "github.com/DataDog/datadog-agent/comp/otelcol/collector/def" "github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline" "github.com/DataDog/datadog-agent/comp/otelcol/otlp" + "github.com/DataDog/datadog-agent/comp/otelcol/otlp/configcheck" "github.com/DataDog/datadog-agent/comp/otelcol/otlp/datatype" apiutil "github.com/DataDog/datadog-agent/pkg/api/util" "github.com/DataDog/datadog-agent/pkg/logs/message" @@ -87,7 +88,7 @@ type collectorImpl struct { } func (c *collectorImpl) start(context.Context) error { - on := otlp.IsEnabled(c.config) + on := configcheck.IsEnabled(c.config) c.inventoryAgent.Set(otlpEnabled, on) if !on { return nil diff --git a/comp/otelcol/collector/impl-pipeline/status.go b/comp/otelcol/collector/impl-pipeline/status.go index dcdce96d4467a..e3c0b01791bc1 100644 --- a/comp/otelcol/collector/impl-pipeline/status.go +++ b/comp/otelcol/collector/impl-pipeline/status.go @@ -13,6 +13,7 @@ import ( "github.com/DataDog/datadog-agent/comp/core/status" "github.com/DataDog/datadog-agent/comp/otelcol/otlp" + "github.com/DataDog/datadog-agent/comp/otelcol/otlp/configcheck" ) //go:embed status_templates @@ -28,7 +29,7 @@ func (c *collectorImpl) getStatusInfo() map[string]interface{} { func (c *collectorImpl) populateStatus(stats map[string]interface{}) { otlpStatus := make(map[string]interface{}) - otlpIsEnabled := otlp.IsEnabled(c.config) + otlpIsEnabled := configcheck.IsEnabled(c.config) var otlpCollectorStatus otlp.CollectorStatus diff --git a/comp/otelcol/otlp/config.go b/comp/otelcol/otlp/config.go index f223e15dd6a72..82448dbf45a59 100644 --- a/comp/otelcol/otlp/config.go +++ b/comp/otelcol/otlp/config.go @@ -12,12 +12,11 @@ import ( "fmt" "strings" - "github.com/mohae/deepcopy" - "go.opentelemetry.io/collector/confmap" "go.uber.org/multierr" "github.com/DataDog/datadog-agent/comp/core/config" "github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter" + "github.com/DataDog/datadog-agent/comp/otelcol/otlp/configcheck" coreconfig "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/util" "github.com/go-viper/mapstructure/v2" @@ -31,50 +30,10 @@ func portToUint(v int) (port uint, err error) { return } -// readConfigSection from a config.Component object. -func readConfigSection(cfg config.Reader, section string) *confmap.Conf { - // Viper doesn't work well when getting subsections, since it - // ignores environment variables and nil-but-present sections. - // To work around this, we do the following two steps: - - // Step one works around https://github.com/spf13/viper/issues/819 - // If we only had the stuff below, the nil sections would be ignored. - // We want to take into account nil-but-present sections. - // - // Furthermore, Viper returns an `interface{}` nil in the case where - // `section` is present but empty: e.g. we want to read - // "otlp_config.receiver", but we have - // - // otlp_config: - // receiver: - // - // `GetStringMap` it will fail to cast `interface{}` nil to - // `map[string]interface{}` nil; we use `Get` and cast manually. - rawVal := cfg.Get(section) - stringMap := map[string]interface{}{} - if val, ok := rawVal.(map[string]interface{}); ok { - // deep copy since `cfg.Get` returns a reference - stringMap = deepcopy.Copy(val).(map[string]interface{}) - } - - // Step two works around https://github.com/spf13/viper/issues/1012 - // we check every key manually, and if it belongs to the OTLP receiver section, - // we set it. We need to do this to account for environment variable values. - prefix := section + "." - for _, key := range cfg.AllKeysLowercased() { - if strings.HasPrefix(key, prefix) && cfg.IsSet(key) { - mapKey := strings.ReplaceAll(key[len(prefix):], ".", confmap.KeyDelimiter) - // deep copy since `cfg.Get` returns a reference - stringMap[mapKey] = deepcopy.Copy(cfg.Get(key)) - } - } - return confmap.NewFromStringMap(stringMap) -} - // FromAgentConfig builds a pipeline configuration from an Agent configuration. func FromAgentConfig(cfg config.Reader) (PipelineConfig, error) { var errs []error - otlpConfig := readConfigSection(cfg, coreconfig.OTLPReceiverSection) + otlpConfig := configcheck.ReadConfigSection(cfg, coreconfig.OTLPReceiverSection) tracePort, err := portToUint(cfg.GetInt(coreconfig.OTLPTracePort)) if err != nil { errs = append(errs, fmt.Errorf("internal trace port is invalid: %w", err)) @@ -85,7 +44,7 @@ func FromAgentConfig(cfg config.Reader) (PipelineConfig, error) { if !metricsEnabled && !tracesEnabled && !logsEnabled { errs = append(errs, fmt.Errorf("at least one OTLP signal needs to be enabled")) } - metricsConfig := readConfigSection(cfg, coreconfig.OTLPMetrics) + metricsConfig := configcheck.ReadConfigSection(cfg, coreconfig.OTLPMetrics) metricsConfigMap := metricsConfig.ToStringMap() if _, ok := metricsConfigMap["apm_stats_receiver_addr"]; !ok { @@ -101,7 +60,7 @@ func FromAgentConfig(cfg config.Reader) (PipelineConfig, error) { errs = append(errs, fmt.Errorf("failed to normalize metrics config: %w", err)) } - debugConfig := readConfigSection(cfg, coreconfig.OTLPDebug) + debugConfig := configcheck.ReadConfigSection(cfg, coreconfig.OTLPDebug) return PipelineConfig{ OTLPReceiverConfig: otlpConfig.ToStringMap(), @@ -141,28 +100,3 @@ func normalizeMetricsConfig(metricsConfigMap map[string]interface{}, strict bool } return mc, nil } - -// IsEnabled checks if OTLP pipeline is enabled in a given config. -func IsEnabled(cfg config.Reader) bool { - return hasSection(cfg, coreconfig.OTLPReceiverSubSectionKey) -} - -// HasLogsSectionEnabled checks if OTLP logs are explicitly enabled in a given config. -func HasLogsSectionEnabled(cfg config.Reader) bool { - return hasSection(cfg, coreconfig.OTLPLogsEnabled) && cfg.GetBool(coreconfig.OTLPLogsEnabled) -} - -func hasSection(cfg config.Reader, section string) bool { - // HACK: We want to mark as enabled if the section is present, even if empty, so that we get errors - // from unmarshaling/validation done by the Collector code. - // - // IsSet won't work here: it will return false if the section is present but empty. - // To work around this, we check if the receiver key is present in the string map, which does the 'correct' thing. - _, ok := readConfigSection(cfg, coreconfig.OTLPSection).ToStringMap()[section] - return ok -} - -// IsDisplayed checks if the OTLP section should be rendered in the Agent -func IsDisplayed() bool { - return true -} diff --git a/comp/otelcol/otlp/config_test.go b/comp/otelcol/otlp/config_test.go index 250e05560ff1d..64ba24ff772e0 100644 --- a/comp/otelcol/otlp/config_test.go +++ b/comp/otelcol/otlp/config_test.go @@ -13,6 +13,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "github.com/DataDog/datadog-agent/comp/otelcol/otlp/configcheck" "github.com/DataDog/datadog-agent/comp/otelcol/otlp/testutil" ) @@ -32,7 +33,7 @@ func TestIsEnabled(t *testing.T) { t.Run(testInstance.path, func(t *testing.T) { cfg, err := testutil.LoadConfig(t, "./testdata/"+testInstance.path) require.NoError(t, err) - assert.Equal(t, testInstance.enabled, IsEnabled(cfg)) + assert.Equal(t, testInstance.enabled, configcheck.IsEnabled(cfg)) }) } } @@ -41,7 +42,7 @@ func TestIsEnabledEnv(t *testing.T) { t.Setenv("DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_GRPC_ENDPOINT", "0.0.0.0:9993") cfg, err := testutil.LoadConfig(t, "./testdata/empty.yaml") require.NoError(t, err) - assert.True(t, IsEnabled(cfg)) + assert.True(t, configcheck.IsEnabled(cfg)) } func TestFromAgentConfigReceiver(t *testing.T) { diff --git a/comp/otelcol/otlp/configcheck/configcheck.go b/comp/otelcol/otlp/configcheck/configcheck.go new file mode 100644 index 0000000000000..6ab1b1e2d4ec4 --- /dev/null +++ b/comp/otelcol/otlp/configcheck/configcheck.go @@ -0,0 +1,84 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2021-present Datadog, Inc. + +//go:build otlp + +// Package configcheck exposes helpers to fetch config. +package configcheck + +import ( + "strings" + + "github.com/mohae/deepcopy" + "go.opentelemetry.io/collector/confmap" + + "github.com/DataDog/datadog-agent/comp/core/config" + coreconfig "github.com/DataDog/datadog-agent/pkg/config/setup" +) + +// ReadConfigSection from a config.Component object. +func ReadConfigSection(cfg config.Reader, section string) *confmap.Conf { + // Viper doesn't work well when getting subsections, since it + // ignores environment variables and nil-but-present sections. + // To work around this, we do the following two steps: + + // Step one works around https://github.com/spf13/viper/issues/819 + // If we only had the stuff below, the nil sections would be ignored. + // We want to take into account nil-but-present sections. + // + // Furthermore, Viper returns an `interface{}` nil in the case where + // `section` is present but empty: e.g. we want to read + // "otlp_config.receiver", but we have + // + // otlp_config: + // receiver: + // + // `GetStringMap` it will fail to cast `interface{}` nil to + // `map[string]interface{}` nil; we use `Get` and cast manually. + rawVal := cfg.Get(section) + stringMap := map[string]interface{}{} + if val, ok := rawVal.(map[string]interface{}); ok { + // deep copy since `cfg.Get` returns a reference + stringMap = deepcopy.Copy(val).(map[string]interface{}) + } + + // Step two works around https://github.com/spf13/viper/issues/1012 + // we check every key manually, and if it belongs to the OTLP receiver section, + // we set it. We need to do this to account for environment variable values. + prefix := section + "." + for _, key := range cfg.AllKeysLowercased() { + if strings.HasPrefix(key, prefix) && cfg.IsSet(key) { + mapKey := strings.ReplaceAll(key[len(prefix):], ".", confmap.KeyDelimiter) + // deep copy since `cfg.Get` returns a reference + stringMap[mapKey] = deepcopy.Copy(cfg.Get(key)) + } + } + return confmap.NewFromStringMap(stringMap) +} + +// IsEnabled checks if OTLP pipeline is enabled in a given config. +func IsEnabled(cfg config.Reader) bool { + return hasSection(cfg, coreconfig.OTLPReceiverSubSectionKey) +} + +// HasLogsSectionEnabled checks if OTLP logs are explicitly enabled in a given config. +func HasLogsSectionEnabled(cfg config.Reader) bool { + return hasSection(cfg, coreconfig.OTLPLogsEnabled) && cfg.GetBool(coreconfig.OTLPLogsEnabled) +} + +func hasSection(cfg config.Reader, section string) bool { + // HACK: We want to mark as enabled if the section is present, even if empty, so that we get errors + // from unmarshaling/validation done by the Collector code. + // + // IsSet won't work here: it will return false if the section is present but empty. + // To work around this, we check if the receiver key is present in the string map, which does the 'correct' thing. + _, ok := ReadConfigSection(cfg, coreconfig.OTLPSection).ToStringMap()[section] + return ok +} + +// IsDisplayed checks if the OTLP section should be rendered in the Agent +func IsDisplayed() bool { + return true +} diff --git a/comp/otelcol/otlp/no_otlp.go b/comp/otelcol/otlp/configcheck/configcheck_no_otlp.go similarity index 89% rename from comp/otelcol/otlp/no_otlp.go rename to comp/otelcol/otlp/configcheck/configcheck_no_otlp.go index 0800b404fc178..7fc4eac8347ce 100644 --- a/comp/otelcol/otlp/no_otlp.go +++ b/comp/otelcol/otlp/configcheck/configcheck_no_otlp.go @@ -5,7 +5,8 @@ //go:build !otlp -package otlp +// Package configcheck exposes helpers to fetch config. +package configcheck import ( "github.com/DataDog/datadog-agent/pkg/config/model" diff --git a/comp/otelcol/otlp/pipeline_validator_serverless.go b/comp/otelcol/otlp/pipeline_validator_serverless.go index 9f17f6040cc41..69916e157a07c 100644 --- a/comp/otelcol/otlp/pipeline_validator_serverless.go +++ b/comp/otelcol/otlp/pipeline_validator_serverless.go @@ -11,11 +11,12 @@ import ( "fmt" "github.com/DataDog/datadog-agent/comp/core/config" + "github.com/DataDog/datadog-agent/comp/otelcol/otlp/configcheck" "github.com/DataDog/datadog-agent/pkg/logs/message" ) func checkAndUpdateCfg(cfg config.Component, pcfg PipelineConfig, logsAgentChannel chan *message.Message) error { - if HasLogsSectionEnabled(cfg) { + if configcheck.HasLogsSectionEnabled(cfg) { pipelineError.Store(fmt.Errorf("Cannot enable OTLP log ingestion for serverless")) return pipelineError.Load() } diff --git a/comp/trace/config/setup.go b/comp/trace/config/setup.go index c095990736ceb..4cdb5f832eae2 100644 --- a/comp/trace/config/setup.go +++ b/comp/trace/config/setup.go @@ -24,7 +24,7 @@ import ( corecompcfg "github.com/DataDog/datadog-agent/comp/core/config" tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/core/tagger/types" - "github.com/DataDog/datadog-agent/comp/otelcol/otlp" + "github.com/DataDog/datadog-agent/comp/otelcol/otlp/configcheck" "github.com/DataDog/datadog-agent/pkg/config/env" "github.com/DataDog/datadog-agent/pkg/config/model" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" @@ -355,7 +355,7 @@ func applyDatadogConfig(c *config.AgentConfig, core corecompcfg.Component) error c.GUIPort = core.GetString("GUI_port") var grpcPort int - if otlp.IsEnabled(pkgconfigsetup.Datadog()) { + if configcheck.IsEnabled(pkgconfigsetup.Datadog()) { grpcPort = core.GetInt(pkgconfigsetup.OTLPTracePort) } diff --git a/pkg/serverless/otlp/otlp.go b/pkg/serverless/otlp/otlp.go index fcb44c14d3c47..0efb26bb4f23c 100644 --- a/pkg/serverless/otlp/otlp.go +++ b/pkg/serverless/otlp/otlp.go @@ -16,6 +16,7 @@ import ( "go.opentelemetry.io/collector/otelcol" coreOtlp "github.com/DataDog/datadog-agent/comp/otelcol/otlp" + "github.com/DataDog/datadog-agent/comp/otelcol/otlp/configcheck" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/serializer" "github.com/DataDog/datadog-agent/pkg/util/log" @@ -61,7 +62,7 @@ func (o *ServerlessOTLPAgent) Stop() { // IsEnabled returns true if the OTLP endpoint should be enabled. func IsEnabled() bool { - return coreOtlp.IsEnabled(pkgconfigsetup.Datadog()) + return configcheck.IsEnabled(pkgconfigsetup.Datadog()) } var ( From 09d08347439a5e1a1d3fbe9590a6ba1897eff3b8 Mon Sep 17 00:00:00 2001 From: Pierre Gimalac Date: Mon, 2 Dec 2024 17:57:18 +0100 Subject: [PATCH 204/439] Remove unused function GetSyslogURIFromConfig (#31646) --- pkg/util/log/setup/log_nix.go | 5 ----- pkg/util/log/setup/log_windows.go | 5 ----- 2 files changed, 10 deletions(-) diff --git a/pkg/util/log/setup/log_nix.go b/pkg/util/log/setup/log_nix.go index 8448d95501258..b72366ce8db0e 100644 --- a/pkg/util/log/setup/log_nix.go +++ b/pkg/util/log/setup/log_nix.go @@ -14,11 +14,6 @@ import ( // GetSyslogURI returns the configured/default syslog uri. // Returns an empty string when syslog is disabled. func GetSyslogURI(cfg pkgconfigmodel.Reader) string { - return GetSyslogURIFromConfig(cfg) -} - -// GetSyslogURIFromConfig is like GetSyslogURI but reads from the provided config -func GetSyslogURIFromConfig(cfg pkgconfigmodel.Reader) string { enabled := cfg.GetBool("log_to_syslog") uri := cfg.GetString("syslog_uri") diff --git a/pkg/util/log/setup/log_windows.go b/pkg/util/log/setup/log_windows.go index 0b985055b1b84..eb12805b65530 100644 --- a/pkg/util/log/setup/log_windows.go +++ b/pkg/util/log/setup/log_windows.go @@ -12,11 +12,6 @@ import ( // GetSyslogURI returns the configured/default syslog uri func GetSyslogURI(cfg pkgconfigmodel.Reader) string { - return GetSyslogURIFromConfig(cfg) -} - -// GetSyslogURIFromConfig is like GetSyslogURI but reads from the provided config -func GetSyslogURIFromConfig(cfg pkgconfigmodel.Reader) string { enabled := cfg.GetBool("log_to_syslog") if enabled { From e1234c2fc6169a14d694fda8a0796dcf31546d80 Mon Sep 17 00:00:00 2001 From: Pierre Gimalac Date: Mon, 2 Dec 2024 17:58:56 +0100 Subject: [PATCH 205/439] Fix default syslog URI on Darwin (#31650) --- comp/core/log/def/params.go | 3 +++ ...fix-syslog-default-uri-macos-31cd74143cfe1fcc.yaml | 11 +++++++++++ 2 files changed, 14 insertions(+) create mode 100644 releasenotes/notes/fix-syslog-default-uri-macos-31cd74143cfe1fcc.yaml diff --git a/comp/core/log/def/params.go b/comp/core/log/def/params.go index 30ed78cee75e7..87b40a85aca9b 100644 --- a/comp/core/log/def/params.go +++ b/comp/core/log/def/params.go @@ -119,6 +119,9 @@ func ForDaemon(loggerName, logFileConfig, defaultLogFile string) Params { } if uri == "" { + if runtime.GOOS == "darwin" { + return "unixgram:///var/run/syslog" + } return "unixgram:///dev/log" } diff --git a/releasenotes/notes/fix-syslog-default-uri-macos-31cd74143cfe1fcc.yaml b/releasenotes/notes/fix-syslog-default-uri-macos-31cd74143cfe1fcc.yaml new file mode 100644 index 0000000000000..bad91524c704a --- /dev/null +++ b/releasenotes/notes/fix-syslog-default-uri-macos-31cd74143cfe1fcc.yaml @@ -0,0 +1,11 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +fixes: + - | + Use ``/var/run/syslog`` as the default syslog socket path on macOS. From cbcc489070201e055dd0fc2dacbc858874af4e57 Mon Sep 17 00:00:00 2001 From: Pierre Gimalac Date: Mon, 2 Dec 2024 17:59:41 +0100 Subject: [PATCH 206/439] Fix pkg/util/log/setup/defaults_darwin.go file name (#31648) --- pkg/util/log/setup/{defatults_darwin.go => defaults_darwin.go} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename pkg/util/log/setup/{defatults_darwin.go => defaults_darwin.go} (100%) diff --git a/pkg/util/log/setup/defatults_darwin.go b/pkg/util/log/setup/defaults_darwin.go similarity index 100% rename from pkg/util/log/setup/defatults_darwin.go rename to pkg/util/log/setup/defaults_darwin.go From 18d4cdd89cf2578c8d01addf43a2e91bbe48ef70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9lian=20Raimbault?= <161456554+CelianR@users.noreply.github.com> Date: Mon, 2 Dec 2024 12:15:19 -0500 Subject: [PATCH 207/439] Revert "[JUnit] Raise error on `datadog-ci` command not found (#29458)" (#31670) --- tasks/libs/common/junit_upload_core.py | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/tasks/libs/common/junit_upload_core.py b/tasks/libs/common/junit_upload_core.py index b7282d9bf4ebc..54d01fc2af0a4 100644 --- a/tasks/libs/common/junit_upload_core.py +++ b/tasks/libs/common/junit_upload_core.py @@ -29,17 +29,14 @@ E2E_INTERNAL_ERROR_STRING = "E2E INTERNAL ERROR" CODEOWNERS_ORG_PREFIX = "@DataDog/" REPO_NAME_PREFIX = "github.com/DataDog/datadog-agent/" +if platform.system() == "Windows": + DATADOG_CI_COMMAND = [r"c:\devtools\datadog-ci\datadog-ci", "junit", "upload"] +else: + DATADOG_CI_COMMAND = [which("datadog-ci"), "junit", "upload"] JOB_ENV_FILE_NAME = "job_env.txt" TAGS_FILE_NAME = "tags.txt" -def get_datadog_ci_command(): - path_datadog_ci = which("datadog-ci") - if path_datadog_ci is None: - raise FileNotFoundError("datadog-ci command not found") - return path_datadog_ci - - def enrich_junitxml(xml_path: str, flavor: AgentFlavor): """ Modifies the JUnit XML file: @@ -235,7 +232,6 @@ def upload_junitxmls(team_dir: Path): """ Upload all per-team split JUnit XMLs from given directory. """ - datadog_ci_command = [get_datadog_ci_command(), "junit", "upload"] additional_tags = read_additional_tags(team_dir.parent) process_env = _update_environ(team_dir.parent) processes = [] @@ -246,7 +242,7 @@ def upload_junitxmls(team_dir: Path): for flags, files in xml_files.items(): args = set_tags(owner, flavor, flags, additional_tags, files[0]) args.extend(files) - processes.append(Popen(datadog_ci_command + args, bufsize=-1, env=process_env, stdout=PIPE, stderr=PIPE)) + processes.append(Popen(DATADOG_CI_COMMAND + args, bufsize=-1, env=process_env, stdout=PIPE, stderr=PIPE)) for process in processes: stdout, stderr = process.communicate() @@ -254,7 +250,7 @@ def upload_junitxmls(team_dir: Path): print(f" Uploaded {len(tuple(team_dir.iterdir()))} files for {team_dir.name}") if stderr: print(f"Failed uploading junit:\n{stderr.decode()}", file=sys.stderr) - raise CalledProcessError(process.returncode, datadog_ci_command) + raise CalledProcessError(process.returncode, DATADOG_CI_COMMAND) return "" # For ThreadPoolExecutor.map. Without this it prints None in the log output. From 12bde500bdb3753550b6d58936c66cc3d2f13c89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Mathieu?= Date: Mon, 2 Dec 2024 18:15:35 +0100 Subject: [PATCH 208/439] serializer: lower the verbosity of the log of the metadata and process metadata payload successfully sent. (#31556) --- pkg/serializer/serializer.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkg/serializer/serializer.go b/pkg/serializer/serializer.go index 3b23839b026a2..a60e474cebd35 100644 --- a/pkg/serializer/serializer.go +++ b/pkg/serializer/serializer.go @@ -504,7 +504,7 @@ func (s *Serializer) sendMetadata(m marshaler.JSONMarshaler, submit func(payload return err } - log.Infof("Sent metadata payload, size (raw/compressed): %d/%d bytes.", len(payload), len(compressedPayload)) + log.Debugf("Sent metadata payload, size (raw/compressed): %d/%d bytes.", len(payload), len(compressedPayload)) return nil } @@ -529,8 +529,7 @@ func (s *Serializer) SendProcessesMetadata(data interface{}) error { return err } - log.Infof("Sent processes metadata payload, size: %d bytes.", len(payload)) - log.Debugf("Sent processes metadata payload, content: %v", string(payload)) + log.Debugf("Sent processes metadata payload, size: %d bytes, content: %v", len(payload), string(payload)) return nil } From 066618a5a8d1d8a69a5abf08d14c947bba0836f0 Mon Sep 17 00:00:00 2001 From: Guy Arbitman Date: Mon, 2 Dec 2024 19:43:42 +0200 Subject: [PATCH 209/439] usm: config: Default USM configuration should not warn about using network_config.enable_https_monitoring (#31639) --- cmd/system-probe/config/adjust_usm.go | 2 +- .../inventoryagentimpl/inventoryagent_test.go | 2 +- pkg/network/config/config_test.go | 37 +++++++++---------- 3 files changed, 20 insertions(+), 21 deletions(-) diff --git a/cmd/system-probe/config/adjust_usm.go b/cmd/system-probe/config/adjust_usm.go index e671f97f1255c..aa473538b5002 100644 --- a/cmd/system-probe/config/adjust_usm.go +++ b/cmd/system-probe/config/adjust_usm.go @@ -19,7 +19,6 @@ const ( func adjustUSM(cfg model.Config) { if cfg.GetBool(smNS("enabled")) { - applyDefault(cfg, netNS("enable_https_monitoring"), true) applyDefault(cfg, spNS("enable_runtime_compiler"), true) applyDefault(cfg, spNS("enable_kernel_header_download"), true) @@ -29,6 +28,7 @@ func adjustUSM(cfg model.Config) { deprecateBool(cfg, netNS("enable_http_monitoring"), smNS("enable_http_monitoring")) applyDefault(cfg, smNS("enable_http_monitoring"), true) deprecateBool(cfg, netNS("enable_https_monitoring"), smNS("tls", "native", "enabled")) + applyDefault(cfg, smNS("tls", "native", "enabled"), true) deprecateBool(cfg, smNS("enable_go_tls_support"), smNS("tls", "go", "enabled")) applyDefault(cfg, smNS("tls", "go", "enabled"), true) deprecateGeneric(cfg, netNS("http_replace_rules"), smNS("http_replace_rules")) diff --git a/comp/metadata/inventoryagent/inventoryagentimpl/inventoryagent_test.go b/comp/metadata/inventoryagent/inventoryagentimpl/inventoryagent_test.go index 18aab8f237c77..f8466bef53cb4 100644 --- a/comp/metadata/inventoryagent/inventoryagentimpl/inventoryagent_test.go +++ b/comp/metadata/inventoryagent/inventoryagentimpl/inventoryagent_test.go @@ -484,7 +484,7 @@ func TestFetchSystemProbeAgent(t *testing.T) { assert.True(t, ia.data["feature_cws_remote_config_enabled"].(bool)) assert.False(t, ia.data["feature_networks_enabled"].(bool)) assert.True(t, ia.data["feature_networks_http_enabled"].(bool)) - assert.False(t, ia.data["feature_networks_https_enabled"].(bool)) + assert.True(t, ia.data["feature_networks_https_enabled"].(bool)) assert.False(t, ia.data["feature_usm_enabled"].(bool)) assert.False(t, ia.data["feature_usm_kafka_enabled"].(bool)) assert.False(t, ia.data["feature_usm_postgres_enabled"].(bool)) diff --git a/pkg/network/config/config_test.go b/pkg/network/config/config_test.go index a5fefa550aa68..b2f8929608cb5 100644 --- a/pkg/network/config/config_test.go +++ b/pkg/network/config/config_test.go @@ -1393,36 +1393,43 @@ func TestMaxUSMConcurrentRequests(t *testing.T) { } func TestUSMTLSNativeEnabled(t *testing.T) { + t.Run("Default", func(t *testing.T) { + mock.NewSystemProbe(t) + cfg := New() + + assert.True(t, cfg.EnableNativeTLSMonitoring) + }) + t.Run("via deprecated YAML", func(t *testing.T) { mockSystemProbe := mock.NewSystemProbe(t) - mockSystemProbe.SetWithoutSource("network_config.enable_https_monitoring", true) + mockSystemProbe.SetWithoutSource("network_config.enable_https_monitoring", false) cfg := New() - require.True(t, cfg.EnableNativeTLSMonitoring) + assert.False(t, cfg.EnableNativeTLSMonitoring) }) t.Run("via deprecated ENV variable", func(t *testing.T) { mock.NewSystemProbe(t) - t.Setenv("DD_SYSTEM_PROBE_NETWORK_ENABLE_HTTPS_MONITORING", "true") + t.Setenv("DD_SYSTEM_PROBE_NETWORK_ENABLE_HTTPS_MONITORING", "false") cfg := New() - require.True(t, cfg.EnableNativeTLSMonitoring) + assert.False(t, cfg.EnableNativeTLSMonitoring) }) t.Run("via YAML", func(t *testing.T) { mockSystemProbe := mock.NewSystemProbe(t) - mockSystemProbe.SetWithoutSource("service_monitoring_config.tls.native.enabled", true) + mockSystemProbe.SetWithoutSource("service_monitoring_config.tls.native.enabled", false) cfg := New() - require.True(t, cfg.EnableNativeTLSMonitoring) + assert.False(t, cfg.EnableNativeTLSMonitoring) }) t.Run("via ENV variable", func(t *testing.T) { mock.NewSystemProbe(t) - t.Setenv("DD_SERVICE_MONITORING_CONFIG_TLS_NATIVE_ENABLED", "true") + t.Setenv("DD_SERVICE_MONITORING_CONFIG_TLS_NATIVE_ENABLED", "false") cfg := New() - require.True(t, cfg.EnableNativeTLSMonitoring) + assert.False(t, cfg.EnableNativeTLSMonitoring) }) t.Run("Deprecated is enabled, new is disabled", func(t *testing.T) { @@ -1431,7 +1438,7 @@ func TestUSMTLSNativeEnabled(t *testing.T) { t.Setenv("DD_SERVICE_MONITORING_CONFIG_TLS_NATIVE_ENABLED", "false") cfg := New() - require.False(t, cfg.EnableNativeTLSMonitoring) + assert.False(t, cfg.EnableNativeTLSMonitoring) }) t.Run("Deprecated is disabled, new is enabled", func(t *testing.T) { @@ -1440,7 +1447,7 @@ func TestUSMTLSNativeEnabled(t *testing.T) { t.Setenv("DD_SERVICE_MONITORING_CONFIG_TLS_NATIVE_ENABLED", "true") cfg := New() - require.True(t, cfg.EnableNativeTLSMonitoring) + assert.True(t, cfg.EnableNativeTLSMonitoring) }) t.Run("Both enabled", func(t *testing.T) { @@ -1449,15 +1456,7 @@ func TestUSMTLSNativeEnabled(t *testing.T) { t.Setenv("DD_SERVICE_MONITORING_CONFIG_TLS_NATIVE_ENABLED", "true") cfg := New() - require.True(t, cfg.EnableNativeTLSMonitoring) - }) - - t.Run("Not enabled", func(t *testing.T) { - mock.NewSystemProbe(t) - cfg := New() - - // Default value. - require.False(t, cfg.EnableNativeTLSMonitoring) + assert.True(t, cfg.EnableNativeTLSMonitoring) }) } From be4b703d2ac3d2b1a63bd2b50b2a9b1b9bf7f18e Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Mon, 2 Dec 2024 18:56:25 +0100 Subject: [PATCH 210/439] [CWS] do not enable fentry on kernel < 6.1 (#31664) --- pkg/security/probe/probe_ebpf.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go index 8df6dcab2daf5..62e0782fa38dc 100644 --- a/pkg/security/probe/probe_ebpf.go +++ b/pkg/security/probe/probe_ebpf.go @@ -194,6 +194,12 @@ func (p *EBPFProbe) selectFentryMode() { return } + if p.kernelVersion.Code < kernel.Kernel6_1 { + p.useFentry = false + seclog.Warnf("fentry enabled but not fully supported on this kernel version (< 6.1), falling back to kprobe mode") + return + } + if !p.kernelVersion.HaveFentrySupport() { p.useFentry = false seclog.Errorf("fentry enabled but not supported, falling back to kprobe mode") From f32d2d4683287c422217d4f7be721c69c7deab2e Mon Sep 17 00:00:00 2001 From: Pierre Gimalac Date: Tue, 3 Dec 2024 08:56:23 +0100 Subject: [PATCH 211/439] Stop initializing the logger twice in dogstatsd (#31662) --- cmd/dogstatsd/subcommands/start/command.go | 28 ---------------------- 1 file changed, 28 deletions(-) diff --git a/cmd/dogstatsd/subcommands/start/command.go b/cmd/dogstatsd/subcommands/start/command.go index 245ff9139caff..0a0d0678cf712 100644 --- a/cmd/dogstatsd/subcommands/start/command.go +++ b/cmd/dogstatsd/subcommands/start/command.go @@ -55,7 +55,6 @@ import ( "github.com/DataDog/datadog-agent/comp/metadata/runner" metadatarunnerimpl "github.com/DataDog/datadog-agent/comp/metadata/runner/runnerimpl" compressionfx "github.com/DataDog/datadog-agent/comp/serializer/compression/fx" - pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/serializer" "github.com/DataDog/datadog-agent/pkg/status/health" "github.com/DataDog/datadog-agent/pkg/util" @@ -236,33 +235,6 @@ func RunDogstatsd(_ context.Context, cliParams *CLIParams, config config.Compone } }() - // Setup logger - syslogURI := pkglogsetup.GetSyslogURI(pkgconfigsetup.Datadog()) - logFile := config.GetString("log_file") - if logFile == "" { - logFile = params.DefaultLogFile - } - - if config.GetBool("disable_file_logging") { - // this will prevent any logging on file - logFile = "" - } - - err = pkglogsetup.SetupLogger( - loggerName, - config.GetString("log_level"), - logFile, - syslogURI, - config.GetBool("syslog_rfc"), - config.GetBool("log_to_console"), - config.GetBool("log_format_json"), - pkgconfigsetup.Datadog(), - ) - if err != nil { - log.Criticalf("Unable to setup logger: %s", err) - return - } - if err := util.SetupCoreDump(config); err != nil { log.Warnf("Can't setup core dumps: %v, core dumps might not be available after a crash", err) } From a2c13ca93614182c7fe617bfbb2ccdebc81e2846 Mon Sep 17 00:00:00 2001 From: Pierre Gimalac Date: Tue, 3 Dec 2024 09:39:19 +0100 Subject: [PATCH 212/439] Fix dogstatsd config file path help message (#31663) --- cmd/dogstatsd/subcommands/start/command.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/dogstatsd/subcommands/start/command.go b/cmd/dogstatsd/subcommands/start/command.go index 0a0d0678cf712..f61ae13db837d 100644 --- a/cmd/dogstatsd/subcommands/start/command.go +++ b/cmd/dogstatsd/subcommands/start/command.go @@ -94,7 +94,7 @@ func MakeCommand(defaultLogFile string) *cobra.Command { } // local flags - startCmd.PersistentFlags().StringVarP(&cliParams.confPath, "cfgpath", "c", "", "path to directory containing datadog.yaml") + startCmd.PersistentFlags().StringVarP(&cliParams.confPath, "cfgpath", "c", "", "path to directory containing dogstatsd.yaml") startCmd.PersistentFlags().StringVarP(&cliParams.socketPath, "socket", "s", "", "listen to this socket instead of UDP") return startCmd From 5f0dfcff9c84e6fb5183f5259215461b3a05ae11 Mon Sep 17 00:00:00 2001 From: Kevin Fairise <132568982+KevinFairise2@users.noreply.github.com> Date: Tue, 3 Dec 2024 09:50:52 +0100 Subject: [PATCH 213/439] Commit gowork, and update tasks to use it (#31418) Co-authored-by: Esther Kim --- .gitignore | 7 +- LICENSE-3rdparty.csv | 2 +- comp/api/api/def/go.mod | 4 +- comp/api/api/def/go.sum | 12 +- comp/api/authtoken/go.mod | 39 +- comp/api/authtoken/go.sum | 151 +++-- comp/core/config/go.mod | 67 +-- comp/core/config/go.sum | 162 +++-- comp/core/flare/types/go.mod | 4 +- comp/core/flare/types/go.sum | 12 +- comp/core/hostname/hostnameinterface/go.mod | 8 +- comp/core/hostname/hostnameinterface/go.sum | 27 +- comp/core/log/def/go.mod | 7 +- comp/core/log/def/go.sum | 23 +- comp/core/log/impl-trace/go.mod | 31 +- comp/core/log/impl-trace/go.sum | 110 ++-- comp/core/log/impl/go.mod | 39 +- comp/core/log/impl/go.sum | 151 +++-- comp/core/log/mock/go.mod | 12 +- comp/core/log/mock/go.sum | 71 +-- comp/core/secrets/go.mod | 41 +- comp/core/secrets/go.sum | 97 ++- comp/core/status/go.mod | 10 +- comp/core/status/go.sum | 26 +- comp/core/status/statusimpl/go.mod | 12 +- comp/core/status/statusimpl/go.sum | 86 +-- comp/core/tagger/types/go.mod | 7 +- comp/core/tagger/types/go.sum | 17 +- comp/core/tagger/utils/go.mod | 7 +- comp/core/tagger/utils/go.sum | 23 +- comp/core/telemetry/go.mod | 39 +- comp/core/telemetry/go.sum | 93 ++- comp/def/go.mod | 7 +- comp/def/go.sum | 23 +- comp/forwarder/defaultforwarder/go.mod | 50 +- comp/forwarder/defaultforwarder/go.sum | 129 ++-- .../orchestrator/orchestratorinterface/go.mod | 50 +- .../orchestrator/orchestratorinterface/go.sum | 129 ++-- comp/logs/agent/config/go.mod | 39 +- comp/logs/agent/config/go.sum | 151 +++-- comp/otelcol/collector-contrib/def/go.mod | 13 +- comp/otelcol/collector-contrib/def/go.sum | 28 +- comp/otelcol/collector-contrib/impl/go.mod | 44 +- comp/otelcol/collector-contrib/impl/go.sum | 109 ++-- comp/otelcol/converter/def/go.mod | 1 + comp/otelcol/converter/def/go.sum | 4 +- comp/otelcol/converter/impl/go.mod | 10 +- comp/otelcol/converter/impl/go.sum | 44 +- comp/otelcol/ddflareextension/def/go.mod | 6 +- comp/otelcol/ddflareextension/def/go.sum | 16 +- comp/otelcol/ddflareextension/impl/go.mod | 60 +- comp/otelcol/ddflareextension/impl/go.sum | 129 ++-- comp/otelcol/logsagentpipeline/go.mod | 68 +-- comp/otelcol/logsagentpipeline/go.sum | 158 +++-- .../logsagentpipelineimpl/go.mod | 64 +- .../logsagentpipelineimpl/go.sum | 152 +++-- .../exporter/datadogexporter/go.mod | 40 +- .../exporter/datadogexporter/go.sum | 106 ++-- .../exporter/logsagentexporter/go.mod | 41 +- .../exporter/logsagentexporter/go.sum | 138 ++--- .../exporter/serializerexporter/go.mod | 51 +- .../exporter/serializerexporter/go.sum | 162 ++--- .../otlp/components/metricsclient/go.mod | 12 +- .../otlp/components/metricsclient/go.sum | 31 +- .../processor/infraattributesprocessor/go.mod | 9 +- .../processor/infraattributesprocessor/go.sum | 18 +- .../otlp/components/statsprocessor/go.mod | 36 +- .../otlp/components/statsprocessor/go.sum | 117 ++-- comp/otelcol/otlp/testutil/go.mod | 33 +- comp/otelcol/otlp/testutil/go.sum | 146 ++--- comp/serializer/compression/go.mod | 41 +- comp/serializer/compression/go.sum | 155 +++-- comp/trace/agent/def/go.mod | 8 +- comp/trace/agent/def/go.sum | 55 +- comp/trace/compression/impl-zstd/go.mod | 2 +- comp/trace/compression/impl-zstd/go.sum | 4 +- docs/dev/modules.md | 2 + go.mod | 21 +- go.sum | 119 +--- go.work | 129 ++++ internal/tools/go.mod | 75 +-- internal/tools/go.sum | 568 +++--------------- internal/tools/modparser/go.mod | 7 +- internal/tools/modparser/go.sum | 23 +- internal/tools/proto/go.mod | 22 +- internal/tools/proto/go.sum | 102 ++-- pkg/aggregator/ckey/go.mod | 4 +- pkg/aggregator/ckey/go.sum | 17 +- pkg/api/go.mod | 39 +- pkg/api/go.sum | 151 +++-- .../corechecks/oracle/test-utils/run-tests.sh | 2 +- pkg/config/env/go.mod | 33 +- pkg/config/env/go.sum | 80 ++- pkg/config/mock/go.mod | 35 +- pkg/config/mock/go.sum | 149 +++-- pkg/config/model/go.mod | 20 +- pkg/config/model/go.sum | 38 +- pkg/config/nodetreemodel/go.mod | 18 +- pkg/config/nodetreemodel/go.sum | 34 +- pkg/config/remote/go.mod | 76 +-- pkg/config/remote/go.sum | 291 ++++----- pkg/config/setup/go.mod | 67 +-- pkg/config/setup/go.sum | 162 +++-- pkg/config/structure/go.mod | 16 +- pkg/config/structure/go.sum | 32 +- pkg/config/teeconfig/go.mod | 14 +- pkg/config/teeconfig/go.sum | 35 +- pkg/config/utils/go.mod | 35 +- pkg/config/utils/go.sum | 149 +++-- pkg/errors/go.mod | 7 +- pkg/errors/go.sum | 23 +- pkg/gohai/go.mod | 11 +- pkg/gohai/go.sum | 27 +- pkg/linters/components/pkgconfigusage/go.mod | 7 +- pkg/linters/components/pkgconfigusage/go.sum | 23 +- pkg/logs/auditor/go.mod | 35 +- pkg/logs/auditor/go.sum | 149 +++-- pkg/logs/client/go.mod | 70 ++- pkg/logs/client/go.sum | 160 +++-- pkg/logs/diagnostic/go.mod | 39 +- pkg/logs/diagnostic/go.sum | 151 +++-- pkg/logs/launchers/windowsevent/README.md | 2 +- pkg/logs/message/go.mod | 35 +- pkg/logs/message/go.sum | 149 +++-- pkg/logs/metrics/go.mod | 41 +- pkg/logs/metrics/go.sum | 100 ++- pkg/logs/pipeline/go.mod | 74 ++- pkg/logs/pipeline/go.sum | 167 +++-- pkg/logs/processor/go.mod | 72 ++- pkg/logs/processor/go.sum | 164 +++-- pkg/logs/sds/go.mod | 70 ++- pkg/logs/sds/go.sum | 160 +++-- pkg/logs/sender/go.mod | 70 ++- pkg/logs/sender/go.sum | 160 +++-- pkg/logs/sources/go.mod | 35 +- pkg/logs/sources/go.sum | 149 +++-- pkg/logs/status/utils/go.mod | 7 +- pkg/logs/status/utils/go.sum | 23 +- pkg/logs/util/testutils/go.mod | 31 +- pkg/logs/util/testutils/go.sum | 149 +++-- pkg/metrics/go.mod | 72 ++- pkg/metrics/go.sum | 166 +++-- pkg/network/testdata/run_latency_bench.sh | 4 +- pkg/networkdevice/profile/go.mod | 4 +- pkg/networkdevice/profile/go.sum | 8 +- pkg/obfuscate/go.mod | 20 +- pkg/obfuscate/go.sum | 46 +- pkg/orchestrator/model/go.mod | 1 + pkg/orchestrator/model/go.sum | 18 +- pkg/process/util/api/go.mod | 47 +- pkg/process/util/api/go.sum | 111 ++-- pkg/proto/go.mod | 27 +- pkg/proto/go.sum | 66 +- pkg/remoteconfig/state/go.mod | 7 +- pkg/remoteconfig/state/go.sum | 15 +- pkg/security/events/event.go | 2 +- pkg/security/probe/actions.go | 2 +- pkg/security/probe/actions_linux.go | 2 +- pkg/security/probe/custom_events.go | 2 +- pkg/security/rules/monitor/policy_monitor.go | 2 +- .../generators/accessors/accessors.go | 2 +- .../compiler/generators/accessors/doc/doc.go | 2 +- pkg/security/secl/go.mod | 9 +- pkg/security/secl/go.sum | 16 +- pkg/security/seclwin/go.sum | 6 +- pkg/security/serializers/serializers_linux.go | 4 +- pkg/serializer/go.mod | 58 +- pkg/serializer/go.sum | 146 +++-- pkg/status/health/go.mod | 7 +- pkg/status/health/go.sum | 23 +- pkg/tagset/go.mod | 5 +- pkg/tagset/go.sum | 18 +- pkg/telemetry/go.mod | 41 +- pkg/telemetry/go.sum | 100 ++- pkg/trace/go.mod | 43 +- pkg/trace/go.sum | 96 ++- pkg/trace/stats/oteltest/go.mod | 36 +- pkg/trace/stats/oteltest/go.sum | 117 ++-- pkg/util/backoff/go.mod | 7 +- pkg/util/backoff/go.sum | 23 +- pkg/util/buf/go.mod | 7 +- pkg/util/buf/go.sum | 23 +- pkg/util/cache/go.mod | 7 +- pkg/util/cache/go.sum | 23 +- pkg/util/cgroups/go.mod | 18 +- pkg/util/cgroups/go.sum | 47 +- pkg/util/cgroups/memory_controller.go | 5 +- pkg/util/common/go.mod | 7 +- pkg/util/common/go.sum | 23 +- pkg/util/containers/image/go.mod | 7 +- pkg/util/containers/image/go.sum | 23 +- pkg/util/defaultpaths/go.sum | 17 +- pkg/util/executable/go.mod | 7 +- pkg/util/executable/go.sum | 23 +- pkg/util/filesystem/go.mod | 13 +- pkg/util/filesystem/go.sum | 53 +- pkg/util/flavor/go.mod | 35 +- pkg/util/flavor/go.sum | 149 +++-- pkg/util/fxutil/go.mod | 8 +- pkg/util/fxutil/go.sum | 27 +- pkg/util/grpc/go.mod | 53 +- pkg/util/grpc/go.sum | 234 ++++---- pkg/util/hostname/validate/go.mod | 5 +- pkg/util/hostname/validate/go.sum | 18 +- pkg/util/http/go.mod | 35 +- pkg/util/http/go.sum | 149 +++-- pkg/util/json/go.mod | 9 +- pkg/util/json/go.sum | 24 +- pkg/util/log/go.mod | 8 +- pkg/util/log/go.sum | 37 +- pkg/util/log/setup/go.mod | 35 +- pkg/util/log/setup/go.sum | 149 +++-- pkg/util/optional/go.mod | 7 +- pkg/util/optional/go.sum | 23 +- pkg/util/scrubber/go.mod | 7 +- pkg/util/scrubber/go.sum | 23 +- pkg/util/sort/go.mod | 7 +- pkg/util/sort/go.sum | 23 +- pkg/util/startstop/go.mod | 7 +- pkg/util/startstop/go.sum | 23 +- pkg/util/statstracker/go.mod | 7 +- pkg/util/statstracker/go.sum | 23 +- pkg/util/system/go.mod | 19 +- pkg/util/system/go.sum | 62 +- pkg/util/system/socket/go.mod | 9 +- pkg/util/system/socket/go.sum | 10 +- pkg/util/testutil/go.mod | 7 +- pkg/util/testutil/go.sum | 23 +- pkg/util/utilizationtracker/go.mod | 7 +- pkg/util/utilizationtracker/go.sum | 23 +- pkg/util/uuid/go.mod | 16 +- pkg/util/uuid/go.sum | 63 +- pkg/util/winutil/go.mod | 7 +- pkg/util/winutil/go.sum | 22 +- pkg/version/go.mod | 7 +- pkg/version/go.sum | 23 +- rtloader/test/CMakeLists.txt | 2 +- tasks/__init__.py | 4 - tasks/agent.py | 8 +- tasks/bench.py | 2 +- tasks/cluster_agent.py | 2 +- tasks/cluster_agent_helpers.py | 2 +- tasks/cws_instrumentation.py | 2 +- tasks/dogstatsd.py | 6 +- tasks/go.py | 8 +- tasks/gotest.py | 2 +- tasks/installer.py | 2 +- tasks/kmt.py | 2 +- tasks/libs/common/go_workspaces.py | 50 -- tasks/modules.py | 12 +- tasks/new_e2e_tests.py | 2 +- tasks/otel_agent.py | 2 +- tasks/process_agent.py | 2 +- tasks/security_agent.py | 4 +- tasks/system_probe.py | 18 +- tasks/systray.py | 2 +- tasks/trace_agent.py | 4 +- test/fakeintake/go.mod | 55 +- test/fakeintake/go.sum | 163 +++-- test/new-e2e/go.mod | 146 ++--- test/new-e2e/go.sum | 393 ++++++------ test/new-e2e/pkg/utils/e2e/client/docker.go | 5 +- test/otel/go.mod | 38 +- test/otel/go.sum | 100 +-- 264 files changed, 6408 insertions(+), 6748 deletions(-) create mode 100644 go.work delete mode 100644 tasks/libs/common/go_workspaces.py diff --git a/.gitignore b/.gitignore index 83c6d28794cff..28eca6d11d196 100644 --- a/.gitignore +++ b/.gitignore @@ -186,9 +186,6 @@ pkg/network/netlink/testdata/message_dump* # cscope cscope.out -# Go workspace until we have proper support in the tooling -go.work* - tools/windows/DatadogAgentInstaller/.vs/ tools/windows/DatadogAgentInstaller/packages/ tools/windows/DatadogAgentInstaller/WixSetup/cabcache/ @@ -220,3 +217,7 @@ ebpf-calculator # File generated by job creating flake finder pipeline flake-finder-gitlab-ci.yml + + +# go.work.sum is always changing, we should not need it since we tidy each module individually +go.work.sum diff --git a/LICENSE-3rdparty.csv b/LICENSE-3rdparty.csv index d964afa55b338..4d234625e0d52 100644 --- a/LICENSE-3rdparty.csv +++ b/LICENSE-3rdparty.csv @@ -2093,7 +2093,7 @@ core,github.com/sijms/go-ora/v2/network/security,MIT,Copyright (c) 2020 Samy Sul core,github.com/sijms/go-ora/v2/network/security/md4,MIT,Copyright (c) 2020 Samy Sultan core,github.com/sijms/go-ora/v2/trace,MIT,Copyright (c) 2020 Samy Sultan core,github.com/sirupsen/logrus,MIT,Copyright (c) 2014 Simon Eskildsen -core,github.com/skeema/knownhosts,Apache-2.0,Copyright 2023 Skeema LLC and the Skeema Knownhosts authors | copyright 2023 Skeema LLC and the Skeema Knownhosts authors** +core,github.com/skeema/knownhosts,Apache-2.0,Copyright 2024 Skeema LLC and the Skeema Knownhosts authors | copyright 2024 Skeema LLC and the Skeema Knownhosts authors** core,github.com/skydive-project/go-debouncer,Apache-2.0,"Copyright (C) 2018 Red Hat, Inc." core,github.com/smira/go-ftp-protocol/protocol,MIT,Copyright (c) 2014 Andrey Smirnov core,github.com/smira/go-xz,MIT,Copyright (c) 2015 Andrey Smirnov diff --git a/comp/api/api/def/go.mod b/comp/api/api/def/go.mod index d0e801edaa33c..09f4bd9d7e62e 100644 --- a/comp/api/api/def/go.mod +++ b/comp/api/api/def/go.mod @@ -2,9 +2,11 @@ module github.com/DataDog/datadog-agent/comp/api/api/def go 1.22.0 -require go.uber.org/fx v1.22.2 +require go.uber.org/fx v1.23.0 require ( + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/stretchr/testify v1.10.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect diff --git a/comp/api/api/def/go.sum b/comp/api/api/def/go.sum index 101b78c6cf5d6..e01f4bd76ea76 100644 --- a/comp/api/api/def/go.sum +++ b/comp/api/api/def/go.sum @@ -1,13 +1,13 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= diff --git a/comp/api/authtoken/go.mod b/comp/api/authtoken/go.mod index 04da7d39a3ba8..532d1be88a5c4 100644 --- a/comp/api/authtoken/go.mod +++ b/comp/api/authtoken/go.mod @@ -48,7 +48,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0 github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 github.com/stretchr/testify v1.10.0 - go.uber.org/fx v1.22.2 + go.uber.org/fx v1.23.0 ) require ( @@ -77,42 +77,39 @@ require ( github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/api/authtoken/go.sum b/comp/api/authtoken/go.sum index a29a7509778c0..2ad0ffbf9169a 100644 --- a/comp/api/authtoken/go.sum +++ b/comp/api/authtoken/go.sum @@ -1,10 +1,9 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -20,8 +19,8 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -33,10 +32,11 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -44,19 +44,20 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -69,18 +70,17 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -88,8 +88,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -113,69 +114,73 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -188,31 +193,27 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -220,27 +221,27 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -263,8 +264,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -283,8 +282,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -297,9 +294,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -317,8 +312,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -331,13 +324,14 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -349,7 +343,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/comp/core/config/go.mod b/comp/core/config/go.mod index 92b478489fc7e..a0064a7017610 100644 --- a/comp/core/config/go.mod +++ b/comp/core/config/go.mod @@ -45,7 +45,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 github.com/DataDog/viper v1.13.5 github.com/stretchr/testify v1.10.0 - go.uber.org/fx v1.22.2 + go.uber.org/fx v1.23.0 ) require ( @@ -65,58 +65,55 @@ require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-logr/logr v1.4.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/golang/protobuf v1.5.3 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/prometheus/client_golang v1.17.0 // indirect - github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.44.0 // indirect - github.com/prometheus/procfs v0.11.1 // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/prometheus/client_golang v1.20.5 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.60.1 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect - go.opentelemetry.io/otel v1.27.0 // indirect - go.opentelemetry.io/otel/metric v1.27.0 // indirect - go.opentelemetry.io/otel/sdk v1.27.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.27.0 // indirect - go.opentelemetry.io/otel/trace v1.27.0 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/core/config/go.sum b/comp/core/config/go.sum index 965c7b7e107bc..b64f4d01dfdc2 100644 --- a/comp/core/config/go.sum +++ b/comp/core/config/go.sum @@ -1,10 +1,9 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -12,8 +11,8 @@ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRF github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= -github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o= +github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -21,8 +20,8 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -34,10 +33,11 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -45,20 +45,21 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -71,20 +72,17 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -92,8 +90,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -108,6 +107,8 @@ github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALr github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -117,69 +118,73 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -192,31 +197,27 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -224,29 +225,29 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0 h1:jwV9iQdvp38fxXi8ZC+lNpxjK16MRcZlpDYvbuO1FiA= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0/go.mod h1:f3bYiqNqhoPxkvI2LrXqQVC546K7BuRDL/kKuxkujhA= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -269,8 +270,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -289,8 +288,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -303,9 +300,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -323,8 +318,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -337,10 +330,8 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -358,7 +349,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/comp/core/flare/types/go.mod b/comp/core/flare/types/go.mod index 323fc3f4191f4..a6ebdcf9f8a92 100644 --- a/comp/core/flare/types/go.mod +++ b/comp/core/flare/types/go.mod @@ -6,10 +6,12 @@ replace github.com/DataDog/datadog-agent/comp/core/flare/builder => ../builder require ( github.com/DataDog/datadog-agent/comp/core/flare/builder v0.56.0-rc.3 - go.uber.org/fx v1.22.2 + go.uber.org/fx v1.23.0 ) require ( + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/stretchr/testify v1.10.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect diff --git a/comp/core/flare/types/go.sum b/comp/core/flare/types/go.sum index 101b78c6cf5d6..e01f4bd76ea76 100644 --- a/comp/core/flare/types/go.sum +++ b/comp/core/flare/types/go.sum @@ -1,13 +1,13 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= diff --git a/comp/core/hostname/hostnameinterface/go.mod b/comp/core/hostname/hostnameinterface/go.mod index 825b6c434289b..4f6e92eb22127 100644 --- a/comp/core/hostname/hostnameinterface/go.mod +++ b/comp/core/hostname/hostnameinterface/go.mod @@ -11,16 +11,16 @@ replace ( require ( github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 github.com/stretchr/testify v1.10.0 - go.uber.org/fx v1.22.2 + go.uber.org/fx v1.23.0 ) require ( github.com/DataDog/datadog-agent/comp/def v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.55.0 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/spf13/cobra v1.7.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/pflag v1.0.5 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect diff --git a/comp/core/hostname/hostnameinterface/go.sum b/comp/core/hostname/hostnameinterface/go.sum index 135756fb05924..b6080ae54f78c 100644 --- a/comp/core/hostname/hostnameinterface/go.sum +++ b/comp/core/hostname/hostnameinterface/go.sum @@ -1,21 +1,27 @@ -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= @@ -24,7 +30,8 @@ go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/comp/core/log/def/go.mod b/comp/core/log/def/go.mod index 88318237b5c50..d438864349f25 100644 --- a/comp/core/log/def/go.mod +++ b/comp/core/log/def/go.mod @@ -5,7 +5,10 @@ go 1.22.0 require github.com/stretchr/testify v1.10.0 require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/core/log/def/go.sum b/comp/core/log/def/go.sum index 713a0b4f0a3a9..cec386e1e2769 100644 --- a/comp/core/log/def/go.sum +++ b/comp/core/log/def/go.sum @@ -1,10 +1,23 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/comp/core/log/impl-trace/go.mod b/comp/core/log/impl-trace/go.mod index 268642de8f814..4bbf09ab70ea0 100644 --- a/comp/core/log/impl-trace/go.mod +++ b/comp/core/log/impl-trace/go.mod @@ -48,7 +48,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect; v2.6 github.com/stretchr/testify v1.10.0 - go.uber.org/fx v1.22.2 // indirect + go.uber.org/fx v1.23.0 // indirect ) require ( @@ -77,41 +77,38 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect - github.com/magiconair/properties v1.8.1 // indirect + github.com/magiconair/properties v1.8.7 // indirect github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shirou/gopsutil/v3 v3.24.4 // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/core/log/impl-trace/go.sum b/comp/core/log/impl-trace/go.sum index a0d64ddd8c50b..2ad0ffbf9169a 100644 --- a/comp/core/log/impl-trace/go.sum +++ b/comp/core/log/impl-trace/go.sum @@ -1,10 +1,9 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -33,10 +32,11 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -44,8 +44,8 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -55,8 +55,9 @@ github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -69,13 +70,10 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= -github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= @@ -90,8 +88,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -115,14 +114,12 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= @@ -132,55 +129,58 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.4 h1:dEHgzZXt4LMNm+oYELpzl9YCqV65Yr/6SfrvgRBtXeU= -github.com/shirou/gopsutil/v3 v3.24.4/go.mod h1:lTd2mdiOspcqLgAnr9/nGi71NkeMpWKdmhuxm9GusH8= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -193,33 +193,27 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -246,8 +240,8 @@ go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -270,8 +264,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -290,8 +282,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -304,9 +294,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -324,8 +312,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -338,13 +324,14 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -356,7 +343,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/comp/core/log/impl/go.mod b/comp/core/log/impl/go.mod index 075d19cf5918c..116cf25e6c584 100644 --- a/comp/core/log/impl/go.mod +++ b/comp/core/log/impl/go.mod @@ -66,43 +66,40 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect - go.uber.org/fx v1.22.2 // indirect + go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/core/log/impl/go.sum b/comp/core/log/impl/go.sum index a29a7509778c0..2ad0ffbf9169a 100644 --- a/comp/core/log/impl/go.sum +++ b/comp/core/log/impl/go.sum @@ -1,10 +1,9 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -20,8 +19,8 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -33,10 +32,11 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -44,19 +44,20 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -69,18 +70,17 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -88,8 +88,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -113,69 +114,73 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -188,31 +193,27 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -220,27 +221,27 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -263,8 +264,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -283,8 +282,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -297,9 +294,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -317,8 +312,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -331,13 +324,14 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -349,7 +343,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/comp/core/log/mock/go.mod b/comp/core/log/mock/go.mod index b16aa5004276a..96c709d9f2f32 100644 --- a/comp/core/log/mock/go.mod +++ b/comp/core/log/mock/go.mod @@ -42,15 +42,15 @@ require ( github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.60.0-devel // indirect github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect diff --git a/comp/core/log/mock/go.sum b/comp/core/log/mock/go.sum index 94c21dfdbfce8..b3bd1378fba86 100644 --- a/comp/core/log/mock/go.sum +++ b/comp/core/log/mock/go.sum @@ -1,10 +1,9 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -30,8 +29,9 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -39,15 +39,15 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= -github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -75,8 +75,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= @@ -98,13 +99,15 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= @@ -114,14 +117,16 @@ github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwd github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= @@ -142,10 +147,10 @@ github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40T github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -160,8 +165,9 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= @@ -174,10 +180,10 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -185,8 +191,8 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= @@ -208,8 +214,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -228,8 +232,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -256,8 +258,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -273,8 +273,9 @@ google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= diff --git a/comp/core/secrets/go.mod b/comp/core/secrets/go.mod index 3432e8b1b2855..a9aed4be4329c 100644 --- a/comp/core/secrets/go.mod +++ b/comp/core/secrets/go.mod @@ -24,9 +24,9 @@ require ( github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/winutil v0.56.0-rc.3 - github.com/benbjohnson/clock v1.3.0 + github.com/benbjohnson/clock v1.3.5 github.com/stretchr/testify v1.10.0 - go.uber.org/fx v1.22.2 + go.uber.org/fx v1.23.0 golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f golang.org/x/sys v0.27.0 gopkg.in/yaml.v2 v2.4.0 @@ -37,31 +37,32 @@ require ( github.com/DataDog/datadog-agent/comp/def v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.55.0 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/go-logr/logr v1.4.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/golang/protobuf v1.5.3 // indirect + github.com/google/uuid v1.6.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_golang v1.17.0 // indirect - github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.44.0 // indirect - github.com/prometheus/procfs v0.11.1 // indirect - github.com/spf13/cobra v1.7.0 // indirect + github.com/klauspost/compress v1.17.11 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/prometheus/client_golang v1.20.5 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.60.1 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/pflag v1.0.5 // indirect - go.opentelemetry.io/otel v1.27.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.42.0 // indirect - go.opentelemetry.io/otel/metric v1.27.0 // indirect - go.opentelemetry.io/otel/sdk v1.27.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.27.0 // indirect - go.opentelemetry.io/otel/trace v1.27.0 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/core/secrets/go.sum b/comp/core/secrets/go.sum index ca7f0ac65c1a0..ab65a741ce60f 100644 --- a/comp/core/secrets/go.sum +++ b/comp/core/secrets/go.sum @@ -1,71 +1,72 @@ -github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= -github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o= +github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0 h1:jwV9iQdvp38fxXi8ZC+lNpxjK16MRcZlpDYvbuO1FiA= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0/go.mod h1:f3bYiqNqhoPxkvI2LrXqQVC546K7BuRDL/kKuxkujhA= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= @@ -74,14 +75,10 @@ go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/comp/core/status/go.mod b/comp/core/status/go.mod index a692306d9ceba..c71d31a9e3d40 100644 --- a/comp/core/status/go.mod +++ b/comp/core/status/go.mod @@ -4,22 +4,24 @@ go 1.22.0 require ( github.com/dustin/go-humanize v1.0.1 - github.com/fatih/color v1.16.0 + github.com/fatih/color v1.18.0 github.com/spf13/cast v1.7.0 github.com/stretchr/testify v1.10.0 - go.uber.org/fx v1.22.2 + go.uber.org/fx v1.23.0 golang.org/x/text v0.20.0 ) require ( - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/google/go-cmp v0.6.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/sys v0.27.0 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/core/status/go.sum b/comp/core/status/go.sum index dc06983efbed2..5c1fe66f815be 100644 --- a/comp/core/status/go.sum +++ b/comp/core/status/go.sum @@ -1,15 +1,18 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= -github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= @@ -17,18 +20,18 @@ github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovk github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= @@ -41,7 +44,8 @@ golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/comp/core/status/statusimpl/go.mod b/comp/core/status/statusimpl/go.mod index f9e78400f8b5d..552e3bbb07db0 100644 --- a/comp/core/status/statusimpl/go.mod +++ b/comp/core/status/statusimpl/go.mod @@ -53,7 +53,7 @@ require ( github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 github.com/gorilla/mux v1.8.1 github.com/stretchr/testify v1.10.0 - go.uber.org/fx v1.22.2 + go.uber.org/fx v1.23.0 golang.org/x/text v0.20.0 ) @@ -80,13 +80,12 @@ require ( github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect - github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dustin/go-humanize v1.0.1 // indirect - github.com/fatih/color v1.17.0 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect + github.com/fatih/color v1.18.0 // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect @@ -104,7 +103,7 @@ require ( github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.8.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/tklauser/go-sysconf v0.3.14 // indirect @@ -116,7 +115,6 @@ require ( go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect golang.org/x/sys v0.27.0 // indirect - google.golang.org/protobuf v1.34.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/core/status/statusimpl/go.sum b/comp/core/status/statusimpl/go.sum index 4f7035a9ca416..3633f73c784c7 100644 --- a/comp/core/status/statusimpl/go.sum +++ b/comp/core/status/statusimpl/go.sum @@ -16,6 +16,7 @@ github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+Ce github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= @@ -31,7 +32,7 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -42,24 +43,25 @@ github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkp github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= -github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -72,8 +74,6 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -83,6 +83,8 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= @@ -129,8 +131,6 @@ github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= @@ -140,6 +140,8 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= @@ -157,39 +159,39 @@ github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXP github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -202,8 +204,8 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= -github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= @@ -233,24 +235,24 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -304,6 +306,7 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= @@ -334,13 +337,14 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= -google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= diff --git a/comp/core/tagger/types/go.mod b/comp/core/tagger/types/go.mod index 9a402a40c1e32..e47b03b32f48f 100644 --- a/comp/core/tagger/types/go.mod +++ b/comp/core/tagger/types/go.mod @@ -36,9 +36,8 @@ require ( ) require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/kr/pretty v0.3.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/text v0.2.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/core/tagger/types/go.sum b/comp/core/tagger/types/go.sum index 6957a854c84ef..878d5c29e2e5d 100644 --- a/comp/core/tagger/types/go.sum +++ b/comp/core/tagger/types/go.sum @@ -1,19 +1,18 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/comp/core/tagger/utils/go.mod b/comp/core/tagger/utils/go.mod index 395b7fcf185b4..7234adc954d0e 100644 --- a/comp/core/tagger/utils/go.mod +++ b/comp/core/tagger/utils/go.mod @@ -5,7 +5,10 @@ go 1.22.0 require github.com/stretchr/testify v1.10.0 require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/core/tagger/utils/go.sum b/comp/core/tagger/utils/go.sum index 713a0b4f0a3a9..cec386e1e2769 100644 --- a/comp/core/tagger/utils/go.sum +++ b/comp/core/tagger/utils/go.sum @@ -1,10 +1,23 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/comp/core/telemetry/go.mod b/comp/core/telemetry/go.mod index f3c5bd058f783..6c551fdf16694 100644 --- a/comp/core/telemetry/go.mod +++ b/comp/core/telemetry/go.mod @@ -10,38 +10,39 @@ replace ( require ( github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 - github.com/prometheus/client_golang v1.17.0 - github.com/prometheus/client_model v0.5.0 + github.com/prometheus/client_golang v1.20.5 + github.com/prometheus/client_model v0.6.1 github.com/stretchr/testify v1.10.0 - go.opentelemetry.io/otel/exporters/prometheus v0.42.0 - go.opentelemetry.io/otel/metric v1.27.0 - go.opentelemetry.io/otel/sdk/metric v1.27.0 - go.uber.org/fx v1.22.2 + go.opentelemetry.io/otel/exporters/prometheus v0.54.0 + go.opentelemetry.io/otel/metric v1.32.0 + go.opentelemetry.io/otel/sdk/metric v1.32.0 + go.uber.org/fx v1.23.0 ) require ( github.com/DataDog/datadog-agent/comp/def v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.55.0 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/go-logr/logr v1.4.1 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/golang/protobuf v1.5.3 // indirect + github.com/google/uuid v1.6.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/common v0.44.0 // indirect - github.com/prometheus/procfs v0.11.1 // indirect - github.com/spf13/cobra v1.7.0 // indirect + github.com/klauspost/compress v1.17.11 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/prometheus/common v0.60.1 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/pflag v1.0.5 // indirect - go.opentelemetry.io/otel v1.27.0 // indirect - go.opentelemetry.io/otel/sdk v1.27.0 // indirect - go.opentelemetry.io/otel/trace v1.27.0 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/sys v0.27.0 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/core/telemetry/go.sum b/comp/core/telemetry/go.sum index 514f0c77c0034..e7454db296939 100644 --- a/comp/core/telemetry/go.sum +++ b/comp/core/telemetry/go.sum @@ -1,79 +1,76 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0 h1:jwV9iQdvp38fxXi8ZC+lNpxjK16MRcZlpDYvbuO1FiA= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0/go.mod h1:f3bYiqNqhoPxkvI2LrXqQVC546K7BuRDL/kKuxkujhA= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/comp/def/go.mod b/comp/def/go.mod index 43cd4e5e23dd6..de50fe40d9a0e 100644 --- a/comp/def/go.mod +++ b/comp/def/go.mod @@ -5,7 +5,10 @@ go 1.22.0 require github.com/stretchr/testify v1.10.0 require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/def/go.sum b/comp/def/go.sum index 713a0b4f0a3a9..cec386e1e2769 100644 --- a/comp/def/go.sum +++ b/comp/def/go.sum @@ -1,10 +1,23 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/comp/forwarder/defaultforwarder/go.mod b/comp/forwarder/defaultforwarder/go.mod index c976351040837..329cde62f5b08 100644 --- a/comp/forwarder/defaultforwarder/go.mod +++ b/comp/forwarder/defaultforwarder/go.mod @@ -73,11 +73,11 @@ require ( github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 github.com/DataDog/datadog-agent/pkg/version v0.57.1 - github.com/golang/protobuf v1.5.3 + github.com/golang/protobuf v1.5.4 github.com/hashicorp/go-multierror v1.1.1 github.com/stretchr/testify v1.10.0 go.uber.org/atomic v1.11.0 - go.uber.org/fx v1.22.2 + go.uber.org/fx v1.23.0 golang.org/x/text v0.20.0 ) @@ -101,63 +101,63 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dustin/go-humanize v1.0.1 // indirect - github.com/fatih/color v1.16.0 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-logr/logr v1.4.1 // indirect + github.com/fatih/color v1.18.0 // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect + github.com/klauspost/compress v1.17.11 // indirect github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect github.com/pelletier/go-toml v1.9.5 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/prometheus/client_golang v1.18.0 // indirect - github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.46.0 // indirect - github.com/prometheus/procfs v0.12.0 // indirect - github.com/shirou/gopsutil/v3 v3.24.4 // indirect + github.com/prometheus/client_golang v1.20.5 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.60.1 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.8.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/objx v0.5.2 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/otel v1.27.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.45.0 // indirect - go.opentelemetry.io/otel/metric v1.27.0 // indirect - go.opentelemetry.io/otel/sdk v1.27.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.27.0 // indirect - go.opentelemetry.io/otel/trace v1.27.0 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect - golang.org/x/tools v0.27.0 // indirect - google.golang.org/protobuf v1.34.2 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/forwarder/defaultforwarder/go.sum b/comp/forwarder/defaultforwarder/go.sum index 98ac030df6f50..ffafd609ca4f2 100644 --- a/comp/forwarder/defaultforwarder/go.sum +++ b/comp/forwarder/defaultforwarder/go.sum @@ -2,8 +2,8 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -31,7 +31,7 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -42,25 +42,26 @@ github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkp github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= -github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -73,20 +74,19 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -116,6 +116,8 @@ github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALr github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -125,7 +127,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= @@ -146,6 +149,8 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= @@ -159,46 +164,45 @@ github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= -github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.46.0 h1:doXzt5ybi1HBKpsZOL0sSkaNHJJqkyfEWZGGqqScV0Y= -github.com/prometheus/common v0.46.0/go.mod h1:Tp0qkxpb9Jsg54QMe+EAmqXkSV7Evdy1BTn+g2pa/hQ= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= -github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.4 h1:dEHgzZXt4LMNm+oYELpzl9YCqV65Yr/6SfrvgRBtXeU= -github.com/shirou/gopsutil/v3 v3.24.4/go.mod h1:lTd2mdiOspcqLgAnr9/nGi71NkeMpWKdmhuxm9GusH8= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -211,8 +215,8 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= -github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= @@ -222,24 +226,18 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -250,26 +248,26 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/exporters/prometheus v0.45.0 h1:BeIK2KGho0oCWa7LxEGSqfDZbs7Fpv/Viz+FS4P8CXE= -go.opentelemetry.io/otel/exporters/prometheus v0.45.0/go.mod h1:UVJZPLnfDSvHj+eJuZE+E1GjIBD267mEMfAAHJdghWg= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -292,8 +290,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -314,8 +310,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -329,10 +323,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -350,8 +342,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -364,10 +354,8 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -385,7 +373,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/comp/forwarder/orchestrator/orchestratorinterface/go.mod b/comp/forwarder/orchestrator/orchestratorinterface/go.mod index d677e905f8ca8..7776c023c94d4 100644 --- a/comp/forwarder/orchestrator/orchestratorinterface/go.mod +++ b/comp/forwarder/orchestrator/orchestratorinterface/go.mod @@ -103,69 +103,69 @@ require ( github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/version v0.57.1 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dustin/go-humanize v1.0.1 // indirect - github.com/fatih/color v1.16.0 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-logr/logr v1.4.1 // indirect + github.com/fatih/color v1.18.0 // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/golang/protobuf v1.5.3 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/golang/protobuf v1.5.4 // indirect + github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect + github.com/klauspost/compress v1.17.11 // indirect github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect github.com/pelletier/go-toml v1.9.5 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/prometheus/client_golang v1.18.0 // indirect - github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.46.0 // indirect - github.com/prometheus/procfs v0.12.0 // indirect - github.com/shirou/gopsutil/v3 v3.24.4 // indirect + github.com/prometheus/client_golang v1.20.5 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.60.1 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.8.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/stretchr/testify v1.10.0 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/otel v1.27.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.45.0 // indirect - go.opentelemetry.io/otel/metric v1.27.0 // indirect - go.opentelemetry.io/otel/sdk v1.27.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.27.0 // indirect - go.opentelemetry.io/otel/trace v1.27.0 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect - go.uber.org/fx v1.22.2 // indirect + go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect - google.golang.org/protobuf v1.34.2 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/forwarder/orchestrator/orchestratorinterface/go.sum b/comp/forwarder/orchestrator/orchestratorinterface/go.sum index 5bd7767a6476e..b24532017d50d 100644 --- a/comp/forwarder/orchestrator/orchestratorinterface/go.sum +++ b/comp/forwarder/orchestrator/orchestratorinterface/go.sum @@ -4,8 +4,8 @@ github.com/DataDog/cast v1.8.0 h1:uooY8bMzq+cjgiNP1VTquCWve5emgk8fRspZojJwQa8= github.com/DataDog/cast v1.8.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -33,7 +33,7 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20180202092358-40e2722dffea/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -45,25 +45,26 @@ github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkp github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= -github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -76,20 +77,19 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -119,6 +119,8 @@ github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALr github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -128,7 +130,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= @@ -149,6 +152,8 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= @@ -163,47 +168,46 @@ github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= -github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.46.0 h1:doXzt5ybi1HBKpsZOL0sSkaNHJJqkyfEWZGGqqScV0Y= -github.com/prometheus/common v0.46.0/go.mod h1:Tp0qkxpb9Jsg54QMe+EAmqXkSV7Evdy1BTn+g2pa/hQ= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= -github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.4 h1:dEHgzZXt4LMNm+oYELpzl9YCqV65Yr/6SfrvgRBtXeU= -github.com/shirou/gopsutil/v3 v3.24.4/go.mod h1:lTd2mdiOspcqLgAnr9/nGi71NkeMpWKdmhuxm9GusH8= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -213,8 +217,8 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= -github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= -github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= @@ -224,24 +228,18 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= @@ -251,26 +249,26 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/exporters/prometheus v0.45.0 h1:BeIK2KGho0oCWa7LxEGSqfDZbs7Fpv/Viz+FS4P8CXE= -go.opentelemetry.io/otel/exporters/prometheus v0.45.0/go.mod h1:UVJZPLnfDSvHj+eJuZE+E1GjIBD267mEMfAAHJdghWg= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -293,8 +291,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -315,8 +311,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -330,10 +324,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -351,8 +343,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -365,10 +355,8 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -386,7 +374,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/comp/logs/agent/config/go.mod b/comp/logs/agent/config/go.mod index 21a46dec52c2f..91137e7bcc76c 100644 --- a/comp/logs/agent/config/go.mod +++ b/comp/logs/agent/config/go.mod @@ -47,7 +47,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 github.com/DataDog/viper v1.13.5 github.com/stretchr/testify v1.10.0 - go.uber.org/fx v1.22.2 + go.uber.org/fx v1.23.0 ) require ( @@ -69,42 +69,39 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/logs/agent/config/go.sum b/comp/logs/agent/config/go.sum index a29a7509778c0..2ad0ffbf9169a 100644 --- a/comp/logs/agent/config/go.sum +++ b/comp/logs/agent/config/go.sum @@ -1,10 +1,9 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -20,8 +19,8 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -33,10 +32,11 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -44,19 +44,20 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -69,18 +70,17 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -88,8 +88,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -113,69 +114,73 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -188,31 +193,27 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -220,27 +221,27 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -263,8 +264,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -283,8 +282,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -297,9 +294,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -317,8 +312,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -331,13 +324,14 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -349,7 +343,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/comp/otelcol/collector-contrib/def/go.mod b/comp/otelcol/collector-contrib/def/go.mod index 724a707c71c7a..e1998d2b7c5d4 100644 --- a/comp/otelcol/collector-contrib/def/go.mod +++ b/comp/otelcol/collector-contrib/def/go.mod @@ -24,13 +24,14 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/ebitengine/purego v0.8.1 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect github.com/go-viper/mapstructure/v2 v2.2.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect github.com/google/uuid v1.6.0 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 // indirect github.com/hashicorp/go-version v1.7.0 // indirect @@ -40,14 +41,14 @@ require ( github.com/knadh/koanf/maps v0.1.1 // indirect github.com/knadh/koanf/providers/confmap v0.1.0 // indirect github.com/knadh/koanf/v2 v2.1.2 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect github.com/prometheus/client_golang v1.20.5 // indirect github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.60.1 // indirect @@ -113,6 +114,6 @@ require ( google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect - google.golang.org/protobuf v1.35.1 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/otelcol/collector-contrib/def/go.sum b/comp/otelcol/collector-contrib/def/go.sum index 0018b1f3994af..85afb038b26d8 100644 --- a/comp/otelcol/collector-contrib/def/go.sum +++ b/comp/otelcol/collector-contrib/def/go.sum @@ -6,8 +6,9 @@ github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UF github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= @@ -19,15 +20,16 @@ github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= -github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -57,8 +59,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= @@ -72,10 +74,11 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= @@ -272,6 +275,7 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= @@ -296,8 +300,8 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1: google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/comp/otelcol/collector-contrib/impl/go.mod b/comp/otelcol/collector-contrib/impl/go.mod index 0d6b0f4a9836f..2ca191c9c4ea0 100644 --- a/comp/otelcol/collector-contrib/impl/go.mod +++ b/comp/otelcol/collector-contrib/impl/go.mod @@ -54,9 +54,10 @@ require ( ) require ( - cloud.google.com/go/auth v0.7.0 // indirect - cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect + cloud.google.com/go/auth v0.9.5 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.4 // indirect cloud.google.com/go/compute/metadata v0.5.2 // indirect + dario.cat/mergo v1.0.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect @@ -78,7 +79,7 @@ require ( github.com/bmatcuk/doublestar/v4 v4.7.1 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/cncf/xds/go v0.0.0-20240723142845-024c85f92f20 // indirect + github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dennwc/varint v1.0.0 // indirect github.com/digitalocean/godo v1.118.0 // indirect @@ -89,11 +90,11 @@ require ( github.com/ebitengine/purego v0.8.1 // indirect github.com/elastic/go-grok v0.3.1 // indirect github.com/elastic/lunes v0.1.0 // indirect - github.com/emicklei/go-restful/v3 v3.11.0 // indirect + github.com/emicklei/go-restful/v3 v3.12.1 // indirect github.com/envoyproxy/go-control-plane v0.13.0 // indirect github.com/envoyproxy/protoc-gen-validate v1.1.0 // indirect github.com/expr-lang/expr v1.16.9 // indirect - github.com/fatih/color v1.16.0 // indirect + github.com/fatih/color v1.18.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/fxamacker/cbor/v2 v2.7.0 // indirect @@ -115,18 +116,19 @@ require ( github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect - github.com/golang/snappy v0.0.4 // indirect + github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect + github.com/google/btree v1.1.3 // indirect github.com/google/gnostic-models v0.6.8 // indirect github.com/google/go-cmp v0.6.0 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/s2a-go v0.1.7 // indirect + github.com/google/s2a-go v0.1.8 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect - github.com/googleapis/gax-go/v2 v2.12.5 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.4 // indirect + github.com/googleapis/gax-go/v2 v2.13.0 // indirect github.com/gophercloud/gophercloud v1.13.0 // indirect github.com/gorilla/mux v1.8.1 // indirect - github.com/gorilla/websocket v1.5.0 // indirect + github.com/gorilla/websocket v1.5.1 // indirect github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 // indirect github.com/hashicorp/consul/api v1.30.0 // indirect @@ -138,9 +140,11 @@ require ( github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-retryablehttp v0.7.7 // indirect github.com/hashicorp/go-rootcerts v1.0.2 // indirect + github.com/hashicorp/go-sockaddr v1.0.6 // indirect github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/golang-lru v1.0.2 // indirect github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hashicorp/nomad/api v0.0.0-20240717122358-3d93bd3778f3 // indirect github.com/hashicorp/serf v0.10.1 // indirect github.com/hetznercloud/hcloud-go/v2 v2.10.2 // indirect @@ -169,17 +173,20 @@ require ( github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/miekg/dns v1.1.61 // indirect + github.com/miekg/dns v1.1.62 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/moby/docker-image-spec v1.3.1 // indirect + github.com/moby/sys/user v0.3.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mostynb/go-grpc-compression v1.2.3 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect + github.com/onsi/ginkgo/v2 v2.20.2 // indirect + github.com/onsi/gomega v1.34.1 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.114.0 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.114.0 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.114.0 // indirect @@ -230,8 +237,8 @@ require ( github.com/stretchr/objx v0.5.2 // indirect github.com/stretchr/testify v1.10.0 // indirect github.com/tinylib/msgp v1.2.4 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/ua-parser/uap-go v0.0.0-20240611065828-3a4781585db6 // indirect github.com/valyala/fastjson v1.6.4 // indirect github.com/vultr/govultr/v2 v2.17.2 // indirect @@ -320,24 +327,25 @@ require ( golang.org/x/sys v0.27.0 // indirect golang.org/x/term v0.26.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/time v0.5.0 // indirect + golang.org/x/time v0.8.0 // indirect golang.org/x/tools v0.27.0 // indirect gonum.org/v1/gonum v0.15.1 // indirect - google.golang.org/api v0.188.0 // indirect + google.golang.org/api v0.199.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect - google.golang.org/protobuf v1.35.1 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect + gotest.tools/v3 v3.5.1 // indirect k8s.io/api v0.31.2 // indirect k8s.io/apimachinery v0.31.2 // indirect k8s.io/client-go v0.31.2 // indirect k8s.io/klog/v2 v2.130.1 // indirect - k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect - k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect + k8s.io/kube-openapi v0.0.0-20240430033511-f0e62f92d13f // indirect + k8s.io/utils v0.0.0-20240821151609-f90d01438635 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect sigs.k8s.io/yaml v1.4.0 // indirect diff --git a/comp/otelcol/collector-contrib/impl/go.sum b/comp/otelcol/collector-contrib/impl/go.sum index 85c06249af5a2..fe8e6e271ecb8 100644 --- a/comp/otelcol/collector-contrib/impl/go.sum +++ b/comp/otelcol/collector-contrib/impl/go.sum @@ -13,10 +13,10 @@ cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKV cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go/auth v0.7.0 h1:kf/x9B3WTbBUHkC+1VS8wwwli9TzhSt0vSTVBmMR8Ts= -cloud.google.com/go/auth v0.7.0/go.mod h1:D+WqdrpcjmiCgWrXmLLxOVq1GACoE36chW6KXoEvuIw= -cloud.google.com/go/auth/oauth2adapt v0.2.2 h1:+TTV8aXpjeChS9M+aTtN/TjdQnzJvmzKFt//oWu7HX4= -cloud.google.com/go/auth/oauth2adapt v0.2.2/go.mod h1:wcYjgpZI9+Yu7LyYBg4pqSiaRkfEK3GQcpb7C/uyF1Q= +cloud.google.com/go/auth v0.9.5 h1:4CTn43Eynw40aFVr3GpPqsQponx2jv0BQpjvajsbbzw= +cloud.google.com/go/auth v0.9.5/go.mod h1:Xo0n7n66eHyOWWCnitop6870Ilwo3PiZyodVkkH1xWM= +cloud.google.com/go/auth/oauth2adapt v0.2.4 h1:0GWE/FUsXhf6C+jAkWgYm7X9tK8cuEIfy19DBn6B6bY= +cloud.google.com/go/auth/oauth2adapt v0.2.4/go.mod h1:jC/jOpwFP6JBxhB3P5Rr0a9HLMC/Pe3eaL4NmdvqPtc= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= @@ -36,8 +36,8 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= -dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= +dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0 h1:GJHeeA2N7xrG3q30L2UXDyuWRzDM900/65j70wcM4Ww= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0/go.mod h1:l38EPgmsp71HHLq9j7De57JcKOWPyhrsW1Awm1JS6K0= @@ -132,8 +132,8 @@ github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6D github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/xds/go v0.0.0-20240723142845-024c85f92f20 h1:N+3sFI5GUjRKBi+i0TxYVST9h4Ie192jJWpHvthBBgg= -github.com/cncf/xds/go v0.0.0-20240723142845-024c85f92f20/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= +github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 h1:QVw89YDxXxEe+l8gU8ETbOasdwEV+avkR75ZzsVV9WI= +github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/containerd/platforms v0.2.1 h1:zvwtM3rz2YHPQsF2CHYM8+KtB5dvhISiXh5ZpSBQv6A= @@ -171,8 +171,8 @@ github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkg github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful/v3 v3.8.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= -github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= -github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/emicklei/go-restful/v3 v3.12.1 h1:PJMDIM/ak7btuL8Ex0iYET9hxM3CI2sjZtzpL63nKAU= +github.com/emicklei/go-restful/v3 v3.12.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -188,8 +188,8 @@ github.com/expr-lang/expr v1.16.9/go.mod h1:8/vRC7+7HBzESEqt5kKpYXxrxkr31SaO8r40 github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= -github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= -github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= @@ -298,12 +298,12 @@ github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiu github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= -github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= -github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= +github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= +github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ= github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= @@ -339,22 +339,22 @@ github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20240711041743-f6c9dda6c6da h1:xRmpO92tb8y+Z85iUOMOicpCfaYcv7o3Cg3wKrIpg8g= -github.com/google/pprof v0.0.0-20240711041743-f6c9dda6c6da/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= +github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 h1:5iH8iuqE5apketRbSFBy+X1V0o+l+8NF1avt4HWl7cA= +github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= -github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= +github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM= +github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= -github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= +github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw= +github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.12.5 h1:8gw9KZK8TiVKB6q3zHY3SBzLnrGp6HQjyfYBYGmXdxA= -github.com/googleapis/gax-go/v2 v2.12.5/go.mod h1:BUDKcWo+RaKq5SC9vVYL0wLADa3VcfswbOMMRmB9H3E= +github.com/googleapis/gax-go/v2 v2.13.0 h1:yitjD5f7jQHhyDsnhKEBU52NdvvdSeGzlAnDPT0hH1s= +github.com/googleapis/gax-go/v2 v2.13.0/go.mod h1:Z/fvTZXF8/uw7Xu5GuslPw+bplx6SS338j1Is2S+B7A= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= github.com/gophercloud/gophercloud v1.13.0 h1:8iY9d1DAbzMW6Vok1AxbbK5ZaUjzMp0tdyt4fX9IeJ0= github.com/gophercloud/gophercloud v1.13.0/go.mod h1:aAVqcocTSXh2vYFZ1JTvx4EQmfgzxRcNupUfxZbBNDM= @@ -363,8 +363,8 @@ github.com/gorilla/handlers v1.5.2/go.mod h1:dX+xVpaxdSw+q0Qek8SSsl3dfMk3jNddUkM github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= -github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= +github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc h1:GN2Lv3MGO7AS6PrRoT6yV5+wkrOpcszoIsO4+4ds248= github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc/go.mod h1:+JKpmjMGhpgPL+rXZ5nsZieVzvarn86asRlBg4uNGnk= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= @@ -402,8 +402,8 @@ github.com/hashicorp/go-retryablehttp v0.7.7/go.mod h1:pkQpWZeYWskR+D1tR2O5OcBFO github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-sockaddr v1.0.2 h1:ztczhD1jLxIRjVejw8gFomI1BQZOe2WoVOu0SyteCQc= -github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= +github.com/hashicorp/go-sockaddr v1.0.6 h1:RSG8rKU28VTUTvEKghe5gIhIQpv8evvNpnDEyqO4u9I= +github.com/hashicorp/go-sockaddr v1.0.6/go.mod h1:uoUUmtwU7n9Dv3O4SNLeFvg0SxQ3lyjsj6+CCykpaxI= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= @@ -418,8 +418,8 @@ github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iP github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= github.com/hashicorp/memberlist v0.5.0 h1:EtYPN8DpAURiapus508I4n9CzHs2W+8NZGbmmR/prTM= @@ -535,8 +535,8 @@ github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04 github.com/maxatome/go-testdeep v1.12.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= -github.com/miekg/dns v1.1.61 h1:nLxbwF3XxhwVSm8g9Dghm9MHPaUZuqhPiGL+675ZmEs= -github.com/miekg/dns v1.1.61/go.mod h1:mnAarhS3nWaW+NVP2wTkYVIZyHNJ098SJZUki3eykwQ= +github.com/miekg/dns v1.1.62 h1:cN8OuEF1/x5Rq6Np+h1epln8OiyPWV+lROx9LxcGgIQ= +github.com/miekg/dns v1.1.62/go.mod h1:mvDlcItzm+br7MToIKqkglaGhlFMHJ9DTNNWONWXbNQ= github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= @@ -557,8 +557,8 @@ github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YO github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= -github.com/moby/sys/user v0.1.0 h1:WmZ93f5Ux6het5iituh9x2zAG7NFY9Aqi49jjE1PaQg= -github.com/moby/sys/user v0.1.0/go.mod h1:fKJhFOnsCN6xZ5gSfbM6zaHGgDJMrqt9/reuj4T7MmU= +github.com/moby/sys/user v0.3.0 h1:9ni5DlcW5an3SvRSx4MouotOygvzaXbaSrc/wGDFWPo= +github.com/moby/sys/user v0.3.0/go.mod h1:bG+tYYYJgaMtRKgEmuueC0hJEAZWwtIbZTB+85uoHjs= github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28= github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= @@ -591,7 +591,6 @@ github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= -github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU= github.com/onsi/ginkgo/v2 v2.1.6/go.mod h1:MEH45j8TBi6u9BMogfbp0stKC5cdGjumZj5Y7AG4VIk= @@ -602,8 +601,8 @@ github.com/onsi/ginkgo/v2 v2.7.0/go.mod h1:yjiuMwPokqY1XauOgju45q3sJt6VzQ/Fict1L github.com/onsi/ginkgo/v2 v2.8.1/go.mod h1:N1/NbDngAFcSLdyZ+/aYTYGSlq9qMCS/cNKGJjy+csc= github.com/onsi/ginkgo/v2 v2.9.0/go.mod h1:4xkjoL/tZv4SMWeww56BU5kAt19mVB47gTWxmrTcxyk= github.com/onsi/ginkgo/v2 v2.9.1/go.mod h1:FEcmzVcCHl+4o9bQZVab+4dC9+j+91t2FHSzmGAPfuo= -github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA= -github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= +github.com/onsi/ginkgo/v2 v2.20.2 h1:7NVCeyIWROIAheY21RLS+3j2bb52W0W82tkberYytp4= +github.com/onsi/ginkgo/v2 v2.20.2/go.mod h1:K9gyxPIlb+aIvnZ8bd9Ak+YP18w3APlR+5coaZoE2ag= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= @@ -619,8 +618,8 @@ github.com/onsi/gomega v1.26.0/go.mod h1:r+zV744Re+DiYCIPRlYOTxn0YkOLcAnW8k1xXdM github.com/onsi/gomega v1.27.1/go.mod h1:aHX5xOykVYzWOV4WqQy0sy8BQptgukenXpCXfadcIAw= github.com/onsi/gomega v1.27.3/go.mod h1:5vG284IBtfDAmDyrK+eGyZmUgUlmi+Wngqo557cZ6Gw= github.com/onsi/gomega v1.27.4/go.mod h1:riYq/GJKh8hhoM01HN6Vmuy93AarCXCBGpvFDK3q3fQ= -github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= -github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M= +github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= +github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0 h1:oA79wMjQSQBKz+X90LD5edNOyaEsewspJRBYgxliEMA= github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0/go.mod h1:uk7Z36vhLtevNy5672jGxgzNJA2LND6wmispTuhHCxI= github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.114.0 h1:quLs6NbDeG2x2eLmncaq/P4yvnCPLAelFqXac2eMRSw= @@ -883,10 +882,10 @@ github.com/tidwall/wal v1.1.7 h1:emc1TRjIVsdKKSnpwGBAcsAGg0767SvUk8+ygx7Bb+4= github.com/tidwall/wal v1.1.7/go.mod h1:r6lR1j27W9EPalgHiB7zLJDYu3mzW5BQP5KrzBpYY/E= github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU= github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/ua-parser/uap-go v0.0.0-20240611065828-3a4781585db6 h1:SIKIoA4e/5Y9ZOl0DCe3eVMLPOQzJxgZpfdHHeauNTM= github.com/ua-parser/uap-go v0.0.0-20240611065828-3a4781585db6/go.mod h1:BUbeWZiieNxAuuADTBNb3/aeje6on3DhU3rpWsQSB1E= @@ -1312,7 +1311,6 @@ golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= @@ -1355,8 +1353,9 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= +golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -1435,8 +1434,8 @@ google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.188.0 h1:51y8fJ/b1AaaBRJr4yWm96fPcuxSo0JcegXE3DaHQHw= -google.golang.org/api v0.188.0/go.mod h1:VR0d+2SIiWOYG3r/jdm7adPW9hI2aRv9ETOSCQ9Beag= +google.golang.org/api v0.199.0 h1:aWUXClp+VFJmqE0JPvpZOK3LDQMyFKYIow4etYd9qxs= +google.golang.org/api v0.199.0/go.mod h1:ohG4qSztDJmZdjK/Ar6MhbAmb/Rpi4JHOqagsh90K28= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1507,8 +1506,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -1537,8 +1536,8 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools/v3 v3.2.0 h1:I0DwBVMGAx26dttAj1BtJLAkVGncrkkUXfJLC4Flt/I= -gotest.tools/v3 v3.2.0/go.mod h1:Mcr9QNxkg0uMvy/YElmo4SpXgJKWgQvYrT7Kw5RzJ1A= +gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= +gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1570,13 +1569,13 @@ k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7/go.mod h1:wXW5VT87nVfh/iLV8FpR2uDvrFyomxbtb1KivDbvPTE= k8s.io/kube-openapi v0.0.0-20230308215209-15aac26d736a/go.mod h1:y5VtZWM9sHHc2ZodIH/6SHzXj+TPU5USoA8lcIeKEKY= -k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= -k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= +k8s.io/kube-openapi v0.0.0-20240430033511-f0e62f92d13f h1:0LQagt0gDpKqvIkAMPaRGcXawNMouPECM1+F9BVxEaM= +k8s.io/kube-openapi v0.0.0-20240430033511-f0e62f92d13f/go.mod h1:S9tOR0FxgyusSNR+MboCuiDpVWkAifZvaYI1Q2ubgro= k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20230209194617-a36077c30491/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A= -k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/utils v0.0.0-20240821151609-f90d01438635 h1:2wThSvJoW/Ncn9TmQEYXRnevZXi2duqHWf5OX9S3zjI= +k8s.io/utils v0.0.0-20240821151609-f90d01438635/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/comp/otelcol/converter/def/go.mod b/comp/otelcol/converter/def/go.mod index be115884ce62f..a0cb90be3f0d1 100644 --- a/comp/otelcol/converter/def/go.mod +++ b/comp/otelcol/converter/def/go.mod @@ -5,6 +5,7 @@ go 1.22.0 require go.opentelemetry.io/collector/confmap v1.20.0 require ( + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/go-viper/mapstructure/v2 v2.2.1 // indirect github.com/knadh/koanf/maps v0.1.1 // indirect github.com/knadh/koanf/providers/confmap v0.1.0 // indirect diff --git a/comp/otelcol/converter/def/go.sum b/comp/otelcol/converter/def/go.sum index 802c3d8c7c117..3a078b063a674 100644 --- a/comp/otelcol/converter/def/go.sum +++ b/comp/otelcol/converter/def/go.sum @@ -1,5 +1,5 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/knadh/koanf/maps v0.1.1 h1:G5TjmUh2D7G2YWf5SQQqSiHRJEjaicvU0KpypqB3NIs= diff --git a/comp/otelcol/converter/impl/go.mod b/comp/otelcol/converter/impl/go.mod index f2162418928f9..b321ff5db70ad 100644 --- a/comp/otelcol/converter/impl/go.mod +++ b/comp/otelcol/converter/impl/go.mod @@ -80,7 +80,7 @@ require ( github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/go-viper/mapstructure/v2 v2.2.1 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -99,12 +99,8 @@ require ( github.com/pelletier/go-toml v1.9.5 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/prometheus/client_golang v1.20.2 // indirect - github.com/prometheus/client_model v0.6.1 // indirect - github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect - github.com/shoenig/test v1.7.1 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect @@ -113,11 +109,9 @@ require ( github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/otel/metric v1.30.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.30.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect - go.uber.org/fx v1.22.2 // indirect + go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect golang.org/x/sys v0.27.0 // indirect diff --git a/comp/otelcol/converter/impl/go.sum b/comp/otelcol/converter/impl/go.sum index cfc250c7fb50e..b749d6198ca4d 100644 --- a/comp/otelcol/converter/impl/go.sum +++ b/comp/otelcol/converter/impl/go.sum @@ -44,8 +44,8 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -160,8 +160,8 @@ github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXP github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.20.2 h1:5ctymQzZlyOON1666svgwn3s6IKWgfbjsejTMiXIyjg= -github.com/prometheus/client_golang v1.20.2/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -172,8 +172,8 @@ github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7q github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc= -github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -184,8 +184,8 @@ github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40T github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= @@ -248,24 +248,24 @@ go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0 h1:0BJHAeKF go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0/go.mod h1:gBiweuH4EDuPh9mpLCB/wPZzostdA+gKY8hABwbotQk= go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0 h1:jSXTojCPI6Xr98m99nF7qbQFnw3INLEOHRcqcHS+lak= go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0/go.mod h1:Pu95O2JE3R+0BBTbe4gpAC8ms3w6FbICHJw3WvGWrjs= -go.opentelemetry.io/otel v1.30.0 h1:F2t8sK4qf1fAmY9ua4ohFS/K+FUuOPemHUIXHtktrts= -go.opentelemetry.io/otel v1.30.0/go.mod h1:tFw4Br9b7fOS+uEao81PJjVMjW/5fvNCbpsDIXqP0pc= -go.opentelemetry.io/otel/metric v1.30.0 h1:4xNulvn9gjzo4hjg+wzIKG7iNFEaBMX00Qd4QIZs7+w= -go.opentelemetry.io/otel/metric v1.30.0/go.mod h1:aXTfST94tswhWEb+5QjlSqG+cZlmyXy/u8jFpor3WqQ= -go.opentelemetry.io/otel/sdk v1.30.0 h1:cHdik6irO49R5IysVhdn8oaiR9m8XluDaJAs4DfOrYE= -go.opentelemetry.io/otel/sdk v1.30.0/go.mod h1:p14X4Ok8S+sygzblytT1nqG98QG2KYKv++HE0LY/mhg= -go.opentelemetry.io/otel/sdk/metric v1.30.0 h1:QJLT8Pe11jyHBHfSAgYH7kEmT24eX792jZO1bo4BXkM= -go.opentelemetry.io/otel/sdk/metric v1.30.0/go.mod h1:waS6P3YqFNzeP01kuo/MBBYqaoBJl7efRQHOaydhy1Y= -go.opentelemetry.io/otel/trace v1.30.0 h1:7UBkkYzeg3C7kQX8VAidWh2biiQbtAKjyIML8dQ9wmc= -go.opentelemetry.io/otel/trace v1.30.0/go.mod h1:5EyKqTzzmyqB9bwtCCq6pDLktPK6fmGf/Dph+8VI02o= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -348,8 +348,8 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/comp/otelcol/ddflareextension/def/go.mod b/comp/otelcol/ddflareextension/def/go.mod index 7ef632104c53d..bda6d4d0adf21 100644 --- a/comp/otelcol/ddflareextension/def/go.mod +++ b/comp/otelcol/ddflareextension/def/go.mod @@ -5,7 +5,9 @@ go 1.22.0 require go.opentelemetry.io/collector/extension v0.114.0 require ( + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/gogo/protobuf v1.3.2 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/stretchr/testify v1.10.0 // indirect go.opentelemetry.io/collector/component v0.114.0 // indirect go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect @@ -18,7 +20,7 @@ require ( golang.org/x/net v0.31.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect - google.golang.org/protobuf v1.35.1 // indirect + google.golang.org/protobuf v1.35.2 // indirect ) diff --git a/comp/otelcol/ddflareextension/def/go.sum b/comp/otelcol/ddflareextension/def/go.sum index daae981c08540..2285317ce7f89 100644 --- a/comp/otelcol/ddflareextension/def/go.sum +++ b/comp/otelcol/ddflareextension/def/go.sum @@ -1,5 +1,5 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= @@ -10,8 +10,8 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -67,11 +67,11 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 h1:e7S5W7MGGLaSu8j3YjdezkZ+m1/Nm0uRVRMEMGk26Xs= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/comp/otelcol/ddflareextension/impl/go.mod b/comp/otelcol/ddflareextension/impl/go.mod index 1c34652e6292e..eddb0d30de66e 100644 --- a/comp/otelcol/ddflareextension/impl/go.mod +++ b/comp/otelcol/ddflareextension/impl/go.mod @@ -151,6 +151,9 @@ require ( require go.opentelemetry.io/collector/extension/extensiontest v0.114.0 // indirect require ( + github.com/knadh/koanf/maps v0.1.1 // indirect + github.com/knadh/koanf/providers/confmap v0.1.0 // indirect + github.com/moby/sys/userns v0.1.0 // indirect github.com/pierrec/lz4/v4 v4.1.21 // indirect go.opentelemetry.io/collector/connector/connectortest v0.114.0 // indirect go.opentelemetry.io/collector/consumer/consumererror v0.114.0 // indirect @@ -166,8 +169,8 @@ require ( ) require ( - cloud.google.com/go/auth v0.7.0 // indirect - cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect + cloud.google.com/go/auth v0.9.5 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.4 // indirect cloud.google.com/go/compute/metadata v0.5.2 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 // indirect @@ -177,7 +180,7 @@ require ( github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect github.com/Code-Hex/go-generics-cache v1.5.1 // indirect - github.com/DataDog/agent-payload/v5 v5.0.135 // indirect + github.com/DataDog/agent-payload/v5 v5.0.137 // indirect github.com/DataDog/datadog-agent/comp/core/config v0.59.0 // indirect github.com/DataDog/datadog-agent/comp/core/flare/builder v0.59.0 // indirect github.com/DataDog/datadog-agent/comp/core/flare/types v0.59.0 // indirect @@ -200,6 +203,7 @@ require ( github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter v0.59.0-rc.6 // indirect github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient v0.59.0 // indirect github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/statsprocessor v0.59.0 // indirect + github.com/DataDog/datadog-agent/comp/otelcol/otlp/testutil v0.57.0-devel.0.20240718200853-81bf3b2e412d // indirect github.com/DataDog/datadog-agent/comp/serializer/compression v0.59.0-rc.6 // indirect github.com/DataDog/datadog-agent/comp/trace/agent/def v0.59.0-rc.6 // indirect github.com/DataDog/datadog-agent/comp/trace/compression/def v0.59.0 // indirect @@ -261,7 +265,7 @@ require ( github.com/DataDog/datadog-api-client-go/v2 v2.31.0 // indirect github.com/DataDog/datadog-go/v5 v5.5.0 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect - github.com/DataDog/go-sqllexer v0.0.16 // indirect + github.com/DataDog/go-sqllexer v0.0.17 // indirect github.com/DataDog/go-tuf v1.1.0-0.5.2 // indirect github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 // indirect github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 // indirect @@ -270,7 +274,7 @@ require ( github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 // indirect github.com/DataDog/sketches-go v1.4.6 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/DataDog/zstd v1.5.5 // indirect + github.com/DataDog/zstd v1.5.6 // indirect github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/alecthomas/participle/v2 v2.1.1 // indirect @@ -285,8 +289,8 @@ require ( github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/cncf/xds/go v0.0.0-20240723142845-024c85f92f20 // indirect - github.com/containerd/cgroups/v3 v3.0.3 // indirect + github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 // indirect + github.com/containerd/cgroups/v3 v3.0.4 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dennwc/varint v1.0.0 // indirect @@ -299,10 +303,10 @@ require ( github.com/ebitengine/purego v0.8.1 // indirect github.com/elastic/go-grok v0.3.1 // indirect github.com/elastic/lunes v0.1.0 // indirect - github.com/emicklei/go-restful/v3 v3.11.0 // indirect + github.com/emicklei/go-restful/v3 v3.12.1 // indirect github.com/envoyproxy/go-control-plane v0.13.0 // indirect github.com/envoyproxy/protoc-gen-validate v1.1.0 // indirect - github.com/fatih/color v1.17.0 // indirect + github.com/fatih/color v1.18.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/fxamacker/cbor/v2 v2.7.0 // indirect @@ -326,15 +330,16 @@ require ( github.com/golang/mock v1.6.0 // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect + github.com/google/btree v1.1.3 // indirect github.com/google/gnostic-models v0.6.8 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/s2a-go v0.1.7 // indirect + github.com/google/s2a-go v0.1.8 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect - github.com/googleapis/gax-go/v2 v2.12.5 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.4 // indirect + github.com/googleapis/gax-go/v2 v2.13.0 // indirect github.com/gophercloud/gophercloud v1.13.0 // indirect - github.com/gorilla/websocket v1.5.0 // indirect + github.com/gorilla/websocket v1.5.1 // indirect github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 // indirect github.com/hashicorp/consul/api v1.30.0 // indirect @@ -346,6 +351,7 @@ require ( github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-retryablehttp v0.7.7 // indirect github.com/hashicorp/go-rootcerts v1.0.2 // indirect + github.com/hashicorp/go-sockaddr v1.0.6 // indirect github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/golang-lru v1.0.2 // indirect github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect @@ -365,9 +371,7 @@ require ( github.com/json-iterator/go v1.1.12 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect github.com/karrick/godirwalk v1.17.0 // indirect - github.com/klauspost/compress v1.17.11 // indirect - github.com/knadh/koanf/maps v0.1.1 // indirect - github.com/knadh/koanf/providers/confmap v0.1.0 // indirect + github.com/klauspost/compress v1.17.11 // indirect; indirectq github.com/knadh/koanf/v2 v2.1.2 // indirect github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b // indirect github.com/kylelemons/godebug v1.1.0 // indirect @@ -379,7 +383,7 @@ require ( github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/miekg/dns v1.1.61 // indirect + github.com/miekg/dns v1.1.62 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect @@ -391,6 +395,8 @@ require ( github.com/mostynb/go-grpc-compression v1.2.3 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect + github.com/onsi/ginkgo/v2 v2.20.2 // indirect + github.com/onsi/gomega v1.34.1 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.114.0 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.114.0 // indirect @@ -407,7 +413,7 @@ require ( github.com/ovh/go-ovh v1.6.0 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect github.com/pelletier/go-toml v1.9.5 // indirect - github.com/philhofer/fwd v1.1.2 // indirect + github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect github.com/pkg/errors v0.9.1 // indirect github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect @@ -419,7 +425,7 @@ require ( github.com/prometheus/common/sigv4 v0.1.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect github.com/prometheus/prometheus v0.54.1 // indirect - github.com/richardartoul/molecule v1.0.1-0.20221107223329-32cfee06a052 // indirect + github.com/richardartoul/molecule v1.0.1-0.20240531184615-7ca0df43c0b3 // indirect github.com/rs/cors v1.11.1 // indirect github.com/scaleway/scaleway-sdk-go v1.0.0-beta.29 // indirect github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect @@ -433,7 +439,9 @@ require ( github.com/spf13/pflag v1.0.5 // indirect github.com/stormcat24/protodep v0.1.8 // indirect github.com/stretchr/objx v0.5.2 // indirect - github.com/tinylib/msgp v1.1.9 // indirect + github.com/tidwall/gjson v1.18.0 // indirect + github.com/tidwall/pretty v1.2.1 // indirect + github.com/tinylib/msgp v1.2.4 // indirect github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/twmb/murmur3 v1.1.8 // indirect @@ -494,7 +502,7 @@ require ( go.opentelemetry.io/proto/otlp v1.3.1 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect - go.uber.org/fx v1.22.2 // indirect + go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.29.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect @@ -508,21 +516,21 @@ require ( golang.org/x/time v0.8.0 // indirect golang.org/x/tools v0.27.0 // indirect gonum.org/v1/gonum v0.15.1 // indirect - google.golang.org/api v0.188.0 // indirect + google.golang.org/api v0.199.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect - google.golang.org/protobuf v1.35.1 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - gotest.tools/v3 v3.2.0 // indirect + gotest.tools/v3 v3.5.1 // indirect k8s.io/api v0.31.2 // indirect k8s.io/apimachinery v0.31.2 // indirect k8s.io/client-go v0.31.2 // indirect k8s.io/klog/v2 v2.130.1 // indirect - k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect - k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect + k8s.io/kube-openapi v0.0.0-20240430033511-f0e62f92d13f // indirect + k8s.io/utils v0.0.0-20240821151609-f90d01438635 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect sigs.k8s.io/yaml v1.4.0 // indirect diff --git a/comp/otelcol/ddflareextension/impl/go.sum b/comp/otelcol/ddflareextension/impl/go.sum index 9973ebc18ea56..aa6426785ee4b 100644 --- a/comp/otelcol/ddflareextension/impl/go.sum +++ b/comp/otelcol/ddflareextension/impl/go.sum @@ -13,10 +13,10 @@ cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKV cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go/auth v0.7.0 h1:kf/x9B3WTbBUHkC+1VS8wwwli9TzhSt0vSTVBmMR8Ts= -cloud.google.com/go/auth v0.7.0/go.mod h1:D+WqdrpcjmiCgWrXmLLxOVq1GACoE36chW6KXoEvuIw= -cloud.google.com/go/auth/oauth2adapt v0.2.2 h1:+TTV8aXpjeChS9M+aTtN/TjdQnzJvmzKFt//oWu7HX4= -cloud.google.com/go/auth/oauth2adapt v0.2.2/go.mod h1:wcYjgpZI9+Yu7LyYBg4pqSiaRkfEK3GQcpb7C/uyF1Q= +cloud.google.com/go/auth v0.9.5 h1:4CTn43Eynw40aFVr3GpPqsQponx2jv0BQpjvajsbbzw= +cloud.google.com/go/auth v0.9.5/go.mod h1:Xo0n7n66eHyOWWCnitop6870Ilwo3PiZyodVkkH1xWM= +cloud.google.com/go/auth/oauth2adapt v0.2.4 h1:0GWE/FUsXhf6C+jAkWgYm7X9tK8cuEIfy19DBn6B6bY= +cloud.google.com/go/auth/oauth2adapt v0.2.4/go.mod h1:jC/jOpwFP6JBxhB3P5Rr0a9HLMC/Pe3eaL4NmdvqPtc= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= @@ -59,8 +59,8 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Code-Hex/go-generics-cache v1.5.1 h1:6vhZGc5M7Y/YD8cIUcY8kcuQLB4cHR7U+0KMqAA0KcU= github.com/Code-Hex/go-generics-cache v1.5.1/go.mod h1:qxcC9kRVrct9rHeiYpFWSoW1vxyillCVzX13KZG8dl4= -github.com/DataDog/agent-payload/v5 v5.0.135 h1:EZXSnOILBD/q4xWKtaOsDsIVWPteY1G79It8a5x8jJw= -github.com/DataDog/agent-payload/v5 v5.0.135/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= +github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= +github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/datadog-agent/comp/core/log v0.56.2 h1:qvBT+FfjKGqimyEvmsNHCZKbTfBJAdUZSVy2IZQ8HS4= github.com/DataDog/datadog-agent/comp/core/log v0.56.2/go.mod h1:ivJ/RMZjTNkoPPNDX+v/nnBwABLCiMv1vQA5tk/HCR4= github.com/DataDog/datadog-api-client-go/v2 v2.31.0 h1:JfJhYlHfLzvauI8u6h23smTooWYe6quNhhg9gpTszWY= @@ -70,8 +70,8 @@ github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 h1:RoH7VLzTnxHEugRPIgnGlxwDFszFGI7b3WZZUtWuPRM= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42/go.mod h1:TX7CTOQ3LbQjfAi4SwqUoR5gY1zfUk7VRBDTuArjaDc= -github.com/DataDog/go-sqllexer v0.0.16 h1:RoSUMS6MECyB3gTUIdydzXwK5NhEhv6GMJkS7ptsgRA= -github.com/DataDog/go-sqllexer v0.0.16/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc= +github.com/DataDog/go-sqllexer v0.0.17 h1:u47fJAVg/+5DA74ZW3w0Qu+3qXHd3GtnA8ZBYixdPrM= +github.com/DataDog/go-sqllexer v0.0.17/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc= github.com/DataDog/go-tuf v1.1.0-0.5.2 h1:4CagiIekonLSfL8GMHRHcHudo1fQnxELS9g4tiAupQ4= github.com/DataDog/go-tuf v1.1.0-0.5.2/go.mod h1:zBcq6f654iVqmkk8n2Cx81E1JnNTMOAx1UEO/wZR+P0= github.com/DataDog/gohai v0.0.0-20230524154621-4316413895ee h1:tXibLZk3G6HncIFJKaNItsdzcrk4YqILNDZlXPTNt4k= @@ -94,8 +94,8 @@ github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vH github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= -github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= +github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f h1:5Vuo4niPKFkfwW55jV4vY0ih3VQ9RaQqeqY67fvRn8A= github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f/go.mod h1:oXfOhM/Kr8OvqS6tVqJwxPBornV0yrx3bc+l0BDr7PQ= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 h1:3c8yed4lgqTt+oTQ+JNMDo+F4xprBf+O/il4ZC0nRLw= @@ -161,10 +161,10 @@ github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6D github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/xds/go v0.0.0-20240723142845-024c85f92f20 h1:N+3sFI5GUjRKBi+i0TxYVST9h4Ie192jJWpHvthBBgg= -github.com/cncf/xds/go v0.0.0-20240723142845-024c85f92f20/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= -github.com/containerd/cgroups/v3 v3.0.3 h1:S5ByHZ/h9PMe5IOQoN7E+nMc2UcLEM/V48DGDJ9kip0= -github.com/containerd/cgroups/v3 v3.0.3/go.mod h1:8HBe7V3aWGLFPd/k03swSIsGjZhHI2WzJmticMgVuz0= +github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 h1:QVw89YDxXxEe+l8gU8ETbOasdwEV+avkR75ZzsVV9WI= +github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= +github.com/containerd/cgroups/v3 v3.0.4 h1:2fs7l3P0Qxb1nKWuJNFiwhp2CqiKzho71DQkDrHJIo4= +github.com/containerd/cgroups/v3 v3.0.4/go.mod h1:SA5DLYnXO8pTGYiAHXz94qvLQTKfVM5GEVisn4jpins= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= @@ -210,8 +210,8 @@ github.com/elastic/go-grok v0.3.1 h1:WEhUxe2KrwycMnlvMimJXvzRa7DoByJB4PVUIE1ZD/U github.com/elastic/go-grok v0.3.1/go.mod h1:n38ls8ZgOboZRgKcjMY8eFeZFMmcL9n2lP0iHhIDk64= github.com/elastic/lunes v0.1.0 h1:amRtLPjwkWtzDF/RKzcEPMvSsSseLDLW+bnhfNSLRe4= github.com/elastic/lunes v0.1.0/go.mod h1:xGphYIt3XdZRtyWosHQTErsQTd4OP1p9wsbVoHelrd4= -github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= -github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/emicklei/go-restful/v3 v3.12.1 h1:PJMDIM/ak7btuL8Ex0iYET9hxM3CI2sjZtzpL63nKAU= +github.com/emicklei/go-restful/v3 v3.12.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -223,8 +223,8 @@ github.com/envoyproxy/protoc-gen-validate v1.1.0/go.mod h1:sXRDRVmzEbkM7CVcM06s9 github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= -github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= -github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -322,8 +322,8 @@ github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXi github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= -github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= +github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= +github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -355,28 +355,28 @@ github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20240711041743-f6c9dda6c6da h1:xRmpO92tb8y+Z85iUOMOicpCfaYcv7o3Cg3wKrIpg8g= -github.com/google/pprof v0.0.0-20240711041743-f6c9dda6c6da/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= +github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 h1:5iH8iuqE5apketRbSFBy+X1V0o+l+8NF1avt4HWl7cA= +github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= -github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= +github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM= +github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= -github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= +github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw= +github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.12.5 h1:8gw9KZK8TiVKB6q3zHY3SBzLnrGp6HQjyfYBYGmXdxA= -github.com/googleapis/gax-go/v2 v2.12.5/go.mod h1:BUDKcWo+RaKq5SC9vVYL0wLADa3VcfswbOMMRmB9H3E= +github.com/googleapis/gax-go/v2 v2.13.0 h1:yitjD5f7jQHhyDsnhKEBU52NdvvdSeGzlAnDPT0hH1s= +github.com/googleapis/gax-go/v2 v2.13.0/go.mod h1:Z/fvTZXF8/uw7Xu5GuslPw+bplx6SS338j1Is2S+B7A= github.com/gophercloud/gophercloud v1.13.0 h1:8iY9d1DAbzMW6Vok1AxbbK5ZaUjzMp0tdyt4fX9IeJ0= github.com/gophercloud/gophercloud v1.13.0/go.mod h1:aAVqcocTSXh2vYFZ1JTvx4EQmfgzxRcNupUfxZbBNDM= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= -github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= +github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc h1:GN2Lv3MGO7AS6PrRoT6yV5+wkrOpcszoIsO4+4ds248= github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc/go.mod h1:+JKpmjMGhpgPL+rXZ5nsZieVzvarn86asRlBg4uNGnk= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -416,8 +416,8 @@ github.com/hashicorp/go-retryablehttp v0.7.7/go.mod h1:pkQpWZeYWskR+D1tR2O5OcBFO github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-sockaddr v1.0.2 h1:ztczhD1jLxIRjVejw8gFomI1BQZOe2WoVOu0SyteCQc= -github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= +github.com/hashicorp/go-sockaddr v1.0.6 h1:RSG8rKU28VTUTvEKghe5gIhIQpv8evvNpnDEyqO4u9I= +github.com/hashicorp/go-sockaddr v1.0.6/go.mod h1:uoUUmtwU7n9Dv3O4SNLeFvg0SxQ3lyjsj6+CCykpaxI= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= @@ -545,8 +545,8 @@ github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04 github.com/maxatome/go-testdeep v1.12.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= -github.com/miekg/dns v1.1.61 h1:nLxbwF3XxhwVSm8g9Dghm9MHPaUZuqhPiGL+675ZmEs= -github.com/miekg/dns v1.1.61/go.mod h1:mnAarhS3nWaW+NVP2wTkYVIZyHNJ098SJZUki3eykwQ= +github.com/miekg/dns v1.1.62 h1:cN8OuEF1/x5Rq6Np+h1epln8OiyPWV+lROx9LxcGgIQ= +github.com/miekg/dns v1.1.62/go.mod h1:mvDlcItzm+br7MToIKqkglaGhlFMHJ9DTNNWONWXbNQ= github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= @@ -562,6 +562,8 @@ github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zx github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= +github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= +github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28= github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -584,10 +586,10 @@ github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+ github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA= -github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= -github.com/onsi/gomega v1.19.0 h1:4ieX6qQjPP/BfC3mpsAtIGGlxTWPeA3Inl/7DtXw1tw= -github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= +github.com/onsi/ginkgo/v2 v2.20.2 h1:7NVCeyIWROIAheY21RLS+3j2bb52W0W82tkberYytp4= +github.com/onsi/ginkgo/v2 v2.20.2/go.mod h1:K9gyxPIlb+aIvnZ8bd9Ak+YP18w3APlR+5coaZoE2ag= +github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= +github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.114.0 h1:cjiWapRbK28GxsZyKCegQOLJCEiwIWEV+INvxrS8HSA= github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.114.0/go.mod h1:1Mx3wOciTCjrN9PgVAB4uFBeoqEfyeZEuvpguOasm4s= github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0 h1:oA79wMjQSQBKz+X90LD5edNOyaEsewspJRBYgxliEMA= @@ -663,8 +665,8 @@ github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTK github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/philhofer/fwd v1.1.2 h1:bnDivRJ1EWPjUIRXV5KfORO897HTbpFAQddBdE8t7Gw= -github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2tUTP0= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1GshSTtih8C2gDs04w8dReiOGXrGLNoY= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM= github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= @@ -721,8 +723,8 @@ github.com/prometheus/prometheus v0.54.1/go.mod h1:xlLByHhk2g3ycakQGrMaU8K7OySZx github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/protocolbuffers/protoscope v0.0.0-20221109213918-8e7a6aafa2c9 h1:arwj11zP0yJIxIRiDn22E0H8PxfF7TsTrc2wIPFIsf4= github.com/protocolbuffers/protoscope v0.0.0-20221109213918-8e7a6aafa2c9/go.mod h1:SKZx6stCn03JN3BOWTwvVIO2ajMkb/zQdTceXYhKw/4= -github.com/richardartoul/molecule v1.0.1-0.20221107223329-32cfee06a052 h1:Qp27Idfgi6ACvFQat5+VJvlYToylpM/hcyLBI3WaKPA= -github.com/richardartoul/molecule v1.0.1-0.20221107223329-32cfee06a052/go.mod h1:uvX/8buq8uVeiZiFht+0lqSLBHF+uGV8BrTv8W/SIwk= +github.com/richardartoul/molecule v1.0.1-0.20240531184615-7ca0df43c0b3 h1:4+LEVOB87y175cLJC/mbsgKmoDOjrBldtXvioEy96WY= +github.com/richardartoul/molecule v1.0.1-0.20240531184615-7ca0df43c0b3/go.mod h1:vl5+MqJ1nBINuSsUI2mGgH79UweUT/B5Fy8857PqyyI= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= @@ -793,18 +795,19 @@ github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8 github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tidwall/gjson v1.10.2 h1:APbLGOM0rrEkd8WBw9C24nllro4ajFuJu0Sc9hRz8Bo= -github.com/tidwall/gjson v1.10.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= +github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY= +github.com/tidwall/gjson v1.18.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= -github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= +github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tidwall/tinylru v1.1.0 h1:XY6IUfzVTU9rpwdhKUF6nQdChgCdGjkMfLzbWyiau6I= github.com/tidwall/tinylru v1.1.0/go.mod h1:3+bX+TJ2baOLMWTnlyNWHh4QMnFyARg2TLTQ6OFbzw8= github.com/tidwall/wal v1.1.7 h1:emc1TRjIVsdKKSnpwGBAcsAGg0767SvUk8+ygx7Bb+4= github.com/tidwall/wal v1.1.7/go.mod h1:r6lR1j27W9EPalgHiB7zLJDYu3mzW5BQP5KrzBpYY/E= -github.com/tinylib/msgp v1.1.9 h1:SHf3yoO2sGA0veCJeCBYLHuttAVFHGm2RHgNodW7wQU= -github.com/tinylib/msgp v1.1.9/go.mod h1:BCXGB54lDD8qUEPmiG0cQQUANC4IUQyB2ItS2UDlO/k= +github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU= +github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= @@ -819,8 +822,8 @@ github.com/ua-parser/uap-go v0.0.0-20240611065828-3a4781585db6/go.mod h1:BUbeWZi github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/vmihailenco/msgpack/v4 v4.3.12 h1:07s4sz9IReOgdikxLTKNbBdqDMLsjPKXwvCazn8G65U= -github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= +github.com/vmihailenco/msgpack/v4 v4.3.13 h1:A2wsiTbvp63ilDaWmsk2wjx6xZdxQOvpiNlKBGKKXKI= +github.com/vmihailenco/msgpack/v4 v4.3.13/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= github.com/vmihailenco/tagparser v0.1.2 h1:gnjoVuB/kljJ5wICEEOpx98oXMWPLj22G67Vbd1qPqc= github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= github.com/vultr/govultr/v2 v2.17.2 h1:gej/rwr91Puc/tgh+j33p/BLR16UrIPnSr+AIwYWZQs= @@ -1026,8 +1029,8 @@ go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -1202,7 +1205,6 @@ golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1303,7 +1305,6 @@ golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= @@ -1331,8 +1332,8 @@ google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.188.0 h1:51y8fJ/b1AaaBRJr4yWm96fPcuxSo0JcegXE3DaHQHw= -google.golang.org/api v0.188.0/go.mod h1:VR0d+2SIiWOYG3r/jdm7adPW9hI2aRv9ETOSCQ9Beag= +google.golang.org/api v0.199.0 h1:aWUXClp+VFJmqE0JPvpZOK3LDQMyFKYIow4etYd9qxs= +google.golang.org/api v0.199.0/go.mod h1:ohG4qSztDJmZdjK/Ar6MhbAmb/Rpi4JHOqagsh90K28= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1403,9 +1404,9 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -1437,8 +1438,8 @@ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/zorkian/go-datadog-api.v2 v2.30.0 h1:umQdVO0Ytx+kYadhuJNjFtDgIsIEBnKrOTvNuu8ClKI= gopkg.in/zorkian/go-datadog-api.v2 v2.30.0/go.mod h1:kx0CSMRpzEZfx/nFH62GLU4stZjparh/BRpM89t4XCQ= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= -gotest.tools/v3 v3.2.0 h1:I0DwBVMGAx26dttAj1BtJLAkVGncrkkUXfJLC4Flt/I= -gotest.tools/v3 v3.2.0/go.mod h1:Mcr9QNxkg0uMvy/YElmo4SpXgJKWgQvYrT7Kw5RzJ1A= +gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= +gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1454,10 +1455,10 @@ k8s.io/client-go v0.31.2 h1:Y2F4dxU5d3AQj+ybwSMqQnpZH9F30//1ObxOKlTI9yc= k8s.io/client-go v0.31.2/go.mod h1:NPa74jSVR/+eez2dFsEIHNa+3o09vtNaWwWwb1qSxSs= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= -k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= -k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A= -k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/kube-openapi v0.0.0-20240430033511-f0e62f92d13f h1:0LQagt0gDpKqvIkAMPaRGcXawNMouPECM1+F9BVxEaM= +k8s.io/kube-openapi v0.0.0-20240430033511-f0e62f92d13f/go.mod h1:S9tOR0FxgyusSNR+MboCuiDpVWkAifZvaYI1Q2ubgro= +k8s.io/utils v0.0.0-20240821151609-f90d01438635 h1:2wThSvJoW/Ncn9TmQEYXRnevZXi2duqHWf5OX9S3zjI= +k8s.io/utils v0.0.0-20240821151609-f90d01438635/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/comp/otelcol/logsagentpipeline/go.mod b/comp/otelcol/logsagentpipeline/go.mod index 64afcc04eee4f..4ca635bf8a9a5 100644 --- a/comp/otelcol/logsagentpipeline/go.mod +++ b/comp/otelcol/logsagentpipeline/go.mod @@ -63,7 +63,7 @@ replace ( require github.com/DataDog/datadog-agent/pkg/logs/pipeline v0.56.0-rc.3 require ( - github.com/DataDog/agent-payload/v5 v5.0.106 // indirect + github.com/DataDog/agent-payload/v5 v5.0.137 // indirect github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect github.com/DataDog/datadog-agent/comp/core/telemetry v0.56.0-rc.3 // indirect @@ -108,66 +108,64 @@ require ( github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-logr/logr v1.4.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/protobuf v1.5.3 // indirect - github.com/hashicorp/errwrap v1.0.0 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect + github.com/klauspost/compress v1.17.11 // indirect github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect + github.com/magiconair/properties v1.8.7 // indirect github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/prometheus/client_golang v1.17.0 // indirect - github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.44.0 // indirect - github.com/prometheus/procfs v0.11.1 // indirect - github.com/shirou/gopsutil/v3 v3.24.1 // indirect + github.com/prometheus/client_golang v1.20.5 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.60.1 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/testify v1.10.0 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect - go.opentelemetry.io/otel v1.27.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.42.0 // indirect - go.opentelemetry.io/otel/metric v1.27.0 // indirect - go.opentelemetry.io/otel/sdk v1.27.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.27.0 // indirect - go.opentelemetry.io/otel/trace v1.27.0 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect - go.uber.org/fx v1.22.2 // indirect + go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect - google.golang.org/protobuf v1.33.0 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/otelcol/logsagentpipeline/go.sum b/comp/otelcol/logsagentpipeline/go.sum index 0c7f69245d9f9..cb26aeb9751f5 100644 --- a/comp/otelcol/logsagentpipeline/go.sum +++ b/comp/otelcol/logsagentpipeline/go.sum @@ -1,14 +1,13 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.106 h1:A3dGX+JYoL7OJe2crpxznW7hWxLxhOk/17WbYskRWVk= -github.com/DataDog/agent-payload/v5 v5.0.106/go.mod h1:COngtbYYCncpIPiE5D93QlXDH/3VAKk10jDNwGHcMRE= +github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= +github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 h1:RoH7VLzTnxHEugRPIgnGlxwDFszFGI7b3WZZUtWuPRM= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42/go.mod h1:TX7CTOQ3LbQjfAi4SwqUoR5gY1zfUk7VRBDTuArjaDc= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -25,8 +24,8 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -38,10 +37,11 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -49,20 +49,21 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -77,20 +78,17 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -98,12 +96,14 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -119,6 +119,8 @@ github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvW github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -128,14 +130,14 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= @@ -145,55 +147,58 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.1 h1:R3t6ondCEvmARp3wxODhXMTLC/klMa87h2PHUw5m7QI= -github.com/shirou/gopsutil/v3 v3.24.1/go.mod h1:UU7a2MSBQa+kW1uuDq8DeEBS8kmrnQwsv2b5O513rwU= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -206,31 +211,27 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -240,29 +241,29 @@ github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0 h1:jwV9iQdvp38fxXi8ZC+lNpxjK16MRcZlpDYvbuO1FiA= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0/go.mod h1:f3bYiqNqhoPxkvI2LrXqQVC546K7BuRDL/kKuxkujhA= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -289,8 +290,6 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -313,8 +312,6 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -328,9 +325,7 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -353,8 +348,6 @@ golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -369,10 +362,8 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -390,7 +381,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod index fc19e21c7ea9e..ab38974bd3f10 100644 --- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod +++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod @@ -84,12 +84,12 @@ require ( github.com/DataDog/datadog-agent/pkg/util/startstop v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/testutil v0.56.0-rc.3 github.com/stretchr/testify v1.10.0 - go.uber.org/fx v1.22.2 + go.uber.org/fx v1.23.0 go.uber.org/zap v1.27.0 ) require ( - github.com/DataDog/agent-payload/v5 v5.0.106 // indirect + github.com/DataDog/agent-payload/v5 v5.0.137 // indirect github.com/DataDog/datadog-agent/comp/core/flare/builder v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/core/flare/types v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect @@ -123,63 +123,61 @@ require ( github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-logr/logr v1.4.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/protobuf v1.5.3 // indirect - github.com/hashicorp/errwrap v1.0.0 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect + github.com/klauspost/compress v1.17.11 // indirect github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect + github.com/magiconair/properties v1.8.7 // indirect github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/prometheus/client_golang v1.17.0 // indirect - github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.44.0 // indirect - github.com/prometheus/procfs v0.11.1 // indirect - github.com/shirou/gopsutil/v3 v3.24.4 // indirect + github.com/prometheus/client_golang v1.20.5 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.60.1 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/otel v1.27.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.42.0 // indirect - go.opentelemetry.io/otel/metric v1.27.0 // indirect - go.opentelemetry.io/otel/sdk v1.27.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.27.0 // indirect - go.opentelemetry.io/otel/trace v1.27.0 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect - google.golang.org/protobuf v1.34.2 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum index b736646b68da3..cb26aeb9751f5 100644 --- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum +++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum @@ -1,14 +1,13 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.106 h1:A3dGX+JYoL7OJe2crpxznW7hWxLxhOk/17WbYskRWVk= -github.com/DataDog/agent-payload/v5 v5.0.106/go.mod h1:COngtbYYCncpIPiE5D93QlXDH/3VAKk10jDNwGHcMRE= +github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= +github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 h1:RoH7VLzTnxHEugRPIgnGlxwDFszFGI7b3WZZUtWuPRM= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42/go.mod h1:TX7CTOQ3LbQjfAi4SwqUoR5gY1zfUk7VRBDTuArjaDc= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -38,10 +37,11 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -49,20 +49,21 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -77,20 +78,17 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -98,12 +96,14 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -119,6 +119,8 @@ github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvW github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -128,14 +130,14 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= @@ -145,55 +147,58 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.4 h1:dEHgzZXt4LMNm+oYELpzl9YCqV65Yr/6SfrvgRBtXeU= -github.com/shirou/gopsutil/v3 v3.24.4/go.mod h1:lTd2mdiOspcqLgAnr9/nGi71NkeMpWKdmhuxm9GusH8= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -206,33 +211,27 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -245,26 +244,26 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0 h1:jwV9iQdvp38fxXi8ZC+lNpxjK16MRcZlpDYvbuO1FiA= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0/go.mod h1:f3bYiqNqhoPxkvI2LrXqQVC546K7BuRDL/kKuxkujhA= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -291,8 +290,6 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -315,8 +312,6 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -330,9 +325,7 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -355,8 +348,6 @@ golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -371,10 +362,8 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -392,7 +381,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod index 6b57e97886ed1..bf26c428e8156 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod @@ -118,7 +118,7 @@ require ( go.opentelemetry.io/otel/metric v1.32.0 go.opentelemetry.io/otel/trace v1.32.0 go.uber.org/zap v1.27.0 - google.golang.org/protobuf v1.35.1 + google.golang.org/protobuf v1.35.2 ) require go.opentelemetry.io/collector/component/componenttest v0.114.0 // indirect @@ -130,7 +130,7 @@ require ( ) require ( - github.com/DataDog/agent-payload/v5 v5.0.119 // indirect + github.com/DataDog/agent-payload/v5 v5.0.137 // indirect github.com/DataDog/datadog-agent/comp/core/config v0.57.1 // indirect github.com/DataDog/datadog-agent/comp/core/flare/builder v0.57.1 // indirect github.com/DataDog/datadog-agent/comp/core/flare/types v0.57.1 // indirect @@ -197,16 +197,16 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/version v0.57.1 // indirect - github.com/DataDog/datadog-api-client-go/v2 v2.26.0 // indirect + github.com/DataDog/datadog-api-client-go/v2 v2.31.0 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect - github.com/DataDog/go-sqllexer v0.0.16 // indirect + github.com/DataDog/go-sqllexer v0.0.17 // indirect github.com/DataDog/go-tuf v1.1.0-0.5.2 // indirect github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 // indirect github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0 // indirect github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 // indirect github.com/DataDog/sketches-go v1.4.6 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/DataDog/zstd v1.5.5 // indirect + github.com/DataDog/zstd v1.5.6 // indirect github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/benbjohnson/clock v1.3.5 // indirect @@ -215,19 +215,19 @@ require ( github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/containerd/cgroups/v3 v3.0.3 // indirect + github.com/containerd/cgroups/v3 v3.0.4 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect - github.com/fatih/color v1.17.0 // indirect + github.com/fatih/color v1.18.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect github.com/go-viper/mapstructure/v2 v2.2.1 // indirect - github.com/goccy/go-json v0.10.2 // indirect + github.com/goccy/go-json v0.10.3 // indirect github.com/godbus/dbus/v5 v5.1.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/mock v1.6.0 // indirect @@ -254,35 +254,38 @@ require ( github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect + github.com/moby/sys/userns v0.1.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0 // indirect github.com/opencontainers/runtime-spec v1.2.0 // indirect github.com/outcaste-io/ristretto v0.2.3 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect github.com/pelletier/go-toml v1.9.5 // indirect - github.com/philhofer/fwd v1.1.2 // indirect + github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/prometheus/client_golang v1.19.1 // indirect + github.com/prometheus/client_golang v1.20.5 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.54.0 // indirect + github.com/prometheus/common v0.60.1 // indirect github.com/prometheus/procfs v0.15.1 // indirect - github.com/richardartoul/molecule v1.0.1-0.20221107223329-32cfee06a052 // indirect + github.com/richardartoul/molecule v1.0.1-0.20240531184615-7ca0df43c0b3 // indirect github.com/rs/cors v1.11.1 // indirect github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.8.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stormcat24/protodep v0.1.8 // indirect github.com/stretchr/objx v0.5.2 // indirect - github.com/tinylib/msgp v1.1.9 // indirect + github.com/tinylib/msgp v1.2.4 // indirect github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/twmb/murmur3 v1.1.8 // indirect @@ -309,16 +312,16 @@ require ( go.opentelemetry.io/collector/semconv v0.114.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.49.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect go.opentelemetry.io/otel/sdk v1.32.0 // indirect go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect - go.uber.org/fx v1.22.2 // indirect + go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/oauth2 v0.22.0 // indirect + golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/term v0.26.0 // indirect golang.org/x/text v0.20.0 // indirect @@ -328,5 +331,4 @@ require ( gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apimachinery v0.29.3 // indirect ) diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum index 4e46200b7bbdf..a781be143fd21 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum @@ -1,15 +1,15 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.119 h1:PgeA41P3BE4z+b0j61B6yXnZDw7tB7bxl5EIHyGVG14= -github.com/DataDog/agent-payload/v5 v5.0.119/go.mod h1:FgVQKmVdqdmZTbxIptqJC/l+xEzdiXsaAOs/vGAvWzs= -github.com/DataDog/datadog-api-client-go/v2 v2.26.0 h1:bZr0hu+hx8L91+yU5EGw8wK3FlCVEIashpx+cylWsf0= -github.com/DataDog/datadog-api-client-go/v2 v2.26.0/go.mod h1:QKOu6vscsh87fMY1lHfLEmNSunyXImj8BUaUWJXOehc= +github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= +github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= +github.com/DataDog/datadog-api-client-go/v2 v2.31.0 h1:JfJhYlHfLzvauI8u6h23smTooWYe6quNhhg9gpTszWY= +github.com/DataDog/datadog-api-client-go/v2 v2.31.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U= github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU= github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 h1:RoH7VLzTnxHEugRPIgnGlxwDFszFGI7b3WZZUtWuPRM= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42/go.mod h1:TX7CTOQ3LbQjfAi4SwqUoR5gY1zfUk7VRBDTuArjaDc= -github.com/DataDog/go-sqllexer v0.0.16 h1:RoSUMS6MECyB3gTUIdydzXwK5NhEhv6GMJkS7ptsgRA= -github.com/DataDog/go-sqllexer v0.0.16/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc= +github.com/DataDog/go-sqllexer v0.0.17 h1:u47fJAVg/+5DA74ZW3w0Qu+3qXHd3GtnA8ZBYixdPrM= +github.com/DataDog/go-sqllexer v0.0.17/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc= github.com/DataDog/go-tuf v1.1.0-0.5.2 h1:4CagiIekonLSfL8GMHRHcHudo1fQnxELS9g4tiAupQ4= github.com/DataDog/go-tuf v1.1.0-0.5.2/go.mod h1:zBcq6f654iVqmkk8n2Cx81E1JnNTMOAx1UEO/wZR+P0= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 h1:EbzDX8HPk5uE2FsJYxD74QmMw0/3CqSKhEr6teh0ncQ= @@ -30,8 +30,8 @@ github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vH github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= -github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= +github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f h1:5Vuo4niPKFkfwW55jV4vY0ih3VQ9RaQqeqY67fvRn8A= github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f/go.mod h1:oXfOhM/Kr8OvqS6tVqJwxPBornV0yrx3bc+l0BDr7PQ= github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= @@ -62,8 +62,8 @@ github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/containerd/cgroups/v3 v3.0.3 h1:S5ByHZ/h9PMe5IOQoN7E+nMc2UcLEM/V48DGDJ9kip0= -github.com/containerd/cgroups/v3 v3.0.3/go.mod h1:8HBe7V3aWGLFPd/k03swSIsGjZhHI2WzJmticMgVuz0= +github.com/containerd/cgroups/v3 v3.0.4 h1:2fs7l3P0Qxb1nKWuJNFiwhp2CqiKzho71DQkDrHJIo4= +github.com/containerd/cgroups/v3 v3.0.4/go.mod h1:SA5DLYnXO8pTGYiAHXz94qvLQTKfVM5GEVisn4jpins= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/bbolt v1.3.3/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= @@ -74,7 +74,7 @@ github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7 github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -91,8 +91,8 @@ github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkp github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= -github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -110,13 +110,14 @@ github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= -github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= -github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA= +github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= @@ -208,6 +209,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/lightstep/go-expohisto v1.0.0 h1:UPtTS1rGdtehbbAF7o/dhkWLTDI73UifG8LbfQI7cA4= github.com/lightstep/go-expohisto v1.0.0/go.mod h1:xDXD0++Mu2FOaItXtdDfksfgxfV0z1TMPa+e/EUd0cs= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= @@ -228,6 +231,8 @@ github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374 github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= +github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -237,16 +242,18 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0 h1:d2wCLlENxH4I2axQWaogivx/5ZIjDYgn9MIf6sFxlJ4= github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0/go.mod h1:Psyligv8GKL9WI3TraW3BLwkOX4TRxaaa1BBQQyICzA= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 h1:Wq1iTmd0K1SSOIA43Wy2uAU6SB4f9ogyN3ZmvDgTURg= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0/go.mod h1:VCj9H0QxRBWSgbl1pUo8p0NrqnmcxpPo0QjKLFtWkO0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.94.0 h1:nTayRLarCGkB9ld7p8jWJe/9wvf8gNDaS5fRjybkEpg= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.94.0/go.mod h1:xoBvqu56hbky3KZafo68nxtV2+J81+pvo1ttNirakcU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.94.0 h1:DSGhzGAaC767esMB0Ulr+9xWe6SW0LFUYMxLrLOAkjM= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.94.0/go.mod h1:Nv4nK3E7sUpDbNv0zI0zY15g2xR4jMg+n8taV8dsMeE= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0 h1:m8uPYU2rTj0sKiYgzCvIPajD3meiYsu+nX0hplUnlEU= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0/go.mod h1:P0BaP92pXPkTyTmObfLYUoRBfMYU+i0hdS3oM1DpGJo= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0 h1:Qg80zPfNMlub7LO07VMDElOu3M2oxqdZgvvB+X72a4U= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0/go.mod h1:5qsGcjFV3WFI6J2onAlkR7Xd/8VtwJcECaDRZfW4Tb4= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0 h1:PwUMZ6fHMEUV5i9hUly+z3UujDTTdxQtWzL0rWc/lgA= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0/go.mod h1:YEHL6w4vvB9b0/lNwGjz8DyWXTF/7Xw0Hkgc3mGWwa8= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 h1:mtSN/07RGQPi1/zHVSZg4G0qRtOoJpPew5jsQWv9uS0= @@ -263,8 +270,8 @@ github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTK github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/philhofer/fwd v1.1.2 h1:bnDivRJ1EWPjUIRXV5KfORO897HTbpFAQddBdE8t7Gw= -github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2tUTP0= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1GshSTtih8C2gDs04w8dReiOGXrGLNoY= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM= github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -280,8 +287,8 @@ github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXP github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= -github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -292,8 +299,8 @@ github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7q github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.54.0 h1:ZlZy0BgJhTwVZUn7dLOkwCZHUkrAqd3WYtcFCWnM1D8= -github.com/prometheus/common v0.54.0/go.mod h1:/TQgMJP5CuVYveyT7n/0Ix8yLNNXy9yRSkhnLTHPDIQ= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -303,13 +310,13 @@ github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoG github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/protocolbuffers/protoscope v0.0.0-20221109213918-8e7a6aafa2c9 h1:arwj11zP0yJIxIRiDn22E0H8PxfF7TsTrc2wIPFIsf4= github.com/protocolbuffers/protoscope v0.0.0-20221109213918-8e7a6aafa2c9/go.mod h1:SKZx6stCn03JN3BOWTwvVIO2ajMkb/zQdTceXYhKw/4= -github.com/richardartoul/molecule v1.0.1-0.20221107223329-32cfee06a052 h1:Qp27Idfgi6ACvFQat5+VJvlYToylpM/hcyLBI3WaKPA= -github.com/richardartoul/molecule v1.0.1-0.20221107223329-32cfee06a052/go.mod h1:uvX/8buq8uVeiZiFht+0lqSLBHF+uGV8BrTv8W/SIwk= +github.com/richardartoul/molecule v1.0.1-0.20240531184615-7ca0df43c0b3 h1:4+LEVOB87y175cLJC/mbsgKmoDOjrBldtXvioEy96WY= +github.com/richardartoul/molecule v1.0.1-0.20240531184615-7ca0df43c0b3/go.mod h1:vl5+MqJ1nBINuSsUI2mGgH79UweUT/B5Fy8857PqyyI= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA= github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -319,8 +326,8 @@ github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/i github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= @@ -334,8 +341,8 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= -github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= @@ -362,8 +369,8 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tinylib/msgp v1.1.9 h1:SHf3yoO2sGA0veCJeCBYLHuttAVFHGm2RHgNodW7wQU= -github.com/tinylib/msgp v1.1.9/go.mod h1:BCXGB54lDD8qUEPmiG0cQQUANC4IUQyB2ItS2UDlO/k= +github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU= +github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= @@ -375,8 +382,8 @@ github.com/twmb/murmur3 v1.1.8/go.mod h1:Qq/R7NUyOfr65zD+6Q5IHKsJLwP7exErjN6lyyq github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/vmihailenco/msgpack/v4 v4.3.12 h1:07s4sz9IReOgdikxLTKNbBdqDMLsjPKXwvCazn8G65U= -github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= +github.com/vmihailenco/msgpack/v4 v4.3.13 h1:A2wsiTbvp63ilDaWmsk2wjx6xZdxQOvpiNlKBGKKXKI= +github.com/vmihailenco/msgpack/v4 v4.3.13/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= github.com/vmihailenco/tagparser v0.1.2 h1:gnjoVuB/kljJ5wICEEOpx98oXMWPLj22G67Vbd1qPqc= github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= @@ -465,8 +472,8 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 h1:UP6IpuH go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0/go.mod h1:qxuZLtbq5QDtdeSHsS7bcf6EH6uO6jUAgk764zd3rhM= go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/prometheus v0.49.0 h1:Er5I1g/YhfYv9Affk9nJLfH/+qCCVVg1f2R9AbJfqDQ= -go.opentelemetry.io/otel/exporters/prometheus v0.49.0/go.mod h1:KfQ1wpjf3zsHjzP149P4LyAwWRupc6c7t1ZJ9eXpKQM= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= @@ -482,8 +489,8 @@ go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -530,8 +537,8 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA= -golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= +golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -559,6 +566,7 @@ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220627191245-f75cf1eec38b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= @@ -609,9 +617,9 @@ google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -638,5 +646,5 @@ gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81 honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= -k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= +k8s.io/apimachinery v0.31.2 h1:i4vUt2hPK56W6mlT7Ry+AO8eEsyxMD1U44NR22CLTYw= +k8s.io/apimachinery v0.31.2/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod index 1b2347d9f24e2..63514d6b9afdb 100644 --- a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod @@ -88,50 +88,49 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-api-client-go/v2 v2.13.0 // indirect + github.com/DataDog/datadog-api-client-go/v2 v2.31.0 // indirect github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0 // indirect github.com/DataDog/sketches-go v1.4.6 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/DataDog/zstd v1.5.2 // indirect + github.com/DataDog/zstd v1.5.6 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/briandowns/spinner v1.23.0 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fatih/color v1.15.0 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fatih/color v1.18.0 // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/goccy/go-json v0.10.3 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect - github.com/magiconair/properties v1.8.1 // indirect + github.com/magiconair/properties v1.8.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect github.com/pelletier/go-toml v1.9.5 // indirect - github.com/philhofer/fwd v1.1.2 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/prometheus/common v0.54.0 // indirect - github.com/rogpeppe/go-internal v1.12.0 // indirect - github.com/shirou/gopsutil/v3 v3.24.4 // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tinylib/msgp v1.1.8 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/tinylib/msgp v1.2.4 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect go.opentelemetry.io/collector/config/configretry v1.20.0 // indirect go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect @@ -156,13 +155,13 @@ require ( go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/oauth2 v0.22.0 // indirect + golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/term v0.26.0 // indirect golang.org/x/text v0.20.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect - google.golang.org/protobuf v1.35.1 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum index 73ee4e46d9bdc..b27097f6ddcfe 100644 --- a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/datadog-api-client-go/v2 v2.13.0 h1:2c1dXSyUfum2YIVoYlqnBhV5JOG1cLSW+4jB3RrKjLc= -github.com/DataDog/datadog-api-client-go/v2 v2.13.0/go.mod h1:kntOqXEh1SmjwSDzW/eJkr9kS7EqttvEkelglWtJRbg= +github.com/DataDog/datadog-api-client-go/v2 v2.31.0 h1:JfJhYlHfLzvauI8u6h23smTooWYe6quNhhg9gpTszWY= +github.com/DataDog/datadog-api-client-go/v2 v2.31.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U= github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0 h1:U+p1i7+upWb4qOIOOvjS/92iMUGlSzEC1tRxVo0Lg8Y= github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0/go.mod h1:dOjp1lg4jwYyIbpnqW+DoOV8qD+70C+lgpINFvUqasQ= github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 h1:hgbTFS6SkqbzOiWSfP58dZ/Jpjlmv6dpD4+V4LDHm2Q= @@ -12,8 +12,8 @@ github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vH github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= -github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= +github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= @@ -49,19 +49,20 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= -github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -72,9 +73,12 @@ github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA= +github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= @@ -94,7 +98,6 @@ github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= @@ -111,8 +114,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -139,16 +143,16 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= -github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= @@ -162,27 +166,29 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/philhofer/fwd v1.1.2 h1:bnDivRJ1EWPjUIRXV5KfORO897HTbpFAQddBdE8t7Gw= -github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2tUTP0= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1GshSTtih8C2gDs04w8dReiOGXrGLNoY= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= -github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -193,8 +199,8 @@ github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7q github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.54.0 h1:ZlZy0BgJhTwVZUn7dLOkwCZHUkrAqd3WYtcFCWnM1D8= -github.com/prometheus/common v0.54.0/go.mod h1:/TQgMJP5CuVYveyT7n/0Ix8yLNNXy9yRSkhnLTHPDIQ= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -205,14 +211,14 @@ github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40T github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= -github.com/shirou/gopsutil/v3 v3.24.4 h1:dEHgzZXt4LMNm+oYELpzl9YCqV65Yr/6SfrvgRBtXeU= -github.com/shirou/gopsutil/v3 v3.24.4/go.mod h1:lTd2mdiOspcqLgAnr9/nGi71NkeMpWKdmhuxm9GusH8= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -225,10 +231,11 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= @@ -237,39 +244,31 @@ github.com/stormcat24/protodep v0.1.8 h1:FOycjjkjZiastf21aRoCjtoVdhsoBE8mZ0RvY6A github.com/stormcat24/protodep v0.1.8/go.mod h1:6OoSZD5GGomKfmH1LvfJxNIRvYhewFXH5+eNv8h4wOM= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= -github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU= +github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/vmihailenco/msgpack/v4 v4.3.12 h1:07s4sz9IReOgdikxLTKNbBdqDMLsjPKXwvCazn8G65U= -github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= +github.com/vmihailenco/msgpack/v4 v4.3.13 h1:A2wsiTbvp63ilDaWmsk2wjx6xZdxQOvpiNlKBGKKXKI= +github.com/vmihailenco/msgpack/v4 v4.3.13/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= github.com/vmihailenco/tagparser v0.1.2 h1:gnjoVuB/kljJ5wICEEOpx98oXMWPLj22G67Vbd1qPqc= github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= @@ -333,8 +332,8 @@ go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -351,7 +350,6 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= @@ -362,8 +360,6 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -377,22 +373,17 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA= -golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= +golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -404,29 +395,17 @@ golang.org/x/sys v0.0.0-20190529164535-6a60838ec259/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/term v0.26.0 h1:WEQa6V3Gja/BhNxg540hBip/kkaYtRg3cxg4oXSw4AU= golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -445,8 +424,6 @@ golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -458,8 +435,8 @@ google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJ google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190927181202-20e1ac93f88c/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd h1:6TEm2ZxXoQmFWFlt1vNxvVOa1Q0dXFQD1m/rYjXmS0E= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= @@ -467,8 +444,8 @@ google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRn google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -486,7 +463,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod index 32e2889fbf704..bca0ee268c52e 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod @@ -75,7 +75,7 @@ require ( github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0 github.com/stretchr/testify v1.10.0 - github.com/tinylib/msgp v1.1.8 + github.com/tinylib/msgp v1.2.4 go.opentelemetry.io/collector/component v0.114.0 go.opentelemetry.io/collector/config/confignet v1.20.0 // indirect go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect @@ -90,7 +90,7 @@ require ( ) require ( - github.com/DataDog/agent-payload/v5 v5.0.114 // indirect + github.com/DataDog/agent-payload/v5 v5.0.137 // indirect github.com/DataDog/datadog-agent/comp/core/config v0.57.1 // indirect github.com/DataDog/datadog-agent/comp/core/flare/builder v0.57.1 // indirect github.com/DataDog/datadog-agent/comp/core/flare/types v0.57.1 // indirect @@ -136,27 +136,27 @@ require ( github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/version v0.57.1 // indirect github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 // indirect - github.com/DataDog/sketches-go v1.4.4 // indirect + github.com/DataDog/sketches-go v1.4.6 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/DataDog/zstd v1.5.5 // indirect + github.com/DataDog/zstd v1.5.6 // indirect github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dustin/go-humanize v1.0.1 // indirect - github.com/fatih/color v1.16.0 // indirect + github.com/fatih/color v1.18.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect github.com/go-viper/mapstructure/v2 v2.2.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.4 // indirect - github.com/golang/snappy v0.0.4 // indirect + github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect @@ -166,8 +166,6 @@ require ( github.com/json-iterator/go v1.1.12 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect github.com/klauspost/compress v1.17.11 // indirect - github.com/knadh/koanf/maps v0.1.1 // indirect - github.com/knadh/koanf/providers/confmap v0.1.0 // indirect github.com/knadh/koanf/v2 v2.1.2 // indirect github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect github.com/magiconair/properties v1.8.7 // indirect @@ -180,25 +178,25 @@ require ( github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect github.com/pelletier/go-toml v1.9.5 // indirect - github.com/philhofer/fwd v1.1.2 // indirect + github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/prometheus/client_golang v1.19.1 // indirect + github.com/prometheus/client_golang v1.20.5 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.54.0 // indirect - github.com/prometheus/procfs v0.15.0 // indirect - github.com/richardartoul/molecule v1.0.1-0.20221107223329-32cfee06a052 // indirect + github.com/prometheus/common v0.60.1 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/richardartoul/molecule v1.0.1-0.20240531184615-7ca0df43c0b3 // indirect github.com/rs/cors v1.11.1 // indirect - github.com/shirou/gopsutil/v3 v3.24.4 // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.8.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/objx v0.5.2 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/twmb/murmur3 v1.1.8 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect go.opentelemetry.io/collector/config/configretry v1.20.0 // indirect @@ -210,25 +208,22 @@ require ( go.opentelemetry.io/collector/pipeline v0.114.0 // indirect go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 // indirect go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.49.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect go.opentelemetry.io/otel/metric v1.32.0 // indirect go.opentelemetry.io/otel/sdk v1.32.0 // indirect go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect - go.uber.org/fx v1.22.2 // indirect + go.uber.org/fx v1.23.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect - google.golang.org/protobuf v1.35.1 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) @@ -245,6 +240,10 @@ require ( ) require ( + github.com/knadh/koanf/maps v0.1.1 // indirect + github.com/knadh/koanf/providers/confmap v0.1.0 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0 // indirect github.com/pierrec/lz4/v4 v4.1.21 // indirect go.opentelemetry.io/collector/client v1.20.0 // indirect go.opentelemetry.io/collector/config/configauth v0.114.0 // indirect diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum index dad39da8df5dd..23a784932d4d7 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.114 h1:qg3jfzz2/lOFKbFOw2yM6RM8eyMs4HlEGnyDBOTiYmY= -github.com/DataDog/agent-payload/v5 v5.0.114/go.mod h1:COngtbYYCncpIPiE5D93QlXDH/3VAKk10jDNwGHcMRE= +github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= +github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 h1:EbzDX8HPk5uE2FsJYxD74QmMw0/3CqSKhEr6teh0ncQ= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49/go.mod h1:SvsjzyJlSg0rKsqYgdcFxeEVflx3ZNAyFfkUHP0TxXg= github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.21.0 h1:VS4NTqwczwezMVvI6A7xYR3ugPmMUJ4FcdFrsdnZI2I= @@ -12,16 +12,16 @@ github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0 h1:8nW8jfcC github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0/go.mod h1:wuatEozcLYinJ0WYf0MlVTFtTzEmf+qyJet0H9foVAs= github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 h1:/Dp1WBvekdusS9Tw9pLE7RG04eluNktQ29arLS4SpGM= github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0/go.mod h1:asNuwNy1O2HbadkcZVuqmFGonfEzXS/SBvOo8V1MJvQ= -github.com/DataDog/sketches-go v1.4.4 h1:dF52vzXRFSPOj2IjXSWLvXq3jubL4CI69kwYjJ1w5Z8= -github.com/DataDog/sketches-go v1.4.4/go.mod h1:XR0ns2RtEEF09mDKXiKZiQg+nfZStrq1ZuL1eezeZe0= +github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I= +github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= -github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= +github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f h1:5Vuo4niPKFkfwW55jV4vY0ih3VQ9RaQqeqY67fvRn8A= github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f/go.mod h1:oXfOhM/Kr8OvqS6tVqJwxPBornV0yrx3bc+l0BDr7PQ= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -51,7 +51,7 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -62,8 +62,8 @@ github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkp github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= -github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -81,8 +81,9 @@ github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= @@ -102,14 +103,13 @@ github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaW github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= -github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= @@ -171,9 +171,10 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/lightstep/go-expohisto v1.0.0 h1:UPtTS1rGdtehbbAF7o/dhkWLTDI73UifG8LbfQI7cA4= github.com/lightstep/go-expohisto v1.0.0/go.mod h1:xDXD0++Mu2FOaItXtdDfksfgxfV0z1TMPa+e/EUd0cs= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= @@ -201,16 +202,18 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0 h1:d2wCLlENxH4I2axQWaogivx/5ZIjDYgn9MIf6sFxlJ4= github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0/go.mod h1:Psyligv8GKL9WI3TraW3BLwkOX4TRxaaa1BBQQyICzA= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 h1:Wq1iTmd0K1SSOIA43Wy2uAU6SB4f9ogyN3ZmvDgTURg= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0/go.mod h1:VCj9H0QxRBWSgbl1pUo8p0NrqnmcxpPo0QjKLFtWkO0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.94.0 h1:nTayRLarCGkB9ld7p8jWJe/9wvf8gNDaS5fRjybkEpg= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.94.0/go.mod h1:xoBvqu56hbky3KZafo68nxtV2+J81+pvo1ttNirakcU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.94.0 h1:DSGhzGAaC767esMB0Ulr+9xWe6SW0LFUYMxLrLOAkjM= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.94.0/go.mod h1:Nv4nK3E7sUpDbNv0zI0zY15g2xR4jMg+n8taV8dsMeE= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0 h1:m8uPYU2rTj0sKiYgzCvIPajD3meiYsu+nX0hplUnlEU= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0/go.mod h1:P0BaP92pXPkTyTmObfLYUoRBfMYU+i0hdS3oM1DpGJo= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0 h1:Qg80zPfNMlub7LO07VMDElOu3M2oxqdZgvvB+X72a4U= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0/go.mod h1:5qsGcjFV3WFI6J2onAlkR7Xd/8VtwJcECaDRZfW4Tb4= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0 h1:PwUMZ6fHMEUV5i9hUly+z3UujDTTdxQtWzL0rWc/lgA= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0/go.mod h1:YEHL6w4vvB9b0/lNwGjz8DyWXTF/7Xw0Hkgc3mGWwa8= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= @@ -219,8 +222,8 @@ github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTK github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/philhofer/fwd v1.1.2 h1:bnDivRJ1EWPjUIRXV5KfORO897HTbpFAQddBdE8t7Gw= -github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2tUTP0= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1GshSTtih8C2gDs04w8dReiOGXrGLNoY= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM= github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -229,15 +232,14 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= -github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -248,33 +250,33 @@ github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7q github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.54.0 h1:ZlZy0BgJhTwVZUn7dLOkwCZHUkrAqd3WYtcFCWnM1D8= -github.com/prometheus/common v0.54.0/go.mod h1:/TQgMJP5CuVYveyT7n/0Ix8yLNNXy9yRSkhnLTHPDIQ= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.15.0 h1:A82kmvXJq2jTu5YUhSGNlYoxh85zLnKgPz4bMZgI5Ek= -github.com/prometheus/procfs v0.15.0/go.mod h1:Y0RJ/Y5g5wJpkTisOtqwDSo4HwhGmLB4VQSw2sQJLHk= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/protocolbuffers/protoscope v0.0.0-20221109213918-8e7a6aafa2c9 h1:arwj11zP0yJIxIRiDn22E0H8PxfF7TsTrc2wIPFIsf4= github.com/protocolbuffers/protoscope v0.0.0-20221109213918-8e7a6aafa2c9/go.mod h1:SKZx6stCn03JN3BOWTwvVIO2ajMkb/zQdTceXYhKw/4= -github.com/richardartoul/molecule v1.0.1-0.20221107223329-32cfee06a052 h1:Qp27Idfgi6ACvFQat5+VJvlYToylpM/hcyLBI3WaKPA= -github.com/richardartoul/molecule v1.0.1-0.20221107223329-32cfee06a052/go.mod h1:uvX/8buq8uVeiZiFht+0lqSLBHF+uGV8BrTv8W/SIwk= +github.com/richardartoul/molecule v1.0.1-0.20240531184615-7ca0df43c0b3 h1:4+LEVOB87y175cLJC/mbsgKmoDOjrBldtXvioEy96WY= +github.com/richardartoul/molecule v1.0.1-0.20240531184615-7ca0df43c0b3/go.mod h1:vl5+MqJ1nBINuSsUI2mGgH79UweUT/B5Fy8857PqyyI= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA= github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.4 h1:dEHgzZXt4LMNm+oYELpzl9YCqV65Yr/6SfrvgRBtXeU= -github.com/shirou/gopsutil/v3 v3.24.4/go.mod h1:lTd2mdiOspcqLgAnr9/nGi71NkeMpWKdmhuxm9GusH8= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -287,8 +289,8 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= -github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= @@ -298,28 +300,21 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= -github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU= +github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/twmb/murmur3 v1.1.8 h1:8Yt9taO/WN3l08xErzjeschgZU2QSrwm1kclYq+0aRg= @@ -327,15 +322,14 @@ github.com/twmb/murmur3 v1.1.8/go.mod h1:Qq/R7NUyOfr65zD+6Q5IHKsJLwP7exErjN6lyyq github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/vmihailenco/msgpack/v4 v4.3.12 h1:07s4sz9IReOgdikxLTKNbBdqDMLsjPKXwvCazn8G65U= -github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= -github.com/vmihailenco/tagparser v0.1.1 h1:quXMXlA39OCbd2wAdTsGDlK9RkOk6Wuw+x37wVyIuWY= -github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= +github.com/vmihailenco/msgpack/v4 v4.3.13 h1:A2wsiTbvp63ilDaWmsk2wjx6xZdxQOvpiNlKBGKKXKI= +github.com/vmihailenco/msgpack/v4 v4.3.13/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= +github.com/vmihailenco/tagparser v0.1.2 h1:gnjoVuB/kljJ5wICEEOpx98oXMWPLj22G67Vbd1qPqc= +github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= @@ -409,8 +403,8 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 h1:UP6IpuH go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0/go.mod h1:qxuZLtbq5QDtdeSHsS7bcf6EH6uO6jUAgk764zd3rhM= go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/prometheus v0.49.0 h1:Er5I1g/YhfYv9Affk9nJLfH/+qCCVVg1f2R9AbJfqDQ= -go.opentelemetry.io/otel/exporters/prometheus v0.49.0/go.mod h1:KfQ1wpjf3zsHjzP149P4LyAwWRupc6c7t1ZJ9eXpKQM= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= @@ -425,8 +419,8 @@ go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -443,7 +437,6 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= @@ -454,10 +447,6 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -471,9 +460,6 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -483,10 +469,6 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -498,27 +480,15 @@ golang.org/x/sys v0.0.0-20190529164535-6a60838ec259/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -537,23 +507,19 @@ golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190927181202-20e1ac93f88c/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd h1:6TEm2ZxXoQmFWFlt1vNxvVOa1Q0dXFQD1m/rYjXmS0E= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= @@ -562,10 +528,9 @@ google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -583,7 +548,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= diff --git a/comp/otelcol/otlp/components/metricsclient/go.mod b/comp/otelcol/otlp/components/metricsclient/go.mod index 0bf22c8f8eed2..fd4131fa08ac9 100644 --- a/comp/otelcol/otlp/components/metricsclient/go.mod +++ b/comp/otelcol/otlp/components/metricsclient/go.mod @@ -14,18 +14,18 @@ require ( ) require ( - github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect go.opentelemetry.io/otel/sdk v1.32.0 // indirect go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect - golang.org/x/tools v0.27.0 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/otelcol/otlp/components/metricsclient/go.sum b/comp/otelcol/otlp/components/metricsclient/go.sum index 28792a9b75f4a..4f2f48d1ce2f8 100644 --- a/comp/otelcol/otlp/components/metricsclient/go.sum +++ b/comp/otelcol/otlp/components/metricsclient/go.sum @@ -1,11 +1,13 @@ github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU= github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw= github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= @@ -16,9 +18,21 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= @@ -47,8 +61,6 @@ go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= @@ -56,8 +68,6 @@ golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -73,13 +83,12 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.mod b/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.mod index a64aa72d38da2..b7b05613e4005 100644 --- a/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.mod +++ b/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.mod @@ -53,7 +53,7 @@ require ( require ( github.com/DataDog/datadog-agent/comp/core/tagger/utils v0.59.0 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-viper/mapstructure/v2 v2.2.1 // indirect @@ -67,8 +67,7 @@ require ( github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/rogpeppe/go-internal v1.12.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect go.opentelemetry.io/collector/component/componentstatus v0.114.0 // indirect go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 // indirect @@ -83,8 +82,8 @@ require ( golang.org/x/net v0.31.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect - google.golang.org/protobuf v1.35.1 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.sum b/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.sum index 230527d5f3d4b..0bae72c3d6c8f 100644 --- a/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.sum +++ b/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.sum @@ -1,6 +1,7 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= @@ -38,10 +39,11 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= @@ -127,12 +129,12 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd h1:6TEm2ZxXoQmFWFlt1vNxvVOa1Q0dXFQD1m/rYjXmS0E= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/comp/otelcol/otlp/components/statsprocessor/go.mod b/comp/otelcol/otlp/components/statsprocessor/go.mod index 362e818372026..ae2cd3d4f9fd2 100644 --- a/comp/otelcol/otlp/components/statsprocessor/go.mod +++ b/comp/otelcol/otlp/components/statsprocessor/go.mod @@ -40,21 +40,21 @@ require ( github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect - github.com/DataDog/go-sqllexer v0.0.16 // indirect + github.com/DataDog/go-sqllexer v0.0.17 // indirect github.com/DataDog/go-tuf v1.1.0-0.5.2 // indirect github.com/DataDog/sketches-go v1.4.6 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/containerd/cgroups/v3 v3.0.2 // indirect + github.com/containerd/cgroups/v3 v3.0.4 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/godbus/dbus/v5 v5.0.6 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/godbus/dbus/v5 v5.1.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/mock v1.6.0 // indirect github.com/golang/protobuf v1.5.4 // indirect @@ -62,20 +62,21 @@ require ( github.com/json-iterator/go v1.1.12 // indirect github.com/karrick/godirwalk v1.17.0 // indirect github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/moby/sys/userns v0.1.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/opencontainers/runtime-spec v1.1.0-rc.3 // indirect - github.com/outcaste-io/ristretto v0.2.1 // indirect - github.com/philhofer/fwd v1.1.2 // indirect + github.com/opencontainers/runtime-spec v1.2.0 // indirect + github.com/outcaste-io/ristretto v0.2.3 // indirect + github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/secure-systems-lab/go-securesystemslib v0.7.0 // indirect - github.com/shirou/gopsutil/v3 v3.24.4 // indirect + github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect - github.com/tinylib/msgp v1.1.8 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/tinylib/msgp v1.2.4 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect go.opentelemetry.io/collector/semconv v0.114.0 // indirect @@ -86,16 +87,13 @@ require ( go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/mod v0.22.0 // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect golang.org/x/time v0.8.0 // indirect - golang.org/x/tools v0.27.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect - google.golang.org/protobuf v1.35.1 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/comp/otelcol/otlp/components/statsprocessor/go.sum b/comp/otelcol/otlp/components/statsprocessor/go.sum index 471fdccea1d4d..3c983553c9350 100644 --- a/comp/otelcol/otlp/components/statsprocessor/go.sum +++ b/comp/otelcol/otlp/components/statsprocessor/go.sum @@ -1,30 +1,31 @@ github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU= github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw= -github.com/DataDog/go-sqllexer v0.0.16 h1:RoSUMS6MECyB3gTUIdydzXwK5NhEhv6GMJkS7ptsgRA= -github.com/DataDog/go-sqllexer v0.0.16/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc= +github.com/DataDog/go-sqllexer v0.0.17 h1:u47fJAVg/+5DA74ZW3w0Qu+3qXHd3GtnA8ZBYixdPrM= +github.com/DataDog/go-sqllexer v0.0.17/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc= github.com/DataDog/go-tuf v1.1.0-0.5.2 h1:4CagiIekonLSfL8GMHRHcHudo1fQnxELS9g4tiAupQ4= github.com/DataDog/go-tuf v1.1.0-0.5.2/go.mod h1:zBcq6f654iVqmkk8n2Cx81E1JnNTMOAx1UEO/wZR+P0= github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 h1:hgbTFS6SkqbzOiWSfP58dZ/Jpjlmv6dpD4+V4LDHm2Q= github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0/go.mod h1:dvIWN9pA2zWNTw5rhDWZgzZnhcfpH++d+8d1SWW6xkY= github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I= github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= -github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= -github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= +github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= -github.com/containerd/cgroups/v3 v3.0.2 h1:f5WFqIVSgo5IZmtTT3qVBo6TzI1ON6sycSBKkymb9L0= -github.com/containerd/cgroups/v3 v3.0.2/go.mod h1:JUgITrzdFqp42uI2ryGA+ge0ap/nxzYgkGmIcetmErE= +github.com/containerd/cgroups/v3 v3.0.4 h1:2fs7l3P0Qxb1nKWuJNFiwhp2CqiKzho71DQkDrHJIo4= +github.com/containerd/cgroups/v3 v3.0.4/go.mod h1:SA5DLYnXO8pTGYiAHXz94qvLQTKfVM5GEVisn4jpins= github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= @@ -38,18 +39,18 @@ github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/godbus/dbus/v5 v5.0.6 h1:mkgN1ofwASrYnJ5W6U/BxG15eXXXjirgZc7CLqkcaro= -github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= +github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= @@ -68,9 +69,10 @@ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= +github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= +github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -80,29 +82,29 @@ github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0/go.mod h1:C9Zgh/N3j4NR2D+1FGAA1YizhFW9OS51DwLUFJTdXN4= github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 h1:I4ZYVRYW3Cjb65sPENZ9kHam/JUMXNEp2n/knJ0C0Vc= github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0/go.mod h1:4BhyIaOn2LS48WS+ZNix4TpP0+goq9gDEtGzth5Cr3M= -github.com/opencontainers/runtime-spec v1.1.0-rc.3 h1:l04uafi6kxByhbxev7OWiuUv0LZxEsYUfDWZ6bztAuU= -github.com/opencontainers/runtime-spec v1.1.0-rc.3/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/outcaste-io/ristretto v0.2.1 h1:KCItuNIGJZcursqHr3ghO7fc5ddZLEHspL9UR0cQM64= -github.com/outcaste-io/ristretto v0.2.1/go.mod h1:W8HywhmtlopSB1jeMg3JtdIhf+DYkLAr0VN/s4+MHac= -github.com/philhofer/fwd v1.1.2 h1:bnDivRJ1EWPjUIRXV5KfORO897HTbpFAQddBdE8t7Gw= -github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2tUTP0= +github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk= +github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/outcaste-io/ristretto v0.2.3 h1:AK4zt/fJ76kjlYObOeNwh4T3asEuaCmp26pOvUOL9w0= +github.com/outcaste-io/ristretto v0.2.3/go.mod h1:W8HywhmtlopSB1jeMg3JtdIhf+DYkLAr0VN/s4+MHac= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1GshSTtih8C2gDs04w8dReiOGXrGLNoY= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= -github.com/secure-systems-lab/go-securesystemslib v0.7.0 h1:OwvJ5jQf9LnIAS83waAjPbcMsODrTQUpJ02eNLUoxBg= -github.com/secure-systems-lab/go-securesystemslib v0.7.0/go.mod h1:/2gYnlnHVQ6xeGtfIqFy7Do03K4cdCY0A/GlJLDKLHI= -github.com/shirou/gopsutil/v3 v3.24.4 h1:dEHgzZXt4LMNm+oYELpzl9YCqV65Yr/6SfrvgRBtXeU= -github.com/shirou/gopsutil/v3 v3.24.4/go.mod h1:lTd2mdiOspcqLgAnr9/nGi71NkeMpWKdmhuxm9GusH8= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/secure-systems-lab/go-securesystemslib v0.8.0 h1:mr5An6X45Kb2nddcFlbmfHkLguCE9laoZCUzEEpIZXA= +github.com/secure-systems-lab/go-securesystemslib v0.8.0/go.mod h1:UH2VZVuJfCYR8WgMlCU1uFsOUU+KeyrTWcSS73NBOzU= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= @@ -115,24 +117,21 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= -github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= -github.com/vmihailenco/msgpack/v4 v4.3.12 h1:07s4sz9IReOgdikxLTKNbBdqDMLsjPKXwvCazn8G65U= -github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= +github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU= +github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= +github.com/vmihailenco/msgpack/v4 v4.3.13 h1:A2wsiTbvp63ilDaWmsk2wjx6xZdxQOvpiNlKBGKKXKI= +github.com/vmihailenco/msgpack/v4 v4.3.13/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= github.com/vmihailenco/tagparser v0.1.2 h1:gnjoVuB/kljJ5wICEEOpx98oXMWPLj22G67Vbd1qPqc= github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= @@ -187,34 +186,22 @@ go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -225,23 +212,13 @@ golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220627191245-f75cf1eec38b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= @@ -251,10 +228,6 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -265,8 +238,8 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1: google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= @@ -277,5 +250,5 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/apimachinery v0.25.5 h1:SQomYHvv+aO43qdu3QKRf9YuI0oI8w3RrOQ1qPbAUGY= -k8s.io/apimachinery v0.25.5/go.mod h1:1S2i1QHkmxc8+EZCIxe/fX5hpldVXk4gvnJInMEb8D4= +k8s.io/apimachinery v0.31.2 h1:i4vUt2hPK56W6mlT7Ry+AO8eEsyxMD1U44NR22CLTYw= +k8s.io/apimachinery v0.31.2/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= diff --git a/comp/otelcol/otlp/testutil/go.mod b/comp/otelcol/otlp/testutil/go.mod index 851e3aa6c47a0..023eadca279c9 100644 --- a/comp/otelcol/otlp/testutil/go.mod +++ b/comp/otelcol/otlp/testutil/go.mod @@ -42,7 +42,7 @@ require ( github.com/DataDog/sketches-go v1.4.6 github.com/stretchr/testify v1.10.0 go.opentelemetry.io/collector/pdata v1.20.0 - google.golang.org/protobuf v1.35.1 + google.golang.org/protobuf v1.35.2 ) require ( @@ -65,38 +65,33 @@ require ( github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect - github.com/magiconair/properties v1.8.1 // indirect + github.com/magiconair/properties v1.8.7 // indirect github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect github.com/pelletier/go-toml v1.9.5 // indirect - github.com/philhofer/fwd v1.1.2 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/prometheus/client_golang v1.19.1 // indirect - github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.53.0 // indirect - github.com/prometheus/procfs v0.15.1 // indirect - github.com/shirou/gopsutil/v3 v3.24.4 // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tinylib/msgp v1.1.8 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/vmihailenco/tagparser v0.1.2 // indirect + github.com/tinylib/msgp v1.2.4 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect @@ -104,7 +99,7 @@ require ( golang.org/x/net v0.31.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/comp/otelcol/otlp/testutil/go.sum b/comp/otelcol/otlp/testutil/go.sum index c8de2ef38e100..6eb3189bdde28 100644 --- a/comp/otelcol/otlp/testutil/go.sum +++ b/comp/otelcol/otlp/testutil/go.sum @@ -39,8 +39,9 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -48,19 +49,20 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -81,7 +83,6 @@ github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= @@ -89,6 +90,8 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -96,8 +99,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -124,11 +128,11 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= @@ -142,27 +146,29 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/philhofer/fwd v1.1.2 h1:bnDivRJ1EWPjUIRXV5KfORO897HTbpFAQddBdE8t7Gw= -github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2tUTP0= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1GshSTtih8C2gDs04w8dReiOGXrGLNoY= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= -github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -173,8 +179,8 @@ github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7q github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.53.0 h1:U2pL9w9nmJwJDa4qqLQ3ZaePJ6ZTwt7cMD3AG3+aLCE= -github.com/prometheus/common v0.53.0/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -185,14 +191,14 @@ github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40T github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= -github.com/shirou/gopsutil/v3 v3.24.4 h1:dEHgzZXt4LMNm+oYELpzl9YCqV65Yr/6SfrvgRBtXeU= -github.com/shirou/gopsutil/v3 v3.24.4/go.mod h1:lTd2mdiOspcqLgAnr9/nGi71NkeMpWKdmhuxm9GusH8= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -205,72 +211,65 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= -github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU= +github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/vmihailenco/msgpack/v4 v4.3.12 h1:07s4sz9IReOgdikxLTKNbBdqDMLsjPKXwvCazn8G65U= -github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= +github.com/vmihailenco/msgpack/v4 v4.3.13 h1:A2wsiTbvp63ilDaWmsk2wjx6xZdxQOvpiNlKBGKKXKI= +github.com/vmihailenco/msgpack/v4 v4.3.13/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= github.com/vmihailenco/tagparser v0.1.2 h1:gnjoVuB/kljJ5wICEEOpx98oXMWPLj22G67Vbd1qPqc= github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -287,7 +286,6 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= @@ -298,8 +296,6 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -313,9 +309,6 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -325,8 +318,6 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -338,25 +329,13 @@ golang.org/x/sys v0.0.0-20190529164535-6a60838ec259/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -375,21 +354,19 @@ golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190927181202-20e1ac93f88c/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 h1:e7S5W7MGGLaSu8j3YjdezkZ+m1/Nm0uRVRMEMGk26Xs= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= @@ -397,8 +374,8 @@ google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRn google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -416,7 +393,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/comp/serializer/compression/go.mod b/comp/serializer/compression/go.mod index 167dfbeb07366..9e8574fe77f13 100644 --- a/comp/serializer/compression/go.mod +++ b/comp/serializer/compression/go.mod @@ -37,7 +37,7 @@ require ( github.com/DataDog/datadog-agent/comp/core/config v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 - github.com/DataDog/zstd v1.5.5 + github.com/DataDog/zstd v1.5.6 ) require ( @@ -63,44 +63,41 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/testify v1.10.0 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect - go.uber.org/fx v1.22.2 // indirect + go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/serializer/compression/go.sum b/comp/serializer/compression/go.sum index 7d46104035796..c8ede6be791eb 100644 --- a/comp/serializer/compression/go.sum +++ b/comp/serializer/compression/go.sum @@ -1,12 +1,11 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= -github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= +github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -22,8 +21,8 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -35,10 +34,11 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -46,19 +46,20 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -71,18 +72,17 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -90,8 +90,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -115,69 +116,73 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -190,31 +195,27 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -222,27 +223,27 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -265,8 +266,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -285,8 +284,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -299,9 +296,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -319,8 +314,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -333,13 +326,14 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -351,7 +345,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/comp/trace/agent/def/go.mod b/comp/trace/agent/def/go.mod index 0c1bb30cde21e..3ab74572b71b2 100644 --- a/comp/trace/agent/def/go.mod +++ b/comp/trace/agent/def/go.mod @@ -20,8 +20,8 @@ require ( github.com/json-iterator/go v1.1.12 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/philhofer/fwd v1.1.2 // indirect - github.com/tinylib/msgp v1.1.8 // indirect + github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect + github.com/tinylib/msgp v1.2.4 // indirect go.opentelemetry.io/collector/component v0.114.0 // indirect go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect go.opentelemetry.io/collector/semconv v0.114.0 // indirect @@ -33,7 +33,7 @@ require ( golang.org/x/net v0.31.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect - google.golang.org/protobuf v1.35.1 // indirect + google.golang.org/protobuf v1.35.2 // indirect ) diff --git a/comp/trace/agent/def/go.sum b/comp/trace/agent/def/go.sum index 96f740f700c35..dd3eb5357b3e6 100644 --- a/comp/trace/agent/def/go.sum +++ b/comp/trace/agent/def/go.sum @@ -1,8 +1,9 @@ github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 h1:hgbTFS6SkqbzOiWSfP58dZ/Jpjlmv6dpD4+V4LDHm2Q= github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0/go.mod h1:dvIWN9pA2zWNTw5rhDWZgzZnhcfpH++d+8d1SWW6xkY= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= @@ -27,23 +28,23 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/philhofer/fwd v1.1.2 h1:bnDivRJ1EWPjUIRXV5KfORO897HTbpFAQddBdE8t7Gw= -github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2tUTP0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1GshSTtih8C2gDs04w8dReiOGXrGLNoY= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= -github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= -github.com/vmihailenco/msgpack/v4 v4.3.12 h1:07s4sz9IReOgdikxLTKNbBdqDMLsjPKXwvCazn8G65U= -github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= -github.com/vmihailenco/tagparser v0.1.1 h1:quXMXlA39OCbd2wAdTsGDlK9RkOk6Wuw+x37wVyIuWY= -github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= +github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU= +github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= +github.com/vmihailenco/msgpack/v4 v4.3.13 h1:A2wsiTbvp63ilDaWmsk2wjx6xZdxQOvpiNlKBGKKXKI= +github.com/vmihailenco/msgpack/v4 v4.3.13/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= +github.com/vmihailenco/tagparser v0.1.2 h1:gnjoVuB/kljJ5wICEEOpx98oXMWPLj22G67Vbd1qPqc= +github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= @@ -73,61 +74,41 @@ go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 h1:e7S5W7MGGLaSu8j3YjdezkZ+m1/Nm0uRVRMEMGk26Xs= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/comp/trace/compression/impl-zstd/go.mod b/comp/trace/compression/impl-zstd/go.mod index 75f40518127af..7bf85b9757ad0 100644 --- a/comp/trace/compression/impl-zstd/go.mod +++ b/comp/trace/compression/impl-zstd/go.mod @@ -6,5 +6,5 @@ replace github.com/DataDog/datadog-agent/comp/trace/compression/def => ../../../ require ( github.com/DataDog/datadog-agent/comp/trace/compression/def v0.56.0-rc.3 - github.com/DataDog/zstd v1.5.5 + github.com/DataDog/zstd v1.5.6 ) diff --git a/comp/trace/compression/impl-zstd/go.sum b/comp/trace/compression/impl-zstd/go.sum index a3240e97bcbd0..5d1e9ea23f658 100644 --- a/comp/trace/compression/impl-zstd/go.sum +++ b/comp/trace/compression/impl-zstd/go.sum @@ -1,2 +1,2 @@ -github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= -github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= +github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= diff --git a/docs/dev/modules.md b/docs/dev/modules.md index 13af79d47c204..59d551215f840 100644 --- a/docs/dev/modules.md +++ b/docs/dev/modules.md @@ -46,6 +46,8 @@ After you have refactored, if needed, and listed the packages that you want to e - ./comp ``` +1. Run `inv modules.go-work` to generate the updated `go.work` file. + ## Go nested modules tooling Go nested modules interdependencies are automatically updated when creating a release candidate or a final version, with the same tasks that update the `release.json`. For Agent version `7.X.Y` the module will have version `v0.X.Y`. diff --git a/go.mod b/go.mod index 864ec4fd5dc6c..7d1ddbeffe448 100644 --- a/go.mod +++ b/go.mod @@ -355,7 +355,7 @@ require ( code.cloudfoundry.org/rep v0.0.0-20200325195957-1404b978e31e // indirect code.cloudfoundry.org/tlsconfig v0.0.0-20200131000646-bbe0f8da39b3 // indirect github.com/AlekSi/pointer v1.2.0 // indirect - github.com/BurntSushi/toml v1.3.2 // indirect + github.com/BurntSushi/toml v1.4.0 // indirect github.com/DataDog/aptly v1.5.3 // indirect github.com/DataDog/go-tuf v1.1.0-0.5.2 github.com/DataDog/gostackparse v0.7.0 // indirect @@ -413,7 +413,7 @@ require ( github.com/felixge/httpsnoop v1.0.4 // indirect github.com/ghodss/yaml v1.0.0 github.com/go-git/go-billy/v5 v5.5.0 // indirect - github.com/go-git/go-git/v5 v5.11.0 // indirect + github.com/go-git/go-git/v5 v5.12.0 // indirect github.com/go-logfmt/logfmt v0.6.0 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect @@ -458,7 +458,6 @@ require ( github.com/kjk/lzma v0.0.0-20161016003348-3fd93898850d // indirect github.com/klauspost/compress v1.17.11 // indirect github.com/klauspost/pgzip v1.2.5 // indirect - github.com/knadh/koanf v1.5.0 // indirect github.com/knqyf263/go-apk-version v0.0.0-20200609155635-041fdbb8563f // indirect github.com/knqyf263/go-deb-version v0.0.0-20230223133812-3ed183d23422 // indirect github.com/knqyf263/go-rpm-version v0.0.0-20220614171824-631e686d1075 // indirect @@ -673,7 +672,7 @@ require ( github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter v0.59.0-rc.6 github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient v0.59.0 github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/processor/infraattributesprocessor v0.59.0 - github.com/DataDog/datadog-agent/comp/otelcol/otlp/testutil v0.56.0-rc.3 + github.com/DataDog/datadog-agent/comp/otelcol/otlp/testutil v0.57.0-devel.0.20240718200853-81bf3b2e412d github.com/DataDog/datadog-agent/comp/serializer/compression v0.59.0-rc.6 github.com/DataDog/datadog-agent/comp/trace/agent/def v0.59.0-rc.6 github.com/DataDog/datadog-agent/comp/trace/compression/def v0.59.0 @@ -819,7 +818,7 @@ require ( github.com/antlr4-go/antlr/v4 v4.13.0 // indirect github.com/apache/thrift v0.21.0 // indirect github.com/aquasecurity/trivy-java-db v0.0.0-20240109071736-184bd7481d48 // indirect - github.com/aws/aws-sdk-go-v2/service/ecr v1.36.0 // indirect + github.com/aws/aws-sdk-go-v2/service/ecr v1.36.2 // indirect github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.27.0 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 // indirect github.com/bahlo/generic-list-go v0.2.0 // indirect @@ -847,6 +846,7 @@ require ( github.com/envoyproxy/go-control-plane v0.13.0 // indirect github.com/envoyproxy/protoc-gen-validate v1.1.0 // indirect github.com/fxamacker/cbor/v2 v2.7.0 // indirect + github.com/glebarez/go-sqlite v1.22.0 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-openapi/analysis v0.22.2 // indirect @@ -872,7 +872,7 @@ require ( github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc // indirect github.com/hashicorp/cronexpr v1.1.2 // indirect github.com/hashicorp/go-retryablehttp v0.7.7 // indirect - github.com/hashicorp/go-secure-stdlib/parseutil v0.1.7 // indirect + github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect github.com/hashicorp/go-sockaddr v1.0.6 // indirect github.com/hashicorp/nomad/api v0.0.0-20240717122358-3d93bd3778f3 // indirect @@ -887,6 +887,8 @@ require ( github.com/jonboulle/clockwork v0.4.0 // indirect github.com/jpillora/backoff v1.0.0 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect + github.com/knadh/koanf/maps v0.1.0 // indirect + github.com/knadh/koanf/providers/confmap v0.1.0-dev0 // indirect github.com/knadh/koanf/v2 v2.1.2 // indirect github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b // indirect github.com/kr/text v0.2.0 // indirect @@ -975,7 +977,7 @@ require ( github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/signalfx/sapm-proto v0.16.0 // indirect github.com/sigstore/rekor v1.2.2 // indirect - github.com/skeema/knownhosts v1.2.1 // indirect + github.com/skeema/knownhosts v1.2.2 // indirect github.com/smartystreets/assertions v1.1.0 // indirect github.com/sourcegraph/conc v0.3.0 // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect @@ -1035,15 +1037,14 @@ require ( go.opentelemetry.io/otel/log v0.8.0 // indirect go.opentelemetry.io/otel/sdk/log v0.7.0 // indirect go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect - golang.org/x/exp/typeparams v0.0.0-20230307190834-24139beb5833 // indirect + golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f // indirect golang.org/x/lint v0.0.0-20241112194109-818c5a804067 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect - gotest.tools/v3 v3.5.1 // indirect - honnef.co/go/tools v0.4.5 // indirect + honnef.co/go/tools v0.4.7 // indirect k8s.io/kms v0.31.2 // indirect k8s.io/sample-controller v0.31.2 // indirect modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6 // indirect diff --git a/go.sum b/go.sum index 465ece1027020..0e49865aadf0e 100644 --- a/go.sum +++ b/go.sum @@ -106,8 +106,8 @@ github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBp github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mxXfQidrMEnLlPk9UMeRtyBTnEFtxkV0kU= github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= -github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= +github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Code-Hex/go-generics-cache v1.5.1 h1:6vhZGc5M7Y/YD8cIUcY8kcuQLB4cHR7U+0KMqAA0KcU= github.com/Code-Hex/go-generics-cache v1.5.1/go.mod h1:qxcC9kRVrct9rHeiYpFWSoW1vxyillCVzX13KZG8dl4= @@ -320,20 +320,16 @@ github.com/aws/aws-lambda-go v1.37.0/go.mod h1:jwFe2KmMsHmffA1X2R09hH6lFzJQxzI8q github.com/aws/aws-sdk-go v1.38.35/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/aws/aws-sdk-go v1.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU= github.com/aws/aws-sdk-go v1.55.5/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= -github.com/aws/aws-sdk-go-v2 v1.9.2/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4= github.com/aws/aws-sdk-go-v2 v1.21.2/go.mod h1:ErQhvNuEMhJjweavOYhxVkn2RUx7kQXVATHrjKtxIpM= github.com/aws/aws-sdk-go-v2 v1.32.5 h1:U8vdWJuY7ruAkzaOdD7guwJjD06YSKmnKCJs7s3IkIo= github.com/aws/aws-sdk-go-v2 v1.32.5/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.14/go.mod h1:9NCTOURS8OpxvoAVHq79LK81/zC78hfRWFn+aL0SPcY= -github.com/aws/aws-sdk-go-v2/config v1.8.3/go.mod h1:4AEiLtAb8kLs7vgw2ZV3p2VZ1+hBavOc84hqxVNpCyw= github.com/aws/aws-sdk-go-v2/config v1.19.0/go.mod h1:ZwDUgFnQgsazQTnWfeLWk5GjeqTQTL8lMkoE1UXzxdE= github.com/aws/aws-sdk-go-v2/config v1.28.5 h1:Za41twdCXbuyyWv9LndXxZZv3QhTG1DinqlFsSuvtI0= github.com/aws/aws-sdk-go-v2/config v1.28.5/go.mod h1:4VsPbHP8JdcdUDmbTVgNL/8w9SqOkM5jyY8ljIxLO3o= -github.com/aws/aws-sdk-go-v2/credentials v1.4.3/go.mod h1:FNNC6nQZQUuyhq5aE5c7ata8o9e4ECGmS4lAXC7o1mQ= github.com/aws/aws-sdk-go-v2/credentials v1.13.43/go.mod h1:zWJBz1Yf1ZtX5NGax9ZdNjhhI4rgjfgsyk6vTY1yfVg= github.com/aws/aws-sdk-go-v2/credentials v1.17.46 h1:AU7RcriIo2lXjUfHFnFKYsLCwgbz1E7Mm95ieIRDNUg= github.com/aws/aws-sdk-go-v2/credentials v1.17.46/go.mod h1:1FmYyLGL08KQXQ6mcTlifyFXfJVCNJTVGuQP4m0d/UA= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.6.0/go.mod h1:gqlclDEZp4aqJOancXK6TN24aKhT0W0Ae9MHk3wzTMM= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13/go.mod h1:f/Ib/qYjhV2/qdsf79H3QP/eRE4AkVyEf6sk7XfZ1tg= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.20 h1:sDSXIrlsFSFJtWKLQS4PUWRvrT580rrnuLydJrCQ/yA= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.20/go.mod h1:WZ/c+w0ofps+/OUqMwWgnfrgzZH1DZO1RIkktICsqnY= @@ -343,25 +339,22 @@ github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.24/go.mod h1:5CI1JemjVw github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37/go.mod h1:Qe+2KtKml+FEsQF/DHmDV+xjtche/hwoF75EG4UlHW8= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.24 h1:N1zsICrQglfzaBnrfM0Ys00860C+QFwu6u/5+LomP+o= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.24/go.mod h1:dCn9HbJ8+K31i8IQ8EWmWj0EiIk0+vKiHNMxTTYveAg= -github.com/aws/aws-sdk-go-v2/internal/ini v1.2.4/go.mod h1:ZcBrrI3zBKlhGFNYWvju0I3TR93I7YIgAfy82Fh4lcQ= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45/go.mod h1:lD5M20o09/LCuQ2mE62Mb/iSdSlCNuj6H5ci7tW7OsE= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= github.com/aws/aws-sdk-go-v2/internal/v4a v1.1.6/go.mod h1:Q0Hq2X/NuL7z8b1Dww8rmOFl+jzusKEcyvkKspwdpyc= -github.com/aws/aws-sdk-go-v2/service/appconfig v1.4.2/go.mod h1:FZ3HkCe+b10uFZZkFdvf98LHW21k49W8o8J366lqVKY= github.com/aws/aws-sdk-go-v2/service/ebs v1.27.0 h1:4zuGQITyy9O+GlSGcs+aUz3+SmlvnYFc1/o4lRBs5Bw= github.com/aws/aws-sdk-go-v2/service/ebs v1.27.0/go.mod h1:T0t6q7wBD2P11xwVcc6GvwmuDT3i6ZJgZ+13ziQUUnA= github.com/aws/aws-sdk-go-v2/service/ec2 v1.190.0 h1:k97fGog9Tl0woxTiSIHN14Qs5ehqK6GXejUwkhJYyL0= github.com/aws/aws-sdk-go-v2/service/ec2 v1.190.0/go.mod h1:mzj8EEjIHSN2oZRXiw1Dd+uB4HZTl7hC8nBzX9IZMWw= -github.com/aws/aws-sdk-go-v2/service/ecr v1.36.0 h1:OVg61nfvhkvneY2btZ50sdYHsvhJs46dqtuBiURZo2A= -github.com/aws/aws-sdk-go-v2/service/ecr v1.36.0/go.mod h1:kdKXMMVpJd/N59EYI8aneYNsQNqCd99iSg2bEmQHaUI= +github.com/aws/aws-sdk-go-v2/service/ecr v1.36.2 h1:VDQaVwGOokbd3VUbHF+wupiffdrbAZPdQnr5XZMJqrs= +github.com/aws/aws-sdk-go-v2/service/ecr v1.36.2/go.mod h1:lvUlMghKYmSxSfv0vU7pdU/8jSY+s0zpG8xXhaGKCw0= github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.27.0 h1:k4ykVLeoO2JohTC7BIfIqWYvmf8HcirbWHf8Zn0SPpI= github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.27.0/go.mod h1:vJMqaxbvogPsWZYEInEwK82EBwCfc7cnE/5BEqnvTYI= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.15/go.mod h1:26SQUPcTNgV1Tapwdt4a1rOsYRsnBsJHLMPoxK2b0d8= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 h1:iXtILhvDxB6kPvEXgsDhGaZCSC6LQET5ZHSdJozeI0Y= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1/go.mod h1:9nu0fVANtYiAePIBh2/pFUSwtJ402hLnp854CNoDOeE= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.38/go.mod h1:epIZoRSSbRIwLPJU5F+OldHhwZPBdpDeQkRdCeY3+00= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.3.2/go.mod h1:72HRZDLMtmVQiLG2tLfQcaWLCssELvGl+Zf2WVxMmR8= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37/go.mod h1:vBmDnwWXWxNPFRMmG2m/3MKOe+xEcMDo1tanpaWCcck= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.5 h1:wtpJ4zcwrSbwhECWQoI/g6WM9zqCcSpHDJIWSbMLOu4= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.5/go.mod h1:qu/W9HXQbbQ4+1+JcZp0ZNPV31ym537ZJN+fiS7Ti8E= @@ -373,18 +366,15 @@ github.com/aws/aws-sdk-go-v2/service/rds v1.90.0/go.mod h1:h2jc7IleH3xHY7y+h8FH7 github.com/aws/aws-sdk-go-v2/service/s3 v1.40.2/go.mod h1:Zjfqt7KhQK+PO1bbOsFNzKgaq7TcxzmEoDWN8lM0qzQ= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.6 h1:1KDMKvOKNrpD667ORbZ/+4OgvUoaok1gg/MLzrHF9fw= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.6/go.mod h1:DmtyfCfONhOyVAJ6ZMTrDSFIeyCBlEO93Qkfhxwbxu0= -github.com/aws/aws-sdk-go-v2/service/sso v1.4.2/go.mod h1:NBvT9R1MEF+Ud6ApJKM0G+IkPchKS7p7c2YPKwHmBOk= github.com/aws/aws-sdk-go-v2/service/sso v1.15.2/go.mod h1:gsL4keucRCgW+xA85ALBpRFfdSLH4kHOVSnLMSuBECo= github.com/aws/aws-sdk-go-v2/service/sso v1.24.6 h1:3zu537oLmsPfDMyjnUS2g+F2vITgy5pB74tHI+JBNoM= github.com/aws/aws-sdk-go-v2/service/sso v1.24.6/go.mod h1:WJSZH2ZvepM6t6jwu4w/Z45Eoi75lPN7DcydSRtJg6Y= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3/go.mod h1:a7bHA82fyUXOm+ZSWKU6PIoBxrjSprdLoM8xPYvzYVg= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.5 h1:K0OQAsDywb0ltlFrZm0JHPY3yZp/S9OaoLU33S7vPS8= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.5/go.mod h1:ORITg+fyuMoeiQFiVGoqB3OydVTLkClw/ljbblMq6Cc= -github.com/aws/aws-sdk-go-v2/service/sts v1.7.2/go.mod h1:8EzeIqfWt2wWT4rJVu3f21TfrhJ8AEMzVybRNSb/b4g= github.com/aws/aws-sdk-go-v2/service/sts v1.23.2/go.mod h1:Eows6e1uQEsc4ZaHANmsPRzAKcVDrcmjjWiih2+HUUQ= github.com/aws/aws-sdk-go-v2/service/sts v1.33.1 h1:6SZUVRQNvExYlMLbHdlKB48x0fLbc2iVROyaNEwBHbU= github.com/aws/aws-sdk-go-v2/service/sts v1.33.1/go.mod h1:GqWyYCwLXnlUB1lOAXQyNSPqPLQJvmo8J0DWBzp9mtg= -github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E= github.com/aws/smithy-go v1.15.0/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro= github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= @@ -514,12 +504,10 @@ github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4= github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec= github.com/coreos/go-systemd v0.0.0-20180202092358-40e2722dffea h1:IHPWgevPcOUjTvj3n7Qgm+nie6xs/xV8dmO5MddNTpc= github.com/coreos/go-systemd v0.0.0-20180202092358-40e2722dffea/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= @@ -612,7 +600,6 @@ github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymF github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/go-control-plane v0.13.0 h1:HzkeUz1Knt+3bK+8LG1bxOO/jzWZmdxpwC51i202les= github.com/envoyproxy/go-control-plane v0.13.0/go.mod h1:GRaKG3dwvFoTg4nj7aXdZnvMg4d7nvT/wl9WgVXn3Q8= @@ -631,7 +618,6 @@ github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= -github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= @@ -658,10 +644,10 @@ github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm github.com/gin-gonic/gin v1.7.7/go.mod h1:axIBovoeJpVj8S3BwE0uPMTeReE4+AfFtqpqaZ1qq1U= github.com/glaslos/ssdeep v0.4.0 h1:w9PtY1HpXbWLYgrL/rvAVkj2ZAMOtDxoGKcBHcUFCLs= github.com/glaslos/ssdeep v0.4.0/go.mod h1:il4NniltMO8eBtU7dqoN+HVJ02gXxbpbUfkcyUvNtG0= -github.com/glebarez/go-sqlite v1.20.3 h1:89BkqGOXR9oRmG58ZrzgoY/Fhy5x0M+/WV48U5zVrZ4= -github.com/glebarez/go-sqlite v1.20.3/go.mod h1:u3N6D/wftiAzIOJtZl6BmedqxmmkDfH3q+ihjqxC9u0= -github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY= -github.com/gliderlabs/ssh v0.3.5/go.mod h1:8XB4KraRrX39qHhT6yxPsHedjA08I/uBVwj4xC+/+z4= +github.com/glebarez/go-sqlite v1.22.0 h1:uAcMJhaA6r3LHMTFgP0SifzgXg46yJkgxqyuyec+ruQ= +github.com/glebarez/go-sqlite v1.22.0/go.mod h1:PlBIdHe0+aUEFn+r2/uthrWq4FxbzugL0L8Li6yQJbc= +github.com/gliderlabs/ssh v0.3.7 h1:iV3Bqi942d9huXnzEF2Mt+CY9gLu8DNM4Obd+8bODRE= +github.com/gliderlabs/ssh v0.3.7/go.mod h1:zpHEXBstFnQYtGnB8k8kQLol82umzn/2/snG7alWVD8= github.com/go-delve/delve v1.23.1 h1:MtZ13ppptttkqSuvVnwJ5CPhIAzDiOwRrYuCk3ES7fU= github.com/go-delve/delve v1.23.1/go.mod h1:S3SLuEE2mn7wipKilTvk1p9HdTMnXXElcEpiZ+VcuqU= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= @@ -670,8 +656,8 @@ github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+ github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow= github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4= github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII= -github.com/go-git/go-git/v5 v5.11.0 h1:XIZc1p+8YzypNr34itUfSvYJcv+eYdTnTvOZ2vD3cA4= -github.com/go-git/go-git/v5 v5.11.0/go.mod h1:6GFcX2P3NM7FPBfpePbpLd21XxsgdAt+lKqXmCUiUCY= +github.com/go-git/go-git/v5 v5.12.0 h1:7Md+ndsjrzZxbddRDZjF14qK+NN56sy6wkqaVrjZtys= +github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXYjuz9i5OEY= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -682,7 +668,6 @@ github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= -github.com/go-ldap/ldap v3.0.2+incompatible/go.mod h1:qfd9rJvER9Q0/D/Sqn1DfHRoBp40uXYvFoEVrNEPqRc= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= @@ -753,7 +738,6 @@ github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg78 github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= -github.com/go-test/deep v1.0.2-0.20181118220953-042da051cf31/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= github.com/go-test/deep v1.1.0 h1:WOcxcdHcvdgThNXjw0t76K42FXTU7HpNQWHpA2HHNlg= github.com/go-test/deep v1.1.0/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= @@ -833,8 +817,8 @@ github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXi github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= -github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= +github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= +github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= github.com/google/cel-go v0.20.1 h1:nDx9r8S3L4pE61eDdt8igGj8rf5kjYR3ILxWIpWNi84= github.com/google/cel-go v0.20.1/go.mod h1:kWcIzTsPX0zmQ+H3TirHstLLf9ep5QTsZBN9u4dOYLg= github.com/google/flatbuffers v24.3.25+incompatible h1:CX395cjN9Kke9mmalRoL3d81AtFUxJM+yDthflgJGkI= @@ -852,8 +836,6 @@ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= @@ -934,10 +916,8 @@ github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0/go.mod h1:igFoXX2ELCW06bol23DW github.com/h2non/filetype v1.0.5/go.mod h1:isekKqOuhMj+s/7r3rIeTErIRy4Rub5uBWHfvMusLMU= github.com/h2non/filetype v1.1.3 h1:FKkx9QbD7HR/zjK1Ia5XiBsq9zdLi5Kf3zGyFTAFkGg= github.com/h2non/filetype v1.1.3/go.mod h1:319b3zT68BvV+WRj7cwy856M2ehB3HqNOt6sy1HndBY= -github.com/hashicorp/consul/api v1.13.0/go.mod h1:ZlVrynguJKcYr54zGaDbaL3fOvKC9m72FhPvA8T35KQ= github.com/hashicorp/consul/api v1.30.0 h1:ArHVMMILb1nQv8vZSGIwwQd2gtc+oSQZ6CalyiyH2XQ= github.com/hashicorp/consul/api v1.30.0/go.mod h1:B2uGchvaXVW2JhFoS8nqTxMD5PBykr4ebY4JWHTTeLM= -github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms= github.com/hashicorp/consul/sdk v0.16.1 h1:V8TxTnImoPD5cj0U9Spl0TUxcytjcbbJeADFF07KdHg= github.com/hashicorp/consul/sdk v0.16.1/go.mod h1:fSXvwxB2hmh1FMZCNl6PwX0Q/1wdWtHJcZ7Ea5tns0s= github.com/hashicorp/cronexpr v1.1.2 h1:wG/ZYIKT+RT3QkOdgYc+xsKWVRgnxJ1OJtjjy84fJ9A= @@ -946,12 +926,8 @@ github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brv github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= -github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI= -github.com/hashicorp/go-hclog v0.8.0/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= -github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k= github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= @@ -964,21 +940,16 @@ github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHh github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/hashicorp/go-plugin v1.0.1/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY= github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= -github.com/hashicorp/go-retryablehttp v0.5.4/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= github.com/hashicorp/go-retryablehttp v0.7.7 h1:C8hUCYzor8PIfXHa4UrZkU4VvK8o9ISHxT2Q8+VepXU= github.com/hashicorp/go-retryablehttp v0.7.7/go.mod h1:pkQpWZeYWskR+D1tR2O5OcBFOxfA7DoAO6xtkuQnHTk= -github.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= -github.com/hashicorp/go-secure-stdlib/parseutil v0.1.7 h1:UpiO20jno/eV1eVZcxqWnUohyKRe1g8FPV/xH1s/2qs= -github.com/hashicorp/go-secure-stdlib/parseutil v0.1.7/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8= -github.com/hashicorp/go-secure-stdlib/strutil v0.1.1/go.mod h1:gKOamz3EwoIoJq7mlMIRBpVTAUn8qPCrEclOKKWhD3U= +github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 h1:iBt4Ew4XEGLfh6/bPk4rSYmuZJGizr6/x/AEizP0CQc= +github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8/go.mod h1:aiJI+PIApBRQG7FZTEBx5GiiX+HbOHilUdNxUZi4eV0= github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 h1:kes8mmyCpxJsI7FTwtzRqEy9CdjCtrXrXGuOpxEA7Ts= github.com/hashicorp/go-secure-stdlib/strutil v0.1.2/go.mod h1:Gou2R9+il93BqX25LAKCLuM+y9U2T4hlwvT1yprcna4= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= github.com/hashicorp/go-sockaddr v1.0.6 h1:RSG8rKU28VTUTvEKghe5gIhIQpv8evvNpnDEyqO4u9I= github.com/hashicorp/go-sockaddr v1.0.6/go.mod h1:uoUUmtwU7n9Dv3O4SNLeFvg0SxQ3lyjsj6+CCykpaxI= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= @@ -986,7 +957,6 @@ github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/b github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -1001,25 +971,18 @@ github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31 github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= -github.com/hashicorp/memberlist v0.3.0/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= github.com/hashicorp/memberlist v0.5.0 h1:EtYPN8DpAURiapus508I4n9CzHs2W+8NZGbmmR/prTM= github.com/hashicorp/memberlist v0.5.0/go.mod h1:yvyXLpo0QaGE59Y7hDTsTzDD25JYBZ4mHgHUZ8lrOI0= github.com/hashicorp/nomad/api v0.0.0-20240717122358-3d93bd3778f3 h1:fgVfQ4AC1avVOnu2cfms8VAiD8lUq3vWI8mTocOXN/w= github.com/hashicorp/nomad/api v0.0.0-20240717122358-3d93bd3778f3/go.mod h1:svtxn6QnrQ69P23VvIWMR34tg3vmwLz4UdUzm1dSCgE= -github.com/hashicorp/serf v0.9.6/go.mod h1:TXZNMjZQijwlDvp+r0b63xZ45H7JmCmgg4gpTwn9UV4= github.com/hashicorp/serf v0.10.1 h1:Z1H2J60yRKvfDYAOZLd2MU0ND4AH/WDz7xYHDWQsIPY= github.com/hashicorp/serf v0.10.1/go.mod h1:yL2t6BqATOLGc5HF7qbFkTfXoPIY0WZdWHfEvMqbG+4= -github.com/hashicorp/vault/api v1.0.4/go.mod h1:gDcqh3WGcR1cpF5AJz/B1UFheUEneMoIospckxBxk6Q= -github.com/hashicorp/vault/sdk v0.1.13/go.mod h1:B+hVj7TpuQY1Y/GPbCpffmgd+tSEwvhkWnjtSYCaS2M= -github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= -github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/hetznercloud/hcloud-go/v2 v2.10.2 h1:9gyTUPhfNbfbS40Spgij5mV5k37bOZgt8iHKCbfGs5I= github.com/hetznercloud/hcloud-go/v2 v2.10.2/go.mod h1:xQ+8KhIS62W0D78Dpi57jsufWh844gUw1az5OUvaeq8= github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= -github.com/hjson/hjson-go/v4 v4.0.0/go.mod h1:KaYt3bTw3zhBjYqnXkYywcYctk0A2nxeEFTse3rH13E= github.com/howeyc/gopass v0.0.0-20170109162249-bf9dde6d0d2c/go.mod h1:lADxMC39cJJqL93Duh1xhAs4I2Zs8mKS89XWXFGp9cs= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.5.0 h1:2ag3IFq9ZDANvthTwTiqSSZLjDc+BedvHPAp5tJy2TI= @@ -1075,7 +1038,6 @@ github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGw github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o= github.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY= -github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST4RZ4= github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc= @@ -1123,8 +1085,10 @@ github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IX github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/klauspost/pgzip v1.2.5 h1:qnWYvvKqedOF2ulHpMG72XQol4ILEJ8k2wwRl/Km8oE= github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= -github.com/knadh/koanf v1.5.0 h1:q2TSd/3Pyc/5yP9ldIrSdIz26MCcyNQzW0pEAugLPNs= -github.com/knadh/koanf v1.5.0/go.mod h1:Hgyjp4y8v44hpZtPzs7JZfRAW5AhN7KfZcwv1RYggDs= +github.com/knadh/koanf/maps v0.1.0 h1:fYqBfuNiqSu7xkSJDuRdRCyx/iVjyxVInCIIZS2BrdI= +github.com/knadh/koanf/maps v0.1.0/go.mod h1:npD/QZY3V6ghQDdcQzl1W4ICNVTkohC8E73eI2xW4yI= +github.com/knadh/koanf/providers/confmap v0.1.0-dev0 h1:ocRN64rGNrgf+UAPeFzFSfpZwdAzWEV5BUvn6i0PyUU= +github.com/knadh/koanf/providers/confmap v0.1.0-dev0/go.mod h1:9iCeyu+MqTHRPLNNMjNz3bxZ8XQBel1fAZ3ALZj51dA= github.com/knadh/koanf/v2 v2.1.2 h1:I2rtLRqXRy1p01m/utEtpZSSA6dcJbgGVuE27kW2PzQ= github.com/knadh/koanf/v2 v2.1.2/go.mod h1:Gphfaen0q1Fc1HTgJgSTC4oRX9R2R5ErYMZJy8fLJBo= github.com/knqyf263/go-apk-version v0.0.0-20200609155635-041fdbb8563f h1:GvCU5GXhHq+7LeOzx/haG7HSIZokl3/0GkoUFzsRJjg= @@ -1220,7 +1184,6 @@ github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovk github.com/mattn/go-ieproxy v0.0.1/go.mod h1:pYabZ6IHcRpFh7vIaLfK7rdcWgFEb3SFJ6/gNWuh88E= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= @@ -1250,27 +1213,19 @@ github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKju github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= github.com/miekg/dns v1.1.62 h1:cN8OuEF1/x5Rq6Np+h1epln8OiyPWV+lROx9LxcGgIQ= github.com/miekg/dns v1.1.62/go.mod h1:mvDlcItzm+br7MToIKqkglaGhlFMHJ9DTNNWONWXbNQ= -github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= -github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-testing-interface v0.0.0-20171004221916-a61a99592b77/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/go-testing-interface v1.14.1 h1:jrgshOhYAUVNMAJiKbEu7EqAwgJJ2JqpQmpLJOu07cU= github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/hashstructure/v2 v2.0.2 h1:vGKWl0YJqUNxE8d+h8f6NJLcCJrgbhC4NcD46KavDd4= github.com/mitchellh/hashstructure/v2 v2.0.2/go.mod h1:MG3aRVU/N29oo/V/IhBX8GR/zz4kQkprJgF2EVszyDE= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/mkrautz/goar v0.0.0-20150919110319-282caa8bd9da h1:Iu5QFXIMK/YrHJ0NgUnK0rqYTTyb0ldt/rqNenAj39U= @@ -1327,14 +1282,12 @@ github.com/ncw/swift v1.0.30/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ github.com/netsampler/goflow2 v1.3.3 h1:uheCMgWwbaHnVdsvc2bqbdQe93E73pVF77WGu/kPE7U= github.com/netsampler/goflow2 v1.3.3/go.mod h1:mUjr4ERDTtNUAVtf2EomWHmr6Xvz2N9DahhFkhNnFkQ= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/npillmayer/nestext v0.1.3/go.mod h1:h2lrijH8jpicr25dFY+oAJLyzlya6jhnuG+zWp9L0Uk= github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d h1:VhgPp6v9qf9Agr/56bj7Y/xa04UccTW04VP0Qed4vnQ= github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d/go.mod h1:YUTz3bUH2ZwIWBy3CJBeOBEugqcmXREj14T+iG/4k4U= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY= github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc= -github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/oklog/ulid/v2 v2.0.2 h1:r4fFzBm+bv0wNKNh5eXTwU7i85y5x+uwkxCUTNVQqLc= @@ -1526,7 +1479,6 @@ github.com/pborman/uuid v0.0.0-20180122190007-c65b2f87fee3/go.mod h1:VyrYX9gd7ir github.com/pborman/uuid v1.2.1 h1:+ZZIw58t/ozdjRaXh/3awHfmWRbzYxJoAdNJxe/3pvw= github.com/pborman/uuid v1.2.1/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= @@ -1534,7 +1486,6 @@ github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1GshSTtih8C2gDs04w8dReiOGXrGLNoY= github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM= -github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= @@ -1569,7 +1520,6 @@ github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3O github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= @@ -1613,7 +1563,6 @@ github.com/redis/go-redis/v9 v9.1.0 h1:137FnGdk+EQdCbye1FW+qOEcY5S+SpY9T0Niuqvtf github.com/redis/go-redis/v9 v9.1.0/go.mod h1:urWj3He21Dj5k4TK1y59xH8Uj6ATueP8AH1cY3lZl4c= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= -github.com/rhnvrm/simples3 v0.6.1/go.mod h1:Y+3vYm2V7Y4VijFoJHHTrja6OgPrJ2cBti8dPGkC3sA= github.com/richardartoul/molecule v1.0.1-0.20240531184615-7ca0df43c0b3 h1:4+LEVOB87y175cLJC/mbsgKmoDOjrBldtXvioEy96WY= github.com/richardartoul/molecule v1.0.1-0.20240531184615-7ca0df43c0b3/go.mod h1:vl5+MqJ1nBINuSsUI2mGgH79UweUT/B5Fy8857PqyyI= github.com/rickar/props v1.0.0 h1:3C3j+wF2/XbQ/sCGRK8DkCLwuRvzqToMvDzmdxHwCsg= @@ -1641,7 +1590,6 @@ github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWR github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkBk= github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= github.com/safchain/baloum v0.0.0-20241120122234-f22c9bd19f3b h1:ZeznXGJOGRRGKuU7GEUmNobE4swH0PbMqukrQS3XCLE= @@ -1695,8 +1643,8 @@ github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrf github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/skeema/knownhosts v1.2.1 h1:SHWdIUa82uGZz+F+47k8SY4QhhI291cXCpopT1lK2AQ= -github.com/skeema/knownhosts v1.2.1/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= +github.com/skeema/knownhosts v1.2.2 h1:Iug2P4fLmDw9f41PB6thxUkNUkJzB5i+1/exaj40L3A= +github.com/skeema/knownhosts v1.2.2/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= github.com/skydive-project/go-debouncer v1.0.0 h1:cqU19PyN7WXsnSlMTANvnHws6lGcbVOH2aDQzwe6qbk= github.com/skydive-project/go-debouncer v1.0.0/go.mod h1:7pK+5HBlYCD8W2cXhvMRsMsdWelDEPfpbE6PwSlDX68= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -1935,15 +1883,12 @@ github.com/zorkian/go-datadog-api v2.30.0+incompatible/go.mod h1:PkXwHX9CUQa/FpB go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.11 h1:yGEzV1wPz2yVCLsD8ZAiGHhHVlczyC9d1rP43/VCRJ0= go.etcd.io/bbolt v1.3.11/go.mod h1:dksAq7YMXoljX0xu6VF5DMZGbhYYoLUalEiSySYAS4I= -go.etcd.io/etcd/api/v3 v3.5.4/go.mod h1:5GB2vv4A4AOn3yk7MftYGHkUfGtDHnEraIjym4dYz5A= go.etcd.io/etcd/api/v3 v3.6.0-alpha.0 h1:se+XckWlVTTfwjZSsAZJ2zGPzmIMq3j7fKBCmHoB9UA= go.etcd.io/etcd/api/v3 v3.6.0-alpha.0/go.mod h1:z13pg39zewDLZeXIKeM0xELOeFKcqjLocfwl5M820+w= -go.etcd.io/etcd/client/pkg/v3 v3.5.4/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/pkg/v3 v3.6.0-alpha.0.0.20220522111935-c3bc4116dcd1 h1:s2hb83bYqeVi1UGkKXDko6CKJNElvqqGecv+q9qy0TM= go.etcd.io/etcd/client/pkg/v3 v3.6.0-alpha.0.0.20220522111935-c3bc4116dcd1/go.mod h1:Vl/FkH40bHqmBFwhr8WVKtV47neyts36zl1voccRq8s= go.etcd.io/etcd/client/v2 v2.306.0-alpha.0 h1:9VRJ698EFIMfjOQtcjKMM7CWXOIxp9R4I8JA1mk+WT4= go.etcd.io/etcd/client/v2 v2.306.0-alpha.0/go.mod h1:eW78BCfOzS1HJgTNzDrb2E6xV1p6kqlpLpKkz7ErzCs= -go.etcd.io/etcd/client/v3 v3.5.4/go.mod h1:ZaRkVgBZC+L+dLCjTcF1hRXpgZXQPOvnA/Ak/gq3kiY= go.etcd.io/etcd/client/v3 v3.6.0-alpha.0 h1:hHaJ8CvTPJ9iv7xPz3G0gxt3csEqJW8evgty/kYICwo= go.etcd.io/etcd/client/v3 v3.6.0-alpha.0/go.mod h1:a9JuChoQBDnw7WclHYBYCtTOIC12Wwj+Fw0LX4TI/Gs= go.etcd.io/etcd/pkg/v3 v3.6.0-alpha.0 h1:cV/VsaYde/tcc2G9aHN5DQwx6CtUsWSEW4UqYzXuyyk= @@ -2170,7 +2115,6 @@ go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN8 go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.14.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= @@ -2222,8 +2166,8 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EH golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= -golang.org/x/exp/typeparams v0.0.0-20230307190834-24139beb5833 h1:jWGQJV4niP+CCmFW9ekjA9Zx8vYORzOUH2/Nl5WPuLQ= -golang.org/x/exp/typeparams v0.0.0-20230307190834-24139beb5833/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= +golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f h1:phY1HzDcf18Aq9A8KkmRtY9WvOFIxN8wgfvy6Zm1DV8= +golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -2353,11 +2297,9 @@ golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181128092732-4ed8d59d0b35/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190129075346-302c3dd5f1cc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -2373,7 +2315,6 @@ golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191112214154-59a1497f0cea/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -2383,7 +2324,6 @@ golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -2409,7 +2349,6 @@ golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -2463,7 +2402,6 @@ golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -2541,7 +2479,6 @@ golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= @@ -2587,7 +2524,6 @@ google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAs google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -2619,19 +2555,16 @@ google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200806141610-86f49bd18e98/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 h1:BulPr26Jqjnd4eYDVe+YvyR7Yc2vJGkO5/0UxD0/jZU= google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:hL97c3SYopEHblzpxRL4lSs523++l8DYxGM1FQiYmb4= google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= -google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= @@ -2645,7 +2578,6 @@ google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k= google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= @@ -2674,7 +2606,6 @@ gopkg.in/DataDog/dd-trace-go.v1 v1.69.1/go.mod h1:U9AOeBHNAL95JXcd/SPf4a7O5GNeF/ gopkg.in/Knetic/govaluate.v3 v3.0.0 h1:18mUyIt4ZlRlFZAAfVetz4/rzlJs9yhN+U02F4u1AOc= gopkg.in/Knetic/govaluate.v3 v3.0.0/go.mod h1:csKLBORsPbafmSCGTEh3U7Ozmsuq8ZSIlKk1bcqph0E= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -2697,7 +2628,6 @@ gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= @@ -2718,6 +2648,7 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/zorkian/go-datadog-api.v2 v2.30.0 h1:umQdVO0Ytx+kYadhuJNjFtDgIsIEBnKrOTvNuu8ClKI= gopkg.in/zorkian/go-datadog-api.v2 v2.30.0/go.mod h1:kx0CSMRpzEZfx/nFH62GLU4stZjparh/BRpM89t4XCQ= +gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= @@ -2728,8 +2659,8 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.4.5 h1:YGD4H+SuIOOqsyoLOpZDWcieM28W47/zRO7f+9V3nvo= -honnef.co/go/tools v0.4.5/go.mod h1:GUV+uIBCLpdf0/v6UhHHG/yzI/z6qPskBeQCjcNB96k= +honnef.co/go/tools v0.4.7 h1:9MDAWxMoSnB6QoSqiVr7P5mtkT9pOc1kSxchzPCnqJs= +honnef.co/go/tools v0.4.7/go.mod h1:+rnGS1THNh8zMwnd2oVOTL9QF6vmfyG6ZXBULae2uc0= k8s.io/api v0.21.1/go.mod h1:FstGROTmsSHBarKc8bylzXih8BLNYTiS3TZcsoEDg2s= k8s.io/api v0.31.2 h1:3wLBbL5Uom/8Zy98GRPXpJ254nEFpl+hwndmk9RwmL0= k8s.io/api v0.31.2/go.mod h1:bWmGvrGPssSK1ljmLzd3pwCQ9MgoTsRCuK35u6SygUk= diff --git a/go.work b/go.work new file mode 100644 index 0000000000000..5bf3423403122 --- /dev/null +++ b/go.work @@ -0,0 +1,129 @@ +go 1.22.8 + +use ( + . + comp/api/api/def + comp/api/authtoken + comp/core/config + comp/core/flare/builder + comp/core/flare/types + comp/core/hostname/hostnameinterface + comp/core/log/def + comp/core/log/impl + comp/core/log/impl-trace + comp/core/log/mock + comp/core/secrets + comp/core/status + comp/core/status/statusimpl + comp/core/tagger/tags + comp/core/tagger/types + comp/core/tagger/utils + comp/core/telemetry + comp/def + comp/forwarder/defaultforwarder + comp/forwarder/orchestrator/orchestratorinterface + comp/logs/agent/config + comp/netflow/payload + comp/otelcol/collector-contrib/def + comp/otelcol/collector-contrib/impl + comp/otelcol/converter/def + comp/otelcol/converter/impl + comp/otelcol/ddflareextension/def + comp/otelcol/ddflareextension/impl + comp/otelcol/logsagentpipeline + comp/otelcol/logsagentpipeline/logsagentpipelineimpl + comp/otelcol/otlp/components/exporter/datadogexporter + comp/otelcol/otlp/components/exporter/logsagentexporter + comp/otelcol/otlp/components/exporter/serializerexporter + comp/otelcol/otlp/components/metricsclient + comp/otelcol/otlp/components/processor/infraattributesprocessor + comp/otelcol/otlp/components/statsprocessor + comp/otelcol/otlp/testutil + comp/serializer/compression + comp/trace/agent/def + comp/trace/compression/def + comp/trace/compression/impl-gzip + comp/trace/compression/impl-zstd + internal/tools + internal/tools/independent-lint + internal/tools/modformatter + internal/tools/modparser + internal/tools/proto + pkg/aggregator/ckey + pkg/api + pkg/collector/check/defaults + pkg/config/env + pkg/config/mock + pkg/config/model + pkg/config/nodetreemodel + pkg/config/remote + pkg/config/setup + pkg/config/structure + pkg/config/teeconfig + pkg/config/utils + pkg/errors + pkg/gohai + pkg/linters/components/pkgconfigusage + pkg/logs/auditor + pkg/logs/client + pkg/logs/diagnostic + pkg/logs/message + pkg/logs/metrics + pkg/logs/pipeline + pkg/logs/processor + pkg/logs/sds + pkg/logs/sender + pkg/logs/sources + pkg/logs/status/statusinterface + pkg/logs/status/utils + pkg/logs/util/testutils + pkg/metrics + pkg/networkdevice/profile + pkg/obfuscate + pkg/orchestrator/model + pkg/process/util/api + pkg/proto + pkg/remoteconfig/state + pkg/security/secl + pkg/security/seclwin + pkg/serializer + pkg/status/health + pkg/tagger/types + pkg/tagset + pkg/telemetry + pkg/trace + pkg/trace/stats/oteltest + pkg/util/backoff + pkg/util/buf + pkg/util/cache + pkg/util/cgroups + pkg/util/common + pkg/util/containers/image + pkg/util/defaultpaths + pkg/util/executable + pkg/util/filesystem + pkg/util/flavor + pkg/util/fxutil + pkg/util/grpc + pkg/util/hostname/validate + pkg/util/http + pkg/util/json + pkg/util/log + pkg/util/log/setup + pkg/util/optional + pkg/util/pointer + pkg/util/scrubber + pkg/util/sort + pkg/util/startstop + pkg/util/statstracker + pkg/util/system + pkg/util/system/socket + pkg/util/testutil + pkg/util/utilizationtracker + pkg/util/uuid + pkg/util/winutil + pkg/version + test/fakeintake + test/new-e2e + test/otel +) diff --git a/internal/tools/go.mod b/internal/tools/go.mod index 1ff612a893c22..8df888a7954d4 100644 --- a/internal/tools/go.mod +++ b/internal/tools/go.mod @@ -18,7 +18,7 @@ require ( require ( 4d63.com/gocheckcompilerdirectives v1.2.1 // indirect 4d63.com/gochecknoglobals v0.2.1 // indirect - dario.cat/mergo v1.0.0 // indirect + dario.cat/mergo v1.0.1 // indirect github.com/4meepo/tagalign v1.3.4 // indirect github.com/Abirdcfly/dupword v0.0.14 // indirect github.com/Antonboom/errname v0.1.13 // indirect @@ -28,10 +28,11 @@ require ( github.com/Crocmagnon/fatcontext v0.2.2 // indirect github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 // indirect github.com/GaijinEntertainment/go-exhaustruct/v3 v3.2.0 // indirect - github.com/Masterminds/semver/v3 v3.2.1 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Masterminds/semver/v3 v3.3.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/OpenPeeDeeP/depguard/v2 v2.2.0 // indirect - github.com/ProtonMail/go-crypto v1.0.0 // indirect + github.com/ProtonMail/go-crypto v1.1.0-alpha.0 // indirect + github.com/alecthomas/assert/v2 v2.3.0 // indirect github.com/alecthomas/go-check-sumtype v0.1.4 // indirect github.com/alexkohler/nakedret/v2 v2.0.4 // indirect github.com/alexkohler/prealloc v1.0.0 // indirect @@ -50,16 +51,16 @@ require ( github.com/butuzov/mirror v1.2.0 // indirect github.com/catenacyber/perfsprint v0.7.1 // indirect github.com/ccojocar/zxcvbn-go v1.0.2 // indirect - github.com/cespare/xxhash/v2 v2.1.2 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/charithe/durationcheck v0.0.10 // indirect github.com/chavacava/garif v0.1.0 // indirect github.com/chigopher/pathlib v0.19.1 // indirect github.com/ckaznocha/intrange v0.1.2 // indirect github.com/cloudflare/circl v1.3.7 // indirect github.com/curioswitch/go-reassign v0.2.0 // indirect - github.com/cyphar/filepath-securejoin v0.2.4 // indirect + github.com/cyphar/filepath-securejoin v0.3.4 // indirect github.com/daixiang0/gci v0.13.4 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/denis-tingaikin/go-header v0.5.0 // indirect github.com/dgryski/go-minhash v0.0.0-20170608043002-7fe510aff544 // indirect github.com/dnephin/pflag v1.0.7 // indirect @@ -67,10 +68,10 @@ require ( github.com/emicklei/dot v0.15.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/ettle/strcase v0.2.0 // indirect - github.com/fatih/color v1.17.0 // indirect + github.com/fatih/color v1.18.0 // indirect github.com/fatih/structtag v1.2.0 // indirect github.com/firefart/nonamedreturns v1.0.5 // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/fzipp/gocyclo v0.6.0 // indirect github.com/ghostiam/protogetter v0.3.6 // indirect github.com/go-critic/go-critic v0.11.4 // indirect @@ -84,13 +85,12 @@ require ( github.com/go-toolsmith/astp v1.1.0 // indirect github.com/go-toolsmith/strparse v1.1.0 // indirect github.com/go-toolsmith/typep v1.1.0 // indirect - github.com/go-viper/mapstructure/v2 v2.0.0 // indirect + github.com/go-viper/mapstructure/v2 v2.2.1 // indirect github.com/go-xmlfmt/xmlfmt v1.1.2 // indirect github.com/gobwas/glob v0.2.3 // indirect github.com/gofrs/flock v0.8.1 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/mock v1.6.0 // indirect - github.com/golang/protobuf v1.5.3 // indirect github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a // indirect github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e // indirect github.com/golangci/misspell v0.6.0 // indirect @@ -107,11 +107,11 @@ require ( github.com/gostaticanalysis/forcetypeassert v0.1.0 // indirect github.com/gostaticanalysis/nilerr v0.1.1 // indirect github.com/hashicorp/go-version v1.7.0 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hexops/gotextdiff v1.0.3 // indirect github.com/hhatto/gorst v0.0.0-20181029133204-ca9f730cac5b // indirect - github.com/huandu/xstrings v1.4.0 // indirect - github.com/iancoleman/strcase v0.2.0 // indirect + github.com/huandu/xstrings v1.5.0 // indirect + github.com/iancoleman/strcase v0.3.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/jdkato/prose v1.1.0 // indirect @@ -126,6 +126,7 @@ require ( github.com/kevinburke/ssh_config v1.2.0 // indirect github.com/kisielk/errcheck v1.7.0 // indirect github.com/kkHAIKE/contextcheck v1.1.5 // indirect + github.com/klauspost/compress v1.17.11 // indirect github.com/kulti/thelper v0.6.3 // indirect github.com/kunwardeep/paralleltest v1.0.10 // indirect github.com/kyoh86/exportloopref v0.1.11 // indirect @@ -141,37 +142,43 @@ require ( github.com/matoous/godox v0.0.0-20230222163458-006bad1f9d26 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-runewidth v0.0.9 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mattn/go-zglob v0.0.2-0.20191112051448-a8912a37f9e7 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect github.com/mgechev/revive v1.3.7 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect - github.com/mitchellh/mapstructure v1.5.0 // indirect - github.com/montanaflynn/stats v0.0.0-20151014174947-eeaced052adb // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect + github.com/montanaflynn/stats v0.7.0 // indirect github.com/moricho/tparallel v0.3.1 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/nakabonne/nestif v0.3.1 // indirect github.com/nishanths/exhaustive v0.12.0 // indirect github.com/nishanths/predeclared v0.2.2 // indirect github.com/nunnatsa/ginkgolinter v0.16.2 // indirect github.com/olekukonko/tablewriter v0.0.5 // indirect + github.com/onsi/ginkgo/v2 v2.20.2 // indirect + github.com/onsi/gomega v1.34.1 // indirect github.com/pelletier/go-toml/v2 v2.2.2 // indirect github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/polyfloyd/go-errorlint v1.5.2 // indirect - github.com/prometheus/client_golang v1.12.1 // indirect - github.com/prometheus/client_model v0.2.0 // indirect - github.com/prometheus/common v0.32.1 // indirect - github.com/prometheus/procfs v0.7.3 // indirect + github.com/prometheus/client_golang v1.20.5 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.60.1 // indirect + github.com/prometheus/procfs v0.15.1 // indirect github.com/quasilyte/go-ruleguard v0.4.2 // indirect github.com/quasilyte/go-ruleguard/dsl v0.3.22 // indirect github.com/quasilyte/gogrep v0.5.0 // indirect github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect - github.com/rs/zerolog v1.29.0 // indirect + github.com/rivo/uniseg v0.4.7 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + github.com/rs/zerolog v1.33.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/ryancurrah/gomodguard v1.3.2 // indirect github.com/ryanrolds/sqlclosecheck v0.5.1 // indirect + github.com/sagikazarmark/locafero v0.4.0 // indirect + github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/sanposhiho/wastedassign/v2 v2.0.7 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect github.com/sashamelentyev/interfacebloat v1.1.0 // indirect @@ -185,18 +192,18 @@ require ( github.com/sivchari/tenv v1.7.1 // indirect github.com/skeema/knownhosts v1.2.2 // indirect github.com/sonatard/noctx v0.0.2 // indirect + github.com/sourcegraph/conc v0.3.0 // indirect github.com/sourcegraph/go-diff v0.7.0 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.1.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/spf13/viper v1.15.0 // indirect + github.com/spf13/viper v1.19.0 // indirect github.com/ssgreg/nlreturn/v2 v2.2.1 // indirect github.com/stbenjam/no-sprintf-host-port v0.1.1 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/stretchr/testify v1.10.0 // indirect - github.com/subosito/gotenv v1.4.2 // indirect + github.com/subosito/gotenv v1.6.0 // indirect github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c // indirect github.com/tdakkota/asciicheck v0.2.0 // indirect github.com/tetafro/godot v1.4.16 // indirect @@ -215,10 +222,9 @@ require ( gitlab.com/bosi/decorder v0.4.2 // indirect go-simpler.org/musttag v0.12.2 // indirect go-simpler.org/sloglint v0.7.1 // indirect - go.uber.org/atomic v1.9.0 // indirect - go.uber.org/automaxprocs v1.5.3 // indirect - go.uber.org/multierr v1.8.0 // indirect - go.uber.org/zap v1.24.0 // indirect + go.uber.org/automaxprocs v1.6.0 // indirect + go.uber.org/multierr v1.11.0 // indirect + go.uber.org/zap v1.27.0 // indirect golang.org/x/crypto v0.29.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f // indirect @@ -229,13 +235,14 @@ require ( golang.org/x/term v0.26.0 // indirect golang.org/x/text v0.20.0 // indirect golang.org/x/tools v0.27.0 // indirect - gonum.org/v1/gonum v0.7.0 // indirect - google.golang.org/protobuf v1.33.0 // indirect + gonum.org/v1/gonum v0.15.1 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/neurosnap/sentences.v1 v1.0.6 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect + gotest.tools/v3 v3.5.1 // indirect honnef.co/go/tools v0.4.7 // indirect mvdan.cc/gofumpt v0.6.0 // indirect mvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f // indirect diff --git a/internal/tools/go.sum b/internal/tools/go.sum index 9a7b4402f18d2..b14a8994d503e 100644 --- a/internal/tools/go.sum +++ b/internal/tools/go.sum @@ -3,41 +3,8 @@ 4d63.com/gochecknoglobals v0.2.1 h1:1eiorGsgHOFOuoOiJDy2psSrQbRdIHrlge0IJIkUgDc= 4d63.com/gochecknoglobals v0.2.1/go.mod h1:KRE8wtJB3CXCsb1xy421JfTHIIbmT3U5ruxw2Qu8fSU= cloud.google.com/go v0.0.0-20170206221025-ce650573d812/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= -dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= +dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/4meepo/tagalign v1.3.4 h1:P51VcvBnf04YkHzjfclN6BbsopfJR5rxs1n+5zHt+w8= github.com/4meepo/tagalign v1.3.4/go.mod h1:M+pnkHH2vG8+qhE5bVc/zeP7HS/j910Fwa9TUSyZVI0= github.com/Abirdcfly/dupword v0.0.14 h1:3U4ulkc8EUo+CaT105/GJ1BQwtgyj6+VaBVbAX11Ba8= @@ -48,7 +15,6 @@ github.com/Antonboom/nilnil v0.1.9 h1:eKFMejSxPSA9eLSensFmjW2XTgTwJMjZ8hUHtV4s/S github.com/Antonboom/nilnil v0.1.9/go.mod h1:iGe2rYwCq5/Me1khrysB4nwI7swQvjclR8/YRPl5ihQ= github.com/Antonboom/testifylint v1.3.1 h1:Uam4q1Q+2b6H7gvk9RQFw6jyVDdpzIirFOOrbs14eG4= github.com/Antonboom/testifylint v1.3.1/go.mod h1:NV0hTlteCkViPW9mSR4wEMfwp+Hs1T3dY60bkvSfhpM= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= @@ -59,30 +25,25 @@ github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5H github.com/GaijinEntertainment/go-exhaustruct/v3 v3.2.0 h1:sATXp1x6/axKxz2Gjxv8MALP0bXaNRfQinEwyfMcx8c= github.com/GaijinEntertainment/go-exhaustruct/v3 v3.2.0/go.mod h1:Nl76DrGNJTA1KJ0LePKBw/vznBX1EHbAZX8mwjR82nI= github.com/GoogleCloudPlatform/cloudsql-proxy v0.0.0-20190129172621-c8b1d7a94ddf/go.mod h1:aJ4qN3TfrelA6NZ6AXsXRfmEVaYin3EDbSPJrKS8OXo= -github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0= -github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= +github.com/Masterminds/semver/v3 v3.3.1 h1:QtNSWtVZ3nBfk8mAOu/B6v7FMJ+NHTIgUPi7rj+4nv4= +github.com/Masterminds/semver/v3 v3.3.1/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OpenPeeDeeP/depguard/v2 v2.2.0 h1:vDfG60vDtIuf0MEOhmLlLLSzqaRM8EMcgJPdp74zmpA= github.com/OpenPeeDeeP/depguard/v2 v2.2.0/go.mod h1:CIzddKRvLBC4Au5aYP/i3nyaWQ+ClszLIuVocRiCYFQ= -github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78= -github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= +github.com/ProtonMail/go-crypto v1.1.0-alpha.0 h1:nHGfwXmFvJrSR9xu8qL7BkO4DqTHXE9N5vPhgY2I+j0= +github.com/ProtonMail/go-crypto v1.1.0-alpha.0/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= github.com/aclements/go-gg v0.0.0-20170118225347-6dbb4e4fefb0/go.mod h1:55qNq4vcpkIuHowELi5C8e+1yUHtoLoOUR9QU5j7Tes= github.com/aclements/go-moremath v0.0.0-20161014184102-0ff62e0875ff/go.mod h1:idZL3yvz4kzx1dsBOAC+oYv6L92P1oFEhUXUB1A/lwQ= github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= -github.com/alecthomas/assert/v2 v2.2.2 h1:Z/iVC0xZfWTaFNE6bA3z07T86hd45Xe2eLt6WVy2bbk= -github.com/alecthomas/assert/v2 v2.2.2/go.mod h1:pXcQ2Asjp247dahGEmsZ6ru0UVwnkhktn7S0bBDLxvQ= +github.com/alecthomas/assert/v2 v2.3.0 h1:mAsH2wmvjsuvyBvAmCtm7zFsBlb8mIHx5ySLVdDZXL0= +github.com/alecthomas/assert/v2 v2.3.0/go.mod h1:pXcQ2Asjp247dahGEmsZ6ru0UVwnkhktn7S0bBDLxvQ= github.com/alecthomas/go-check-sumtype v0.1.4 h1:WCvlB3l5Vq5dZQTFmodqL2g68uHiSwwlWcT5a2FGK0c= github.com/alecthomas/go-check-sumtype v0.1.4/go.mod h1:WyYPfhfkdhyrdaligV6svFopZV8Lqdzn5pyVBaV6jhQ= github.com/alecthomas/repr v0.2.0 h1:HAzS41CIzNW5syS8Mf9UwXhNH1J9aix/BvDRf1Ml2Yk= github.com/alecthomas/repr v0.2.0/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/alexkohler/nakedret/v2 v2.0.4 h1:yZuKmjqGi0pSmjGpOC016LtPJysIL0WEUiaXW5SUnNg= github.com/alexkohler/nakedret/v2 v2.0.4/go.mod h1:bF5i0zF2Wo2o4X4USt9ntUWve6JbFv02Ff4vlkmS/VU= github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pOcUuw= @@ -98,10 +59,6 @@ github.com/ashanbrown/forbidigo v1.6.0 h1:D3aewfM37Yb3pxHujIPSpTf6oQk9sc9WZi8ger github.com/ashanbrown/forbidigo v1.6.0/go.mod h1:Y8j9jy9ZYAEHXdu723cUlraTqbzjKF1MUyfOKL+AjcU= github.com/ashanbrown/makezero v1.1.1 h1:iCQ87C0V0vSyO+M9E/FZYbu65auqH0lnsOkf5FcB28s= github.com/ashanbrown/makezero v1.1.1/go.mod h1:i1bJLCRSCHOcOa9Y6MyF2FTfMZMFdHvxKHxgO5Z1axI= -github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= -github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bitfield/gotestdox v0.2.1 h1:Zj8IMLAO5/oiAKoMmtN96eyFiPZraJRTH2p0zDgtxc0= @@ -122,43 +79,35 @@ github.com/butuzov/ireturn v0.3.0 h1:hTjMqWw3y5JC3kpnC5vXmFJAWI/m31jaCYQqzkS6PL0 github.com/butuzov/ireturn v0.3.0/go.mod h1:A09nIiwiqzN/IoVo9ogpa0Hzi9fex1kd9PSD6edP5ZA= github.com/butuzov/mirror v1.2.0 h1:9YVK1qIjNspaqWutSv8gsge2e/Xpq1eqEkslEUHy5cs= github.com/butuzov/mirror v1.2.0/go.mod h1:DqZZDtzm42wIAIyHXeN8W/qb1EPlb9Qn/if9icBOpdQ= -github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= github.com/catenacyber/perfsprint v0.7.1 h1:PGW5G/Kxn+YrN04cRAZKC+ZuvlVwolYMrIyyTJ/rMmc= github.com/catenacyber/perfsprint v0.7.1/go.mod h1:/wclWYompEyjUD2FuIIDVKNkqz7IgBIWXIH3V0Zol50= github.com/ccojocar/zxcvbn-go v1.0.2 h1:na/czXU8RrhXO4EZme6eQJLR4PzcGsahsBOAwU6I3Vg= github.com/ccojocar/zxcvbn-go v1.0.2/go.mod h1:g1qkXtUSvHP8lhHp5GrSmTz6uWALGRMQdw6Qnz/hi60= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= -github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/charithe/durationcheck v0.0.10 h1:wgw73BiocdBDQPik+zcEoBG/ob8uyBHf2iyoHGPf5w4= github.com/charithe/durationcheck v0.0.10/go.mod h1:bCWXb7gYRysD1CU3C+u4ceO49LoGOY1C1L6uouGNreQ= github.com/chavacava/garif v0.1.0 h1:2JHa3hbYf5D9dsgseMKAmc/MZ109otzgNFk5s87H9Pc= github.com/chavacava/garif v0.1.0/go.mod h1:XMyYCkEL58DF0oyW4qDjjnPWONs2HBqYKI+UIPD+Gww= github.com/chigopher/pathlib v0.19.1 h1:RoLlUJc0CqBGwq239cilyhxPNLXTK+HXoASGyGznx5A= github.com/chigopher/pathlib v0.19.1/go.mod h1:tzC1dZLW8o33UQpWkNkhvPwL5n4yyFRFm/jL1YGWFvY= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/ckaznocha/intrange v0.1.2 h1:3Y4JAxcMntgb/wABQ6e8Q8leMd26JbX2790lIss9MTI= github.com/ckaznocha/intrange v0.1.2/go.mod h1:RWffCw/vKBwHeOEwWdCikAtY0q4gGt8VhJZEEA5n+RE= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/curioswitch/go-reassign v0.2.0 h1:G9UZyOcpk/d7Gd6mqYgd8XYWFMw/znxwGDUstnC9DIo= github.com/curioswitch/go-reassign v0.2.0/go.mod h1:x6OpXuWvgfQaMGks2BZybTngWjT84hqJfKoO8Tt/Roc= -github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= -github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= +github.com/cyphar/filepath-securejoin v0.3.4 h1:VBWugsJh2ZxJmLFSM06/0qzQyiQX2Qs0ViKrUAcqdZ8= +github.com/cyphar/filepath-securejoin v0.3.4/go.mod h1:8s/MCNJREmFK0H02MF6Ihv1nakJe4L/w3WZLHNkvlYM= github.com/daixiang0/gci v0.13.4 h1:61UGkmpoAcxHM2hhNkZEf5SzwQtWJXTSws7jaPyqwlw= github.com/daixiang0/gci v0.13.4/go.mod h1:12etP2OniiIdP4q+kjUGrC/rUagga7ODbqsom5Eo5Yk= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/denis-tingaikin/go-header v0.5.0 h1:SRdnP5ZKvcO9KKRP1KJrhFR3RrlGuD+42t4429eC9k8= github.com/denis-tingaikin/go-header v0.5.0/go.mod h1:mMenU5bWrok6Wl2UsZjy+1okegmwQ3UgWl4V1D8gjlY= github.com/dgryski/go-metro v0.0.0-20180109044635-280f6062b5bc h1:8WFBn63wegobsYAX0YjD+8suexZDga5CctH4CCTx2+8= @@ -178,15 +127,11 @@ github.com/emicklei/dot v0.15.0/go.mod h1:DeV7GvQtIw4h2u73RKBkkFdvVAz0D9fzeJrgPW github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/ettle/strcase v0.2.0 h1:fGNiVF21fHXpX1niBgk0aROov1LagYsOwV/xqKDKR/Q= github.com/ettle/strcase v0.2.0/go.mod h1:DajmHElDSaX76ITe3/VHVyMin4LWSJN5Z909Wp+ED1A= github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= -github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= -github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= github.com/firefart/nonamedreturns v1.0.5 h1:tM+Me2ZaXs8tfdDw3X6DOX++wMCOqzYUho6tUTYIdRA= @@ -198,8 +143,8 @@ github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7z github.com/frapposelli/wwhrd v0.4.0 h1:Vn4hjT/tHNeOnTxFBO0ys1NBH8/Inxqqi1Q0eJmCImo= github.com/frapposelli/wwhrd v0.4.0/go.mod h1:Bzwvr3hY1yoBsBbIMkckeHUI6jf1cLRueaaMxZ3N9FY= github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo= github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= github.com/ghostiam/protogetter v0.3.6 h1:R7qEWaSgFCsy20yYHNIJsU9ZOb8TziSRRxuAOTVKeOk= @@ -223,19 +168,9 @@ github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod github.com/go-git/go-git/v5 v5.1.0/go.mod h1:ZKfuPUoY1ZqIG4QG9BDBh3G4gLM5zvPuSJAozQrZuyM= github.com/go-git/go-git/v5 v5.12.0 h1:7Md+ndsjrzZxbddRDZjF14qK+NN56sy6wkqaVrjZtys= github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXYjuz9i5OEY= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/go-toolsmith/astcast v1.1.0 h1:+JN9xZV1A+Re+95pgnMgDboWNVnIMMQXwfBwLRPgSC8= @@ -257,8 +192,8 @@ github.com/go-toolsmith/strparse v1.1.0 h1:GAioeZUK9TGxnLS+qfdqNbA4z0SSm5zVNtCQi github.com/go-toolsmith/strparse v1.1.0/go.mod h1:7ksGy58fsaQkGQlY8WVoBFNyEPMGuJin1rfoPS4lBSQ= github.com/go-toolsmith/typep v1.1.0 h1:fIRYDyF+JywLfqzyhdiHzRop/GQDxxNhLGQ6gFUNHus= github.com/go-toolsmith/typep v1.1.0/go.mod h1:fVIw+7zjdsMxDA3ITWnH1yOiw1rnTQKCsF/sk2H/qig= -github.com/go-viper/mapstructure/v2 v2.0.0 h1:dhn8MZ1gZ0mzeodTG3jt5Vj/o87xZKuNAprG2mQfMfc= -github.com/go-viper/mapstructure/v2 v2.0.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= +github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/go-xmlfmt/xmlfmt v1.1.2 h1:Nea7b4icn8s57fTx1M5AI4qQT5HEM3rVUO8MuE6g80U= github.com/go-xmlfmt/xmlfmt v1.1.2/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= @@ -266,41 +201,12 @@ github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJA github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a h1:w8hkcTqaFpzKqonE9uMCefW1WDie15eSP/4MssdenaM= github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk= github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e h1:ULcKCDV1LOZPFxGZaA6TlQbiM3J2GCPnkx/bGF6sX/g= @@ -322,14 +228,7 @@ github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+ github.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks= github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A= github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= @@ -339,26 +238,13 @@ github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/licensecheck v0.3.1 h1:QoxgoDkaeC4nFrtGN1jV7IPmDCHFNIVh54e5hSt6sPs= github.com/google/licensecheck v0.3.1/go.mod h1:ORkR35t/JjW+emNKtfJDII0zlciG9JgbT7SmsohlHmY= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 h1:k7nVchz72niMH6YLQNvHSdIE7iqsQxK1P41mySCvssg= -github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 h1:5iH8iuqE5apketRbSFBy+X1V0o+l+8NF1avt4HWl7cA= +github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/googleapis/gax-go v0.0.0-20161107002406-da06d194a00e/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/gordonklaus/ineffassign v0.1.0 h1:y2Gd/9I7MdY1oEIt+n+rowjBNDcLQq3RsH5hwJd0f9s= github.com/gordonklaus/ineffassign v0.1.0/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0= github.com/gostaticanalysis/analysisutil v0.7.1 h1:ZMCjoue3DtDWQ5WyU16YbjbQEQ3VuzwxALrpYd+HeKk= @@ -378,19 +264,16 @@ github.com/goware/modvendor v0.5.0/go.mod h1:rtogeSlPLJT6MlypJyGp24o/vnHvF+ebCoT github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= github.com/hhatto/gorst v0.0.0-20181029133204-ca9f730cac5b h1:Jdu2tbAxkRouSILp2EbposIb8h4gO+2QuZEn3d9sKAc= github.com/hhatto/gorst v0.0.0-20181029133204-ca9f730cac5b/go.mod h1:HmaZGXHdSwQh1jnUlBGN2BeEYOHACLVGzYOXCbsLvxY= -github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU= -github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= -github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0= -github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/huandu/xstrings v1.5.0 h1:2ag3IFq9ZDANvthTwTiqSSZLjDc+BedvHPAp5tJy2TI= +github.com/huandu/xstrings v1.5.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI= +github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= @@ -411,16 +294,7 @@ github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af h1:KA9B github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0= github.com/jjti/go-spancheck v0.6.1 h1:ZK/wE5Kyi1VX3PJpUO2oEgeoI4FWOUm7Shb2Gbv5obI= github.com/jjti/go-spancheck v0.6.1/go.mod h1:vF1QkOO159prdo6mHRxak2CpzDpHAfKiPUDP/NeRnX8= -github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jteeuwen/go-bindata v3.0.8-0.20180305030458-6025e8de665b+incompatible/go.mod h1:JVvhzYOiGBnFSYRyV00iY8q7/0PThjIYav1p9h5dmKs= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/julz/importas v0.1.0 h1:F78HnrsjY3cR7j0etXy5+TU1Zuy7Xt08X/1aJnH5xXY= github.com/julz/importas v0.1.0/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSXO0DV0= github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= @@ -431,12 +305,10 @@ github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4 github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kisielk/errcheck v1.7.0 h1:+SbscKmWJ5mOK/bO1zS60F5I9WwZDWOfRsC4RwfwRV0= github.com/kisielk/errcheck v1.7.0/go.mod h1:1kLL+jV4e+CFfueBmI1dSK2ADDyQnlrnrY/FqKluHJQ= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kkHAIKE/contextcheck v1.1.5 h1:CdnJh63tcDe53vG+RebdpdXJTc9atMgGqdx8LXxiilg= github.com/kkHAIKE/contextcheck v1.1.5/go.mod h1:O930cpht4xb1YQpK+1+AgoM3mFsvxr7uyFptcnWTYUA= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= @@ -472,39 +344,32 @@ github.com/matoous/godox v0.0.0-20230222163458-006bad1f9d26 h1:gWg6ZQ4JhDfJPqlo2 github.com/matoous/godox v0.0.0-20230222163458-006bad1f9d26/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s= github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE= github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= -github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.14.5/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI= github.com/mattn/go-zglob v0.0.2-0.20191112051448-a8912a37f9e7 h1:6HgbBMgs3hI9y1/MYG0r9j6daUubUskZNsEW4fkWR/k= github.com/mattn/go-zglob v0.0.2-0.20191112051448-a8912a37f9e7/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo= -github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mgechev/revive v1.3.7 h1:502QY0vQGe9KtYJ9FpxMz9rL+Fc/P13CI5POL4uHCcE= github.com/mgechev/revive v1.3.7/go.mod h1:RJ16jUbF0OWC3co/+XTxmFNgEpUPwnnA0BRllX2aDNA= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= -github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/montanaflynn/stats v0.0.0-20151014174947-eeaced052adb h1:bsjNADsjHq0gjU7KO7zwoX5k3HtFdf6TDzB3ncl5iUs= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/montanaflynn/stats v0.0.0-20151014174947-eeaced052adb/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= +github.com/montanaflynn/stats v0.7.0 h1:r3y12KyNxj/Sb/iOE46ws+3mS1+MZca1wlHQFPsY/JU= +github.com/montanaflynn/stats v0.7.0/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= github.com/moricho/tparallel v0.3.1 h1:fQKD4U1wRMAYNngDonW5XupoB/ZGJHdpzrWqgyg9krA= github.com/moricho/tparallel v0.3.1/go.mod h1:leENX2cUv7Sv2qDgdi0D0fCftN8fRC67Bcn8pqzeYNI= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/nakabonne/nestif v0.3.1 h1:wm28nZjhQY5HyYPx+weN3Q65k6ilSBxDb8v5S81B81U= github.com/nakabonne/nestif v0.3.1/go.mod h1:9EtoZochLn5iUprVDmDjqGKPofoUEBL8U4Ngq6aY7OE= github.com/neurosnap/sentences v1.0.6 h1:iBVUivNtlwGkYsJblWV8GGVFmXzZzak907Ci8aA0VTE= @@ -518,10 +383,10 @@ github.com/nunnatsa/ginkgolinter v0.16.2 h1:8iLqHIZvN4fTLDC0Ke9tbSZVcyVHoBs0HIbn github.com/nunnatsa/ginkgolinter v0.16.2/go.mod h1:4tWRinDN1FeJgU+iJANW/kz7xKN5nYRAOfJDQUS9dOQ= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= -github.com/onsi/ginkgo/v2 v2.17.3 h1:oJcvKpIb7/8uLpDDtnQuf18xVnwKp8DTD7DQ6gTd/MU= -github.com/onsi/ginkgo/v2 v2.17.3/go.mod h1:nP2DPOQoNsQmsVyv5rDA8JkXQoCs6goXIvr/PRJ1eCc= -github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= -github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= +github.com/onsi/ginkgo/v2 v2.20.2 h1:7NVCeyIWROIAheY21RLS+3j2bb52W0W82tkberYytp4= +github.com/onsi/ginkgo/v2 v2.20.2/go.mod h1:K9gyxPIlb+aIvnZ8bd9Ak+YP18w3APlR+5coaZoE2ag= +github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= +github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw= github.com/otiai10/copy v1.14.0 h1:dCI/t1iTdYGtkvCuBG2BgR6KZa83PTclw4U5n2wAllU= github.com/otiai10/copy v1.14.0/go.mod h1:ECfuL02W+/FkTWZWgQqXPWZgW9oeKCSQ5qVfSc4qc4w= @@ -533,38 +398,24 @@ github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6 github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/polyfloyd/go-errorlint v1.5.2 h1:SJhVik3Umsjh7mte1vE0fVZ5T1gznasQG3PV7U5xFdA= github.com/polyfloyd/go-errorlint v1.5.2/go.mod h1:sH1QC1pxxi0fFecsVIzBmxtrgd9IF/SkJpA6wqyKAJs= github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.12.1 h1:ZiaPsmm9uiBeaSMRznKsCDNtPCS0T3JVDGF+06gjBzk= -github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4= -github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= -github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/quasilyte/go-ruleguard v0.4.2 h1:htXcXDK6/rO12kiTHKfHuqR4kr3Y4M0J0rOL6CH/BYs= github.com/quasilyte/go-ruleguard v0.4.2/go.mod h1:GJLgqsLeo4qgavUoL8JeGFNS7qcisx3awV/w9eWTmNI= github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE= @@ -575,13 +426,15 @@ github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 h1:TCg2WBOl github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0= github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 h1:M8mH9eK4OUR4lu7Gd+PU1fV2/qnDNfzT635KRSObncs= github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567/go.mod h1:DWNGW8A4Y+GyBgPuaQJuWiy0XYftx4Xm/y5Jqk9I6VQ= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= -github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.29.0 h1:Zes4hju04hjbvkVkOhdl2HpZa+0PmVwigmo8XoORE5w= -github.com/rs/zerolog v1.29.0/go.mod h1:NILgTygv/Uej1ra5XxGf82ZFSLk58MFGAUS2o6usyD0= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= +github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= +github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -589,6 +442,10 @@ github.com/ryancurrah/gomodguard v1.3.2 h1:CuG27ulzEB1Gu5Dk5gP8PFxSOZ3ptSdP5iI/3 github.com/ryancurrah/gomodguard v1.3.2/go.mod h1:LqdemiFomEjcxOqirbQCb3JFvSxH2JUYMerTFd3sF2o= github.com/ryanrolds/sqlclosecheck v0.5.1 h1:dibWW826u0P8jNLsLN+En7+RqWWTYrjCB9fJfSfdyCU= github.com/ryanrolds/sqlclosecheck v0.5.1/go.mod h1:2g3dUjoS6AL4huFdv6wn55WpLIDjY7ZgUR4J8HOO/XQ= +github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= +github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= +github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= +github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= github.com/sanposhiho/wastedassign/v2 v2.0.7 h1:J+6nrY4VW+gC9xFzUc+XjPD3g3wF3je/NsJFwFK7Uxc= github.com/sanposhiho/wastedassign/v2 v2.0.7/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI= github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 h1:lZUw3E0/J3roVtGQ+SCrUrg3ON6NgVqpn3+iol9aGu4= @@ -609,9 +466,6 @@ github.com/shogo82148/go-shuffle v0.0.0-20170808115208-59829097ff3b/go.mod h1:2h github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= github.com/shurcooL/sanitized_anchor_name v0.0.0-20170918181015-86672fcb3f95/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= @@ -623,21 +477,21 @@ github.com/skeema/knownhosts v1.2.2 h1:Iug2P4fLmDw9f41PB6thxUkNUkJzB5i+1/exaj40L github.com/skeema/knownhosts v1.2.2/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= github.com/sonatard/noctx v0.0.2 h1:L7Dz4De2zDQhW8S0t+KUjY0MAQJd6SgVwhzNIc4ok00= github.com/sonatard/noctx v0.0.2/go.mod h1:kzFz+CzWSjQ2OzIm46uJZoXuBpa2+0y3T36U18dWqIo= +github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= +github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= github.com/sourcegraph/go-diff v0.7.0 h1:9uLlrd5T46OXs5qpp8L/MTltk0zikUGi0sNNyCpA8G0= github.com/sourcegraph/go-diff v0.7.0/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs= github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.15.0 h1:js3yy885G8xwJa6iOISGFwd+qlUo5AvyXb7CiihdtiU= -github.com/spf13/viper v1.15.0/go.mod h1:fFcTBJxvhhzSJiZy8n+PeW6t8l+KeT/uTARa0jHOQLA= +github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= +github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= github.com/ssgreg/nlreturn/v2 v2.2.1 h1:X4XDI7jstt3ySqGU86YGAURbxw3oTDPK9sPEi6YEwQ0= github.com/ssgreg/nlreturn/v2 v2.2.1/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I= github.com/stbenjam/no-sprintf-host-port v0.1.1 h1:tYugd/yrm1O0dV+ThCbaKZh195Dfm07ysF0U6JQXczc= @@ -645,7 +499,6 @@ github.com/stbenjam/no-sprintf-host-port v0.1.1/go.mod h1:TLhvtIvONRzdmkFiio4O8L github.com/stormcat24/protodep v0.1.8 h1:FOycjjkjZiastf21aRoCjtoVdhsoBE8mZ0RvY6AHqFE= github.com/stormcat24/protodep v0.1.8/go.mod h1:6OoSZD5GGomKfmH1LvfJxNIRvYhewFXH5+eNv8h4wOM= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= @@ -663,8 +516,8 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8= -github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= +github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= +github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c h1:+aPplBwWcHBo6q9xrfWdMrT9o4kltkmmvpemgIjep/8= github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c/go.mod h1:SbErYREK7xXdsRiigaQiQkI9McGRzYMvlKYaP3Nimdk= github.com/tdakkota/asciicheck v0.2.0 h1:o8jvnUANo0qXtnslk2d3nMKTFNlOnJjRrNcj0j9qkHM= @@ -705,7 +558,6 @@ github.com/yeya24/promlinter v0.3.0/go.mod h1:cDfJQQYv9uYciW60QT0eeHlFodotkYZlL+ github.com/ykadowak/zerologlint v0.1.5 h1:Gy/fMz1dFQN9JZTPjv1hxEk+sRWm05row04Yoolgdiw= github.com/ykadowak/zerologlint v0.1.5/go.mod h1:KaUskqF3e/v59oPmdq1U1DnKcuHokl2/K1U4pmIELKg= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= @@ -719,52 +571,30 @@ go-simpler.org/musttag v0.12.2 h1:J7lRc2ysXOq7eM8rwaTYnNrHd5JwjppzB6mScysB2Cs= go-simpler.org/musttag v0.12.2/go.mod h1:uN1DVIasMTQKk6XSik7yrJoEysGtR2GRqvWnI9S7TYM= go-simpler.org/sloglint v0.7.1 h1:qlGLiqHbN5islOxjeLXoPtUdZXb669RW+BDQ+xOSNoU= go-simpler.org/sloglint v0.7.1/go.mod h1:OlaVDRh/FKKd4X4sIMbsz8st97vomydceL146Fthh/c= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= -go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/automaxprocs v1.5.3 h1:kWazyxZUrS3Gs4qUpbwo5kEIMGe/DAvi5Z4tl2NW4j8= -go.uber.org/automaxprocs v1.5.3/go.mod h1:eRbA25aqJrxAbsLO0xy5jVwPt7FQnRgjW+efnwa1WM0= -go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= -go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8= -go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= -go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= -go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs= +go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= +go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= -golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= @@ -774,24 +604,11 @@ golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f/go.mod h1:AbB0pIl golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mobile v0.0.0-20201217150744-e6ae53a27f4f h1:kgfVkAEEQXXQ0qc6dH7n6y37NAYmTFmz0YRwrRjgxKw= golang.org/x/mobile v0.0.0-20201217150744-e6ae53a27f4f/go.mod h1:skQtrUTUwhdJvXM/2KKJzY8pDgNr9I/FOMqDVRPBUS4= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.1.1-0.20191209134235-331c550502dd/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -808,37 +625,15 @@ golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= @@ -846,69 +641,30 @@ golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= golang.org/x/oauth2 v0.0.0-20170207211851-4464e7848382/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/perf v0.0.0-20210220033136-40a54f11e909 h1:rWw0Gj4DMl/2otJ8CnfTcwOWkpROAc6qhXXoMrYOCgo= golang.org/x/perf v0.0.0-20210220033136-40a54f11e909/go.mod h1:KRSrLY7jerMEa0Ih7gBheQ3FYDiSx6liMnniX1o3j2g= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -917,28 +673,23 @@ golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211105183446-c75c47738b0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220702020025-31831981b65f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -947,14 +698,11 @@ golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= golang.org/x/term v0.26.0 h1:WEQa6V3Gja/BhNxg540hBip/kkaYtRg3cxg4oXSw4AU= golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -962,64 +710,23 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190321232350-e250d351ecad/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190910044552-dd2b5c81c578/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117012304-6edc0a871e69/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= golang.org/x/tools v0.0.0-20200324003944-a576cf524670/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200329025819-fd4102a86c65/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200724022722-7017fd6b1305/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200820010801-b793a1359eac/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20201023174141-c8cfbd0f21e6/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1-0.20210205202024-ef80cdb6ec6d/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= @@ -1042,133 +749,44 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.7.0 h1:Hdks0L0hgznZLG9nzXb8vZ0rRvqNvAcgAp84y7Mwkgw= gonum.org/v1/gonum v0.7.0/go.mod h1:L02bwd0sqlsvRv41G7wGWFCsVNZFv/k1xzGIxeANHGM= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0 h1:OE9mWmgKkjJyEmDAAtGMPjXu+YNeGvK9VTSHY6+Qihc= +gonum.org/v1/gonum v0.15.1 h1:FNy7N6OUZVUaWG9pTiD+jlhdQ3lMP+/LcTpJ6+a8sQ0= +gonum.org/v1/gonum v0.15.1/go.mod h1:eZTZuRFrzu5pcyjN5wJhcIhnUdNijYxX1T2IcrOGY0o= gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= google.golang.org/api v0.0.0-20170206182103-3d017632ea10/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/grpc v0.0.0-20170208002647-2a6bf6142e96/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/neurosnap/sentences.v1 v1.0.6 h1:v7ElyP020iEZQONyLld3fHILHWOPs+ntzuQTNPkul8E= gopkg.in/neurosnap/sentences.v1 v1.0.6/go.mod h1:YlK+SN+fLQZj+kY3r8DkGDhDr91+S3JmTb5LSxFRQo0= gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/gotestsum v1.11.0 h1:A88/QWw7acMjZH1dMe6KZFhw32odUOIjCiAU/Q4n3mI= gotest.tools/gotestsum v1.11.0/go.mod h1:cUOKgFEvWAP0twchmiOvdzX0SBZX0UI58bGRpRIu4xs= -gotest.tools/v3 v3.3.0 h1:MfDY1b1/0xN1CyMlQDac0ziEy9zJQd9CXBRRDHw2jJo= gotest.tools/v3 v3.3.0/go.mod h1:Mcr9QNxkg0uMvy/YElmo4SpXgJKWgQvYrT7Kw5RzJ1A= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= +gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= honnef.co/go/tools v0.4.7 h1:9MDAWxMoSnB6QoSqiVr7P5mtkT9pOc1kSxchzPCnqJs= honnef.co/go/tools v0.4.7/go.mod h1:+rnGS1THNh8zMwnd2oVOTL9QF6vmfyG6ZXBULae2uc0= mvdan.cc/gofumpt v0.6.0 h1:G3QvahNDmpD+Aek/bNOLrFR2XC6ZAdo62dZu65gmwGo= mvdan.cc/gofumpt v0.6.0/go.mod h1:4L0wf+kgIPZtcCWXynNS2e6bhmj73umwnuXSZarixzA= mvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f h1:lMpcwN6GxNbWtbpI1+xzFLSW8XzX0u72NttUGVFjO3U= mvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f/go.mod h1:RSLa7mKKCNeTTMHBw5Hsy2rfJmd6O2ivt9Dw9ZqCQpQ= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/internal/tools/modparser/go.mod b/internal/tools/modparser/go.mod index 9ff9bcc206498..b1884cc02bfb0 100644 --- a/internal/tools/modparser/go.mod +++ b/internal/tools/modparser/go.mod @@ -8,7 +8,10 @@ require ( ) require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/internal/tools/modparser/go.sum b/internal/tools/modparser/go.sum index 0f285622b01a1..47f4bea5f89d5 100644 --- a/internal/tools/modparser/go.sum +++ b/internal/tools/modparser/go.sum @@ -1,12 +1,25 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/internal/tools/proto/go.mod b/internal/tools/proto/go.mod index 751177b71c40e..a45a52a83d05e 100644 --- a/internal/tools/proto/go.mod +++ b/internal/tools/proto/go.mod @@ -4,26 +4,30 @@ go 1.22.0 require ( github.com/favadi/protoc-go-inject-tag v1.4.0 - github.com/golang/mock v1.5.0 + github.com/golang/mock v1.6.0 github.com/golang/protobuf v1.5.4 - github.com/grpc-ecosystem/grpc-gateway v1.12.2 - github.com/planetscale/vtprotobuf v0.4.0 - github.com/tinylib/msgp v1.1.6 - google.golang.org/grpc v1.24.0 + github.com/grpc-ecosystem/grpc-gateway v1.16.0 + github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 + github.com/tinylib/msgp v1.2.4 + google.golang.org/grpc v1.67.1 ) require ( github.com/ghodss/yaml v1.0.0 // indirect - github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b // indirect - github.com/philhofer/fwd v1.1.2 // indirect + github.com/golang/glog v1.2.2 // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect golang.org/x/mod v0.22.0 // indirect golang.org/x/net v0.31.0 // indirect golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect golang.org/x/tools v0.27.0 // indirect - google.golang.org/genproto v0.0.0-20190927181202-20e1ac93f88c // indirect - google.golang.org/protobuf v1.33.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect + google.golang.org/protobuf v1.35.2 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/internal/tools/proto/go.sum b/internal/tools/proto/go.sum index 00b5d1be1fdae..b4f392a410b6f 100644 --- a/internal/tools/proto/go.sum +++ b/internal/tools/proto/go.sum @@ -1,40 +1,57 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/favadi/protoc-go-inject-tag v1.4.0 h1:K3KXxbgRw5WT4f43LbglARGz/8jVsDOS7uMjG4oNvXY= github.com/favadi/protoc-go-inject-tag v1.4.0/go.mod h1:AZ+PK+QDKUOLlBRG0rYiKkUX5Hw7+7GTFzlU99GFSbQ= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/glog v1.2.2 h1:1+mZ9upx1Dh6FmUTFR1naJ77miKiXgALjWOZ3NVFPmY= +github.com/golang/glog v1.2.2/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.5.0 h1:jlYHihg//f7RRwuPfptm04yp4s7O6Kw8EZiVYIGcH0g= -github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= +github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/grpc-ecosystem/grpc-gateway v1.12.2 h1:D0EVSTwQoQOyfY35QNSuPJA4jpZRtkoGYWQMB7XNg5o= -github.com/grpc-ecosystem/grpc-gateway v1.12.2/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/philhofer/fwd v1.1.1/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= -github.com/philhofer/fwd v1.1.2 h1:bnDivRJ1EWPjUIRXV5KfORO897HTbpFAQddBdE8t7Gw= -github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2tUTP0= -github.com/planetscale/vtprotobuf v0.4.0 h1:NEI+g4woRaAZgeZ3sAvbtyvMBRjIv5kE7EWYQ8m4JwY= -github.com/planetscale/vtprotobuf v0.4.0/go.mod h1:wm1N3qk9G/4+VM1WhpkLbvY/d8+0PbwYYpP5P5VhTks= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1GshSTtih8C2gDs04w8dReiOGXrGLNoY= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/tinylib/msgp v1.1.6 h1:i+SbKraHhnrf9M5MYmvQhFnbLhAXSDWF8WWsuyRdocw= -github.com/tinylib/msgp v1.1.6/go.mod h1:75BAfg2hauQhs3qedfdDZmWAPcFMAvJE5b9rGOMufyw= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU= +github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -42,32 +59,39 @@ golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= @@ -78,7 +102,7 @@ golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3 golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20201022035929-9cf592e881e9/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -88,20 +112,26 @@ golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8T google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190927181202-20e1ac93f88c h1:hrpEMCZ2O7DR5gC1n2AJGVhrwiEjOi35+jxtIuZpTMo= -google.golang.org/genproto v0.0.0-20190927181202-20e1ac93f88c/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.24.0 h1:vb/1TCsVn3DcJlQ0Gs1yB1pKI6Do2/QNwxdKqmc/b0s= -google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= -google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= +google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/aggregator/ckey/go.mod b/pkg/aggregator/ckey/go.mod index b56ec53b6793f..f7d37d9215ae2 100644 --- a/pkg/aggregator/ckey/go.mod +++ b/pkg/aggregator/ckey/go.mod @@ -15,7 +15,7 @@ require ( ) require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/aggregator/ckey/go.sum b/pkg/aggregator/ckey/go.sum index 61bd0aafe2d5f..fb1b209fc83bc 100644 --- a/pkg/aggregator/ckey/go.sum +++ b/pkg/aggregator/ckey/go.sum @@ -1,12 +1,19 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/twmb/murmur3 v1.1.8 h1:8Yt9taO/WN3l08xErzjeschgZU2QSrwm1kclYq+0aRg= github.com/twmb/murmur3 v1.1.8/go.mod h1:Qq/R7NUyOfr65zD+6Q5IHKsJLwP7exErjN6lyyq3OSQ= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/api/go.mod b/pkg/api/go.mod index 564ddda94e787..b30cc5d081999 100644 --- a/pkg/api/go.mod +++ b/pkg/api/go.mod @@ -69,43 +69,40 @@ require ( github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect - go.uber.org/fx v1.22.2 // indirect + go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/api/go.sum b/pkg/api/go.sum index a29a7509778c0..2ad0ffbf9169a 100644 --- a/pkg/api/go.sum +++ b/pkg/api/go.sum @@ -1,10 +1,9 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -20,8 +19,8 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -33,10 +32,11 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -44,19 +44,20 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -69,18 +70,17 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -88,8 +88,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -113,69 +114,73 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -188,31 +193,27 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -220,27 +221,27 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -263,8 +264,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -283,8 +282,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -297,9 +294,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -317,8 +312,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -331,13 +324,14 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -349,7 +343,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/collector/corechecks/oracle/test-utils/run-tests.sh b/pkg/collector/corechecks/oracle/test-utils/run-tests.sh index 39978baeb1b0b..2ba8e39107aad 100755 --- a/pkg/collector/corechecks/oracle/test-utils/run-tests.sh +++ b/pkg/collector/corechecks/oracle/test-utils/run-tests.sh @@ -38,5 +38,5 @@ do go clean -testcache # Tests are running sequentially for the predictability of the memory leak test - gotestsum --jsonfile module_test_output.json --format pkgname --packages=./pkg/collector/corechecks/oracle/... -- -mod=mod -vet=off --tags=oracle_test,oracle,test + gotestsum --jsonfile module_test_output.json --format pkgname --packages=./pkg/collector/corechecks/oracle/... -- -mod=readonly -vet=off --tags=oracle_test,oracle,test done diff --git a/pkg/config/env/go.mod b/pkg/config/env/go.mod index 1b8b190d06565..7188be93ca23d 100644 --- a/pkg/config/env/go.mod +++ b/pkg/config/env/go.mod @@ -21,32 +21,29 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.4.7 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/shirou/gopsutil/v3 v3.23.9 // indirect - github.com/spf13/afero v1.1.2 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect + github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect - github.com/spf13/pflag v1.0.3 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect + github.com/spf13/pflag v1.0.5 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/config/env/go.sum b/pkg/config/env/go.sum index 9188458276b35..2e74083b10f1d 100644 --- a/pkg/config/env/go.sum +++ b/pkg/config/env/go.sum @@ -1,10 +1,9 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -30,23 +29,26 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= -github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -63,8 +65,6 @@ github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -76,8 +76,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= @@ -97,12 +98,13 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= @@ -112,14 +114,16 @@ github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwd github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= @@ -140,43 +144,37 @@ github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40T github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/shirou/gopsutil/v3 v3.23.9 h1:ZI5bWVeu2ep4/DIxB4U9okeYJ7zp/QLTO4auRb/ty/E= -github.com/shirou/gopsutil/v3 v3.23.9/go.mod h1:x/NWSb71eMcjFIO0vhyGW5nZ7oSIgVjrCnADckb85GA= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= +github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -184,8 +182,8 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= @@ -207,8 +205,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -227,8 +223,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -241,9 +235,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -261,8 +253,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -278,8 +268,9 @@ google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -291,7 +282,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/config/mock/go.mod b/pkg/config/mock/go.mod index d027b1ccacdaf..041266bf69dff 100644 --- a/pkg/config/mock/go.mod +++ b/pkg/config/mock/go.mod @@ -53,37 +53,34 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/config/mock/go.sum b/pkg/config/mock/go.sum index e430d7f027344..8e9185a2c429b 100644 --- a/pkg/config/mock/go.sum +++ b/pkg/config/mock/go.sum @@ -1,10 +1,9 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -20,8 +19,8 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -34,8 +33,9 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -43,19 +43,20 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -68,18 +69,17 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -87,8 +87,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -112,68 +113,72 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -186,31 +191,27 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -218,27 +219,27 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= @@ -259,8 +260,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -279,8 +278,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -293,9 +290,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -313,8 +308,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -327,13 +320,14 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -345,7 +339,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/config/model/go.mod b/pkg/config/model/go.mod index 3ac77b920f8ee..27acfdc300362 100644 --- a/pkg/config/model/go.mod +++ b/pkg/config/model/go.mod @@ -20,17 +20,17 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.4.7 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/spf13/afero v1.1.2 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect - github.com/spf13/pflag v1.0.3 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect + github.com/spf13/pflag v1.0.5 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect diff --git a/pkg/config/model/go.sum b/pkg/config/model/go.sum index 5ce9e24cba406..ef76baba5c97d 100644 --- a/pkg/config/model/go.sum +++ b/pkg/config/model/go.sum @@ -1,5 +1,4 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= @@ -28,16 +27,18 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= -github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -70,8 +71,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= @@ -89,11 +91,13 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= @@ -103,12 +107,14 @@ github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwd github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= @@ -129,23 +135,26 @@ github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40T github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= +github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -242,8 +251,9 @@ google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= diff --git a/pkg/config/nodetreemodel/go.mod b/pkg/config/nodetreemodel/go.mod index c51f9361c60b6..89e820fbd8172 100644 --- a/pkg/config/nodetreemodel/go.mod +++ b/pkg/config/nodetreemodel/go.mod @@ -26,16 +26,16 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.4.7 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect - github.com/spf13/pflag v1.0.3 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect + github.com/spf13/pflag v1.0.5 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/config/nodetreemodel/go.sum b/pkg/config/nodetreemodel/go.sum index 1211d26367b59..594839f68ca17 100644 --- a/pkg/config/nodetreemodel/go.sum +++ b/pkg/config/nodetreemodel/go.sum @@ -1,5 +1,4 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/cast v1.8.0 h1:uooY8bMzq+cjgiNP1VTquCWve5emgk8fRspZojJwQa8= github.com/DataDog/cast v1.8.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= @@ -31,16 +30,18 @@ github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7 github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= -github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -74,8 +75,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= @@ -93,11 +95,13 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= @@ -107,13 +111,15 @@ github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwd github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= @@ -134,8 +140,9 @@ github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40T github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -145,10 +152,12 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -245,8 +254,9 @@ google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= diff --git a/pkg/config/remote/go.mod b/pkg/config/remote/go.mod index 2c972c2f7493e..a9197ba15261f 100644 --- a/pkg/config/remote/go.mod +++ b/pkg/config/remote/go.mod @@ -46,25 +46,25 @@ require ( github.com/DataDog/datadog-agent/pkg/config/mock v0.59.0 github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 github.com/DataDog/datadog-agent/pkg/proto v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.56.0-rc.3 + github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.57.0 github.com/DataDog/datadog-agent/pkg/util/backoff v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/grpc v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/http v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/DataDog/datadog-agent/pkg/util/uuid v0.56.0-rc.3 github.com/Masterminds/semver v1.5.0 - github.com/benbjohnson/clock v1.3.0 + github.com/benbjohnson/clock v1.3.5 github.com/pkg/errors v0.9.1 - github.com/secure-systems-lab/go-securesystemslib v0.7.0 + github.com/secure-systems-lab/go-securesystemslib v0.8.0 github.com/stretchr/testify v1.10.0 - go.etcd.io/bbolt v1.3.7 + go.etcd.io/bbolt v1.3.11 go.uber.org/atomic v1.11.0 - google.golang.org/protobuf v1.33.0 - gopkg.in/DataDog/dd-trace-go.v1 v1.67.0 + google.golang.org/protobuf v1.35.2 + gopkg.in/DataDog/dd-trace-go.v1 v1.69.1 ) require ( - github.com/DataDog/appsec-internal-go v1.7.0 // indirect + github.com/DataDog/appsec-internal-go v1.9.0 // indirect github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/api v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.59.0 // indirect @@ -86,34 +86,38 @@ require ( github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/datadog-go/v5 v5.5.0 // indirect - github.com/DataDog/go-libddwaf/v3 v3.3.0 // indirect - github.com/DataDog/go-sqllexer v0.0.16 // indirect - github.com/DataDog/sketches-go v1.4.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/DataDog/go-libddwaf/v3 v3.5.1 // indirect + github.com/DataDog/go-sqllexer v0.0.17 // indirect + github.com/DataDog/sketches-go v1.4.6 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect - github.com/ebitengine/purego v0.6.0-alpha.5 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/google/uuid v1.5.0 // indirect + github.com/eapache/queue/v2 v2.0.0-20230407133247-75960ed334e4 // indirect + github.com/ebitengine/purego v0.8.1 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect + github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect + github.com/hashicorp/go-sockaddr v1.0.6 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect github.com/outcaste-io/ristretto v0.2.3 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/rogpeppe/go-internal v1.10.0 // indirect - github.com/shirou/gopsutil/v3 v3.24.1 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/ryanuber/go-glob v1.0.0 // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/time v0.8.0 // indirect - golang.org/x/tools v0.27.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect + modernc.org/sqlite v1.34.1 // indirect ) require ( @@ -122,29 +126,29 @@ require ( github.com/DataDog/viper v1.13.5 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/golang/protobuf v1.5.4 // indirect - github.com/grpc-ecosystem/go-grpc-middleware v1.2.0 // indirect + github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/mitchellh/mapstructure v1.5.0 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/philhofer/fwd v1.1.2 // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/objx v0.5.2 // indirect - github.com/tinylib/msgp v1.1.8 // indirect + github.com/tinylib/msgp v1.2.4 // indirect golang.org/x/net v0.31.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f // indirect - google.golang.org/grpc v1.59.0 + google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect + google.golang.org/grpc v1.67.1 gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/config/remote/go.sum b/pkg/config/remote/go.sum index 3cd90e3c78269..a4a1511f86996 100644 --- a/pkg/config/remote/go.sum +++ b/pkg/config/remote/go.sum @@ -1,33 +1,31 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.110.10 h1:LXy9GEO+timppncPIAZoOj3l58LIU9k+kn48AN7IO3Y= -cloud.google.com/go/compute v1.23.3 h1:6sVlXXBmbd7jNX0Ipq0trII3e4n1/MsADLK6a+aiVlk= -cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= -cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= -cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= +cloud.google.com/go v0.115.1 h1:Jo0SM9cQnSkYfp44+v+NQXHpcHqlnRJk2qxh6yvxxxQ= +cloud.google.com/go/compute v1.28.0 h1:OPtBxMcheSS+DWfci803qvPly3d4w7Eu5ztKBcFfzwk= +cloud.google.com/go/compute/metadata v0.5.2 h1:UxK4uu/Tn+I3p2dYWTfiX4wva7aYlKixAHn3fyqngqo= +cloud.google.com/go/compute/metadata v0.5.2/go.mod h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/appsec-internal-go v1.7.0 h1:iKRNLih83dJeVya3IoUfK+6HLD/hQsIbyBlfvLmAeb0= -github.com/DataDog/appsec-internal-go v1.7.0/go.mod h1:wW0cRfWBo4C044jHGwYiyh5moQV2x0AhnwqMuiX7O/g= +github.com/DataDog/appsec-internal-go v1.9.0 h1:cGOneFsg0JTRzWl5U2+og5dbtyW3N8XaYwc5nXe39Vw= +github.com/DataDog/appsec-internal-go v1.9.0/go.mod h1:wW0cRfWBo4C044jHGwYiyh5moQV2x0AhnwqMuiX7O/g= github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU= github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw= -github.com/DataDog/go-libddwaf/v3 v3.3.0 h1:jS72fuQpFgJZEdEJDmHJCPAgNTEMZoz1EUvimPUOiJ4= -github.com/DataDog/go-libddwaf/v3 v3.3.0/go.mod h1:Bz/0JkpGf689mzbUjKJeheJINqsyyhM8p9PDuHdK2Ec= -github.com/DataDog/go-sqllexer v0.0.16 h1:RoSUMS6MECyB3gTUIdydzXwK5NhEhv6GMJkS7ptsgRA= -github.com/DataDog/go-sqllexer v0.0.16/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc= +github.com/DataDog/go-libddwaf/v3 v3.5.1 h1:GWA4ln4DlLxiXm+X7HA/oj0ZLcdCwOS81KQitegRTyY= +github.com/DataDog/go-libddwaf/v3 v3.5.1/go.mod h1:n98d9nZ1gzenRSk53wz8l6d34ikxS+hs62A31Fqmyi4= +github.com/DataDog/go-sqllexer v0.0.17 h1:u47fJAVg/+5DA74ZW3w0Qu+3qXHd3GtnA8ZBYixdPrM= +github.com/DataDog/go-sqllexer v0.0.17/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc= github.com/DataDog/go-tuf v1.1.0-0.5.2 h1:4CagiIekonLSfL8GMHRHcHudo1fQnxELS9g4tiAupQ4= github.com/DataDog/go-tuf v1.1.0-0.5.2/go.mod h1:zBcq6f654iVqmkk8n2Cx81E1JnNTMOAx1UEO/wZR+P0= github.com/DataDog/gostackparse v0.7.0 h1:i7dLkXHvYzHV308hnkvVGDL3BR4FWl7IsXNPz/IGQh4= github.com/DataDog/gostackparse v0.7.0/go.mod h1:lTfqcJKqS9KnXQGnyQMCugq3u1FP6UZMfWR0aitKFMM= -github.com/DataDog/sketches-go v1.4.5 h1:ki7VfeNz7IcNafq7yI/j5U/YCkO3LJiMDtXz9OMQbyE= -github.com/DataDog/sketches-go v1.4.5/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= +github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I= +github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -36,8 +34,9 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= -github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o= +github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -45,8 +44,8 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -64,17 +63,17 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 h1:tdlZCpZ/P9DhczCTSixgIKmwPv6+wP5DGjqLYw5SUiA= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= +github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= github.com/eapache/queue/v2 v2.0.0-20230407133247-75960ed334e4 h1:8EXxF+tCLqaVk8AOC29zl2mnhQjwyLxxOTuhUazWRsg= github.com/eapache/queue/v2 v2.0.0-20230407133247-75960ed334e4/go.mod h1:I5sHm0Y0T1u5YjlyqC5GVArM7aNZRUYtTjmJ8mPJFds= -github.com/ebitengine/purego v0.6.0-alpha.5 h1:EYID3JOAdmQ4SNZYJHu9V6IqOeRQDBYxqKAg9PyoHFY= -github.com/ebitengine/purego v0.6.0-alpha.5/go.mod h1:ah1In8AOtksoNK6yk5z1HTJeUkC1Ez4Wk2idgGslMwQ= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -82,25 +81,27 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/glebarez/go-sqlite v1.22.0 h1:uAcMJhaA6r3LHMTFgP0SifzgXg46yJkgxqyuyec+ruQ= -github.com/glebarez/go-sqlite v1.22.0/go.mod h1:PlBIdHe0+aUEFn+r2/uthrWq4FxbzugL0L8Li6yQJbc= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -117,35 +118,38 @@ github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20230817174616-7a8ec2ada47b h1:h9U78+dx9a4BKdQkBBos92HalKpaGKHrp+3Uo6yTodo= -github.com/google/pprof v0.0.0-20230817174616-7a8ec2ada47b/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= +github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 h1:5iH8iuqE5apketRbSFBy+X1V0o+l+8NF1avt4HWl7cA= +github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= -github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.2.0 h1:0IKlLyQ3Hs9nDaiK5cSHAGmcQEIC8l2Ts1u6x5Dfrqg= github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9GbyCZHuPgZsrbyIbyKhSzOpg6s= +github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI= +github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/hashicorp/go-secure-stdlib/parseutil v0.1.7 h1:UpiO20jno/eV1eVZcxqWnUohyKRe1g8FPV/xH1s/2qs= -github.com/hashicorp/go-secure-stdlib/parseutil v0.1.7/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8= +github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 h1:iBt4Ew4XEGLfh6/bPk4rSYmuZJGizr6/x/AEizP0CQc= +github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8/go.mod h1:aiJI+PIApBRQG7FZTEBx5GiiX+HbOHilUdNxUZi4eV0= github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 h1:kes8mmyCpxJsI7FTwtzRqEy9CdjCtrXrXGuOpxEA7Ts= github.com/hashicorp/go-secure-stdlib/strutil v0.1.2/go.mod h1:Gou2R9+il93BqX25LAKCLuM+y9U2T4hlwvT1yprcna4= -github.com/hashicorp/go-sockaddr v1.0.2 h1:ztczhD1jLxIRjVejw8gFomI1BQZOe2WoVOu0SyteCQc= -github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= +github.com/hashicorp/go-sockaddr v1.0.6 h1:RSG8rKU28VTUTvEKghe5gIhIQpv8evvNpnDEyqO4u9I= +github.com/hashicorp/go-sockaddr v1.0.6/go.mod h1:uoUUmtwU7n9Dv3O4SNLeFvg0SxQ3lyjsj6+CCykpaxI= +github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c= +github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= +github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= @@ -162,6 +166,7 @@ github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uia github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= @@ -172,25 +177,28 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= -github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4= +github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= @@ -199,10 +207,11 @@ github.com/outcaste-io/ristretto v0.2.3 h1:AK4zt/fJ76kjlYObOeNwh4T3asEuaCmp26pOv github.com/outcaste-io/ristretto v0.2.3/go.mod h1:W8HywhmtlopSB1jeMg3JtdIhf+DYkLAr0VN/s4+MHac= github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/philhofer/fwd v1.1.2 h1:bnDivRJ1EWPjUIRXV5KfORO897HTbpFAQddBdE8t7Gw= -github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2tUTP0= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1GshSTtih8C2gDs04w8dReiOGXrGLNoY= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -210,32 +219,32 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= @@ -244,18 +253,18 @@ github.com/richardartoul/molecule v1.0.1-0.20240531184615-7ca0df43c0b3/go.mod h1 github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkBk= github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= -github.com/secure-systems-lab/go-securesystemslib v0.7.0 h1:OwvJ5jQf9LnIAS83waAjPbcMsODrTQUpJ02eNLUoxBg= -github.com/secure-systems-lab/go-securesystemslib v0.7.0/go.mod h1:/2gYnlnHVQ6xeGtfIqFy7Do03K4cdCY0A/GlJLDKLHI= -github.com/shirou/gopsutil/v3 v3.24.1 h1:R3t6ondCEvmARp3wxODhXMTLC/klMa87h2PHUw5m7QI= -github.com/shirou/gopsutil/v3 v3.24.1/go.mod h1:UU7a2MSBQa+kW1uuDq8DeEBS8kmrnQwsv2b5O513rwU= +github.com/secure-systems-lab/go-securesystemslib v0.8.0 h1:mr5An6X45Kb2nddcFlbmfHkLguCE9laoZCUzEEpIZXA= +github.com/secure-systems-lab/go-securesystemslib v0.8.0/go.mod h1:UH2VZVuJfCYR8WgMlCU1uFsOUU+KeyrTWcSS73NBOzU= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= @@ -271,10 +280,11 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= @@ -292,16 +302,15 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= -github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU= +github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -309,41 +318,46 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= -go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.etcd.io/bbolt v1.3.11 h1:yGEzV1wPz2yVCLsD8ZAiGHhHVlczyC9d1rP43/VCRJ0= +go.etcd.io/bbolt v1.3.11/go.mod h1:dksAq7YMXoljX0xu6VF5DMZGbhYYoLUalEiSySYAS4I= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.14.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= +go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -351,7 +365,6 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -362,9 +375,9 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -381,24 +394,21 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.15.0 h1:s8pnnxNVzjWyrvYdFUQq5llS1PX2zhPXmccZv99h7uQ= -golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM= +golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= +golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -413,29 +423,21 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220627191245-f75cf1eec38b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -453,12 +455,11 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -467,18 +468,17 @@ golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da h1:noIWHXmPHxILtqtCOPIhS golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190927181202-20e1ac93f88c/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 h1:wpZ8pe2x1Q3f2KyT5f8oP/fa9rHAKgFPr/HZdNuS+PQ= -google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:J7XzRzVy1+IPwWHZUzoD0IccYZIrXILAQpc+Qy9CMhY= -google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17 h1:JpwMPBpFN3uKhdaekDpiNlImDdkUAyiJ6ez/uxGaUSo= -google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:0xJLfVdJqpAPl8tDg1ujOCGzx6LFLttXT5NhllGOXY4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f h1:ultW7fxlIvee4HYrtnaRPon9HpEgFk5zYpmfMgtKB5I= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f/go.mod h1:L9KNLi232K1/xB6f7AlSX692koaRnKaWSR0stBki0Yc= +google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 h1:BulPr26Jqjnd4eYDVe+YvyR7Yc2vJGkO5/0UxD0/jZU= +google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:hL97c3SYopEHblzpxRL4lSs523++l8DYxGM1FQiYmb4= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= @@ -486,13 +486,14 @@ google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRn google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= -google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= -gopkg.in/DataDog/dd-trace-go.v1 v1.67.0 h1:3Cb46zyKIlEWac21tvDF2O4KyMlOHQxrQkyiaUpdwM0= -gopkg.in/DataDog/dd-trace-go.v1 v1.67.0/go.mod h1:6DdiJPKOeJfZyd/IUGCAd5elY8qPGkztK6wbYYsMjag= +google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= +google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +gopkg.in/DataDog/dd-trace-go.v1 v1.69.1 h1:grTElrPaCfxUsrJjyPLHlVPbmlKVzWMxVdcBrGZSzEk= +gopkg.in/DataDog/dd-trace-go.v1 v1.69.1/go.mod h1:U9AOeBHNAL95JXcd/SPf4a7O5GNeF/yD13sJtli/yaU= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -508,19 +509,27 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -modernc.org/libc v1.37.6 h1:orZH3c5wmhIQFTXF+Nt+eeauyd+ZIt2BX6ARe+kD+aw= -modernc.org/libc v1.37.6/go.mod h1:YAXkAZ8ktnkCKaN9sw/UDeUVkGYJ/YquGO4FTi5nmHE= +modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6 h1:5D53IMaUuA5InSeMu9eJtlQXS2NxAhyWQvkKEgXZhHI= +modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6/go.mod h1:Qz0X07sNOR1jWYCrJMEnbW/X55x206Q7Vt4mz6/wHp4= +modernc.org/libc v1.55.3 h1:AzcW1mhlPNrRtjS5sS+eW2ISCgSOLLNyFzRh/V3Qj/U= +modernc.org/libc v1.55.3/go.mod h1:qFXepLhz+JjFThQ4kzwzOjA/y/artDeg+pcYnY+Q83w= modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4= modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo= -modernc.org/memory v1.7.2 h1:Klh90S215mmH8c9gO98QxQFsY+W451E8AnzjoE2ee1E= -modernc.org/memory v1.7.2/go.mod h1:NO4NVCQy0N7ln+T9ngWqOQfi7ley4vpwvARR+Hjw95E= -modernc.org/sqlite v1.28.0 h1:Zx+LyDDmXczNnEQdvPuEfcFVA2ZPyaD7UCZDjef3BHQ= -modernc.org/sqlite v1.28.0/go.mod h1:Qxpazz0zH8Z1xCFyi5GSL3FzbtZ3fvbjmywNogldEW0= +modernc.org/memory v1.8.0 h1:IqGTL6eFMaDZZhEWwcREgeMXYwmW83LYW8cROZYkg+E= +modernc.org/memory v1.8.0/go.mod h1:XPZ936zp5OMKGWPqbD3JShgd/ZoQ7899TUuQqxY+peU= +modernc.org/sqlite v1.34.1 h1:u3Yi6M0N8t9yKRDwhXcyp1eS5/ErhPTBggxWFuR6Hfk= +modernc.org/sqlite v1.34.1/go.mod h1:pXV2xHxhzXZsgT/RtTFAPY6JJDEvOTcTdwADQCCWD4k= +modernc.org/strutil v1.2.0 h1:agBi9dp1I+eOnxXeiZawM8F4LawKv4NzGWSaLfyeNZA= +modernc.org/strutil v1.2.0/go.mod h1:/mdcBmfOibveCTBxUl5B5l6W+TTH1FXPLHZE6bTosX0= +modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y= +modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= diff --git a/pkg/config/setup/go.mod b/pkg/config/setup/go.mod index 32bbab5773575..2592013a7d875 100644 --- a/pkg/config/setup/go.mod +++ b/pkg/config/setup/go.mod @@ -50,7 +50,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 github.com/stretchr/testify v1.10.0 - go.uber.org/fx v1.22.2 + go.uber.org/fx v1.23.0 gopkg.in/yaml.v2 v2.4.0 ) @@ -63,58 +63,55 @@ require ( github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-logr/logr v1.4.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/golang/protobuf v1.5.3 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/prometheus/client_golang v1.17.0 // indirect - github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.44.0 // indirect - github.com/prometheus/procfs v0.11.1 // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/prometheus/client_golang v1.20.5 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.60.1 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect - go.opentelemetry.io/otel v1.27.0 // indirect - go.opentelemetry.io/otel/metric v1.27.0 // indirect - go.opentelemetry.io/otel/sdk v1.27.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.27.0 // indirect - go.opentelemetry.io/otel/trace v1.27.0 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/config/setup/go.sum b/pkg/config/setup/go.sum index 4e9fda91af3c1..30600a62adb16 100644 --- a/pkg/config/setup/go.sum +++ b/pkg/config/setup/go.sum @@ -1,12 +1,11 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/cast v1.8.0 h1:uooY8bMzq+cjgiNP1VTquCWve5emgk8fRspZojJwQa8= github.com/DataDog/cast v1.8.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -14,8 +13,8 @@ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRF github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= -github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o= +github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -23,8 +22,8 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -36,11 +35,12 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -48,20 +48,21 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -74,20 +75,17 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -95,8 +93,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -111,6 +110,8 @@ github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALr github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -120,71 +121,75 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -194,31 +199,27 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -226,29 +227,29 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0 h1:jwV9iQdvp38fxXi8ZC+lNpxjK16MRcZlpDYvbuO1FiA= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0/go.mod h1:f3bYiqNqhoPxkvI2LrXqQVC546K7BuRDL/kKuxkujhA= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -271,8 +272,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -291,8 +290,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -305,9 +302,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -325,8 +320,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -339,10 +332,8 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -360,7 +351,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/config/structure/go.mod b/pkg/config/structure/go.mod index 11b426b459fac..a4b08d8efd789 100644 --- a/pkg/config/structure/go.mod +++ b/pkg/config/structure/go.mod @@ -45,16 +45,16 @@ require ( github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect diff --git a/pkg/config/structure/go.sum b/pkg/config/structure/go.sum index ad0bf8e1c5d21..594839f68ca17 100644 --- a/pkg/config/structure/go.sum +++ b/pkg/config/structure/go.sum @@ -1,5 +1,4 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/cast v1.8.0 h1:uooY8bMzq+cjgiNP1VTquCWve5emgk8fRspZojJwQa8= github.com/DataDog/cast v1.8.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= @@ -31,8 +30,9 @@ github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7 github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -40,8 +40,8 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -75,8 +75,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= @@ -94,11 +95,13 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= @@ -108,13 +111,15 @@ github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwd github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= @@ -135,8 +140,9 @@ github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40T github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -146,8 +152,9 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= @@ -247,8 +254,9 @@ google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= diff --git a/pkg/config/teeconfig/go.mod b/pkg/config/teeconfig/go.mod index 374d91579280a..5f73448a14327 100644 --- a/pkg/config/teeconfig/go.mod +++ b/pkg/config/teeconfig/go.mod @@ -17,16 +17,16 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/fsnotify/fsnotify v1.4.7 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect - github.com/spf13/pflag v1.0.3 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect + github.com/spf13/pflag v1.0.5 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect golang.org/x/sys v0.27.0 // indirect diff --git a/pkg/config/teeconfig/go.sum b/pkg/config/teeconfig/go.sum index 02e64e7a0270b..ef76baba5c97d 100644 --- a/pkg/config/teeconfig/go.sum +++ b/pkg/config/teeconfig/go.sum @@ -1,5 +1,4 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= @@ -28,16 +27,18 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= -github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -70,8 +71,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= @@ -89,11 +91,13 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= @@ -103,12 +107,14 @@ github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwd github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= @@ -129,8 +135,8 @@ github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40T github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -143,10 +149,12 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -243,8 +251,9 @@ google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= diff --git a/pkg/config/utils/go.mod b/pkg/config/utils/go.mod index ca43715e1bd66..4c39a2d8c2f78 100644 --- a/pkg/config/utils/go.mod +++ b/pkg/config/utils/go.mod @@ -59,37 +59,34 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/config/utils/go.sum b/pkg/config/utils/go.sum index e430d7f027344..8e9185a2c429b 100644 --- a/pkg/config/utils/go.sum +++ b/pkg/config/utils/go.sum @@ -1,10 +1,9 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -20,8 +19,8 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -34,8 +33,9 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -43,19 +43,20 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -68,18 +69,17 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -87,8 +87,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -112,68 +113,72 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -186,31 +191,27 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -218,27 +219,27 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= @@ -259,8 +260,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -279,8 +278,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -293,9 +290,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -313,8 +308,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -327,13 +320,14 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -345,7 +339,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/errors/go.mod b/pkg/errors/go.mod index 808a90c342fb2..c733178b4236f 100644 --- a/pkg/errors/go.mod +++ b/pkg/errors/go.mod @@ -5,7 +5,10 @@ go 1.22.0 require github.com/stretchr/testify v1.10.0 require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/errors/go.sum b/pkg/errors/go.sum index 713a0b4f0a3a9..cec386e1e2769 100644 --- a/pkg/errors/go.sum +++ b/pkg/errors/go.sum @@ -1,10 +1,23 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/gohai/go.mod b/pkg/gohai/go.mod index 62c36204e984d..e180843fd65db 100644 --- a/pkg/gohai/go.mod +++ b/pkg/gohai/go.mod @@ -16,18 +16,17 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/kr/pretty v0.3.1 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/kr/text v0.2.0 // indirect github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/rogpeppe/go-internal v1.10.0 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/shoenig/test v1.7.1 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect - gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/gohai/go.sum b/pkg/gohai/go.sum index b263ca25c2cfa..b2d1eb2720650 100644 --- a/pkg/gohai/go.sum +++ b/pkg/gohai/go.sum @@ -3,50 +3,45 @@ github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/moby/sys/mountinfo v0.7.2 h1:1shs6aH5s4o5H2zQLn796ADW1wMrIwHsyJ2v9KouLrg= github.com/moby/sys/mountinfo v0.7.2/go.mod h1:1YOa8w8Ih7uW0wALDUgT1dTTSBrZ+HiBLGws92L2RU4= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/pkg/linters/components/pkgconfigusage/go.mod b/pkg/linters/components/pkgconfigusage/go.mod index a2c57afec4295..c26998e6c6d61 100644 --- a/pkg/linters/components/pkgconfigusage/go.mod +++ b/pkg/linters/components/pkgconfigusage/go.mod @@ -9,9 +9,12 @@ require ( ) require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect golang.org/x/mod v0.22.0 // indirect golang.org/x/sync v0.9.0 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/linters/components/pkgconfigusage/go.sum b/pkg/linters/components/pkgconfigusage/go.sum index 870d5762aac9c..9f7ff6dacdfaf 100644 --- a/pkg/linters/components/pkgconfigusage/go.sum +++ b/pkg/linters/components/pkgconfigusage/go.sum @@ -1,11 +1,23 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/golangci/plugin-module-register v0.1.1 h1:TCmesur25LnyJkpsVrupv1Cdzo+2f7zX0H6Jkw1Ol6c= github.com/golangci/plugin-module-register v0.1.1/go.mod h1:TTpqoB6KkwOJMV8u7+NyXMrkwwESJLOkfl9TxR1DGFc= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= @@ -14,7 +26,8 @@ golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/logs/auditor/go.mod b/pkg/logs/auditor/go.mod index 3f1f340492b82..9f000ce69c516 100644 --- a/pkg/logs/auditor/go.mod +++ b/pkg/logs/auditor/go.mod @@ -73,37 +73,34 @@ require ( github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/logs/auditor/go.sum b/pkg/logs/auditor/go.sum index e430d7f027344..8e9185a2c429b 100644 --- a/pkg/logs/auditor/go.sum +++ b/pkg/logs/auditor/go.sum @@ -1,10 +1,9 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -20,8 +19,8 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -34,8 +33,9 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -43,19 +43,20 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -68,18 +69,17 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -87,8 +87,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -112,68 +113,72 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -186,31 +191,27 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -218,27 +219,27 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= @@ -259,8 +260,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -279,8 +278,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -293,9 +290,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -313,8 +308,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -327,13 +320,14 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -345,7 +339,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/logs/client/go.mod b/pkg/logs/client/go.mod index 37afb20c767e6..6fc70b4282f98 100644 --- a/pkg/logs/client/go.mod +++ b/pkg/logs/client/go.mod @@ -90,61 +90,59 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-logr/logr v1.4.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/golang/protobuf v1.5.3 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/klauspost/compress v1.17.11 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/prometheus/client_golang v1.17.0 // indirect - github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.44.0 // indirect - github.com/prometheus/procfs v0.11.1 // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/prometheus/client_golang v1.20.5 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.60.1 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect - go.opentelemetry.io/otel v1.27.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.42.0 // indirect - go.opentelemetry.io/otel/metric v1.27.0 // indirect - go.opentelemetry.io/otel/sdk v1.27.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.27.0 // indirect - go.opentelemetry.io/otel/trace v1.27.0 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect - go.uber.org/fx v1.22.2 // indirect + go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/logs/client/go.sum b/pkg/logs/client/go.sum index 9ae147b4a2090..d370c2aa2c614 100644 --- a/pkg/logs/client/go.sum +++ b/pkg/logs/client/go.sum @@ -1,10 +1,9 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -21,8 +20,8 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -34,10 +33,11 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -45,20 +45,21 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -71,20 +72,17 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -92,8 +90,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -108,6 +107,8 @@ github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALr github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -117,69 +118,75 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -192,31 +199,27 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -224,29 +227,29 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0 h1:jwV9iQdvp38fxXi8ZC+lNpxjK16MRcZlpDYvbuO1FiA= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0/go.mod h1:f3bYiqNqhoPxkvI2LrXqQVC546K7BuRDL/kKuxkujhA= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -269,8 +272,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -291,8 +292,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -305,9 +304,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -325,8 +322,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -339,10 +334,8 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -360,7 +353,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/logs/diagnostic/go.mod b/pkg/logs/diagnostic/go.mod index d18d52a220f67..e5350d717dc74 100644 --- a/pkg/logs/diagnostic/go.mod +++ b/pkg/logs/diagnostic/go.mod @@ -77,43 +77,40 @@ require ( github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect - go.uber.org/fx v1.22.2 // indirect + go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/logs/diagnostic/go.sum b/pkg/logs/diagnostic/go.sum index a29a7509778c0..2ad0ffbf9169a 100644 --- a/pkg/logs/diagnostic/go.sum +++ b/pkg/logs/diagnostic/go.sum @@ -1,10 +1,9 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -20,8 +19,8 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -33,10 +32,11 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -44,19 +44,20 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -69,18 +70,17 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -88,8 +88,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -113,69 +114,73 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -188,31 +193,27 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -220,27 +221,27 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -263,8 +264,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -283,8 +282,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -297,9 +294,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -317,8 +312,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -331,13 +324,14 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -349,7 +343,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/logs/launchers/windowsevent/README.md b/pkg/logs/launchers/windowsevent/README.md index 1329dd9f4f17c..621027fb5a309 100644 --- a/pkg/logs/launchers/windowsevent/README.md +++ b/pkg/logs/launchers/windowsevent/README.md @@ -5,7 +5,7 @@ Requirements are to install go 1.22+, and to install `mingw-w64` with apt. Once those requirements are met, to build, run: ``` -GOOS=windows CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc go build -mod=mod -tags "log" -o ./DataDog/datadog-agent/bin/agent/agent github.com/DataDog/datadog-agent/cmd/agent +GOOS=windows CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc go build -mod=readonly -tags "log" -o ./DataDog/datadog-agent/bin/agent/agent github.com/DataDog/datadog-agent/cmd/agent ``` The binary can then be run in a windows vm, for instance `opentable/win-2012r2-standard-amd64-nocm`: diff --git a/pkg/logs/message/go.mod b/pkg/logs/message/go.mod index 18a8e92f8509f..a7acc1d3319f8 100644 --- a/pkg/logs/message/go.mod +++ b/pkg/logs/message/go.mod @@ -69,37 +69,34 @@ require ( github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/logs/message/go.sum b/pkg/logs/message/go.sum index e430d7f027344..8e9185a2c429b 100644 --- a/pkg/logs/message/go.sum +++ b/pkg/logs/message/go.sum @@ -1,10 +1,9 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -20,8 +19,8 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -34,8 +33,9 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -43,19 +43,20 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -68,18 +69,17 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -87,8 +87,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -112,68 +113,72 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -186,31 +191,27 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -218,27 +219,27 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= @@ -259,8 +260,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -279,8 +278,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -293,9 +290,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -313,8 +308,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -327,13 +320,14 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -345,7 +339,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/logs/metrics/go.mod b/pkg/logs/metrics/go.mod index 077d2988f4c47..87233be777f35 100644 --- a/pkg/logs/metrics/go.mod +++ b/pkg/logs/metrics/go.mod @@ -23,32 +23,33 @@ require ( github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.55.0 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/go-logr/logr v1.4.1 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/golang/protobuf v1.5.3 // indirect + github.com/google/uuid v1.6.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_golang v1.17.0 // indirect - github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.44.0 // indirect - github.com/prometheus/procfs v0.11.1 // indirect - github.com/spf13/cobra v1.7.0 // indirect + github.com/klauspost/compress v1.17.11 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/prometheus/client_golang v1.20.5 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.60.1 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/pflag v1.0.5 // indirect - go.opentelemetry.io/otel v1.27.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.42.0 // indirect - go.opentelemetry.io/otel/metric v1.27.0 // indirect - go.opentelemetry.io/otel/sdk v1.27.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.27.0 // indirect - go.opentelemetry.io/otel/trace v1.27.0 // indirect - go.uber.org/atomic v1.7.0 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect + go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect - go.uber.org/fx v1.22.2 // indirect + go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/sys v0.27.0 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/logs/metrics/go.sum b/pkg/logs/metrics/go.sum index 849ce5d2e6795..a126bd5a33489 100644 --- a/pkg/logs/metrics/go.sum +++ b/pkg/logs/metrics/go.sum @@ -2,85 +2,79 @@ github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0 h1:jwV9iQdvp38fxXi8ZC+lNpxjK16MRcZlpDYvbuO1FiA= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0/go.mod h1:f3bYiqNqhoPxkvI2LrXqQVC546K7BuRDL/kKuxkujhA= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= -go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= +go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= +go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/pkg/logs/pipeline/go.mod b/pkg/logs/pipeline/go.mod index 11443f4acc6de..f61519f081296 100644 --- a/pkg/logs/pipeline/go.mod +++ b/pkg/logs/pipeline/go.mod @@ -79,7 +79,7 @@ require ( ) require ( - github.com/DataDog/agent-payload/v5 v5.0.106 // indirect + github.com/DataDog/agent-payload/v5 v5.0.137 // indirect github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect github.com/DataDog/datadog-agent/comp/core/telemetry v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/def v0.56.0-rc.3 // indirect @@ -108,63 +108,61 @@ require ( github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-logr/logr v1.4.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/protobuf v1.5.3 // indirect - github.com/hashicorp/errwrap v1.0.0 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/hashicorp/errwrap v1.1.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/klauspost/compress v1.17.11 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/prometheus/client_golang v1.17.0 // indirect - github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.44.0 // indirect - github.com/prometheus/procfs v0.11.1 // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/prometheus/client_golang v1.20.5 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.60.1 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect - go.opentelemetry.io/otel v1.27.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.42.0 // indirect - go.opentelemetry.io/otel/metric v1.27.0 // indirect - go.opentelemetry.io/otel/sdk v1.27.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.27.0 // indirect - go.opentelemetry.io/otel/trace v1.27.0 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/dig v1.18.0 // indirect - go.uber.org/fx v1.22.2 // indirect + go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/logs/pipeline/go.sum b/pkg/logs/pipeline/go.sum index f769262396028..cb26aeb9751f5 100644 --- a/pkg/logs/pipeline/go.sum +++ b/pkg/logs/pipeline/go.sum @@ -1,14 +1,13 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.106 h1:A3dGX+JYoL7OJe2crpxznW7hWxLxhOk/17WbYskRWVk= -github.com/DataDog/agent-payload/v5 v5.0.106/go.mod h1:COngtbYYCncpIPiE5D93QlXDH/3VAKk10jDNwGHcMRE= +github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= +github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 h1:RoH7VLzTnxHEugRPIgnGlxwDFszFGI7b3WZZUtWuPRM= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42/go.mod h1:TX7CTOQ3LbQjfAi4SwqUoR5gY1zfUk7VRBDTuArjaDc= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -25,8 +24,8 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -38,10 +37,11 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -49,20 +49,21 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -77,20 +78,17 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -98,12 +96,14 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -119,6 +119,8 @@ github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvW github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -128,69 +130,75 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -203,31 +211,27 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -237,29 +241,29 @@ github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0 h1:jwV9iQdvp38fxXi8ZC+lNpxjK16MRcZlpDYvbuO1FiA= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0/go.mod h1:f3bYiqNqhoPxkvI2LrXqQVC546K7BuRDL/kKuxkujhA= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -286,8 +290,6 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -310,8 +312,6 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -325,9 +325,7 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -350,8 +348,6 @@ golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -366,10 +362,8 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -387,7 +381,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/logs/processor/go.mod b/pkg/logs/processor/go.mod index 70a6775f262e9..3853f7f666344 100644 --- a/pkg/logs/processor/go.mod +++ b/pkg/logs/processor/go.mod @@ -48,7 +48,7 @@ replace ( ) require ( - github.com/DataDog/agent-payload/v5 v5.0.106 + github.com/DataDog/agent-payload/v5 v5.0.137 github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.56.0-rc.3 github.com/DataDog/datadog-agent/comp/logs/agent/config v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 @@ -88,62 +88,60 @@ require ( github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-logr/logr v1.4.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/protobuf v1.5.3 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/klauspost/compress v1.17.11 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/prometheus/client_golang v1.17.0 // indirect - github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.44.0 // indirect - github.com/prometheus/procfs v0.11.1 // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/prometheus/client_golang v1.20.5 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.60.1 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect - go.opentelemetry.io/otel v1.27.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.42.0 // indirect - go.opentelemetry.io/otel/metric v1.27.0 // indirect - go.opentelemetry.io/otel/sdk v1.27.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.27.0 // indirect - go.opentelemetry.io/otel/trace v1.27.0 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect - go.uber.org/fx v1.22.2 // indirect + go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/logs/processor/go.sum b/pkg/logs/processor/go.sum index 23deabea16b5e..bae2a07789d90 100644 --- a/pkg/logs/processor/go.sum +++ b/pkg/logs/processor/go.sum @@ -1,14 +1,13 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.106 h1:A3dGX+JYoL7OJe2crpxznW7hWxLxhOk/17WbYskRWVk= -github.com/DataDog/agent-payload/v5 v5.0.106/go.mod h1:COngtbYYCncpIPiE5D93QlXDH/3VAKk10jDNwGHcMRE= +github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= +github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 h1:RoH7VLzTnxHEugRPIgnGlxwDFszFGI7b3WZZUtWuPRM= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42/go.mod h1:TX7CTOQ3LbQjfAi4SwqUoR5gY1zfUk7VRBDTuArjaDc= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -25,8 +24,8 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -38,10 +37,11 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -49,20 +49,21 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -77,20 +78,17 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -98,8 +96,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -115,6 +114,8 @@ github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvW github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -124,69 +125,75 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -199,31 +206,27 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -233,29 +236,29 @@ github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0 h1:jwV9iQdvp38fxXi8ZC+lNpxjK16MRcZlpDYvbuO1FiA= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0/go.mod h1:f3bYiqNqhoPxkvI2LrXqQVC546K7BuRDL/kKuxkujhA= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -282,8 +285,6 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -304,8 +305,6 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -319,9 +318,7 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -344,8 +341,6 @@ golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -360,10 +355,8 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -381,7 +374,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/logs/sds/go.mod b/pkg/logs/sds/go.mod index 5791f5434e1f6..5cdadbb4b9b81 100644 --- a/pkg/logs/sds/go.mod +++ b/pkg/logs/sds/go.mod @@ -84,60 +84,58 @@ require ( github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-logr/logr v1.4.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/golang/protobuf v1.5.3 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/klauspost/compress v1.17.11 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/prometheus/client_golang v1.17.0 // indirect - github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.44.0 // indirect - github.com/prometheus/procfs v0.11.1 // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/prometheus/client_golang v1.20.5 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.60.1 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect - go.opentelemetry.io/otel v1.27.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.42.0 // indirect - go.opentelemetry.io/otel/metric v1.27.0 // indirect - go.opentelemetry.io/otel/sdk v1.27.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.27.0 // indirect - go.opentelemetry.io/otel/trace v1.27.0 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect - go.uber.org/fx v1.22.2 // indirect + go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/logs/sds/go.sum b/pkg/logs/sds/go.sum index 71aa3ceef1969..fb3fdbfc03c55 100644 --- a/pkg/logs/sds/go.sum +++ b/pkg/logs/sds/go.sum @@ -1,12 +1,11 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 h1:RoH7VLzTnxHEugRPIgnGlxwDFszFGI7b3WZZUtWuPRM= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42/go.mod h1:TX7CTOQ3LbQjfAi4SwqUoR5gY1zfUk7VRBDTuArjaDc= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -21,8 +20,8 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -34,10 +33,11 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -45,20 +45,21 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -71,20 +72,17 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -92,8 +90,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -108,6 +107,8 @@ github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALr github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -117,69 +118,75 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -192,31 +199,27 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -224,29 +227,29 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0 h1:jwV9iQdvp38fxXi8ZC+lNpxjK16MRcZlpDYvbuO1FiA= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0/go.mod h1:f3bYiqNqhoPxkvI2LrXqQVC546K7BuRDL/kKuxkujhA= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -269,8 +272,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -289,8 +290,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -303,9 +302,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -323,8 +320,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -337,10 +332,8 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -358,7 +351,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/logs/sender/go.mod b/pkg/logs/sender/go.mod index 98b69acde609e..20c0fe700e1a4 100644 --- a/pkg/logs/sender/go.mod +++ b/pkg/logs/sender/go.mod @@ -91,61 +91,59 @@ require ( github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-logr/logr v1.4.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/golang/protobuf v1.5.3 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/klauspost/compress v1.17.11 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/prometheus/client_golang v1.17.0 // indirect - github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.44.0 // indirect - github.com/prometheus/procfs v0.11.1 // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/prometheus/client_golang v1.20.5 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.60.1 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect - go.opentelemetry.io/otel v1.27.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.42.0 // indirect - go.opentelemetry.io/otel/metric v1.27.0 // indirect - go.opentelemetry.io/otel/sdk v1.27.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.27.0 // indirect - go.opentelemetry.io/otel/trace v1.27.0 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect - go.uber.org/fx v1.22.2 // indirect + go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/logs/sender/go.sum b/pkg/logs/sender/go.sum index 9ae147b4a2090..d370c2aa2c614 100644 --- a/pkg/logs/sender/go.sum +++ b/pkg/logs/sender/go.sum @@ -1,10 +1,9 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -21,8 +20,8 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -34,10 +33,11 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -45,20 +45,21 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -71,20 +72,17 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -92,8 +90,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -108,6 +107,8 @@ github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALr github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -117,69 +118,75 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -192,31 +199,27 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -224,29 +227,29 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0 h1:jwV9iQdvp38fxXi8ZC+lNpxjK16MRcZlpDYvbuO1FiA= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0/go.mod h1:f3bYiqNqhoPxkvI2LrXqQVC546K7BuRDL/kKuxkujhA= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -269,8 +272,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -291,8 +292,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -305,9 +304,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -325,8 +322,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -339,10 +334,8 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -360,7 +353,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/logs/sources/go.mod b/pkg/logs/sources/go.mod index ec060a733c103..b81f5d609a906 100644 --- a/pkg/logs/sources/go.mod +++ b/pkg/logs/sources/go.mod @@ -67,37 +67,34 @@ require ( github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/logs/sources/go.sum b/pkg/logs/sources/go.sum index e430d7f027344..8e9185a2c429b 100644 --- a/pkg/logs/sources/go.sum +++ b/pkg/logs/sources/go.sum @@ -1,10 +1,9 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -20,8 +19,8 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -34,8 +33,9 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -43,19 +43,20 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -68,18 +69,17 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -87,8 +87,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -112,68 +113,72 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -186,31 +191,27 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -218,27 +219,27 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= @@ -259,8 +260,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -279,8 +278,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -293,9 +290,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -313,8 +308,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -327,13 +320,14 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -345,7 +339,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/logs/status/utils/go.mod b/pkg/logs/status/utils/go.mod index 4a6fe8f44b45b..f4a3cf887f5fd 100644 --- a/pkg/logs/status/utils/go.mod +++ b/pkg/logs/status/utils/go.mod @@ -8,7 +8,10 @@ require ( ) require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/logs/status/utils/go.sum b/pkg/logs/status/utils/go.sum index 82752f45a5c57..b2a04e65d68aa 100644 --- a/pkg/logs/status/utils/go.sum +++ b/pkg/logs/status/utils/go.sum @@ -1,12 +1,25 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/logs/util/testutils/go.mod b/pkg/logs/util/testutils/go.mod index 6e67194cbb5b8..d7bbeef948cbb 100644 --- a/pkg/logs/util/testutils/go.mod +++ b/pkg/logs/util/testutils/go.mod @@ -68,34 +68,31 @@ require ( github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/pkg/logs/util/testutils/go.sum b/pkg/logs/util/testutils/go.sum index e430d7f027344..8e9185a2c429b 100644 --- a/pkg/logs/util/testutils/go.sum +++ b/pkg/logs/util/testutils/go.sum @@ -1,10 +1,9 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -20,8 +19,8 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -34,8 +33,9 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -43,19 +43,20 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -68,18 +69,17 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -87,8 +87,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -112,68 +113,72 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -186,31 +191,27 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -218,27 +219,27 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= @@ -259,8 +260,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -279,8 +278,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -293,9 +290,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -313,8 +308,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -327,13 +320,14 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -345,7 +339,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/metrics/go.mod b/pkg/metrics/go.mod index 6eb9ddca00743..e58312d0f009d 100644 --- a/pkg/metrics/go.mod +++ b/pkg/metrics/go.mod @@ -72,63 +72,61 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect - github.com/DataDog/sketches-go v1.4.4 // indirect + github.com/DataDog/sketches-go v1.4.6 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dustin/go-humanize v1.0.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-logr/logr v1.4.1 // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/golang/protobuf v1.5.3 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/klauspost/compress v1.17.11 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/prometheus/client_golang v1.17.0 // indirect - github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.44.0 // indirect - github.com/prometheus/procfs v0.11.1 // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/prometheus/client_golang v1.20.5 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.60.1 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/twmb/murmur3 v1.1.8 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect - go.opentelemetry.io/otel v1.27.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.42.0 // indirect - go.opentelemetry.io/otel/metric v1.27.0 // indirect - go.opentelemetry.io/otel/sdk v1.27.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.27.0 // indirect - go.opentelemetry.io/otel/trace v1.27.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/dig v1.18.0 // indirect - go.uber.org/fx v1.22.2 // indirect + go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/metrics/go.sum b/pkg/metrics/go.sum index e4427151a2e4e..81310e940757f 100644 --- a/pkg/metrics/go.sum +++ b/pkg/metrics/go.sum @@ -1,16 +1,15 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.21.0 h1:VS4NTqwczwezMVvI6A7xYR3ugPmMUJ4FcdFrsdnZI2I= github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.21.0/go.mod h1:66XlN7QpQKqIvw8e2UbCXV5X8wGnEw851nT9BjJ75dY= github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 h1:/Dp1WBvekdusS9Tw9pLE7RG04eluNktQ29arLS4SpGM= github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0/go.mod h1:asNuwNy1O2HbadkcZVuqmFGonfEzXS/SBvOo8V1MJvQ= -github.com/DataDog/sketches-go v1.4.4 h1:dF52vzXRFSPOj2IjXSWLvXq3jubL4CI69kwYjJ1w5Z8= -github.com/DataDog/sketches-go v1.4.4/go.mod h1:XR0ns2RtEEF09mDKXiKZiQg+nfZStrq1ZuL1eezeZe0= +github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I= +github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -25,8 +24,8 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -38,10 +37,11 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= @@ -51,20 +51,21 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -77,15 +78,10 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= @@ -93,6 +89,8 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -100,8 +98,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -116,6 +115,8 @@ github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALr github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -125,69 +126,75 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -200,32 +207,27 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/twmb/murmur3 v1.1.8 h1:8Yt9taO/WN3l08xErzjeschgZU2QSrwm1kclYq+0aRg= @@ -235,29 +237,29 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0 h1:jwV9iQdvp38fxXi8ZC+lNpxjK16MRcZlpDYvbuO1FiA= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0/go.mod h1:f3bYiqNqhoPxkvI2LrXqQVC546K7BuRDL/kKuxkujhA= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -280,8 +282,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -300,8 +300,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -314,9 +312,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -334,8 +330,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -348,11 +342,8 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -370,7 +361,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/network/testdata/run_latency_bench.sh b/pkg/network/testdata/run_latency_bench.sh index cdd125d8f57fb..a11f3b0a29ff1 100755 --- a/pkg/network/testdata/run_latency_bench.sh +++ b/pkg/network/testdata/run_latency_bench.sh @@ -23,7 +23,7 @@ STATFILE=/tmp/ebpf-bench-benchstat.${now} for _ in {1..5} do go test \ - -mod=mod \ + -mod=readonly \ -tags linux_bpf \ ./pkg/network/ebpf/... \ -bench BenchmarkTCPLatency \ @@ -31,7 +31,7 @@ do -run XXX \ >> "${RESFILE}" go test \ - -mod=mod \ + -mod=readonly \ -tags linux_bpf \ ./pkg/network/ebpf/... \ -bench BenchmarkUDPLatency \ diff --git a/pkg/networkdevice/profile/go.mod b/pkg/networkdevice/profile/go.mod index a6b2ee6565e5f..7e9526ac7014c 100644 --- a/pkg/networkdevice/profile/go.mod +++ b/pkg/networkdevice/profile/go.mod @@ -3,7 +3,7 @@ module github.com/DataDog/datadog-agent/pkg/networkdevice/profile go 1.22.0 require ( - github.com/invopop/jsonschema v0.10.0 + github.com/invopop/jsonschema v0.12.0 github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 github.com/stretchr/testify v1.10.0 gopkg.in/yaml.v2 v2.4.0 @@ -16,7 +16,7 @@ require ( github.com/kr/pretty v0.3.1 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/rogpeppe/go-internal v1.10.0 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect github.com/wk8/go-ordered-map/v2 v2.1.8 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/networkdevice/profile/go.sum b/pkg/networkdevice/profile/go.sum index 695fa1448f3c5..f5c14a032fb7a 100644 --- a/pkg/networkdevice/profile/go.sum +++ b/pkg/networkdevice/profile/go.sum @@ -5,8 +5,8 @@ github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx2 github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/invopop/jsonschema v0.10.0 h1:c1ktzNLBun3LyQQhyty5WE3lulbOdIIyOVlkmDLehcE= -github.com/invopop/jsonschema v0.10.0/go.mod h1:ffZ5Km5SWWRAIN6wbDXItl95euhFz2uON45H2qjYt+0= +github.com/invopop/jsonschema v0.12.0 h1:6ovsNSuvn9wEQVOyc72aycBMVQFKz7cPdMJn10CvzRI= +github.com/invopop/jsonschema v0.12.0/go.mod h1:ffZ5Km5SWWRAIN6wbDXItl95euhFz2uON45H2qjYt+0= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= @@ -21,8 +21,8 @@ github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsK github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 h1:lZUw3E0/J3roVtGQ+SCrUrg3ON6NgVqpn3+iol9aGu4= github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPOhJotwFIyu2bBVN41fcDUY= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= diff --git a/pkg/obfuscate/go.mod b/pkg/obfuscate/go.mod index a3d535152eaea..198c5c2fc5cfe 100644 --- a/pkg/obfuscate/go.mod +++ b/pkg/obfuscate/go.mod @@ -4,20 +4,24 @@ go 1.22.0 require ( github.com/DataDog/datadog-go/v5 v5.5.0 - github.com/DataDog/go-sqllexer v0.0.16 - github.com/outcaste-io/ristretto v0.2.1 + github.com/DataDog/go-sqllexer v0.0.17 + github.com/outcaste-io/ristretto v0.2.3 github.com/stretchr/testify v1.10.0 - go.uber.org/atomic v1.10.0 + go.uber.org/atomic v1.11.0 ) require ( - github.com/Microsoft/go-winio v0.5.1 // indirect - github.com/cespare/xxhash/v2 v2.1.1 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/dustin/go-humanize v1.0.0 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect + github.com/dustin/go-humanize v1.0.1 // indirect + github.com/kr/pretty v0.3.1 // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect golang.org/x/net v0.31.0 // indirect golang.org/x/sys v0.27.0 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/obfuscate/go.sum b/pkg/obfuscate/go.sum index 67a3e97516066..7a042c0a114ed 100644 --- a/pkg/obfuscate/go.sum +++ b/pkg/obfuscate/go.sum @@ -1,26 +1,43 @@ github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU= github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw= -github.com/DataDog/go-sqllexer v0.0.16 h1:RoSUMS6MECyB3gTUIdydzXwK5NhEhv6GMJkS7ptsgRA= -github.com/DataDog/go-sqllexer v0.0.16/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc= +github.com/DataDog/go-sqllexer v0.0.17 h1:u47fJAVg/+5DA74ZW3w0Qu+3qXHd3GtnA8ZBYixdPrM= +github.com/DataDog/go-sqllexer v0.0.17/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc= github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= -github.com/Microsoft/go-winio v0.5.1 h1:aPJp2QD7OOrhO5tQXqQoGSJc+DjDtWTGLOmNyAm6FgY= -github.com/Microsoft/go-winio v0.5.1/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= -github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 h1:tdlZCpZ/P9DhczCTSixgIKmwPv6+wP5DGjqLYw5SUiA= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= -github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= +github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= +github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= -github.com/outcaste-io/ristretto v0.2.1 h1:KCItuNIGJZcursqHr3ghO7fc5ddZLEHspL9UR0cQM64= -github.com/outcaste-io/ristretto v0.2.1/go.mod h1:W8HywhmtlopSB1jeMg3JtdIhf+DYkLAr0VN/s4+MHac= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/outcaste-io/ristretto v0.2.3 h1:AK4zt/fJ76kjlYObOeNwh4T3asEuaCmp26pOvUOL9w0= +github.com/outcaste-io/ristretto v0.2.3/go.mod h1:W8HywhmtlopSB1jeMg3JtdIhf+DYkLAr0VN/s4+MHac= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= @@ -37,8 +54,8 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= -go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= +go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -68,8 +85,9 @@ golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/orchestrator/model/go.mod b/pkg/orchestrator/model/go.mod index aa1b1dac4469c..1ae7dce9631db 100644 --- a/pkg/orchestrator/model/go.mod +++ b/pkg/orchestrator/model/go.mod @@ -15,6 +15,7 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect + github.com/kr/text v0.2.0 // indirect go.uber.org/atomic v1.11.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/pkg/orchestrator/model/go.sum b/pkg/orchestrator/model/go.sum index 2a28262f8369e..a1eb366cd0a06 100644 --- a/pkg/orchestrator/model/go.sum +++ b/pkg/orchestrator/model/go.sum @@ -1,17 +1,25 @@ github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/pkg/process/util/api/go.mod b/pkg/process/util/api/go.mod index 93976516667be..ace4dc3c689e7 100644 --- a/pkg/process/util/api/go.mod +++ b/pkg/process/util/api/go.mod @@ -11,7 +11,7 @@ replace ( ) require ( - github.com/DataDog/agent-payload/v5 v5.0.114 + github.com/DataDog/agent-payload/v5 v5.0.137 github.com/DataDog/datadog-agent/pkg/telemetry v0.56.0-rc.3 github.com/gogo/protobuf v1.3.2 github.com/stretchr/testify v1.10.0 @@ -22,36 +22,37 @@ require ( github.com/DataDog/datadog-agent/comp/def v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.55.0 // indirect - github.com/DataDog/mmh3 v0.0.0-20200805151601-30884ca2197a // indirect - github.com/DataDog/zstd v1.4.8 // indirect + github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 // indirect + github.com/DataDog/zstd v1.5.6 // indirect github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/go-logr/logr v1.4.1 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/golang/protobuf v1.5.3 // indirect + github.com/google/uuid v1.6.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_golang v1.17.0 // indirect - github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.44.0 // indirect - github.com/prometheus/procfs v0.11.1 // indirect - github.com/spf13/cobra v1.7.0 // indirect + github.com/klauspost/compress v1.17.11 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/prometheus/client_golang v1.20.5 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.60.1 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/pflag v1.0.5 // indirect - go.opentelemetry.io/otel v1.27.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.42.0 // indirect - go.opentelemetry.io/otel/metric v1.27.0 // indirect - go.opentelemetry.io/otel/sdk v1.27.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.27.0 // indirect - go.opentelemetry.io/otel/trace v1.27.0 // indirect - go.uber.org/atomic v1.7.0 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect + go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect - go.uber.org/fx v1.22.2 // indirect + go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/sys v0.27.0 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/process/util/api/go.sum b/pkg/process/util/api/go.sum index 7bf6969c0a53f..23c547fd3ce6e 100644 --- a/pkg/process/util/api/go.sum +++ b/pkg/process/util/api/go.sum @@ -1,84 +1,82 @@ -github.com/DataDog/agent-payload/v5 v5.0.114 h1:qg3jfzz2/lOFKbFOw2yM6RM8eyMs4HlEGnyDBOTiYmY= -github.com/DataDog/agent-payload/v5 v5.0.114/go.mod h1:COngtbYYCncpIPiE5D93QlXDH/3VAKk10jDNwGHcMRE= -github.com/DataDog/mmh3 v0.0.0-20200805151601-30884ca2197a h1:m9REhmyaWD5YJ0P53ygRHxKKo+KM+nw+zz0hEdKztMo= -github.com/DataDog/mmh3 v0.0.0-20200805151601-30884ca2197a/go.mod h1:SvsjzyJlSg0rKsqYgdcFxeEVflx3ZNAyFfkUHP0TxXg= -github.com/DataDog/zstd v1.4.8 h1:Rpmta4xZ/MgZnriKNd24iZMhGpP5dvUcs/uqfBapKZY= -github.com/DataDog/zstd v1.4.8/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= +github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= +github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 h1:EbzDX8HPk5uE2FsJYxD74QmMw0/3CqSKhEr6teh0ncQ= +github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49/go.mod h1:SvsjzyJlSg0rKsqYgdcFxeEVflx3ZNAyFfkUHP0TxXg= +github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= +github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f h1:5Vuo4niPKFkfwW55jV4vY0ih3VQ9RaQqeqY67fvRn8A= github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f/go.mod h1:oXfOhM/Kr8OvqS6tVqJwxPBornV0yrx3bc+l0BDr7PQ= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0 h1:jwV9iQdvp38fxXi8ZC+lNpxjK16MRcZlpDYvbuO1FiA= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0/go.mod h1:f3bYiqNqhoPxkvI2LrXqQVC546K7BuRDL/kKuxkujhA= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= -go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= +go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= +go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= @@ -94,7 +92,6 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -113,10 +110,8 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/pkg/proto/go.mod b/pkg/proto/go.mod index 3388c80e01d9f..a32e4765c7eef 100644 --- a/pkg/proto/go.mod +++ b/pkg/proto/go.mod @@ -10,25 +10,26 @@ require ( github.com/google/gofuzz v1.2.0 github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/stretchr/testify v1.10.0 - github.com/tinylib/msgp v1.1.8 - github.com/vmihailenco/msgpack/v4 v4.3.12 - google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d - google.golang.org/grpc v1.59.0 - google.golang.org/protobuf v1.33.0 + github.com/tinylib/msgp v1.2.4 + github.com/vmihailenco/msgpack/v4 v4.3.13 + google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 + google.golang.org/grpc v1.67.1 + google.golang.org/protobuf v1.35.2 ) require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/google/go-cmp v0.6.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/kr/pretty v0.3.1 // indirect - github.com/philhofer/fwd v1.1.2 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/vmihailenco/tagparser v0.1.1 // indirect + github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + github.com/vmihailenco/tagparser v0.1.2 // indirect golang.org/x/net v0.31.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect + google.golang.org/appengine v1.6.8 // indirect + google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/proto/go.sum b/pkg/proto/go.sum index eb8bcf8192e2c..f8c2e6a2fb3ba 100644 --- a/pkg/proto/go.sum +++ b/pkg/proto/go.sum @@ -6,8 +6,9 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -22,10 +23,13 @@ github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= @@ -34,29 +38,32 @@ github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/philhofer/fwd v1.1.2 h1:bnDivRJ1EWPjUIRXV5KfORO897HTbpFAQddBdE8t7Gw= -github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2tUTP0= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1GshSTtih8C2gDs04w8dReiOGXrGLNoY= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= -github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= -github.com/vmihailenco/msgpack/v4 v4.3.12 h1:07s4sz9IReOgdikxLTKNbBdqDMLsjPKXwvCazn8G65U= -github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= -github.com/vmihailenco/tagparser v0.1.1 h1:quXMXlA39OCbd2wAdTsGDlK9RkOk6Wuw+x37wVyIuWY= +github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU= +github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= +github.com/vmihailenco/msgpack/v4 v4.3.13 h1:A2wsiTbvp63ilDaWmsk2wjx6xZdxQOvpiNlKBGKKXKI= +github.com/vmihailenco/msgpack/v4 v4.3.13/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= +github.com/vmihailenco/tagparser v0.1.2 h1:gnjoVuB/kljJ5wICEEOpx98oXMWPLj22G67Vbd1qPqc= +github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -69,7 +76,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -83,7 +89,6 @@ golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -94,7 +99,6 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -105,17 +109,15 @@ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -126,7 +128,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -134,29 +135,32 @@ golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8T google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d h1:VBu5YqKPv6XiJ199exd8Br+Aetz+o08F+PLMnwJQHAY= -google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4= -google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d h1:DoPTO70H+bcDXcd39vOqb2viZxgqeBeSGtZ55yZU4/Q= -google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d h1:uvYuEyMHKNt+lT4K3bN6fGswmK8qSvcreM3BwjDh+y4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= +google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 h1:BulPr26Jqjnd4eYDVe+YvyR7Yc2vJGkO5/0UxD0/jZU= +google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:hL97c3SYopEHblzpxRL4lSs523++l8DYxGM1FQiYmb4= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= -google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= +google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/remoteconfig/state/go.mod b/pkg/remoteconfig/state/go.mod index 8c36bdf9eee56..70621d8c5107a 100644 --- a/pkg/remoteconfig/state/go.mod +++ b/pkg/remoteconfig/state/go.mod @@ -5,14 +5,15 @@ go 1.22.0 require ( github.com/DataDog/go-tuf v1.1.0-0.5.2 github.com/pkg/errors v0.9.1 - github.com/secure-systems-lab/go-securesystemslib v0.7.0 + github.com/secure-systems-lab/go-securesystemslib v0.8.0 github.com/stretchr/testify v1.10.0 ) require ( - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/kr/pretty v0.3.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect golang.org/x/crypto v0.29.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/remoteconfig/state/go.sum b/pkg/remoteconfig/state/go.sum index f908ba00a83e8..3f95fd21b0871 100644 --- a/pkg/remoteconfig/state/go.sum +++ b/pkg/remoteconfig/state/go.sum @@ -1,8 +1,8 @@ github.com/DataDog/go-tuf v1.1.0-0.5.2 h1:4CagiIekonLSfL8GMHRHcHudo1fQnxELS9g4tiAupQ4= github.com/DataDog/go-tuf v1.1.0-0.5.2/go.mod h1:zBcq6f654iVqmkk8n2Cx81E1JnNTMOAx1UEO/wZR+P0= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= @@ -12,12 +12,13 @@ github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/secure-systems-lab/go-securesystemslib v0.7.0 h1:OwvJ5jQf9LnIAS83waAjPbcMsODrTQUpJ02eNLUoxBg= -github.com/secure-systems-lab/go-securesystemslib v0.7.0/go.mod h1:/2gYnlnHVQ6xeGtfIqFy7Do03K4cdCY0A/GlJLDKLHI= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/secure-systems-lab/go-securesystemslib v0.8.0 h1:mr5An6X45Kb2nddcFlbmfHkLguCE9laoZCUzEEpIZXA= +github.com/secure-systems-lab/go-securesystemslib v0.8.0/go.mod h1:UH2VZVuJfCYR8WgMlCU1uFsOUU+KeyrTWcSS73NBOzU= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= diff --git a/pkg/security/events/event.go b/pkg/security/events/event.go index ae863ac3d0777..71d1c46696b5c 100644 --- a/pkg/security/events/event.go +++ b/pkg/security/events/event.go @@ -1,4 +1,4 @@ -//go:generate go run github.com/mailru/easyjson/easyjson -gen_build_flags=-mod=mod -no_std_marshalers $GOFILE +//go:generate go run github.com/mailru/easyjson/easyjson -gen_build_flags=-mod=readonly -no_std_marshalers $GOFILE // Unless explicitly stated otherwise all files in this repository are licensed // under the Apache License Version 2.0. diff --git a/pkg/security/probe/actions.go b/pkg/security/probe/actions.go index 24af2b8b6a5f6..854ced88dbada 100644 --- a/pkg/security/probe/actions.go +++ b/pkg/security/probe/actions.go @@ -1,4 +1,4 @@ -//go:generate go run github.com/mailru/easyjson/easyjson -gen_build_flags=-mod=mod -no_std_marshalers $GOFILE +//go:generate go run github.com/mailru/easyjson/easyjson -gen_build_flags=-mod=readonly -no_std_marshalers $GOFILE // Unless explicitly stated otherwise all files in this repository are licensed // under the Apache License Version 2.0. diff --git a/pkg/security/probe/actions_linux.go b/pkg/security/probe/actions_linux.go index fe2ac84377d97..1acbe84b1df54 100644 --- a/pkg/security/probe/actions_linux.go +++ b/pkg/security/probe/actions_linux.go @@ -1,4 +1,4 @@ -//go:generate go run github.com/mailru/easyjson/easyjson -gen_build_flags=-mod=mod -no_std_marshalers -build_tags linux $GOFILE +//go:generate go run github.com/mailru/easyjson/easyjson -gen_build_flags=-mod=readonly -no_std_marshalers -build_tags linux $GOFILE // Unless explicitly stated otherwise all files in this repository are licensed // under the Apache License Version 2.0. diff --git a/pkg/security/probe/custom_events.go b/pkg/security/probe/custom_events.go index 88ce01daa3c2d..9c077ce7f9978 100644 --- a/pkg/security/probe/custom_events.go +++ b/pkg/security/probe/custom_events.go @@ -1,4 +1,4 @@ -//go:generate go run github.com/mailru/easyjson/easyjson -gen_build_flags=-mod=mod -no_std_marshalers -build_tags linux $GOFILE +//go:generate go run github.com/mailru/easyjson/easyjson -gen_build_flags=-mod=readonly -no_std_marshalers -build_tags linux $GOFILE // Unless explicitly stated otherwise all files in this repository are licensed // under the Apache License Version 2.0. diff --git a/pkg/security/rules/monitor/policy_monitor.go b/pkg/security/rules/monitor/policy_monitor.go index 62ccd37813785..8b290230619b4 100644 --- a/pkg/security/rules/monitor/policy_monitor.go +++ b/pkg/security/rules/monitor/policy_monitor.go @@ -1,4 +1,4 @@ -//go:generate go run github.com/mailru/easyjson/easyjson -gen_build_flags=-mod=mod -no_std_marshalers $GOFILE +//go:generate go run github.com/mailru/easyjson/easyjson -gen_build_flags=-mod=readonly -no_std_marshalers $GOFILE // Unless explicitly stated otherwise all files in this repository are licensed // under the Apache License Version 2.0. diff --git a/pkg/security/secl/compiler/generators/accessors/accessors.go b/pkg/security/secl/compiler/generators/accessors/accessors.go index f1cc6fe601060..7cc177beadfbe 100644 --- a/pkg/security/secl/compiler/generators/accessors/accessors.go +++ b/pkg/security/secl/compiler/generators/accessors/accessors.go @@ -708,7 +708,7 @@ func newAstFiles(cfg *packages.Config, files ...string) (*AstFiles, error) { func parseFile(modelFile string, typesFile string, pkgName string) (*common.Module, error) { cfg := packages.Config{ Mode: packages.NeedSyntax | packages.NeedTypes | packages.NeedImports, - BuildFlags: []string{"-mod=mod", fmt.Sprintf("-tags=%s", buildTags)}, + BuildFlags: []string{"-mod=readonly", fmt.Sprintf("-tags=%s", buildTags)}, } astFiles, err := newAstFiles(&cfg, modelFile, typesFile) diff --git a/pkg/security/secl/compiler/generators/accessors/doc/doc.go b/pkg/security/secl/compiler/generators/accessors/doc/doc.go index 69a2068684a54..2e53708e2fffc 100644 --- a/pkg/security/secl/compiler/generators/accessors/doc/doc.go +++ b/pkg/security/secl/compiler/generators/accessors/doc/doc.go @@ -317,7 +317,7 @@ func parseConstantsFile(filepath string, tags []string) ([]constants, error) { var output []constants cfg := packages.Config{ Mode: packages.NeedSyntax | packages.NeedTypes | packages.NeedImports, - BuildFlags: []string{"-mod=mod", fmt.Sprintf("-tags=%s", tags)}, + BuildFlags: []string{"-mod=readonly", fmt.Sprintf("-tags=%s", tags)}, } pkgs, err := packages.Load(&cfg, filepath) diff --git a/pkg/security/secl/go.mod b/pkg/security/secl/go.mod index 90fe310f06435..240c0e4adc6a0 100644 --- a/pkg/security/secl/go.mod +++ b/pkg/security/secl/go.mod @@ -6,7 +6,7 @@ require ( github.com/Masterminds/semver/v3 v3.3.1 github.com/Masterminds/sprig/v3 v3.3.0 github.com/alecthomas/participle v0.7.1 - github.com/davecgh/go-spew v1.1.1 + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/fatih/structtag v1.2.0 github.com/fsnotify/fsnotify v1.8.0 github.com/google/go-cmp v0.6.0 @@ -31,14 +31,15 @@ require ( dario.cat/mergo v1.0.1 // indirect github.com/Masterminds/goutils v1.1.1 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/hashicorp/errwrap v1.0.0 // indirect + github.com/hashicorp/errwrap v1.1.0 // indirect github.com/huandu/xstrings v1.5.0 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect github.com/shopspring/decimal v1.4.0 // indirect - github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect + github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect golang.org/x/crypto v0.29.0 // indirect golang.org/x/mod v0.22.0 // indirect diff --git a/pkg/security/secl/go.sum b/pkg/security/secl/go.sum index 16e4c35e91833..11c7021651ae9 100644 --- a/pkg/security/secl/go.sum +++ b/pkg/security/secl/go.sum @@ -10,8 +10,9 @@ github.com/alecthomas/participle v0.7.1 h1:2bN7reTw//5f0cugJcTOnY/NYZcWQOaajW+Bw github.com/alecthomas/participle v0.7.1/go.mod h1:HfdmEuwvr12HXQN44HPWXR0lHmVolVYe4dyL6lQ3duY= github.com/alecthomas/repr v0.0.0-20181024024818-d37bc2a10ba1/go.mod h1:xTS7Pm1pD1mvyM075QCDSRqH6qRLXylzS24ZTpRiSzQ= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -25,8 +26,9 @@ github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo/Vo+TKTo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= @@ -46,12 +48,13 @@ github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa1 github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= github.com/skydive-project/go-debouncer v1.0.0 h1:cqU19PyN7WXsnSlMTANvnHws6lGcbVOH2aDQzwe6qbk= @@ -63,8 +66,9 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= diff --git a/pkg/security/seclwin/go.sum b/pkg/security/seclwin/go.sum index 1449dfd6b9037..502e756cc9c46 100644 --- a/pkg/security/seclwin/go.sum +++ b/pkg/security/seclwin/go.sum @@ -2,12 +2,14 @@ github.com/alecthomas/participle v0.7.1 h1:2bN7reTw//5f0cugJcTOnY/NYZcWQOaajW+Bw github.com/alecthomas/participle v0.7.1/go.mod h1:HfdmEuwvr12HXQN44HPWXR0lHmVolVYe4dyL6lQ3duY= github.com/alecthomas/repr v0.0.0-20181024024818-d37bc2a10ba1/go.mod h1:xTS7Pm1pD1mvyM075QCDSRqH6qRLXylzS24ZTpRiSzQ= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/jellydator/ttlcache/v3 v3.3.0 h1:BdoC9cE81qXfrxeb9eoJi9dWrdhSuwXMAnHTbnBm4Wc= github.com/jellydator/ttlcache/v3 v3.3.0/go.mod h1:bj2/e0l4jRnQdrnSTaGTsh4GSXvMjQcy41i7th0GVGw= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= diff --git a/pkg/security/serializers/serializers_linux.go b/pkg/security/serializers/serializers_linux.go index f60785c997a09..69b1cf0bd225a 100644 --- a/pkg/security/serializers/serializers_linux.go +++ b/pkg/security/serializers/serializers_linux.go @@ -1,5 +1,5 @@ -//go:generate go run github.com/mailru/easyjson/easyjson -gen_build_flags=-mod=mod -no_std_marshalers -build_tags linux $GOFILE -//go:generate go run github.com/mailru/easyjson/easyjson -gen_build_flags=-mod=mod -no_std_marshalers -build_tags linux -output_filename serializers_base_linux_easyjson.go serializers_base.go +//go:generate go run github.com/mailru/easyjson/easyjson -gen_build_flags=-mod=readonly -no_std_marshalers -build_tags linux $GOFILE +//go:generate go run github.com/mailru/easyjson/easyjson -gen_build_flags=-mod=readonly -no_std_marshalers -build_tags linux -output_filename serializers_base_linux_easyjson.go serializers_base.go //go:generate go run github.com/DataDog/datadog-agent/pkg/security/generators/backend_doc -output ../../../docs/cloud-workload-security/backend_linux.schema.json // Unless explicitly stated otherwise all files in this repository are licensed diff --git a/pkg/serializer/go.mod b/pkg/serializer/go.mod index 891083ce4c897..86cd54dd93156 100644 --- a/pkg/serializer/go.mod +++ b/pkg/serializer/go.mod @@ -63,7 +63,7 @@ replace ( ) require ( - github.com/DataDog/agent-payload/v5 v5.0.114 + github.com/DataDog/agent-payload/v5 v5.0.137 github.com/DataDog/datadog-agent/comp/core/config v0.57.1 github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder v0.56.0-rc.3 github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorinterface v0.56.0-rc.3 @@ -83,9 +83,9 @@ require ( github.com/gogo/protobuf v1.3.2 github.com/json-iterator/go v1.1.12 github.com/protocolbuffers/protoscope v0.0.0-20221109213918-8e7a6aafa2c9 - github.com/richardartoul/molecule v1.0.1-0.20221107223329-32cfee06a052 + github.com/richardartoul/molecule v1.0.1-0.20240531184615-7ca0df43c0b3 github.com/stretchr/testify v1.10.0 - google.golang.org/protobuf v1.34.2 + google.golang.org/protobuf v1.35.2 ) require ( @@ -122,28 +122,30 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 // indirect - github.com/DataDog/sketches-go v1.4.4 // indirect + github.com/DataDog/sketches-go v1.4.6 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/DataDog/zstd v1.5.5 // indirect + github.com/DataDog/zstd v1.5.6 // indirect github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dustin/go-humanize v1.0.1 // indirect - github.com/fatih/color v1.16.0 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-logr/logr v1.4.1 // indirect + github.com/fatih/color v1.18.0 // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/golang/protobuf v1.5.3 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/golang/protobuf v1.5.4 // indirect + github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect + github.com/klauspost/compress v1.17.11 // indirect github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect @@ -152,44 +154,42 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect github.com/pelletier/go-toml v1.9.5 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/prometheus/client_golang v1.18.0 // indirect - github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.46.0 // indirect - github.com/prometheus/procfs v0.12.0 // indirect - github.com/shirou/gopsutil/v3 v3.24.4 // indirect + github.com/prometheus/client_golang v1.20.5 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.60.1 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.8.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/objx v0.5.2 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/twmb/murmur3 v1.1.8 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/otel v1.27.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.45.0 // indirect - go.opentelemetry.io/otel/metric v1.27.0 // indirect - go.opentelemetry.io/otel/sdk v1.27.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.27.0 // indirect - go.opentelemetry.io/otel/trace v1.27.0 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect - go.uber.org/fx v1.22.2 // indirect + go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/serializer/go.sum b/pkg/serializer/go.sum index 6244a063459c5..91309beefcd32 100644 --- a/pkg/serializer/go.sum +++ b/pkg/serializer/go.sum @@ -1,23 +1,23 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.114 h1:qg3jfzz2/lOFKbFOw2yM6RM8eyMs4HlEGnyDBOTiYmY= -github.com/DataDog/agent-payload/v5 v5.0.114/go.mod h1:COngtbYYCncpIPiE5D93QlXDH/3VAKk10jDNwGHcMRE= +github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= +github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 h1:EbzDX8HPk5uE2FsJYxD74QmMw0/3CqSKhEr6teh0ncQ= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49/go.mod h1:SvsjzyJlSg0rKsqYgdcFxeEVflx3ZNAyFfkUHP0TxXg= github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.21.0 h1:VS4NTqwczwezMVvI6A7xYR3ugPmMUJ4FcdFrsdnZI2I= github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.21.0/go.mod h1:66XlN7QpQKqIvw8e2UbCXV5X8wGnEw851nT9BjJ75dY= github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 h1:/Dp1WBvekdusS9Tw9pLE7RG04eluNktQ29arLS4SpGM= github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0/go.mod h1:asNuwNy1O2HbadkcZVuqmFGonfEzXS/SBvOo8V1MJvQ= -github.com/DataDog/sketches-go v1.4.4 h1:dF52vzXRFSPOj2IjXSWLvXq3jubL4CI69kwYjJ1w5Z8= -github.com/DataDog/sketches-go v1.4.4/go.mod h1:XR0ns2RtEEF09mDKXiKZiQg+nfZStrq1ZuL1eezeZe0= +github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I= +github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= -github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= +github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f h1:5Vuo4niPKFkfwW55jV4vY0ih3VQ9RaQqeqY67fvRn8A= github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f/go.mod h1:oXfOhM/Kr8OvqS6tVqJwxPBornV0yrx3bc+l0BDr7PQ= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -45,7 +45,7 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -56,25 +56,26 @@ github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkp github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= -github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -90,14 +91,13 @@ github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= @@ -106,6 +106,8 @@ github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -138,6 +140,8 @@ github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvW github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -147,7 +151,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= @@ -171,6 +176,8 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= @@ -185,50 +192,49 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= -github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.46.0 h1:doXzt5ybi1HBKpsZOL0sSkaNHJJqkyfEWZGGqqScV0Y= -github.com/prometheus/common v0.46.0/go.mod h1:Tp0qkxpb9Jsg54QMe+EAmqXkSV7Evdy1BTn+g2pa/hQ= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= -github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/protocolbuffers/protoscope v0.0.0-20221109213918-8e7a6aafa2c9 h1:arwj11zP0yJIxIRiDn22E0H8PxfF7TsTrc2wIPFIsf4= github.com/protocolbuffers/protoscope v0.0.0-20221109213918-8e7a6aafa2c9/go.mod h1:SKZx6stCn03JN3BOWTwvVIO2ajMkb/zQdTceXYhKw/4= -github.com/richardartoul/molecule v1.0.1-0.20221107223329-32cfee06a052 h1:Qp27Idfgi6ACvFQat5+VJvlYToylpM/hcyLBI3WaKPA= -github.com/richardartoul/molecule v1.0.1-0.20221107223329-32cfee06a052/go.mod h1:uvX/8buq8uVeiZiFht+0lqSLBHF+uGV8BrTv8W/SIwk= +github.com/richardartoul/molecule v1.0.1-0.20240531184615-7ca0df43c0b3 h1:4+LEVOB87y175cLJC/mbsgKmoDOjrBldtXvioEy96WY= +github.com/richardartoul/molecule v1.0.1-0.20240531184615-7ca0df43c0b3/go.mod h1:vl5+MqJ1nBINuSsUI2mGgH79UweUT/B5Fy8857PqyyI= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.4 h1:dEHgzZXt4LMNm+oYELpzl9YCqV65Yr/6SfrvgRBtXeU= -github.com/shirou/gopsutil/v3 v3.24.4/go.mod h1:lTd2mdiOspcqLgAnr9/nGi71NkeMpWKdmhuxm9GusH8= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -241,8 +247,8 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= -github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= @@ -252,26 +258,19 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/twmb/murmur3 v1.1.8 h1:8Yt9taO/WN3l08xErzjeschgZU2QSrwm1kclYq+0aRg= @@ -286,26 +285,26 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/exporters/prometheus v0.45.0 h1:BeIK2KGho0oCWa7LxEGSqfDZbs7Fpv/Viz+FS4P8CXE= -go.opentelemetry.io/otel/exporters/prometheus v0.45.0/go.mod h1:UVJZPLnfDSvHj+eJuZE+E1GjIBD267mEMfAAHJdghWg= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -332,8 +331,6 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -356,8 +353,6 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -372,10 +367,8 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -398,8 +391,6 @@ golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -415,11 +406,9 @@ google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -437,7 +426,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= diff --git a/pkg/status/health/go.mod b/pkg/status/health/go.mod index e5bb4fffa9003..9dcbb6c5fc150 100644 --- a/pkg/status/health/go.mod +++ b/pkg/status/health/go.mod @@ -5,7 +5,10 @@ go 1.22.0 require github.com/stretchr/testify v1.10.0 require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/status/health/go.sum b/pkg/status/health/go.sum index 713a0b4f0a3a9..cec386e1e2769 100644 --- a/pkg/status/health/go.sum +++ b/pkg/status/health/go.sum @@ -1,10 +1,23 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/tagset/go.mod b/pkg/tagset/go.mod index ac929946f609e..77cf7107e3e20 100644 --- a/pkg/tagset/go.mod +++ b/pkg/tagset/go.mod @@ -11,7 +11,8 @@ require ( ) require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/text v0.2.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/tagset/go.sum b/pkg/tagset/go.sum index 61bd0aafe2d5f..9cca525711c4d 100644 --- a/pkg/tagset/go.sum +++ b/pkg/tagset/go.sum @@ -1,12 +1,20 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/twmb/murmur3 v1.1.8 h1:8Yt9taO/WN3l08xErzjeschgZU2QSrwm1kclYq+0aRg= github.com/twmb/murmur3 v1.1.8/go.mod h1:Qq/R7NUyOfr65zD+6Q5IHKsJLwP7exErjN6lyyq3OSQ= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/telemetry/go.mod b/pkg/telemetry/go.mod index 1380e174bb06c..afc389ba20fe9 100644 --- a/pkg/telemetry/go.mod +++ b/pkg/telemetry/go.mod @@ -11,7 +11,7 @@ replace ( require ( github.com/DataDog/datadog-agent/comp/core/telemetry v0.56.0-rc.3 - go.uber.org/atomic v1.7.0 + go.uber.org/atomic v1.11.0 ) require ( @@ -19,32 +19,33 @@ require ( github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.55.0 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/go-logr/logr v1.4.1 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/golang/protobuf v1.5.3 // indirect + github.com/google/uuid v1.6.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_golang v1.17.0 // indirect - github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.44.0 // indirect - github.com/prometheus/procfs v0.11.1 // indirect - github.com/spf13/cobra v1.7.0 // indirect + github.com/klauspost/compress v1.17.11 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/prometheus/client_golang v1.20.5 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.60.1 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/testify v1.10.0 // indirect - go.opentelemetry.io/otel v1.27.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.42.0 // indirect - go.opentelemetry.io/otel/metric v1.27.0 // indirect - go.opentelemetry.io/otel/sdk v1.27.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.27.0 // indirect - go.opentelemetry.io/otel/trace v1.27.0 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/dig v1.18.0 // indirect - go.uber.org/fx v1.22.2 // indirect + go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/sys v0.27.0 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/telemetry/go.sum b/pkg/telemetry/go.sum index 485978297a294..7ee9bb36da0a0 100644 --- a/pkg/telemetry/go.sum +++ b/pkg/telemetry/go.sum @@ -1,84 +1,78 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0 h1:jwV9iQdvp38fxXi8ZC+lNpxjK16MRcZlpDYvbuO1FiA= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0/go.mod h1:f3bYiqNqhoPxkvI2LrXqQVC546K7BuRDL/kKuxkujhA= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= -go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= +go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= +go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/pkg/trace/go.mod b/pkg/trace/go.mod index 3dd9fd6abd609..331d452284d45 100644 --- a/pkg/trace/go.mod +++ b/pkg/trace/go.mod @@ -23,9 +23,9 @@ require ( github.com/DataDog/datadog-go/v5 v5.5.0 github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 github.com/DataDog/sketches-go v1.4.6 - github.com/Microsoft/go-winio v0.6.1 + github.com/Microsoft/go-winio v0.6.2 github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 - github.com/davecgh/go-spew v1.1.1 + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/golang/mock v1.6.0 github.com/golang/protobuf v1.5.4 github.com/google/go-cmp v0.6.0 @@ -34,8 +34,8 @@ require ( github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 github.com/shirou/gopsutil/v3 v3.24.4 github.com/stretchr/testify v1.10.0 - github.com/tinylib/msgp v1.1.8 - github.com/vmihailenco/msgpack/v4 v4.3.12 + github.com/tinylib/msgp v1.2.4 + github.com/vmihailenco/msgpack/v4 v4.3.13 go.opentelemetry.io/collector/component v0.114.0 // indirect go.opentelemetry.io/collector/consumer v0.114.0 go.opentelemetry.io/collector/pdata v1.20.0 @@ -47,9 +47,9 @@ require ( golang.org/x/sys v0.27.0 golang.org/x/time v0.8.0 google.golang.org/grpc v1.67.1 - google.golang.org/protobuf v1.35.1 + google.golang.org/protobuf v1.35.2 gopkg.in/ini.v1 v1.67.0 - k8s.io/apimachinery v0.25.5 + k8s.io/apimachinery v0.31.2 ) require go.opentelemetry.io/collector/component/componenttest v0.114.0 @@ -57,37 +57,37 @@ require go.opentelemetry.io/collector/component/componenttest v0.114.0 require go.opentelemetry.io/collector/processor v0.114.0 // indirect require ( - github.com/DataDog/go-sqllexer v0.0.16 // indirect + github.com/DataDog/go-sqllexer v0.0.17 // indirect github.com/DataDog/go-tuf v1.1.0-0.5.2 // indirect - github.com/DataDog/zstd v1.5.5 // indirect + github.com/DataDog/zstd v1.5.6 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/containerd/cgroups/v3 v3.0.2 // indirect + github.com/containerd/cgroups/v3 v3.0.4 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect - github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/godbus/dbus/v5 v5.0.6 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/godbus/dbus/v5 v5.1.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/karrick/godirwalk v1.17.0 // indirect github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/moby/sys/userns v0.1.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 // indirect - github.com/opencontainers/runtime-spec v1.1.0-rc.3 // indirect - github.com/outcaste-io/ristretto v0.2.1 // indirect - github.com/philhofer/fwd v1.1.2 // indirect + github.com/opencontainers/runtime-spec v1.2.0 // indirect + github.com/outcaste-io/ristretto v0.2.3 // indirect + github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/rogpeppe/go-internal v1.12.0 // indirect - github.com/secure-systems-lab/go-securesystemslib v0.7.0 // indirect + github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/shoenig/test v1.7.1 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/vmihailenco/tagparser v0.1.2 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect go.opentelemetry.io/collector/component/componentstatus v0.114.0 // indirect @@ -103,11 +103,8 @@ require ( go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/mod v0.22.0 // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/pkg/trace/go.sum b/pkg/trace/go.sum index 1b9afa36fddb2..57f7c4a1dd4a4 100644 --- a/pkg/trace/go.sum +++ b/pkg/trace/go.sum @@ -1,18 +1,18 @@ github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU= github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw= -github.com/DataDog/go-sqllexer v0.0.16 h1:RoSUMS6MECyB3gTUIdydzXwK5NhEhv6GMJkS7ptsgRA= -github.com/DataDog/go-sqllexer v0.0.16/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc= +github.com/DataDog/go-sqllexer v0.0.17 h1:u47fJAVg/+5DA74ZW3w0Qu+3qXHd3GtnA8ZBYixdPrM= +github.com/DataDog/go-sqllexer v0.0.17/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc= github.com/DataDog/go-tuf v1.1.0-0.5.2 h1:4CagiIekonLSfL8GMHRHcHudo1fQnxELS9g4tiAupQ4= github.com/DataDog/go-tuf v1.1.0-0.5.2/go.mod h1:zBcq6f654iVqmkk8n2Cx81E1JnNTMOAx1UEO/wZR+P0= github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 h1:hgbTFS6SkqbzOiWSfP58dZ/Jpjlmv6dpD4+V4LDHm2Q= github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0/go.mod h1:dvIWN9pA2zWNTw5rhDWZgzZnhcfpH++d+8d1SWW6xkY= github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I= github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= -github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= -github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= +github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= @@ -22,13 +22,14 @@ github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UF github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= -github.com/containerd/cgroups/v3 v3.0.2 h1:f5WFqIVSgo5IZmtTT3qVBo6TzI1ON6sycSBKkymb9L0= -github.com/containerd/cgroups/v3 v3.0.2/go.mod h1:JUgITrzdFqp42uI2ryGA+ge0ap/nxzYgkGmIcetmErE= +github.com/containerd/cgroups/v3 v3.0.4 h1:2fs7l3P0Qxb1nKWuJNFiwhp2CqiKzho71DQkDrHJIo4= +github.com/containerd/cgroups/v3 v3.0.4/go.mod h1:SA5DLYnXO8pTGYiAHXz94qvLQTKfVM5GEVisn4jpins= github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= @@ -44,13 +45,14 @@ github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/godbus/dbus/v5 v5.0.6 h1:mkgN1ofwASrYnJ5W6U/BxG15eXXXjirgZc7CLqkcaro= -github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= +github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= @@ -106,6 +108,8 @@ github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa1 github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= +github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -119,16 +123,17 @@ github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0/go.mod h1:C9Zgh/N3j4NR2D+1FGAA1YizhFW9OS51DwLUFJTdXN4= github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 h1:I4ZYVRYW3Cjb65sPENZ9kHam/JUMXNEp2n/knJ0C0Vc= github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0/go.mod h1:4BhyIaOn2LS48WS+ZNix4TpP0+goq9gDEtGzth5Cr3M= -github.com/opencontainers/runtime-spec v1.1.0-rc.3 h1:l04uafi6kxByhbxev7OWiuUv0LZxEsYUfDWZ6bztAuU= -github.com/opencontainers/runtime-spec v1.1.0-rc.3/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/outcaste-io/ristretto v0.2.1 h1:KCItuNIGJZcursqHr3ghO7fc5ddZLEHspL9UR0cQM64= -github.com/outcaste-io/ristretto v0.2.1/go.mod h1:W8HywhmtlopSB1jeMg3JtdIhf+DYkLAr0VN/s4+MHac= -github.com/philhofer/fwd v1.1.2 h1:bnDivRJ1EWPjUIRXV5KfORO897HTbpFAQddBdE8t7Gw= -github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2tUTP0= +github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk= +github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/outcaste-io/ristretto v0.2.3 h1:AK4zt/fJ76kjlYObOeNwh4T3asEuaCmp26pOvUOL9w0= +github.com/outcaste-io/ristretto v0.2.3/go.mod h1:W8HywhmtlopSB1jeMg3JtdIhf+DYkLAr0VN/s4+MHac= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1GshSTtih8C2gDs04w8dReiOGXrGLNoY= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= @@ -140,18 +145,19 @@ github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPA github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= -github.com/secure-systems-lab/go-securesystemslib v0.7.0 h1:OwvJ5jQf9LnIAS83waAjPbcMsODrTQUpJ02eNLUoxBg= -github.com/secure-systems-lab/go-securesystemslib v0.7.0/go.mod h1:/2gYnlnHVQ6xeGtfIqFy7Do03K4cdCY0A/GlJLDKLHI= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/secure-systems-lab/go-securesystemslib v0.8.0 h1:mr5An6X45Kb2nddcFlbmfHkLguCE9laoZCUzEEpIZXA= +github.com/secure-systems-lab/go-securesystemslib v0.8.0/go.mod h1:UH2VZVuJfCYR8WgMlCU1uFsOUU+KeyrTWcSS73NBOzU= github.com/shirou/gopsutil/v3 v3.24.4 h1:dEHgzZXt4LMNm+oYELpzl9YCqV65Yr/6SfrvgRBtXeU= github.com/shirou/gopsutil/v3 v3.24.4/go.mod h1:lTd2mdiOspcqLgAnr9/nGi71NkeMpWKdmhuxm9GusH8= github.com/shirou/gopsutil/v4 v4.24.10 h1:7VOzPtfw/5YDU+jLEoBwXwxJbQetULywoSV4RYY7HkM= github.com/shirou/gopsutil/v4 v4.24.10/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= @@ -172,14 +178,16 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= -github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= +github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU= +github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= -github.com/vmihailenco/msgpack/v4 v4.3.12 h1:07s4sz9IReOgdikxLTKNbBdqDMLsjPKXwvCazn8G65U= -github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= +github.com/vmihailenco/msgpack/v4 v4.3.13 h1:A2wsiTbvp63ilDaWmsk2wjx6xZdxQOvpiNlKBGKKXKI= +github.com/vmihailenco/msgpack/v4 v4.3.13/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= github.com/vmihailenco/tagparser v0.1.2 h1:gnjoVuB/kljJ5wICEEOpx98oXMWPLj22G67Vbd1qPqc= github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= @@ -324,15 +332,12 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= -golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 h1:vr/HnozRka3pE4EsMEg1lgkXJkTFJCVUX+S/ZT6wYzM= -golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= +golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= +golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -342,7 +347,6 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -350,9 +354,6 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -367,7 +368,7 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220627191245-f75cf1eec38b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= @@ -375,13 +376,11 @@ golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= @@ -392,9 +391,6 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -404,7 +400,7 @@ gonum.org/v1/gonum v0.15.1/go.mod h1:eZTZuRFrzu5pcyjN5wJhcIhnUdNijYxX1T2IcrOGY0o google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d h1:VBu5YqKPv6XiJ199exd8Br+Aetz+o08F+PLMnwJQHAY= +google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 h1:BulPr26Jqjnd4eYDVe+YvyR7Yc2vJGkO5/0UxD0/jZU= google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= @@ -413,8 +409,8 @@ google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= @@ -426,5 +422,5 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/apimachinery v0.25.5 h1:SQomYHvv+aO43qdu3QKRf9YuI0oI8w3RrOQ1qPbAUGY= -k8s.io/apimachinery v0.25.5/go.mod h1:1S2i1QHkmxc8+EZCIxe/fX5hpldVXk4gvnJInMEb8D4= +k8s.io/apimachinery v0.31.2 h1:i4vUt2hPK56W6mlT7Ry+AO8eEsyxMD1U44NR22CLTYw= +k8s.io/apimachinery v0.31.2/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= diff --git a/pkg/trace/stats/oteltest/go.mod b/pkg/trace/stats/oteltest/go.mod index a95e3c9144023..0f6d4141b9c07 100644 --- a/pkg/trace/stats/oteltest/go.mod +++ b/pkg/trace/stats/oteltest/go.mod @@ -14,7 +14,7 @@ require ( go.opentelemetry.io/collector/pdata v1.20.0 go.opentelemetry.io/collector/semconv v0.114.0 go.opentelemetry.io/otel/metric v1.32.0 - google.golang.org/protobuf v1.35.1 + google.golang.org/protobuf v1.35.2 ) require go.opentelemetry.io/collector/component v0.114.0 // indirect @@ -28,21 +28,21 @@ require ( github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect - github.com/DataDog/go-sqllexer v0.0.16 // indirect + github.com/DataDog/go-sqllexer v0.0.17 // indirect github.com/DataDog/go-tuf v1.1.0-0.5.2 // indirect github.com/DataDog/sketches-go v1.4.6 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/containerd/cgroups/v3 v3.0.2 // indirect + github.com/containerd/cgroups/v3 v3.0.4 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/godbus/dbus/v5 v5.0.6 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/godbus/dbus/v5 v5.1.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/mock v1.6.0 // indirect github.com/golang/protobuf v1.5.4 // indirect @@ -50,20 +50,21 @@ require ( github.com/json-iterator/go v1.1.12 // indirect github.com/karrick/godirwalk v1.17.0 // indirect github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/moby/sys/userns v0.1.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/opencontainers/runtime-spec v1.1.0-rc.3 // indirect - github.com/outcaste-io/ristretto v0.2.1 // indirect - github.com/philhofer/fwd v1.1.2 // indirect + github.com/opencontainers/runtime-spec v1.2.0 // indirect + github.com/outcaste-io/ristretto v0.2.3 // indirect + github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/secure-systems-lab/go-securesystemslib v0.7.0 // indirect - github.com/shirou/gopsutil/v3 v3.24.4 // indirect + github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect - github.com/tinylib/msgp v1.1.8 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/tinylib/msgp v1.2.4 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect go.opentelemetry.io/otel v1.32.0 // indirect @@ -73,13 +74,10 @@ require ( go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/mod v0.22.0 // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect golang.org/x/time v0.8.0 // indirect - golang.org/x/tools v0.27.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect diff --git a/pkg/trace/stats/oteltest/go.sum b/pkg/trace/stats/oteltest/go.sum index 471fdccea1d4d..3c983553c9350 100644 --- a/pkg/trace/stats/oteltest/go.sum +++ b/pkg/trace/stats/oteltest/go.sum @@ -1,30 +1,31 @@ github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU= github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw= -github.com/DataDog/go-sqllexer v0.0.16 h1:RoSUMS6MECyB3gTUIdydzXwK5NhEhv6GMJkS7ptsgRA= -github.com/DataDog/go-sqllexer v0.0.16/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc= +github.com/DataDog/go-sqllexer v0.0.17 h1:u47fJAVg/+5DA74ZW3w0Qu+3qXHd3GtnA8ZBYixdPrM= +github.com/DataDog/go-sqllexer v0.0.17/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc= github.com/DataDog/go-tuf v1.1.0-0.5.2 h1:4CagiIekonLSfL8GMHRHcHudo1fQnxELS9g4tiAupQ4= github.com/DataDog/go-tuf v1.1.0-0.5.2/go.mod h1:zBcq6f654iVqmkk8n2Cx81E1JnNTMOAx1UEO/wZR+P0= github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 h1:hgbTFS6SkqbzOiWSfP58dZ/Jpjlmv6dpD4+V4LDHm2Q= github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0/go.mod h1:dvIWN9pA2zWNTw5rhDWZgzZnhcfpH++d+8d1SWW6xkY= github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I= github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= -github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= -github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= +github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= -github.com/containerd/cgroups/v3 v3.0.2 h1:f5WFqIVSgo5IZmtTT3qVBo6TzI1ON6sycSBKkymb9L0= -github.com/containerd/cgroups/v3 v3.0.2/go.mod h1:JUgITrzdFqp42uI2ryGA+ge0ap/nxzYgkGmIcetmErE= +github.com/containerd/cgroups/v3 v3.0.4 h1:2fs7l3P0Qxb1nKWuJNFiwhp2CqiKzho71DQkDrHJIo4= +github.com/containerd/cgroups/v3 v3.0.4/go.mod h1:SA5DLYnXO8pTGYiAHXz94qvLQTKfVM5GEVisn4jpins= github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= @@ -38,18 +39,18 @@ github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/godbus/dbus/v5 v5.0.6 h1:mkgN1ofwASrYnJ5W6U/BxG15eXXXjirgZc7CLqkcaro= -github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= +github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= @@ -68,9 +69,10 @@ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= +github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= +github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -80,29 +82,29 @@ github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0/go.mod h1:C9Zgh/N3j4NR2D+1FGAA1YizhFW9OS51DwLUFJTdXN4= github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 h1:I4ZYVRYW3Cjb65sPENZ9kHam/JUMXNEp2n/knJ0C0Vc= github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0/go.mod h1:4BhyIaOn2LS48WS+ZNix4TpP0+goq9gDEtGzth5Cr3M= -github.com/opencontainers/runtime-spec v1.1.0-rc.3 h1:l04uafi6kxByhbxev7OWiuUv0LZxEsYUfDWZ6bztAuU= -github.com/opencontainers/runtime-spec v1.1.0-rc.3/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/outcaste-io/ristretto v0.2.1 h1:KCItuNIGJZcursqHr3ghO7fc5ddZLEHspL9UR0cQM64= -github.com/outcaste-io/ristretto v0.2.1/go.mod h1:W8HywhmtlopSB1jeMg3JtdIhf+DYkLAr0VN/s4+MHac= -github.com/philhofer/fwd v1.1.2 h1:bnDivRJ1EWPjUIRXV5KfORO897HTbpFAQddBdE8t7Gw= -github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2tUTP0= +github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk= +github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/outcaste-io/ristretto v0.2.3 h1:AK4zt/fJ76kjlYObOeNwh4T3asEuaCmp26pOvUOL9w0= +github.com/outcaste-io/ristretto v0.2.3/go.mod h1:W8HywhmtlopSB1jeMg3JtdIhf+DYkLAr0VN/s4+MHac= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1GshSTtih8C2gDs04w8dReiOGXrGLNoY= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= -github.com/secure-systems-lab/go-securesystemslib v0.7.0 h1:OwvJ5jQf9LnIAS83waAjPbcMsODrTQUpJ02eNLUoxBg= -github.com/secure-systems-lab/go-securesystemslib v0.7.0/go.mod h1:/2gYnlnHVQ6xeGtfIqFy7Do03K4cdCY0A/GlJLDKLHI= -github.com/shirou/gopsutil/v3 v3.24.4 h1:dEHgzZXt4LMNm+oYELpzl9YCqV65Yr/6SfrvgRBtXeU= -github.com/shirou/gopsutil/v3 v3.24.4/go.mod h1:lTd2mdiOspcqLgAnr9/nGi71NkeMpWKdmhuxm9GusH8= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/secure-systems-lab/go-securesystemslib v0.8.0 h1:mr5An6X45Kb2nddcFlbmfHkLguCE9laoZCUzEEpIZXA= +github.com/secure-systems-lab/go-securesystemslib v0.8.0/go.mod h1:UH2VZVuJfCYR8WgMlCU1uFsOUU+KeyrTWcSS73NBOzU= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= @@ -115,24 +117,21 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= -github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= -github.com/vmihailenco/msgpack/v4 v4.3.12 h1:07s4sz9IReOgdikxLTKNbBdqDMLsjPKXwvCazn8G65U= -github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= +github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU= +github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= +github.com/vmihailenco/msgpack/v4 v4.3.13 h1:A2wsiTbvp63ilDaWmsk2wjx6xZdxQOvpiNlKBGKKXKI= +github.com/vmihailenco/msgpack/v4 v4.3.13/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= github.com/vmihailenco/tagparser v0.1.2 h1:gnjoVuB/kljJ5wICEEOpx98oXMWPLj22G67Vbd1qPqc= github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= @@ -187,34 +186,22 @@ go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -225,23 +212,13 @@ golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220627191245-f75cf1eec38b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= @@ -251,10 +228,6 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -265,8 +238,8 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1: google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= @@ -277,5 +250,5 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/apimachinery v0.25.5 h1:SQomYHvv+aO43qdu3QKRf9YuI0oI8w3RrOQ1qPbAUGY= -k8s.io/apimachinery v0.25.5/go.mod h1:1S2i1QHkmxc8+EZCIxe/fX5hpldVXk4gvnJInMEb8D4= +k8s.io/apimachinery v0.31.2 h1:i4vUt2hPK56W6mlT7Ry+AO8eEsyxMD1U44NR22CLTYw= +k8s.io/apimachinery v0.31.2/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= diff --git a/pkg/util/backoff/go.mod b/pkg/util/backoff/go.mod index 9cf1b36b6806f..d2a5b57a10870 100644 --- a/pkg/util/backoff/go.mod +++ b/pkg/util/backoff/go.mod @@ -5,7 +5,10 @@ go 1.22.0 require github.com/stretchr/testify v1.10.0 require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/util/backoff/go.sum b/pkg/util/backoff/go.sum index 713a0b4f0a3a9..cec386e1e2769 100644 --- a/pkg/util/backoff/go.sum +++ b/pkg/util/backoff/go.sum @@ -1,10 +1,23 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/util/buf/go.mod b/pkg/util/buf/go.mod index 4a0c13b4fd2fd..d2485769f9794 100644 --- a/pkg/util/buf/go.mod +++ b/pkg/util/buf/go.mod @@ -5,7 +5,10 @@ go 1.22.0 require github.com/stretchr/testify v1.10.0 require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/util/buf/go.sum b/pkg/util/buf/go.sum index 713a0b4f0a3a9..cec386e1e2769 100644 --- a/pkg/util/buf/go.sum +++ b/pkg/util/buf/go.sum @@ -1,10 +1,23 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/util/cache/go.mod b/pkg/util/cache/go.mod index 16941396b78b5..ff5c3844dd6cc 100644 --- a/pkg/util/cache/go.mod +++ b/pkg/util/cache/go.mod @@ -8,7 +8,10 @@ require ( ) require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/util/cache/go.sum b/pkg/util/cache/go.sum index 291f4f06bcf16..31be5505aa94f 100644 --- a/pkg/util/cache/go.sum +++ b/pkg/util/cache/go.sum @@ -1,12 +1,25 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/util/cgroups/go.mod b/pkg/util/cgroups/go.mod index fdb99e4995e03..582db53aa5134 100644 --- a/pkg/util/cgroups/go.mod +++ b/pkg/util/cgroups/go.mod @@ -11,7 +11,7 @@ replace ( require ( github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/pointer v0.56.0-rc.3 - github.com/containerd/cgroups/v3 v3.0.2 + github.com/containerd/cgroups/v3 v3.0.4 github.com/google/go-cmp v0.6.0 github.com/karrick/godirwalk v1.17.0 github.com/stretchr/testify v1.10.0 @@ -20,15 +20,17 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/coreos/go-systemd/v22 v22.3.2 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/docker/go-units v0.4.0 // indirect - github.com/godbus/dbus/v5 v5.0.4 // indirect - github.com/opencontainers/runtime-spec v1.0.2 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/coreos/go-systemd/v22 v22.5.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/docker/go-units v0.5.0 // indirect + github.com/godbus/dbus/v5 v5.1.0 // indirect + github.com/kr/text v0.2.0 // indirect + github.com/moby/sys/userns v0.1.0 // indirect + github.com/opencontainers/runtime-spec v1.2.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/sys v0.27.0 // indirect - google.golang.org/protobuf v1.27.1 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/util/cgroups/go.sum b/pkg/util/cgroups/go.sum index 5b1eff0bbdf56..3b65e4fa070a9 100644 --- a/pkg/util/cgroups/go.sum +++ b/pkg/util/cgroups/go.sum @@ -1,37 +1,44 @@ github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= -github.com/containerd/cgroups/v3 v3.0.2 h1:f5WFqIVSgo5IZmtTT3qVBo6TzI1ON6sycSBKkymb9L0= -github.com/containerd/cgroups/v3 v3.0.2/go.mod h1:JUgITrzdFqp42uI2ryGA+ge0ap/nxzYgkGmIcetmErE= -github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI= -github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/godbus/dbus/v5 v5.0.4 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA= +github.com/containerd/cgroups/v3 v3.0.4 h1:2fs7l3P0Qxb1nKWuJNFiwhp2CqiKzho71DQkDrHJIo4= +github.com/containerd/cgroups/v3 v3.0.4/go.mod h1:SA5DLYnXO8pTGYiAHXz94qvLQTKfVM5GEVisn4jpins= +github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= +github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/karrick/godirwalk v1.17.0 h1:b4kY7nqDdioR/6qnbHQyDvmA17u5G1cZ6J+CZXwSWoI= github.com/karrick/godirwalk v1.17.0/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= -github.com/opencontainers/runtime-spec v1.0.2 h1:UfAcuLBJB9Coz72x1hgl8O5RVzTdNiaglX6v2DM6FI0= -github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= +github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28= +github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk= +github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/pkg/util/cgroups/memory_controller.go b/pkg/util/cgroups/memory_controller.go index 17b51e755ab4f..998fc2aa0ce87 100644 --- a/pkg/util/cgroups/memory_controller.go +++ b/pkg/util/cgroups/memory_controller.go @@ -12,8 +12,9 @@ import ( "fmt" "syscall" - "github.com/DataDog/datadog-agent/pkg/util/log" cgroupsv1 "github.com/containerd/cgroups/v3/cgroup1" + + "github.com/DataDog/datadog-agent/pkg/util/log" ) const maxEpollEvents = 4 @@ -96,7 +97,7 @@ func NewMemoryController(kind string, containerized bool, monitors ...MemoryMoni cgroupHierarchy = hostHierarchy(cgroupHierarchy) } - cgroup, err := cgroupsv1.Load(path, cgroupsv1.WithHiearchy(cgroupHierarchy)) + cgroup, err := cgroupsv1.Load(path, cgroupsv1.WithHierarchy(cgroupHierarchy)) if err != nil { return nil, fmt.Errorf("can't open memory cgroup: %w", err) } diff --git a/pkg/util/common/go.mod b/pkg/util/common/go.mod index 1971e45bf1627..79e53484a557a 100644 --- a/pkg/util/common/go.mod +++ b/pkg/util/common/go.mod @@ -5,7 +5,10 @@ go 1.22.0 require github.com/stretchr/testify v1.10.0 require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/util/common/go.sum b/pkg/util/common/go.sum index 713a0b4f0a3a9..cec386e1e2769 100644 --- a/pkg/util/common/go.sum +++ b/pkg/util/common/go.sum @@ -1,10 +1,23 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/util/containers/image/go.mod b/pkg/util/containers/image/go.mod index e94471c55838e..f74b85df89a3d 100644 --- a/pkg/util/containers/image/go.mod +++ b/pkg/util/containers/image/go.mod @@ -5,7 +5,10 @@ go 1.22.0 require github.com/stretchr/testify v1.10.0 require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/util/containers/image/go.sum b/pkg/util/containers/image/go.sum index 713a0b4f0a3a9..cec386e1e2769 100644 --- a/pkg/util/containers/image/go.sum +++ b/pkg/util/containers/image/go.sum @@ -1,10 +1,23 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/util/defaultpaths/go.sum b/pkg/util/defaultpaths/go.sum index f51e7d258022c..c3b0b0188c902 100644 --- a/pkg/util/defaultpaths/go.sum +++ b/pkg/util/defaultpaths/go.sum @@ -1,19 +1,26 @@ github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/pkg/util/executable/go.mod b/pkg/util/executable/go.mod index c3081fb6e6913..586ca28e701d7 100644 --- a/pkg/util/executable/go.mod +++ b/pkg/util/executable/go.mod @@ -8,7 +8,10 @@ require ( ) require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/util/executable/go.sum b/pkg/util/executable/go.sum index 575488bc2ce21..cef0f46a4bb39 100644 --- a/pkg/util/executable/go.sum +++ b/pkg/util/executable/go.sum @@ -1,12 +1,25 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/util/filesystem/go.mod b/pkg/util/filesystem/go.mod index 932960867b175..1753d7310cddd 100644 --- a/pkg/util/filesystem/go.mod +++ b/pkg/util/filesystem/go.mod @@ -11,7 +11,7 @@ replace ( require ( github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 - github.com/shirou/gopsutil/v3 v3.23.9 + github.com/shirou/gopsutil/v3 v3.24.5 github.com/stretchr/testify v1.10.0 golang.org/x/sys v0.27.0 ) @@ -19,11 +19,12 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/kr/text v0.2.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/util/filesystem/go.sum b/pkg/util/filesystem/go.sum index 4b150782b098c..e3cc0b7e589e0 100644 --- a/pkg/util/filesystem/go.sum +++ b/pkg/util/filesystem/go.sum @@ -1,50 +1,41 @@ github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= -github.com/shirou/gopsutil/v3 v3.23.9 h1:ZI5bWVeu2ep4/DIxB4U9okeYJ7zp/QLTO4auRb/ty/E= -github.com/shirou/gopsutil/v3 v3.23.9/go.mod h1:x/NWSb71eMcjFIO0vhyGW5nZ7oSIgVjrCnADckb85GA= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= golang.org/x/sys v0.0.0-20190529164535-6a60838ec259/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/util/flavor/go.mod b/pkg/util/flavor/go.mod index 39fabc94b2a48..0ba28971172a6 100644 --- a/pkg/util/flavor/go.mod +++ b/pkg/util/flavor/go.mod @@ -54,37 +54,34 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/util/flavor/go.sum b/pkg/util/flavor/go.sum index e430d7f027344..8e9185a2c429b 100644 --- a/pkg/util/flavor/go.sum +++ b/pkg/util/flavor/go.sum @@ -1,10 +1,9 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -20,8 +19,8 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -34,8 +33,9 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -43,19 +43,20 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -68,18 +69,17 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -87,8 +87,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -112,68 +113,72 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -186,31 +191,27 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -218,27 +219,27 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= @@ -259,8 +260,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -279,8 +278,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -293,9 +290,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -313,8 +308,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -327,13 +320,14 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -345,7 +339,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/util/fxutil/go.mod b/pkg/util/fxutil/go.mod index 83d3e4300e794..249b7b5223891 100644 --- a/pkg/util/fxutil/go.mod +++ b/pkg/util/fxutil/go.mod @@ -5,9 +5,9 @@ go 1.22.0 require ( github.com/DataDog/datadog-agent/comp/def v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/optional v0.55.0 - github.com/spf13/cobra v1.7.0 + github.com/spf13/cobra v1.8.1 github.com/stretchr/testify v1.10.0 - go.uber.org/fx v1.22.2 + go.uber.org/fx v1.23.0 ) replace ( @@ -17,9 +17,9 @@ replace ( ) require ( - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/spf13/pflag v1.0.5 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect diff --git a/pkg/util/fxutil/go.sum b/pkg/util/fxutil/go.sum index 135756fb05924..b6080ae54f78c 100644 --- a/pkg/util/fxutil/go.sum +++ b/pkg/util/fxutil/go.sum @@ -1,21 +1,27 @@ -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= @@ -24,7 +30,8 @@ go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/util/grpc/go.mod b/pkg/util/grpc/go.mod index fb126847139c8..00e5810611bd1 100644 --- a/pkg/util/grpc/go.mod +++ b/pkg/util/grpc/go.mod @@ -39,13 +39,14 @@ require ( github.com/DataDog/datadog-agent/pkg/proto v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 - github.com/grpc-ecosystem/go-grpc-middleware v1.2.0 + github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 github.com/stretchr/testify v1.10.0 golang.org/x/net v0.31.0 - google.golang.org/grpc v1.59.0 + google.golang.org/grpc v1.67.1 ) require ( + cloud.google.com/go/compute/metadata v0.5.2 // indirect github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/config/env v0.59.0 // indirect @@ -66,44 +67,42 @@ require ( github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/philhofer/fwd v1.1.2 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tinylib/msgp v1.1.8 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect + github.com/tinylib/msgp v1.2.4 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect + golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect - google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f // indirect - google.golang.org/protobuf v1.33.0 // indirect + google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/util/grpc/go.sum b/pkg/util/grpc/go.sum index 890d295927625..a97d9be374d64 100644 --- a/pkg/util/grpc/go.sum +++ b/pkg/util/grpc/go.sum @@ -1,16 +1,12 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.110.10 h1:LXy9GEO+timppncPIAZoOj3l58LIU9k+kn48AN7IO3Y= -cloud.google.com/go/compute v1.23.3 h1:6sVlXXBmbd7jNX0Ipq0trII3e4n1/MsADLK6a+aiVlk= -cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= -cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= -cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= +cloud.google.com/go/compute/metadata v0.5.2 h1:UxK4uu/Tn+I3p2dYWTfiX4wva7aYlKixAHn3fyqngqo= +cloud.google.com/go/compute/metadata v0.5.2/go.mod h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -19,6 +15,7 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -27,8 +24,8 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -42,8 +39,9 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -53,23 +51,27 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -85,25 +87,28 @@ github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.2.0 h1:0IKlLyQ3Hs9nDaiK5cSHAGmcQEIC8l2Ts1u6x5Dfrqg= github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9GbyCZHuPgZsrbyIbyKhSzOpg6s= +github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI= +github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -117,6 +122,7 @@ github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uia github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= @@ -127,70 +133,74 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/philhofer/fwd v1.1.2 h1:bnDivRJ1EWPjUIRXV5KfORO897HTbpFAQddBdE8t7Gw= -github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2tUTP0= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1GshSTtih8C2gDs04w8dReiOGXrGLNoY= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -203,33 +213,30 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= -github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU= +github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -237,42 +244,47 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.14.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= +go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= @@ -281,10 +293,8 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -299,24 +309,19 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.15.0 h1:s8pnnxNVzjWyrvYdFUQq5llS1PX2zhPXmccZv99h7uQ= -golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM= +golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= +golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -328,25 +333,15 @@ golang.org/x/sys v0.0.0-20190529164535-6a60838ec259/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -362,28 +357,27 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190927181202-20e1ac93f88c/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 h1:wpZ8pe2x1Q3f2KyT5f8oP/fa9rHAKgFPr/HZdNuS+PQ= -google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:J7XzRzVy1+IPwWHZUzoD0IccYZIrXILAQpc+Qy9CMhY= -google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17 h1:JpwMPBpFN3uKhdaekDpiNlImDdkUAyiJ6ez/uxGaUSo= -google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:0xJLfVdJqpAPl8tDg1ujOCGzx6LFLttXT5NhllGOXY4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f h1:ultW7fxlIvee4HYrtnaRPon9HpEgFk5zYpmfMgtKB5I= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f/go.mod h1:L9KNLi232K1/xB6f7AlSX692koaRnKaWSR0stBki0Yc= +google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 h1:BulPr26Jqjnd4eYDVe+YvyR7Yc2vJGkO5/0UxD0/jZU= +google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:hL97c3SYopEHblzpxRL4lSs523++l8DYxGM1FQiYmb4= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= @@ -391,16 +385,18 @@ google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRn google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= -google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= +google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -410,9 +406,11 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/util/hostname/validate/go.mod b/pkg/util/hostname/validate/go.mod index d3e137199e729..ca6d2889b8178 100644 --- a/pkg/util/hostname/validate/go.mod +++ b/pkg/util/hostname/validate/go.mod @@ -15,8 +15,9 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/text v0.2.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect go.uber.org/atomic v1.11.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/util/hostname/validate/go.sum b/pkg/util/hostname/validate/go.sum index cf981ce9890ae..8c774897583cd 100644 --- a/pkg/util/hostname/validate/go.sum +++ b/pkg/util/hostname/validate/go.sum @@ -1,15 +1,23 @@ github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/pkg/util/http/go.mod b/pkg/util/http/go.mod index 587b03d209013..0d248d6101c9f 100644 --- a/pkg/util/http/go.mod +++ b/pkg/util/http/go.mod @@ -56,37 +56,34 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/util/http/go.sum b/pkg/util/http/go.sum index a371e73ed50c4..c9ded87b54678 100644 --- a/pkg/util/http/go.sum +++ b/pkg/util/http/go.sum @@ -1,10 +1,9 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -20,8 +19,8 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -34,8 +33,9 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -43,19 +43,20 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -68,18 +69,17 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -87,8 +87,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -112,68 +113,72 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -186,31 +191,27 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -218,27 +219,27 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= @@ -259,8 +260,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -281,8 +280,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -295,9 +292,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -315,8 +310,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -329,13 +322,14 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -347,7 +341,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/util/json/go.mod b/pkg/util/json/go.mod index ec6c02f9ba767..ee1a4c70f79d9 100644 --- a/pkg/util/json/go.mod +++ b/pkg/util/json/go.mod @@ -8,9 +8,12 @@ require ( ) require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/util/json/go.sum b/pkg/util/json/go.sum index 2366e268aa511..27d0461f69f40 100644 --- a/pkg/util/json/go.sum +++ b/pkg/util/json/go.sum @@ -1,20 +1,36 @@ +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/util/log/go.mod b/pkg/util/log/go.mod index 0133bd1143b94..3f4354d5c8445 100644 --- a/pkg/util/log/go.mod +++ b/pkg/util/log/go.mod @@ -9,13 +9,13 @@ require ( github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 github.com/stretchr/testify v1.10.0 go.uber.org/atomic v1.11.0 - go.uber.org/zap v1.22.0 + go.uber.org/zap v1.27.0 ) require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - go.uber.org/multierr v1.6.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + go.uber.org/multierr v1.11.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/util/log/go.sum b/pkg/util/log/go.sum index 991cb97eaba89..f46b720dc7374 100644 --- a/pkg/util/log/go.sum +++ b/pkg/util/log/go.sum @@ -1,29 +1,28 @@ -github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= -github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= -go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= -go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/zap v1.22.0 h1:Zcye5DUgBloQ9BaT4qc9BnjOFog5TvBSAGkJ3Nf70c0= -go.uber.org/zap v1.22.0/go.mod h1:H4siCOZOrAolnUPJEkfaSjDqyP+BDS0DdDWzwcgt3+U= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= +go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/pkg/util/log/setup/go.mod b/pkg/util/log/setup/go.mod index 02af09c777767..8eb352e5a4570 100644 --- a/pkg/util/log/setup/go.mod +++ b/pkg/util/log/setup/go.mod @@ -56,36 +56,33 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/magiconair/properties v1.8.1 // indirect - github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/util/log/setup/go.sum b/pkg/util/log/setup/go.sum index e430d7f027344..8e9185a2c429b 100644 --- a/pkg/util/log/setup/go.sum +++ b/pkg/util/log/setup/go.sum @@ -1,10 +1,9 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -20,8 +19,8 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -34,8 +33,9 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -43,19 +43,20 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -68,18 +69,17 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -87,8 +87,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -112,68 +113,72 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -186,31 +191,27 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -218,27 +219,27 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= @@ -259,8 +260,6 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -279,8 +278,6 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -293,9 +290,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -313,8 +308,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -327,13 +320,14 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -345,7 +339,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/util/optional/go.mod b/pkg/util/optional/go.mod index 38b3a76a16a19..296224899d8b2 100644 --- a/pkg/util/optional/go.mod +++ b/pkg/util/optional/go.mod @@ -5,7 +5,10 @@ go 1.22.0 require github.com/stretchr/testify v1.10.0 require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/util/optional/go.sum b/pkg/util/optional/go.sum index 713a0b4f0a3a9..cec386e1e2769 100644 --- a/pkg/util/optional/go.sum +++ b/pkg/util/optional/go.sum @@ -1,10 +1,23 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/util/scrubber/go.mod b/pkg/util/scrubber/go.mod index 7c312e2ffce17..ccabdeab1cacc 100644 --- a/pkg/util/scrubber/go.mod +++ b/pkg/util/scrubber/go.mod @@ -8,7 +8,10 @@ require ( ) require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/util/scrubber/go.sum b/pkg/util/scrubber/go.sum index 9946cb087f892..08716d442d1db 100644 --- a/pkg/util/scrubber/go.sum +++ b/pkg/util/scrubber/go.sum @@ -1,11 +1,24 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/pkg/util/sort/go.mod b/pkg/util/sort/go.mod index 8a2e9f4c0340c..3fd210dd20049 100644 --- a/pkg/util/sort/go.mod +++ b/pkg/util/sort/go.mod @@ -5,7 +5,10 @@ go 1.22.0 require github.com/stretchr/testify v1.10.0 require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/util/sort/go.sum b/pkg/util/sort/go.sum index 713a0b4f0a3a9..cec386e1e2769 100644 --- a/pkg/util/sort/go.sum +++ b/pkg/util/sort/go.sum @@ -1,10 +1,23 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/util/startstop/go.mod b/pkg/util/startstop/go.mod index 4b8aeca58989c..6e36b7c61e125 100644 --- a/pkg/util/startstop/go.mod +++ b/pkg/util/startstop/go.mod @@ -5,7 +5,10 @@ go 1.22.0 require github.com/stretchr/testify v1.10.0 require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/util/startstop/go.sum b/pkg/util/startstop/go.sum index 713a0b4f0a3a9..cec386e1e2769 100644 --- a/pkg/util/startstop/go.sum +++ b/pkg/util/startstop/go.sum @@ -1,10 +1,23 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/util/statstracker/go.mod b/pkg/util/statstracker/go.mod index b6c6b78922c60..6a4e809ad53fb 100644 --- a/pkg/util/statstracker/go.mod +++ b/pkg/util/statstracker/go.mod @@ -5,7 +5,10 @@ go 1.22.0 require github.com/stretchr/testify v1.10.0 require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/util/statstracker/go.sum b/pkg/util/statstracker/go.sum index 713a0b4f0a3a9..cec386e1e2769 100644 --- a/pkg/util/statstracker/go.sum +++ b/pkg/util/statstracker/go.sum @@ -1,10 +1,23 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/util/system/go.mod b/pkg/util/system/go.mod index 511a9d3655ba7..db28f3923c003 100644 --- a/pkg/util/system/go.mod +++ b/pkg/util/system/go.mod @@ -17,7 +17,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/pointer v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/testutil v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/winutil v0.56.0-rc.3 - github.com/shirou/gopsutil/v3 v3.23.12 + github.com/shirou/gopsutil/v3 v3.24.5 github.com/stretchr/testify v1.10.0 go.uber.org/atomic v1.11.0 golang.org/x/sys v0.27.0 @@ -26,16 +26,17 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/go-ole/go-ole v1.3.0 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect + github.com/shoenig/test v1.7.1 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/util/system/go.sum b/pkg/util/system/go.sum index 4a302f99b9afb..0789cc0a43849 100644 --- a/pkg/util/system/go.sum +++ b/pkg/util/system/go.sum @@ -1,57 +1,53 @@ github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= golang.org/x/sys v0.0.0-20190529164535-6a60838ec259/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/util/system/socket/go.mod b/pkg/util/system/socket/go.mod index 576dfe1a6bdd7..d3b2514425928 100644 --- a/pkg/util/system/socket/go.mod +++ b/pkg/util/system/socket/go.mod @@ -2,11 +2,6 @@ module github.com/DataDog/datadog-agent/pkg/util/system/socket go 1.22.0 -require github.com/Microsoft/go-winio v0.6.1 +require github.com/Microsoft/go-winio v0.6.2 -require ( - golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect - golang.org/x/sys v0.27.0 // indirect - golang.org/x/tools v0.27.0 // indirect -) +require golang.org/x/sys v0.27.0 // indirect diff --git a/pkg/util/system/socket/go.sum b/pkg/util/system/socket/go.sum index b3aea922d78cb..58b1be1082c18 100644 --- a/pkg/util/system/socket/go.sum +++ b/pkg/util/system/socket/go.sum @@ -1,10 +1,4 @@ -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= diff --git a/pkg/util/testutil/go.mod b/pkg/util/testutil/go.mod index 68cb7a15be3da..92b5ef4c3a93e 100644 --- a/pkg/util/testutil/go.mod +++ b/pkg/util/testutil/go.mod @@ -8,6 +8,9 @@ require ( ) require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect ) diff --git a/pkg/util/testutil/go.sum b/pkg/util/testutil/go.sum index 713a0b4f0a3a9..cec386e1e2769 100644 --- a/pkg/util/testutil/go.sum +++ b/pkg/util/testutil/go.sum @@ -1,10 +1,23 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/util/utilizationtracker/go.mod b/pkg/util/utilizationtracker/go.mod index 62e98ac848136..e5389a236d02d 100644 --- a/pkg/util/utilizationtracker/go.mod +++ b/pkg/util/utilizationtracker/go.mod @@ -8,7 +8,10 @@ require ( ) require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/util/utilizationtracker/go.sum b/pkg/util/utilizationtracker/go.sum index ff6fcd97668a0..01c43a8e8f184 100644 --- a/pkg/util/utilizationtracker/go.sum +++ b/pkg/util/utilizationtracker/go.sum @@ -1,12 +1,25 @@ github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o= github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/util/uuid/go.mod b/pkg/util/uuid/go.mod index 8c993bf6b7f21..57c48dcf76dee 100644 --- a/pkg/util/uuid/go.mod +++ b/pkg/util/uuid/go.mod @@ -11,21 +11,23 @@ replace ( require ( github.com/DataDog/datadog-agent/pkg/util/cache v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 - github.com/shirou/gopsutil/v3 v3.24.1 + github.com/shirou/gopsutil/v3 v3.24.5 golang.org/x/sys v0.27.0 ) require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/kr/text v0.2.0 // indirect + github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect + github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect + github.com/shoenig/test v1.7.1 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/pkg/util/uuid/go.sum b/pkg/util/uuid/go.sum index 76258cf37685f..c3eee394bf35e 100644 --- a/pkg/util/uuid/go.sum +++ b/pkg/util/uuid/go.sum @@ -1,56 +1,53 @@ github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= +github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= -github.com/shirou/gopsutil/v3 v3.24.1 h1:R3t6ondCEvmARp3wxODhXMTLC/klMa87h2PHUw5m7QI= -github.com/shirou/gopsutil/v3 v3.24.1/go.mod h1:UU7a2MSBQa+kW1uuDq8DeEBS8kmrnQwsv2b5O513rwU= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= +github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/util/winutil/go.mod b/pkg/util/winutil/go.mod index 870749902af1a..f23d0e841a613 100644 --- a/pkg/util/winutil/go.mod +++ b/pkg/util/winutil/go.mod @@ -10,7 +10,7 @@ replace ( require ( github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 - github.com/fsnotify/fsnotify v1.7.0 + github.com/fsnotify/fsnotify v1.8.0 github.com/stretchr/testify v1.10.0 go.uber.org/atomic v1.11.0 golang.org/x/sys v0.27.0 @@ -18,8 +18,9 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/text v0.2.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/util/winutil/go.sum b/pkg/util/winutil/go.sum index 024be704560f4..f752a0e34e2b9 100644 --- a/pkg/util/winutil/go.sum +++ b/pkg/util/winutil/go.sum @@ -1,19 +1,27 @@ github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/pkg/version/go.mod b/pkg/version/go.mod index 19cfbe1f41d48..2ab6870ba025e 100644 --- a/pkg/version/go.mod +++ b/pkg/version/go.mod @@ -5,7 +5,10 @@ go 1.22.0 require github.com/stretchr/testify v1.10.0 require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/version/go.sum b/pkg/version/go.sum index 713a0b4f0a3a9..cec386e1e2769 100644 --- a/pkg/version/go.sum +++ b/pkg/version/go.sum @@ -1,10 +1,23 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/rtloader/test/CMakeLists.txt b/rtloader/test/CMakeLists.txt index 6f4f509ca0a45..785337cc5431f 100644 --- a/rtloader/test/CMakeLists.txt +++ b/rtloader/test/CMakeLists.txt @@ -30,7 +30,7 @@ endif() set (CGO_LDFLAGS \"-L${PROJECT_BINARY_DIR}/three/ ${CGO_LDFLAGS}\") add_custom_command( OUTPUT testPy3 - COMMAND ${CMAKE_COMMAND} -E env CGO_CFLAGS=${CGO_CFLAGS} CGO_LDFLAGS=${CGO_LDFLAGS} DYLD_LIBRARY_PATH=${LIBS_PATH} LD_LIBRARY_PATH=${LIBS_PATH} go test -mod=mod -tags "three" -count=1 -p=1 ${PKGS} + COMMAND ${CMAKE_COMMAND} -E env CGO_CFLAGS=${CGO_CFLAGS} CGO_LDFLAGS=${CGO_LDFLAGS} DYLD_LIBRARY_PATH=${LIBS_PATH} LD_LIBRARY_PATH=${LIBS_PATH} go test -mod=readonly -tags "three" -count=1 -p=1 ${PKGS} ) list(APPEND TARGETS "testPy3") diff --git a/tasks/__init__.py b/tasks/__init__.py index 93ce84f1c37b2..3fdbb3b332605 100644 --- a/tasks/__init__.py +++ b/tasks/__init__.py @@ -104,7 +104,6 @@ install_tools, ) from tasks.junit_tasks import junit_upload -from tasks.libs.common.go_workspaces import handle_go_work from tasks.show_linters_issues.show_linters_issues import show_linters_issues from tasks.update_go import go_version, update_go from tasks.windows_resources import build_messagetable @@ -221,6 +220,3 @@ } } ) - -# disable go workspaces by default -handle_go_work() diff --git a/tasks/agent.py b/tasks/agent.py index a3eee098dd2a9..276c0c372e1e6 100644 --- a/tasks/agent.py +++ b/tasks/agent.py @@ -131,7 +131,7 @@ def build( major_version='7', exclude_rtloader=False, include_sds=False, - go_mod="mod", + go_mod="readonly", windows_sysprobe=False, cmake_options='', agent_bin=None, @@ -526,7 +526,7 @@ def hacky_dev_image_build( @task -def integration_tests(ctx, race=False, remote_docker=False, go_mod="mod", timeout=""): +def integration_tests(ctx, race=False, remote_docker=False, go_mod="readonly", timeout=""): """ Run integration tests for the Agent """ @@ -538,7 +538,7 @@ def integration_tests(ctx, race=False, remote_docker=False, go_mod="mod", timeou return _linux_integration_tests(ctx, race=race, remote_docker=remote_docker, go_mod=go_mod, timeout=timeout) -def _windows_integration_tests(ctx, race=False, go_mod="mod", timeout=""): +def _windows_integration_tests(ctx, race=False, go_mod="readonly", timeout=""): test_args = { "go_mod": go_mod, "go_build_tags": " ".join(get_default_build_tags(build="test")), @@ -576,7 +576,7 @@ def _windows_integration_tests(ctx, race=False, go_mod="mod", timeout=""): ctx.run(f"{go_cmd} {test['prefix']} {test['extra_args']}") -def _linux_integration_tests(ctx, race=False, remote_docker=False, go_mod="mod", timeout=""): +def _linux_integration_tests(ctx, race=False, remote_docker=False, go_mod="readonly", timeout=""): test_args = { "go_mod": go_mod, "go_build_tags": " ".join(get_default_build_tags(build="test")), diff --git a/tasks/bench.py b/tasks/bench.py index bf5a4bb469c71..ca963c5542b99 100644 --- a/tasks/bench.py +++ b/tasks/bench.py @@ -22,7 +22,7 @@ def build_kubernetes_state(ctx): cmd = "go build -mod={go_mod} -tags \"{build_tags}\" -o {bin_name} {REPO_PATH}/test/benchmarks/kubernetes_state" args = { - "go_mod": "mod", + "go_mod": "readonly", "build_tags": " ".join(build_tags), "bin_name": os.path.join(BENCHMARKS_BIN_PATH, bin_name("kubernetes_state")), "REPO_PATH": REPO_PATH, diff --git a/tasks/cluster_agent.py b/tasks/cluster_agent.py index 8b270d3209b1d..f10e7807805e7 100644 --- a/tasks/cluster_agent.py +++ b/tasks/cluster_agent.py @@ -87,7 +87,7 @@ def clean(ctx): @task -def integration_tests(ctx, race=False, remote_docker=False, go_mod="mod", timeout=""): +def integration_tests(ctx, race=False, remote_docker=False, go_mod="readonly", timeout=""): """ Run integration tests for cluster-agent """ diff --git a/tasks/cluster_agent_helpers.py b/tasks/cluster_agent_helpers.py index 57bf7832d49ff..3a1a78c22f03d 100644 --- a/tasks/cluster_agent_helpers.py +++ b/tasks/cluster_agent_helpers.py @@ -20,7 +20,7 @@ def build_common( race, development, skip_assets, - go_mod="mod", + go_mod="readonly", ): """ Build Cluster Agent diff --git a/tasks/cws_instrumentation.py b/tasks/cws_instrumentation.py index 04dad87e6619f..c2cb17b40530c 100644 --- a/tasks/cws_instrumentation.py +++ b/tasks/cws_instrumentation.py @@ -30,7 +30,7 @@ def build( race=False, incremental_build=True, major_version='7', - go_mod="mod", + go_mod="readonly", static=False, no_strip_binary=False, ): diff --git a/tasks/dogstatsd.py b/tasks/dogstatsd.py index c40aeebbd315b..cecbb52059aa3 100644 --- a/tasks/dogstatsd.py +++ b/tasks/dogstatsd.py @@ -30,7 +30,7 @@ def build( build_include=None, build_exclude=None, major_version='7', - go_mod="mod", + go_mod="readonly", ): """ Build Dogstatsd @@ -128,7 +128,7 @@ def run(ctx, rebuild=False, race=False, build_include=None, build_exclude=None, @task -def system_tests(ctx, skip_build=False, go_mod="mod"): +def system_tests(ctx, skip_build=False, go_mod="readonly"): """ Run the system testsuite. """ @@ -170,7 +170,7 @@ def size_test(ctx, skip_build=False): @task -def integration_tests(ctx, race=False, remote_docker=False, go_mod="mod", timeout=""): +def integration_tests(ctx, race=False, remote_docker=False, go_mod="readonly", timeout=""): """ Run integration tests for dogstatsd """ diff --git a/tasks/go.py b/tasks/go.py index 0aefe9624115c..8a7777873d320 100644 --- a/tasks/go.py +++ b/tasks/go.py @@ -127,8 +127,10 @@ def deps_vendored(ctx, verbose=False): with timed("go mod vendor"): verbosity = ' -v' if verbose else '' - ctx.run(f"go mod vendor{verbosity}") - ctx.run(f"go mod tidy{verbosity}") + # We need to set GOWORK=off to avoid the go command to use the go.work directory + # It is needed because it does not work very well with vendoring, we should no longer need it when we get rid of vendoring. ADXR-766 + ctx.run(f"go mod vendor{verbosity}", env={"GOWORK": "off"}) + ctx.run(f"go mod tidy{verbosity}", env={"GOWORK": "off"}) # "go mod vendor" doesn't copy files that aren't in a package: https://github.com/golang/go/issues/26366 # This breaks when deps include other files that are needed (eg: .java files from gomobile): https://github.com/golang/go/issues/43736 @@ -448,6 +450,8 @@ def tidy_all(ctx): def tidy(ctx): check_valid_mods(ctx) + ctx.run("go work sync") + if os.name != 'nt': # not windows import resource diff --git a/tasks/gotest.py b/tasks/gotest.py index e9403679ea40a..444df0fdf4d39 100644 --- a/tasks/gotest.py +++ b/tasks/gotest.py @@ -263,7 +263,7 @@ def test( test_run_name="", save_result_json=None, rerun_fails=None, - go_mod="mod", + go_mod="readonly", junit_tar="", only_modified_packages=False, only_impacted_packages=False, diff --git a/tasks/installer.py b/tasks/installer.py index af259b1b47dbe..fcf650d5c886a 100644 --- a/tasks/installer.py +++ b/tasks/installer.py @@ -28,7 +28,7 @@ def build( run_path=None, build_include=None, build_exclude=None, - go_mod="mod", + go_mod="readonly", no_strip_binary=True, no_cgo=False, ): diff --git a/tasks/kmt.py b/tasks/kmt.py index 2a70c89788ba8..40437b8eff3f3 100644 --- a/tasks/kmt.py +++ b/tasks/kmt.py @@ -543,7 +543,7 @@ def ninja_define_rules(nw: NinjaWriter): nw.rule( name="gotestsuite", - command="$env $go test -mod=mod -v $timeout -tags \"$build_tags\" $extra_arguments -c -o $out $in", + command="$env $go test -mod=readonly -v $timeout -tags \"$build_tags\" $extra_arguments -c -o $out $in", ) nw.rule(name="copyextra", command="cp -r $in $out") nw.rule( diff --git a/tasks/libs/common/go_workspaces.py b/tasks/libs/common/go_workspaces.py deleted file mode 100644 index 8deb3d531c7cf..0000000000000 --- a/tasks/libs/common/go_workspaces.py +++ /dev/null @@ -1,50 +0,0 @@ -import os -import subprocess -import sys - -from tasks.libs.common.color import color_message - - -def handle_go_work(): - """ - If go workspaces aren't explicitly enabled from the environment but there is a go.work file, - this function will print a warning and export GOWORK=off so that subprocesses don't use workspaces. - - At least the following go commands behave differently with workspaces: - - go build - - go list - - go run - - go test - - go vet - - go work - """ - if "GOWORK" in os.environ: - # go work is explicitly set - return - - if len(sys.argv) > 1 and sys.argv[1] == "--complete": - # GOWORK=off is not needed when completing - return - - try: - # find the go.work file - # according to the blog https://go.dev/blog/get-familiar-with-workspaces : - # "The output is empty if the go command is not in workspace mode." - # meaning it didn't find a go.work file in the ancestor directories and GOWORK is not set - res = subprocess.run(["go", "env", "GOWORK"], capture_output=True) - if res.returncode != 0 or res.stdout.decode('UTF-8').strip() == "": - return - except Exception: - # go command not found, no need to care about workspaces - return - - print( - color_message( - "Disabling GOWORK to avoid failures or weird behavior.\n" - "It can be enabled by setting the GOWORK environment variable to the empty string, " - "or to the absolute path of a go.work file.", - "orange", - ), - file=sys.stderr, - ) - os.environ["GOWORK"] = "off" diff --git a/tasks/modules.py b/tasks/modules.py index 43f91a2da959c..90524ef1560a3 100644 --- a/tasks/modules.py +++ b/tasks/modules.py @@ -85,15 +85,6 @@ def go_work(_: Context): and the go version contained in the file .go-version. If there is already a go.work file, it is renamed go.work.backup and a warning is printed. """ - print( - color_message( - "WARNING: Using a go.work file is not supported and can cause weird errors " - "when compiling the agent or running tests.\n" - "Remember to export GOWORK=off to avoid these issues.\n", - "orange", - ), - file=sys.stderr, - ) # read go version from the .go-version file, removing the bugfix part of the version @@ -107,8 +98,7 @@ def go_work(_: Context): with open("go.work", "w") as f: f.write(f"go {go_version}\n\nuse (\n") for mod in get_default_modules().values(): - prefix = "" if mod.should_test() else "//" - f.write(f"\t{prefix}{mod.path}\n") + f.write(f"\t{mod.path}\n") f.write(")\n") diff --git a/tasks/new_e2e_tests.py b/tasks/new_e2e_tests.py index 3bed59ad81164..4b0aef5a214a4 100644 --- a/tasks/new_e2e_tests.py +++ b/tasks/new_e2e_tests.py @@ -111,7 +111,7 @@ def run( cmd += '{junit_file_flag} {json_flag} --packages="{packages}" -- -ldflags="-X {REPO_PATH}/test/new-e2e/tests/containers.GitCommit={commit}" {verbose} -mod={go_mod} -vet=off -timeout {timeout} -tags "{go_build_tags}" {nocache} {run} {skip} {test_run_arg} -args {osversion} {platform} {major_version} {arch} {flavor} {cws_supported_osversion} {src_agent_version} {dest_agent_version} {keep_stacks} {extra_flags}' args = { - "go_mod": "mod", + "go_mod": "readonly", "timeout": "4h", "verbose": '-v' if verbose else '', "nocache": '-count=1' if not cache else '', diff --git a/tasks/otel_agent.py b/tasks/otel_agent.py index 9b844dea9bee6..3b275abd36570 100644 --- a/tasks/otel_agent.py +++ b/tasks/otel_agent.py @@ -27,7 +27,7 @@ def build(ctx): build_tags = ['otlp'] ldflags = get_version_ldflags(ctx, major_version='7') - cmd = f"go build -mod=mod -tags=\"{' '.join(build_tags)}\" -ldflags=\"{ldflags}\" -o {BIN_PATH} {REPO_PATH}/cmd/otel-agent" + cmd = f"go build -mod=readonly -tags=\"{' '.join(build_tags)}\" -ldflags=\"{ldflags}\" -o {BIN_PATH} {REPO_PATH}/cmd/otel-agent" ctx.run(cmd, env=env) diff --git a/tasks/process_agent.py b/tasks/process_agent.py index d1020f3e88899..50d716e1a1831 100644 --- a/tasks/process_agent.py +++ b/tasks/process_agent.py @@ -26,7 +26,7 @@ def build( flavor=AgentFlavor.base.name, incremental_build=False, major_version='7', - go_mod="mod", + go_mod="readonly", ): """ Build the process agent diff --git a/tasks/security_agent.py b/tasks/security_agent.py index f591473c2217e..6b8a5a93885b0 100644 --- a/tasks/security_agent.py +++ b/tasks/security_agent.py @@ -55,7 +55,7 @@ def build( incremental_build=True, install_path=None, major_version='7', - go_mod="mod", + go_mod="readonly", skip_assets=False, static=False, fips_mode=False, @@ -375,7 +375,7 @@ def build_functional_tests( build_flags += " -race" build_tags = ",".join(build_tags) - cmd = 'go test -mod=mod -tags {build_tags} -gcflags="{gcflags}" -ldflags="{ldflags}" -c -o {output} ' + cmd = 'go test -mod=readonly -tags {build_tags} -gcflags="{gcflags}" -ldflags="{ldflags}" -c -o {output} ' cmd += '{build_flags} {repo_path}/{src_path}' args = { diff --git a/tasks/system_probe.py b/tasks/system_probe.py index 5ddffee1496c8..ed2a4292d905a 100644 --- a/tasks/system_probe.py +++ b/tasks/system_probe.py @@ -416,9 +416,13 @@ def ninja_runtime_compilation_files(nw: NinjaWriter, gobin): } nw.rule( - name="headerincl", command="go generate -run=\"include_headers\" -mod=mod -tags linux_bpf $in", depfile="$out.d" + name="headerincl", + command="go generate -run=\"include_headers\" -mod=readonly -tags linux_bpf $in", + depfile="$out.d", + ) + nw.rule( + name="integrity", command="go generate -run=\"integrity\" -mod=readonly -tags linux_bpf $in", depfile="$out.d" ) - nw.rule(name="integrity", command="go generate -run=\"integrity\" -mod=mod -tags linux_bpf $in", depfile="$out.d") hash_dir = os.path.join(bc_dir, "runtime") rc_dir = os.path.join(build_dir, "runtime") for in_path, out_filename in runtime_compiler_files.items(): @@ -674,7 +678,7 @@ def build( race=False, incremental_build=True, major_version='7', - go_mod="mod", + go_mod="readonly", arch: str = CURRENT_ARCH, bundle_ebpf=False, kernel_release=None, @@ -729,7 +733,7 @@ def build_sysprobe_binary( race=False, incremental_build=True, major_version='7', - go_mod="mod", + go_mod="readonly", arch: str = CURRENT_ARCH, binary=BIN_PATH, install_path=None, @@ -854,7 +858,7 @@ def test( args["dir"] = pdir testto = timeout if timeout else get_test_timeout(pdir) args["timeout"] = f"-timeout {testto}" if testto else "" - cmd = '{sudo}{go} test -mod=mod -v {failfast} {timeout} -tags "{build_tags}" {extra_arguments} {output_params} {dir} {run}' + cmd = '{sudo}{go} test -mod=readonly -v {failfast} {timeout} -tags "{build_tags}" {extra_arguments} {output_params} {dir} {run}' res = ctx.run(cmd.format(**args), env=env, warn=True) if res.exited is None or res.exited > 0: failed_pkgs.append(os.path.relpath(pdir, ctx.cwd)) @@ -915,7 +919,7 @@ def test_debug( _, _, env = get_build_flags(ctx) env["DD_SYSTEM_PROBE_BPF_DIR"] = EMBEDDED_SHARE_DIR - cmd = '{sudo}{dlv} test {dir} --build-flags="-mod=mod -v {failfast} -tags={build_tags}" -- -test.run {run}' + cmd = '{sudo}{dlv} test {dir} --build-flags="-mod=readonly -v {failfast} -tags={build_tags}" -- -test.run {run}' ctx.run(cmd.format(**args), env=env, pty=True, warn=True) @@ -946,7 +950,7 @@ def go_package_dirs(packages, build_tags): format_arg = '{{ .Dir }}' buildtags_arg = ",".join(build_tags) packages_arg = " ".join(packages) - cmd = f"go list -find -f \"{format_arg}\" -mod=mod -tags \"{buildtags_arg}\" {packages_arg}" + cmd = f"go list -find -f \"{format_arg}\" -mod=readonly -tags \"{buildtags_arg}\" {packages_arg}" target_packages = [p.strip() for p in check_output(cmd, shell=True, encoding='utf-8').split("\n")] return [p for p in target_packages if len(p) > 0] diff --git a/tasks/systray.py b/tasks/systray.py index 97a2d7e028c35..7b779220be993 100644 --- a/tasks/systray.py +++ b/tasks/systray.py @@ -16,7 +16,7 @@ @task -def build(ctx, debug=False, console=False, rebuild=False, race=False, major_version='7', go_mod="mod"): +def build(ctx, debug=False, console=False, rebuild=False, race=False, major_version='7', go_mod="readonly"): """ Build the agent. If the bits to include in the build are not specified, the values from `invoke.yaml` will be used. diff --git a/tasks/trace_agent.py b/tasks/trace_agent.py index a9503e77c3453..3ae8b650f7f47 100644 --- a/tasks/trace_agent.py +++ b/tasks/trace_agent.py @@ -21,7 +21,7 @@ def build( flavor=AgentFlavor.base.name, install_path=None, major_version='7', - go_mod="mod", + go_mod="readonly", ): """ Build the trace agent. @@ -77,7 +77,7 @@ def build( @task -def integration_tests(ctx, race=False, go_mod="mod", timeout="10m"): +def integration_tests(ctx, race=False, go_mod="readonly", timeout="10m"): """ Run integration tests for trace agent """ diff --git a/test/fakeintake/go.mod b/test/fakeintake/go.mod index 4b0d70c6581b9..ced8cdbcbf2ab 100644 --- a/test/fakeintake/go.mod +++ b/test/fakeintake/go.mod @@ -9,55 +9,58 @@ replace ( ) require ( - github.com/DataDog/agent-payload/v5 v5.0.106 + github.com/DataDog/agent-payload/v5 v5.0.137 github.com/DataDog/datadog-agent/comp/netflow/payload v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/proto v0.56.0-rc.3 - github.com/DataDog/zstd v1.5.5 + github.com/DataDog/zstd v1.5.6 github.com/benbjohnson/clock v1.3.5 - github.com/cenkalti/backoff/v4 v4.2.1 - github.com/google/uuid v1.3.0 + github.com/cenkalti/backoff/v4 v4.3.0 + github.com/google/uuid v1.6.0 github.com/kr/pretty v0.3.1 github.com/olekukonko/tablewriter v0.0.5 - github.com/prometheus/client_golang v1.17.0 - github.com/samber/lo v1.39.0 - github.com/spf13/cobra v1.8.0 + github.com/prometheus/client_golang v1.20.5 + github.com/samber/lo v1.47.0 + github.com/spf13/cobra v1.8.1 github.com/stretchr/testify v1.10.0 - github.com/tinylib/msgp v1.1.8 - google.golang.org/protobuf v1.33.0 - modernc.org/sqlite v1.29.5 + github.com/tinylib/msgp v1.2.4 + google.golang.org/protobuf v1.35.2 + modernc.org/sqlite v1.34.1 ) require ( - github.com/DataDog/mmh3 v0.0.0-20200805151601-30884ca2197a // indirect + github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 // indirect github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/protobuf v1.5.4 // indirect + github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 // indirect github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/klauspost/compress v1.17.11 // indirect github.com/kr/text v0.2.0 // indirect - github.com/mattn/go-isatty v0.0.16 // indirect - github.com/mattn/go-runewidth v0.0.9 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/ncruces/go-strftime v0.1.9 // indirect - github.com/philhofer/fwd v1.1.2 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 // indirect - github.com/prometheus/common v0.44.0 // indirect - github.com/prometheus/procfs v0.11.1 // indirect + github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.60.1 // indirect + github.com/prometheus/procfs v0.15.1 // indirect github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect - github.com/rogpeppe/go-internal v1.10.0 // indirect + github.com/rivo/uniseg v0.4.7 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect github.com/spf13/pflag v1.0.5 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect golang.org/x/sys v0.27.0 // indirect + golang.org/x/text v0.20.0 // indirect + golang.org/x/tools v0.27.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6 // indirect - modernc.org/libc v1.41.0 // indirect + modernc.org/libc v1.55.3 // indirect modernc.org/mathutil v1.6.0 // indirect - modernc.org/memory v1.7.2 // indirect + modernc.org/memory v1.8.0 // indirect modernc.org/strutil v1.2.0 // indirect modernc.org/token v1.1.0 // indirect ) diff --git a/test/fakeintake/go.sum b/test/fakeintake/go.sum index 393cb44415e62..be9d0519b91f7 100644 --- a/test/fakeintake/go.sum +++ b/test/fakeintake/go.sum @@ -1,176 +1,167 @@ -github.com/DataDog/agent-payload/v5 v5.0.106 h1:A3dGX+JYoL7OJe2crpxznW7hWxLxhOk/17WbYskRWVk= -github.com/DataDog/agent-payload/v5 v5.0.106/go.mod h1:COngtbYYCncpIPiE5D93QlXDH/3VAKk10jDNwGHcMRE= -github.com/DataDog/mmh3 v0.0.0-20200805151601-30884ca2197a h1:m9REhmyaWD5YJ0P53ygRHxKKo+KM+nw+zz0hEdKztMo= -github.com/DataDog/mmh3 v0.0.0-20200805151601-30884ca2197a/go.mod h1:SvsjzyJlSg0rKsqYgdcFxeEVflx3ZNAyFfkUHP0TxXg= -github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= -github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= +github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= +github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 h1:EbzDX8HPk5uE2FsJYxD74QmMw0/3CqSKhEr6teh0ncQ= +github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49/go.mod h1:SvsjzyJlSg0rKsqYgdcFxeEVflx3ZNAyFfkUHP0TxXg= +github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= +github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f h1:5Vuo4niPKFkfwW55jV4vY0ih3VQ9RaQqeqY67fvRn8A= github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f/go.mod h1:oXfOhM/Kr8OvqS6tVqJwxPBornV0yrx3bc+l0BDr7PQ= github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o= github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= -github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= +github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 h1:Xim43kblpZXfIBQsbuBVKCudVG457BR2GZFIz3uw3hQ= -github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 h1:5iH8iuqE5apketRbSFBy+X1V0o+l+8NF1avt4HWl7cA= +github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ= -github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU= -github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4= github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= -github.com/philhofer/fwd v1.1.2 h1:bnDivRJ1EWPjUIRXV5KfORO897HTbpFAQddBdE8t7Gw= -github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2tUTP0= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1GshSTtih8C2gDs04w8dReiOGXrGLNoY= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= -github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 h1:v7DLqVdK4VrYkVD5diGdl4sxJurKJEMnODWRJlxV9oM= -github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/samber/lo v1.39.0 h1:4gTz1wUhNYLhFSKl6O+8peW0v2F4BCY034GRpU9WnuA= -github.com/samber/lo v1.39.0/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA= -github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= -github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= +github.com/samber/lo v1.47.0 h1:z7RynLwP5nbyRscyvcD043DWYoOcYRv3mV8lBeqOCLc= +github.com/samber/lo v1.47.0/go.mod h1:RmDH9Ct32Qy3gduHQuKJ3gW1fMHAnE/fAzQuf6He5cU= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= -github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= -github.com/vmihailenco/msgpack/v4 v4.3.12 h1:07s4sz9IReOgdikxLTKNbBdqDMLsjPKXwvCazn8G65U= -github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= -github.com/vmihailenco/tagparser v0.1.1 h1:quXMXlA39OCbd2wAdTsGDlK9RkOk6Wuw+x37wVyIuWY= -github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= +github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU= +github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= +github.com/vmihailenco/msgpack/v4 v4.3.13 h1:A2wsiTbvp63ilDaWmsk2wjx6xZdxQOvpiNlKBGKKXKI= +github.com/vmihailenco/msgpack/v4 v4.3.13/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= +github.com/vmihailenco/tagparser v0.1.2 h1:gnjoVuB/kljJ5wICEEOpx98oXMWPLj22G67Vbd1qPqc= +github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= +golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +modernc.org/cc/v4 v4.21.4 h1:3Be/Rdo1fpr8GrQ7IVw9OHtplU4gWbb+wNgeoBMmGLQ= +modernc.org/cc/v4 v4.21.4/go.mod h1:HM7VJTZbUCR3rV8EYBi9wxnJ0ZBRiGE5OeGXNA0IsLQ= +modernc.org/ccgo/v4 v4.19.2 h1:lwQZgvboKD0jBwdaeVCTouxhxAyN6iawF3STraAal8Y= +modernc.org/ccgo/v4 v4.19.2/go.mod h1:ysS3mxiMV38XGRTTcgo0DQTeTmAO4oCmJl1nX9VFI3s= modernc.org/fileutil v1.3.0 h1:gQ5SIzK3H9kdfai/5x41oQiKValumqNTDXMvKo62HvE= modernc.org/fileutil v1.3.0/go.mod h1:XatxS8fZi3pS8/hKG2GH/ArUogfxjpEKs3Ku3aK4JyQ= +modernc.org/gc/v2 v2.4.1 h1:9cNzOqPyMJBvrUipmynX0ZohMhcxPtMccYgGOJdOiBw= +modernc.org/gc/v2 v2.4.1/go.mod h1:wzN5dK1AzVGoH6XOzc3YZ+ey/jPgYHLuVckd62P0GYU= modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6 h1:5D53IMaUuA5InSeMu9eJtlQXS2NxAhyWQvkKEgXZhHI= modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6/go.mod h1:Qz0X07sNOR1jWYCrJMEnbW/X55x206Q7Vt4mz6/wHp4= -modernc.org/libc v1.41.0 h1:g9YAc6BkKlgORsUWj+JwqoB1wU3o4DE3bM3yvA3k+Gk= -modernc.org/libc v1.41.0/go.mod h1:w0eszPsiXoOnoMJgrXjglgLuDy/bt5RR4y3QzUUeodY= +modernc.org/libc v1.55.3 h1:AzcW1mhlPNrRtjS5sS+eW2ISCgSOLLNyFzRh/V3Qj/U= +modernc.org/libc v1.55.3/go.mod h1:qFXepLhz+JjFThQ4kzwzOjA/y/artDeg+pcYnY+Q83w= modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4= modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo= -modernc.org/memory v1.7.2 h1:Klh90S215mmH8c9gO98QxQFsY+W451E8AnzjoE2ee1E= -modernc.org/memory v1.7.2/go.mod h1:NO4NVCQy0N7ln+T9ngWqOQfi7ley4vpwvARR+Hjw95E= -modernc.org/sqlite v1.29.5 h1:8l/SQKAjDtZFo9lkJLdk8g9JEOeYRG4/ghStDCCTiTE= -modernc.org/sqlite v1.29.5/go.mod h1:S02dvcmm7TnTRvGhv8IGYyLnIt7AS2KPaB1F/71p75U= +modernc.org/memory v1.8.0 h1:IqGTL6eFMaDZZhEWwcREgeMXYwmW83LYW8cROZYkg+E= +modernc.org/memory v1.8.0/go.mod h1:XPZ936zp5OMKGWPqbD3JShgd/ZoQ7899TUuQqxY+peU= +modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4= +modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= +modernc.org/sortutil v1.2.0 h1:jQiD3PfS2REGJNzNCMMaLSp/wdMNieTbKX920Cqdgqc= +modernc.org/sortutil v1.2.0/go.mod h1:TKU2s7kJMf1AE84OoiGppNHJwvB753OYfNl2WRb++Ss= +modernc.org/sqlite v1.34.1 h1:u3Yi6M0N8t9yKRDwhXcyp1eS5/ErhPTBggxWFuR6Hfk= +modernc.org/sqlite v1.34.1/go.mod h1:pXV2xHxhzXZsgT/RtTFAPY6JJDEvOTcTdwADQCCWD4k= modernc.org/strutil v1.2.0 h1:agBi9dp1I+eOnxXeiZawM8F4LawKv4NzGWSaLfyeNZA= modernc.org/strutil v1.2.0/go.mod h1:/mdcBmfOibveCTBxUl5B5l6W+TTH1FXPLHZE6bTosX0= modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y= diff --git a/test/new-e2e/go.mod b/test/new-e2e/go.mod index 92f74bcc9a3d0..5053d1a984771 100644 --- a/test/new-e2e/go.mod +++ b/test/new-e2e/go.mod @@ -45,7 +45,7 @@ replace ( ) require ( - github.com/DataDog/agent-payload/v5 v5.0.122 + github.com/DataDog/agent-payload/v5 v5.0.137 github.com/DataDog/datadog-agent/comp/otelcol/ddflareextension/def v0.56.2 github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 github.com/DataDog/datadog-agent/pkg/util/pointer v0.56.2 @@ -54,25 +54,25 @@ require ( github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 github.com/DataDog/datadog-agent/test/fakeintake v0.56.0-rc.3 github.com/DataDog/datadog-api-client-go v1.16.0 - github.com/DataDog/datadog-api-client-go/v2 v2.27.0 + github.com/DataDog/datadog-api-client-go/v2 v2.31.0 // Are you bumping github.com/DataDog/test-infra-definitions ? // You should bump `TEST_INFRA_DEFINITIONS_BUILDIMAGES` in `.gitlab/common/test_infra_version.yml` // `TEST_INFRA_DEFINITIONS_BUILDIMAGES` matches the commit sha in the module version // Example: github.com/DataDog/test-infra-definitions v0.0.0-YYYYMMDDHHmmSS-0123456789AB // => TEST_INFRA_DEFINITIONS_BUILDIMAGES: 0123456789AB github.com/DataDog/test-infra-definitions v0.0.0-20241129143439-1f340fd450e3 - github.com/aws/aws-sdk-go-v2 v1.32.2 - github.com/aws/aws-sdk-go-v2/config v1.27.40 - github.com/aws/aws-sdk-go-v2/service/ec2 v1.164.2 + github.com/aws/aws-sdk-go-v2 v1.32.5 + github.com/aws/aws-sdk-go-v2/config v1.28.5 + github.com/aws/aws-sdk-go-v2/service/ec2 v1.190.0 github.com/aws/aws-sdk-go-v2/service/eks v1.44.1 github.com/aws/aws-sdk-go-v2/service/ssm v1.50.7 github.com/cenkalti/backoff v2.2.1+incompatible - github.com/docker/cli v24.0.7+incompatible - github.com/docker/docker v25.0.6+incompatible - github.com/fatih/color v1.16.0 + github.com/docker/cli v27.1.1+incompatible + github.com/docker/docker v27.3.1+incompatible + github.com/fatih/color v1.18.0 github.com/google/uuid v1.6.0 github.com/kr/pretty v0.3.1 - github.com/mitchellh/mapstructure v1.5.0 + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c github.com/pkg/sftp v1.13.6 github.com/pulumi/pulumi-aws/sdk/v6 v6.56.1 github.com/pulumi/pulumi-awsx/sdk/v2 v2.16.1 @@ -87,49 +87,49 @@ require ( golang.org/x/term v0.26.0 gopkg.in/yaml.v2 v2.4.0 gopkg.in/zorkian/go-datadog-api.v2 v2.30.0 - k8s.io/api v0.30.2 - k8s.io/apimachinery v0.30.2 - k8s.io/cli-runtime v0.30.2 - k8s.io/client-go v0.30.2 - k8s.io/kubectl v0.30.2 + k8s.io/api v0.31.2 + k8s.io/apimachinery v0.31.2 + k8s.io/cli-runtime v0.31.2 + k8s.io/client-go v0.31.2 + k8s.io/kubectl v0.31.2 ) require ( dario.cat/mergo v1.0.1 // indirect - github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect - github.com/BurntSushi/toml v1.2.1 // indirect + github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect + github.com/BurntSushi/toml v1.4.0 // indirect github.com/DataDog/datadog-agent/comp/netflow/payload v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/proto v0.56.0-rc.3 - github.com/DataDog/mmh3 v0.0.0-20200805151601-30884ca2197a // indirect - github.com/DataDog/zstd v1.5.5 // indirect + github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 // indirect + github.com/DataDog/zstd v1.5.6 // indirect github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f // indirect github.com/MakeNowJust/heredoc v1.0.0 // indirect github.com/Masterminds/semver v1.5.0 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/ProtonMail/go-crypto v1.0.0 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect + github.com/ProtonMail/go-crypto v1.1.0-alpha.0 // indirect github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect github.com/agext/levenshtein v1.2.3 // indirect github.com/alessio/shellescape v1.4.2 // indirect github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect github.com/atotto/clipboard v0.1.4 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.38 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.46 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.20 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.24 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.24 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.19 // indirect github.com/aws/aws-sdk-go-v2/service/ecr v1.36.2 // indirect github.com/aws/aws-sdk-go-v2/service/ecs v1.47.4 - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.0 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.0 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.5 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.0 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.65.0 - github.com/aws/aws-sdk-go-v2/service/sso v1.23.4 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.4 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.31.4 // indirect - github.com/aws/smithy-go v1.22.0 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.24.6 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.5 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.1 // indirect + github.com/aws/smithy-go v1.22.1 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/blang/semver v3.5.1+incompatible // indirect github.com/cenkalti/backoff/v4 v4.3.0 @@ -141,41 +141,38 @@ require ( github.com/cloudflare/circl v1.3.7 // indirect github.com/containerd/console v1.0.4 // indirect github.com/containerd/log v0.1.0 // indirect - github.com/cyphar/filepath-securejoin v0.2.4 // indirect - github.com/davecgh/go-spew v1.1.1 - github.com/distribution/reference v0.5.0 // indirect + github.com/cyphar/filepath-securejoin v0.3.4 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc + github.com/distribution/reference v0.6.0 // indirect github.com/djherbis/times v1.6.0 // indirect - github.com/docker/go-connections v0.4.0 // indirect + github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect - github.com/emicklei/go-restful/v3 v3.11.0 // indirect + github.com/emicklei/go-restful/v3 v3.12.1 // indirect github.com/emirpasic/gods v1.18.1 // indirect - github.com/evanphx/json-patch v4.12.0+incompatible // indirect github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d // indirect github.com/felixge/httpsnoop v1.0.4 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/fvbommel/sortorder v1.1.0 // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-errors/errors v1.4.2 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect github.com/go-git/go-git/v5 v5.12.0 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-openapi/jsonpointer v0.19.6 // indirect - github.com/go-openapi/jsonreference v0.20.2 // indirect - github.com/go-openapi/swag v0.22.3 // indirect - github.com/goccy/go-json v0.10.2 // indirect + github.com/go-openapi/jsonpointer v0.20.2 // indirect + github.com/go-openapi/jsonreference v0.20.4 // indirect + github.com/go-openapi/swag v0.22.9 // indirect + github.com/goccy/go-json v0.10.3 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/glog v1.2.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect - github.com/google/btree v1.0.1 // indirect + github.com/google/btree v1.1.3 // indirect github.com/google/gnostic-models v0.6.8 // indirect github.com/google/go-cmp v0.6.0 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect - github.com/gorilla/websocket v1.5.0 // indirect - github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 // indirect + github.com/gorilla/websocket v1.5.1 // indirect + github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect @@ -198,7 +195,7 @@ require ( github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect - github.com/moby/spdystream v0.2.0 // indirect + github.com/moby/spdystream v0.4.0 // indirect github.com/moby/term v0.5.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect @@ -212,16 +209,16 @@ require ( github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect github.com/nxadm/tail v1.4.11 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.0.2 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/opentracing/basictracer-go v1.1.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/peterbourgon/diskv v2.0.1+incompatible // indirect github.com/pgavlin/fx v0.1.6 // indirect - github.com/philhofer/fwd v1.1.2 // indirect + github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pkg/term v1.1.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect github.com/pulumi/esc v0.10.0 // indirect github.com/pulumi/pulumi-command/sdk v1.0.1 // indirect @@ -231,7 +228,7 @@ require ( github.com/pulumi/pulumi-tls/sdk/v4 v4.11.1 // indirect github.com/pulumiverse/pulumi-time/sdk v0.1.0 // indirect github.com/rivo/uniseg v0.4.7 // indirect - github.com/rogpeppe/go-internal v1.12.0 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect @@ -239,59 +236,59 @@ require ( github.com/sirupsen/logrus v1.9.3 // indirect github.com/skeema/knownhosts v1.2.2 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.8.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/texttheater/golang-levenshtein v1.0.1 // indirect - github.com/tinylib/msgp v1.1.8 // indirect + github.com/tinylib/msgp v1.2.4 // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect github.com/uber/jaeger-lib v2.4.1+incompatible // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect - github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect + github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xlab/treeprint v1.2.0 // indirect github.com/zclconf/go-cty v1.14.4 // indirect github.com/zorkian/go-datadog-api v2.30.0+incompatible // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.28.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0 // indirect go.opentelemetry.io/otel/metric v1.32.0 // indirect go.opentelemetry.io/otel/trace v1.32.0 // indirect - go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect + go.starlark.net v0.0.0-20231101134539-556fd59b42f6 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f golang.org/x/mod v0.22.0 // indirect golang.org/x/net v0.31.0 - golang.org/x/oauth2 v0.22.0 // indirect + golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sync v0.9.0 // indirect golang.org/x/text v0.20.0 golang.org/x/time v0.8.0 // indirect golang.org/x/tools v0.27.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect - google.golang.org/protobuf v1.35.1 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v3 v3.0.1 - gotest.tools/v3 v3.5.0 // indirect - k8s.io/component-base v0.30.2 // indirect - k8s.io/klog/v2 v2.120.1 // indirect - k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect - k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect + gotest.tools/v3 v3.5.1 // indirect + k8s.io/component-base v0.31.2 // indirect + k8s.io/klog/v2 v2.130.1 // indirect + k8s.io/kube-openapi v0.0.0-20240430033511-f0e62f92d13f // indirect + k8s.io/utils v0.0.0-20240821151609-f90d01438635 // indirect lukechampine.com/frand v1.4.2 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3 // indirect - sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3 // indirect + sigs.k8s.io/kustomize/api v0.17.2 // indirect + sigs.k8s.io/kustomize/kyaml v0.17.1 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect - sigs.k8s.io/yaml v1.3.0 // indirect + sigs.k8s.io/yaml v1.4.0 // indirect ) require ( github.com/DataDog/datadog-agent/comp/core/tagger/types v0.0.0-00010101000000-000000000000 github.com/DataDog/datadog-agent/pkg/trace v0.56.0-rc.3 github.com/DataDog/datadog-go/v5 v5.5.0 - github.com/aws/aws-sdk-go v1.50.36 + github.com/aws/aws-sdk-go v1.55.5 github.com/aws/session-manager-plugin v0.0.0-20241010233726-61cf1288c7c6 github.com/digitalocean/go-libvirt v0.0.0-20240812180835-9c6c0a310c6c github.com/hairyhenderson/go-codeowners v0.5.0 @@ -299,8 +296,15 @@ require ( require ( github.com/DataDog/datadog-agent/comp/core/tagger/utils v0.59.0 // indirect + github.com/blang/semver/v4 v4.0.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect + github.com/creack/pty v1.1.20 // indirect + github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 // indirect + github.com/moby/docker-image-spec v1.3.1 // indirect + github.com/onsi/ginkgo/v2 v2.20.2 // indirect + github.com/onsi/gomega v1.34.1 // indirect github.com/pulumi/pulumi-azure-native-sdk/authorization/v2 v2.67.0 // indirect github.com/pulumi/pulumi-azure-native-sdk/compute/v2 v2.56.0 // indirect github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2 v2.67.0 // indirect @@ -310,12 +314,14 @@ require ( github.com/pulumi/pulumi-gcp/sdk/v6 v6.67.1 // indirect github.com/pulumi/pulumi-gcp/sdk/v7 v7.38.0 // indirect github.com/twinj/uuid v0.0.0-20151029044442-89173bcdda19 // indirect + github.com/x448/float16 v0.8.4 // indirect go.opentelemetry.io/collector/component v0.114.0 // indirect go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect go.opentelemetry.io/collector/extension v0.114.0 // indirect go.opentelemetry.io/collector/pdata v1.20.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 // indirect + google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect + gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect ) diff --git a/test/new-e2e/go.sum b/test/new-e2e/go.sum index 0eec3057c4dae..dea441fd6daf5 100644 --- a/test/new-e2e/go.sum +++ b/test/new-e2e/go.sum @@ -2,25 +2,25 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= -github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= -github.com/DataDog/agent-payload/v5 v5.0.122 h1:tGhU9UMjUiVaX3iR+nZX20TRmzyrIvVGTkWbbrR7bDA= -github.com/DataDog/agent-payload/v5 v5.0.122/go.mod h1:FgVQKmVdqdmZTbxIptqJC/l+xEzdiXsaAOs/vGAvWzs= +github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= +github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= +github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= +github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/datadog-api-client-go v1.16.0 h1:5jOZv1m98criCvYTa3qpW8Hzv301nbZX3K9yJtwGyWY= github.com/DataDog/datadog-api-client-go v1.16.0/go.mod h1:PgrP2ABuJWL3Auw2iEkemAJ/r72ghG4DQQmb5sgnKW4= -github.com/DataDog/datadog-api-client-go/v2 v2.27.0 h1:AGZj41frjnjMufQHQbJH2fzmifOs20wpmVDtIBCv33E= -github.com/DataDog/datadog-api-client-go/v2 v2.27.0/go.mod h1:QKOu6vscsh87fMY1lHfLEmNSunyXImj8BUaUWJXOehc= +github.com/DataDog/datadog-api-client-go/v2 v2.31.0 h1:JfJhYlHfLzvauI8u6h23smTooWYe6quNhhg9gpTszWY= +github.com/DataDog/datadog-api-client-go/v2 v2.31.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U= github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU= github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw= -github.com/DataDog/mmh3 v0.0.0-20200805151601-30884ca2197a h1:m9REhmyaWD5YJ0P53ygRHxKKo+KM+nw+zz0hEdKztMo= -github.com/DataDog/mmh3 v0.0.0-20200805151601-30884ca2197a/go.mod h1:SvsjzyJlSg0rKsqYgdcFxeEVflx3ZNAyFfkUHP0TxXg= +github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 h1:EbzDX8HPk5uE2FsJYxD74QmMw0/3CqSKhEr6teh0ncQ= +github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49/go.mod h1:SvsjzyJlSg0rKsqYgdcFxeEVflx3ZNAyFfkUHP0TxXg= github.com/DataDog/test-infra-definitions v0.0.0-20241129143439-1f340fd450e3 h1:s+bNaiOoY3W7vCSQVqD4mU3mrtXsbkeRX+vVTwCyStQ= github.com/DataDog/test-infra-definitions v0.0.0-20241129143439-1f340fd450e3/go.mod h1:7nVt9okOqKKC9B9YfKqk4jitYuv1I3q2Cd/yZWuViZU= -github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= -github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= +github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f h1:5Vuo4niPKFkfwW55jV4vY0ih3VQ9RaQqeqY67fvRn8A= github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f/go.mod h1:oXfOhM/Kr8OvqS6tVqJwxPBornV0yrx3bc+l0BDr7PQ= github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= @@ -31,10 +31,10 @@ github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3Q github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= -github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78= -github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= +github.com/ProtonMail/go-crypto v1.1.0-alpha.0 h1:nHGfwXmFvJrSR9xu8qL7BkO4DqTHXE9N5vPhgY2I+j0= +github.com/ProtonMail/go-crypto v1.1.0-alpha.0/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da h1:KjTM2ks9d14ZYCvmHS9iAKVt9AyzRSqNU1qabPih5BY= github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da/go.mod h1:eHEWzANqSiWQsof+nXEI9bUVUyV6F53Fp89EuCh2EAA= github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= @@ -50,56 +50,56 @@ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPd github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= -github.com/aws/aws-sdk-go v1.50.36 h1:PjWXHwZPuTLMR1NIb8nEjLucZBMzmf84TLoLbD8BZqk= -github.com/aws/aws-sdk-go v1.50.36/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= -github.com/aws/aws-sdk-go-v2 v1.32.2 h1:AkNLZEyYMLnx/Q/mSKkcMqwNFXMAvFto9bNsHqcTduI= -github.com/aws/aws-sdk-go-v2 v1.32.2/go.mod h1:2SK5n0a2karNTv5tbP1SjsX0uhttou00v/HpXKM1ZUo= +github.com/aws/aws-sdk-go v1.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU= +github.com/aws/aws-sdk-go v1.55.5/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= +github.com/aws/aws-sdk-go-v2 v1.32.5 h1:U8vdWJuY7ruAkzaOdD7guwJjD06YSKmnKCJs7s3IkIo= +github.com/aws/aws-sdk-go-v2 v1.32.5/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 h1:pT3hpW0cOHRJx8Y0DfJUEQuqPild8jRGmSFmBgvydr0= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6/go.mod h1:j/I2++U0xX+cr44QjHay4Cvxj6FUbnxrgmqN3H1jTZA= -github.com/aws/aws-sdk-go-v2/config v1.27.40 h1:sie4mPBGFOO+Z27+yHzvyN31G20h/bf2xb5mCbpLv2Q= -github.com/aws/aws-sdk-go-v2/config v1.27.40/go.mod h1:4KW7Aa5tNo+0VHnuLnnE1vPHtwMurlNZNS65IdcewHA= -github.com/aws/aws-sdk-go-v2/credentials v1.17.38 h1:iM90eRhCeZtlkzCNCG1JysOzJXGYf5rx80aD1lUgNDU= -github.com/aws/aws-sdk-go-v2/credentials v1.17.38/go.mod h1:TCVYPZeQuLaYNEkf/TVn6k5k/zdVZZ7xH9po548VNNg= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14 h1:C/d03NAmh8C4BZXhuRNboF/DqhBkBCeDiJDcaqIT5pA= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14/go.mod h1:7I0Ju7p9mCIdlrfS+JCgqcYD0VXz/N4yozsox+0o078= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21 h1:UAsR3xA31QGf79WzpG/ixT9FZvQlh5HY1NRqSHBNOCk= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21/go.mod h1:JNr43NFf5L9YaG3eKTm7HQzls9J+A9YYcGI5Quh1r2Y= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21 h1:6jZVETqmYCadGFvrYEQfC5fAQmlo80CeL5psbno6r0s= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21/go.mod h1:1SR0GbLlnN3QUmYaflZNiH1ql+1qrSiB2vwcJ+4UM60= +github.com/aws/aws-sdk-go-v2/config v1.28.5 h1:Za41twdCXbuyyWv9LndXxZZv3QhTG1DinqlFsSuvtI0= +github.com/aws/aws-sdk-go-v2/config v1.28.5/go.mod h1:4VsPbHP8JdcdUDmbTVgNL/8w9SqOkM5jyY8ljIxLO3o= +github.com/aws/aws-sdk-go-v2/credentials v1.17.46 h1:AU7RcriIo2lXjUfHFnFKYsLCwgbz1E7Mm95ieIRDNUg= +github.com/aws/aws-sdk-go-v2/credentials v1.17.46/go.mod h1:1FmYyLGL08KQXQ6mcTlifyFXfJVCNJTVGuQP4m0d/UA= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.20 h1:sDSXIrlsFSFJtWKLQS4PUWRvrT580rrnuLydJrCQ/yA= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.20/go.mod h1:WZ/c+w0ofps+/OUqMwWgnfrgzZH1DZO1RIkktICsqnY= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.24 h1:4usbeaes3yJnCFC7kfeyhkdkPtoRYPa/hTmCqMpKpLI= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.24/go.mod h1:5CI1JemjVwde8m2WG3cz23qHKPOxbpkq0HaoreEgLIY= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.24 h1:N1zsICrQglfzaBnrfM0Ys00860C+QFwu6u/5+LomP+o= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.24/go.mod h1:dCn9HbJ8+K31i8IQ8EWmWj0EiIk0+vKiHNMxTTYveAg= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.19 h1:FKdiFzTxlTRO71p0C7VrLbkkdW8qfMKF5+ej6bTmkT0= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.19/go.mod h1:abO3pCj7WLQPTllnSeYImqFfkGrmJV0JovWo/gqT5N0= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.164.2 h1:Rts0EZgdi3tneJMXp+uKrZHbMxQIu0y5O/2MG6a2+hY= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.164.2/go.mod h1:j0V2ahvdX3mGIyXQSe9vjdIQvSxz3uaMM0bR7Y+0WCE= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.190.0 h1:k97fGog9Tl0woxTiSIHN14Qs5ehqK6GXejUwkhJYyL0= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.190.0/go.mod h1:mzj8EEjIHSN2oZRXiw1Dd+uB4HZTl7hC8nBzX9IZMWw= github.com/aws/aws-sdk-go-v2/service/ecr v1.36.2 h1:VDQaVwGOokbd3VUbHF+wupiffdrbAZPdQnr5XZMJqrs= github.com/aws/aws-sdk-go-v2/service/ecr v1.36.2/go.mod h1:lvUlMghKYmSxSfv0vU7pdU/8jSY+s0zpG8xXhaGKCw0= github.com/aws/aws-sdk-go-v2/service/ecs v1.47.4 h1:CTkPGE8fiElvLtYWl/U+Eu5+1fVXiZbJUjyVCRSRgxk= github.com/aws/aws-sdk-go-v2/service/ecs v1.47.4/go.mod h1:sMFLFhL27cKYa/eQYZp4asvIwHsnJWrAzTUpy9AQdnU= github.com/aws/aws-sdk-go-v2/service/eks v1.44.1 h1:onUAzZXDsyXzyrmOGw/9p8Csl1NZkTDEs4URZ8covUY= github.com/aws/aws-sdk-go-v2/service/eks v1.44.1/go.mod h1:dg9l/W4hXygeRNydRB4LWKY/MwHJhfUomGJUBwI29Dw= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 h1:TToQNkvGguu209puTojY/ozlqy2d/SFNcoLIqTFi42g= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0/go.mod h1:0jp+ltwkf+SwG2fm/PKo8t4y8pJSgOCO4D8Lz3k0aHQ= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 h1:iXtILhvDxB6kPvEXgsDhGaZCSC6LQET5ZHSdJozeI0Y= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1/go.mod h1:9nu0fVANtYiAePIBh2/pFUSwtJ402hLnp854CNoDOeE= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.0 h1:FQNWhRuSq8QwW74GtU0MrveNhZbqvHsA4dkA9w8fTDQ= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.0/go.mod h1:j/zZ3zmWfGCK91K73YsfHP53BSTLSjL/y6YN39XbBLM= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.0 h1:AdbiDUgQZmM28rDIZbiSwFxz8+3B94aOXxzs6oH+EA0= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.0/go.mod h1:uV476Bd80tiDTX4X2redMtagQUg65aU/gzPojSJ4kSI= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.5 h1:wtpJ4zcwrSbwhECWQoI/g6WM9zqCcSpHDJIWSbMLOu4= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.5/go.mod h1:qu/W9HXQbbQ4+1+JcZp0ZNPV31ym537ZJN+fiS7Ti8E= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.0 h1:1NKXS8XfhMM0bg5wVYa/eOH8AM2f6JijugbKEyQFTIg= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.0/go.mod h1:ph931DUfVfgrhZR7py9olSvHCiRpvaGxNvlWBcXxFds= github.com/aws/aws-sdk-go-v2/service/s3 v1.65.0 h1:2dSm7frMrw2tdJ0QvyccQNJyPGaP24dyDgZ6h1QJMGU= github.com/aws/aws-sdk-go-v2/service/s3 v1.65.0/go.mod h1:4XSVpw66upN8wND3JZA29eXl2NOZvfFVq7DIP6xvfuQ= github.com/aws/aws-sdk-go-v2/service/ssm v1.50.7 h1:GkRsyFS9MmX/ybCvOncmp1A4XYn75v0x/ReWnIUao6E= github.com/aws/aws-sdk-go-v2/service/ssm v1.50.7/go.mod h1:oBlt+H2x16bM5mSUNhmzIR2BWWnMsLUa1Qqs5auS1Bs= -github.com/aws/aws-sdk-go-v2/service/sso v1.23.4 h1:ck/Y8XWNR1gHa4BFkwE3oSu7XDJGwl+8TI7E/RB2EcQ= -github.com/aws/aws-sdk-go-v2/service/sso v1.23.4/go.mod h1:XRlMvmad0ZNL+75C5FYdMvbbLkd6qiqz6foR1nA1PXY= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.4 h1:4f2/JKYZHAZbQ7koBpZ012bKi32NHPY0m7TDuJgsbug= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.4/go.mod h1:FnvDM4sfa+isJ3kDXIzAB9GAwVSzFzSy97uZ3IsHo4E= -github.com/aws/aws-sdk-go-v2/service/sts v1.31.4 h1:uK6dUUdJtqutK1XO/tmNaQMJiPLCJY/eAeOOmqQ6ygY= -github.com/aws/aws-sdk-go-v2/service/sts v1.31.4/go.mod h1:yMWe0F+XG0DkRZK5ODZhG7BEFYhLXi2dqGsv6tX0cgI= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.6 h1:3zu537oLmsPfDMyjnUS2g+F2vITgy5pB74tHI+JBNoM= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.6/go.mod h1:WJSZH2ZvepM6t6jwu4w/Z45Eoi75lPN7DcydSRtJg6Y= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.5 h1:K0OQAsDywb0ltlFrZm0JHPY3yZp/S9OaoLU33S7vPS8= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.5/go.mod h1:ORITg+fyuMoeiQFiVGoqB3OydVTLkClw/ljbblMq6Cc= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.1 h1:6SZUVRQNvExYlMLbHdlKB48x0fLbc2iVROyaNEwBHbU= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.1/go.mod h1:GqWyYCwLXnlUB1lOAXQyNSPqPLQJvmo8J0DWBzp9mtg= github.com/aws/session-manager-plugin v0.0.0-20241010233726-61cf1288c7c6 h1:iQc6pdTje/w3D3vrocVIvcosNVQGjoGxqBgPpwG28BY= github.com/aws/session-manager-plugin v0.0.0-20241010233726-61cf1288c7c6/go.mod h1:7n17tunRPUsniNBu5Ja9C7WwJWTdOzaLqr/H0Ns3uuI= -github.com/aws/smithy-go v1.22.0 h1:uunKnWlcoL3zO7q+gG2Pk53joueEOsnNB28QdMsmiMM= -github.com/aws/smithy-go v1.22.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro= +github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o= @@ -108,7 +108,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= +github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= +github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= @@ -126,13 +127,9 @@ github.com/charmbracelet/lipgloss v0.10.0 h1:KWeXFSexGcfahHX+54URiZGkBFazf70JNMt github.com/charmbracelet/lipgloss v0.10.0/go.mod h1:Wig9DSfvANsxqkRsqj6x87irdy123SR4dOXlKa91ciE= github.com/cheggaaa/pb v1.0.29 h1:FckUN5ngEk2LpvuG0fw1GEFx6LtyY2pWI/Z2QgCnEYo= github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuPxX30= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= @@ -140,57 +137,56 @@ github.com/containerd/console v1.0.4 h1:F2g4+oChYvBTsASRTz8NP6iIAi97J3TtSAsLbIFn github.com/containerd/console v1.0.4/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= -github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= -github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= -github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= -github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= +github.com/creack/pty v1.1.20 h1:VIPb/a2s17qNeQgDnkfZC35RScx+blkKF8GV68n80J4= +github.com/creack/pty v1.1.20/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= +github.com/cyphar/filepath-securejoin v0.3.4 h1:VBWugsJh2ZxJmLFSM06/0qzQyiQX2Qs0ViKrUAcqdZ8= +github.com/cyphar/filepath-securejoin v0.3.4/go.mod h1:8s/MCNJREmFK0H02MF6Ihv1nakJe4L/w3WZLHNkvlYM= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/digitalocean/go-libvirt v0.0.0-20240812180835-9c6c0a310c6c h1:1y+eZhZOMDP86ErYQ7P7ebAvyhpr+HZhR5K6BlOkWoo= github.com/digitalocean/go-libvirt v0.0.0-20240812180835-9c6c0a310c6c/go.mod h1:vhj0tZhS07ugaMVppAreQmBVHcqLwl5YR2DRu5/uJbY= -github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= -github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= +github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= github.com/djherbis/times v1.6.0 h1:w2ctJ92J8fBvWPxugmXIv7Nz7Q3iDMKNx9v5ocVH20c= github.com/djherbis/times v1.6.0/go.mod h1:gOHeRAz2h+VJNZ5Gmc/o7iD9k4wW7NMVqieYCY99oc0= -github.com/docker/cli v24.0.7+incompatible h1:wa/nIwYFW7BVTGa7SWPVyyXU9lgORqUb1xfI36MSkFg= -github.com/docker/cli v24.0.7+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= -github.com/docker/docker v25.0.6+incompatible h1:5cPwbwriIcsua2REJe8HqQV+6WlWc1byg2QSXzBxBGg= -github.com/docker/docker v25.0.6+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= +github.com/docker/cli v27.1.1+incompatible h1:goaZxOqs4QKxznZjjBWKONQci/MywhtRv2oNn0GkeZE= +github.com/docker/cli v27.1.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/docker v27.3.1+incompatible h1:KttF0XoteNTicmUtBO0L2tP+J7FGRFTjaEF4k6WdhfI= +github.com/docker/docker v27.3.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= +github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU= github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM= -github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= -github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/emicklei/go-restful/v3 v3.12.1 h1:PJMDIM/ak7btuL8Ex0iYET9hxM3CI2sjZtzpL63nKAU= +github.com/emicklei/go-restful/v3 v3.12.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84= -github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d h1:105gxyaGwCFad8crR9dcMQWvV9Hvulu6hwUh4tWPJnM= github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= -github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= -github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= -github.com/fvbommel/sortorder v1.1.0 h1:fUmoe+HLsBTctBDoaBwpQo5N+nrCp8g/BjKb/6ZQmYw= -github.com/fvbommel/sortorder v1.1.0/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= +github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gliderlabs/ssh v0.3.7 h1:iV3Bqi942d9huXnzEF2Mt+CY9gLu8DNM4Obd+8bODRE= github.com/gliderlabs/ssh v0.3.7/go.mod h1:zpHEXBstFnQYtGnB8k8kQLol82umzn/2/snG7alWVD8= @@ -209,16 +205,16 @@ github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= -github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= -github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= -github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= -github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= -github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= -github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= -github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= -github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= -github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/go-openapi/jsonpointer v0.20.2 h1:mQc3nmndL8ZBzStEo3JYF8wzmeWffDH4VbXz58sAx6Q= +github.com/go-openapi/jsonpointer v0.20.2/go.mod h1:bHen+N0u1KEO3YlmqOjTT9Adn1RfD91Ar825/PuiRVs= +github.com/go-openapi/jsonreference v0.20.4 h1:bKlDxQxQJgwpUSgOENiMPzCTBVuc7vTdXSSgNeAhojU= +github.com/go-openapi/jsonreference v0.20.4/go.mod h1:5pZJyJP2MnYCpoeoMAql78cCHauHj0V9Lhc506VOpw4= +github.com/go-openapi/swag v0.22.9 h1:XX2DssF+mQKM2DHsbgZK74y/zj4mo9I99+89xUmuZCE= +github.com/go-openapi/swag v0.22.9/go.mod h1:3/OXnFfnMAwBD099SwYRk7GD3xOrr1iL7d/XNLXVVwE= +github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= +github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= +github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA= +github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= @@ -232,46 +228,35 @@ github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+Licev github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= -github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= +github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= +github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 h1:Xim43kblpZXfIBQsbuBVKCudVG457BR2GZFIz3uw3hQ= -github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo= +github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 h1:5iH8iuqE5apketRbSFBy+X1V0o+l+8NF1avt4HWl7cA= +github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= -github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM= -github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= +github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= +github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA= +github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 h1:ad0vkEBuk23VJzZR9nkLVG0YAoN9coASF1GusYX6AlU= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0/go.mod h1:igFoXX2ELCW06bol23DWPB5BEWfZISOzSP5K2sbLea0= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw= github.com/hairyhenderson/go-codeowners v0.5.0 h1:dpQB+hVHiRc2VVvc2BHxkuM+tmu9Qej/as3apqUbsWc= @@ -304,10 +289,11 @@ github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= @@ -334,16 +320,16 @@ github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzp github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= -github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= -github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8= -github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= +github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= +github.com/moby/spdystream v0.4.0 h1:Vy79D6mHeJJjiPdFEL2yku1kl0chZpJfZcPpb16BRl8= +github.com/moby/spdystream v0.4.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI= github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -371,14 +357,14 @@ github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdh github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY= github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc= -github.com/onsi/ginkgo/v2 v2.15.0 h1:79HwNRBAZHOEwrczrgSOPy+eFTTlIGELKy5as+ClttY= -github.com/onsi/ginkgo/v2 v2.15.0/go.mod h1:HlxMHtYF57y6Dpf+mc5529KKmSq9h2FpCF+/ZkwUxKM= -github.com/onsi/gomega v1.31.0 h1:54UJxxj6cPInHS3a35wm6BK/F9nHYueZ1NVujHDrnXE= -github.com/onsi/gomega v1.31.0/go.mod h1:DW9aCi7U6Yi40wNVAvT6kzFnEVEI5n3DloYBiKiT6zk= +github.com/onsi/ginkgo/v2 v2.20.2 h1:7NVCeyIWROIAheY21RLS+3j2bb52W0W82tkberYytp4= +github.com/onsi/ginkgo/v2 v2.20.2/go.mod h1:K9gyxPIlb+aIvnZ8bd9Ak+YP18w3APlR+5coaZoE2ag= +github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= +github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.0.2 h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM= -github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/opentracing/basictracer-go v1.1.0 h1:Oa1fTSBvAl8pa3U+IJYqrKm0NALwH9OsgwOqDv4xJW0= github.com/opentracing/basictracer-go v1.1.0/go.mod h1:V2HZueSJEp879yv285Aap1BS69fQMD+MNP1mRs6mBQc= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= @@ -388,8 +374,8 @@ github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+v github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/pgavlin/fx v0.1.6 h1:r9jEg69DhNoCd3Xh0+5mIbdbS3PqWrVWujkY76MFRTU= github.com/pgavlin/fx v0.1.6/go.mod h1:KWZJ6fqBBSh8GxHYqwYCf3rYE7Gp2p0N8tJp8xv9u9M= -github.com/philhofer/fwd v1.1.2 h1:bnDivRJ1EWPjUIRXV5KfORO897HTbpFAQddBdE8t7Gw= -github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2tUTP0= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1GshSTtih8C2gDs04w8dReiOGXrGLNoY= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM= github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= @@ -399,17 +385,18 @@ github.com/pkg/sftp v1.13.6 h1:JFZT4XbOU7l77xGSpOdW+pwIMqP044IyjXX6FGyEKFo= github.com/pkg/sftp v1.13.6/go.mod h1:tz1ryNURKu77RL+GuCzmoJYxQczL3wLNNpPWagdg4Qk= github.com/pkg/term v1.1.0 h1:xIAAdCMh3QIAy+5FrE8Ad8XoDhEU4ufwbaSozViP9kk= github.com/pkg/term v1.1.0/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 h1:v7DLqVdK4VrYkVD5diGdl4sxJurKJEMnODWRJlxV9oM= -github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435cARxCW6q9gc0S/Yxz7Mkd38pOb0= github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE= github.com/pulumi/esc v0.10.0 h1:jzBKzkLVW0mePeanDRfqSQoCJ5yrkux0jIwAkUxpRKE= @@ -460,8 +447,8 @@ github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 h1:OkMGxebDjyw0ULyrTYWeN0UNCCkmCWfjPnIA2W6oviI= @@ -479,8 +466,8 @@ github.com/skeema/knownhosts v1.2.2 h1:Iug2P4fLmDw9f41PB6thxUkNUkJzB5i+1/exaj40L github.com/skeema/knownhosts v1.2.2/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= -github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -501,22 +488,25 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U= github.com/texttheater/golang-levenshtein v1.0.1/go.mod h1:PYAKrbF5sAiq9wd+H82hs7gNaen0CplQ9uvm6+enD/8= -github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= -github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= +github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU= +github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= github.com/twinj/uuid v0.0.0-20151029044442-89173bcdda19 h1:HlxV0XiEKMMyjS3gGtJmmFZsxQ22GsLvA7F980il+1w= github.com/twinj/uuid v0.0.0-20151029044442-89173bcdda19/go.mod h1:mMgcE1RHFUFqe5AfiwlINXisXfDGro23fWdPUfOMjRY= github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o= github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg= github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= -github.com/vmihailenco/msgpack/v4 v4.3.12 h1:07s4sz9IReOgdikxLTKNbBdqDMLsjPKXwvCazn8G65U= -github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= +github.com/vmihailenco/msgpack/v4 v4.3.13 h1:A2wsiTbvp63ilDaWmsk2wjx6xZdxQOvpiNlKBGKKXKI= +github.com/vmihailenco/msgpack/v4 v4.3.13/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= github.com/vmihailenco/tagparser v0.1.2 h1:gnjoVuB/kljJ5wICEEOpx98oXMWPLj22G67Vbd1qPqc= github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= +github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= +github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= -github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= @@ -539,14 +529,14 @@ go.opentelemetry.io/collector/extension v0.114.0 h1:9Qb92y8hD2WDC5aMDoj4JNQN+/5B go.opentelemetry.io/collector/extension v0.114.0/go.mod h1:Yk2/1ptVgfTr12t+22v93nYJpioP14pURv2YercSzU0= go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 h1:UP6IpuHFkUgOQL9FFQFrZ+5LiwhhYRbi7VZSIx6Nj5s= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0/go.mod h1:qxuZLtbq5QDtdeSHsS7bcf6EH6uO6jUAgk764zd3rhM= go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0 h1:3Q/xZUyC1BBkualc9ROb4G8qkH90LXEIICcs5zv1OYY= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0/go.mod h1:s75jGIWA9OfCMzF0xr+ZgfrB5FEbbV7UuYo32ahUiFI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.28.0 h1:j9+03ymgYhPKmeXGk5Zu+cIZOlVzd9Zv7QIiyItjFBU= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.28.0/go.mod h1:Y5+XiUG4Emn1hTfciPzGPJaSI+RpDts6BnCIir0SLqk= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 h1:K0XaT3DwHAcV4nKLzcQvwAgSyisUghWoY20I7huthMk= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0/go.mod h1:B5Ki776z/MBnVha1Nzwp5arlzBbE3+1jk+pGmaP5HME= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0 h1:lUsI2TYsQw2r1IASwoROaCnjdj2cvC2+Jbxvk6nHnWU= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0/go.mod h1:2HpZxxQurfGxJlJDblybejHB6RX6pmExPNe517hREw4= go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= @@ -555,8 +545,8 @@ go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQD go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= -go.starlark.net v0.0.0-20230525235612-a134d8f9ddca h1:VdD38733bfYv5tUZwEIskMM93VanwNIi5bIKnDrJdEY= -go.starlark.net v0.0.0-20230525235612-a134d8f9ddca/go.mod h1:jxU+3+j+71eXOW14274+SmmuW82qJzl6iZSeqEtTGds= +go.starlark.net v0.0.0-20231101134539-556fd59b42f6 h1:+eC0F/k4aBLC4szgOcjd7bDTEnpxADJyWJE0yowgM3E= +go.starlark.net v0.0.0-20231101134539-556fd59b42f6/go.mod h1:LcLNIzVOMp4oV+uusnpk+VU+SzXaJakUuBjoCSWH5dM= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= @@ -571,8 +561,6 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= -golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -587,8 +575,6 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -607,16 +593,12 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= -golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= -golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA= -golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= +golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -625,7 +607,6 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -651,20 +632,12 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= -golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.26.0 h1:WEQa6V3Gja/BhNxg540hBip/kkaYtRg3cxg4oXSw4AU= golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -672,9 +645,6 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= @@ -691,8 +661,6 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -706,11 +674,10 @@ google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJ google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 h1:ImUcDPHjTrAqNhlOkSocDLfG9rrNHH7w7uoKWPaWZ8s= -google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7/go.mod h1:/3XmxOjePkvmKrHuBy4zNFw7IzxJXtAgdpXi8Ll990U= -google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 h1:wKguEg1hsxI2/L3hUYrpo1RVi48K+uTyzKqprwLXsb8= -google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142/go.mod h1:d6be+8HhtEtucleCbxpPW9PA9XwISACu8nvpPqF0BVo= +google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 h1:BulPr26Jqjnd4eYDVe+YvyR7Yc2vJGkO5/0UxD0/jZU= +google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:hL97c3SYopEHblzpxRL4lSs523++l8DYxGM1FQiYmb4= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= @@ -720,20 +687,14 @@ google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= +gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= @@ -750,40 +711,40 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/zorkian/go-datadog-api.v2 v2.30.0 h1:umQdVO0Ytx+kYadhuJNjFtDgIsIEBnKrOTvNuu8ClKI= gopkg.in/zorkian/go-datadog-api.v2 v2.30.0/go.mod h1:kx0CSMRpzEZfx/nFH62GLU4stZjparh/BRpM89t4XCQ= -gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= -gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= +gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= +gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -k8s.io/api v0.30.2 h1:+ZhRj+28QT4UOH+BKznu4CBgPWgkXO7XAvMcMl0qKvI= -k8s.io/api v0.30.2/go.mod h1:ULg5g9JvOev2dG0u2hig4Z7tQ2hHIuS+m8MNZ+X6EmI= -k8s.io/apimachinery v0.30.2 h1:fEMcnBj6qkzzPGSVsAZtQThU62SmQ4ZymlXRC5yFSCg= -k8s.io/apimachinery v0.30.2/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= -k8s.io/cli-runtime v0.30.2 h1:ooM40eEJusbgHNEqnHziN9ZpLN5U4WcQGsdLKVxpkKE= -k8s.io/cli-runtime v0.30.2/go.mod h1:Y4g/2XezFyTATQUbvV5WaChoUGhojv/jZAtdp5Zkm0A= -k8s.io/client-go v0.30.2 h1:sBIVJdojUNPDU/jObC+18tXWcTJVcwyqS9diGdWHk50= -k8s.io/client-go v0.30.2/go.mod h1:JglKSWULm9xlJLx4KCkfLLQ7XwtlbflV6uFFSHTMgVs= -k8s.io/component-base v0.30.2 h1:pqGBczYoW1sno8q9ObExUqrYSKhtE5rW3y6gX88GZII= -k8s.io/component-base v0.30.2/go.mod h1:yQLkQDrkK8J6NtP+MGJOws+/PPeEXNpwFixsUI7h/OE= -k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= -k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= -k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= -k8s.io/kubectl v0.30.2 h1:cgKNIvsOiufgcs4yjvgkK0+aPCfa8pUwzXdJtkbhsH8= -k8s.io/kubectl v0.30.2/go.mod h1:rz7GHXaxwnigrqob0lJsiA07Df8RE3n1TSaC2CTeuB4= -k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= -k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/api v0.31.2 h1:3wLBbL5Uom/8Zy98GRPXpJ254nEFpl+hwndmk9RwmL0= +k8s.io/api v0.31.2/go.mod h1:bWmGvrGPssSK1ljmLzd3pwCQ9MgoTsRCuK35u6SygUk= +k8s.io/apimachinery v0.31.2 h1:i4vUt2hPK56W6mlT7Ry+AO8eEsyxMD1U44NR22CLTYw= +k8s.io/apimachinery v0.31.2/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/cli-runtime v0.31.2 h1:7FQt4C4Xnqx8V1GJqymInK0FFsoC+fAZtbLqgXYVOLQ= +k8s.io/cli-runtime v0.31.2/go.mod h1:XROyicf+G7rQ6FQJMbeDV9jqxzkWXTYD6Uxd15noe0Q= +k8s.io/client-go v0.31.2 h1:Y2F4dxU5d3AQj+ybwSMqQnpZH9F30//1ObxOKlTI9yc= +k8s.io/client-go v0.31.2/go.mod h1:NPa74jSVR/+eez2dFsEIHNa+3o09vtNaWwWwb1qSxSs= +k8s.io/component-base v0.31.2 h1:Z1J1LIaC0AV+nzcPRFqfK09af6bZ4D1nAOpWsy9owlA= +k8s.io/component-base v0.31.2/go.mod h1:9PeyyFN/drHjtJZMCTkSpQJS3U9OXORnHQqMLDz0sUQ= +k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= +k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/kube-openapi v0.0.0-20240430033511-f0e62f92d13f h1:0LQagt0gDpKqvIkAMPaRGcXawNMouPECM1+F9BVxEaM= +k8s.io/kube-openapi v0.0.0-20240430033511-f0e62f92d13f/go.mod h1:S9tOR0FxgyusSNR+MboCuiDpVWkAifZvaYI1Q2ubgro= +k8s.io/kubectl v0.31.2 h1:gTxbvRkMBwvTSAlobiTVqsH6S8Aa1aGyBcu5xYLsn8M= +k8s.io/kubectl v0.31.2/go.mod h1:EyASYVU6PY+032RrTh5ahtSOMgoDRIux9V1JLKtG5xM= +k8s.io/utils v0.0.0-20240821151609-f90d01438635 h1:2wThSvJoW/Ncn9TmQEYXRnevZXi2duqHWf5OX9S3zjI= +k8s.io/utils v0.0.0-20240821151609-f90d01438635/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= lukechampine.com/frand v1.4.2 h1:RzFIpOvkMXuPMBb9maa4ND4wjBn71E1Jpf8BzJHMaVw= lukechampine.com/frand v1.4.2/go.mod h1:4S/TM2ZgrKejMcKMbeLjISpJMO+/eZ1zu3vYX9dtj3s= modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6 h1:5D53IMaUuA5InSeMu9eJtlQXS2NxAhyWQvkKEgXZhHI= modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6/go.mod h1:Qz0X07sNOR1jWYCrJMEnbW/X55x206Q7Vt4mz6/wHp4= -modernc.org/libc v1.41.0 h1:g9YAc6BkKlgORsUWj+JwqoB1wU3o4DE3bM3yvA3k+Gk= -modernc.org/libc v1.41.0/go.mod h1:w0eszPsiXoOnoMJgrXjglgLuDy/bt5RR4y3QzUUeodY= +modernc.org/libc v1.55.3 h1:AzcW1mhlPNrRtjS5sS+eW2ISCgSOLLNyFzRh/V3Qj/U= +modernc.org/libc v1.55.3/go.mod h1:qFXepLhz+JjFThQ4kzwzOjA/y/artDeg+pcYnY+Q83w= modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4= modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo= -modernc.org/memory v1.7.2 h1:Klh90S215mmH8c9gO98QxQFsY+W451E8AnzjoE2ee1E= -modernc.org/memory v1.7.2/go.mod h1:NO4NVCQy0N7ln+T9ngWqOQfi7ley4vpwvARR+Hjw95E= -modernc.org/sqlite v1.29.5 h1:8l/SQKAjDtZFo9lkJLdk8g9JEOeYRG4/ghStDCCTiTE= -modernc.org/sqlite v1.29.5/go.mod h1:S02dvcmm7TnTRvGhv8IGYyLnIt7AS2KPaB1F/71p75U= +modernc.org/memory v1.8.0 h1:IqGTL6eFMaDZZhEWwcREgeMXYwmW83LYW8cROZYkg+E= +modernc.org/memory v1.8.0/go.mod h1:XPZ936zp5OMKGWPqbD3JShgd/ZoQ7899TUuQqxY+peU= +modernc.org/sqlite v1.34.1 h1:u3Yi6M0N8t9yKRDwhXcyp1eS5/ErhPTBggxWFuR6Hfk= +modernc.org/sqlite v1.34.1/go.mod h1:pXV2xHxhzXZsgT/RtTFAPY6JJDEvOTcTdwADQCCWD4k= modernc.org/strutil v1.2.0 h1:agBi9dp1I+eOnxXeiZawM8F4LawKv4NzGWSaLfyeNZA= modernc.org/strutil v1.2.0/go.mod h1:/mdcBmfOibveCTBxUl5B5l6W+TTH1FXPLHZE6bTosX0= modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y= @@ -792,11 +753,11 @@ pgregory.net/rapid v0.6.1 h1:4eyrDxyht86tT4Ztm+kvlyNBLIk071gR+ZQdhphc9dQ= pgregory.net/rapid v0.6.1/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3 h1:XX3Ajgzov2RKUdc5jW3t5jwY7Bo7dcRm+tFxT+NfgY0= -sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3/go.mod h1:9n16EZKMhXBNSiUC5kSdFQJkdH3zbxS/JoO619G1VAY= -sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3 h1:W6cLQc5pnqM7vh3b7HvGNfXrJ/xL6BDMS0v1V/HHg5U= -sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3/go.mod h1:JWP1Fj0VWGHyw3YUPjXSQnRnrwezrZSrApfX5S0nIag= +sigs.k8s.io/kustomize/api v0.17.2 h1:E7/Fjk7V5fboiuijoZHgs4aHuexi5Y2loXlVOAVAG5g= +sigs.k8s.io/kustomize/api v0.17.2/go.mod h1:UWTz9Ct+MvoeQsHcJ5e+vziRRkwimm3HytpZgIYqye0= +sigs.k8s.io/kustomize/kyaml v0.17.1 h1:TnxYQxFXzbmNG6gOINgGWQt09GghzgTP6mIurOgrLCQ= +sigs.k8s.io/kustomize/kyaml v0.17.1/go.mod h1:9V0mCjIEYjlXuCdYsSXvyoy2BTsLESH7TlGV81S282U= sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= -sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= -sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/test/new-e2e/pkg/utils/e2e/client/docker.go b/test/new-e2e/pkg/utils/e2e/client/docker.go index 0dc4d392e5e8d..b31aba4ce7e85 100644 --- a/test/new-e2e/pkg/utils/e2e/client/docker.go +++ b/test/new-e2e/pkg/utils/e2e/client/docker.go @@ -14,7 +14,6 @@ import ( "github.com/DataDog/test-infra-definitions/components/docker" "github.com/docker/cli/cli/connhelper" - "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/container" "github.com/docker/docker/client" "github.com/docker/docker/pkg/stdcopy" @@ -94,11 +93,11 @@ func (docker *Docker) ExecuteCommandStdoutStdErr(containerName string, commands docker.t.Logf("Executing command `%s`", scrubbedCommand) context := context.Background() - execConfig := types.ExecConfig{Cmd: commands, AttachStderr: true, AttachStdout: true} + execConfig := container.ExecOptions{Cmd: commands, AttachStderr: true, AttachStdout: true} execCreateResp, err := docker.client.ContainerExecCreate(context, containerName, execConfig) require.NoError(docker.t, err) - execAttachResp, err := docker.client.ContainerExecAttach(context, execCreateResp.ID, types.ExecStartCheck{}) + execAttachResp, err := docker.client.ContainerExecAttach(context, execCreateResp.ID, container.ExecAttachOptions{}) require.NoError(docker.t, err) defer execAttachResp.Close() diff --git a/test/otel/go.mod b/test/otel/go.mod index 20ff83b773e4c..d7223e48d1316 100644 --- a/test/otel/go.mod +++ b/test/otel/go.mod @@ -125,7 +125,7 @@ require ( ) require ( - github.com/DataDog/agent-payload/v5 v5.0.119 // indirect + github.com/DataDog/agent-payload/v5 v5.0.137 // indirect github.com/DataDog/datadog-agent/comp/core/flare/builder v0.57.1 // indirect github.com/DataDog/datadog-agent/comp/core/flare/types v0.57.1 // indirect github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect @@ -174,16 +174,16 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/version v0.57.1 // indirect - github.com/DataDog/datadog-api-client-go/v2 v2.26.0 // indirect + github.com/DataDog/datadog-api-client-go/v2 v2.31.0 // indirect github.com/DataDog/datadog-go/v5 v5.5.0 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect - github.com/DataDog/go-sqllexer v0.0.16 // indirect + github.com/DataDog/go-sqllexer v0.0.17 // indirect github.com/DataDog/go-tuf v1.1.0-0.5.2 // indirect github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 // indirect github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0 // indirect github.com/DataDog/sketches-go v1.4.6 // indirect github.com/DataDog/viper v1.13.5 // indirect - github.com/DataDog/zstd v1.5.5 // indirect + github.com/DataDog/zstd v1.5.6 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect @@ -191,19 +191,19 @@ require ( github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/containerd/cgroups/v3 v3.0.3 // indirect + github.com/containerd/cgroups/v3 v3.0.4 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect - github.com/fatih/color v1.17.0 // indirect + github.com/fatih/color v1.18.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect github.com/go-viper/mapstructure/v2 v2.2.1 // indirect - github.com/goccy/go-json v0.10.2 // indirect + github.com/goccy/go-json v0.10.3 // indirect github.com/godbus/dbus/v5 v5.1.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/mock v1.6.0 // indirect @@ -229,19 +229,22 @@ require ( github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect + github.com/moby/sys/userns v0.1.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0 // indirect github.com/opencontainers/runtime-spec v1.2.0 // indirect github.com/outcaste-io/ristretto v0.2.3 // indirect github.com/pelletier/go-toml v1.9.5 // indirect - github.com/philhofer/fwd v1.1.2 // indirect + github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/prometheus/client_golang v1.19.1 // indirect + github.com/prometheus/client_golang v1.20.5 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.54.0 // indirect + github.com/prometheus/common v0.60.1 // indirect github.com/prometheus/procfs v0.15.1 // indirect github.com/rs/cors v1.11.1 // indirect github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect @@ -249,12 +252,12 @@ require ( github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/cobra v1.8.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stormcat24/protodep v0.1.8 // indirect github.com/stretchr/testify v1.10.0 // indirect - github.com/tinylib/msgp v1.1.9 // indirect + github.com/tinylib/msgp v1.2.4 // indirect github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect @@ -280,28 +283,27 @@ require ( go.opentelemetry.io/collector/semconv v0.114.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.49.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect go.opentelemetry.io/otel/metric v1.32.0 // indirect go.opentelemetry.io/otel/sdk v1.32.0 // indirect go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect - go.uber.org/fx v1.22.2 // indirect + go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/oauth2 v0.22.0 // indirect + golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sys v0.27.0 // indirect golang.org/x/term v0.26.0 // indirect golang.org/x/text v0.20.0 // indirect golang.org/x/time v0.8.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect - google.golang.org/protobuf v1.35.1 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apimachinery v0.29.3 // indirect ) diff --git a/test/otel/go.sum b/test/otel/go.sum index 0b9de9dec8d57..f7811923873a3 100644 --- a/test/otel/go.sum +++ b/test/otel/go.sum @@ -1,15 +1,15 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.119 h1:PgeA41P3BE4z+b0j61B6yXnZDw7tB7bxl5EIHyGVG14= -github.com/DataDog/agent-payload/v5 v5.0.119/go.mod h1:FgVQKmVdqdmZTbxIptqJC/l+xEzdiXsaAOs/vGAvWzs= -github.com/DataDog/datadog-api-client-go/v2 v2.26.0 h1:bZr0hu+hx8L91+yU5EGw8wK3FlCVEIashpx+cylWsf0= -github.com/DataDog/datadog-api-client-go/v2 v2.26.0/go.mod h1:QKOu6vscsh87fMY1lHfLEmNSunyXImj8BUaUWJXOehc= +github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= +github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= +github.com/DataDog/datadog-api-client-go/v2 v2.31.0 h1:JfJhYlHfLzvauI8u6h23smTooWYe6quNhhg9gpTszWY= +github.com/DataDog/datadog-api-client-go/v2 v2.31.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U= github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU= github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 h1:RoH7VLzTnxHEugRPIgnGlxwDFszFGI7b3WZZUtWuPRM= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42/go.mod h1:TX7CTOQ3LbQjfAi4SwqUoR5gY1zfUk7VRBDTuArjaDc= -github.com/DataDog/go-sqllexer v0.0.16 h1:RoSUMS6MECyB3gTUIdydzXwK5NhEhv6GMJkS7ptsgRA= -github.com/DataDog/go-sqllexer v0.0.16/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc= +github.com/DataDog/go-sqllexer v0.0.17 h1:u47fJAVg/+5DA74ZW3w0Qu+3qXHd3GtnA8ZBYixdPrM= +github.com/DataDog/go-sqllexer v0.0.17/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc= github.com/DataDog/go-tuf v1.1.0-0.5.2 h1:4CagiIekonLSfL8GMHRHcHudo1fQnxELS9g4tiAupQ4= github.com/DataDog/go-tuf v1.1.0-0.5.2/go.mod h1:zBcq6f654iVqmkk8n2Cx81E1JnNTMOAx1UEO/wZR+P0= github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0 h1:U+p1i7+upWb4qOIOOvjS/92iMUGlSzEC1tRxVo0Lg8Y= @@ -28,8 +28,8 @@ github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vH github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= -github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= -github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= +github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= @@ -58,8 +58,8 @@ github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/containerd/cgroups/v3 v3.0.3 h1:S5ByHZ/h9PMe5IOQoN7E+nMc2UcLEM/V48DGDJ9kip0= -github.com/containerd/cgroups/v3 v3.0.3/go.mod h1:8HBe7V3aWGLFPd/k03swSIsGjZhHI2WzJmticMgVuz0= +github.com/containerd/cgroups/v3 v3.0.4 h1:2fs7l3P0Qxb1nKWuJNFiwhp2CqiKzho71DQkDrHJIo4= +github.com/containerd/cgroups/v3 v3.0.4/go.mod h1:SA5DLYnXO8pTGYiAHXz94qvLQTKfVM5GEVisn4jpins= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/bbolt v1.3.3/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= @@ -70,7 +70,7 @@ github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7 github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -87,8 +87,8 @@ github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkp github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= -github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -106,13 +106,14 @@ github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= -github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= -github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA= +github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= @@ -201,6 +202,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/lightstep/go-expohisto v1.0.0 h1:UPtTS1rGdtehbbAF7o/dhkWLTDI73UifG8LbfQI7cA4= github.com/lightstep/go-expohisto v1.0.0/go.mod h1:xDXD0++Mu2FOaItXtdDfksfgxfV0z1TMPa+e/EUd0cs= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= @@ -221,6 +224,8 @@ github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374 github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= +github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -230,14 +235,16 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 h1:Wq1iTmd0K1SSOIA43Wy2uAU6SB4f9ogyN3ZmvDgTURg= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0/go.mod h1:VCj9H0QxRBWSgbl1pUo8p0NrqnmcxpPo0QjKLFtWkO0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.94.0 h1:nTayRLarCGkB9ld7p8jWJe/9wvf8gNDaS5fRjybkEpg= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.94.0/go.mod h1:xoBvqu56hbky3KZafo68nxtV2+J81+pvo1ttNirakcU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.94.0 h1:DSGhzGAaC767esMB0Ulr+9xWe6SW0LFUYMxLrLOAkjM= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.94.0/go.mod h1:Nv4nK3E7sUpDbNv0zI0zY15g2xR4jMg+n8taV8dsMeE= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0 h1:m8uPYU2rTj0sKiYgzCvIPajD3meiYsu+nX0hplUnlEU= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0/go.mod h1:P0BaP92pXPkTyTmObfLYUoRBfMYU+i0hdS3oM1DpGJo= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0 h1:Qg80zPfNMlub7LO07VMDElOu3M2oxqdZgvvB+X72a4U= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0/go.mod h1:5qsGcjFV3WFI6J2onAlkR7Xd/8VtwJcECaDRZfW4Tb4= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 h1:mtSN/07RGQPi1/zHVSZg4G0qRtOoJpPew5jsQWv9uS0= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0/go.mod h1:C9Zgh/N3j4NR2D+1FGAA1YizhFW9OS51DwLUFJTdXN4= github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 h1:I4ZYVRYW3Cjb65sPENZ9kHam/JUMXNEp2n/knJ0C0Vc= @@ -252,8 +259,8 @@ github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTK github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/philhofer/fwd v1.1.2 h1:bnDivRJ1EWPjUIRXV5KfORO897HTbpFAQddBdE8t7Gw= -github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2tUTP0= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1GshSTtih8C2gDs04w8dReiOGXrGLNoY= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM= github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -269,8 +276,8 @@ github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXP github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= -github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -281,8 +288,8 @@ github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7q github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.54.0 h1:ZlZy0BgJhTwVZUn7dLOkwCZHUkrAqd3WYtcFCWnM1D8= -github.com/prometheus/common v0.54.0/go.mod h1:/TQgMJP5CuVYveyT7n/0Ix8yLNNXy9yRSkhnLTHPDIQ= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -293,8 +300,8 @@ github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40T github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA= github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -304,8 +311,8 @@ github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/i github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= +github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= @@ -319,8 +326,8 @@ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNo github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= -github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= @@ -346,8 +353,8 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tinylib/msgp v1.1.9 h1:SHf3yoO2sGA0veCJeCBYLHuttAVFHGm2RHgNodW7wQU= -github.com/tinylib/msgp v1.1.9/go.mod h1:BCXGB54lDD8qUEPmiG0cQQUANC4IUQyB2ItS2UDlO/k= +github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU= +github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= @@ -357,8 +364,8 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1 github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/vmihailenco/msgpack/v4 v4.3.12 h1:07s4sz9IReOgdikxLTKNbBdqDMLsjPKXwvCazn8G65U= -github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= +github.com/vmihailenco/msgpack/v4 v4.3.13 h1:A2wsiTbvp63ilDaWmsk2wjx6xZdxQOvpiNlKBGKKXKI= +github.com/vmihailenco/msgpack/v4 v4.3.13/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= github.com/vmihailenco/tagparser v0.1.2 h1:gnjoVuB/kljJ5wICEEOpx98oXMWPLj22G67Vbd1qPqc= github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= @@ -447,8 +454,8 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 h1:UP6IpuH go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0/go.mod h1:qxuZLtbq5QDtdeSHsS7bcf6EH6uO6jUAgk764zd3rhM= go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/prometheus v0.49.0 h1:Er5I1g/YhfYv9Affk9nJLfH/+qCCVVg1f2R9AbJfqDQ= -go.opentelemetry.io/otel/exporters/prometheus v0.49.0/go.mod h1:KfQ1wpjf3zsHjzP149P4LyAwWRupc6c7t1ZJ9eXpKQM= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= @@ -464,8 +471,8 @@ go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -512,8 +519,8 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA= -golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= +golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -541,6 +548,7 @@ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220627191245-f75cf1eec38b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= @@ -590,8 +598,8 @@ google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRn google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -617,5 +625,5 @@ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= -k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= +k8s.io/apimachinery v0.31.2 h1:i4vUt2hPK56W6mlT7Ry+AO8eEsyxMD1U44NR22CLTYw= +k8s.io/apimachinery v0.31.2/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= From 29a7ac9cc900b6325e71d0ab45106dc3329ab1cd Mon Sep 17 00:00:00 2001 From: Alexandre Menasria <47357713+amenasria@users.noreply.github.com> Date: Tue, 3 Dec 2024 10:22:52 +0100 Subject: [PATCH 214/439] [JUnit] Raise error on `datadog-ci` command not found (#31687) --- tasks/libs/common/junit_upload_core.py | 16 ++++++++++------ tasks/unit_tests/junit_tests.py | 4 +++- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/tasks/libs/common/junit_upload_core.py b/tasks/libs/common/junit_upload_core.py index 54d01fc2af0a4..b7282d9bf4ebc 100644 --- a/tasks/libs/common/junit_upload_core.py +++ b/tasks/libs/common/junit_upload_core.py @@ -29,14 +29,17 @@ E2E_INTERNAL_ERROR_STRING = "E2E INTERNAL ERROR" CODEOWNERS_ORG_PREFIX = "@DataDog/" REPO_NAME_PREFIX = "github.com/DataDog/datadog-agent/" -if platform.system() == "Windows": - DATADOG_CI_COMMAND = [r"c:\devtools\datadog-ci\datadog-ci", "junit", "upload"] -else: - DATADOG_CI_COMMAND = [which("datadog-ci"), "junit", "upload"] JOB_ENV_FILE_NAME = "job_env.txt" TAGS_FILE_NAME = "tags.txt" +def get_datadog_ci_command(): + path_datadog_ci = which("datadog-ci") + if path_datadog_ci is None: + raise FileNotFoundError("datadog-ci command not found") + return path_datadog_ci + + def enrich_junitxml(xml_path: str, flavor: AgentFlavor): """ Modifies the JUnit XML file: @@ -232,6 +235,7 @@ def upload_junitxmls(team_dir: Path): """ Upload all per-team split JUnit XMLs from given directory. """ + datadog_ci_command = [get_datadog_ci_command(), "junit", "upload"] additional_tags = read_additional_tags(team_dir.parent) process_env = _update_environ(team_dir.parent) processes = [] @@ -242,7 +246,7 @@ def upload_junitxmls(team_dir: Path): for flags, files in xml_files.items(): args = set_tags(owner, flavor, flags, additional_tags, files[0]) args.extend(files) - processes.append(Popen(DATADOG_CI_COMMAND + args, bufsize=-1, env=process_env, stdout=PIPE, stderr=PIPE)) + processes.append(Popen(datadog_ci_command + args, bufsize=-1, env=process_env, stdout=PIPE, stderr=PIPE)) for process in processes: stdout, stderr = process.communicate() @@ -250,7 +254,7 @@ def upload_junitxmls(team_dir: Path): print(f" Uploaded {len(tuple(team_dir.iterdir()))} files for {team_dir.name}") if stderr: print(f"Failed uploading junit:\n{stderr.decode()}", file=sys.stderr) - raise CalledProcessError(process.returncode, DATADOG_CI_COMMAND) + raise CalledProcessError(process.returncode, datadog_ci_command) return "" # For ThreadPoolExecutor.map. Without this it prints None in the log output. diff --git a/tasks/unit_tests/junit_tests.py b/tasks/unit_tests/junit_tests.py index 58ae7f10a6e5c..6dfa6e0fe57ac 100644 --- a/tasks/unit_tests/junit_tests.py +++ b/tasks/unit_tests/junit_tests.py @@ -123,10 +123,12 @@ class TestJUnitUploadFromTGZ(unittest.TestCase): @patch.dict("os.environ", {"CI_PIPELINE_ID": "1664"}) @patch.dict("os.environ", {"CI_PIPELINE_SOURCE": "beer"}) @patch("tasks.libs.common.junit_upload_core.Popen") - def test_e2e(self, mock_popen): + @patch("tasks.libs.common.junit_upload_core.which") + def test_e2e(self, mock_which, mock_popen): mock_instance = MagicMock() mock_instance.communicate.return_value = (b"stdout", b"") mock_popen.return_value = mock_instance + mock_which.side_effect = lambda cmd: f"/usr/local/bin/{cmd}" junit.junit_upload_from_tgz("tasks/unit_tests/testdata/testjunit-tests_deb-x64-py3.tgz") mock_popen.assert_called() self.assertEqual(mock_popen.call_count, 31) From c06bdd61fbeadd5dca70cf790b421652e8867b7d Mon Sep 17 00:00:00 2001 From: Alexandre Yang Date: Tue, 3 Dec 2024 12:41:20 +0100 Subject: [PATCH 215/439] [HA Agent] Add initial e2e test for HA Agent feature (#31610) --- .github/CODEOWNERS | 1 + .gitlab-ci.yml | 11 +++ .gitlab/e2e/e2e.yml | 9 +++ test/new-e2e/tests/ha-agent/haagent_test.go | 74 +++++++++++++++++++++ 4 files changed, 95 insertions(+) create mode 100644 test/new-e2e/tests/ha-agent/haagent_test.go diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index eaea27fa17792..396770f04ceb1 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -611,6 +611,7 @@ /test/new-e2e/tests/agent-subcommands @DataDog/agent-shared-components /test/new-e2e/tests/containers @DataDog/container-integrations @DataDog/container-platform /test/new-e2e/tests/discovery @DataDog/universal-service-monitoring +/test/new-e2e/tests/ha-agent @DataDog/ndm-core /test/new-e2e/tests/language-detection @DataDog/processes /test/new-e2e/tests/ndm @DataDog/ndm-core /test/new-e2e/tests/ndm/netflow @DataDog/ndm-integrations diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 40bbf63917f41..a135957f28d90 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -998,6 +998,17 @@ workflow: - when: manual allow_failure: true +.on_ha_agent_or_e2e_changes: + - !reference [.on_e2e_main_release_or_rc] + - changes: + paths: + - comp/haagent/**/* + - pkg/aggregator/**/* + - test/new-e2e/tests/ha-agent/**/* + - test/new-e2e/go.mod + compare_to: main # TODO: use a variable, when this is supported https://gitlab.com/gitlab-org/gitlab/-/issues/369916 + when: on_success + .on_otel_or_e2e_changes: - !reference [.on_e2e_main_release_or_rc] - changes: diff --git a/.gitlab/e2e/e2e.yml b/.gitlab/e2e/e2e.yml index 6a6f1914cac0e..092ef165d6231 100644 --- a/.gitlab/e2e/e2e.yml +++ b/.gitlab/e2e/e2e.yml @@ -471,6 +471,15 @@ new-e2e-ndm-snmp: TARGETS: ./tests/ndm/snmp TEAM: network-device-monitoring +new-e2e-ha-agent: + extends: .new_e2e_template_needs_deb_x64 + rules: + - !reference [.on_ha_agent_or_e2e_changes] + - !reference [.manual] + variables: + TARGETS: ./tests/ha-agent + TEAM: ndm-core + new-e2e-windows-systemprobe: extends: .new_e2e_template rules: diff --git a/test/new-e2e/tests/ha-agent/haagent_test.go b/test/new-e2e/tests/ha-agent/haagent_test.go new file mode 100644 index 0000000000000..ade4af9538faa --- /dev/null +++ b/test/new-e2e/tests/ha-agent/haagent_test.go @@ -0,0 +1,74 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package haagent contains e2e tests for HA Agent feature +package haagent + +import ( + _ "embed" + "testing" + "time" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/DataDog/test-infra-definitions/components/datadog/agentparams" + + "github.com/DataDog/datadog-agent/test/fakeintake/aggregator" + fakeintakeclient "github.com/DataDog/datadog-agent/test/fakeintake/client" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments" + awshost "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments/aws/host" +) + +type haAgentTestSuite struct { + e2e.BaseSuite[environments.Host] +} + +// TestHaAgentSuite runs the HA Agent e2e suite +func TestHaAgentSuite(t *testing.T) { + // language=yaml + agentConfig := ` +ha_agent: + enabled: true + group: test-group01 +log_level: debug +` + e2e.Run(t, &haAgentTestSuite{}, e2e.WithProvisioner(awshost.Provisioner( + awshost.WithAgentOptions(agentparams.WithAgentConfig(agentConfig))), + )) +} + +func (s *haAgentTestSuite) TestHaAgentGroupTagPresentOnDatadogAgentRunningMetric() { + fakeClient := s.Env().FakeIntake.Client() + s.EventuallyWithT(func(c *assert.CollectT) { + s.T().Log("try assert datadog.agent.running metric") + metrics, err := fakeClient.FilterMetrics("datadog.agent.running") + require.NoError(c, err) + assert.NotEmpty(c, metrics) + for _, metric := range metrics { + s.T().Logf(" datadog.agent.running metric tags: %+v", metric.Tags) + } + + tags := []string{"agent_group:test-group01"} + metrics, err = fakeClient.FilterMetrics("datadog.agent.running", fakeintakeclient.WithTags[*aggregator.MetricSeries](tags)) + require.NoError(c, err) + assert.NotEmpty(c, metrics) + }, 5*time.Minute, 3*time.Second) +} + +func (s *haAgentTestSuite) TestHaAgentAddedToRCListeners() { + s.EventuallyWithT(func(c *assert.CollectT) { + s.T().Log("try assert HA Agent added to RCListeners in agent.log") + output, err := s.Env().RemoteHost.Execute("cat /var/log/datadog/agent.log") + require.NoError(c, err) + + assert.Contains(c, output, "Add onHaAgentUpdate RCListener") + }, 5*time.Minute, 3*time.Second) +} + +// TODO: Add test for Agent behaviour when receiving RC HA_AGENT messages +// - Agent receiving message to become leader +// - Agent receiving message to become follower From d667639fb43d0e417ad9207bfbd9de78af52022e Mon Sep 17 00:00:00 2001 From: Sylvain Baubeau Date: Tue, 3 Dec 2024 13:27:45 +0100 Subject: [PATCH 216/439] [CWS] Fix cgroup dentry resolution for RHEL 7 (#31666) --- pkg/security/probe/probe_ebpf.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go index 62e0782fa38dc..b918a87aabdf4 100644 --- a/pkg/security/probe/probe_ebpf.go +++ b/pkg/security/probe/probe_ebpf.go @@ -830,7 +830,11 @@ func (p *EBPFProbe) handleEvent(CPU int, data []byte) { if pce != nil { path, err := p.Resolvers.DentryResolver.Resolve(event.CgroupWrite.File.PathKey, true) if err == nil && path != "" { - cgroupID := containerutils.CGroupID(filepath.Dir(string(path))) + if !p.kernelVersion.IsRH7Kernel() { + path = filepath.Dir(string(path)) + } + + cgroupID := containerutils.CGroupID(path) pce.CGroup.CGroupID = cgroupID pce.Process.CGroup.CGroupID = cgroupID cgroupFlags := containerutils.CGroupFlags(event.CgroupWrite.CGroupFlags) From 01c8ef818869e568414d48f6718e239b908b8a86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9lian=20Raimbault?= <161456554+CelianR@users.noreply.github.com> Date: Tue, 3 Dec 2024 07:39:50 -0500 Subject: [PATCH 217/439] Remade worktree unit tests (#31653) --- tasks/libs/common/worktree.py | 2 +- .../unit_tests/libs/common/worktree_tests.py | 185 +++++++++++------- 2 files changed, 115 insertions(+), 72 deletions(-) diff --git a/tasks/libs/common/worktree.py b/tasks/libs/common/worktree.py index 18813788cfc43..74dd5e04e4877 100644 --- a/tasks/libs/common/worktree.py +++ b/tasks/libs/common/worktree.py @@ -63,7 +63,7 @@ def remove_env(ctx): def is_worktree(): """Will return True if the current environment is a worktree environment.""" - return Path.cwd() == WORKTREE_DIRECTORY + return Path.cwd().resolve() == WORKTREE_DIRECTORY.resolve() def enter_env(ctx, branch: str | None, skip_checkout=False): diff --git a/tasks/unit_tests/libs/common/worktree_tests.py b/tasks/unit_tests/libs/common/worktree_tests.py index 8af09d2d128bc..203c6ab5956fd 100644 --- a/tasks/unit_tests/libs/common/worktree_tests.py +++ b/tasks/unit_tests/libs/common/worktree_tests.py @@ -1,104 +1,147 @@ -# TODO(celian): Reintroduce these tests +import os +import re +import shutil +import unittest +from pathlib import Path +from unittest.mock import patch -""" -NOTE: These tests are disabled since they use git commands that are not mocked yet. -This breaks unit tests ran with macos runners. -""" +from invoke.context import Context, MockContext, Result -# import os -# import unittest +from tasks.libs.common.gomodules import Configuration, get_default_modules +from tasks.libs.common.worktree import agent_context, init_env, is_worktree -# from invoke import Context +TEST_WORKTREE_DIR = Path('/tmp/datadog-agent-worktree') -# from tasks.libs.common.git import get_default_branch -# from tasks.libs.common.gomodules import get_default_modules -# from tasks.libs.common.worktree import agent_context, init_env, is_worktree +def get_ctx(): + return Context() -# def get_ctx(): -# return Context() +class WorktreeMockContext(MockContext): + """Mock for invoke context to simulate git commands (clone / switch). -# class TestWorktree(unittest.TestCase): -# def setUp(self): -# # Pull only once -# init_env(get_ctx(), '6.53.x') -# os.environ['AGENT_WORKTREE_NO_PULL'] = '1' + Only `modules.yml` will be updated to simulate it. + """ -# def test_context_is_worktree_true(self): -# with agent_context(get_ctx(), '6.53.x'): -# self.assertTrue(is_worktree()) + def __init__(self): + super().__init__() -# def test_context_is_worktree_false(self): -# self.assertFalse(is_worktree()) + self.branch = None + self.modules_main = get_default_modules() + # Exclude some modules + self.modules_653x = {name: mod for (name, mod) in get_default_modules().items() if not name.startswith('comp/')} -# def test_context_nested(self): -# with agent_context(get_ctx(), '6.53.x'): -# with agent_context(get_ctx(), '6.53.x'): -# self.assertTrue(is_worktree()) -# self.assertTrue(is_worktree()) + assert self.modules_main.keys() != self.modules_653x.keys() -# def test_context_pwd(self): -# ctx = get_ctx() + def _checkout(self, branch): + assert branch in ('main', '6.53.x') -# with agent_context(ctx, None, skip_checkout=True): -# pwdnone = ctx.run('pwd').stdout + if self.branch == branch: + return -# with agent_context(ctx, '6.53.x'): -# pwd6 = ctx.run('pwd').stdout + self.branch = branch + modules = self.modules_main if branch == 'main' else self.modules_653x -# with agent_context(ctx, 'main'): -# pwdmain = ctx.run('pwd').stdout + Configuration(TEST_WORKTREE_DIR, modules, set()).to_file() -# self.assertEqual(pwd6, pwdnone) -# self.assertEqual(pwd6, pwdmain) + def _clone(self): + self.reset() + TEST_WORKTREE_DIR.mkdir(parents=True) + self._checkout('main') -# def test_context_modules(self): -# ctx = get_ctx() + def reset(self): + shutil.rmtree(TEST_WORKTREE_DIR, ignore_errors=True) + self.branch = None -# with agent_context(ctx, 'main'): -# modules7 = get_default_modules() + def run(self, command, *args, **kwargs): + if re.match(r'git.*rev-parse.*', command): + return Result(stdout=self.branch) -# with agent_context(ctx, '6.53.x'): -# modules6 = get_default_modules() + if re.match(r'git.*remote get-url.*', command): + return Result(stdout='git@my-amazing-git-server.dev:datadog/datadog-agent.git') -# self.assertNotEqual(set(modules6.keys()), set(modules7.keys())) + if re.match(r'git.*clone.*', command): + self._clone() -# def test_context_branch(self): -# ctx = get_ctx() + return Result(stdout='cloned') -# with agent_context(ctx, 'main'): -# branch7 = get_default_branch() + if re.match(r'git.*checkout.*', command): + on_653x = '6.53.x' in command -# with agent_context(ctx, '6.53.x'): -# branch6 = get_default_branch() + self._checkout('6.53.x' if on_653x else 'main') -# self.assertNotEqual(branch6, branch7) + return Result(stdout='checked out') -# def test_context_no_checkout(self): -# ctx = get_ctx() + return super().run(command, *args, **kwargs) -# with agent_context(ctx, '6.53.x'): -# branch6 = get_default_branch() -# with agent_context(ctx, 'main'): -# branch7 = get_default_branch() +class TestWorktree(unittest.TestCase): + def setUp(self): + # Pull only once + self.mock_ctx = WorktreeMockContext() + self.mock_ctx.reset() + self.patch_workdir = patch('tasks.libs.common.worktree.WORKTREE_DIRECTORY', TEST_WORKTREE_DIR) + self.patch_workdir.start() + self.patch_agentdir = patch('tasks.libs.common.gomodules.agent_working_directory', lambda: TEST_WORKTREE_DIR) + self.patch_agentdir.start() -# with agent_context(ctx, 'main', skip_checkout=True): -# branch_no_checkout = get_default_branch() + os.environ['AGENT_WORKTREE_NO_PULL'] = '1' + init_env(self.mock_ctx, '6.53.x') -# self.assertNotEqual(branch6, branch7) -# self.assertEqual(branch7, branch_no_checkout) + def tearDown(self): + self.patch_workdir.stop() + self.patch_agentdir.stop() + self.mock_ctx.reset() -# def test_context_no_checkout_error(self): -# ctx = get_ctx() + def test_context_is_worktree_true(self): + with agent_context(self.mock_ctx, '6.53.x'): + self.assertTrue(is_worktree()) -# with agent_context(ctx, '6.53.x'): -# pass + def test_context_is_worktree_false(self): + self.assertFalse(is_worktree()) -# def switch_context(): -# # The current branch is not main -# with agent_context(ctx, 'main', skip_checkout=True): -# pass + def test_context_nested(self): + with agent_context(self.mock_ctx, '6.53.x'): + with agent_context(self.mock_ctx, '6.53.x'): + self.assertTrue(is_worktree()) + self.assertTrue(is_worktree()) -# self.assertRaises(AssertionError, switch_context) + def test_context_pwd(self): + ctx = get_ctx() + + with agent_context(self.mock_ctx, None, skip_checkout=True): + pwdnone = ctx.run('pwd').stdout + + with agent_context(self.mock_ctx, '6.53.x'): + pwd6 = ctx.run('pwd').stdout + + with agent_context(self.mock_ctx, 'main'): + pwdmain = ctx.run('pwd').stdout + + self.assertEqual(pwd6, pwdnone) + self.assertEqual(pwd6, pwdmain) + + def test_context_modules(self): + with agent_context(self.mock_ctx, 'main'): + modules7 = get_default_modules() + + with agent_context(self.mock_ctx, '6.53.x'): + modules6 = get_default_modules() + + self.assertNotEqual(set(modules6.keys()), set(modules7.keys())) + + def test_context_no_checkout(self): + with agent_context(self.mock_ctx, 'main'): + modules7 = get_default_modules() + + with agent_context(self.mock_ctx, '6.53.x'): + modules6 = get_default_modules() + + # Cannot skip checkout if the branch is not the target one (current is 6.53.x) + self.assertRaises(AssertionError, lambda: agent_context(self.mock_ctx, 'main', skip_checkout=True).__enter__()) + + with agent_context(self.mock_ctx, '6.53.x', skip_checkout=True): + modules_no_checkout = get_default_modules() + + self.assertNotEqual(set(modules6.keys()), set(modules7.keys())) + self.assertEqual(set(modules6.keys()), set(modules_no_checkout.keys())) From 2a1fa638029aa5b90e48a5fa1706da09049a0299 Mon Sep 17 00:00:00 2001 From: Pierre Gimalac Date: Tue, 3 Dec 2024 14:55:42 +0100 Subject: [PATCH 218/439] Stop creating go.work.backup when go.work already exists (#31696) --- go.work | 1 + tasks/modules.py | 7 +------ 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/go.work b/go.work index 5bf3423403122..d77cbb12e6c13 100644 --- a/go.work +++ b/go.work @@ -126,4 +126,5 @@ use ( test/fakeintake test/new-e2e test/otel + tools/retry_file_dump ) diff --git a/tasks/modules.py b/tasks/modules.py index 90524ef1560a3..09192a074973a 100644 --- a/tasks/modules.py +++ b/tasks/modules.py @@ -81,9 +81,8 @@ def generate_dummy_package(ctx, folder): @task def go_work(_: Context): """ - Create a go.work file using the module list contained in get_default_modules() + Re-create the go.work file using the module list contained in get_default_modules() and the go version contained in the file .go-version. - If there is already a go.work file, it is renamed go.work.backup and a warning is printed. """ # read go version from the .go-version file, removing the bugfix part of the version @@ -91,10 +90,6 @@ def go_work(_: Context): with open(".go-version") as f: go_version = f.read().strip() - if os.path.exists("go.work"): - print("go.work already exists. Renaming to go.work.backup") - os.rename("go.work", "go.work.backup") - with open("go.work", "w") as f: f.write(f"go {go_version}\n\nuse (\n") for mod in get_default_modules().values(): From a4a88c6477131acede1e014d7136366ee9ae4d67 Mon Sep 17 00:00:00 2001 From: Pierre Gimalac Date: Tue, 3 Dec 2024 14:55:49 +0100 Subject: [PATCH 219/439] Set codeowners for go.work file (#31697) --- .github/CODEOWNERS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 396770f04ceb1..d0b04dcb297e8 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -45,6 +45,8 @@ /static-analysis.datadog.yml @DataDog/software-integrity-and-trust @DataDog/agent-devx-infra /modules.yml @DataDog/agent-shared-components +# if go.work changes then either .go-version or modules.yml changed too, so ASC might as well own it +/go.work @DataDog/agent-shared-components /.circleci/ @DataDog/agent-devx-infra From 809bb8ee48a0c6b4dc370979088b8309fdde308a Mon Sep 17 00:00:00 2001 From: Florent Clarret Date: Tue, 3 Dec 2024 16:32:39 +0100 Subject: [PATCH 220/439] Add the version to the slack notification for RC PRs (#31710) --- tasks/release.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tasks/release.py b/tasks/release.py index 9d2ce03afe866..cabf0568e9d20 100644 --- a/tasks/release.py +++ b/tasks/release.py @@ -449,9 +449,12 @@ def create_rc(ctx, major_versions="6,7", patch_version=False, upstream="origin", # Step 4 - If slack workflow webhook is provided, send a slack message if slack_webhook: print(color_message("Sending slack notification", "bold")) - ctx.run( - f"curl -X POST -H 'Content-Type: application/json' --data '{{\"pr_url\":\"{pr_url}\"}}' {slack_webhook}" - ) + payload = { + "pr_url": pr_url, + "version": str(new_highest_version), + } + + ctx.run(f"curl -X POST -H 'Content-Type: application/json' --data '{json.dumps(payload)}' {slack_webhook}") @task From 7618f3a1fd3ee350d85606f56d81769e0b1d9449 Mon Sep 17 00:00:00 2001 From: Sylvain Baubeau Date: Tue, 3 Dec 2024 16:44:37 +0100 Subject: [PATCH 221/439] [CWS] Change tags retrieval retry logic (#31606) --- pkg/security/resolvers/cgroup/model/model.go | 5 -- pkg/security/resolvers/tags/resolver_linux.go | 62 +++++++++++++------ 2 files changed, 43 insertions(+), 24 deletions(-) diff --git a/pkg/security/resolvers/cgroup/model/model.go b/pkg/security/resolvers/cgroup/model/model.go index 1990c8511e033..83cbbe2217f40 100644 --- a/pkg/security/resolvers/cgroup/model/model.go +++ b/pkg/security/resolvers/cgroup/model/model.go @@ -102,8 +102,3 @@ func (cgce *CacheEntry) GetWorkloadSelectorCopy() *WorkloadSelector { Tag: cgce.WorkloadSelector.Tag, } } - -// NeedsTagsResolution returns true if this workload is missing its tags -func (cgce *CacheEntry) NeedsTagsResolution() bool { - return len(cgce.ContainerID) != 0 && !cgce.WorkloadSelector.IsReady() -} diff --git a/pkg/security/resolvers/tags/resolver_linux.go b/pkg/security/resolvers/tags/resolver_linux.go index 40f368062eae4..e11b2001dba4a 100644 --- a/pkg/security/resolvers/tags/resolver_linux.go +++ b/pkg/security/resolvers/tags/resolver_linux.go @@ -13,14 +13,20 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup" cgroupModel "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup/model" + "github.com/DataDog/datadog-agent/pkg/security/seclog" "github.com/DataDog/datadog-agent/pkg/security/utils" ) +type pendingWorkload struct { + *cgroupModel.CacheEntry + retries int +} + // LinuxResolver represents a default resolver based directly on the underlying tagger type LinuxResolver struct { *DefaultResolver *utils.Notifier[Event, *cgroupModel.CacheEntry] - workloadsWithoutTags chan *cgroupModel.CacheEntry + workloadsWithoutTags chan *pendingWorkload cgroupResolver *cgroup.Resolver } @@ -30,7 +36,10 @@ func (t *LinuxResolver) Start(ctx context.Context) error { return err } - if err := t.cgroupResolver.RegisterListener(cgroup.CGroupCreated, t.checkTags); err != nil { + if err := t.cgroupResolver.RegisterListener(cgroup.CGroupCreated, func(cgce *cgroupModel.CacheEntry) { + workload := &pendingWorkload{CacheEntry: cgce, retries: 3} + t.checkTags(workload) + }); err != nil { return err } @@ -46,12 +55,17 @@ func (t *LinuxResolver) Start(ctx context.Context) error { case <-ctx.Done(): return case <-delayerTick.C: - select { - case workload := <-t.workloadsWithoutTags: - t.checkTags(workload) - default: - } + WORKLOAD: + // we want to process approximately the number of workloads in the queue + for workloadCount := len(t.workloadsWithoutTags); workloadCount > 0; workloadCount-- { + select { + case workload := <-t.workloadsWithoutTags: + t.checkTags(workload) + default: + break WORKLOAD + } + } } } }() @@ -59,22 +73,32 @@ func (t *LinuxResolver) Start(ctx context.Context) error { return nil } +func needsTagsResolution(cgce *cgroupModel.CacheEntry) bool { + return len(cgce.ContainerID) != 0 && !cgce.WorkloadSelector.IsReady() +} + // checkTags checks if the tags of a workload were properly set -func (t *LinuxResolver) checkTags(workload *cgroupModel.CacheEntry) { - // check if the workload tags were found - if workload.NeedsTagsResolution() { - // this is a container, try to resolve its tags now - if err := t.fetchTags(workload); err != nil || workload.NeedsTagsResolution() { - // push to the workloadsWithoutTags chan so that its tags can be resolved later - select { - case t.workloadsWithoutTags <- workload: - default: +func (t *LinuxResolver) checkTags(pendingWorkload *pendingWorkload) { + workload := pendingWorkload.CacheEntry + // check if the workload tags were found or if it was deleted + if !workload.Deleted.Load() && needsTagsResolution(workload) { + // this is an alive cgroup, try to resolve its tags now + if err := t.fetchTags(workload); err != nil || needsTagsResolution(workload) { + if pendingWorkload.retries--; pendingWorkload.retries >= 0 { + // push to the workloadsWithoutTags chan so that its tags can be resolved later + select { + case t.workloadsWithoutTags <- pendingWorkload: + default: + seclog.Warnf("Failed to requeue workload %s for tags retrieval", workload.ContainerID) + } + } else { + seclog.Debugf("Failed to resolve tags for workload %s", workload.ContainerID) } return } - } - t.NotifyListeners(WorkloadSelectorResolved, workload) + t.NotifyListeners(WorkloadSelectorResolved, workload) + } } // fetchTags fetches tags for the provided workload @@ -92,7 +116,7 @@ func NewResolver(tagger Tagger, cgroupsResolver *cgroup.Resolver) *LinuxResolver resolver := &LinuxResolver{ Notifier: utils.NewNotifier[Event, *cgroupModel.CacheEntry](), DefaultResolver: NewDefaultResolver(tagger), - workloadsWithoutTags: make(chan *cgroupModel.CacheEntry, 100), + workloadsWithoutTags: make(chan *pendingWorkload, 100), cgroupResolver: cgroupsResolver, } return resolver From d4f067ccc354780ab95688f54bcc9aff2d2686b1 Mon Sep 17 00:00:00 2001 From: Julien Lebot Date: Tue, 3 Dec 2024 17:02:51 +0100 Subject: [PATCH 222/439] [Fleet Automation] Remove timeouts in bootstrap command (#31706) --- .../subcommands/installer/command.go | 22 +++++-------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/cmd/installer/subcommands/installer/command.go b/cmd/installer/subcommands/installer/command.go index ebbe269aa7ebd..3a14a65d85cd8 100644 --- a/cmd/installer/subcommands/installer/command.go +++ b/cmd/installer/subcommands/installer/command.go @@ -9,12 +9,6 @@ package installer import ( "context" "fmt" - "net/url" - "os" - "runtime" - "strings" - "time" - "github.com/DataDog/datadog-agent/cmd/installer/command" "github.com/DataDog/datadog-agent/pkg/fleet/bootstrapper" "github.com/DataDog/datadog-agent/pkg/fleet/installer" @@ -25,6 +19,10 @@ import ( "gopkg.in/DataDog/dd-trace-go.v1/ddtrace" "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" "gopkg.in/yaml.v2" + "net/url" + "os" + "runtime" + "strings" ) const ( @@ -273,7 +271,6 @@ func defaultPackagesCommand() *cobra.Command { } func bootstrapCommand() *cobra.Command { - var timeout time.Duration cmd := &cobra.Command{ Use: "bootstrap", Short: "Bootstraps the package with the first version.", @@ -281,17 +278,13 @@ func bootstrapCommand() *cobra.Command { RunE: func(_ *cobra.Command, _ []string) (err error) { b := newBootstrapperCmd("bootstrap") defer func() { b.Stop(err) }() - ctx, cancel := context.WithTimeout(b.ctx, timeout) - defer cancel() - return bootstrapper.Bootstrap(ctx, b.env) + return bootstrapper.Bootstrap(b.ctx, b.env) }, } - cmd.Flags().DurationVarP(&timeout, "timeout", "T", 10*time.Minute, "timeout to bootstrap with") return cmd } func setupCommand() *cobra.Command { - var timeout time.Duration cmd := &cobra.Command{ Use: "setup", Hidden: true, @@ -299,12 +292,9 @@ func setupCommand() *cobra.Command { RunE: func(_ *cobra.Command, _ []string) (err error) { cmd := newCmd("setup") defer func() { cmd.Stop(err) }() - ctx, cancel := context.WithTimeout(cmd.ctx, timeout) - defer cancel() - return installer.Setup(ctx, cmd.env) + return installer.Setup(cmd.ctx, cmd.env) }, } - cmd.Flags().DurationVarP(&timeout, "timeout", "T", 10*time.Minute, "timeout to install with") return cmd } From 2d20432a10d9a0cec68a029e74f16c1bf39dd2cc Mon Sep 17 00:00:00 2001 From: Nicolas Schweitzer Date: Tue, 3 Dec 2024 17:38:44 +0100 Subject: [PATCH 223/439] feat(issues): Enable a new issue workflow for automatic issue triage (#26207) --- .github/workflows/assign_issue.yml | 30 ++++++ tasks/__init__.py | 2 + tasks/issue.py | 37 +++++++ tasks/libs/common/utils.py | 102 ------------------- tasks/libs/issue/assign.py | 146 ++++++++++++++++++++++++++++ tasks/libs/issue/model/actions.py | 115 ++++++++++++++++++++++ tasks/libs/issue/model/constants.py | 42 ++++++++ tasks/owners.py | 24 +---- tasks/unit_tests/issue_tests.py | 36 +++++++ tasks/unit_tests/utils_tests.py | 35 +------ 10 files changed, 410 insertions(+), 159 deletions(-) create mode 100644 .github/workflows/assign_issue.yml create mode 100644 tasks/issue.py create mode 100644 tasks/libs/issue/assign.py create mode 100644 tasks/libs/issue/model/actions.py create mode 100644 tasks/libs/issue/model/constants.py create mode 100644 tasks/unit_tests/issue_tests.py diff --git a/.github/workflows/assign_issue.yml b/.github/workflows/assign_issue.yml new file mode 100644 index 0000000000000..be9db6209604b --- /dev/null +++ b/.github/workflows/assign_issue.yml @@ -0,0 +1,30 @@ +--- +name: "Assign issue to a team" + +on: + issues: + types: [opened, reopened] + +jobs: + auto_assign_issue: + runs-on: ubuntu-latest + container: + image: ghcr.io/datadog/agent-issue-auto-assign:latest + credentials: + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + permissions: + packages: read + issues: write + steps: + - name: Checkout repository + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - name: Install dependencies + # Dependencies are installed at runtime. Otherwise it would create a huge image see https://hub.docker.com/r/pytorch/pytorch/tags + run: | + pip install --upgrade pip && pip install --no-compile --no-cache-dir torch transformers invoke codeowners slack-sdk PyGithub python-gitlab semver + - name: Assign issue + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + inv -e issue.assign-owner --issue ${{ github.event.issue.number }} diff --git a/tasks/__init__.py b/tasks/__init__.py index 3fdbb3b332605..44adcefb1dcad 100644 --- a/tasks/__init__.py +++ b/tasks/__init__.py @@ -35,6 +35,7 @@ go_deps, installer, invoke_unit_tests, + issue, kmt, linter, modules, @@ -179,6 +180,7 @@ ns.add_collection(git) ns.add_collection(github_tasks, "github") ns.add_collection(gitlab_helpers, "gitlab") +ns.add_collection(issue) ns.add_collection(package) ns.add_collection(pipeline) ns.add_collection(notes) diff --git a/tasks/issue.py b/tasks/issue.py new file mode 100644 index 0000000000000..3d3f80161fdd4 --- /dev/null +++ b/tasks/issue.py @@ -0,0 +1,37 @@ +import os + +from invoke import task + +from tasks.libs.ciproviders.github_api import GithubAPI +from tasks.libs.issue.assign import assign_with_model, assign_with_rules +from tasks.libs.issue.model.actions import fetch_data_and_train_model +from tasks.libs.pipeline.notifications import GITHUB_SLACK_MAP + + +@task +def assign_owner(_, issue_id, dry_run=False): + gh = GithubAPI('DataDog/datadog-agent') + issue = gh.repo.get_issue(int(issue_id)) + assignment = "model" + owner, confidence = assign_with_model(issue) + if confidence < 0.5: + assignment = "rules" + owner = assign_with_rules(issue, gh) + print(f"Issue assigned to team/{owner} with {assignment}") + if not dry_run: + # Edit issue label + issue.add_to_labels(f"team/{owner}") + # Post message + from slack_sdk import WebClient + + client = WebClient(os.environ['SLACK_API_TOKEN']) + channel = GITHUB_SLACK_MAP.get(owner.lower(), '#agent-ask-anything') + message = f':githubstatus_partial_outage: *New Community Issue*\n{issue.title} <{issue.html_url}|{gh.repo.name}#{issue_id}>' + message += "\nThe assignation to your team was done automatically, using issue content and title. Please redirect if needed." + client.chat_postMessage(channel=channel, text=message) + return owner + + +@task +def generate_model(_): + fetch_data_and_train_model() diff --git a/tasks/libs/common/utils.py b/tasks/libs/common/utils.py index 1bbd88910a8e5..70eb60f20a5f6 100644 --- a/tasks/libs/common/utils.py +++ b/tasks/libs/common/utils.py @@ -11,11 +11,9 @@ import tempfile import time import traceback -from collections import Counter from contextlib import contextmanager from dataclasses import dataclass from functools import wraps -from pathlib import Path from subprocess import CalledProcessError, check_output from types import SimpleNamespace @@ -26,7 +24,6 @@ from tasks.libs.common.color import Color, color_message from tasks.libs.common.constants import ALLOWED_REPO_ALL_BRANCHES, REPO_PATH from tasks.libs.common.git import get_commit_sha, get_default_branch -from tasks.libs.owners.parsing import search_owners from tasks.libs.releasing.version import get_version from tasks.libs.types.arch import Arch @@ -587,105 +584,6 @@ def parse_kernel_version(version: str) -> tuple[int, int, int, int]: return (int(match.group(1)), int(match.group(2)), int(match.group(4) or "0"), int(match.group(6) or "0")) -def guess_from_labels(issue): - for label in issue.labels: - if label.name.startswith("team/") and "triage" not in label.name: - return label.name.split("/")[-1] - return 'triage' - - -def guess_from_keywords(issue): - text = f"{issue.title} {issue.body}".casefold().split() - c = Counter(text) - for word in c.most_common(): - team = simple_match(word[0]) - if team: - return team - team = file_match(word[0]) - if team: - return team - return "triage" - - -def simple_match(word): - pattern_matching = { - "agent-apm": ['apm', 'java', 'dotnet', 'ruby', 'trace'], - "containers": [ - 'container', - 'pod', - 'kubernetes', - 'orchestrator', - 'docker', - 'k8s', - 'kube', - 'cluster', - 'kubelet', - 'helm', - ], - "agent-metrics-logs": ['logs', 'metric', 'log-ag', 'statsd', 'tags', 'hostnam'], - "agent-delivery": ['omnibus', 'packaging', 'script'], - "remote-config": ['installer', 'oci'], - "agent-cspm": ['cspm'], - "ebpf-platform": ['ebpf', 'system-prob', 'sys-prob'], - "agent-security": ['security', 'vuln', 'security-agent'], - "agent-shared-components": ['fips', 'inventory', 'payload', 'jmx', 'intak', 'gohai'], - "fleet": ['fleet', 'fleet-automation'], - "opentelemetry": ['otel', 'opentelemetry'], - "windows-agent": ['windows', 'sys32', 'powershell'], - "networks": ['tcp', 'udp', 'socket', 'network'], - "serverless": ['serverless'], - "integrations": ['integration', 'python', 'checks'], - } - for team, words in pattern_matching.items(): - if any(w in word for w in words): - return team - return None - - -def file_match(word): - dd_folders = [ - 'chocolatey', - 'cmd', - 'comp', - 'dev', - 'devenv', - 'docs', - 'internal', - 'omnibus', - 'pkg', - 'rtloader', - 'tasks', - 'test', - 'tools', - ] - p = Path(word) - if len(p.parts) > 1 and p.suffix: - path_folder = next((f for f in dd_folders if f in p.parts), None) - if path_folder: - file = '/'.join(p.parts[p.parts.index(path_folder) :]) - return ( - search_owners(file, ".github/CODEOWNERS")[0].casefold().replace("@datadog/", "") - ) # only return the first owner - return None - - -def team_to_label(team): - dico = { - 'apm-core-reliability-and-performance': "agent-apm", - 'universal-service-monitoring': "usm", - 'software-integrity-and-trust': "agent-security", - 'agent-all': "triage", - 'telemetry-and-analytics': "agent-apm", - 'fleet': "fleet-automation", - 'debugger': "dynamic-intrumentation", - 'container-integrations': "containers", - 'agent-e2e-testing': "agent-e2e-test", - 'agent-integrations': "integrations", - 'asm-go': "agent-security", - } - return dico.get(team, team) - - @contextmanager def download_to_tempfile(url, checksum=None): """ diff --git a/tasks/libs/issue/assign.py b/tasks/libs/issue/assign.py new file mode 100644 index 0000000000000..7c196070cbc7f --- /dev/null +++ b/tasks/libs/issue/assign.py @@ -0,0 +1,146 @@ +from collections import Counter +from pathlib import Path + +from tasks.libs.ciproviders.github_api import get_github_teams +from tasks.libs.issue.model.constants import BASE_MODEL, MODEL, TEAMS +from tasks.libs.owners.parsing import most_frequent_agent_team, search_owners + + +def assign_with_model(issue): + import torch + from transformers import AutoModelForSequenceClassification, AutoTokenizer + + m = AutoModelForSequenceClassification.from_pretrained( + f"{MODEL}", ignore_mismatched_sizes=True, local_files_only=True + ) + m.eval() + tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL) + inputs = tokenizer( + f"{issue.title} {issue.body}".casefold(), + padding='max_length', + truncation=True, + max_length=64, + return_tensors='pt', + ) + with torch.no_grad(): + outputs = m(**inputs) + logits = outputs.logits + proba = torch.softmax(logits, dim=1) + predicted_class = torch.argmax(proba).item() + confidence = proba[0][predicted_class].item() + return TEAMS[torch.argmax(outputs.logits).item()], confidence + + +def assign_with_rules(issue, gh): + owner = guess_from_labels(issue) + if owner == 'triage': + users = [user for user in issue.assignees if gh.is_organization_member(user)] + teams = get_github_teams(users) + owner = most_frequent_agent_team(teams) + if owner == 'triage': + commenters = [c.user for c in issue.get_comments() if gh.is_organization_member(c.user)] + teams = get_github_teams(commenters) + owner = most_frequent_agent_team(teams) + if owner == 'triage': + owner = guess_from_keywords(issue) + return team_to_label(owner) + + +def guess_from_labels(issue): + for label in issue.labels: + if label.name.startswith("team/") and "triage" not in label.name: + return label.name.split("/")[-1] + return 'triage' + + +def guess_from_keywords(issue): + text = f"{issue.title} {issue.body}".casefold().split() + c = Counter(text) + for word in c.most_common(): + team = simple_match(word[0]) + if team: + return team + team = file_match(word[0]) + if team: + return team + return "triage" + + +def simple_match(word): + pattern_matching = { + "agent-apm": ['apm', 'java', 'dotnet', 'ruby', 'trace'], + "containers": [ + 'container', + 'pod', + 'kubernetes', + 'orchestrator', + 'docker', + 'k8s', + 'kube', + 'cluster', + 'kubelet', + 'helm', + ], + "agent-metrics-logs": ['logs', 'metric', 'log-ag', 'statsd', 'tags', 'hostnam'], + "agent-build-and-releases": ['omnibus', 'packaging', 'script'], + "remote-config": ['installer', 'oci'], + "agent-cspm": ['cspm'], + "ebpf-platform": ['ebpf', 'system-prob', 'sys-prob'], + "agent-security": ['security', 'vuln', 'security-agent'], + "agent-shared-components": ['fips', 'inventory', 'payload', 'jmx', 'intak', 'gohai'], + "fleet": ['fleet', 'fleet-automation'], + "opentelemetry": ['otel', 'opentelemetry'], + "windows-agent": ['windows', 'sys32', 'powershell'], + "networks": ['tcp', 'udp', 'socket', 'network'], + "serverless": ['serverless'], + "integrations": ['integration', 'python', 'checks'], + } + for team, words in pattern_matching.items(): + if any(w in word for w in words): + return team + return None + + +def file_match(word): + dd_folders = [ + 'chocolatey', + 'cmd', + 'comp', + 'dev', + 'devenv', + 'docs', + 'internal', + 'omnibus', + 'pkg', + 'pkg-config', + 'rtloader', + 'tasks', + 'test', + 'tools', + ] + p = Path(word) + if len(p.parts) > 1 and p.suffix: + path_folder = next((f for f in dd_folders if f in p.parts), None) + if path_folder: + file = '/'.join(p.parts[p.parts.index(path_folder) :]) + return ( + search_owners(file, ".github/CODEOWNERS")[0].casefold().replace("@datadog/", "") + ) # only return the first owner + return None + + +def team_to_label(team): + dico = { + 'apm-core-reliability-and-performance': "agent-apm", + 'universal-service-monitoring': "usm", + 'software-integrity-and-trust': "agent-security", + 'agent-all': "triage", + 'telemetry-and-analytics': "agent-apm", + 'fleet': "fleet-automation", + 'debugger': "dynamic-intrumentation", + 'container-integrations': "containers", + 'agent-e2e-testing': "agent-e2e-test", + 'agent-integrations': "integrations", + 'asm-go': "agent-security", + } + return dico.get(team, team) diff --git a/tasks/libs/issue/model/actions.py b/tasks/libs/issue/model/actions.py new file mode 100644 index 0000000000000..5e35a7a08f452 --- /dev/null +++ b/tasks/libs/issue/model/actions.py @@ -0,0 +1,115 @@ +from time import sleep + +from tasks.libs.ciproviders.github_api import GithubAPI +from tasks.libs.issue.assign import assign_with_rules +from tasks.libs.issue.model.constants import BASE_MODEL, MODEL, TEAMS + + +def fetch_data_and_train_model(): + gh = GithubAPI('DataDog/datadog-agent') + d = gh.repo + issues = [] + teams = [] + for id, issue in enumerate(d.get_issues(state='all')): + issues.append(f"{issue.title} {issue.body}".casefold()) + teams.append(assign_with_rules(issue, gh)) + # Sleep to avoid hitting the rate limit + if id % 2000 == 0: + sleep(3600) + + train_the_model(teams, issues, "issue_auto_assign_model", 64, 5) + + +def train_the_model(teams, issues, batch_size, epochs): + import torch + from sklearn.model_selection import train_test_split + from torch.utils.data import DataLoader, Dataset + from transformers import AutoModelForSequenceClassification, AutoTokenizer + + class IssueDataset(Dataset): + def __init__(self, issues, labels, tokenizer, max_length=64): + self.issues = issues + self.labels = labels + self.tokenizer = tokenizer + self.max_length = max_length + + def __len__(self): + return len(self.issues) + + def __getitem__(self, idx): + issue = self.issues[idx] + label = self.labels[idx] + inputs = self.tokenizer( + issue, max_length=self.max_length, padding="max_length", truncation=True, return_tensors="pt" + ) + return { + "input_ids": inputs["input_ids"].flatten(), + "attention_mask": inputs["attention_mask"].flatten(), + "labels": torch.tensor(label, dtype=torch.long), + } + + # Split the dataset into training and validation sets + train_issues, val_issues, train_teams, val_teams = train_test_split(issues, teams, test_size=0.2, random_state=42) + + # Define hyperparameters + learning_rate = 2e-5 + + # Load pre-trained BERT model and tokenizer + tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL) + model = AutoModelForSequenceClassification.from_pretrained( + BASE_MODEL, num_labels=len(set(teams)), ignore_mismatched_sizes=True + ) + + # Prepare dataset and dataloaders + train_teams = [TEAMS.index(t) for t in train_teams] + val_teams = [TEAMS.index(t) for t in val_teams] + train_dataset = IssueDataset(train_issues, train_teams, tokenizer, max_length=batch_size) + val_dataset = IssueDataset(val_issues, val_teams, tokenizer, max_length=batch_size) + print(f"set sizes : {len(train_dataset)} {len(val_dataset)} {len(set(teams))}") + + print(f"train_dataset {train_dataset[0]}") + print(f"train_dataset {train_dataset[1]}") + train_loader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True) + val_loader = DataLoader(val_dataset, batch_size=batch_size) + + # Define optimizer and loss function + optimizer = torch.optim.AdamW(model.parameters(), lr=learning_rate) + + print("Start training...") + # Fine-tune the model + for epoch in range(epochs): + print(f"Epoch {epoch+1}/{epochs}") + model.train() + train_loss = 0.0 + for batch in train_loader: + optimizer.zero_grad() + input_ids, attention_mask, labels = batch['input_ids'], batch['attention_mask'], batch['labels'] + outputs = model(input_ids=input_ids, attention_mask=attention_mask, labels=labels) + loss = outputs.loss + train_loss += loss.item() + loss.backward() + optimizer.step() + train_loss /= len(train_loader) + + # Evaluate on validation set + model.eval() + val_loss = 0.0 + correct = 0 + total = 0 + print("validate") + with torch.no_grad(): + for batch in val_loader: + input_ids, attention_mask, labels = batch['input_ids'], batch['attention_mask'], batch['labels'] + outputs = model(input_ids=input_ids, attention_mask=attention_mask, labels=labels) + loss = outputs.loss + val_loss += loss.item() + _, predicted = torch.max(outputs.logits, 1) + total += labels.size(0) + correct += (predicted == labels).sum().item() + val_loss /= len(val_loader) + val_accuracy = correct / total + + print( + f"Epoch {epoch+1}/{epochs}: Train Loss: {train_loss:.4f}, Val Loss: {val_loss:.4f}, Val Accuracy: {val_accuracy:.4f}" + ) + model.save_pretrained(MODEL) diff --git a/tasks/libs/issue/model/constants.py b/tasks/libs/issue/model/constants.py new file mode 100644 index 0000000000000..986d201bcf138 --- /dev/null +++ b/tasks/libs/issue/model/constants.py @@ -0,0 +1,42 @@ +MODEL = "/issue_auto_assign_model" +BASE_MODEL = "distilbert-base-uncased-finetuned-sst-2-english" +TEAMS = ( + 'container-ecosystems', + 'windows-agent', + 'remote-config', + 'container-platform', + 'documentation', + 'agent-security', + 'container-app', + 'agent-all', + 'processes', + 'agent-platform', + 'agent-release-management', + 'networks', + 'ebpf-platform', + 'agent-apm', + 'single-machine-performance', + 'agent-e2e-testing', + 'agent-developer-tools', + 'triage', + 'windows-kernel-integrations', + 'container-integrations', + 'software-integrity-and-trust', + 'opentelemetry', + 'universal-service-monitoring', + 'agent-build-and-releases', + 'agent-shared-components', + 'agent-integrations', + 'agent-metrics-logs', + 'platform-integrations', + 'agent-ci-experience', + 'asm-go', + 'agent-cspm', + 'debugger', + 'database-monitoring', + 'network-device-monitoring', + 'serverless', + 'apm-onboarding', + 'fleet', + 'agent-processing-and-routing', +) diff --git a/tasks/owners.py b/tasks/owners.py index 11c5f2c27d7ba..b2ecceffd581a 100644 --- a/tasks/owners.py +++ b/tasks/owners.py @@ -2,9 +2,7 @@ from invoke import task -from tasks.libs.ciproviders.github_api import GithubAPI, get_github_teams -from tasks.libs.common.utils import guess_from_keywords, guess_from_labels, team_to_label -from tasks.libs.owners.parsing import most_frequent_agent_team, read_owners, search_owners +from tasks.libs.owners.parsing import read_owners, search_owners from tasks.libs.pipeline.notifications import GITHUB_SLACK_MAP @@ -18,26 +16,6 @@ def find_codeowners(_, path, owners_file=".github/CODEOWNERS"): print(", ".join(search_owners(path, owners_file))) -@task -def guess_responsible(_, issue_id): - gh = GithubAPI('DataDog/datadog-agent') - issue = gh.repo.get_issue(int(issue_id)) - owner = guess_from_labels(issue) - if owner == 'triage': - users = [user for user in issue.assignees if gh.is_organization_member(user)] - teams = get_github_teams(users) - owner = most_frequent_agent_team(teams) - if owner == 'triage': - commenters = [c.user for c in issue.get_comments() if gh.is_organization_member(c.user)] - teams = get_github_teams(commenters) - owner = most_frequent_agent_team(teams) - if owner == 'triage': - owner = guess_from_keywords(issue) - owner = team_to_label(owner) - print(owner) - return owner - - def make_partition(names: list[str], owners_file: str, get_channels: bool = False) -> dict[str, set[str]]: """ From a list of job / file names, will create a dictionary with the teams as keys and the names as values. diff --git a/tasks/unit_tests/issue_tests.py b/tasks/unit_tests/issue_tests.py new file mode 100644 index 0000000000000..e72676fc50e3f --- /dev/null +++ b/tasks/unit_tests/issue_tests.py @@ -0,0 +1,36 @@ +import unittest +from unittest.mock import MagicMock + +from tasks.libs.issue.assign import guess_from_keywords, guess_from_labels + + +# We must define this class as we cannot override the name attribute in MagicMock +class Label: + def __init__(self, name): + self.name = name + + +class TestGuessFromLabels(unittest.TestCase): + def test_with_team(self): + issue = MagicMock(labels=[Label(name="team/triage"), Label(name="team/core")]) + + self.assertEqual(guess_from_labels(issue), "core") + + def test_without_team(self): + issue = MagicMock(labels=[Label(name="team/triage"), Label(name="team:burton")]) + + self.assertEqual(guess_from_labels(issue), "triage") + + +class TestGuessFromKeywords(unittest.TestCase): + def test_from_simple_match(self): + issue = MagicMock(title="I have an issue", body="I can't get any logs from the agent.") + self.assertEqual(guess_from_keywords(issue), "agent-metrics-logs") + + def test_with_a_file(self): + issue = MagicMock(title="fix bug", body="It comes from the file pkg/agent/build.py") + self.assertEqual(guess_from_keywords(issue), "agent-shared-components") + + def test_no_match(self): + issue = MagicMock(title="fix bug", body="It comes from the file... hm I don't know.") + self.assertEqual(guess_from_keywords(issue), "triage") diff --git a/tasks/unit_tests/utils_tests.py b/tasks/unit_tests/utils_tests.py index 02aae11c5fc80..3d867d240b2b9 100644 --- a/tasks/unit_tests/utils_tests.py +++ b/tasks/unit_tests/utils_tests.py @@ -1,7 +1,6 @@ import unittest -from unittest.mock import MagicMock -from tasks.libs.common.utils import clean_nested_paths, guess_from_keywords, guess_from_labels +from tasks.libs.common.utils import clean_nested_paths class TestUtils(unittest.TestCase): @@ -33,35 +32,3 @@ def test_clean_nested_paths_2(self): ] expected_paths = ["."] self.assertEqual(clean_nested_paths(paths), expected_paths) - - -# We must define this class as we cannot override the name attribute in MagicMock -class Label: - def __init__(self, name): - self.name = name - - -class TestGuessFromLabels(unittest.TestCase): - def test_with_team(self): - issue = MagicMock(labels=[Label(name="team/triage"), Label(name="team/core")]) - - self.assertEqual(guess_from_labels(issue), "core") - - def test_without_team(self): - issue = MagicMock(labels=[Label(name="team/triage"), Label(name="team:burton")]) - - self.assertEqual(guess_from_labels(issue), "triage") - - -class TestGuessFromKeywords(unittest.TestCase): - def test_from_simple_match(self): - issue = MagicMock(title="I have an issue", body="I can't get any logs from the agent.") - self.assertEqual(guess_from_keywords(issue), "agent-metrics-logs") - - def test_with_a_file(self): - issue = MagicMock(title="fix bug", body="It comes from the file pkg/agent/build.py") - self.assertEqual(guess_from_keywords(issue), "agent-shared-components") - - def test_no_match(self): - issue = MagicMock(title="fix bug", body="It comes from the file... hm I don't know.") - self.assertEqual(guess_from_keywords(issue), "triage") From f15536c69f321674e2a6295cb821e16fc7375800 Mon Sep 17 00:00:00 2001 From: Bryce Kahle Date: Tue, 3 Dec 2024 10:33:48 -0800 Subject: [PATCH 224/439] simplify flare requests for system-probe (#31293) --- .github/CODEOWNERS | 1 - cmd/agent/subcommands/flare/command.go | 36 ++- cmd/system-probe/api/client/client.go | 30 ++ pkg/flare/archive.go | 49 ++-- pkg/flare/archive_linux.go | 33 ++- pkg/flare/sysprobe/archive.go | 20 -- pkg/flare/sysprobe/archive_linux.go | 38 --- pkg/flare/sysprobe/archive_nolinux.go | 25 -- pkg/flare/sysprobe/archive_unsupported.go | 16 - pkg/process/net/common.go | 126 -------- pkg/process/net/common_linux.go | 36 --- pkg/process/net/common_unsupported.go | 22 -- pkg/process/net/common_windows.go | 18 -- pkg/process/net/mocks/sys_probe_util.go | 343 ---------------------- pkg/process/net/shared.go | 6 - pkg/status/systemprobe/status.go | 45 ++- 16 files changed, 150 insertions(+), 694 deletions(-) delete mode 100644 pkg/flare/sysprobe/archive.go delete mode 100644 pkg/flare/sysprobe/archive_linux.go delete mode 100644 pkg/flare/sysprobe/archive_nolinux.go delete mode 100644 pkg/flare/sysprobe/archive_unsupported.go diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index d0b04dcb297e8..92f4e0cae5b31 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -430,7 +430,6 @@ /pkg/flare/*_win.go @Datadog/windows-agent /pkg/flare/*_windows.go @Datadog/windows-agent /pkg/flare/*_windows_test.go @Datadog/windows-agent -/pkg/flare/sysprobe @DataDog/Networks @Datadog/windows-agent @DataDog/agent-security @DataDog/universal-service-monitoring @DataDog/ebpf-platform /pkg/fleet/ @DataDog/fleet @DataDog/windows-agent /pkg/pidfile/ @DataDog/agent-shared-components /pkg/persistentcache/ @DataDog/agent-metrics-logs diff --git a/cmd/agent/subcommands/flare/command.go b/cmd/agent/subcommands/flare/command.go index f6789a2fc1b47..1b4fb2d3bc1e3 100644 --- a/cmd/agent/subcommands/flare/command.go +++ b/cmd/agent/subcommands/flare/command.go @@ -9,9 +9,10 @@ package flare import ( "bytes" "encoding/json" - "errors" "fmt" + "io" "net" + "net/http" "net/url" "os" "path" @@ -26,6 +27,7 @@ import ( "github.com/DataDog/datadog-agent/cmd/agent/command" "github.com/DataDog/datadog-agent/cmd/agent/common" "github.com/DataDog/datadog-agent/cmd/agent/subcommands/streamlogs" + sysprobeclient "github.com/DataDog/datadog-agent/cmd/system-probe/api/client" "github.com/DataDog/datadog-agent/comp/aggregator/diagnosesendermanager/diagnosesendermanagerimpl" authtokenimpl "github.com/DataDog/datadog-agent/comp/api/authtoken/fetchonlyimpl" "github.com/DataDog/datadog-agent/comp/collector/collector" @@ -53,7 +55,6 @@ import ( "github.com/DataDog/datadog-agent/pkg/api/util" "github.com/DataDog/datadog-agent/pkg/config/settings" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" - procnet "github.com/DataDog/datadog-agent/pkg/process/net" "github.com/DataDog/datadog-agent/pkg/serializer" "github.com/DataDog/datadog-agent/pkg/util/defaultpaths" "github.com/DataDog/datadog-agent/pkg/util/fxutil" @@ -252,21 +253,32 @@ func readProfileData(seconds int) (flare.ProfileData, error) { } if pkgconfigsetup.SystemProbe().GetBool("system_probe_config.enabled") { - probeUtil, probeUtilErr := procnet.GetRemoteSystemProbeUtil(pkgconfigsetup.SystemProbe().GetString("system_probe_config.sysprobe_socket")) + client := &http.Client{ + Transport: &http.Transport{ + DialContext: sysprobeclient.DialContextFunc(pkgconfigsetup.SystemProbe().GetString("system_probe_config.sysprobe_socket")), + }, + } - if !errors.Is(probeUtilErr, procnet.ErrNotImplemented) { - sysProbeGet := func() pprofGetter { - return func(path string) ([]byte, error) { - if probeUtilErr != nil { - return nil, probeUtilErr - } + sysProbeGet := func() pprofGetter { + return func(path string) ([]byte, error) { + var buf bytes.Buffer + pprofURL := sysprobeclient.DebugURL("/pprof" + path) + req, err := http.NewRequest(http.MethodGet, pprofURL, &buf) + if err != nil { + return nil, err + } - return probeUtil.GetPprof(path) + res, err := client.Do(req) + if err != nil { + return nil, err } - } + defer res.Body.Close() - agentCollectors["system-probe"] = serviceProfileCollector(sysProbeGet(), seconds) + return io.ReadAll(res.Body) + } } + + agentCollectors["system-probe"] = serviceProfileCollector(sysProbeGet(), seconds) } var errs error diff --git a/cmd/system-probe/api/client/client.go b/cmd/system-probe/api/client/client.go index 27093eab890c6..780dbb972fe0e 100644 --- a/cmd/system-probe/api/client/client.go +++ b/cmd/system-probe/api/client/client.go @@ -7,6 +7,7 @@ package client import ( + "bytes" "encoding/json" "errors" "fmt" @@ -81,7 +82,36 @@ func constructURL(module string, endpoint string) string { return u.String() } +// URL constructs a system-probe URL for a module-less endpoint. +func URL(endpoint string) string { + return constructURL("", endpoint) +} + +// DebugURL constructs a system-probe URL for the debug module and endpoint. +func DebugURL(endpoint string) string { + return constructURL("debug", endpoint) +} + // ModuleURL constructs a system-probe ModuleURL given the specified module and endpoint. func ModuleURL(module types.ModuleName, endpoint string) string { return constructURL(string(module), endpoint) } + +// ReadAllResponseBody reads the entire HTTP response body as a byte slice +func ReadAllResponseBody(resp *http.Response) ([]byte, error) { + // if we are not able to determine the content length + // we read the whole body without pre-allocation + if resp.ContentLength <= 0 { + return io.ReadAll(resp.Body) + } + + // if we know the content length we pre-allocate the buffer + var buf bytes.Buffer + buf.Grow(int(resp.ContentLength)) + + _, err := buf.ReadFrom(resp.Body) + if err != nil { + return nil, err + } + return buf.Bytes(), nil +} diff --git a/pkg/flare/archive.go b/pkg/flare/archive.go index f5dfc28a1cb15..c3e5dffe00ca8 100644 --- a/pkg/flare/archive.go +++ b/pkg/flare/archive.go @@ -23,6 +23,7 @@ import ( "github.com/fatih/color" + sysprobeclient "github.com/DataDog/datadog-agent/cmd/system-probe/api/client" flaretypes "github.com/DataDog/datadog-agent/comp/core/flare/types" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" "github.com/DataDog/datadog-agent/pkg/api/security" @@ -30,7 +31,6 @@ import ( pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/diagnose" "github.com/DataDog/datadog-agent/pkg/diagnose/diagnosis" - "github.com/DataDog/datadog-agent/pkg/flare/sysprobe" "github.com/DataDog/datadog-agent/pkg/status/health" systemprobeStatus "github.com/DataDog/datadog-agent/pkg/status/systemprobe" "github.com/DataDog/datadog-agent/pkg/util/ecs" @@ -143,18 +143,11 @@ func provideConfigDump(fb flaretypes.FlareBuilder) error { } func provideSystemProbe(fb flaretypes.FlareBuilder) error { - systemProbeConfigBPFDir := pkgconfigsetup.SystemProbe().GetString("system_probe_config.bpf_dir") - if systemProbeConfigBPFDir != "" { - fb.RegisterDirPerm(systemProbeConfigBPFDir) - } addSystemProbePlatformSpecificEntries(fb) if pkgconfigsetup.SystemProbe().GetBool("system_probe_config.enabled") { - fb.AddFileFromFunc(filepath.Join("expvar", "system-probe"), getSystemProbeStats) //nolint:errcheck - fb.AddFileFromFunc(filepath.Join("system-probe", "system_probe_telemetry.log"), getSystemProbeTelemetry) // nolint:errcheck - fb.AddFileFromFunc(filepath.Join("system-probe", "conntrack_cached.log"), getSystemProbeConntrackCached) // nolint:errcheck - fb.AddFileFromFunc(filepath.Join("system-probe", "conntrack_host.log"), getSystemProbeConntrackHost) // nolint:errcheck - fb.AddFileFromFunc(filepath.Join("system-probe", "ebpf_btf_loader.log"), getSystemProbeBTFLoaderInfo) // nolint:errcheck + _ = fb.AddFileFromFunc(filepath.Join("expvar", "system-probe"), getSystemProbeStats) + _ = fb.AddFileFromFunc(filepath.Join("system-probe", "system_probe_telemetry.log"), getSystemProbeTelemetry) } return nil } @@ -261,16 +254,9 @@ func getSystemProbeStats() ([]byte, error) { } func getSystemProbeTelemetry() ([]byte, error) { - return sysprobe.GetSystemProbeTelemetry(getSystemProbeSocketPath()) -} -func getSystemProbeConntrackCached() ([]byte, error) { - return sysprobe.GetSystemProbeConntrackCached(getSystemProbeSocketPath()) -} -func getSystemProbeConntrackHost() ([]byte, error) { - return sysprobe.GetSystemProbeConntrackHost(getSystemProbeSocketPath()) -} -func getSystemProbeBTFLoaderInfo() ([]byte, error) { - return sysprobe.GetSystemProbeBTFLoaderInfo(getSystemProbeSocketPath()) + sysProbeClient := sysprobeclient.Get(getSystemProbeSocketPath()) + url := sysprobeclient.URL("/telemetry") + return getHTTPData(sysProbeClient, url) } // getProcessAgentFullConfig fetches process-agent runtime config as YAML and returns it to be added to process_agent_runtime_config_dump.yaml @@ -533,3 +519,26 @@ func functionOutputToBytes(fct func(writer io.Writer) error) []byte { return buffer.Bytes() } + +func getHTTPData(client *http.Client, url string) ([]byte, error) { + req, err := http.NewRequest(http.MethodGet, url, nil) + if err != nil { + return nil, err + } + + resp, err := client.Do(req) + if err != nil { + return nil, err + } + defer resp.Body.Close() + + data, err := io.ReadAll(resp.Body) + if err != nil { + return nil, err + } + + if resp.StatusCode != http.StatusOK { + return nil, fmt.Errorf("non-ok status code: url: %s, status_code: %d, response: `%s`", req.URL, resp.StatusCode, string(data)) + } + return data, nil +} diff --git a/pkg/flare/archive_linux.go b/pkg/flare/archive_linux.go index ac03dd5d4ad3d..1c9b5d7a4ad48 100644 --- a/pkg/flare/archive_linux.go +++ b/pkg/flare/archive_linux.go @@ -17,15 +17,28 @@ import ( "github.com/DataDog/ebpf-manager/tracefs" + sysprobeclient "github.com/DataDog/datadog-agent/cmd/system-probe/api/client" + sysconfig "github.com/DataDog/datadog-agent/cmd/system-probe/config" flaretypes "github.com/DataDog/datadog-agent/comp/core/flare/types" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" ) func addSystemProbePlatformSpecificEntries(fb flaretypes.FlareBuilder) { - sysprobeSocketLocation := pkgconfigsetup.SystemProbe().GetString("system_probe_config.sysprobe_socket") + systemProbeConfigBPFDir := pkgconfigsetup.SystemProbe().GetString("system_probe_config.bpf_dir") + if systemProbeConfigBPFDir != "" { + fb.RegisterDirPerm(systemProbeConfigBPFDir) + } + + sysprobeSocketLocation := getSystemProbeSocketPath() if sysprobeSocketLocation != "" { fb.RegisterDirPerm(filepath.Dir(sysprobeSocketLocation)) } + + if pkgconfigsetup.SystemProbe().GetBool("system_probe_config.enabled") { + _ = fb.AddFileFromFunc(filepath.Join("system-probe", "conntrack_cached.log"), getSystemProbeConntrackCached) + _ = fb.AddFileFromFunc(filepath.Join("system-probe", "conntrack_host.log"), getSystemProbeConntrackHost) + _ = fb.AddFileFromFunc(filepath.Join("system-probe", "ebpf_btf_loader.log"), getSystemProbeBTFLoaderInfo) + } } func getLinuxKernelSymbols(fb flaretypes.FlareBuilder) error { @@ -117,3 +130,21 @@ func getLinuxTracingAvailableFilterFunctions(fb flaretypes.FlareBuilder) error { } return fb.CopyFile(filepath.Join(traceFSPath, "available_filter_functions")) } + +func getSystemProbeConntrackCached() ([]byte, error) { + sysProbeClient := sysprobeclient.Get(getSystemProbeSocketPath()) + url := sysprobeclient.ModuleURL(sysconfig.NetworkTracerModule, "/debug/conntrack/cached") + return getHTTPData(sysProbeClient, url) +} + +func getSystemProbeConntrackHost() ([]byte, error) { + sysProbeClient := sysprobeclient.Get(getSystemProbeSocketPath()) + url := sysprobeclient.ModuleURL(sysconfig.NetworkTracerModule, "/debug/conntrack/host") + return getHTTPData(sysProbeClient, url) +} + +func getSystemProbeBTFLoaderInfo() ([]byte, error) { + sysProbeClient := sysprobeclient.Get(getSystemProbeSocketPath()) + url := sysprobeclient.DebugURL("/ebpf_btf_loader_info") + return getHTTPData(sysProbeClient, url) +} diff --git a/pkg/flare/sysprobe/archive.go b/pkg/flare/sysprobe/archive.go deleted file mode 100644 index 88954881b68e0..0000000000000 --- a/pkg/flare/sysprobe/archive.go +++ /dev/null @@ -1,20 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -//go:build process - -// Package sysprobe contains flare logic that only imports pkg/process/net when the process build tag is included -package sysprobe - -import "github.com/DataDog/datadog-agent/pkg/process/net" - -// GetSystemProbeTelemetry queries the telemetry endpoint from system-probe. -func GetSystemProbeTelemetry(socketPath string) ([]byte, error) { - probeUtil, err := net.GetRemoteSystemProbeUtil(socketPath) - if err != nil { - return nil, err - } - return probeUtil.GetTelemetry() -} diff --git a/pkg/flare/sysprobe/archive_linux.go b/pkg/flare/sysprobe/archive_linux.go deleted file mode 100644 index d6312d5cc62bf..0000000000000 --- a/pkg/flare/sysprobe/archive_linux.go +++ /dev/null @@ -1,38 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2024-present Datadog, Inc. - -//go:build process && linux - -package sysprobe - -import "github.com/DataDog/datadog-agent/pkg/process/net" - -// GetSystemProbeConntrackCached queries conntrack/cached, which uses our conntracker implementation (typically ebpf) -// to return the list of NAT'd connections -func GetSystemProbeConntrackCached(socketPath string) ([]byte, error) { - probeUtil, err := net.GetRemoteSystemProbeUtil(socketPath) - if err != nil { - return nil, err - } - return probeUtil.GetConnTrackCached() -} - -// GetSystemProbeConntrackHost queries conntrack/host, which uses netlink to return the list of NAT'd connections -func GetSystemProbeConntrackHost(socketPath string) ([]byte, error) { - probeUtil, err := net.GetRemoteSystemProbeUtil(socketPath) - if err != nil { - return nil, err - } - return probeUtil.GetConnTrackHost() -} - -// GetSystemProbeBTFLoaderInfo queries ebpf_btf_loader_info which gets where the BTF data came from -func GetSystemProbeBTFLoaderInfo(socketPath string) ([]byte, error) { - probeUtil, err := net.GetRemoteSystemProbeUtil(socketPath) - if err != nil { - return nil, err - } - return probeUtil.GetBTFLoaderInfo() -} diff --git a/pkg/flare/sysprobe/archive_nolinux.go b/pkg/flare/sysprobe/archive_nolinux.go deleted file mode 100644 index c9c441ff7752f..0000000000000 --- a/pkg/flare/sysprobe/archive_nolinux.go +++ /dev/null @@ -1,25 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2024-present Datadog, Inc. - -//go:build !(process && linux) - -package sysprobe - -import "errors" - -// GetSystemProbeConntrackCached is a stub designed to prevent builds without the process agent from importing pkg/process/net -func GetSystemProbeConntrackCached(_ string) ([]byte, error) { - return nil, errors.New("GetSystemProbeConntrackCached is not supported") -} - -// GetSystemProbeConntrackHost is a stub designed to prevent builds without the process agent from importing pkg/process/net -func GetSystemProbeConntrackHost(_ string) ([]byte, error) { - return nil, errors.New("GetSystemProbeConntrackHost is not supported") -} - -// GetSystemProbeBTFLoaderInfo is a stub designed to prevent builds without the process agent from importing pkg/process/net -func GetSystemProbeBTFLoaderInfo(_ string) ([]byte, error) { - return nil, errors.New("GetSystemProbeBTFLoaderInfo is not supported") -} diff --git a/pkg/flare/sysprobe/archive_unsupported.go b/pkg/flare/sysprobe/archive_unsupported.go deleted file mode 100644 index f20caa95cfefb..0000000000000 --- a/pkg/flare/sysprobe/archive_unsupported.go +++ /dev/null @@ -1,16 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -//go:build !process - -// Package sysprobe contains flare logic that only imports pkg/process/net when the process build tag is included -package sysprobe - -import "errors" - -// GetSystemProbeTelemetry is not supported without the process agent -func GetSystemProbeTelemetry(_socketPath string) ([]byte, error) { - return nil, errors.New("GetSystemProbeTelemetry not supported on builds without the process agent") -} diff --git a/pkg/process/net/common.go b/pkg/process/net/common.go index df9495db5417c..a6f2b4d52ebb4 100644 --- a/pkg/process/net/common.go +++ b/pkg/process/net/common.go @@ -56,7 +56,6 @@ type RemoteSysProbeUtil struct { path string httpClient http.Client - pprofClient http.Client tracerouteClient http.Client } @@ -269,37 +268,6 @@ func (r *RemoteSysProbeUtil) GetTraceroute(clientID string, host string, port ui return body, nil } -// GetStats returns the expvar stats of the system probe -func (r *RemoteSysProbeUtil) GetStats() (map[string]interface{}, error) { - req, err := http.NewRequest("GET", statsURL, nil) - if err != nil { - return nil, err - } - - resp, err := r.httpClient.Do(req) - if err != nil { - return nil, err - } - defer resp.Body.Close() - - if resp.StatusCode != http.StatusOK { - return nil, fmt.Errorf("conn request failed: Path %s, url: %s, status code: %d", r.path, statsURL, resp.StatusCode) - } - - body, err := readAllResponseBody(resp) - if err != nil { - return nil, err - } - - stats := make(map[string]interface{}) - err = json.Unmarshal(body, &stats) - if err != nil { - return nil, err - } - - return stats, nil -} - // Register registers the client to system probe func (r *RemoteSysProbeUtil) Register(clientID string) error { req, err := http.NewRequest("GET", fmt.Sprintf("%s?client_id=%s", registerURL, clientID), nil) @@ -362,24 +330,6 @@ func (r *RemoteSysProbeUtil) DetectLanguage(pids []int32) ([]languagemodels.Lang return langs, nil } -// GetPprof queries the pprof endpoint for system-probe -func (r *RemoteSysProbeUtil) GetPprof(path string) ([]byte, error) { - var buf bytes.Buffer - req, err := http.NewRequest(http.MethodGet, pprofURL+path, &buf) - if err != nil { - return nil, err - } - - res, err := r.pprofClient.Do(req) - if err != nil { - return nil, err - } - - defer res.Body.Close() - - return io.ReadAll(res.Body) -} - // GetDiscoveryServices returns service information from system-probe. func (r *RemoteSysProbeUtil) GetDiscoveryServices() (*discoverymodel.ServicesResponse, error) { req, err := http.NewRequest(http.MethodGet, discoveryServicesURL, nil) @@ -404,82 +354,6 @@ func (r *RemoteSysProbeUtil) GetDiscoveryServices() (*discoverymodel.ServicesRes return res, nil } -// GetTelemetry queries the telemetry endpoint from system-probe. -func (r *RemoteSysProbeUtil) GetTelemetry() ([]byte, error) { - req, err := http.NewRequest(http.MethodGet, telemetryURL, nil) - if err != nil { - return nil, err - } - - resp, err := r.httpClient.Do(req) - if err != nil { - return nil, err - } - defer resp.Body.Close() - - data, err := io.ReadAll(resp.Body) - if err != nil { - return nil, err - } - - if resp.StatusCode != http.StatusOK { - return nil, fmt.Errorf(`GetTelemetry got non-success status code: path %s, url: %s, status_code: %d, response: "%s"`, r.path, req.URL, resp.StatusCode, data) - } - - return data, nil -} - -// GetConnTrackCached queries conntrack/cached, which uses our conntracker implementation (typically ebpf) -// to return the list of NAT'd connections -func (r *RemoteSysProbeUtil) GetConnTrackCached() ([]byte, error) { - req, err := http.NewRequest(http.MethodGet, conntrackCachedURL, nil) - if err != nil { - return nil, err - } - - resp, err := r.httpClient.Do(req) - if err != nil { - return nil, err - } - defer resp.Body.Close() - - data, err := io.ReadAll(resp.Body) - if err != nil { - return nil, err - } - - if resp.StatusCode != http.StatusOK { - return nil, fmt.Errorf(`GetConnTrackCached got non-success status code: path %s, url: %s, status_code: %d, response: "%s"`, r.path, req.URL, resp.StatusCode, data) - } - - return data, nil -} - -// GetConnTrackHost queries conntrack/host, which uses netlink to return the list of NAT'd connections -func (r *RemoteSysProbeUtil) GetConnTrackHost() ([]byte, error) { - req, err := http.NewRequest(http.MethodGet, conntrackHostURL, nil) - if err != nil { - return nil, err - } - - resp, err := r.httpClient.Do(req) - if err != nil { - return nil, err - } - defer resp.Body.Close() - - data, err := io.ReadAll(resp.Body) - if err != nil { - return nil, err - } - - if resp.StatusCode != http.StatusOK { - return nil, fmt.Errorf(`GetConnTrackHost got non-success status code: path %s, url: %s, status_code: %d, response: "%s"`, r.path, req.URL, resp.StatusCode, data) - } - - return data, nil -} - func (r *RemoteSysProbeUtil) init() error { resp, err := r.httpClient.Get(statsURL) if err != nil { diff --git a/pkg/process/net/common_linux.go b/pkg/process/net/common_linux.go index aa4efa7cd7860..f37f6ce5f2f86 100644 --- a/pkg/process/net/common_linux.go +++ b/pkg/process/net/common_linux.go @@ -10,7 +10,6 @@ package net import ( "errors" "fmt" - "io" "net/http" "os" @@ -26,13 +25,8 @@ const ( procStatsURL = "http://unix/" + string(sysconfig.ProcessModule) + "/stats" registerURL = "http://unix/" + string(sysconfig.NetworkTracerModule) + "/register" statsURL = "http://unix/debug/stats" - pprofURL = "http://unix/debug/pprof" languageDetectionURL = "http://unix/" + string(sysconfig.LanguageDetectionModule) + "/detect" discoveryServicesURL = "http://unix/" + string(sysconfig.DiscoveryModule) + "/services" - telemetryURL = "http://unix/telemetry" - conntrackCachedURL = "http://unix/" + string(sysconfig.NetworkTracerModule) + "/debug/conntrack/cached" - conntrackHostURL = "http://unix/" + string(sysconfig.NetworkTracerModule) + "/debug/conntrack/host" - ebpfBTFLoaderURL = "http://unix/debug/ebpf_btf_loader_info" ) // CheckPath is used in conjunction with calling the stats endpoint, since we are calling this @@ -53,11 +47,6 @@ func newSystemProbe(path string) *RemoteSysProbeUtil { return &RemoteSysProbeUtil{ path: path, httpClient: *client.Get(path), - pprofClient: http.Client{ - Transport: &http.Transport{ - DialContext: client.DialContextFunc(path), - }, - }, tracerouteClient: http.Client{ // no timeout set here, the expected usage of this client // is that the caller will set a timeout on each request @@ -67,28 +56,3 @@ func newSystemProbe(path string) *RemoteSysProbeUtil { }, } } - -// GetBTFLoaderInfo queries ebpf_btf_loader_info to get information about where btf files came from -func (r *RemoteSysProbeUtil) GetBTFLoaderInfo() ([]byte, error) { - req, err := http.NewRequest(http.MethodGet, ebpfBTFLoaderURL, nil) - if err != nil { - return nil, err - } - - resp, err := r.httpClient.Do(req) - if err != nil { - return nil, err - } - defer resp.Body.Close() - - data, err := io.ReadAll(resp.Body) - if err != nil { - return nil, err - } - - if resp.StatusCode != http.StatusOK { - return nil, fmt.Errorf(`GetEbpfBtfInfo got non-success status code: path %s, url: %s, status_code: %d, response: "%s"`, r.path, req.URL, resp.StatusCode, data) - } - - return data, nil -} diff --git a/pkg/process/net/common_unsupported.go b/pkg/process/net/common_unsupported.go index 724ce20b15ab4..003c21428832d 100644 --- a/pkg/process/net/common_unsupported.go +++ b/pkg/process/net/common_unsupported.go @@ -49,11 +49,6 @@ func (r *RemoteSysProbeUtil) GetNetworkID() (string, error) { return "", ErrNotImplemented } -// GetStats is not supported -func (r *RemoteSysProbeUtil) GetStats() (map[string]interface{}, error) { - return nil, ErrNotImplemented -} - // GetProcStats is not supported // //nolint:revive // TODO(PROC) Fix revive linter @@ -73,23 +68,6 @@ func (r *RemoteSysProbeUtil) DetectLanguage([]int32) ([]languagemodels.Language, return nil, ErrNotImplemented } -// GetPprof is not supported -func (r *RemoteSysProbeUtil) GetPprof(_ string) ([]byte, error) { - return nil, ErrNotImplemented -} - -// GetTelemetry is not supported -func (r *RemoteSysProbeUtil) GetTelemetry() ([]byte, error) { return nil, ErrNotImplemented } - -// GetConnTrackCached is not supported -func (r *RemoteSysProbeUtil) GetConnTrackCached() ([]byte, error) { return nil, ErrNotImplemented } - -// GetConnTrackHost is not supported -func (r *RemoteSysProbeUtil) GetConnTrackHost() ([]byte, error) { return nil, ErrNotImplemented } - -// GetBTFLoaderInfo is not supported -func (r *RemoteSysProbeUtil) GetBTFLoaderInfo() ([]byte, error) { return nil, ErrNotImplemented } - // GetDiscoveryServices is not supported func (r *RemoteSysProbeUtil) GetDiscoveryServices() (*discoverymodel.ServicesResponse, error) { return nil, ErrNotImplemented diff --git a/pkg/process/net/common_windows.go b/pkg/process/net/common_windows.go index 49a7d740ad0b8..befe178b92dba 100644 --- a/pkg/process/net/common_windows.go +++ b/pkg/process/net/common_windows.go @@ -22,9 +22,7 @@ const ( registerURL = "http://localhost:3333/" + string(sysconfig.NetworkTracerModule) + "/register" languageDetectionURL = "http://localhost:3333/" + string(sysconfig.LanguageDetectionModule) + "/detect" statsURL = "http://localhost:3333/debug/stats" - pprofURL = "http://localhost:3333/debug/pprof" tracerouteURL = "http://localhost:3333/" + string(sysconfig.TracerouteModule) + "/traceroute/" - telemetryURL = "http://localhost:3333/telemetry" // discovery* is not used on Windows, the value is added to avoid a compilation error discoveryServicesURL = "http://localhost:3333/" + string(sysconfig.DiscoveryModule) + "/services" @@ -32,10 +30,6 @@ const ( procStatsURL = "http://localhost:3333/" + string(sysconfig.ProcessModule) + "stats" // pingURL is not used in windows, the value is added to avoid compilation error in windows pingURL = "http://localhost:3333/" + string(sysconfig.PingModule) + "/ping/" - // conntrackCachedURL is not used on Windows, the value is added to avoid a compilation error - conntrackCachedURL = "http://localhost:3333/" + string(sysconfig.NetworkTracerModule) + "/debug/conntrack/cached" - // conntrackHostURL is not used on Windows, the value is added to avoid a compilation error - conntrackHostURL = "http://localhost:3333/" + string(sysconfig.NetworkTracerModule) + "/debug/conntrack/host" // systemProbeMaxIdleConns sets the maximum number of idle named pipe connections. systemProbeMaxIdleConns = 2 @@ -59,13 +53,6 @@ func newSystemProbe(path string) *RemoteSysProbeUtil { return &RemoteSysProbeUtil{ path: path, httpClient: *client.Get(path), - pprofClient: http.Client{ - Transport: &http.Transport{ - MaxIdleConns: systemProbeMaxIdleConns, - IdleConnTimeout: systemProbeIdleConnTimeout, - DialContext: client.DialContextFunc(path), - }, - }, tracerouteClient: http.Client{ // no timeout set here, the expected usage of this client // is that the caller will set a timeout on each request @@ -77,8 +64,3 @@ func newSystemProbe(path string) *RemoteSysProbeUtil { }, } } - -// GetBTFLoaderInfo is not implemented on windows -func (r *RemoteSysProbeUtil) GetBTFLoaderInfo() ([]byte, error) { - return nil, errors.New("GetBTFLoaderInfo is not supported on windows") -} diff --git a/pkg/process/net/mocks/sys_probe_util.go b/pkg/process/net/mocks/sys_probe_util.go index 17363f0c57603..f5495693f0b32 100644 --- a/pkg/process/net/mocks/sys_probe_util.go +++ b/pkg/process/net/mocks/sys_probe_util.go @@ -86,177 +86,6 @@ func (_c *SysProbeUtil_DetectLanguage_Call) RunAndReturn(run func([]int32) ([]la return _c } -// GetBTFLoaderInfo provides a mock function with given fields: -func (_m *SysProbeUtil) GetBTFLoaderInfo() ([]byte, error) { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for GetBTFLoaderInfo") - } - - var r0 []byte - var r1 error - if rf, ok := ret.Get(0).(func() ([]byte, error)); ok { - return rf() - } - if rf, ok := ret.Get(0).(func() []byte); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]byte) - } - } - - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// SysProbeUtil_GetBTFLoaderInfo_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetBTFLoaderInfo' -type SysProbeUtil_GetBTFLoaderInfo_Call struct { - *mock.Call -} - -// GetBTFLoaderInfo is a helper method to define mock.On call -func (_e *SysProbeUtil_Expecter) GetBTFLoaderInfo() *SysProbeUtil_GetBTFLoaderInfo_Call { - return &SysProbeUtil_GetBTFLoaderInfo_Call{Call: _e.mock.On("GetBTFLoaderInfo")} -} - -func (_c *SysProbeUtil_GetBTFLoaderInfo_Call) Run(run func()) *SysProbeUtil_GetBTFLoaderInfo_Call { - _c.Call.Run(func(args mock.Arguments) { - run() - }) - return _c -} - -func (_c *SysProbeUtil_GetBTFLoaderInfo_Call) Return(_a0 []byte, _a1 error) *SysProbeUtil_GetBTFLoaderInfo_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *SysProbeUtil_GetBTFLoaderInfo_Call) RunAndReturn(run func() ([]byte, error)) *SysProbeUtil_GetBTFLoaderInfo_Call { - _c.Call.Return(run) - return _c -} - -// GetConnTrackCached provides a mock function with given fields: -func (_m *SysProbeUtil) GetConnTrackCached() ([]byte, error) { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for GetConnTrackCached") - } - - var r0 []byte - var r1 error - if rf, ok := ret.Get(0).(func() ([]byte, error)); ok { - return rf() - } - if rf, ok := ret.Get(0).(func() []byte); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]byte) - } - } - - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// SysProbeUtil_GetConnTrackCached_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetConnTrackCached' -type SysProbeUtil_GetConnTrackCached_Call struct { - *mock.Call -} - -// GetConnTrackCached is a helper method to define mock.On call -func (_e *SysProbeUtil_Expecter) GetConnTrackCached() *SysProbeUtil_GetConnTrackCached_Call { - return &SysProbeUtil_GetConnTrackCached_Call{Call: _e.mock.On("GetConnTrackCached")} -} - -func (_c *SysProbeUtil_GetConnTrackCached_Call) Run(run func()) *SysProbeUtil_GetConnTrackCached_Call { - _c.Call.Run(func(args mock.Arguments) { - run() - }) - return _c -} - -func (_c *SysProbeUtil_GetConnTrackCached_Call) Return(_a0 []byte, _a1 error) *SysProbeUtil_GetConnTrackCached_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *SysProbeUtil_GetConnTrackCached_Call) RunAndReturn(run func() ([]byte, error)) *SysProbeUtil_GetConnTrackCached_Call { - _c.Call.Return(run) - return _c -} - -// GetConnTrackHost provides a mock function with given fields: -func (_m *SysProbeUtil) GetConnTrackHost() ([]byte, error) { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for GetConnTrackHost") - } - - var r0 []byte - var r1 error - if rf, ok := ret.Get(0).(func() ([]byte, error)); ok { - return rf() - } - if rf, ok := ret.Get(0).(func() []byte); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]byte) - } - } - - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// SysProbeUtil_GetConnTrackHost_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetConnTrackHost' -type SysProbeUtil_GetConnTrackHost_Call struct { - *mock.Call -} - -// GetConnTrackHost is a helper method to define mock.On call -func (_e *SysProbeUtil_Expecter) GetConnTrackHost() *SysProbeUtil_GetConnTrackHost_Call { - return &SysProbeUtil_GetConnTrackHost_Call{Call: _e.mock.On("GetConnTrackHost")} -} - -func (_c *SysProbeUtil_GetConnTrackHost_Call) Run(run func()) *SysProbeUtil_GetConnTrackHost_Call { - _c.Call.Run(func(args mock.Arguments) { - run() - }) - return _c -} - -func (_c *SysProbeUtil_GetConnTrackHost_Call) Return(_a0 []byte, _a1 error) *SysProbeUtil_GetConnTrackHost_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *SysProbeUtil_GetConnTrackHost_Call) RunAndReturn(run func() ([]byte, error)) *SysProbeUtil_GetConnTrackHost_Call { - _c.Call.Return(run) - return _c -} - // GetConnections provides a mock function with given fields: clientID func (_m *SysProbeUtil) GetConnections(clientID string) (*process.Connections, error) { ret := _m.Called(clientID) @@ -489,64 +318,6 @@ func (_c *SysProbeUtil_GetPing_Call) RunAndReturn(run func(string, string, int, return _c } -// GetPprof provides a mock function with given fields: path -func (_m *SysProbeUtil) GetPprof(path string) ([]byte, error) { - ret := _m.Called(path) - - if len(ret) == 0 { - panic("no return value specified for GetPprof") - } - - var r0 []byte - var r1 error - if rf, ok := ret.Get(0).(func(string) ([]byte, error)); ok { - return rf(path) - } - if rf, ok := ret.Get(0).(func(string) []byte); ok { - r0 = rf(path) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]byte) - } - } - - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(path) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// SysProbeUtil_GetPprof_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetPprof' -type SysProbeUtil_GetPprof_Call struct { - *mock.Call -} - -// GetPprof is a helper method to define mock.On call -// - path string -func (_e *SysProbeUtil_Expecter) GetPprof(path interface{}) *SysProbeUtil_GetPprof_Call { - return &SysProbeUtil_GetPprof_Call{Call: _e.mock.On("GetPprof", path)} -} - -func (_c *SysProbeUtil_GetPprof_Call) Run(run func(path string)) *SysProbeUtil_GetPprof_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(string)) - }) - return _c -} - -func (_c *SysProbeUtil_GetPprof_Call) Return(_a0 []byte, _a1 error) *SysProbeUtil_GetPprof_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *SysProbeUtil_GetPprof_Call) RunAndReturn(run func(string) ([]byte, error)) *SysProbeUtil_GetPprof_Call { - _c.Call.Return(run) - return _c -} - // GetProcStats provides a mock function with given fields: pids func (_m *SysProbeUtil) GetProcStats(pids []int32) (*process.ProcStatsWithPermByPID, error) { ret := _m.Called(pids) @@ -605,120 +376,6 @@ func (_c *SysProbeUtil_GetProcStats_Call) RunAndReturn(run func([]int32) (*proce return _c } -// GetStats provides a mock function with given fields: -func (_m *SysProbeUtil) GetStats() (map[string]interface{}, error) { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for GetStats") - } - - var r0 map[string]interface{} - var r1 error - if rf, ok := ret.Get(0).(func() (map[string]interface{}, error)); ok { - return rf() - } - if rf, ok := ret.Get(0).(func() map[string]interface{}); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(map[string]interface{}) - } - } - - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// SysProbeUtil_GetStats_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetStats' -type SysProbeUtil_GetStats_Call struct { - *mock.Call -} - -// GetStats is a helper method to define mock.On call -func (_e *SysProbeUtil_Expecter) GetStats() *SysProbeUtil_GetStats_Call { - return &SysProbeUtil_GetStats_Call{Call: _e.mock.On("GetStats")} -} - -func (_c *SysProbeUtil_GetStats_Call) Run(run func()) *SysProbeUtil_GetStats_Call { - _c.Call.Run(func(args mock.Arguments) { - run() - }) - return _c -} - -func (_c *SysProbeUtil_GetStats_Call) Return(_a0 map[string]interface{}, _a1 error) *SysProbeUtil_GetStats_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *SysProbeUtil_GetStats_Call) RunAndReturn(run func() (map[string]interface{}, error)) *SysProbeUtil_GetStats_Call { - _c.Call.Return(run) - return _c -} - -// GetTelemetry provides a mock function with given fields: -func (_m *SysProbeUtil) GetTelemetry() ([]byte, error) { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for GetTelemetry") - } - - var r0 []byte - var r1 error - if rf, ok := ret.Get(0).(func() ([]byte, error)); ok { - return rf() - } - if rf, ok := ret.Get(0).(func() []byte); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]byte) - } - } - - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// SysProbeUtil_GetTelemetry_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetTelemetry' -type SysProbeUtil_GetTelemetry_Call struct { - *mock.Call -} - -// GetTelemetry is a helper method to define mock.On call -func (_e *SysProbeUtil_Expecter) GetTelemetry() *SysProbeUtil_GetTelemetry_Call { - return &SysProbeUtil_GetTelemetry_Call{Call: _e.mock.On("GetTelemetry")} -} - -func (_c *SysProbeUtil_GetTelemetry_Call) Run(run func()) *SysProbeUtil_GetTelemetry_Call { - _c.Call.Run(func(args mock.Arguments) { - run() - }) - return _c -} - -func (_c *SysProbeUtil_GetTelemetry_Call) Return(_a0 []byte, _a1 error) *SysProbeUtil_GetTelemetry_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *SysProbeUtil_GetTelemetry_Call) RunAndReturn(run func() ([]byte, error)) *SysProbeUtil_GetTelemetry_Call { - _c.Call.Return(run) - return _c -} - // GetTraceroute provides a mock function with given fields: clientID, host, port, protocol, maxTTL, timeout func (_m *SysProbeUtil) GetTraceroute(clientID string, host string, port uint16, protocol payload.Protocol, maxTTL uint8, timeout time.Duration) ([]byte, error) { ret := _m.Called(clientID, host, port, protocol, maxTTL, timeout) diff --git a/pkg/process/net/shared.go b/pkg/process/net/shared.go index 3c302246382fd..88f5681d7fc3c 100644 --- a/pkg/process/net/shared.go +++ b/pkg/process/net/shared.go @@ -22,16 +22,10 @@ type SysProbeUtilGetter func(string) (SysProbeUtil, error) // SysProbeUtil fetches info from the SysProbe running remotely type SysProbeUtil interface { GetConnections(clientID string) (*model.Connections, error) - GetStats() (map[string]interface{}, error) GetProcStats(pids []int32) (*model.ProcStatsWithPermByPID, error) Register(clientID string) error GetNetworkID() (string, error) - GetTelemetry() ([]byte, error) - GetConnTrackCached() ([]byte, error) - GetConnTrackHost() ([]byte, error) - GetBTFLoaderInfo() ([]byte, error) DetectLanguage(pids []int32) ([]languagemodels.Language, error) - GetPprof(path string) ([]byte, error) GetDiscoveryServices() (*discoverymodel.ServicesResponse, error) GetPing(clientID string, host string, count int, interval time.Duration, timeout time.Duration) ([]byte, error) GetTraceroute(clientID string, host string, port uint16, protocol nppayload.Protocol, maxTTL uint8, timeout time.Duration) ([]byte, error) diff --git a/pkg/status/systemprobe/status.go b/pkg/status/systemprobe/status.go index b2e21cd225d33..533b94e1f3981 100644 --- a/pkg/status/systemprobe/status.go +++ b/pkg/status/systemprobe/status.go @@ -10,33 +10,58 @@ package systemprobe import ( "embed" + "encoding/json" "fmt" "io" + "net/http" + sysprobeclient "github.com/DataDog/datadog-agent/cmd/system-probe/api/client" "github.com/DataDog/datadog-agent/comp/core/status" "github.com/DataDog/datadog-agent/comp/core/sysprobeconfig" - "github.com/DataDog/datadog-agent/pkg/process/net" ) // GetStatus returns the expvar stats of the system probe func GetStatus(stats map[string]interface{}, socketPath string) { - probeUtil, err := net.GetRemoteSystemProbeUtil(socketPath) - + client := sysprobeclient.Get(socketPath) + systemProbeDetails, err := getStats(client) if err != nil { stats["systemProbeStats"] = map[string]interface{}{ - "Errors": fmt.Sprintf("%v", err), + "Errors": fmt.Sprintf("issue querying stats from system probe: %v", err), } return } + stats["systemProbeStats"] = systemProbeDetails +} - systemProbeDetails, err := probeUtil.GetStats() +func getStats(client *http.Client) (map[string]interface{}, error) { + url := sysprobeclient.DebugURL("/stats") + req, err := http.NewRequest("GET", url, nil) if err != nil { - stats["systemProbeStats"] = map[string]interface{}{ - "Errors": fmt.Sprintf("issue querying stats from system probe: %v", err), - } - return + return nil, err } - stats["systemProbeStats"] = systemProbeDetails + + resp, err := client.Do(req) + if err != nil { + return nil, err + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + return nil, fmt.Errorf("conn request failed: url: %s, status code: %d", req.URL, resp.StatusCode) + } + + body, err := sysprobeclient.ReadAllResponseBody(resp) + if err != nil { + return nil, err + } + + stats := make(map[string]interface{}) + err = json.Unmarshal(body, &stats) + if err != nil { + return nil, err + } + + return stats, nil } // Provider provides the functionality to populate the status output From daeb6baccba16a5f226a79f796a99c1afdf63552 Mon Sep 17 00:00:00 2001 From: Gabriel Dos Santos <91925154+gabedos@users.noreply.github.com> Date: Tue, 3 Dec 2024 14:24:31 -0500 Subject: [PATCH 225/439] [CONTP-512] Add settings on sidecar to terminate on finished job (#31543) --- .../mutate/agent_sidecar/agent_sidecar.go | 24 ++++++++++ .../agent_sidecar/agent_sidecar_test.go | 48 +++++++++++++++++++ ...idecar-killed-on-job-5dd6537ed1098646.yaml | 12 +++++ 3 files changed, 84 insertions(+) create mode 100644 releasenotes/notes/sidecar-killed-on-job-5dd6537ed1098646.yaml diff --git a/pkg/clusteragent/admission/mutate/agent_sidecar/agent_sidecar.go b/pkg/clusteragent/admission/mutate/agent_sidecar/agent_sidecar.go index 4314f1c911fa7..06c936d6d0684 100644 --- a/pkg/clusteragent/admission/mutate/agent_sidecar/agent_sidecar.go +++ b/pkg/clusteragent/admission/mutate/agent_sidecar/agent_sidecar.go @@ -16,6 +16,7 @@ import ( "os" "slices" "strconv" + "strings" admiv1 "k8s.io/api/admission/v1" admissionregistrationv1 "k8s.io/api/admissionregistration/v1" @@ -177,12 +178,25 @@ func (w *Webhook) injectAgentSidecar(pod *corev1.Pod, _ string, _ dynamic.Interf // highest override-priority. They only apply to the agent sidecar container. for i := range pod.Spec.Containers { if pod.Spec.Containers[i].Name == agentSidecarContainerName { + if isOwnedByJob(pod.OwnerReferences) { + updated, err = withEnvOverrides(&pod.Spec.Containers[i], corev1.EnvVar{ + Name: "DD_AUTO_EXIT_NOPROCESS_ENABLED", + Value: "true", + }) + } + if err != nil { + log.Errorf("Failed to apply env overrides: %v", err) + return podUpdated, errors.New(metrics.InternalError) + } + podUpdated = podUpdated || updated + updated, err = applyProfileOverrides(&pod.Spec.Containers[i], w.profilesJSON) if err != nil { log.Errorf("Failed to apply profile overrides: %v", err) return podUpdated, errors.New(metrics.InvalidInput) } podUpdated = podUpdated || updated + break } } @@ -320,3 +334,13 @@ func labelSelectors(datadogConfig config.Component) (namespaceSelector, objectSe return namespaceSelector, objectSelector } + +// isOwnedByJob returns true if the pod is owned by a Job +func isOwnedByJob(ownerReferences []metav1.OwnerReference) bool { + for _, owner := range ownerReferences { + if strings.HasPrefix(owner.APIVersion, "batch/") && owner.Kind == "Job" { + return true + } + } + return false +} diff --git a/pkg/clusteragent/admission/mutate/agent_sidecar/agent_sidecar_test.go b/pkg/clusteragent/admission/mutate/agent_sidecar/agent_sidecar_test.go index eae1db443375e..aac87fce23cba 100644 --- a/pkg/clusteragent/admission/mutate/agent_sidecar/agent_sidecar_test.go +++ b/pkg/clusteragent/admission/mutate/agent_sidecar/agent_sidecar_test.go @@ -139,6 +139,54 @@ func TestInjectAgentSidecar(t *testing.T) { } }, }, + { + Name: "should inject sidecar if no sidecar present, no provider set, owned by Job", + Pod: &corev1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pod-name", + OwnerReferences: []metav1.OwnerReference{ + { + APIVersion: "batch/v1", + Kind: "Job", + }, + }, + }, + Spec: corev1.PodSpec{ + Containers: []corev1.Container{ + {Name: "container-name"}, + }, + }, + }, + provider: "", + profilesJSON: "[]", + ExpectError: false, + ExpectInjection: true, + ExpectedPodAfterInjection: func() *corev1.Pod { + defaultContainer := *NewWebhook(mockConfig).getDefaultSidecarTemplate() + // Update envvar when pod owned by Job + defaultContainer.Env = append(defaultContainer.Env, corev1.EnvVar{ + Name: "DD_AUTO_EXIT_NOPROCESS_ENABLED", + Value: "true", + }) + return &corev1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pod-name", + OwnerReferences: []metav1.OwnerReference{ + { + APIVersion: "batch/v1", + Kind: "Job", + }, + }, + }, + Spec: corev1.PodSpec{ + Containers: []corev1.Container{ + {Name: "container-name"}, + defaultContainer, + }, + }, + } + }, + }, { Name: "should inject sidecar if no sidecar present, with supported provider", Pod: &corev1.Pod{ diff --git a/releasenotes/notes/sidecar-killed-on-job-5dd6537ed1098646.yaml b/releasenotes/notes/sidecar-killed-on-job-5dd6537ed1098646.yaml new file mode 100644 index 0000000000000..893c7b24d3d9a --- /dev/null +++ b/releasenotes/notes/sidecar-killed-on-job-5dd6537ed1098646.yaml @@ -0,0 +1,12 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +fixes: + - | + When the Datadog Cluster Agent injects the Datadog Agent as a sidecar + on a Job, the agent will now exit when the main Job completes. From 1c2acb493505cd31e7458d4d2d5bbe088de9e995 Mon Sep 17 00:00:00 2001 From: Adel Haj Hassan <41540817+adel121@users.noreply.github.com> Date: Tue, 3 Dec 2024 21:27:19 +0100 Subject: [PATCH 226/439] [Bug Fix] fix backward compatibility issue in remote tagger dca server (#31711) --- comp/core/tagger/server/server.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/comp/core/tagger/server/server.go b/comp/core/tagger/server/server.go index b0f9e7ff7a613..58c4ef2a0667c 100644 --- a/comp/core/tagger/server/server.go +++ b/comp/core/tagger/server/server.go @@ -14,6 +14,8 @@ import ( "google.golang.org/grpc/codes" "google.golang.org/grpc/status" + "github.com/google/uuid" + tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/core/tagger/proto" "github.com/DataDog/datadog-agent/comp/core/tagger/types" @@ -57,7 +59,15 @@ func (s *Server) TaggerStreamEntities(in *pb.StreamTagsRequest, out pb.AgentSecu filter := filterBuilder.Build(cardinality) - subscriptionID := fmt.Sprintf("streaming-client-%s", in.GetStreamingID()) + streamingID := in.GetStreamingID() + if streamingID == "" { + // this is done to preserve backward compatibility + // if CLC runner is using an old version, the streaming ID would be an empty string, + // and the server needs to auto-assign a unique id + streamingID = uuid.New().String() + } + + subscriptionID := fmt.Sprintf("streaming-client-%s", streamingID) subscription, err := s.taggerComponent.Subscribe(subscriptionID, filter) if err != nil { return err From 2c77f3186dd2ee64824443cb51b0b3ad4eee8313 Mon Sep 17 00:00:00 2001 From: Caleb Metz <135133572+cmetz100@users.noreply.github.com> Date: Tue, 3 Dec 2024 16:36:14 -0500 Subject: [PATCH 227/439] Update SMP CLI version to `0.19.3`. (#31725) Signed-off-by: Caleb Metz --- .gitlab/functional_test/regression_detector.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab/functional_test/regression_detector.yml b/.gitlab/functional_test/regression_detector.yml index 0ae975319f054..ce412f24981fb 100644 --- a/.gitlab/functional_test/regression_detector.yml +++ b/.gitlab/functional_test/regression_detector.yml @@ -22,7 +22,7 @@ single-machine-performance-regression_detector: - outputs/decision_record.md # for posterity, this is appended to final PR comment when: always variables: - SMP_VERSION: 0.18.2 + SMP_VERSION: 0.19.3 # See 'decision_record.md' for the determination of whether this job passes or fails. allow_failure: false script: From 45a9bcf24945be847e785bd853b2de3033a5af23 Mon Sep 17 00:00:00 2001 From: Bryce Kahle Date: Tue, 3 Dec 2024 13:36:28 -0800 Subject: [PATCH 228/439] move service discovery to simpler sysprobe client (#31364) --- .../corechecks/servicediscovery/impl_linux.go | 56 ++++++--- .../servicediscovery/impl_linux_test.go | 12 +- pkg/languagedetection/detector.go | 63 ++++++++-- pkg/languagedetection/detector_linux_test.go | 1 - pkg/process/net/common.go | 72 ----------- pkg/process/net/common_linux.go | 16 ++- pkg/process/net/common_unsupported.go | 12 -- pkg/process/net/common_windows.go | 13 +- pkg/process/net/mocks/sys_probe_util.go | 118 ------------------ pkg/process/net/shared.go | 4 - 10 files changed, 107 insertions(+), 260 deletions(-) diff --git a/pkg/collector/corechecks/servicediscovery/impl_linux.go b/pkg/collector/corechecks/servicediscovery/impl_linux.go index c9d4e66bd0406..617b740990922 100644 --- a/pkg/collector/corechecks/servicediscovery/impl_linux.go +++ b/pkg/collector/corechecks/servicediscovery/impl_linux.go @@ -8,12 +8,16 @@ package servicediscovery import ( + "encoding/json" + "fmt" + "net/http" "time" + sysprobeclient "github.com/DataDog/datadog-agent/cmd/system-probe/api/client" + sysconfig "github.com/DataDog/datadog-agent/cmd/system-probe/config" "github.com/DataDog/datadog-agent/pkg/collector/corechecks/servicediscovery/model" "github.com/DataDog/datadog-agent/pkg/collector/corechecks/servicediscovery/servicetype" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" - processnet "github.com/DataDog/datadog-agent/pkg/process/net" "github.com/DataDog/datadog-agent/pkg/util/log" ) @@ -24,38 +28,56 @@ func init() { } type linuxImpl struct { - getSysProbeClient processnet.SysProbeUtilGetter - time timer + getDiscoveryServices func(client *http.Client) (*model.ServicesResponse, error) + time timer ignoreCfg map[string]bool ignoreProcs map[int]bool aliveServices map[int]*serviceInfo potentialServices map[int]*serviceInfo + + sysProbeClient *http.Client } func newLinuxImpl(ignoreCfg map[string]bool) (osImpl, error) { return &linuxImpl{ - getSysProbeClient: processnet.GetRemoteSystemProbeUtil, - time: realTime{}, - ignoreCfg: ignoreCfg, - ignoreProcs: make(map[int]bool), - aliveServices: make(map[int]*serviceInfo), - potentialServices: make(map[int]*serviceInfo), + getDiscoveryServices: getDiscoveryServices, + time: realTime{}, + ignoreCfg: ignoreCfg, + ignoreProcs: make(map[int]bool), + aliveServices: make(map[int]*serviceInfo), + potentialServices: make(map[int]*serviceInfo), + sysProbeClient: sysprobeclient.Get(pkgconfigsetup.SystemProbe().GetString("system_probe_config.sysprobe_socket")), }, nil } -func (li *linuxImpl) DiscoverServices() (*discoveredServices, error) { - socket := pkgconfigsetup.SystemProbe().GetString("system_probe_config.sysprobe_socket") - sysProbe, err := li.getSysProbeClient(socket) +func getDiscoveryServices(client *http.Client) (*model.ServicesResponse, error) { + url := sysprobeclient.ModuleURL(sysconfig.DiscoveryModule, "/services") + req, err := http.NewRequest(http.MethodGet, url, nil) if err != nil { - return nil, errWithCode{ - err: err, - code: errorCodeSystemProbeConn, - } + return nil, err + } + + resp, err := client.Do(req) + if err != nil { + return nil, err + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + return nil, fmt.Errorf("got non-success status code: url: %s, status_code: %d", req.URL, resp.StatusCode) } - response, err := sysProbe.GetDiscoveryServices() + res := &model.ServicesResponse{} + if err := json.NewDecoder(resp.Body).Decode(res); err != nil { + return nil, err + } + return res, nil +} + +func (li *linuxImpl) DiscoverServices() (*discoveredServices, error) { + response, err := li.getDiscoveryServices(li.sysProbeClient) if err != nil { return nil, errWithCode{ err: err, diff --git a/pkg/collector/corechecks/servicediscovery/impl_linux_test.go b/pkg/collector/corechecks/servicediscovery/impl_linux_test.go index f3f7d4baaeb66..e6da859352596 100644 --- a/pkg/collector/corechecks/servicediscovery/impl_linux_test.go +++ b/pkg/collector/corechecks/servicediscovery/impl_linux_test.go @@ -9,6 +9,7 @@ package servicediscovery import ( "cmp" + "net/http" "testing" "time" @@ -22,8 +23,6 @@ import ( "github.com/DataDog/datadog-agent/pkg/aggregator/mocksender" "github.com/DataDog/datadog-agent/pkg/collector/corechecks/servicediscovery/apm" "github.com/DataDog/datadog-agent/pkg/collector/corechecks/servicediscovery/model" - "github.com/DataDog/datadog-agent/pkg/process/net" - netmocks "github.com/DataDog/datadog-agent/pkg/process/net/mocks" ) type testProc struct { @@ -601,19 +600,14 @@ func Test_linuxImpl(t *testing.T) { require.NotNil(t, check.os) for _, cr := range tc.checkRun { - mSysProbe := netmocks.NewSysProbeUtil(t) - mSysProbe.EXPECT().GetDiscoveryServices(). - Return(cr.servicesResp, nil). - Times(1) - _, mHostname := hostnameinterface.NewMock(hostnameinterface.MockHostname(host)) mTimer := NewMocktimer(ctrl) mTimer.EXPECT().Now().Return(cr.time).AnyTimes() // set mocks - check.os.(*linuxImpl).getSysProbeClient = func(_ string) (net.SysProbeUtil, error) { - return mSysProbe, nil + check.os.(*linuxImpl).getDiscoveryServices = func(_ *http.Client) (*model.ServicesResponse, error) { + return cr.servicesResp, nil } check.os.(*linuxImpl).time = mTimer check.sender.hostname = mHostname diff --git a/pkg/languagedetection/detector.go b/pkg/languagedetection/detector.go index 92ab7fe4cc4c5..50fbc7c19ffb5 100644 --- a/pkg/languagedetection/detector.go +++ b/pkg/languagedetection/detector.go @@ -7,15 +7,22 @@ package languagedetection import ( + "bytes" + "io" + "net/http" "regexp" "runtime" "strings" "time" + "google.golang.org/protobuf/proto" + + sysprobeclient "github.com/DataDog/datadog-agent/cmd/system-probe/api/client" + sysconfig "github.com/DataDog/datadog-agent/cmd/system-probe/config" "github.com/DataDog/datadog-agent/pkg/config/model" "github.com/DataDog/datadog-agent/pkg/languagedetection/internal/detectors" "github.com/DataDog/datadog-agent/pkg/languagedetection/languagemodels" - "github.com/DataDog/datadog-agent/pkg/process/net" + languagepb "github.com/DataDog/datadog-agent/pkg/proto/pbgo/languagedetection" "github.com/DataDog/datadog-agent/pkg/telemetry" "github.com/DataDog/datadog-agent/pkg/util/log" ) @@ -140,15 +147,8 @@ func DetectLanguage(procs []languagemodels.Process, sysprobeConfig model.Reader) }() log.Trace("[language detection] Requesting language from system probe") - util, err := net.GetRemoteSystemProbeUtil( - sysprobeConfig.GetString("system_probe_config.sysprobe_socket"), - ) - if err != nil { - log.Warn("[language detection] Failed to request language:", err) - return langs - } - - privilegedLangs, err := util.DetectLanguage(unknownPids) + sysprobeClient := sysprobeclient.Get(sysprobeConfig.GetString("system_probe_config.sysprobe_socket")) + privilegedLangs, err := detectLanguage(sysprobeClient, unknownPids) if err != nil { log.Warn("[language detection] Failed to request language:", err) return langs @@ -161,6 +161,49 @@ func DetectLanguage(procs []languagemodels.Process, sysprobeConfig model.Reader) return langs } +func detectLanguage(client *http.Client, pids []int32) ([]languagemodels.Language, error) { + procs := make([]*languagepb.Process, len(pids)) + for i, pid := range pids { + procs[i] = &languagepb.Process{Pid: pid} + } + reqBytes, err := proto.Marshal(&languagepb.DetectLanguageRequest{Processes: procs}) + if err != nil { + return nil, err + } + + url := sysprobeclient.ModuleURL(sysconfig.LanguageDetectionModule, "/detect") + req, err := http.NewRequest(http.MethodGet, url, bytes.NewBuffer(reqBytes)) + if err != nil { + return nil, err + } + + res, err := client.Do(req) + if err != nil { + return nil, err + } + defer res.Body.Close() + + resBody, err := io.ReadAll(res.Body) + if err != nil { + return nil, err + } + + var resProto languagepb.DetectLanguageResponse + err = proto.Unmarshal(resBody, &resProto) + if err != nil { + return nil, err + } + + langs := make([]languagemodels.Language, len(pids)) + for i, lang := range resProto.Languages { + langs[i] = languagemodels.Language{ + Name: languagemodels.LanguageName(lang.Name), + Version: lang.Version, + } + } + return langs, nil +} + func privilegedLanguageDetectionEnabled(sysProbeConfig model.Reader) bool { if sysProbeConfig == nil { return false diff --git a/pkg/languagedetection/detector_linux_test.go b/pkg/languagedetection/detector_linux_test.go index 7b2c7e092507a..850cfd8914eae 100644 --- a/pkg/languagedetection/detector_linux_test.go +++ b/pkg/languagedetection/detector_linux_test.go @@ -14,7 +14,6 @@ import ( "testing" "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" "google.golang.org/protobuf/proto" diff --git a/pkg/process/net/common.go b/pkg/process/net/common.go index a6f2b4d52ebb4..b9f1b787d52ad 100644 --- a/pkg/process/net/common.go +++ b/pkg/process/net/common.go @@ -10,7 +10,6 @@ package net import ( "bytes" "context" - "encoding/json" "fmt" "io" "net" @@ -18,15 +17,11 @@ import ( "time" model "github.com/DataDog/agent-payload/v5/process" - "google.golang.org/protobuf/proto" - discoverymodel "github.com/DataDog/datadog-agent/pkg/collector/corechecks/servicediscovery/model" - "github.com/DataDog/datadog-agent/pkg/languagedetection/languagemodels" netEncoding "github.com/DataDog/datadog-agent/pkg/network/encoding/unmarshal" nppayload "github.com/DataDog/datadog-agent/pkg/networkpath/payload" procEncoding "github.com/DataDog/datadog-agent/pkg/process/encoding" reqEncoding "github.com/DataDog/datadog-agent/pkg/process/encoding/request" - languagepb "github.com/DataDog/datadog-agent/pkg/proto/pbgo/languagedetection" pbgo "github.com/DataDog/datadog-agent/pkg/proto/pbgo/process" "github.com/DataDog/datadog-agent/pkg/util/funcs" "github.com/DataDog/datadog-agent/pkg/util/log" @@ -287,73 +282,6 @@ func (r *RemoteSysProbeUtil) Register(clientID string) error { return nil } -//nolint:revive // TODO(PROC) Fix revive linter -func (r *RemoteSysProbeUtil) DetectLanguage(pids []int32) ([]languagemodels.Language, error) { - procs := make([]*languagepb.Process, len(pids)) - for i, pid := range pids { - procs[i] = &languagepb.Process{Pid: pid} - } - reqBytes, err := proto.Marshal(&languagepb.DetectLanguageRequest{Processes: procs}) - if err != nil { - return nil, err - } - - req, err := http.NewRequest(http.MethodGet, languageDetectionURL, bytes.NewBuffer(reqBytes)) - if err != nil { - return nil, err - } - - res, err := r.httpClient.Do(req) - if err != nil { - return nil, err - } - defer res.Body.Close() - - resBody, err := io.ReadAll(res.Body) - if err != nil { - return nil, err - } - - var resProto languagepb.DetectLanguageResponse - err = proto.Unmarshal(resBody, &resProto) - if err != nil { - return nil, err - } - - langs := make([]languagemodels.Language, len(pids)) - for i, lang := range resProto.Languages { - langs[i] = languagemodels.Language{ - Name: languagemodels.LanguageName(lang.Name), - Version: lang.Version, - } - } - return langs, nil -} - -// GetDiscoveryServices returns service information from system-probe. -func (r *RemoteSysProbeUtil) GetDiscoveryServices() (*discoverymodel.ServicesResponse, error) { - req, err := http.NewRequest(http.MethodGet, discoveryServicesURL, nil) - if err != nil { - return nil, err - } - - resp, err := r.httpClient.Do(req) - if err != nil { - return nil, err - } - defer resp.Body.Close() - - if resp.StatusCode != http.StatusOK { - return nil, fmt.Errorf("got non-success status code: path %s, url: %s, status_code: %d", r.path, discoveryServicesURL, resp.StatusCode) - } - - res := &discoverymodel.ServicesResponse{} - if err := json.NewDecoder(resp.Body).Decode(res); err != nil { - return nil, err - } - return res, nil -} - func (r *RemoteSysProbeUtil) init() error { resp, err := r.httpClient.Get(statsURL) if err != nil { diff --git a/pkg/process/net/common_linux.go b/pkg/process/net/common_linux.go index f37f6ce5f2f86..3529180ba9576 100644 --- a/pkg/process/net/common_linux.go +++ b/pkg/process/net/common_linux.go @@ -18,15 +18,13 @@ import ( ) const ( - pingURL = "http://unix/" + string(sysconfig.PingModule) + "/ping/" - tracerouteURL = "http://unix/" + string(sysconfig.TracerouteModule) + "/traceroute/" - connectionsURL = "http://unix/" + string(sysconfig.NetworkTracerModule) + "/connections" - networkIDURL = "http://unix/" + string(sysconfig.NetworkTracerModule) + "/network_id" - procStatsURL = "http://unix/" + string(sysconfig.ProcessModule) + "/stats" - registerURL = "http://unix/" + string(sysconfig.NetworkTracerModule) + "/register" - statsURL = "http://unix/debug/stats" - languageDetectionURL = "http://unix/" + string(sysconfig.LanguageDetectionModule) + "/detect" - discoveryServicesURL = "http://unix/" + string(sysconfig.DiscoveryModule) + "/services" + pingURL = "http://unix/" + string(sysconfig.PingModule) + "/ping/" + tracerouteURL = "http://unix/" + string(sysconfig.TracerouteModule) + "/traceroute/" + connectionsURL = "http://unix/" + string(sysconfig.NetworkTracerModule) + "/connections" + networkIDURL = "http://unix/" + string(sysconfig.NetworkTracerModule) + "/network_id" + procStatsURL = "http://unix/" + string(sysconfig.ProcessModule) + "/stats" + registerURL = "http://unix/" + string(sysconfig.NetworkTracerModule) + "/register" + statsURL = "http://unix/debug/stats" ) // CheckPath is used in conjunction with calling the stats endpoint, since we are calling this diff --git a/pkg/process/net/common_unsupported.go b/pkg/process/net/common_unsupported.go index 003c21428832d..c4354fce03fd9 100644 --- a/pkg/process/net/common_unsupported.go +++ b/pkg/process/net/common_unsupported.go @@ -12,8 +12,6 @@ import ( model "github.com/DataDog/agent-payload/v5/process" - discoverymodel "github.com/DataDog/datadog-agent/pkg/collector/corechecks/servicediscovery/model" - "github.com/DataDog/datadog-agent/pkg/languagedetection/languagemodels" nppayload "github.com/DataDog/datadog-agent/pkg/networkpath/payload" ) @@ -63,16 +61,6 @@ func (r *RemoteSysProbeUtil) Register(_ string) error { return ErrNotImplemented } -// DetectLanguage is not supported -func (r *RemoteSysProbeUtil) DetectLanguage([]int32) ([]languagemodels.Language, error) { - return nil, ErrNotImplemented -} - -// GetDiscoveryServices is not supported -func (r *RemoteSysProbeUtil) GetDiscoveryServices() (*discoverymodel.ServicesResponse, error) { - return nil, ErrNotImplemented -} - // GetPing is not supported func (r *RemoteSysProbeUtil) GetPing(_ string, _ string, _ int, _ time.Duration, _ time.Duration) ([]byte, error) { return nil, ErrNotImplemented diff --git a/pkg/process/net/common_windows.go b/pkg/process/net/common_windows.go index befe178b92dba..7a08bca481b93 100644 --- a/pkg/process/net/common_windows.go +++ b/pkg/process/net/common_windows.go @@ -17,15 +17,12 @@ import ( ) const ( - connectionsURL = "http://localhost:3333/" + string(sysconfig.NetworkTracerModule) + "/connections" - networkIDURL = "http://unix/" + string(sysconfig.NetworkTracerModule) + "/network_id" - registerURL = "http://localhost:3333/" + string(sysconfig.NetworkTracerModule) + "/register" - languageDetectionURL = "http://localhost:3333/" + string(sysconfig.LanguageDetectionModule) + "/detect" - statsURL = "http://localhost:3333/debug/stats" - tracerouteURL = "http://localhost:3333/" + string(sysconfig.TracerouteModule) + "/traceroute/" + connectionsURL = "http://localhost:3333/" + string(sysconfig.NetworkTracerModule) + "/connections" + networkIDURL = "http://unix/" + string(sysconfig.NetworkTracerModule) + "/network_id" + registerURL = "http://localhost:3333/" + string(sysconfig.NetworkTracerModule) + "/register" + statsURL = "http://localhost:3333/debug/stats" + tracerouteURL = "http://localhost:3333/" + string(sysconfig.TracerouteModule) + "/traceroute/" - // discovery* is not used on Windows, the value is added to avoid a compilation error - discoveryServicesURL = "http://localhost:3333/" + string(sysconfig.DiscoveryModule) + "/services" // procStatsURL is not used in windows, the value is added to avoid compilation error in windows procStatsURL = "http://localhost:3333/" + string(sysconfig.ProcessModule) + "stats" // pingURL is not used in windows, the value is added to avoid compilation error in windows diff --git a/pkg/process/net/mocks/sys_probe_util.go b/pkg/process/net/mocks/sys_probe_util.go index f5495693f0b32..942046a3bc35d 100644 --- a/pkg/process/net/mocks/sys_probe_util.go +++ b/pkg/process/net/mocks/sys_probe_util.go @@ -3,11 +3,8 @@ package mocks import ( - languagemodels "github.com/DataDog/datadog-agent/pkg/languagedetection/languagemodels" mock "github.com/stretchr/testify/mock" - model "github.com/DataDog/datadog-agent/pkg/collector/corechecks/servicediscovery/model" - payload "github.com/DataDog/datadog-agent/pkg/networkpath/payload" process "github.com/DataDog/agent-payload/v5/process" @@ -28,64 +25,6 @@ func (_m *SysProbeUtil) EXPECT() *SysProbeUtil_Expecter { return &SysProbeUtil_Expecter{mock: &_m.Mock} } -// DetectLanguage provides a mock function with given fields: pids -func (_m *SysProbeUtil) DetectLanguage(pids []int32) ([]languagemodels.Language, error) { - ret := _m.Called(pids) - - if len(ret) == 0 { - panic("no return value specified for DetectLanguage") - } - - var r0 []languagemodels.Language - var r1 error - if rf, ok := ret.Get(0).(func([]int32) ([]languagemodels.Language, error)); ok { - return rf(pids) - } - if rf, ok := ret.Get(0).(func([]int32) []languagemodels.Language); ok { - r0 = rf(pids) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]languagemodels.Language) - } - } - - if rf, ok := ret.Get(1).(func([]int32) error); ok { - r1 = rf(pids) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// SysProbeUtil_DetectLanguage_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DetectLanguage' -type SysProbeUtil_DetectLanguage_Call struct { - *mock.Call -} - -// DetectLanguage is a helper method to define mock.On call -// - pids []int32 -func (_e *SysProbeUtil_Expecter) DetectLanguage(pids interface{}) *SysProbeUtil_DetectLanguage_Call { - return &SysProbeUtil_DetectLanguage_Call{Call: _e.mock.On("DetectLanguage", pids)} -} - -func (_c *SysProbeUtil_DetectLanguage_Call) Run(run func(pids []int32)) *SysProbeUtil_DetectLanguage_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].([]int32)) - }) - return _c -} - -func (_c *SysProbeUtil_DetectLanguage_Call) Return(_a0 []languagemodels.Language, _a1 error) *SysProbeUtil_DetectLanguage_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *SysProbeUtil_DetectLanguage_Call) RunAndReturn(run func([]int32) ([]languagemodels.Language, error)) *SysProbeUtil_DetectLanguage_Call { - _c.Call.Return(run) - return _c -} - // GetConnections provides a mock function with given fields: clientID func (_m *SysProbeUtil) GetConnections(clientID string) (*process.Connections, error) { ret := _m.Called(clientID) @@ -144,63 +83,6 @@ func (_c *SysProbeUtil_GetConnections_Call) RunAndReturn(run func(string) (*proc return _c } -// GetDiscoveryServices provides a mock function with given fields: -func (_m *SysProbeUtil) GetDiscoveryServices() (*model.ServicesResponse, error) { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for GetDiscoveryServices") - } - - var r0 *model.ServicesResponse - var r1 error - if rf, ok := ret.Get(0).(func() (*model.ServicesResponse, error)); ok { - return rf() - } - if rf, ok := ret.Get(0).(func() *model.ServicesResponse); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*model.ServicesResponse) - } - } - - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// SysProbeUtil_GetDiscoveryServices_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetDiscoveryServices' -type SysProbeUtil_GetDiscoveryServices_Call struct { - *mock.Call -} - -// GetDiscoveryServices is a helper method to define mock.On call -func (_e *SysProbeUtil_Expecter) GetDiscoveryServices() *SysProbeUtil_GetDiscoveryServices_Call { - return &SysProbeUtil_GetDiscoveryServices_Call{Call: _e.mock.On("GetDiscoveryServices")} -} - -func (_c *SysProbeUtil_GetDiscoveryServices_Call) Run(run func()) *SysProbeUtil_GetDiscoveryServices_Call { - _c.Call.Run(func(args mock.Arguments) { - run() - }) - return _c -} - -func (_c *SysProbeUtil_GetDiscoveryServices_Call) Return(_a0 *model.ServicesResponse, _a1 error) *SysProbeUtil_GetDiscoveryServices_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *SysProbeUtil_GetDiscoveryServices_Call) RunAndReturn(run func() (*model.ServicesResponse, error)) *SysProbeUtil_GetDiscoveryServices_Call { - _c.Call.Return(run) - return _c -} - // GetNetworkID provides a mock function with given fields: func (_m *SysProbeUtil) GetNetworkID() (string, error) { ret := _m.Called() diff --git a/pkg/process/net/shared.go b/pkg/process/net/shared.go index 88f5681d7fc3c..33ca74d07863d 100644 --- a/pkg/process/net/shared.go +++ b/pkg/process/net/shared.go @@ -10,8 +10,6 @@ import ( model "github.com/DataDog/agent-payload/v5/process" - discoverymodel "github.com/DataDog/datadog-agent/pkg/collector/corechecks/servicediscovery/model" - "github.com/DataDog/datadog-agent/pkg/languagedetection/languagemodels" nppayload "github.com/DataDog/datadog-agent/pkg/networkpath/payload" ) @@ -25,8 +23,6 @@ type SysProbeUtil interface { GetProcStats(pids []int32) (*model.ProcStatsWithPermByPID, error) Register(clientID string) error GetNetworkID() (string, error) - DetectLanguage(pids []int32) ([]languagemodels.Language, error) - GetDiscoveryServices() (*discoverymodel.ServicesResponse, error) GetPing(clientID string, host string, count int, interval time.Duration, timeout time.Duration) ([]byte, error) GetTraceroute(clientID string, host string, port uint16, protocol nppayload.Protocol, maxTTL uint8, timeout time.Duration) ([]byte, error) } From dbbc50e3047220ba1cf5c8a01074d54f945b3b11 Mon Sep 17 00:00:00 2001 From: Kevin Fairise <132568982+KevinFairise2@users.noreply.github.com> Date: Tue, 3 Dec 2024 23:04:06 +0100 Subject: [PATCH 229/439] Fix out of sync go work and update check (#31723) --- tasks/go.py | 5 +++++ tools/retry_file_dump/go.mod | 4 ++-- tools/retry_file_dump/go.sum | 22 ++++------------------ 3 files changed, 11 insertions(+), 20 deletions(-) diff --git a/tasks/go.py b/tasks/go.py index 8a7777873d320..0706fed06b6c0 100644 --- a/tasks/go.py +++ b/tasks/go.py @@ -410,6 +410,11 @@ def check_mod_tidy(ctx, test_folder="testmodule"): check_valid_mods(ctx) with generate_dummy_package(ctx, test_folder) as dummy_folder: errors_found = [] + ctx.run("go work sync") + res = ctx.run("git diff --exit-code **/go.mod **/go.sum", warn=True) + if res.exited is None or res.exited > 0: + errors_found.append("modules dependencies are out of sync, please run go work sync") + for mod in get_default_modules().values(): with ctx.cd(mod.full_path()): ctx.run("go mod tidy") diff --git a/tools/retry_file_dump/go.mod b/tools/retry_file_dump/go.mod index ed65fca4950b0..7fca970324657 100644 --- a/tools/retry_file_dump/go.mod +++ b/tools/retry_file_dump/go.mod @@ -7,9 +7,9 @@ module github.com/DataDog/datadog-agent/tools/retry_file_dump go 1.22.0 -require github.com/golang/protobuf v1.4.3 +require github.com/golang/protobuf v1.5.4 require ( github.com/google/go-cmp v0.6.0 // indirect - google.golang.org/protobuf v1.23.0 // indirect + google.golang.org/protobuf v1.35.2 // indirect ) diff --git a/tools/retry_file_dump/go.sum b/tools/retry_file_dump/go.sum index 87b425aebfe54..3b856ba5c8cdb 100644 --- a/tools/retry_file_dump/go.sum +++ b/tools/retry_file_dump/go.sum @@ -1,20 +1,6 @@ -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= From e6017fdbedbf548ec9bd9982908eb975ebd0bf74 Mon Sep 17 00:00:00 2001 From: Andrew Glaude Date: Tue, 3 Dec 2024 18:11:47 -0500 Subject: [PATCH 230/439] Add auth token requirement for trace-agent set log_level (APMSP-1204) (#31448) Co-authored-by: Jen Gilbert --- .github/CODEOWNERS | 3 ++ .../test/testsuite/config_set_test.go | 10 +++--- comp/core/log/impl-trace/go.mod | 10 +++--- comp/otelcol/ddflareextension/impl/go.mod | 2 +- .../exporter/datadogexporter/go.mod | 8 ++--- .../otlp/components/statsprocessor/go.mod | 6 ++-- comp/trace/agent/impl/run.go | 13 ++++---- comp/trace/config/config.go | 3 ++ comp/trace/config/config_test.go | 32 +++++++++++++++++++ comp/trace/config/setup.go | 2 ++ go.mod | 2 +- pkg/trace/config/config.go | 4 +++ pkg/trace/go.mod | 6 ++-- .../remote_config_handler.go | 28 ++++++++++++++-- .../remote_config_handler_test.go | 13 +++++--- pkg/trace/stats/oteltest/go.mod | 6 ++-- .../traceagent-loglevel-027cc2c0e581b195.yaml | 11 +++++++ test/new-e2e/go.mod | 6 ++-- test/otel/go.mod | 14 ++++---- 19 files changed, 130 insertions(+), 49 deletions(-) create mode 100644 releasenotes/notes/traceagent-loglevel-027cc2c0e581b195.yaml diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 92f4e0cae5b31..42466f04064aa 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -330,6 +330,9 @@ # Additional notification to @iglendd about Agent Telemetry changes for optional approval and governance acknowledgement /comp/core/agenttelemetry @DataDog/agent-shared-components @iglendd +# trace-agent logging implementation should also notify agent-apm +/comp/core/log/impl-trace @DataDog/agent-apm + # pkg /pkg/ @DataDog/agent-shared-components /pkg/api/ @DataDog/agent-shared-components diff --git a/cmd/trace-agent/test/testsuite/config_set_test.go b/cmd/trace-agent/test/testsuite/config_set_test.go index dbf6da1206e10..ee2065f63c7a2 100644 --- a/cmd/trace-agent/test/testsuite/config_set_test.go +++ b/cmd/trace-agent/test/testsuite/config_set_test.go @@ -11,13 +11,13 @@ import ( "testing" "time" - "github.com/DataDog/datadog-agent/cmd/trace-agent/test" - "github.com/cihub/seelog" "github.com/stretchr/testify/assert" + + "github.com/DataDog/datadog-agent/cmd/trace-agent/test" ) -func TestConfigSetHandler(t *testing.T) { +func TestConfigSetHandlerUnauthenticated(t *testing.T) { var r test.Runner if err := r.Start(); err != nil { t.Fatal(err) @@ -41,8 +41,6 @@ func TestConfigSetHandler(t *testing.T) { t.Fatal(err) } - logstr = r.AgentLog() - assert.NotContains(t, logstr, "Switched log level to") - assert.Equal(t, 200, resp.StatusCode) + assert.Equal(t, http.StatusUnauthorized, resp.StatusCode) resp.Body.Close() } diff --git a/comp/core/log/impl-trace/go.mod b/comp/core/log/impl-trace/go.mod index 4bbf09ab70ea0..558e49758e123 100644 --- a/comp/core/log/impl-trace/go.mod +++ b/comp/core/log/impl-trace/go.mod @@ -40,11 +40,11 @@ replace ( ) require ( - github.com/DataDog/datadog-agent/comp/core/config v0.56.0-rc.3 + github.com/DataDog/datadog-agent/comp/core/config v0.59.0 github.com/DataDog/datadog-agent/comp/core/log/def v0.0.0-00010101000000-000000000000 github.com/DataDog/datadog-agent/pkg/config/env v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/trace v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/util/fxutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect; v2.6 github.com/stretchr/testify v1.10.0 @@ -52,14 +52,14 @@ require ( ) require ( - github.com/DataDog/datadog-agent/comp/def v0.56.0-rc.3 + github.com/DataDog/datadog-agent/comp/def v0.59.0 github.com/DataDog/datadog-agent/pkg/config/mock v0.59.0 github.com/DataDog/datadog-agent/pkg/util/log/setup v0.0.0-00010101000000-000000000000 ) require ( - github.com/DataDog/datadog-agent/comp/core/flare/builder v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/comp/core/flare/types v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/comp/core/flare/builder v0.59.0 // indirect + github.com/DataDog/datadog-agent/comp/core/flare/types v0.59.0 // indirect github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 // indirect diff --git a/comp/otelcol/ddflareextension/impl/go.mod b/comp/otelcol/ddflareextension/impl/go.mod index eddb0d30de66e..6c75776d13338 100644 --- a/comp/otelcol/ddflareextension/impl/go.mod +++ b/comp/otelcol/ddflareextension/impl/go.mod @@ -108,7 +108,7 @@ require ( github.com/DataDog/datadog-agent/comp/otelcol/ddflareextension/def v0.58.0 github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/datadogexporter v0.59.0 github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/processor/infraattributesprocessor v0.59.0 - github.com/DataDog/datadog-agent/pkg/api v0.57.1 + github.com/DataDog/datadog-agent/pkg/api v0.59.0 github.com/DataDog/datadog-agent/pkg/config/mock v0.59.0 github.com/DataDog/datadog-agent/pkg/version v0.59.0 github.com/google/go-cmp v0.6.0 diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod index bf26c428e8156..03d38db4ad006 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod @@ -139,14 +139,14 @@ require ( github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect github.com/DataDog/datadog-agent/comp/core/status v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/core/telemetry v0.57.1 // indirect - github.com/DataDog/datadog-agent/comp/def v0.57.1 // indirect + github.com/DataDog/datadog-agent/comp/def v0.59.0 // indirect github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorinterface v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/logs/agent/config v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/serializer/compression v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/trace/compression/def v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/aggregator/ckey v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/api v0.57.1 // indirect + github.com/DataDog/datadog-agent/pkg/api v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/config/env v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/config/mock v0.59.0 // indirect @@ -155,7 +155,7 @@ require ( github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/config/structure v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.60.0-devel // indirect - github.com/DataDog/datadog-agent/pkg/config/utils v0.57.1 // indirect + github.com/DataDog/datadog-agent/pkg/config/utils v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/logs/auditor v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/logs/client v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.56.0-rc.3 // indirect @@ -182,7 +182,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/common v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/fxutil v0.57.1 // indirect + github.com/DataDog/datadog-agent/pkg/util/fxutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/http v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/json v0.56.0-rc.3 // indirect diff --git a/comp/otelcol/otlp/components/statsprocessor/go.mod b/comp/otelcol/otlp/components/statsprocessor/go.mod index ae2cd3d4f9fd2..5d552885f7b36 100644 --- a/comp/otelcol/otlp/components/statsprocessor/go.mod +++ b/comp/otelcol/otlp/components/statsprocessor/go.mod @@ -37,9 +37,9 @@ require ( github.com/DataDog/datadog-agent/pkg/obfuscate v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/cgroups v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/pointer v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect github.com/DataDog/go-sqllexer v0.0.17 // indirect github.com/DataDog/go-tuf v1.1.0-0.5.2 // indirect github.com/DataDog/sketches-go v1.4.6 // indirect diff --git a/comp/trace/agent/impl/run.go b/comp/trace/agent/impl/run.go index d42d90b41fbff..df25106b78755 100644 --- a/comp/trace/agent/impl/run.go +++ b/comp/trace/agent/impl/run.go @@ -70,6 +70,12 @@ func runAgentSidekicks(ag component) error { log.Errorf("could not set auth token: %s", err) } else { ag.Agent.DebugServer.AddRoute("/config", ag.config.GetConfigHandler()) + api.AttachEndpoint(api.Endpoint{ + Pattern: "/config/set", + Handler: func(_ *api.HTTPReceiver) http.Handler { + return ag.config.SetHandler() + }, + }) } if secrets, ok := ag.secrets.Get(); ok { // Adding a route to trigger a secrets refresh from the CLI. @@ -92,13 +98,6 @@ func runAgentSidekicks(ag component) error { })) } - api.AttachEndpoint(api.Endpoint{ - Pattern: "/config/set", - Handler: func(_ *api.HTTPReceiver) http.Handler { - return ag.config.SetHandler() - }, - }) - log.Infof("Trace agent running on host %s", tracecfg.Hostname) if pcfg := profilingConfig(tracecfg); pcfg != nil { if err := profiling.Start(*pcfg); err != nil { diff --git a/comp/trace/config/config.go b/comp/trace/config/config.go index e92e4b510034e..717d65074bb64 100644 --- a/comp/trace/config/config.go +++ b/comp/trace/config/config.go @@ -133,6 +133,9 @@ func (c *cfg) SetHandler() http.Handler { httpError(w, http.StatusMethodNotAllowed, fmt.Errorf("%s method not allowed, only %s", req.Method, http.MethodPost)) return } + if apiutil.Validate(w, req) != nil { + return + } for key, values := range req.URL.Query() { if len(values) == 0 { continue diff --git a/comp/trace/config/config_test.go b/comp/trace/config/config_test.go index 7bdc5950e9cbf..f428a7da51bc4 100644 --- a/comp/trace/config/config_test.go +++ b/comp/trace/config/config_test.go @@ -2234,6 +2234,38 @@ func TestGetCoreConfigHandler(t *testing.T) { assert.Contains(t, conf, "apm_config") } +func TestSetConfigHandler(t *testing.T) { + config := buildConfigComponent(t, true, fx.Supply(corecomp.Params{})) + + handler := config.SetHandler().ServeHTTP + + // Refuse non POST query + resp := httptest.NewRecorder() + req := httptest.NewRequest("GET", "/config", nil) + handler(resp, req) + assert.Equal(t, http.StatusMethodNotAllowed, resp.Code) + + // Refuse missing auth token + resp = httptest.NewRecorder() + req = httptest.NewRequest("POST", "/config", nil) + handler(resp, req) + assert.Equal(t, http.StatusUnauthorized, resp.Code) + + // Refuse invalid auth token + resp = httptest.NewRecorder() + req = httptest.NewRequest("POST", "/config", nil) + req.Header.Set("Authorization", "Bearer ABCDE") + handler(resp, req) + assert.Equal(t, http.StatusForbidden, resp.Code) + + // Accept valid auth token return OK + resp = httptest.NewRecorder() + req = httptest.NewRequest("POST", "/config", nil) + req.Header.Set("Authorization", "Bearer "+apiutil.GetAuthToken()) + handler(resp, req) + assert.Equal(t, http.StatusOK, resp.Code) +} + func TestDisableReceiverConfig(t *testing.T) { config := buildConfigComponent(t, true, fx.Replace(corecomp.MockParams{ Params: corecomp.Params{ConfFilePath: "./testdata/disable_receiver.yaml"}, diff --git a/comp/trace/config/setup.go b/comp/trace/config/setup.go index 4cdb5f832eae2..f19c5eeaf8a4f 100644 --- a/comp/trace/config/setup.go +++ b/comp/trace/config/setup.go @@ -19,6 +19,7 @@ import ( "go.opentelemetry.io/collector/component/componenttest" + apiutil "github.com/DataDog/datadog-agent/pkg/api/util" "github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes" corecompcfg "github.com/DataDog/datadog-agent/comp/core/config" @@ -121,6 +122,7 @@ func prepareConfig(c corecompcfg.Component, tagger tagger.Component) (*config.Ag return tagger.Tag(types.NewEntityID(types.ContainerID, cid), types.HighCardinality) } cfg.ContainerProcRoot = coreConfigObject.GetString("container_proc_root") + cfg.GetAgentAuthToken = apiutil.GetAuthToken return cfg, nil } diff --git a/go.mod b/go.mod index 7d1ddbeffe448..db7a637f947c1 100644 --- a/go.mod +++ b/go.mod @@ -679,7 +679,7 @@ require ( github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip v0.59.0 github.com/DataDog/datadog-agent/comp/trace/compression/impl-zstd v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/aggregator/ckey v0.59.0-rc.6 - github.com/DataDog/datadog-agent/pkg/api v0.57.1 + github.com/DataDog/datadog-agent/pkg/api v0.59.0 github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.59.0 github.com/DataDog/datadog-agent/pkg/config/env v0.59.0 github.com/DataDog/datadog-agent/pkg/config/mock v0.59.0 diff --git a/pkg/trace/config/config.go b/pkg/trace/config/config.go index bc84e401c88bf..5d0e59f059e39 100644 --- a/pkg/trace/config/config.go +++ b/pkg/trace/config/config.go @@ -460,6 +460,10 @@ type AgentConfig struct { // Azure container apps tags, in the form of a comma-separated list of // key-value pairs, starting with a comma AzureContainerAppTags string + + // GetAgentAuthToken retrieves an auth token to communicate with other agent processes + // Function will be nil if in an environment without an auth token + GetAgentAuthToken func() string `json:"-"` } // RemoteClient client is used to APM Sampling Updates from a remote source. diff --git a/pkg/trace/go.mod b/pkg/trace/go.mod index 331d452284d45..bd0db6ed04e59 100644 --- a/pkg/trace/go.mod +++ b/pkg/trace/go.mod @@ -17,9 +17,9 @@ require ( github.com/DataDog/datadog-agent/pkg/proto v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/cgroups v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/pointer v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 github.com/DataDog/datadog-go/v5 v5.5.0 github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 github.com/DataDog/sketches-go v1.4.6 diff --git a/pkg/trace/remoteconfighandler/remote_config_handler.go b/pkg/trace/remoteconfighandler/remote_config_handler.go index 017d858a4cc74..a1d24e7b8e744 100644 --- a/pkg/trace/remoteconfighandler/remote_config_handler.go +++ b/pkg/trace/remoteconfighandler/remote_config_handler.go @@ -91,6 +91,8 @@ func (h *RemoteConfigHandler) onAgentConfigUpdate(updates map[string]state.RawCo return } + // todo refactor shared code + if len(mergedConfig.LogLevel) > 0 { // Get the current log level var newFallback seelog.LogLevel @@ -98,7 +100,12 @@ func (h *RemoteConfigHandler) onAgentConfigUpdate(updates map[string]state.RawCo if err == nil { h.configState.FallbackLogLevel = newFallback.String() var resp *http.Response - resp, err = http.Post(fmt.Sprintf(h.configSetEndpointFormatString, mergedConfig.LogLevel), "", nil) + var req *http.Request + req, err = h.buildLogLevelRequest(mergedConfig.LogLevel) + if err != nil { + return + } + resp, err = http.DefaultClient.Do(req) if err == nil { resp.Body.Close() h.configState.LatestLogLevel = mergedConfig.LogLevel @@ -111,7 +118,12 @@ func (h *RemoteConfigHandler) onAgentConfigUpdate(updates map[string]state.RawCo if err == nil && currentLogLevel.String() == h.configState.LatestLogLevel { pkglog.Infof("Removing remote-config log level override of the trace-agent, falling back to %s", h.configState.FallbackLogLevel) var resp *http.Response - resp, err = http.Post(fmt.Sprintf(h.configSetEndpointFormatString, h.configState.FallbackLogLevel), "", nil) + var req *http.Request + req, err = h.buildLogLevelRequest(h.configState.FallbackLogLevel) + if err != nil { + return + } + resp, err = http.DefaultClient.Do(req) if err == nil { resp.Body.Close() } @@ -135,6 +147,18 @@ func (h *RemoteConfigHandler) onAgentConfigUpdate(updates map[string]state.RawCo } } +func (h *RemoteConfigHandler) buildLogLevelRequest(newLevel string) (*http.Request, error) { + req, err := http.NewRequest(http.MethodPost, fmt.Sprintf(h.configSetEndpointFormatString, newLevel), nil) + if err != nil { + pkglog.Infof("Failed to build request to change log level of the trace-agent to %s through remote config", newLevel) + return nil, err + } + if h.agentConfig.GetAgentAuthToken != nil { + req.Header.Set("Authorization", "Bearer "+h.agentConfig.GetAgentAuthToken()) + } + return req, nil +} + func (h *RemoteConfigHandler) onUpdate(update map[string]state.RawConfig, _ func(string, state.ApplyStatus)) { if len(update) == 0 { log.Debugf("no samplers configuration in remote config update payload") diff --git a/pkg/trace/remoteconfighandler/remote_config_handler_test.go b/pkg/trace/remoteconfighandler/remote_config_handler_test.go index da1be045ba4db..6d3cde4a49711 100644 --- a/pkg/trace/remoteconfighandler/remote_config_handler_test.go +++ b/pkg/trace/remoteconfighandler/remote_config_handler_test.go @@ -13,14 +13,15 @@ import ( "strings" "testing" + "github.com/cihub/seelog" + "github.com/golang/mock/gomock" + "github.com/stretchr/testify/assert" + "github.com/DataDog/datadog-agent/pkg/remoteconfig/state" "github.com/DataDog/datadog-agent/pkg/remoteconfig/state/products/apmsampling" "github.com/DataDog/datadog-agent/pkg/trace/config" pkglog "github.com/DataDog/datadog-agent/pkg/util/log" "github.com/DataDog/datadog-agent/pkg/util/pointer" - "github.com/cihub/seelog" - "github.com/golang/mock/gomock" - "github.com/stretchr/testify/assert" ) // nolint: revive @@ -193,7 +194,8 @@ func TestLogLevel(t *testing.T) { rareSampler := NewMockrareSampler(ctrl) pkglog.SetupLogger(seelog.Default, "debug") - srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { + srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + assert.Equal(t, "Bearer fakeToken", r.Header.Get("Authorization")) w.WriteHeader(200) })) defer srv.Close() @@ -204,6 +206,9 @@ func TestLogLevel(t *testing.T) { DefaultEnv: "agent-env", ReceiverHost: "127.0.0.1", ReceiverPort: port, + GetAgentAuthToken: func() string { + return "fakeToken" + }, } h := New(&agentConfig, prioritySampler, rareSampler, errorsSampler) diff --git a/pkg/trace/stats/oteltest/go.mod b/pkg/trace/stats/oteltest/go.mod index 0f6d4141b9c07..aabc79c264479 100644 --- a/pkg/trace/stats/oteltest/go.mod +++ b/pkg/trace/stats/oteltest/go.mod @@ -25,9 +25,9 @@ require ( github.com/DataDog/datadog-agent/pkg/obfuscate v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/cgroups v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/pointer v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect github.com/DataDog/go-sqllexer v0.0.17 // indirect github.com/DataDog/go-tuf v1.1.0-0.5.2 // indirect github.com/DataDog/sketches-go v1.4.6 // indirect diff --git a/releasenotes/notes/traceagent-loglevel-027cc2c0e581b195.yaml b/releasenotes/notes/traceagent-loglevel-027cc2c0e581b195.yaml new file mode 100644 index 0000000000000..abcef3986cc0b --- /dev/null +++ b/releasenotes/notes/traceagent-loglevel-027cc2c0e581b195.yaml @@ -0,0 +1,11 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +enhancements: + - | + APM: The trace agent endpoint for changing the configured log level now requires authentication so it is only accessible to other Agent processes. diff --git a/test/new-e2e/go.mod b/test/new-e2e/go.mod index 5053d1a984771..4e07b944663fd 100644 --- a/test/new-e2e/go.mod +++ b/test/new-e2e/go.mod @@ -48,10 +48,10 @@ require ( github.com/DataDog/agent-payload/v5 v5.0.137 github.com/DataDog/datadog-agent/comp/otelcol/ddflareextension/def v0.56.2 github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 - github.com/DataDog/datadog-agent/pkg/util/pointer v0.56.2 - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.2 + github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 github.com/DataDog/datadog-agent/pkg/util/testutil v0.56.2 - github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 + github.com/DataDog/datadog-agent/pkg/version v0.59.0 github.com/DataDog/datadog-agent/test/fakeintake v0.56.0-rc.3 github.com/DataDog/datadog-api-client-go v1.16.0 github.com/DataDog/datadog-api-client-go/v2 v2.31.0 diff --git a/test/otel/go.mod b/test/otel/go.mod index d7223e48d1316..1fa91df93b234 100644 --- a/test/otel/go.mod +++ b/test/otel/go.mod @@ -94,7 +94,7 @@ replace ( ) require ( - github.com/DataDog/datadog-agent/comp/core/config v0.57.1 + github.com/DataDog/datadog-agent/comp/core/config v0.59.0 github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.56.0-rc.3 github.com/DataDog/datadog-agent/comp/core/log/def v0.56.0-rc.1 github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline v0.56.0-rc.3 @@ -126,11 +126,11 @@ require ( require ( github.com/DataDog/agent-payload/v5 v5.0.137 // indirect - github.com/DataDog/datadog-agent/comp/core/flare/builder v0.57.1 // indirect - github.com/DataDog/datadog-agent/comp/core/flare/types v0.57.1 // indirect + github.com/DataDog/datadog-agent/comp/core/flare/builder v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/comp/core/flare/types v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect github.com/DataDog/datadog-agent/comp/core/telemetry v0.57.1 // indirect - github.com/DataDog/datadog-agent/comp/def v0.57.1 // indirect + github.com/DataDog/datadog-agent/comp/def v0.59.0 // indirect github.com/DataDog/datadog-agent/comp/logs/agent/config v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/trace/compression/def v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip v0.56.0-rc.3 // indirect @@ -140,7 +140,7 @@ require ( github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.60.0-devel // indirect github.com/DataDog/datadog-agent/pkg/config/structure v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.60.0-devel // indirect - github.com/DataDog/datadog-agent/pkg/config/utils v0.57.1 // indirect + github.com/DataDog/datadog-agent/pkg/config/utils v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/logs/auditor v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/logs/client v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.56.0-rc.3 // indirect @@ -161,7 +161,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/cgroups v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/fxutil v0.57.1 // indirect + github.com/DataDog/datadog-agent/pkg/util/fxutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/http v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect @@ -173,7 +173,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/version v0.57.1 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/datadog-api-client-go/v2 v2.31.0 // indirect github.com/DataDog/datadog-go/v5 v5.5.0 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect From a073af31ca58bdf2853f3a2ee7fe554bfaf0260d Mon Sep 17 00:00:00 2001 From: pducolin <45568537+pducolin@users.noreply.github.com> Date: Wed, 4 Dec 2024 00:12:45 +0100 Subject: [PATCH 231/439] [e2e] mark TestAdmissionControllerWithAutoDetectedLanguage (#31728) --- test/new-e2e/tests/containers/k8s_test.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/new-e2e/tests/containers/k8s_test.go b/test/new-e2e/tests/containers/k8s_test.go index 6290166cf6055..3bf11754dff61 100644 --- a/test/new-e2e/tests/containers/k8s_test.go +++ b/test/new-e2e/tests/containers/k8s_test.go @@ -19,6 +19,7 @@ import ( "gopkg.in/zorkian/go-datadog-api.v2" "github.com/DataDog/datadog-agent/pkg/util/pointer" + "github.com/DataDog/datadog-agent/pkg/util/testutil/flake" "github.com/DataDog/datadog-agent/test/fakeintake/aggregator" fakeintake "github.com/DataDog/datadog-agent/test/fakeintake/client" "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments" @@ -981,6 +982,8 @@ func (suite *k8sSuite) TestAdmissionControllerWithLibraryAnnotation() { } func (suite *k8sSuite) TestAdmissionControllerWithAutoDetectedLanguage() { + // CONTINT-4009 + flake.Mark(suite.T()) suite.testAdmissionControllerPod("workload-mutated-lib-injection", "mutated-with-auto-detected-language", "python", true) } From 465264ac1b2c9f98ab6618775410f865c1a255ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20Beauz=C3=A9e-Luyssen?= Date: Wed, 4 Dec 2024 08:48:32 +0100 Subject: [PATCH 232/439] enable omnibus git cache on windows (#31555) Co-authored-by: Alex Lopez --- .gitlab-ci.yml | 2 ++ .gitlab/package_build/windows.yml | 1 + tasks/omnibus.py | 6 +++--- tasks/unit_tests/omnibus_tests.py | 18 +++++++++--------- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a135957f28d90..f2d160daebcda 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -157,6 +157,8 @@ variables: ## build to succeed with S3 caching disabled. S3_OMNIBUS_CACHE_BUCKET: dd-ci-datadog-agent-omnibus-cache-build-stable USE_S3_CACHING: --omnibus-s3-cache + # This value is not used on windows, a specific value is provided to + # our build containers in the windows build jobs OMNIBUS_GIT_CACHE_DIR: /tmp/omnibus-git-cache ## comment out the line below to disable integration wheels cache INTEGRATION_WHEELS_CACHE_BUCKET: dd-agent-omnibus diff --git a/.gitlab/package_build/windows.yml b/.gitlab/package_build/windows.yml index 82b691cdc6792..b66a34db50de1 100644 --- a/.gitlab/package_build/windows.yml +++ b/.gitlab/package_build/windows.yml @@ -36,6 +36,7 @@ -e BUNDLE_MIRROR__RUBYGEMS__ORG=${BUNDLE_MIRROR__RUBYGEMS__ORG} -e PIP_INDEX_URL=${PIP_INDEX_URL} -e API_KEY_ORG2=${API_KEY_ORG2} + -e OMNIBUS_GIT_CACHE_DIR=${Env:TEMP}/${CI_PIPELINE_ID}/omnibus-git-cache registry.ddbuild.io/ci/datadog-agent-buildimages/windows_1809_${ARCH}${Env:DATADOG_AGENT_WINBUILDIMAGES_SUFFIX}:${Env:DATADOG_AGENT_WINBUILDIMAGES} c:\mnt\tasks\winbuildscripts\buildwin.bat - If ($lastExitCode -ne "0") { throw "Previous command returned $lastExitCode" } diff --git a/tasks/omnibus.py b/tasks/omnibus.py index 649992fdcfb44..40bbfb621beff 100644 --- a/tasks/omnibus.py +++ b/tasks/omnibus.py @@ -272,9 +272,8 @@ def build( cache_state = None cache_key = omnibus_compute_cache_key(ctx) git_cache_url = f"s3://{os.environ['S3_OMNIBUS_CACHE_BUCKET']}/builds/{cache_key}/{remote_cache_name}" - bundle_path = ( - "/tmp/omnibus-git-cache-bundle" if sys.platform != 'win32' else "C:\\TEMP\\omnibus-git-cache-bundle" - ) + bundle_dir = tempfile.TemporaryDirectory() + bundle_path = os.path.join(bundle_dir.name, 'omnibus-git-cache-bundle') with timed(quiet=True) as durations['Restoring omnibus cache']: # Allow failure in case the cache was evicted if ctx.run(f"{aws_cmd} s3 cp --only-show-errors {git_cache_url} {bundle_path}", warn=True): @@ -320,6 +319,7 @@ def build( if use_remote_cache and ctx.run(f"git -C {omnibus_cache_dir} tag -l").stdout != cache_state: ctx.run(f"git -C {omnibus_cache_dir} bundle create {bundle_path} --tags") ctx.run(f"{aws_cmd} s3 cp --only-show-errors {bundle_path} {git_cache_url}") + bundle_dir.cleanup() # Output duration information for different steps print("Build component timing:") diff --git a/tasks/unit_tests/omnibus_tests.py b/tasks/unit_tests/omnibus_tests.py index 2c5ddba5ff3a2..cf22abaf2623d 100644 --- a/tasks/unit_tests/omnibus_tests.py +++ b/tasks/unit_tests/omnibus_tests.py @@ -89,9 +89,9 @@ def test_successful_cache_hit(self): self.assertRunLines( [ # We copied the cache from remote cache - r'aws s3 cp (\S* )?s3://omnibus-cache/builds/\w+/slug /tmp/omnibus-git-cache-bundle', + r'aws s3 cp (\S* )?s3://omnibus-cache/builds/\w+/slug \S+/omnibus-git-cache-bundle', # We cloned the repo - r'git clone --mirror /tmp/omnibus-git-cache-bundle omnibus-git-cache/opt/datadog-agent', + r'git clone --mirror /\S+/omnibus-git-cache-bundle omnibus-git-cache/opt/datadog-agent', # We listed the tags to get current cache state r'git -C omnibus-git-cache/opt/datadog-agent tag -l', # We ran omnibus @@ -103,8 +103,8 @@ def test_successful_cache_hit(self): # shouldn't have been bundled and uploaded commands = _run_calls_to_string(self.mock_ctx.run.mock_calls) lines = [ - 'git -C omnibus-git-cache/opt/datadog-agent bundle create /tmp/omnibus-git-cache-bundle --tags', - r'aws s3 cp (\S* )?/tmp/omnibus-git-cache-bundle s3://omnibus-cache/builds/\w+/slug', + r'git -C omnibus-git-cache/opt/datadog-agent bundle create /\S+/omnibus-git-cache-bundle --tags', + r'aws s3 cp (\S* )?/\S+/omnibus-git-cache-bundle s3://omnibus-cache/builds/\w+/slug', ] for line in lines: self.assertIsNone(re.search(line, commands)) @@ -112,7 +112,7 @@ def test_successful_cache_hit(self): def test_cache_miss(self): self.mock_ctx.set_result_for( 'run', - re.compile(r'aws s3 cp (\S* )?s3://omnibus-cache/builds/\S* /tmp/omnibus-git-cache-bundle'), + re.compile(r'aws s3 cp (\S* )?s3://omnibus-cache/builds/\S* /\S+/omnibus-git-cache-bundle'), Result(exited=1), ) self.mock_ctx.set_result_for( @@ -129,7 +129,7 @@ def test_cache_miss(self): # Assert we did NOT clone nor list tags before the omnibus build lines = [ - r'git clone --mirror /tmp/omnibus-git-cache-bundle omnibus-git-cache/opt/datadog-agent', + r'git clone --mirror /\S+/omnibus-git-cache-bundle omnibus-git-cache/opt/datadog-agent', r'git -C omnibus-git-cache/opt/datadog-agent tag -l', ] for line in lines: @@ -146,8 +146,8 @@ def test_cache_miss(self): # Listed tags for cache comparison r'git -C omnibus-git-cache/opt/datadog-agent tag -l', # And we created and uploaded the new cache - r'git -C omnibus-git-cache/opt/datadog-agent bundle create /tmp/omnibus-git-cache-bundle --tags', - r'aws s3 cp (\S* )?/tmp/omnibus-git-cache-bundle s3://omnibus-cache/builds/\w+/slug', + r'git -C omnibus-git-cache/opt/datadog-agent bundle create /\S+/omnibus-git-cache-bundle --tags', + r'aws s3 cp (\S* )?/\S+/omnibus-git-cache-bundle s3://omnibus-cache/builds/\w+/slug', ], ) @@ -157,7 +157,7 @@ def test_cache_hit_with_corruption(self): # Fail to clone self.mock_ctx.set_result_for( 'run', - re.compile(r'git clone (\S* )?/tmp/omnibus-git-cache-bundle.*'), + re.compile(r'git clone (\S* )?/\S+/omnibus-git-cache-bundle.*'), Result('fatal: remote did not send all necessary objects', exited=1), ) self._set_up_default_command_mocks() From b2fc1237ee1e93e8a898d88516632f2c8ec41f92 Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Wed, 4 Dec 2024 10:12:52 +0100 Subject: [PATCH 233/439] [CWS] sync yaml usage to v3 in `pkg/security/secl` (#31718) --- pkg/security/secl/go.mod | 1 - pkg/security/secl/go.sum | 2 -- pkg/security/secl/rules/policy.go | 2 +- 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/pkg/security/secl/go.mod b/pkg/security/secl/go.mod index 240c0e4adc6a0..d7e796fca2924 100644 --- a/pkg/security/secl/go.mod +++ b/pkg/security/secl/go.mod @@ -21,7 +21,6 @@ require ( golang.org/x/sys v0.27.0 golang.org/x/text v0.20.0 golang.org/x/tools v0.27.0 - gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v3 v3.0.1 modernc.org/mathutil v1.6.0 sigs.k8s.io/yaml v1.4.0 diff --git a/pkg/security/secl/go.sum b/pkg/security/secl/go.sum index 11c7021651ae9..18391dc2e1b6e 100644 --- a/pkg/security/secl/go.sum +++ b/pkg/security/secl/go.sum @@ -105,8 +105,6 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4= diff --git a/pkg/security/secl/rules/policy.go b/pkg/security/secl/rules/policy.go index 6b8dea65a6c35..b6c59fcdb8068 100644 --- a/pkg/security/secl/rules/policy.go +++ b/pkg/security/secl/rules/policy.go @@ -12,7 +12,7 @@ import ( "slices" "github.com/hashicorp/go-multierror" - "gopkg.in/yaml.v2" + "gopkg.in/yaml.v3" "github.com/DataDog/datadog-agent/pkg/security/secl/validators" ) From 5393674e4f897ea646da7962549e99e38899d4d5 Mon Sep 17 00:00:00 2001 From: Vincent Boulineau <58430298+vboulineau@users.noreply.github.com> Date: Wed, 4 Dec 2024 04:29:22 -0500 Subject: [PATCH 234/439] Performance improvements of External Metrics controller and allow multiple workers (#31671) --- cmd/secrethelper/secret_helper.go | 4 +- cmd/secrethelper/secret_helper_test.go | 2 +- .../datadogmetric_controller.go | 96 +++++++++++-------- .../datadogmetric_controller_test.go | 2 +- .../externalmetrics/metrics_retriever.go | 4 +- .../externalmetrics/metrics_retriever_test.go | 9 +- .../model/datadogmetricinternal.go | 2 +- .../autoscaling/externalmetrics/provider.go | 5 +- .../autoscaling/externalmetrics/telemetry.go | 36 ++++--- pkg/config/setup/config.go | 6 +- pkg/util/kubernetes/apiserver/apiserver.go | 60 +++++++----- .../apiserver/apiserver_nocompile.go | 10 +- 12 files changed, 137 insertions(+), 99 deletions(-) diff --git a/cmd/secrethelper/secret_helper.go b/cmd/secrethelper/secret_helper.go index fa385bc3765c9..a56201009e2b3 100644 --- a/cmd/secrethelper/secret_helper.go +++ b/cmd/secrethelper/secret_helper.go @@ -52,7 +52,7 @@ const ( ) // NewKubeClient returns a new kubernetes.Interface -type NewKubeClient func(timeout time.Duration) (kubernetes.Interface, error) +type NewKubeClient func(timeout time.Duration, qps float32, burst int) (kubernetes.Interface, error) // cliParams are the command-line arguments for this subcommand type cliParams struct { @@ -175,7 +175,7 @@ func readSecretsUsingPrefixes(secretsList []string, rootPath string, newKubeClie case filePrefix: res[secretID] = providers.ReadSecretFile(id) case k8sSecretPrefix: - kubeClient, err := newKubeClientFunc(10 * time.Second) + kubeClient, err := newKubeClientFunc(10*time.Second, 0, 0) // Default QPS and burst to Kube client defaults using 0 if err != nil { res[secretID] = secrets.SecretVal{Value: "", ErrorMsg: err.Error()} } else { diff --git a/cmd/secrethelper/secret_helper_test.go b/cmd/secrethelper/secret_helper_test.go index c84cfb5abaa5f..3b76fa8d461cb 100644 --- a/cmd/secrethelper/secret_helper_test.go +++ b/cmd/secrethelper/secret_helper_test.go @@ -22,7 +22,7 @@ import ( ) func TestReadSecrets(t *testing.T) { - newKubeClientFunc := func(_ time.Duration) (kubernetes.Interface, error) { + newKubeClientFunc := func(_ time.Duration, _ float32, _ int) (kubernetes.Interface, error) { return fake.NewSimpleClientset(&v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "some_name", diff --git a/pkg/clusteragent/autoscaling/externalmetrics/datadogmetric_controller.go b/pkg/clusteragent/autoscaling/externalmetrics/datadogmetric_controller.go index ca456d366b6aa..439a20e178a37 100644 --- a/pkg/clusteragent/autoscaling/externalmetrics/datadogmetric_controller.go +++ b/pkg/clusteragent/autoscaling/externalmetrics/datadogmetric_controller.go @@ -13,6 +13,7 @@ import ( "time" "github.com/DataDog/datadog-agent/pkg/clusteragent/autoscaling/externalmetrics/model" + le "github.com/DataDog/datadog-agent/pkg/util/kubernetes/apiserver/leaderelection/metrics" "github.com/DataDog/datadog-agent/pkg/util/log" datadoghq "github.com/DataDog/datadog-operator/api/datadoghq/v1alpha1" @@ -20,7 +21,6 @@ import ( "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/dynamic" "k8s.io/client-go/dynamic/dynamicinformer" "k8s.io/client-go/tools/cache" @@ -33,6 +33,15 @@ const ( ddmControllerStoreID string = "ddmc" ) +type controllerOperation string + +const ( + createControllerOperation controllerOperation = "create" + updateControllerOperation controllerOperation = "update" + deleteControllerOperation controllerOperation = "delete" + noopControllerOperation controllerOperation = "none" +) + var ( gvrDDM = datadoghq.GroupVersion.WithResource("datadogmetrics") metaDDM = metav1.TypeMeta{ @@ -92,30 +101,37 @@ func NewDatadogMetricController(client dynamic.Interface, informer dynamicinform } // Run starts the controller to handle DatadogMetrics -func (c *DatadogMetricController) Run(ctx context.Context) { +func (c *DatadogMetricController) Run(ctx context.Context, numWorkers int) { if ctx == nil { log.Errorf("Cannot run with a nil context") return } c.context = ctx - defer c.workqueue.ShutDown() - log.Infof("Starting DatadogMetric Controller (waiting for cache sync)") if !cache.WaitForCacheSync(ctx.Done(), c.synced) { log.Errorf("Failed to wait for DatadogMetric caches to sync") return } - go wait.Until(c.worker, time.Second, ctx.Done()) + for i := 0; i < numWorkers; i++ { + go c.worker(i) + } log.Infof("Started DatadogMetric Controller (cache sync finished)") <-ctx.Done() log.Infof("Stopping DatadogMetric Controller") + if c.isLeader() { + c.workqueue.ShutDownWithDrain() + } else { + c.workqueue.ShutDown() + } + log.Infof("DatadogMetric Controller stopped") } -func (c *DatadogMetricController) worker() { - for c.process() { +func (c *DatadogMetricController) worker(workerID int) { + log.Debugf("Starting DatadogMetric worker: %d", workerID) + for c.process(workerID) { } } @@ -135,16 +151,25 @@ func (c *DatadogMetricController) enqueueID(id, sender string) { } } -func (c *DatadogMetricController) process() bool { +func (c *DatadogMetricController) process(workerID int) bool { key, shutdown := c.workqueue.Get() if shutdown { log.Infof("DatadogMetric Controller: Caught stop signal in workqueue") return false } + // We start the timer after waiting on the queue itself to have actual processing time. + startTime := time.Now() + operation := noopControllerOperation + var err error + + defer func() { + reconcileElapsed.Observe(time.Since(startTime).Seconds(), string(operation), inErrorLabelValue(err), le.JoinLeaderValue) + }() + defer c.workqueue.Done(key) - err := c.processDatadogMetric(key) + operation, err = c.processDatadogMetric(workerID, key) if err == nil { c.workqueue.Forget(key) } else { @@ -158,13 +183,13 @@ func (c *DatadogMetricController) process() bool { return true } -func (c *DatadogMetricController) processDatadogMetric(key interface{}) error { +func (c *DatadogMetricController) processDatadogMetric(workerID int, key interface{}) (controllerOperation, error) { datadogMetricKey := key.(string) - log.Debugf("Processing DatadogMetric: %s", datadogMetricKey) + log.Tracef("Processing DatadogMetric: %s - worker %d", datadogMetricKey, workerID) ns, name, err := cache.SplitMetaNamespaceKey(datadogMetricKey) if err != nil { - return fmt.Errorf("Could not split the key: %v", err) + return noopControllerOperation, fmt.Errorf("Could not split the key: %v", err) } datadogMetricCached := &datadoghq.DatadogMetric{} @@ -178,34 +203,30 @@ func (c *DatadogMetricController) processDatadogMetric(key interface{}) error { // We ignore not found here as we may need to create a DatadogMetric later datadogMetricCached = nil case err != nil: - return fmt.Errorf("Unable to retrieve DatadogMetric: %w", err) - case datadogMetricCached == nil: - return fmt.Errorf("Could not parse empty DatadogMetric from local cache") + return noopControllerOperation, fmt.Errorf("Unable to retrieve DatadogMetric: %w", err) } // No error path, check what to do with this event if c.isLeader() { - err = c.syncDatadogMetric(ns, name, datadogMetricKey, datadogMetricCached) - if err != nil { - return err - } + return c.syncDatadogMetric(ns, name, datadogMetricKey, datadogMetricCached) + } + + // Follower flow + if datadogMetricCached != nil { + // Feeding local cache with DatadogMetric information + c.store.Set(datadogMetricKey, model.NewDatadogMetricInternal(datadogMetricKey, *datadogMetricCached), ddmControllerStoreID) + setDatadogMetricTelemetry(datadogMetricCached) } else { - if datadogMetricCached != nil { - // Feeding local cache with DatadogMetric information - c.store.Set(datadogMetricKey, model.NewDatadogMetricInternal(datadogMetricKey, *datadogMetricCached), ddmControllerStoreID) - setDatadogMetricTelemetry(datadogMetricCached) - } else { - c.store.Delete(datadogMetricKey, ddmControllerStoreID) - unsetDatadogMetricTelemetry(ns, name) - } + c.store.Delete(datadogMetricKey, ddmControllerStoreID) + unsetDatadogMetricTelemetry(ns, name) } - return nil + return noopControllerOperation, nil } // Synchronize DatadogMetric state between internal store and Kubernetes objects // Make sure any `return` has the proper store Unlock -func (c *DatadogMetricController) syncDatadogMetric(ns, name, datadogMetricKey string, datadogMetric *datadoghq.DatadogMetric) error { +func (c *DatadogMetricController) syncDatadogMetric(ns, name, datadogMetricKey string, datadogMetric *datadoghq.DatadogMetric) (controllerOperation, error) { datadogMetricInternal := c.store.LockRead(datadogMetricKey, true) if datadogMetricInternal == nil { if datadogMetric != nil { @@ -216,7 +237,7 @@ func (c *DatadogMetricController) syncDatadogMetric(ns, name, datadogMetricKey s c.store.Unlock(datadogMetricKey) } - return nil + return noopControllerOperation, nil } // If DatadogMetric object is not present in Kubernetes, we need to clear our store (removed by user) or create it (autogen) @@ -224,12 +245,12 @@ func (c *DatadogMetricController) syncDatadogMetric(ns, name, datadogMetricKey s if datadogMetricInternal.Autogen && !datadogMetricInternal.Deleted { err := c.createDatadogMetric(ns, name, datadogMetricInternal) c.store.Unlock(datadogMetricKey) - return err + return createControllerOperation, err } // Already deleted in Kube, cleaning internal store c.store.UnlockDelete(datadogMetricKey, ddmControllerStoreID) - return nil + return noopControllerOperation, nil } // Objects exists in both places (local store and K8S), we need to sync them @@ -241,20 +262,19 @@ func (c *DatadogMetricController) syncDatadogMetric(ns, name, datadogMetricKey s c.store.Unlock(datadogMetricKey) // We add a requeue in case the deleted event is lost c.workqueue.AddAfter(datadogMetricKey, time.Duration(requeueDelaySeconds)*time.Second) - return c.deleteDatadogMetric(ns, name) + return deleteControllerOperation, c.deleteDatadogMetric(ns, name) } + // After this `Unlock`, datadogMetricInternal cannot be modified datadogMetricInternal.UpdateFrom(*datadogMetric) - defer c.store.UnlockSet(datadogMetricInternal.ID, *datadogMetricInternal, ddmControllerStoreID) + c.store.UnlockSet(datadogMetricKey, *datadogMetricInternal, ddmControllerStoreID) if datadogMetricInternal.IsNewerThan(datadogMetric.Status) { err := c.updateDatadogMetric(ns, name, datadogMetricInternal, datadogMetric) - if err != nil { - return err - } + return updateControllerOperation, err } - return nil + return noopControllerOperation, nil } func (c *DatadogMetricController) createDatadogMetric(ns, name string, datadogMetricInternal *model.DatadogMetricInternal) error { diff --git a/pkg/clusteragent/autoscaling/externalmetrics/datadogmetric_controller_test.go b/pkg/clusteragent/autoscaling/externalmetrics/datadogmetric_controller_test.go index d52e4936b1f7b..97f6e385bbb40 100644 --- a/pkg/clusteragent/autoscaling/externalmetrics/datadogmetric_controller_test.go +++ b/pkg/clusteragent/autoscaling/externalmetrics/datadogmetric_controller_test.go @@ -87,7 +87,7 @@ func (f *fixture) runControllerSync(leader bool, datadogMetricID string, expecte defer close(stopCh) informer.Start(stopCh) - err := controller.processDatadogMetric(datadogMetricID) + _, err := controller.processDatadogMetric(0, datadogMetricID) assert.Equal(f.t, expectedError, err) actions := autoscaling.FilterInformerActions(f.client.Actions(), "datadogmetrics") diff --git a/pkg/clusteragent/autoscaling/externalmetrics/metrics_retriever.go b/pkg/clusteragent/autoscaling/externalmetrics/metrics_retriever.go index eee1fc9d0ddd9..0d63018d06326 100644 --- a/pkg/clusteragent/autoscaling/externalmetrics/metrics_retriever.go +++ b/pkg/clusteragent/autoscaling/externalmetrics/metrics_retriever.go @@ -13,6 +13,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/clusteragent/autoscaling/externalmetrics/model" "github.com/DataDog/datadog-agent/pkg/util/backoff" + le "github.com/DataDog/datadog-agent/pkg/util/kubernetes/apiserver/leaderelection/metrics" "github.com/DataDog/datadog-agent/pkg/util/kubernetes/autoscalers" "github.com/DataDog/datadog-agent/pkg/util/log" ) @@ -59,7 +60,7 @@ func (mr *MetricsRetriever) Run(stopCh <-chan struct{}) { if mr.isLeader() { startTime := time.Now() mr.retrieveMetricsValues() - retrieverElapsed.Observe(time.Since(startTime).Seconds()) + retrieverElapsed.Observe(time.Since(startTime).Seconds(), le.JoinLeaderValue) } case <-stopCh: log.Infof("Stopping MetricsRetriever") @@ -196,7 +197,6 @@ func (mr *MetricsRetriever) retrieveMetricsValuesSlice(datadogMetrics []model.Da } datadogMetricFromStore.UpdateTime = currentTime - mr.store.UnlockSet(datadogMetric.ID, *datadogMetricFromStore, metricRetrieverStoreID) } } diff --git a/pkg/clusteragent/autoscaling/externalmetrics/metrics_retriever_test.go b/pkg/clusteragent/autoscaling/externalmetrics/metrics_retriever_test.go index 29b422e93eeec..47c8ad6175d62 100644 --- a/pkg/clusteragent/autoscaling/externalmetrics/metrics_retriever_test.go +++ b/pkg/clusteragent/autoscaling/externalmetrics/metrics_retriever_test.go @@ -62,8 +62,7 @@ type metricsFixture struct { expected []ddmWithQuery } -//nolint:revive // TODO(CINT) Fix revive linter -func (f *metricsFixture) run(t *testing.T, testTime time.Time) { +func (f *metricsFixture) run(t *testing.T) { t.Helper() // Create and fill store @@ -174,7 +173,7 @@ func TestRetrieveMetricsBasic(t *testing.T) { for i, fixture := range fixtures { t.Run(fmt.Sprintf("#%d %s", i, fixture.desc), func(t *testing.T) { - fixture.run(t, defaultTestTime) + fixture.run(t) }) } } @@ -500,7 +499,7 @@ func TestRetrieveMetricsErrorCases(t *testing.T) { for i, fixture := range fixtures { t.Run(fmt.Sprintf("#%d %s", i, fixture.desc), func(t *testing.T) { - fixture.run(t, defaultTestTime) + fixture.run(t) }) } } @@ -639,7 +638,7 @@ func TestRetrieveMetricsNotActive(t *testing.T) { for i, fixture := range fixtures { t.Run(fmt.Sprintf("#%d %s", i, fixture.desc), func(t *testing.T) { - fixture.run(t, defaultTestTime) + fixture.run(t) }) } } diff --git a/pkg/clusteragent/autoscaling/externalmetrics/model/datadogmetricinternal.go b/pkg/clusteragent/autoscaling/externalmetrics/model/datadogmetricinternal.go index 0b0bd1144c87f..ad7efdb847bf9 100644 --- a/pkg/clusteragent/autoscaling/externalmetrics/model/datadogmetricinternal.go +++ b/pkg/clusteragent/autoscaling/externalmetrics/model/datadogmetricinternal.go @@ -317,7 +317,7 @@ func (d *DatadogMetricInternal) resolveQuery(query string) { return } if resolvedQuery != "" { - log.Infof("DatadogMetric query %q was resolved successfully, new query: %q", query, resolvedQuery) + log.Debugf("DatadogMetric query %q was resolved successfully, new query: %q", query, resolvedQuery) d.resolvedQuery = &resolvedQuery return } diff --git a/pkg/clusteragent/autoscaling/externalmetrics/provider.go b/pkg/clusteragent/autoscaling/externalmetrics/provider.go index bf07e1251413e..cb00178fe36d3 100644 --- a/pkg/clusteragent/autoscaling/externalmetrics/provider.go +++ b/pkg/clusteragent/autoscaling/externalmetrics/provider.go @@ -70,6 +70,7 @@ func NewDatadogMetricProvider(ctx context.Context, apiCl *apiserver.APIClient, d autogenNamespace := common.GetResourcesNamespace() autogenEnabled := pkgconfigsetup.Datadog().GetBool("external_metrics_provider.enable_datadogmetric_autogen") wpaEnabled := pkgconfigsetup.Datadog().GetBool("external_metrics_provider.wpa_controller") + numWorkers := pkgconfigsetup.Datadog().GetInt("external_metrics_provider.num_workers") provider := &datadogMetricProvider{ apiCl: apiCl, @@ -117,7 +118,7 @@ func NewDatadogMetricProvider(ctx context.Context, apiCl *apiserver.APIClient, d apiCl.InformerFactory.Start(ctx.Done()) go autoscalerWatcher.Run(ctx.Done()) - go controller.Run(ctx) + go controller.Run(ctx, numWorkers) return provider, nil } @@ -133,7 +134,7 @@ func (p *datadogMetricProvider) GetExternalMetric(_ context.Context, namespace s } } - setQueryTelemtry("get", namespace, startTime, err) + setQueryTelemtry("get", startTime, err) return res, err } diff --git a/pkg/clusteragent/autoscaling/externalmetrics/telemetry.go b/pkg/clusteragent/autoscaling/externalmetrics/telemetry.go index 2b5c82d7c17c6..b5547cab2a01b 100644 --- a/pkg/clusteragent/autoscaling/externalmetrics/telemetry.go +++ b/pkg/clusteragent/autoscaling/externalmetrics/telemetry.go @@ -27,23 +27,30 @@ const ( var ( ddmTelemetryValues = []string{ddmTelemetryValid, ddmTelemetryInvalid} + // Leader metrics ddmTelemetry = telemetry.NewGaugeWithOpts("external_metrics", "datadog_metrics", []string{"namespace", "name", "valid", "active", le.JoinLeaderLabel}, "The label valid is true if the DatadogMetric CR is valid, false otherwise. The label active is true if DatadogMetrics CR is used, false otherwise.", telemetry.Options{NoDoubleUnderscoreSep: true}) + retrieverElapsed = telemetry.NewHistogramWithOpts("external_metrics", "retriever_elapsed", + []string{le.JoinLeaderLabel}, "Wall time spent to retrieve metrics (seconds)", + []float64{0.5, 1, 5, 10, 20, 30, 60, 120, 300}, + telemetry.Options{NoDoubleUnderscoreSep: true}) + + // All instances metrics + reconcileElapsed = telemetry.NewHistogramWithOpts("external_metrics", "reconcile_elapsed", + []string{"operation", "in_error", le.JoinLeaderLabel}, "Wall time spent to reconcile a datadogmetric object (seconds)", + []float64{0.001, 0.01, 0.05, 0.1, 0.2, 0.4, 0.8, 1}, + telemetry.Options{NoDoubleUnderscoreSep: true}) + requestsTelemetry = telemetry.NewGaugeWithOpts("external_metrics", "api_requests", - []string{"namespace", "handler", "in_error"}, "Count of API Requests received", + []string{"handler", "in_error"}, "Count of API Requests received", telemetry.Options{NoDoubleUnderscoreSep: true}) elapsedTelemetry = telemetry.NewHistogramWithOpts("external_metrics", "api_elapsed", - []string{"namespace", "handler", "in_error"}, "Wall time spent on API request (seconds)", + []string{"handler", "in_error"}, "Wall time spent on API request (seconds)", prometheus.DefBuckets, telemetry.Options{NoDoubleUnderscoreSep: true}) - - retrieverElapsed = telemetry.NewHistogramWithOpts("external_metrics", "retriever_elapsed", - []string{}, "Wall time spent to retrieve metrics (seconds)", - []float64{0.5, 1, 5, 10, 20, 30, 60, 120, 300}, - telemetry.Options{NoDoubleUnderscoreSep: true}) ) func setDatadogMetricTelemetry(ddm *datadoghq.DatadogMetric) { @@ -84,13 +91,16 @@ func isDatadogMetricConditionTrue(ddm *datadoghq.DatadogMetric, conditionType da return false } -func setQueryTelemtry(handler, namespace string, startTime time.Time, err error) { - // Handle telemtry - inErrror := "false" +func inErrorLabelValue(err error) string { if err != nil { - inErrror = "true" + return "true" } + return "false" +} + +func setQueryTelemtry(handler string, startTime time.Time, err error) { + inError := inErrorLabelValue(err) - requestsTelemetry.Inc(namespace, handler, inErrror) - elapsedTelemetry.Observe(time.Since(startTime).Seconds(), namespace, handler, inErrror) + requestsTelemetry.Inc(handler, inError) + elapsedTelemetry.Observe(time.Since(startTime).Seconds(), handler, inError) } diff --git a/pkg/config/setup/config.go b/pkg/config/setup/config.go index 3544b3753e331..e54aba5d6684e 100644 --- a/pkg/config/setup/config.go +++ b/pkg/config/setup/config.go @@ -257,8 +257,8 @@ func init() { if envvar == "enable" { datadog = nodetreemodel.NewConfig("datadog", "DD", strings.NewReplacer(".", "_")) // nolint: forbidigo // legit use case } else if envvar == "tee" { - var viperConfig = pkgconfigmodel.NewConfig("datadog", "DD", strings.NewReplacer(".", "_")) // nolint: forbidigo // legit use case - var nodetreeConfig = nodetreemodel.NewConfig("datadog", "DD", strings.NewReplacer(".", "_")) // nolint: forbidigo // legit use case + viperConfig := pkgconfigmodel.NewConfig("datadog", "DD", strings.NewReplacer(".", "_")) // nolint: forbidigo // legit use case + nodetreeConfig := nodetreemodel.NewConfig("datadog", "DD", strings.NewReplacer(".", "_")) // nolint: forbidigo // legit use case datadog = teeconfig.NewTeeConfig(viperConfig, nodetreeConfig) } else { datadog = pkgconfigmodel.NewConfig("datadog", "DD", strings.NewReplacer(".", "_")) // nolint: forbidigo // legit use case @@ -703,6 +703,7 @@ func InitConfig(config pkgconfigmodel.Setup) { config.BindEnvAndSetDefault("external_metrics_provider.local_copy_refresh_rate", 30) // value in seconds config.BindEnvAndSetDefault("external_metrics_provider.chunk_size", 35) // Maximum number of queries to batch when querying Datadog. config.BindEnvAndSetDefault("external_metrics_provider.split_batches_with_backoff", false) // Splits batches and runs queries with errors individually with an exponential backoff + config.BindEnvAndSetDefault("external_metrics_provider.num_workers", 2) // Number of workers spawned by controller (only when CRD is used) pkgconfigmodel.AddOverrideFunc(sanitizeExternalMetricsProviderChunkSize) // Cluster check Autodiscovery config.BindEnvAndSetDefault("cluster_checks.support_hybrid_ignore_ad_tags", false) // TODO(CINT)(Agent 7.53+) Remove this flag when hybrid ignore_ad_tags is fully deprecated @@ -1284,7 +1285,6 @@ func telemetry(config pkgconfigmodel.Setup) { config.BindEnvAndSetDefault("agent_telemetry.enabled", true) config.SetKnown("agent_telemetry.additional_endpoints.*") bindEnvAndSetLogsConfigKeys(config, "agent_telemetry.") - } func serializer(config pkgconfigmodel.Setup) { diff --git a/pkg/util/kubernetes/apiserver/apiserver.go b/pkg/util/kubernetes/apiserver/apiserver.go index de06f74f1d2eb..d96a07666fbff 100644 --- a/pkg/util/kubernetes/apiserver/apiserver.go +++ b/pkg/util/kubernetes/apiserver/apiserver.go @@ -64,6 +64,15 @@ const ( tokenTime = "tokenTimestamp" tokenKey = "tokenKey" metadataMapExpire = 2 * time.Minute + + // Default QPS and Burst values for the clients + informerClientQPSLimit = 5 + informerClientQPSBurst = 10 + standardClientQPSLimit = 10 + standardClientQPSBurst = 20 + // This is mostly required for built-in controllers in Cluster Agent (ExternalMetrics, Autoscaling that can generate a high nunber of `Update` requests) + controllerClientQPSLimit = 150 + controllerClientQPSBurst = 300 ) // APIClient provides authenticated access to the @@ -197,8 +206,7 @@ func WaitForAPIClient(ctx context.Context) (*APIClient, error) { } } -// GetClientConfig returns a REST client configuration -func GetClientConfig(timeout time.Duration) (*rest.Config, error) { +func getClientConfig(timeout time.Duration, qps float32, burst int) (*rest.Config, error) { var clientConfig *rest.Config var err error cfgPath := pkgconfigsetup.Datadog().GetString("kubernetes_kubeconfig_path") @@ -231,6 +239,8 @@ func GetClientConfig(timeout time.Duration) (*rest.Config, error) { } clientConfig.Timeout = timeout + clientConfig.QPS = qps + clientConfig.Burst = burst clientConfig.Wrap(func(rt http.RoundTripper) http.RoundTripper { return NewCustomRoundTripper(rt, timeout) }) @@ -240,10 +250,10 @@ func GetClientConfig(timeout time.Duration) (*rest.Config, error) { // GetKubeClient returns a kubernetes API server client // You should not use this function except if you need to create a *NEW* Client. -func GetKubeClient(timeout time.Duration) (kubernetes.Interface, error) { +func GetKubeClient(timeout time.Duration, qps float32, burst int) (kubernetes.Interface, error) { // TODO: Remove custom warning logger when we remove usage of ComponentStatus rest.SetDefaultWarningHandler(CustomWarningLogger{}) - clientConfig, err := GetClientConfig(timeout) + clientConfig, err := getClientConfig(timeout, qps, burst) if err != nil { return nil, err } @@ -251,8 +261,8 @@ func GetKubeClient(timeout time.Duration) (kubernetes.Interface, error) { return kubernetes.NewForConfig(clientConfig) } -func getKubeDynamicClient(timeout time.Duration) (dynamic.Interface, error) { - clientConfig, err := GetClientConfig(timeout) +func getKubeDynamicClient(timeout time.Duration, qps float32, burst int) (dynamic.Interface, error) { + clientConfig, err := getClientConfig(timeout, qps, burst) if err != nil { return nil, err } @@ -260,8 +270,8 @@ func getKubeDynamicClient(timeout time.Duration) (dynamic.Interface, error) { return dynamic.NewForConfig(clientConfig) } -func getCRDClient(timeout time.Duration) (*clientset.Clientset, error) { - clientConfig, err := GetClientConfig(timeout) +func getCRDClient(timeout time.Duration, qps float32, burst int) (*clientset.Clientset, error) { + clientConfig, err := getClientConfig(timeout, qps, burst) if err != nil { return nil, err } @@ -269,16 +279,16 @@ func getCRDClient(timeout time.Duration) (*clientset.Clientset, error) { return clientset.NewForConfig(clientConfig) } -func getAPISClient(timeout time.Duration) (*apiregistrationclient.ApiregistrationV1Client, error) { - clientConfig, err := GetClientConfig(timeout) +func getAPISClient(timeout time.Duration, qps float32, burst int) (*apiregistrationclient.ApiregistrationV1Client, error) { + clientConfig, err := getClientConfig(timeout, qps, burst) if err != nil { return nil, err } return apiregistrationclient.NewForConfig(clientConfig) } -func getKubeVPAClient(timeout time.Duration) (vpa.Interface, error) { - clientConfig, err := GetClientConfig(timeout) +func getKubeVPAClient(timeout time.Duration, qps float32, burst int) (vpa.Interface, error) { + clientConfig, err := getClientConfig(timeout, qps, burst) if err != nil { return nil, err } @@ -286,8 +296,8 @@ func getKubeVPAClient(timeout time.Duration) (vpa.Interface, error) { return vpa.NewForConfig(clientConfig) } -func getScaleClient(discoveryCl discovery.ServerResourcesInterface, restMapper meta.RESTMapper, timeout time.Duration) (scale.ScalesGetter, error) { - clientConfig, err := GetClientConfig(timeout) +func getScaleClient(discoveryCl discovery.ServerResourcesInterface, restMapper meta.RESTMapper, timeout time.Duration, qps float32, burst int) (scale.ScalesGetter, error) { + clientConfig, err := getClientConfig(timeout, qps, burst) if err != nil { return nil, err } @@ -311,13 +321,13 @@ func (c *APIClient) GetInformerWithOptions(resyncPeriod *time.Duration, options func (c *APIClient) connect() error { var err error // Clients - c.Cl, err = GetKubeClient(c.defaultClientTimeout) + c.Cl, err = GetKubeClient(c.defaultClientTimeout, standardClientQPSLimit, standardClientQPSBurst) if err != nil { log.Infof("Could not get apiserver client: %v", err) return err } - c.DynamicCl, err = getKubeDynamicClient(c.defaultClientTimeout) + c.DynamicCl, err = getKubeDynamicClient(c.defaultClientTimeout, controllerClientQPSLimit, controllerClientQPSBurst) if err != nil { log.Infof("Could not get apiserver dynamic client: %v", err) return err @@ -328,38 +338,38 @@ func (c *APIClient) connect() error { c.RESTMapper = restmapper.NewDeferredDiscoveryRESTMapper(cachedClient) // Scale client has specific init and dependencies - c.ScaleCl, err = getScaleClient(c.Cl.Discovery(), c.RESTMapper, c.defaultClientTimeout) + c.ScaleCl, err = getScaleClient(c.Cl.Discovery(), c.RESTMapper, c.defaultClientTimeout, controllerClientQPSLimit, controllerClientQPSBurst) if err != nil { log.Infof("Could not get scale client: %v", err) return err } // Informer clients - c.InformerCl, err = GetKubeClient(c.defaultInformerTimeout) + c.InformerCl, err = GetKubeClient(c.defaultInformerTimeout, informerClientQPSLimit, informerClientQPSBurst) if err != nil { log.Infof("Could not get apiserver client: %v", err) return err } - c.DynamicInformerCl, err = getKubeDynamicClient(c.defaultInformerTimeout) + c.DynamicInformerCl, err = getKubeDynamicClient(c.defaultInformerTimeout, informerClientQPSLimit, informerClientQPSBurst) if err != nil { log.Infof("Could not get apiserver dynamic client: %v", err) return err } - c.VPAInformerClient, err = getKubeVPAClient(c.defaultInformerTimeout) + c.VPAInformerClient, err = getKubeVPAClient(c.defaultInformerTimeout, informerClientQPSLimit, informerClientQPSBurst) if err != nil { log.Infof("Could not get apiserver vpa client: %v", err) return err } - c.CRDInformerClient, err = getCRDClient(c.defaultInformerTimeout) + c.CRDInformerClient, err = getCRDClient(c.defaultInformerTimeout, informerClientQPSLimit, informerClientQPSBurst) if err != nil { log.Infof("Could not get apiserver CRDClient client: %v", err) return err } - c.APISInformerClient, err = getAPISClient(c.defaultInformerTimeout) + c.APISInformerClient, err = getAPISClient(c.defaultInformerTimeout, informerClientQPSLimit, informerClientQPSBurst) if err != nil { log.Infof("Could not get apiserver APISClient client: %v", err) return err @@ -651,7 +661,7 @@ func (c *APIClient) GetARandomNodeName(ctx context.Context) (string, error) { // RESTClient returns a new REST client func (c *APIClient) RESTClient(apiPath string, groupVersion *schema.GroupVersion, negotiatedSerializer runtime.NegotiatedSerializer) (*rest.RESTClient, error) { - clientConfig, err := GetClientConfig(c.defaultClientTimeout) + clientConfig, err := getClientConfig(c.defaultClientTimeout, standardClientQPSLimit, standardClientQPSBurst) if err != nil { return nil, err } @@ -665,7 +675,7 @@ func (c *APIClient) RESTClient(apiPath string, groupVersion *schema.GroupVersion // MetadataClient returns a new kubernetes metadata client func (c *APIClient) MetadataClient() (metadata.Interface, error) { - clientConfig, err := GetClientConfig(c.defaultInformerTimeout) + clientConfig, err := getClientConfig(c.defaultInformerTimeout, standardClientQPSLimit, standardClientQPSBurst) if err != nil { return nil, err } @@ -676,7 +686,7 @@ func (c *APIClient) MetadataClient() (metadata.Interface, error) { // NewSPDYExecutor returns a new SPDY executor for the provided method and URL func (c *APIClient) NewSPDYExecutor(apiPath string, groupVersion *schema.GroupVersion, negotiatedSerializer runtime.NegotiatedSerializer, method string, url *url.URL) (remotecommand.Executor, error) { - clientConfig, err := GetClientConfig(c.defaultClientTimeout) + clientConfig, err := getClientConfig(c.defaultClientTimeout, standardClientQPSLimit, standardClientQPSBurst) if err != nil { return nil, err } diff --git a/pkg/util/kubernetes/apiserver/apiserver_nocompile.go b/pkg/util/kubernetes/apiserver/apiserver_nocompile.go index 7a246dbee1b46..5c34f2e7105e0 100644 --- a/pkg/util/kubernetes/apiserver/apiserver_nocompile.go +++ b/pkg/util/kubernetes/apiserver/apiserver_nocompile.go @@ -19,11 +19,9 @@ import ( "github.com/DataDog/datadog-agent/pkg/util/log" ) -var ( - // ErrNotCompiled is returned if kubernetes apiserver support is not compiled in. - // User classes should handle that case as gracefully as possible. - ErrNotCompiled = errors.New("kubernetes apiserver support not compiled in") -) +// ErrNotCompiled is returned if kubernetes apiserver support is not compiled in. +// User classes should handle that case as gracefully as possible. +var ErrNotCompiled = errors.New("kubernetes apiserver support not compiled in") // APIClient provides authenticated access to the type APIClient struct { @@ -69,6 +67,6 @@ func GetNodeLabels(_ *APIClient, _ string) (map[string]string, error) { // GetKubeClient returns a Kubernetes client. // //nolint:revive // TODO(CINT) Fix revive linter -func GetKubeClient(_ time.Duration) (kubernetes.Interface, error) { +func GetKubeClient(_ time.Duration, _ float32, _ int) (kubernetes.Interface, error) { return nil, ErrNotCompiled } From 072227eed6b222029c2e3c10a6e0395c70168a17 Mon Sep 17 00:00:00 2001 From: Alexandre Yang Date: Wed, 4 Dec 2024 11:02:50 +0100 Subject: [PATCH 235/439] [HA Agent] Improve HA Agent RCListener log (#31686) --- comp/haagent/impl/haagent_comp.go | 2 +- test/new-e2e/tests/ha-agent/haagent_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/comp/haagent/impl/haagent_comp.go b/comp/haagent/impl/haagent_comp.go index 19697bba7d464..ac5e0b992ef53 100644 --- a/comp/haagent/impl/haagent_comp.go +++ b/comp/haagent/impl/haagent_comp.go @@ -32,7 +32,7 @@ func NewComponent(reqs Requires) (Provides, error) { haAgent := newHaAgentImpl(reqs.Logger, haAgentConf) var rcListener rctypes.ListenerProvider if haAgent.Enabled() { - reqs.Logger.Debug("Add onHaAgentUpdate RCListener") + reqs.Logger.Debug("Add HA Agent RCListener") rcListener.ListenerProvider = rctypes.RCListener{ state.ProductHaAgent: haAgent.onHaAgentUpdate, } diff --git a/test/new-e2e/tests/ha-agent/haagent_test.go b/test/new-e2e/tests/ha-agent/haagent_test.go index ade4af9538faa..bdf4e33790007 100644 --- a/test/new-e2e/tests/ha-agent/haagent_test.go +++ b/test/new-e2e/tests/ha-agent/haagent_test.go @@ -65,7 +65,7 @@ func (s *haAgentTestSuite) TestHaAgentAddedToRCListeners() { output, err := s.Env().RemoteHost.Execute("cat /var/log/datadog/agent.log") require.NoError(c, err) - assert.Contains(c, output, "Add onHaAgentUpdate RCListener") + assert.Contains(c, output, "Add HA Agent RCListener") }, 5*time.Minute, 3*time.Second) } From 5973bf5cb0f85daa5466d85b754481c2470fda18 Mon Sep 17 00:00:00 2001 From: Alexandre Yang Date: Wed, 4 Dec 2024 11:16:36 +0100 Subject: [PATCH 236/439] [HA Agent] Log leader state change (#31734) --- comp/haagent/impl/haagent.go | 11 +++++++++-- comp/haagent/impl/utils.go | 13 +++++++++++++ comp/haagent/impl/utils_test.go | 17 +++++++++++++++++ 3 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 comp/haagent/impl/utils.go create mode 100644 comp/haagent/impl/utils_test.go diff --git a/comp/haagent/impl/haagent.go b/comp/haagent/impl/haagent.go index 050596256e16a..f670a0103dbb3 100644 --- a/comp/haagent/impl/haagent.go +++ b/comp/haagent/impl/haagent.go @@ -44,10 +44,17 @@ func (h *haAgentImpl) IsLeader() bool { func (h *haAgentImpl) SetLeader(leaderAgentHostname string) { agentHostname, err := hostname.Get(context.TODO()) if err != nil { - h.log.Warnf("Error getting the hostname: %v", err) + h.log.Warnf("error getting the hostname: %v", err) return } - h.isLeader.Store(agentHostname == leaderAgentHostname) + newIsLeader := agentHostname == leaderAgentHostname + prevIsLeader := h.isLeader.Load() + if newIsLeader != prevIsLeader { + h.log.Infof("agent role switched from %s to %s", leaderStateToRole(prevIsLeader), leaderStateToRole(newIsLeader)) + h.isLeader.Store(newIsLeader) + } else { + h.log.Debugf("agent role not changed (current role: %s)", leaderStateToRole(prevIsLeader)) + } } // ShouldRunIntegration return true if the agent integrations should to run. diff --git a/comp/haagent/impl/utils.go b/comp/haagent/impl/utils.go new file mode 100644 index 0000000000000..2ce6dee05203b --- /dev/null +++ b/comp/haagent/impl/utils.go @@ -0,0 +1,13 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2024-present Datadog, Inc. + +package haagentimpl + +func leaderStateToRole(isLeader bool) string { + if isLeader { + return "leader" + } + return "follower" +} diff --git a/comp/haagent/impl/utils_test.go b/comp/haagent/impl/utils_test.go new file mode 100644 index 0000000000000..2e9f324c30890 --- /dev/null +++ b/comp/haagent/impl/utils_test.go @@ -0,0 +1,17 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2024-present Datadog, Inc. + +package haagentimpl + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func Test_leaderStatusToRole(t *testing.T) { + assert.Equal(t, "leader", leaderStateToRole(true)) + assert.Equal(t, "follower", leaderStateToRole(false)) +} From 6570b547e3ee0dbf5d90b5dfa94499b796b8f6ff Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Wed, 4 Dec 2024 11:20:56 +0100 Subject: [PATCH 237/439] [CWS] fix cws-instrumentation pipe to stderr instead of stdout (#31736) --- cmd/cws-instrumentation/subcommands/tracecmd/trace.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/cws-instrumentation/subcommands/tracecmd/trace.go b/cmd/cws-instrumentation/subcommands/tracecmd/trace.go index a8ad4238b2483..2a2bc9cc5f578 100644 --- a/cmd/cws-instrumentation/subcommands/tracecmd/trace.go +++ b/cmd/cws-instrumentation/subcommands/tracecmd/trace.go @@ -201,7 +201,7 @@ func Command() []*cobra.Command { scanner := bufio.NewScanner(stderr) scanner.Split(bufio.ScanLines) for scanner.Scan() { - fmt.Println(scanner.Text()) + _, _ = os.Stderr.Write(scanner.Bytes()) } if err = cmd.Wait(); err != nil { From c1c3f116b5bc93e7528bc7571e8f042cdbd533fc Mon Sep 17 00:00:00 2001 From: Nicolas Schweitzer Date: Wed, 4 Dec 2024 11:37:45 +0100 Subject: [PATCH 238/439] fix(notify): Change the message to fit the new task name (#31667) --- .gitlab/notify/notify.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab/notify/notify.yml b/.gitlab/notify/notify.yml index ecab443864b73..f40187465a50f 100644 --- a/.gitlab/notify/notify.yml +++ b/.gitlab/notify/notify.yml @@ -86,7 +86,7 @@ notify_github: - messagefile="$(mktemp)" - echo "Use this command from [test-infra-definitions](https://github.com/DataDog/test-infra-definitions) to manually test this PR changes on a VM:" >> "$messagefile" - echo '```sh' >> "$messagefile" - - echo "inv create-vm --pipeline-id=$CI_PIPELINE_ID --os-family=ubuntu" >> "$messagefile" + - echo "inv aws.create-vm --pipeline-id=$CI_PIPELINE_ID --os-family=ubuntu" >> "$messagefile" - echo '```' >> "$messagefile" - 'echo "Note: This applies to commit **$CI_COMMIT_SHORT_SHA**" >> "$messagefile"' - inv -e github.pr-commenter --title "Test changes on VM" --body "$(cat "$messagefile")" --echo From b7eefbcbe4fd1c9d2dc99c1bc820480a7acc9e0e Mon Sep 17 00:00:00 2001 From: Gustavo Caso Date: Wed, 4 Dec 2024 13:02:11 +0100 Subject: [PATCH 239/439] [ASCII-2568] Remove Meter function from telemetry component (#31596) --- comp/api/authtoken/go.sum | 16 -------- comp/core/config/go.mod | 8 ---- comp/core/config/go.sum | 19 --------- comp/core/log/impl-trace/go.sum | 16 -------- comp/core/log/impl/go.sum | 16 -------- comp/core/secrets/go.mod | 9 ---- comp/core/secrets/go.sum | 19 --------- comp/core/status/statusimpl/go.sum | 16 -------- comp/core/telemetry/component.go | 2 - comp/core/telemetry/component_mock.go | 2 - comp/core/telemetry/go.mod | 9 ---- comp/core/telemetry/go.sum | 19 --------- comp/core/telemetry/metric.go | 7 ---- comp/core/telemetry/metric_noop.go | 6 --- comp/core/telemetry/noopsimpl/telemetry.go | 4 -- .../core/telemetry/telemetryimpl/telemetry.go | 28 ++----------- .../telemetry/telemetryimpl/telemetry_mock.go | 9 ---- .../telemetry/telemetryimpl/telemetry_test.go | 41 +------------------ comp/forwarder/defaultforwarder/go.mod | 9 ---- comp/forwarder/defaultforwarder/go.sum | 19 --------- .../orchestrator/orchestratorinterface/go.mod | 9 ---- .../orchestrator/orchestratorinterface/go.sum | 19 --------- comp/logs/agent/config/go.sum | 16 -------- comp/otelcol/converter/impl/go.sum | 16 -------- comp/otelcol/logsagentpipeline/go.mod | 9 ---- comp/otelcol/logsagentpipeline/go.sum | 19 --------- .../logsagentpipelineimpl/go.mod | 9 ---- .../logsagentpipelineimpl/go.sum | 19 --------- .../exporter/datadogexporter/go.mod | 1 - .../exporter/datadogexporter/go.sum | 2 - .../exporter/serializerexporter/go.mod | 1 - .../exporter/serializerexporter/go.sum | 2 - comp/otelcol/otlp/testutil/go.sum | 16 -------- comp/serializer/compression/go.sum | 16 -------- pkg/api/go.sum | 16 -------- pkg/config/mock/go.sum | 16 -------- pkg/config/remote/go.sum | 14 ------- pkg/config/setup/go.mod | 8 ---- pkg/config/setup/go.sum | 19 --------- pkg/config/utils/go.sum | 16 -------- pkg/logs/auditor/go.sum | 16 -------- pkg/logs/client/go.mod | 9 ---- pkg/logs/client/go.sum | 19 --------- pkg/logs/diagnostic/go.sum | 16 -------- pkg/logs/message/go.sum | 16 -------- pkg/logs/metrics/go.mod | 9 ---- pkg/logs/metrics/go.sum | 19 --------- pkg/logs/pipeline/go.mod | 9 ---- pkg/logs/pipeline/go.sum | 19 --------- pkg/logs/processor/go.mod | 9 ---- pkg/logs/processor/go.sum | 19 --------- pkg/logs/sds/go.mod | 9 ---- pkg/logs/sds/go.sum | 19 --------- pkg/logs/sender/go.mod | 9 ---- pkg/logs/sender/go.sum | 19 --------- pkg/logs/sources/go.sum | 16 -------- pkg/logs/util/testutils/go.sum | 16 -------- pkg/metrics/go.mod | 9 ---- pkg/metrics/go.sum | 19 --------- pkg/process/util/api/go.mod | 9 ---- pkg/process/util/api/go.sum | 19 --------- pkg/serializer/go.mod | 9 ---- pkg/serializer/go.sum | 19 --------- pkg/telemetry/go.mod | 9 ---- pkg/telemetry/go.sum | 19 --------- pkg/util/flavor/go.sum | 16 -------- pkg/util/grpc/go.sum | 16 -------- pkg/util/http/go.sum | 16 -------- pkg/util/log/setup/go.sum | 16 -------- test/otel/go.mod | 2 - test/otel/go.sum | 2 - 71 files changed, 6 insertions(+), 939 deletions(-) diff --git a/comp/api/authtoken/go.sum b/comp/api/authtoken/go.sum index 2ad0ffbf9169a..324945ccfacf2 100644 --- a/comp/api/authtoken/go.sum +++ b/comp/api/authtoken/go.sum @@ -51,10 +51,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -79,8 +75,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -224,16 +218,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/comp/core/config/go.mod b/comp/core/config/go.mod index a0064a7017610..2973aa62895a7 100644 --- a/comp/core/config/go.mod +++ b/comp/core/config/go.mod @@ -71,10 +71,7 @@ require ( github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect - github.com/go-logr/logr v1.4.2 // indirect - github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.3.0 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect @@ -101,11 +98,6 @@ require ( github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/metric v1.32.0 // indirect - go.opentelemetry.io/otel/sdk v1.32.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect - go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect diff --git a/comp/core/config/go.sum b/comp/core/config/go.sum index b64f4d01dfdc2..f3d0810fd9fec 100644 --- a/comp/core/config/go.sum +++ b/comp/core/config/go.sum @@ -52,11 +52,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -81,8 +76,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -228,18 +221,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/comp/core/log/impl-trace/go.sum b/comp/core/log/impl-trace/go.sum index 2ad0ffbf9169a..324945ccfacf2 100644 --- a/comp/core/log/impl-trace/go.sum +++ b/comp/core/log/impl-trace/go.sum @@ -51,10 +51,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -79,8 +75,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -224,16 +218,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/comp/core/log/impl/go.sum b/comp/core/log/impl/go.sum index 2ad0ffbf9169a..324945ccfacf2 100644 --- a/comp/core/log/impl/go.sum +++ b/comp/core/log/impl/go.sum @@ -51,10 +51,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -79,8 +75,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -224,16 +218,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/comp/core/secrets/go.mod b/comp/core/secrets/go.mod index a9aed4be4329c..c5ef5998edc5d 100644 --- a/comp/core/secrets/go.mod +++ b/comp/core/secrets/go.mod @@ -40,9 +40,6 @@ require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/go-logr/logr v1.4.2 // indirect - github.com/go-logr/stdr v1.2.2 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/klauspost/compress v1.17.11 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect @@ -53,12 +50,6 @@ require ( github.com/prometheus/procfs v0.15.1 // indirect github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/pflag v1.0.5 // indirect - go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect - go.opentelemetry.io/otel/metric v1.32.0 // indirect - go.opentelemetry.io/otel/sdk v1.32.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect - go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect diff --git a/comp/core/secrets/go.sum b/comp/core/secrets/go.sum index ab65a741ce60f..24378e0ee687b 100644 --- a/comp/core/secrets/go.sum +++ b/comp/core/secrets/go.sum @@ -9,15 +9,8 @@ github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/ github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= @@ -49,18 +42,6 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= diff --git a/comp/core/status/statusimpl/go.sum b/comp/core/status/statusimpl/go.sum index 3633f73c784c7..2d668dccb3ae5 100644 --- a/comp/core/status/statusimpl/go.sum +++ b/comp/core/status/statusimpl/go.sum @@ -55,10 +55,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -83,8 +79,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= @@ -235,16 +229,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/comp/core/telemetry/component.go b/comp/core/telemetry/component.go index cc56e6ce11d81..652d3becd19ee 100644 --- a/comp/core/telemetry/component.go +++ b/comp/core/telemetry/component.go @@ -22,8 +22,6 @@ type Component interface { RegisterCollector(c Collector) // UnregisterCollector unregisters a Collector with the prometheus registry UnregisterCollector(c Collector) bool - // Meter returns a new OTEL meter - Meter(name string, opts ...MeterOption) Meter // NewCounter creates a Counter with default options for telemetry purpose. NewCounter(subsystem, name string, tags []string, help string) Counter // NewCounterWithOpts creates a Counter with the given options for telemetry purpose. diff --git a/comp/core/telemetry/component_mock.go b/comp/core/telemetry/component_mock.go index 5cde82b76db17..646755b322ba7 100644 --- a/comp/core/telemetry/component_mock.go +++ b/comp/core/telemetry/component_mock.go @@ -9,7 +9,6 @@ package telemetry import ( "github.com/prometheus/client_golang/prometheus" - sdk "go.opentelemetry.io/otel/sdk/metric" ) // Metric interface defines the retrieval functions to extract information from a metric @@ -28,5 +27,4 @@ type Mock interface { GetCountMetric(subsystem, name string) ([]Metric, error) GetGaugeMetric(subsystem, name string) ([]Metric, error) GetHistogramMetric(subsystem, name string) ([]Metric, error) - GetMeterProvider() *sdk.MeterProvider } diff --git a/comp/core/telemetry/go.mod b/comp/core/telemetry/go.mod index 6c551fdf16694..23f49ade405b7 100644 --- a/comp/core/telemetry/go.mod +++ b/comp/core/telemetry/go.mod @@ -13,9 +13,6 @@ require ( github.com/prometheus/client_golang v1.20.5 github.com/prometheus/client_model v0.6.1 github.com/stretchr/testify v1.10.0 - go.opentelemetry.io/otel/exporters/prometheus v0.54.0 - go.opentelemetry.io/otel/metric v1.32.0 - go.opentelemetry.io/otel/sdk/metric v1.32.0 go.uber.org/fx v1.23.0 ) @@ -25,9 +22,6 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/go-logr/logr v1.4.2 // indirect - github.com/go-logr/stdr v1.2.2 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/klauspost/compress v1.17.11 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect @@ -36,9 +30,6 @@ require ( github.com/prometheus/procfs v0.15.1 // indirect github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/pflag v1.0.5 // indirect - go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/sdk v1.32.0 // indirect - go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect diff --git a/comp/core/telemetry/go.sum b/comp/core/telemetry/go.sum index e7454db296939..6a015a3b68188 100644 --- a/comp/core/telemetry/go.sum +++ b/comp/core/telemetry/go.sum @@ -5,15 +5,8 @@ github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= @@ -45,18 +38,6 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= diff --git a/comp/core/telemetry/metric.go b/comp/core/telemetry/metric.go index e8360ecead2f0..515b140709a69 100644 --- a/comp/core/telemetry/metric.go +++ b/comp/core/telemetry/metric.go @@ -9,14 +9,7 @@ package telemetry import ( dto "github.com/prometheus/client_model/go" - "go.opentelemetry.io/otel/metric" ) -// MeterOption is an alias to metric.MeterOption -type MeterOption = metric.MeterOption - -// Meter is an alias to metric.Meter -type Meter = metric.Meter - // MetricFamily is an alias to dto.MetricFamily type MetricFamily = dto.MetricFamily diff --git a/comp/core/telemetry/metric_noop.go b/comp/core/telemetry/metric_noop.go index 8b008a784e82d..77192060afce7 100644 --- a/comp/core/telemetry/metric_noop.go +++ b/comp/core/telemetry/metric_noop.go @@ -7,10 +7,4 @@ package telemetry -type MeterOption interface { -} - -type Meter interface { -} - type MetricFamily struct{} diff --git a/comp/core/telemetry/noopsimpl/telemetry.go b/comp/core/telemetry/noopsimpl/telemetry.go index bcc94f1f77809..374f76a78beca 100644 --- a/comp/core/telemetry/noopsimpl/telemetry.go +++ b/comp/core/telemetry/noopsimpl/telemetry.go @@ -89,10 +89,6 @@ func (t *noopImpl) NewSimpleHistogramWithOpts(_, _, _ string, _ []float64, _ tel return &simpleNoOpHistogram{} } -func (t *noopImpl) Meter(_ string, _ ...telemetry.MeterOption) telemetry.Meter { - return nil -} - func (t *noopImpl) RegisterCollector(telemetry.Collector) {} func (t *noopImpl) UnregisterCollector(telemetry.Collector) bool { diff --git a/comp/core/telemetry/telemetryimpl/telemetry.go b/comp/core/telemetry/telemetryimpl/telemetry.go index 57846e88b2298..d673582e2d44d 100644 --- a/comp/core/telemetry/telemetryimpl/telemetry.go +++ b/comp/core/telemetry/telemetryimpl/telemetry.go @@ -11,7 +11,6 @@ import ( "net/http" "sync" - promOtel "go.opentelemetry.io/otel/exporters/prometheus" "go.uber.org/fx" "github.com/DataDog/datadog-agent/comp/core/telemetry" @@ -20,8 +19,6 @@ import ( "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/collectors" "github.com/prometheus/client_golang/prometheus/promhttp" - "go.opentelemetry.io/otel/metric" - sdk "go.opentelemetry.io/otel/sdk/metric" ) // Module defines the fx options for this component. @@ -33,16 +30,14 @@ func Module() fxutil.Module { // TODO (components): Remove the globals and move this into `newTelemetry` after all telemetry is migrated to the component var ( registry = newRegistry() - provider = newProvider(registry) mutex = sync.Mutex{} defaultRegistry = prometheus.NewRegistry() ) type telemetryImpl struct { - mutex *sync.Mutex - registry *prometheus.Registry - meterProvider *sdk.MeterProvider + mutex *sync.Mutex + registry *prometheus.Registry defaultRegistry *prometheus.Registry } @@ -60,16 +55,6 @@ func newRegistry() *prometheus.Registry { return reg } -func newProvider(reg *prometheus.Registry) *sdk.MeterProvider { - exporter, err := promOtel.New(promOtel.WithRegisterer(reg)) - - if err != nil { - panic(err) - } - - return sdk.NewMeterProvider(sdk.WithReader(exporter)) -} - func newTelemetryComponent(deps dependencies) telemetry.Component { comp := newTelemetry() @@ -87,9 +72,8 @@ func newTelemetryComponent(deps dependencies) telemetry.Component { func newTelemetry() telemetry.Component { return &telemetryImpl{ - mutex: &mutex, - registry: registry, - meterProvider: provider, + mutex: &mutex, + registry: registry, defaultRegistry: defaultRegistry, } @@ -122,10 +106,6 @@ func (t *telemetryImpl) UnregisterCollector(c prometheus.Collector) bool { return registry.Unregister(c) } -func (t *telemetryImpl) Meter(name string, opts ...telemetry.MeterOption) metric.Meter { - return t.meterProvider.Meter(name, opts...) -} - func (t *telemetryImpl) NewCounter(subsystem, name string, tags []string, help string) telemetry.Counter { return t.NewCounterWithOpts(subsystem, name, tags, help, telemetry.DefaultOptions) } diff --git a/comp/core/telemetry/telemetryimpl/telemetry_mock.go b/comp/core/telemetry/telemetryimpl/telemetry_mock.go index 5d33b0fb4538e..ef1006ac442f6 100644 --- a/comp/core/telemetry/telemetryimpl/telemetry_mock.go +++ b/comp/core/telemetry/telemetryimpl/telemetry_mock.go @@ -14,7 +14,6 @@ import ( "github.com/prometheus/client_golang/prometheus" dto "github.com/prometheus/client_model/go" - sdk "go.opentelemetry.io/otel/sdk/metric" "go.uber.org/fx" "github.com/DataDog/datadog-agent/comp/core/telemetry" @@ -40,13 +39,11 @@ type telemetryImplMock struct { func newMock(deps testDependencies) telemetry.Mock { reg := prometheus.NewRegistry() - provider := newProvider(reg) telemetry := &telemetryImplMock{ telemetryImpl{ mutex: &mutex, registry: reg, - meterProvider: provider, defaultRegistry: prometheus.NewRegistry(), }, } @@ -143,9 +140,3 @@ func (t *telemetryImplMock) getMetric(metricType dto.MetricType, subsystem, name return internalMetrics, nil } - -func (t *telemetryImplMock) GetMeterProvider() *sdk.MeterProvider { - t.mutex.Lock() - defer t.mutex.Unlock() - return t.meterProvider -} diff --git a/comp/core/telemetry/telemetryimpl/telemetry_test.go b/comp/core/telemetry/telemetryimpl/telemetry_test.go index d7d550591a08b..c197fda4a2cc0 100644 --- a/comp/core/telemetry/telemetryimpl/telemetry_test.go +++ b/comp/core/telemetry/telemetryimpl/telemetry_test.go @@ -6,10 +6,8 @@ package telemetryimpl import ( - "context" "testing" - dto "github.com/prometheus/client_model/go" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -22,26 +20,15 @@ func TestCounterInitializer(t *testing.T) { counter := telemetry.NewCounter("subsystem", "test", []string{"check_name", "state"}, "help docs") - // Sanity check that we don't have any metrics - startMetrics, err := telemetry.GetRegistry().Gather() - assert.NoError(t, err) - if err != nil { - return - } - - // 1 because OTEL adds a target_info gauge by default - assert.Equal(t, 1, len(startMetrics)) - // Set some values and ensure that we have those counters counter.InitializeToZero("mycheck", "mystate") - endMetrics, err := telemetry.GetRegistry().Gather() + startMetrics, err := telemetry.GetRegistry().Gather() if !assert.NoError(t, err) { return } - // 2 because OTEL adds a target_info gauge by default - if !assert.Equal(t, len(endMetrics), 2) { + if !assert.Equal(t, len(startMetrics), 1) { return } @@ -129,30 +116,6 @@ func TestGetHistogramValue(t *testing.T) { assert.Equal(t, uint64(2), hist.WithTags(map[string]string{"state": "ok"}).Get().Buckets[1].Count) } -func TestMeterProvider(t *testing.T) { - telemetry := fxutil.Test[telemetry.Mock](t, MockModule()) - - counter, _ := telemetry.Meter("foo").Int64Counter("bar") - counter.Add(context.TODO(), 123) - - _ = telemetry.GetMeterProvider().ForceFlush(context.TODO()) - - metrics, err := telemetry.GetRegistry().Gather() - assert.NoError(t, err) - - var metricFamily *dto.MetricFamily - - for _, m := range metrics { - if m.GetName() == "bar_total" { - metricFamily = m - } - } - - metric := metricFamily.GetMetric()[0] - assert.Equal(t, metric.GetCounter().GetValue(), 123.0) - assert.Equal(t, *metric.GetLabel()[0].Value, "foo") -} - func TestGoMetrics(t *testing.T) { // Read the default global registry metrics, err := registry.Gather() diff --git a/comp/forwarder/defaultforwarder/go.mod b/comp/forwarder/defaultforwarder/go.mod index 329cde62f5b08..a6e6b5f2297da 100644 --- a/comp/forwarder/defaultforwarder/go.mod +++ b/comp/forwarder/defaultforwarder/go.mod @@ -109,10 +109,7 @@ require ( github.com/dustin/go-humanize v1.0.1 // indirect github.com/fatih/color v1.18.0 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect - github.com/go-logr/logr v1.4.2 // indirect - github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.3.0 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect @@ -145,12 +142,6 @@ require ( github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect - go.opentelemetry.io/otel/metric v1.32.0 // indirect - go.opentelemetry.io/otel/sdk v1.32.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect - go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect diff --git a/comp/forwarder/defaultforwarder/go.sum b/comp/forwarder/defaultforwarder/go.sum index ffafd609ca4f2..66f7616ec4418 100644 --- a/comp/forwarder/defaultforwarder/go.sum +++ b/comp/forwarder/defaultforwarder/go.sum @@ -54,11 +54,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -85,8 +80,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -248,18 +241,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/comp/forwarder/orchestrator/orchestratorinterface/go.mod b/comp/forwarder/orchestrator/orchestratorinterface/go.mod index 7776c023c94d4..d5f8d766d32f6 100644 --- a/comp/forwarder/orchestrator/orchestratorinterface/go.mod +++ b/comp/forwarder/orchestrator/orchestratorinterface/go.mod @@ -111,11 +111,8 @@ require ( github.com/dustin/go-humanize v1.0.1 // indirect github.com/fatih/color v1.18.0 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect - github.com/go-logr/logr v1.4.2 // indirect - github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/golang/protobuf v1.5.4 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -150,12 +147,6 @@ require ( github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect - go.opentelemetry.io/otel/metric v1.32.0 // indirect - go.opentelemetry.io/otel/sdk v1.32.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect - go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/fx v1.23.0 // indirect diff --git a/comp/forwarder/orchestrator/orchestratorinterface/go.sum b/comp/forwarder/orchestrator/orchestratorinterface/go.sum index b24532017d50d..53177ac4376d6 100644 --- a/comp/forwarder/orchestrator/orchestratorinterface/go.sum +++ b/comp/forwarder/orchestrator/orchestratorinterface/go.sum @@ -57,11 +57,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -88,8 +83,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -249,18 +242,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/comp/logs/agent/config/go.sum b/comp/logs/agent/config/go.sum index 2ad0ffbf9169a..324945ccfacf2 100644 --- a/comp/logs/agent/config/go.sum +++ b/comp/logs/agent/config/go.sum @@ -51,10 +51,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -79,8 +75,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -224,16 +218,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/comp/otelcol/converter/impl/go.sum b/comp/otelcol/converter/impl/go.sum index b749d6198ca4d..6a6b8e8abfdf0 100644 --- a/comp/otelcol/converter/impl/go.sum +++ b/comp/otelcol/converter/impl/go.sum @@ -51,10 +51,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -81,8 +77,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -248,16 +242,6 @@ go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0 h1:0BJHAeKF go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0/go.mod h1:gBiweuH4EDuPh9mpLCB/wPZzostdA+gKY8hABwbotQk= go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0 h1:jSXTojCPI6Xr98m99nF7qbQFnw3INLEOHRcqcHS+lak= go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0/go.mod h1:Pu95O2JE3R+0BBTbe4gpAC8ms3w6FbICHJw3WvGWrjs= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/comp/otelcol/logsagentpipeline/go.mod b/comp/otelcol/logsagentpipeline/go.mod index 4ca635bf8a9a5..0b8f861795c6c 100644 --- a/comp/otelcol/logsagentpipeline/go.mod +++ b/comp/otelcol/logsagentpipeline/go.mod @@ -115,11 +115,8 @@ require ( github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect - github.com/go-logr/logr v1.4.2 // indirect - github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -150,12 +147,6 @@ require ( github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect - go.opentelemetry.io/otel/metric v1.32.0 // indirect - go.opentelemetry.io/otel/sdk v1.32.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect - go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/fx v1.23.0 // indirect diff --git a/comp/otelcol/logsagentpipeline/go.sum b/comp/otelcol/logsagentpipeline/go.sum index cb26aeb9751f5..97219095a045b 100644 --- a/comp/otelcol/logsagentpipeline/go.sum +++ b/comp/otelcol/logsagentpipeline/go.sum @@ -56,11 +56,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -87,8 +82,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -244,18 +237,6 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod index ab38974bd3f10..ca80a71894cb3 100644 --- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod +++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod @@ -130,11 +130,8 @@ require ( github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect - github.com/go-logr/logr v1.4.2 // indirect - github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -164,12 +161,6 @@ require ( github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect - go.opentelemetry.io/otel/metric v1.32.0 // indirect - go.opentelemetry.io/otel/sdk v1.32.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect - go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum index cb26aeb9751f5..97219095a045b 100644 --- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum +++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum @@ -56,11 +56,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -87,8 +82,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -244,18 +237,6 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod index 03d38db4ad006..109071e12c948 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod @@ -312,7 +312,6 @@ require ( go.opentelemetry.io/collector/semconv v0.114.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect go.opentelemetry.io/otel/sdk v1.32.0 // indirect go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum index a781be143fd21..384aa70b24a81 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum @@ -472,8 +472,6 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 h1:UP6IpuH go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0/go.mod h1:qxuZLtbq5QDtdeSHsS7bcf6EH6uO6jUAgk764zd3rhM= go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod index bca0ee268c52e..1ca371316a075 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod @@ -208,7 +208,6 @@ require ( go.opentelemetry.io/collector/pipeline v0.114.0 // indirect go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 // indirect go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect go.opentelemetry.io/otel/metric v1.32.0 // indirect go.opentelemetry.io/otel/sdk v1.32.0 // indirect go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum index 23a784932d4d7..a1036423c51c7 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum @@ -403,8 +403,6 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 h1:UP6IpuH go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0/go.mod h1:qxuZLtbq5QDtdeSHsS7bcf6EH6uO6jUAgk764zd3rhM= go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= diff --git a/comp/otelcol/otlp/testutil/go.sum b/comp/otelcol/otlp/testutil/go.sum index 6eb3189bdde28..b16358f7fcc0e 100644 --- a/comp/otelcol/otlp/testutil/go.sum +++ b/comp/otelcol/otlp/testutil/go.sum @@ -56,10 +56,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -90,8 +86,6 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -252,16 +246,6 @@ github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQ go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/comp/serializer/compression/go.sum b/comp/serializer/compression/go.sum index c8ede6be791eb..b494c71596a4e 100644 --- a/comp/serializer/compression/go.sum +++ b/comp/serializer/compression/go.sum @@ -53,10 +53,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -81,8 +77,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -226,16 +220,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/pkg/api/go.sum b/pkg/api/go.sum index 2ad0ffbf9169a..324945ccfacf2 100644 --- a/pkg/api/go.sum +++ b/pkg/api/go.sum @@ -51,10 +51,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -79,8 +75,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -224,16 +218,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/pkg/config/mock/go.sum b/pkg/config/mock/go.sum index 8e9185a2c429b..b70b04e70aa56 100644 --- a/pkg/config/mock/go.sum +++ b/pkg/config/mock/go.sum @@ -50,10 +50,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -78,8 +74,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -222,16 +216,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/pkg/config/remote/go.sum b/pkg/config/remote/go.sum index a4a1511f86996..dcb57dbfe438b 100644 --- a/pkg/config/remote/go.sum +++ b/pkg/config/remote/go.sum @@ -90,10 +90,6 @@ github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vb github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -326,16 +322,6 @@ github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQ go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.11 h1:yGEzV1wPz2yVCLsD8ZAiGHhHVlczyC9d1rP43/VCRJ0= go.etcd.io/bbolt v1.3.11/go.mod h1:dksAq7YMXoljX0xu6VF5DMZGbhYYoLUalEiSySYAS4I= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= diff --git a/pkg/config/setup/go.mod b/pkg/config/setup/go.mod index 2592013a7d875..c6855f5379f0f 100644 --- a/pkg/config/setup/go.mod +++ b/pkg/config/setup/go.mod @@ -69,10 +69,7 @@ require ( github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect - github.com/go-logr/logr v1.4.2 // indirect - github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.3.0 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect @@ -99,11 +96,6 @@ require ( github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/metric v1.32.0 // indirect - go.opentelemetry.io/otel/sdk v1.32.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect - go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect diff --git a/pkg/config/setup/go.sum b/pkg/config/setup/go.sum index 30600a62adb16..3308d693c3968 100644 --- a/pkg/config/setup/go.sum +++ b/pkg/config/setup/go.sum @@ -55,11 +55,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -84,8 +79,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -230,18 +223,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/pkg/config/utils/go.sum b/pkg/config/utils/go.sum index 8e9185a2c429b..b70b04e70aa56 100644 --- a/pkg/config/utils/go.sum +++ b/pkg/config/utils/go.sum @@ -50,10 +50,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -78,8 +74,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -222,16 +216,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/pkg/logs/auditor/go.sum b/pkg/logs/auditor/go.sum index 8e9185a2c429b..b70b04e70aa56 100644 --- a/pkg/logs/auditor/go.sum +++ b/pkg/logs/auditor/go.sum @@ -50,10 +50,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -78,8 +74,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -222,16 +216,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/pkg/logs/client/go.mod b/pkg/logs/client/go.mod index 6fc70b4282f98..9f0ec05367e17 100644 --- a/pkg/logs/client/go.mod +++ b/pkg/logs/client/go.mod @@ -97,10 +97,7 @@ require ( github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect - github.com/go-logr/logr v1.4.2 // indirect - github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.3.0 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect @@ -128,12 +125,6 @@ require ( github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect - go.opentelemetry.io/otel/metric v1.32.0 // indirect - go.opentelemetry.io/otel/sdk v1.32.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect - go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/fx v1.23.0 // indirect diff --git a/pkg/logs/client/go.sum b/pkg/logs/client/go.sum index d370c2aa2c614..9a3e2a6dae741 100644 --- a/pkg/logs/client/go.sum +++ b/pkg/logs/client/go.sum @@ -52,11 +52,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -81,8 +76,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -230,18 +223,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/pkg/logs/diagnostic/go.sum b/pkg/logs/diagnostic/go.sum index 2ad0ffbf9169a..324945ccfacf2 100644 --- a/pkg/logs/diagnostic/go.sum +++ b/pkg/logs/diagnostic/go.sum @@ -51,10 +51,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -79,8 +75,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -224,16 +218,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/pkg/logs/message/go.sum b/pkg/logs/message/go.sum index 8e9185a2c429b..b70b04e70aa56 100644 --- a/pkg/logs/message/go.sum +++ b/pkg/logs/message/go.sum @@ -50,10 +50,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -78,8 +74,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -222,16 +216,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/pkg/logs/metrics/go.mod b/pkg/logs/metrics/go.mod index 87233be777f35..3a272b272eee0 100644 --- a/pkg/logs/metrics/go.mod +++ b/pkg/logs/metrics/go.mod @@ -25,9 +25,6 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/go-logr/logr v1.4.2 // indirect - github.com/go-logr/stdr v1.2.2 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/klauspost/compress v1.17.11 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect @@ -38,12 +35,6 @@ require ( github.com/prometheus/procfs v0.15.1 // indirect github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/pflag v1.0.5 // indirect - go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect - go.opentelemetry.io/otel/metric v1.32.0 // indirect - go.opentelemetry.io/otel/sdk v1.32.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect - go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/fx v1.23.0 // indirect diff --git a/pkg/logs/metrics/go.sum b/pkg/logs/metrics/go.sum index a126bd5a33489..cd355525b9620 100644 --- a/pkg/logs/metrics/go.sum +++ b/pkg/logs/metrics/go.sum @@ -7,15 +7,8 @@ github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= @@ -47,18 +40,6 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= diff --git a/pkg/logs/pipeline/go.mod b/pkg/logs/pipeline/go.mod index f61519f081296..aa3225348e8e9 100644 --- a/pkg/logs/pipeline/go.mod +++ b/pkg/logs/pipeline/go.mod @@ -115,11 +115,8 @@ require ( github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect - github.com/go-logr/logr v1.4.2 // indirect - github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect @@ -148,12 +145,6 @@ require ( github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect - go.opentelemetry.io/otel/metric v1.32.0 // indirect - go.opentelemetry.io/otel/sdk v1.32.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect - go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect diff --git a/pkg/logs/pipeline/go.sum b/pkg/logs/pipeline/go.sum index cb26aeb9751f5..97219095a045b 100644 --- a/pkg/logs/pipeline/go.sum +++ b/pkg/logs/pipeline/go.sum @@ -56,11 +56,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -87,8 +82,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -244,18 +237,6 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/pkg/logs/processor/go.mod b/pkg/logs/processor/go.mod index 3853f7f666344..42339476936cc 100644 --- a/pkg/logs/processor/go.mod +++ b/pkg/logs/processor/go.mod @@ -95,11 +95,8 @@ require ( github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect - github.com/go-logr/logr v1.4.2 // indirect - github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect @@ -127,12 +124,6 @@ require ( github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect - go.opentelemetry.io/otel/metric v1.32.0 // indirect - go.opentelemetry.io/otel/sdk v1.32.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect - go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/fx v1.23.0 // indirect diff --git a/pkg/logs/processor/go.sum b/pkg/logs/processor/go.sum index bae2a07789d90..a85960b0566cf 100644 --- a/pkg/logs/processor/go.sum +++ b/pkg/logs/processor/go.sum @@ -56,11 +56,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -87,8 +82,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -239,18 +232,6 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/pkg/logs/sds/go.mod b/pkg/logs/sds/go.mod index 5cdadbb4b9b81..b9c7c9706a849 100644 --- a/pkg/logs/sds/go.mod +++ b/pkg/logs/sds/go.mod @@ -90,10 +90,7 @@ require ( github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect - github.com/go-logr/logr v1.4.2 // indirect - github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.3.0 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect @@ -121,12 +118,6 @@ require ( github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect - go.opentelemetry.io/otel/metric v1.32.0 // indirect - go.opentelemetry.io/otel/sdk v1.32.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect - go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/fx v1.23.0 // indirect diff --git a/pkg/logs/sds/go.sum b/pkg/logs/sds/go.sum index fb3fdbfc03c55..2d08c2de231b8 100644 --- a/pkg/logs/sds/go.sum +++ b/pkg/logs/sds/go.sum @@ -52,11 +52,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -81,8 +76,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -230,18 +223,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/pkg/logs/sender/go.mod b/pkg/logs/sender/go.mod index 20c0fe700e1a4..085c081f2774e 100644 --- a/pkg/logs/sender/go.mod +++ b/pkg/logs/sender/go.mod @@ -97,10 +97,7 @@ require ( github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect - github.com/go-logr/logr v1.4.2 // indirect - github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.3.0 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect @@ -128,12 +125,6 @@ require ( github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect - go.opentelemetry.io/otel/metric v1.32.0 // indirect - go.opentelemetry.io/otel/sdk v1.32.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect - go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/fx v1.23.0 // indirect diff --git a/pkg/logs/sender/go.sum b/pkg/logs/sender/go.sum index d370c2aa2c614..9a3e2a6dae741 100644 --- a/pkg/logs/sender/go.sum +++ b/pkg/logs/sender/go.sum @@ -52,11 +52,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -81,8 +76,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -230,18 +223,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/pkg/logs/sources/go.sum b/pkg/logs/sources/go.sum index 8e9185a2c429b..b70b04e70aa56 100644 --- a/pkg/logs/sources/go.sum +++ b/pkg/logs/sources/go.sum @@ -50,10 +50,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -78,8 +74,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -222,16 +216,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/pkg/logs/util/testutils/go.sum b/pkg/logs/util/testutils/go.sum index 8e9185a2c429b..b70b04e70aa56 100644 --- a/pkg/logs/util/testutils/go.sum +++ b/pkg/logs/util/testutils/go.sum @@ -50,10 +50,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -78,8 +74,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -222,16 +216,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/pkg/metrics/go.mod b/pkg/metrics/go.mod index e58312d0f009d..2129bb8455c09 100644 --- a/pkg/metrics/go.mod +++ b/pkg/metrics/go.mod @@ -81,10 +81,7 @@ require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect - github.com/go-logr/logr v1.4.2 // indirect - github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.3.0 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect @@ -113,12 +110,6 @@ require ( github.com/tklauser/numcpus v0.8.0 // indirect github.com/twmb/murmur3 v1.1.8 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect - go.opentelemetry.io/otel/metric v1.32.0 // indirect - go.opentelemetry.io/otel/sdk v1.32.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect - go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect diff --git a/pkg/metrics/go.sum b/pkg/metrics/go.sum index 81310e940757f..9528a7ab7312d 100644 --- a/pkg/metrics/go.sum +++ b/pkg/metrics/go.sum @@ -58,11 +58,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -89,8 +84,6 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -240,18 +233,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/pkg/process/util/api/go.mod b/pkg/process/util/api/go.mod index ace4dc3c689e7..1dd6ead89c7a2 100644 --- a/pkg/process/util/api/go.mod +++ b/pkg/process/util/api/go.mod @@ -28,9 +28,6 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/go-logr/logr v1.4.2 // indirect - github.com/go-logr/stdr v1.2.2 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/klauspost/compress v1.17.11 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect @@ -41,12 +38,6 @@ require ( github.com/prometheus/procfs v0.15.1 // indirect github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/pflag v1.0.5 // indirect - go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect - go.opentelemetry.io/otel/metric v1.32.0 // indirect - go.opentelemetry.io/otel/sdk v1.32.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect - go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/fx v1.23.0 // indirect diff --git a/pkg/process/util/api/go.sum b/pkg/process/util/api/go.sum index 23c547fd3ce6e..fbced0de8d3fe 100644 --- a/pkg/process/util/api/go.sum +++ b/pkg/process/util/api/go.sum @@ -13,17 +13,10 @@ github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= @@ -59,18 +52,6 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= diff --git a/pkg/serializer/go.mod b/pkg/serializer/go.mod index 86cd54dd93156..5e0bd3938c766 100644 --- a/pkg/serializer/go.mod +++ b/pkg/serializer/go.mod @@ -134,11 +134,8 @@ require ( github.com/dustin/go-humanize v1.0.1 // indirect github.com/fatih/color v1.18.0 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect - github.com/go-logr/logr v1.4.2 // indirect - github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/golang/protobuf v1.5.4 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -175,12 +172,6 @@ require ( github.com/tklauser/numcpus v0.8.0 // indirect github.com/twmb/murmur3 v1.1.8 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect - go.opentelemetry.io/otel/metric v1.32.0 // indirect - go.opentelemetry.io/otel/sdk v1.32.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect - go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/fx v1.23.0 // indirect diff --git a/pkg/serializer/go.sum b/pkg/serializer/go.sum index 91309beefcd32..fc5136030cbaa 100644 --- a/pkg/serializer/go.sum +++ b/pkg/serializer/go.sum @@ -68,11 +68,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -106,8 +101,6 @@ github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -285,18 +278,6 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/pkg/telemetry/go.mod b/pkg/telemetry/go.mod index afc389ba20fe9..d50e41412bcc8 100644 --- a/pkg/telemetry/go.mod +++ b/pkg/telemetry/go.mod @@ -21,9 +21,6 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/go-logr/logr v1.4.2 // indirect - github.com/go-logr/stdr v1.2.2 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/klauspost/compress v1.17.11 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect @@ -35,12 +32,6 @@ require ( github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/testify v1.10.0 // indirect - go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect - go.opentelemetry.io/otel/metric v1.32.0 // indirect - go.opentelemetry.io/otel/sdk v1.32.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect - go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect diff --git a/pkg/telemetry/go.sum b/pkg/telemetry/go.sum index 7ee9bb36da0a0..a634eb0726e6e 100644 --- a/pkg/telemetry/go.sum +++ b/pkg/telemetry/go.sum @@ -5,15 +5,8 @@ github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= @@ -45,18 +38,6 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= diff --git a/pkg/util/flavor/go.sum b/pkg/util/flavor/go.sum index 8e9185a2c429b..b70b04e70aa56 100644 --- a/pkg/util/flavor/go.sum +++ b/pkg/util/flavor/go.sum @@ -50,10 +50,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -78,8 +74,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -222,16 +216,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/pkg/util/grpc/go.sum b/pkg/util/grpc/go.sum index a97d9be374d64..2670baa59f394 100644 --- a/pkg/util/grpc/go.sum +++ b/pkg/util/grpc/go.sum @@ -60,10 +60,6 @@ github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vb github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -93,8 +89,6 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -249,16 +243,6 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= diff --git a/pkg/util/http/go.sum b/pkg/util/http/go.sum index c9ded87b54678..d2da3c8b27c74 100644 --- a/pkg/util/http/go.sum +++ b/pkg/util/http/go.sum @@ -50,10 +50,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -78,8 +74,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -222,16 +216,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/pkg/util/log/setup/go.sum b/pkg/util/log/setup/go.sum index 8e9185a2c429b..b70b04e70aa56 100644 --- a/pkg/util/log/setup/go.sum +++ b/pkg/util/log/setup/go.sum @@ -50,10 +50,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -78,8 +74,6 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -222,16 +216,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/test/otel/go.mod b/test/otel/go.mod index 1fa91df93b234..7fb2f3b6d5f1e 100644 --- a/test/otel/go.mod +++ b/test/otel/go.mod @@ -283,10 +283,8 @@ require ( go.opentelemetry.io/collector/semconv v0.114.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect go.opentelemetry.io/otel v1.32.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect go.opentelemetry.io/otel/metric v1.32.0 // indirect go.opentelemetry.io/otel/sdk v1.32.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect diff --git a/test/otel/go.sum b/test/otel/go.sum index f7811923873a3..1283d3d064631 100644 --- a/test/otel/go.sum +++ b/test/otel/go.sum @@ -454,8 +454,6 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 h1:UP6IpuH go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0/go.mod h1:qxuZLtbq5QDtdeSHsS7bcf6EH6uO6jUAgk764zd3rhM= go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= -go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= From a1e2dc6f90cbb6ccd27d5af4e74b569e21a961e3 Mon Sep 17 00:00:00 2001 From: Guy Arbitman Date: Wed, 4 Dec 2024 14:06:15 +0200 Subject: [PATCH 240/439] sharedlibraries: Remove duplicated log wrapper (#31739) --- pkg/network/usm/sharedlibraries/ebpf.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/network/usm/sharedlibraries/ebpf.go b/pkg/network/usm/sharedlibraries/ebpf.go index e71273fcec934..9fcb7a6f36d04 100644 --- a/pkg/network/usm/sharedlibraries/ebpf.go +++ b/pkg/network/usm/sharedlibraries/ebpf.go @@ -309,7 +309,7 @@ func (e *EbpfProgram) InitWithLibsets(libsets ...Libset) error { func (e *EbpfProgram) start() error { err := e.Manager.Start() if err != nil { - return fmt.Errorf("cannot start manager: %w", err) + return err } for _, handler := range e.libsets { From 43c2a326251347ad2f1e3c1b6f7aeca83646e534 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20Beauz=C3=A9e-Luyssen?= Date: Wed, 4 Dec 2024 14:04:18 +0100 Subject: [PATCH 241/439] CI: container build: ensure JMX is enabled in jmx-fips images (#31716) --- .gitlab/container_build/docker_linux.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab/container_build/docker_linux.yml b/.gitlab/container_build/docker_linux.yml index 773f91fd1ca3a..c94f319627621 100644 --- a/.gitlab/container_build/docker_linux.yml +++ b/.gitlab/container_build/docker_linux.yml @@ -154,7 +154,7 @@ docker_build_fips_agent7_jmx: IMAGE: registry.ddbuild.io/ci/datadog-agent/agent BUILD_CONTEXT: Dockerfiles/agent TAG_SUFFIX: -7-fips-jmx - BUILD_ARG: --target test --build-arg DD_AGENT_ARTIFACT=datadog-fips-agent-7*-amd64.tar.xz + BUILD_ARG: --target test --build-arg WITH_JMX=true --build-arg DD_AGENT_ARTIFACT=datadog-fips-agent-7*-amd64.tar.xz docker_build_fips_agent7_arm64_jmx: extends: [.docker_build_job_definition_arm64, .docker_build_artifact] @@ -167,7 +167,7 @@ docker_build_fips_agent7_arm64_jmx: IMAGE: registry.ddbuild.io/ci/datadog-agent/agent BUILD_CONTEXT: Dockerfiles/agent TAG_SUFFIX: -7-fips-jmx - BUILD_ARG: --target test --build-arg DD_AGENT_ARTIFACT=datadog-fips-agent-7*-arm64.tar.xz + BUILD_ARG: --target test --build-arg WITH_JMX=true --build-arg DD_AGENT_ARTIFACT=datadog-fips-agent-7*-arm64.tar.xz # build agent7 UA image docker_build_ot_agent7: From a9eac7672a6cf91bec6da77c18313c6f3db4c22d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 4 Dec 2024 14:04:16 +0000 Subject: [PATCH 242/439] [ASCII-2487][automated] Update Go version to 1.23.3 (#31022) Co-authored-by: ogaca-dd Co-authored-by: agent-platform-auto-pr[bot] --- .circleci/config.yml | 2 +- .custom-gcl.yml | 2 +- .gitlab-ci.yml | 44 ++--- .go-version | 2 +- .wwhrd.yml | 2 +- LICENSE-3rdparty.csv | 161 ++++++++++++++++++ README.md | 2 +- cmd/process-agent/README.md | 2 +- comp/core/log/impl-trace/go.mod | 2 +- comp/core/status/statusimpl/go.mod | 2 +- .../client/clientimpl/util.go | 2 +- comp/netflow/payload/go.mod | 2 +- devenv/scripts/Install-DevEnv.ps1 | 2 +- docs/dev/agent_dev_env.md | 4 +- docs/public/setup.md | 2 +- go.mod | 8 +- go.sum | 8 +- go.work | 4 +- internal/tools/go.mod | 46 +++-- internal/tools/go.sum | 90 +++++----- internal/tools/independent-lint/go.mod | 2 +- internal/tools/modformatter/go.mod | 2 +- internal/tools/modparser/go.mod | 2 +- internal/tools/proto/go.mod | 2 +- .../controllers/webhook/controller_v1_test.go | 4 - .../webhook/controller_v1beta1_test.go | 4 - .../servicediscovery/usm/service_test.go | 5 - pkg/config/remote/go.mod | 2 +- pkg/errors/go.mod | 2 +- pkg/gohai/go.mod | 2 +- pkg/gohai/utils/common.go | 2 +- pkg/linters/components/pkgconfigusage/go.mod | 2 +- pkg/logs/launchers/windowsevent/README.md | 2 +- pkg/networkdevice/profile/go.mod | 2 +- .../traceroute/traceroute_darwin.go | 6 +- pkg/remoteconfig/state/repository.go | 4 +- .../generators/accessors/accessors.go | 2 +- pkg/security/secl/go.mod | 2 +- pkg/security/seclwin/go.mod | 2 +- pkg/security/tests/rule_filters_test.go | 6 +- pkg/trace/api/otlp.go | 2 +- pkg/trace/transform/transform.go | 2 +- pkg/util/cache/go.mod | 2 +- pkg/util/cloudproviders/gce/gce_tags_test.go | 3 +- pkg/util/ec2/ec2_tags_test.go | 4 +- pkg/util/flavor/go.mod | 2 +- pkg/util/fxutil/provide_comp_test.go | 24 +-- pkg/util/grpc/go.mod | 2 +- pkg/util/uuid/go.mod | 2 +- .../bump-go-to-1.23.3-6c42ba4e8efe3ffd.yaml | 4 + tasks/go.py | 2 +- tasks/unit_tests/modules_tests.py | 2 +- tasks/update_go.py | 2 +- test/fakeintake/Dockerfile | 2 +- test/fakeintake/docs/README.md | 2 +- test/fakeintake/go.mod | 2 +- test/new-e2e/go.mod | 6 +- test/new-e2e/go.sum | 4 +- test/new-e2e/pkg/e2e/suite.go | 2 +- tools/gdb/Dockerfile | 2 +- tools/retry_file_dump/go.mod | 2 +- 61 files changed, 331 insertions(+), 190 deletions(-) create mode 100644 releasenotes/notes/bump-go-to-1.23.3-6c42ba4e8efe3ffd.yaml diff --git a/.circleci/config.yml b/.circleci/config.yml index 034e8b60da323..2ce2e610724c6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -15,7 +15,7 @@ experimental: templates: job_template: &job_template docker: - - image: gcr.io/datadoghq/agent-circleci-runner:v50094600-7b86dd80 + - image: gcr.io/datadoghq/agent-circleci-runner:v50263243-1a30c934 environment: USE_SYSTEM_LIBS: "1" working_directory: /go/src/github.com/DataDog/datadog-agent diff --git a/.custom-gcl.yml b/.custom-gcl.yml index 45466d9aef0ce..482aa6f432b75 100644 --- a/.custom-gcl.yml +++ b/.custom-gcl.yml @@ -1,4 +1,4 @@ -version: v1.59.1 +version: v1.60.3 name: golangci-lint diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f2d160daebcda..eff912e0c25e9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -175,49 +175,49 @@ variables: # To use images from datadog-agent-buildimages dev branches, set the corresponding # SUFFIX variable to _test_only DATADOG_AGENT_BUILDIMAGES_SUFFIX: "" - DATADOG_AGENT_BUILDIMAGES: v50094600-7b86dd80 + DATADOG_AGENT_BUILDIMAGES: v50263243-1a30c934 DATADOG_AGENT_WINBUILDIMAGES_SUFFIX: "" - DATADOG_AGENT_WINBUILDIMAGES: v50094600-7b86dd80 + DATADOG_AGENT_WINBUILDIMAGES: v50263243-1a30c934 DATADOG_AGENT_ARMBUILDIMAGES_SUFFIX: "" - DATADOG_AGENT_ARMBUILDIMAGES: v50094600-7b86dd80 + DATADOG_AGENT_ARMBUILDIMAGES: v50263243-1a30c934 DATADOG_AGENT_SYSPROBE_BUILDIMAGES_SUFFIX: "" - DATADOG_AGENT_SYSPROBE_BUILDIMAGES: v50094600-7b86dd80 + DATADOG_AGENT_SYSPROBE_BUILDIMAGES: v50263243-1a30c934 DATADOG_AGENT_BTF_GEN_BUILDIMAGES_SUFFIX: "" - DATADOG_AGENT_BTF_GEN_BUILDIMAGES: v50094600-7b86dd80 + DATADOG_AGENT_BTF_GEN_BUILDIMAGES: v50263243-1a30c934 # New images to enable different version per image - not used yet - CI_IMAGE_BTF_GEN: v50094600-7b86dd80 + CI_IMAGE_BTF_GEN: v50263243-1a30c934 CI_IMAGE_BTF_GEN_SUFFIX: "" - CI_IMAGE_DEB_X64: v50094600-7b86dd80 + CI_IMAGE_DEB_X64: v50263243-1a30c934 CI_IMAGE_DEB_X64_SUFFIX: "" - CI_IMAGE_DEB_ARM64: v50094600-7b86dd80 + CI_IMAGE_DEB_ARM64: v50263243-1a30c934 CI_IMAGE_DEB_ARM64_SUFFIX: "" - CI_IMAGE_DEB_ARMHF: v50094600-7b86dd80 + CI_IMAGE_DEB_ARMHF: v50263243-1a30c934 CI_IMAGE_DEB_ARMHF_SUFFIX: "" - CI_IMAGE_DD_AGENT_TESTING: v50094600-7b86dd80 + CI_IMAGE_DD_AGENT_TESTING: v50263243-1a30c934 CI_IMAGE_DD_AGENT_TESTING_SUFFIX: "" - CI_IMAGE_DOCKER_X64: v50094600-7b86dd80 + CI_IMAGE_DOCKER_X64: v50263243-1a30c934 CI_IMAGE_DOCKER_X64_SUFFIX: "" - CI_IMAGE_DOCKER_ARM64: v50094600-7b86dd80 + CI_IMAGE_DOCKER_ARM64: v50263243-1a30c934 CI_IMAGE_DOCKER_ARM64_SUFFIX: "" - CI_IMAGE_GITLAB_AGENT_DEPLOY: v50094600-7b86dd80 + CI_IMAGE_GITLAB_AGENT_DEPLOY: v50263243-1a30c934 CI_IMAGE_GITLAB_AGENT_DEPLOY_SUFFIX: "" - CI_IMAGE_LINUX_GLIBC_2_17_X64: v50094600-7b86dd80 + CI_IMAGE_LINUX_GLIBC_2_17_X64: v50263243-1a30c934 CI_IMAGE_LINUX_GLIBC_2_17_X64_SUFFIX: "" - CI_IMAGE_LINUX_GLIBC_2_23_ARM64: v50094600-7b86dd80 + CI_IMAGE_LINUX_GLIBC_2_23_ARM64: v50263243-1a30c934 CI_IMAGE_LINUX_GLIBC_2_23_ARM64_SUFFIX: "" - CI_IMAGE_SYSTEM_PROBE_X64: v50094600-7b86dd80 + CI_IMAGE_SYSTEM_PROBE_X64: v50263243-1a30c934 CI_IMAGE_SYSTEM_PROBE_X64_SUFFIX: "" - CI_IMAGE_SYSTEM_PROBE_ARM64: v50094600-7b86dd80 + CI_IMAGE_SYSTEM_PROBE_ARM64: v50263243-1a30c934 CI_IMAGE_SYSTEM_PROBE_ARM64_SUFFIX: "" - CI_IMAGE_RPM_X64: v50094600-7b86dd80 + CI_IMAGE_RPM_X64: v50263243-1a30c934 CI_IMAGE_RPM_X64_SUFFIX: "" - CI_IMAGE_RPM_ARM64: v50094600-7b86dd80 + CI_IMAGE_RPM_ARM64: v50263243-1a30c934 CI_IMAGE_RPM_ARM64_SUFFIX: "" - CI_IMAGE_RPM_ARMHF: v50094600-7b86dd80 + CI_IMAGE_RPM_ARMHF: v50263243-1a30c934 CI_IMAGE_RPM_ARMHF_SUFFIX: "" - CI_IMAGE_WIN_1809_X64: v50094600-7b86dd80 + CI_IMAGE_WIN_1809_X64: v50263243-1a30c934 CI_IMAGE_WIN_1809_X64_SUFFIX: "" - CI_IMAGE_WIN_LTSC2022_X64: v50094600-7b86dd80 + CI_IMAGE_WIN_LTSC2022_X64: v50263243-1a30c934 CI_IMAGE_WIN_LTSC2022_X64_SUFFIX: "" DATADOG_AGENT_EMBEDDED_PATH: /opt/datadog-agent/embedded diff --git a/.go-version b/.go-version index 229a27c6f2047..ac1df3fce34b7 100644 --- a/.go-version +++ b/.go-version @@ -1 +1 @@ -1.22.8 +1.23.3 diff --git a/.wwhrd.yml b/.wwhrd.yml index 814b73843d3fe..85b1253962755 100644 --- a/.wwhrd.yml +++ b/.wwhrd.yml @@ -45,4 +45,4 @@ exceptions: additional: # list here paths to additional licenses - golang/go: "raw.githubusercontent.com/golang/go/go1.22.8/LICENSE" + golang/go: "raw.githubusercontent.com/golang/go/go1.23.3/LICENSE" diff --git a/LICENSE-3rdparty.csv b/LICENSE-3rdparty.csv index 4d234625e0d52..d7078ec0f1b71 100644 --- a/LICENSE-3rdparty.csv +++ b/LICENSE-3rdparty.csv @@ -2996,6 +2996,7 @@ core,gopkg.in/warnings.v0,BSD-2-Clause,Copyright (c) 2016 Péter Surányi core,gopkg.in/yaml.v2,Apache-2.0,Copyright 2011-2016 Canonical Ltd core,gopkg.in/yaml.v3,MIT,Copyright (c) 2006-2010 Kirill Simonov | Copyright 2011-2016 Canonical Ltd core,gopkg.in/zorkian/go-datadog-api.v2,BSD-3-Clause,Copyright (c) 2013 by authors and contributors | Copyright 2013-2019 by authors and contributors +core,honnef.co/go/tools/analysis/callcheck,MIT,Copyright (c) 2016 Dominik Honnef core,honnef.co/go/tools/analysis/code,MIT,Copyright (c) 2016 Dominik Honnef core,honnef.co/go/tools/analysis/edit,MIT,Copyright (c) 2016 Dominik Honnef core,honnef.co/go/tools/analysis/facts/deprecated,MIT,Copyright (c) 2016 Dominik Honnef @@ -3028,13 +3029,173 @@ core,honnef.co/go/tools/lintcmd/version,MIT,Copyright (c) 2016 Dominik Honnef core,honnef.co/go/tools/pattern,MIT,Copyright (c) 2016 Dominik Honnef core,honnef.co/go/tools/printf,MIT,Copyright (c) 2016 Dominik Honnef core,honnef.co/go/tools/quickfix,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/quickfix/qf1001,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/quickfix/qf1002,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/quickfix/qf1003,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/quickfix/qf1004,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/quickfix/qf1005,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/quickfix/qf1006,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/quickfix/qf1007,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/quickfix/qf1008,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/quickfix/qf1009,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/quickfix/qf1010,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/quickfix/qf1011,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/quickfix/qf1012,MIT,Copyright (c) 2016 Dominik Honnef core,honnef.co/go/tools/sarif,MIT,Copyright (c) 2016 Dominik Honnef core,honnef.co/go/tools/simple,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1000,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1001,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1002,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1003,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1004,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1005,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1006,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1007,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1008,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1009,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1010,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1011,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1012,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1016,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1017,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1018,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1019,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1020,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1021,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1023,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1024,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1025,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1028,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1029,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1030,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1031,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1032,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1033,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1034,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1035,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1036,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1037,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1038,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1039,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/simple/s1040,MIT,Copyright (c) 2016 Dominik Honnef core,honnef.co/go/tools/staticcheck,MIT,Copyright (c) 2016 Dominik Honnef core,honnef.co/go/tools/staticcheck/fakejson,MIT,Copyright (c) 2016 Dominik Honnef core,honnef.co/go/tools/staticcheck/fakereflect,MIT,Copyright (c) 2016 Dominik Honnef core,honnef.co/go/tools/staticcheck/fakexml,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1000,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1001,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1002,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1003,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1004,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1005,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1006,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1007,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1008,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1010,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1011,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1012,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1013,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1014,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1015,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1016,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1017,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1018,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1019,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1020,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1021,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1023,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1024,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1025,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1026,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1027,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1028,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1029,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1030,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1031,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa1032,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa2000,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa2001,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa2002,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa2003,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa3000,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa3001,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4000,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4001,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4003,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4004,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4005,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4006,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4008,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4009,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4010,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4011,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4012,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4013,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4014,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4015,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4016,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4017,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4018,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4019,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4020,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4021,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4022,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4023,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4024,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4025,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4026,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4027,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4028,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4029,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4030,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4031,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa4032,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa5000,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa5001,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa5002,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa5003,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa5004,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa5005,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa5007,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa5008,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa5009,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa5010,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa5011,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa5012,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa6000,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa6001,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa6002,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa6003,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa6005,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa6006,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa9001,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa9002,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa9003,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa9004,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa9005,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa9006,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa9007,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa9008,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/staticcheck/sa9009,MIT,Copyright (c) 2016 Dominik Honnef core,honnef.co/go/tools/stylecheck,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/stylecheck/st1000,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/stylecheck/st1001,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/stylecheck/st1003,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/stylecheck/st1005,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/stylecheck/st1006,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/stylecheck/st1008,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/stylecheck/st1011,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/stylecheck/st1012,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/stylecheck/st1013,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/stylecheck/st1015,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/stylecheck/st1016,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/stylecheck/st1017,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/stylecheck/st1018,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/stylecheck/st1019,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/stylecheck/st1020,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/stylecheck/st1021,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/stylecheck/st1022,MIT,Copyright (c) 2016 Dominik Honnef +core,honnef.co/go/tools/stylecheck/st1023,MIT,Copyright (c) 2016 Dominik Honnef core,honnef.co/go/tools/unused,MIT,Copyright (c) 2016 Dominik Honnef core,k8s.io/api/admission/v1,Apache-2.0,Copyright 2014 The Kubernetes Authors. core,k8s.io/api/admission/v1beta1,Apache-2.0,Copyright 2014 The Kubernetes Authors. diff --git a/README.md b/README.md index 8e93e1988c48e..09efbd5a380a4 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ and development, is located under [the docs directory](docs) of the present repo ## Getting started To build the Agent you need: - * [Go](https://golang.org/doc/install) 1.22 or later. You'll also need to set your `$GOPATH` and have `$GOPATH/bin` in your path. + * [Go](https://golang.org/doc/install) 1.23 or later. You'll also need to set your `$GOPATH` and have `$GOPATH/bin` in your path. * Python 3.11+ along with development libraries for tooling. You will also need Python 2.7 if you are building the Agent with Python 2 support. * Python dependencies. You may install these with `pip install -r requirements.txt` This will also pull in [Invoke](http://www.pyinvoke.org) if not yet installed. diff --git a/cmd/process-agent/README.md b/cmd/process-agent/README.md index efe1219fc7ddd..f157634ae6a7b 100644 --- a/cmd/process-agent/README.md +++ b/cmd/process-agent/README.md @@ -8,7 +8,7 @@ See the [Live Processes docs](https://docs.datadoghq.com/graphing/infrastructure Pre-requisites: -* `go >= 1.22` +* `go >= 1.23` * `invoke` Check out the repo in your `$GOPATH` diff --git a/comp/core/log/impl-trace/go.mod b/comp/core/log/impl-trace/go.mod index 558e49758e123..46dbc7aba09c2 100644 --- a/comp/core/log/impl-trace/go.mod +++ b/comp/core/log/impl-trace/go.mod @@ -1,6 +1,6 @@ module github.com/DataDog/datadog-agent/comp/core/log/impl-trace -go 1.22.0 +go 1.23.0 replace ( github.com/DataDog/datadog-agent/comp/api/api/def => ../../../api/api/def diff --git a/comp/core/status/statusimpl/go.mod b/comp/core/status/statusimpl/go.mod index 552e3bbb07db0..bc13e9cf4a943 100644 --- a/comp/core/status/statusimpl/go.mod +++ b/comp/core/status/statusimpl/go.mod @@ -1,6 +1,6 @@ module github.com/DataDog/datadog-agent/comp/core/status/statusimpl -go 1.22.0 +go 1.23.0 replace ( github.com/DataDog/datadog-agent/comp/api/api/def => ../../../api/api/def diff --git a/comp/languagedetection/client/clientimpl/util.go b/comp/languagedetection/client/clientimpl/util.go index b06cf5191f7b9..06aa3a6f2f5f7 100644 --- a/comp/languagedetection/client/clientimpl/util.go +++ b/comp/languagedetection/client/clientimpl/util.go @@ -94,5 +94,5 @@ func getContainerInfoFromPod(cid string, pod *workloadmeta.KubernetesPod) (strin } func podHasOwner(pod *workloadmeta.KubernetesPod) bool { - return pod.Owners != nil && len(pod.Owners) > 0 + return len(pod.Owners) > 0 } diff --git a/comp/netflow/payload/go.mod b/comp/netflow/payload/go.mod index cfcfcc36b8e62..a652785dfb405 100644 --- a/comp/netflow/payload/go.mod +++ b/comp/netflow/payload/go.mod @@ -1,3 +1,3 @@ module github.com/DataDog/datadog-agent/comp/netflow/payload -go 1.22.0 +go 1.23.0 diff --git a/devenv/scripts/Install-DevEnv.ps1 b/devenv/scripts/Install-DevEnv.ps1 index 87ab88208b694..e977850a7e5ec 100644 --- a/devenv/scripts/Install-DevEnv.ps1 +++ b/devenv/scripts/Install-DevEnv.ps1 @@ -45,7 +45,7 @@ Write-Host -ForegroundColor Yellow -BackgroundColor DarkGreen '- Installing Gola $ErrorActionPreference = 'Stop' $ProgressPreference = 'SilentlyContinue' -$go_version = "1.22.8" +$go_version = "1.23.3" Write-Host -ForegroundColor Green "Installing go $go_version" $gozip = "https://dl.google.com/go/go$go_version.windows-amd64.zip" diff --git a/docs/dev/agent_dev_env.md b/docs/dev/agent_dev_env.md index 2674bee851c5a..d377808f09bf9 100644 --- a/docs/dev/agent_dev_env.md +++ b/docs/dev/agent_dev_env.md @@ -138,8 +138,8 @@ This procedure ensures you not only get the correct version of `invoke`, but als ### Golang -You must [install Golang](https://golang.org/doc/install) version `1.22.8` or -higher. Make sure that `$GOPATH/bin` is in your `$PATH` otherwise `invoke` +You must [install Golang](https://golang.org/doc/install) version `1.23.3` or +later. Make sure that `$GOPATH/bin` is in your `$PATH` otherwise `invoke` cannot use any additional tool it might need. **Please note that versions of Golang that aren't an exact match to the version diff --git a/docs/public/setup.md b/docs/public/setup.md index 38e2306335195..e9ee454a1fa5e 100644 --- a/docs/public/setup.md +++ b/docs/public/setup.md @@ -101,7 +101,7 @@ This procedure ensures you not only get the correct version of `invoke`, but als ### Golang -You must [install Golang](https://golang.org/doc/install) version `1.22.8` or higher. Make sure that `$GOPATH/bin` is in your `$PATH` otherwise `invoke` cannot use any additional tool it might need. +You must [install Golang](https://golang.org/doc/install) version `1.23.3` or later. Make sure that `$GOPATH/bin` is in your `$PATH` otherwise `invoke` cannot use any additional tool it might need. !!! note Versions of Golang that aren't an exact match to the version specified in our build images (see e.g. [here](https://github.com/DataDog/datadog-agent-buildimages/blob/c025473ee467ee6d884d532e4c12c7d982ce8fe1/circleci/Dockerfile#L43)) may not be able to build the agent and/or the [rtloader](https://github.com/DataDog/datadog-agent/tree/main/rtloader) binary properly. diff --git a/go.mod b/go.mod index db7a637f947c1..2c8473f077cef 100644 --- a/go.mod +++ b/go.mod @@ -1,8 +1,6 @@ module github.com/DataDog/datadog-agent -go 1.22.1 - -toolchain go1.22.8 +go 1.23.0 // v0.8.0 was tagged long ago, and appared on pkg.go.dev. We do not want any tagged version // to appear there. The trick to accomplish this is to make a new version (in this case v0.9.0) @@ -355,7 +353,7 @@ require ( code.cloudfoundry.org/rep v0.0.0-20200325195957-1404b978e31e // indirect code.cloudfoundry.org/tlsconfig v0.0.0-20200131000646-bbe0f8da39b3 // indirect github.com/AlekSi/pointer v1.2.0 // indirect - github.com/BurntSushi/toml v1.4.0 // indirect + github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c // indirect github.com/DataDog/aptly v1.5.3 // indirect github.com/DataDog/go-tuf v1.1.0-0.5.2 github.com/DataDog/gostackparse v0.7.0 // indirect @@ -1044,7 +1042,7 @@ require ( gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect - honnef.co/go/tools v0.4.7 // indirect + honnef.co/go/tools v0.5.1 // indirect k8s.io/kms v0.31.2 // indirect k8s.io/sample-controller v0.31.2 // indirect modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6 // indirect diff --git a/go.sum b/go.sum index 0e49865aadf0e..25645013fb435 100644 --- a/go.sum +++ b/go.sum @@ -106,8 +106,8 @@ github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBp github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mxXfQidrMEnLlPk9UMeRtyBTnEFtxkV0kU= github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= -github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= +github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c h1:pxW6RcqyfI9/kWtOwnv/G+AzdKuy2ZrqINhenH4HyNs= +github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Code-Hex/go-generics-cache v1.5.1 h1:6vhZGc5M7Y/YD8cIUcY8kcuQLB4cHR7U+0KMqAA0KcU= github.com/Code-Hex/go-generics-cache v1.5.1/go.mod h1:qxcC9kRVrct9rHeiYpFWSoW1vxyillCVzX13KZG8dl4= @@ -2659,8 +2659,8 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.4.7 h1:9MDAWxMoSnB6QoSqiVr7P5mtkT9pOc1kSxchzPCnqJs= -honnef.co/go/tools v0.4.7/go.mod h1:+rnGS1THNh8zMwnd2oVOTL9QF6vmfyG6ZXBULae2uc0= +honnef.co/go/tools v0.5.1 h1:4bH5o3b5ZULQ4UrBmP+63W9r7qIkqJClEA9ko5YKx+I= +honnef.co/go/tools v0.5.1/go.mod h1:e9irvo83WDG9/irijV44wr3tbhcFeRnfpVlRqVwpzMs= k8s.io/api v0.21.1/go.mod h1:FstGROTmsSHBarKc8bylzXih8BLNYTiS3TZcsoEDg2s= k8s.io/api v0.31.2 h1:3wLBbL5Uom/8Zy98GRPXpJ254nEFpl+hwndmk9RwmL0= k8s.io/api v0.31.2/go.mod h1:bWmGvrGPssSK1ljmLzd3pwCQ9MgoTsRCuK35u6SygUk= diff --git a/go.work b/go.work index d77cbb12e6c13..fb1eb5e121c1c 100644 --- a/go.work +++ b/go.work @@ -1,4 +1,6 @@ -go 1.22.8 +go 1.23.0 + +toolchain go1.23.3 use ( . diff --git a/internal/tools/go.mod b/internal/tools/go.mod index 8df888a7954d4..f36b63a0c8482 100644 --- a/internal/tools/go.mod +++ b/internal/tools/go.mod @@ -1,11 +1,11 @@ module github.com/DataDog/datadog-agent/internal/tools -go 1.22.0 +go 1.23.0 require ( github.com/frapposelli/wwhrd v0.4.0 github.com/go-enry/go-license-detector/v4 v4.3.0 - github.com/golangci/golangci-lint v1.59.1 + github.com/golangci/golangci-lint v1.60.3 github.com/goware/modvendor v0.5.0 github.com/stormcat24/protodep v0.1.8 github.com/vektra/mockery/v2 v2.40.1 @@ -23,11 +23,11 @@ require ( github.com/Abirdcfly/dupword v0.0.14 // indirect github.com/Antonboom/errname v0.1.13 // indirect github.com/Antonboom/nilnil v0.1.9 // indirect - github.com/Antonboom/testifylint v1.3.1 // indirect - github.com/BurntSushi/toml v1.4.0 // indirect - github.com/Crocmagnon/fatcontext v0.2.2 // indirect + github.com/Antonboom/testifylint v1.4.3 // indirect + github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c // indirect + github.com/Crocmagnon/fatcontext v0.4.0 // indirect github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 // indirect - github.com/GaijinEntertainment/go-exhaustruct/v3 v3.2.0 // indirect + github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.0 // indirect github.com/Masterminds/semver/v3 v3.3.1 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/OpenPeeDeeP/depguard/v2 v2.2.0 // indirect @@ -43,7 +43,7 @@ require ( github.com/bitfield/gotestdox v0.2.1 // indirect github.com/bkielbasa/cyclop v1.2.1 // indirect github.com/blizzy78/varnamelen v0.8.0 // indirect - github.com/bombsimon/wsl/v4 v4.2.1 // indirect + github.com/bombsimon/wsl/v4 v4.4.1 // indirect github.com/breml/bidichk v0.2.7 // indirect github.com/breml/errchkjson v0.3.6 // indirect github.com/briandowns/spinner v1.23.0 // indirect @@ -88,11 +88,11 @@ require ( github.com/go-viper/mapstructure/v2 v2.2.1 // indirect github.com/go-xmlfmt/xmlfmt v1.1.2 // indirect github.com/gobwas/glob v0.2.3 // indirect - github.com/gofrs/flock v0.8.1 // indirect + github.com/gofrs/flock v0.12.1 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/mock v1.6.0 // indirect github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a // indirect - github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e // indirect + github.com/golangci/gofmt v0.0.0-20240816233607-d8596aa466a9 // indirect github.com/golangci/misspell v0.6.0 // indirect github.com/golangci/modinfo v0.3.4 // indirect github.com/golangci/plugin-module-register v0.1.1 // indirect @@ -120,7 +120,7 @@ require ( github.com/jingyugao/rowserrcheck v1.1.1 // indirect github.com/jinzhu/copier v0.3.5 // indirect github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af // indirect - github.com/jjti/go-spancheck v0.6.1 // indirect + github.com/jjti/go-spancheck v0.6.2 // indirect github.com/julz/importas v0.1.0 // indirect github.com/karamaru-alpha/copyloopvar v1.1.0 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect @@ -144,11 +144,11 @@ require ( github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mattn/go-zglob v0.0.2-0.20191112051448-a8912a37f9e7 // indirect - github.com/mgechev/revive v1.3.7 // indirect + github.com/mgechev/revive v1.3.9 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/montanaflynn/stats v0.7.0 // indirect - github.com/moricho/tparallel v0.3.1 // indirect + github.com/moricho/tparallel v0.3.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/nakabonne/nestif v0.3.1 // indirect github.com/nishanths/exhaustive v0.12.0 // indirect @@ -156,12 +156,11 @@ require ( github.com/nunnatsa/ginkgolinter v0.16.2 // indirect github.com/olekukonko/tablewriter v0.0.5 // indirect github.com/onsi/ginkgo/v2 v2.20.2 // indirect - github.com/onsi/gomega v1.34.1 // indirect github.com/pelletier/go-toml/v2 v2.2.2 // indirect github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/polyfloyd/go-errorlint v1.5.2 // indirect + github.com/polyfloyd/go-errorlint v1.6.0 // indirect github.com/prometheus/client_golang v1.20.5 // indirect github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.60.1 // indirect @@ -175,21 +174,21 @@ require ( github.com/rogpeppe/go-internal v1.13.1 // indirect github.com/rs/zerolog v1.33.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect - github.com/ryancurrah/gomodguard v1.3.2 // indirect + github.com/ryancurrah/gomodguard v1.3.3 // indirect github.com/ryanrolds/sqlclosecheck v0.5.1 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/sanposhiho/wastedassign/v2 v2.0.7 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect github.com/sashamelentyev/interfacebloat v1.1.0 // indirect - github.com/sashamelentyev/usestdlibvars v1.26.0 // indirect - github.com/securego/gosec/v2 v2.20.1-0.20240525090044-5f0084eb01a9 // indirect + github.com/sashamelentyev/usestdlibvars v1.27.0 // indirect + github.com/securego/gosec/v2 v2.20.1-0.20240822074752-ab3f6c1c83a0 // indirect github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c // indirect github.com/shogo82148/go-shuffle v0.0.0-20170808115208-59829097ff3b // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/sivchari/containedctx v1.0.3 // indirect - github.com/sivchari/tenv v1.7.1 // indirect + github.com/sivchari/tenv v1.10.0 // indirect github.com/skeema/knownhosts v1.2.2 // indirect github.com/sonatard/noctx v0.0.2 // indirect github.com/sourcegraph/conc v0.3.0 // indirect @@ -204,16 +203,15 @@ require ( github.com/stretchr/objx v0.5.2 // indirect github.com/stretchr/testify v1.10.0 // indirect github.com/subosito/gotenv v1.6.0 // indirect - github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c // indirect github.com/tdakkota/asciicheck v0.2.0 // indirect github.com/tetafro/godot v1.4.16 // indirect github.com/timakin/bodyclose v0.0.0-20230421092635-574207250966 // indirect github.com/timonwong/loggercheck v0.9.4 // indirect - github.com/tomarrell/wrapcheck/v2 v2.8.3 // indirect + github.com/tomarrell/wrapcheck/v2 v2.9.0 // indirect github.com/tommy-muehle/go-mnd/v2 v2.5.1 // indirect github.com/ultraware/funlen v0.1.0 // indirect github.com/ultraware/whitespace v0.1.1 // indirect - github.com/uudashr/gocognit v1.1.2 // indirect + github.com/uudashr/gocognit v1.1.3 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xen0n/gosmopolitan v1.2.2 // indirect github.com/yagipy/maintidx v1.0.0 // indirect @@ -221,7 +219,7 @@ require ( github.com/ykadowak/zerologlint v0.1.5 // indirect gitlab.com/bosi/decorder v0.4.2 // indirect go-simpler.org/musttag v0.12.2 // indirect - go-simpler.org/sloglint v0.7.1 // indirect + go-simpler.org/sloglint v0.7.2 // indirect go.uber.org/automaxprocs v1.6.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect @@ -243,7 +241,7 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gotest.tools/v3 v3.5.1 // indirect - honnef.co/go/tools v0.4.7 // indirect - mvdan.cc/gofumpt v0.6.0 // indirect + honnef.co/go/tools v0.5.1 // indirect + mvdan.cc/gofumpt v0.7.0 // indirect mvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f // indirect ) diff --git a/internal/tools/go.sum b/internal/tools/go.sum index b14a8994d503e..fe1a392650914 100644 --- a/internal/tools/go.sum +++ b/internal/tools/go.sum @@ -13,17 +13,17 @@ github.com/Antonboom/errname v0.1.13 h1:JHICqsewj/fNckzrfVSe+T33svwQxmjC+1ntDsHO github.com/Antonboom/errname v0.1.13/go.mod h1:uWyefRYRN54lBg6HseYCFhs6Qjcy41Y3Jl/dVhA87Ns= github.com/Antonboom/nilnil v0.1.9 h1:eKFMejSxPSA9eLSensFmjW2XTgTwJMjZ8hUHtV4s/SQ= github.com/Antonboom/nilnil v0.1.9/go.mod h1:iGe2rYwCq5/Me1khrysB4nwI7swQvjclR8/YRPl5ihQ= -github.com/Antonboom/testifylint v1.3.1 h1:Uam4q1Q+2b6H7gvk9RQFw6jyVDdpzIirFOOrbs14eG4= -github.com/Antonboom/testifylint v1.3.1/go.mod h1:NV0hTlteCkViPW9mSR4wEMfwp+Hs1T3dY60bkvSfhpM= -github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= -github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= +github.com/Antonboom/testifylint v1.4.3 h1:ohMt6AHuHgttaQ1xb6SSnxCeK4/rnK7KKzbvs7DmEck= +github.com/Antonboom/testifylint v1.4.3/go.mod h1:+8Q9+AOLsz5ZiQiiYujJKs9mNz398+M6UgslP4qgJLA= +github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c h1:pxW6RcqyfI9/kWtOwnv/G+AzdKuy2ZrqINhenH4HyNs= +github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/Crocmagnon/fatcontext v0.2.2 h1:OrFlsDdOj9hW/oBEJBNSuH7QWf+E9WPVHw+x52bXVbk= -github.com/Crocmagnon/fatcontext v0.2.2/go.mod h1:WSn/c/+MMNiD8Pri0ahRj0o9jVpeowzavOQplBJw6u0= +github.com/Crocmagnon/fatcontext v0.4.0 h1:4ykozu23YHA0JB6+thiuEv7iT6xq995qS1vcuWZq0tg= +github.com/Crocmagnon/fatcontext v0.4.0/go.mod h1:ZtWrXkgyfsYPzS6K3O88va6t2GEglG93vnII/F94WC0= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= -github.com/GaijinEntertainment/go-exhaustruct/v3 v3.2.0 h1:sATXp1x6/axKxz2Gjxv8MALP0bXaNRfQinEwyfMcx8c= -github.com/GaijinEntertainment/go-exhaustruct/v3 v3.2.0/go.mod h1:Nl76DrGNJTA1KJ0LePKBw/vznBX1EHbAZX8mwjR82nI= +github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.0 h1:/fTUt5vmbkAcMBt4YQiuC23cV0kEsN1MVMNqeOW43cU= +github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.0/go.mod h1:ONJg5sxcbsdQQ4pOW8TGdTidT2TMAUy/2Xhr8mrYaao= github.com/GoogleCloudPlatform/cloudsql-proxy v0.0.0-20190129172621-c8b1d7a94ddf/go.mod h1:aJ4qN3TfrelA6NZ6AXsXRfmEVaYin3EDbSPJrKS8OXo= github.com/Masterminds/semver/v3 v3.3.1 h1:QtNSWtVZ3nBfk8mAOu/B6v7FMJ+NHTIgUPi7rj+4nv4= github.com/Masterminds/semver/v3 v3.3.1/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= @@ -67,8 +67,8 @@ github.com/bkielbasa/cyclop v1.2.1 h1:AeF71HZDob1P2/pRm1so9cd1alZnrpyc4q2uP2l0gJ github.com/bkielbasa/cyclop v1.2.1/go.mod h1:K/dT/M0FPAiYjBgQGau7tz+3TMh4FWAEqlMhzFWCrgM= github.com/blizzy78/varnamelen v0.8.0 h1:oqSblyuQvFsW1hbBHh1zfwrKe3kcSj0rnXkKzsQ089M= github.com/blizzy78/varnamelen v0.8.0/go.mod h1:V9TzQZ4fLJ1DSrjVDfl89H7aMnTvKkApdHeyESmyR7k= -github.com/bombsimon/wsl/v4 v4.2.1 h1:Cxg6u+XDWff75SIFFmNsqnIOgob+Q9hG6y/ioKbRFiM= -github.com/bombsimon/wsl/v4 v4.2.1/go.mod h1:Xu/kDxGZTofQcDGCtQe9KCzhHphIe0fDuyWTxER9Feo= +github.com/bombsimon/wsl/v4 v4.4.1 h1:jfUaCkN+aUpobrMO24zwyAMwMAV5eSziCkOKEauOLdw= +github.com/bombsimon/wsl/v4 v4.4.1/go.mod h1:Xu/kDxGZTofQcDGCtQe9KCzhHphIe0fDuyWTxER9Feo= github.com/breml/bidichk v0.2.7 h1:dAkKQPLl/Qrk7hnP6P+E0xOodrq8Us7+U0o4UBOAlQY= github.com/breml/bidichk v0.2.7/go.mod h1:YodjipAGI9fGcYM7II6wFvGhdMYsC5pHDlGzqvEW3tQ= github.com/breml/errchkjson v0.3.6 h1:VLhVkqSBH96AvXEyclMR37rZslRrY2kcyq+31HCsVrA= @@ -170,6 +170,8 @@ github.com/go-git/go-git/v5 v5.12.0 h1:7Md+ndsjrzZxbddRDZjF14qK+NN56sy6wkqaVrjZt github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXYjuz9i5OEY= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-quicktest/qt v1.101.0 h1:O1K29Txy5P2OK0dGo59b7b0LR6wKfIhttaAhHUyn7eI= +github.com/go-quicktest/qt v1.101.0/go.mod h1:14Bz/f7NwaXPtdYEgzsx46kqSxVwTbzVZsDC26tQJow= github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= @@ -199,8 +201,8 @@ github.com/go-xmlfmt/xmlfmt v1.1.2/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6C github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= -github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= +github.com/gofrs/flock v0.12.1 h1:MTLVXXHf8ekldpJk3AKicLij9MdwOWkZ+a/jHHZby9E= +github.com/gofrs/flock v0.12.1/go.mod h1:9zxTsyu5xtJ9DK+1tFZyibEV7y3uwDxPPfbxeeHCoD0= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -209,10 +211,10 @@ github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+Licev github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a h1:w8hkcTqaFpzKqonE9uMCefW1WDie15eSP/4MssdenaM= github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk= -github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e h1:ULcKCDV1LOZPFxGZaA6TlQbiM3J2GCPnkx/bGF6sX/g= -github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e/go.mod h1:Pm5KhLPA8gSnQwrQ6ukebRcapGb/BG9iUkdaiCcGHJM= -github.com/golangci/golangci-lint v1.59.1 h1:CRRLu1JbhK5avLABFJ/OHVSQ0Ie5c4ulsOId1h3TTks= -github.com/golangci/golangci-lint v1.59.1/go.mod h1:jX5Oif4C7P0j9++YB2MMJmoNrb01NJ8ITqKWNLewThg= +github.com/golangci/gofmt v0.0.0-20240816233607-d8596aa466a9 h1:/1322Qns6BtQxUZDTAT4SdcoxknUki7IAoK4SAXr8ME= +github.com/golangci/gofmt v0.0.0-20240816233607-d8596aa466a9/go.mod h1:Oesb/0uFAyWoaw1U1qS5zyjCg5NP9C9iwjnI4tIsXEE= +github.com/golangci/golangci-lint v1.60.3 h1:l38A5de24ZeDlcFF+EB7m3W5joPD99/hS5SIHJPyZa0= +github.com/golangci/golangci-lint v1.60.3/go.mod h1:J4vOpcjzRI+lDL2DKNGBZVB3EQSBfCBCMpaydWLtJNo= github.com/golangci/misspell v0.6.0 h1:JCle2HUTNWirNlDIAUO44hUsKhOFqGPoC4LZxlaSXDs= github.com/golangci/misspell v0.6.0/go.mod h1:keMNyY6R9isGaSAu+4Q8NMBwMPkh15Gtc8UCVoDtAWo= github.com/golangci/modinfo v0.3.4 h1:oU5huX3fbxqQXdfspamej74DFX0kyGLkw1ppvXoJ8GA= @@ -292,8 +294,8 @@ github.com/jinzhu/copier v0.3.5 h1:GlvfUwHk62RokgqVNvYsku0TATCF7bAHVwEXoBh3iJg= github.com/jinzhu/copier v0.3.5/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg= github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af h1:KA9BjwUk7KlCh6S9EAGWBt1oExIUv9WyNCiRz5amv48= github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0= -github.com/jjti/go-spancheck v0.6.1 h1:ZK/wE5Kyi1VX3PJpUO2oEgeoI4FWOUm7Shb2Gbv5obI= -github.com/jjti/go-spancheck v0.6.1/go.mod h1:vF1QkOO159prdo6mHRxak2CpzDpHAfKiPUDP/NeRnX8= +github.com/jjti/go-spancheck v0.6.2 h1:iYtoxqPMzHUPp7St+5yA8+cONdyXD3ug6KK15n7Pklk= +github.com/jjti/go-spancheck v0.6.2/go.mod h1:+X7lvIrR5ZdUTkxFYqzJ0abr8Sb5LOo80uOhWNqIrYA= github.com/jteeuwen/go-bindata v3.0.8-0.20180305030458-6025e8de665b+incompatible/go.mod h1:JVvhzYOiGBnFSYRyV00iY8q7/0PThjIYav1p9h5dmKs= github.com/julz/importas v0.1.0 h1:F78HnrsjY3cR7j0etXy5+TU1Zuy7Xt08X/1aJnH5xXY= github.com/julz/importas v0.1.0/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSXO0DV0= @@ -357,8 +359,8 @@ github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh github.com/mattn/go-sqlite3 v1.14.5/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI= github.com/mattn/go-zglob v0.0.2-0.20191112051448-a8912a37f9e7 h1:6HgbBMgs3hI9y1/MYG0r9j6daUubUskZNsEW4fkWR/k= github.com/mattn/go-zglob v0.0.2-0.20191112051448-a8912a37f9e7/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo= -github.com/mgechev/revive v1.3.7 h1:502QY0vQGe9KtYJ9FpxMz9rL+Fc/P13CI5POL4uHCcE= -github.com/mgechev/revive v1.3.7/go.mod h1:RJ16jUbF0OWC3co/+XTxmFNgEpUPwnnA0BRllX2aDNA= +github.com/mgechev/revive v1.3.9 h1:18Y3R4a2USSBF+QZKFQwVkBROUda7uoBlkEuBD+YD1A= +github.com/mgechev/revive v1.3.9/go.mod h1:+uxEIr5UH0TjXWHTno3xh4u7eg6jDpXKzQccA9UGhHU= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= @@ -366,8 +368,8 @@ github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1 github.com/montanaflynn/stats v0.0.0-20151014174947-eeaced052adb/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/montanaflynn/stats v0.7.0 h1:r3y12KyNxj/Sb/iOE46ws+3mS1+MZca1wlHQFPsY/JU= github.com/montanaflynn/stats v0.7.0/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= -github.com/moricho/tparallel v0.3.1 h1:fQKD4U1wRMAYNngDonW5XupoB/ZGJHdpzrWqgyg9krA= -github.com/moricho/tparallel v0.3.1/go.mod h1:leENX2cUv7Sv2qDgdi0D0fCftN8fRC67Bcn8pqzeYNI= +github.com/moricho/tparallel v0.3.2 h1:odr8aZVFA3NZrNybggMkYO3rgPRcqjeQUlBBFVxKHTI= +github.com/moricho/tparallel v0.3.2/go.mod h1:OQ+K3b4Ln3l2TZveGCywybl68glfLEwFGqvnjok8b+U= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/nakabonne/nestif v0.3.1 h1:wm28nZjhQY5HyYPx+weN3Q65k6ilSBxDb8v5S81B81U= @@ -404,8 +406,8 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/polyfloyd/go-errorlint v1.5.2 h1:SJhVik3Umsjh7mte1vE0fVZ5T1gznasQG3PV7U5xFdA= -github.com/polyfloyd/go-errorlint v1.5.2/go.mod h1:sH1QC1pxxi0fFecsVIzBmxtrgd9IF/SkJpA6wqyKAJs= +github.com/polyfloyd/go-errorlint v1.6.0 h1:tftWV9DE7txiFzPpztTAwyoRLKNj9gpVm2cg8/OwcYY= +github.com/polyfloyd/go-errorlint v1.6.0/go.mod h1:HR7u8wuP1kb1NeN1zqTd1ZMlqUKPPHF+Id4vIPvDqVw= github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= @@ -438,8 +440,8 @@ github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWR github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/ryancurrah/gomodguard v1.3.2 h1:CuG27ulzEB1Gu5Dk5gP8PFxSOZ3ptSdP5iI/3IXxM18= -github.com/ryancurrah/gomodguard v1.3.2/go.mod h1:LqdemiFomEjcxOqirbQCb3JFvSxH2JUYMerTFd3sF2o= +github.com/ryancurrah/gomodguard v1.3.3 h1:eiSQdJVNr9KTNxY2Niij8UReSwR8Xrte3exBrAZfqpg= +github.com/ryancurrah/gomodguard v1.3.3/go.mod h1:rsKQjj4l3LXe8N344Ow7agAy5p9yjsWOtRzUMYmA0QY= github.com/ryanrolds/sqlclosecheck v0.5.1 h1:dibWW826u0P8jNLsLN+En7+RqWWTYrjCB9fJfSfdyCU= github.com/ryanrolds/sqlclosecheck v0.5.1/go.mod h1:2g3dUjoS6AL4huFdv6wn55WpLIDjY7ZgUR4J8HOO/XQ= github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= @@ -452,10 +454,10 @@ github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 h1:lZUw3E0/J3roVtGQ+SCrUrg3ON6Ng github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPOhJotwFIyu2bBVN41fcDUY= github.com/sashamelentyev/interfacebloat v1.1.0 h1:xdRdJp0irL086OyW1H/RTZTr1h/tMEOsumirXcOJqAw= github.com/sashamelentyev/interfacebloat v1.1.0/go.mod h1:+Y9yU5YdTkrNvoX0xHc84dxiN1iBi9+G8zZIhPVoNjQ= -github.com/sashamelentyev/usestdlibvars v1.26.0 h1:LONR2hNVKxRmzIrZR0PhSF3mhCAzvnr+DcUiHgREfXE= -github.com/sashamelentyev/usestdlibvars v1.26.0/go.mod h1:9nl0jgOfHKWNFS43Ojw0i7aRoS4j6EBye3YBhmAIRF8= -github.com/securego/gosec/v2 v2.20.1-0.20240525090044-5f0084eb01a9 h1:rnO6Zp1YMQwv8AyxzuwsVohljJgp4L0ZqiCgtACsPsc= -github.com/securego/gosec/v2 v2.20.1-0.20240525090044-5f0084eb01a9/go.mod h1:dg7lPlu/xK/Ut9SedURCoZbVCR4yC7fM65DtH9/CDHs= +github.com/sashamelentyev/usestdlibvars v1.27.0 h1:t/3jZpSXtRPRf2xr0m63i32ZrusyurIGT9E5wAvXQnI= +github.com/sashamelentyev/usestdlibvars v1.27.0/go.mod h1:9nl0jgOfHKWNFS43Ojw0i7aRoS4j6EBye3YBhmAIRF8= +github.com/securego/gosec/v2 v2.20.1-0.20240822074752-ab3f6c1c83a0 h1:VqD4JMoqwuuCz8GZlBDsIDyE6K4YUsWJpbNtuOWHoFk= +github.com/securego/gosec/v2 v2.20.1-0.20240822074752-ab3f6c1c83a0/go.mod h1:iyeMMRw8QEmueUSZ2VqmkQMiDyDcobfPnG00CV/NWdE= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= @@ -471,8 +473,8 @@ github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/sivchari/containedctx v1.0.3 h1:x+etemjbsh2fB5ewm5FeLNi5bUjK0V8n0RB+Wwfd0XE= github.com/sivchari/containedctx v1.0.3/go.mod h1:c1RDvCbnJLtH4lLcYD/GqwiBSSf4F5Qk0xld2rBqzJ4= -github.com/sivchari/tenv v1.7.1 h1:PSpuD4bu6fSmtWMxSGWcvqUUgIn7k3yOJhOIzVWn8Ak= -github.com/sivchari/tenv v1.7.1/go.mod h1:64yStXKSOxDfX47NlhVwND4dHwfZDdbp2Lyl018Icvg= +github.com/sivchari/tenv v1.10.0 h1:g/hzMA+dBCKqGXgW8AV/1xIWhAvDrx0zFKNR48NFMg0= +github.com/sivchari/tenv v1.10.0/go.mod h1:tdY24masnVoZFxYrHv/nD6Tc8FbkEtAQEEziXpyMgqY= github.com/skeema/knownhosts v1.2.2 h1:Iug2P4fLmDw9f41PB6thxUkNUkJzB5i+1/exaj40L3A= github.com/skeema/knownhosts v1.2.2/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= github.com/sonatard/noctx v0.0.2 h1:L7Dz4De2zDQhW8S0t+KUjY0MAQJd6SgVwhzNIc4ok00= @@ -518,8 +520,6 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= -github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c h1:+aPplBwWcHBo6q9xrfWdMrT9o4kltkmmvpemgIjep/8= -github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c/go.mod h1:SbErYREK7xXdsRiigaQiQkI9McGRzYMvlKYaP3Nimdk= github.com/tdakkota/asciicheck v0.2.0 h1:o8jvnUANo0qXtnslk2d3nMKTFNlOnJjRrNcj0j9qkHM= github.com/tdakkota/asciicheck v0.2.0/go.mod h1:Qb7Y9EgjCLJGup51gDHFzbI08/gbGhL/UVhYIPWG2rg= github.com/tenntenn/modver v1.0.1 h1:2klLppGhDgzJrScMpkj9Ujy3rXPUspSjAcev9tSEBgA= @@ -532,16 +532,16 @@ github.com/timakin/bodyclose v0.0.0-20230421092635-574207250966 h1:quvGphlmUVU+n github.com/timakin/bodyclose v0.0.0-20230421092635-574207250966/go.mod h1:27bSVNWSBOHm+qRp1T9qzaIpsWEP6TbUnei/43HK+PQ= github.com/timonwong/loggercheck v0.9.4 h1:HKKhqrjcVj8sxL7K77beXh0adEm6DLjV/QOGeMXEVi4= github.com/timonwong/loggercheck v0.9.4/go.mod h1:caz4zlPcgvpEkXgVnAJGowHAMW2NwHaNlpS8xDbVhTg= -github.com/tomarrell/wrapcheck/v2 v2.8.3 h1:5ov+Cbhlgi7s/a42BprYoxsr73CbdMUTzE3bRDFASUs= -github.com/tomarrell/wrapcheck/v2 v2.8.3/go.mod h1:g9vNIyhb5/9TQgumxQyOEqDHsmGYcGsVMOx/xGkqdMo= +github.com/tomarrell/wrapcheck/v2 v2.9.0 h1:801U2YCAjLhdN8zhZ/7tdjB3EnAoRlJHt/s+9hijLQ4= +github.com/tomarrell/wrapcheck/v2 v2.9.0/go.mod h1:g9vNIyhb5/9TQgumxQyOEqDHsmGYcGsVMOx/xGkqdMo= github.com/tommy-muehle/go-mnd/v2 v2.5.1 h1:NowYhSdyE/1zwK9QCLeRb6USWdoif80Ie+v+yU8u1Zw= github.com/tommy-muehle/go-mnd/v2 v2.5.1/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw= github.com/ultraware/funlen v0.1.0 h1:BuqclbkY6pO+cvxoq7OsktIXZpgBSkYTQtmwhAK81vI= github.com/ultraware/funlen v0.1.0/go.mod h1:XJqmOQja6DpxarLj6Jj1U7JuoS8PvL4nEqDaQhy22p4= github.com/ultraware/whitespace v0.1.1 h1:bTPOGejYFulW3PkcrqkeQwOd6NKOOXvmGD9bo/Gk8VQ= github.com/ultraware/whitespace v0.1.1/go.mod h1:XcP1RLD81eV4BW8UhQlpaR+SDc2givTvyI8a586WjW8= -github.com/uudashr/gocognit v1.1.2 h1:l6BAEKJqQH2UpKAPKdMfZf5kE4W/2xk8pfU1OVLvniI= -github.com/uudashr/gocognit v1.1.2/go.mod h1:aAVdLURqcanke8h3vg35BC++eseDm66Z7KmchI5et4k= +github.com/uudashr/gocognit v1.1.3 h1:l+a111VcDbKfynh+airAy/DJQKaXh2m9vkoysMPSZyM= +github.com/uudashr/gocognit v1.1.3/go.mod h1:aKH8/e8xbTRBwjbCkwZ8qt4l2EpKXl31KMHgSS+lZ2U= github.com/vektra/mockery/v2 v2.40.1 h1:8D01rBqloDLDHKZGXkyUD9Yj5Z+oDXBqDZ+tRXYM/oA= github.com/vektra/mockery/v2 v2.40.1/go.mod h1:dPzGtjT0/Uu4hqpF6QNHwz+GLago7lq1bxdj9wHbGKo= github.com/wadey/gocovmerge v0.0.0-20160331181800-b5bfa59ec0ad h1:W0LEBv82YCGEtcmPA3uNZBI33/qF//HAAs3MawDjRa0= @@ -569,8 +569,8 @@ go-simpler.org/assert v0.9.0 h1:PfpmcSvL7yAnWyChSjOz6Sp6m9j5lyK8Ok9pEL31YkQ= go-simpler.org/assert v0.9.0/go.mod h1:74Eqh5eI6vCK6Y5l3PI8ZYFXG4Sa+tkr70OIPJAUr28= go-simpler.org/musttag v0.12.2 h1:J7lRc2ysXOq7eM8rwaTYnNrHd5JwjppzB6mScysB2Cs= go-simpler.org/musttag v0.12.2/go.mod h1:uN1DVIasMTQKk6XSik7yrJoEysGtR2GRqvWnI9S7TYM= -go-simpler.org/sloglint v0.7.1 h1:qlGLiqHbN5islOxjeLXoPtUdZXb669RW+BDQ+xOSNoU= -go-simpler.org/sloglint v0.7.1/go.mod h1:OlaVDRh/FKKd4X4sIMbsz8st97vomydceL146Fthh/c= +go-simpler.org/sloglint v0.7.2 h1:Wc9Em/Zeuu7JYpl+oKoYOsQSy2X560aVueCW/m6IijY= +go-simpler.org/sloglint v0.7.2/go.mod h1:US+9C80ppl7VsThQclkM7BkCHQAzuz8kHLsW3ppuluo= go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs= go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= @@ -678,7 +678,6 @@ golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211105183446-c75c47738b0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220702020025-31831981b65f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -735,7 +734,6 @@ golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= -golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= @@ -783,10 +781,10 @@ gotest.tools/gotestsum v1.11.0/go.mod h1:cUOKgFEvWAP0twchmiOvdzX0SBZX0UI58bGRpRI gotest.tools/v3 v3.3.0/go.mod h1:Mcr9QNxkg0uMvy/YElmo4SpXgJKWgQvYrT7Kw5RzJ1A= gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= -honnef.co/go/tools v0.4.7 h1:9MDAWxMoSnB6QoSqiVr7P5mtkT9pOc1kSxchzPCnqJs= -honnef.co/go/tools v0.4.7/go.mod h1:+rnGS1THNh8zMwnd2oVOTL9QF6vmfyG6ZXBULae2uc0= -mvdan.cc/gofumpt v0.6.0 h1:G3QvahNDmpD+Aek/bNOLrFR2XC6ZAdo62dZu65gmwGo= -mvdan.cc/gofumpt v0.6.0/go.mod h1:4L0wf+kgIPZtcCWXynNS2e6bhmj73umwnuXSZarixzA= +honnef.co/go/tools v0.5.1 h1:4bH5o3b5ZULQ4UrBmP+63W9r7qIkqJClEA9ko5YKx+I= +honnef.co/go/tools v0.5.1/go.mod h1:e9irvo83WDG9/irijV44wr3tbhcFeRnfpVlRqVwpzMs= +mvdan.cc/gofumpt v0.7.0 h1:bg91ttqXmi9y2xawvkuMXyvAA/1ZGJqYAEGjXuP0JXU= +mvdan.cc/gofumpt v0.7.0/go.mod h1:txVFJy/Sc/mvaycET54pV8SW8gWxTlUuGHVEcncmNUo= mvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f h1:lMpcwN6GxNbWtbpI1+xzFLSW8XzX0u72NttUGVFjO3U= mvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f/go.mod h1:RSLa7mKKCNeTTMHBw5Hsy2rfJmd6O2ivt9Dw9ZqCQpQ= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= diff --git a/internal/tools/independent-lint/go.mod b/internal/tools/independent-lint/go.mod index 2b8cae855f68f..1e24d668f7b7a 100644 --- a/internal/tools/independent-lint/go.mod +++ b/internal/tools/independent-lint/go.mod @@ -1,5 +1,5 @@ module github.com/DataDog/datadog-agent/cmd/independent-lint -go 1.22.0 +go 1.23.0 require golang.org/x/mod v0.22.0 diff --git a/internal/tools/modformatter/go.mod b/internal/tools/modformatter/go.mod index 5916efd888608..e43d2f0210e17 100644 --- a/internal/tools/modformatter/go.mod +++ b/internal/tools/modformatter/go.mod @@ -1,5 +1,5 @@ module github.com/DataDog/datadog-agent/internal/tools/modformatter -go 1.22.0 +go 1.23.0 require golang.org/x/mod v0.22.0 diff --git a/internal/tools/modparser/go.mod b/internal/tools/modparser/go.mod index b1884cc02bfb0..2f276b3c6ec8c 100644 --- a/internal/tools/modparser/go.mod +++ b/internal/tools/modparser/go.mod @@ -1,6 +1,6 @@ module github.com/DataDog/datadog-agent/internal/tools/modparser -go 1.22.0 +go 1.23.0 require ( github.com/stretchr/testify v1.10.0 diff --git a/internal/tools/proto/go.mod b/internal/tools/proto/go.mod index a45a52a83d05e..e59f2dde50aa8 100644 --- a/internal/tools/proto/go.mod +++ b/internal/tools/proto/go.mod @@ -1,6 +1,6 @@ module github.com/DataDog/datadog-agent/internal/tools/proto -go 1.22.0 +go 1.23.0 require ( github.com/favadi/protoc-go-inject-tag v1.4.0 diff --git a/pkg/clusteragent/admission/controllers/webhook/controller_v1_test.go b/pkg/clusteragent/admission/controllers/webhook/controller_v1_test.go index a20efbcdcf1e9..aa2a3efc4e68e 100644 --- a/pkg/clusteragent/admission/controllers/webhook/controller_v1_test.go +++ b/pkg/clusteragent/admission/controllers/webhook/controller_v1_test.go @@ -10,7 +10,6 @@ package webhook import ( "context" "reflect" - "runtime" "testing" "time" @@ -97,9 +96,6 @@ func TestCreateWebhookV1(t *testing.T) { } func TestUpdateOutdatedWebhookV1(t *testing.T) { - if runtime.GOOS == "darwin" { - t.Skip("Skipping flaky test on macOS") - } f := newFixtureV1(t) data, err := certificate.GenerateSecretData(time.Now(), time.Now().Add(365*24*time.Hour), []string{"my.svc.dns"}) diff --git a/pkg/clusteragent/admission/controllers/webhook/controller_v1beta1_test.go b/pkg/clusteragent/admission/controllers/webhook/controller_v1beta1_test.go index 3d84c3f515db0..bd5daf906a2fb 100644 --- a/pkg/clusteragent/admission/controllers/webhook/controller_v1beta1_test.go +++ b/pkg/clusteragent/admission/controllers/webhook/controller_v1beta1_test.go @@ -10,7 +10,6 @@ package webhook import ( "context" "reflect" - "runtime" "testing" "time" @@ -92,9 +91,6 @@ func TestCreateWebhookV1beta1(t *testing.T) { } func TestUpdateOutdatedWebhookV1beta1(t *testing.T) { - if runtime.GOOS == "darwin" { - t.Skip("Skipping flaky test on macOS") - } f := newFixtureV1beta1(t) data, err := certificate.GenerateSecretData(time.Now(), time.Now().Add(365*24*time.Hour), []string{"my.svc.dns"}) diff --git a/pkg/collector/corechecks/servicediscovery/usm/service_test.go b/pkg/collector/corechecks/servicediscovery/usm/service_test.go index 8667662d64747..baaddbdffa07a 100644 --- a/pkg/collector/corechecks/servicediscovery/usm/service_test.go +++ b/pkg/collector/corechecks/servicediscovery/usm/service_test.go @@ -13,7 +13,6 @@ import ( "io/fs" "path" "path/filepath" - "runtime" "testing" "github.com/stretchr/testify/require" @@ -721,10 +720,6 @@ func TestExtractServiceMetadata(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if tt.skipOnWindows && runtime.GOOS == "windows" { - t.Skip("Not supported on Windows") - } - var fs fs.SubFS fs = RealFs{} if tt.fs != nil { diff --git a/pkg/config/remote/go.mod b/pkg/config/remote/go.mod index a9197ba15261f..5a00e0b18ab42 100644 --- a/pkg/config/remote/go.mod +++ b/pkg/config/remote/go.mod @@ -1,6 +1,6 @@ module github.com/DataDog/datadog-agent/pkg/config/remote -go 1.22.0 +go 1.23.0 replace ( github.com/DataDog/datadog-agent/comp/api/api/def => ../../../comp/api/api/def diff --git a/pkg/errors/go.mod b/pkg/errors/go.mod index c733178b4236f..54befd8ef9943 100644 --- a/pkg/errors/go.mod +++ b/pkg/errors/go.mod @@ -1,6 +1,6 @@ module github.com/DataDog/datadog-agent/pkg/errors -go 1.22.0 +go 1.23.0 require github.com/stretchr/testify v1.10.0 diff --git a/pkg/gohai/go.mod b/pkg/gohai/go.mod index e180843fd65db..d836c017c69c6 100644 --- a/pkg/gohai/go.mod +++ b/pkg/gohai/go.mod @@ -2,7 +2,7 @@ module github.com/DataDog/datadog-agent/pkg/gohai // we don't want to just use the agent's go version because gohai might be used outside of it // eg. opentelemetry -go 1.22.0 +go 1.23.0 require ( github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 diff --git a/pkg/gohai/utils/common.go b/pkg/gohai/utils/common.go index 2fdb333112fbd..4da85373fb0ad 100644 --- a/pkg/gohai/utils/common.go +++ b/pkg/gohai/utils/common.go @@ -49,7 +49,7 @@ func canBeRendered(ty reflect.Kind) bool { func getValueMethod(fieldTy reflect.StructField) (reflect.Method, bool) { // check that a pointer to the field type has a Value method // (Value is a method on *Value[T]) - valueMethod, ok := reflect.PtrTo(fieldTy.Type).MethodByName("Value") + valueMethod, ok := reflect.PointerTo(fieldTy.Type).MethodByName("Value") if !ok || valueMethod.Type.NumIn() != 1 || valueMethod.Type.NumOut() != 2 { return reflect.Method{}, false } diff --git a/pkg/linters/components/pkgconfigusage/go.mod b/pkg/linters/components/pkgconfigusage/go.mod index c26998e6c6d61..20461858aabd2 100644 --- a/pkg/linters/components/pkgconfigusage/go.mod +++ b/pkg/linters/components/pkgconfigusage/go.mod @@ -1,6 +1,6 @@ module github.com/DataDog/datadog-agent/pkg/linters/components/pkgconfigusage -go 1.22.0 +go 1.23.0 require ( github.com/golangci/plugin-module-register v0.1.1 diff --git a/pkg/logs/launchers/windowsevent/README.md b/pkg/logs/launchers/windowsevent/README.md index 621027fb5a309..08c0a23962c32 100644 --- a/pkg/logs/launchers/windowsevent/README.md +++ b/pkg/logs/launchers/windowsevent/README.md @@ -1,7 +1,7 @@ # How to setup a windows eventlog dev environment Cross compilation from mac is not easy, an easier path is to use a linux vm for that (for instance `ubuntu/trusty64` vagrant vm). -Requirements are to install go 1.22+, and to install `mingw-w64` with apt. +Requirements are to install go 1.23+, and to install `mingw-w64` with apt. Once those requirements are met, to build, run: ``` diff --git a/pkg/networkdevice/profile/go.mod b/pkg/networkdevice/profile/go.mod index 7e9526ac7014c..e28cf2d5640ac 100644 --- a/pkg/networkdevice/profile/go.mod +++ b/pkg/networkdevice/profile/go.mod @@ -1,6 +1,6 @@ module github.com/DataDog/datadog-agent/pkg/networkdevice/profile -go 1.22.0 +go 1.23.0 require ( github.com/invopop/jsonschema v0.12.0 diff --git a/pkg/networkpath/traceroute/traceroute_darwin.go b/pkg/networkpath/traceroute/traceroute_darwin.go index 38be9352f1715..2623beee80fc5 100644 --- a/pkg/networkpath/traceroute/traceroute_darwin.go +++ b/pkg/networkpath/traceroute/traceroute_darwin.go @@ -9,7 +9,7 @@ package traceroute import ( "context" - "fmt" + "errors" "github.com/DataDog/datadog-agent/comp/core/telemetry" "github.com/DataDog/datadog-agent/pkg/networkpath/payload" @@ -42,7 +42,7 @@ func New(cfg config.Config, telemetry telemetry.Component) (*MacTraceroute, erro // TCP is not supported at the moment due to the // way go listens for TCP in our implementation on BSD systems if cfg.Protocol == payload.ProtocolTCP { - return nil, fmt.Errorf(tcpNotSupportedMsg) + return nil, errors.New(tcpNotSupportedMsg) } return &MacTraceroute{ @@ -60,7 +60,7 @@ func (m *MacTraceroute) Run(ctx context.Context) (payload.NetworkPath, error) { // TCP is not supported at the moment due to the // way go listens for TCP in our implementation on BSD systems if m.cfg.Protocol == payload.ProtocolTCP { - return payload.NetworkPath{}, fmt.Errorf(tcpNotSupportedMsg) + return payload.NetworkPath{}, errors.New(tcpNotSupportedMsg) } return m.runner.RunTraceroute(ctx, m.cfg) diff --git a/pkg/remoteconfig/state/repository.go b/pkg/remoteconfig/state/repository.go index 6c37a5080150d..0b9ed190fc3c5 100644 --- a/pkg/remoteconfig/state/repository.go +++ b/pkg/remoteconfig/state/repository.go @@ -67,7 +67,7 @@ type Update struct { // isEmpty returns whether or not all the fields of `Update` are empty func (u *Update) isEmpty() bool { - return len(u.TUFRoots) == 0 && len(u.TUFTargets) == 0 && (u.TargetFiles == nil || len(u.TargetFiles) == 0) && len(u.ClientConfigs) == 0 + return len(u.TUFRoots) == 0 && len(u.TUFTargets) == 0 && len(u.TargetFiles) == 0 && len(u.ClientConfigs) == 0 } // Repository is a remote config client used in a downstream process to retrieve @@ -250,7 +250,7 @@ func (r *Repository) Update(update Update) ([]string, error) { // TUF: Store the updated roots now that everything has validated if r.tufVerificationEnabled { r.tufRootsClient = tmpRootClient - } else if update.TUFRoots != nil && len(update.TUFRoots) > 0 { + } else if len(update.TUFRoots) > 0 { v, err := extractRootVersion(update.TUFRoots[len(update.TUFRoots)-1]) if err != nil { return nil, err diff --git a/pkg/security/secl/compiler/generators/accessors/accessors.go b/pkg/security/secl/compiler/generators/accessors/accessors.go index 7cc177beadfbe..7dad3100588ae 100644 --- a/pkg/security/secl/compiler/generators/accessors/accessors.go +++ b/pkg/security/secl/compiler/generators/accessors/accessors.go @@ -57,7 +57,7 @@ type AstFiles struct { } // LookupSymbol lookups symbol -func (af *AstFiles) LookupSymbol(symbol string) *ast.Object { +func (af *AstFiles) LookupSymbol(symbol string) *ast.Object { //nolint:staticcheck for _, file := range af.files { if obj := file.Scope.Lookup(symbol); obj != nil { return obj diff --git a/pkg/security/secl/go.mod b/pkg/security/secl/go.mod index d7e796fca2924..9c3d225dcdad1 100644 --- a/pkg/security/secl/go.mod +++ b/pkg/security/secl/go.mod @@ -1,6 +1,6 @@ module github.com/DataDog/datadog-agent/pkg/security/secl -go 1.22.0 +go 1.23.0 require ( github.com/Masterminds/semver/v3 v3.3.1 diff --git a/pkg/security/seclwin/go.mod b/pkg/security/seclwin/go.mod index 6112fa987cda2..174d361f3255d 100644 --- a/pkg/security/seclwin/go.mod +++ b/pkg/security/seclwin/go.mod @@ -1,6 +1,6 @@ module github.com/DataDog/datadog-agent/pkg/security/seclwin -go 1.22.0 +go 1.23.0 replace github.com/DataDog/datadog-agent/pkg/security/secl => ../secl diff --git a/pkg/security/tests/rule_filters_test.go b/pkg/security/tests/rule_filters_test.go index 5a8b5e70b539f..0fe5187e1a183 100644 --- a/pkg/security/tests/rule_filters_test.go +++ b/pkg/security/tests/rule_filters_test.go @@ -55,11 +55,7 @@ func TestSECLRuleFilter(t *testing.T) { }, ) assert.NoError(t, err) - if runtime.GOOS == "windows" { - assert.False(t, result) - } else { - assert.True(t, result) - } + assert.True(t, result) }) for _, os := range []string{"windows", "linux"} { diff --git a/pkg/trace/api/otlp.go b/pkg/trace/api/otlp.go index 7272df819a8e0..de53f14d369ec 100644 --- a/pkg/trace/api/otlp.go +++ b/pkg/trace/api/otlp.go @@ -79,7 +79,7 @@ func NewOTLPReceiver(out chan<- *Payload, cfg *config.AgentConfig, statsd statsd } _ = statsd.Gauge("datadog.trace_agent.otlp.span_name_as_resource_name_enabled", spanNameAsResourceNameEnabledVal, nil, 1) spanNameRemappingsEnabledVal := 0.0 - if cfg.OTLPReceiver.SpanNameRemappings != nil && len(cfg.OTLPReceiver.SpanNameRemappings) > 0 { + if len(cfg.OTLPReceiver.SpanNameRemappings) > 0 { if operationAndResourceNamesV2GateEnabled { log.Warnf("Detected SpanNameRemappings in config - this feature will be deprecated in a future version. Please remove it to access functionality from feature gate \"enable_operation_and_resource_name_logic_v2\".") } else { diff --git a/pkg/trace/transform/transform.go b/pkg/trace/transform/transform.go index 8582b8c12e2c5..c1d5ff03b1a66 100644 --- a/pkg/trace/transform/transform.go +++ b/pkg/trace/transform/transform.go @@ -25,7 +25,7 @@ import ( // OperationAndResourceNameV2Enabled checks if the new operation and resource name logic should be used func OperationAndResourceNameV2Enabled(conf *config.AgentConfig) bool { - return !conf.OTLPReceiver.SpanNameAsResourceName && (conf.OTLPReceiver.SpanNameRemappings == nil || len(conf.OTLPReceiver.SpanNameRemappings) == 0) && conf.HasFeature("enable_operation_and_resource_name_logic_v2") + return !conf.OTLPReceiver.SpanNameAsResourceName && len(conf.OTLPReceiver.SpanNameRemappings) == 0 && conf.HasFeature("enable_operation_and_resource_name_logic_v2") } // OtelSpanToDDSpanMinimal otelSpanToDDSpan converts an OTel span to a DD span. diff --git a/pkg/util/cache/go.mod b/pkg/util/cache/go.mod index ff5c3844dd6cc..62e2714206397 100644 --- a/pkg/util/cache/go.mod +++ b/pkg/util/cache/go.mod @@ -1,6 +1,6 @@ module github.com/DataDog/datadog-agent/pkg/util/cache -go 1.22.0 +go 1.23.0 require ( github.com/patrickmn/go-cache v2.1.0+incompatible diff --git a/pkg/util/cloudproviders/gce/gce_tags_test.go b/pkg/util/cloudproviders/gce/gce_tags_test.go index a971d4305adb3..06f15ed938f21 100644 --- a/pkg/util/cloudproviders/gce/gce_tags_test.go +++ b/pkg/util/cloudproviders/gce/gce_tags_test.go @@ -10,7 +10,6 @@ package gce import ( "context" "fmt" - "io" "net/http" "net/http/httptest" "os" @@ -69,7 +68,7 @@ func mockMetadataRequest(t *testing.T) *httptest.Server { assert.Contains(t, r.URL.String(), "/?recursive=true") assert.Equal(t, "Google", r.Header.Get("Metadata-Flavor")) w.Header().Set("Content-Type", "application/json") - io.WriteString(w, string(content)) + w.Write(content) })) metadataURL = ts.URL return ts diff --git a/pkg/util/ec2/ec2_tags_test.go b/pkg/util/ec2/ec2_tags_test.go index cce8a5800df2c..556a8c719d71a 100644 --- a/pkg/util/ec2/ec2_tags_test.go +++ b/pkg/util/ec2/ec2_tags_test.go @@ -56,7 +56,7 @@ func TestGetSecurityCreds(t *testing.T) { w.Header().Set("Content-Type", "text/plain") content, err := os.ReadFile("payloads/security_cred.json") require.NoError(t, err, fmt.Sprintf("failed to load json in payloads/security_cred.json: %v", err)) - io.WriteString(w, string(content)) + w.Write(content) } else { w.WriteHeader(http.StatusInternalServerError) } @@ -79,7 +79,7 @@ func TestGetInstanceIdentity(t *testing.T) { w.Header().Set("Content-Type", "text/plain") content, err := os.ReadFile("payloads/instance_indentity.json") require.NoError(t, err, fmt.Sprintf("failed to load json in payloads/instance_indentity.json: %v", err)) - io.WriteString(w, string(content)) + w.Write(content) })) defer ts.Close() instanceIdentityURL = ts.URL diff --git a/pkg/util/flavor/go.mod b/pkg/util/flavor/go.mod index 0ba28971172a6..bb7190a4d241c 100644 --- a/pkg/util/flavor/go.mod +++ b/pkg/util/flavor/go.mod @@ -1,6 +1,6 @@ module github.com/DataDog/datadog-agent/pkg/util/flavor -go 1.22.0 +go 1.23.0 replace ( github.com/DataDog/datadog-agent/comp/api/api/def => ../../../comp/api/api/def diff --git a/pkg/util/fxutil/provide_comp_test.go b/pkg/util/fxutil/provide_comp_test.go index 3a0fe914124c4..3098c710d0862 100644 --- a/pkg/util/fxutil/provide_comp_test.go +++ b/pkg/util/fxutil/provide_comp_test.go @@ -67,10 +67,10 @@ func TestGetConstructorTypes(t *testing.T) { expect := `struct {}` require.Equal(t, expect, ctorTypes.inPlain.String()) - expect = `struct { In dig.In }` + expect = `struct { dig.In }` require.Equal(t, expect, ctorTypes.inFx.String()) - expect = `struct { Out dig.Out; FirstComp fxutil.FirstComp }` + expect = `struct { dig.Out; FirstComp fxutil.FirstComp }` require.Equal(t, expect, ctorTypes.outFx.String()) // constructor needs a `requires` struct and returns 1 component interface @@ -80,10 +80,10 @@ func TestGetConstructorTypes(t *testing.T) { expect = `struct { FirstComp fxutil.FirstComp }` require.Equal(t, expect, ctorTypes.inPlain.String()) - expect = `struct { In dig.In; FirstComp fxutil.FirstComp }` + expect = `struct { dig.In; FirstComp fxutil.FirstComp }` require.Equal(t, expect, ctorTypes.inFx.String()) - expect = `struct { Out dig.Out; SecondComp fxutil.SecondComp }` + expect = `struct { dig.Out; SecondComp fxutil.SecondComp }` require.Equal(t, expect, ctorTypes.outFx.String()) // constructor returns a struct that has 3 total components @@ -93,10 +93,10 @@ func TestGetConstructorTypes(t *testing.T) { expect = `struct {}` require.Equal(t, expect, ctorTypes.inPlain.String()) - expect = `struct { In dig.In }` + expect = `struct { dig.In }` require.Equal(t, expect, ctorTypes.inFx.String()) - expect = `struct { Out dig.Out; A fxutil.Apple; B fxutil.Banana; C struct { Out dig.Out; E fxutil.Egg } }` + expect = `struct { dig.Out; A fxutil.Apple; B fxutil.Banana; C struct { dig.Out; E fxutil.Egg } }` require.Equal(t, expect, ctorTypes.outFx.String()) // constructor needs a `requiresLc` struct and returns 1 component interface @@ -106,10 +106,10 @@ func TestGetConstructorTypes(t *testing.T) { expect = `fxutil.requiresLc` require.Equal(t, expect, ctorTypes.inPlain.String()) - expect = `struct { In dig.In; Lc compdef.Lifecycle }` + expect = `struct { dig.In; Lc compdef.Lifecycle }` require.Equal(t, expect, ctorTypes.inFx.String()) - expect = `struct { Out dig.Out; SecondComp fxutil.SecondComp }` + expect = `struct { dig.Out; SecondComp fxutil.SecondComp }` require.Equal(t, expect, ctorTypes.outFx.String()) } @@ -123,10 +123,10 @@ func TestConstructCompdefIn(t *testing.T) { })) require.NoError(t, err) - expect := `struct { In dig.In; Second fxutil.SecondComp }` + expect := `struct { dig.In; Second fxutil.SecondComp }` require.Equal(t, expect, ctorTypes.inFx.String()) - expect = `struct { Out dig.Out; First fxutil.FirstComp }` + expect = `struct { dig.Out; First fxutil.FirstComp }` require.Equal(t, expect, ctorTypes.outFx.String()) } @@ -143,10 +143,10 @@ func TestConstructCompdefOut(t *testing.T) { expect := `struct {}` require.Equal(t, expect, ctorTypes.inPlain.String()) - expect = `struct { In dig.In }` + expect = `struct { dig.In }` require.Equal(t, expect, ctorTypes.inFx.String()) - expect = `struct { Out dig.Out; First fxutil.FirstComp }` + expect = `struct { dig.Out; First fxutil.FirstComp }` require.Equal(t, expect, ctorTypes.outFx.String()) } diff --git a/pkg/util/grpc/go.mod b/pkg/util/grpc/go.mod index 00e5810611bd1..b058dd317dd34 100644 --- a/pkg/util/grpc/go.mod +++ b/pkg/util/grpc/go.mod @@ -1,6 +1,6 @@ module github.com/DataDog/datadog-agent/pkg/util/grpc -go 1.22.0 +go 1.23.0 replace ( github.com/DataDog/datadog-agent/comp/api/api/def => ../../../comp/api/api/def diff --git a/pkg/util/uuid/go.mod b/pkg/util/uuid/go.mod index 57c48dcf76dee..de6cfd5cbb275 100644 --- a/pkg/util/uuid/go.mod +++ b/pkg/util/uuid/go.mod @@ -1,6 +1,6 @@ module github.com/DataDog/datadog-agent/pkg/util/uuid -go 1.22.0 +go 1.23.0 replace ( github.com/DataDog/datadog-agent/pkg/util/cache => ../cache diff --git a/releasenotes/notes/bump-go-to-1.23.3-6c42ba4e8efe3ffd.yaml b/releasenotes/notes/bump-go-to-1.23.3-6c42ba4e8efe3ffd.yaml new file mode 100644 index 0000000000000..869e93f23df2b --- /dev/null +++ b/releasenotes/notes/bump-go-to-1.23.3-6c42ba4e8efe3ffd.yaml @@ -0,0 +1,4 @@ +--- +enhancements: +- | + Agents are now built with Go ``1.23.3``. diff --git a/tasks/go.py b/tasks/go.py index 0706fed06b6c0..fafcaa008af35 100644 --- a/tasks/go.py +++ b/tasks/go.py @@ -481,7 +481,7 @@ def tidy(ctx): @task def check_go_version(ctx): go_version_output = ctx.run('go version') - # result is like "go version go1.22.8 linux/amd64" + # result is like "go version go1.23.3 linux/amd64" running_go_version = go_version_output.stdout.split(' ')[2] with open(".go-version") as f: diff --git a/tasks/unit_tests/modules_tests.py b/tasks/unit_tests/modules_tests.py index 103fccf3b7dab..876f10b5c6ede 100644 --- a/tasks/unit_tests/modules_tests.py +++ b/tasks/unit_tests/modules_tests.py @@ -20,7 +20,7 @@ { "Module": {"Path": "github.com/DataDog/datadog-agent"}, - "Go": "1.22", + "Go": "1.23", "Require": [ {"Path": "github.com/DataDog/datadog-agent/pkg/config/logs", "Version": "v0.51.0-rc.2"}, {"Path": "k8s.io/kms", "Version": "v0.27.6", "Indirect": true}, diff --git a/tasks/update_go.py b/tasks/update_go.py index a723653716559..8e2d638bbddd7 100644 --- a/tasks/update_go.py +++ b/tasks/update_go.py @@ -32,7 +32,7 @@ ("./cmd/process-agent/README.md", "`go >= ", "`", False), ("./pkg/logs/launchers/windowsevent/README.md", "install go ", "+,", False), ("./.wwhrd.yml", "raw.githubusercontent.com/golang/go/go", "/LICENSE", True), - ("./docs/public/setup.md", "version `", "` or higher", True), + ("./docs/public/setup.md", "version `", "` or later", True), ] PATTERN_MAJOR_MINOR = r'1\.\d+' diff --git a/test/fakeintake/Dockerfile b/test/fakeintake/Dockerfile index 851c43495c0ee..292aac1e5eeef 100644 --- a/test/fakeintake/Dockerfile +++ b/test/fakeintake/Dockerfile @@ -2,7 +2,7 @@ # syntax=docker/dockerfile:1 ## Build -FROM golang:1.22.8-alpine3.20 AS build +FROM golang:1.23.3-alpine3.20 AS build # need gcc to build with CGO_ENABLED=1 # need musl-dev to get stdlib.h diff --git a/test/fakeintake/docs/README.md b/test/fakeintake/docs/README.md index 1edd2453c6b6d..af4219d148281 100644 --- a/test/fakeintake/docs/README.md +++ b/test/fakeintake/docs/README.md @@ -4,7 +4,7 @@ Exposes a catch-all API for Datadog Agent POST requests. ## Requirements -- [Golang 1.22](https://go.dev/dl/) +- [Golang 1.23](https://go.dev/dl/) ## How to run diff --git a/test/fakeintake/go.mod b/test/fakeintake/go.mod index ced8cdbcbf2ab..cdbf263570de1 100644 --- a/test/fakeintake/go.mod +++ b/test/fakeintake/go.mod @@ -1,6 +1,6 @@ module github.com/DataDog/datadog-agent/test/fakeintake -go 1.22.0 +go 1.23.0 // every datadog-agent module replaced in the fakeintake go.mod needs to be copied in the Dockerfile replace ( diff --git a/test/new-e2e/go.mod b/test/new-e2e/go.mod index 4e07b944663fd..b2f25362d4739 100644 --- a/test/new-e2e/go.mod +++ b/test/new-e2e/go.mod @@ -1,8 +1,6 @@ module github.com/DataDog/datadog-agent/test/new-e2e -go 1.22.5 - -toolchain go1.22.8 +go 1.23.0 // Do not upgrade Pulumi plugins to versions different from `test-infra-definitions`. // The plugin versions NEED to be aligned. @@ -97,7 +95,7 @@ require ( require ( dario.cat/mergo v1.0.1 // indirect github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect - github.com/BurntSushi/toml v1.4.0 // indirect + github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c // indirect github.com/DataDog/datadog-agent/comp/netflow/payload v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/proto v0.56.0-rc.3 github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 // indirect diff --git a/test/new-e2e/go.sum b/test/new-e2e/go.sum index dea441fd6daf5..e36e556cf02ed 100644 --- a/test/new-e2e/go.sum +++ b/test/new-e2e/go.sum @@ -5,8 +5,8 @@ dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= -github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= +github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c h1:pxW6RcqyfI9/kWtOwnv/G+AzdKuy2ZrqINhenH4HyNs= +github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/datadog-api-client-go v1.16.0 h1:5jOZv1m98criCvYTa3qpW8Hzv301nbZX3K9yJtwGyWY= diff --git a/test/new-e2e/pkg/e2e/suite.go b/test/new-e2e/pkg/e2e/suite.go index e9963e0e8c9bd..e83a083f9d2be 100644 --- a/test/new-e2e/pkg/e2e/suite.go +++ b/test/new-e2e/pkg/e2e/suite.go @@ -375,7 +375,7 @@ func (bs *BaseSuite[Env]) createEnv() (*Env, []reflect.StructField, []reflect.Va importKeyFromTag := field.Tag.Get(importKey) isImportable := field.Type.Implements(reflect.TypeOf((*components.Importable)(nil)).Elem()) - isPtrImportable := reflect.PtrTo(field.Type).Implements(reflect.TypeOf((*components.Importable)(nil)).Elem()) + isPtrImportable := reflect.PointerTo(field.Type).Implements(reflect.TypeOf((*components.Importable)(nil)).Elem()) // Produce meaningful error in case we have an importKey but field is not importable if importKeyFromTag != "" && !isImportable { diff --git a/tools/gdb/Dockerfile b/tools/gdb/Dockerfile index b91ac4b06514a..b8a50a020edc5 100644 --- a/tools/gdb/Dockerfile +++ b/tools/gdb/Dockerfile @@ -6,7 +6,7 @@ RUN rm -vf /etc/ssl/openssl.cnf RUN DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get install -y gdb build-essential strace less vim # Install go -RUN curl -fSL -o golang.tgz https://go.dev/dl/go1.22.8.linux-amd64.tar.gz +RUN curl -fSL -o golang.tgz https://go.dev/dl/go1.23.3.linux-amd64.tar.gz RUN tar xzvf golang.tgz RUN ln -s /go /goroot diff --git a/tools/retry_file_dump/go.mod b/tools/retry_file_dump/go.mod index 7fca970324657..70144f1060226 100644 --- a/tools/retry_file_dump/go.mod +++ b/tools/retry_file_dump/go.mod @@ -5,7 +5,7 @@ module github.com/DataDog/datadog-agent/tools/retry_file_dump -go 1.22.0 +go 1.23.0 require github.com/golang/protobuf v1.5.4 From a79d704f00731280abfc1f5a56eed7e6570f26fb Mon Sep 17 00:00:00 2001 From: Guy Arbitman Date: Wed, 4 Dec 2024 16:13:17 +0200 Subject: [PATCH 243/439] sharedlibraries: tests: Fix bugs in the test (#31744) --- pkg/network/usm/sharedlibraries/ebpf_test.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pkg/network/usm/sharedlibraries/ebpf_test.go b/pkg/network/usm/sharedlibraries/ebpf_test.go index 0e8436ddad0dc..418088f49acb0 100644 --- a/pkg/network/usm/sharedlibraries/ebpf_test.go +++ b/pkg/network/usm/sharedlibraries/ebpf_test.go @@ -43,16 +43,20 @@ func (s *EbpfProgramSuite) TestCanInstantiateMultipleTimes() { prog := GetEBPFProgram(cfg) require.NotNil(t, prog) - t.Cleanup(prog.Stop) + t.Cleanup(func() { + if prog != nil { + prog.Stop() + } + }) require.NoError(t, prog.InitWithLibsets(LibsetCrypto)) prog.Stop() + prog = nil prog2 := GetEBPFProgram(cfg) require.NotNil(t, prog2) - - require.NoError(t, prog.InitWithLibsets(LibsetCrypto)) t.Cleanup(prog2.Stop) + require.NoError(t, prog2.InitWithLibsets(LibsetCrypto)) } func (s *EbpfProgramSuite) TestProgramReceivesEventsWithSingleLibset() { From 20f20befd7a702adf66652eb0e59e6de9efa89eb Mon Sep 17 00:00:00 2001 From: Arthur Bellal Date: Wed, 4 Dec 2024 15:32:04 +0100 Subject: [PATCH 244/439] (fleet) build the bootstrapper as a shell script on linux (#31695) --- .gitlab/.ci-linters.yml | 2 +- .gitlab/deploy_packages/deploy_common.yml | 6 +++--- .gitlab/package_build/installer.yml | 11 ++++------- tasks/installer.py | 15 +++++++++------ 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.gitlab/.ci-linters.yml b/.gitlab/.ci-linters.yml index b888dff051b73..a87c049cfb341 100644 --- a/.gitlab/.ci-linters.yml +++ b/.gitlab/.ci-linters.yml @@ -51,7 +51,6 @@ needs-rules: job-owners: allowed-jobs: - benchmark - - bootstrapper_build - build_dogstatsd-binary_arm64 - build_dogstatsd-binary_x64 - build_dogstatsd_static-binary_arm64 @@ -79,6 +78,7 @@ job-owners: - installer-amd64-oci - installer-arm64 - installer-arm64-oci + - installer-install-scripts - integration_tests_otel - invoke_unit_tests - kitchen_cleanup_azure-a7 diff --git a/.gitlab/deploy_packages/deploy_common.yml b/.gitlab/deploy_packages/deploy_common.yml index aaceb73a599ab..ab3daee583890 100644 --- a/.gitlab/deploy_packages/deploy_common.yml +++ b/.gitlab/deploy_packages/deploy_common.yml @@ -111,14 +111,14 @@ ARTIFACTS_PREFIX: suse_ OMNIBUS_PACKAGE_DIR: $OMNIBUS_PACKAGE_DIR_SUSE -deploy_installer_boostrapper: +deploy_installer_install_scripts: rules: !reference [.on_deploy_installer] image: registry.ddbuild.io/ci/datadog-agent-buildimages/gitlab_agent_deploy$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES stage: deploy_packages - needs: ["bootstrapper_build"] + needs: ["installer-install-scripts"] tags: ["arch:amd64"] before_script: - ls $OMNIBUS_PACKAGE_DIR script: - - $S3_CP_CMD --recursive --exclude "*" --include "bootstrapper-*" "$OMNIBUS_PACKAGE_DIR" "${S3_RELEASE_INSTALLER_ARTIFACTS_URI}/bootstrapper/" + - $S3_CP_CMD --recursive --exclude "*" --include "install-*.sh" "$OMNIBUS_PACKAGE_DIR" "${S3_RELEASE_INSTALLER_ARTIFACTS_URI}/scripts/" diff --git a/.gitlab/package_build/installer.yml b/.gitlab/package_build/installer.yml index 8e253c48b6df0..19dd062fd5461 100644 --- a/.gitlab/package_build/installer.yml +++ b/.gitlab/package_build/installer.yml @@ -84,9 +84,9 @@ datadog-agent-oci-arm64-a7: - export RELEASE_VERSION=$RELEASE_VERSION_7 # -# The bootstrapper program +# The installer install scripts (install-djm.sh, ...) # -bootstrapper_build: +installer-install-scripts: rules: - !reference [.except_mergequeue] - when: on_success @@ -102,11 +102,8 @@ bootstrapper_build: script: - !reference [.retrieve_linux_go_deps] - echo "About to build for $RELEASE_VERSION" - - GOOS=linux GOARCH=amd64 inv -e installer.build --bootstrapper --rebuild --no-cgo --output-bin=$OMNIBUS_PACKAGE_DIR/bootstrapper-linux-amd64 - - GOOS=linux GOARCH=arm64 inv -e installer.build --bootstrapper --rebuild --no-cgo --output-bin=$OMNIBUS_PACKAGE_DIR/bootstrapper-linux-arm64 - - GOOS=windows GOARCH=amd64 inv -e installer.build --bootstrapper --rebuild --no-cgo --output-bin=$OMNIBUS_PACKAGE_DIR/bootstrapper-windows-amd64.exe - - GOOS=darwin GOARCH=amd64 inv -e installer.build --bootstrapper --rebuild --no-cgo --output-bin=$OMNIBUS_PACKAGE_DIR/bootstrapper-darwin-amd64 - - GOOS=darwin GOARCH=arm64 inv -e installer.build --bootstrapper --rebuild --no-cgo --output-bin=$OMNIBUS_PACKAGE_DIR/bootstrapper-darwin-arm64 + - mkdir -p $OMNIBUS_PACKAGE_DIR + - inv -e installer.build-linux-script && mv ./bin/installer/setup.sh $OMNIBUS_PACKAGE_DIR/install-djm.sh - ls -la $OMNIBUS_PACKAGE_DIR artifacts: expire_in: 2 weeks diff --git a/tasks/installer.py b/tasks/installer.py index fcf650d5c886a..9e8335d388f22 100644 --- a/tasks/installer.py +++ b/tasks/installer.py @@ -84,14 +84,17 @@ def build_linux_script( ''' Builds the linux script that is used to install the agent on linux. ''' + script_path = os.path.join(BIN_PATH, "setup.sh") + signed_script_path = os.path.join(BIN_PATH, "setup.sh.asc") amd64_path = os.path.join(BIN_PATH, "bootstrapper-linux-amd64") arm64_path = os.path.join(BIN_PATH, "bootstrapper-linux-arm64") + ctx.run( - f'inv -e installer.build --bootstrapper --rebuild --no-no-strip-binary --output-bin {amd64_path} --no-cgo', + f'inv -e installer.build --bootstrapper --no-no-strip-binary --output-bin {amd64_path} --no-cgo', env={'GOOS': 'linux', 'GOARCH': 'amd64'}, ) ctx.run( - f'inv -e installer.build --bootstrapper --rebuild --no-no-strip-binary --output-bin {arm64_path} --no-cgo', + f'inv -e installer.build --bootstrapper --no-no-strip-binary --output-bin {arm64_path} --no-cgo', env={'GOOS': 'linux', 'GOARCH': 'arm64'}, ) with open(amd64_path, 'rb') as f: @@ -107,17 +110,17 @@ def build_linux_script( commit_sha = ctx.run('git rev-parse HEAD', hide=True).stdout.strip() setup_content = setup_content.replace('INSTALLER_COMMIT', commit_sha) - with open(os.path.join(BIN_PATH, 'setup.sh'), 'w') as f: + with open(script_path, 'w') as f: f.write(setup_content) if signing_key_id: ctx.run( - f'gpg --armor --batch --yes --output {os.path.join(BIN_PATH, "setup.sh.asc")} --clearsign --digest-algo SHA256 --default-key {signing_key_id} {os.path.join(BIN_PATH, "setup.sh")}', + f'gpg --armor --batch --yes --output {signed_script_path} --clearsign --digest-algo SHA256 --default-key {signing_key_id} {script_path}', ) # Add the signed footer to the setup.sh file with ( - open(os.path.join(BIN_PATH, "setup.sh.asc")) as signed_file, - open(os.path.join(BIN_PATH, 'setup.sh'), 'w') as f, + open(signed_script_path) as signed_file, + open(script_path, 'w') as f, ): skip_header = False for line in signed_file: From d4ed527a346703cd4938615cab9ae05698300ee5 Mon Sep 17 00:00:00 2001 From: Alexandre Menasria <47357713+amenasria@users.noreply.github.com> Date: Wed, 4 Dec 2024 15:34:45 +0100 Subject: [PATCH 245/439] [CI] Don't stop the integration tests at the first failure (#31740) Co-authored-by: Vickenty Fesunov --- tasks/cluster_agent.py | 3 ++- tasks/dogstatsd.py | 4 ++-- tasks/gotest.py | 41 ++++++++++++++++++++++++-------------- tasks/libs/common/utils.py | 4 ++++ tasks/trace_agent.py | 6 +++--- 5 files changed, 37 insertions(+), 21 deletions(-) diff --git a/tasks/cluster_agent.py b/tasks/cluster_agent.py index f10e7807805e7..8bbde5be51ece 100644 --- a/tasks/cluster_agent.py +++ b/tasks/cluster_agent.py @@ -15,6 +15,7 @@ from tasks.build_tags import get_build_tags, get_default_build_tags from tasks.cluster_agent_helpers import build_common, clean_common, refresh_assets_common, version_common from tasks.cws_instrumentation import BIN_PATH as CWS_INSTRUMENTATION_BIN_PATH +from tasks.libs.common.utils import TestsNotSupportedError from tasks.libs.releasing.version import load_release_versions # constants @@ -92,7 +93,7 @@ def integration_tests(ctx, race=False, remote_docker=False, go_mod="readonly", t Run integration tests for cluster-agent """ if sys.platform == 'win32': - raise Exit(message='cluster-agent integration tests are not supported on Windows', code=0) + raise TestsNotSupportedError('Cluster Agent integration tests are not supported on Windows') # We need docker for the kubeapiserver integration tests tags = get_default_build_tags(build="cluster-agent") + ["docker", "test"] diff --git a/tasks/dogstatsd.py b/tasks/dogstatsd.py index cecbb52059aa3..08dbe80a85993 100644 --- a/tasks/dogstatsd.py +++ b/tasks/dogstatsd.py @@ -11,7 +11,7 @@ from tasks.build_tags import filter_incompatible_tags, get_build_tags, get_default_build_tags from tasks.flavor import AgentFlavor -from tasks.libs.common.utils import REPO_PATH, bin_name, get_build_flags, get_root +from tasks.libs.common.utils import REPO_PATH, TestsNotSupportedError, bin_name, get_build_flags, get_root from tasks.windows_resources import build_messagetable, build_rc, versioninfo_vars # constants @@ -175,7 +175,7 @@ def integration_tests(ctx, race=False, remote_docker=False, go_mod="readonly", t Run integration tests for dogstatsd """ if sys.platform == 'win32': - raise Exit(message='dogstatsd integration tests are not supported on Windows', code=0) + raise TestsNotSupportedError('DogStatsD integration tests are not supported on Windows') go_build_tags = " ".join(get_default_build_tags(build="test")) race_opt = "-race" if race else "" diff --git a/tasks/gotest.py b/tasks/gotest.py index 444df0fdf4d39..7ca411e7521ea 100644 --- a/tasks/gotest.py +++ b/tasks/gotest.py @@ -11,6 +11,7 @@ import os import re import sys +import traceback from collections import defaultdict from collections.abc import Iterable from datetime import datetime @@ -35,6 +36,7 @@ from tasks.libs.common.gomodules import get_default_modules from tasks.libs.common.junit_upload_core import enrich_junitxml, produce_junit_tar from tasks.libs.common.utils import ( + TestsNotSupportedError, clean_nested_paths, get_build_flags, gitlab_section, @@ -404,24 +406,33 @@ def test( @task -def integration_tests(ctx, race=False, remote_docker=False, debug=False, timeout=""): +def integration_tests(ctx, race=False, remote_docker=False, timeout=""): """ Run all the available integration tests """ - tests = [ - lambda: agent_integration_tests(ctx, race=race, remote_docker=remote_docker, timeout=timeout), - lambda: dsd_integration_tests(ctx, race=race, remote_docker=remote_docker, timeout=timeout), - lambda: dca_integration_tests(ctx, race=race, remote_docker=remote_docker, timeout=timeout), - lambda: trace_integration_tests(ctx, race=race, timeout=timeout), - ] - for t in tests: - try: - t() - except Exit as e: - if e.code != 0: - raise - elif debug: - print(e.message) + tests = { + "Agent": lambda: agent_integration_tests(ctx, race=race, remote_docker=remote_docker, timeout=timeout), + "DogStatsD": lambda: dsd_integration_tests(ctx, race=race, remote_docker=remote_docker, timeout=timeout), + "Cluster Agent": lambda: dca_integration_tests(ctx, race=race, remote_docker=remote_docker, timeout=timeout), + "Trace Agent": lambda: trace_integration_tests(ctx, race=race, timeout=timeout), + } + tests_failures = {} + for t_name, t in tests.items(): + with gitlab_section(f"Running the {t_name} integration tests", collapsed=True, echo=True): + try: + t() + except TestsNotSupportedError as e: + print(f"Skipping {t_name}: {e}") + except Exception: + # Keep printing the traceback not to have to wait until all tests are done to see what failed + traceback.print_exc() + # Storing the traceback to print it at the end without directly raising the exception + tests_failures[t_name] = traceback.format_exc() + if tests_failures: + print("Integration tests failed:") + for t_name, t_failure in tests_failures.items(): + print(f"{t_name}:\n{t_failure}") + raise Exit(code=1) @task diff --git a/tasks/libs/common/utils.py b/tasks/libs/common/utils.py index 70eb60f20a5f6..175b6d848d4d7 100644 --- a/tasks/libs/common/utils.py +++ b/tasks/libs/common/utils.py @@ -61,6 +61,10 @@ def __lt__(self, other): return True +class TestsNotSupportedError(Exception): + pass + + def get_all_allowed_repo_branches(): return ALLOWED_REPO_ALL_BRANCHES diff --git a/tasks/trace_agent.py b/tasks/trace_agent.py index 3ae8b650f7f47..d65ae6861fcd8 100644 --- a/tasks/trace_agent.py +++ b/tasks/trace_agent.py @@ -1,11 +1,11 @@ import os import sys -from invoke import Exit, task +from invoke import task from tasks.build_tags import add_fips_tags, filter_incompatible_tags, get_build_tags, get_default_build_tags from tasks.flavor import AgentFlavor -from tasks.libs.common.utils import REPO_PATH, bin_name, get_build_flags +from tasks.libs.common.utils import REPO_PATH, TestsNotSupportedError, bin_name, get_build_flags from tasks.windows_resources import build_messagetable, build_rc, versioninfo_vars BIN_PATH = os.path.join(".", "bin", "trace-agent") @@ -82,7 +82,7 @@ def integration_tests(ctx, race=False, go_mod="readonly", timeout="10m"): Run integration tests for trace agent """ if sys.platform == 'win32': - raise Exit(message='trace-agent integration tests are not supported on Windows', code=0) + raise TestsNotSupportedError('Trace Agent integration tests are not supported on Windows') go_build_tags = " ".join(get_default_build_tags(build="test")) race_opt = "-race" if race else "" From 5e0c347f66d6ad431ede763e71f9bbe78b7a4ef8 Mon Sep 17 00:00:00 2001 From: Stuart Geipel Date: Wed, 4 Dec 2024 09:59:53 -0500 Subject: [PATCH 246/439] [NPM-3530] Add TCP retransmit support to ebpfless (#31397) --- .../connection/ebpfless/tcp_processor.go | 4 + .../ebpfless/tcp_processor_retransmit_test.go | 274 ++++++++++++++++++ .../connection/ebpfless/tcp_processor_test.go | 41 --- pkg/network/tracer/tracer_linux_test.go | 37 ++- 4 files changed, 305 insertions(+), 51 deletions(-) create mode 100644 pkg/network/tracer/connection/ebpfless/tcp_processor_retransmit_test.go diff --git a/pkg/network/tracer/connection/ebpfless/tcp_processor.go b/pkg/network/tracer/connection/ebpfless/tcp_processor.go index 009e183e409be..cc2b95fb8bea5 100644 --- a/pkg/network/tracer/connection/ebpfless/tcp_processor.go +++ b/pkg/network/tracer/connection/ebpfless/tcp_processor.go @@ -118,10 +118,14 @@ func (t *TCPProcessor) updateTcpStats(conn *network.ConnectionStats, st *connect if pktType == unix.PACKET_OUTGOING { conn.Monotonic.SentPackets++ + // packetCanRetransmit filters out packets that look like retransmits but aren't, like TCP keepalives + packetCanRetransmit := nextSeq != tcp.Seq if !st.hasSentPacket || isSeqBefore(st.maxSeqSent, nextSeq) { st.hasSentPacket = true conn.Monotonic.SentBytes += uint64(payloadLen) st.maxSeqSent = nextSeq + } else if packetCanRetransmit { + conn.Monotonic.Retransmits++ } ackOutdated := !st.hasLocalAck || isSeqBefore(st.lastLocalAck, tcp.Ack) diff --git a/pkg/network/tracer/connection/ebpfless/tcp_processor_retransmit_test.go b/pkg/network/tracer/connection/ebpfless/tcp_processor_retransmit_test.go new file mode 100644 index 0000000000000..ecfdb22e1fc72 --- /dev/null +++ b/pkg/network/tracer/connection/ebpfless/tcp_processor_retransmit_test.go @@ -0,0 +1,274 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2024-present Datadog, Inc. + +//go:build linux_bpf + +package ebpfless + +import ( + "syscall" + "testing" + + "golang.org/x/sys/unix" + + "github.com/stretchr/testify/require" + + "github.com/DataDog/datadog-agent/pkg/network" +) + +// retransmitNth repeats the nth packet twice +func retransmitNth(packets []testCapture, n int) []testCapture { + if packets[n].pktType != unix.PACKET_OUTGOING { + panic("can only retransmit outgoing packets") + } + + var traffic []testCapture + traffic = append(traffic, packets[:n]...) + traffic = append(traffic, packets[n]) + traffic = append(traffic, packets[n:]...) + return traffic +} + +// TestAllRetransmitsOutgoing runs through each possible retransmit on an outgoing connection +func TestAllRetransmitsOutgoing(t *testing.T) { + pb := newPacketBuilder(lowerSeq, higherSeq) + basicHandshake := []testCapture{ + pb.outgoing(0, 0, 0, SYN), + pb.incoming(0, 0, 1, SYN|ACK), + // separate ack and first send of data + pb.outgoing(0, 1, 1, ACK), + pb.outgoing(123, 1, 1, ACK), + // acknowledge data separately + pb.incoming(0, 1, 124, ACK), + pb.incoming(345, 1, 124, ACK), + // remote FINs separately + pb.incoming(0, 346, 124, FIN|ACK), + // local acknowledges data, (not the FIN) + pb.outgoing(0, 124, 346, ACK), + // local acknowledges FIN and sends their own + pb.outgoing(0, 124, 347, FIN|ACK), + // remote sends final ACK + pb.incoming(0, 347, 125, ACK), + } + + expectedStats := network.StatCounters{ + SentBytes: 123, + RecvBytes: 345, + SentPackets: 5 + 1, + RecvPackets: 5, + // one retransmit for each case + Retransmits: 1, + TCPEstablished: 1, + TCPClosed: 1, + } + + t.Run("retransmit SYN", func(t *testing.T) { + traffic := retransmitNth(basicHandshake, 0) + + f := newTcpTestFixture(t) + f.runPkts(traffic) + + require.Empty(t, f.conn.TCPFailures) + require.Equal(t, expectedStats, f.conn.Monotonic) + }) + + t.Run("retransmit data", func(t *testing.T) { + traffic := retransmitNth(basicHandshake, 3) + + f := newTcpTestFixture(t) + f.runPkts(traffic) + + require.Empty(t, f.conn.TCPFailures) + require.Equal(t, expectedStats, f.conn.Monotonic) + }) + + t.Run("retransmit FIN", func(t *testing.T) { + traffic := retransmitNth(basicHandshake, 8) + + f := newTcpTestFixture(t) + f.runPkts(traffic) + + require.Empty(t, f.conn.TCPFailures) + require.Equal(t, expectedStats, f.conn.Monotonic) + }) +} + +// TestAllRetransmitsIncoming runs through each possible retransmit on an incoming connection +func TestAllRetransmitsIncoming(t *testing.T) { + pb := newPacketBuilder(lowerSeq, higherSeq) + basicHandshake := []testCapture{ + pb.incoming(0, 0, 0, SYN), + pb.outgoing(0, 0, 1, SYN|ACK), + // separate ack and first send of data + pb.incoming(0, 1, 1, ACK), + pb.incoming(123, 1, 1, ACK), + // acknowledge data separately + pb.outgoing(0, 1, 124, ACK), + pb.outgoing(345, 1, 124, ACK), + // local FINs separately + pb.outgoing(0, 346, 124, FIN|ACK), + // remote acknowledges data, (not the FIN) + pb.incoming(0, 124, 346, ACK), + // remote acknowledges FIN and sends their own + pb.incoming(0, 124, 347, FIN|ACK), + // local sends final ACK + pb.outgoing(0, 347, 125, ACK), + } + + expectedStats := network.StatCounters{ + SentBytes: 345, + RecvBytes: 123, + SentPackets: 5 + 1, + RecvPackets: 5, + Retransmits: 1, + TCPEstablished: 1, + TCPClosed: 1, + } + + t.Run("retransmit SYNACK", func(t *testing.T) { + traffic := retransmitNth(basicHandshake, 1) + + f := newTcpTestFixture(t) + f.runPkts(traffic) + + require.Empty(t, f.conn.TCPFailures) + require.Equal(t, expectedStats, f.conn.Monotonic) + }) + + t.Run("retransmit data", func(t *testing.T) { + traffic := retransmitNth(basicHandshake, 5) + + f := newTcpTestFixture(t) + f.runPkts(traffic) + + require.Empty(t, f.conn.TCPFailures) + require.Equal(t, expectedStats, f.conn.Monotonic) + }) + + t.Run("retransmit FIN", func(t *testing.T) { + traffic := retransmitNth(basicHandshake, 6) + + f := newTcpTestFixture(t) + f.runPkts(traffic) + + require.Empty(t, f.conn.TCPFailures) + require.Equal(t, expectedStats, f.conn.Monotonic) + }) +} + +// RST doesn't ever get retransmitted +func TestRstTwice(t *testing.T) { + pb := newPacketBuilder(lowerSeq, higherSeq) + basicHandshake := []testCapture{ + pb.incoming(0, 0, 0, SYN), + pb.outgoing(0, 0, 1, SYN|ACK), + pb.incoming(0, 1, 1, ACK), + // handshake done, now blow up + pb.outgoing(0, 1, 1, RST|ACK), + // second RST packet + pb.outgoing(0, 1, 1, RST|ACK), + } + + expectedClientStates := []ConnStatus{ + ConnStatAttempted, + ConnStatAttempted, + ConnStatEstablished, + // reset + ConnStatClosed, + ConnStatClosed, + } + + f := newTcpTestFixture(t) + f.runAgainstState(basicHandshake, expectedClientStates) + + // should count as a single failure + require.Equal(t, map[uint16]uint32{ + uint16(syscall.ECONNRESET): 1, + }, f.conn.TCPFailures) + + expectedStats := network.StatCounters{ + SentBytes: 0, + RecvBytes: 0, + SentPackets: 3, + RecvPackets: 2, + // RSTs are not retransmits + Retransmits: 0, + TCPEstablished: 1, + // should count as a single closed connection + TCPClosed: 1, + } + require.Equal(t, expectedStats, f.conn.Monotonic) +} + +func TestKeepAlivePacketsArentRetransmits(t *testing.T) { + pb := newPacketBuilder(lowerSeq, higherSeq) + basicHandshake := []testCapture{ + pb.incoming(0, 0, 0, SYN), + pb.outgoing(0, 0, 1, SYN|ACK), + pb.incoming(0, 1, 1, ACK), + // send a bunch of keepalive packets + pb.incoming(0, 1, 1, ACK), + pb.outgoing(0, 1, 1, ACK), + pb.incoming(0, 1, 1, ACK), + pb.outgoing(0, 1, 1, ACK), + pb.incoming(0, 1, 1, ACK), + // active close after sending no data + pb.outgoing(0, 1, 1, FIN|ACK), + pb.incoming(0, 1, 2, FIN|ACK), + pb.outgoing(0, 2, 2, ACK), + } + + f := newTcpTestFixture(t) + f.runPkts(basicHandshake) + + require.Empty(t, f.conn.TCPFailures) + + expectedStats := network.StatCounters{ + SentBytes: 0, + RecvBytes: 0, + SentPackets: 5, + RecvPackets: 6, + // no retransmits for keepalive + Retransmits: 0, + TCPEstablished: 1, + TCPClosed: 1, + } + require.Equal(t, expectedStats, f.conn.Monotonic) +} + +// TestRetransmitMultipleSegments tests retransmitting multiple segments as one +func TestRetransmitMultipleSegments(t *testing.T) { + pb := newPacketBuilder(lowerSeq, higherSeq) + traffic := []testCapture{ + pb.incoming(0, 0, 0, SYN), + pb.outgoing(0, 0, 1, SYN|ACK), + pb.incoming(0, 1, 1, ACK), + // send 3x 100 bytes + pb.outgoing(100, 1, 1, ACK), + pb.outgoing(100, 101, 1, ACK), + pb.outgoing(100, 201, 1, FIN|ACK), + // retransmit all three segments + pb.outgoing(300, 1, 1, FIN|ACK), + pb.incoming(0, 1, 302, FIN|ACK), + pb.outgoing(0, 2, 2, ACK), + } + + f := newTcpTestFixture(t) + f.runPkts(traffic) + + require.Empty(t, f.conn.TCPFailures) + + expectedStats := network.StatCounters{ + SentBytes: 300, + RecvBytes: 0, + SentPackets: 6, + RecvPackets: 3, + // one retransmit + Retransmits: 1, + TCPEstablished: 1, + TCPClosed: 1, + } + require.Equal(t, expectedStats, f.conn.Monotonic) +} diff --git a/pkg/network/tracer/connection/ebpfless/tcp_processor_test.go b/pkg/network/tracer/connection/ebpfless/tcp_processor_test.go index efbda6ff1037a..10716414d7848 100644 --- a/pkg/network/tracer/connection/ebpfless/tcp_processor_test.go +++ b/pkg/network/tracer/connection/ebpfless/tcp_processor_test.go @@ -611,47 +611,6 @@ func TestConnReset(t *testing.T) { require.Equal(t, expectedStats, f.conn.Monotonic) } -func TestRstRetransmit(t *testing.T) { - pb := newPacketBuilder(lowerSeq, higherSeq) - basicHandshake := []testCapture{ - pb.incoming(0, 0, 0, SYN), - pb.outgoing(0, 0, 1, SYN|ACK), - pb.incoming(0, 1, 1, ACK), - // handshake done, now blow up - pb.outgoing(0, 1, 1, RST|ACK), - pb.outgoing(0, 1, 1, RST|ACK), - } - - expectedClientStates := []ConnStatus{ - ConnStatAttempted, - ConnStatAttempted, - ConnStatEstablished, - // reset - ConnStatClosed, - ConnStatClosed, - } - - f := newTcpTestFixture(t) - f.runAgainstState(basicHandshake, expectedClientStates) - - // should count as a single failure - require.Equal(t, map[uint16]uint32{ - uint16(syscall.ECONNRESET): 1, - }, f.conn.TCPFailures) - - expectedStats := network.StatCounters{ - SentBytes: 0, - RecvBytes: 0, - SentPackets: 3, - RecvPackets: 2, - Retransmits: 0, - TCPEstablished: 1, - // should count as a single closed connection - TCPClosed: 1, - } - require.Equal(t, expectedStats, f.conn.Monotonic) -} - func TestConnectTwice(t *testing.T) { // same as TestImmediateFin but everything happens twice diff --git a/pkg/network/tracer/tracer_linux_test.go b/pkg/network/tracer/tracer_linux_test.go index ea091155c99ab..675eacdd2fc6e 100644 --- a/pkg/network/tracer/tracer_linux_test.go +++ b/pkg/network/tracer/tracer_linux_test.go @@ -127,7 +127,6 @@ func (s *TracerSuite) TestTCPRemoveEntries() { func (s *TracerSuite) TestTCPRetransmit() { t := s.T() cfg := testConfig() - skipEbpflessTodo(t, cfg) // Enable BPF-based system probe tr := setupTracer(t, cfg) @@ -136,6 +135,9 @@ func (s *TracerSuite) TestTCPRetransmit() { r := bufio.NewReader(c) r.ReadBytes(byte('\n')) c.Write(genPayload(serverMessageSize)) + // if we close the socket before the test is finished writing to the other end, + // linux will soon reset the connection. read the data instead + io.Copy(io.Discard, c) c.Close() }) t.Cleanup(server.Shutdown) @@ -163,22 +165,35 @@ func (s *TracerSuite) TestTCPRetransmit() { time.Sleep(time.Second) }) - // Iterate through active connections until we find connection created above, and confirm send + recv counts and there was at least 1 retransmission - connections := getConnections(t, tr) + var conn *network.ConnectionStats + require.EventuallyWithT(t, func(ct *assert.CollectT) { + // Iterate through active connections until we find connection created above, and confirm send + recv counts + connections := getConnections(t, tr) - conn, ok := findConnection(c.LocalAddr(), c.RemoteAddr(), connections) - require.True(t, ok) + ok := false + conn, ok = findConnection(c.LocalAddr(), c.RemoteAddr(), connections) + if !assert.True(ct, ok) { + return + } - assert.Equal(t, 100*clientMessageSize, int(conn.Monotonic.SentBytes)) - assert.True(t, int(conn.Monotonic.Retransmits) > 0) - assert.Equal(t, os.Getpid(), int(conn.Pid)) - assert.Equal(t, addrPort(server.Address()), int(conn.DPort)) + assert.Equal(ct, 100*clientMessageSize, int(conn.Monotonic.SentBytes)) + assert.Equal(ct, serverMessageSize, int(conn.Monotonic.RecvBytes)) + if !tr.config.EnableEbpfless { + assert.Equal(t, os.Getpid(), int(conn.Pid)) + } + + assert.Equal(ct, addrPort(server.Address()), int(conn.DPort)) + }, 3*time.Second, 100*time.Millisecond) + + // confirm at least one retransmission + require.True(t, int(conn.Monotonic.Retransmits) > 0) } func (s *TracerSuite) TestTCPRetransmitSharedSocket() { t := s.T() cfg := testConfig() - skipEbpflessTodo(t, cfg) + // ebpfless does not support tracing PIDs such as this test + skipOnEbpflessNotSupported(t, cfg) // Create TCP Server that simply "drains" connection until receiving an EOF server := tracertestutil.NewTCPServer(func(c net.Conn) { io.Copy(io.Discard, c) @@ -223,6 +238,8 @@ func (s *TracerSuite) TestTCPRetransmitSharedSocket() { time.Sleep(time.Second) }) + t.Logf("local=%s remote=%s", c.LocalAddr(), c.RemoteAddr()) + // Fetch all connections matching source and target address allConnections := getConnections(t, tr) conns := network.FilterConnections(allConnections, network.ByTuple(c.LocalAddr(), c.RemoteAddr())) From 6f3217d41a38e792597ca3725c3513937e6d180c Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Wed, 4 Dec 2024 16:14:47 +0100 Subject: [PATCH 247/439] [CWS] fix ttl field `time.Duration` unmarshaller (#31742) --- pkg/security/events/rate_limiter.go | 4 +- .../generators/schemas/policy/main.go | 2 +- pkg/security/probe/process_killer.go | 4 +- pkg/security/probe/selftests/ebpfless.go | 6 +- pkg/security/secl/rules/model.go | 87 ++++++++++++++----- pkg/security/secl/rules/policy_test.go | 4 +- pkg/security/secl/rules/ruleset.go | 2 +- pkg/security/tests/action_test.go | 16 +++- pkg/security/tests/event_test.go | 12 ++- 9 files changed, 96 insertions(+), 41 deletions(-) diff --git a/pkg/security/events/rate_limiter.go b/pkg/security/events/rate_limiter.go index 77d1999349043..5b3638e82a299 100644 --- a/pkg/security/events/rate_limiter.go +++ b/pkg/security/events/rate_limiter.go @@ -103,8 +103,8 @@ func (rl *RateLimiter) Apply(ruleSet *rules.RuleSet, customRuleIDs []eval.RuleID for id, rule := range ruleSet.GetRules() { every, burst := defaultEvery, defaultBurst - if rule.Def.Every != 0 { - every, burst = rule.Def.Every, 1 + if rule.Def.Every.Duration != 0 { + every, burst = rule.Def.Every.Duration, 1 } if len(rule.Def.RateLimiterToken) > 0 { diff --git a/pkg/security/generators/schemas/policy/main.go b/pkg/security/generators/schemas/policy/main.go index e39d15ebb8a64..2bc527da603df 100644 --- a/pkg/security/generators/schemas/policy/main.go +++ b/pkg/security/generators/schemas/policy/main.go @@ -33,7 +33,7 @@ func main() { ExpandedStruct: true, Mapper: func(t reflect.Type) *jsonschema.Schema { switch t { - case reflect.TypeOf(time.Duration(0)): + case reflect.TypeOf(rules.HumanReadableDuration{}), reflect.TypeOf(time.Duration(0)): return &jsonschema.Schema{ OneOf: []*jsonschema.Schema{ { diff --git a/pkg/security/probe/process_killer.go b/pkg/security/probe/process_killer.go index 38ee5dd433301..33f49141fe501 100644 --- a/pkg/security/probe/process_killer.go +++ b/pkg/security/probe/process_killer.go @@ -425,7 +425,7 @@ func (p *ProcessKiller) getDisarmerParams(kill *rules.KillDefinition) (*disarmer if kill.Disarmer != nil && kill.Disarmer.Container != nil && kill.Disarmer.Container.MaxAllowed > 0 { containerParams.enabled = true containerParams.capacity = uint64(kill.Disarmer.Container.MaxAllowed) - containerParams.period = kill.Disarmer.Container.Period + containerParams.period = kill.Disarmer.Container.Period.Duration } else if p.cfg.RuntimeSecurity.EnforcementDisarmerContainerEnabled { containerParams.enabled = true containerParams.capacity = uint64(p.cfg.RuntimeSecurity.EnforcementDisarmerContainerMaxAllowed) @@ -435,7 +435,7 @@ func (p *ProcessKiller) getDisarmerParams(kill *rules.KillDefinition) (*disarmer if kill.Disarmer != nil && kill.Disarmer.Executable != nil && kill.Disarmer.Executable.MaxAllowed > 0 { executableParams.enabled = true executableParams.capacity = uint64(kill.Disarmer.Executable.MaxAllowed) - executableParams.period = kill.Disarmer.Executable.Period + executableParams.period = kill.Disarmer.Executable.Period.Duration } else if p.cfg.RuntimeSecurity.EnforcementDisarmerExecutableEnabled { executableParams.enabled = true executableParams.capacity = uint64(p.cfg.RuntimeSecurity.EnforcementDisarmerExecutableMaxAllowed) diff --git a/pkg/security/probe/selftests/ebpfless.go b/pkg/security/probe/selftests/ebpfless.go index cd5b692fb5070..49b3ca2c36d29 100644 --- a/pkg/security/probe/selftests/ebpfless.go +++ b/pkg/security/probe/selftests/ebpfless.go @@ -30,8 +30,10 @@ func (o *EBPFLessSelfTest) GetRuleDefinition() *rules.RuleDefinition { return &rules.RuleDefinition{ ID: o.ruleID, Expression: `exec.file.path != "" && process.parent.pid == 0 && process.ppid == 0`, - Every: time.Duration(math.MaxInt64), - Silent: true, + Every: rules.HumanReadableDuration{ + Duration: time.Duration(math.MaxInt64), + }, + Silent: true, } } diff --git a/pkg/security/secl/rules/model.go b/pkg/security/secl/rules/model.go index 556fb3412db08..e150e5251ca84 100644 --- a/pkg/security/secl/rules/model.go +++ b/pkg/security/secl/rules/model.go @@ -7,7 +7,10 @@ package rules import ( + "errors" "time" + + "gopkg.in/yaml.v3" ) // MacroID represents the ID of a macro @@ -60,21 +63,21 @@ type RuleID = string // RuleDefinition holds the definition of a rule type RuleDefinition struct { - ID RuleID `yaml:"id,omitempty" json:"id"` - Version string `yaml:"version,omitempty" json:"version,omitempty"` - Expression string `yaml:"expression" json:"expression,omitempty"` - Description string `yaml:"description,omitempty" json:"description,omitempty"` - Tags map[string]string `yaml:"tags,omitempty" json:"tags,omitempty"` - AgentVersionConstraint string `yaml:"agent_version,omitempty" json:"agent_version,omitempty"` - Filters []string `yaml:"filters,omitempty" json:"filters,omitempty"` - Disabled bool `yaml:"disabled,omitempty" json:"disabled,omitempty"` - Combine CombinePolicy `yaml:"combine,omitempty" json:"combine,omitempty" jsonschema:"enum=override"` - OverrideOptions OverrideOptions `yaml:"override_options,omitempty" json:"override_options,omitempty"` - Actions []*ActionDefinition `yaml:"actions,omitempty" json:"actions,omitempty"` - Every time.Duration `yaml:"every,omitempty" json:"every,omitempty"` - RateLimiterToken []string `yaml:"limiter_token,omitempty" json:"limiter_token,omitempty"` - Silent bool `yaml:"silent,omitempty" json:"silent,omitempty"` - GroupID string `yaml:"group_id,omitempty" json:"group_id,omitempty"` + ID RuleID `yaml:"id,omitempty" json:"id"` + Version string `yaml:"version,omitempty" json:"version,omitempty"` + Expression string `yaml:"expression" json:"expression,omitempty"` + Description string `yaml:"description,omitempty" json:"description,omitempty"` + Tags map[string]string `yaml:"tags,omitempty" json:"tags,omitempty"` + AgentVersionConstraint string `yaml:"agent_version,omitempty" json:"agent_version,omitempty"` + Filters []string `yaml:"filters,omitempty" json:"filters,omitempty"` + Disabled bool `yaml:"disabled,omitempty" json:"disabled,omitempty"` + Combine CombinePolicy `yaml:"combine,omitempty" json:"combine,omitempty" jsonschema:"enum=override"` + OverrideOptions OverrideOptions `yaml:"override_options,omitempty" json:"override_options,omitempty"` + Actions []*ActionDefinition `yaml:"actions,omitempty" json:"actions,omitempty"` + Every HumanReadableDuration `yaml:"every,omitempty" json:"every,omitempty"` + RateLimiterToken []string `yaml:"limiter_token,omitempty" json:"limiter_token,omitempty"` + Silent bool `yaml:"silent,omitempty" json:"silent,omitempty"` + GroupID string `yaml:"group_id,omitempty" json:"group_id,omitempty"` } // GetTag returns the tag value associated with a tag key @@ -130,19 +133,19 @@ type Scope string // SetDefinition describes the 'set' section of a rule action type SetDefinition struct { - Name string `yaml:"name" json:"name"` - Value interface{} `yaml:"value" json:"value,omitempty" jsonschema:"oneof_required=SetWithValue,oneof_type=string;integer;boolean;array"` - Field string `yaml:"field" json:"field,omitempty" jsonschema:"oneof_required=SetWithField"` - Append bool `yaml:"append" json:"append,omitempty"` - Scope Scope `yaml:"scope" json:"scope,omitempty" jsonschema:"enum=process,enum=container"` - Size int `yaml:"size" json:"size,omitempty"` - TTL time.Duration `yaml:"ttl" json:"ttl,omitempty"` + Name string `yaml:"name" json:"name"` + Value interface{} `yaml:"value" json:"value,omitempty" jsonschema:"oneof_required=SetWithValue,oneof_type=string;integer;boolean;array"` + Field string `yaml:"field" json:"field,omitempty" jsonschema:"oneof_required=SetWithField"` + Append bool `yaml:"append" json:"append,omitempty"` + Scope Scope `yaml:"scope" json:"scope,omitempty" jsonschema:"enum=process,enum=container"` + Size int `yaml:"size" json:"size,omitempty"` + TTL HumanReadableDuration `yaml:"ttl" json:"ttl,omitempty"` } // KillDisarmerParamsDefinition describes the parameters of a kill action disarmer type KillDisarmerParamsDefinition struct { - MaxAllowed int `yaml:"max_allowed" json:"max_allowed,omitempty" jsonschema:"description=The maximum number of allowed kill actions within the period,example=5"` - Period time.Duration `yaml:"period" json:"period,omitempty" jsonschema:"description=The period of time during which the maximum number of allowed kill actions is calculated,example=1m"` + MaxAllowed int `yaml:"max_allowed" json:"max_allowed,omitempty" jsonschema:"description=The maximum number of allowed kill actions within the period,example=5"` + Period HumanReadableDuration `yaml:"period" json:"period,omitempty" jsonschema:"description=The period of time during which the maximum number of allowed kill actions is calculated,example=1m"` } // KillDisarmerDefinition describes the 'disarmer' section of a kill action @@ -189,3 +192,39 @@ type PolicyDef struct { Rules []*RuleDefinition `yaml:"rules" json:"rules"` OnDemandHookPoints []OnDemandHookPoint `yaml:"hooks,omitempty" json:"hooks,omitempty"` } + +// HumanReadableDuration represents a duration that can unmarshalled from YAML from a human readable format (like `10m`) +// or from a regular integer +type HumanReadableDuration struct { + time.Duration +} + +// MarshalYAML marshals a duration to a human readable format +func (d HumanReadableDuration) MarshalYAML() (interface{}, error) { + return d.String(), nil +} + +// UnmarshalYAML unmarshals a duration from a human readable format or from an integer +func (d *HumanReadableDuration) UnmarshalYAML(n *yaml.Node) error { + var v interface{} + if err := n.Decode(&v); err != nil { + return err + } + switch value := v.(type) { + case float64: + d.Duration = time.Duration(value) + return nil + case string: + var err error + d.Duration, err = time.ParseDuration(value) + if err != nil { + return err + } + return nil + default: + return errors.New("invalid duration") + } +} + +var _ yaml.Marshaler = (*HumanReadableDuration)(nil) +var _ yaml.Unmarshaler = (*HumanReadableDuration)(nil) diff --git a/pkg/security/secl/rules/policy_test.go b/pkg/security/secl/rules/policy_test.go index 9f7d11e9668a2..e9c3cfefd203d 100644 --- a/pkg/security/secl/rules/policy_test.go +++ b/pkg/security/secl/rules/policy_test.go @@ -340,7 +340,9 @@ func TestActionSetVariableTTL(t *testing.T) { Name: "var1", Append: true, Value: []string{"foo"}, - TTL: 1 * time.Second, + TTL: HumanReadableDuration{ + Duration: 1 * time.Second, + }, }, }}, }}, diff --git a/pkg/security/secl/rules/ruleset.go b/pkg/security/secl/rules/ruleset.go index 90be57e0b71a9..297de1fd557d5 100644 --- a/pkg/security/secl/rules/ruleset.go +++ b/pkg/security/secl/rules/ruleset.go @@ -241,7 +241,7 @@ func (rs *RuleSet) PopulateFieldsWithRuleActionsData(policyRules []*PolicyRule, variableProvider = &rs.globalVariables } - opts := eval.VariableOpts{TTL: actionDef.Set.TTL, Size: actionDef.Set.Size} + opts := eval.VariableOpts{TTL: actionDef.Set.TTL.Duration, Size: actionDef.Set.Size} variable, err := variableProvider.GetVariable(actionDef.Set.Name, variableValue, opts) if err != nil { diff --git a/pkg/security/tests/action_test.go b/pkg/security/tests/action_test.go index 1e653f824ee5a..e759d1a94d824 100644 --- a/pkg/security/tests/action_test.go +++ b/pkg/security/tests/action_test.go @@ -619,11 +619,15 @@ func TestActionKillDisarmFromRule(t *testing.T) { Disarmer: &rules.KillDisarmerDefinition{ Executable: &rules.KillDisarmerParamsDefinition{ MaxAllowed: 1, - Period: enforcementDisarmerExecutablePeriod, + Period: rules.HumanReadableDuration{ + Duration: enforcementDisarmerExecutablePeriod, + }, }, Container: &rules.KillDisarmerParamsDefinition{ MaxAllowed: 1, - Period: enforcementDisarmerContainerPeriod, + Period: rules.HumanReadableDuration{ + Duration: enforcementDisarmerContainerPeriod, + }, }, }, }, @@ -640,11 +644,15 @@ func TestActionKillDisarmFromRule(t *testing.T) { Disarmer: &rules.KillDisarmerDefinition{ Executable: &rules.KillDisarmerParamsDefinition{ MaxAllowed: 1, - Period: enforcementDisarmerExecutablePeriod, + Period: rules.HumanReadableDuration{ + Duration: enforcementDisarmerExecutablePeriod, + }, }, Container: &rules.KillDisarmerParamsDefinition{ MaxAllowed: 1, - Period: enforcementDisarmerContainerPeriod, + Period: rules.HumanReadableDuration{ + Duration: enforcementDisarmerContainerPeriod, + }, }, }, }, diff --git a/pkg/security/tests/event_test.go b/pkg/security/tests/event_test.go index 651db51c88545..e28217fece6ce 100644 --- a/pkg/security/tests/event_test.go +++ b/pkg/security/tests/event_test.go @@ -104,15 +104,19 @@ func TestEventRaleLimiters(t *testing.T) { ruleDefs := []*rules.RuleDefinition{ { - ID: "test_unique_id", - Expression: `open.file.path == "{{.Root}}/test-unique-id"`, - Every: 5 * time.Second, + ID: "test_unique_id", + Expression: `open.file.path == "{{.Root}}/test-unique-id"`, + Every: rules.HumanReadableDuration{ + Duration: 5 * time.Second, + }, RateLimiterToken: []string{"process.file.name"}, }, { ID: "test_std", Expression: `open.file.path == "{{.Root}}/test-std"`, - Every: 5 * time.Second, + Every: rules.HumanReadableDuration{ + Duration: 5 * time.Second, + }, }, } From 3c7230055cad8c5df0376eee3fccc0fe641e0ce7 Mon Sep 17 00:00:00 2001 From: Stuart Geipel Date: Wed, 4 Dec 2024 10:55:53 -0500 Subject: [PATCH 248/439] [NETPATH-366] Enrich dynamic network path with NPM domain cache (#31685) --- comp/networkpath/npcollector/component.go | 2 +- .../npcollectorimpl/common/pathtest.go | 9 ++ .../npcollectorimpl/npcollector.go | 88 ++++++++++++------- .../npcollectorimpl/npcollector_mock.go | 2 +- .../npcollectorimpl/npcollector_test.go | 58 ++++++++++-- pkg/process/checks/net.go | 2 +- ...twork-path-local-dns-41303d691d58a2b4.yaml | 10 +++ 7 files changed, 130 insertions(+), 41 deletions(-) create mode 100644 releasenotes/notes/network-path-local-dns-41303d691d58a2b4.yaml diff --git a/comp/networkpath/npcollector/component.go b/comp/networkpath/npcollector/component.go index 945daacd562bf..0066a247b665c 100644 --- a/comp/networkpath/npcollector/component.go +++ b/comp/networkpath/npcollector/component.go @@ -12,5 +12,5 @@ import model "github.com/DataDog/agent-payload/v5/process" // Component is the component type. type Component interface { - ScheduleConns(conns []*model.Connection) + ScheduleConns(conns []*model.Connection, dns map[string]*model.DNSEntry) } diff --git a/comp/networkpath/npcollector/npcollectorimpl/common/pathtest.go b/comp/networkpath/npcollector/npcollectorimpl/common/pathtest.go index e1d2094fe8c4a..a148796388939 100644 --- a/comp/networkpath/npcollector/npcollectorimpl/common/pathtest.go +++ b/comp/networkpath/npcollector/npcollectorimpl/common/pathtest.go @@ -12,12 +12,21 @@ import ( "github.com/DataDog/datadog-agent/pkg/networkpath/payload" ) +// PathtestMetadata contains metadata used to annotate the result of a traceroute. +// This data is not used by the traceroute itself. +type PathtestMetadata struct { + // ReverseDNSHostname is an optional hostname which will be used in place of rDNS querying for + // the destination address. + ReverseDNSHostname string +} + // Pathtest details of information necessary to run a traceroute (pathtrace) type Pathtest struct { Hostname string Port uint16 Protocol payload.Protocol SourceContainerID string + Metadata PathtestMetadata } // GetHash returns the hash of the Pathtest diff --git a/comp/networkpath/npcollector/npcollectorimpl/npcollector.go b/comp/networkpath/npcollector/npcollectorimpl/npcollector.go index 4ee787e567320..876344b212f33 100644 --- a/comp/networkpath/npcollector/npcollectorimpl/npcollector.go +++ b/comp/networkpath/npcollector/npcollectorimpl/npcollector.go @@ -127,26 +127,49 @@ func newNpCollectorImpl(epForwarder eventplatform.Forwarder, collectorConfigs *c } } -func (s *npCollectorImpl) ScheduleConns(conns []*model.Connection) { +// makePathtest extracts pathtest information using a single connection and the connection check's reverse dns map +func makePathtest(conn *model.Connection, dns map[string]*model.DNSEntry) common.Pathtest { + protocol := convertProtocol(conn.GetType()) + + rDNSEntry := dns[conn.Raddr.GetIp()] + var reverseDNSHostname string + if rDNSEntry != nil && len(rDNSEntry.Names) > 0 { + reverseDNSHostname = rDNSEntry.Names[0] + } + + var remotePort uint16 + // UDP traces should not be done to the active port + if protocol != payload.ProtocolUDP { + remotePort = uint16(conn.Raddr.GetPort()) + } + + sourceContainer := conn.Laddr.GetContainerId() + + return common.Pathtest{ + Hostname: conn.Raddr.GetIp(), + Port: remotePort, + Protocol: protocol, + SourceContainerID: sourceContainer, + Metadata: common.PathtestMetadata{ + ReverseDNSHostname: reverseDNSHostname, + }, + } +} + +func (s *npCollectorImpl) ScheduleConns(conns []*model.Connection, dns map[string]*model.DNSEntry) { if !s.collectorConfigs.connectionsMonitoringEnabled { return } startTime := s.TimeNowFn() for _, conn := range conns { - remoteAddr := conn.Raddr - protocol := convertProtocol(conn.GetType()) - var remotePort uint16 - // UDP traces should not be done to the active - // port - if protocol != payload.ProtocolUDP { - remotePort = uint16(conn.Raddr.GetPort()) - } if !shouldScheduleNetworkPathForConn(conn) { - s.logger.Tracef("Skipped connection: addr=%s, port=%d, protocol=%s", remoteAddr, remotePort, protocol) + protocol := convertProtocol(conn.GetType()) + s.logger.Tracef("Skipped connection: addr=%s, protocol=%s", conn.Raddr, protocol) continue } - sourceContainer := conn.Laddr.GetContainerId() - err := s.scheduleOne(remoteAddr.GetIp(), remotePort, protocol, sourceContainer) + pathtest := makePathtest(conn, dns) + + err := s.scheduleOne(&pathtest) if err != nil { s.logger.Errorf("Error scheduling pathtests: %s", err) } @@ -158,20 +181,14 @@ func (s *npCollectorImpl) ScheduleConns(conns []*model.Connection) { // scheduleOne schedules pathtests. // It shouldn't block, if the input channel is full, an error is returned. -func (s *npCollectorImpl) scheduleOne(hostname string, port uint16, protocol payload.Protocol, sourceContainerID string) error { +func (s *npCollectorImpl) scheduleOne(pathtest *common.Pathtest) error { if s.pathtestInputChan == nil { return errors.New("no input channel, please check that network path is enabled") } - s.logger.Debugf("Schedule traceroute for: hostname=%s port=%d", hostname, port) + s.logger.Debugf("Schedule traceroute for: hostname=%s port=%d", pathtest.Hostname, pathtest.Port) - ptest := &common.Pathtest{ - Hostname: hostname, - Port: port, - Protocol: protocol, - SourceContainerID: sourceContainerID, - } select { - case s.pathtestInputChan <- ptest: + case s.pathtestInputChan <- pathtest: return nil default: return fmt.Errorf("collector input channel is full (channel capacity is %d)", cap(s.pathtestInputChan)) @@ -246,7 +263,7 @@ func (s *npCollectorImpl) runTracerouteForPath(ptest *pathteststore.PathtestCont path.Origin = payload.PathOriginNetworkTraffic // Perform reverse DNS lookup on destination and hop IPs - s.enrichPathWithRDNS(&path) + s.enrichPathWithRDNS(&path, ptest.Pathtest.Metadata.ReverseDNSHostname) s.sendTelemetry(path, startTime, ptest) @@ -326,14 +343,19 @@ func (s *npCollectorImpl) flush() { } } -func (s *npCollectorImpl) enrichPathWithRDNS(path *payload.NetworkPath) { +// enrichPathWithRDNS populates a NetworkPath with reverse-DNS queried hostnames. +func (s *npCollectorImpl) enrichPathWithRDNS(path *payload.NetworkPath, knownDestHostname string) { if !s.collectorConfigs.reverseDNSEnabled { return } // collect unique IP addresses from destination and hops ipSet := make(map[string]struct{}, len(path.Hops)+1) // +1 for destination - ipSet[path.Destination.IPAddress] = struct{}{} + + // only look up the destination hostname if we need to + if knownDestHostname == "" { + ipSet[path.Destination.IPAddress] = struct{}{} + } for _, hop := range path.Hops { if !hop.Reachable { continue @@ -356,13 +378,17 @@ func (s *npCollectorImpl) enrichPathWithRDNS(path *payload.NetworkPath) { } // assign resolved hostnames to destination and hops - hostname := s.getReverseDNSResult(path.Destination.IPAddress, results) - // if hostname is blank, use what's given by traceroute - // TODO: would it be better to move the logic up from the traceroute command? - // benefit to the current approach is having consistent behavior for all paths - // both static and dynamic - if hostname != "" { - path.Destination.ReverseDNSHostname = hostname + if knownDestHostname != "" { + path.Destination.ReverseDNSHostname = knownDestHostname + } else { + hostname := s.getReverseDNSResult(path.Destination.IPAddress, results) + // if hostname is blank, use what's given by traceroute + // TODO: would it be better to move the logic up from the traceroute command? + // benefit to the current approach is having consistent behavior for all paths + // both static and dynamic + if hostname != "" { + path.Destination.ReverseDNSHostname = hostname + } } for i, hop := range path.Hops { diff --git a/comp/networkpath/npcollector/npcollectorimpl/npcollector_mock.go b/comp/networkpath/npcollector/npcollectorimpl/npcollector_mock.go index bf7a13b1d7fa9..636d443b60ad9 100644 --- a/comp/networkpath/npcollector/npcollectorimpl/npcollector_mock.go +++ b/comp/networkpath/npcollector/npcollectorimpl/npcollector_mock.go @@ -23,7 +23,7 @@ func MockModule() fxutil.Module { type npCollectorMock struct{} -func (s *npCollectorMock) ScheduleConns(_ []*model.Connection) { +func (s *npCollectorMock) ScheduleConns(_ []*model.Connection, _ map[string]*model.DNSEntry) { panic("implement me") } diff --git a/comp/networkpath/npcollector/npcollectorimpl/npcollector_test.go b/comp/networkpath/npcollector/npcollectorimpl/npcollector_test.go index 390ce1c8684f4..6b6416e0d47ae 100644 --- a/comp/networkpath/npcollector/npcollectorimpl/npcollector_test.go +++ b/comp/networkpath/npcollector/npcollectorimpl/npcollector_test.go @@ -226,7 +226,7 @@ func Test_NpCollector_runningAndProcessing(t *testing.T) { Type: model.ConnectionType_udp, }, } - npCollector.ScheduleConns(conns) + npCollector.ScheduleConns(conns, make(map[string]*model.DNSEntry)) waitForProcessedPathtests(npCollector, 5*time.Second, 2) @@ -281,7 +281,7 @@ func Test_NpCollector_ScheduleConns_ScheduleDurationMetric(t *testing.T) { } // WHEN - npCollector.ScheduleConns(conns) + npCollector.ScheduleConns(conns, make(map[string]*model.DNSEntry)) // THEN calls := stats.GaugeCalls @@ -340,6 +340,7 @@ func Test_npCollectorImpl_ScheduleConns(t *testing.T) { tests := []struct { name string conns []*model.Connection + dns map[string]*model.DNSEntry noInputChan bool agentConfigs map[string]any expectedPathtests []*common.Pathtest @@ -480,6 +481,25 @@ func Test_npCollectorImpl_ScheduleConns(t *testing.T) { }, expectedLogs: []logCount{}, }, + { + name: "one outgoing TCP conn with known hostname (DNS)", + agentConfigs: defaultagentConfigs, + conns: []*model.Connection{ + { + Laddr: &model.Addr{Ip: "10.0.0.3", Port: int32(30000), ContainerId: "testId1"}, + Raddr: &model.Addr{Ip: "10.0.0.4", Port: int32(80)}, + Direction: model.ConnectionDirection_outgoing, + Type: model.ConnectionType_tcp, + }, + }, + expectedPathtests: []*common.Pathtest{ + {Hostname: "10.0.0.4", Port: uint16(80), Protocol: payload.ProtocolTCP, SourceContainerID: "testId1", + Metadata: common.PathtestMetadata{ReverseDNSHostname: "known-hostname"}}, + }, + dns: map[string]*model.DNSEntry{ + "10.0.0.4": {Names: []string{"known-hostname"}}, + }, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { @@ -497,7 +517,7 @@ func Test_npCollectorImpl_ScheduleConns(t *testing.T) { stats := &teststatsd.Client{} npCollector.statsdClient = stats - npCollector.ScheduleConns(tt.conns) + npCollector.ScheduleConns(tt.conns, tt.dns) actualPathtests := []*common.Pathtest{} for i := 0; i < len(tt.expectedPathtests); i++ { @@ -758,7 +778,7 @@ func Benchmark_npCollectorImpl_ScheduleConns(b *testing.B) { for i := 0; i < b.N; i++ { // add line to avoid linter error _ = i - npCollector.ScheduleConns(connections) + npCollector.ScheduleConns(connections, make(map[string]*model.DNSEntry)) waitForProcessedPathtests(npCollector, 60*time.Second, 50) } @@ -791,7 +811,7 @@ func Test_npCollectorImpl_enrichPathWithRDNS(t *testing.T) { }, } - npCollector.enrichPathWithRDNS(&path) + npCollector.enrichPathWithRDNS(&path, "") // THEN assert.Equal(t, "hostname-10.0.0.41", path.Destination.ReverseDNSHostname) // private IP should be resolved @@ -812,7 +832,7 @@ func Test_npCollectorImpl_enrichPathWithRDNS(t *testing.T) { }, } - npCollector.enrichPathWithRDNS(&path) + npCollector.enrichPathWithRDNS(&path, "") // THEN assert.Equal(t, "", path.Destination.ReverseDNSHostname) @@ -843,7 +863,7 @@ func Test_npCollectorImpl_enrichPathWithRDNS(t *testing.T) { }, } - npCollector.enrichPathWithRDNS(&path) + npCollector.enrichPathWithRDNS(&path, "") // THEN - no resolution should happen assert.Equal(t, "", path.Destination.ReverseDNSHostname) @@ -853,6 +873,30 @@ func Test_npCollectorImpl_enrichPathWithRDNS(t *testing.T) { assert.Equal(t, "dest-hostname", path.Hops[3].Hostname) } +func Test_npCollectorImpl_enrichPathWithRDNSKnownHostName(t *testing.T) { + // GIVEN + agentConfigs := map[string]any{ + "network_path.connections_monitoring.enabled": true, + } + _, npCollector := newTestNpCollector(t, agentConfigs) + + stats := &teststatsd.Client{} + npCollector.statsdClient = stats + npCollector.metricSender = metricsender.NewMetricSenderStatsd(stats) + + // WHEN + path := payload.NetworkPath{ + Destination: payload.NetworkPathDestination{IPAddress: "10.0.0.41", Hostname: "dest-hostname"}, + Hops: nil, + } + + npCollector.enrichPathWithRDNS(&path, "known-dest-hostname") + + // THEN - destination hostname should resolve to known hostname + assert.Equal(t, "known-dest-hostname", path.Destination.ReverseDNSHostname) + assert.Empty(t, path.Hops) +} + func Test_npCollectorImpl_getReverseDNSResult(t *testing.T) { // GIVEN agentConfigs := map[string]any{ diff --git a/pkg/process/checks/net.go b/pkg/process/checks/net.go index 9c87179f85508..054ce6a4fb670 100644 --- a/pkg/process/checks/net.go +++ b/pkg/process/checks/net.go @@ -193,7 +193,7 @@ func (c *ConnectionsCheck) Run(nextGroupID func() int32, _ *RunOptions) (RunResu log.Debugf("collected connections in %s", time.Since(start)) - c.npCollector.ScheduleConns(conns.Conns) + c.npCollector.ScheduleConns(conns.Conns, conns.Dns) groupID := nextGroupID() messages := batchConnections(c.hostInfo, c.maxConnsPerMessage, groupID, conns.Conns, conns.Dns, c.networkID, conns.ConnTelemetryMap, conns.CompilationTelemetryByAsset, conns.KernelHeaderFetchResult, conns.CORETelemetryByAsset, conns.PrebuiltEBPFAssets, conns.Domains, conns.Routes, conns.Tags, conns.AgentConfiguration, c.serviceExtractor) diff --git a/releasenotes/notes/network-path-local-dns-41303d691d58a2b4.yaml b/releasenotes/notes/network-path-local-dns-41303d691d58a2b4.yaml new file mode 100644 index 0000000000000..b21126beb10c2 --- /dev/null +++ b/releasenotes/notes/network-path-local-dns-41303d691d58a2b4.yaml @@ -0,0 +1,10 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +enhancements: + - Network Path will use recent DNS lookups to infer the destination hostname, if they are available. If a DNS lookup is not found, it will query reverse DNS the same way as before. From 7b84ef8b76e2b568c3dbbaa51ae92b72b2b42e82 Mon Sep 17 00:00:00 2001 From: Dustin Long Date: Wed, 4 Dec 2024 11:05:31 -0500 Subject: [PATCH 249/439] Conditionally set GOFIPS env var (#31724) --- Dockerfiles/agent/Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Dockerfiles/agent/Dockerfile b/Dockerfiles/agent/Dockerfile index 6c8cb42eedccf..58ecd02ae3bb6 100644 --- a/Dockerfiles/agent/Dockerfile +++ b/Dockerfiles/agent/Dockerfile @@ -183,9 +183,8 @@ RUN [ "$(getent passwd dd-agent | cut -d: -f 3)" -eq 100 ] # Enable FIPS if needed RUN if [ -x /opt/datadog-agent/embedded/bin/fipsinstall.sh ]; then \ /opt/datadog-agent/embedded/bin/fipsinstall.sh; \ + export GOFIPS=1; \ fi -# This is used by MSGO to enable FIPS mode so it won't affect the non-FIPS image -ENV GOFIPS=1 # Override the exit script by ours to fix --pid=host operations RUN mv /etc/s6/init/init-stage3 /etc/s6/init/init-stage3-original From 37d99a7908e83bcbaf8847da0376a69dc3a2cb0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillermo=20Juli=C3=A1n?= Date: Wed, 4 Dec 2024 17:14:51 +0100 Subject: [PATCH 250/439] kubelet: Add support for resource assignments via PodResources API (#31074) --- LICENSE-3rdparty.csv | 1 + .../collectors/internal/kubelet/kubelet.go | 25 ++-- comp/core/workloadmeta/def/types.go | 22 ++++ comp/core/workloadmeta/impl/dump_test.go | 10 ++ pkg/config/setup/config.go | 6 + pkg/util/kubernetes/kubelet/kubelet.go | 58 +++++++++ pkg/util/kubernetes/kubelet/podresources.go | 112 ++++++++++++++++++ pkg/util/kubernetes/kubelet/types_kubelet.go | 26 ++-- 8 files changed, 244 insertions(+), 16 deletions(-) create mode 100644 pkg/util/kubernetes/kubelet/podresources.go diff --git a/LICENSE-3rdparty.csv b/LICENSE-3rdparty.csv index d7078ec0f1b71..6f885b06c7a9f 100644 --- a/LICENSE-3rdparty.csv +++ b/LICENSE-3rdparty.csv @@ -3932,6 +3932,7 @@ core,k8s.io/kube-state-metrics/v2/pkg/watch,Apache-2.0,Copyright 2014 The Kubern core,k8s.io/kubectl/pkg/cmd/util,Apache-2.0,Copyright 2014 The Kubernetes Authors. core,k8s.io/kubectl/pkg/cmd/util/podcmd,Apache-2.0,Copyright 2014 The Kubernetes Authors. core,k8s.io/kubectl/pkg/scheme,Apache-2.0,Copyright 2014 The Kubernetes Authors. +core,k8s.io/kubelet/pkg/apis/podresources/v1,Apache-2.0,Copyright 2014 The Kubernetes Authors. core,k8s.io/kubelet/pkg/apis/stats/v1alpha1,Apache-2.0,Copyright 2014 The Kubernetes Authors. core,k8s.io/metrics/pkg/apis/custom_metrics,Apache-2.0,Copyright 2014 The Kubernetes Authors. core,k8s.io/metrics/pkg/apis/custom_metrics/install,Apache-2.0,Copyright 2014 The Kubernetes Authors. diff --git a/comp/core/workloadmeta/collectors/internal/kubelet/kubelet.go b/comp/core/workloadmeta/collectors/internal/kubelet/kubelet.go index c9e4960d80572..0633238f905ae 100644 --- a/comp/core/workloadmeta/collectors/internal/kubelet/kubelet.go +++ b/comp/core/workloadmeta/collectors/internal/kubelet/kubelet.go @@ -265,6 +265,14 @@ func (c *collector) parsePodContainers( log.Debugf("cannot find spec for container %q", container.Name) } + var allocatedResources []workloadmeta.ContainerAllocatedResource + for _, resource := range container.AllocatedResources { + allocatedResources = append(allocatedResources, workloadmeta.ContainerAllocatedResource{ + Name: resource.Name, + ID: resource.ID, + }) + } + containerState := workloadmeta.ContainerState{} if st := container.State.Running; st != nil { containerState.Running = true @@ -301,14 +309,15 @@ func (c *collector) parsePodContainers( kubernetes.CriContainerNamespaceLabel: pod.Metadata.Namespace, }, }, - Image: image, - EnvVars: env, - SecurityContext: containerSecurityContext, - Ports: ports, - Runtime: workloadmeta.ContainerRuntime(runtime), - State: containerState, - Owner: parent, - Resources: resources, + Image: image, + EnvVars: env, + SecurityContext: containerSecurityContext, + Ports: ports, + Runtime: workloadmeta.ContainerRuntime(runtime), + State: containerState, + Owner: parent, + Resources: resources, + AllocatedResources: allocatedResources, }, }) } diff --git a/comp/core/workloadmeta/def/types.go b/comp/core/workloadmeta/def/types.go index 54bcfece491f7..47315eca9db06 100644 --- a/comp/core/workloadmeta/def/types.go +++ b/comp/core/workloadmeta/def/types.go @@ -453,6 +453,19 @@ func (cr ContainerResources) String(bool) string { return sb.String() } +// ContainerAllocatedResource is a resource allocated to a container, consisting of a name and an ID. +type ContainerAllocatedResource struct { + // Name is the name of the resource as defined in the pod spec (e.g. "nvidia.com/gpu"). + Name string + + // ID is the unique ID of the resource, the format depends on the provider + ID string +} + +func (c ContainerAllocatedResource) String() string { + return fmt.Sprintf("Name: %s, ID: %s", c.Name, c.ID) +} + // OrchestratorContainer is a reference to a Container with // orchestrator-specific data attached to it. type OrchestratorContainer struct { @@ -536,6 +549,10 @@ type Container struct { Owner *EntityID SecurityContext *ContainerSecurityContext Resources ContainerResources + + // AllocatedResources is the list of resources allocated to this pod. Requires the + // PodResources API to query that data. + AllocatedResources []ContainerAllocatedResource // CgroupPath is a path to the cgroup of the container. // It can be relative to the cgroup parent. // Linux only. @@ -589,6 +606,11 @@ func (c Container) String(verbose bool) string { _, _ = fmt.Fprintln(&sb, "----------- Resources -----------") _, _ = fmt.Fprint(&sb, c.Resources.String(verbose)) + _, _ = fmt.Fprintln(&sb, "----------- Allocated Resources -----------") + for _, r := range c.AllocatedResources { + _, _ = fmt.Fprintln(&sb, r.String()) + } + if verbose { _, _ = fmt.Fprintln(&sb, "Hostname:", c.Hostname) _, _ = fmt.Fprintln(&sb, "Network IPs:", mapToString(c.NetworkIPs)) diff --git a/comp/core/workloadmeta/impl/dump_test.go b/comp/core/workloadmeta/impl/dump_test.go index 67f13f174e346..feaa67d32f95a 100644 --- a/comp/core/workloadmeta/impl/dump_test.go +++ b/comp/core/workloadmeta/impl/dump_test.go @@ -30,6 +30,9 @@ func TestDump(t *testing.T) { Resources: wmdef.ContainerResources{ GPUVendorList: []string{"nvidia"}, }, + AllocatedResources: []wmdef.ContainerAllocatedResource{ + {Name: "nvidia.com/gpu", ID: "GPU-1234"}, + }, Runtime: wmdef.ContainerRuntimeDocker, RuntimeFlavor: wmdef.ContainerRuntimeFlavorKata, EnvVars: map[string]string{ @@ -87,6 +90,8 @@ RuntimeFlavor: kata Running: false ----------- Resources ----------- GPUVendor: [nvidia] +----------- Allocated Resources ----------- +Name: nvidia.com/gpu, ID: GPU-1234 `, }, }, @@ -125,6 +130,8 @@ Started At: 0001-01-01 00:00:00 +0000 UTC Finished At: 0001-01-01 00:00:00 +0000 UTC ----------- Resources ----------- GPUVendor: [nvidia] +----------- Allocated Resources ----------- +Name: nvidia.com/gpu, ID: GPU-1234 Hostname: Network IPs: PID: 0 @@ -154,6 +161,7 @@ Created At: 0001-01-01 00:00:00 +0000 UTC Started At: 0001-01-01 00:00:00 +0000 UTC Finished At: 0001-01-01 00:00:00 +0000 UTC ----------- Resources ----------- +----------- Allocated Resources ----------- Hostname: Network IPs: PID: 1 @@ -184,6 +192,8 @@ Started At: 0001-01-01 00:00:00 +0000 UTC Finished At: 0001-01-01 00:00:00 +0000 UTC ----------- Resources ----------- GPUVendor: [nvidia] +----------- Allocated Resources ----------- +Name: nvidia.com/gpu, ID: GPU-1234 Hostname: Network IPs: PID: 1 diff --git a/pkg/config/setup/config.go b/pkg/config/setup/config.go index e54aba5d6684e..73648316c5f4c 100644 --- a/pkg/config/setup/config.go +++ b/pkg/config/setup/config.go @@ -1677,6 +1677,12 @@ func kubernetes(config pkgconfigmodel.Setup) { config.BindEnvAndSetDefault("kubernetes_map_services_on_ip", false) // temporary opt-out of the new mapping logic config.BindEnvAndSetDefault("kubernetes_apiserver_use_protobuf", false) config.BindEnvAndSetDefault("kubernetes_ad_tags_disabled", []string{}) + + defaultPodresourcesSocket := "/var/lib/kubelet/pod-resources/kubelet.sock" + if runtime.GOOS == "windows" { + defaultPodresourcesSocket = `\\.\pipe\kubelet-pod-resources` + } + config.BindEnvAndSetDefault("kubernetes_kubelet_podresources_socket", defaultPodresourcesSocket) } func podman(config pkgconfigmodel.Setup) { diff --git a/pkg/util/kubernetes/kubelet/kubelet.go b/pkg/util/kubernetes/kubelet/kubelet.go index b1622e27bf2ea..b1ba6785e5940 100644 --- a/pkg/util/kubernetes/kubelet/kubelet.go +++ b/pkg/util/kubernetes/kubelet/kubelet.go @@ -23,6 +23,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/util/log" "github.com/DataDog/datadog-agent/pkg/util/retry" + podresourcesv1 "k8s.io/kubelet/pkg/apis/podresources/v1" kubeletv1alpha1 "k8s.io/kubelet/pkg/apis/stats/v1alpha1" ) @@ -53,6 +54,7 @@ type KubeUtil struct { filter *containers.Filter waitOnMissingContainer time.Duration podUnmarshaller *podUnmarshaller + podResourcesClient *PodResourcesClient } func (ku *KubeUtil) init() error { @@ -82,6 +84,11 @@ func (ku *KubeUtil) init() error { } } + ku.podResourcesClient, err = NewPodResourcesClient(pkgconfigsetup.Datadog()) + if err != nil { + log.Warnf("Failed to create pod resources client, resource data will not be available: %s", err) + } + return nil } @@ -205,6 +212,11 @@ func (ku *KubeUtil) getLocalPodList(ctx context.Context) (*PodList, error) { return nil, errors.NewRetriable("podlist", fmt.Errorf("unable to unmarshal podlist, invalid or null: %w", err)) } + err = ku.addContainerResourcesData(ctx, pods.Items) + if err != nil { + log.Errorf("Error adding container resources data: %s", err) + } + // ensure we dont have nil pods tmpSlice := make([]*Pod, 0, len(pods.Items)) for _, pod := range pods.Items { @@ -232,6 +244,52 @@ func (ku *KubeUtil) getLocalPodList(ctx context.Context) (*PodList, error) { return &pods, nil } +// addContainerResourcesData modifies the given pod list, populating the +// resources field of each container. If the pod resources API is not available, +// this is a no-op. +func (ku *KubeUtil) addContainerResourcesData(ctx context.Context, pods []*Pod) error { + if ku.podResourcesClient == nil { + return nil + } + + containerToDevicesMap, err := ku.podResourcesClient.GetContainerToDevicesMap(ctx) + if err != nil { + return fmt.Errorf("error getting container resources data: %w", err) + } + + for _, pod := range pods { + ku.addResourcesToContainerList(containerToDevicesMap, pod, pod.Status.InitContainers) + ku.addResourcesToContainerList(containerToDevicesMap, pod, pod.Status.Containers) + } + + return nil +} + +func (ku *KubeUtil) addResourcesToContainerList(containerToDevicesMap map[ContainerKey][]*podresourcesv1.ContainerDevices, pod *Pod, containers []ContainerStatus) { + for i := range containers { + container := &containers[i] // take the pointer so that we can modify the original + key := ContainerKey{ + Namespace: pod.Metadata.Namespace, + PodName: pod.Metadata.Name, + ContainerName: container.Name, + } + devices, ok := containerToDevicesMap[key] + if !ok { + continue + } + + for _, device := range devices { + name := device.GetResourceName() + for _, id := range device.GetDeviceIds() { + container.AllocatedResources = append(container.AllocatedResources, ContainerAllocatedResource{ + Name: name, + ID: id, + }) + } + } + } +} + // GetLocalPodList returns the list of pods running on the node. // If kubernetes_pod_expiration_duration is set, old exited pods // will be filtered out to keep the podlist size down: see json.go diff --git a/pkg/util/kubernetes/kubelet/podresources.go b/pkg/util/kubernetes/kubelet/podresources.go new file mode 100644 index 0000000000000..7d6019d39de50 --- /dev/null +++ b/pkg/util/kubernetes/kubelet/podresources.go @@ -0,0 +1,112 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2024-present Datadog, Inc. + +//go:build kubelet + +package kubelet + +import ( + "context" + "fmt" + "runtime" + + "google.golang.org/grpc" + "google.golang.org/grpc/credentials/insecure" + podresourcesv1 "k8s.io/kubelet/pkg/apis/podresources/v1" + + "github.com/DataDog/datadog-agent/comp/core/config" +) + +// PodResourcesClient is a small wrapper for the PodResources kubernetes API +type PodResourcesClient struct { + conn *grpc.ClientConn + client podresourcesv1.PodResourcesListerClient +} + +// ContainerKey is a struct that represents a unique container +type ContainerKey struct { + // Namespace is the namespace of the pod + Namespace string + + // PodName is the name of the pod + PodName string + + // ContainerName is the name of the container + ContainerName string +} + +// NewPodResourcesClient creates a new PodResourcesClient using the socket path +// from the configuration. Will fail if the socket path is not set. +func NewPodResourcesClient(config config.Component) (*PodResourcesClient, error) { + podResourcesSocket := config.GetString("kubernetes_kubelet_podresources_socket") + if podResourcesSocket == "" { + return nil, fmt.Errorf("kubernetes_kubelet_podresources_socket is not set") + } + + socketPrefix := "unix://" + if runtime.GOOS == "windows" { + socketPrefix = "npipe://" + } + return NewPodResourcesClientWithSocket(socketPrefix + podResourcesSocket) +} + +// NewPodResourcesClientWithSocket creates a new PodResourcesClient using the +// provided socket path (must start with unix:// on Linux or npipe:// on Windows). +func NewPodResourcesClientWithSocket(socket string) (*PodResourcesClient, error) { + conn, err := grpc.NewClient( + socket, + grpc.WithTransportCredentials(insecure.NewCredentials()), + grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(100*1024*1024)), + ) + if err != nil { + return nil, fmt.Errorf("failure creating gRPC client to '%s': %w", socket, err) + } + + client := podresourcesv1.NewPodResourcesListerClient(conn) + + return &PodResourcesClient{ + conn: conn, + client: client, + }, nil +} + +// Close closes the connection to the gRPC server. +func (c *PodResourcesClient) Close() { + c.conn.Close() +} + +// ListPodResources returns a list of PodResources from the gRPC server. +func (c *PodResourcesClient) ListPodResources(ctx context.Context) ([]*podresourcesv1.PodResources, error) { + resp, err := c.client.List(ctx, &podresourcesv1.ListPodResourcesRequest{}) + return resp.GetPodResources(), err +} + +// GetContainerToDevicesMap returns a map that contains all the containers and +// the devices assigned to them. Only containers with devices are included +func (c *PodResourcesClient) GetContainerToDevicesMap(ctx context.Context) (map[ContainerKey][]*podresourcesv1.ContainerDevices, error) { + pods, err := c.ListPodResources(ctx) + if err != nil { + return nil, err + } + + containerResourceMap := make(map[ContainerKey][]*podresourcesv1.ContainerDevices) + for _, pod := range pods { + for _, container := range pod.GetContainers() { + devices := container.GetDevices() + if len(devices) == 0 { + continue + } + + key := ContainerKey{ + Namespace: pod.GetNamespace(), + PodName: pod.GetName(), + ContainerName: container.GetName(), + } + containerResourceMap[key] = devices + } + } + + return containerResourceMap, nil +} diff --git a/pkg/util/kubernetes/kubelet/types_kubelet.go b/pkg/util/kubernetes/kubelet/types_kubelet.go index 28741633a172a..3ec5149266c09 100644 --- a/pkg/util/kubernetes/kubelet/types_kubelet.go +++ b/pkg/util/kubernetes/kubelet/types_kubelet.go @@ -220,14 +220,24 @@ type Conditions struct { // ContainerStatus contains fields for unmarshalling a Pod.Status.Containers type ContainerStatus struct { - Name string `json:"name"` - Image string `json:"image"` - ImageID string `json:"imageID"` - ID string `json:"containerID"` - Ready bool `json:"ready"` - RestartCount int `json:"restartCount"` - State ContainerState `json:"state"` - LastState ContainerState `json:"lastState"` + Name string `json:"name"` + Image string `json:"image"` + ImageID string `json:"imageID"` + ID string `json:"containerID"` + Ready bool `json:"ready"` + RestartCount int `json:"restartCount"` + State ContainerState `json:"state"` + LastState ContainerState `json:"lastState"` + AllocatedResources []ContainerAllocatedResource `json:"allocatedResources,omitempty"` +} + +// ContainerAllocatedResource contains the fields for an assigned resource to a container +type ContainerAllocatedResource struct { + // Name is the name of the resource as specified in the spec (e.g. nvidia.com/gpu) + Name string `json:"name,omitempty"` + + // ID is the unique ID of that resource. The format will depend on the resource provider + ID string `json:"id,omitempty"` } // IsPending returns if the container doesn't have an ID From f5222fe001c1047f67e1381e32183e0351df492f Mon Sep 17 00:00:00 2001 From: Vincent Whitchurch Date: Wed, 4 Dec 2024 17:29:21 +0100 Subject: [PATCH 251/439] usm: kafka: Remove code duplication in response parser (#31704) --- .../ebpf/c/protocols/kafka/kafka-parsing.h | 83 ++++++------------- 1 file changed, 27 insertions(+), 56 deletions(-) diff --git a/pkg/network/ebpf/c/protocols/kafka/kafka-parsing.h b/pkg/network/ebpf/c/protocols/kafka/kafka-parsing.h index e55ab7954124d..81af62163fa9f 100644 --- a/pkg/network/ebpf/c/protocols/kafka/kafka-parsing.h +++ b/pkg/network/ebpf/c/protocols/kafka/kafka-parsing.h @@ -1109,71 +1109,42 @@ static __always_inline void kafka_call_response_parser(void *ctx, conn_tuple_t * // some code path. u32 index; - switch (pkt.type) { - case PKTBUF_SKB: - switch (level) { - case PARSER_LEVEL_RECORD_BATCH: + switch (level) { + case PARSER_LEVEL_RECORD_BATCH: + if (api_version >= 12) { + index = PROG_KAFKA_FETCH_RESPONSE_RECORD_BATCH_PARSER_V12; + } else { + index = PROG_KAFKA_FETCH_RESPONSE_RECORD_BATCH_PARSER_V0; + } + break; + case PARSER_LEVEL_PARTITION: + default: + switch (api_key) { + case KAFKA_FETCH: if (api_version >= 12) { - index = PROG_KAFKA_FETCH_RESPONSE_RECORD_BATCH_PARSER_V12; + index = PROG_KAFKA_FETCH_RESPONSE_PARTITION_PARSER_V12; } else { - index = PROG_KAFKA_FETCH_RESPONSE_RECORD_BATCH_PARSER_V0; + index = PROG_KAFKA_FETCH_RESPONSE_PARTITION_PARSER_V0; } break; - case PARSER_LEVEL_PARTITION: - default: - switch (api_key) { - case KAFKA_FETCH: - if (api_version >= 12) { - index = PROG_KAFKA_FETCH_RESPONSE_PARTITION_PARSER_V12; - } else { - index = PROG_KAFKA_FETCH_RESPONSE_PARTITION_PARSER_V0; - } - break; - case KAFKA_PRODUCE: - if (api_version >= 9) { - index = PROG_KAFKA_PRODUCE_RESPONSE_PARTITION_PARSER_V9; - } else { - index = PROG_KAFKA_PRODUCE_RESPONSE_PARTITION_PARSER_V0; - } - break; - default: - // Shouldn't happen - return; - } - } - bpf_tail_call_compat(ctx, &protocols_progs, index); - break; - case PKTBUF_TLS: - switch (level) { - case PARSER_LEVEL_RECORD_BATCH: - if (api_version >= 12) { - index = PROG_KAFKA_FETCH_RESPONSE_RECORD_BATCH_PARSER_V12; + case KAFKA_PRODUCE: + if (api_version >= 9) { + index = PROG_KAFKA_PRODUCE_RESPONSE_PARTITION_PARSER_V9; } else { - index = PROG_KAFKA_FETCH_RESPONSE_RECORD_BATCH_PARSER_V0; + index = PROG_KAFKA_PRODUCE_RESPONSE_PARTITION_PARSER_V0; } break; - case PARSER_LEVEL_PARTITION: default: - switch (api_key) { - case KAFKA_FETCH: - if (api_version >= 12) { - index = PROG_KAFKA_FETCH_RESPONSE_PARTITION_PARSER_V12; - } else { - index = PROG_KAFKA_FETCH_RESPONSE_PARTITION_PARSER_V0; - } - break; - case KAFKA_PRODUCE: - if (api_version >= 9) { - index = PROG_KAFKA_PRODUCE_RESPONSE_PARTITION_PARSER_V9; - } else { - index = PROG_KAFKA_PRODUCE_RESPONSE_PARTITION_PARSER_V0; - } - break; - default: - // Shouldn't happen - return; - } + // Shouldn't happen + return; } + } + + switch (pkt.type) { + case PKTBUF_SKB: + bpf_tail_call_compat(ctx, &protocols_progs, index); + break; + case PKTBUF_TLS: bpf_tail_call_compat(ctx, &tls_process_progs, index); break; } From 03b83e123b0e052740794c3a02274f39f48c3665 Mon Sep 17 00:00:00 2001 From: Guy Arbitman Date: Wed, 4 Dec 2024 18:31:50 +0200 Subject: [PATCH 252/439] sharedlibraries: rework ebpf prog concurrency (#31745) --- pkg/network/usm/sharedlibraries/ebpf.go | 40 ++++++++++++++----------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/pkg/network/usm/sharedlibraries/ebpf.go b/pkg/network/usm/sharedlibraries/ebpf.go index 9fcb7a6f36d04..ec5db8dd3cac4 100644 --- a/pkg/network/usm/sharedlibraries/ebpf.go +++ b/pkg/network/usm/sharedlibraries/ebpf.go @@ -16,8 +16,6 @@ import ( "strings" "sync" - "go.uber.org/atomic" - manager "github.com/DataDog/ebpf-manager" "golang.org/x/sys/unix" @@ -40,10 +38,12 @@ const ( openat2SysCall = "openat2" ) -var traceTypes = []string{"enter", "exit"} +var ( + singletonMutex = sync.Mutex{} + progSingleton *EbpfProgram -var progSingletonOnce sync.Once -var progSingleton *EbpfProgram + traceTypes = []string{"enter", "exit"} +) // LibraryCallback defines the type of the callback function that will be called when a shared library event is detected type LibraryCallback func(LibPath) @@ -93,7 +93,7 @@ type EbpfProgram struct { // refcount is the number of times the program has been initialized. It is used to // stop the program only when the refcount reaches 0. - refcount atomic.Int32 + refcount uint16 // initMutex is a mutex to protect the initialization variables and the libset map wg sync.WaitGroup @@ -127,7 +127,10 @@ func IsSupported(cfg *ddebpf.Config) bool { // GetEBPFProgram returns an instance of the shared libraries eBPF program singleton func GetEBPFProgram(cfg *ddebpf.Config) *EbpfProgram { - progSingletonOnce.Do(func() { + singletonMutex.Lock() + defer singletonMutex.Unlock() + + if progSingleton == nil { progSingleton = &EbpfProgram{ cfg: cfg, libsets: make(map[Libset]*libsetHandler), @@ -140,8 +143,9 @@ func GetEBPFProgram(cfg *ddebpf.Config) *EbpfProgram { callbacks: make(map[*LibraryCallback]struct{}), } } - }) - progSingleton.refcount.Inc() + } + + progSingleton.refcount++ return progSingleton } @@ -438,21 +442,23 @@ func (e *EbpfProgram) Subscribe(callback LibraryCallback, libsets ...Libset) (fu // Stop stops the eBPF program if the refcount reaches 0 func (e *EbpfProgram) Stop() { - if e.refcount.Dec() != 0 { - if e.refcount.Load() < 0 { - e.refcount.Swap(0) - } + singletonMutex.Lock() + defer singletonMutex.Unlock() + + if e.refcount == 0 { + log.Warn("shared libraries monitor stopping with a refcount of 0") + return + } + e.refcount-- + if e.refcount > 0 { + // Still in use return } - // At this point any operations are thread safe, as we're using atomics - // so it's guaranteed only one thread can reach this point with refcount == 0 log.Info("shared libraries monitor stopping due to a refcount of 0") e.stopImpl() - // Reset the program singleton in case it's used again (e.g. in tests) - progSingletonOnce = sync.Once{} progSingleton = nil } From 5ccf0bc1dd20cc79350b98dd221d779406295a6b Mon Sep 17 00:00:00 2001 From: Stuart Geipel Date: Wed, 4 Dec 2024 11:41:40 -0500 Subject: [PATCH 253/439] [NPM-3586] Add RTT support to ebpf-less tracer (#31491) --- .../connection/ebpfless/tcp_processor.go | 18 ++- .../connection/ebpfless/tcp_processor_rtt.go | 102 +++++++++++++ .../ebpfless/tcp_processor_rtt_test.go | 142 ++++++++++++++++++ .../connection/ebpfless/tcp_processor_test.go | 29 ++-- .../tracer/connection/ebpfless_tracer.go | 13 +- pkg/network/tracer/tracer_linux_test.go | 29 +++- 6 files changed, 303 insertions(+), 30 deletions(-) create mode 100644 pkg/network/tracer/connection/ebpfless/tcp_processor_rtt.go create mode 100644 pkg/network/tracer/connection/ebpfless/tcp_processor_rtt_test.go diff --git a/pkg/network/tracer/connection/ebpfless/tcp_processor.go b/pkg/network/tracer/connection/ebpfless/tcp_processor.go index cc2b95fb8bea5..b23b8bbac4bbe 100644 --- a/pkg/network/tracer/connection/ebpfless/tcp_processor.go +++ b/pkg/network/tracer/connection/ebpfless/tcp_processor.go @@ -49,6 +49,8 @@ type connectionState struct { localFinSeq uint32 // remoteFinSeq is the tcp.Seq number for the incoming FIN (including any payload length) remoteFinSeq uint32 + + rttTracker rttTracker } type TCPProcessor struct { //nolint:revive // TODO @@ -113,7 +115,7 @@ func (t *TCPProcessor) updateSynFlag(conn *network.ConnectionStats, st *connecti // updateTcpStats is designed to mirror the stat tracking in the windows driver's handleFlowProtocolTcp // https://github.com/DataDog/datadog-windows-filter/blob/d7560d83eb627117521d631a4c05cd654a01987e/ddfilter/flow/flow_tcp.c#L91 -func (t *TCPProcessor) updateTcpStats(conn *network.ConnectionStats, st *connectionState, pktType uint8, tcp *layers.TCP, payloadLen uint16) { //nolint:revive // TODO +func (t *TCPProcessor) updateTcpStats(conn *network.ConnectionStats, st *connectionState, pktType uint8, tcp *layers.TCP, payloadLen uint16, timestampNs uint64) { //nolint:revive // TODO nextSeq := calcNextSeq(tcp, payloadLen) if pktType == unix.PACKET_OUTGOING { @@ -124,8 +126,12 @@ func (t *TCPProcessor) updateTcpStats(conn *network.ConnectionStats, st *connect st.hasSentPacket = true conn.Monotonic.SentBytes += uint64(payloadLen) st.maxSeqSent = nextSeq + + st.rttTracker.processOutgoing(timestampNs, nextSeq) } else if packetCanRetransmit { conn.Monotonic.Retransmits++ + + st.rttTracker.clearTrip() } ackOutdated := !st.hasLocalAck || isSeqBefore(st.lastLocalAck, tcp.Ack) @@ -151,6 +157,12 @@ func (t *TCPProcessor) updateTcpStats(conn *network.ConnectionStats, st *connect if tcp.ACK && ackOutdated { st.hasRemoteAck = true st.lastRemoteAck = tcp.Ack + + hasNewRoundTrip := st.rttTracker.processIncoming(timestampNs, tcp.Ack) + if hasNewRoundTrip { + conn.RTT = nanosToMicros(st.rttTracker.rttSmoothNs) + conn.RTTVar = nanosToMicros(st.rttTracker.rttVarNs) + } } } } @@ -200,7 +212,7 @@ func (t *TCPProcessor) updateRstFlag(conn *network.ConnectionStats, st *connecti // Process handles a TCP packet, calculating stats and keeping track of its state according to the // TCP state machine. -func (t *TCPProcessor) Process(conn *network.ConnectionStats, pktType uint8, ip4 *layers.IPv4, ip6 *layers.IPv6, tcp *layers.TCP) error { +func (t *TCPProcessor) Process(conn *network.ConnectionStats, timestampNs uint64, pktType uint8, ip4 *layers.IPv4, ip6 *layers.IPv6, tcp *layers.TCP) error { if pktType != unix.PACKET_OUTGOING && pktType != unix.PACKET_HOST { return fmt.Errorf("TCPProcessor saw invalid pktType: %d", pktType) } @@ -221,7 +233,7 @@ func (t *TCPProcessor) Process(conn *network.ConnectionStats, pktType uint8, ip4 st := t.conns[conn.ConnectionTuple] t.updateSynFlag(conn, &st, pktType, tcp, payloadLen) - t.updateTcpStats(conn, &st, pktType, tcp, payloadLen) + t.updateTcpStats(conn, &st, pktType, tcp, payloadLen, timestampNs) t.updateFinFlag(conn, &st, pktType, tcp, payloadLen) t.updateRstFlag(conn, &st, pktType, tcp, payloadLen) diff --git a/pkg/network/tracer/connection/ebpfless/tcp_processor_rtt.go b/pkg/network/tracer/connection/ebpfless/tcp_processor_rtt.go new file mode 100644 index 0000000000000..c199ebf8f753e --- /dev/null +++ b/pkg/network/tracer/connection/ebpfless/tcp_processor_rtt.go @@ -0,0 +1,102 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2024-present Datadog, Inc. + +//go:build linux_bpf + +package ebpfless + +import ( + "time" + + "github.com/DataDog/datadog-agent/pkg/util/log" +) + +func absDiff(a uint64, b uint64) uint64 { + if a < b { + return b - a + } + return a - b +} + +// nanosToMicros converts nanoseconds to microseconds, rounding and converting to +// the uint32 type that ConnectionStats uses +func nanosToMicros(nanos uint64) uint32 { + micros := time.Duration(nanos).Round(time.Microsecond).Microseconds() + return uint32(micros) +} + +// rttTracker implements the RTT algorithm specified here: +// https://datatracker.ietf.org/doc/html/rfc6298#section-2 +type rttTracker struct { + // sampleSentTimeNs is the timestamp our current round trip began. + // If it is 0, there is nothing in flight or a retransmit cleared this + sampleSentTimeNs uint64 + // expectedAck is the ack needed to complete the round trip + expectedAck uint32 + // rttSmoothNs is the smoothed RTT in nanoseconds + rttSmoothNs uint64 + // rttVarNs is the variance of the RTT in nanoseconds + rttVarNs uint64 +} + +func (rt *rttTracker) isActive() bool { + return rt.sampleSentTimeNs > 0 +} + +// processOutgoing is called to (potentially) start a round trip. +// Records the time of the packet for later +func (rt *rttTracker) processOutgoing(timestampNs uint64, nextSeq uint32) { + if !rt.isActive() { + rt.sampleSentTimeNs = timestampNs + rt.expectedAck = nextSeq + } +} + +// clearTrip is called by a retransmit or when a round-trip completes +// Retransmits pollute RTT accuracy and cause a trip to be thrown out +func (rt *rttTracker) clearTrip() { + if rt.isActive() { + rt.sampleSentTimeNs = 0 + rt.expectedAck = 0 + } +} + +// processIncoming is called to (potentially) close out a round trip. +// Based off this https://github.com/DataDog/datadog-windows-filter/blob/d7560d83eb627117521d631a4c05cd654a01987e/ddfilter/flow/flow_tcp.c#L269 +// Returns whether the RTT stats were updated. +func (rt *rttTracker) processIncoming(timestampNs uint64, ack uint32) bool { + hasCompletedTrip := rt.isActive() && isSeqBeforeEq(rt.expectedAck, ack) + if !hasCompletedTrip { + return false + } + + elapsedNs := timestampNs - rt.sampleSentTimeNs + if timestampNs < rt.sampleSentTimeNs { + log.Warn("rttTracker encountered non-monotonic clock") + elapsedNs = 0 + } + rt.clearTrip() + + if rt.rttSmoothNs == 0 { + rt.rttSmoothNs = elapsedNs + rt.rttVarNs = elapsedNs / 2 + return true + } + + // update variables based on fixed point math. + // RFC 6298 says alpha=1/8 and beta=1/4 + const fixedBasis uint64 = 1000 + // SRTT < -(1 - alpha) * SRTT + alpha * R' + oneMinusAlpha := fixedBasis - (fixedBasis / 8) + alphaRPrime := elapsedNs / 8 + s := ((oneMinusAlpha * rt.rttSmoothNs) / fixedBasis) + alphaRPrime + rt.rttSmoothNs = s + + // RTTVAR <- (1 - beta) * RTTVAR + beta * |SRTT - R'| + oneMinusBeta := fixedBasis - fixedBasis/4 + rt.rttVarNs = (oneMinusBeta*rt.rttVarNs)/fixedBasis + absDiff(rt.rttSmoothNs, elapsedNs)/4 + + return true +} diff --git a/pkg/network/tracer/connection/ebpfless/tcp_processor_rtt_test.go b/pkg/network/tracer/connection/ebpfless/tcp_processor_rtt_test.go new file mode 100644 index 0000000000000..7ff2eca99a352 --- /dev/null +++ b/pkg/network/tracer/connection/ebpfless/tcp_processor_rtt_test.go @@ -0,0 +1,142 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2024-present Datadog, Inc. + +//go:build linux_bpf + +package ebpfless + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestNanosToMicros(t *testing.T) { + require.Equal(t, uint32(0), nanosToMicros(0)) + require.Equal(t, uint32(0), nanosToMicros(200)) + require.Equal(t, uint32(1), nanosToMicros(500)) + require.Equal(t, uint32(1), nanosToMicros(1000)) + require.Equal(t, uint32(1), nanosToMicros(1200)) + require.Equal(t, uint32(123), nanosToMicros(123*1000)) +} + +func TestSingleSampleRTT(t *testing.T) { + var rt rttTracker + + require.False(t, rt.isActive()) + + rt.processOutgoing(1000, 123) + require.True(t, rt.isActive()) + + hasUpdated := rt.processIncoming(2000, 42) + // ack is too low, not a round trip + require.False(t, hasUpdated) + + // ack is high enough to complete a round trip + hasUpdated = rt.processIncoming(3000, 123) + require.True(t, hasUpdated) + + require.Equal(t, uint64(2000), rt.rttSmoothNs) + require.Equal(t, uint64(1000), rt.rttVarNs) +} + +func TestLowVarianceRtt(t *testing.T) { + var rt rttTracker + + for i := range 10 { + ts := uint64(i + 1) + seq := uint32(123 + i) + + startNs := (2 * ts) * 1000 + endNs := startNs + 1000 + // round trip time always the 1000, so variance goes to 0 + rt.processOutgoing(startNs, seq) + hasUpdated := rt.processIncoming(endNs, seq) + require.True(t, hasUpdated) + require.Equal(t, rt.rttSmoothNs, uint64(1000)) + } + + // after 10 iterations, the variance should have mostly converged to zero + require.Less(t, rt.rttVarNs, uint64(100)) +} + +func TestConstantVarianceRtt(t *testing.T) { + var rt rttTracker + + for i := range 10 { + ts := uint64(i + 1) + seq := uint32(123 + i) + + startNs := (2 * ts) * 1000 + endNs := startNs + 500 + if i%2 == 0 { + endNs = startNs + 1000 + } + + // round trip time alternates between 500 and 100 + rt.processOutgoing(startNs, seq) + hasUpdated := rt.processIncoming(endNs, seq) + require.True(t, hasUpdated) + + require.LessOrEqual(t, uint64(500), rt.rttSmoothNs) + require.LessOrEqual(t, rt.rttSmoothNs, uint64(1000)) + } + + // This is not exact since it uses an exponential rolling sum + // In this test, the time delta alternates between 500 and 1000, + // so rttSmoothNs is 750, for an average difference of ~250. + const epsilon = 20 + require.Less(t, uint64(250-epsilon), rt.rttVarNs) + require.Less(t, rt.rttVarNs, uint64(250+epsilon)) +} + +func TestTcpProcessorRtt(t *testing.T) { + pb := newPacketBuilder(lowerSeq, higherSeq) + syn := pb.outgoing(0, 0, 0, SYN) + // t=200 us + syn.timestampNs = 200 * 1000 + synack := pb.incoming(0, 0, 1, SYN|ACK) + // t=300 us, for a round trip of 100us + synack.timestampNs = 300 * 1000 + + f := newTcpTestFixture(t) + + f.runPkt(syn) + // round trip has not completed yet + require.Zero(t, f.conn.RTT) + require.Zero(t, f.conn.RTTVar) + + f.runPkt(synack) + // round trip has completed in 100us + require.Equal(t, uint32(100), f.conn.RTT) + require.Equal(t, uint32(50), f.conn.RTTVar) +} + +func TestTcpProcessorRttRetransmit(t *testing.T) { + pb := newPacketBuilder(lowerSeq, higherSeq) + syn := pb.outgoing(0, 0, 0, SYN) + // t=200 us + syn.timestampNs = 200 * 1000 + synack := pb.incoming(0, 0, 1, SYN|ACK) + // t=300 us, for a round trip of 100us + synack.timestampNs = 300 * 1000 + + f := newTcpTestFixture(t) + + f.runPkt(syn) + // round trip has not completed yet + require.Zero(t, f.conn.RTT) + require.Zero(t, f.conn.RTTVar) + + f.runPkt(syn) + // this is a retransmit, should reset the round trip + require.Zero(t, f.conn.RTT) + require.Zero(t, f.conn.RTTVar) + + f.runPkt(synack) + // should STILL not have a round trip because the retransmit contaminated the results + require.Zero(t, f.conn.RTT) + require.Zero(t, f.conn.RTTVar) +} diff --git a/pkg/network/tracer/connection/ebpfless/tcp_processor_test.go b/pkg/network/tracer/connection/ebpfless/tcp_processor_test.go index 10716414d7848..2d7e1ba4bff33 100644 --- a/pkg/network/tracer/connection/ebpfless/tcp_processor_test.go +++ b/pkg/network/tracer/connection/ebpfless/tcp_processor_test.go @@ -71,10 +71,11 @@ func tcpPacket(srcPort, dstPort uint16, seq, ack uint32, flags uint8) layers.TCP } type testCapture struct { - pktType uint8 - ipv4 *layers.IPv4 - ipv6 *layers.IPv6 - tcp *layers.TCP + timestampNs uint64 + pktType uint8 + ipv4 *layers.IPv4 + ipv6 *layers.IPv6 + tcp *layers.TCP } // TODO can this be merged with the logic creating scratchConns in ebpfless tracer? @@ -142,10 +143,11 @@ func (pb packetBuilder) incoming(payloadLen uint16, relSeq, relAck uint32, flags ack := relAck + pb.remoteSeqBase tcp := tcpPacket(defaultRemotePort, defaultLocalPort, seq, ack, flags) return testCapture{ - pktType: unix.PACKET_HOST, - ipv4: &ipv4, - ipv6: nil, - tcp: &tcp, + timestampNs: 0, // timestampNs not populated except in tcp_processor_rtt_test + pktType: unix.PACKET_HOST, + ipv4: &ipv4, + ipv6: nil, + tcp: &tcp, } } @@ -155,10 +157,11 @@ func (pb packetBuilder) outgoing(payloadLen uint16, relSeq, relAck uint32, flags ack := relAck + pb.localSeqBase tcp := tcpPacket(defaultLocalPort, defaultRemotePort, seq, ack, flags) return testCapture{ - pktType: unix.PACKET_OUTGOING, - ipv4: &ipv4, - ipv6: nil, - tcp: &tcp, + timestampNs: 0, // timestampNs not populated except in tcp_processor_rtt_test + pktType: unix.PACKET_OUTGOING, + ipv4: &ipv4, + ipv6: nil, + tcp: &tcp, } } @@ -174,7 +177,7 @@ func (fixture *tcpTestFixture) runPkt(pkt testCapture) { if fixture.conn == nil { fixture.conn = makeTcpStates(pkt) } - err := fixture.tcp.Process(fixture.conn, pkt.pktType, pkt.ipv4, pkt.ipv6, pkt.tcp) + err := fixture.tcp.Process(fixture.conn, pkt.timestampNs, pkt.pktType, pkt.ipv4, pkt.ipv6, pkt.tcp) require.NoError(fixture.t, err) } diff --git a/pkg/network/tracer/connection/ebpfless_tracer.go b/pkg/network/tracer/connection/ebpfless_tracer.go index c4a5e9db93fdf..8bb0a54f170ec 100644 --- a/pkg/network/tracer/connection/ebpfless_tracer.go +++ b/pkg/network/tracer/connection/ebpfless_tracer.go @@ -196,10 +196,15 @@ func (t *ebpfLessTracer) processConnection( conn.Duration = time.Duration(time.Now().UnixNano()) } + var ts int64 + var err error + if ts, err = ddebpf.NowNanoseconds(); err != nil { + return fmt.Errorf("error getting last updated timestamp for connection: %w", err) + } + if ip4 == nil && ip6 == nil { return nil } - var err error switch conn.Type { case network.UDP: if (ip4 != nil && !t.config.CollectUDPv4Conns) || (ip6 != nil && !t.config.CollectUDPv6Conns) { @@ -210,7 +215,7 @@ func (t *ebpfLessTracer) processConnection( if (ip4 != nil && !t.config.CollectTCPv4Conns) || (ip6 != nil && !t.config.CollectTCPv6Conns) { return nil } - err = t.tcp.Process(conn, pktType, ip4, ip6, tcp) + err = t.tcp.Process(conn, uint64(ts), pktType, ip4, ip6, tcp) default: err = fmt.Errorf("unsupported connection type %d", conn.Type) } @@ -220,10 +225,6 @@ func (t *ebpfLessTracer) processConnection( } if conn.Type == network.UDP || conn.Monotonic.TCPEstablished > 0 { - var ts int64 - if ts, err = ddebpf.NowNanoseconds(); err != nil { - return fmt.Errorf("error getting last updated timestamp for connection: %w", err) - } conn.LastUpdateEpoch = uint64(ts) t.conns[t.scratchConn.ConnectionTuple] = conn } diff --git a/pkg/network/tracer/tracer_linux_test.go b/pkg/network/tracer/tracer_linux_test.go index 675eacdd2fc6e..519c0ef979e3b 100644 --- a/pkg/network/tracer/tracer_linux_test.go +++ b/pkg/network/tracer/tracer_linux_test.go @@ -274,7 +274,6 @@ func (s *TracerSuite) TestTCPRTT() { flake.Mark(t) } cfg := testConfig() - skipEbpflessTodo(t, cfg) // Enable BPF-based system probe tr := setupTracer(t, cfg) // Create TCP Server that simply "drains" connection until receiving an EOF @@ -301,14 +300,28 @@ func (s *TracerSuite) TestTCPRTT() { tcpInfo, err := offsetguess.TcpGetInfo(c) require.NoError(t, err) - // Fetch connection matching source and target address - allConnections := getConnections(t, tr) - conn, ok := findConnection(c.LocalAddr(), c.RemoteAddr(), allConnections) - require.True(t, ok) + require.EventuallyWithT(t, func(ct *assert.CollectT) { + // Fetch connection matching source and target address + allConnections := getConnections(t, tr) + conn, ok := findConnection(c.LocalAddr(), c.RemoteAddr(), allConnections) + if !assert.True(ct, ok) { + return + } - // Assert that values returned from syscall match ones generated by eBPF program - assert.EqualValues(t, int(tcpInfo.Rtt), int(conn.RTT)) - assert.EqualValues(t, int(tcpInfo.Rttvar), int(conn.RTTVar)) + if cfg.EnableEbpfless { + timeoutUs := uint32((10 * time.Second).Microseconds()) + // On ebpfless, we don't have the same timestamps as the kernel so all + // we can do is sanity check that RTT is nonzero and not huge + assert.Greater(ct, int(conn.RTT), 0) + assert.Less(ct, conn.RTT, timeoutUs) + assert.Greater(ct, int(conn.RTTVar), 0) + assert.Less(ct, conn.RTTVar, timeoutUs) + } else { + // Assert that values returned from syscall match ones generated by eBPF program + assert.EqualValues(ct, int(tcpInfo.Rtt), int(conn.RTT)) + assert.EqualValues(ct, int(tcpInfo.Rttvar), int(conn.RTTVar)) + } + }, 3*time.Second, 100*time.Millisecond) } func (s *TracerSuite) TestTCPMiscount() { From c3a6501370161027bad126d8a037632453ca5005 Mon Sep 17 00:00:00 2001 From: David Ortiz Date: Wed, 4 Dec 2024 17:43:15 +0100 Subject: [PATCH 254/439] [tagger] Move entity ID functions to types package (#31738) --- .../tagger/collectors/workloadmeta_extract.go | 2 +- .../tagger/collectors/workloadmeta_main.go | 3 +-- .../tagger/collectors/workloadmeta_test.go | 5 ++--- comp/core/tagger/common/entity_id_builder.go | 20 ----------------- comp/core/tagger/impl-remote/remote.go | 7 +++--- comp/core/tagger/impl/local_tagger.go | 3 +-- comp/core/tagger/impl/replay_tagger.go | 3 +-- comp/core/tagger/impl/tagger.go | 11 +++++----- comp/core/tagger/mock/fake_tagger.go | 7 +++--- comp/core/tagger/types/entity_id.go | 22 +++++++++++++++++++ comp/dogstatsd/replay/impl/writer.go | 3 +-- comp/otelcol/otlp/collector.go | 3 +-- .../provider/cadvisor/provider_test.go | 3 +-- .../kubelet/provider/kubelet/provider_test.go | 3 +-- .../kubelet/provider/pod/provider_test.go | 3 +-- .../kubelet/provider/probe/provider_test.go | 3 +-- .../kubelet/provider/summary/provider_test.go | 3 +-- 17 files changed, 46 insertions(+), 58 deletions(-) diff --git a/comp/core/tagger/collectors/workloadmeta_extract.go b/comp/core/tagger/collectors/workloadmeta_extract.go index 0ecf41398b582..062931c0e3311 100644 --- a/comp/core/tagger/collectors/workloadmeta_extract.go +++ b/comp/core/tagger/collectors/workloadmeta_extract.go @@ -505,7 +505,7 @@ func (c *WorkloadMetaCollector) handleECSTask(ev workloadmeta.Event) []*types.Ta low, orch, high, standard := taskTags.Compute() tagInfos = append(tagInfos, &types.TagInfo{ Source: taskSource, - EntityID: common.GetGlobalEntityID(), + EntityID: types.GetGlobalEntityID(), HighCardTags: high, OrchestratorCardTags: orch, LowCardTags: low, diff --git a/comp/core/tagger/collectors/workloadmeta_main.go b/comp/core/tagger/collectors/workloadmeta_main.go index 59d82862ddf02..3c4150c9f3efb 100644 --- a/comp/core/tagger/collectors/workloadmeta_main.go +++ b/comp/core/tagger/collectors/workloadmeta_main.go @@ -12,7 +12,6 @@ import ( "github.com/gobwas/glob" "github.com/DataDog/datadog-agent/comp/core/config" - "github.com/DataDog/datadog-agent/comp/core/tagger/common" k8smetadata "github.com/DataDog/datadog-agent/comp/core/tagger/k8s_metadata" "github.com/DataDog/datadog-agent/comp/core/tagger/taglist" "github.com/DataDog/datadog-agent/comp/core/tagger/types" @@ -129,7 +128,7 @@ func (c *WorkloadMetaCollector) collectStaticGlobalTags(ctx context.Context, dat c.tagProcessor.ProcessTagInfo([]*types.TagInfo{ { Source: staticSource, - EntityID: common.GetGlobalEntityID(), + EntityID: types.GetGlobalEntityID(), HighCardTags: high, OrchestratorCardTags: orch, LowCardTags: low, diff --git a/comp/core/tagger/collectors/workloadmeta_test.go b/comp/core/tagger/collectors/workloadmeta_test.go index 93c2cf153d579..a15d7e674f41e 100644 --- a/comp/core/tagger/collectors/workloadmeta_test.go +++ b/comp/core/tagger/collectors/workloadmeta_test.go @@ -20,7 +20,6 @@ import ( "github.com/DataDog/datadog-agent/comp/core/config" log "github.com/DataDog/datadog-agent/comp/core/log/def" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" - "github.com/DataDog/datadog-agent/comp/core/tagger/common" "github.com/DataDog/datadog-agent/comp/core/tagger/taglist" "github.com/DataDog/datadog-agent/comp/core/tagger/types" "github.com/DataDog/datadog-agent/comp/core/workloadmeta/collectors/util" @@ -1553,7 +1552,7 @@ func TestHandleECSTask(t *testing.T) { }, { Source: taskSource, - EntityID: common.GetGlobalEntityID(), + EntityID: types.GetGlobalEntityID(), HighCardTags: []string{}, OrchestratorCardTags: []string{ "task_arn:foobar", @@ -2425,7 +2424,7 @@ func TestNoGlobalTags(t *testing.T) { expectedEmptyEvent := &types.TagInfo{ Source: staticSource, - EntityID: common.GetGlobalEntityID(), + EntityID: types.GetGlobalEntityID(), HighCardTags: []string{}, OrchestratorCardTags: []string{}, LowCardTags: []string{}, diff --git a/comp/core/tagger/common/entity_id_builder.go b/comp/core/tagger/common/entity_id_builder.go index b9ae1a77bd42b..054a0b4493ba6 100644 --- a/comp/core/tagger/common/entity_id_builder.go +++ b/comp/core/tagger/common/entity_id_builder.go @@ -7,9 +7,6 @@ package common import ( - "fmt" - "strings" - "github.com/DataDog/datadog-agent/comp/core/tagger/types" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" "github.com/DataDog/datadog-agent/pkg/util/log" @@ -38,20 +35,3 @@ func BuildTaggerEntityID(entityID workloadmeta.EntityID) types.EntityID { return types.NewEntityID(types.EntityIDPrefix(entityID.Kind), entityID.ID) } } - -var globalEntityID = types.NewEntityID(types.InternalID, "global-entity-id") - -// GetGlobalEntityID returns the entity ID that holds global tags -func GetGlobalEntityID() types.EntityID { - return globalEntityID -} - -// ExtractPrefixAndID extracts prefix and id from tagger entity id and returns an error if the received entityID is not valid -func ExtractPrefixAndID(entityID string) (prefix types.EntityIDPrefix, id string, err error) { - extractedPrefix, extractedID, found := strings.Cut(entityID, "://") - if !found { - return "", "", fmt.Errorf("unsupported tagger entity id format %q, correct format is `{prefix}://{id}`", entityID) - } - - return types.EntityIDPrefix(extractedPrefix), extractedID, nil -} diff --git a/comp/core/tagger/impl-remote/remote.go b/comp/core/tagger/impl-remote/remote.go index 8bd21920748e9..c5a1fb6dad36c 100644 --- a/comp/core/tagger/impl-remote/remote.go +++ b/comp/core/tagger/impl-remote/remote.go @@ -26,7 +26,6 @@ import ( api "github.com/DataDog/datadog-agent/comp/api/api/def" "github.com/DataDog/datadog-agent/comp/core/config" log "github.com/DataDog/datadog-agent/comp/core/log/def" - taggercommon "github.com/DataDog/datadog-agent/comp/core/tagger/common" tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/core/tagger/telemetry" "github.com/DataDog/datadog-agent/comp/core/tagger/types" @@ -242,7 +241,7 @@ func (t *remoteTagger) Tag(entityID types.EntityID, cardinality types.TagCardina // This function exists in order not to break backward compatibility with rtloader and python // integrations using the tagger func (t *remoteTagger) LegacyTag(entity string, cardinality types.TagCardinality) ([]string, error) { - prefix, id, err := taggercommon.ExtractPrefixAndID(entity) + prefix, id, err := types.ExtractPrefixAndID(entity) if err != nil { return nil, err } @@ -322,7 +321,7 @@ func (t *remoteTagger) AgentTags(_ types.TagCardinality) ([]string, error) { } func (t *remoteTagger) GlobalTags(cardinality types.TagCardinality) ([]string, error) { - return t.Tag(taggercommon.GetGlobalEntityID(), cardinality) + return t.Tag(types.GetGlobalEntityID(), cardinality) } func (t *remoteTagger) SetNewCaptureTagger(tagger.Component) {} @@ -335,7 +334,7 @@ func (t *remoteTagger) ResetCaptureTagger() {} // and they always use the local tagger. // This function can only add the global tags. func (t *remoteTagger) EnrichTags(tb tagset.TagsAccumulator, _ taggertypes.OriginInfo) { - if err := t.AccumulateTagsFor(taggercommon.GetGlobalEntityID(), t.dogstatsdCardinality, tb); err != nil { + if err := t.AccumulateTagsFor(types.GetGlobalEntityID(), t.dogstatsdCardinality, tb); err != nil { t.log.Error(err.Error()) } } diff --git a/comp/core/tagger/impl/local_tagger.go b/comp/core/tagger/impl/local_tagger.go index acde0b3379b0b..ac2259342eb25 100644 --- a/comp/core/tagger/impl/local_tagger.go +++ b/comp/core/tagger/impl/local_tagger.go @@ -12,7 +12,6 @@ import ( "github.com/DataDog/datadog-agent/comp/core/config" "github.com/DataDog/datadog-agent/comp/core/tagger/collectors" - taggercommon "github.com/DataDog/datadog-agent/comp/core/tagger/common" tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/core/tagger/tagstore" "github.com/DataDog/datadog-agent/comp/core/tagger/telemetry" @@ -105,7 +104,7 @@ func (t *localTagger) Tag(entityID types.EntityID, cardinality types.TagCardinal // This function exists in order not to break backward compatibility with rtloader and python // integrations using the tagger func (t *localTagger) LegacyTag(entity string, cardinality types.TagCardinality) ([]string, error) { - prefix, id, err := taggercommon.ExtractPrefixAndID(entity) + prefix, id, err := types.ExtractPrefixAndID(entity) if err != nil { return nil, err } diff --git a/comp/core/tagger/impl/replay_tagger.go b/comp/core/tagger/impl/replay_tagger.go index 7f6f36ce95862..ddc9851a898db 100644 --- a/comp/core/tagger/impl/replay_tagger.go +++ b/comp/core/tagger/impl/replay_tagger.go @@ -10,7 +10,6 @@ import ( "fmt" "time" - taggercommon "github.com/DataDog/datadog-agent/comp/core/tagger/common" tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/core/tagger/tagstore" "github.com/DataDog/datadog-agent/comp/core/tagger/telemetry" @@ -69,7 +68,7 @@ func (t *replayTagger) Tag(entityID types.EntityID, cardinality types.TagCardina // This function exists in order not to break backward compatibility with rtloader and python // integrations using the tagger func (t *replayTagger) LegacyTag(entity string, cardinality types.TagCardinality) ([]string, error) { - prefix, id, err := taggercommon.ExtractPrefixAndID(entity) + prefix, id, err := types.ExtractPrefixAndID(entity) if err != nil { return nil, err } diff --git a/comp/core/tagger/impl/tagger.go b/comp/core/tagger/impl/tagger.go index 2397d6052cd7d..1ef1a137d6a34 100644 --- a/comp/core/tagger/impl/tagger.go +++ b/comp/core/tagger/impl/tagger.go @@ -25,7 +25,6 @@ import ( api "github.com/DataDog/datadog-agent/comp/api/api/def" "github.com/DataDog/datadog-agent/comp/core/config" log "github.com/DataDog/datadog-agent/comp/core/log/def" - taggercommon "github.com/DataDog/datadog-agent/comp/core/tagger/common" tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" taggermock "github.com/DataDog/datadog-agent/comp/core/tagger/mock" "github.com/DataDog/datadog-agent/comp/core/tagger/telemetry" @@ -257,7 +256,7 @@ func (t *TaggerWrapper) Tag(entityID types.EntityID, cardinality types.TagCardin // This function exists in order not to break backward compatibility with rtloader and python // integrations using the tagger func (t *TaggerWrapper) LegacyTag(entity string, cardinality types.TagCardinality) ([]string, error) { - prefix, id, err := taggercommon.ExtractPrefixAndID(entity) + prefix, id, err := types.ExtractPrefixAndID(entity) if err != nil { return nil, err } @@ -331,14 +330,14 @@ func (t *TaggerWrapper) AgentTags(cardinality types.TagCardinality) ([]string, e func (t *TaggerWrapper) GlobalTags(cardinality types.TagCardinality) ([]string, error) { t.mux.RLock() if t.captureTagger != nil { - tags, err := t.captureTagger.Tag(taggercommon.GetGlobalEntityID(), cardinality) + tags, err := t.captureTagger.Tag(types.GetGlobalEntityID(), cardinality) if err == nil && len(tags) > 0 { t.mux.RUnlock() return tags, nil } } t.mux.RUnlock() - return t.defaultTagger.Tag(taggercommon.GetGlobalEntityID(), cardinality) + return t.defaultTagger.Tag(types.GetGlobalEntityID(), cardinality) } // globalTagBuilder queries global tags that should apply to all data coming @@ -346,7 +345,7 @@ func (t *TaggerWrapper) GlobalTags(cardinality types.TagCardinality) ([]string, func (t *TaggerWrapper) globalTagBuilder(cardinality types.TagCardinality, tb tagset.TagsAccumulator) error { t.mux.RLock() if t.captureTagger != nil { - err := t.captureTagger.AccumulateTagsFor(taggercommon.GetGlobalEntityID(), cardinality, tb) + err := t.captureTagger.AccumulateTagsFor(types.GetGlobalEntityID(), cardinality, tb) if err == nil { t.mux.RUnlock() @@ -354,7 +353,7 @@ func (t *TaggerWrapper) globalTagBuilder(cardinality types.TagCardinality, tb ta } } t.mux.RUnlock() - return t.defaultTagger.AccumulateTagsFor(taggercommon.GetGlobalEntityID(), cardinality, tb) + return t.defaultTagger.AccumulateTagsFor(types.GetGlobalEntityID(), cardinality, tb) } // List the content of the defaulTagger diff --git a/comp/core/tagger/mock/fake_tagger.go b/comp/core/tagger/mock/fake_tagger.go index 7347d8ba094c0..b4ff66a65d2c6 100644 --- a/comp/core/tagger/mock/fake_tagger.go +++ b/comp/core/tagger/mock/fake_tagger.go @@ -9,7 +9,6 @@ import ( "context" "strconv" - taggercommon "github.com/DataDog/datadog-agent/comp/core/tagger/common" tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/core/tagger/tagstore" "github.com/DataDog/datadog-agent/comp/core/tagger/telemetry" @@ -66,7 +65,7 @@ func (f *FakeTagger) SetTags(entityID types.EntityID, source string, low, orch, // SetGlobalTags allows to set tags in store for the global entity func (f *FakeTagger) SetGlobalTags(low, orch, high, std []string) { - f.SetTags(taggercommon.GetGlobalEntityID(), "static", low, orch, high, std) + f.SetTags(types.GetGlobalEntityID(), "static", low, orch, high, std) } // Tagger interface @@ -110,7 +109,7 @@ func (f *FakeTagger) Tag(entityID types.EntityID, cardinality types.TagCardinali // This function exists in order not to break backward compatibility with rtloader and python // integrations using the tagger func (f *FakeTagger) LegacyTag(entity string, cardinality types.TagCardinality) ([]string, error) { - prefix, id, err := taggercommon.ExtractPrefixAndID(entity) + prefix, id, err := types.ExtractPrefixAndID(entity) if err != nil { return nil, err } @@ -121,7 +120,7 @@ func (f *FakeTagger) LegacyTag(entity string, cardinality types.TagCardinality) // GlobalTags fake implementation func (f *FakeTagger) GlobalTags(cardinality types.TagCardinality) ([]string, error) { - return f.Tag(taggercommon.GetGlobalEntityID(), cardinality) + return f.Tag(types.GetGlobalEntityID(), cardinality) } // AccumulateTagsFor fake implementation diff --git a/comp/core/tagger/types/entity_id.go b/comp/core/tagger/types/entity_id.go index 94ecb1cb3737a..c598c13fcf43d 100644 --- a/comp/core/tagger/types/entity_id.go +++ b/comp/core/tagger/types/entity_id.go @@ -6,9 +6,16 @@ // Package types defines types used by the Tagger component. package types +import ( + "fmt" + "strings" +) + const separator = "://" const separatorLength = len(separator) +var globalEntityID = NewEntityID(InternalID, "global-entity-id") + // GetSeparatorLengh returns the length of the entityID separator func GetSeparatorLengh() int { return separatorLength @@ -80,3 +87,18 @@ func AllPrefixesSet() map[EntityIDPrefix]struct{} { InternalID: {}, } } + +// GetGlobalEntityID returns the entity ID that holds global tags +func GetGlobalEntityID() EntityID { + return globalEntityID +} + +// ExtractPrefixAndID extracts prefix and id from tagger entity id and returns an error if the received entityID is not valid +func ExtractPrefixAndID(entityID string) (prefix EntityIDPrefix, id string, err error) { + extractedPrefix, extractedID, found := strings.Cut(entityID, "://") + if !found { + return "", "", fmt.Errorf("unsupported tagger entity id format %q, correct format is `{prefix}://{id}`", entityID) + } + + return EntityIDPrefix(extractedPrefix), extractedID, nil +} diff --git a/comp/dogstatsd/replay/impl/writer.go b/comp/dogstatsd/replay/impl/writer.go index f5a85f604165b..93e5ab1eecf02 100644 --- a/comp/dogstatsd/replay/impl/writer.go +++ b/comp/dogstatsd/replay/impl/writer.go @@ -22,7 +22,6 @@ import ( "github.com/golang/protobuf/proto" - "github.com/DataDog/datadog-agent/comp/core/tagger/common" tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" taggerproto "github.com/DataDog/datadog-agent/comp/core/tagger/proto" "github.com/DataDog/datadog-agent/comp/core/tagger/types" @@ -317,7 +316,7 @@ func (tc *TrafficCaptureWriter) writeState() (int, error) { // iterate entities for _, entityIDStr := range tc.taggerState { - prefix, id, err := common.ExtractPrefixAndID(entityIDStr) + prefix, id, err := types.ExtractPrefixAndID(entityIDStr) if err != nil { log.Warnf("Invalid entity id: %q", id) continue diff --git a/comp/otelcol/otlp/collector.go b/comp/otelcol/otlp/collector.go index e3835151c1dca..099dce19ac85c 100644 --- a/comp/otelcol/otlp/collector.go +++ b/comp/otelcol/otlp/collector.go @@ -31,7 +31,6 @@ import ( otlpmetrics "github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics" "github.com/DataDog/datadog-agent/comp/core/config" - "github.com/DataDog/datadog-agent/comp/core/tagger/common" tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/core/tagger/types" "github.com/DataDog/datadog-agent/comp/core/workloadmeta/collectors/util" @@ -71,7 +70,7 @@ func (t *tagEnricher) Enrich(_ context.Context, extraTags []string, dimensions * enrichedTags := make([]string, 0, len(extraTags)+len(dimensions.Tags())) enrichedTags = append(enrichedTags, extraTags...) enrichedTags = append(enrichedTags, dimensions.Tags()...) - prefix, id, err := common.ExtractPrefixAndID(dimensions.OriginID()) + prefix, id, err := types.ExtractPrefixAndID(dimensions.OriginID()) if err != nil { entityID := types.NewEntityID(prefix, id) entityTags, err := t.tagger.Tag(entityID, t.cardinality) diff --git a/pkg/collector/corechecks/containers/kubelet/provider/cadvisor/provider_test.go b/pkg/collector/corechecks/containers/kubelet/provider/cadvisor/provider_test.go index e8c3e3e7fbb4d..6207f66b2c009 100644 --- a/pkg/collector/corechecks/containers/kubelet/provider/cadvisor/provider_test.go +++ b/pkg/collector/corechecks/containers/kubelet/provider/cadvisor/provider_test.go @@ -18,7 +18,6 @@ import ( "github.com/DataDog/datadog-agent/comp/core" "github.com/DataDog/datadog-agent/comp/core/autodiscovery/common/types" - taggercommon "github.com/DataDog/datadog-agent/comp/core/tagger/common" tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/core/tagger/mock" taggertypes "github.com/DataDog/datadog-agent/comp/core/tagger/types" @@ -111,7 +110,7 @@ func (suite *ProviderTestSuite) SetupTest() { fakeTagger := mock.SetupFakeTagger(suite.T()) for entity, tags := range commontesting.CommonTags { - prefix, id, _ := taggercommon.ExtractPrefixAndID(entity) + prefix, id, _ := taggertypes.ExtractPrefixAndID(entity) entityID := taggertypes.NewEntityID(prefix, id) fakeTagger.SetTags(entityID, "foo", tags, nil, nil, nil) } diff --git a/pkg/collector/corechecks/containers/kubelet/provider/kubelet/provider_test.go b/pkg/collector/corechecks/containers/kubelet/provider/kubelet/provider_test.go index 818a6da7830c9..ef6ba9600eb36 100644 --- a/pkg/collector/corechecks/containers/kubelet/provider/kubelet/provider_test.go +++ b/pkg/collector/corechecks/containers/kubelet/provider/kubelet/provider_test.go @@ -19,7 +19,6 @@ import ( "github.com/DataDog/datadog-agent/comp/core" "github.com/DataDog/datadog-agent/comp/core/autodiscovery/common/types" - taggercommon "github.com/DataDog/datadog-agent/comp/core/tagger/common" tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/core/tagger/mock" taggertypes "github.com/DataDog/datadog-agent/comp/core/tagger/types" @@ -142,7 +141,7 @@ func (suite *ProviderTestSuite) SetupTest() { fakeTagger := mock.SetupFakeTagger(suite.T()) for entity, tags := range commontesting.CommonTags { - prefix, id, _ := taggercommon.ExtractPrefixAndID(entity) + prefix, id, _ := taggertypes.ExtractPrefixAndID(entity) entityID := taggertypes.NewEntityID(prefix, id) fakeTagger.SetTags(entityID, "foo", tags, nil, nil, nil) } diff --git a/pkg/collector/corechecks/containers/kubelet/provider/pod/provider_test.go b/pkg/collector/corechecks/containers/kubelet/provider/pod/provider_test.go index 152738df97ac7..6993ee5165735 100644 --- a/pkg/collector/corechecks/containers/kubelet/provider/pod/provider_test.go +++ b/pkg/collector/corechecks/containers/kubelet/provider/pod/provider_test.go @@ -24,7 +24,6 @@ import ( "github.com/stretchr/testify/suite" "github.com/DataDog/datadog-agent/comp/core/autodiscovery/common/types" - taggercommon "github.com/DataDog/datadog-agent/comp/core/tagger/common" tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/core/tagger/mock" taggertypes "github.com/DataDog/datadog-agent/comp/core/tagger/types" @@ -119,7 +118,7 @@ func (suite *ProviderTestSuite) SetupTest() { fakeTagger := mock.SetupFakeTagger(suite.T()) for entity, tags := range commontesting.CommonTags { - prefix, id, _ := taggercommon.ExtractPrefixAndID(entity) + prefix, id, _ := taggertypes.ExtractPrefixAndID(entity) entityID := taggertypes.NewEntityID(prefix, id) fakeTagger.SetTags(entityID, "foo", tags, nil, nil, nil) } diff --git a/pkg/collector/corechecks/containers/kubelet/provider/probe/provider_test.go b/pkg/collector/corechecks/containers/kubelet/provider/probe/provider_test.go index f0c7b89812eb9..6e02bfef1e5ce 100644 --- a/pkg/collector/corechecks/containers/kubelet/provider/probe/provider_test.go +++ b/pkg/collector/corechecks/containers/kubelet/provider/probe/provider_test.go @@ -20,7 +20,6 @@ import ( "github.com/DataDog/datadog-agent/comp/core" "github.com/DataDog/datadog-agent/comp/core/autodiscovery/common/types" - taggercommon "github.com/DataDog/datadog-agent/comp/core/tagger/common" taggerMock "github.com/DataDog/datadog-agent/comp/core/tagger/mock" taggertypes "github.com/DataDog/datadog-agent/comp/core/tagger/types" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" @@ -276,7 +275,7 @@ func TestProvider_Provide(t *testing.T) { fakeTagger := taggerMock.SetupFakeTagger(t) for entity, tags := range probeTags { - prefix, id, _ := taggercommon.ExtractPrefixAndID(entity) + prefix, id, _ := taggertypes.ExtractPrefixAndID(entity) entityID := taggertypes.NewEntityID(prefix, id) fakeTagger.SetTags(entityID, "foo", tags, nil, nil, nil) } diff --git a/pkg/collector/corechecks/containers/kubelet/provider/summary/provider_test.go b/pkg/collector/corechecks/containers/kubelet/provider/summary/provider_test.go index 5358dc587664c..66fe3b8973c70 100644 --- a/pkg/collector/corechecks/containers/kubelet/provider/summary/provider_test.go +++ b/pkg/collector/corechecks/containers/kubelet/provider/summary/provider_test.go @@ -21,7 +21,6 @@ import ( configcomp "github.com/DataDog/datadog-agent/comp/core/config" log "github.com/DataDog/datadog-agent/comp/core/log/def" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" - taggercommon "github.com/DataDog/datadog-agent/comp/core/tagger/common" taggerMock "github.com/DataDog/datadog-agent/comp/core/tagger/mock" taggertypes "github.com/DataDog/datadog-agent/comp/core/tagger/types" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" @@ -338,7 +337,7 @@ func TestProvider_Provide(t *testing.T) { fakeTagger := taggerMock.SetupFakeTagger(t) for entity, tags := range entityTags { - prefix, id, _ := taggercommon.ExtractPrefixAndID(entity) + prefix, id, _ := taggertypes.ExtractPrefixAndID(entity) entityID := taggertypes.NewEntityID(prefix, id) fakeTagger.SetTags(entityID, "foo", tags, nil, nil, nil) } From 511a32eb0746ebed92aeec766678337f0cffbff2 Mon Sep 17 00:00:00 2001 From: Sylvain Baubeau Date: Wed, 4 Dec 2024 17:53:58 +0100 Subject: [PATCH 255/439] [CWS] Do not infer cgroup from container ID (#31668) --- pkg/security/probe/field_handlers_ebpf.go | 18 ++------ pkg/security/probe/probe_ebpf.go | 35 ++++---------- pkg/security/ptracer/utils.go | 2 +- pkg/security/resolvers/cgroup/model/model.go | 1 - pkg/security/resolvers/container/resolver.go | 3 +- .../resolvers/process/resolver_ebpf.go | 44 +++++------------- pkg/security/resolvers/resolvers_ebpf.go | 34 ++++++++++++++ pkg/security/secl/containerutils/cgroup.go | 46 ++++++------------- pkg/security/secl/containerutils/helpers.go | 21 +++------ .../secl/containerutils/helpers_test.go | 2 +- pkg/security/secl/model/model_unix.go | 16 +++++++ .../secl/model/process_cache_entry_unix.go | 5 +- pkg/security/utils/cgroup.go | 24 ++++++++-- 13 files changed, 119 insertions(+), 132 deletions(-) diff --git a/pkg/security/probe/field_handlers_ebpf.go b/pkg/security/probe/field_handlers_ebpf.go index fad69cf7bbfd2..194e2ad141388 100644 --- a/pkg/security/probe/field_handlers_ebpf.go +++ b/pkg/security/probe/field_handlers_ebpf.go @@ -11,7 +11,6 @@ package probe import ( "encoding/binary" "path" - "path/filepath" "strings" "syscall" "time" @@ -21,6 +20,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/resolvers" sprocess "github.com/DataDog/datadog-agent/pkg/security/resolvers/process" "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" + "github.com/DataDog/datadog-agent/pkg/security/seclog" "github.com/DataDog/datadog-agent/pkg/security/secl/args" "github.com/DataDog/datadog-agent/pkg/security/secl/model" @@ -516,20 +516,8 @@ func (fh *EBPFFieldHandlers) ResolveCGroupID(ev *model.Event, e *model.CGroupCon return string(entry.CGroup.CGroupID) } - path, err := fh.resolvers.DentryResolver.Resolve(e.CGroupFile, true) - if err == nil && path != "" { - cgroup := filepath.Dir(string(path)) - if cgroup == "/" { - cgroup = path - } - - entry.Process.CGroup.CGroupID = containerutils.CGroupID(cgroup) - entry.CGroup.CGroupID = containerutils.CGroupID(cgroup) - containerID, _ := containerutils.GetContainerFromCgroup(entry.CGroup.CGroupID) - entry.Process.ContainerID = containerutils.ContainerID(containerID) - entry.ContainerID = containerutils.ContainerID(containerID) - } else { - entry.CGroup.CGroupID = containerutils.GetCgroupFromContainer(entry.ContainerID, entry.CGroup.CGroupFlags) + if err := fh.resolvers.ResolveCGroup(entry, e.CGroupFile, e.CGroupFlags); err != nil { + seclog.Debugf("Failed to resolve cgroup: %s", err) } e.CGroupID = entry.CGroup.CGroupID diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go index b918a87aabdf4..c51e920adf851 100644 --- a/pkg/security/probe/probe_ebpf.go +++ b/pkg/security/probe/probe_ebpf.go @@ -644,9 +644,6 @@ func (p *EBPFProbe) unmarshalContexts(data []byte, event *model.Event) (int, err return 0, err } - // TODO(lebauce): fix this - event.CGroupContext.CGroupID, event.ContainerContext.ContainerID = containerutils.GetCGroupContext(event.ContainerContext.ContainerID, event.CGroupContext.CGroupFlags) - return read, nil } @@ -675,9 +672,12 @@ func (p *EBPFProbe) unmarshalProcessCacheEntry(ev *model.Event, data []byte) (in return n, err } - entry.Process.CGroup.CGroupID, entry.Process.ContainerID = containerutils.GetCGroupContext(ev.ContainerContext.ContainerID, ev.CGroupContext.CGroupFlags) - entry.Process.CGroup.CGroupFlags = ev.CGroupContext.CGroupFlags - entry.Process.CGroup.CGroupFile = ev.CGroupContext.CGroupFile + entry.Process.ContainerID = ev.ContainerContext.ContainerID + entry.ContainerID = ev.ContainerContext.ContainerID + + entry.Process.CGroup.Merge(&ev.CGroupContext) + entry.CGroup.Merge(&ev.CGroupContext) + entry.Source = model.ProcessCacheEntryFromEvent return n, nil @@ -828,28 +828,9 @@ func (p *EBPFProbe) handleEvent(CPU int, data []byte) { pce := p.Resolvers.ProcessResolver.Resolve(event.CgroupWrite.Pid, event.CgroupWrite.Pid, 0, false, newEntryCb) if pce != nil { - path, err := p.Resolvers.DentryResolver.Resolve(event.CgroupWrite.File.PathKey, true) - if err == nil && path != "" { - if !p.kernelVersion.IsRH7Kernel() { - path = filepath.Dir(string(path)) - } - - cgroupID := containerutils.CGroupID(path) - pce.CGroup.CGroupID = cgroupID - pce.Process.CGroup.CGroupID = cgroupID - cgroupFlags := containerutils.CGroupFlags(event.CgroupWrite.CGroupFlags) - if cgroupFlags.IsContainer() { - containerID, _ := containerutils.GetContainerFromCgroup(cgroupID) - pce.ContainerID = containerutils.ContainerID(containerID) - pce.Process.ContainerID = containerutils.ContainerID(containerID) - } - pce.CGroup.CGroupFlags = cgroupFlags - pce.Process.CGroup = pce.CGroup - } else { - seclog.Debugf("failed to resolve cgroup file %v", event.CgroupWrite.File) + if err := p.Resolvers.ResolveCGroup(pce, event.CgroupWrite.File.PathKey, containerutils.CGroupFlags(event.CgroupWrite.CGroupFlags)); err != nil { + seclog.Debugf("Failed to resolve cgroup: %s", err) } - } else { - seclog.Debugf("failed to resolve process of cgroup write event: %s", err) } return case model.UnshareMountNsEventType: diff --git a/pkg/security/ptracer/utils.go b/pkg/security/ptracer/utils.go index 3b1b92eab4e38..3d79037582aef 100644 --- a/pkg/security/ptracer/utils.go +++ b/pkg/security/ptracer/utils.go @@ -81,7 +81,7 @@ func getContainerIDFromProcFS(cgroupPath string) (containerutils.ContainerID, er } for _, cgroup := range cgroups { - if cid, _ := containerutils.FindContainerID(cgroup.path); cid != "" { + if cid, _ := containerutils.FindContainerID(containerutils.CGroupID(cgroup.path)); cid != "" { return cid, nil } } diff --git a/pkg/security/resolvers/cgroup/model/model.go b/pkg/security/resolvers/cgroup/model/model.go index 83cbbe2217f40..acb18c9922601 100644 --- a/pkg/security/resolvers/cgroup/model/model.go +++ b/pkg/security/resolvers/cgroup/model/model.go @@ -33,7 +33,6 @@ func NewCacheEntry(containerID containerutils.ContainerID, cgroupFlags uint64, p newCGroup := CacheEntry{ Deleted: atomic.NewBool(false), CGroupContext: model.CGroupContext{ - CGroupID: containerutils.GetCgroupFromContainer(containerID, containerutils.CGroupFlags(cgroupFlags)), CGroupFlags: containerutils.CGroupFlags(cgroupFlags), }, ContainerContext: model.ContainerContext{ diff --git a/pkg/security/resolvers/container/resolver.go b/pkg/security/resolvers/container/resolver.go index 87b29a9f6afd0..9176c87e54e8a 100644 --- a/pkg/security/resolvers/container/resolver.go +++ b/pkg/security/resolvers/container/resolver.go @@ -10,6 +10,7 @@ package container import ( "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" + "github.com/DataDog/datadog-agent/pkg/security/secl/model" "github.com/DataDog/datadog-agent/pkg/security/utils" ) @@ -17,7 +18,7 @@ import ( type Resolver struct{} // GetContainerContext returns the container id of the given pid along with its flags -func (cr *Resolver) GetContainerContext(pid uint32) (containerutils.ContainerID, containerutils.CGroupFlags, error) { +func (cr *Resolver) GetContainerContext(pid uint32) (containerutils.ContainerID, model.CGroupContext, error) { // Parse /proc/[pid]/task/[pid]/cgroup return utils.GetProcContainerContext(pid, pid) } diff --git a/pkg/security/resolvers/process/resolver_ebpf.go b/pkg/security/resolvers/process/resolver_ebpf.go index 3d4b3d71f5c92..8803cc978f7ba 100644 --- a/pkg/security/resolvers/process/resolver_ebpf.go +++ b/pkg/security/resolvers/process/resolver_ebpf.go @@ -28,7 +28,6 @@ import ( "github.com/hashicorp/golang-lru/v2/simplelru" "github.com/shirou/gopsutil/v3/process" "go.uber.org/atomic" - "golang.org/x/sys/unix" "github.com/DataDog/datadog-agent/pkg/process/procutil" "github.com/DataDog/datadog-agent/pkg/security/metrics" @@ -40,7 +39,6 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/resolvers/mount" spath "github.com/DataDog/datadog-agent/pkg/security/resolvers/path" "github.com/DataDog/datadog-agent/pkg/security/resolvers/usergroup" - "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" "github.com/DataDog/datadog-agent/pkg/security/secl/model" "github.com/DataDog/datadog-agent/pkg/security/seclog" "github.com/DataDog/datadog-agent/pkg/security/utils" @@ -340,13 +338,16 @@ func (p *EBPFResolver) enrichEventFromProc(entry *model.ProcessCacheEntry, proc } // Retrieve the container ID of the process from /proc - containerID, containerFlags, err := p.containerResolver.GetContainerContext(pid) + containerID, cgroup, err := p.containerResolver.GetContainerContext(pid) if err != nil { return fmt.Errorf("snapshot failed for %d: couldn't parse container ID: %w", proc.Pid, err) } entry.ContainerID = containerID + entry.CGroup = cgroup + entry.Process.CGroup = cgroup + entry.FileEvent.FileFields = *info setPathname(&entry.FileEvent, pathnameStr) @@ -354,15 +355,9 @@ func (p *EBPFResolver) enrichEventFromProc(entry *model.ProcessCacheEntry, proc entry.FileEvent.MountOrigin = model.MountOriginProcfs entry.FileEvent.MountSource = model.MountSourceSnapshot - entry.Process.CGroup.CGroupFlags = containerFlags - var fileStats unix.Statx_t - - taskPath := utils.CgroupTaskPath(pid, pid) - if err := unix.Statx(unix.AT_FDCWD, taskPath, 0, unix.STATX_ALL, &fileStats); err == nil { - entry.Process.CGroup.CGroupFile.MountID = uint32(fileStats.Mnt_id) - entry.Process.CGroup.CGroupFile.Inode = fileStats.Ino - } else { + if entry.Process.CGroup.CGroupFile.MountID == 0 { // Get the file fields of the cgroup file + taskPath := utils.CgroupTaskPath(pid, pid) info, err := p.retrieveExecFileFields(taskPath) if err != nil { seclog.Debugf("snapshot failed for %d: couldn't retrieve inode info: %s", proc.Pid, err) @@ -371,21 +366,6 @@ func (p *EBPFResolver) enrichEventFromProc(entry *model.ProcessCacheEntry, proc } } - if cgroupFileContent, err := os.ReadFile(taskPath); err == nil { - lines := strings.Split(string(cgroupFileContent), "\n") - for _, line := range lines { - parts := strings.SplitN(line, ":", 3) - - // Skip potentially malformed lines - if len(parts) != 3 { - continue - } - - entry.Process.CGroup.CGroupID = containerutils.CGroupID(parts[2]) - break - } - } - if entry.FileEvent.IsFileless() { entry.FileEvent.Filesystem = model.TmpFS } else { @@ -849,8 +829,7 @@ func (p *EBPFResolver) resolveFromKernelMaps(pid, tid uint32, inode uint64, newE return nil } - var cgroupCtx model.CGroupContext - cgroupRead, err := cgroupCtx.UnmarshalBinary(procCache) + cgroupRead, err := entry.CGroup.UnmarshalBinary(procCache) if err != nil { return nil } @@ -873,11 +852,10 @@ func (p *EBPFResolver) resolveFromKernelMaps(pid, tid uint32, inode uint64, newE // is no insurance that the parent of this process is still running, we can't use our user space cache to check if // the parent is in a container. In other words, we have to fall back to /proc to query the container ID of the // process. - if entry.ContainerID == "" { - containerID, containerFlags, err := p.containerResolver.GetContainerContext(pid) - if err == nil { - entry.CGroup.CGroupFlags = containerFlags - entry.CGroup.CGroupID = containerutils.GetCgroupFromContainer(containerID, containerFlags) + if entry.ContainerID == "" || entry.CGroup.CGroupFile.Inode == 0 { + if containerID, cgroup, err := p.containerResolver.GetContainerContext(pid); err == nil { + entry.CGroup.Merge(&cgroup) + entry.ContainerID = containerID } } diff --git a/pkg/security/resolvers/resolvers_ebpf.go b/pkg/security/resolvers/resolvers_ebpf.go index 3326a9ba50d27..91e1392502840 100644 --- a/pkg/security/resolvers/resolvers_ebpf.go +++ b/pkg/security/resolvers/resolvers_ebpf.go @@ -12,6 +12,7 @@ import ( "context" "fmt" "os" + "path/filepath" "sort" "github.com/DataDog/datadog-go/v5/statsd" @@ -37,6 +38,8 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/resolvers/tc" "github.com/DataDog/datadog-agent/pkg/security/resolvers/usergroup" "github.com/DataDog/datadog-agent/pkg/security/resolvers/usersessions" + "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" + "github.com/DataDog/datadog-agent/pkg/security/secl/model" "github.com/DataDog/datadog-agent/pkg/security/utils" "github.com/DataDog/datadog-agent/pkg/util/ktime" "github.com/DataDog/datadog-agent/pkg/util/log" @@ -214,6 +217,37 @@ func (r *EBPFResolvers) Start(ctx context.Context) error { return r.NamespaceResolver.Start(ctx) } +// ResolveCGroup resolves the path of cgroup for a process cache entry +func (r *EBPFResolvers) ResolveCGroup(pce *model.ProcessCacheEntry, pathKey model.PathKey, cgroupFlags containerutils.CGroupFlags) error { + path, err := r.DentryResolver.Resolve(pathKey, true) + if err == nil && path != "" { + cgroup := filepath.Dir(string(path)) + if cgroup == "/" { + cgroup = path + } + + cgroupFlags := containerutils.CGroupFlags(cgroupFlags) + cgroupContext := model.CGroupContext{ + CGroupID: containerutils.CGroupID(cgroup), + CGroupFlags: containerutils.CGroupFlags(cgroupFlags), + CGroupFile: pathKey, + } + + pce.Process.CGroup = cgroupContext + pce.CGroup = cgroupContext + + if cgroupFlags.IsContainer() { + containerID, _ := containerutils.FindContainerID(cgroupContext.CGroupID) + pce.ContainerID = containerID + pce.Process.ContainerID = containerID + } + } else { + return fmt.Errorf("failed to resolve cgroup file %v: %w", pathKey, err) + } + + return nil +} + // Snapshot collects data on the current state of the system to populate user space and kernel space caches. func (r *EBPFResolvers) Snapshot() error { if err := r.snapshot(); err != nil { diff --git a/pkg/security/secl/containerutils/cgroup.go b/pkg/security/secl/containerutils/cgroup.go index f6fc93b635f34..74e7a64540c84 100644 --- a/pkg/security/secl/containerutils/cgroup.go +++ b/pkg/security/secl/containerutils/cgroup.go @@ -36,42 +36,24 @@ const ( ) // RuntimePrefixes holds the cgroup prefixed used by the different runtimes -var RuntimePrefixes = map[string]CGroupManager{ - "docker/": CGroupManagerDocker, // On Amazon Linux 2 with Docker, 'docker' is the folder name and not a prefix - "docker-": CGroupManagerDocker, - "cri-containerd-": CGroupManagerCRI, - "crio-": CGroupManagerCRIO, - "libpod-": CGroupManagerPodman, +var RuntimePrefixes = []struct { + prefix string + flags CGroupManager +}{ + {"docker/", CGroupManagerDocker}, // On Amazon Linux 2 with Docker, 'docker' is the folder name and not a prefix + {"docker-", CGroupManagerDocker}, + {"cri-containerd-", CGroupManagerCRI}, + {"crio-", CGroupManagerCRIO}, + {"libpod-", CGroupManagerPodman}, } -// GetCGroupManager extracts the cgroup manager from a cgroup name -func GetCGroupManager(cgroup string) (string, CGroupFlags) { - cgroup = strings.TrimLeft(cgroup, "/") - for runtimePrefix, runtimeFlag := range RuntimePrefixes { - if strings.HasPrefix(cgroup, runtimePrefix) { - return cgroup[:len(runtimePrefix)], CGroupFlags(runtimeFlag) - } - } - return cgroup, 0 -} - -// GetContainerFromCgroup extracts the container ID from a cgroup name -func GetContainerFromCgroup(cgroup CGroupID) (ContainerID, CGroupFlags) { +// getContainerFromCgroup extracts the container ID from a cgroup name +func getContainerFromCgroup(cgroup CGroupID) (ContainerID, CGroupFlags) { cgroupID := strings.TrimLeft(string(cgroup), "/") - for runtimePrefix, runtimeFlag := range RuntimePrefixes { - if strings.HasPrefix(cgroupID, runtimePrefix) { - return ContainerID(cgroupID[len(runtimePrefix):]), CGroupFlags(runtimeFlag) + for _, runtimePrefix := range RuntimePrefixes { + if strings.HasPrefix(cgroupID, runtimePrefix.prefix) { + return ContainerID(cgroupID[len(runtimePrefix.prefix):]), CGroupFlags(runtimePrefix.flags) } } return "", 0 } - -// GetCgroupFromContainer infers the container runtime from a cgroup name -func GetCgroupFromContainer(id ContainerID, flags CGroupFlags) CGroupID { - for runtimePrefix, runtimeFlag := range RuntimePrefixes { - if flags&CGroupManagerMask == CGroupFlags(runtimeFlag) { - return CGroupID(runtimePrefix + string(id)) - } - } - return CGroupID("") -} diff --git a/pkg/security/secl/containerutils/helpers.go b/pkg/security/secl/containerutils/helpers.go index 80211d0671234..0e46e87af7f2a 100644 --- a/pkg/security/secl/containerutils/helpers.go +++ b/pkg/security/secl/containerutils/helpers.go @@ -22,19 +22,19 @@ var containerIDCoreChars = "0123456789abcdefABCDEF" func init() { var prefixes []string - for prefix := range RuntimePrefixes { - prefixes = append(prefixes, prefix) + for _, runtimePrefix := range RuntimePrefixes { + prefixes = append(prefixes, runtimePrefix.prefix) } ContainerIDPatternStr = "(?:" + strings.Join(prefixes[:], "|") + ")?([0-9a-fA-F]{64})|([0-9a-fA-F]{32}-\\d+)|([0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){4})" containerIDPattern = regexp.MustCompile(ContainerIDPatternStr) } -func isSystemdCgroup(cgroup string) bool { - return strings.HasSuffix(cgroup, ".service") || strings.HasSuffix(cgroup, ".scope") +func isSystemdCgroup(cgroup CGroupID) bool { + return strings.HasSuffix(string(cgroup), ".service") || strings.HasSuffix(string(cgroup), ".scope") } // FindContainerID extracts the first sub string that matches the pattern of a container ID along with the container flags induced from the container runtime prefix -func FindContainerID(s string) (ContainerID, uint64) { +func FindContainerID(s CGroupID) (ContainerID, uint64) { match := containerIDPattern.FindIndex([]byte(s)) if match == nil { if isSystemdCgroup(s) { @@ -69,19 +69,10 @@ func FindContainerID(s string) (ContainerID, uint64) { // it starts or/and ends the initial string cgroupID := s[match[0]:match[1]] - containerID, flags := GetContainerFromCgroup(CGroupID(cgroupID)) + containerID, flags := getContainerFromCgroup(CGroupID(cgroupID)) if containerID == "" { return ContainerID(cgroupID), uint64(flags) } return containerID, uint64(flags) } - -// GetCGroupContext returns the cgroup ID and the sanitized container ID from a container id/flags tuple -func GetCGroupContext(containerID ContainerID, cgroupFlags CGroupFlags) (CGroupID, ContainerID) { - cgroupID := GetCgroupFromContainer(containerID, cgroupFlags) - if !cgroupFlags.IsContainer() { - containerID = "" - } - return CGroupID(cgroupID), ContainerID(containerID) -} diff --git a/pkg/security/secl/containerutils/helpers_test.go b/pkg/security/secl/containerutils/helpers_test.go index 5b479b3860d12..b5474b0df5016 100644 --- a/pkg/security/secl/containerutils/helpers_test.go +++ b/pkg/security/secl/containerutils/helpers_test.go @@ -92,7 +92,7 @@ func TestFindContainerID(t *testing.T) { } for _, test := range testCases { - containerID, containerFlags := FindContainerID(test.input) + containerID, containerFlags := FindContainerID(CGroupID(test.input)) assert.Equal(t, test.output, string(containerID)) assert.Equal(t, uint64(test.flags), containerFlags, "wrong flags for container %s", containerID) } diff --git a/pkg/security/secl/model/model_unix.go b/pkg/security/secl/model/model_unix.go index caef9bf28ce3b..e9f3676928619 100644 --- a/pkg/security/secl/model/model_unix.go +++ b/pkg/security/secl/model/model_unix.go @@ -101,6 +101,22 @@ type CGroupContext struct { CGroupFile PathKey `field:"file"` } +// Merge two cgroup context +func (cg *CGroupContext) Merge(cg2 *CGroupContext) { + if cg.CGroupID == "" { + cg.CGroupID = cg2.CGroupID + } + if cg.CGroupFlags == 0 { + cg.CGroupFlags = cg2.CGroupFlags + } + if cg.CGroupFile.Inode == 0 { + cg.CGroupFile.Inode = cg2.CGroupFile.Inode + } + if cg.CGroupFile.MountID == 0 { + cg.CGroupFile.MountID = cg2.CGroupFile.MountID + } +} + // SyscallEvent contains common fields for all the event type SyscallEvent struct { Retval int64 `field:"retval"` // SECLDoc[retval] Definition:`Return value of the syscall` Constants:`Error constants` diff --git a/pkg/security/secl/model/process_cache_entry_unix.go b/pkg/security/secl/model/process_cache_entry_unix.go index ef0a2de2f2f61..d2ca64add484c 100644 --- a/pkg/security/secl/model/process_cache_entry_unix.go +++ b/pkg/security/secl/model/process_cache_entry_unix.go @@ -80,10 +80,13 @@ func copyProcessContext(parent, child *ProcessCacheEntry) { // WARNING: this is why the user space cache should not be used to detect container breakouts. Dedicated // in-kernel probes will need to be added. if len(parent.ContainerID) > 0 && len(child.ContainerID) == 0 { - child.CGroup = parent.CGroup child.ContainerID = parent.ContainerID } + if len(parent.CGroup.CGroupID) > 0 && len(child.CGroup.CGroupID) == 0 { + child.CGroup = parent.CGroup + } + // AUIDs should be inherited just like container IDs child.Credentials.AUID = parent.Credentials.AUID } diff --git a/pkg/security/utils/cgroup.go b/pkg/security/utils/cgroup.go index c35bbf8087ed1..b4a3de192d7de 100644 --- a/pkg/security/utils/cgroup.go +++ b/pkg/security/utils/cgroup.go @@ -17,6 +17,8 @@ import ( "strings" "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" + "github.com/DataDog/datadog-agent/pkg/security/secl/model" + "golang.org/x/sys/unix" ) // ContainerIDLen is the length of a container ID is the length of the hex representation of a sha256 hash @@ -37,13 +39,13 @@ type ControlGroup struct { // GetContainerContext returns both the container ID and its flags func (cg ControlGroup) GetContainerContext() (containerutils.ContainerID, containerutils.CGroupFlags) { - id, flags := containerutils.FindContainerID(cg.Path) + id, flags := containerutils.FindContainerID(containerutils.CGroupID(cg.Path)) return containerutils.ContainerID(id), containerutils.CGroupFlags(flags) } // GetContainerID returns the container id extracted from the path of the control group func (cg ControlGroup) GetContainerID() containerutils.ContainerID { - id, _ := containerutils.FindContainerID(cg.Path) + id, _ := containerutils.FindContainerID(containerutils.CGroupID(cg.Path)) return containerutils.ContainerID(id) } @@ -82,12 +84,24 @@ func GetProcContainerID(tgid, pid uint32) (containerutils.ContainerID, error) { // GetProcContainerContext returns the container ID which the process belongs to along with its manager. Returns "" if the process does not belong // to a container. -func GetProcContainerContext(tgid, pid uint32) (containerutils.ContainerID, containerutils.CGroupFlags, error) { +func GetProcContainerContext(tgid, pid uint32) (containerutils.ContainerID, model.CGroupContext, error) { cgroups, err := GetProcControlGroups(tgid, pid) if err != nil || len(cgroups) == 0 { - return "", 0, err + return "", model.CGroupContext{}, err } containerID, runtime := cgroups[0].GetContainerContext() - return containerID, runtime, nil + cgroupContext := model.CGroupContext{ + CGroupID: containerutils.CGroupID(cgroups[0].Path), + CGroupFlags: runtime, + } + + var fileStats unix.Statx_t + taskPath := CgroupTaskPath(pid, pid) + if err := unix.Statx(unix.AT_FDCWD, taskPath, 0, unix.STATX_INO|unix.STATX_MNT_ID, &fileStats); err == nil { + cgroupContext.CGroupFile.MountID = uint32(fileStats.Mnt_id) + cgroupContext.CGroupFile.Inode = fileStats.Ino + } + + return containerID, cgroupContext, nil } From bc6f79155d0bbd1b5ed4f02fa8d037e766228324 Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Wed, 4 Dec 2024 18:07:37 +0100 Subject: [PATCH 256/439] bump mockery to 2.49.2 (#31135) --- internal/tools/go.mod | 2 +- internal/tools/go.sum | 4 ++-- pkg/collector/corechecks/gpu/nvidia/mocks.go | 8 +++---- .../mocks/event_monitoring_module_client.go | 2 +- ...toring_module_get_process_events_client.go | 12 +++++----- .../mocks/event_monitoring_module_server.go | 4 ++-- pkg/process/checks/mocks/check.go | 14 ++++++------ pkg/process/net/mocks/sys_probe_util.go | 4 ++-- pkg/process/procutil/mocks/probe.go | 4 ++-- pkg/process/runner/mocks/submitter.go | 2 +- .../mocks/security_module_client_wrapper.go | 22 +++++++++---------- .../proto/api/mocks/security_module_client.go | 2 +- .../proto/api/mocks/security_module_server.go | 4 ++-- pkg/serializer/mocks/metric_serializer.go | 6 ++--- 14 files changed, 45 insertions(+), 45 deletions(-) diff --git a/internal/tools/go.mod b/internal/tools/go.mod index f36b63a0c8482..64be9555db011 100644 --- a/internal/tools/go.mod +++ b/internal/tools/go.mod @@ -8,7 +8,7 @@ require ( github.com/golangci/golangci-lint v1.60.3 github.com/goware/modvendor v0.5.0 github.com/stormcat24/protodep v0.1.8 - github.com/vektra/mockery/v2 v2.40.1 + github.com/vektra/mockery/v2 v2.49.2 github.com/wadey/gocovmerge v0.0.0-20160331181800-b5bfa59ec0ad golang.org/x/mobile v0.0.0-20201217150744-e6ae53a27f4f golang.org/x/perf v0.0.0-20210220033136-40a54f11e909 diff --git a/internal/tools/go.sum b/internal/tools/go.sum index fe1a392650914..92b0781179c08 100644 --- a/internal/tools/go.sum +++ b/internal/tools/go.sum @@ -542,8 +542,8 @@ github.com/ultraware/whitespace v0.1.1 h1:bTPOGejYFulW3PkcrqkeQwOd6NKOOXvmGD9bo/ github.com/ultraware/whitespace v0.1.1/go.mod h1:XcP1RLD81eV4BW8UhQlpaR+SDc2givTvyI8a586WjW8= github.com/uudashr/gocognit v1.1.3 h1:l+a111VcDbKfynh+airAy/DJQKaXh2m9vkoysMPSZyM= github.com/uudashr/gocognit v1.1.3/go.mod h1:aKH8/e8xbTRBwjbCkwZ8qt4l2EpKXl31KMHgSS+lZ2U= -github.com/vektra/mockery/v2 v2.40.1 h1:8D01rBqloDLDHKZGXkyUD9Yj5Z+oDXBqDZ+tRXYM/oA= -github.com/vektra/mockery/v2 v2.40.1/go.mod h1:dPzGtjT0/Uu4hqpF6QNHwz+GLago7lq1bxdj9wHbGKo= +github.com/vektra/mockery/v2 v2.49.2 h1:nFBRmj9kqZFWdJ2foeRxwposmT4lpeH8Ab28nRU8Wsg= +github.com/vektra/mockery/v2 v2.49.2/go.mod h1:xO2DeYemEPC2tCzIZ+a1tifZ/7Laf/Chxg3vlc+oDsI= github.com/wadey/gocovmerge v0.0.0-20160331181800-b5bfa59ec0ad h1:W0LEBv82YCGEtcmPA3uNZBI33/qF//HAAs3MawDjRa0= github.com/wadey/gocovmerge v0.0.0-20160331181800-b5bfa59ec0ad/go.mod h1:Hy8o65+MXnS6EwGElrSRjUzQDLXreJlzYLlWiHtt8hM= github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= diff --git a/pkg/collector/corechecks/gpu/nvidia/mocks.go b/pkg/collector/corechecks/gpu/nvidia/mocks.go index 1e6fd9eb6b848..f0882a4819038 100644 --- a/pkg/collector/corechecks/gpu/nvidia/mocks.go +++ b/pkg/collector/corechecks/gpu/nvidia/mocks.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.40.1. DO NOT EDIT. +// Code generated by mockery v2.49.2. DO NOT EDIT. //go:build linux && test @@ -19,7 +19,7 @@ func (_m *mockCollector) EXPECT() *mockCollector_Expecter { return &mockCollector_Expecter{mock: &_m.Mock} } -// Close provides a mock function with given fields: +// Close provides a mock function with no fields func (_m *mockCollector) Close() error { ret := _m.Called() @@ -64,7 +64,7 @@ func (_c *mockCollector_Close_Call) RunAndReturn(run func() error) *mockCollecto return _c } -// Collect provides a mock function with given fields: +// Collect provides a mock function with no fields func (_m *mockCollector) Collect() ([]Metric, error) { ret := _m.Called() @@ -121,7 +121,7 @@ func (_c *mockCollector_Collect_Call) RunAndReturn(run func() ([]Metric, error)) return _c } -// Name provides a mock function with given fields: +// Name provides a mock function with no fields func (_m *mockCollector) Name() string { ret := _m.Called() diff --git a/pkg/eventmonitor/proto/api/mocks/event_monitoring_module_client.go b/pkg/eventmonitor/proto/api/mocks/event_monitoring_module_client.go index be8910bd1616a..1d59cb8285367 100644 --- a/pkg/eventmonitor/proto/api/mocks/event_monitoring_module_client.go +++ b/pkg/eventmonitor/proto/api/mocks/event_monitoring_module_client.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.40.1. DO NOT EDIT. +// Code generated by mockery v2.49.2. DO NOT EDIT. package mocks diff --git a/pkg/eventmonitor/proto/api/mocks/event_monitoring_module_get_process_events_client.go b/pkg/eventmonitor/proto/api/mocks/event_monitoring_module_get_process_events_client.go index 283e3011cb51f..a8ed855d6343a 100644 --- a/pkg/eventmonitor/proto/api/mocks/event_monitoring_module_get_process_events_client.go +++ b/pkg/eventmonitor/proto/api/mocks/event_monitoring_module_get_process_events_client.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.40.1. DO NOT EDIT. +// Code generated by mockery v2.49.2. DO NOT EDIT. package mocks @@ -17,7 +17,7 @@ type EventMonitoringModule_GetProcessEventsClient struct { mock.Mock } -// CloseSend provides a mock function with given fields: +// CloseSend provides a mock function with no fields func (_m *EventMonitoringModule_GetProcessEventsClient) CloseSend() error { ret := _m.Called() @@ -35,7 +35,7 @@ func (_m *EventMonitoringModule_GetProcessEventsClient) CloseSend() error { return r0 } -// Context provides a mock function with given fields: +// Context provides a mock function with no fields func (_m *EventMonitoringModule_GetProcessEventsClient) Context() context.Context { ret := _m.Called() @@ -55,7 +55,7 @@ func (_m *EventMonitoringModule_GetProcessEventsClient) Context() context.Contex return r0 } -// Header provides a mock function with given fields: +// Header provides a mock function with no fields func (_m *EventMonitoringModule_GetProcessEventsClient) Header() (metadata.MD, error) { ret := _m.Called() @@ -85,7 +85,7 @@ func (_m *EventMonitoringModule_GetProcessEventsClient) Header() (metadata.MD, e return r0, r1 } -// Recv provides a mock function with given fields: +// Recv provides a mock function with no fields func (_m *EventMonitoringModule_GetProcessEventsClient) Recv() (*api.ProcessEventMessage, error) { ret := _m.Called() @@ -151,7 +151,7 @@ func (_m *EventMonitoringModule_GetProcessEventsClient) SendMsg(m interface{}) e return r0 } -// Trailer provides a mock function with given fields: +// Trailer provides a mock function with no fields func (_m *EventMonitoringModule_GetProcessEventsClient) Trailer() metadata.MD { ret := _m.Called() diff --git a/pkg/eventmonitor/proto/api/mocks/event_monitoring_module_server.go b/pkg/eventmonitor/proto/api/mocks/event_monitoring_module_server.go index ad178b15e1b25..8fa1071c5e624 100644 --- a/pkg/eventmonitor/proto/api/mocks/event_monitoring_module_server.go +++ b/pkg/eventmonitor/proto/api/mocks/event_monitoring_module_server.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.40.1. DO NOT EDIT. +// Code generated by mockery v2.49.2. DO NOT EDIT. package mocks @@ -30,7 +30,7 @@ func (_m *EventMonitoringModuleServer) GetProcessEvents(_a0 *api.GetProcessEvent return r0 } -// mustEmbedUnimplementedEventMonitoringModuleServer provides a mock function with given fields: +// mustEmbedUnimplementedEventMonitoringModuleServer provides a mock function with no fields func (_m *EventMonitoringModuleServer) mustEmbedUnimplementedEventMonitoringModuleServer() { _m.Called() } diff --git a/pkg/process/checks/mocks/check.go b/pkg/process/checks/mocks/check.go index 7e3aa7dff1e4f..21874c1fb9f41 100644 --- a/pkg/process/checks/mocks/check.go +++ b/pkg/process/checks/mocks/check.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.40.1. DO NOT EDIT. +// Code generated by mockery v2.49.2. DO NOT EDIT. package mocks @@ -12,7 +12,7 @@ type Check struct { mock.Mock } -// Cleanup provides a mock function with given fields: +// Cleanup provides a mock function with no fields func (_m *Check) Cleanup() { _m.Called() } @@ -35,7 +35,7 @@ func (_m *Check) Init(syscfg *checks.SysProbeConfig, info *checks.HostInfo, oneS return r0 } -// IsEnabled provides a mock function with given fields: +// IsEnabled provides a mock function with no fields func (_m *Check) IsEnabled() bool { ret := _m.Called() @@ -53,7 +53,7 @@ func (_m *Check) IsEnabled() bool { return r0 } -// Name provides a mock function with given fields: +// Name provides a mock function with no fields func (_m *Check) Name() string { ret := _m.Called() @@ -71,7 +71,7 @@ func (_m *Check) Name() string { return r0 } -// Realtime provides a mock function with given fields: +// Realtime provides a mock function with no fields func (_m *Check) Realtime() bool { ret := _m.Called() @@ -119,7 +119,7 @@ func (_m *Check) Run(nextGroupID func() int32, options *checks.RunOptions) (chec return r0, r1 } -// ShouldSaveLastRun provides a mock function with given fields: +// ShouldSaveLastRun provides a mock function with no fields func (_m *Check) ShouldSaveLastRun() bool { ret := _m.Called() @@ -137,7 +137,7 @@ func (_m *Check) ShouldSaveLastRun() bool { return r0 } -// SupportsRunOptions provides a mock function with given fields: +// SupportsRunOptions provides a mock function with no fields func (_m *Check) SupportsRunOptions() bool { ret := _m.Called() diff --git a/pkg/process/net/mocks/sys_probe_util.go b/pkg/process/net/mocks/sys_probe_util.go index 942046a3bc35d..00c03f639df65 100644 --- a/pkg/process/net/mocks/sys_probe_util.go +++ b/pkg/process/net/mocks/sys_probe_util.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.40.1. DO NOT EDIT. +// Code generated by mockery v2.49.2. DO NOT EDIT. package mocks @@ -83,7 +83,7 @@ func (_c *SysProbeUtil_GetConnections_Call) RunAndReturn(run func(string) (*proc return _c } -// GetNetworkID provides a mock function with given fields: +// GetNetworkID provides a mock function with no fields func (_m *SysProbeUtil) GetNetworkID() (string, error) { ret := _m.Called() diff --git a/pkg/process/procutil/mocks/probe.go b/pkg/process/procutil/mocks/probe.go index 45940ce6336e5..c320fb757f0e6 100644 --- a/pkg/process/procutil/mocks/probe.go +++ b/pkg/process/procutil/mocks/probe.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.40.1. DO NOT EDIT. +// Code generated by mockery v2.49.2. DO NOT EDIT. package mocks @@ -14,7 +14,7 @@ type Probe struct { mock.Mock } -// Close provides a mock function with given fields: +// Close provides a mock function with no fields func (_m *Probe) Close() { _m.Called() } diff --git a/pkg/process/runner/mocks/submitter.go b/pkg/process/runner/mocks/submitter.go index 66430836bfe44..6a6d7be7451fa 100644 --- a/pkg/process/runner/mocks/submitter.go +++ b/pkg/process/runner/mocks/submitter.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.40.1. DO NOT EDIT. +// Code generated by mockery v2.49.2. DO NOT EDIT. package mocks diff --git a/pkg/security/agent/mocks/security_module_client_wrapper.go b/pkg/security/agent/mocks/security_module_client_wrapper.go index 7cca38514d827..227b6c2072121 100644 --- a/pkg/security/agent/mocks/security_module_client_wrapper.go +++ b/pkg/security/agent/mocks/security_module_client_wrapper.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.40.1. DO NOT EDIT. +// Code generated by mockery v2.49.2. DO NOT EDIT. package mocks @@ -12,12 +12,12 @@ type SecurityModuleClientWrapper struct { mock.Mock } -// Close provides a mock function with given fields: +// Close provides a mock function with no fields func (_m *SecurityModuleClientWrapper) Close() { _m.Called() } -// DumpDiscarders provides a mock function with given fields: +// DumpDiscarders provides a mock function with no fields func (_m *SecurityModuleClientWrapper) DumpDiscarders() (string, error) { ret := _m.Called() @@ -163,7 +163,7 @@ func (_m *SecurityModuleClientWrapper) GenerateEncoding(request *api.Transcoding return r0, r1 } -// GetActivityDumpStream provides a mock function with given fields: +// GetActivityDumpStream provides a mock function with no fields func (_m *SecurityModuleClientWrapper) GetActivityDumpStream() (api.SecurityModule_GetActivityDumpStreamClient, error) { ret := _m.Called() @@ -193,7 +193,7 @@ func (_m *SecurityModuleClientWrapper) GetActivityDumpStream() (api.SecurityModu return r0, r1 } -// GetConfig provides a mock function with given fields: +// GetConfig provides a mock function with no fields func (_m *SecurityModuleClientWrapper) GetConfig() (*api.SecurityConfigMessage, error) { ret := _m.Called() @@ -223,7 +223,7 @@ func (_m *SecurityModuleClientWrapper) GetConfig() (*api.SecurityConfigMessage, return r0, r1 } -// GetEvents provides a mock function with given fields: +// GetEvents provides a mock function with no fields func (_m *SecurityModuleClientWrapper) GetEvents() (api.SecurityModule_GetEventsClient, error) { ret := _m.Called() @@ -253,7 +253,7 @@ func (_m *SecurityModuleClientWrapper) GetEvents() (api.SecurityModule_GetEvents return r0, r1 } -// GetRuleSetReport provides a mock function with given fields: +// GetRuleSetReport provides a mock function with no fields func (_m *SecurityModuleClientWrapper) GetRuleSetReport() (*api.GetRuleSetReportResultMessage, error) { ret := _m.Called() @@ -283,7 +283,7 @@ func (_m *SecurityModuleClientWrapper) GetRuleSetReport() (*api.GetRuleSetReport return r0, r1 } -// GetStatus provides a mock function with given fields: +// GetStatus provides a mock function with no fields func (_m *SecurityModuleClientWrapper) GetStatus() (*api.Status, error) { ret := _m.Called() @@ -313,7 +313,7 @@ func (_m *SecurityModuleClientWrapper) GetStatus() (*api.Status, error) { return r0, r1 } -// ListActivityDumps provides a mock function with given fields: +// ListActivityDumps provides a mock function with no fields func (_m *SecurityModuleClientWrapper) ListActivityDumps() (*api.ActivityDumpListMessage, error) { ret := _m.Called() @@ -373,7 +373,7 @@ func (_m *SecurityModuleClientWrapper) ListSecurityProfiles(includeCache bool) ( return r0, r1 } -// ReloadPolicies provides a mock function with given fields: +// ReloadPolicies provides a mock function with no fields func (_m *SecurityModuleClientWrapper) ReloadPolicies() (*api.ReloadPoliciesResultMessage, error) { ret := _m.Called() @@ -403,7 +403,7 @@ func (_m *SecurityModuleClientWrapper) ReloadPolicies() (*api.ReloadPoliciesResu return r0, r1 } -// RunSelfTest provides a mock function with given fields: +// RunSelfTest provides a mock function with no fields func (_m *SecurityModuleClientWrapper) RunSelfTest() (*api.SecuritySelfTestResultMessage, error) { ret := _m.Called() diff --git a/pkg/security/proto/api/mocks/security_module_client.go b/pkg/security/proto/api/mocks/security_module_client.go index 4ed8d11e7db88..ae287b8ba299d 100644 --- a/pkg/security/proto/api/mocks/security_module_client.go +++ b/pkg/security/proto/api/mocks/security_module_client.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.40.1. DO NOT EDIT. +// Code generated by mockery v2.49.2. DO NOT EDIT. package mocks diff --git a/pkg/security/proto/api/mocks/security_module_server.go b/pkg/security/proto/api/mocks/security_module_server.go index 77dbe44637798..ad9a50e6968e3 100644 --- a/pkg/security/proto/api/mocks/security_module_server.go +++ b/pkg/security/proto/api/mocks/security_module_server.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.40.1. DO NOT EDIT. +// Code generated by mockery v2.49.2. DO NOT EDIT. package mocks @@ -471,7 +471,7 @@ func (_m *SecurityModuleServer) TranscodingRequest(_a0 context.Context, _a1 *api return r0, r1 } -// mustEmbedUnimplementedSecurityModuleServer provides a mock function with given fields: +// mustEmbedUnimplementedSecurityModuleServer provides a mock function with no fields func (_m *SecurityModuleServer) mustEmbedUnimplementedSecurityModuleServer() { _m.Called() } diff --git a/pkg/serializer/mocks/metric_serializer.go b/pkg/serializer/mocks/metric_serializer.go index 9dbd9d8c021e8..0f7aaea04591c 100644 --- a/pkg/serializer/mocks/metric_serializer.go +++ b/pkg/serializer/mocks/metric_serializer.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.40.1. DO NOT EDIT. +// Code generated by mockery v2.49.2. DO NOT EDIT. //go:build test @@ -22,7 +22,7 @@ type MetricSerializer struct { mock.Mock } -// AreSeriesEnabled provides a mock function with given fields: +// AreSeriesEnabled provides a mock function with no fields func (_m *MetricSerializer) AreSeriesEnabled() bool { ret := _m.Called() @@ -40,7 +40,7 @@ func (_m *MetricSerializer) AreSeriesEnabled() bool { return r0 } -// AreSketchesEnabled provides a mock function with given fields: +// AreSketchesEnabled provides a mock function with no fields func (_m *MetricSerializer) AreSketchesEnabled() bool { ret := _m.Called() From 90969c4b30d0b808dec0a59d35abbe5ea7f64243 Mon Sep 17 00:00:00 2001 From: Sylvain Baubeau Date: Wed, 4 Dec 2024 18:11:17 +0100 Subject: [PATCH 257/439] [CWS] Export cgroup.version (#31692) --- .../linux_expressions.md | 21 + docs/cloud-workload-security/secl_linux.json | 83 ++++ pkg/security/probe/field_handlers_ebpf.go | 12 + pkg/security/probe/field_handlers_ebpfless.go | 5 + pkg/security/secl/model/accessors_unix.go | 441 ++++++++++++++++++ .../secl/model/field_accessors_unix.go | 174 +++++++ .../secl/model/field_handlers_unix.go | 19 + pkg/security/secl/model/model_unix.go | 1 + pkg/security/tests/cgroup_test.go | 1 + 9 files changed, 757 insertions(+) diff --git a/docs/cloud-workload-security/linux_expressions.md b/docs/cloud-workload-security/linux_expressions.md index b160aee6a93d4..7effc494d89f7 100644 --- a/docs/cloud-workload-security/linux_expressions.md +++ b/docs/cloud-workload-security/linux_expressions.md @@ -123,6 +123,7 @@ The *file.rights* attribute can now be used in addition to *file.mode*. *file.mo | [`cgroup.file.mount_id`](#common-pathkey-mount_id-doc) | Mount ID of the file | | [`cgroup.id`](#common-cgroupcontext-id-doc) | ID of the cgroup | | [`cgroup.manager`](#common-cgroupcontext-manager-doc) | Lifecycle manager of the cgroup | +| [`cgroup.version`](#common-cgroupcontext-version-doc) | Version of the cgroup API | | [`container.created_at`](#container-created_at-doc) | Timestamp of the creation of the container | | [`container.id`](#container-id-doc) | ID of the container | | [`container.runtime`](#container-runtime-doc) | Runtime managing the container | @@ -146,6 +147,7 @@ The *file.rights* attribute can now be used in addition to *file.mode*. *file.mo | [`process.ancestors.cgroup.file.mount_id`](#common-pathkey-mount_id-doc) | Mount ID of the file | | [`process.ancestors.cgroup.id`](#common-cgroupcontext-id-doc) | ID of the cgroup | | [`process.ancestors.cgroup.manager`](#common-cgroupcontext-manager-doc) | Lifecycle manager of the cgroup | +| [`process.ancestors.cgroup.version`](#common-cgroupcontext-version-doc) | Version of the cgroup API | | [`process.ancestors.comm`](#common-process-comm-doc) | Comm attribute of the process | | [`process.ancestors.container.id`](#common-process-container-id-doc) | Container ID | | [`process.ancestors.created_at`](#common-process-created_at-doc) | Timestamp of the creation of the process | @@ -228,6 +230,7 @@ The *file.rights* attribute can now be used in addition to *file.mode*. *file.mo | [`process.cgroup.file.mount_id`](#common-pathkey-mount_id-doc) | Mount ID of the file | | [`process.cgroup.id`](#common-cgroupcontext-id-doc) | ID of the cgroup | | [`process.cgroup.manager`](#common-cgroupcontext-manager-doc) | Lifecycle manager of the cgroup | +| [`process.cgroup.version`](#common-cgroupcontext-version-doc) | Version of the cgroup API | | [`process.comm`](#common-process-comm-doc) | Comm attribute of the process | | [`process.container.id`](#common-process-container-id-doc) | Container ID | | [`process.created_at`](#common-process-created_at-doc) | Timestamp of the creation of the process | @@ -300,6 +303,7 @@ The *file.rights* attribute can now be used in addition to *file.mode*. *file.mo | [`process.parent.cgroup.file.mount_id`](#common-pathkey-mount_id-doc) | Mount ID of the file | | [`process.parent.cgroup.id`](#common-cgroupcontext-id-doc) | ID of the cgroup | | [`process.parent.cgroup.manager`](#common-cgroupcontext-manager-doc) | Lifecycle manager of the cgroup | +| [`process.parent.cgroup.version`](#common-cgroupcontext-version-doc) | Version of the cgroup API | | [`process.parent.comm`](#common-process-comm-doc) | Comm attribute of the process | | [`process.parent.container.id`](#common-process-container-id-doc) | Container ID | | [`process.parent.created_at`](#common-process-created_at-doc) | Timestamp of the creation of the process | @@ -570,6 +574,7 @@ A process was executed or forked | [`exec.cgroup.file.mount_id`](#common-pathkey-mount_id-doc) | Mount ID of the file | | [`exec.cgroup.id`](#common-cgroupcontext-id-doc) | ID of the cgroup | | [`exec.cgroup.manager`](#common-cgroupcontext-manager-doc) | Lifecycle manager of the cgroup | +| [`exec.cgroup.version`](#common-cgroupcontext-version-doc) | Version of the cgroup API | | [`exec.comm`](#common-process-comm-doc) | Comm attribute of the process | | [`exec.container.id`](#common-process-container-id-doc) | Container ID | | [`exec.created_at`](#common-process-created_at-doc) | Timestamp of the creation of the process | @@ -660,6 +665,7 @@ A process was terminated | [`exit.cgroup.file.mount_id`](#common-pathkey-mount_id-doc) | Mount ID of the file | | [`exit.cgroup.id`](#common-cgroupcontext-id-doc) | ID of the cgroup | | [`exit.cgroup.manager`](#common-cgroupcontext-manager-doc) | Lifecycle manager of the cgroup | +| [`exit.cgroup.version`](#common-cgroupcontext-version-doc) | Version of the cgroup API | | [`exit.code`](#exit-code-doc) | Exit code of the process or number of the signal that caused the process to terminate | | [`exit.comm`](#common-process-comm-doc) | Comm attribute of the process | | [`exit.container.id`](#common-process-container-id-doc) | Container ID | @@ -998,6 +1004,7 @@ A ptrace command was executed | [`ptrace.tracee.ancestors.cgroup.file.mount_id`](#common-pathkey-mount_id-doc) | Mount ID of the file | | [`ptrace.tracee.ancestors.cgroup.id`](#common-cgroupcontext-id-doc) | ID of the cgroup | | [`ptrace.tracee.ancestors.cgroup.manager`](#common-cgroupcontext-manager-doc) | Lifecycle manager of the cgroup | +| [`ptrace.tracee.ancestors.cgroup.version`](#common-cgroupcontext-version-doc) | Version of the cgroup API | | [`ptrace.tracee.ancestors.comm`](#common-process-comm-doc) | Comm attribute of the process | | [`ptrace.tracee.ancestors.container.id`](#common-process-container-id-doc) | Container ID | | [`ptrace.tracee.ancestors.created_at`](#common-process-created_at-doc) | Timestamp of the creation of the process | @@ -1080,6 +1087,7 @@ A ptrace command was executed | [`ptrace.tracee.cgroup.file.mount_id`](#common-pathkey-mount_id-doc) | Mount ID of the file | | [`ptrace.tracee.cgroup.id`](#common-cgroupcontext-id-doc) | ID of the cgroup | | [`ptrace.tracee.cgroup.manager`](#common-cgroupcontext-manager-doc) | Lifecycle manager of the cgroup | +| [`ptrace.tracee.cgroup.version`](#common-cgroupcontext-version-doc) | Version of the cgroup API | | [`ptrace.tracee.comm`](#common-process-comm-doc) | Comm attribute of the process | | [`ptrace.tracee.container.id`](#common-process-container-id-doc) | Container ID | | [`ptrace.tracee.created_at`](#common-process-created_at-doc) | Timestamp of the creation of the process | @@ -1152,6 +1160,7 @@ A ptrace command was executed | [`ptrace.tracee.parent.cgroup.file.mount_id`](#common-pathkey-mount_id-doc) | Mount ID of the file | | [`ptrace.tracee.parent.cgroup.id`](#common-cgroupcontext-id-doc) | ID of the cgroup | | [`ptrace.tracee.parent.cgroup.manager`](#common-cgroupcontext-manager-doc) | Lifecycle manager of the cgroup | +| [`ptrace.tracee.parent.cgroup.version`](#common-cgroupcontext-version-doc) | Version of the cgroup API | | [`ptrace.tracee.parent.comm`](#common-process-comm-doc) | Comm attribute of the process | | [`ptrace.tracee.parent.container.id`](#common-process-container-id-doc) | Container ID | | [`ptrace.tracee.parent.created_at`](#common-process-created_at-doc) | Timestamp of the creation of the process | @@ -1426,6 +1435,7 @@ A signal was sent | [`signal.target.ancestors.cgroup.file.mount_id`](#common-pathkey-mount_id-doc) | Mount ID of the file | | [`signal.target.ancestors.cgroup.id`](#common-cgroupcontext-id-doc) | ID of the cgroup | | [`signal.target.ancestors.cgroup.manager`](#common-cgroupcontext-manager-doc) | Lifecycle manager of the cgroup | +| [`signal.target.ancestors.cgroup.version`](#common-cgroupcontext-version-doc) | Version of the cgroup API | | [`signal.target.ancestors.comm`](#common-process-comm-doc) | Comm attribute of the process | | [`signal.target.ancestors.container.id`](#common-process-container-id-doc) | Container ID | | [`signal.target.ancestors.created_at`](#common-process-created_at-doc) | Timestamp of the creation of the process | @@ -1508,6 +1518,7 @@ A signal was sent | [`signal.target.cgroup.file.mount_id`](#common-pathkey-mount_id-doc) | Mount ID of the file | | [`signal.target.cgroup.id`](#common-cgroupcontext-id-doc) | ID of the cgroup | | [`signal.target.cgroup.manager`](#common-cgroupcontext-manager-doc) | Lifecycle manager of the cgroup | +| [`signal.target.cgroup.version`](#common-cgroupcontext-version-doc) | Version of the cgroup API | | [`signal.target.comm`](#common-process-comm-doc) | Comm attribute of the process | | [`signal.target.container.id`](#common-process-container-id-doc) | Container ID | | [`signal.target.created_at`](#common-process-created_at-doc) | Timestamp of the creation of the process | @@ -1580,6 +1591,7 @@ A signal was sent | [`signal.target.parent.cgroup.file.mount_id`](#common-pathkey-mount_id-doc) | Mount ID of the file | | [`signal.target.parent.cgroup.id`](#common-cgroupcontext-id-doc) | ID of the cgroup | | [`signal.target.parent.cgroup.manager`](#common-cgroupcontext-manager-doc) | Lifecycle manager of the cgroup | +| [`signal.target.parent.cgroup.version`](#common-cgroupcontext-version-doc) | Version of the cgroup API | | [`signal.target.parent.comm`](#common-process-comm-doc) | Comm attribute of the process | | [`signal.target.parent.container.id`](#common-process-container-id-doc) | Container ID | | [`signal.target.parent.created_at`](#common-process-created_at-doc) | Timestamp of the creation of the process | @@ -2475,6 +2487,15 @@ Definition: User of the file's owner `chdir.file` `chmod.file` `chown.file` `exec.file` `exec.interpreter.file` `exit.file` `exit.interpreter.file` `link.file` `link.file.destination` `load_module.file` `mkdir.file` `mmap.file` `open.file` `process.ancestors.file` `process.ancestors.interpreter.file` `process.file` `process.interpreter.file` `process.parent.file` `process.parent.interpreter.file` `ptrace.tracee.ancestors.file` `ptrace.tracee.ancestors.interpreter.file` `ptrace.tracee.file` `ptrace.tracee.interpreter.file` `ptrace.tracee.parent.file` `ptrace.tracee.parent.interpreter.file` `removexattr.file` `rename.file` `rename.file.destination` `rmdir.file` `setxattr.file` `signal.target.ancestors.file` `signal.target.ancestors.interpreter.file` `signal.target.file` `signal.target.interpreter.file` `signal.target.parent.file` `signal.target.parent.interpreter.file` `splice.file` `unlink.file` `utimes.file` +### `*.version` {#common-cgroupcontext-version-doc} +Type: int + +Definition: Version of the cgroup API + +`*.version` has 12 possible prefixes: +`cgroup` `exec.cgroup` `exit.cgroup` `process.ancestors.cgroup` `process.cgroup` `process.parent.cgroup` `ptrace.tracee.ancestors.cgroup` `ptrace.tracee.cgroup` `ptrace.tracee.parent.cgroup` `signal.target.ancestors.cgroup` `signal.target.cgroup` `signal.target.parent.cgroup` + + ### `bind.addr.family` {#bind-addr-family-doc} Type: int diff --git a/docs/cloud-workload-security/secl_linux.json b/docs/cloud-workload-security/secl_linux.json index bfc5b54a3cc39..b4f480879c3ed 100644 --- a/docs/cloud-workload-security/secl_linux.json +++ b/docs/cloud-workload-security/secl_linux.json @@ -27,6 +27,11 @@ "definition": "Lifecycle manager of the cgroup", "property_doc_link": "common-cgroupcontext-manager-doc" }, + { + "name": "cgroup.version", + "definition": "Version of the cgroup API", + "property_doc_link": "common-cgroupcontext-version-doc" + }, { "name": "container.created_at", "definition": "Timestamp of the creation of the container", @@ -142,6 +147,11 @@ "definition": "Lifecycle manager of the cgroup", "property_doc_link": "common-cgroupcontext-manager-doc" }, + { + "name": "process.ancestors.cgroup.version", + "definition": "Version of the cgroup API", + "property_doc_link": "common-cgroupcontext-version-doc" + }, { "name": "process.ancestors.comm", "definition": "Comm attribute of the process", @@ -552,6 +562,11 @@ "definition": "Lifecycle manager of the cgroup", "property_doc_link": "common-cgroupcontext-manager-doc" }, + { + "name": "process.cgroup.version", + "definition": "Version of the cgroup API", + "property_doc_link": "common-cgroupcontext-version-doc" + }, { "name": "process.comm", "definition": "Comm attribute of the process", @@ -912,6 +927,11 @@ "definition": "Lifecycle manager of the cgroup", "property_doc_link": "common-cgroupcontext-manager-doc" }, + { + "name": "process.parent.cgroup.version", + "definition": "Version of the cgroup API", + "property_doc_link": "common-cgroupcontext-version-doc" + }, { "name": "process.parent.comm", "definition": "Comm attribute of the process", @@ -2018,6 +2038,11 @@ "definition": "Lifecycle manager of the cgroup", "property_doc_link": "common-cgroupcontext-manager-doc" }, + { + "name": "exec.cgroup.version", + "definition": "Version of the cgroup API", + "property_doc_link": "common-cgroupcontext-version-doc" + }, { "name": "exec.comm", "definition": "Comm attribute of the process", @@ -2442,6 +2467,11 @@ "definition": "Lifecycle manager of the cgroup", "property_doc_link": "common-cgroupcontext-manager-doc" }, + { + "name": "exit.cgroup.version", + "definition": "Version of the cgroup API", + "property_doc_link": "common-cgroupcontext-version-doc" + }, { "name": "exit.code", "definition": "Exit code of the process or number of the signal that caused the process to terminate", @@ -3862,6 +3892,11 @@ "definition": "Lifecycle manager of the cgroup", "property_doc_link": "common-cgroupcontext-manager-doc" }, + { + "name": "ptrace.tracee.ancestors.cgroup.version", + "definition": "Version of the cgroup API", + "property_doc_link": "common-cgroupcontext-version-doc" + }, { "name": "ptrace.tracee.ancestors.comm", "definition": "Comm attribute of the process", @@ -4272,6 +4307,11 @@ "definition": "Lifecycle manager of the cgroup", "property_doc_link": "common-cgroupcontext-manager-doc" }, + { + "name": "ptrace.tracee.cgroup.version", + "definition": "Version of the cgroup API", + "property_doc_link": "common-cgroupcontext-version-doc" + }, { "name": "ptrace.tracee.comm", "definition": "Comm attribute of the process", @@ -4632,6 +4672,11 @@ "definition": "Lifecycle manager of the cgroup", "property_doc_link": "common-cgroupcontext-manager-doc" }, + { + "name": "ptrace.tracee.parent.cgroup.version", + "definition": "Version of the cgroup API", + "property_doc_link": "common-cgroupcontext-version-doc" + }, { "name": "ptrace.tracee.parent.comm", "definition": "Comm attribute of the process", @@ -5794,6 +5839,11 @@ "definition": "Lifecycle manager of the cgroup", "property_doc_link": "common-cgroupcontext-manager-doc" }, + { + "name": "signal.target.ancestors.cgroup.version", + "definition": "Version of the cgroup API", + "property_doc_link": "common-cgroupcontext-version-doc" + }, { "name": "signal.target.ancestors.comm", "definition": "Comm attribute of the process", @@ -6204,6 +6254,11 @@ "definition": "Lifecycle manager of the cgroup", "property_doc_link": "common-cgroupcontext-manager-doc" }, + { + "name": "signal.target.cgroup.version", + "definition": "Version of the cgroup API", + "property_doc_link": "common-cgroupcontext-version-doc" + }, { "name": "signal.target.comm", "definition": "Comm attribute of the process", @@ -6564,6 +6619,11 @@ "definition": "Lifecycle manager of the cgroup", "property_doc_link": "common-cgroupcontext-manager-doc" }, + { + "name": "signal.target.parent.cgroup.version", + "definition": "Version of the cgroup API", + "property_doc_link": "common-cgroupcontext-version-doc" + }, { "name": "signal.target.parent.comm", "definition": "Comm attribute of the process", @@ -9437,6 +9497,29 @@ "constants_link": "", "examples": [] }, + { + "name": "*.version", + "link": "common-cgroupcontext-version-doc", + "type": "int", + "definition": "Version of the cgroup API", + "prefixes": [ + "cgroup", + "exec.cgroup", + "exit.cgroup", + "process.ancestors.cgroup", + "process.cgroup", + "process.parent.cgroup", + "ptrace.tracee.ancestors.cgroup", + "ptrace.tracee.cgroup", + "ptrace.tracee.parent.cgroup", + "signal.target.ancestors.cgroup", + "signal.target.cgroup", + "signal.target.parent.cgroup" + ], + "constants": "", + "constants_link": "", + "examples": [] + }, { "name": "bind.addr.family", "link": "bind-addr-family-doc", diff --git a/pkg/security/probe/field_handlers_ebpf.go b/pkg/security/probe/field_handlers_ebpf.go index 194e2ad141388..36acd3a33d5a2 100644 --- a/pkg/security/probe/field_handlers_ebpf.go +++ b/pkg/security/probe/field_handlers_ebpf.go @@ -538,6 +538,18 @@ func (fh *EBPFFieldHandlers) ResolveCGroupManager(ev *model.Event, _ *model.CGro return "" } +// ResolveCGroupVersion resolves the version of the cgroup API +func (fh *EBPFFieldHandlers) ResolveCGroupVersion(ev *model.Event, e *model.CGroupContext) int { + if e.CGroupVersion == 0 { + if filesystem, _ := fh.resolvers.MountResolver.ResolveFilesystem(e.CGroupFile.MountID, 0, ev.PIDContext.Pid, ev.ContainerContext.ContainerID); filesystem == "cgroup2" { + e.CGroupVersion = 2 + } else { + e.CGroupVersion = 1 + } + } + return e.CGroupVersion +} + // ResolveContainerID resolves the container ID of the event func (fh *EBPFFieldHandlers) ResolveContainerID(ev *model.Event, e *model.ContainerContext) string { if len(e.ContainerID) == 0 { diff --git a/pkg/security/probe/field_handlers_ebpfless.go b/pkg/security/probe/field_handlers_ebpfless.go index 13d10e972d287..5b282148d62d2 100644 --- a/pkg/security/probe/field_handlers_ebpfless.go +++ b/pkg/security/probe/field_handlers_ebpfless.go @@ -160,6 +160,11 @@ func (fh *EBPFLessFieldHandlers) ResolveCGroupID(_ *model.Event, _ *model.CGroup return "" } +// ResolveCGroupVersion resolves the version of the cgroup API +func (fh *EBPFLessFieldHandlers) ResolveCGroupVersion(_ *model.Event, _ *model.CGroupContext) int { + return 0 +} + // ResolveCGroupManager resolves the manager of the cgroup func (fh *EBPFLessFieldHandlers) ResolveCGroupManager(_ *model.Event, _ *model.CGroupContext) string { return "" diff --git a/pkg/security/secl/model/accessors_unix.go b/pkg/security/secl/model/accessors_unix.go index 50664604aaf6a..7b0b033160229 100644 --- a/pkg/security/secl/model/accessors_unix.go +++ b/pkg/security/secl/model/accessors_unix.go @@ -297,6 +297,16 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval Field: field, Weight: eval.HandlerWeight, }, nil + case "cgroup.version": + return &eval.IntEvaluator{ + EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) + ev := ctx.Event.(*Event) + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.CGroupContext) + }, + Field: field, + Weight: eval.HandlerWeight, + }, nil case "chdir.file.change_time": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { @@ -1421,6 +1431,16 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval Field: field, Weight: eval.HandlerWeight, }, nil + case "exec.cgroup.version": + return &eval.IntEvaluator{ + EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) + ev := ctx.Event.(*Event) + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.Exec.Process.CGroup) + }, + Field: field, + Weight: eval.HandlerWeight, + }, nil case "exec.comm": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { @@ -2367,6 +2387,16 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval Field: field, Weight: eval.HandlerWeight, }, nil + case "exit.cgroup.version": + return &eval.IntEvaluator{ + EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) + ev := ctx.Event.(*Event) + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.Exit.Process.CGroup) + }, + Field: field, + Weight: eval.HandlerWeight, + }, nil case "exit.code": return &eval.IntEvaluator{ EvalFnc: func(ctx *eval.Context) int { @@ -5467,6 +5497,34 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval }, Field: field, Weight: eval.IteratorWeight, }, nil + case "process.ancestors.cgroup.version": + return &eval.IntArrayEvaluator{ + EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) + ev := ctx.Event.(*Event) + if result, ok := ctx.IntCache[field]; ok { + return result + } + var results []int + iterator := &ProcessAncestorsIterator{} + if regID != "" { + value := iterator.At(ctx, regID, ctx.Registers[regID]) + if value == nil { + return results + } + element := value + result := int(ev.FieldHandlers.ResolveCGroupVersion(ev, &element.ProcessContext.Process.CGroup)) + results = append(results, result) + return results + } + results = newAncestorsIterator(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) int { + return int(ev.FieldHandlers.ResolveCGroupVersion(ev, &pce.ProcessContext.Process.CGroup)) + }) + ctx.IntCache[field] = results + return results + }, Field: field, + Weight: eval.IteratorWeight, + }, nil case "process.ancestors.comm": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { @@ -7702,6 +7760,16 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval Field: field, Weight: eval.HandlerWeight, }, nil + case "process.cgroup.version": + return &eval.IntEvaluator{ + EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) + ev := ctx.Event.(*Event) + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.BaseEvent.ProcessContext.Process.CGroup) + }, + Field: field, + Weight: eval.HandlerWeight, + }, nil case "process.comm": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { @@ -8577,6 +8645,19 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval Field: field, Weight: eval.HandlerWeight, }, nil + case "process.parent.cgroup.version": + return &eval.IntEvaluator{ + EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) + ev := ctx.Event.(*Event) + if !ev.BaseEvent.ProcessContext.HasParent() { + return 0 + } + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.BaseEvent.ProcessContext.Parent.CGroup) + }, + Field: field, + Weight: eval.HandlerWeight, + }, nil case "process.parent.comm": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { @@ -10034,6 +10115,34 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval }, Field: field, Weight: eval.IteratorWeight, }, nil + case "ptrace.tracee.ancestors.cgroup.version": + return &eval.IntArrayEvaluator{ + EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) + ev := ctx.Event.(*Event) + if result, ok := ctx.IntCache[field]; ok { + return result + } + var results []int + iterator := &ProcessAncestorsIterator{} + if regID != "" { + value := iterator.At(ctx, regID, ctx.Registers[regID]) + if value == nil { + return results + } + element := value + result := int(ev.FieldHandlers.ResolveCGroupVersion(ev, &element.ProcessContext.Process.CGroup)) + results = append(results, result) + return results + } + results = newAncestorsIterator(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) int { + return int(ev.FieldHandlers.ResolveCGroupVersion(ev, &pce.ProcessContext.Process.CGroup)) + }) + ctx.IntCache[field] = results + return results + }, Field: field, + Weight: eval.IteratorWeight, + }, nil case "ptrace.tracee.ancestors.comm": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { @@ -12269,6 +12378,16 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval Field: field, Weight: eval.HandlerWeight, }, nil + case "ptrace.tracee.cgroup.version": + return &eval.IntEvaluator{ + EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) + ev := ctx.Event.(*Event) + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.PTrace.Tracee.Process.CGroup) + }, + Field: field, + Weight: eval.HandlerWeight, + }, nil case "ptrace.tracee.comm": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { @@ -13144,6 +13263,19 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval Field: field, Weight: eval.HandlerWeight, }, nil + case "ptrace.tracee.parent.cgroup.version": + return &eval.IntEvaluator{ + EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) + ev := ctx.Event.(*Event) + if !ev.PTrace.Tracee.HasParent() { + return 0 + } + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.PTrace.Tracee.Parent.CGroup) + }, + Field: field, + Weight: eval.HandlerWeight, + }, nil case "ptrace.tracee.parent.comm": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { @@ -15881,6 +16013,34 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval }, Field: field, Weight: eval.IteratorWeight, }, nil + case "signal.target.ancestors.cgroup.version": + return &eval.IntArrayEvaluator{ + EvalFnc: func(ctx *eval.Context) []int { + ctx.AppendResolvedField(field) + ev := ctx.Event.(*Event) + if result, ok := ctx.IntCache[field]; ok { + return result + } + var results []int + iterator := &ProcessAncestorsIterator{} + if regID != "" { + value := iterator.At(ctx, regID, ctx.Registers[regID]) + if value == nil { + return results + } + element := value + result := int(ev.FieldHandlers.ResolveCGroupVersion(ev, &element.ProcessContext.Process.CGroup)) + results = append(results, result) + return results + } + results = newAncestorsIterator(iterator, ctx, ev, func(ev *Event, pce *ProcessCacheEntry) int { + return int(ev.FieldHandlers.ResolveCGroupVersion(ev, &pce.ProcessContext.Process.CGroup)) + }) + ctx.IntCache[field] = results + return results + }, Field: field, + Weight: eval.IteratorWeight, + }, nil case "signal.target.ancestors.comm": return &eval.StringArrayEvaluator{ EvalFnc: func(ctx *eval.Context) []string { @@ -18116,6 +18276,16 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval Field: field, Weight: eval.HandlerWeight, }, nil + case "signal.target.cgroup.version": + return &eval.IntEvaluator{ + EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) + ev := ctx.Event.(*Event) + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.Signal.Target.Process.CGroup) + }, + Field: field, + Weight: eval.HandlerWeight, + }, nil case "signal.target.comm": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { @@ -18991,6 +19161,19 @@ func (m *Model) GetEvaluator(field eval.Field, regID eval.RegisterID) (eval.Eval Field: field, Weight: eval.HandlerWeight, }, nil + case "signal.target.parent.cgroup.version": + return &eval.IntEvaluator{ + EvalFnc: func(ctx *eval.Context) int { + ctx.AppendResolvedField(field) + ev := ctx.Event.(*Event) + if !ev.Signal.Target.HasParent() { + return 0 + } + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.Signal.Target.Parent.CGroup) + }, + Field: field, + Weight: eval.HandlerWeight, + }, nil case "signal.target.parent.comm": return &eval.StringEvaluator{ EvalFnc: func(ctx *eval.Context) string { @@ -20837,6 +21020,7 @@ func (ev *Event) GetFields() []eval.Field { "cgroup.file.mount_id", "cgroup.id", "cgroup.manager", + "cgroup.version", "chdir.file.change_time", "chdir.file.filesystem", "chdir.file.gid", @@ -20948,6 +21132,7 @@ func (ev *Event) GetFields() []eval.Field { "exec.cgroup.file.mount_id", "exec.cgroup.id", "exec.cgroup.manager", + "exec.cgroup.version", "exec.comm", "exec.container.id", "exec.created_at", @@ -21031,6 +21216,7 @@ func (ev *Event) GetFields() []eval.Field { "exit.cgroup.file.mount_id", "exit.cgroup.id", "exit.cgroup.manager", + "exit.cgroup.version", "exit.code", "exit.comm", "exit.container.id", @@ -21304,6 +21490,7 @@ func (ev *Event) GetFields() []eval.Field { "process.ancestors.cgroup.file.mount_id", "process.ancestors.cgroup.id", "process.ancestors.cgroup.manager", + "process.ancestors.cgroup.version", "process.ancestors.comm", "process.ancestors.container.id", "process.ancestors.created_at", @@ -21386,6 +21573,7 @@ func (ev *Event) GetFields() []eval.Field { "process.cgroup.file.mount_id", "process.cgroup.id", "process.cgroup.manager", + "process.cgroup.version", "process.comm", "process.container.id", "process.created_at", @@ -21458,6 +21646,7 @@ func (ev *Event) GetFields() []eval.Field { "process.parent.cgroup.file.mount_id", "process.parent.cgroup.id", "process.parent.cgroup.manager", + "process.parent.cgroup.version", "process.parent.comm", "process.parent.container.id", "process.parent.created_at", @@ -21550,6 +21739,7 @@ func (ev *Event) GetFields() []eval.Field { "ptrace.tracee.ancestors.cgroup.file.mount_id", "ptrace.tracee.ancestors.cgroup.id", "ptrace.tracee.ancestors.cgroup.manager", + "ptrace.tracee.ancestors.cgroup.version", "ptrace.tracee.ancestors.comm", "ptrace.tracee.ancestors.container.id", "ptrace.tracee.ancestors.created_at", @@ -21632,6 +21822,7 @@ func (ev *Event) GetFields() []eval.Field { "ptrace.tracee.cgroup.file.mount_id", "ptrace.tracee.cgroup.id", "ptrace.tracee.cgroup.manager", + "ptrace.tracee.cgroup.version", "ptrace.tracee.comm", "ptrace.tracee.container.id", "ptrace.tracee.created_at", @@ -21704,6 +21895,7 @@ func (ev *Event) GetFields() []eval.Field { "ptrace.tracee.parent.cgroup.file.mount_id", "ptrace.tracee.parent.cgroup.id", "ptrace.tracee.parent.cgroup.manager", + "ptrace.tracee.parent.cgroup.version", "ptrace.tracee.parent.comm", "ptrace.tracee.parent.container.id", "ptrace.tracee.parent.created_at", @@ -21922,6 +22114,7 @@ func (ev *Event) GetFields() []eval.Field { "signal.target.ancestors.cgroup.file.mount_id", "signal.target.ancestors.cgroup.id", "signal.target.ancestors.cgroup.manager", + "signal.target.ancestors.cgroup.version", "signal.target.ancestors.comm", "signal.target.ancestors.container.id", "signal.target.ancestors.created_at", @@ -22004,6 +22197,7 @@ func (ev *Event) GetFields() []eval.Field { "signal.target.cgroup.file.mount_id", "signal.target.cgroup.id", "signal.target.cgroup.manager", + "signal.target.cgroup.version", "signal.target.comm", "signal.target.container.id", "signal.target.created_at", @@ -22076,6 +22270,7 @@ func (ev *Event) GetFields() []eval.Field { "signal.target.parent.cgroup.file.mount_id", "signal.target.parent.cgroup.id", "signal.target.parent.cgroup.manager", + "signal.target.parent.cgroup.version", "signal.target.parent.comm", "signal.target.parent.container.id", "signal.target.parent.created_at", @@ -22276,6 +22471,8 @@ func (ev *Event) GetFieldValue(field eval.Field) (interface{}, error) { return ev.FieldHandlers.ResolveCGroupID(ev, &ev.CGroupContext), nil case "cgroup.manager": return ev.FieldHandlers.ResolveCGroupManager(ev, &ev.CGroupContext), nil + case "cgroup.version": + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.CGroupContext), nil case "chdir.file.change_time": return int(ev.Chdir.File.FileFields.CTime), nil case "chdir.file.filesystem": @@ -22498,6 +22695,8 @@ func (ev *Event) GetFieldValue(field eval.Field) (interface{}, error) { return ev.FieldHandlers.ResolveCGroupID(ev, &ev.Exec.Process.CGroup), nil case "exec.cgroup.manager": return ev.FieldHandlers.ResolveCGroupManager(ev, &ev.Exec.Process.CGroup), nil + case "exec.cgroup.version": + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.Exec.Process.CGroup), nil case "exec.comm": return ev.Exec.Process.Comm, nil case "exec.container.id": @@ -22772,6 +22971,8 @@ func (ev *Event) GetFieldValue(field eval.Field) (interface{}, error) { return ev.FieldHandlers.ResolveCGroupID(ev, &ev.Exit.Process.CGroup), nil case "exit.cgroup.manager": return ev.FieldHandlers.ResolveCGroupManager(ev, &ev.Exit.Process.CGroup), nil + case "exit.cgroup.version": + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.Exit.Process.CGroup), nil case "exit.code": return int(ev.Exit.Code), nil case "exit.comm": @@ -23556,6 +23757,18 @@ func (ev *Event) GetFieldValue(field eval.Field) (interface{}, error) { ptr = iterator.Next() } return values, nil + case "process.ancestors.cgroup.version": + var values []int + ctx := eval.NewContext(ev) + iterator := &ProcessAncestorsIterator{} + ptr := iterator.Front(ctx) + for ptr != nil { + element := ptr + result := ev.FieldHandlers.ResolveCGroupVersion(ev, &element.ProcessContext.Process.CGroup) + values = append(values, result) + ptr = iterator.Next() + } + return values, nil case "process.ancestors.comm": var values []string ctx := eval.NewContext(ev) @@ -24362,6 +24575,8 @@ func (ev *Event) GetFieldValue(field eval.Field) (interface{}, error) { return ev.FieldHandlers.ResolveCGroupID(ev, &ev.BaseEvent.ProcessContext.Process.CGroup), nil case "process.cgroup.manager": return ev.FieldHandlers.ResolveCGroupManager(ev, &ev.BaseEvent.ProcessContext.Process.CGroup), nil + case "process.cgroup.version": + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.BaseEvent.ProcessContext.Process.CGroup), nil case "process.comm": return ev.BaseEvent.ProcessContext.Process.Comm, nil case "process.container.id": @@ -24653,6 +24868,11 @@ func (ev *Event) GetFieldValue(field eval.Field) (interface{}, error) { return "", &eval.ErrNotSupported{Field: field} } return ev.FieldHandlers.ResolveCGroupManager(ev, &ev.BaseEvent.ProcessContext.Parent.CGroup), nil + case "process.parent.cgroup.version": + if !ev.BaseEvent.ProcessContext.HasParent() { + return 0, &eval.ErrNotSupported{Field: field} + } + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.BaseEvent.ProcessContext.Parent.CGroup), nil case "process.parent.comm": if !ev.BaseEvent.ProcessContext.HasParent() { return "", &eval.ErrNotSupported{Field: field} @@ -25267,6 +25487,18 @@ func (ev *Event) GetFieldValue(field eval.Field) (interface{}, error) { ptr = iterator.Next() } return values, nil + case "ptrace.tracee.ancestors.cgroup.version": + var values []int + ctx := eval.NewContext(ev) + iterator := &ProcessAncestorsIterator{} + ptr := iterator.Front(ctx) + for ptr != nil { + element := ptr + result := ev.FieldHandlers.ResolveCGroupVersion(ev, &element.ProcessContext.Process.CGroup) + values = append(values, result) + ptr = iterator.Next() + } + return values, nil case "ptrace.tracee.ancestors.comm": var values []string ctx := eval.NewContext(ev) @@ -26073,6 +26305,8 @@ func (ev *Event) GetFieldValue(field eval.Field) (interface{}, error) { return ev.FieldHandlers.ResolveCGroupID(ev, &ev.PTrace.Tracee.Process.CGroup), nil case "ptrace.tracee.cgroup.manager": return ev.FieldHandlers.ResolveCGroupManager(ev, &ev.PTrace.Tracee.Process.CGroup), nil + case "ptrace.tracee.cgroup.version": + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.PTrace.Tracee.Process.CGroup), nil case "ptrace.tracee.comm": return ev.PTrace.Tracee.Process.Comm, nil case "ptrace.tracee.container.id": @@ -26364,6 +26598,11 @@ func (ev *Event) GetFieldValue(field eval.Field) (interface{}, error) { return "", &eval.ErrNotSupported{Field: field} } return ev.FieldHandlers.ResolveCGroupManager(ev, &ev.PTrace.Tracee.Parent.CGroup), nil + case "ptrace.tracee.parent.cgroup.version": + if !ev.PTrace.Tracee.HasParent() { + return 0, &eval.ErrNotSupported{Field: field} + } + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.PTrace.Tracee.Parent.CGroup), nil case "ptrace.tracee.parent.comm": if !ev.PTrace.Tracee.HasParent() { return "", &eval.ErrNotSupported{Field: field} @@ -27230,6 +27469,18 @@ func (ev *Event) GetFieldValue(field eval.Field) (interface{}, error) { ptr = iterator.Next() } return values, nil + case "signal.target.ancestors.cgroup.version": + var values []int + ctx := eval.NewContext(ev) + iterator := &ProcessAncestorsIterator{} + ptr := iterator.Front(ctx) + for ptr != nil { + element := ptr + result := ev.FieldHandlers.ResolveCGroupVersion(ev, &element.ProcessContext.Process.CGroup) + values = append(values, result) + ptr = iterator.Next() + } + return values, nil case "signal.target.ancestors.comm": var values []string ctx := eval.NewContext(ev) @@ -28036,6 +28287,8 @@ func (ev *Event) GetFieldValue(field eval.Field) (interface{}, error) { return ev.FieldHandlers.ResolveCGroupID(ev, &ev.Signal.Target.Process.CGroup), nil case "signal.target.cgroup.manager": return ev.FieldHandlers.ResolveCGroupManager(ev, &ev.Signal.Target.Process.CGroup), nil + case "signal.target.cgroup.version": + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.Signal.Target.Process.CGroup), nil case "signal.target.comm": return ev.Signal.Target.Process.Comm, nil case "signal.target.container.id": @@ -28327,6 +28580,11 @@ func (ev *Event) GetFieldValue(field eval.Field) (interface{}, error) { return "", &eval.ErrNotSupported{Field: field} } return ev.FieldHandlers.ResolveCGroupManager(ev, &ev.Signal.Target.Parent.CGroup), nil + case "signal.target.parent.cgroup.version": + if !ev.Signal.Target.HasParent() { + return 0, &eval.ErrNotSupported{Field: field} + } + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.Signal.Target.Parent.CGroup), nil case "signal.target.parent.comm": if !ev.Signal.Target.HasParent() { return "", &eval.ErrNotSupported{Field: field} @@ -28974,6 +29232,8 @@ func (ev *Event) GetFieldEventType(field eval.Field) (eval.EventType, error) { return "", nil case "cgroup.manager": return "", nil + case "cgroup.version": + return "", nil case "chdir.file.change_time": return "chdir", nil case "chdir.file.filesystem": @@ -29196,6 +29456,8 @@ func (ev *Event) GetFieldEventType(field eval.Field) (eval.EventType, error) { return "exec", nil case "exec.cgroup.manager": return "exec", nil + case "exec.cgroup.version": + return "exec", nil case "exec.comm": return "exec", nil case "exec.container.id": @@ -29362,6 +29624,8 @@ func (ev *Event) GetFieldEventType(field eval.Field) (eval.EventType, error) { return "exit", nil case "exit.cgroup.manager": return "exit", nil + case "exit.cgroup.version": + return "exit", nil case "exit.code": return "exit", nil case "exit.comm": @@ -29908,6 +30172,8 @@ func (ev *Event) GetFieldEventType(field eval.Field) (eval.EventType, error) { return "", nil case "process.ancestors.cgroup.manager": return "", nil + case "process.ancestors.cgroup.version": + return "", nil case "process.ancestors.comm": return "", nil case "process.ancestors.container.id": @@ -30072,6 +30338,8 @@ func (ev *Event) GetFieldEventType(field eval.Field) (eval.EventType, error) { return "", nil case "process.cgroup.manager": return "", nil + case "process.cgroup.version": + return "", nil case "process.comm": return "", nil case "process.container.id": @@ -30216,6 +30484,8 @@ func (ev *Event) GetFieldEventType(field eval.Field) (eval.EventType, error) { return "", nil case "process.parent.cgroup.manager": return "", nil + case "process.parent.cgroup.version": + return "", nil case "process.parent.comm": return "", nil case "process.parent.container.id": @@ -30400,6 +30670,8 @@ func (ev *Event) GetFieldEventType(field eval.Field) (eval.EventType, error) { return "ptrace", nil case "ptrace.tracee.ancestors.cgroup.manager": return "ptrace", nil + case "ptrace.tracee.ancestors.cgroup.version": + return "ptrace", nil case "ptrace.tracee.ancestors.comm": return "ptrace", nil case "ptrace.tracee.ancestors.container.id": @@ -30564,6 +30836,8 @@ func (ev *Event) GetFieldEventType(field eval.Field) (eval.EventType, error) { return "ptrace", nil case "ptrace.tracee.cgroup.manager": return "ptrace", nil + case "ptrace.tracee.cgroup.version": + return "ptrace", nil case "ptrace.tracee.comm": return "ptrace", nil case "ptrace.tracee.container.id": @@ -30708,6 +30982,8 @@ func (ev *Event) GetFieldEventType(field eval.Field) (eval.EventType, error) { return "ptrace", nil case "ptrace.tracee.parent.cgroup.manager": return "ptrace", nil + case "ptrace.tracee.parent.cgroup.version": + return "ptrace", nil case "ptrace.tracee.parent.comm": return "ptrace", nil case "ptrace.tracee.parent.container.id": @@ -31144,6 +31420,8 @@ func (ev *Event) GetFieldEventType(field eval.Field) (eval.EventType, error) { return "signal", nil case "signal.target.ancestors.cgroup.manager": return "signal", nil + case "signal.target.ancestors.cgroup.version": + return "signal", nil case "signal.target.ancestors.comm": return "signal", nil case "signal.target.ancestors.container.id": @@ -31308,6 +31586,8 @@ func (ev *Event) GetFieldEventType(field eval.Field) (eval.EventType, error) { return "signal", nil case "signal.target.cgroup.manager": return "signal", nil + case "signal.target.cgroup.version": + return "signal", nil case "signal.target.comm": return "signal", nil case "signal.target.container.id": @@ -31452,6 +31732,8 @@ func (ev *Event) GetFieldEventType(field eval.Field) (eval.EventType, error) { return "signal", nil case "signal.target.parent.cgroup.manager": return "signal", nil + case "signal.target.parent.cgroup.version": + return "signal", nil case "signal.target.parent.comm": return "signal", nil case "signal.target.parent.container.id": @@ -31799,6 +32081,8 @@ func (ev *Event) GetFieldType(field eval.Field) (reflect.Kind, error) { return reflect.String, nil case "cgroup.manager": return reflect.String, nil + case "cgroup.version": + return reflect.Int, nil case "chdir.file.change_time": return reflect.Int, nil case "chdir.file.filesystem": @@ -32021,6 +32305,8 @@ func (ev *Event) GetFieldType(field eval.Field) (reflect.Kind, error) { return reflect.String, nil case "exec.cgroup.manager": return reflect.String, nil + case "exec.cgroup.version": + return reflect.Int, nil case "exec.comm": return reflect.String, nil case "exec.container.id": @@ -32187,6 +32473,8 @@ func (ev *Event) GetFieldType(field eval.Field) (reflect.Kind, error) { return reflect.String, nil case "exit.cgroup.manager": return reflect.String, nil + case "exit.cgroup.version": + return reflect.Int, nil case "exit.code": return reflect.Int, nil case "exit.comm": @@ -32733,6 +33021,8 @@ func (ev *Event) GetFieldType(field eval.Field) (reflect.Kind, error) { return reflect.String, nil case "process.ancestors.cgroup.manager": return reflect.String, nil + case "process.ancestors.cgroup.version": + return reflect.Int, nil case "process.ancestors.comm": return reflect.String, nil case "process.ancestors.container.id": @@ -32897,6 +33187,8 @@ func (ev *Event) GetFieldType(field eval.Field) (reflect.Kind, error) { return reflect.String, nil case "process.cgroup.manager": return reflect.String, nil + case "process.cgroup.version": + return reflect.Int, nil case "process.comm": return reflect.String, nil case "process.container.id": @@ -33041,6 +33333,8 @@ func (ev *Event) GetFieldType(field eval.Field) (reflect.Kind, error) { return reflect.String, nil case "process.parent.cgroup.manager": return reflect.String, nil + case "process.parent.cgroup.version": + return reflect.Int, nil case "process.parent.comm": return reflect.String, nil case "process.parent.container.id": @@ -33225,6 +33519,8 @@ func (ev *Event) GetFieldType(field eval.Field) (reflect.Kind, error) { return reflect.String, nil case "ptrace.tracee.ancestors.cgroup.manager": return reflect.String, nil + case "ptrace.tracee.ancestors.cgroup.version": + return reflect.Int, nil case "ptrace.tracee.ancestors.comm": return reflect.String, nil case "ptrace.tracee.ancestors.container.id": @@ -33389,6 +33685,8 @@ func (ev *Event) GetFieldType(field eval.Field) (reflect.Kind, error) { return reflect.String, nil case "ptrace.tracee.cgroup.manager": return reflect.String, nil + case "ptrace.tracee.cgroup.version": + return reflect.Int, nil case "ptrace.tracee.comm": return reflect.String, nil case "ptrace.tracee.container.id": @@ -33533,6 +33831,8 @@ func (ev *Event) GetFieldType(field eval.Field) (reflect.Kind, error) { return reflect.String, nil case "ptrace.tracee.parent.cgroup.manager": return reflect.String, nil + case "ptrace.tracee.parent.cgroup.version": + return reflect.Int, nil case "ptrace.tracee.parent.comm": return reflect.String, nil case "ptrace.tracee.parent.container.id": @@ -33969,6 +34269,8 @@ func (ev *Event) GetFieldType(field eval.Field) (reflect.Kind, error) { return reflect.String, nil case "signal.target.ancestors.cgroup.manager": return reflect.String, nil + case "signal.target.ancestors.cgroup.version": + return reflect.Int, nil case "signal.target.ancestors.comm": return reflect.String, nil case "signal.target.ancestors.container.id": @@ -34133,6 +34435,8 @@ func (ev *Event) GetFieldType(field eval.Field) (reflect.Kind, error) { return reflect.String, nil case "signal.target.cgroup.manager": return reflect.String, nil + case "signal.target.cgroup.version": + return reflect.Int, nil case "signal.target.comm": return reflect.String, nil case "signal.target.container.id": @@ -34277,6 +34581,8 @@ func (ev *Event) GetFieldType(field eval.Field) (reflect.Kind, error) { return reflect.String, nil case "signal.target.parent.cgroup.manager": return reflect.String, nil + case "signal.target.parent.cgroup.version": + return reflect.Int, nil case "signal.target.parent.comm": return reflect.String, nil case "signal.target.parent.container.id": @@ -34743,6 +35049,13 @@ func (ev *Event) SetFieldValue(field eval.Field, value interface{}) error { } ev.CGroupContext.CGroupManager = rv return nil + case "cgroup.version": + rv, ok := value.(int) + if !ok { + return &eval.ErrValueTypeMismatch{Field: "CGroupContext.CGroupVersion"} + } + ev.CGroupContext.CGroupVersion = int(rv) + return nil case "chdir.file.change_time": rv, ok := value.(int) if !ok { @@ -35599,6 +35912,16 @@ func (ev *Event) SetFieldValue(field eval.Field, value interface{}) error { } ev.Exec.Process.CGroup.CGroupManager = rv return nil + case "exec.cgroup.version": + if ev.Exec.Process == nil { + ev.Exec.Process = &Process{} + } + rv, ok := value.(int) + if !ok { + return &eval.ErrValueTypeMismatch{Field: "Exec.Process.CGroup.CGroupVersion"} + } + ev.Exec.Process.CGroup.CGroupVersion = int(rv) + return nil case "exec.comm": if ev.Exec.Process == nil { ev.Exec.Process = &Process{} @@ -36439,6 +36762,16 @@ func (ev *Event) SetFieldValue(field eval.Field, value interface{}) error { } ev.Exit.Process.CGroup.CGroupManager = rv return nil + case "exit.cgroup.version": + if ev.Exit.Process == nil { + ev.Exit.Process = &Process{} + } + rv, ok := value.(int) + if !ok { + return &eval.ErrValueTypeMismatch{Field: "Exit.Process.CGroup.CGroupVersion"} + } + ev.Exit.Process.CGroup.CGroupVersion = int(rv) + return nil case "exit.code": rv, ok := value.(int) if !ok { @@ -38672,6 +39005,19 @@ func (ev *Event) SetFieldValue(field eval.Field, value interface{}) error { } ev.BaseEvent.ProcessContext.Ancestor.ProcessContext.Process.CGroup.CGroupManager = rv return nil + case "process.ancestors.cgroup.version": + if ev.BaseEvent.ProcessContext == nil { + ev.BaseEvent.ProcessContext = &ProcessContext{} + } + if ev.BaseEvent.ProcessContext.Ancestor == nil { + ev.BaseEvent.ProcessContext.Ancestor = &ProcessCacheEntry{} + } + rv, ok := value.(int) + if !ok { + return &eval.ErrValueTypeMismatch{Field: "BaseEvent.ProcessContext.Ancestor.ProcessContext.Process.CGroup.CGroupVersion"} + } + ev.BaseEvent.ProcessContext.Ancestor.ProcessContext.Process.CGroup.CGroupVersion = int(rv) + return nil case "process.ancestors.comm": if ev.BaseEvent.ProcessContext == nil { ev.BaseEvent.ProcessContext = &ProcessContext{} @@ -39710,6 +40056,16 @@ func (ev *Event) SetFieldValue(field eval.Field, value interface{}) error { } ev.BaseEvent.ProcessContext.Process.CGroup.CGroupManager = rv return nil + case "process.cgroup.version": + if ev.BaseEvent.ProcessContext == nil { + ev.BaseEvent.ProcessContext = &ProcessContext{} + } + rv, ok := value.(int) + if !ok { + return &eval.ErrValueTypeMismatch{Field: "BaseEvent.ProcessContext.Process.CGroup.CGroupVersion"} + } + ev.BaseEvent.ProcessContext.Process.CGroup.CGroupVersion = int(rv) + return nil case "process.comm": if ev.BaseEvent.ProcessContext == nil { ev.BaseEvent.ProcessContext = &ProcessContext{} @@ -40482,6 +40838,19 @@ func (ev *Event) SetFieldValue(field eval.Field, value interface{}) error { } ev.BaseEvent.ProcessContext.Parent.CGroup.CGroupManager = rv return nil + case "process.parent.cgroup.version": + if ev.BaseEvent.ProcessContext == nil { + ev.BaseEvent.ProcessContext = &ProcessContext{} + } + if ev.BaseEvent.ProcessContext.Parent == nil { + ev.BaseEvent.ProcessContext.Parent = &Process{} + } + rv, ok := value.(int) + if !ok { + return &eval.ErrValueTypeMismatch{Field: "BaseEvent.ProcessContext.Parent.CGroup.CGroupVersion"} + } + ev.BaseEvent.ProcessContext.Parent.CGroup.CGroupVersion = int(rv) + return nil case "process.parent.comm": if ev.BaseEvent.ProcessContext == nil { ev.BaseEvent.ProcessContext = &ProcessContext{} @@ -41658,6 +42027,19 @@ func (ev *Event) SetFieldValue(field eval.Field, value interface{}) error { } ev.PTrace.Tracee.Ancestor.ProcessContext.Process.CGroup.CGroupManager = rv return nil + case "ptrace.tracee.ancestors.cgroup.version": + if ev.PTrace.Tracee == nil { + ev.PTrace.Tracee = &ProcessContext{} + } + if ev.PTrace.Tracee.Ancestor == nil { + ev.PTrace.Tracee.Ancestor = &ProcessCacheEntry{} + } + rv, ok := value.(int) + if !ok { + return &eval.ErrValueTypeMismatch{Field: "PTrace.Tracee.Ancestor.ProcessContext.Process.CGroup.CGroupVersion"} + } + ev.PTrace.Tracee.Ancestor.ProcessContext.Process.CGroup.CGroupVersion = int(rv) + return nil case "ptrace.tracee.ancestors.comm": if ev.PTrace.Tracee == nil { ev.PTrace.Tracee = &ProcessContext{} @@ -42696,6 +43078,16 @@ func (ev *Event) SetFieldValue(field eval.Field, value interface{}) error { } ev.PTrace.Tracee.Process.CGroup.CGroupManager = rv return nil + case "ptrace.tracee.cgroup.version": + if ev.PTrace.Tracee == nil { + ev.PTrace.Tracee = &ProcessContext{} + } + rv, ok := value.(int) + if !ok { + return &eval.ErrValueTypeMismatch{Field: "PTrace.Tracee.Process.CGroup.CGroupVersion"} + } + ev.PTrace.Tracee.Process.CGroup.CGroupVersion = int(rv) + return nil case "ptrace.tracee.comm": if ev.PTrace.Tracee == nil { ev.PTrace.Tracee = &ProcessContext{} @@ -43468,6 +43860,19 @@ func (ev *Event) SetFieldValue(field eval.Field, value interface{}) error { } ev.PTrace.Tracee.Parent.CGroup.CGroupManager = rv return nil + case "ptrace.tracee.parent.cgroup.version": + if ev.PTrace.Tracee == nil { + ev.PTrace.Tracee = &ProcessContext{} + } + if ev.PTrace.Tracee.Parent == nil { + ev.PTrace.Tracee.Parent = &Process{} + } + rv, ok := value.(int) + if !ok { + return &eval.ErrValueTypeMismatch{Field: "PTrace.Tracee.Parent.CGroup.CGroupVersion"} + } + ev.PTrace.Tracee.Parent.CGroup.CGroupVersion = int(rv) + return nil case "ptrace.tracee.parent.comm": if ev.PTrace.Tracee == nil { ev.PTrace.Tracee = &ProcessContext{} @@ -45521,6 +45926,19 @@ func (ev *Event) SetFieldValue(field eval.Field, value interface{}) error { } ev.Signal.Target.Ancestor.ProcessContext.Process.CGroup.CGroupManager = rv return nil + case "signal.target.ancestors.cgroup.version": + if ev.Signal.Target == nil { + ev.Signal.Target = &ProcessContext{} + } + if ev.Signal.Target.Ancestor == nil { + ev.Signal.Target.Ancestor = &ProcessCacheEntry{} + } + rv, ok := value.(int) + if !ok { + return &eval.ErrValueTypeMismatch{Field: "Signal.Target.Ancestor.ProcessContext.Process.CGroup.CGroupVersion"} + } + ev.Signal.Target.Ancestor.ProcessContext.Process.CGroup.CGroupVersion = int(rv) + return nil case "signal.target.ancestors.comm": if ev.Signal.Target == nil { ev.Signal.Target = &ProcessContext{} @@ -46559,6 +46977,16 @@ func (ev *Event) SetFieldValue(field eval.Field, value interface{}) error { } ev.Signal.Target.Process.CGroup.CGroupManager = rv return nil + case "signal.target.cgroup.version": + if ev.Signal.Target == nil { + ev.Signal.Target = &ProcessContext{} + } + rv, ok := value.(int) + if !ok { + return &eval.ErrValueTypeMismatch{Field: "Signal.Target.Process.CGroup.CGroupVersion"} + } + ev.Signal.Target.Process.CGroup.CGroupVersion = int(rv) + return nil case "signal.target.comm": if ev.Signal.Target == nil { ev.Signal.Target = &ProcessContext{} @@ -47331,6 +47759,19 @@ func (ev *Event) SetFieldValue(field eval.Field, value interface{}) error { } ev.Signal.Target.Parent.CGroup.CGroupManager = rv return nil + case "signal.target.parent.cgroup.version": + if ev.Signal.Target == nil { + ev.Signal.Target = &ProcessContext{} + } + if ev.Signal.Target.Parent == nil { + ev.Signal.Target.Parent = &Process{} + } + rv, ok := value.(int) + if !ok { + return &eval.ErrValueTypeMismatch{Field: "Signal.Target.Parent.CGroup.CGroupVersion"} + } + ev.Signal.Target.Parent.CGroup.CGroupVersion = int(rv) + return nil case "signal.target.parent.comm": if ev.Signal.Target == nil { ev.Signal.Target = &ProcessContext{} diff --git a/pkg/security/secl/model/field_accessors_unix.go b/pkg/security/secl/model/field_accessors_unix.go index 237b5d93b5769..80a466602a68c 100644 --- a/pkg/security/secl/model/field_accessors_unix.go +++ b/pkg/security/secl/model/field_accessors_unix.go @@ -170,6 +170,11 @@ func (ev *Event) GetCgroupManager() string { return ev.FieldHandlers.ResolveCGroupManager(ev, &ev.CGroupContext) } +// GetCgroupVersion returns the value of the field, resolving if necessary +func (ev *Event) GetCgroupVersion() int { + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.CGroupContext) +} + // GetChdirFileChangeTime returns the value of the field, resolving if necessary func (ev *Event) GetChdirFileChangeTime() uint64 { if ev.GetEventType().String() != "chdir" { @@ -1245,6 +1250,17 @@ func (ev *Event) GetExecCgroupManager() string { return ev.FieldHandlers.ResolveCGroupManager(ev, &ev.Exec.Process.CGroup) } +// GetExecCgroupVersion returns the value of the field, resolving if necessary +func (ev *Event) GetExecCgroupVersion() int { + if ev.GetEventType().String() != "exec" { + return 0 + } + if ev.Exec.Process == nil { + return 0 + } + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.Exec.Process.CGroup) +} + // GetExecCmdargv returns the value of the field, resolving if necessary func (ev *Event) GetExecCmdargv() []string { if ev.GetEventType().String() != "exec" { @@ -2374,6 +2390,17 @@ func (ev *Event) GetExitCgroupManager() string { return ev.FieldHandlers.ResolveCGroupManager(ev, &ev.Exit.Process.CGroup) } +// GetExitCgroupVersion returns the value of the field, resolving if necessary +func (ev *Event) GetExitCgroupVersion() int { + if ev.GetEventType().String() != "exit" { + return 0 + } + if ev.Exit.Process == nil { + return 0 + } + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.Exit.Process.CGroup) +} + // GetExitCmdargv returns the value of the field, resolving if necessary func (ev *Event) GetExitCmdargv() []string { if ev.GetEventType().String() != "exit" { @@ -5239,6 +5266,27 @@ func (ev *Event) GetProcessAncestorsCgroupManager() []string { return values } +// GetProcessAncestorsCgroupVersion returns the value of the field, resolving if necessary +func (ev *Event) GetProcessAncestorsCgroupVersion() []int { + if ev.BaseEvent.ProcessContext == nil { + return []int{} + } + if ev.BaseEvent.ProcessContext.Ancestor == nil { + return []int{} + } + var values []int + ctx := eval.NewContext(ev) + iterator := &ProcessAncestorsIterator{} + ptr := iterator.Front(ctx) + for ptr != nil { + element := (*ProcessCacheEntry)(ptr) + result := ev.FieldHandlers.ResolveCGroupVersion(ev, &element.ProcessContext.Process.CGroup) + values = append(values, result) + ptr = iterator.Next() + } + return values +} + // GetProcessAncestorsCmdargv returns the value of the field, resolving if necessary func (ev *Event) GetProcessAncestorsCmdargv() []string { if ev.BaseEvent.ProcessContext == nil { @@ -6821,6 +6869,14 @@ func (ev *Event) GetProcessCgroupManager() string { return ev.FieldHandlers.ResolveCGroupManager(ev, &ev.BaseEvent.ProcessContext.Process.CGroup) } +// GetProcessCgroupVersion returns the value of the field, resolving if necessary +func (ev *Event) GetProcessCgroupVersion() int { + if ev.BaseEvent.ProcessContext == nil { + return 0 + } + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.BaseEvent.ProcessContext.Process.CGroup) +} + // GetProcessCmdargv returns the value of the field, resolving if necessary func (ev *Event) GetProcessCmdargv() []string { if ev.BaseEvent.ProcessContext == nil { @@ -7643,6 +7699,20 @@ func (ev *Event) GetProcessParentCgroupManager() string { return ev.FieldHandlers.ResolveCGroupManager(ev, &ev.BaseEvent.ProcessContext.Parent.CGroup) } +// GetProcessParentCgroupVersion returns the value of the field, resolving if necessary +func (ev *Event) GetProcessParentCgroupVersion() int { + if ev.BaseEvent.ProcessContext == nil { + return 0 + } + if ev.BaseEvent.ProcessContext.Parent == nil { + return 0 + } + if !ev.BaseEvent.ProcessContext.HasParent() { + return 0 + } + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.BaseEvent.ProcessContext.Parent.CGroup) +} + // GetProcessParentCmdargv returns the value of the field, resolving if necessary func (ev *Event) GetProcessParentCmdargv() []string { if ev.BaseEvent.ProcessContext == nil { @@ -9153,6 +9223,30 @@ func (ev *Event) GetPtraceTraceeAncestorsCgroupManager() []string { return values } +// GetPtraceTraceeAncestorsCgroupVersion returns the value of the field, resolving if necessary +func (ev *Event) GetPtraceTraceeAncestorsCgroupVersion() []int { + if ev.GetEventType().String() != "ptrace" { + return []int{} + } + if ev.PTrace.Tracee == nil { + return []int{} + } + if ev.PTrace.Tracee.Ancestor == nil { + return []int{} + } + var values []int + ctx := eval.NewContext(ev) + iterator := &ProcessAncestorsIterator{} + ptr := iterator.Front(ctx) + for ptr != nil { + element := (*ProcessCacheEntry)(ptr) + result := ev.FieldHandlers.ResolveCGroupVersion(ev, &element.ProcessContext.Process.CGroup) + values = append(values, result) + ptr = iterator.Next() + } + return values +} + // GetPtraceTraceeAncestorsCmdargv returns the value of the field, resolving if necessary func (ev *Event) GetPtraceTraceeAncestorsCmdargv() []string { if ev.GetEventType().String() != "ptrace" { @@ -10990,6 +11084,17 @@ func (ev *Event) GetPtraceTraceeCgroupManager() string { return ev.FieldHandlers.ResolveCGroupManager(ev, &ev.PTrace.Tracee.Process.CGroup) } +// GetPtraceTraceeCgroupVersion returns the value of the field, resolving if necessary +func (ev *Event) GetPtraceTraceeCgroupVersion() int { + if ev.GetEventType().String() != "ptrace" { + return 0 + } + if ev.PTrace.Tracee == nil { + return 0 + } + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.PTrace.Tracee.Process.CGroup) +} + // GetPtraceTraceeCmdargv returns the value of the field, resolving if necessary func (ev *Event) GetPtraceTraceeCmdargv() []string { if ev.GetEventType().String() != "ptrace" { @@ -12046,6 +12151,23 @@ func (ev *Event) GetPtraceTraceeParentCgroupManager() string { return ev.FieldHandlers.ResolveCGroupManager(ev, &ev.PTrace.Tracee.Parent.CGroup) } +// GetPtraceTraceeParentCgroupVersion returns the value of the field, resolving if necessary +func (ev *Event) GetPtraceTraceeParentCgroupVersion() int { + if ev.GetEventType().String() != "ptrace" { + return 0 + } + if ev.PTrace.Tracee == nil { + return 0 + } + if ev.PTrace.Tracee.Parent == nil { + return 0 + } + if !ev.PTrace.Tracee.HasParent() { + return 0 + } + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.PTrace.Tracee.Parent.CGroup) +} + // GetPtraceTraceeParentCmdargv returns the value of the field, resolving if necessary func (ev *Event) GetPtraceTraceeParentCmdargv() []string { if ev.GetEventType().String() != "ptrace" { @@ -14846,6 +14968,30 @@ func (ev *Event) GetSignalTargetAncestorsCgroupManager() []string { return values } +// GetSignalTargetAncestorsCgroupVersion returns the value of the field, resolving if necessary +func (ev *Event) GetSignalTargetAncestorsCgroupVersion() []int { + if ev.GetEventType().String() != "signal" { + return []int{} + } + if ev.Signal.Target == nil { + return []int{} + } + if ev.Signal.Target.Ancestor == nil { + return []int{} + } + var values []int + ctx := eval.NewContext(ev) + iterator := &ProcessAncestorsIterator{} + ptr := iterator.Front(ctx) + for ptr != nil { + element := (*ProcessCacheEntry)(ptr) + result := ev.FieldHandlers.ResolveCGroupVersion(ev, &element.ProcessContext.Process.CGroup) + values = append(values, result) + ptr = iterator.Next() + } + return values +} + // GetSignalTargetAncestorsCmdargv returns the value of the field, resolving if necessary func (ev *Event) GetSignalTargetAncestorsCmdargv() []string { if ev.GetEventType().String() != "signal" { @@ -16683,6 +16829,17 @@ func (ev *Event) GetSignalTargetCgroupManager() string { return ev.FieldHandlers.ResolveCGroupManager(ev, &ev.Signal.Target.Process.CGroup) } +// GetSignalTargetCgroupVersion returns the value of the field, resolving if necessary +func (ev *Event) GetSignalTargetCgroupVersion() int { + if ev.GetEventType().String() != "signal" { + return 0 + } + if ev.Signal.Target == nil { + return 0 + } + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.Signal.Target.Process.CGroup) +} + // GetSignalTargetCmdargv returns the value of the field, resolving if necessary func (ev *Event) GetSignalTargetCmdargv() []string { if ev.GetEventType().String() != "signal" { @@ -17739,6 +17896,23 @@ func (ev *Event) GetSignalTargetParentCgroupManager() string { return ev.FieldHandlers.ResolveCGroupManager(ev, &ev.Signal.Target.Parent.CGroup) } +// GetSignalTargetParentCgroupVersion returns the value of the field, resolving if necessary +func (ev *Event) GetSignalTargetParentCgroupVersion() int { + if ev.GetEventType().String() != "signal" { + return 0 + } + if ev.Signal.Target == nil { + return 0 + } + if ev.Signal.Target.Parent == nil { + return 0 + } + if !ev.Signal.Target.HasParent() { + return 0 + } + return ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.Signal.Target.Parent.CGroup) +} + // GetSignalTargetParentCmdargv returns the value of the field, resolving if necessary func (ev *Event) GetSignalTargetParentCmdargv() []string { if ev.GetEventType().String() != "signal" { diff --git a/pkg/security/secl/model/field_handlers_unix.go b/pkg/security/secl/model/field_handlers_unix.go index 4910242decc1e..6dd4df4c575c5 100644 --- a/pkg/security/secl/model/field_handlers_unix.go +++ b/pkg/security/secl/model/field_handlers_unix.go @@ -25,6 +25,7 @@ func (ev *Event) resolveFields(forADs bool) { // resolve context fields that are not related to any event type _ = ev.FieldHandlers.ResolveCGroupID(ev, &ev.CGroupContext) _ = ev.FieldHandlers.ResolveCGroupManager(ev, &ev.CGroupContext) + _ = ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.CGroupContext) _ = ev.FieldHandlers.ResolveContainerCreatedAt(ev, ev.BaseEvent.ContainerContext) _ = ev.FieldHandlers.ResolveContainerID(ev, ev.BaseEvent.ContainerContext) _ = ev.FieldHandlers.ResolveContainerRuntime(ev, ev.BaseEvent.ContainerContext) @@ -48,6 +49,7 @@ func (ev *Event) resolveFields(forADs bool) { _ = ev.FieldHandlers.ResolveProcessArgv0(ev, &ev.BaseEvent.ProcessContext.Process) _ = ev.FieldHandlers.ResolveCGroupID(ev, &ev.BaseEvent.ProcessContext.Process.CGroup) _ = ev.FieldHandlers.ResolveCGroupManager(ev, &ev.BaseEvent.ProcessContext.Process.CGroup) + _ = ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.BaseEvent.ProcessContext.Process.CGroup) _ = ev.FieldHandlers.ResolveProcessContainerID(ev, &ev.BaseEvent.ProcessContext.Process) _ = ev.FieldHandlers.ResolveProcessCreatedAt(ev, &ev.BaseEvent.ProcessContext.Process) _ = ev.FieldHandlers.ResolveProcessEnvp(ev, &ev.BaseEvent.ProcessContext.Process) @@ -138,6 +140,9 @@ func (ev *Event) resolveFields(forADs bool) { if ev.BaseEvent.ProcessContext.HasParent() { _ = ev.FieldHandlers.ResolveCGroupManager(ev, &ev.BaseEvent.ProcessContext.Parent.CGroup) } + if ev.BaseEvent.ProcessContext.HasParent() { + _ = ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.BaseEvent.ProcessContext.Parent.CGroup) + } if ev.BaseEvent.ProcessContext.HasParent() { _ = ev.FieldHandlers.ResolveProcessContainerID(ev, ev.BaseEvent.ProcessContext.Parent) } @@ -335,6 +340,7 @@ func (ev *Event) resolveFields(forADs bool) { } _ = ev.FieldHandlers.ResolveCGroupID(ev, &ev.Exec.Process.CGroup) _ = ev.FieldHandlers.ResolveCGroupManager(ev, &ev.Exec.Process.CGroup) + _ = ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.Exec.Process.CGroup) _ = ev.FieldHandlers.ResolveProcessContainerID(ev, ev.Exec.Process) if ev.Exec.Process.HasInterpreter() { _ = ev.FieldHandlers.ResolveFileFieldsUser(ev, &ev.Exec.Process.LinuxBinprm.FileEvent.FileFields) @@ -420,6 +426,7 @@ func (ev *Event) resolveFields(forADs bool) { } _ = ev.FieldHandlers.ResolveCGroupID(ev, &ev.Exit.Process.CGroup) _ = ev.FieldHandlers.ResolveCGroupManager(ev, &ev.Exit.Process.CGroup) + _ = ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.Exit.Process.CGroup) _ = ev.FieldHandlers.ResolveProcessContainerID(ev, ev.Exit.Process) if ev.Exit.Process.HasInterpreter() { _ = ev.FieldHandlers.ResolveFileFieldsUser(ev, &ev.Exit.Process.LinuxBinprm.FileEvent.FileFields) @@ -625,6 +632,7 @@ func (ev *Event) resolveFields(forADs bool) { } _ = ev.FieldHandlers.ResolveCGroupID(ev, &ev.PTrace.Tracee.Process.CGroup) _ = ev.FieldHandlers.ResolveCGroupManager(ev, &ev.PTrace.Tracee.Process.CGroup) + _ = ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.PTrace.Tracee.Process.CGroup) _ = ev.FieldHandlers.ResolveProcessContainerID(ev, &ev.PTrace.Tracee.Process) if ev.PTrace.Tracee.Process.HasInterpreter() { _ = ev.FieldHandlers.ResolveFileFieldsUser(ev, &ev.PTrace.Tracee.Process.LinuxBinprm.FileEvent.FileFields) @@ -710,6 +718,9 @@ func (ev *Event) resolveFields(forADs bool) { if ev.PTrace.Tracee.HasParent() { _ = ev.FieldHandlers.ResolveCGroupManager(ev, &ev.PTrace.Tracee.Parent.CGroup) } + if ev.PTrace.Tracee.HasParent() { + _ = ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.PTrace.Tracee.Parent.CGroup) + } if ev.PTrace.Tracee.HasParent() { _ = ev.FieldHandlers.ResolveProcessContainerID(ev, ev.PTrace.Tracee.Parent) } @@ -902,6 +913,7 @@ func (ev *Event) resolveFields(forADs bool) { } _ = ev.FieldHandlers.ResolveCGroupID(ev, &ev.Signal.Target.Process.CGroup) _ = ev.FieldHandlers.ResolveCGroupManager(ev, &ev.Signal.Target.Process.CGroup) + _ = ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.Signal.Target.Process.CGroup) _ = ev.FieldHandlers.ResolveProcessContainerID(ev, &ev.Signal.Target.Process) if ev.Signal.Target.Process.HasInterpreter() { _ = ev.FieldHandlers.ResolveFileFieldsUser(ev, &ev.Signal.Target.Process.LinuxBinprm.FileEvent.FileFields) @@ -987,6 +999,9 @@ func (ev *Event) resolveFields(forADs bool) { if ev.Signal.Target.HasParent() { _ = ev.FieldHandlers.ResolveCGroupManager(ev, &ev.Signal.Target.Parent.CGroup) } + if ev.Signal.Target.HasParent() { + _ = ev.FieldHandlers.ResolveCGroupVersion(ev, &ev.Signal.Target.Parent.CGroup) + } if ev.Signal.Target.HasParent() { _ = ev.FieldHandlers.ResolveProcessContainerID(ev, ev.Signal.Target.Parent) } @@ -1119,6 +1134,7 @@ type FieldHandlers interface { ResolveAsync(ev *Event) bool ResolveCGroupID(ev *Event, e *CGroupContext) string ResolveCGroupManager(ev *Event, e *CGroupContext) string + ResolveCGroupVersion(ev *Event, e *CGroupContext) int ResolveChownGID(ev *Event, e *ChownEvent) string ResolveChownUID(ev *Event, e *ChownEvent) string ResolveContainerCreatedAt(ev *Event, e *ContainerContext) int @@ -1201,6 +1217,9 @@ func (dfh *FakeFieldHandlers) ResolveCGroupID(ev *Event, e *CGroupContext) strin func (dfh *FakeFieldHandlers) ResolveCGroupManager(ev *Event, e *CGroupContext) string { return string(e.CGroupManager) } +func (dfh *FakeFieldHandlers) ResolveCGroupVersion(ev *Event, e *CGroupContext) int { + return int(e.CGroupVersion) +} func (dfh *FakeFieldHandlers) ResolveChownGID(ev *Event, e *ChownEvent) string { return string(e.Group) } diff --git a/pkg/security/secl/model/model_unix.go b/pkg/security/secl/model/model_unix.go index e9f3676928619..c7ff2ac4240b3 100644 --- a/pkg/security/secl/model/model_unix.go +++ b/pkg/security/secl/model/model_unix.go @@ -99,6 +99,7 @@ type CGroupContext struct { CGroupFlags containerutils.CGroupFlags `field:"-"` CGroupManager string `field:"manager,handler:ResolveCGroupManager"` // SECLDoc[manager] Definition:`Lifecycle manager of the cgroup` CGroupFile PathKey `field:"file"` + CGroupVersion int `field:"version,handler:ResolveCGroupVersion"` // SECLDoc[version] Definition:`Version of the cgroup API` } // Merge two cgroup context diff --git a/pkg/security/tests/cgroup_test.go b/pkg/security/tests/cgroup_test.go index 737e382492b2e..5259c04583f49 100644 --- a/pkg/security/tests/cgroup_test.go +++ b/pkg/security/tests/cgroup_test.go @@ -91,6 +91,7 @@ func TestCGroup(t *testing.T) { assertFieldEqual(t, event, "container.runtime", "") assert.Equal(t, containerutils.CGroupFlags(0), event.CGroupContext.CGroupFlags) assertFieldIsOneOf(t, event, "cgroup.id", "/memory/cg1") + assertFieldIsOneOf(t, event, "cgroup.version", []int{1, 2}) test.validateOpenSchema(t, event) }) From e3f8897f5989b011a58efc8dd63bbf399cdec075 Mon Sep 17 00:00:00 2001 From: Scott Opell Date: Wed, 4 Dec 2024 12:47:02 -0500 Subject: [PATCH 258/439] Disable python check focused SMP experiments that give false positives (#31753) --- .../basic_py_check/datadog-agent/checks.d/my-check.py | 0 .../basic_py_check/datadog-agent/conf.d/my-check.d/conf.yaml | 0 .../basic_py_check/datadog-agent/datadog.yaml | 0 .../{cases => x-disabled-cases}/basic_py_check/experiment.yaml | 0 .../{cases => x-disabled-cases}/basic_py_check/lading/lading.yaml | 0 .../pycheck_lots_of_tags/datadog-agent/checks.d/my-check.py | 0 .../datadog-agent/conf.d/my-check.d/conf.yaml | 0 .../pycheck_lots_of_tags/datadog-agent/datadog.yaml | 0 .../pycheck_lots_of_tags/experiment.yaml | 0 .../pycheck_lots_of_tags/lading/lading.yaml | 0 10 files changed, 0 insertions(+), 0 deletions(-) rename test/regression/{cases => x-disabled-cases}/basic_py_check/datadog-agent/checks.d/my-check.py (100%) rename test/regression/{cases => x-disabled-cases}/basic_py_check/datadog-agent/conf.d/my-check.d/conf.yaml (100%) rename test/regression/{cases => x-disabled-cases}/basic_py_check/datadog-agent/datadog.yaml (100%) rename test/regression/{cases => x-disabled-cases}/basic_py_check/experiment.yaml (100%) rename test/regression/{cases => x-disabled-cases}/basic_py_check/lading/lading.yaml (100%) rename test/regression/{cases => x-disabled-cases}/pycheck_lots_of_tags/datadog-agent/checks.d/my-check.py (100%) rename test/regression/{cases => x-disabled-cases}/pycheck_lots_of_tags/datadog-agent/conf.d/my-check.d/conf.yaml (100%) rename test/regression/{cases => x-disabled-cases}/pycheck_lots_of_tags/datadog-agent/datadog.yaml (100%) rename test/regression/{cases => x-disabled-cases}/pycheck_lots_of_tags/experiment.yaml (100%) rename test/regression/{cases => x-disabled-cases}/pycheck_lots_of_tags/lading/lading.yaml (100%) diff --git a/test/regression/cases/basic_py_check/datadog-agent/checks.d/my-check.py b/test/regression/x-disabled-cases/basic_py_check/datadog-agent/checks.d/my-check.py similarity index 100% rename from test/regression/cases/basic_py_check/datadog-agent/checks.d/my-check.py rename to test/regression/x-disabled-cases/basic_py_check/datadog-agent/checks.d/my-check.py diff --git a/test/regression/cases/basic_py_check/datadog-agent/conf.d/my-check.d/conf.yaml b/test/regression/x-disabled-cases/basic_py_check/datadog-agent/conf.d/my-check.d/conf.yaml similarity index 100% rename from test/regression/cases/basic_py_check/datadog-agent/conf.d/my-check.d/conf.yaml rename to test/regression/x-disabled-cases/basic_py_check/datadog-agent/conf.d/my-check.d/conf.yaml diff --git a/test/regression/cases/basic_py_check/datadog-agent/datadog.yaml b/test/regression/x-disabled-cases/basic_py_check/datadog-agent/datadog.yaml similarity index 100% rename from test/regression/cases/basic_py_check/datadog-agent/datadog.yaml rename to test/regression/x-disabled-cases/basic_py_check/datadog-agent/datadog.yaml diff --git a/test/regression/cases/basic_py_check/experiment.yaml b/test/regression/x-disabled-cases/basic_py_check/experiment.yaml similarity index 100% rename from test/regression/cases/basic_py_check/experiment.yaml rename to test/regression/x-disabled-cases/basic_py_check/experiment.yaml diff --git a/test/regression/cases/basic_py_check/lading/lading.yaml b/test/regression/x-disabled-cases/basic_py_check/lading/lading.yaml similarity index 100% rename from test/regression/cases/basic_py_check/lading/lading.yaml rename to test/regression/x-disabled-cases/basic_py_check/lading/lading.yaml diff --git a/test/regression/cases/pycheck_lots_of_tags/datadog-agent/checks.d/my-check.py b/test/regression/x-disabled-cases/pycheck_lots_of_tags/datadog-agent/checks.d/my-check.py similarity index 100% rename from test/regression/cases/pycheck_lots_of_tags/datadog-agent/checks.d/my-check.py rename to test/regression/x-disabled-cases/pycheck_lots_of_tags/datadog-agent/checks.d/my-check.py diff --git a/test/regression/cases/pycheck_lots_of_tags/datadog-agent/conf.d/my-check.d/conf.yaml b/test/regression/x-disabled-cases/pycheck_lots_of_tags/datadog-agent/conf.d/my-check.d/conf.yaml similarity index 100% rename from test/regression/cases/pycheck_lots_of_tags/datadog-agent/conf.d/my-check.d/conf.yaml rename to test/regression/x-disabled-cases/pycheck_lots_of_tags/datadog-agent/conf.d/my-check.d/conf.yaml diff --git a/test/regression/cases/pycheck_lots_of_tags/datadog-agent/datadog.yaml b/test/regression/x-disabled-cases/pycheck_lots_of_tags/datadog-agent/datadog.yaml similarity index 100% rename from test/regression/cases/pycheck_lots_of_tags/datadog-agent/datadog.yaml rename to test/regression/x-disabled-cases/pycheck_lots_of_tags/datadog-agent/datadog.yaml diff --git a/test/regression/cases/pycheck_lots_of_tags/experiment.yaml b/test/regression/x-disabled-cases/pycheck_lots_of_tags/experiment.yaml similarity index 100% rename from test/regression/cases/pycheck_lots_of_tags/experiment.yaml rename to test/regression/x-disabled-cases/pycheck_lots_of_tags/experiment.yaml diff --git a/test/regression/cases/pycheck_lots_of_tags/lading/lading.yaml b/test/regression/x-disabled-cases/pycheck_lots_of_tags/lading/lading.yaml similarity index 100% rename from test/regression/cases/pycheck_lots_of_tags/lading/lading.yaml rename to test/regression/x-disabled-cases/pycheck_lots_of_tags/lading/lading.yaml From 8c229a71dc6871af98211138ab8c534b36fdb894 Mon Sep 17 00:00:00 2001 From: Alexandre Menasria <47357713+amenasria@users.noreply.github.com> Date: Wed, 4 Dec 2024 18:49:15 +0100 Subject: [PATCH 259/439] [CI] Add `docker login` to avoid rate limit for the `agent_integration_tests` job (#30856) --- .gitlab/integration_test/linux.yml | 13 ++++++++++--- tasks/docker_tasks.py | 31 +++++++++++++++++++++++++++--- 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/.gitlab/integration_test/linux.yml b/.gitlab/integration_test/linux.yml index f76a85025bed8..900992006e7d3 100644 --- a/.gitlab/integration_test/linux.yml +++ b/.gitlab/integration_test/linux.yml @@ -4,7 +4,6 @@ rules: - !reference [.except_mergequeue] - when: on_success - image: registry.ddbuild.io/ci/datadog-agent-buildimages/deb_x64$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES tags: ["docker-in-docker:amd64"] before_script: - !reference [.retrieve_linux_go_deps] @@ -12,17 +11,25 @@ agent_integration_tests: extends: .integration_tests_deb + image: registry.ddbuild.io/ci/datadog-agent-buildimages/docker_x64$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES # We have capacity issues on the docker-in-docker:amd64 runners for now. # Setting allow_failure to true to avoid blocking the pipelines. - # Setting the timeout to 30 min and retry to 2 to avoid the job from pending for too long. + # Setting the timeout to 50 min and retry to 2 to avoid the job from pending for too long. allow_failure: true - timeout: 30m + timeout: 50m retry: 2 script: + # Exporting the docker credentials to later pass them to the container + - DOCKER_USER=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $DOCKER_REGISTRY_RO user) || exit $?; export DOCKER_USER + - DOCKER_TOKEN=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $DOCKER_REGISTRY_RO token) || exit $?; export DOCKER_TOKEN + - export DOCKER_REGISTRY_URL + # DockerHub login not to be rate-limited during the docker compose + - echo "$DOCKER_TOKEN" | docker login --username "$DOCKER_USER" --password-stdin "$DOCKER_REGISTRY_URL" - inv -e integration-tests --race --remote-docker docker_integration_tests: extends: .integration_tests_deb + image: registry.ddbuild.io/ci/datadog-agent-buildimages/deb_x64$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES # This job is not stable yet because of rate limit issues and micro vms beta status. allow_failure: true script: diff --git a/tasks/docker_tasks.py b/tasks/docker_tasks.py index 8fc2e6f2780c9..207eb5bae6764 100644 --- a/tasks/docker_tasks.py +++ b/tasks/docker_tasks.py @@ -51,7 +51,7 @@ def dockerize_test(ctx, binary, skip_cleanup=False): ctx.run(f"cp {binary} {temp_folder}/test.bin") - with open(f"{temp_folder}/Dockerfile", 'w') as stream: + with open(f"{temp_folder}/Dockerfile", 'w', encoding="utf-8") as stream: stream.write( """FROM public.ecr.aws/docker/library/ubuntu:20.04 # Install Docker @@ -65,11 +65,14 @@ def dockerize_test(ctx, binary, skip_cleanup=False): RUN echo "${COMPOSE_SHA256} /usr/bin/compose" | sha256sum --check RUN chmod +x /usr/bin/compose +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh + # Final settings ENV DOCKER_DD_AGENT=yes WORKDIR / -CMD /test.bin COPY test.bin /test.bin +ENTRYPOINT ["/entrypoint.sh"] """ ) # Handle optional testdata folder @@ -77,16 +80,38 @@ def dockerize_test(ctx, binary, skip_cleanup=False): ctx.run(f"cp -R testdata {temp_folder}") stream.write("COPY testdata /testdata") + # Create the entrypoint script + with open(f"{temp_folder}/entrypoint.sh", 'w', encoding="utf-8") as f: + f.write( + """#!/bin/sh +# Authenticate to Docker Hub +echo "$DOCKER_TOKEN" | docker login --username "$DOCKER_USER" --password-stdin "$DOCKER_REGISTRY_URL" +# Run the tests +/test.bin +""" + ) + test_image, _ = client.images.build(path=temp_folder, rm=True) scratch_volume = client.volumes.create() + # Passing Docker user, token and registry to the container to avoid rate limits + container_env = [ + f"SCRATCH_VOLUME_NAME={scratch_volume.name}", + "SCRATCH_VOLUME_PATH=/tmp/scratch", + f"DOCKER_USER={os.environ.get('DOCKER_USER', '')}", + f"DOCKER_TOKEN={os.environ.get('DOCKER_TOKEN', '')}", + f"DOCKER_REGISTRY_URL={os.environ.get('DOCKER_REGISTRY_URL', '')}", + ] + test_container = client.containers.run( test_image.id, detach=True, + stdout=True, + stderr=True, pid_mode="host", # For origin detection cgroupns="host", # To allow proper network mode detection in integration tests - environment=["SCRATCH_VOLUME_NAME=" + scratch_volume.name, "SCRATCH_VOLUME_PATH=/tmp/scratch"], + environment=container_env, volumes={ '/var/run/docker.sock': {'bind': '/var/run/docker.sock', 'mode': 'ro'}, '/proc': {'bind': '/host/proc', 'mode': 'ro'}, From 1cb4d27f9615ca5aaf54686a745b84e14b34ca0e Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Wed, 4 Dec 2024 19:00:28 +0100 Subject: [PATCH 260/439] [CWS] always use HumanReadableDuration through a pointer so that unmarshalling works (#31760) --- pkg/security/probe/selftests/ebpfless.go | 2 +- pkg/security/secl/rules/model.go | 50 ++++++++++++------------ pkg/security/secl/rules/policy_test.go | 2 +- pkg/security/secl/rules/ruleset.go | 5 ++- pkg/security/tests/action_test.go | 8 ++-- pkg/security/tests/event_test.go | 4 +- 6 files changed, 37 insertions(+), 34 deletions(-) diff --git a/pkg/security/probe/selftests/ebpfless.go b/pkg/security/probe/selftests/ebpfless.go index 49b3ca2c36d29..885e723b830e1 100644 --- a/pkg/security/probe/selftests/ebpfless.go +++ b/pkg/security/probe/selftests/ebpfless.go @@ -30,7 +30,7 @@ func (o *EBPFLessSelfTest) GetRuleDefinition() *rules.RuleDefinition { return &rules.RuleDefinition{ ID: o.ruleID, Expression: `exec.file.path != "" && process.parent.pid == 0 && process.ppid == 0`, - Every: rules.HumanReadableDuration{ + Every: &rules.HumanReadableDuration{ Duration: time.Duration(math.MaxInt64), }, Silent: true, diff --git a/pkg/security/secl/rules/model.go b/pkg/security/secl/rules/model.go index e150e5251ca84..6cc1cf1d5179a 100644 --- a/pkg/security/secl/rules/model.go +++ b/pkg/security/secl/rules/model.go @@ -63,21 +63,21 @@ type RuleID = string // RuleDefinition holds the definition of a rule type RuleDefinition struct { - ID RuleID `yaml:"id,omitempty" json:"id"` - Version string `yaml:"version,omitempty" json:"version,omitempty"` - Expression string `yaml:"expression" json:"expression,omitempty"` - Description string `yaml:"description,omitempty" json:"description,omitempty"` - Tags map[string]string `yaml:"tags,omitempty" json:"tags,omitempty"` - AgentVersionConstraint string `yaml:"agent_version,omitempty" json:"agent_version,omitempty"` - Filters []string `yaml:"filters,omitempty" json:"filters,omitempty"` - Disabled bool `yaml:"disabled,omitempty" json:"disabled,omitempty"` - Combine CombinePolicy `yaml:"combine,omitempty" json:"combine,omitempty" jsonschema:"enum=override"` - OverrideOptions OverrideOptions `yaml:"override_options,omitempty" json:"override_options,omitempty"` - Actions []*ActionDefinition `yaml:"actions,omitempty" json:"actions,omitempty"` - Every HumanReadableDuration `yaml:"every,omitempty" json:"every,omitempty"` - RateLimiterToken []string `yaml:"limiter_token,omitempty" json:"limiter_token,omitempty"` - Silent bool `yaml:"silent,omitempty" json:"silent,omitempty"` - GroupID string `yaml:"group_id,omitempty" json:"group_id,omitempty"` + ID RuleID `yaml:"id,omitempty" json:"id"` + Version string `yaml:"version,omitempty" json:"version,omitempty"` + Expression string `yaml:"expression" json:"expression,omitempty"` + Description string `yaml:"description,omitempty" json:"description,omitempty"` + Tags map[string]string `yaml:"tags,omitempty" json:"tags,omitempty"` + AgentVersionConstraint string `yaml:"agent_version,omitempty" json:"agent_version,omitempty"` + Filters []string `yaml:"filters,omitempty" json:"filters,omitempty"` + Disabled bool `yaml:"disabled,omitempty" json:"disabled,omitempty"` + Combine CombinePolicy `yaml:"combine,omitempty" json:"combine,omitempty" jsonschema:"enum=override"` + OverrideOptions OverrideOptions `yaml:"override_options,omitempty" json:"override_options,omitempty"` + Actions []*ActionDefinition `yaml:"actions,omitempty" json:"actions,omitempty"` + Every *HumanReadableDuration `yaml:"every,omitempty" json:"every,omitempty"` + RateLimiterToken []string `yaml:"limiter_token,omitempty" json:"limiter_token,omitempty"` + Silent bool `yaml:"silent,omitempty" json:"silent,omitempty"` + GroupID string `yaml:"group_id,omitempty" json:"group_id,omitempty"` } // GetTag returns the tag value associated with a tag key @@ -133,19 +133,19 @@ type Scope string // SetDefinition describes the 'set' section of a rule action type SetDefinition struct { - Name string `yaml:"name" json:"name"` - Value interface{} `yaml:"value" json:"value,omitempty" jsonschema:"oneof_required=SetWithValue,oneof_type=string;integer;boolean;array"` - Field string `yaml:"field" json:"field,omitempty" jsonschema:"oneof_required=SetWithField"` - Append bool `yaml:"append" json:"append,omitempty"` - Scope Scope `yaml:"scope" json:"scope,omitempty" jsonschema:"enum=process,enum=container"` - Size int `yaml:"size" json:"size,omitempty"` - TTL HumanReadableDuration `yaml:"ttl" json:"ttl,omitempty"` + Name string `yaml:"name" json:"name"` + Value interface{} `yaml:"value" json:"value,omitempty" jsonschema:"oneof_required=SetWithValue,oneof_type=string;integer;boolean;array"` + Field string `yaml:"field" json:"field,omitempty" jsonschema:"oneof_required=SetWithField"` + Append bool `yaml:"append" json:"append,omitempty"` + Scope Scope `yaml:"scope" json:"scope,omitempty" jsonschema:"enum=process,enum=container"` + Size int `yaml:"size" json:"size,omitempty"` + TTL *HumanReadableDuration `yaml:"ttl" json:"ttl,omitempty"` } // KillDisarmerParamsDefinition describes the parameters of a kill action disarmer type KillDisarmerParamsDefinition struct { - MaxAllowed int `yaml:"max_allowed" json:"max_allowed,omitempty" jsonschema:"description=The maximum number of allowed kill actions within the period,example=5"` - Period HumanReadableDuration `yaml:"period" json:"period,omitempty" jsonschema:"description=The period of time during which the maximum number of allowed kill actions is calculated,example=1m"` + MaxAllowed int `yaml:"max_allowed" json:"max_allowed,omitempty" jsonschema:"description=The maximum number of allowed kill actions within the period,example=5"` + Period *HumanReadableDuration `yaml:"period" json:"period,omitempty" jsonschema:"description=The period of time during which the maximum number of allowed kill actions is calculated,example=1m"` } // KillDisarmerDefinition describes the 'disarmer' section of a kill action @@ -200,7 +200,7 @@ type HumanReadableDuration struct { } // MarshalYAML marshals a duration to a human readable format -func (d HumanReadableDuration) MarshalYAML() (interface{}, error) { +func (d *HumanReadableDuration) MarshalYAML() (interface{}, error) { return d.String(), nil } diff --git a/pkg/security/secl/rules/policy_test.go b/pkg/security/secl/rules/policy_test.go index e9c3cfefd203d..e6252c10593f1 100644 --- a/pkg/security/secl/rules/policy_test.go +++ b/pkg/security/secl/rules/policy_test.go @@ -340,7 +340,7 @@ func TestActionSetVariableTTL(t *testing.T) { Name: "var1", Append: true, Value: []string{"foo"}, - TTL: HumanReadableDuration{ + TTL: &HumanReadableDuration{ Duration: 1 * time.Second, }, }, diff --git a/pkg/security/secl/rules/ruleset.go b/pkg/security/secl/rules/ruleset.go index 297de1fd557d5..24b99ecf123c0 100644 --- a/pkg/security/secl/rules/ruleset.go +++ b/pkg/security/secl/rules/ruleset.go @@ -241,7 +241,10 @@ func (rs *RuleSet) PopulateFieldsWithRuleActionsData(policyRules []*PolicyRule, variableProvider = &rs.globalVariables } - opts := eval.VariableOpts{TTL: actionDef.Set.TTL.Duration, Size: actionDef.Set.Size} + opts := eval.VariableOpts{Size: actionDef.Set.Size} + if actionDef.Set.TTL != nil { + opts.TTL = actionDef.Set.TTL.Duration + } variable, err := variableProvider.GetVariable(actionDef.Set.Name, variableValue, opts) if err != nil { diff --git a/pkg/security/tests/action_test.go b/pkg/security/tests/action_test.go index e759d1a94d824..c1a47869f1ef7 100644 --- a/pkg/security/tests/action_test.go +++ b/pkg/security/tests/action_test.go @@ -619,13 +619,13 @@ func TestActionKillDisarmFromRule(t *testing.T) { Disarmer: &rules.KillDisarmerDefinition{ Executable: &rules.KillDisarmerParamsDefinition{ MaxAllowed: 1, - Period: rules.HumanReadableDuration{ + Period: &rules.HumanReadableDuration{ Duration: enforcementDisarmerExecutablePeriod, }, }, Container: &rules.KillDisarmerParamsDefinition{ MaxAllowed: 1, - Period: rules.HumanReadableDuration{ + Period: &rules.HumanReadableDuration{ Duration: enforcementDisarmerContainerPeriod, }, }, @@ -644,13 +644,13 @@ func TestActionKillDisarmFromRule(t *testing.T) { Disarmer: &rules.KillDisarmerDefinition{ Executable: &rules.KillDisarmerParamsDefinition{ MaxAllowed: 1, - Period: rules.HumanReadableDuration{ + Period: &rules.HumanReadableDuration{ Duration: enforcementDisarmerExecutablePeriod, }, }, Container: &rules.KillDisarmerParamsDefinition{ MaxAllowed: 1, - Period: rules.HumanReadableDuration{ + Period: &rules.HumanReadableDuration{ Duration: enforcementDisarmerContainerPeriod, }, }, diff --git a/pkg/security/tests/event_test.go b/pkg/security/tests/event_test.go index e28217fece6ce..7a52b7eef269c 100644 --- a/pkg/security/tests/event_test.go +++ b/pkg/security/tests/event_test.go @@ -106,7 +106,7 @@ func TestEventRaleLimiters(t *testing.T) { { ID: "test_unique_id", Expression: `open.file.path == "{{.Root}}/test-unique-id"`, - Every: rules.HumanReadableDuration{ + Every: &rules.HumanReadableDuration{ Duration: 5 * time.Second, }, RateLimiterToken: []string{"process.file.name"}, @@ -114,7 +114,7 @@ func TestEventRaleLimiters(t *testing.T) { { ID: "test_std", Expression: `open.file.path == "{{.Root}}/test-std"`, - Every: rules.HumanReadableDuration{ + Every: &rules.HumanReadableDuration{ Duration: 5 * time.Second, }, }, From 30859e8248b2219490bebf30e6c3d382cd79d40c Mon Sep 17 00:00:00 2001 From: Marethyu <45374460+Pythyu@users.noreply.github.com> Date: Wed, 4 Dec 2024 20:12:28 +0100 Subject: [PATCH 261/439] [E2E] Mark TestKindSuite as flaky (#31757) --- test/new-e2e/tests/containers/kindvm_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/new-e2e/tests/containers/kindvm_test.go b/test/new-e2e/tests/containers/kindvm_test.go index 01d10f2b5ea1a..f6212d98eaed8 100644 --- a/test/new-e2e/tests/containers/kindvm_test.go +++ b/test/new-e2e/tests/containers/kindvm_test.go @@ -6,6 +6,7 @@ package containers import ( + "github.com/DataDog/datadog-agent/pkg/util/testutil/flake" "testing" "github.com/DataDog/test-infra-definitions/scenarios/aws/ec2" @@ -20,6 +21,7 @@ type kindSuite struct { } func TestKindSuite(t *testing.T) { + flake.Mark(t) e2e.Run(t, &kindSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner( awskubernetes.WithEC2VMOptions( ec2.WithInstanceType("t3.xlarge"), From de9798bd215b7e0d87819af24229124ecfc8d664 Mon Sep 17 00:00:00 2001 From: Branden Clark Date: Wed, 4 Dec 2024 14:38:22 -0500 Subject: [PATCH 262/439] Add foundations for Windows FIPS flavor (#31466) --- .gitlab/package_build/windows.yml | 14 +++++ omnibus/config/software/datadog-agent.rb | 22 +++++-- tasks/build_tags.py | 1 + tasks/msi.py | 19 ++++++- tasks/omnibus.py | 14 +++++ tasks/system_probe.py | 2 + tasks/winbuildscripts/dobuild.bat | 25 ++++---- .../WixSetup/Datadog Agent/AgentFlavor.cs | 57 +++++++++++++++++++ .../WixSetup/Datadog Agent/AgentInstaller.cs | 18 +++--- 9 files changed, 143 insertions(+), 29 deletions(-) create mode 100644 tools/windows/DatadogAgentInstaller/WixSetup/Datadog Agent/AgentFlavor.cs diff --git a/.gitlab/package_build/windows.yml b/.gitlab/package_build/windows.yml index b66a34db50de1..16734f170f1da 100644 --- a/.gitlab/package_build/windows.yml +++ b/.gitlab/package_build/windows.yml @@ -37,6 +37,7 @@ -e PIP_INDEX_URL=${PIP_INDEX_URL} -e API_KEY_ORG2=${API_KEY_ORG2} -e OMNIBUS_GIT_CACHE_DIR=${Env:TEMP}/${CI_PIPELINE_ID}/omnibus-git-cache + -e AGENT_FLAVOR=${AGENT_FLAVOR} registry.ddbuild.io/ci/datadog-agent-buildimages/windows_1809_${ARCH}${Env:DATADOG_AGENT_WINBUILDIMAGES_SUFFIX}:${Env:DATADOG_AGENT_WINBUILDIMAGES} c:\mnt\tasks\winbuildscripts\buildwin.bat - If ($lastExitCode -ne "0") { throw "Previous command returned $lastExitCode" } @@ -65,6 +66,19 @@ windows_msi_and_bosh_zip_x64-a7: - set RELEASE_VERSION $RELEASE_VERSION_7 timeout: 2h +windows_msi_and_bosh_zip_x64-a7-fips: + extends: .windows_main_agent_base + rules: + - !reference [.except_mergequeue] + - when: on_success + variables: + ARCH: "x64" + AGENT_FLAVOR: fips + before_script: + - set RELEASE_VERSION $RELEASE_VERSION_7 + timeout: 2h + + # cloudfoundry IoT build for Windows windows_zip_agent_binaries_x64-a7: stage: package_build diff --git a/omnibus/config/software/datadog-agent.rb b/omnibus/config/software/datadog-agent.rb index cabf4557c735c..eaa141eab49e3 100644 --- a/omnibus/config/software/datadog-agent.rb +++ b/omnibus/config/software/datadog-agent.rb @@ -33,7 +33,6 @@ # set GOPATH on the omnibus source dir for this software gopath = Pathname.new(project_dir) + '../../../..' - msgoroot = "/usr/local/msgo" flavor_arg = ENV['AGENT_FLAVOR'] fips_args = fips_mode? ? "--fips-mode" : "" if windows_target? @@ -62,9 +61,22 @@ env = with_standard_compiler_flags(with_embedded_path(env)) # Use msgo toolchain when fips mode is enabled - if fips_mode? && !windows_target? - env["GOROOT"] = msgoroot - env["PATH"] = "#{msgoroot}/bin:#{env['PATH']}" + if fips_mode? + if windows_target? + msgoroot = ENV['MSGO_ROOT'] + if msgoroot.nil? || msgoroot.empty? + raise "MSGO_ROOT not set" + end + if !File.exist?("#{msgoroot}\\bin\\go.exe") + raise "msgo go.exe not found at #{msgoroot}\\bin\\go.exe" + end + env["GOROOT"] = msgoroot + env["PATH"] = "#{msgoroot}\\bin;#{env['PATH']}" + else + msgoroot = "/usr/local/msgo" + env["GOROOT"] = msgoroot + env["PATH"] = "#{msgoroot}/bin:#{env['PATH']}" + end end # we assume the go deps are already installed before running omnibus @@ -141,7 +153,7 @@ # System-probe if sysprobe_enabled? || (windows_target? && do_windows_sysprobe != "") if windows_target? - command "invoke -e system-probe.build", env: env + command "invoke -e system-probe.build #{fips_args}", env: env elsif linux_target? command "invoke -e system-probe.build-sysprobe-binary #{fips_args} --install-path=#{install_dir}", env: env end diff --git a/tasks/build_tags.py b/tasks/build_tags.py index 81b0564285c3e..c2cabdbb6d45e 100644 --- a/tasks/build_tags.py +++ b/tasks/build_tags.py @@ -53,6 +53,7 @@ "zlib", "zstd", "test", # used for unit-tests + "goexperiment.systemcrypto", # used for FIPS mode } ### Tag inclusion lists diff --git a/tasks/msi.py b/tasks/msi.py index 075e76f29ac21..e41885f83358b 100644 --- a/tasks/msi.py +++ b/tasks/msi.py @@ -77,11 +77,17 @@ def _get_env(ctx, major_version='7', release_version='nightly'): env['PACKAGE_VERSION'] = get_version( ctx, include_git=True, url_safe=True, major_version=major_version, include_pipeline_id=True ) - env['AGENT_INSTALLER_OUTPUT_DIR'] = f'{BUILD_OUTPUT_DIR}' - env['NUGET_PACKAGES_DIR'] = f'{NUGET_PACKAGES_DIR}' + env['AGENT_FLAVOR'] = os.getenv("AGENT_FLAVOR", "") + env['AGENT_INSTALLER_OUTPUT_DIR'] = BUILD_OUTPUT_DIR + env['NUGET_PACKAGES_DIR'] = NUGET_PACKAGES_DIR + return env +def _is_fips_mode(env): + return env['AGENT_FLAVOR'] == "fips" + + def _msbuild_configuration(debug=False): return "Debug" if debug else "Release" @@ -264,6 +270,13 @@ def _build_msi(ctx, env, outdir, name, allowlist): sign_file(ctx, out_file) +def _msi_output_name(env): + if _is_fips_mode(env): + return f"datadog-fips-agent-{env['PACKAGE_VERSION']}-1-x86_64" + else: + return f"datadog-agent-{env['PACKAGE_VERSION']}-1-x86_64" + + @task def build(ctx, vstudio_root=None, arch="x64", major_version='7', release_version='nightly', debug=False): """ @@ -301,7 +314,7 @@ def build(ctx, vstudio_root=None, arch="x64", major_version='7', release_version # Run WiX to turn the WXS into an MSI with timed("Building MSI"): - msi_name = f"datadog-agent-{env['PACKAGE_VERSION']}-1-x86_64" + msi_name = _msi_output_name(env) _build_msi(ctx, env, build_outdir, msi_name, DATADOG_AGENT_MSI_ALLOW_LIST) # And copy it to the final output path as a build artifact diff --git a/tasks/omnibus.py b/tasks/omnibus.py index 40bbfb621beff..b93fea751c17d 100644 --- a/tasks/omnibus.py +++ b/tasks/omnibus.py @@ -7,6 +7,7 @@ from tasks.flavor import AgentFlavor from tasks.go import deps +from tasks.libs.common.check_tools_version import expected_go_repo_v from tasks.libs.common.omnibus import ( install_dir_for_project, omnibus_compute_cache_key, @@ -136,6 +137,19 @@ def get_omnibus_env( if fips_mode: env['FIPS_MODE'] = 'true' + if sys.platform == 'win32' and not os.environ.get('MSGO_ROOT'): + # Point omnibus at the msgo root + # TODO: idk how to do this in omnibus datadog-agent.rb + # because `File.read` is executed when the script is loaded, + # not when the `command`s are run and the source tree is not + # available at that time. + # Comments from the Linux FIPS PR discussed wanting to centralize + # the msgo root logic, so this can be updated then. + go_version = expected_go_repo_v() + env['MSGO_ROOT'] = f'C:\\msgo\\{go_version}\\go' + gobinpath = f"{env['MSGO_ROOT']}\\bin\\go.exe" + if not os.path.exists(gobinpath): + raise Exit(f"msgo go.exe not found at {gobinpath}") # We need to override the workers variable in omnibus build when running on Kubernetes runners, # otherwise, ohai detect the number of CPU on the host and run the make jobs with all the CPU. diff --git a/tasks/system_probe.py b/tasks/system_probe.py index ed2a4292d905a..c14c0541f8eaf 100644 --- a/tasks/system_probe.py +++ b/tasks/system_probe.py @@ -688,6 +688,7 @@ def build( with_unit_test=False, ebpf_compiler='clang', static=False, + fips_mode=False, ): """ Build the system-probe @@ -714,6 +715,7 @@ def build( strip_binary=strip_binary, arch=arch, static=static, + fips_mode=fips_mode, ) diff --git a/tasks/winbuildscripts/dobuild.bat b/tasks/winbuildscripts/dobuild.bat index a12ce660434ff..0ed92222f1f71 100644 --- a/tasks/winbuildscripts/dobuild.bat +++ b/tasks/winbuildscripts/dobuild.bat @@ -13,11 +13,16 @@ if "%OMNIBUS_TARGET%" == "" set OMNIBUS_TARGET=main if "%OMNIBUS_TARGET%" == "iot" set OMNIBUS_ARGS=--flavor iot if "%OMNIBUS_TARGET%" == "dogstatsd" set OMNIBUS_ARGS=--target-project dogstatsd if "%OMNIBUS_TARGET%" == "agent_binaries" set OMNIBUS_ARGS=%OMNIBUS_ARGS% --target-project agent-binaries +if "%AGENT_FLAVOR%" == "fips" set OMNIBUS_ARGS=--flavor fips if DEFINED GOMODCACHE set OMNIBUS_ARGS=%OMNIBUS_ARGS% --go-mod-cache %GOMODCACHE% if DEFINED USE_S3_CACHING set OMNIBUS_ARGS=%OMNIBUS_ARGS% %USE_S3_CACHING% -SET PATH=%PATH%;%GOPATH%/bin +set REPO_ROOT=%~p0\..\.. +pushd . +cd %REPO_ROOT% || exit /b 100 + +SET PATH=%PATH%;%GOPATH%\bin @echo GOPATH %GOPATH% @echo PATH %PATH% @@ -32,25 +37,21 @@ if "%TARGET_ARCH%" == "x64" ( call ridk enable ) -set REPO_ROOT=%~p0\..\.. -pushd . -cd %REPO_ROOT% || exit /b 101 - -pip3 install -r requirements.txt || exit /b 102 +pip3 install -r requirements.txt || exit /b 120 -inv -e deps || exit /b 103 +inv -e deps || exit /b 130 if "%GO_VERSION_CHECK%" == "true" ( - inv -e check-go-version || exit /b 104 + inv -e check-go-version || exit /b 140 ) -@echo "inv -e %OMNIBUS_BUILD% %OMNIBUS_ARGS% --skip-deps --major-version %MAJOR_VERSION% --release-version %RELEASE_VERSION%" -inv -e %OMNIBUS_BUILD% %OMNIBUS_ARGS% --skip-deps --major-version %MAJOR_VERSION% --release-version %RELEASE_VERSION% || exit /b 105 +@echo "inv -e %OMNIBUS_BUILD% %OMNIBUS_ARGS% --skip-deps --release-version %RELEASE_VERSION%" +inv -e %OMNIBUS_BUILD% %OMNIBUS_ARGS% --skip-deps --release-version %RELEASE_VERSION% || exit /b 150 REM only build MSI for main targets for now. if "%OMNIBUS_TARGET%" == "main" ( - @echo "inv -e msi.build --major-version %MAJOR_VERSION% --release-version %RELEASE_VERSION% - inv -e msi.build --major-version %MAJOR_VERSION% --release-version %RELEASE_VERSION% || exit /b 106 + @echo "inv -e msi.build --release-version %RELEASE_VERSION% + inv -e msi.build --release-version %RELEASE_VERSION% || exit /b 160 ) REM Build the OCI package for the Agent 7 only. diff --git a/tools/windows/DatadogAgentInstaller/WixSetup/Datadog Agent/AgentFlavor.cs b/tools/windows/DatadogAgentInstaller/WixSetup/Datadog Agent/AgentFlavor.cs new file mode 100644 index 0000000000000..5c3ae4cc23fc5 --- /dev/null +++ b/tools/windows/DatadogAgentInstaller/WixSetup/Datadog Agent/AgentFlavor.cs @@ -0,0 +1,57 @@ +using System; + +namespace WixSetup.Datadog_Agent +{ + internal static class AgentFlavorFactory + { + public static IAgentFlavor New(AgentVersion agentVersion) + { + var flavor = Environment.GetEnvironmentVariable("AGENT_FLAVOR"); + + return flavor switch + { + "fips" => new FIPSAgent(agentVersion), + "base" => new BaseAgent(agentVersion), + _ => new BaseAgent(agentVersion) // Default to BaseAgent if no valid value is provided + }; + } + } + + internal interface IAgentFlavor + { + string ProductFullName { get; } + Guid UpgradeCode { get; } + string ProductDescription { get; } + string PackageOutFileName { get; } + } + + internal class FIPSAgent : IAgentFlavor + { + private readonly AgentVersion _agentVersion; + + public FIPSAgent(AgentVersion agentVersion) + { + _agentVersion = agentVersion; + } + + public string ProductFullName => "Datadog FIPS Agent"; + public Guid UpgradeCode => new("de421174-9615-4fe9-b8a8-2b3f123bdc4f"); + public string ProductDescription => $"Datadog FIPS Agent {_agentVersion.PackageVersion}"; + public string PackageOutFileName => $"datadog-fips-agent-{_agentVersion.PackageVersion}-1-x86_64"; + } + + internal class BaseAgent : IAgentFlavor + { + private readonly AgentVersion _agentVersion; + + public BaseAgent(AgentVersion agentVersion) + { + _agentVersion = agentVersion; + } + + public string ProductFullName => "Datadog Agent"; + public Guid UpgradeCode => new("0c50421b-aefb-4f15-a809-7af256d608a5"); + public string ProductDescription => $"Datadog Agent {_agentVersion.PackageVersion}"; + public string PackageOutFileName => $"datadog-agent-{_agentVersion.PackageVersion}-1-x86_64"; + } +} diff --git a/tools/windows/DatadogAgentInstaller/WixSetup/Datadog Agent/AgentInstaller.cs b/tools/windows/DatadogAgentInstaller/WixSetup/Datadog Agent/AgentInstaller.cs index 63d6d5b8ce7b8..f7aaaf44ca494 100644 --- a/tools/windows/DatadogAgentInstaller/WixSetup/Datadog Agent/AgentInstaller.cs +++ b/tools/windows/DatadogAgentInstaller/WixSetup/Datadog Agent/AgentInstaller.cs @@ -16,15 +16,12 @@ public class AgentInstaller : IWixProjectEvents, IMsiInstallerProject private const string CompanyFullName = "Datadog, Inc."; // Product - private const string ProductFullName = "Datadog Agent"; - private const string ProductDescription = "Datadog Agent {0}"; private const string ProductHelpUrl = @"https://help.datadoghq.com/hc/en-us"; private const string ProductAboutUrl = @"https://www.datadoghq.com/about/"; private const string ProductComment = @"Copyright 2015 - Present Datadog"; private const string ProductContact = @"https://www.datadoghq.com/about/contact/"; // same value for all versions; must not be changed - private static readonly Guid ProductUpgradeCode = new("0c50421b-aefb-4f15-a809-7af256d608a5"); private static readonly string ProductLicenceRtfFilePath = Path.Combine("assets", "LICENSE.rtf"); private static readonly string ProductIconFilePath = Path.Combine("assets", "project.ico"); private static readonly string InstallerBackgroundImagePath = Path.Combine("assets", "dialog_background.bmp"); @@ -40,6 +37,7 @@ public class AgentInstaller : IWixProjectEvents, IMsiInstallerProject private readonly AgentVersion _agentVersion; private readonly AgentCustomActions _agentCustomActions = new(); private readonly AgentInstallerUI _agentInstallerUi; + private readonly IAgentFlavor _agentFlavor; public AgentInstaller() : this(null) @@ -60,11 +58,13 @@ public AgentInstaller(string version) _agentBinaries = new AgentBinaries(BinSource, InstallerSource); _agentInstallerUi = new AgentInstallerUI(this, _agentCustomActions); + _agentFlavor = AgentFlavorFactory.New(_agentVersion); } public Project Configure() { - var project = new ManagedProject("Datadog Agent", + + var project = new ManagedProject(_agentFlavor.ProductFullName, // Use 2 LaunchConditions, one for server versions, // one for client versions. MinimumSupportedWindowsVersion.WindowsServer2016 | @@ -145,9 +145,9 @@ public Project Configure() project .SetCustomActions(_agentCustomActions) .SetProjectInfo( - upgradeCode: ProductUpgradeCode, - name: ProductFullName, - description: string.Format(ProductDescription, _agentVersion.Version), + upgradeCode: _agentFlavor.UpgradeCode, + name: _agentFlavor.ProductFullName, + description: _agentFlavor.ProductDescription, // This version is overridden below because SetProjectInfo throws an Exception if Revision is != 0 version: new Version( _agentVersion.Version.Major, @@ -156,7 +156,7 @@ public Project Configure() 0) ) .SetControlPanelInfo( - name: ProductFullName, + name: _agentFlavor.ProductFullName, manufacturer: CompanyFullName, readme: ProductHelpUrl, comment: ProductComment, @@ -220,7 +220,7 @@ public Project Configure() // Set custom output directory (WixSharp defaults to current directory) project.OutDir = Environment.GetEnvironmentVariable("AGENT_MSI_OUTDIR"); } - project.OutFileName = $"datadog-agent-{_agentVersion.PackageVersion}-1-x86_64"; + project.OutFileName = _agentFlavor.PackageOutFileName; project.Package.AttributesDefinition = $"Comments={ProductComment}"; // clear default media as we will add it via MediaTemplate From a29a76699fa4b196bfe551cc61eb3e4cf8d3dd6f Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Wed, 4 Dec 2024 21:09:39 +0100 Subject: [PATCH 263/439] [CWS] improve handling of nil `HumanReadableDuration` (#31765) --- pkg/security/events/rate_limiter.go | 4 ++-- pkg/security/probe/process_killer.go | 4 ++-- pkg/security/secl/rules/model.go | 8 ++++++++ pkg/security/secl/rules/ruleset.go | 5 +---- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/pkg/security/events/rate_limiter.go b/pkg/security/events/rate_limiter.go index 5b3638e82a299..8da838f0d4158 100644 --- a/pkg/security/events/rate_limiter.go +++ b/pkg/security/events/rate_limiter.go @@ -103,8 +103,8 @@ func (rl *RateLimiter) Apply(ruleSet *rules.RuleSet, customRuleIDs []eval.RuleID for id, rule := range ruleSet.GetRules() { every, burst := defaultEvery, defaultBurst - if rule.Def.Every.Duration != 0 { - every, burst = rule.Def.Every.Duration, 1 + if duration := rule.Def.Every.GetDuration(); duration != 0 { + every, burst = duration, 1 } if len(rule.Def.RateLimiterToken) > 0 { diff --git a/pkg/security/probe/process_killer.go b/pkg/security/probe/process_killer.go index 33f49141fe501..5b1aad4c62829 100644 --- a/pkg/security/probe/process_killer.go +++ b/pkg/security/probe/process_killer.go @@ -425,7 +425,7 @@ func (p *ProcessKiller) getDisarmerParams(kill *rules.KillDefinition) (*disarmer if kill.Disarmer != nil && kill.Disarmer.Container != nil && kill.Disarmer.Container.MaxAllowed > 0 { containerParams.enabled = true containerParams.capacity = uint64(kill.Disarmer.Container.MaxAllowed) - containerParams.period = kill.Disarmer.Container.Period.Duration + containerParams.period = kill.Disarmer.Container.Period.GetDuration() } else if p.cfg.RuntimeSecurity.EnforcementDisarmerContainerEnabled { containerParams.enabled = true containerParams.capacity = uint64(p.cfg.RuntimeSecurity.EnforcementDisarmerContainerMaxAllowed) @@ -435,7 +435,7 @@ func (p *ProcessKiller) getDisarmerParams(kill *rules.KillDefinition) (*disarmer if kill.Disarmer != nil && kill.Disarmer.Executable != nil && kill.Disarmer.Executable.MaxAllowed > 0 { executableParams.enabled = true executableParams.capacity = uint64(kill.Disarmer.Executable.MaxAllowed) - executableParams.period = kill.Disarmer.Executable.Period.Duration + executableParams.period = kill.Disarmer.Executable.Period.GetDuration() } else if p.cfg.RuntimeSecurity.EnforcementDisarmerExecutableEnabled { executableParams.enabled = true executableParams.capacity = uint64(p.cfg.RuntimeSecurity.EnforcementDisarmerExecutableMaxAllowed) diff --git a/pkg/security/secl/rules/model.go b/pkg/security/secl/rules/model.go index 6cc1cf1d5179a..6d3ca83c995c2 100644 --- a/pkg/security/secl/rules/model.go +++ b/pkg/security/secl/rules/model.go @@ -199,6 +199,14 @@ type HumanReadableDuration struct { time.Duration } +// GetDuration returns the duration embedded in the HumanReadableDuration, or 0 if nil +func (d *HumanReadableDuration) GetDuration() time.Duration { + if d == nil { + return 0 + } + return d.Duration +} + // MarshalYAML marshals a duration to a human readable format func (d *HumanReadableDuration) MarshalYAML() (interface{}, error) { return d.String(), nil diff --git a/pkg/security/secl/rules/ruleset.go b/pkg/security/secl/rules/ruleset.go index 24b99ecf123c0..ad0a2124eca20 100644 --- a/pkg/security/secl/rules/ruleset.go +++ b/pkg/security/secl/rules/ruleset.go @@ -241,10 +241,7 @@ func (rs *RuleSet) PopulateFieldsWithRuleActionsData(policyRules []*PolicyRule, variableProvider = &rs.globalVariables } - opts := eval.VariableOpts{Size: actionDef.Set.Size} - if actionDef.Set.TTL != nil { - opts.TTL = actionDef.Set.TTL.Duration - } + opts := eval.VariableOpts{TTL: actionDef.Set.TTL.GetDuration(), Size: actionDef.Set.Size} variable, err := variableProvider.GetVariable(actionDef.Set.Name, variableValue, opts) if err != nil { From 4538b2f8673654b5caaeb4830798de47db34a560 Mon Sep 17 00:00:00 2001 From: Raphael Gavache Date: Wed, 4 Dec 2024 22:07:17 +0100 Subject: [PATCH 264/439] [fleet] Add DJM installation scenario (#31752) --- .../subcommands/installer/command.go | 12 +- pkg/fleet/installer/packages/datadog_agent.go | 4 +- .../installer/packages/datadog_installer.go | 6 +- pkg/fleet/installer/setup/common/config.go | 241 ++++++++++++++++++ pkg/fleet/installer/setup/djm/databricks.go | 190 ++++++++++++++ .../installer/setup/djm/databricks_windows.go | 21 ++ pkg/fleet/installer/{ => setup}/setup.go | 14 +- 7 files changed, 476 insertions(+), 12 deletions(-) create mode 100644 pkg/fleet/installer/setup/common/config.go create mode 100644 pkg/fleet/installer/setup/djm/databricks.go create mode 100644 pkg/fleet/installer/setup/djm/databricks_windows.go rename pkg/fleet/installer/{ => setup}/setup.go (74%) diff --git a/cmd/installer/subcommands/installer/command.go b/cmd/installer/subcommands/installer/command.go index 3a14a65d85cd8..7b898b0579cdb 100644 --- a/cmd/installer/subcommands/installer/command.go +++ b/cmd/installer/subcommands/installer/command.go @@ -9,20 +9,22 @@ package installer import ( "context" "fmt" + "net/url" + "os" + "runtime" + "strings" + "github.com/DataDog/datadog-agent/cmd/installer/command" "github.com/DataDog/datadog-agent/pkg/fleet/bootstrapper" "github.com/DataDog/datadog-agent/pkg/fleet/installer" "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/setup" "github.com/DataDog/datadog-agent/pkg/fleet/telemetry" "github.com/DataDog/datadog-agent/pkg/version" "github.com/spf13/cobra" "gopkg.in/DataDog/dd-trace-go.v1/ddtrace" "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" "gopkg.in/yaml.v2" - "net/url" - "os" - "runtime" - "strings" ) const ( @@ -292,7 +294,7 @@ func setupCommand() *cobra.Command { RunE: func(_ *cobra.Command, _ []string) (err error) { cmd := newCmd("setup") defer func() { cmd.Stop(err) }() - return installer.Setup(cmd.ctx, cmd.env) + return setup.Setup(cmd.ctx, cmd.env) }, } return cmd diff --git a/pkg/fleet/installer/packages/datadog_agent.go b/pkg/fleet/installer/packages/datadog_agent.go index df7c9cbb37063..ad8b7c4fade4c 100644 --- a/pkg/fleet/installer/packages/datadog_agent.go +++ b/pkg/fleet/installer/packages/datadog_agent.go @@ -92,7 +92,7 @@ func SetupAgent(ctx context.Context, _ []string) (err error) { if err = os.MkdirAll("/etc/datadog-agent", 0755); err != nil { return fmt.Errorf("failed to create /etc/datadog-agent: %v", err) } - ddAgentUID, ddAgentGID, err := getAgentIDs() + ddAgentUID, ddAgentGID, err := GetAgentIDs() if err != nil { return fmt.Errorf("error getting dd-agent user and group IDs: %w", err) } @@ -218,7 +218,7 @@ func chownRecursive(path string, uid int, gid int, ignorePaths []string) error { // StartAgentExperiment starts the agent experiment func StartAgentExperiment(ctx context.Context) error { - ddAgentUID, ddAgentGID, err := getAgentIDs() + ddAgentUID, ddAgentGID, err := GetAgentIDs() if err != nil { return fmt.Errorf("error getting dd-agent user and group IDs: %w", err) } diff --git a/pkg/fleet/installer/packages/datadog_installer.go b/pkg/fleet/installer/packages/datadog_installer.go index 14d0f042cd0e6..ceaf08bf330d6 100644 --- a/pkg/fleet/installer/packages/datadog_installer.go +++ b/pkg/fleet/installer/packages/datadog_installer.go @@ -60,7 +60,7 @@ func SetupInstaller(ctx context.Context) (err error) { if err != nil { return fmt.Errorf("error adding dd-agent user to dd-agent group: %w", err) } - ddAgentUID, ddAgentGID, err := getAgentIDs() + ddAgentUID, ddAgentGID, err := GetAgentIDs() if err != nil { return fmt.Errorf("error getting dd-agent user and group IDs: %w", err) } @@ -165,8 +165,8 @@ func SetupInstaller(ctx context.Context) (err error) { return startInstallerStable(ctx) } -// getAgentIDs returns the UID and GID of the dd-agent user and group. -func getAgentIDs() (uid, gid int, err error) { +// GetAgentIDs returns the UID and GID of the dd-agent user and group. +func GetAgentIDs() (uid, gid int, err error) { ddAgentUser, err := user.Lookup("dd-agent") if err != nil { return -1, -1, fmt.Errorf("dd-agent user not found: %w", err) diff --git a/pkg/fleet/installer/setup/common/config.go b/pkg/fleet/installer/setup/common/config.go new file mode 100644 index 0000000000000..d025311d5e15e --- /dev/null +++ b/pkg/fleet/installer/setup/common/config.go @@ -0,0 +1,241 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build !windows + +// Package common contains the HostInstaller struct which is used to write the agent agentConfiguration to disk +package common + +import ( + "context" + "fmt" + "os" + "path/filepath" + + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/packages" + "github.com/DataDog/datadog-agent/pkg/fleet/internal/exec" + "github.com/DataDog/datadog-agent/pkg/fleet/internal/oci" + "github.com/DataDog/datadog-agent/pkg/fleet/internal/paths" + "gopkg.in/yaml.v2" +) + +var ( + configDir = "/etc/datadog-agent" + datadogConfFile = filepath.Join(configDir, "datadog.yaml") + logsConfFile = filepath.Join(configDir, "conf.d/configured_at_install_logs.yaml") + sparkConfigFile = filepath.Join(configDir, "conf.d/spark.d/spark.yaml") + injectTracerConfigFile = filepath.Join(configDir, "/etc/datadog-agent/inject/tracer.yaml") +) + +// HostInstaller is a struct that represents the agent agentConfiguration +// used to write the agentConfiguration to disk in datadog-installer custom setup scenarios +type HostInstaller struct { + env *env.Env + + agentConfig map[string]interface{} + logsConfig logsConfig + sparkConfig sparkConfig + injectorConfig injectorConfig + hostTags []tag + ddUID int + ddGID int + + injectorVersion string + javaVersion string + agentVersion string +} + +type tag struct { + key string `yaml:"key"` + value string `yaml:"value"` +} + +type logsConfig struct { + Logs []LogConfig `yaml:"logs"` +} + +// LogConfig is a struct that represents a single log agentConfiguration +type LogConfig struct { + Type string `yaml:"type"` + Path string `yaml:"path"` + Service string `yaml:"service"` + Source string `yaml:"source"` +} + +type sparkConfig struct { + InitConfig interface{} `yaml:"init_config"` + Instances []SparkInstance `yaml:"instances"` +} + +// SparkInstance is a struct that represents a single spark instance +type SparkInstance struct { + SparkURL string `yaml:"spark_url"` + SparkClusterMode string `yaml:"spark_cluster_mode"` + ClusterName string `yaml:"cluster_name"` + StreamingMetrics bool `yaml:"streaming_metrics"` +} + +type injectorConfig struct { + Version int `yaml:"version"` + ConfigSources string `yaml:"config_sources"` + EnvsToInject []EnvVar `yaml:"additional_environment_variables"` +} + +// EnvVar is a struct that represents an environment variable +type EnvVar struct { + Key string `yaml:"key"` + Value string `yaml:"value"` +} + +// NewHostInstaller creates a new HostInstaller struct and loads the existing agentConfiguration from disk +func NewHostInstaller(env *env.Env) (*HostInstaller, error) { + ddUID, ddGID, err := packages.GetAgentIDs() + if err != nil { + return nil, fmt.Errorf("failed to get agent user and group IDs: %v", err) + } + return newHostInstaller(env, ddUID, ddGID) +} + +func newHostInstaller(env *env.Env, ddUID, ddGID int) (*HostInstaller, error) { + i := &HostInstaller{} + if env.APIKey == "" { + return nil, fmt.Errorf("DD_API key is required") + } + i.AddAgentConfig("api_key", env.APIKey) + + if env.Site != "" { + i.AddAgentConfig("site", env.Site) + } + i.ddUID = ddUID + i.ddGID = ddGID + i.env = env + return i, nil +} + +// SetAgentVersion sets the agent version to install +func (i *HostInstaller) SetAgentVersion(version string) { + i.agentVersion = version +} + +// SetInjectorVersion sets the injector version to install +func (i *HostInstaller) SetInjectorVersion(version string) { + i.injectorVersion = version +} + +// SetJavaTracerVersion sets the java tracer version to install +func (i *HostInstaller) SetJavaTracerVersion(version string) { + i.javaVersion = version +} + +// AddTracerEnv adds an environment variable to the list of environment variables to inject +func (i *HostInstaller) AddTracerEnv(key, value string) { + i.injectorConfig.EnvsToInject = append(i.injectorConfig.EnvsToInject, EnvVar{Key: key, Value: value}) +} + +// AddAgentConfig adds a key value pair to the agent agentConfiguration +func (i *HostInstaller) AddAgentConfig(key string, value interface{}) { + i.agentConfig[key] = value +} + +// AddLogConfig adds a log agentConfiguration to the agent configuration +func (i *HostInstaller) AddLogConfig(log LogConfig) { + i.logsConfig.Logs = append(i.logsConfig.Logs, log) + if len(i.logsConfig.Logs) == 1 { + i.AddAgentConfig("logs_enabled", true) + } +} + +// AddSparkInstance adds a spark instance to the agent agentConfiguration +func (i *HostInstaller) AddSparkInstance(spark SparkInstance) { + i.sparkConfig.Instances = append(i.sparkConfig.Instances, spark) +} + +// AddHostTag adds a host tag to the agent agentConfiguration +func (i *HostInstaller) AddHostTag(key, value string) { + i.hostTags = append(i.hostTags, tag{key, value}) +} + +func (i *HostInstaller) writeYamlConfig(path string, yml interface{}, perm os.FileMode, agentOwner bool) error { + data, err := yaml.Marshal(yml) + if err != nil { + return err + } + dir := filepath.Dir(path) + if err := os.MkdirAll(dir, 0755); err != nil { + return fmt.Errorf("failed to create directory %s: %v", dir, err) + } + if err = os.WriteFile(path, data, perm); err != nil { + return fmt.Errorf("failed to write to %s: %v", path, err) + } + // Change ownership of the file to the agent user + // ddUID=0 happens in local test environments + if agentOwner && i.ddUID != 0 { + if err := os.Chown(path, i.ddUID, i.ddGID); err != nil { + return fmt.Errorf("failed to change ownership of %s: %v", path, err) + } + } + return nil +} + +func convertTagsToYaml(tags []tag) []interface{} { + result := make([]interface{}, 0, len(tags)) + for _, tag := range tags { + result = append(result, fmt.Sprintf("%s:%s", tag.key, tag.value)) + } + return result +} + +func (i *HostInstaller) writeConfigs() error { + if len(i.hostTags) > 0 { + i.AddAgentConfig("tags", convertTagsToYaml(i.hostTags)) + } + + if err := i.writeYamlConfig(datadogConfFile, i.agentConfig, 0640, true); err != nil { + return err + } + if len(i.logsConfig.Logs) > 0 { + if err := i.writeYamlConfig(logsConfFile, i.logsConfig, 0644, true); err != nil { + return err + } + } + if len(i.sparkConfig.Instances) > 0 { + if err := i.writeYamlConfig(sparkConfigFile, i.sparkConfig, 0644, true); err != nil { + return err + } + } + if len(i.injectorConfig.EnvsToInject) > 0 { + if err := i.writeYamlConfig(injectTracerConfigFile, i.injectorConfig, 0644, false); err != nil { + return err + } + } + return nil +} + +// ConfigureAndInstall writes configurations to disk and installs desired packages +func (i *HostInstaller) ConfigureAndInstall(ctx context.Context) error { + if err := i.writeConfigs(); err != nil { + return fmt.Errorf("failed to write configurations: %w", err) + } + + cmd := exec.NewInstallerExec(i.env, paths.StableInstallerPath) + + if i.injectorVersion != "" { + if err := cmd.Install(ctx, oci.PackageURL(i.env, "datadog-apm-inject", i.injectorVersion), nil); err != nil { + return fmt.Errorf("failed to install injector: %w", err) + } + } + if i.javaVersion != "" { + if err := cmd.Install(ctx, oci.PackageURL(i.env, "datadog-apm-library-java", i.javaVersion), nil); err != nil { + return fmt.Errorf("failed to install java library: %w", err) + } + } + if i.agentVersion != "" { + if err := cmd.Install(ctx, oci.PackageURL(i.env, "datadog-agent", i.agentVersion), nil); err != nil { + return fmt.Errorf("failed to install Databricks agent: %w", err) + } + } + return nil +} diff --git a/pkg/fleet/installer/setup/djm/databricks.go b/pkg/fleet/installer/setup/djm/databricks.go new file mode 100644 index 0000000000000..f13127c4dcbc5 --- /dev/null +++ b/pkg/fleet/installer/setup/djm/databricks.go @@ -0,0 +1,190 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build !windows + +// Package djm contains data-jobs-monitoring installation logic +package djm + +import ( + "context" + "os" + + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/setup/common" + "github.com/DataDog/datadog-agent/pkg/util/log" + "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" +) + +const ( + databricksInjectorVersion = "0.21.0" + databricksJavaVersion = "1.41.1" + databricksAgentVersion = "7.57.2" + logsService = "databricks" +) + +type databricksSetup struct { + ctx context.Context + *common.HostInstaller + setupIssues []string +} + +// SetupDatabricks sets up the Databricks environment +func SetupDatabricks(ctx context.Context, env *env.Env) (err error) { + span, ctx := tracer.StartSpanFromContext(ctx, "setup.databricks") + defer func() { span.Finish(tracer.WithError(err)) }() + + i, err := common.NewHostInstaller(env) + if err != nil { + return err + } + ds := &databricksSetup{ + ctx: ctx, + HostInstaller: i, + } + return ds.setup() +} + +func (ds *databricksSetup) setup() error { + // agent binary to install + ds.SetAgentVersion(databricksAgentVersion) + + // avoid port conflict + ds.AddAgentConfig("process_config.expvar_port", -1) + ds.AddAgentConfig("expected_tags_duration", "10m") + ds.AddAgentConfig("djm_config.enabled", true) + + ds.extractHostTagsFromEnv() + + span, _ := tracer.SpanFromContext(ds.ctx) + switch os.Getenv("DB_IS_DRIVER") { + case "true": + span.SetTag("spark_node", "driver") + return ds.setupDatabricksDriver() + default: + span.SetTag("spark_node", "worker") + return ds.setupDatabricksExecutor() + } +} + +type varExtraction struct { + envVar string + tagKey string +} + +var varExtractions = []varExtraction{ + {"DATABRICKS_WORKSPACE", "workspace"}, + {"DB_CLUSTER_NAME", "databricks_cluster_name"}, + {"DB_CLUSTER_ID", "databricks_cluster_id"}, + {"DB_NODE_TYPE", "databricks_node_type"}, +} + +func (ds *databricksSetup) extractHostTagsFromEnv() { + for _, ve := range varExtractions { + if val, ok := os.LookupEnv(ve.envVar); ok { + ds.AddHostTag(ve.tagKey, val) + continue + } + ds.setupIssues = append(ds.setupIssues, ve.envVar+"_not_set") + } +} + +func (ds *databricksSetup) setupDatabricksDriver() error { + ds.AddHostTag("node_type", "driver") + + ds.driverLogCollection() + + ds.setupAgentSparkCheck() + + ds.AddTracerEnv("DD_DATA_JOBS_ENABLED", "true") + ds.AddTracerEnv("DD_INTEGRATIONS_ENABLED", "false") + + // APM binaries to install + ds.SetInjectorVersion(databricksInjectorVersion) + ds.SetJavaTracerVersion(databricksJavaVersion) + + return ds.ConfigureAndInstall(ds.ctx) +} + +func (ds *databricksSetup) setupDatabricksExecutor() error { + ds.AddHostTag("node_type", "worker") + ds.workerLogCollection() + return ds.ConfigureAndInstall(ds.ctx) +} + +func (ds *databricksSetup) setupAgentSparkCheck() { + driverIP := os.Getenv("DB_DRIVER_IP") + if driverIP == "" { + log.Warn("DB_DRIVER_IP not set") + return + } + driverPort := os.Getenv("DB_DRIVER_PORT") + if driverPort == "" { + log.Warn("DB_DRIVER_PORT not set") + return + } + clusterName := os.Getenv("DB_CLUSTER_NAME") + + ds.AddSparkInstance(common.SparkInstance{ + SparkURL: "http://" + driverIP + ":" + driverPort, + SparkClusterMode: "spark_driver_mode", + ClusterName: clusterName, + StreamingMetrics: true, + }) +} + +func (ds *databricksSetup) driverLogCollection() { + if os.Getenv("DRIVER_LOGS_ENABLED") != "true" { + return + } + span, _ := tracer.SpanFromContext(ds.ctx) + span.SetTag("driver_logs", "enabled") + log.Info("Enabling logs collection on the driver") + ds.AddLogConfig(common.LogConfig{ + Type: "file", + Path: "/databricks/driver/logs/*.log", + Source: "driver_logs", + Service: logsService, + }) + ds.AddLogConfig(common.LogConfig{ + Type: "file", + Path: "/databricks/driver/logs/stderr", + Source: "driver_stderr", + Service: logsService, + }) + ds.AddLogConfig(common.LogConfig{ + Type: "file", + Path: "/databricks/driver/logs/stdout", + Source: "driver_stdout", + Service: logsService, + }) +} + +func (ds *databricksSetup) workerLogCollection() { + if os.Getenv("WORKER_LOGS_ENABLED") != "true" { + return + } + span, _ := tracer.SpanFromContext(ds.ctx) + span.SetTag("worker_logs", "enabled") + log.Info("Enabling logs collection on the executor") + ds.AddLogConfig(common.LogConfig{ + Type: "file", + Path: "/databricks/spark/work/*/*/*.log", + Source: "worker_logs", + Service: logsService, + }) + ds.AddLogConfig(common.LogConfig{ + Type: "file", + Path: "/databricks/spark/work/*/*/stderr", + Source: "worker_stderr", + Service: logsService, + }) + ds.AddLogConfig(common.LogConfig{ + Type: "file", + Path: "/databricks/spark/work/*/*/stdout", + Source: "worker_stdout", + Service: logsService, + }) +} diff --git a/pkg/fleet/installer/setup/djm/databricks_windows.go b/pkg/fleet/installer/setup/djm/databricks_windows.go new file mode 100644 index 0000000000000..2bad2770e3467 --- /dev/null +++ b/pkg/fleet/installer/setup/djm/databricks_windows.go @@ -0,0 +1,21 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build windows + +// Package djm contains data-jobs-monitoring installation logic +package djm + +import ( + "context" + "errors" + + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" +) + +// SetupDatabricks is a not supported on windows +func SetupDatabricks(_ context.Context, _ *env.Env) error { + return errors.New("djm is not supported on windows") +} diff --git a/pkg/fleet/installer/setup.go b/pkg/fleet/installer/setup/setup.go similarity index 74% rename from pkg/fleet/installer/setup.go rename to pkg/fleet/installer/setup/setup.go index 6673e44e2b081..313b12e2782d5 100644 --- a/pkg/fleet/installer/setup.go +++ b/pkg/fleet/installer/setup/setup.go @@ -3,20 +3,30 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -// Package installer contains the installer subcommands -package installer +// Package setup contains the different setup scenarios +package setup import ( "context" "fmt" + "os" "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/setup/djm" "github.com/DataDog/datadog-agent/pkg/fleet/internal/exec" "github.com/DataDog/datadog-agent/pkg/fleet/internal/paths" ) // Setup is the main function to resolve packages to install and install them func Setup(ctx context.Context, env *env.Env) error { + if os.Getenv("DD_DJM_FLAVOR") == "databricks" { + return djm.SetupDatabricks(ctx, env) + } + + return defaultSetup(ctx, env) +} + +func defaultSetup(ctx context.Context, env *env.Env) error { cmd := exec.NewInstallerExec(env, paths.StableInstallerPath) defaultPackages, err := cmd.DefaultPackages(ctx) if err != nil { From 6b84c8763083365be815ee40d075d389799349f4 Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Thu, 5 Dec 2024 09:43:00 +0100 Subject: [PATCH 265/439] [CWS] re-enabled `gen_mocks` in `security-agent.go-generate-check` (#31764) --- tasks/security_agent.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/security_agent.py b/tasks/security_agent.py index 6b8a5a93885b0..725c0d6d0a583 100644 --- a/tasks/security_agent.py +++ b/tasks/security_agent.py @@ -663,7 +663,7 @@ def go_generate_check(ctx): tasks = [ [cws_go_generate], [generate_cws_documentation], - # [gen_mocks], TODO: re-enable this when go is bumped to 1.23 and mocker is updated to >2.46.1 + [gen_mocks], [sync_secl_win_pkg], ] failing_tasks = [] From fef1eb710832dda54c1e84594222529beeafbeac Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Thu, 5 Dec 2024 09:44:32 +0100 Subject: [PATCH 266/439] [CWS] fix unmarshalling of regular int to `time.Duration` (#31769) --- pkg/security/secl/rules/model.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/security/secl/rules/model.go b/pkg/security/secl/rules/model.go index 6d3ca83c995c2..ed88b09deaa72 100644 --- a/pkg/security/secl/rules/model.go +++ b/pkg/security/secl/rules/model.go @@ -7,7 +7,7 @@ package rules import ( - "errors" + "fmt" "time" "gopkg.in/yaml.v3" @@ -219,7 +219,7 @@ func (d *HumanReadableDuration) UnmarshalYAML(n *yaml.Node) error { return err } switch value := v.(type) { - case float64: + case int: d.Duration = time.Duration(value) return nil case string: @@ -230,7 +230,7 @@ func (d *HumanReadableDuration) UnmarshalYAML(n *yaml.Node) error { } return nil default: - return errors.New("invalid duration") + return fmt.Errorf("invalid duration: (yaml type: %T)", v) } } From 81c75a5c11da43eba423554fcfa1f58b89c9db5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillermo=20Juli=C3=A1n?= Date: Thu, 5 Dec 2024 10:41:16 +0100 Subject: [PATCH 267/439] [EBPF-560] attacher: Fix TestSingleFile flaky test (#31751) --- pkg/ebpf/uprobes/attacher_test.go | 48 +++++++++++++++++++------ pkg/ebpf/uprobes/testutil.go | 58 ++++++++++++++++++++++++++++++- 2 files changed, 94 insertions(+), 12 deletions(-) diff --git a/pkg/ebpf/uprobes/attacher_test.go b/pkg/ebpf/uprobes/attacher_test.go index 55172da64b1bb..abad66f8778f2 100644 --- a/pkg/ebpf/uprobes/attacher_test.go +++ b/pkg/ebpf/uprobes/attacher_test.go @@ -824,7 +824,7 @@ func createTempTestFile(t *testing.T, name string) (string, utils.PathIdentifier type SharedLibrarySuite struct { suite.Suite - procMonitor ProcessMonitor + procMonitor *processMonitorProxy } func TestAttacherSharedLibrary(t *testing.T) { @@ -839,16 +839,27 @@ func TestAttacherSharedLibrary(t *testing.T) { tt.Run("netlink", func(ttt *testing.T) { processMonitor := launchProcessMonitor(ttt, false) - suite.Run(ttt, &SharedLibrarySuite{procMonitor: processMonitor}) + + // Use a proxy so we can manually trigger events in case of misses + procmonObserver := newProcessMonitorProxy(processMonitor) + suite.Run(ttt, &SharedLibrarySuite{procMonitor: procmonObserver}) }) tt.Run("event stream", func(ttt *testing.T) { processMonitor := launchProcessMonitor(ttt, true) - suite.Run(ttt, &SharedLibrarySuite{procMonitor: processMonitor}) + + // Use a proxy so we can manually trigger events in case of misses + procmonObserver := newProcessMonitorProxy(processMonitor) + suite.Run(ttt, &SharedLibrarySuite{procMonitor: procmonObserver}) }) }) } +func (s *SharedLibrarySuite) SetupTest() { + // Reset callbacks + s.procMonitor.Reset() +} + func (s *SharedLibrarySuite) TestSingleFile() { t := s.T() ebpfCfg := ddebpf.NewConfig() @@ -900,16 +911,31 @@ func (s *SharedLibrarySuite) TestSingleFile() { 3, 10*time.Millisecond, 500*time.Millisecond, "did not catch process running, received calls %v", mockRegistry.Calls) mockRegistry.AssertCalled(t, "Register", fooPath1, uint32(cmd.Process.Pid), mock.Anything, mock.Anything, mock.Anything) - mockRegistry.Calls = nil - require.NoError(t, cmd.Process.Kill()) - require.Eventually(t, func() bool { - // Other processes might have finished and forced the Unregister call to the registry - return methodHasBeenCalledWithPredicate(mockRegistry, "Unregister", func(call mock.Call) bool { - return call.Arguments[0].(uint32) == uint32(cmd.Process.Pid) - }) - }, time.Second*10, 200*time.Millisecond, "received calls %v", mockRegistry.Calls) + // The ideal path would be that the process monitor sends an exit event for + // the process as it's killed. However, sometimes these events are missed + // and the callbacks aren't called. Unlike the "Process launch" event, we + // cannot recreate the process exit, which would be the ideal solution to + // ensure we're testing the correct behavior (including any + // filters/callbacks on the process monitor). Instead, we manually trigger + // the exit event for the process using the processMonitorProxy, which + // should replicate the same codepath. + waitAndRetryIfFail(t, + func() { + require.NoError(t, cmd.Process.Kill()) + }, + func() bool { + return methodHasBeenCalledWithPredicate(mockRegistry, "Unregister", func(call mock.Call) bool { + return call.Arguments[0].(uint32) == uint32(cmd.Process.Pid) + }) + }, + func(testSuccess bool) { + if !testSuccess { + // If the test failed once, manually trigger the exit event + s.procMonitor.triggerExit(uint32(cmd.Process.Pid)) + } + }, 2, 10*time.Millisecond, 500*time.Millisecond, "attacher did not correctly handle exit events received calls %v", mockRegistry.Calls) mockRegistry.AssertCalled(t, "Unregister", uint32(cmd.Process.Pid)) } diff --git a/pkg/ebpf/uprobes/testutil.go b/pkg/ebpf/uprobes/testutil.go index dcda53b56d155..93b109b499aa3 100644 --- a/pkg/ebpf/uprobes/testutil.go +++ b/pkg/ebpf/uprobes/testutil.go @@ -3,7 +3,7 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2024-present Datadog, Inc. -//go:build linux_bpf +//go:build linux_bpf && test package uprobes @@ -13,6 +13,7 @@ import ( "path/filepath" "runtime" "strconv" + "sync" "testing" "time" @@ -236,3 +237,58 @@ func waitAndRetryIfFail(t *testing.T, setupFunc func(), testFunc func() bool, re require.Fail(t, "condition not met after %d retries", maxRetries, msgAndArgs) } + +// processMonitorProxy is a wrapper around a ProcessMonitor that stores the +// callbacks subscribed to it, and triggers them which allows manually +// triggering the callbacks for testing purposes. +type processMonitorProxy struct { + target ProcessMonitor + mutex sync.Mutex // performance is not a worry for this, so use a single mutex for simplicity + execCallbacks map[*func(uint32)]struct{} + exitCallbacks map[*func(uint32)]struct{} +} + +// ensure it implements the ProcessMonitor interface +var _ ProcessMonitor = &processMonitorProxy{} + +func newProcessMonitorProxy(target ProcessMonitor) *processMonitorProxy { + return &processMonitorProxy{ + target: target, + execCallbacks: make(map[*func(uint32)]struct{}), + exitCallbacks: make(map[*func(uint32)]struct{}), + } +} + +func (o *processMonitorProxy) SubscribeExec(cb func(uint32)) func() { + o.mutex.Lock() + defer o.mutex.Unlock() + o.execCallbacks[&cb] = struct{}{} + + return o.target.SubscribeExec(cb) +} + +func (o *processMonitorProxy) SubscribeExit(cb func(uint32)) func() { + o.mutex.Lock() + defer o.mutex.Unlock() + o.exitCallbacks[&cb] = struct{}{} + + return o.target.SubscribeExit(cb) +} + +func (o *processMonitorProxy) triggerExit(pid uint32) { + o.mutex.Lock() + defer o.mutex.Unlock() + + for cb := range o.exitCallbacks { + (*cb)(pid) + } +} + +// Reset resets the state of the processMonitorProxy, removing all callbacks. +func (o *processMonitorProxy) Reset() { + o.mutex.Lock() + defer o.mutex.Unlock() + + o.execCallbacks = make(map[*func(uint32)]struct{}) + o.exitCallbacks = make(map[*func(uint32)]struct{}) +} From 64a99b2ded0b1d17d7f518f47949b6539089a4ad Mon Sep 17 00:00:00 2001 From: Baptiste Foy Date: Thu, 5 Dec 2024 10:48:52 +0100 Subject: [PATCH 268/439] fix(installer): Skip LD_PRELOAD check if echo not in path (#31701) --- pkg/fleet/installer/packages/apm_inject.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/fleet/installer/packages/apm_inject.go b/pkg/fleet/installer/packages/apm_inject.go index febd93ecf8dc7..3f51793cf3486 100644 --- a/pkg/fleet/installer/packages/apm_inject.go +++ b/pkg/fleet/installer/packages/apm_inject.go @@ -281,7 +281,10 @@ func (a *apmInjectorInstaller) verifySharedLib(ctx context.Context, libPath stri defer func() { span.Finish(tracer.WithError(err)) }() echoPath, err := exec.LookPath("echo") if err != nil { - return fmt.Errorf("failed to find echo: %w", err) + // If echo is not found, to not block install, + // we skip the test and add it to the span. + span.SetTag("skipped", true) + return nil } cmd := exec.Command(echoPath, "1") cmd.Env = append(os.Environ(), "LD_PRELOAD="+libPath) From 4088e420ce1cbd6685c3dbde6269723bfe1ccf1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillermo=20Juli=C3=A1n?= Date: Thu, 5 Dec 2024 11:05:27 +0100 Subject: [PATCH 269/439] [EBPF] gpu: Add tagger integration (#31651) Co-authored-by: val06 --- pkg/collector/corechecks/gpu/gpu.go | 80 ++++++++++++--------- pkg/collector/corechecks/gpu/gpu_stub.go | 3 +- pkg/collector/corechecks/gpu/model/model.go | 3 + pkg/commonchecks/corechecks.go | 2 +- pkg/gpu/consumer.go | 22 +++--- pkg/gpu/probe_test.go | 2 +- pkg/gpu/stats.go | 5 +- pkg/gpu/stream.go | 7 +- 8 files changed, 74 insertions(+), 50 deletions(-) diff --git a/pkg/collector/corechecks/gpu/gpu.go b/pkg/collector/corechecks/gpu/gpu.go index 1083db30adb78..3320e9cdf8c28 100644 --- a/pkg/collector/corechecks/gpu/gpu.go +++ b/pkg/collector/corechecks/gpu/gpu.go @@ -19,6 +19,8 @@ import ( sysprobeclient "github.com/DataDog/datadog-agent/cmd/system-probe/api/client" sysconfig "github.com/DataDog/datadog-agent/cmd/system-probe/config" "github.com/DataDog/datadog-agent/comp/core/autodiscovery/integration" + tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" + taggertypes "github.com/DataDog/datadog-agent/comp/core/tagger/types" "github.com/DataDog/datadog-agent/pkg/aggregator/sender" "github.com/DataDog/datadog-agent/pkg/collector/check" core "github.com/DataDog/datadog-agent/pkg/collector/corechecks" @@ -44,129 +46,143 @@ type Check struct { activeMetrics map[model.StatsKey]bool // activeMetrics is a set of metrics that have been seen in the current check run collectors []nvidia.Collector // collectors for NVML metrics nvmlLib nvml.Interface // NVML library interface + tagger tagger.Component // Tagger instance to add tags to outgoing metrics } // Factory creates a new check factory -func Factory() optional.Option[func() check.Check] { - return optional.NewOption(newCheck) +func Factory(tagger tagger.Component) optional.Option[func() check.Check] { + return optional.NewOption(func() check.Check { + return newCheck(tagger) + }) } -func newCheck() check.Check { +func newCheck(tagger tagger.Component) check.Check { return &Check{ CheckBase: core.NewCheckBase(CheckName), config: &CheckConfig{}, activeMetrics: make(map[model.StatsKey]bool), + tagger: tagger, } } // Configure parses the check configuration and init the check -func (m *Check) Configure(senderManager sender.SenderManager, _ uint64, config, initConfig integration.Data, source string) error { - if err := m.CommonConfigure(senderManager, initConfig, config, source); err != nil { +func (c *Check) Configure(senderManager sender.SenderManager, _ uint64, config, initConfig integration.Data, source string) error { + if err := c.CommonConfigure(senderManager, initConfig, config, source); err != nil { return err } - if err := yaml.Unmarshal(config, m.config); err != nil { + if err := yaml.Unmarshal(config, c.config); err != nil { return fmt.Errorf("invalid gpu check config: %w", err) } // Initialize NVML collectors. if the config parameter doesn't exist or is // empty string, the default value is used as defined in go-nvml library // https://github.com/NVIDIA/go-nvml/blob/main/pkg/nvml/lib.go#L30 - m.nvmlLib = nvml.New(nvml.WithLibraryPath(m.config.NVMLLibraryPath)) - ret := m.nvmlLib.Init() + c.nvmlLib = nvml.New(nvml.WithLibraryPath(c.config.NVMLLibraryPath)) + ret := c.nvmlLib.Init() if ret != nvml.SUCCESS { return fmt.Errorf("failed to initialize NVML library: %s", nvml.ErrorString(ret)) } var err error - m.collectors, err = nvidia.BuildCollectors(m.nvmlLib) + c.collectors, err = nvidia.BuildCollectors(c.nvmlLib) if err != nil { return fmt.Errorf("failed to build NVML collectors: %w", err) } - m.sysProbeClient = sysprobeclient.Get(pkgconfigsetup.SystemProbe().GetString("system_probe_config.sysprobe_socket")) + c.sysProbeClient = sysprobeclient.Get(pkgconfigsetup.SystemProbe().GetString("system_probe_config.sysprobe_socket")) return nil } // Cancel stops the check -func (m *Check) Cancel() { - if m.nvmlLib != nil { - _ = m.nvmlLib.Shutdown() +func (c *Check) Cancel() { + if c.nvmlLib != nil { + _ = c.nvmlLib.Shutdown() } - m.CheckBase.Cancel() + c.CheckBase.Cancel() } // Run executes the check -func (m *Check) Run() error { - snd, err := m.GetSender() +func (c *Check) Run() error { + snd, err := c.GetSender() if err != nil { return fmt.Errorf("get metric sender: %w", err) } // Commit the metrics even in case of an error defer snd.Commit() - if err := m.emitSysprobeMetrics(snd); err != nil { + if err := c.emitSysprobeMetrics(snd); err != nil { log.Warnf("error while sending sysprobe metrics: %s", err) } - if err := m.emitNvmlMetrics(snd); err != nil { + if err := c.emitNvmlMetrics(snd); err != nil { log.Warnf("error while sending NVML metrics: %s", err) } return nil } -func (m *Check) emitSysprobeMetrics(snd sender.Sender) error { - stats, err := sysprobeclient.GetCheck[model.GPUStats](m.sysProbeClient, sysconfig.GPUMonitoringModule) +func (c *Check) emitSysprobeMetrics(snd sender.Sender) error { + stats, err := sysprobeclient.GetCheck[model.GPUStats](c.sysProbeClient, sysconfig.GPUMonitoringModule) if err != nil { return fmt.Errorf("cannot get data from system-probe: %w", err) } // Set all metrics to inactive, so we can remove the ones that we don't see // and send the final metrics - for key := range m.activeMetrics { - m.activeMetrics[key] = false + for key := range c.activeMetrics { + c.activeMetrics[key] = false } for _, entry := range stats.Metrics { key := entry.Key metrics := entry.UtilizationMetrics - tags := getTagsForKey(key) + tags := c.getTagsForKey(key) snd.Gauge(metricNameUtil, metrics.UtilizationPercentage, "", tags) snd.Gauge(metricNameMemory, float64(metrics.Memory.CurrentBytes), "", tags) snd.Gauge(metricNameMaxMem, float64(metrics.Memory.MaxBytes), "", tags) - m.activeMetrics[key] = true + c.activeMetrics[key] = true } // Remove the PIDs that we didn't see in this check - for key, active := range m.activeMetrics { + for key, active := range c.activeMetrics { if !active { - tags := getTagsForKey(key) + tags := c.getTagsForKey(key) snd.Gauge(metricNameMemory, 0, "", tags) snd.Gauge(metricNameMaxMem, 0, "", tags) snd.Gauge(metricNameUtil, 0, "", tags) - delete(m.activeMetrics, key) + delete(c.activeMetrics, key) } } return nil } -func getTagsForKey(key model.StatsKey) []string { - // Per-PID metrics are subject to change due to high cardinality - return []string{ +func (c *Check) getTagsForKey(key model.StatsKey) []string { + entityID := taggertypes.NewEntityID(taggertypes.ContainerID, key.ContainerID) + tags, err := c.tagger.Tag(entityID, c.tagger.ChecksCardinality()) + if err != nil { + log.Errorf("Error collecting container tags for process %d: %s", key.PID, err) + } + + // Container ID tag will be added or not depending on the tagger configuration + // PID and GPU UUID are always added as they're not relying on the tagger yet + keyTags := []string{ + // Per-PID metrics are subject to change due to high cardinality fmt.Sprintf("pid:%d", key.PID), fmt.Sprintf("gpu_uuid:%s", key.DeviceUUID), } + + return append(tags, keyTags...) } -func (m *Check) emitNvmlMetrics(snd sender.Sender) error { +func (c *Check) emitNvmlMetrics(snd sender.Sender) error { var err error - for _, collector := range m.collectors { + for _, collector := range c.collectors { log.Debugf("Collecting metrics from NVML collector: %s", collector.Name()) metrics, collectErr := collector.Collect() if collectErr != nil { diff --git a/pkg/collector/corechecks/gpu/gpu_stub.go b/pkg/collector/corechecks/gpu/gpu_stub.go index 5aefc602175b9..4815e0851b106 100644 --- a/pkg/collector/corechecks/gpu/gpu_stub.go +++ b/pkg/collector/corechecks/gpu/gpu_stub.go @@ -8,11 +8,12 @@ package gpu import ( + tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/pkg/collector/check" "github.com/DataDog/datadog-agent/pkg/util/optional" ) // Factory creates a new check factory -func Factory() optional.Option[func() check.Check] { +func Factory(_ tagger.Component) optional.Option[func() check.Check] { return optional.NewNoneOption[func() check.Check]() } diff --git a/pkg/collector/corechecks/gpu/model/model.go b/pkg/collector/corechecks/gpu/model/model.go index c936639ae2f79..2797ce204fe8b 100644 --- a/pkg/collector/corechecks/gpu/model/model.go +++ b/pkg/collector/corechecks/gpu/model/model.go @@ -26,6 +26,9 @@ type StatsKey struct { // DeviceUUID is the UUID of the device DeviceUUID string `json:"device_uuid"` + + // ContainerID is the ID of the container the process is running on + ContainerID string `json:"container_id"` } // StatsTuple is a single entry in the GPUStats array, as we cannot use a complex key in the map diff --git a/pkg/commonchecks/corechecks.go b/pkg/commonchecks/corechecks.go index a30c33fbfbc41..9af1e7f9833c8 100644 --- a/pkg/commonchecks/corechecks.go +++ b/pkg/commonchecks/corechecks.go @@ -77,7 +77,7 @@ func RegisterChecks(store workloadmeta.Component, tagger tagger.Component, cfg c corecheckLoader.RegisterCheck(helm.CheckName, helm.Factory()) corecheckLoader.RegisterCheck(pod.CheckName, pod.Factory(store, cfg, tagger)) corecheckLoader.RegisterCheck(ebpf.CheckName, ebpf.Factory()) - corecheckLoader.RegisterCheck(gpu.CheckName, gpu.Factory()) + corecheckLoader.RegisterCheck(gpu.CheckName, gpu.Factory(tagger)) corecheckLoader.RegisterCheck(ecs.CheckName, ecs.Factory(store, tagger)) corecheckLoader.RegisterCheck(oomkill.CheckName, oomkill.Factory(tagger)) corecheckLoader.RegisterCheck(tcpqueuelength.CheckName, tcpqueuelength.Factory(tagger)) diff --git a/pkg/gpu/consumer.go b/pkg/gpu/consumer.go index d18e76bfb79e0..f4ebb7f04b0f2 100644 --- a/pkg/gpu/consumer.go +++ b/pkg/gpu/consumer.go @@ -204,10 +204,18 @@ func (c *cudaEventConsumer) handleProcessExit(pid uint32) { func (c *cudaEventConsumer) getStreamKey(header *gpuebpf.CudaEventHeader) streamKey { pid, tid := getPidTidFromHeader(header) + cgroup := unix.ByteSliceToString(header.Cgroup[:]) + containerID, err := cgroups.ContainerFilter("", cgroup) + if err != nil { + // We don't want to return an error here, as we can still process the event without the container ID + log.Warnf("error getting container ID for cgroup %s: %s", cgroup, err) + } + key := streamKey{ - pid: pid, - stream: header.Stream_id, - gpuUUID: "", + pid: pid, + stream: header.Stream_id, + gpuUUID: "", + containerID: containerID, } // Try to get the GPU device if we can, but do not fail if we can't as we want to report @@ -229,13 +237,7 @@ func (c *cudaEventConsumer) getStreamKey(header *gpuebpf.CudaEventHeader) stream func (c *cudaEventConsumer) getStreamHandler(header *gpuebpf.CudaEventHeader) *StreamHandler { key := c.getStreamKey(header) if _, ok := c.streamHandlers[key]; !ok { - cgroup := unix.ByteSliceToString(header.Cgroup[:]) - containerID, err := cgroups.ContainerFilter("", cgroup) - if err != nil { - // We don't want to return an error here, as we can still process the event without the container ID - log.Errorf("error getting container ID for cgroup %s: %s", cgroup, err) - } - c.streamHandlers[key] = newStreamHandler(key.pid, containerID, c.sysCtx) + c.streamHandlers[key] = newStreamHandler(key.pid, key.containerID, c.sysCtx) } return c.streamHandlers[key] diff --git a/pkg/gpu/probe_test.go b/pkg/gpu/probe_test.go index 9b47b39998ab4..f3eda56e2d2d9 100644 --- a/pkg/gpu/probe_test.go +++ b/pkg/gpu/probe_test.go @@ -181,7 +181,7 @@ func (s *probeTestSuite) TestDetectsContainer() { } stats, err := probe.GetAndFlush() - key := model.StatsKey{PID: uint32(pid), DeviceUUID: testutil.DefaultGpuUUID} + key := model.StatsKey{PID: uint32(pid), DeviceUUID: testutil.DefaultGpuUUID, ContainerID: cid} require.NoError(t, err) require.NotNil(t, stats) pidStats := getMetricsEntry(key, stats) diff --git a/pkg/gpu/stats.go b/pkg/gpu/stats.go index 4e381fcf5f6dc..753fadcf084d9 100644 --- a/pkg/gpu/stats.go +++ b/pkg/gpu/stats.go @@ -78,8 +78,9 @@ func (g *statsGenerator) getStats(nowKtime int64) *model.GPUStats { func (g *statsGenerator) getOrCreateAggregator(sKey streamKey) *aggregator { aggKey := model.StatsKey{ - PID: sKey.pid, - DeviceUUID: sKey.gpuUUID, + PID: sKey.pid, + DeviceUUID: sKey.gpuUUID, + ContainerID: sKey.containerID, } if _, ok := g.aggregators[aggKey]; !ok { diff --git a/pkg/gpu/stream.go b/pkg/gpu/stream.go index 99207a7f144ce..031ff228e8a3f 100644 --- a/pkg/gpu/stream.go +++ b/pkg/gpu/stream.go @@ -44,9 +44,10 @@ type enrichedKernelLaunch struct { // streamKey is a unique identifier for a CUDA stream type streamKey struct { - pid uint32 - stream uint64 - gpuUUID string + pid uint32 + stream uint64 + gpuUUID string + containerID string } // streamData contains kernel spans and allocations for a stream From ef7896ea4cb435e2f32ed4470917dc25ea0135b1 Mon Sep 17 00:00:00 2001 From: Guillaume Pagnoux Date: Thu, 5 Dec 2024 11:35:37 +0100 Subject: [PATCH 270/439] discovery: do not fail to get services if CPU stats can't be updated (#31774) --- pkg/collector/corechecks/servicediscovery/module/impl_linux.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/collector/corechecks/servicediscovery/module/impl_linux.go b/pkg/collector/corechecks/servicediscovery/module/impl_linux.go index df021490fdd4c..8c2b276d8f56b 100644 --- a/pkg/collector/corechecks/servicediscovery/module/impl_linux.go +++ b/pkg/collector/corechecks/servicediscovery/module/impl_linux.go @@ -750,7 +750,7 @@ func (s *discovery) getServices() (*[]model.Service, error) { s.cleanIgnoredPids(alivePids) if err = s.updateServicesCPUStats(services); err != nil { - return nil, err + log.Warnf("updating services CPU stats: %s", err) } return &services, nil From f8feaaa464907586328e13ca51746c04ffd85506 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20Beauz=C3=A9e-Luyssen?= Date: Thu, 5 Dec 2024 12:03:37 +0100 Subject: [PATCH 271/439] omnibus: remove libelf & glib recipes (#31783) --- omnibus/config/software/glib.rb | 58 ------------------------------- omnibus/config/software/libelf.rb | 45 ------------------------ 2 files changed, 103 deletions(-) delete mode 100644 omnibus/config/software/glib.rb delete mode 100644 omnibus/config/software/libelf.rb diff --git a/omnibus/config/software/glib.rb b/omnibus/config/software/glib.rb deleted file mode 100644 index ba57dcbd7d4c4..0000000000000 --- a/omnibus/config/software/glib.rb +++ /dev/null @@ -1,58 +0,0 @@ -# -# Copyright:: Chef Software, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -name "glib" -default_version "2.78.0" - -license "LGPL-2.1" -license_file "COPYING" -skip_transitive_dependency_licensing true - -dependency "libffi" -dependency "pcre" -dependency "elfutils" - -version("2.78.0") { source sha256: "a12ecee4622bc193bf32d683101ac486c74f1918abeb25ed0c8f644eedc5b5d4" } - -ship_source_offer true - -source url: "https://gitlab.gnome.org/GNOME/glib/-/archive/#{version}/glib-#{version}.tar.bz2" - -relative_path "glib-#{version}" - -build do - env = with_standard_compiler_flags(with_embedded_path) - - env["LDFLAGS"] << " -Wl,--no-as-needed -ldl" - - patch source: "0001-Set-dependency-method-to-pkg-config.patch", env: env - patch source: "0002-Disable-build-tests.patch", env: env - - meson_command = [ - "meson", - "_build", - "--prefix=#{install_dir}/embedded", - "--libdir=lib", - "-Dlibmount=disabled", - "-Dselinux=disabled", - "-Ddefault_library=static" - ] - - command meson_command.join(" "), env: env - - command "ninja -C _build", env: env - command "ninja -C _build install", env: env -end diff --git a/omnibus/config/software/libelf.rb b/omnibus/config/software/libelf.rb deleted file mode 100644 index 04ec768a36db8..0000000000000 --- a/omnibus/config/software/libelf.rb +++ /dev/null @@ -1,45 +0,0 @@ -# Unless explicitly stated otherwise all files in this repository are licensed -# under the Apache License Version 2.0. -# This product includes software developed at Datadog (https:#www.datadoghq.com/). -# Copyright 2016-present Datadog, Inc. - -name 'libelf' -default_version '0.178' - -version '0.178' do - source url: 'https://sourceware.org/elfutils/ftp/0.178/elfutils-0.178.tar.bz2', - sha512: '356656ad0db8f6877b461de1a11280de16a9cc5d8dde4381a938a212e828e32755135e5e3171d311c4c9297b728fbd98123048e2e8fbf7fe7de68976a2daabe5' -end - -dependency 'zlib' - -relative_path "elfutils-#{version}" - -build do - command %q(patch -p 1 <<"EOF" ---- elfutils-0.178/src/elfclassify.c 2019-11-26 22:48:42.000000000 +0000 -+++ elfutils-0.178.patched/src/elfclassify.c 2020-01-28 09:22:28.066520000 +0000 -@@ -827,7 +827,10 @@ - break; - case do_print0: - if (checks_passed == flag_print_matching) -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wunused-result" - fwrite (current_path, strlen (current_path) + 1, 1, stdout); -+#pragma GCC diagnostic pop - break; - case no_print: - if (!checks_passed) -EOF -) - env = with_standard_compiler_flags(with_embedded_path) - configure_options = [ - " --disable-static", - " --disable-debuginfod", - " --disable-dependency-tracking", - ] - configure(*configure_options, env: env) - make "-j #{workers}", :env => env - make 'install', :env => env - delete "#{install_dir}/embedded/bin/eu-*" -end From 22b538135ee076749ce7662803ab81c8a73907a4 Mon Sep 17 00:00:00 2001 From: Sylvain Baubeau Date: Thu, 5 Dec 2024 12:18:19 +0100 Subject: [PATCH 272/439] [CWS] Index workload per cgroup (#31702) --- pkg/security/resolvers/cgroup/model/model.go | 9 ++-- pkg/security/resolvers/cgroup/resolver.go | 49 ++++++++++++------- .../resolvers/process/resolver_ebpf.go | 2 +- 3 files changed, 38 insertions(+), 22 deletions(-) diff --git a/pkg/security/resolvers/cgroup/model/model.go b/pkg/security/resolvers/cgroup/model/model.go index acb18c9922601..c916e45477876 100644 --- a/pkg/security/resolvers/cgroup/model/model.go +++ b/pkg/security/resolvers/cgroup/model/model.go @@ -29,18 +29,19 @@ type CacheEntry struct { } // NewCacheEntry returns a new instance of a CacheEntry -func NewCacheEntry(containerID containerutils.ContainerID, cgroupFlags uint64, pids ...uint32) (*CacheEntry, error) { +func NewCacheEntry(containerID containerutils.ContainerID, cgroupContext *model.CGroupContext, pids ...uint32) (*CacheEntry, error) { newCGroup := CacheEntry{ Deleted: atomic.NewBool(false), - CGroupContext: model.CGroupContext{ - CGroupFlags: containerutils.CGroupFlags(cgroupFlags), - }, ContainerContext: model.ContainerContext{ ContainerID: containerID, }, PIDs: make(map[uint32]bool, 10), } + if cgroupContext != nil { + newCGroup.CGroupContext = *cgroupContext + } + for _, pid := range pids { newCGroup.PIDs[pid] = true } diff --git a/pkg/security/resolvers/cgroup/resolver.go b/pkg/security/resolvers/cgroup/resolver.go index 0e7b7b07b1cd2..825d7cc92cf42 100644 --- a/pkg/security/resolvers/cgroup/resolver.go +++ b/pkg/security/resolvers/cgroup/resolver.go @@ -37,9 +37,9 @@ const ( type ResolverInterface interface { Start(context.Context) AddPID(*model.ProcessCacheEntry) - GetWorkload(string) (*cgroupModel.CacheEntry, bool) + GetWorkload(containerutils.ContainerID) (*cgroupModel.CacheEntry, bool) DelPID(uint32) - DelPIDWithID(string, uint32) + DelPIDWithID(containerutils.ContainerID, uint32) Len() int RegisterListener(Event, utils.Listener[*cgroupModel.CacheEntry]) error } @@ -48,7 +48,7 @@ type ResolverInterface interface { type Resolver struct { *utils.Notifier[Event, *cgroupModel.CacheEntry] sync.RWMutex - workloads *simplelru.LRU[containerutils.ContainerID, *cgroupModel.CacheEntry] + workloads *simplelru.LRU[containerutils.CGroupID, *cgroupModel.CacheEntry] } // NewResolver returns a new cgroups monitor @@ -56,7 +56,7 @@ func NewResolver() (*Resolver, error) { cr := &Resolver{ Notifier: utils.NewNotifier[Event, *cgroupModel.CacheEntry](), } - workloads, err := simplelru.NewLRU(1024, func(_ containerutils.ContainerID, value *cgroupModel.CacheEntry) { + workloads, err := simplelru.NewLRU(1024, func(_ containerutils.CGroupID, value *cgroupModel.CacheEntry) { value.CallReleaseCallback() value.Deleted.Store(true) @@ -78,7 +78,7 @@ func (cr *Resolver) AddPID(process *model.ProcessCacheEntry) { cr.Lock() defer cr.Unlock() - entry, exists := cr.workloads.Get(process.ContainerID) + entry, exists := cr.workloads.Get(process.CGroup.CGroupID) if exists { entry.AddPID(process.Pid) return @@ -86,7 +86,7 @@ func (cr *Resolver) AddPID(process *model.ProcessCacheEntry) { var err error // create new entry now - newCGroup, err := cgroupModel.NewCacheEntry(process.ContainerID, uint64(process.CGroup.CGroupFlags), process.Pid) + newCGroup, err := cgroupModel.NewCacheEntry(process.ContainerID, &process.CGroup, process.Pid) if err != nil { seclog.Errorf("couldn't create new cgroup_resolver cache entry: %v", err) return @@ -94,17 +94,33 @@ func (cr *Resolver) AddPID(process *model.ProcessCacheEntry) { newCGroup.CreatedAt = uint64(process.ProcessContext.ExecTime.UnixNano()) // add the new CGroup to the cache - cr.workloads.Add(process.ContainerID, newCGroup) + cr.workloads.Add(process.CGroup.CGroupID, newCGroup) cr.NotifyListeners(CGroupCreated, newCGroup) } +// Get returns the workload referenced by the provided ID +func (cr *Resolver) Get(id containerutils.CGroupID) (*cgroupModel.CacheEntry, bool) { + cr.RLock() + defer cr.RUnlock() + + return cr.workloads.Get(id) +} + // GetWorkload returns the workload referenced by the provided ID func (cr *Resolver) GetWorkload(id containerutils.ContainerID) (*cgroupModel.CacheEntry, bool) { cr.RLock() defer cr.RUnlock() - return cr.workloads.Get(id) + if id != "" { + for _, workload := range cr.workloads.Values() { + if workload.ContainerID == id { + return workload, true + } + } + } + + return nil, false } // DelPID removes a PID from the cgroup resolver @@ -112,11 +128,8 @@ func (cr *Resolver) DelPID(pid uint32) { cr.Lock() defer cr.Unlock() - for _, id := range cr.workloads.Keys() { - entry, exists := cr.workloads.Get(id) - if exists { - cr.deleteWorkloadPID(pid, entry) - } + for _, workload := range cr.workloads.Values() { + cr.deleteWorkloadPID(pid, workload) } } @@ -125,9 +138,11 @@ func (cr *Resolver) DelPIDWithID(id containerutils.ContainerID, pid uint32) { cr.Lock() defer cr.Unlock() - entry, exists := cr.workloads.Get(id) - if exists { - cr.deleteWorkloadPID(pid, entry) + for _, workload := range cr.workloads.Values() { + if workload.ContainerID == id { + cr.deleteWorkloadPID(pid, workload) + return + } } } @@ -140,7 +155,7 @@ func (cr *Resolver) deleteWorkloadPID(pid uint32, workload *cgroupModel.CacheEnt // check if the workload should be deleted if len(workload.PIDs) <= 0 { - cr.workloads.Remove(workload.ContainerID) + cr.workloads.Remove(workload.CGroupID) } } diff --git a/pkg/security/resolvers/process/resolver_ebpf.go b/pkg/security/resolvers/process/resolver_ebpf.go index 8803cc978f7ba..c9a3fd4f8ad7e 100644 --- a/pkg/security/resolvers/process/resolver_ebpf.go +++ b/pkg/security/resolvers/process/resolver_ebpf.go @@ -502,7 +502,7 @@ func (p *EBPFResolver) insertEntry(entry, prev *model.ProcessCacheEntry, source prev.Release() } - if p.cgroupResolver != nil && entry.ContainerID != "" { + if p.cgroupResolver != nil && entry.CGroup.CGroupID != "" { // add the new PID in the right cgroup_resolver bucket p.cgroupResolver.AddPID(entry) } From 85926134b4cb59f24c7276ddab84828650993cc3 Mon Sep 17 00:00:00 2001 From: Guillaume Pagnoux Date: Thu, 5 Dec 2024 13:49:15 +0100 Subject: [PATCH 273/439] discovery: tests: use collect instead of t in EventuallyWithT calls (#31776) --- .../servicediscovery/module/comm_test.go | 4 +- .../module/impl_linux_test.go | 42 +++++++++---------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/pkg/collector/corechecks/servicediscovery/module/comm_test.go b/pkg/collector/corechecks/servicediscovery/module/comm_test.go index f7b49d8834486..1bc296913ecf3 100644 --- a/pkg/collector/corechecks/servicediscovery/module/comm_test.go +++ b/pkg/collector/corechecks/servicediscovery/module/comm_test.go @@ -51,9 +51,9 @@ func TestIgnoreComm(t *testing.T) { badPid := badCmd.Process.Pid require.EventuallyWithT(t, func(collect *assert.CollectT) { - svcMap := getServicesMap(t, url) + svcMap := getServicesMap(collect, url) assert.Contains(collect, svcMap, goodPid) - require.NotContains(t, svcMap, badPid) + assert.NotContains(collect, svcMap, badPid) }, 30*time.Second, 100*time.Millisecond) } diff --git a/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go b/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go index d99063dfac193..e584b9816c474 100644 --- a/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go +++ b/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go @@ -100,7 +100,7 @@ func setupDiscoveryModule(t *testing.T) (string, *proccontainersmocks.MockContai return srv.URL, mockContainerProvider } -func getServices(t *testing.T, url string) []model.Service { +func getServices(t require.TestingT, url string) []model.Service { location := url + "/" + string(config.DiscoveryModule) + pathServices req, err := http.NewRequest(http.MethodGet, location, nil) require.NoError(t, err) @@ -117,7 +117,7 @@ func getServices(t *testing.T, url string) []model.Service { return res.Services } -func getServicesMap(t *testing.T, url string) map[int]model.Service { +func getServicesMap(t require.TestingT, url string) map[int]model.Service { services := getServices(t, url) servicesMap := make(map[int]model.Service) for _, service := range services { @@ -235,7 +235,7 @@ func TestBasic(t *testing.T) { // Eventually to give the processes time to start require.EventuallyWithT(t, func(collect *assert.CollectT) { - portMap := getServicesMap(t, url) + portMap := getServicesMap(collect, url) for _, pid := range expectedPIDs { assert.Contains(collect, portMap, pid) } @@ -363,15 +363,15 @@ func TestServiceName(t *testing.T) { pid := cmd.Process.Pid // Eventually to give the processes time to start require.EventuallyWithT(t, func(collect *assert.CollectT) { - portMap := getServicesMap(t, url) + portMap := getServicesMap(collect, url) assert.Contains(collect, portMap, pid) // Non-ASCII character removed due to normalization. - assert.Equal(t, "foo_bar", portMap[pid].DDService) - assert.Equal(t, portMap[pid].DDService, portMap[pid].Name) - assert.Equal(t, "sleep", portMap[pid].GeneratedName) - assert.Equal(t, string(usm.CommandLine), portMap[pid].GeneratedNameSource) - assert.False(t, portMap[pid].DDServiceInjected) - assert.Equal(t, portMap[pid].ContainerID, "") + assert.Equal(collect, "foo_bar", portMap[pid].DDService) + assert.Equal(collect, portMap[pid].DDService, portMap[pid].Name) + assert.Equal(collect, "sleep", portMap[pid].GeneratedName) + assert.Equal(collect, string(usm.CommandLine), portMap[pid].GeneratedNameSource) + assert.False(collect, portMap[pid].DDServiceInjected) + assert.Equal(collect, portMap[pid].ContainerID, "") }, 30*time.Second, 100*time.Millisecond) } @@ -505,7 +505,7 @@ func testCaptureWrappedCommands(t *testing.T, script string, commandWrapper []st mockContainerProvider.EXPECT().GetContainers(1*time.Minute, nil).AnyTimes() pid := int(proc.Pid) require.EventuallyWithT(t, func(collect *assert.CollectT) { - svcMap := getServicesMap(t, url) + svcMap := getServicesMap(collect, url) assert.Contains(collect, svcMap, pid) assert.True(collect, validator(svcMap[pid])) }, 30*time.Second, 100*time.Millisecond) @@ -559,12 +559,12 @@ func TestAPMInstrumentationProvided(t *testing.T) { pid := cmd.Process.Pid require.EventuallyWithT(t, func(collect *assert.CollectT) { - portMap := getServicesMap(t, url) + portMap := getServicesMap(collect, url) assert.Contains(collect, portMap, pid) assert.Equal(collect, string(test.language), portMap[pid].Language) assert.Equal(collect, string(apm.Provided), portMap[pid].APMInstrumentation) - assertStat(t, portMap[pid]) - assertCPU(t, url, pid) + assertStat(collect, portMap[pid]) + assertCPU(collect, url, pid) }, 30*time.Second, 100*time.Millisecond) }) } @@ -605,7 +605,7 @@ func assertStat(t assert.TestingT, svc model.Service) { assert.InDelta(t, uint64(createTimeMs), svc.StartTimeMilli, 10000) } -func assertCPU(t *testing.T, url string, pid int) { +func assertCPU(t require.TestingT, url string, pid int) { proc, err := process.NewProcess(int32(pid)) require.NoError(t, err, "could not create gopsutil process handle") @@ -642,7 +642,7 @@ func TestCommandLineSanitization(t *testing.T) { pid := cmd.Process.Pid require.EventuallyWithT(t, func(collect *assert.CollectT) { - svcMap := getServicesMap(t, url) + svcMap := getServicesMap(collect, url) assert.Contains(collect, svcMap, pid) assert.Equal(collect, sanitizedCommandLine, svcMap[pid].CommandLine) }, 30*time.Second, 100*time.Millisecond) @@ -661,7 +661,7 @@ func TestNodeDocker(t *testing.T) { pid := int(nodeJSPID) require.EventuallyWithT(t, func(collect *assert.CollectT) { - svcMap := getServicesMap(t, url) + svcMap := getServicesMap(collect, url) assert.Contains(collect, svcMap, pid) // test@... changed to test_... due to normalization. assert.Equal(collect, "test_nodejs-https-server", svcMap[pid].GeneratedName) @@ -669,7 +669,7 @@ func TestNodeDocker(t *testing.T) { assert.Equal(collect, svcMap[pid].GeneratedName, svcMap[pid].Name) assert.Equal(collect, "provided", svcMap[pid].APMInstrumentation) assertStat(collect, svcMap[pid]) - assertCPU(t, url, pid) + assertCPU(collect, url, pid) }, 30*time.Second, 100*time.Millisecond) } @@ -720,7 +720,7 @@ func TestAPMInstrumentationProvidedWithMaps(t *testing.T) { pid := cmd.Process.Pid require.EventuallyWithT(t, func(collect *assert.CollectT) { - portMap := getServicesMap(t, url) + portMap := getServicesMap(collect, url) assert.Contains(collect, portMap, pid) assert.Equal(collect, string(test.language), portMap[pid].Language) assert.Equal(collect, string(apm.Provided), portMap[pid].APMInstrumentation) @@ -779,7 +779,7 @@ func TestNamespaces(t *testing.T) { // Eventually to give the processes time to start require.EventuallyWithT(t, func(collect *assert.CollectT) { - portMap := getServicesMap(t, url) + portMap := getServicesMap(collect, url) for _, pid := range pids { assert.Contains(collect, portMap, pid) } @@ -887,7 +887,7 @@ func TestCache(t *testing.T) { require.EventuallyWithT(t, func(collect *assert.CollectT) { _, err = discovery.getServices() - require.NoError(t, err) + require.NoError(collect, err) for _, cmd := range cmds { pid := int32(cmd.Process.Pid) From bb8fa26fe6d614fe8f07a886d2f7091944cfd05a Mon Sep 17 00:00:00 2001 From: "agent-platform-auto-pr[bot]" <153269286+agent-platform-auto-pr[bot]@users.noreply.github.com> Date: Thu, 5 Dec 2024 12:57:38 +0000 Subject: [PATCH 274/439] [Backport main] Changelog updates for 7.59.1 release (#31778) Co-authored-by: kacper-murzyn <89013263+kacper-murzyn@users.noreply.github.com> --- CHANGELOG-DCA.rst | 13 +++++++++++++ CHANGELOG.rst | 25 +++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/CHANGELOG-DCA.rst b/CHANGELOG-DCA.rst index efccb81c2bcf6..5ed8fdc3430f3 100644 --- a/CHANGELOG-DCA.rst +++ b/CHANGELOG-DCA.rst @@ -2,6 +2,19 @@ Release Notes ============= +.. _Release Notes_7.59.1: + +7.59.1 +====== + +.. _Release Notes_7.59.1_Prelude: + +Prelude +------- + +Released on: 2024-12-02 +Pinned to datadog-agent v7.59.1: `CHANGELOG `_. + .. _Release Notes_7.59.0: 7.59.0 diff --git a/CHANGELOG.rst b/CHANGELOG.rst index a98919db4c293..9dcb70ac5e1e1 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,31 @@ Release Notes ============= +.. _Release Notes_7.59.1: + +7.59.1 +====== + +.. _Release Notes_7.59.1_Prelude: + +Prelude +------- + +Release on: 2024-12-02 + + +.. _Release Notes_7.59.1_Enhancement Notes: + +Enhancement Notes +----------------- + +- Setting up a temporary directory for `JMXFetch `_ to use + when it runs. Using the same one the Agent uses when running as this guarantees a directory where + JMXFetch can write to. This helps when JMXFetch sends metrics over + `Unix Domain Socket ` as it needs + access to a temp directory which it can write to. + + .. _Release Notes_7.59.0: 7.59.0 From beb62740a343dd25253f5383edc6b5e8dba4006c Mon Sep 17 00:00:00 2001 From: Wassim Dhif Date: Thu, 5 Dec 2024 15:43:46 +0100 Subject: [PATCH 275/439] fix(podresources): switch socket error to debug (#31789) Signed-off-by: Wassim DHIF --- pkg/util/kubernetes/kubelet/kubelet.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/util/kubernetes/kubelet/kubelet.go b/pkg/util/kubernetes/kubelet/kubelet.go index b1ba6785e5940..5708841967134 100644 --- a/pkg/util/kubernetes/kubelet/kubelet.go +++ b/pkg/util/kubernetes/kubelet/kubelet.go @@ -214,7 +214,8 @@ func (ku *KubeUtil) getLocalPodList(ctx context.Context) (*PodList, error) { err = ku.addContainerResourcesData(ctx, pods.Items) if err != nil { - log.Errorf("Error adding container resources data: %s", err) + // TODO: Switch back to error level once the socket issue is fixed. + log.Debugf("Error adding container resources data: %s", err) } // ensure we dont have nil pods From 013c5722b6a0d2b30dd49714120bab652f3536f1 Mon Sep 17 00:00:00 2001 From: Amit Slavin <108348428+amitslavin@users.noreply.github.com> Date: Thu, 5 Dec 2024 17:00:27 +0200 Subject: [PATCH 276/439] [USM] Fix TestInvalidBatchCountMetric flakiness (#31772) --- pkg/network/protocols/events/consumer_test.go | 71 ++++++++++++------- 1 file changed, 45 insertions(+), 26 deletions(-) diff --git a/pkg/network/protocols/events/consumer_test.go b/pkg/network/protocols/events/consumer_test.go index 2b1bba26b97ad..5e9864b5a342a 100644 --- a/pkg/network/protocols/events/consumer_test.go +++ b/pkg/network/protocols/events/consumer_test.go @@ -18,6 +18,8 @@ import ( manager "github.com/DataDog/ebpf-manager" "github.com/cilium/ebpf" + "github.com/cilium/ebpf/features" + "github.com/cilium/ebpf/perf" "github.com/cilium/ebpf/ringbuf" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -78,6 +80,33 @@ func TestConsumer(t *testing.T) { } } +func TestInvalidBatchCountMetric(t *testing.T) { + kversion, err := kernel.HostVersion() + require.NoError(t, err) + if minVersion := kernel.VersionCode(4, 14, 0); kversion < minVersion { + t.Skipf("package not supported by kernels < %s", minVersion) + } + + c := config.New() + program, err := newEBPFProgram(c) + require.NoError(t, err) + t.Cleanup(func() { program.Stop(manager.CleanAll) }) + + consumer, err := NewConsumer("test", program, func([]uint64) {}) + require.NoError(t, err) + + // We are creating a raw sample with a data length of 4, which is smaller than sizeOfBatch + // and would be considered an invalid batch. + recordSample(c, consumer, []byte("test")) + + consumer.Start() + t.Cleanup(func() { consumer.Stop() }) + require.Eventually(t, func() bool { + // Wait for the consumer to process the invalid batch. + return consumer.invalidBatchCount.Get() == 1 + }, 5*time.Second, 100*time.Millisecond) +} + type eventGenerator struct { // map used for coordinating test with eBPF program space testMap *ebpf.Map @@ -86,6 +115,22 @@ type eventGenerator struct { testFile *os.File } +// recordSample records a sample using the consumer handler. +func recordSample(c *config.Config, consumer *Consumer[uint64], sampleData []byte) { + // Ring buffers require kernel version 5.8.0 or higher, therefore, the handler is chosen based on the kernel version. + if c.EnableUSMRingBuffers && features.HaveMapType(ebpf.RingBuf) == nil { + handler := consumer.handler.(*ddebpf.RingBufferHandler) + handler.RecordHandler(&ringbuf.Record{ + RawSample: sampleData, + }, nil, nil) + } else { + handler := consumer.handler.(*ddebpf.PerfHandler) + handler.RecordHandler(&perf.Record{ + RawSample: sampleData, + }, nil, nil) + } +} + func newEventGenerator(program *manager.Manager, t *testing.T) *eventGenerator { m, _, _ := program.GetMap("test") require.NotNilf(t, m, "couldn't find test map") @@ -171,29 +216,3 @@ func newEBPFProgram(c *config.Config) (*manager.Manager, error) { return m, nil } - -func TestInvalidBatchCountMetric(t *testing.T) { - kversion, err := kernel.HostVersion() - require.NoError(t, err) - if minVersion := kernel.VersionCode(4, 14, 0); kversion < minVersion { - t.Skipf("package not supported by kernels < %s", minVersion) - } - - program, err := newEBPFProgram(config.New()) - require.NoError(t, err) - - ringBufferHandler := ddebpf.NewRingBufferHandler(1) - ringBufferHandler.RecordHandler(&ringbuf.Record{ - RawSample: []byte("test"), - }, nil, nil) - - consumer, err := NewConsumer("test", program, func(_ []uint64) {}) - require.NoError(t, err) - consumer.handler = ringBufferHandler - - consumer.Start() - program.Stop(manager.CleanAll) - consumer.Stop() - - require.Equalf(t, int(consumer.invalidBatchCount.Get()), 1, "invalidBatchCount should be greater than 0") -} From 973511f1c1ff0e282e71427f6d93efd14ba59a33 Mon Sep 17 00:00:00 2001 From: Kevin Fairise <132568982+KevinFairise2@users.noreply.github.com> Date: Thu, 5 Dec 2024 16:50:50 +0100 Subject: [PATCH 277/439] Update update-go task to update go.work, and rework modules.go-work to only synchronise used modules with modules.yml (#31754) --- go.work | 1 + internal/tools/worksynchronizer/go.mod | 14 +++ internal/tools/worksynchronizer/go.sum | 19 ++++ .../worksynchronizer/worksynchronizer.go | 98 +++++++++++++++++++ modules.yml | 4 + tasks/modules.py | 18 +--- tasks/update_go.py | 2 + 7 files changed, 143 insertions(+), 13 deletions(-) create mode 100644 internal/tools/worksynchronizer/go.mod create mode 100644 internal/tools/worksynchronizer/go.sum create mode 100644 internal/tools/worksynchronizer/worksynchronizer.go diff --git a/go.work b/go.work index fb1eb5e121c1c..880b236237204 100644 --- a/go.work +++ b/go.work @@ -51,6 +51,7 @@ use ( internal/tools/modformatter internal/tools/modparser internal/tools/proto + internal/tools/worksynchronizer pkg/aggregator/ckey pkg/api pkg/collector/check/defaults diff --git a/internal/tools/worksynchronizer/go.mod b/internal/tools/worksynchronizer/go.mod new file mode 100644 index 0000000000000..222e3c82c6c59 --- /dev/null +++ b/internal/tools/worksynchronizer/go.mod @@ -0,0 +1,14 @@ +module github.com/DataDog/datadog-agent/internal/tools/worksynchronizer + +go 1.23.0 + +require ( + golang.org/x/mod v0.22.0 + gopkg.in/yaml.v3 v3.0.1 +) + +require ( + github.com/kr/pretty v0.3.1 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect +) diff --git a/internal/tools/worksynchronizer/go.sum b/internal/tools/worksynchronizer/go.sum new file mode 100644 index 0000000000000..f1d48861c035b --- /dev/null +++ b/internal/tools/worksynchronizer/go.sum @@ -0,0 +1,19 @@ +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= +golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/internal/tools/worksynchronizer/worksynchronizer.go b/internal/tools/worksynchronizer/worksynchronizer.go new file mode 100644 index 0000000000000..5ac672aa91a04 --- /dev/null +++ b/internal/tools/worksynchronizer/worksynchronizer.go @@ -0,0 +1,98 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2022-present Datadog, Inc. + +// Package main contains the logic for the go.mod file parser +package main + +import ( + "flag" + "fmt" + "os" + "slices" + + "golang.org/x/mod/modfile" + + "gopkg.in/yaml.v3" +) + +func parseWorkfile(path string) (*modfile.WorkFile, error) { + data, err := os.ReadFile(path) + if err != nil { + return nil, fmt.Errorf("could not read %s file", path) + } + + parsedFile, err := modfile.ParseWork(path, data, nil) + if err != nil { + return nil, fmt.Errorf("could not parse %s file", path) + } + + return parsedFile, nil +} + +type modules struct { + Modules map[string]any `yaml:"modules"` +} + +func parseModulesList(path string) ([]string, error) { + data, err := os.ReadFile(path) + if err != nil { + return nil, fmt.Errorf("could not read %s file", path) + } + + var parsedModules modules + err = yaml.Unmarshal(data, &parsedModules) + if err != nil { + return nil, fmt.Errorf("could not parse %s file", path) + } + + res := make([]string, 0, len(parsedModules.Modules)) + for module, moduleConfig := range parsedModules.Modules { + if config, ok := moduleConfig.(string); ok && config == "ignored" { + continue + } + res = append(res, module) + } + return res, nil +} +func main() { + var workPath string + var modulesFilePath string + + flag.StringVar(&workPath, "path", "", "Path to the go module to inspect") + flag.StringVar(&modulesFilePath, "modules-file", "", "Path to modules.yml file") + + flag.Parse() + + // Check that both flags have been set + if flag.NFlag() != 2 { + flag.Usage() + os.Exit(1) + } + + parsedWorkFile, err := parseWorkfile(workPath) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + + parsedModules, err := parseModulesList(modulesFilePath) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + + slices.Sort(parsedModules) + + parsedWorkFile.SetUse([]*modfile.Use{}) + for _, module := range parsedModules { + parsedWorkFile.AddUse(module, module) + } + + if err := os.WriteFile(workPath, modfile.Format(parsedWorkFile.Syntax), 0644); err != nil { + fmt.Println(err) + os.Exit(1) + } + +} diff --git a/modules.yml b/modules.yml index cc5d5666b14dd..a84b452117db1 100644 --- a/modules.yml +++ b/modules.yml @@ -116,6 +116,10 @@ modules: independent: false should_tag: false should_test_condition: never + internal/tools/worksynchronizer: + independent: false + should_tag: false + should_test_condition: never pkg/aggregator/ckey: used_by_otel: true pkg/api: diff --git a/tasks/modules.py b/tasks/modules.py index 09192a074973a..9d92b5324cd2a 100644 --- a/tasks/modules.py +++ b/tasks/modules.py @@ -79,22 +79,14 @@ def generate_dummy_package(ctx, folder): @task -def go_work(_: Context): +def go_work(ctx: Context): """ - Re-create the go.work file using the module list contained in get_default_modules() - and the go version contained in the file .go-version. + Update the go work to use all the modules defined in modules.yml """ - # read go version from the .go-version file, removing the bugfix part of the version - - with open(".go-version") as f: - go_version = f.read().strip() - - with open("go.work", "w") as f: - f.write(f"go {go_version}\n\nuse (\n") - for mod in get_default_modules().values(): - f.write(f"\t{mod.path}\n") - f.write(")\n") + ctx.run( + "go run ./internal/tools/worksynchronizer/worksynchronizer.go --path ./go.work --modules-file ./modules.yml" + ) @task diff --git a/tasks/update_go.py b/tasks/update_go.py index 8e2d638bbddd7..923fb8d0425e4 100644 --- a/tasks/update_go.py +++ b/tasks/update_go.py @@ -33,6 +33,8 @@ ("./pkg/logs/launchers/windowsevent/README.md", "install go ", "+,", False), ("./.wwhrd.yml", "raw.githubusercontent.com/golang/go/go", "/LICENSE", True), ("./docs/public/setup.md", "version `", "` or later", True), + ("./go.work", "go ", "", False), + ("./go.work", "toolchain go", "", True), ] PATTERN_MAJOR_MINOR = r'1\.\d+' From 835a84819e77e468e350f1e88474436455031641 Mon Sep 17 00:00:00 2001 From: Kevin Fairise <132568982+KevinFairise2@users.noreply.github.com> Date: Thu, 5 Dec 2024 17:36:36 +0100 Subject: [PATCH 278/439] Revert "Move containers integration tests to e2e provisioners" (#31755) --- .../pkg/environments/aws/kubernetes/eks.go | 15 +- .../pkg/environments/aws/kubernetes/kind.go | 12 +- test/new-e2e/tests/containers/base_test.go | 47 ++- test/new-e2e/tests/containers/docker_test.go | 43 ++- .../tests/containers/dump_cluster_state.go | 341 ++++++++++++++++++ test/new-e2e/tests/containers/ecs_test.go | 70 ++-- test/new-e2e/tests/containers/eks_test.go | 100 ++++- test/new-e2e/tests/containers/k8s_test.go | 99 ++--- test/new-e2e/tests/containers/kindvm_test.go | 85 ++++- 9 files changed, 681 insertions(+), 131 deletions(-) create mode 100644 test/new-e2e/tests/containers/dump_cluster_state.go diff --git a/test/new-e2e/pkg/environments/aws/kubernetes/eks.go b/test/new-e2e/pkg/environments/aws/kubernetes/eks.go index 92262aa9d7380..22971ae20f9ed 100644 --- a/test/new-e2e/pkg/environments/aws/kubernetes/eks.go +++ b/test/new-e2e/pkg/environments/aws/kubernetes/eks.go @@ -112,15 +112,6 @@ func EKSRunFunc(ctx *pulumi.Context, env *environments.Kubernetes, params *Provi // Deploy the agent if params.agentOptions != nil { params.agentOptions = append(params.agentOptions, kubernetesagentparams.WithPulumiResourceOptions(utils.PulumiDependsOn(cluster)), kubernetesagentparams.WithFakeintake(fakeIntake), kubernetesagentparams.WithTags([]string{"stackid:" + ctx.Stack()})) - - eksParams, err := eks.NewParams(params.eksOptions...) - if err != nil { - return err - } - if eksParams.WindowsNodeGroup { - params.agentOptions = append(params.agentOptions, kubernetesagentparams.WithDeployWindows()) - } - kubernetesAgent, err := helm.NewKubernetesAgent(&awsEnv, "eks", cluster.KubeProvider, params.agentOptions...) if err != nil { return err @@ -135,7 +126,7 @@ func EKSRunFunc(ctx *pulumi.Context, env *environments.Kubernetes, params *Provi } // Deploy standalone dogstatsd if params.deployDogstatsd { - if _, err := dogstatsdstandalone.K8sAppDefinition(&awsEnv, cluster.KubeProvider, "dogstatsd-standalone", fakeIntake, true, "", utils.PulumiDependsOn(cluster)); err != nil { + if _, err := dogstatsdstandalone.K8sAppDefinition(&awsEnv, cluster.KubeProvider, "dogstatsd-standalone", fakeIntake, true, ""); err != nil { return err } } @@ -147,7 +138,7 @@ func EKSRunFunc(ctx *pulumi.Context, env *environments.Kubernetes, params *Provi } // dogstatsd clients that report to the Agent - if _, err := dogstatsd.K8sAppDefinition(&awsEnv, cluster.KubeProvider, "workload-dogstatsd", 8125, "/var/run/datadog/dsd.socket", utils.PulumiDependsOn(workloadWithCRDDeps...)); err != nil { + if _, err := dogstatsd.K8sAppDefinition(&awsEnv, cluster.KubeProvider, "workload-dogstatsd", 8125, "/var/run/datadog/dsd.socket", utils.PulumiDependsOn(cluster)); err != nil { return err } @@ -166,7 +157,7 @@ func EKSRunFunc(ctx *pulumi.Context, env *environments.Kubernetes, params *Provi return err } - if _, err := mutatedbyadmissioncontroller.K8sAppDefinition(&awsEnv, cluster.KubeProvider, "workload-mutated", "workload-mutated-lib-injection", utils.PulumiDependsOn(workloadWithCRDDeps...)); err != nil { + if _, err := mutatedbyadmissioncontroller.K8sAppDefinition(&awsEnv, cluster.KubeProvider, "workload-mutated", "workload-mutated-lib-injection", utils.PulumiDependsOn(cluster)); err != nil { return err } diff --git a/test/new-e2e/pkg/environments/aws/kubernetes/kind.go b/test/new-e2e/pkg/environments/aws/kubernetes/kind.go index 2230f1a9c1736..60da0620167f9 100644 --- a/test/new-e2e/pkg/environments/aws/kubernetes/kind.go +++ b/test/new-e2e/pkg/environments/aws/kubernetes/kind.go @@ -129,17 +129,19 @@ func KindRunFunc(ctx *pulumi.Context, env *environments.Kubernetes, params *Prov var dependsOnCrd []pulumi.Resource if params.agentOptions != nil { - helmValues := ` + kindClusterName := ctx.Stack() + helmValues := fmt.Sprintf(` datadog: kubelet: tlsVerify: false + clusterName: "%s" agents: useHostNetwork: true -` +`, kindClusterName) - newOpts := []kubernetesagentparams.Option{kubernetesagentparams.WithHelmValues(helmValues), kubernetesagentparams.WithClusterName(kindCluster.ClusterName), kubernetesagentparams.WithTags([]string{"stackid:" + ctx.Stack()})} + newOpts := []kubernetesagentparams.Option{kubernetesagentparams.WithHelmValues(helmValues), kubernetesagentparams.WithTags([]string{"stackid:" + ctx.Stack()})} params.agentOptions = append(newOpts, params.agentOptions...) - agent, err := helm.NewKubernetesAgent(&awsEnv, "kind", kubeProvider, params.agentOptions...) + agent, err := helm.NewKubernetesAgent(&awsEnv, kindClusterName, kubeProvider, params.agentOptions...) if err != nil { return err } @@ -180,7 +182,7 @@ agents: return err } - if _, err := mutatedbyadmissioncontroller.K8sAppDefinition(&awsEnv, kubeProvider, "workload-mutated", "workload-mutated-lib-injection", utils.PulumiDependsOn(dependsOnCrd...)); err != nil { + if _, err := mutatedbyadmissioncontroller.K8sAppDefinition(&awsEnv, kubeProvider, "workload-mutated", "workload-mutated-lib-injection"); err != nil { return err } diff --git a/test/new-e2e/tests/containers/base_test.go b/test/new-e2e/tests/containers/base_test.go index 7bc4735a43dd2..84bce8ea70197 100644 --- a/test/new-e2e/tests/containers/base_test.go +++ b/test/new-e2e/tests/containers/base_test.go @@ -14,6 +14,7 @@ import ( "github.com/samber/lo" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/suite" "gopkg.in/yaml.v3" "gopkg.in/zorkian/go-datadog-api.v2" @@ -22,21 +23,39 @@ import ( "github.com/DataDog/datadog-agent/pkg/util/pointer" "github.com/DataDog/datadog-agent/test/fakeintake/aggregator" fakeintake "github.com/DataDog/datadog-agent/test/fakeintake/client" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/runner" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/runner/parameters" ) -type baseSuite[Env any] struct { - e2e.BaseSuite[Env] +type baseSuite struct { + suite.Suite - Fakeintake *fakeintake.Client - clusterName string + startTime time.Time + endTime time.Time + datadogClient *datadog.Client + Fakeintake *fakeintake.Client + clusterName string } -func (suite *baseSuite[Env]) BeforeTest(suiteName, testName string) { +func (suite *baseSuite) SetupSuite() { + apiKey, err := runner.GetProfile().SecretStore().Get(parameters.APIKey) + suite.Require().NoError(err) + appKey, err := runner.GetProfile().SecretStore().Get(parameters.APPKey) + suite.Require().NoError(err) + suite.datadogClient = datadog.NewClient(apiKey, appKey) + + suite.startTime = time.Now() +} + +func (suite *baseSuite) TearDownSuite() { + suite.endTime = time.Now() +} + +func (suite *baseSuite) BeforeTest(suiteName, testName string) { suite.T().Logf("START %s/%s %s", suiteName, testName, time.Now()) } -func (suite *baseSuite[Env]) AfterTest(suiteName, testName string) { +func (suite *baseSuite) AfterTest(suiteName, testName string) { suite.T().Logf("FINISH %s/%s %s", suiteName, testName, time.Now()) } @@ -79,7 +98,7 @@ func (mc *myCollectT) Errorf(format string, args ...interface{}) { mc.CollectT.Errorf(format, args...) } -func (suite *baseSuite[Env]) testMetric(args *testMetricArgs) { +func (suite *baseSuite) testMetric(args *testMetricArgs) { prettyMetricQuery := fmt.Sprintf("%s{%s}", args.Filter.Name, strings.Join(args.Filter.Tags, ",")) suite.Run("metric "+prettyMetricQuery, func() { @@ -88,7 +107,7 @@ func (suite *baseSuite[Env]) testMetric(args *testMetricArgs) { expectedTags = lo.Map(*args.Expect.Tags, func(tag string, _ int) *regexp.Regexp { return regexp.MustCompile(tag) }) } - optionalTags := []*regexp.Regexp{regexp.MustCompile("stackid:.*")} // The stackid tag is added by the framework itself to allow filtering on the stack id + var optionalTags []*regexp.Regexp if args.Optional.Tags != nil { optionalTags = lo.Map(*args.Optional.Tags, func(tag string, _ int) *regexp.Regexp { return regexp.MustCompile(tag) }) } @@ -101,7 +120,7 @@ func (suite *baseSuite[Env]) testMetric(args *testMetricArgs) { return "filter_tag_" + tag }) - if _, err := suite.DatadogClient().PostEvent(&datadog.Event{ + if _, err := suite.datadogClient.PostEvent(&datadog.Event{ Title: pointer.Ptr(fmt.Sprintf("testMetric %s", prettyMetricQuery)), Text: pointer.Ptr(fmt.Sprintf(`%%%%%% ### Result @@ -208,7 +227,7 @@ type testLogExpectArgs struct { Message string } -func (suite *baseSuite[Env]) testLog(args *testLogArgs) { +func (suite *baseSuite) testLog(args *testLogArgs) { prettyLogQuery := fmt.Sprintf("%s{%s}", args.Filter.Service, strings.Join(args.Filter.Tags, ",")) suite.Run("log "+prettyLogQuery, func() { @@ -230,7 +249,7 @@ func (suite *baseSuite[Env]) testLog(args *testLogArgs) { return "filter_tag_" + tag }) - if _, err := suite.DatadogClient().PostEvent(&datadog.Event{ + if _, err := suite.datadogClient.PostEvent(&datadog.Event{ Title: pointer.Ptr(fmt.Sprintf("testLog %s", prettyLogQuery)), Text: pointer.Ptr(fmt.Sprintf(`%%%%%% ### Result @@ -337,7 +356,7 @@ type testCheckRunExpectArgs struct { AcceptUnexpectedTags bool } -func (suite *baseSuite[Env]) testCheckRun(args *testCheckRunArgs) { +func (suite *baseSuite) testCheckRun(args *testCheckRunArgs) { prettyCheckRunQuery := fmt.Sprintf("%s{%s}", args.Filter.Name, strings.Join(args.Filter.Tags, ",")) suite.Run("checkRun "+prettyCheckRunQuery, func() { @@ -359,7 +378,7 @@ func (suite *baseSuite[Env]) testCheckRun(args *testCheckRunArgs) { return "filter_tag_" + tag }) - if _, err := suite.DatadogClient().PostEvent(&datadog.Event{ + if _, err := suite.datadogClient.PostEvent(&datadog.Event{ Title: pointer.Ptr(fmt.Sprintf("testCheckRun %s", prettyCheckRunQuery)), Text: pointer.Ptr(fmt.Sprintf(`%%%%%% ### Result diff --git a/test/new-e2e/tests/containers/docker_test.go b/test/new-e2e/tests/containers/docker_test.go index 985d80e46b757..a7d27f4fa2987 100644 --- a/test/new-e2e/tests/containers/docker_test.go +++ b/test/new-e2e/tests/containers/docker_test.go @@ -6,24 +6,53 @@ package containers import ( + "context" + "encoding/json" + "fmt" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/components" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/runner" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/utils/infra" + "github.com/DataDog/test-infra-definitions/scenarios/aws/ec2" + "github.com/pulumi/pulumi/sdk/v3/go/auto" + "github.com/stretchr/testify/suite" + "os" "testing" - - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments" - awsdocker "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments/aws/docker" ) type DockerSuite struct { - baseSuite[environments.DockerHost] + baseSuite } func TestDockerSuite(t *testing.T) { - e2e.Run(t, &DockerSuite{}, e2e.WithProvisioner(awsdocker.Provisioner(awsdocker.WithTestingWorkload()))) + suite.Run(t, &DockerSuite{}) } func (suite *DockerSuite) SetupSuite() { + ctx := context.Background() + + stackConfig := runner.ConfigMap{ + "ddagent:deploy": auto.ConfigValue{Value: "true"}, + "ddagent:fakeintake": auto.ConfigValue{Value: "true"}, + } + + _, stackOutput, err := infra.GetStackManager().GetStack(ctx, "dockerstack", stackConfig, ec2.VMRunWithDocker, false) + suite.Require().NoError(err) + + var fakeintake components.FakeIntake + fiSerialized, err := json.Marshal(stackOutput.Outputs["dd-Fakeintake-aws-aws-vm"].Value) + suite.Require().NoError(err) + suite.Require().NoError(fakeintake.Import(fiSerialized, &fakeintake)) + suite.Require().NoError(fakeintake.Init(suite)) + suite.Fakeintake = fakeintake.Client() + + var host components.RemoteHost + hostSerialized, err := json.Marshal(stackOutput.Outputs["dd-Host-aws-vm"].Value) + suite.Require().NoError(err) + suite.Require().NoError(host.Import(hostSerialized, &host)) + suite.Require().NoError(host.Init(suite)) + suite.clusterName = fmt.Sprintf("%s-%v", os.Getenv("USER"), host.Address) + suite.baseSuite.SetupSuite() - suite.Fakeintake = suite.Env().FakeIntake.Client() } func (suite *DockerSuite) TestDSDWithUDS() { diff --git a/test/new-e2e/tests/containers/dump_cluster_state.go b/test/new-e2e/tests/containers/dump_cluster_state.go new file mode 100644 index 0000000000000..ddf546d889d09 --- /dev/null +++ b/test/new-e2e/tests/containers/dump_cluster_state.go @@ -0,0 +1,341 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2023-present Datadog, Inc. + +package containers + +import ( + "bytes" + "context" + "encoding/base64" + "fmt" + "io" + "net" + "os" + "os/user" + "strings" + "sync" + + "github.com/DataDog/datadog-agent/pkg/util/pointer" + awsconfig "github.com/aws/aws-sdk-go-v2/config" + awsec2 "github.com/aws/aws-sdk-go-v2/service/ec2" + awsec2types "github.com/aws/aws-sdk-go-v2/service/ec2/types" + awseks "github.com/aws/aws-sdk-go-v2/service/eks" + awsekstypes "github.com/aws/aws-sdk-go-v2/service/eks/types" + "golang.org/x/crypto/ssh" + "golang.org/x/crypto/ssh/agent" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/cli-runtime/pkg/genericclioptions" + "k8s.io/cli-runtime/pkg/genericiooptions" + "k8s.io/client-go/kubernetes" + "k8s.io/client-go/tools/clientcmd" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" + kubectlget "k8s.io/kubectl/pkg/cmd/get" + kubectlutil "k8s.io/kubectl/pkg/cmd/util" +) + +func dumpEKSClusterState(ctx context.Context, name string) (ret string) { + var out strings.Builder + defer func() { ret = out.String() }() + + cfg, err := awsconfig.LoadDefaultConfig(ctx) + if err != nil { + fmt.Fprintf(&out, "Failed to load AWS config: %v\n", err) + return + } + + client := awseks.NewFromConfig(cfg) + + clusterDescription, err := client.DescribeCluster(ctx, &awseks.DescribeClusterInput{ + Name: &name, + }) + if err != nil { + fmt.Fprintf(&out, "Failed to describe cluster %s: %v\n", name, err) + return + } + + cluster := clusterDescription.Cluster + if cluster.Status != awsekstypes.ClusterStatusActive { + fmt.Fprintf(&out, "EKS cluster %s is not in active state. Current status: %s\n", name, cluster.Status) + return + } + + kubeconfig := clientcmdapi.NewConfig() + kubeconfig.Clusters[name] = &clientcmdapi.Cluster{ + Server: *cluster.Endpoint, + } + if kubeconfig.Clusters[name].CertificateAuthorityData, err = base64.StdEncoding.DecodeString(*cluster.CertificateAuthority.Data); err != nil { + fmt.Fprintf(&out, "Failed to decode certificate authority: %v\n", err) + } + kubeconfig.AuthInfos[name] = &clientcmdapi.AuthInfo{ + Exec: &clientcmdapi.ExecConfig{ + APIVersion: "client.authentication.k8s.io/v1beta1", + Command: "aws", + Args: []string{ + "--region", + cfg.Region, + "eks", + "get-token", + "--cluster-name", + name, + "--output", + "json", + }, + }, + } + kubeconfig.Contexts[name] = &clientcmdapi.Context{ + Cluster: name, + AuthInfo: name, + } + kubeconfig.CurrentContext = name + + dumpK8sClusterState(ctx, kubeconfig, &out) + + return +} + +func dumpKindClusterState(ctx context.Context, name string) (ret string) { + var out strings.Builder + defer func() { ret = out.String() }() + + cfg, err := awsconfig.LoadDefaultConfig(ctx) + if err != nil { + fmt.Fprintf(&out, "Failed to load AWS config: %v\n", err) + return + } + + ec2Client := awsec2.NewFromConfig(cfg) + + user, _ := user.Current() + instancesDescription, err := ec2Client.DescribeInstances(ctx, &awsec2.DescribeInstancesInput{ + Filters: []awsec2types.Filter{ + { + Name: pointer.Ptr("tag:managed-by"), + Values: []string{"pulumi"}, + }, + { + Name: pointer.Ptr("tag:username"), + Values: []string{user.Username}, + }, + { + Name: pointer.Ptr("tag:Name"), + Values: []string{name + "-aws-kind"}, + }, + }, + }) + if err != nil { + fmt.Fprintf(&out, "Failed to describe instances: %v\n", err) + return + } + + if instancesDescription == nil || (len(instancesDescription.Reservations) != 1 && len(instancesDescription.Reservations[0].Instances) != 1) { + fmt.Fprintf(&out, "Didn’t find exactly one instance for cluster %s\n", name) + return + } + + instanceIP := instancesDescription.Reservations[0].Instances[0].PrivateIpAddress + + auth := []ssh.AuthMethod{} + + if sshAgentSocket, found := os.LookupEnv("SSH_AUTH_SOCK"); found { + sshAgent, err := net.Dial("unix", sshAgentSocket) + if err != nil { + fmt.Fprintf(&out, "Failed to connect to SSH agent: %v\n", err) + return + } + defer sshAgent.Close() + + auth = append(auth, ssh.PublicKeysCallback(agent.NewClient(sshAgent).Signers)) + } + + if sshKeyPath, found := os.LookupEnv("E2E_PRIVATE_KEY_PATH"); found { + sshKey, err := os.ReadFile(sshKeyPath) + if err != nil { + fmt.Fprintf(&out, "Failed to read SSH key: %v\n", err) + return + } + + signer, err := ssh.ParsePrivateKey(sshKey) + if err != nil { + fmt.Fprintf(&out, "Failed to parse SSH key: %v\n", err) + return + } + + auth = append(auth, ssh.PublicKeys(signer)) + } + + var sshClient *ssh.Client + err = nil + for _, user := range []string{"ec2-user", "ubuntu"} { + sshClient, err = ssh.Dial("tcp", *instanceIP+":22", &ssh.ClientConfig{ + User: user, + Auth: auth, + HostKeyCallback: ssh.InsecureIgnoreHostKey(), + }) + if err == nil { + break + } + } + if err != nil { + fmt.Fprintf(&out, "Failed to dial SSH server %s: %v\n", *instanceIP, err) + return + } + defer sshClient.Close() + + sshSession, err := sshClient.NewSession() + if err != nil { + fmt.Fprintf(&out, "Failed to create SSH session: %v\n", err) + return + } + defer sshSession.Close() + + stdout, err := sshSession.StdoutPipe() + if err != nil { + fmt.Fprintf(&out, "Failed to create stdout pipe: %v\n", err) + return + } + + stderr, err := sshSession.StderrPipe() + if err != nil { + fmt.Fprintf(&out, "Failed to create stderr pipe: %v\n", err) + return + } + + err = sshSession.Start("kind get kubeconfig --name \"$(kind get clusters | head -n 1)\"") + if err != nil { + fmt.Fprintf(&out, "Failed to start remote command: %v\n", err) + return + } + + var stdoutBuf bytes.Buffer + + var wg sync.WaitGroup + wg.Add(2) + + go func() { + if _, err := io.Copy(&stdoutBuf, stdout); err != nil { + fmt.Fprintf(&out, "Failed to read stdout: %v\n", err) + } + wg.Done() + }() + + go func() { + if _, err := io.Copy(&out, stderr); err != nil { + fmt.Fprintf(&out, "Failed to read stderr: %v\n", err) + } + wg.Done() + }() + + err = sshSession.Wait() + wg.Wait() + if err != nil { + fmt.Fprintf(&out, "Remote command exited with error: %v\n", err) + return + } + + kubeconfig, err := clientcmd.Load(stdoutBuf.Bytes()) + if err != nil { + fmt.Fprintf(&out, "Failed to parse kubeconfig: %v\n", err) + return + } + + for _, cluster := range kubeconfig.Clusters { + cluster.Server = strings.Replace(cluster.Server, "0.0.0.0", *instanceIP, 1) + cluster.CertificateAuthorityData = nil + cluster.InsecureSkipTLSVerify = true + } + + dumpK8sClusterState(ctx, kubeconfig, &out) + + return +} + +func dumpK8sClusterState(ctx context.Context, kubeconfig *clientcmdapi.Config, out *strings.Builder) { + kubeconfigFile, err := os.CreateTemp("", "kubeconfig") + if err != nil { + fmt.Fprintf(out, "Failed to create kubeconfig temporary file: %v\n", err) + return + } + defer os.Remove(kubeconfigFile.Name()) + + if err := clientcmd.WriteToFile(*kubeconfig, kubeconfigFile.Name()); err != nil { + fmt.Fprintf(out, "Failed to write kubeconfig file: %v\n", err) + return + } + + if err := kubeconfigFile.Close(); err != nil { + fmt.Fprintf(out, "Failed to close kubeconfig file: %v\n", err) + } + + fmt.Fprintf(out, "\n") + + configFlags := genericclioptions.NewConfigFlags(false) + kubeconfigFileName := kubeconfigFile.Name() + configFlags.KubeConfig = &kubeconfigFileName + + factory := kubectlutil.NewFactory(configFlags) + + streams := genericiooptions.IOStreams{ + Out: out, + ErrOut: out, + } + + getCmd := kubectlget.NewCmdGet("", factory, streams) + getCmd.SetOut(out) + getCmd.SetErr(out) + getCmd.SetContext(ctx) + getCmd.SetArgs([]string{ + "nodes,all", + "--all-namespaces", + "-o", + "wide", + }) + if err := getCmd.ExecuteContext(ctx); err != nil { + fmt.Fprintf(out, "Failed to execute Get command: %v\n", err) + return + } + + // Get the logs of containers that have restarted + config, err := clientcmd.BuildConfigFromFlags("", kubeconfigFile.Name()) + if err != nil { + fmt.Fprintf(out, "Failed to build Kubernetes config: %v\n", err) + return + } + k8sClient, err := kubernetes.NewForConfig(config) + if err != nil { + fmt.Fprintf(out, "Failed to create Kubernetes client: %v\n", err) + return + } + + pods, err := k8sClient.CoreV1().Pods("").List(ctx, metav1.ListOptions{}) + if err != nil { + fmt.Fprintf(out, "Failed to list pods: %v\n", err) + return + } + + for _, pod := range pods.Items { + for _, containerStatus := range pod.Status.ContainerStatuses { + if containerStatus.RestartCount > 0 { + fmt.Fprintf(out, "\nLOGS FOR POD %s/%s CONTAINER %s:\n", pod.Namespace, pod.Name, containerStatus.Name) + logs, err := k8sClient.CoreV1().Pods(pod.Namespace).GetLogs(pod.Name, &corev1.PodLogOptions{ + Container: containerStatus.Name, + Previous: true, + // TailLines: pointer.Ptr(int64(100)), + }).Stream(ctx) + if err != nil { + fmt.Fprintf(out, "Failed to get logs: %v\n", err) + continue + } + defer logs.Close() + + _, err = io.Copy(out, logs) + if err != nil { + fmt.Fprintf(out, "Failed to copy logs: %v\n", err) + continue + } + } + } + } +} diff --git a/test/new-e2e/tests/containers/ecs_test.go b/test/new-e2e/tests/containers/ecs_test.go index f5603278f017e..9498aa9414deb 100644 --- a/test/new-e2e/tests/containers/ecs_test.go +++ b/test/new-e2e/tests/containers/ecs_test.go @@ -7,26 +7,29 @@ package containers import ( "context" + "encoding/json" "regexp" "strings" "testing" "time" + ecsComp "github.com/DataDog/test-infra-definitions/components/ecs" + "github.com/DataDog/test-infra-definitions/scenarios/aws/ecs" + "github.com/DataDog/datadog-agent/pkg/util/pointer" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/components" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/runner" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/utils/infra" awsconfig "github.com/aws/aws-sdk-go-v2/config" awsecs "github.com/aws/aws-sdk-go-v2/service/ecs" awsecstypes "github.com/aws/aws-sdk-go-v2/service/ecs/types" "github.com/fatih/color" + "github.com/pulumi/pulumi/sdk/v3/go/auto" "github.com/samber/lo" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - - tifecs "github.com/DataDog/test-infra-definitions/scenarios/aws/ecs" - - envecs "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments/aws/ecs" + "github.com/stretchr/testify/suite" ) const ( @@ -38,27 +41,52 @@ const ( ) type ecsSuite struct { - baseSuite[environments.ECS] + baseSuite + ecsClusterName string } func TestECSSuite(t *testing.T) { - e2e.Run(t, &ecsSuite{}, e2e.WithProvisioner(envecs.Provisioner( - envecs.WithECSOptions( - tifecs.WithFargateCapacityProvider(), - tifecs.WithLinuxNodeGroup(), - tifecs.WithWindowsNodeGroup(), - tifecs.WithLinuxBottleRocketNodeGroup(), - ), - envecs.WithTestingWorkload(), - ))) + suite.Run(t, &ecsSuite{}) } func (suite *ecsSuite) SetupSuite() { + ctx := context.Background() + + // Creating the stack + stackConfig := runner.ConfigMap{ + "ddinfra:aws/ecs/linuxECSOptimizedNodeGroup": auto.ConfigValue{Value: "true"}, + "ddinfra:aws/ecs/linuxBottlerocketNodeGroup": auto.ConfigValue{Value: "true"}, + "ddinfra:aws/ecs/windowsLTSCNodeGroup": auto.ConfigValue{Value: "true"}, + "ddagent:deploy": auto.ConfigValue{Value: "true"}, + "ddagent:fakeintake": auto.ConfigValue{Value: "true"}, + "ddtestworkload:deploy": auto.ConfigValue{Value: "true"}, + } + + _, stackOutput, err := infra.GetStackManager().GetStackNoDeleteOnFailure( + ctx, + "ecs-cluster", + ecs.Run, + infra.WithConfigMap(stackConfig), + ) + suite.Require().NoError(err) + + fakeintake := &components.FakeIntake{} + fiSerialized, err := json.Marshal(stackOutput.Outputs["dd-Fakeintake-aws-ecs"].Value) + suite.Require().NoError(err) + suite.Require().NoError(fakeintake.Import(fiSerialized, fakeintake)) + suite.Require().NoError(fakeintake.Init(suite)) + suite.Fakeintake = fakeintake.Client() + + clusterSerialized, err := json.Marshal(stackOutput.Outputs["dd-Cluster-ecs"].Value) + suite.Require().NoError(err) + ecsCluster := &ecsComp.ClusterOutput{} + suite.Require().NoError(ecsCluster.Import(clusterSerialized, ecsCluster)) + + suite.ecsClusterName = ecsCluster.ClusterName + suite.clusterName = suite.ecsClusterName + suite.baseSuite.SetupSuite() - suite.Fakeintake = suite.Env().FakeIntake.Client() - suite.ecsClusterName = suite.Env().ECSCluster.ClusterName - suite.clusterName = suite.Env().ECSCluster.ClusterName } func (suite *ecsSuite) TearDownSuite() { @@ -71,8 +99,8 @@ func (suite *ecsSuite) TearDownSuite() { suite.T().Log(c("https://dddev.datadoghq.com/dashboard/mnw-tdr-jd8/e2e-tests-containers-ecs?refresh_mode=paused&tpl_var_ecs_cluster_name%%5B0%%5D=%s&tpl_var_fake_intake_task_family%%5B0%%5D=%s-fakeintake-ecs&from_ts=%d&to_ts=%d&live=false", suite.ecsClusterName, strings.TrimSuffix(suite.ecsClusterName, "-ecs"), - suite.StartTime().UnixMilli(), - suite.EndTime().UnixMilli(), + suite.startTime.UnixMilli(), + suite.endTime.UnixMilli(), )) } diff --git a/test/new-e2e/tests/containers/eks_test.go b/test/new-e2e/tests/containers/eks_test.go index 163bcdba0f0b4..6562eff6abb80 100644 --- a/test/new-e2e/tests/containers/eks_test.go +++ b/test/new-e2e/tests/containers/eks_test.go @@ -6,32 +6,104 @@ package containers import ( + "context" + "encoding/json" "testing" - tifeks "github.com/DataDog/test-infra-definitions/scenarios/aws/eks" + "github.com/DataDog/test-infra-definitions/scenarios/aws/eks" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e" - awskubernetes "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments/aws/kubernetes" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/components" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/runner" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/runner/parameters" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/utils/infra" + + "github.com/pulumi/pulumi/sdk/v3/go/auto" + "github.com/stretchr/testify/suite" + "k8s.io/client-go/tools/clientcmd" ) type eksSuite struct { k8sSuite + initOnly bool } func TestEKSSuite(t *testing.T) { - e2e.Run(t, &eksSuite{}, e2e.WithProvisioner(awskubernetes.EKSProvisioner( - awskubernetes.WithEKSOptions( - tifeks.WithLinuxNodeGroup(), - tifeks.WithWindowsNodeGroup(), - tifeks.WithBottlerocketNodeGroup(), - tifeks.WithLinuxARMNodeGroup(), - ), - awskubernetes.WithDeployDogstatsd(), - awskubernetes.WithDeployTestWorkload(), - ))) + var initOnly bool + initOnlyParam, err := runner.GetProfile().ParamStore().GetBoolWithDefault(parameters.InitOnly, false) + if err == nil { + initOnly = initOnlyParam + } + suite.Run(t, &eksSuite{initOnly: initOnly}) } func (suite *eksSuite) SetupSuite() { + ctx := context.Background() + + stackConfig := runner.ConfigMap{ + "ddagent:deploy": auto.ConfigValue{Value: "true"}, + "ddagent:fakeintake": auto.ConfigValue{Value: "true"}, + "ddtestworkload:deploy": auto.ConfigValue{Value: "true"}, + "dddogstatsd:deploy": auto.ConfigValue{Value: "true"}, + } + + _, stackOutput, err := infra.GetStackManager().GetStackNoDeleteOnFailure( + ctx, + "eks-cluster", + eks.Run, + infra.WithConfigMap(stackConfig), + ) + + if !suite.Assert().NoError(err) { + stackName, err := infra.GetStackManager().GetPulumiStackName("eks-cluster") + suite.Require().NoError(err) + suite.T().Log(dumpEKSClusterState(ctx, stackName)) + if !runner.GetProfile().AllowDevMode() || !*keepStacks { + infra.GetStackManager().DeleteStack(ctx, "eks-cluster", nil) + } + suite.T().FailNow() + } + + if suite.initOnly { + suite.T().Skip("E2E_INIT_ONLY is set, skipping tests") + } + + fakeintake := &components.FakeIntake{} + fiSerialized, err := json.Marshal(stackOutput.Outputs["dd-Fakeintake-aws-ecs"].Value) + suite.Require().NoError(err) + suite.Require().NoError(fakeintake.Import(fiSerialized, &fakeintake)) + suite.Require().NoError(fakeintake.Init(suite)) + suite.Fakeintake = fakeintake.Client() + + kubeCluster := &components.KubernetesCluster{} + kubeSerialized, err := json.Marshal(stackOutput.Outputs["dd-Cluster-eks"].Value) + suite.Require().NoError(err) + suite.Require().NoError(kubeCluster.Import(kubeSerialized, &kubeCluster)) + suite.Require().NoError(kubeCluster.Init(suite)) + suite.KubeClusterName = kubeCluster.ClusterName + suite.K8sClient = kubeCluster.Client() + suite.K8sConfig, err = clientcmd.RESTConfigFromKubeConfig([]byte(kubeCluster.KubeConfig)) + suite.Require().NoError(err) + + kubernetesAgent := &components.KubernetesAgent{} + kubernetesAgentSerialized, err := json.Marshal(stackOutput.Outputs["dd-KubernetesAgent-aws-datadog-agent"].Value) + suite.Require().NoError(err) + suite.Require().NoError(kubernetesAgent.Import(kubernetesAgentSerialized, &kubernetesAgent)) + + suite.KubernetesAgentRef = kubernetesAgent + suite.k8sSuite.SetupSuite() - suite.Fakeintake = suite.Env().FakeIntake.Client() +} + +func (suite *eksSuite) TearDownSuite() { + if suite.initOnly { + suite.T().Logf("E2E_INIT_ONLY is set, skipping deletion") + return + } + + suite.k8sSuite.TearDownSuite() + + ctx := context.Background() + stackName, err := infra.GetStackManager().GetPulumiStackName("eks-cluster") + suite.Require().NoError(err) + suite.T().Log(dumpEKSClusterState(ctx, stackName)) } diff --git a/test/new-e2e/tests/containers/k8s_test.go b/test/new-e2e/tests/containers/k8s_test.go index 3bf11754dff61..fbb1195a976c3 100644 --- a/test/new-e2e/tests/containers/k8s_test.go +++ b/test/new-e2e/tests/containers/k8s_test.go @@ -22,7 +22,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/util/testutil/flake" "github.com/DataDog/datadog-agent/test/fakeintake/aggregator" fakeintake "github.com/DataDog/datadog-agent/test/fakeintake/client" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/components" "github.com/fatih/color" "github.com/samber/lo" @@ -32,7 +32,9 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/types" + "k8s.io/client-go/kubernetes" "k8s.io/client-go/kubernetes/scheme" + restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/remotecommand" ) @@ -50,12 +52,21 @@ const ( var GitCommit string type k8sSuite struct { - baseSuite[environments.Kubernetes] + baseSuite + + KubeClusterName string + AgentLinuxHelmInstallName string + AgentWindowsHelmInstallName string + KubernetesAgentRef *components.KubernetesAgent + + K8sConfig *restclient.Config + K8sClient kubernetes.Interface } func (suite *k8sSuite) SetupSuite() { + suite.clusterName = suite.KubeClusterName + suite.baseSuite.SetupSuite() - suite.clusterName = suite.Env().KubernetesCluster.ClusterName } func (suite *k8sSuite) TearDownSuite() { @@ -66,10 +77,10 @@ func (suite *k8sSuite) TearDownSuite() { suite.T().Log(c("The data produced and asserted by these tests can be viewed on this dashboard:")) c = color.New(color.Bold, color.FgBlue).SprintfFunc() suite.T().Log(c("https://dddev.datadoghq.com/dashboard/qcp-brm-ysc/e2e-tests-containers-k8s?refresh_mode=paused&tpl_var_kube_cluster_name%%5B0%%5D=%s&tpl_var_fake_intake_task_family%%5B0%%5D=%s-fakeintake-ecs&from_ts=%d&to_ts=%d&live=false", - suite.clusterName, - suite.clusterName, - suite.StartTime().UnixMilli(), - suite.EndTime().UnixMilli(), + suite.KubeClusterName, + suite.KubeClusterName, + suite.startTime.UnixMilli(), + suite.endTime.UnixMilli(), )) } @@ -109,7 +120,7 @@ func (suite *k8sSuite) testUpAndRunning(waitFor time.Duration) { suite.Run("agent pods are ready and not restarting", func() { suite.EventuallyWithTf(func(c *assert.CollectT) { - linuxNodes, err := suite.Env().KubernetesCluster.Client().CoreV1().Nodes().List(ctx, metav1.ListOptions{ + linuxNodes, err := suite.K8sClient.CoreV1().Nodes().List(ctx, metav1.ListOptions{ LabelSelector: fields.OneTermEqualSelector("kubernetes.io/os", "linux").String(), }) // Can be replaced by require.NoErrorf(…) once https://github.com/stretchr/testify/pull/1481 is merged @@ -117,7 +128,7 @@ func (suite *k8sSuite) testUpAndRunning(waitFor time.Duration) { return } - windowsNodes, err := suite.Env().KubernetesCluster.Client().CoreV1().Nodes().List(ctx, metav1.ListOptions{ + windowsNodes, err := suite.K8sClient.CoreV1().Nodes().List(ctx, metav1.ListOptions{ LabelSelector: fields.OneTermEqualSelector("kubernetes.io/os", "windows").String(), }) // Can be replaced by require.NoErrorf(…) once https://github.com/stretchr/testify/pull/1481 is merged @@ -125,39 +136,39 @@ func (suite *k8sSuite) testUpAndRunning(waitFor time.Duration) { return } - linuxPods, err := suite.Env().KubernetesCluster.Client().CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ - LabelSelector: fields.OneTermEqualSelector("app", suite.Env().Agent.LinuxNodeAgent.LabelSelectors["app"]).String(), + linuxPods, err := suite.K8sClient.CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ + LabelSelector: fields.OneTermEqualSelector("app", suite.KubernetesAgentRef.LinuxNodeAgent.LabelSelectors["app"]).String(), }) // Can be replaced by require.NoErrorf(…) once https://github.com/stretchr/testify/pull/1481 is merged if !assert.NoErrorf(c, err, "Failed to list Linux datadog agent pods") { return } - windowsPods, err := suite.Env().KubernetesCluster.Client().CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ - LabelSelector: fields.OneTermEqualSelector("app", suite.Env().Agent.WindowsNodeAgent.LabelSelectors["app"]).String(), + windowsPods, err := suite.K8sClient.CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ + LabelSelector: fields.OneTermEqualSelector("app", suite.KubernetesAgentRef.WindowsNodeAgent.LabelSelectors["app"]).String(), }) // Can be replaced by require.NoErrorf(…) once https://github.com/stretchr/testify/pull/1481 is merged if !assert.NoErrorf(c, err, "Failed to list Windows datadog agent pods") { return } - clusterAgentPods, err := suite.Env().KubernetesCluster.Client().CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ - LabelSelector: fields.OneTermEqualSelector("app", suite.Env().Agent.LinuxClusterAgent.LabelSelectors["app"]).String(), + clusterAgentPods, err := suite.K8sClient.CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ + LabelSelector: fields.OneTermEqualSelector("app", suite.KubernetesAgentRef.LinuxClusterAgent.LabelSelectors["app"]).String(), }) // Can be replaced by require.NoErrorf(…) once https://github.com/stretchr/testify/pull/1481 is merged if !assert.NoErrorf(c, err, "Failed to list datadog cluster agent pods") { return } - clusterChecksPods, err := suite.Env().KubernetesCluster.Client().CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ - LabelSelector: fields.OneTermEqualSelector("app", suite.Env().Agent.LinuxClusterChecks.LabelSelectors["app"]).String(), + clusterChecksPods, err := suite.K8sClient.CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ + LabelSelector: fields.OneTermEqualSelector("app", suite.KubernetesAgentRef.LinuxClusterChecks.LabelSelectors["app"]).String(), }) // Can be replaced by require.NoErrorf(…) once https://github.com/stretchr/testify/pull/1481 is merged if !assert.NoErrorf(c, err, "Failed to list datadog cluster checks runner pods") { return } - dogstatsdPods, err := suite.Env().KubernetesCluster.Client().CoreV1().Pods("dogstatsd-standalone").List(ctx, metav1.ListOptions{ + dogstatsdPods, err := suite.K8sClient.CoreV1().Pods("dogstatsd-standalone").List(ctx, metav1.ListOptions{ LabelSelector: fields.OneTermEqualSelector("app", "dogstatsd-standalone").String(), }) // Can be replaced by require.NoErrorf(…) once https://github.com/stretchr/testify/pull/1481 is merged @@ -188,13 +199,13 @@ func (suite *k8sSuite) TestAdmissionControllerWebhooksExist() { expectedWebhookName := "datadog-webhook" suite.Run("agent registered mutating webhook configuration", func() { - mutatingConfig, err := suite.Env().KubernetesCluster.Client().AdmissionregistrationV1().MutatingWebhookConfigurations().Get(ctx, expectedWebhookName, metav1.GetOptions{}) + mutatingConfig, err := suite.K8sClient.AdmissionregistrationV1().MutatingWebhookConfigurations().Get(ctx, expectedWebhookName, metav1.GetOptions{}) suite.Require().NoError(err) suite.NotNilf(mutatingConfig, "None of the mutating webhook configurations have the name '%s'", expectedWebhookName) }) suite.Run("agent registered validating webhook configuration", func() { - validatingConfig, err := suite.Env().KubernetesCluster.Client().AdmissionregistrationV1().ValidatingWebhookConfigurations().Get(ctx, expectedWebhookName, metav1.GetOptions{}) + validatingConfig, err := suite.K8sClient.AdmissionregistrationV1().ValidatingWebhookConfigurations().Get(ctx, expectedWebhookName, metav1.GetOptions{}) suite.Require().NoError(err) suite.NotNilf(validatingConfig, "None of the validating webhook configurations have the name '%s'", expectedWebhookName) }) @@ -211,27 +222,27 @@ func (suite *k8sSuite) TestVersion() { }{ { "Linux agent", - suite.Env().Agent.LinuxNodeAgent.LabelSelectors["app"], + suite.KubernetesAgentRef.LinuxNodeAgent.LabelSelectors["app"], "agent", }, { "Windows agent", - suite.Env().Agent.WindowsNodeAgent.LabelSelectors["app"], + suite.KubernetesAgentRef.WindowsNodeAgent.LabelSelectors["app"], "agent", }, { "cluster agent", - suite.Env().Agent.LinuxClusterAgent.LabelSelectors["app"], + suite.KubernetesAgentRef.LinuxClusterAgent.LabelSelectors["app"], "cluster-agent", }, { "cluster checks", - suite.Env().Agent.LinuxClusterChecks.LabelSelectors["app"], + suite.KubernetesAgentRef.LinuxClusterChecks.LabelSelectors["app"], "agent", }, } { suite.Run(tt.podType+" pods are running the good version", func() { - linuxPods, err := suite.Env().KubernetesCluster.Client().CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ + linuxPods, err := suite.K8sClient.CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ LabelSelector: fields.OneTermEqualSelector("app", tt.appSelector).String(), Limit: 1, }) @@ -266,8 +277,8 @@ func (suite *k8sSuite) TestCLI() { func (suite *k8sSuite) testAgentCLI() { ctx := context.Background() - pod, err := suite.Env().KubernetesCluster.Client().CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ - LabelSelector: fields.OneTermEqualSelector("app", suite.Env().Agent.LinuxNodeAgent.LabelSelectors["app"]).String(), + pod, err := suite.K8sClient.CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ + LabelSelector: fields.OneTermEqualSelector("app", suite.KubernetesAgentRef.LinuxNodeAgent.LabelSelectors["app"]).String(), Limit: 1, }) suite.Require().NoError(err) @@ -373,8 +384,8 @@ func (suite *k8sSuite) testAgentCLI() { func (suite *k8sSuite) testClusterAgentCLI() { ctx := context.Background() - pod, err := suite.Env().KubernetesCluster.Client().CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ - LabelSelector: fields.OneTermEqualSelector("app", suite.Env().Agent.LinuxClusterAgent.LabelSelectors["app"]).String(), + pod, err := suite.K8sClient.CoreV1().Pods("datadog").List(ctx, metav1.ListOptions{ + LabelSelector: fields.OneTermEqualSelector("app", suite.KubernetesAgentRef.LinuxClusterAgent.LabelSelectors["app"]).String(), Limit: 1, }) suite.Require().NoError(err) @@ -834,7 +845,7 @@ func (suite *k8sSuite) testDogstatsdExternalData(kubeNamespace, kubeDeployment s ctx := context.Background() // Record old pod, so we can be sure we are not looking at the incorrect one after deletion - oldPods, err := suite.Env().KubernetesCluster.KubernetesClient.K8sClient.CoreV1().Pods(kubeNamespace).List(ctx, metav1.ListOptions{ + oldPods, err := suite.K8sClient.CoreV1().Pods(kubeNamespace).List(ctx, metav1.ListOptions{ LabelSelector: fields.OneTermEqualSelector("app", kubeDeployment).String(), }) suite.Require().NoError(err) @@ -842,7 +853,7 @@ func (suite *k8sSuite) testDogstatsdExternalData(kubeNamespace, kubeDeployment s oldPod := oldPods.Items[0] // Delete the pod to ensure it is recreated after the admission controller is deployed - err = suite.Env().KubernetesCluster.KubernetesClient.K8sClient.CoreV1().Pods(kubeNamespace).DeleteCollection(ctx, metav1.DeleteOptions{}, metav1.ListOptions{ + err = suite.K8sClient.CoreV1().Pods(kubeNamespace).DeleteCollection(ctx, metav1.DeleteOptions{}, metav1.ListOptions{ LabelSelector: fields.OneTermEqualSelector("app", kubeDeployment).String(), }) suite.Require().NoError(err) @@ -850,7 +861,7 @@ func (suite *k8sSuite) testDogstatsdExternalData(kubeNamespace, kubeDeployment s // Wait for the fresh pod to be created var pod corev1.Pod suite.Require().EventuallyWithTf(func(c *assert.CollectT) { - pods, err := suite.Env().KubernetesCluster.KubernetesClient.K8sClient.CoreV1().Pods(kubeNamespace).List(ctx, metav1.ListOptions{ + pods, err := suite.K8sClient.CoreV1().Pods(kubeNamespace).List(ctx, metav1.ListOptions{ LabelSelector: fields.OneTermEqualSelector("app", kubeDeployment).String(), }) if !assert.NoError(c, err) { @@ -996,7 +1007,7 @@ func (suite *k8sSuite) testAdmissionControllerPod(namespace string, name string, // libraries for the detected language are injected if languageShouldBeAutoDetected { suite.Require().EventuallyWithTf(func(c *assert.CollectT) { - deployment, err := suite.Env().KubernetesCluster.Client().AppsV1().Deployments(namespace).Get(ctx, name, metav1.GetOptions{}) + deployment, err := suite.K8sClient.AppsV1().Deployments(namespace).Get(ctx, name, metav1.GetOptions{}) if !assert.NoError(c, err) { return } @@ -1014,7 +1025,7 @@ func (suite *k8sSuite) testAdmissionControllerPod(namespace string, name string, } // Record old pod, so we can be sure we are not looking at the incorrect one after deletion - oldPods, err := suite.Env().KubernetesCluster.Client().CoreV1().Pods(namespace).List(ctx, metav1.ListOptions{ + oldPods, err := suite.K8sClient.CoreV1().Pods(namespace).List(ctx, metav1.ListOptions{ LabelSelector: fields.OneTermEqualSelector("app", name).String(), }) suite.Require().NoError(err) @@ -1022,7 +1033,7 @@ func (suite *k8sSuite) testAdmissionControllerPod(namespace string, name string, oldPod := oldPods.Items[0] // Delete the pod to ensure it is recreated after the admission controller is deployed - err = suite.Env().KubernetesCluster.Client().CoreV1().Pods(namespace).DeleteCollection(ctx, metav1.DeleteOptions{}, metav1.ListOptions{ + err = suite.K8sClient.CoreV1().Pods(namespace).DeleteCollection(ctx, metav1.DeleteOptions{}, metav1.ListOptions{ LabelSelector: fields.OneTermEqualSelector("app", name).String(), }) suite.Require().NoError(err) @@ -1030,7 +1041,7 @@ func (suite *k8sSuite) testAdmissionControllerPod(namespace string, name string, // Wait for the fresh pod to be created var pod corev1.Pod suite.Require().EventuallyWithTf(func(c *assert.CollectT) { - pods, err := suite.Env().KubernetesCluster.Client().CoreV1().Pods(namespace).List(ctx, metav1.ListOptions{ + pods, err := suite.K8sClient.CoreV1().Pods(namespace).List(ctx, metav1.ListOptions{ LabelSelector: fields.OneTermEqualSelector("app", name).String(), }) if !assert.NoError(c, err) { @@ -1126,7 +1137,7 @@ func (suite *k8sSuite) testAdmissionControllerPod(namespace string, name string, func (suite *k8sSuite) TestContainerImage() { sendEvent := func(alertType, text string) { - if _, err := suite.DatadogClient().PostEvent(&datadog.Event{ + if _, err := suite.datadogClient.PostEvent(&datadog.Event{ Title: pointer.Ptr(suite.T().Name()), Text: pointer.Ptr(fmt.Sprintf(`%%%%%% `+"```"+` @@ -1196,7 +1207,7 @@ func (suite *k8sSuite) TestContainerImage() { func (suite *k8sSuite) TestSBOM() { sendEvent := func(alertType, text string) { - if _, err := suite.DatadogClient().PostEvent(&datadog.Event{ + if _, err := suite.datadogClient.PostEvent(&datadog.Event{ Title: pointer.Ptr(suite.T().Name()), Text: pointer.Ptr(fmt.Sprintf(`%%%%%% `+"```"+` @@ -1321,7 +1332,7 @@ func (suite *k8sSuite) TestSBOM() { func (suite *k8sSuite) TestContainerLifecycleEvents() { sendEvent := func(alertType, text string) { - if _, err := suite.DatadogClient().PostEvent(&datadog.Event{ + if _, err := suite.datadogClient.PostEvent(&datadog.Event{ Title: pointer.Ptr(suite.T().Name()), Text: pointer.Ptr(fmt.Sprintf(`%%%%%% `+"```"+` @@ -1351,7 +1362,7 @@ func (suite *k8sSuite) TestContainerLifecycleEvents() { var nginxPod corev1.Pod suite.Require().EventuallyWithTf(func(c *assert.CollectT) { - pods, err := suite.Env().KubernetesCluster.Client().CoreV1().Pods("workload-nginx").List(context.Background(), metav1.ListOptions{ + pods, err := suite.K8sClient.CoreV1().Pods("workload-nginx").List(context.Background(), metav1.ListOptions{ LabelSelector: fields.OneTermEqualSelector("app", "nginx").String(), FieldSelector: fields.OneTermEqualSelector("status.phase", "Running").String(), }) @@ -1371,7 +1382,7 @@ func (suite *k8sSuite) TestContainerLifecycleEvents() { }) }, 1*time.Minute, 10*time.Second, "Failed to find an nginx pod") - err := suite.Env().KubernetesCluster.Client().CoreV1().Pods("workload-nginx").Delete(context.Background(), nginxPod.Name, metav1.DeleteOptions{}) + err := suite.K8sClient.CoreV1().Pods("workload-nginx").Delete(context.Background(), nginxPod.Name, metav1.DeleteOptions{}) suite.Require().NoError(err) suite.EventuallyWithTf(func(collect *assert.CollectT) { @@ -1414,7 +1425,7 @@ func (suite *k8sSuite) TestContainerLifecycleEvents() { func (suite *k8sSuite) testHPA(namespace, deployment string) { suite.Run(fmt.Sprintf("hpa kubernetes_state.deployment.replicas_available{kube_namespace:%s,kube_deployment:%s}", namespace, deployment), func() { sendEvent := func(alertType, text string, time *int) { - if _, err := suite.DatadogClient().PostEvent(&datadog.Event{ + if _, err := suite.datadogClient.PostEvent(&datadog.Event{ Title: pointer.Ptr(fmt.Sprintf("testHPA %s/%s", namespace, deployment)), Text: pointer.Ptr(fmt.Sprintf(`%%%%%% %s @@ -1502,7 +1513,7 @@ func (suite *k8sSuite) testHPA(namespace, deployment string) { type podExecOption func(*corev1.PodExecOptions) func (suite *k8sSuite) podExec(namespace, pod, container string, cmd []string, podOptions ...podExecOption) (stdout, stderr string, err error) { - req := suite.Env().KubernetesCluster.Client().CoreV1().RESTClient().Post().Resource("pods").Namespace(namespace).Name(pod).SubResource("exec") + req := suite.K8sClient.CoreV1().RESTClient().Post().Resource("pods").Namespace(namespace).Name(pod).SubResource("exec") option := &corev1.PodExecOptions{ Stdin: false, Stdout: true, @@ -1521,7 +1532,7 @@ func (suite *k8sSuite) podExec(namespace, pod, container string, cmd []string, p scheme.ParameterCodec, ) - exec, err := remotecommand.NewSPDYExecutor(suite.Env().KubernetesCluster.KubernetesClient.K8sConfig, "POST", req.URL()) + exec, err := remotecommand.NewSPDYExecutor(suite.K8sConfig, "POST", req.URL()) if err != nil { return "", "", err } diff --git a/test/new-e2e/tests/containers/kindvm_test.go b/test/new-e2e/tests/containers/kindvm_test.go index f6212d98eaed8..08e327fced435 100644 --- a/test/new-e2e/tests/containers/kindvm_test.go +++ b/test/new-e2e/tests/containers/kindvm_test.go @@ -6,14 +6,21 @@ package containers import ( - "github.com/DataDog/datadog-agent/pkg/util/testutil/flake" + "context" + "encoding/json" "testing" - "github.com/DataDog/test-infra-definitions/scenarios/aws/ec2" - "github.com/DataDog/test-infra-definitions/scenarios/aws/fakeintake" + "github.com/DataDog/datadog-agent/pkg/util/testutil/flake" + + "github.com/DataDog/test-infra-definitions/scenarios/aws/kindvm" + + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/components" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/runner" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/utils/infra" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e" - awskubernetes "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments/aws/kubernetes" + "github.com/pulumi/pulumi/sdk/v3/go/auto" + "github.com/stretchr/testify/suite" + "k8s.io/client-go/tools/clientcmd" ) type kindSuite struct { @@ -22,19 +29,69 @@ type kindSuite struct { func TestKindSuite(t *testing.T) { flake.Mark(t) - e2e.Run(t, &kindSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner( - awskubernetes.WithEC2VMOptions( - ec2.WithInstanceType("t3.xlarge"), - ), - awskubernetes.WithFakeIntakeOptions(fakeintake.WithMemory(2048)), - awskubernetes.WithDeployDogstatsd(), - awskubernetes.WithDeployTestWorkload(), - ))) + suite.Run(t, &kindSuite{}) } func (suite *kindSuite) SetupSuite() { + ctx := context.Background() + + stackConfig := runner.ConfigMap{ + "ddinfra:aws/defaultInstanceType": auto.ConfigValue{Value: "t3.xlarge"}, + "ddagent:deploy": auto.ConfigValue{Value: "true"}, + "ddagent:fakeintake": auto.ConfigValue{Value: "true"}, + "ddtestworkload:deploy": auto.ConfigValue{Value: "true"}, + "dddogstatsd:deploy": auto.ConfigValue{Value: "true"}, + } + + _, stackOutput, err := infra.GetStackManager().GetStackNoDeleteOnFailure( + ctx, + "kind-cluster", + kindvm.Run, + infra.WithConfigMap(stackConfig), + ) + if !suite.Assert().NoError(err) { + stackName, err := infra.GetStackManager().GetPulumiStackName("kind-cluster") + suite.Require().NoError(err) + suite.T().Log(dumpKindClusterState(ctx, stackName)) + if !runner.GetProfile().AllowDevMode() || !*keepStacks { + infra.GetStackManager().DeleteStack(ctx, "kind-cluster", nil) + } + suite.T().FailNow() + } + + var fakeintake components.FakeIntake + fiSerialized, err := json.Marshal(stackOutput.Outputs["dd-Fakeintake-aws-kind"].Value) + suite.Require().NoError(err) + suite.Require().NoError(fakeintake.Import(fiSerialized, &fakeintake)) + suite.Require().NoError(fakeintake.Init(suite)) + suite.Fakeintake = fakeintake.Client() + + var kubeCluster components.KubernetesCluster + kubeSerialized, err := json.Marshal(stackOutput.Outputs["dd-Cluster-kind"].Value) + suite.Require().NoError(err) + suite.Require().NoError(kubeCluster.Import(kubeSerialized, &kubeCluster)) + suite.Require().NoError(kubeCluster.Init(suite)) + suite.KubeClusterName = kubeCluster.ClusterName + suite.K8sClient = kubeCluster.Client() + suite.K8sConfig, err = clientcmd.RESTConfigFromKubeConfig([]byte(kubeCluster.KubeConfig)) + suite.Require().NoError(err) + + kubernetesAgent := &components.KubernetesAgent{} + kubernetesAgentSerialized, err := json.Marshal(stackOutput.Outputs["dd-KubernetesAgent-aws-datadog-agent"].Value) + suite.Require().NoError(err) + suite.Require().NoError(kubernetesAgent.Import(kubernetesAgentSerialized, &kubernetesAgent)) + suite.KubernetesAgentRef = kubernetesAgent + suite.k8sSuite.SetupSuite() - suite.Fakeintake = suite.Env().FakeIntake.Client() +} + +func (suite *kindSuite) TearDownSuite() { + suite.k8sSuite.TearDownSuite() + + ctx := context.Background() + stackName, err := infra.GetStackManager().GetPulumiStackName("kind-cluster") + suite.Require().NoError(err) + suite.T().Log(dumpKindClusterState(ctx, stackName)) } func (suite *kindSuite) TestControlPlane() { From 01b605d452242a9f129a5d380d1a6b25e0212d29 Mon Sep 17 00:00:00 2001 From: Kevin Fairise <132568982+KevinFairise2@users.noreply.github.com> Date: Thu, 5 Dec 2024 17:54:37 +0100 Subject: [PATCH 279/439] Gowork off on serverless integration test (#31775) --- .github/workflows/serverless-integration.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/serverless-integration.yml b/.github/workflows/serverless-integration.yml index da01338b48081..288d3ef5042e4 100644 --- a/.github/workflows/serverless-integration.yml +++ b/.github/workflows/serverless-integration.yml @@ -9,6 +9,7 @@ on: - 'pkg/serverless/**' - 'test/integration/serverless/**' - '.github/workflows/serverless-integration.yml' + - 'go.mod' schedule: - cron: '0 14 * * *' # cron schedule uses UTC timezone. Run tests at the beginning of the day in US-East @@ -67,6 +68,7 @@ jobs: env: AWS_ACCESS_KEY_ID: ${{ secrets.SERVERLESS_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.SERVERLESS_AWS_SECRET_ACCESS_KEY }} + GOWORK: off with: timeout_minutes: 60 max_attempts: 2 From 7027b870d5d7b4d9d5a72ae1626df682f658352c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9lian=20Raimbault?= <161456554+CelianR@users.noreply.github.com> Date: Thu, 5 Dec 2024 11:54:47 -0500 Subject: [PATCH 280/439] Fix gitlab diff (unhashable type list) (#31799) --- tasks/libs/ciproviders/gitlab_api.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/libs/ciproviders/gitlab_api.py b/tasks/libs/ciproviders/gitlab_api.py index 0cf4c429b59b0..03ba1e58c8003 100644 --- a/tasks/libs/ciproviders/gitlab_api.py +++ b/tasks/libs/ciproviders/gitlab_api.py @@ -176,7 +176,7 @@ def from_dict(data: dict) -> GitlabCIDiff: added=set(data['added']), removed=set(data['removed']), modified=set(data['modified']), - renamed=set(data['renamed']), + renamed=data['renamed'], modified_diffs=data['modied_diffs'], added_contents=data['added_contents'], ) From 97d29fb33d507fcd365c9035ba956e5f250d6405 Mon Sep 17 00:00:00 2001 From: Daniel Tafoya <63120739+daniel-taf@users.noreply.github.com> Date: Thu, 5 Dec 2024 11:55:20 -0500 Subject: [PATCH 281/439] [PROCS-4577] Remove `ECSEC2Suite` embed from `ECSEC2CoreAgentSuite` struct (#31800) --- test/new-e2e/tests/process/ecs_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/new-e2e/tests/process/ecs_test.go b/test/new-e2e/tests/process/ecs_test.go index 95024a2bdea3d..45881701fde06 100644 --- a/test/new-e2e/tests/process/ecs_test.go +++ b/test/new-e2e/tests/process/ecs_test.go @@ -91,7 +91,7 @@ func (s *ECSEC2Suite) TestProcessCheck() { // This is duplicated as the tests have been flaky. This may be due to how pulumi is handling the provisioning of // ecs tasks. type ECSEC2CoreAgentSuite struct { - ECSEC2Suite + e2e.BaseSuite[ecsCPUStressEnv] } func TestECSEC2CoreAgentSuite(t *testing.T) { From 4fd23e42a5085305f92bbef426351e9e7db0572d Mon Sep 17 00:00:00 2001 From: "John L. Peterson (Jack)" Date: Thu, 5 Dec 2024 12:18:29 -0500 Subject: [PATCH 282/439] OTEL-2238 update integration test to build ddflare and datadog converter (#31189) --- .gitlab/JOBOWNERS | 2 +- .gitlab/integration_test/otel.yml | 28 +++++++------------- test/otel/testdata/builder-config.yaml | 12 ++++++--- test/otel/testdata/collector-config.yaml | 22 +++------------- test/otel/testdata/ocb_build_script.sh | 33 ++++++++++++++++++++++++ 5 files changed, 54 insertions(+), 43 deletions(-) create mode 100755 test/otel/testdata/ocb_build_script.sh diff --git a/.gitlab/JOBOWNERS b/.gitlab/JOBOWNERS index 091149d6d7af2..bbb7d693c5ea3 100644 --- a/.gitlab/JOBOWNERS +++ b/.gitlab/JOBOWNERS @@ -133,7 +133,7 @@ trigger_auto_staging_release @DataDog/agent-delivery integration_tests_windows* @DataDog/windows-agent integration_tests_otel @DataDog/opentelemetry docker_image_build_otel @DataDog/opentelemetry -ddflare_extension_ocb_build @DataDog/opentelemetry +datadog_otel_components_ocb_build @DataDog/opentelemetry agent_integration_tests @DataDog/container-integrations docker_integration_tests @DataDog/container-integrations diff --git a/.gitlab/integration_test/otel.yml b/.gitlab/integration_test/otel.yml index 5f162afc2d564..4a2a054c66967 100644 --- a/.gitlab/integration_test/otel.yml +++ b/.gitlab/integration_test/otel.yml @@ -57,35 +57,25 @@ docker_image_build_otel: - when: always -ddflare_extension_ocb_build: +datadog_otel_components_ocb_build: stage: integration_test image: registry.ddbuild.io/ci/datadog-agent-buildimages/deb_x64$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES tags: ["arch:amd64"] needs: ["go_deps"] + artifacts: + paths: + - ocb-output.log + - otelcol-custom.log + - flare-info.log before_script: - !reference [.retrieve_linux_go_deps] - - mkdir -p /tmp/otel-ci - - cp test/otel/testdata/* /tmp/otel-ci/ - - wget -O /tmp/otel-ci/ocb https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/cmd%2Fbuilder%2Fv0.114.0/ocb_0.114.0_linux_amd64 - - chmod +x /tmp/otel-ci/ocb script: - - echo 'Building collector with OCB and test ddflare extension' - - /tmp/otel-ci/ocb --config=/tmp/otel-ci/builder-config.yaml > ocb-output.log 2>&1 - - grep -q 'Compiled' ocb-output.log || (echo "OCB failed to compile" && exit 1) - - "grep -q '{\"binary\": \"/tmp/otel-ci/otelcol-custom/otelcol-custom\"}' ocb-output.log || (echo \"OCB failed to compile\" && exit 1)" - - /tmp/otel-ci/otelcol-custom/otelcol-custom --config /tmp/otel-ci/collector-config.yaml > otelcol-custom.log 2>&1 & - - OTELCOL_PID=$! # Capture the process ID - - sleep 10 # Wait for the process to start - - grep -q 'Everything is ready. Begin running and processing data.' otelcol-custom.log || (echo "custom collector failed to start" && kill $OTELCOL_PID && exit 1) - - curl -k https://localhost:7777 > flare-info.log 2>&1 # get the dd flare info - - "grep -q '\"provided_configuration\": \"\"' flare-info.log || (echo \"provided config should not be supported with ocb\" && kill $OTELCOL_PID && exit 1)" - - grep -q 'extensions:\\n - ddflare\\n' flare-info.log || (echo "ddflare extension should be enabled" && kill $OTELCOL_PID && exit 1) - - kill $OTELCOL_PID # Kill the process + - echo "Building custom collector with datadog components" + - test/otel/testdata/ocb_build_script.sh + - echo "see artifacts for job logs" rules: - if: $CI_PIPELINE_SOURCE =~ /^schedule.*$/ when: never - - if: $CI_COMMIT_TAG - when: never - if: $CI_COMMIT_MESSAGE =~ /.*\[skip cancel\].*/ when: never - if: $CI_COMMIT_REF_NAME =~ /.*-skip-cancel$/ diff --git a/test/otel/testdata/builder-config.yaml b/test/otel/testdata/builder-config.yaml index bb20b619e5ddc..b13b478649860 100644 --- a/test/otel/testdata/builder-config.yaml +++ b/test/otel/testdata/builder-config.yaml @@ -1,10 +1,11 @@ -connectors: -- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector - v0.114.0 dist: description: Basic OTel Collector distribution for Developers name: otelcol-custom output_path: /tmp/otel-ci/otelcol-custom +connectors: +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector + v0.114.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.114.0 exporters: - gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.114.0 - gomod: go.opentelemetry.io/collector/exporter/nopexporter v0.114.0 @@ -15,7 +16,7 @@ exporters: - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.114.0 extensions: -- gomod: github.com/DataDog/datadog-agent/comp/otelcol/ddflareextension/impl v0.60.0 +- gomod: github.com/DataDog/datadog-agent/comp/otelcol/ddflareextension/impl v0.61.0 path: ./comp/otelcol/ddflareextension/impl - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension @@ -80,3 +81,6 @@ receivers: v0.114.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.114.0 +converters: +- gomod: github.com/DataDog/datadog-agent/comp/otelcol/converter/impl v0.61.0 + path: ./comp/otelcol/converter/impl diff --git a/test/otel/testdata/collector-config.yaml b/test/otel/testdata/collector-config.yaml index a117589a48b26..60a7c607d9299 100644 --- a/test/otel/testdata/collector-config.yaml +++ b/test/otel/testdata/collector-config.yaml @@ -11,41 +11,25 @@ processors: exporters: debug: - otlp: - endpoint: "localhost:4317" - tls: - insecure: true # Set to true for testing; adjust for production. - datadog/exporter: - api: - site: datadoghq.com - key: "12345" extensions: ddflare: include_metadata: true # Set to true for testing; adjust for production. - health_check: - zpages: - pprof: service: - extensions: - - ddflare - - health_check - - pprof - - zpages pipelines: traces: receivers: [otlp] processors: [batch] - exporters: [debug, otlp] + exporters: [debug] metrics: receivers: [otlp] processors: [batch] - exporters: [debug, otlp] + exporters: [debug] logs: receivers: [otlp] processors: [batch] - exporters: [datadog/exporter] + exporters: [debug] # TODO: enable Additional configuration providers # providers: diff --git a/test/otel/testdata/ocb_build_script.sh b/test/otel/testdata/ocb_build_script.sh new file mode 100755 index 0000000000000..6aaf8bfeb36b4 --- /dev/null +++ b/test/otel/testdata/ocb_build_script.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -e +OTELCOL_PID=0 + +mkdir -p /tmp/otel-ci +trap 'rm -rf /tmp/otel-ci && kill $OTELCOL_PID' EXIT +cp ./test/otel/testdata/builder-config.yaml /tmp/otel-ci/ +cp ./test/otel/testdata/collector-config.yaml /tmp/otel-ci/ +cp ./tools/ci/retry.sh /tmp/otel-ci/ +chmod +x /tmp/otel-ci/retry.sh + +OCB_VERSION="0.114.0" +CGO_ENABLED=0 go install -trimpath -ldflags="-s -w" go.opentelemetry.io/collector/cmd/builder@v${OCB_VERSION} +mv "$(go env GOPATH)/bin/builder" /tmp/otel-ci/ocb + +chmod +x /tmp/otel-ci/ocb + +/tmp/otel-ci/ocb --config=/tmp/otel-ci/builder-config.yaml > ocb-output.log 2>&1 +grep -q 'Compiled' ocb-output.log || (echo "OCB failed to build custom collector" && exit 1) +grep -q '{"binary": "/tmp/otel-ci/otelcol-custom/otelcol-custom"}' ocb-output.log || (echo "OCB failed to build custom collector" && exit 1) + +/tmp/otel-ci/otelcol-custom/otelcol-custom --config /tmp/otel-ci/collector-config.yaml > otelcol-custom.log 2>&1 & +OTELCOL_PID=$! +/tmp/otel-ci/retry.sh grep -q 'Everything is ready. Begin running and processing data.' otelcol-custom.log || (echo "Failed to start otelcol-custom" && exit 1) + +/tmp/otel-ci/retry.sh curl -k https://localhost:7777 > flare-info.log 2>&1 +grep -q '"provided_configuration": ""' flare-info.log || (echo "provided config is not empty" && exit 1) +grep -q 'ddflare/dd-autoconfigured' flare-info.log || (echo "ddflare extension should be enabled" && exit 1) +grep -q 'health_check/dd-autoconfigured' flare-info.log || (echo "health_check extension should be enabled" && exit 1) +grep -q 'pprof/dd-autoconfigured' flare-info.log || (echo "pprof extension should be enabled" && exit 1) +grep -q 'zpages/dd-autoconfigured' flare-info.log || (echo "zpages extension should be enabled" && exit 1) + +echo "OCB build script completed successfully" From 945f15cabb6c40d40884e6faff16e8970cf4c5ef Mon Sep 17 00:00:00 2001 From: Gabriel Dos Santos <91925154+gabedos@users.noreply.github.com> Date: Thu, 5 Dec 2024 13:21:45 -0500 Subject: [PATCH 283/439] [CONTP-499] Parsing GPU tags on kubeapiserver collector (#31465) --- .github/CODEOWNERS | 1 + .../collectors/internal/kubelet/kubelet.go | 50 ++--- .../internal/kubelet/kubelet_test.go | 175 ++++++++++++++++++ .../util/kubernetes_resource_parsers/pod.go | 16 ++ .../kubernetes_resource_parsers/pod_test.go | 24 +++ pkg/util/gpu/common.go | 48 +++++ pkg/util/gpu/common_test.go | 41 ++++ ...piserver-gpu-tagging-e6202bc782982e5d.yaml | 12 ++ 8 files changed, 330 insertions(+), 37 deletions(-) create mode 100644 comp/core/workloadmeta/collectors/internal/kubelet/kubelet_test.go create mode 100644 pkg/util/gpu/common.go create mode 100644 pkg/util/gpu/common_test.go create mode 100644 releasenotes/notes/kubeapiserver-gpu-tagging-e6202bc782982e5d.yaml diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 42466f04064aa..c3d8aed610550 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -454,6 +454,7 @@ /pkg/util/docker/ @DataDog/container-integrations /pkg/util/ecs/ @DataDog/container-integrations /pkg/util/funcs/ @DataDog/ebpf-platform +/pkg/util/gpu/ @DataDog/container-platform /pkg/util/kernel/ @DataDog/ebpf-platform /pkg/util/safeelf/ @DataDog/ebpf-platform /pkg/util/ktime @DataDog/agent-security diff --git a/comp/core/workloadmeta/collectors/internal/kubelet/kubelet.go b/comp/core/workloadmeta/collectors/internal/kubelet/kubelet.go index 0633238f905ae..25440989430f9 100644 --- a/comp/core/workloadmeta/collectors/internal/kubelet/kubelet.go +++ b/comp/core/workloadmeta/collectors/internal/kubelet/kubelet.go @@ -22,6 +22,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/errors" "github.com/DataDog/datadog-agent/pkg/util/containers" pkgcontainersimage "github.com/DataDog/datadog-agent/pkg/util/containers/image" + "github.com/DataDog/datadog-agent/pkg/util/gpu" "github.com/DataDog/datadog-agent/pkg/util/kubernetes" "github.com/DataDog/datadog-agent/pkg/util/kubernetes/kubelet" "github.com/DataDog/datadog-agent/pkg/util/log" @@ -83,13 +84,13 @@ func (c *collector) Pull(ctx context.Context) error { return err } - events := c.parsePods(updatedPods) + events := parsePods(updatedPods) if time.Since(c.lastExpire) >= c.expireFreq { var expiredIDs []string expiredIDs, err = c.watcher.Expire() if err == nil { - events = append(events, c.parseExpires(expiredIDs)...) + events = append(events, parseExpires(expiredIDs)...) c.lastExpire = time.Now() } } @@ -107,7 +108,7 @@ func (c *collector) GetTargetCatalog() workloadmeta.AgentType { return c.catalog } -func (c *collector) parsePods(pods []*kubelet.Pod) []workloadmeta.CollectorEvent { +func parsePods(pods []*kubelet.Pod) []workloadmeta.CollectorEvent { events := []workloadmeta.CollectorEvent{} for _, pod := range pods { @@ -131,14 +132,14 @@ func (c *collector) parsePods(pods []*kubelet.Pod) []workloadmeta.CollectorEvent ID: podMeta.UID, } - podInitContainers, initContainerEvents := c.parsePodContainers( + podInitContainers, initContainerEvents := parsePodContainers( pod, pod.Spec.InitContainers, pod.Status.InitContainers, &podID, ) - podContainers, containerEvents := c.parsePodContainers( + podContainers, containerEvents := parsePodContainers( pod, pod.Spec.Containers, pod.Status.Containers, @@ -194,7 +195,7 @@ func (c *collector) parsePods(pods []*kubelet.Pod) []workloadmeta.CollectorEvent return events } -func (c *collector) parsePodContainers( +func parsePodContainers( pod *kubelet.Pod, containerSpecs []kubelet.ContainerSpec, containerStatuses []kubelet.ContainerStatus, @@ -427,21 +428,6 @@ func extractEnvFromSpec(envSpec []kubelet.EnvVar) map[string]string { return env } -func extractGPUVendor(gpuNamePrefix kubelet.ResourceName) string { - gpuVendor := "" - switch gpuNamePrefix { - case kubelet.ResourcePrefixNvidiaMIG, kubelet.ResourceGenericNvidiaGPU: - gpuVendor = "nvidia" - case kubelet.ResourcePrefixAMDGPU: - gpuVendor = "amd" - case kubelet.ResourcePrefixIntelGPU: - gpuVendor = "intel" - default: - gpuVendor = string(gpuNamePrefix) - } - return gpuVendor -} - func extractResources(spec *kubelet.ContainerSpec) workloadmeta.ContainerResources { resources := workloadmeta.ContainerResources{} if cpuReq, found := spec.Resources.Requests[kubelet.ResourceCPU]; found { @@ -453,24 +439,14 @@ func extractResources(spec *kubelet.ContainerSpec) workloadmeta.ContainerResourc } // extract GPU resource info from the possible GPU sources - uniqueGPUVendor := make(map[string]bool) - - resourceKeys := make([]kubelet.ResourceName, 0, len(spec.Resources.Requests)) + uniqueGPUVendor := make(map[string]struct{}) for resourceName := range spec.Resources.Requests { - resourceKeys = append(resourceKeys, resourceName) - } - - for _, gpuResourceName := range kubelet.GetGPUResourceNames() { - for _, resourceKey := range resourceKeys { - if strings.HasPrefix(string(resourceKey), string(gpuResourceName)) { - if gpuReq, found := spec.Resources.Requests[resourceKey]; found { - resources.GPURequest = pointer.Ptr(uint64(gpuReq.Value())) - uniqueGPUVendor[extractGPUVendor(gpuResourceName)] = true - break - } - } + gpuName, found := gpu.ExtractSimpleGPUName(gpu.ResourceGPU(resourceName)) + if found { + uniqueGPUVendor[gpuName] = struct{}{} } } + gpuVendorList := make([]string, 0, len(uniqueGPUVendor)) for GPUVendor := range uniqueGPUVendor { gpuVendorList = append(gpuVendorList, GPUVendor) @@ -490,7 +466,7 @@ func findContainerSpec(name string, specs []kubelet.ContainerSpec) *kubelet.Cont return nil } -func (c *collector) parseExpires(expiredIDs []string) []workloadmeta.CollectorEvent { +func parseExpires(expiredIDs []string) []workloadmeta.CollectorEvent { events := make([]workloadmeta.CollectorEvent, 0, len(expiredIDs)) podTerminatedTime := time.Now() diff --git a/comp/core/workloadmeta/collectors/internal/kubelet/kubelet_test.go b/comp/core/workloadmeta/collectors/internal/kubelet/kubelet_test.go new file mode 100644 index 0000000000000..a8a1ba1bdda20 --- /dev/null +++ b/comp/core/workloadmeta/collectors/internal/kubelet/kubelet_test.go @@ -0,0 +1,175 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build kubelet && test + +package kubelet + +import ( + "testing" + + "github.com/stretchr/testify/assert" + corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/resource" + + "github.com/DataDog/datadog-agent/pkg/util/kubernetes" + "github.com/DataDog/datadog-agent/pkg/util/kubernetes/kubelet" + + workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" +) + +func TestPodParser(t *testing.T) { + + referencePod := []*kubelet.Pod{ + { + Metadata: kubelet.PodMetadata{ + Name: "TestPod", + UID: "uniqueIdentifier", + Namespace: "namespace", + Owners: []kubelet.PodOwner{ + { + Kind: "ReplicaSet", + Name: "deployment-hashrs", + ID: "ownerUID", + }, + }, + Annotations: map[string]string{ + "annotationKey": "annotationValue", + }, + Labels: map[string]string{ + "labelKey": "labelValue", + }, + }, + Spec: kubelet.Spec{ + PriorityClassName: "priorityClass", + Volumes: []kubelet.VolumeSpec{ + { + Name: "pvcVol", + PersistentVolumeClaim: &kubelet.PersistentVolumeClaimSpec{ + ClaimName: "pvcName", + }, + }, + }, + Containers: []kubelet.ContainerSpec{ + { + Name: "nginx-container", + Image: "nginx:1.25.2", + Resources: &kubelet.ContainerResourcesSpec{ + Requests: kubelet.ResourceList{ + "nvidia.com/gpu": resource.Quantity{ + Format: "1", + }, + }, + }, + }, + }, + }, + Status: kubelet.Status{ + Phase: string(corev1.PodRunning), + Conditions: []kubelet.Conditions{ + { + Type: string(corev1.PodReady), + Status: string(corev1.ConditionTrue), + }, + }, + PodIP: "127.0.0.1", + QOSClass: string(corev1.PodQOSGuaranteed), + Containers: []kubelet.ContainerStatus{ + { + Name: "nginx-container", + ImageID: "5dbe7e1b6b9c", + Image: "nginx:1.25.2", + ID: "docker://containerID", + Ready: true, + }, + }, + }, + }, + } + + events := parsePods(referencePod) + containerEvent, podEvent := events[0], events[1] + + expectedContainer := &workloadmeta.Container{ + EntityID: workloadmeta.EntityID{ + Kind: workloadmeta.KindContainer, + ID: "containerID", + }, + EntityMeta: workloadmeta.EntityMeta{ + Name: "nginx-container", + Labels: map[string]string{ + kubernetes.CriContainerNamespaceLabel: "namespace", + }, + }, + Image: workloadmeta.ContainerImage{ + ID: "5dbe7e1b6b9c", + Name: "nginx", + ShortName: "nginx", + Tag: "1.25.2", + RawName: "nginx:1.25.2", + }, + Runtime: "docker", + Resources: workloadmeta.ContainerResources{ + GPUVendorList: []string{"nvidia"}, + }, + Owner: &workloadmeta.EntityID{ + Kind: "kubernetes_pod", + ID: "uniqueIdentifier", + }, + Ports: []workloadmeta.ContainerPort{}, + EnvVars: map[string]string{}, + State: workloadmeta.ContainerState{ + Health: "healthy", + }, + } + expectedPod := &workloadmeta.KubernetesPod{ + EntityID: workloadmeta.EntityID{ + Kind: workloadmeta.KindKubernetesPod, + ID: "uniqueIdentifier", + }, + EntityMeta: workloadmeta.EntityMeta{ + Name: "TestPod", + Namespace: "namespace", + Annotations: map[string]string{ + "annotationKey": "annotationValue", + }, + Labels: map[string]string{ + "labelKey": "labelValue", + }, + }, + Phase: "Running", + Owners: []workloadmeta.KubernetesPodOwner{ + { + Kind: "ReplicaSet", + Name: "deployment-hashrs", + ID: "ownerUID", + }, + }, + Containers: []workloadmeta.OrchestratorContainer{ + { + Name: "nginx-container", + ID: "containerID", + Image: workloadmeta.ContainerImage{ + ID: "5dbe7e1b6b9c", + Name: "nginx", + ShortName: "nginx", + Tag: "1.25.2", + RawName: "nginx:1.25.2", + }, + }, + }, + InitContainers: []workloadmeta.OrchestratorContainer{}, + PersistentVolumeClaimNames: []string{"pvcName"}, + Ready: true, + IP: "127.0.0.1", + PriorityClass: "priorityClass", + GPUVendorList: []string{"nvidia"}, + QOSClass: "Guaranteed", + } + + assert.Equal(t, expectedPod, podEvent.Entity) + + assert.Equal(t, expectedContainer, containerEvent.Entity) +} diff --git a/comp/core/workloadmeta/collectors/util/kubernetes_resource_parsers/pod.go b/comp/core/workloadmeta/collectors/util/kubernetes_resource_parsers/pod.go index 1ae7d26db13f2..f776081150bb8 100644 --- a/comp/core/workloadmeta/collectors/util/kubernetes_resource_parsers/pod.go +++ b/comp/core/workloadmeta/collectors/util/kubernetes_resource_parsers/pod.go @@ -13,6 +13,7 @@ import ( corev1 "k8s.io/api/core/v1" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" + "github.com/DataDog/datadog-agent/pkg/util/gpu" ) type podParser struct { @@ -62,6 +63,20 @@ func (p podParser) Parse(obj interface{}) workloadmeta.Entity { rtcName = *pod.Spec.RuntimeClassName } + var gpuVendorList []string + uniqueGPUVendor := make(map[string]struct{}) + for _, container := range pod.Spec.Containers { + for resourceName := range container.Resources.Limits { + gpuName, found := gpu.ExtractSimpleGPUName(gpu.ResourceGPU(resourceName)) + if found { + uniqueGPUVendor[gpuName] = struct{}{} + } + } + } + for gpuVendor := range uniqueGPUVendor { + gpuVendorList = append(gpuVendorList, gpuVendor) + } + return &workloadmeta.KubernetesPod{ EntityID: workloadmeta.EntityID{ Kind: workloadmeta.KindKubernetesPod, @@ -81,6 +96,7 @@ func (p podParser) Parse(obj interface{}) workloadmeta.Entity { PriorityClass: pod.Spec.PriorityClassName, QOSClass: string(pod.Status.QOSClass), RuntimeClass: rtcName, + GPUVendorList: gpuVendorList, // Containers could be generated by this collector, but // currently it's not to save on memory, since this is supposed diff --git a/comp/core/workloadmeta/collectors/util/kubernetes_resource_parsers/pod_test.go b/comp/core/workloadmeta/collectors/util/kubernetes_resource_parsers/pod_test.go index 2815e270e4530..a90d0a2028357 100644 --- a/comp/core/workloadmeta/collectors/util/kubernetes_resource_parsers/pod_test.go +++ b/comp/core/workloadmeta/collectors/util/kubernetes_resource_parsers/pod_test.go @@ -12,6 +12,7 @@ import ( "github.com/stretchr/testify/assert" corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" @@ -54,6 +55,28 @@ func TestPodParser_Parse(t *testing.T) { }, }, }, + Containers: []corev1.Container{ + { + Name: "gpuContainer1", + Resources: corev1.ResourceRequirements{ + Limits: corev1.ResourceList{ + "nvidia.com/gpu": resource.Quantity{ + Format: "1", + }, + }, + }, + }, + { + Name: "gpuContainer2", + Resources: corev1.ResourceRequirements{ + Limits: corev1.ResourceList{ + "gpu.intel.com/xe": resource.Quantity{ + Format: "2", + }, + }, + }, + }, + }, }, Status: corev1.PodStatus{ Phase: corev1.PodRunning, @@ -97,6 +120,7 @@ func TestPodParser_Parse(t *testing.T) { Ready: true, IP: "127.0.0.1", PriorityClass: "priorityClass", + GPUVendorList: []string{"nvidia", "intel"}, QOSClass: "Guaranteed", } diff --git a/pkg/util/gpu/common.go b/pkg/util/gpu/common.go new file mode 100644 index 0000000000000..7d5dc6a9825b2 --- /dev/null +++ b/pkg/util/gpu/common.go @@ -0,0 +1,48 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package gpu provides utilities for interacting with GPU resources. +package gpu + +import "strings" + +// ResourceGPU represents a GPU resource +type ResourceGPU string + +// Resource name prefixes +const ( + gpuNvidiaGeneric ResourceGPU = "nvidia.com/gpu" + gpuAMD ResourceGPU = "amd.com/gpu" + gpuIntelXe ResourceGPU = "gpu.intel.com/xe" + gpuInteli915 ResourceGPU = "gpu.intel.com/i915" + + gpuNvidiaMigPrefix ResourceGPU = "nvidia.com/mig" +) + +// longToShortGPUName maps a GPU resource to a simplified name +var longToShortGPUName = map[ResourceGPU]string{ + gpuNvidiaGeneric: "nvidia", + gpuAMD: "amd", + gpuIntelXe: "intel", + gpuInteli915: "intel", +} + +// ExtractSimpleGPUName returns a simplified GPU name. +// If the resource is not recognized, the second return value is false. +func ExtractSimpleGPUName(gpuName ResourceGPU) (string, bool) { + val, ok := longToShortGPUName[gpuName] + if ok { + return val, true + } + + // More complex cases (eg. nvidia.com/mig-3g.20gb => nvidia) + switch { + case strings.HasPrefix(string(gpuName), string(gpuNvidiaMigPrefix)): + return "nvidia", true + } + + // Not a GPU resource (or not recognized) + return "", false +} diff --git a/pkg/util/gpu/common_test.go b/pkg/util/gpu/common_test.go new file mode 100644 index 0000000000000..f5e9fa4946c8f --- /dev/null +++ b/pkg/util/gpu/common_test.go @@ -0,0 +1,41 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package gpu + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestExtractSimpleGPUName(t *testing.T) { + tests := []struct { + name string + gpuName ResourceGPU + found bool + expected string + }{ + { + name: "known gpu resource", + gpuName: gpuNvidiaGeneric, + found: true, + expected: "nvidia", + }, + { + name: "unknown gpu resource", + gpuName: ResourceGPU("cpu"), + found: false, + expected: "", + }, + } + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + actual, found := ExtractSimpleGPUName(test.gpuName) + assert.Equal(t, test.found, found) + assert.Equal(t, test.expected, actual) + }) + } +} diff --git a/releasenotes/notes/kubeapiserver-gpu-tagging-e6202bc782982e5d.yaml b/releasenotes/notes/kubeapiserver-gpu-tagging-e6202bc782982e5d.yaml new file mode 100644 index 0000000000000..a09ed5f24515e --- /dev/null +++ b/releasenotes/notes/kubeapiserver-gpu-tagging-e6202bc782982e5d.yaml @@ -0,0 +1,12 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +fixes: + - | + Include `gpu_vendor` pod tags on the Datadog Cluster Agent when + enabling datadog.clusterTagger.collectKubernetesTags. From 0db869dc3c6348148a39c96e504970ae97a08a62 Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 5 Dec 2024 13:38:46 -0500 Subject: [PATCH 284/439] AMLII-2207 - alter dogstatsd packet buffers to automatically flush when stream sockets disconnect (#31768) --- comp/dogstatsd/listeners/uds_common.go | 1 + comp/dogstatsd/packets/buffer.go | 7 +++++++ comp/dogstatsd/packets/buffer_test.go | 21 ++++++++++++++++++- ...ream-socket-race-fix-255b6e7a10f7fde0.yaml | 13 ++++++++++++ 4 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 releasenotes/notes/stream-socket-race-fix-255b6e7a10f7fde0.yaml diff --git a/comp/dogstatsd/listeners/uds_common.go b/comp/dogstatsd/listeners/uds_common.go index 62a39421dcc12..ff165228b3bf1 100644 --- a/comp/dogstatsd/listeners/uds_common.go +++ b/comp/dogstatsd/listeners/uds_common.go @@ -204,6 +204,7 @@ func (l *UDSListener) handleConnection(conn netUnixConn, closeFunc CloseFunction l.telemetryStore.tlmUDSConnections.Inc(tlmListenerID, l.transport) defer func() { _ = closeFunc(conn) + packetsBuffer.Flush() packetsBuffer.Close() if telemetryWithFullListenerID { l.clearTelemetry(tlmListenerID) diff --git a/comp/dogstatsd/packets/buffer.go b/comp/dogstatsd/packets/buffer.go index 3a8a232f804db..f0ca9ab1d6659 100644 --- a/comp/dogstatsd/packets/buffer.go +++ b/comp/dogstatsd/packets/buffer.go @@ -70,6 +70,13 @@ func (pb *Buffer) Append(packet *Packet) { } } +// Flush offers a thread-safe method to force a flush of the appended packets +func (pb *Buffer) Flush() { + pb.m.Lock() + pb.flush() + pb.m.Unlock() +} + func (pb *Buffer) flush() { if len(pb.packets) > 0 { t1 := time.Now() diff --git a/comp/dogstatsd/packets/buffer_test.go b/comp/dogstatsd/packets/buffer_test.go index bc90d5c5f46b2..117b26d35ef86 100644 --- a/comp/dogstatsd/packets/buffer_test.go +++ b/comp/dogstatsd/packets/buffer_test.go @@ -24,7 +24,7 @@ func TestBufferTelemetry(t *testing.T) { // We need a high enough duration to avoid the buffer to flush // And cause the program to deadlock on the packetChannel duration := 10 * time.Second - packetChannel := make(chan Packets) + packetChannel := make(chan Packets, 1) buffer := NewBuffer(3, duration, packetChannel, "test_buffer", telemetryStore) defer buffer.Close() @@ -127,3 +127,22 @@ func TestBufferTelemetryFull(t *testing.T) { assert.Equal(t, float64(1), channelSizeMetrics[0].Value()) } + +func TestBufferFlush(t *testing.T) { + telemetryComponent := fxutil.Test[telemetry.Component](t, telemetryimpl.MockModule()) + telemetryStore := NewTelemetryStore(nil, telemetryComponent) + duration := 10 * time.Hour + packetChannel := make(chan Packets, 1) + buffer := NewBuffer(0, duration, packetChannel, "test_buffer", telemetryStore) + packet := &Packet{ + Contents: []byte("test"), + Buffer: []byte("test read"), + Origin: "test origin", + ListenerID: "1", + Source: 0, + } + + buffer.Append(packet) + buffer.Flush() + assert.Equal(t, 1, len(packetChannel)) +} diff --git a/releasenotes/notes/stream-socket-race-fix-255b6e7a10f7fde0.yaml b/releasenotes/notes/stream-socket-race-fix-255b6e7a10f7fde0.yaml new file mode 100644 index 0000000000000..2a0b8bf07e975 --- /dev/null +++ b/releasenotes/notes/stream-socket-race-fix-255b6e7a10f7fde0.yaml @@ -0,0 +1,13 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +fixes: + - | + Fixed race condition in stream UDS clients of Dogstatsd that + allowed for the loss of received data. + From 48cbbbf593c8e1f78f1f35447beb14f3f24cb44a Mon Sep 17 00:00:00 2001 From: Carlos Date: Thu, 5 Dec 2024 18:54:17 +0000 Subject: [PATCH 285/439] Fixing logic for when to enable APM (#31805) --- pkg/config/utils/miscellaneous.go | 2 +- pkg/config/utils/miscellaneous_test.go | 46 +++++++++++++++++++++++++- 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/pkg/config/utils/miscellaneous.go b/pkg/config/utils/miscellaneous.go index faf3572d318d3..a1de732654318 100644 --- a/pkg/config/utils/miscellaneous.go +++ b/pkg/config/utils/miscellaneous.go @@ -54,6 +54,6 @@ func IsCoreAgentEnabled(cfg pkgconfigmodel.Reader) bool { // Error Tracking standalone only via the apm_config.error_tracking_standalone.enabled option instead of requiring // to enable also apm_config.enabled. func IsAPMEnabled(cfg pkgconfigmodel.Reader) bool { - return (cfg.GetBool("apm_config.enabled") && IsCoreAgentEnabled(cfg)) || + return cfg.GetBool("apm_config.enabled") || cfg.GetBool("apm_config.error_tracking_standalone.enabled") } diff --git a/pkg/config/utils/miscellaneous_test.go b/pkg/config/utils/miscellaneous_test.go index 96c65f5b33b9c..59ee253bcb09f 100644 --- a/pkg/config/utils/miscellaneous_test.go +++ b/pkg/config/utils/miscellaneous_test.go @@ -6,11 +6,12 @@ package utils import ( - "github.com/stretchr/testify/assert" "testing" configmock "github.com/DataDog/datadog-agent/pkg/config/mock" "github.com/DataDog/datadog-agent/pkg/config/model" + + "github.com/stretchr/testify/assert" ) func TestIsCoreAgentEnabled(t *testing.T) { @@ -64,3 +65,46 @@ func TestIsCoreAgentEnabled(t *testing.T) { }) } } + +func TestIsAPMEnabled(t *testing.T) { + tests := []struct { + name string + apmEnabled, errorTrackingEnable, expected bool + }{ + { + name: "APM enabled and Error Tracking standalone disabled", + apmEnabled: false, + errorTrackingEnable: false, + expected: false, + }, + { + name: "APM enabled and Error Tracking standalone disabled", + apmEnabled: true, + errorTrackingEnable: false, + expected: true, + }, + { + name: "APM disabled and Error Tracking standalone enabled", + apmEnabled: false, + errorTrackingEnable: true, + expected: true, + }, + { + name: "APM enabled and Error Tracking standalone enabled", + apmEnabled: true, + errorTrackingEnable: true, + expected: true, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + mockConfig := configmock.New(t) + mockConfig.SetWithoutSource("apm_config.enabled", test.apmEnabled) + mockConfig.SetWithoutSource("apm_config.error_tracking_standalone.enabled", test.errorTrackingEnable) + assert.Equal(t, + test.expected, IsAPMEnabled(mockConfig), + "Was expecting IsAPMEnabled to return", test.expected) + }) + } +} From 435a6e33276ee040f5553bfde7e03bfa05adb13c Mon Sep 17 00:00:00 2001 From: Stuart Geipel Date: Thu, 5 Dec 2024 16:10:24 -0500 Subject: [PATCH 286/439] [ebpfless] Implement connection duration and fix IsOpen (#31763) --- .../connection/ebpfless/tcp_processor.go | 20 ++++++++++++- .../connection/ebpfless/tcp_processor_test.go | 28 +++++++++++++++++++ pkg/network/tracer/tracer_linux_test.go | 12 +++++--- 3 files changed, 55 insertions(+), 5 deletions(-) diff --git a/pkg/network/tracer/connection/ebpfless/tcp_processor.go b/pkg/network/tracer/connection/ebpfless/tcp_processor.go index b23b8bbac4bbe..500a89893eeb6 100644 --- a/pkg/network/tracer/connection/ebpfless/tcp_processor.go +++ b/pkg/network/tracer/connection/ebpfless/tcp_processor.go @@ -10,6 +10,7 @@ package ebpfless import ( "fmt" "syscall" + "time" "golang.org/x/sys/unix" @@ -63,6 +64,19 @@ func NewTCPProcessor() *TCPProcessor { //nolint:revive // TODO } } +// updateConnStatsForOpen sets the duration to a "timestamp" representing the open time +func updateConnStatsForOpen(conn *network.ConnectionStats) { + conn.IsClosed = false + conn.Duration = time.Duration(time.Now().UnixNano()) +} + +// updateConnStatsForClose writes the actual duration once the connection closed +func updateConnStatsForClose(conn *network.ConnectionStats) { + conn.IsClosed = true + nowNs := time.Now().UnixNano() + conn.Duration = time.Duration(nowNs - int64(conn.Duration)) +} + // calcNextSeq returns the seq "after" this segment, aka, what the ACK will be once this segment is received func calcNextSeq(tcp *layers.TCP, payloadLen uint16) uint32 { nextSeq := tcp.Seq + uint32(payloadLen) @@ -105,6 +119,8 @@ func (t *TCPProcessor) updateSynFlag(conn *network.ConnectionStats, st *connecti // if any SynState has progressed, move to attempted if st.tcpState == ConnStatClosed && (st.localSynState != SynStateNone || st.remoteSynState != SynStateNone) { st.tcpState = ConnStatAttempted + + updateConnStatsForOpen(conn) } // if both synStates are ack'd, move to established if st.tcpState == ConnStatAttempted && st.localSynState == SynStateAcked && st.remoteSynState == SynStateAcked { @@ -188,6 +204,7 @@ func (t *TCPProcessor) updateFinFlag(conn *network.ConnectionStats, st *connecti tcpState: ConnStatClosed, } conn.Monotonic.TCPClosed++ + updateConnStatsForClose(conn) } } @@ -200,6 +217,7 @@ func (t *TCPProcessor) updateRstFlag(conn *network.ConnectionStats, st *connecti if st.tcpState == ConnStatAttempted { reason = syscall.ECONNREFUSED } + conn.TCPFailures[uint16(reason)]++ if st.tcpState == ConnStatEstablished { conn.Monotonic.TCPClosed++ @@ -207,7 +225,7 @@ func (t *TCPProcessor) updateRstFlag(conn *network.ConnectionStats, st *connecti *st = connectionState{ tcpState: ConnStatClosed, } - conn.TCPFailures[uint16(reason)]++ + updateConnStatsForClose(conn) } // Process handles a TCP packet, calculating stats and keeping track of its state according to the diff --git a/pkg/network/tracer/connection/ebpfless/tcp_processor_test.go b/pkg/network/tracer/connection/ebpfless/tcp_processor_test.go index 2d7e1ba4bff33..a558f073dc4ec 100644 --- a/pkg/network/tracer/connection/ebpfless/tcp_processor_test.go +++ b/pkg/network/tracer/connection/ebpfless/tcp_processor_test.go @@ -747,3 +747,31 @@ func TestUnusualAckSyn(t *testing.T) { } require.Equal(t, expectedStats, f.conn.Monotonic) } + +// TestOpenCloseConn checks whether IsClosed is set correctly in ConnectionStats +func TestOpenCloseConn(t *testing.T) { + pb := newPacketBuilder(lowerSeq, higherSeq) + + f := newTcpTestFixture(t) + + // send a SYN packet to kick things off + f.runPkt(pb.incoming(0, 0, 0, SYN)) + require.False(t, f.conn.IsClosed) + + // finish up the connection handshake and close it + remainingPkts := []testCapture{ + pb.outgoing(0, 0, 1, SYN|ACK), + pb.incoming(0, 1, 1, ACK), + // active close after sending no data + pb.outgoing(0, 1, 1, FIN|ACK), + pb.incoming(0, 1, 2, FIN|ACK), + pb.outgoing(0, 2, 2, ACK), + } + f.runPkts(remainingPkts) + // should be closed now + require.True(t, f.conn.IsClosed) + + // open it up again, it should not be marked closed afterward + f.runPkt(pb.incoming(0, 0, 0, SYN)) + require.False(t, f.conn.IsClosed) +} diff --git a/pkg/network/tracer/tracer_linux_test.go b/pkg/network/tracer/tracer_linux_test.go index 519c0ef979e3b..74e00cb3588a4 100644 --- a/pkg/network/tracer/tracer_linux_test.go +++ b/pkg/network/tracer/tracer_linux_test.go @@ -2357,7 +2357,6 @@ func BenchmarkAddProcessInfo(b *testing.B) { func (s *TracerSuite) TestConnectionDuration() { t := s.T() cfg := testConfig() - skipEbpflessTodo(t, cfg) tr := setupTracer(t, cfg) srv := tracertestutil.NewTCPServer(func(c net.Conn) { @@ -2365,15 +2364,17 @@ func (s *TracerSuite) TestConnectionDuration() { for { _, err := c.Read(b[:]) if err != nil && (errors.Is(err, net.ErrClosed) || err == io.EOF) { - return + break } require.NoError(t, err) _, err = c.Write([]byte("pong")) if err != nil && (errors.Is(err, net.ErrClosed) || err == io.EOF) { - return + break } require.NoError(t, err) } + err := c.Close() + require.NoError(t, err) }) require.NoError(t, srv.Run(), "error running server") @@ -2421,7 +2422,10 @@ LOOP: require.EventuallyWithT(t, func(collect *assert.CollectT) { var found bool conn, found = findConnection(c.LocalAddr(), srv.Addr(), getConnections(t, tr)) - assert.True(collect, found, "could not find closed connection") + if !assert.True(collect, found, "could not find connection") { + return + } + assert.True(collect, conn.IsClosed, "connection should be closed") }, 3*time.Second, 100*time.Millisecond, "could not find closed connection") // after closing the client connection, the duration should be From 643c43a24e537f713d051b0f33b97dc8d53ec651 Mon Sep 17 00:00:00 2001 From: Kevin Fairise <132568982+KevinFairise2@users.noreply.github.com> Date: Thu, 5 Dec 2024 23:20:38 +0100 Subject: [PATCH 287/439] Mark TestPodParser test as flaky (#31811) --- .../collectors/util/kubernetes_resource_parsers/pod_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/comp/core/workloadmeta/collectors/util/kubernetes_resource_parsers/pod_test.go b/comp/core/workloadmeta/collectors/util/kubernetes_resource_parsers/pod_test.go index a90d0a2028357..2f5e8e0c941a0 100644 --- a/comp/core/workloadmeta/collectors/util/kubernetes_resource_parsers/pod_test.go +++ b/comp/core/workloadmeta/collectors/util/kubernetes_resource_parsers/pod_test.go @@ -16,9 +16,11 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" + "github.com/DataDog/datadog-agent/pkg/util/testutil/flake" ) func TestPodParser_Parse(t *testing.T) { + flake.Mark(t) filterAnnotations := []string{"ignoreAnnotation"} parser, err := NewPodParser(filterAnnotations) From e03dff2a8a79262d4bd5ed8e926ee97c9e38043c Mon Sep 17 00:00:00 2001 From: Kevin Fairise <132568982+KevinFairise2@users.noreply.github.com> Date: Thu, 5 Dec 2024 23:38:01 +0100 Subject: [PATCH 288/439] Do not print Ansible logs (#31814) --- test/new-e2e/tests/installer/unix/all_packages_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/new-e2e/tests/installer/unix/all_packages_test.go b/test/new-e2e/tests/installer/unix/all_packages_test.go index f213a0fda8394..82f3d6bf44c12 100644 --- a/test/new-e2e/tests/installer/unix/all_packages_test.go +++ b/test/new-e2e/tests/installer/unix/all_packages_test.go @@ -217,7 +217,7 @@ func (s *packageBaseSuite) RunInstallScript(params ...string) { playbookPath := s.writeAnsiblePlaybook(env, params...) // Run the playbook - s.Env().RemoteHost.MustExecute(fmt.Sprintf("%sansible-playbook -vvv %s", ansiblePrefix, playbookPath)) + s.Env().RemoteHost.MustExecute(fmt.Sprintf("%sansible-playbook %s > /dev/null 2> /dev/null", ansiblePrefix, playbookPath)) // touch install files for compatibility s.Env().RemoteHost.MustExecute("touch /tmp/datadog-installer-stdout.log") From a1a230f012e306c2e0e9f49af3f888e1582a92fe Mon Sep 17 00:00:00 2001 From: Stuart Geipel Date: Thu, 5 Dec 2024 17:44:46 -0500 Subject: [PATCH 289/439] [ebpfless] Fix TestTCPRemoveEntries (#31816) --- pkg/network/tracer/tracer_linux_test.go | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/pkg/network/tracer/tracer_linux_test.go b/pkg/network/tracer/tracer_linux_test.go index 74e00cb3588a4..5897839fb2c41 100644 --- a/pkg/network/tracer/tracer_linux_test.go +++ b/pkg/network/tracer/tracer_linux_test.go @@ -108,13 +108,19 @@ func (s *TracerSuite) TestTCPRemoveEntries() { require.NoError(t, err) defer c2.Close() - conn, ok := findConnection(c2.LocalAddr(), c2.RemoteAddr(), getConnections(t, tr)) - require.True(t, ok) - assert.Equal(t, clientMessageSize, int(conn.Monotonic.SentBytes)) - assert.Equal(t, 0, int(conn.Monotonic.RecvBytes)) - assert.Equal(t, 0, int(conn.Monotonic.Retransmits)) - assert.Equal(t, os.Getpid(), int(conn.Pid)) - assert.Equal(t, addrPort(server.Address()), int(conn.DPort)) + assert.EventuallyWithT(t, func(ct *assert.CollectT) { + conn, ok := findConnection(c2.LocalAddr(), c2.RemoteAddr(), getConnections(t, tr)) + if !assert.True(ct, ok) { + return + } + assert.Equal(ct, clientMessageSize, int(conn.Monotonic.SentBytes)) + assert.Equal(ct, 0, int(conn.Monotonic.RecvBytes)) + assert.Equal(ct, 0, int(conn.Monotonic.Retransmits)) + if !tr.config.EnableEbpfless { + assert.Equal(ct, os.Getpid(), int(conn.Pid)) + } + assert.Equal(ct, addrPort(server.Address()), int(conn.DPort)) + }, 3*time.Second, 100*time.Millisecond) // Make sure the first connection got cleaned up assert.Eventually(t, func() bool { From 60bad3775521ad4b6311808c014ad3eb03011dc3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 6 Dec 2024 07:21:03 +0000 Subject: [PATCH 290/439] CWS: sync BTFHub constants (#31820) Co-authored-by: --- .../probe/constantfetch/btfhub/constants.json | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/pkg/security/probe/constantfetch/btfhub/constants.json b/pkg/security/probe/constantfetch/btfhub/constants.json index 00d66492a9624..c8e007fa9ae5c 100644 --- a/pkg/security/probe/constantfetch/btfhub/constants.json +++ b/pkg/security/probe/constantfetch/btfhub/constants.json @@ -18337,6 +18337,13 @@ "uname_release": "4.14.35-2047.541.4.1.el7uek.aarch64", "cindex": 89 }, + { + "distrib": "ol", + "version": "7", + "arch": "arm64", + "uname_release": "4.14.35-2047.542.2.el7uek.aarch64", + "cindex": 89 + }, { "distrib": "ol", "version": "7", @@ -20948,6 +20955,13 @@ "uname_release": "4.1.12-124.91.3.el7uek.x86_64", "cindex": 94 }, + { + "distrib": "ol", + "version": "7", + "arch": "x86_64", + "uname_release": "4.1.12-124.92.3.el7uek.x86_64", + "cindex": 94 + }, { "distrib": "ol", "version": "7", @@ -23874,6 +23888,13 @@ "uname_release": "4.14.35-2047.543.2.el7uek.x86_64", "cindex": 96 }, + { + "distrib": "ol", + "version": "7", + "arch": "x86_64", + "uname_release": "4.14.35-2047.543.3.el7uek.x86_64", + "cindex": 96 + }, { "distrib": "ol", "version": "7", From e46622ae56f719d6ad8ef4b87ec1f4b3416d9864 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20Beauz=C3=A9e-Luyssen?= Date: Fri, 6 Dec 2024 08:39:11 +0100 Subject: [PATCH 291/439] Replace --incremental-build by their --rebuild equivalent (#31573) Co-authored-by: clarkb7 --- omnibus/config/software/datadog-agent.rb | 8 ++++---- omnibus/config/software/datadog-dogstatsd.rb | 2 +- omnibus/config/software/datadog-iot-agent.rb | 4 ++-- omnibus/config/software/installer.rb | 4 ++-- tasks/cws_instrumentation.py | 4 ++-- tasks/process_agent.py | 4 ++-- tasks/security_agent.py | 4 ++-- tasks/system_probe.py | 8 ++++---- 8 files changed, 19 insertions(+), 19 deletions(-) diff --git a/omnibus/config/software/datadog-agent.rb b/omnibus/config/software/datadog-agent.rb index eaa141eab49e3..ecfe7cb0d4c7c 100644 --- a/omnibus/config/software/datadog-agent.rb +++ b/omnibus/config/software/datadog-agent.rb @@ -89,8 +89,8 @@ command "inv -e rtloader.clean" command "inv -e rtloader.make --install-prefix \"#{windows_safe_path(python_2_embedded)}\" --cmake-options \"-G \\\"Unix Makefiles\\\" \\\"-DPython3_EXECUTABLE=#{windows_safe_path(python_3_embedded)}\\python.exe\"\"", :env => env command "mv rtloader/bin/*.dll #{install_dir}/bin/agent/" - command "inv -e agent.build --exclude-rtloader --major-version #{major_version_arg} --rebuild --no-development --install-path=#{install_dir} --embedded-path=#{install_dir}/embedded #{do_windows_sysprobe} --flavor #{flavor_arg}", env: env - command "inv -e systray.build --major-version #{major_version_arg} --rebuild", env: env + command "inv -e agent.build --exclude-rtloader --major-version #{major_version_arg} --no-development --install-path=#{install_dir} --embedded-path=#{install_dir}/embedded #{do_windows_sysprobe} --flavor #{flavor_arg}", env: env + command "inv -e systray.build --major-version #{major_version_arg}", env: env else command "inv -e rtloader.clean" command "inv -e rtloader.make --install-prefix \"#{install_dir}/embedded\" --cmake-options '-DCMAKE_CXX_FLAGS:=\"-D_GLIBCXX_USE_CXX11_ABI=0\" -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_FIND_FRAMEWORK:STRING=NEVER -DPython3_EXECUTABLE=#{install_dir}/embedded/bin/python3'", :env => env @@ -100,10 +100,10 @@ if linux_target? include_sds = "--include-sds" # we only support SDS on Linux targets for now end - command "inv -e agent.build --exclude-rtloader #{include_sds} --major-version #{major_version_arg} --rebuild --no-development --install-path=#{install_dir} --embedded-path=#{install_dir}/embedded --flavor #{flavor_arg}", env: env + command "inv -e agent.build --exclude-rtloader #{include_sds} --major-version #{major_version_arg} --no-development --install-path=#{install_dir} --embedded-path=#{install_dir}/embedded --flavor #{flavor_arg}", env: env if heroku_target? - command "inv -e agent.build --exclude-rtloader --major-version #{major_version_arg} --rebuild --no-development --install-path=#{install_dir} --embedded-path=#{install_dir}/embedded --flavor #{flavor_arg} --agent-bin=bin/agent/core-agent", env: env + command "inv -e agent.build --exclude-rtloader --major-version #{major_version_arg} --no-development --install-path=#{install_dir} --embedded-path=#{install_dir}/embedded --flavor #{flavor_arg} --agent-bin=bin/agent/core-agent", env: env end end diff --git a/omnibus/config/software/datadog-dogstatsd.rb b/omnibus/config/software/datadog-dogstatsd.rb index f212a799078ad..f22a68ec7ec13 100644 --- a/omnibus/config/software/datadog-dogstatsd.rb +++ b/omnibus/config/software/datadog-dogstatsd.rb @@ -33,7 +33,7 @@ end # we assume the go deps are already installed before running omnibus - command "invoke dogstatsd.build --rebuild --major-version #{major_version_arg}", env: env + command "invoke dogstatsd.build --major-version #{major_version_arg}", env: env mkdir "#{install_dir}/etc/datadog-dogstatsd" unless windows_target? diff --git a/omnibus/config/software/datadog-iot-agent.rb b/omnibus/config/software/datadog-iot-agent.rb index afabbd0835188..b528cb485c49b 100644 --- a/omnibus/config/software/datadog-iot-agent.rb +++ b/omnibus/config/software/datadog-iot-agent.rb @@ -39,7 +39,7 @@ end if linux_target? - command "invoke agent.build --flavor iot --rebuild --no-development --major-version #{major_version_arg}", env: env + command "invoke agent.build --flavor iot --no-development --major-version #{major_version_arg}", env: env mkdir "#{install_dir}/bin" mkdir "#{install_dir}/run/" @@ -61,7 +61,7 @@ mkdir conf_dir mkdir "#{install_dir}/bin/agent" - command "inv agent.build --flavor iot --rebuild --no-development --major-version #{major_version_arg}", env: env + command "inv agent.build --flavor iot --no-development --major-version #{major_version_arg}", env: env # move around bin and config files move 'bin/agent/dist/datadog.yaml', "#{conf_dir}/datadog.yaml.example" diff --git a/omnibus/config/software/installer.rb b/omnibus/config/software/installer.rb index 99708622641fb..38b612d2510eb 100644 --- a/omnibus/config/software/installer.rb +++ b/omnibus/config/software/installer.rb @@ -32,11 +32,11 @@ env = with_embedded_path(env) if linux_target? - command "invoke installer.build --rebuild --no-cgo --run-path=/opt/datadog-packages/run --install-path=#{install_dir}", env: env + command "invoke installer.build --no-cgo --run-path=/opt/datadog-packages/run --install-path=#{install_dir}", env: env mkdir "#{install_dir}/bin" copy 'bin/installer', "#{install_dir}/bin/" elsif windows_target? - command "inv -e installer.build --rebuild --install-path=#{install_dir}", env: env + command "inv -e installer.build --install-path=#{install_dir}", env: env copy 'bin/installer/installer.exe', "#{install_dir}/datadog-installer.exe" end diff --git a/tasks/cws_instrumentation.py b/tasks/cws_instrumentation.py index c2cb17b40530c..748c6b64784c3 100644 --- a/tasks/cws_instrumentation.py +++ b/tasks/cws_instrumentation.py @@ -28,7 +28,7 @@ def build( ctx, build_tags=None, race=False, - incremental_build=True, + rebuild=False, major_version='7', go_mod="readonly", static=False, @@ -59,7 +59,7 @@ def build( build_tags.append("osusergo") race_opt = "-race" if race else "" - build_type = "" if incremental_build else "-a" + build_type = "-a" if rebuild else "" go_build_tags = " ".join(build_tags) agent_bin = BIN_PATH diff --git a/tasks/process_agent.py b/tasks/process_agent.py index 50d716e1a1831..42beed0d770f3 100644 --- a/tasks/process_agent.py +++ b/tasks/process_agent.py @@ -24,7 +24,7 @@ def build( build_exclude=None, install_path=None, flavor=AgentFlavor.base.name, - incremental_build=False, + rebuild=False, major_version='7', go_mod="readonly", ): @@ -80,7 +80,7 @@ def build( args = { "go_mod": go_mod, "race_opt": "-race" if race else "", - "build_type": "" if incremental_build else "-a", + "build_type": "-a" if rebuild else "", "go_build_tags": " ".join(build_tags), "agent_bin": BIN_PATH, "gcflags": gcflags, diff --git a/tasks/security_agent.py b/tasks/security_agent.py index 725c0d6d0a583..fe1def0e39b8c 100644 --- a/tasks/security_agent.py +++ b/tasks/security_agent.py @@ -52,7 +52,7 @@ def build( ctx, build_tags, race=False, - incremental_build=True, + rebuild=False, install_path=None, major_version='7', go_mod="readonly", @@ -100,7 +100,7 @@ def build( args = { "go_mod": go_mod, "race_opt": "-race" if race else "", - "build_type": "" if incremental_build else "-a", + "build_type": "-a" if rebuild else "", "go_build_tags": " ".join(build_tags), "agent_bin": BIN_PATH, "gcflags": gcflags, diff --git a/tasks/system_probe.py b/tasks/system_probe.py index c14c0541f8eaf..7478f31c415fc 100644 --- a/tasks/system_probe.py +++ b/tasks/system_probe.py @@ -676,7 +676,7 @@ def get_libpcap_cgo_flags(ctx, install_path: str = None): def build( ctx, race=False, - incremental_build=True, + rebuild=False, major_version='7', go_mod="readonly", arch: str = CURRENT_ARCH, @@ -711,7 +711,7 @@ def build( bundle_ebpf=bundle_ebpf, go_mod=go_mod, race=race, - incremental_build=incremental_build, + rebuild=rebuild, strip_binary=strip_binary, arch=arch, static=static, @@ -733,7 +733,7 @@ def clean( def build_sysprobe_binary( ctx, race=False, - incremental_build=True, + rebuild=False, major_version='7', go_mod="readonly", arch: str = CURRENT_ARCH, @@ -784,7 +784,7 @@ def build_sysprobe_binary( args = { "go_mod": go_mod, "race_opt": " -race" if race else "", - "build_type": "" if incremental_build else " -a", + "build_type": " -a" if rebuild else "", "go_build_tags": " ".join(build_tags), "agent_bin": binary, "gcflags": gcflags, From 0cd172ffc9fbbf95f06def58bdba079df529e20e Mon Sep 17 00:00:00 2001 From: Kevin Fairise <132568982+KevinFairise2@users.noreply.github.com> Date: Fri, 6 Dec 2024 10:03:23 +0100 Subject: [PATCH 292/439] Delete test/kitchen folder (#31525) --- .github/CODEOWNERS | 17 +- .gitlab-ci.yml | 46 +- .gitlab/.ci-linters.yml | 10 - .gitlab/JOBOWNERS | 7 - .gitlab/e2e_install_packages/common.yml | 2 +- .../e2e_deploy.yml} | 16 +- .gitlab/functional_test/include.yml | 2 +- .../functional_test_cleanup.yml | 17 - .gitlab/kernel_matrix_testing/common.yml | 10 +- .gitlab/kitchen_cleanup/cleanup.yml | 28 - .gitlab/kitchen_cleanup/include.yml | 6 - .gitlab/kitchen_cleanup/kitchen_cleanup.yml | 16 - .gitlab/kitchen_testing/common.yml | 161 -- .gitlab/kitchen_testing/include.yml | 7 - .gitlab/kitchen_testing/windows.yml | 25 - .gitlab/maintenance_jobs/include.yml | 2 - .gitlab/maintenance_jobs/kitchen.yml | 47 - .gitlab/source_test/tooling_unit_tests.yml | 15 - .gitlab/source_test/windows.yml | 2 +- .gitlab/trigger_release/trigger_release.yml | 2 +- omnibus/.gitignore | 3 - tasks/kernel_matrix_testing/ci.py | 2 +- tasks/kmt.py | 4 +- tasks/libs/pipeline/data.py | 14 +- tasks/libs/pipeline/tools.py | 4 +- tasks/libs/types/types.py | 2 - tasks/linter.py | 4 +- tasks/system_probe.py | 94 +- tasks/unit_tests/junit_tests.py | 10 - tasks/unit_tests/libs/data_tests.py | 8 - .../bedroom-rspec-win2016-azure-x86_64.xml | 42 +- tasks/unit_tests/testdata/variables.yml | 9 +- tasks/winbuildscripts/secagent.ps1 | 2 +- tasks/winbuildscripts/sysprobe.bat | 4 +- tasks/winbuildscripts/sysprobe.ps1 | 4 +- test/files/default/.gitkeep | 1 + test/kitchen/.gitignore | 26 - test/kitchen/Berksfile | 27 - test/kitchen/Gemfile.local | 11 - test/kitchen/README.md | 283 ---- test/kitchen/azure-creds.erb | 4 - test/kitchen/docs/README.md | 236 --- test/kitchen/docs/win-all-subservices.md | 27 - test/kitchen/docs/win-installopts.md | 15 - test/kitchen/docs/win-no-subservices.md | 27 - test/kitchen/drivers/azure-driver.yml | 200 --- test/kitchen/drivers/ec2-driver.yml | 215 --- test/kitchen/drivers/hyperv-driver.yml | 89 -- test/kitchen/drivers/vagrant-driver.yml | 54 - test/kitchen/platforms.json | 175 --- .../site-cookbooks/dd-agent-5/README.md | 6 - .../dd-agent-5/attributes/default.rb | 26 - .../site-cookbooks/dd-agent-5/metadata.rb | 9 - .../dd-agent-5/recipes/_install_linux.rb | 68 - .../recipes/_install_windows_base.rb | 73 - .../dd-agent-5/recipes/default.rb | 15 - .../dd-agent-5/templates/datadog.conf.erb | 3 - .../dd-agent-disable-system-repos/.gitignore | 15 - .../dd-agent-disable-system-repos/Berksfile | 3 - .../dd-agent-disable-system-repos/Gemfile | 4 - .../dd-agent-disable-system-repos/README.md | 3 - .../dd-agent-disable-system-repos/chefignore | 96 -- .../dd-agent-disable-system-repos/metadata.rb | 5 - .../recipes/default.rb | 20 - .../dd-agent-import-conf/.gitignore | 15 - .../dd-agent-import-conf/Berksfile | 3 - .../dd-agent-import-conf/Gemfile | 4 - .../dd-agent-import-conf/README.md | 4 - .../attributes/default.rb | 13 - .../dd-agent-import-conf/chefignore | 96 -- .../dd-agent-import-conf/metadata.rb | 9 - .../recipes/_datadog-agent-6.rb | 75 - .../dd-agent-import-conf/recipes/default.rb | 26 - .../dd-agent-install/.gitignore | 15 - .../site-cookbooks/dd-agent-install/Berksfile | 3 - .../site-cookbooks/dd-agent-install/Gemfile | 4 - .../site-cookbooks/dd-agent-install/README.md | 6 - .../dd-agent-install/attributes/default.rb | 83 - .../dd-agent-install/chefignore | 96 -- .../dd-agent-install/metadata.rb | 9 - .../recipes/_agent6_windows_config.rb | 120 -- .../recipes/_damage_windows_install.rb | 11 - .../recipes/_install_windows.rb | 47 - .../recipes/_install_windows_base.rb | 101 -- .../recipes/_repair_windows_install.rb | 12 - .../recipes/_stop_windows_agent.rb | 23 - .../dd-agent-install/recipes/default.rb | 15 - .../templates/default/activemq.yaml.erb | 60 - .../templates/default/apache.yaml.erb | 19 - .../templates/default/cacti.yaml.erb | 22 - .../templates/default/cassandra.yaml.erb | 152 -- .../templates/default/consul.yaml.erb | 24 - .../templates/default/couch.yaml.erb | 12 - .../templates/default/couchbase.yaml.erb | 9 - .../templates/default/datadog.conf.erb | 240 --- .../templates/default/datadog.yaml.erb | 116 -- .../templates/default/directory.yaml.erb | 15 - .../templates/default/disk.yaml.erb | 3 - .../templates/default/dns_check.yaml.erb | 13 - .../templates/default/docker.yaml.erb | 13 - .../templates/default/docker_daemon.yaml.erb | 3 - .../templates/default/elastic.yaml.erb | 48 - .../templates/default/etcd.yaml.erb | 20 - .../templates/default/fluentd.yaml.erb | 4 - .../templates/default/go-metro.yaml.erb | 4 - .../templates/default/go_expvar.yaml.erb | 3 - .../templates/default/gunicorn.yaml.erb | 15 - .../templates/default/haproxy.yaml.erb | 17 - .../templates/default/hdfs.yaml.erb | 18 - .../templates/default/http_check.yaml.erb | 5 - .../templates/default/iis.yaml.erb | 41 - .../templates/default/integration.yaml.erb | 3 - .../templates/default/jenkins.yaml.erb | 9 - .../templates/default/jmx.yaml.erb | 5 - .../templates/default/kafka.yaml.erb | 553 ------- .../templates/default/kafka_consumer.yaml.erb | 23 - .../templates/default/kubernetes.yaml.erb | 4 - .../templates/default/kyototycoon.yaml.erb | 19 - .../templates/default/lighttpd.yaml.erb | 15 - .../templates/default/mcache.yaml.erb | 18 - .../templates/default/mesos.yaml.erb | 8 - .../templates/default/mongo.yaml.erb | 35 - .../templates/default/mysql.yaml.erb | 38 - .../templates/default/network.yaml.erb | 13 - .../templates/default/nginx.yaml.erb | 23 - .../templates/default/ntp.yaml.erb | 5 - .../templates/default/pgbouncer.yaml.erb | 6 - .../templates/default/php_fpm.yaml.erb | 4 - .../templates/default/postfix.yaml.erb | 21 - .../templates/default/postgres.yaml.erb | 21 - .../templates/default/process.yaml.erb | 3 - .../templates/default/rabbitmq.yaml.erb | 54 - .../templates/default/redisdb.yaml.erb | 38 - .../templates/default/riak.yaml.erb | 9 - .../templates/default/snmp.yaml.erb | 3 - .../templates/default/solr.yaml.erb | 71 - .../templates/default/sqlserver.yaml.erb | 3 - .../templates/default/ssh_check.yaml.erb | 26 - .../templates/default/supervisord.yaml.erb | 6 - .../templates/default/system_core.yaml.erb | 9 - .../templates/default/system_swap.yaml.erb | 9 - .../templates/default/tcp_check.yaml.erb | 5 - .../templates/default/tokumx.yaml.erb | 34 - .../templates/default/tomcat.yaml.erb | 78 - .../templates/default/varnish.yaml.erb | 24 - .../default/win32_event_log.yaml.erb | 3 - .../default/windows_service.yaml.erb | 6 - .../templates/default/wmi_check.yaml.erb | 75 - .../templates/default/zk.yaml.erb | 22 - .../dd-agent-reinstall/.gitignore | 15 - .../dd-agent-reinstall/Berksfile | 3 - .../site-cookbooks/dd-agent-reinstall/Gemfile | 4 - .../dd-agent-reinstall/README.md | 3 - .../dd-agent-reinstall/attributes/default.rb | 8 - .../dd-agent-reinstall/chefignore | 96 -- .../dd-agent-reinstall/metadata.rb | 5 - .../dd-agent-reinstall/recipes/default.rb | 57 - .../dd-agent-rhel-workaround/.gitignore | 15 - .../dd-agent-rhel-workaround/Berksfile | 3 - .../dd-agent-rhel-workaround/Gemfile | 4 - .../dd-agent-rhel-workaround/README.md | 3 - .../dd-agent-rhel-workaround/chefignore | 96 -- .../dd-agent-rhel-workaround/metadata.rb | 5 - .../recipes/default.rb | 22 - .../dd-agent-sles-workaround/.gitignore | 15 - .../dd-agent-sles-workaround/Berksfile | 3 - .../dd-agent-sles-workaround/Gemfile | 4 - .../dd-agent-sles-workaround/README.md | 4 - .../dd-agent-sles-workaround/chefignore | 96 -- .../dd-agent-sles-workaround/metadata.rb | 5 - .../recipes/default.rb | 29 - .../dd-agent-system-files-check/.gitignore | 15 - .../dd-agent-system-files-check/Berksfile | 3 - .../dd-agent-system-files-check/Gemfile | 4 - .../dd-agent-system-files-check/README.md | 3 - .../dd-agent-system-files-check/chefignore | 96 -- .../dd-agent-system-files-check/metadata.rb | 5 - .../recipes/list-files-before-install.rb | 27 - .../dd-agent-upgrade/.gitignore | 15 - .../site-cookbooks/dd-agent-upgrade/Berksfile | 3 - .../site-cookbooks/dd-agent-upgrade/Gemfile | 4 - .../site-cookbooks/dd-agent-upgrade/README.md | 8 - .../dd-agent-upgrade/Vagrantfile | 25 - .../dd-agent-upgrade/attributes/default.rb | 70 - .../dd-agent-upgrade/chefignore | 96 -- .../dd-agent-upgrade/metadata.rb | 9 - .../dd-agent-upgrade/recipes/default.rb | 188 --- .../dd-system-probe-check/.gitignore | 7 - .../dd-system-probe-check/Berksfile | 3 - .../dd-system-probe-check/Gemfile | 4 - .../dd-system-probe-check/README.md | 3 - .../attributes/default.rb | 0 .../dd-system-probe-check/chefignore | 84 - .../files/default/.gitkeep | 0 .../files/windows/decompress_merge_module.ps1 | 61 - .../files/windows/iisstart.htm | 32 - .../files/windows/iisstart.png | Bin 98757 -> 0 bytes .../dd-system-probe-check/metadata.rb | 5 - .../dd-system-probe-check/recipes/default.rb | 27 - .../dd-system-probe-check/recipes/windows.rb | 96 -- test/kitchen/tasks/README.md | 6 - test/kitchen/tasks/__init__.py | 11 - test/kitchen/tasks/clean.sh | 72 - test/kitchen/tasks/kitchen.py | 253 --- .../kitchen/tasks/kitchen_rspec_xml_update.sh | 7 - test/kitchen/tasks/kitchen_setup.sh | 6 - test/kitchen/tasks/run-test-kitchen.ps1 | 35 - test/kitchen/tasks/run-test-kitchen.sh | 200 --- test/kitchen/tasks/show-strays.sh | 67 - test/kitchen/tasks/unit-tests/__init__.py | 0 .../tasks/unit-tests/gotest-failed-runlog | 10 - .../unit-tests/gotest-infra-failed-runlog | 10 - .../tasks/unit-tests/infra-failed-runlog | 10 - .../tasks/unit-tests/kitchen_unit_tests.py | 35 - .../tasks/unit-tests/test-failed-runlog | 10 - test/kitchen/test-definitions/chef-test.yml | 28 - .../test-definitions/platforms-common.yml | 30 - .../security-agent-stress.yml | 13 - .../test-definitions/security-agent-test.yml | 13 - .../test-definitions/upgrade5-test.yml | 40 - .../test-definitions/upgrade6-test.yml | 41 - .../test-definitions/upgrade7-test.yml | 47 - .../test-definitions/windows-cwsinstall.yml | 30 - .../test-definitions/windows-install-test.yml | 24 - .../test-definitions/windows-npm-test.md | 54 - .../test-definitions/windows-npm-test.yml | 322 ---- .../test-definitions/windows-npmdriver.yml | 29 - .../windows-secagent-test.yml | 10 - .../windows-sysprobe-test.yml | 10 - .../integration/chef/rspec_datadog/Gemfile | 4 - .../chef/rspec_datadog/chef_spec.rb | 7 - .../chef/rspec_datadog/spec_helper.rb | 1 - .../integration/common/rspec_datadog/Gemfile | 4 - .../rspec_datadog/kernel_out_spec_helper.rb | 83 - .../common/rspec_datadog/spec_helper.rb | 1383 ----------------- .../rspec_datadog/windows_npm_spec_helper.rb | 103 -- .../upgrade-agent5/rspec_datadog/Gemfile | 4 - .../rspec_datadog/spec_helper.rb | 1 - .../rspec_datadog/upgrade-agent5_spec.rb | 1 - .../upgrade-agent6/rspec_datadog/Gemfile | 4 - .../rspec_datadog/spec_helper.rb | 1 - .../rspec_datadog/upgrade-agent6_spec.rb | 1 - .../upgrade-agent7/rspec_datadog/Gemfile | 4 - .../rspec_datadog/spec_helper.rb | 1 - .../rspec_datadog/upgrade-agent7_spec.rb | 1 - .../integration/upgrade/rspec_datadog/Gemfile | 4 - .../upgrade/rspec_datadog/spec_helper.rb | 1 - .../upgrade/rspec_datadog/upgrade_spec.rb | 7 - .../rspec_datadog/Gemfile | 4 - .../rspec_datadog/spec_helper.rb | 1 - .../win-agent-with-cws-option_spec.rb | 81 - .../rspec_datadog/windows_npm_spec_helper.rb | 1 - .../win-all-subservices/rspec_datadog/Gemfile | 4 - .../rspec_datadog/spec_helper.rb | 1 - .../rspec_datadog/win-all-subservices_spec.rb | 12 - .../win-alt-dir/rspec_datadog/Gemfile | 4 - .../win-alt-dir/rspec_datadog/spec_helper.rb | 1 - .../rspec_datadog/win-alt-dir_spec.rb | 126 -- .../win-install-fail/rspec_datadog/Gemfile | 4 - .../rspec_datadog/spec_helper.rb | 1 - .../rspec_datadog/win-install-fail_spec.rb | 42 - .../win-installopts/rspec_datadog/Gemfile | 4 - .../rspec_datadog/spec_helper.rb | 1 - .../rspec_datadog/win-installopts_spec.rb | 64 - .../win-no-subservices/rspec_datadog/Gemfile | 4 - .../rspec_datadog/spec_helper.rb | 1 - .../rspec_datadog/win-no-subservices_spec.rb | 48 - .../rspec_datadog/Gemfile | 4 - .../rspec_datadog/spec_helper.rb | 1 - .../win-npm-beta-upgrade_spec.rb | 10 - .../rspec_datadog/windows_npm_spec_helper.rb | 1 - .../rspec_datadog/Gemfile | 4 - .../rspec_datadog/spec_helper.rb | 1 - .../win-npm-no-npm-option_spec.rb | 10 - .../rspec_datadog/windows_npm_spec_helper.rb | 1 - .../rspec_datadog/Gemfile | 4 - .../rspec_datadog/spec_helper.rb | 1 - .../win-npm-reinstall-option_spec.rb | 9 - .../rspec_datadog/windows_npm_spec_helper.rb | 1 - .../rspec_datadog/Gemfile | 4 - .../rspec_datadog/spec_helper.rb | 1 - .../win-npm-upgrade-no-npm_spec.rb | 9 - .../rspec_datadog/windows_npm_spec_helper.rb | 1 - .../rspec_datadog/Gemfile | 4 - .../rspec_datadog/spec_helper.rb | 1 - .../win-npm-upgrade-to-npm-no-csflag_spec.rb | 10 - .../rspec_datadog/windows_npm_spec_helper.rb | 1 - .../rspec_datadog/Gemfile | 4 - .../rspec_datadog/spec_helper.rb | 1 - .../win-npm-upgrade-to-npm_spec.rb | 10 - .../rspec_datadog/windows_npm_spec_helper.rb | 1 - .../rspec_datadog/Gemfile | 4 - .../rspec_datadog/spec_helper.rb | 1 - .../win-npm-with-addlocal-all_spec.rb | 9 - .../rspec_datadog/windows_npm_spec_helper.rb | 1 - .../rspec_datadog/Gemfile | 4 - .../rspec_datadog/spec_helper.rb | 1 - .../win-npm-with-addlocal-npm_spec.rb | 9 - .../rspec_datadog/windows_npm_spec_helper.rb | 1 - .../rspec_datadog/Gemfile | 4 - .../rspec_datadog/spec_helper.rb | 1 - .../win-npm-with-cs-option_spec.rb | 9 - .../rspec_datadog/windows_npm_spec_helper.rb | 1 - .../rspec_datadog/Gemfile | 4 - .../rspec_datadog/spec_helper.rb | 1 - .../win-npm-with-npm-option_spec.rb | 9 - .../rspec_datadog/windows_npm_spec_helper.rb | 1 - .../win-repair/rspec_datadog/Gemfile | 4 - .../win-repair/rspec_datadog/spec_helper.rb | 1 - .../rspec_datadog/win-repair_spec.rb | 6 - .../win-secagent-test/rspec_datadog/Gemfile | 4 - .../rspec_datadog/spec_helper.rb | 1 - .../rspec_datadog/win-secagent-test_spec.rb | 43 - .../win-sysprobe-test/rspec_datadog/Gemfile | 4 - .../rspec_datadog/spec_helper.rb | 1 - .../rspec_datadog/sysprobe_spec_helper.rb | 52 - .../rspec_datadog/win-sysprobe-test_spec.rb | 39 - .../rspec_datadog/windows_npm_spec_helper.rb | 1 - .../rspec_datadog/Gemfile | 4 - .../rspec_datadog/spec_helper.rb | 1 - .../win-upgrade-rollback_spec.rb | 8 - .../win-user/rspec_datadog/Gemfile | 4 - .../win-user/rspec_datadog/spec_helper.rb | 1 - .../win-user/rspec_datadog/win-user_spec.rb | 142 -- test/kitchen/uservars-example.json | 29 - test/new-e2e/tests/npm/ec2_1host_test.go | 4 +- .../tests/sysprobe-functional/.gitignore | 7 + .../tests/sysprobe-functional/apmtags_test.go | 9 +- .../sysprobe-functional/sysprobe_test.go | 4 +- 329 files changed, 95 insertions(+), 10605 deletions(-) rename .gitlab/{kitchen_deploy/kitchen_deploy.yml => e2e_testing_deploy/e2e_deploy.yml} (97%) delete mode 100644 .gitlab/functional_test_cleanup/functional_test_cleanup.yml delete mode 100644 .gitlab/kitchen_cleanup/cleanup.yml delete mode 100644 .gitlab/kitchen_cleanup/include.yml delete mode 100644 .gitlab/kitchen_cleanup/kitchen_cleanup.yml delete mode 100644 .gitlab/kitchen_testing/common.yml delete mode 100644 .gitlab/kitchen_testing/include.yml delete mode 100644 .gitlab/kitchen_testing/windows.yml delete mode 100644 .gitlab/maintenance_jobs/kitchen.yml create mode 100644 test/files/default/.gitkeep delete mode 100644 test/kitchen/.gitignore delete mode 100644 test/kitchen/Berksfile delete mode 100644 test/kitchen/Gemfile.local delete mode 100644 test/kitchen/README.md delete mode 100644 test/kitchen/azure-creds.erb delete mode 100644 test/kitchen/docs/README.md delete mode 100644 test/kitchen/docs/win-all-subservices.md delete mode 100644 test/kitchen/docs/win-installopts.md delete mode 100644 test/kitchen/docs/win-no-subservices.md delete mode 100644 test/kitchen/drivers/azure-driver.yml delete mode 100644 test/kitchen/drivers/ec2-driver.yml delete mode 100644 test/kitchen/drivers/hyperv-driver.yml delete mode 100644 test/kitchen/drivers/vagrant-driver.yml delete mode 100644 test/kitchen/platforms.json delete mode 100644 test/kitchen/site-cookbooks/dd-agent-5/README.md delete mode 100644 test/kitchen/site-cookbooks/dd-agent-5/attributes/default.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-5/metadata.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-5/recipes/_install_linux.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-5/recipes/_install_windows_base.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-5/recipes/default.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-5/templates/datadog.conf.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-disable-system-repos/.gitignore delete mode 100644 test/kitchen/site-cookbooks/dd-agent-disable-system-repos/Berksfile delete mode 100644 test/kitchen/site-cookbooks/dd-agent-disable-system-repos/Gemfile delete mode 100644 test/kitchen/site-cookbooks/dd-agent-disable-system-repos/README.md delete mode 100644 test/kitchen/site-cookbooks/dd-agent-disable-system-repos/chefignore delete mode 100644 test/kitchen/site-cookbooks/dd-agent-disable-system-repos/metadata.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-disable-system-repos/recipes/default.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-import-conf/.gitignore delete mode 100644 test/kitchen/site-cookbooks/dd-agent-import-conf/Berksfile delete mode 100644 test/kitchen/site-cookbooks/dd-agent-import-conf/Gemfile delete mode 100644 test/kitchen/site-cookbooks/dd-agent-import-conf/README.md delete mode 100644 test/kitchen/site-cookbooks/dd-agent-import-conf/attributes/default.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-import-conf/chefignore delete mode 100644 test/kitchen/site-cookbooks/dd-agent-import-conf/metadata.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-import-conf/recipes/_datadog-agent-6.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-import-conf/recipes/default.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/.gitignore delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/Berksfile delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/Gemfile delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/README.md delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/attributes/default.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/chefignore delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/metadata.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/recipes/_agent6_windows_config.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/recipes/_damage_windows_install.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/recipes/_install_windows.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/recipes/_install_windows_base.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/recipes/_repair_windows_install.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/recipes/_stop_windows_agent.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/recipes/default.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/activemq.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/apache.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/cacti.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/cassandra.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/consul.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/couch.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/couchbase.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/datadog.conf.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/datadog.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/directory.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/disk.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/dns_check.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/docker.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/docker_daemon.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/elastic.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/etcd.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/fluentd.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/go-metro.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/go_expvar.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/gunicorn.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/haproxy.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/hdfs.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/http_check.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/iis.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/integration.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/jenkins.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/jmx.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/kafka.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/kafka_consumer.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/kubernetes.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/kyototycoon.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/lighttpd.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/mcache.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/mesos.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/mongo.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/mysql.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/network.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/nginx.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/ntp.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/pgbouncer.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/php_fpm.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/postfix.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/postgres.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/process.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/rabbitmq.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/redisdb.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/riak.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/snmp.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/solr.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/sqlserver.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/ssh_check.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/supervisord.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/system_core.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/system_swap.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/tcp_check.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/tokumx.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/tomcat.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/varnish.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/win32_event_log.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/windows_service.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/wmi_check.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-install/templates/default/zk.yaml.erb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-reinstall/.gitignore delete mode 100644 test/kitchen/site-cookbooks/dd-agent-reinstall/Berksfile delete mode 100644 test/kitchen/site-cookbooks/dd-agent-reinstall/Gemfile delete mode 100644 test/kitchen/site-cookbooks/dd-agent-reinstall/README.md delete mode 100644 test/kitchen/site-cookbooks/dd-agent-reinstall/attributes/default.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-reinstall/chefignore delete mode 100644 test/kitchen/site-cookbooks/dd-agent-reinstall/metadata.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-reinstall/recipes/default.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-rhel-workaround/.gitignore delete mode 100644 test/kitchen/site-cookbooks/dd-agent-rhel-workaround/Berksfile delete mode 100644 test/kitchen/site-cookbooks/dd-agent-rhel-workaround/Gemfile delete mode 100644 test/kitchen/site-cookbooks/dd-agent-rhel-workaround/README.md delete mode 100644 test/kitchen/site-cookbooks/dd-agent-rhel-workaround/chefignore delete mode 100644 test/kitchen/site-cookbooks/dd-agent-rhel-workaround/metadata.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-rhel-workaround/recipes/default.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-sles-workaround/.gitignore delete mode 100644 test/kitchen/site-cookbooks/dd-agent-sles-workaround/Berksfile delete mode 100644 test/kitchen/site-cookbooks/dd-agent-sles-workaround/Gemfile delete mode 100644 test/kitchen/site-cookbooks/dd-agent-sles-workaround/README.md delete mode 100644 test/kitchen/site-cookbooks/dd-agent-sles-workaround/chefignore delete mode 100644 test/kitchen/site-cookbooks/dd-agent-sles-workaround/metadata.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-sles-workaround/recipes/default.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-system-files-check/.gitignore delete mode 100644 test/kitchen/site-cookbooks/dd-agent-system-files-check/Berksfile delete mode 100644 test/kitchen/site-cookbooks/dd-agent-system-files-check/Gemfile delete mode 100644 test/kitchen/site-cookbooks/dd-agent-system-files-check/README.md delete mode 100644 test/kitchen/site-cookbooks/dd-agent-system-files-check/chefignore delete mode 100644 test/kitchen/site-cookbooks/dd-agent-system-files-check/metadata.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-system-files-check/recipes/list-files-before-install.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-upgrade/.gitignore delete mode 100644 test/kitchen/site-cookbooks/dd-agent-upgrade/Berksfile delete mode 100644 test/kitchen/site-cookbooks/dd-agent-upgrade/Gemfile delete mode 100644 test/kitchen/site-cookbooks/dd-agent-upgrade/README.md delete mode 100644 test/kitchen/site-cookbooks/dd-agent-upgrade/Vagrantfile delete mode 100644 test/kitchen/site-cookbooks/dd-agent-upgrade/attributes/default.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-upgrade/chefignore delete mode 100644 test/kitchen/site-cookbooks/dd-agent-upgrade/metadata.rb delete mode 100644 test/kitchen/site-cookbooks/dd-agent-upgrade/recipes/default.rb delete mode 100644 test/kitchen/site-cookbooks/dd-system-probe-check/.gitignore delete mode 100644 test/kitchen/site-cookbooks/dd-system-probe-check/Berksfile delete mode 100644 test/kitchen/site-cookbooks/dd-system-probe-check/Gemfile delete mode 100644 test/kitchen/site-cookbooks/dd-system-probe-check/README.md delete mode 100644 test/kitchen/site-cookbooks/dd-system-probe-check/attributes/default.rb delete mode 100644 test/kitchen/site-cookbooks/dd-system-probe-check/chefignore delete mode 100644 test/kitchen/site-cookbooks/dd-system-probe-check/files/default/.gitkeep delete mode 100644 test/kitchen/site-cookbooks/dd-system-probe-check/files/windows/decompress_merge_module.ps1 delete mode 100644 test/kitchen/site-cookbooks/dd-system-probe-check/files/windows/iisstart.htm delete mode 100644 test/kitchen/site-cookbooks/dd-system-probe-check/files/windows/iisstart.png delete mode 100644 test/kitchen/site-cookbooks/dd-system-probe-check/metadata.rb delete mode 100644 test/kitchen/site-cookbooks/dd-system-probe-check/recipes/default.rb delete mode 100644 test/kitchen/site-cookbooks/dd-system-probe-check/recipes/windows.rb delete mode 100644 test/kitchen/tasks/README.md delete mode 100644 test/kitchen/tasks/__init__.py delete mode 100755 test/kitchen/tasks/clean.sh delete mode 100644 test/kitchen/tasks/kitchen.py delete mode 100755 test/kitchen/tasks/kitchen_rspec_xml_update.sh delete mode 100755 test/kitchen/tasks/kitchen_setup.sh delete mode 100644 test/kitchen/tasks/run-test-kitchen.ps1 delete mode 100755 test/kitchen/tasks/run-test-kitchen.sh delete mode 100755 test/kitchen/tasks/show-strays.sh delete mode 100644 test/kitchen/tasks/unit-tests/__init__.py delete mode 100644 test/kitchen/tasks/unit-tests/gotest-failed-runlog delete mode 100644 test/kitchen/tasks/unit-tests/gotest-infra-failed-runlog delete mode 100644 test/kitchen/tasks/unit-tests/infra-failed-runlog delete mode 100644 test/kitchen/tasks/unit-tests/kitchen_unit_tests.py delete mode 100644 test/kitchen/tasks/unit-tests/test-failed-runlog delete mode 100644 test/kitchen/test-definitions/chef-test.yml delete mode 100644 test/kitchen/test-definitions/platforms-common.yml delete mode 100644 test/kitchen/test-definitions/security-agent-stress.yml delete mode 100644 test/kitchen/test-definitions/security-agent-test.yml delete mode 100644 test/kitchen/test-definitions/upgrade5-test.yml delete mode 100644 test/kitchen/test-definitions/upgrade6-test.yml delete mode 100644 test/kitchen/test-definitions/upgrade7-test.yml delete mode 100644 test/kitchen/test-definitions/windows-cwsinstall.yml delete mode 100644 test/kitchen/test-definitions/windows-install-test.yml delete mode 100644 test/kitchen/test-definitions/windows-npm-test.md delete mode 100644 test/kitchen/test-definitions/windows-npm-test.yml delete mode 100644 test/kitchen/test-definitions/windows-npmdriver.yml delete mode 100644 test/kitchen/test-definitions/windows-secagent-test.yml delete mode 100644 test/kitchen/test-definitions/windows-sysprobe-test.yml delete mode 100644 test/kitchen/test/integration/chef/rspec_datadog/Gemfile delete mode 100644 test/kitchen/test/integration/chef/rspec_datadog/chef_spec.rb delete mode 120000 test/kitchen/test/integration/chef/rspec_datadog/spec_helper.rb delete mode 100644 test/kitchen/test/integration/common/rspec_datadog/Gemfile delete mode 100644 test/kitchen/test/integration/common/rspec_datadog/kernel_out_spec_helper.rb delete mode 100644 test/kitchen/test/integration/common/rspec_datadog/spec_helper.rb delete mode 100644 test/kitchen/test/integration/common/rspec_datadog/windows_npm_spec_helper.rb delete mode 100644 test/kitchen/test/integration/upgrade-agent5/rspec_datadog/Gemfile delete mode 120000 test/kitchen/test/integration/upgrade-agent5/rspec_datadog/spec_helper.rb delete mode 120000 test/kitchen/test/integration/upgrade-agent5/rspec_datadog/upgrade-agent5_spec.rb delete mode 100644 test/kitchen/test/integration/upgrade-agent6/rspec_datadog/Gemfile delete mode 120000 test/kitchen/test/integration/upgrade-agent6/rspec_datadog/spec_helper.rb delete mode 120000 test/kitchen/test/integration/upgrade-agent6/rspec_datadog/upgrade-agent6_spec.rb delete mode 100644 test/kitchen/test/integration/upgrade-agent7/rspec_datadog/Gemfile delete mode 120000 test/kitchen/test/integration/upgrade-agent7/rspec_datadog/spec_helper.rb delete mode 120000 test/kitchen/test/integration/upgrade-agent7/rspec_datadog/upgrade-agent7_spec.rb delete mode 100644 test/kitchen/test/integration/upgrade/rspec_datadog/Gemfile delete mode 120000 test/kitchen/test/integration/upgrade/rspec_datadog/spec_helper.rb delete mode 100644 test/kitchen/test/integration/upgrade/rspec_datadog/upgrade_spec.rb delete mode 100644 test/kitchen/test/integration/win-agent-with-cws-option/rspec_datadog/Gemfile delete mode 120000 test/kitchen/test/integration/win-agent-with-cws-option/rspec_datadog/spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-agent-with-cws-option/rspec_datadog/win-agent-with-cws-option_spec.rb delete mode 120000 test/kitchen/test/integration/win-agent-with-cws-option/rspec_datadog/windows_npm_spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-all-subservices/rspec_datadog/Gemfile delete mode 120000 test/kitchen/test/integration/win-all-subservices/rspec_datadog/spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-all-subservices/rspec_datadog/win-all-subservices_spec.rb delete mode 100644 test/kitchen/test/integration/win-alt-dir/rspec_datadog/Gemfile delete mode 120000 test/kitchen/test/integration/win-alt-dir/rspec_datadog/spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-alt-dir/rspec_datadog/win-alt-dir_spec.rb delete mode 100644 test/kitchen/test/integration/win-install-fail/rspec_datadog/Gemfile delete mode 120000 test/kitchen/test/integration/win-install-fail/rspec_datadog/spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-install-fail/rspec_datadog/win-install-fail_spec.rb delete mode 100644 test/kitchen/test/integration/win-installopts/rspec_datadog/Gemfile delete mode 120000 test/kitchen/test/integration/win-installopts/rspec_datadog/spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-installopts/rspec_datadog/win-installopts_spec.rb delete mode 100644 test/kitchen/test/integration/win-no-subservices/rspec_datadog/Gemfile delete mode 120000 test/kitchen/test/integration/win-no-subservices/rspec_datadog/spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-no-subservices/rspec_datadog/win-no-subservices_spec.rb delete mode 100644 test/kitchen/test/integration/win-npm-beta-upgrade/rspec_datadog/Gemfile delete mode 120000 test/kitchen/test/integration/win-npm-beta-upgrade/rspec_datadog/spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-npm-beta-upgrade/rspec_datadog/win-npm-beta-upgrade_spec.rb delete mode 120000 test/kitchen/test/integration/win-npm-beta-upgrade/rspec_datadog/windows_npm_spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-npm-no-npm-option/rspec_datadog/Gemfile delete mode 120000 test/kitchen/test/integration/win-npm-no-npm-option/rspec_datadog/spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-npm-no-npm-option/rspec_datadog/win-npm-no-npm-option_spec.rb delete mode 120000 test/kitchen/test/integration/win-npm-no-npm-option/rspec_datadog/windows_npm_spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-npm-reinstall-option/rspec_datadog/Gemfile delete mode 120000 test/kitchen/test/integration/win-npm-reinstall-option/rspec_datadog/spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-npm-reinstall-option/rspec_datadog/win-npm-reinstall-option_spec.rb delete mode 120000 test/kitchen/test/integration/win-npm-reinstall-option/rspec_datadog/windows_npm_spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-npm-upgrade-no-npm/rspec_datadog/Gemfile delete mode 120000 test/kitchen/test/integration/win-npm-upgrade-no-npm/rspec_datadog/spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-npm-upgrade-no-npm/rspec_datadog/win-npm-upgrade-no-npm_spec.rb delete mode 120000 test/kitchen/test/integration/win-npm-upgrade-no-npm/rspec_datadog/windows_npm_spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-npm-upgrade-to-npm-no-csflag/rspec_datadog/Gemfile delete mode 120000 test/kitchen/test/integration/win-npm-upgrade-to-npm-no-csflag/rspec_datadog/spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-npm-upgrade-to-npm-no-csflag/rspec_datadog/win-npm-upgrade-to-npm-no-csflag_spec.rb delete mode 120000 test/kitchen/test/integration/win-npm-upgrade-to-npm-no-csflag/rspec_datadog/windows_npm_spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-npm-upgrade-to-npm/rspec_datadog/Gemfile delete mode 120000 test/kitchen/test/integration/win-npm-upgrade-to-npm/rspec_datadog/spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-npm-upgrade-to-npm/rspec_datadog/win-npm-upgrade-to-npm_spec.rb delete mode 120000 test/kitchen/test/integration/win-npm-upgrade-to-npm/rspec_datadog/windows_npm_spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-npm-with-addlocal-all/rspec_datadog/Gemfile delete mode 120000 test/kitchen/test/integration/win-npm-with-addlocal-all/rspec_datadog/spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-npm-with-addlocal-all/rspec_datadog/win-npm-with-addlocal-all_spec.rb delete mode 120000 test/kitchen/test/integration/win-npm-with-addlocal-all/rspec_datadog/windows_npm_spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-npm-with-addlocal-npm/rspec_datadog/Gemfile delete mode 120000 test/kitchen/test/integration/win-npm-with-addlocal-npm/rspec_datadog/spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-npm-with-addlocal-npm/rspec_datadog/win-npm-with-addlocal-npm_spec.rb delete mode 120000 test/kitchen/test/integration/win-npm-with-addlocal-npm/rspec_datadog/windows_npm_spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-npm-with-cs-option/rspec_datadog/Gemfile delete mode 120000 test/kitchen/test/integration/win-npm-with-cs-option/rspec_datadog/spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-npm-with-cs-option/rspec_datadog/win-npm-with-cs-option_spec.rb delete mode 120000 test/kitchen/test/integration/win-npm-with-cs-option/rspec_datadog/windows_npm_spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-npm-with-npm-option/rspec_datadog/Gemfile delete mode 120000 test/kitchen/test/integration/win-npm-with-npm-option/rspec_datadog/spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-npm-with-npm-option/rspec_datadog/win-npm-with-npm-option_spec.rb delete mode 120000 test/kitchen/test/integration/win-npm-with-npm-option/rspec_datadog/windows_npm_spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-repair/rspec_datadog/Gemfile delete mode 120000 test/kitchen/test/integration/win-repair/rspec_datadog/spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-repair/rspec_datadog/win-repair_spec.rb delete mode 100644 test/kitchen/test/integration/win-secagent-test/rspec_datadog/Gemfile delete mode 120000 test/kitchen/test/integration/win-secagent-test/rspec_datadog/spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-secagent-test/rspec_datadog/win-secagent-test_spec.rb delete mode 100644 test/kitchen/test/integration/win-sysprobe-test/rspec_datadog/Gemfile delete mode 120000 test/kitchen/test/integration/win-sysprobe-test/rspec_datadog/spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-sysprobe-test/rspec_datadog/sysprobe_spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-sysprobe-test/rspec_datadog/win-sysprobe-test_spec.rb delete mode 120000 test/kitchen/test/integration/win-sysprobe-test/rspec_datadog/windows_npm_spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-upgrade-rollback/rspec_datadog/Gemfile delete mode 120000 test/kitchen/test/integration/win-upgrade-rollback/rspec_datadog/spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-upgrade-rollback/rspec_datadog/win-upgrade-rollback_spec.rb delete mode 100644 test/kitchen/test/integration/win-user/rspec_datadog/Gemfile delete mode 120000 test/kitchen/test/integration/win-user/rspec_datadog/spec_helper.rb delete mode 100644 test/kitchen/test/integration/win-user/rspec_datadog/win-user_spec.rb delete mode 100644 test/kitchen/uservars-example.json create mode 100644 test/new-e2e/tests/sysprobe-functional/.gitignore diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index c3d8aed610550..6c22b2c34e4b8 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -75,6 +75,7 @@ /.gitlab/deploy*/* @DataDog/agent-delivery /.gitlab/deps_fetch/* @DataDog/agent-devx-infra /.gitlab/e2e/* @DataDog/agent-devx-infra @DataDog/agent-devx-loops +/.gitlab/e2e_testing_deploy/* @DataDog/agent-devx-loops @DataDog/agent-devx-infra /.gitlab/e2e_install_packages/* @DataDog/agent-delivery /.gitlab/e2e_pre_test/* @DataDog/agent-devx-infra @DataDog/agent-devx-loops /.gitlab/kernel_matrix_testing/* @DataDog/agent-devx-infra @DataDog/ebpf-platform @@ -90,7 +91,6 @@ /.gitlab/binary_build/include.yml @DataDog/agent-devx-infra /.gitlab/binary_build/linux.yml @DataDog/agent-devx-infra @DataDog/agent-delivery /.gitlab/functional_test/include.yml @DataDog/agent-devx-infra -/.gitlab/functional_test_cleanup/functional_test_cleanup.yml @DataDog/agent-devx-infra @DataDog/agent-security /.gitlab/install_script_testing/install_script_testing.yml @DataDog/agent-delivery /.gitlab/integration_test/dogstatsd.yml @DataDog/agent-devx-infra @DataDog/agent-metrics-logs /.gitlab/integration_test/include.yml @DataDog/agent-devx-infra @@ -131,8 +131,6 @@ /.gitlab/deps_build/ @DataDog/ebpf-platform @DataDog/agent-delivery @DataDog/windows-agent -/.gitlab/kitchen_* @DataDog/container-ecosystems @DataDog/agent-delivery -/.gitlab/kitchen_testing/windows.yml @DataDog/container-ecosystems @DataDog/agent-delivery @DataDog/windows-agent /.gitlab/e2e_install_packages/windows.yml @DataDog/container-ecosystems @DataDog/agent-delivery @DataDog/windows-agent /.gitlab/common/ @DataDog/agent-devx-infra @@ -144,7 +142,6 @@ /.gitlab/binary_build/fakeintake.yml @DataDog/agent-e2e-testing @DataDog/agent-devx-loops /.gitlab/functional_test/serverless.yml @DataDog/serverless @Datadog/serverless-aws @DataDog/agent-devx-infra -/.gitlab/functional_test_cleanup @DataDog/agent-security @DataDog/windows-kernel-integrations @DataDog/agent-devx-infra /.gitlab/functional_test/oracle.yml @DataDog/agent-devx-infra @DataDog/database-monitoring /.gitlab/powershell_script_deploy @DataDog/agent-delivery @DataDog/windows-agent @@ -590,18 +587,6 @@ /test/integration/docker/otel_agent_build_tests.py @DataDog/opentelemetry /test/integration/serverless @DataDog/serverless @Datadog/serverless-aws /test/integration/serverless_perf @DataDog/serverless @Datadog/serverless-aws -/test/kitchen/ @DataDog/agent-devx-loops -/test/kitchen/test-definitions/ @DataDog/container-ecosystems @DataDog/agent-delivery -/test/kitchen/test/integration/ @DataDog/container-ecosystems @DataDog/agent-delivery -/test/kitchen/site-cookbooks/dd-system-probe-check/ @DataDog/windows-kernel-integrations -/test/kitchen/test/integration/win-all-subservices/ @DataDog/windows-agent -/test/kitchen/test/integration/win-alt-dir/ @DataDog/windows-agent -/test/kitchen/test/integration/win-install-fail/ @DataDog/windows-agent -/test/kitchen/test/integration/win-installopts/ @DataDog/windows-agent -/test/kitchen/test/integration/win-no-subservices/ @DataDog/windows-agent -/test/kitchen/test/integration/win-sysprobe-test/ @DataDog/windows-kernel-integrations -/test/kitchen/test/integration/win-repair/ @DataDog/windows-agent -/test/kitchen/test/integration/win-user/ @DataDog/windows-agent /test/fakeintake/ @DataDog/agent-e2e-testing @DataDog/agent-devx-loops /test/fakeintake/aggregator/ndmflowAggregator.go @DataDog/ndm-integrations /test/fakeintake/aggregator/ndmflowAggregator_test.go @DataDog/ndm-integrations diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index eff912e0c25e9..ef09047f42cce 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -24,15 +24,12 @@ include: - .gitlab/e2e/e2e.yml - .gitlab/e2e_install_packages/include.yml - .gitlab/e2e_pre_test/e2e_pre_test.yml + - .gitlab/e2e_testing_deploy/e2e_deploy.yml - .gitlab/functional_test/include.yml - - .gitlab/functional_test_cleanup/functional_test_cleanup.yml - .gitlab/install_script_testing/install_script_testing.yml - .gitlab/integration_test/include.yml - .gitlab/internal_image_deploy/internal_image_deploy.yml - .gitlab/internal_kubernetes_deploy/include.yml - - .gitlab/kitchen_cleanup/include.yml - - .gitlab/kitchen_deploy/kitchen_deploy.yml - - .gitlab/kitchen_testing/include.yml - .gitlab/lint/include.yml - .gitlab/maintenance_jobs/include.yml - .gitlab/notify/notify.yml @@ -79,8 +76,6 @@ stages: - package_build - packaging - pkg_metrics - - kitchen_deploy - - kitchen_testing - container_build - container_scan - check_deploy @@ -93,6 +88,7 @@ stages: - trigger_release - choco_and_install_script_deploy - internal_image_deploy + - e2e_deploy - install_script_testing - e2e_pre_test - e2e_init @@ -100,9 +96,7 @@ stages: - e2e_cleanup - e2e_k8s - e2e_install_packages - - kitchen_cleanup - functional_test - - functional_test_cleanup - junit_upload - internal_kubernetes_deploy - post_rc_build @@ -124,7 +118,7 @@ variables: # avoids accidentally overwriting files when downloading artifacts from # both RPM and SUSE rpm jobs. OMNIBUS_PACKAGE_DIR_SUSE: $CI_PROJECT_DIR/omnibus/suse/pkg - DD_AGENT_TESTING_DIR: $CI_PROJECT_DIR/test/kitchen + DD_AGENT_TESTING_DIR: $CI_PROJECT_DIR/test/new-e2e/tests STATIC_BINARIES_DIR: bin/static DOGSTATSD_BINARIES_DIR: bin/dogstatsd AGENT_BINARIES_DIR: bin/agent @@ -263,8 +257,6 @@ variables: E2E_AZURE: e2e-azure # agent-devx-loops E2E_GCP: e2e-gcp # agent-devx-loops GITLAB_TOKEN: gitlab-token # agent-devx-infra - KITCHEN_AWS: kitchen-aws # agent-devx-loops - KITCHEN_AZURE: kitchen-azure # agent-devx-loops INSTALL_SCRIPT_API_KEY_ORG2: install-script-api-key-org-2 # agent-devx-infra MACOS_GITHUB_APP_1: macos-github-app-one # agent-devx-infra MACOS_GITHUB_APP_2: macos-github-app-two # agent-devx-infra @@ -658,26 +650,12 @@ workflow: when: manual allow_failure: true -.on_kitchen_tests: +.on_e2e_tests: - <<: *if_installer_tests -.on_kitchen_tests_always: - - <<: *if_installer_tests - when: always - .on_all_install_script_tests: - <<: *if_installer_tests -# Default kitchen tests are also run on dev branches -# In that case, the target OS versions is a subset of the -# available versions, stored in DEFAULT_KITCHEN_OSVERS -.on_default_kitchen_tests: - - !reference [.except_mergequeue] - - <<: *if_installer_tests - - <<: *if_auto_e2e_tests - variables: - KITCHEN_OSVERS: $DEFAULT_KITCHEN_OSVERS - .on_default_new_e2e_tests: - !reference [.except_mergequeue] - <<: *if_disable_e2e_tests @@ -687,15 +665,6 @@ workflow: variables: E2E_OSVERS: $E2E_BRANCH_OSVERS -.on_default_kitchen_tests_always: - - !reference [.except_mergequeue] - - <<: *if_installer_tests - when: always - - <<: *if_auto_e2e_tests - when: always - variables: - KITCHEN_OSVERS: $DEFAULT_KITCHEN_OSVERS - .on_main_or_testing_cleanup: - <<: *if_main_branch - <<: *if_testing_cleanup @@ -1186,13 +1155,6 @@ workflow: - tasks/**/* compare_to: main # TODO: use a variable, when this is supported https://gitlab.com/gitlab-org/gitlab/-/issues/369916 -.on_kitchen_invoke_tasks_changes: - - <<: *if_main_branch - - changes: - paths: - - test/kitchen/tasks/**/* - compare_to: main # TODO: use a variable, when this is supported https://gitlab.com/gitlab-org/gitlab/-/issues/369916 - .on_powershell_module_or_e2e_changes_or_manual: - !reference [.on_e2e_main_release_or_rc] - changes: diff --git a/.gitlab/.ci-linters.yml b/.gitlab/.ci-linters.yml index a87c049cfb341..af5acfa72b74a 100644 --- a/.gitlab/.ci-linters.yml +++ b/.gitlab/.ci-linters.yml @@ -15,7 +15,6 @@ needs-rules: - build_dogstatsd_static-binary_x64 - build_processed_btfhub_archive - check_already_deployed_version_7 - - cleanup_kitchen_functional_test - compute_gitlab_ci_config - deploy_containers-cws-instrumentation-final-versioned - deploy_containers-cws-instrumentation-latest @@ -23,7 +22,6 @@ needs-rules: - deploy_containers-cws-instrumentation-rc-versioned - dogstatsd_x64_size_test - go_mod_tidy_check - - kitchen_cleanup_azure-a7 - lint_flavor_dogstatsd_linux-x64 - lint_flavor_heroku_linux-x64 - lint_flavor_iot_linux-x64 @@ -33,9 +31,6 @@ needs-rules: - lint_linux-x64 - lint_macos_gitlab_amd64 - new-e2e-eks-cleanup-on-failure - - periodic_kitchen_cleanup_azure - - periodic_kitchen_cleanup_ec2 - - periodic_kitchen_cleanup_s3 - publish_winget_7_x64 - revert_latest_7 - security_go_generate_check @@ -81,8 +76,6 @@ job-owners: - installer-install-scripts - integration_tests_otel - invoke_unit_tests - - kitchen_cleanup_azure-a7 - - kitchen_invoke_unit_tests - new-e2e-cspm - new-e2e-otel - new-e2e-package-signing-debian-a7-x86_64 @@ -90,9 +83,6 @@ job-owners: - new-e2e-unit-tests - ot_agent_deb-arm64-a7 - ot_agent_deb-x64-a7 - - periodic_kitchen_cleanup_azure - - periodic_kitchen_cleanup_ec2 - - periodic_kitchen_cleanup_s3 - publish_choco_7_x64 - publish_fakeintake - publish_fakeintake_latest diff --git a/.gitlab/JOBOWNERS b/.gitlab/JOBOWNERS index bbb7d693c5ea3..9cf4e21fc84de 100644 --- a/.gitlab/JOBOWNERS +++ b/.gitlab/JOBOWNERS @@ -74,9 +74,6 @@ deploy_rpm_testing* @DataDog/agent-delivery deploy_suse_rpm_testing* @DataDog/agent-delivery deploy_windows_testing* @DataDog/agent-delivery -# Kitchen tests -kitchen_windows* @DataDog/windows-agent - # Image build docker_build* @DataDog/agent-delivery @@ -138,10 +135,6 @@ agent_integration_tests @DataDog/container-integrations docker_integration_tests @DataDog/container-integrations # Functional test -kitchen_*_system_probe_windows* @DataDog/windows-kernel-integrations -kitchen_*_security_agent* @DataDog/agent-security -kitchen_*_process_agent* @DataDog/processes -cleanup_kitchen_functional_test @DataDog/windows-kernel-integrations @DataDog/agent-security serverless_cold_start_performance-deb_x64 @DataDog/serverless oracle* @DataDog/database-monitoring diff --git a/.gitlab/e2e_install_packages/common.yml b/.gitlab/e2e_install_packages/common.yml index 35b2b0b1f4619..8985150b3ff14 100644 --- a/.gitlab/e2e_install_packages/common.yml +++ b/.gitlab/e2e_install_packages/common.yml @@ -1,5 +1,5 @@ .new-e2e_agent_a7: - rules: !reference [.on_kitchen_tests] #TODO: Change when migration is complete to another name without 'kitchen' + rules: !reference [.on_e2e_tests] variables: AGENT_MAJOR_VERSION: 7 diff --git a/.gitlab/kitchen_deploy/kitchen_deploy.yml b/.gitlab/e2e_testing_deploy/e2e_deploy.yml similarity index 97% rename from .gitlab/kitchen_deploy/kitchen_deploy.yml rename to .gitlab/e2e_testing_deploy/e2e_deploy.yml index d9518f946af29..45be38a825a5d 100644 --- a/.gitlab/kitchen_deploy/kitchen_deploy.yml +++ b/.gitlab/e2e_testing_deploy/e2e_deploy.yml @@ -1,6 +1,6 @@ --- -# kitchen_deploy stage -# Contains jobs which deploy Agent package to testing repsoitories that are used in kitchen tests. +# e2e_deploy stage +# Contains jobs which deploy Agent package to testing repsoitories that are used in e2e tests. .setup_rpm_signing_key: &setup_rpm_signing_key - printf -- "$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $RPM_GPG_KEY)" | gpg --import --batch @@ -33,7 +33,7 @@ - popd .deploy_deb_testing-a7: - stage: kitchen_deploy + stage: e2e_deploy image: registry.ddbuild.io/ci/datadog-agent-buildimages/gitlab_agent_deploy$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES tags: ["arch:amd64"] variables: @@ -86,7 +86,7 @@ deploy_deb_testing-a7_arm64: - echo "$APT_SIGNING_KEY_PASSPHRASE" | deb-s3 upload -c "pipeline-$DD_PIPELINE_ID-arm64" -m 7 -b $DEB_TESTING_S3_BUCKET -a arm64 --sign=$DEB_GPG_KEY_ID --gpg_options="--passphrase-fd 0 --batch --digest-algo SHA512" --preserve_versions --visibility public $OMNIBUS_PACKAGE_DIR/datadog-signing-keys_${DD_PIPELINE_ID}.deb .deploy_rpm_testing-a7: - stage: kitchen_deploy + stage: e2e_deploy image: registry.ddbuild.io/ci/datadog-agent-buildimages/gitlab_agent_deploy$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES tags: ["arch:amd64"] variables: @@ -132,7 +132,7 @@ deploy_suse_rpm_testing_x64-a7: - !reference [.except_no_tests_no_deploy] - !reference [.except_mergequeue] - when: on_success - stage: kitchen_deploy + stage: e2e_deploy image: registry.ddbuild.io/ci/datadog-agent-buildimages/gitlab_agent_deploy$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES tags: ["arch:amd64"] needs: @@ -154,10 +154,10 @@ deploy_suse_rpm_testing_x64-a7: deploy_suse_rpm_testing_arm64-a7: rules: - - !reference [.on_kitchen_tests] + - !reference [.on_e2e_tests] - !reference [.on_installer_or_e2e_changes] - !reference [.manual] - stage: kitchen_deploy + stage: e2e_deploy image: registry.ddbuild.io/ci/datadog-agent-buildimages/gitlab_agent_deploy$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES tags: ["arch:amd64"] needs: ["installer_suse_rpm-arm64", "agent_suse-arm64-a7", "lint_linux-arm64"] @@ -175,7 +175,7 @@ deploy_windows_testing-a7: - !reference [.except_no_tests_no_deploy] - !reference [.except_mergequeue] - when: on_success - stage: kitchen_deploy + stage: e2e_deploy image: registry.ddbuild.io/ci/datadog-agent-buildimages/gitlab_agent_deploy$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES tags: ["arch:amd64"] needs: diff --git a/.gitlab/functional_test/include.yml b/.gitlab/functional_test/include.yml index aab2d1c1ace48..501b2d3132db1 100644 --- a/.gitlab/functional_test/include.yml +++ b/.gitlab/functional_test/include.yml @@ -1,6 +1,6 @@ --- # functional_test stage -# Contains jobs which run kitchen tests on the security-agent and on system-probe +# Contains jobs which run e2e tests on the security-agent and on system-probe include: - .gitlab/functional_test/serverless.yml diff --git a/.gitlab/functional_test_cleanup/functional_test_cleanup.yml b/.gitlab/functional_test_cleanup/functional_test_cleanup.yml deleted file mode 100644 index 51d6ab7ec22ea..0000000000000 --- a/.gitlab/functional_test_cleanup/functional_test_cleanup.yml +++ /dev/null @@ -1,17 +0,0 @@ ---- -# functional_test_cleanup stage -# Contains a job which cleans up kitchen resources created for functional tests. - -# FIXME: our current Gitlab version doesn't support importing a file more than once -# For now, the workaround is to include "common" files once in the top-level .gitlab-ci.yml file -# See: https://gitlab.com/gitlab-org/gitlab/-/issues/28987 -# include: -# - .gitlab/kitchen_common/cleanup.yml - -cleanup_kitchen_functional_test: - extends: .kitchen_cleanup_azure_common - rules: - !reference [ .on_system_probe_or_e2e_changes_or_manual ] - stage: functional_test_cleanup - variables: - DD_PIPELINE_ID: $CI_PIPELINE_ID-fnct diff --git a/.gitlab/kernel_matrix_testing/common.yml b/.gitlab/kernel_matrix_testing/common.yml index f2c12afee1db4..032950ad4b929 100644 --- a/.gitlab/kernel_matrix_testing/common.yml +++ b/.gitlab/kernel_matrix_testing/common.yml @@ -1,3 +1,11 @@ +# KMT: EC2 Locations +.kmt_ec2_location_us_east_1: + variables: + KITCHEN_EC2_REGION: us-east-1 + KITCHEN_EC2_SUBNET: subnet-05d7c6b1b5cfea811 + KITCHEN_EC2_SG_IDS: sg-019917348cb0eb7e7 + + # --- Common scripts .shared_filters_and_queries: - FILTER_TEAM="Name=tag:team,Values=ebpf-platform" @@ -122,7 +130,7 @@ # -- Environment setup .kmt_setup_env: extends: - - .kitchen_ec2_location_us_east_1 + - .kmt_ec2_location_us_east_1 stage: kernel_matrix_testing_prepare image: registry.ddbuild.io/ci/test-infra-definitions/runner$TEST_INFRA_DEFINITIONS_BUILDIMAGES_SUFFIX:$TEST_INFRA_DEFINITIONS_BUILDIMAGES needs: ["go_deps", "go_tools_deps"] diff --git a/.gitlab/kitchen_cleanup/cleanup.yml b/.gitlab/kitchen_cleanup/cleanup.yml deleted file mode 100644 index 6f562223e183d..0000000000000 --- a/.gitlab/kitchen_cleanup/cleanup.yml +++ /dev/null @@ -1,28 +0,0 @@ ---- -.kitchen_cleanup_s3_common: - allow_failure: true - stage: kitchen_cleanup - image: registry.ddbuild.io/ci/datadog-agent-buildimages/gitlab_agent_deploy$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES - tags: ["arch:amd64"] - script: - - aws s3 rm s3://$DEB_TESTING_S3_BUCKET/dists/pipeline-$DD_PIPELINE_ID --recursive - - aws s3 rm s3://$RPM_TESTING_S3_BUCKET/testing/pipeline-$DD_PIPELINE_ID --recursive - - aws s3 rm s3://$RPM_TESTING_S3_BUCKET/testing/suse/pipeline-$DD_PIPELINE_ID --recursive - - export WINDOWS_TESTING_S3_BUCKET=$WINDOWS_TESTING_S3_BUCKET_A7 - - aws s3 rm s3://$WIN_S3_BUCKET/$WINDOWS_TESTING_S3_BUCKET --recursive - - cd $OMNIBUS_PACKAGE_DIR - # Remove all deb packages for the pipeline in the pool - - for deb in $(ls *amd64.deb); do aws s3 rm s3://$DEB_TESTING_S3_BUCKET/pool/d/da/$deb --recursive; done - # Remove the datadog-signing-keys package for the pipeline in the pool - - aws s3 rm s3://$DEB_TESTING_S3_BUCKET/pool/d/da/datadog-signing-keys_${DD_PIPELINE_ID}.deb - -.kitchen_cleanup_azure_common: - allow_failure: true - stage: kitchen_cleanup - image: registry.ddbuild.io/ci/datadog-agent-buildimages/dd-agent-testing$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES - tags: ["arch:amd64"] - dependencies: [] - before_script: - script: - - cd $DD_AGENT_TESTING_DIR - - tasks/clean.sh diff --git a/.gitlab/kitchen_cleanup/include.yml b/.gitlab/kitchen_cleanup/include.yml deleted file mode 100644 index f0a86b5fcf296..0000000000000 --- a/.gitlab/kitchen_cleanup/include.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -# kitchen_cleanup stage -# Include file for jobs which clean up kitchen resources created for Agent kitchen tests. -include: - - .gitlab/kitchen_cleanup/cleanup.yml - - .gitlab/kitchen_cleanup/kitchen_cleanup.yml \ No newline at end of file diff --git a/.gitlab/kitchen_cleanup/kitchen_cleanup.yml b/.gitlab/kitchen_cleanup/kitchen_cleanup.yml deleted file mode 100644 index ff3634ad24d94..0000000000000 --- a/.gitlab/kitchen_cleanup/kitchen_cleanup.yml +++ /dev/null @@ -1,16 +0,0 @@ ---- -# kitchen_cleanup stage -# Contains jobs which clean up kitchen resources created for Agent kitchen tests. - -# FIXME: our current Gitlab version doesn't support importing a file more than once -# For now, the workaround is to include "common" files once in the top-level .gitlab-ci.yml file -# See: https://gitlab.com/gitlab-org/gitlab/-/issues/28987 -# include: -# - .gitlab/kitchen_common/cleanup.yml - -kitchen_cleanup_azure-a7: - extends: .kitchen_cleanup_azure_common - rules: - !reference [.on_default_kitchen_tests_always] - variables: - DD_PIPELINE_ID: $CI_PIPELINE_ID-a7 diff --git a/.gitlab/kitchen_testing/common.yml b/.gitlab/kitchen_testing/common.yml deleted file mode 100644 index e99f4b9d42f00..0000000000000 --- a/.gitlab/kitchen_testing/common.yml +++ /dev/null @@ -1,161 +0,0 @@ ---- -.kitchen_common: - stage: kitchen_testing - image: registry.ddbuild.io/ci/datadog-agent-buildimages/dd-agent-testing$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES - tags: ["arch:amd64"] - artifacts: - expire_in: 2 weeks - when: always - paths: - - $CI_PROJECT_DIR/kitchen_logs - retry: 1 - variables: - KUBERNETES_MEMORY_REQUEST: "6Gi" - KUBERNETES_MEMORY_LIMIT: "12Gi" - -.kitchen_common_with_junit: - extends: - - .kitchen_common - after_script: - - echo "--tags arch:${KITCHEN_ARCH} --tags os:${KITCHEN_PLATFORM} upload_option.os_version_from_name" > $CI_PROJECT_DIR/test/kitchen/tags.txt - - echo "CI_JOB_URL=${CI_JOB_URL}" > $CI_PROJECT_DIR/test/kitchen/job_env.txt - - echo "CI_JOB_NAME=${CI_JOB_NAME}" >> $CI_PROJECT_DIR/test/kitchen/job_env.txt - - kitchen_files=$(find $CI_PROJECT_DIR -name "kitchen-rspec-*.xml" -exec basename {} \;) - - find $CI_PROJECT_DIR -name "kitchen-rspec-*.xml" -exec $CI_PROJECT_DIR/test/kitchen/tasks/kitchen_rspec_xml_update.sh {} "${CI_JOB_NAME}" \; - - tar -czvf junit-${CI_JOB_NAME}.tgz -C $CI_PROJECT_DIR/test/kitchen/ ./job_env.txt ./tags.txt $kitchen_files - - $CI_PROJECT_DIR/tools/ci/junit_upload.sh - - artifacts: - expire_in: 2 weeks - when: always - paths: - - $CI_PROJECT_DIR/kitchen_logs - - "**/junit-${CI_JOB_NAME}.tgz" - -# Kitchen: providers -# --------------- - -# Azure -# --------------- -.kitchen_azure: - variables: - KITCHEN_PROVIDER: azure - -.kitchen_azure_x64: - variables: - KITCHEN_ARCH: x86_64 - extends: - - .kitchen_azure - -# EC2 -# --------------- -.kitchen_ec2: - variables: - KITCHEN_PROVIDER: ec2 - KITCHEN_EC2_IAM_PROFILE_NAME: ci-datadog-agent-e2e-runner - -.kitchen_ec2_x64: - variables: - KITCHEN_ARCH: x86_64 - extends: - - .kitchen_ec2 - -.kitchen_ec2_spot_instances: - extends: .kitchen_ec2 - variables: - KITCHEN_EC2_SPOT_PRICE: on-demand - -.kitchen_ec2_arm64: - variables: - KITCHEN_ARCH: arm64 - KITCHEN_EC2_INSTANCE_TYPE: "t4g.xlarge" - CHEF_VERSION: 14.15.6 - extends: - - .kitchen_ec2 - -# Kitchen: agents -# --------------- - -.kitchen_agent_a7: - extends: .kitchen_common_with_junit - rules: - !reference [.on_kitchen_tests] - variables: - DD_PIPELINE_ID: $CI_PIPELINE_ID-a7 - - -# Kitchen: tests -# -------------- - -.kitchen_test_chef: - script: - - tasks/run-test-kitchen.sh chef-test 7 - -.kitchen_test_upgrade5: - script: - - tasks/run-test-kitchen.sh upgrade5-test 7 - -.kitchen_test_upgrade7: - script: - - export LAST_STABLE_VERSION=$(cd ../.. && invoke release.get-release-json-value "last_stable::7") - - tasks/run-test-kitchen.sh upgrade7-test 7 - -# Kitchen: Agent flavor -# ------------------------------- - -.kitchen_datadog_agent_flavor: - variables: - AGENT_FLAVOR: "datadog-agent" - -# Kitchen: Azure locations -# ------------------------------- - -.kitchen_azure_location_north_central_us: - variables: - AZURE_LOCATION: "North Central US" - -.kitchen_azure_location_west_central_us: - variables: - AZURE_LOCATION: "West Central US" - -.kitchen_azure_location_central_us: - variables: - AZURE_LOCATION: "Central US" - -.kitchen_azure_location_south_central_us: - variables: - AZURE_LOCATION: "South Central US" - - -# Kitchen: EC2 locations -# ------------------------------- - -.kitchen_ec2_location_us_east_1: - variables: - KITCHEN_EC2_REGION: us-east-1 - KITCHEN_EC2_SUBNET: subnet-05d7c6b1b5cfea811 - KITCHEN_EC2_SG_IDS: sg-019917348cb0eb7e7 - -# Kitchen: Test types (test suite * agent flavor + location in each cloud provider) -# ------------------------------- - -.kitchen_test_chef_agent: - extends: - - .kitchen_test_chef - - .kitchen_datadog_agent_flavor - - .kitchen_azure_location_north_central_us - - .kitchen_ec2_location_us_east_1 - -.kitchen_test_upgrade5_agent: - extends: - - .kitchen_test_upgrade5 - - .kitchen_datadog_agent_flavor - - .kitchen_azure_location_central_us - - .kitchen_ec2_location_us_east_1 - -.kitchen_test_upgrade7_agent: - extends: - - .kitchen_test_upgrade7 - - .kitchen_datadog_agent_flavor - - .kitchen_azure_location_south_central_us - - .kitchen_ec2_location_us_east_1 diff --git a/.gitlab/kitchen_testing/include.yml b/.gitlab/kitchen_testing/include.yml deleted file mode 100644 index 06eb7ed1f40e0..0000000000000 --- a/.gitlab/kitchen_testing/include.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- -# kitchen_testing stage -# Contains jobs which run kitchen tests on the Agent packages. - -include: - - .gitlab/kitchen_testing/common.yml - - .gitlab/kitchen_testing/windows.yml diff --git a/.gitlab/kitchen_testing/windows.yml b/.gitlab/kitchen_testing/windows.yml deleted file mode 100644 index 54a31a5e77b95..0000000000000 --- a/.gitlab/kitchen_testing/windows.yml +++ /dev/null @@ -1,25 +0,0 @@ ---- -# FIXME: our current Gitlab version doesn't support importing a file more than once -# For now, the workaround is to include "common" files once in the top-level .gitlab-ci.yml file -# See: https://gitlab.com/gitlab-org/gitlab/-/issues/28987 -# include: -# - .gitlab/kitchen_testing/testing.yml - -# Kitchen: OSes -# ------------- - -.kitchen_os_windows: - extends: - - .kitchen_azure_x64 - variables: - KITCHEN_PLATFORM: "windows" - KITCHEN_OSVERS: "win2016,win2019,win2019cn,win2022" - DEFAULT_KITCHEN_OSVERS: "win2022" - before_script: - - export WINDOWS_TESTING_S3_BUCKET=$WINDOWS_TESTING_S3_BUCKET_A7 - - cd $DD_AGENT_TESTING_DIR - - tasks/kitchen_setup.sh - # Windows kitchen tests are slower and more fragile (lots of WinRM::WinRMAuthorizationError and/or execution expired errors) - # Give them one more chance before failing. - # TODO: understand why they fail more often than Linux jobs on network errors. - retry: 2 diff --git a/.gitlab/maintenance_jobs/include.yml b/.gitlab/maintenance_jobs/include.yml index c8c7ddf8d2634..860d91ab830aa 100644 --- a/.gitlab/maintenance_jobs/include.yml +++ b/.gitlab/maintenance_jobs/include.yml @@ -1,8 +1,6 @@ --- # maintenance_jobs stage # Contains utility jobs to manipulate Docker repositories (Dockerhub & GCR) -# as well as jobs which periodically clean up kitchen resources. include: - .gitlab/maintenance_jobs/docker.yml - - .gitlab/maintenance_jobs/kitchen.yml diff --git a/.gitlab/maintenance_jobs/kitchen.yml b/.gitlab/maintenance_jobs/kitchen.yml deleted file mode 100644 index 3eea73295c63c..0000000000000 --- a/.gitlab/maintenance_jobs/kitchen.yml +++ /dev/null @@ -1,47 +0,0 @@ ---- -# Once a day, before the nightly build, cleans up the artifacts used during kitchen tests which might have been left over -# This can happen when a kitchen test fails and is never retried, since that pipeline's cleanup job won't run -periodic_kitchen_cleanup_s3: - stage: maintenance_jobs - image: registry.ddbuild.io/ci/datadog-agent-buildimages/gitlab_agent_deploy$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES - tags: ["arch:amd64"] - rules: !reference [.on_testing_cleanup] - script: - - MAX_AGE_HOURS=72 BUCKET_NAME=$DEB_TESTING_S3_BUCKET BUCKET_PREFIX=pool python3 /deploy_scripts/cleanup_s3.py - - MAX_AGE_HOURS=72 BUCKET_NAME=$DEB_TESTING_S3_BUCKET BUCKET_PREFIX=dists python3 /deploy_scripts/cleanup_s3.py - - MAX_AGE_HOURS=72 BUCKET_NAME=$RPM_TESTING_S3_BUCKET BUCKET_PREFIX=testing/ python3 /deploy_scripts/cleanup_s3.py - - MAX_AGE_HOURS=72 BUCKET_NAME=$RPM_TESTING_S3_BUCKET BUCKET_PREFIX=suse/testing/ python3 /deploy_scripts/cleanup_s3.py - - MAX_AGE_HOURS=72 BUCKET_NAME=$WIN_S3_BUCKET BUCKET_PREFIX=pipelines/A6/ python3 /deploy_scripts/cleanup_s3.py - - MAX_AGE_HOURS=72 BUCKET_NAME=$WIN_S3_BUCKET BUCKET_PREFIX=pipelines/A7/ python3 /deploy_scripts/cleanup_s3.py - -# Kills any VMs that might have been left over by kitchen -# The script only deletes VMs that have been there for >= 4 hours, which is more than the time limit -# for Gitlab jobs (2 hours), so this should never remove a live kitchen test. -periodic_kitchen_cleanup_azure: - stage: maintenance_jobs - image: registry.ddbuild.io/ci/datadog-agent-buildimages/gitlab_agent_deploy$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES - tags: ["arch:amd64"] - rules: !reference [.on_main_or_testing_cleanup] - # Note: We're not sure if the cleanup script is safe if run multiple times concurrently, so we limit - # the job to be run one at a time. - resource_group: azure_cleanup - script: - - ARM_SUBSCRIPTION_ID=`$CI_PROJECT_DIR/tools/ci/fetch_secret.sh $KITCHEN_AZURE subscription_id` || exit $?; export ARM_SUBSCRIPTION_ID - - ARM_CLIENT_ID=`$CI_PROJECT_DIR/tools/ci/fetch_secret.sh $KITCHEN_AZURE client_id` || exit $?; export ARM_CLIENT_ID - - ARM_CLIENT_SECRET=`$CI_PROJECT_DIR/tools/ci/fetch_secret.sh $KITCHEN_AZURE token` || exit $?; export ARM_CLIENT_SECRET - - ARM_TENANT_ID=`$CI_PROJECT_DIR/tools/ci/fetch_secret.sh $KITCHEN_AZURE tenant_id` || exit $?; export ARM_TENANT_ID - # Remove kitchen resources for all existing test suite prefixes - - RESOURCE_GROUP_PREFIX=kitchen-chef python3 /deploy_scripts/cleanup_azure.py - - RESOURCE_GROUP_PREFIX=kitchen-win python3 /deploy_scripts/cleanup_azure.py - - RESOURCE_GROUP_PREFIX=kitchen-security-agent python3 /deploy_scripts/cleanup_azure.py - -periodic_kitchen_cleanup_ec2: - stage: maintenance_jobs - image: registry.ddbuild.io/ci/datadog-agent-buildimages/gitlab_agent_deploy$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES - tags: ["arch:amd64"] - rules: !reference [.on_main_or_testing_cleanup] - script: - # Only run aws ec2 terminate-instances if $ZOMBIES is not empty, otherwise the command fails - # https://docs.aws.amazon.com/cli/latest/reference/ec2/terminate-instances.html#options - - export AWS_DEFAULT_REGION=us-east-1 - - python3 /deploy_scripts/cleanup_ec2.py diff --git a/.gitlab/source_test/tooling_unit_tests.yml b/.gitlab/source_test/tooling_unit_tests.yml index 41f20d3aeb884..547f742b8353e 100644 --- a/.gitlab/source_test/tooling_unit_tests.yml +++ b/.gitlab/source_test/tooling_unit_tests.yml @@ -11,18 +11,3 @@ invoke_unit_tests: - python3 -m pip install -r tasks/libs/requirements-github.txt --break-system-packages - inv -e invoke-unit-tests.run -kitchen_invoke_unit_tests: - stage: source_test - image: registry.ddbuild.io/ci/datadog-agent-buildimages/deb_x64$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES - tags: ["arch:amd64"] - needs: [] - rules: - - !reference [.on_kitchen_invoke_tasks_changes] - script: - # Python 3.12 changes default behavior how packages are installed. - # In particular, --break-system-packages command line option is - # required to use the old behavior or use a virtual env. https://github.com/actions/runner-images/issues/8615 - - python3 -m pip install -r tasks/libs/requirements-github.txt --break-system-packages - - pushd test/kitchen - - inv -e kitchen.invoke-unit-tests - - popd diff --git a/.gitlab/source_test/windows.yml b/.gitlab/source_test/windows.yml index db57842d68538..b0565ce028273 100644 --- a/.gitlab/source_test/windows.yml +++ b/.gitlab/source_test/windows.yml @@ -85,7 +85,7 @@ tests_windows-x64: artifacts: when: always paths: - - $DD_AGENT_TESTING_DIR/site-cookbooks/dd-system-probe-check/files + - $CI_PROJECT_DIR/test/new-e2e/tests/sysprobe-functional/artifacts .tests_windows_secagent: stage: source_test diff --git a/.gitlab/trigger_release/trigger_release.yml b/.gitlab/trigger_release/trigger_release.yml index 69f8a53b1df99..0ecd5e0b02606 100644 --- a/.gitlab/trigger_release/trigger_release.yml +++ b/.gitlab/trigger_release/trigger_release.yml @@ -7,7 +7,7 @@ image: registry.ddbuild.io/ci/datadog-agent-buildimages/deb_x64$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES tags: ["arch:amd64"] # We don't directly depend/need the package deploy jobs, because - # that would make us deploy even when there are kitchen failures etc + # that would make us deploy even when there are e2e tests failures etc # We only want to allow automatically triggering agent-release-manangement # pipelines when everything goes well variables: diff --git a/omnibus/.gitignore b/omnibus/.gitignore index 94b7d38ccea76..c231c1a867015 100644 --- a/omnibus/.gitignore +++ b/omnibus/.gitignore @@ -1,8 +1,5 @@ *.gem .bundle -.kitchen/ -.kitchen.local.yml -kitchen.local.yml vendor/bundle pkg/* .vagrant diff --git a/tasks/kernel_matrix_testing/ci.py b/tasks/kernel_matrix_testing/ci.py index f6e83fcb6e571..d07f079f6eab3 100644 --- a/tasks/kernel_matrix_testing/ci.py +++ b/tasks/kernel_matrix_testing/ci.py @@ -217,7 +217,7 @@ def get_test_results(self) -> dict[str, bool | None]: The values are True if test passed, False if failed, None if skipped. """ junit_archive_name = f"junit-{self.arch}-{self.distro}-{self.vmset}.tar.gz" - junit_archive = self.artifact_file_binary(f"test/kitchen/{junit_archive_name}", ignore_not_found=True) + junit_archive = self.artifact_file_binary(f"test/new-e2e/tests/{junit_archive_name}", ignore_not_found=True) if junit_archive is None: return {} diff --git a/tasks/kmt.py b/tasks/kmt.py index 40437b8eff3f3..b1c30e0246c50 100644 --- a/tasks/kmt.py +++ b/tasks/kmt.py @@ -1372,7 +1372,7 @@ def clean(ctx: Context, stack: str | None = None, container=False, image=False): stack ), f"Stack {stack} does not exist. Please create with 'inv kmt.create-stack --stack='" - ctx.run("rm -rf ./test/kitchen/site-cookbooks/dd-system-probe-check/files/default/tests/pkg") + ctx.run("rm -rf ./test/new-e2e/tests/sysprobe-functional/artifacts/pkg") ctx.run(f"rm -rf kmt-deps/{stack}", warn=True) ctx.run(f"rm {get_kmt_os().shared_dir}/*.tar.gz", warn=True) @@ -2290,7 +2290,7 @@ def download_complexity_data(ctx: Context, commit: str, dest_path: str | Path, k _, test_jobs = get_all_jobs_for_pipeline(pipeline_id) for job in test_jobs: complexity_name = f"verifier-complexity-{job.arch}-{job.distro}-{job.component}" - complexity_data_fname = f"test/kitchen/{complexity_name}.tar.gz" + complexity_data_fname = f"test/new-e2e/tests/{complexity_name}.tar.gz" data = job.artifact_file_binary(complexity_data_fname, ignore_not_found=True) if data is None: print(f"Complexity data not found for {job.name} - filename {complexity_data_fname} not found") diff --git a/tasks/libs/pipeline/data.py b/tasks/libs/pipeline/data.py index dc56d54f202b3..6cfef9a40fc16 100644 --- a/tasks/libs/pipeline/data.py +++ b/tasks/libs/pipeline/data.py @@ -89,23 +89,11 @@ def get_failed_jobs(pipeline: ProjectPipeline) -> FailedJobs: ), FailedJobReason.RUNNER, ), - # kitchen tests Azure VM allocation failures - ( - re.compile( - r'Allocation failed\. We do not have sufficient capacity for the requested VM size in this region\.' - ), - FailedJobReason.KITCHEN_AZURE, - ), # Gitlab 5xx errors ( re.compile(r'fatal: unable to access \'.*\': The requested URL returned error: 5..'), FailedJobReason.GITLAB, ), - # kitchen tests general infrastructure issues - ( - re.compile(r'ERROR: The kitchen tests failed due to infrastructure failures\.'), - FailedJobReason.KITCHEN, - ), # End to end tests EC2 Spot instances allocation failures ( re.compile(r'Failed to allocate end to end test EC2 Spot instance after [0-9]+ attempts'), @@ -171,7 +159,7 @@ def truncate_job_name(job_name, max_char_per_job=48): # Those jobs have `allow_failure: true` but still need to be included # in failure reports -jobs_allowed_to_fail_but_need_report = [re.compile(r'kitchen_test_security_agent.*')] +jobs_allowed_to_fail_but_need_report = [] def should_report_job(job_name, allow_failure): diff --git a/tasks/libs/pipeline/tools.py b/tasks/libs/pipeline/tools.py index 7f9d08e8eca6e..2cab6a42d28b5 100644 --- a/tasks/libs/pipeline/tools.py +++ b/tasks/libs/pipeline/tools.py @@ -130,9 +130,9 @@ def trigger_agent_pipeline( """ Trigger a pipeline on the datadog-agent repositories. Multiple options are available: - run a pipeline with all builds (by default, a pipeline only runs a subset of all available builds), - - run a pipeline with all kitchen tests, + - run a pipeline with all e2e tests, - run a pipeline with all end-to-end tests, - - run a deploy pipeline (includes all builds & kitchen tests + uploads artifacts to staging repositories); + - run a deploy pipeline (includes all builds & e2e tests + uploads artifacts to staging repositories); """ ref = ref or get_default_branch() diff --git a/tasks/libs/types/types.py b/tasks/libs/types/types.py index cd8e13c9fa37f..37398ca62c2a8 100644 --- a/tasks/libs/types/types.py +++ b/tasks/libs/types/types.py @@ -48,10 +48,8 @@ class FailedJobType(Enum): class FailedJobReason(Enum): RUNNER = 1 - KITCHEN_AZURE = 4 FAILED_JOB_SCRIPT = 5 GITLAB = 6 - KITCHEN = 7 EC2_SPOT = 8 E2E_INFRA_FAILURE = 9 FAILED_BRIDGE_JOB = 10 diff --git a/tasks/linter.py b/tasks/linter.py index f549ae2005075..a0be3ca3970b9 100644 --- a/tasks/linter.py +++ b/tasks/linter.py @@ -113,9 +113,7 @@ def filenames(ctx): max_length = 255 for filename in files: if ( - not filename.startswith( - ('test/kitchen/', 'tools/windows/DatadogAgentInstaller', 'test/workload-checks', 'test/regression') - ) + not filename.startswith(('tools/windows/DatadogAgentInstaller', 'test/workload-checks', 'test/regression')) and prefix_length + len(filename) > max_length ): print( diff --git a/tasks/system_probe.py b/tasks/system_probe.py index 7478f31c415fc..6f8e4e1f7457e 100644 --- a/tasks/system_probe.py +++ b/tasks/system_probe.py @@ -44,8 +44,8 @@ BUNDLE_TAG = "ebpf_bindata" NPM_TAG = "npm" -KITCHEN_DIR = os.getenv('DD_AGENT_TESTING_DIR') or os.path.normpath(os.path.join(os.getcwd(), "test", "kitchen")) -KITCHEN_ARTIFACT_DIR = os.path.join(KITCHEN_DIR, "site-cookbooks", "dd-system-probe-check", "files", "default", "tests") +TEST_DIR = os.getenv('DD_AGENT_TESTING_DIR') or os.path.normpath(os.path.join(os.getcwd(), "test", "new-e2e", "tests")) +E2E_ARTIFACT_DIR = os.path.join(TEST_DIR, "sysprobe-functional/artifacts") TEST_PACKAGES_LIST = [ "./pkg/ebpf/...", "./pkg/network/...", @@ -822,7 +822,7 @@ def test( Run tests on eBPF parts If skip_object_files is set to True, this won't rebuild object files If output_path is set, we run `go test` with the flags `-c -o output_path`, which *compiles* the test suite - into a single binary. This artifact is meant to be used in conjunction with kitchen tests. + into a single binary. This artifact is meant to be used in conjunction with e2e tests. """ if os.getenv("GOPATH") is None: raise Exit( @@ -958,11 +958,11 @@ def go_package_dirs(packages, build_tags): return [p for p in target_packages if len(p) > 0] -BUILD_COMMIT = os.path.join(KITCHEN_ARTIFACT_DIR, "build.commit") +BUILD_COMMIT = os.path.join(E2E_ARTIFACT_DIR, "build.commit") def clean_build(ctx): - if not os.path.exists(KITCHEN_ARTIFACT_DIR): + if not os.path.exists(E2E_ARTIFACT_DIR): return True if not os.path.exists(BUILD_COMMIT): @@ -983,9 +983,9 @@ def full_pkg_path(name): @task -def kitchen_prepare(ctx, kernel_release=None, ci=False, packages=""): +def e2e_prepare(ctx, kernel_release=None, ci=False, packages=""): """ - Compile test suite for kitchen + Compile test suite for e2e tests """ build_tags = [NPM_TAG] if not is_windows: @@ -994,8 +994,8 @@ def kitchen_prepare(ctx, kernel_release=None, ci=False, packages=""): target_packages = go_package_dirs(TEST_PACKAGES_LIST, build_tags) # Clean up previous build - if os.path.exists(KITCHEN_ARTIFACT_DIR) and (packages == "" or clean_build(ctx)): - shutil.rmtree(KITCHEN_ARTIFACT_DIR) + if os.path.exists(E2E_ARTIFACT_DIR) and (packages == "" or clean_build(ctx)): + shutil.rmtree(E2E_ARTIFACT_DIR) elif packages != "": packages = [full_pkg_path(name) for name in packages.split(",")] # make sure valid packages were provided. @@ -1008,22 +1008,22 @@ def kitchen_prepare(ctx, kernel_release=None, ci=False, packages=""): if os.path.exists(BUILD_COMMIT): os.remove(BUILD_COMMIT) - os.makedirs(KITCHEN_ARTIFACT_DIR, exist_ok=True) + os.makedirs(E2E_ARTIFACT_DIR, exist_ok=True) # clean target_packages only for pkg_dir in target_packages: test_dir = pkg_dir.lstrip(os.getcwd()) - if os.path.exists(os.path.join(KITCHEN_ARTIFACT_DIR, test_dir)): - shutil.rmtree(os.path.join(KITCHEN_ARTIFACT_DIR, test_dir)) + if os.path.exists(os.path.join(E2E_ARTIFACT_DIR, test_dir)): + shutil.rmtree(os.path.join(E2E_ARTIFACT_DIR, test_dir)) # This will compile one 'testsuite' file per package by running `go test -c -o output_path`. - # These artifacts will be "vendored" inside a chef recipe like the following: - # test/kitchen/site-cookbooks/dd-system-probe-check/files/default/tests/pkg/network/testsuite - # test/kitchen/site-cookbooks/dd-system-probe-check/files/default/tests/pkg/network/netlink/testsuite - # test/kitchen/site-cookbooks/dd-system-probe-check/files/default/tests/pkg/ebpf/testsuite - # test/kitchen/site-cookbooks/dd-system-probe-check/files/default/tests/pkg/ebpf/bytecode/testsuite + # These artifacts will be "vendored" inside: + # test/new-e2e/tests/sysprobe-functional/artifacts/pkg/network/testsuite + # test/new-e2e/tests/sysprobe-functional/artifacts/pkg/network/netlink/testsuite + # test/new-e2e/tests/sysprobe-functional/artifacts/pkg/ebpf/testsuite + # test/new-e2e/tests/sysprobe-functional/artifacts/pkg/ebpf/bytecode/testsuite for i, pkg in enumerate(target_packages): - target_path = os.path.join(KITCHEN_ARTIFACT_DIR, os.path.relpath(pkg, os.getcwd())) + target_path = os.path.join(E2E_ARTIFACT_DIR, os.path.relpath(pkg, os.getcwd())) target_bin = "testsuite" if is_windows: target_bin = "testsuite.exe" @@ -1072,14 +1072,11 @@ def kitchen_prepare(ctx, kernel_release=None, ci=False, packages=""): f"{gopath}/bin/gotestsum", ] - files_dir = os.path.join(KITCHEN_ARTIFACT_DIR, "..") + files_dir = os.path.join(E2E_ARTIFACT_DIR, "..") for cf in copy_files: if os.path.exists(cf): shutil.copy(cf, files_dir) - if not ci: - kitchen_prepare_btfs(ctx, files_dir) - ctx.run(f"go build -o {files_dir}/test2json -ldflags=\"-s -w\" cmd/test2json", env={"CGO_ENABLED": "0"}) ctx.run(f"echo {get_commit_sha(ctx)} > {BUILD_COMMIT}") @@ -1628,59 +1625,6 @@ def check_for_ninja(ctx): ctx.run("ninja --version") -def is_bpftool_compatible(ctx): - try: - ctx.run("bpftool gen min_core_btf 2>&1 | grep -q \"'min_core_btf' needs at least 3 arguments, 0 found\"") - return True - except Exception: - return False - - -def kitchen_prepare_btfs(ctx, files_dir, arch=CURRENT_ARCH): - btf_dir = "/opt/datadog-agent/embedded/share/system-probe/ebpf/co-re/btf" - - if arch == "x64": - arch = "x86_64" - elif arch == "arm64": - arch = "aarch64" - - if not os.path.exists(f"{btf_dir}/kitchen-btfs-{arch}.tar.xz"): - exit("BTFs for kitchen test environments not found. Please update & re-provision your dev VM.") - - sudo = "sudo" if not is_root() else "" - ctx.run(f"{sudo} chmod -R 0777 {btf_dir}") - - if not os.path.exists(f"{btf_dir}/kitchen-btfs-{arch}"): - ctx.run( - f"mkdir {btf_dir}/kitchen-btfs-{arch} && " - + f"tar xf {btf_dir}/kitchen-btfs-{arch}.tar.xz -C {btf_dir}/kitchen-btfs-{arch}" - ) - - can_minimize = True - if not is_bpftool_compatible(ctx): - print( - "Cannot minimize BTFs: bpftool version 6 or higher is required: preparing kitchen environment with full sized BTFs instead." - ) - can_minimize = False - - if can_minimize: - co_re_programs = " ".join(glob.glob("/opt/datadog-agent/embedded/share/system-probe/ebpf/co-re/*.o")) - generate_minimized_btfs( - ctx, - source_dir=f"{btf_dir}/kitchen-btfs-{arch}", - output_dir=f"{btf_dir}/minimized-btfs", - bpf_programs=co_re_programs, - ) - - ctx.run( - f"cd {btf_dir}/minimized-btfs && " - + "tar -cJf minimized-btfs.tar.xz * && " - + f"mv minimized-btfs.tar.xz {files_dir}" - ) - else: - ctx.run(f"cp {btf_dir}/kitchen-btfs-{arch}.tar.xz {files_dir}/minimized-btfs.tar.xz") - - # list of programs we do not want to minimize against no_minimize = ["lock_contention.o"] diff --git a/tasks/unit_tests/junit_tests.py b/tasks/unit_tests/junit_tests.py index 6dfa6e0fe57ac..5e7ea0cb3184e 100644 --- a/tasks/unit_tests/junit_tests.py +++ b/tasks/unit_tests/junit_tests.py @@ -69,16 +69,6 @@ def test_default_e2e(self): self.assertNotIn("kitchen", grouped) self.assertNotIn("kitchen-e2e", grouped) - def test_e2e_kitchen(self): - test_dir = Path("./tasks/unit_tests/testdata/to_group") - grouped = junit.group_per_tags(test_dir, ["upload_option.os_version_from_name"]) - self.assertNotIn("default", grouped) - self.assertIn("kitchen", grouped) - self.assertCountEqual([f"{str(test_dir)}/onepiece", f"{str(test_dir)}/dragonball"], grouped["kitchen"]) - self.assertIn("kitchen-e2e", grouped) - self.assertEqual([f"{str(test_dir)}/naruto"], grouped["kitchen-e2e"]) - self.assertNotIn("e2e", grouped) - class TestSetTag(unittest.TestCase): @patch.dict("os.environ", {"CI_PIPELINE_ID": "1515"}) diff --git a/tasks/unit_tests/libs/data_tests.py b/tasks/unit_tests/libs/data_tests.py index 97d4981af82bb..e6d4c7d9be88f 100644 --- a/tasks/unit_tests/libs/data_tests.py +++ b/tasks/unit_tests/libs/data_tests.py @@ -9,14 +9,6 @@ def test_without_logs(self): self.assertEqual(get_infra_failure_info(''), FailedJobReason.GITLAB) self.assertEqual(get_infra_failure_info(None), FailedJobReason.GITLAB) - def test_kitchen(self): - self.assertEqual( - get_infra_failure_info( - 'something ERROR: The kitchen tests failed due to infrastructure failures. something' - ), - FailedJobReason.KITCHEN, - ) - def test_gitlab_5xx(self): self.assertEqual( get_infra_failure_info( diff --git a/tasks/unit_tests/testdata/secret.tar.gz/bedroom-rspec-win2016-azure-x86_64.xml b/tasks/unit_tests/testdata/secret.tar.gz/bedroom-rspec-win2016-azure-x86_64.xml index 947e3b3310580..04c6b23e6c637 100644 --- a/tasks/unit_tests/testdata/secret.tar.gz/bedroom-rspec-win2016-azure-x86_64.xml +++ b/tasks/unit_tests/testdata/secret.tar.gz/bedroom-rspec-win2016-azure-x86_64.xml @@ -1,26 +1,26 @@ - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/tasks/unit_tests/testdata/variables.yml b/tasks/unit_tests/testdata/variables.yml index 1583ab354d5cc..e95d55a033b7e 100644 --- a/tasks/unit_tests/testdata/variables.yml +++ b/tasks/unit_tests/testdata/variables.yml @@ -14,7 +14,7 @@ variables: # avoids accidentally overwriting files when downloading artifacts from # both RPM and SUSE rpm jobs. OMNIBUS_PACKAGE_DIR_SUSE: $CI_PROJECT_DIR/omnibus/suse/pkg - DD_AGENT_TESTING_DIR: $CI_PROJECT_DIR/test/kitchen + DD_AGENT_TESTING_DIR: $CI_PROJECT_DIR/test STATIC_BINARIES_DIR: bin/static DOGSTATSD_BINARIES_DIR: bin/dogstatsd AGENT_BINARIES_DIR: bin/agent @@ -145,11 +145,6 @@ variables: E2E_TESTS_AZURE_SUBSCRIPTION_ID: ci.datadog-agent.e2e_tests_azure_subscription_id # agent-devx-loops E2E_TESTS_GCP_CREDENTIALS: ci.datadog-agent.e2e_tests_gcp_credentials # agent-devx-loops E2E_PULUMI_CONFIG_PASSPHRASE: ci.datadog-agent.pulumi_password # agent-devx-loops - KITCHEN_EC2_SSH_KEY: ci.datadog-agent.aws_ec2_kitchen_ssh_key # agent-devx-loops - KITCHEN_AZURE_CLIENT_ID: ci.datadog-agent.azure_kitchen_client_id # agent-devx-loops - KITCHEN_AZURE_CLIENT_SECRET: ci.datadog-agent.azure_kitchen_client_secret # agent-devx-loops - KITCHEN_AZURE_SUBSCRIPTION_ID: ci.datadog-agent.azure_kitchen_subscription_id # agent-devx-loops - KITCHEN_AZURE_TENANT_ID: ci.datadog-agent.azure_kitchen_tenant_id # agent-devx-loops GITHUB_PR_COMMENTER_APP_KEY: pr-commenter.github_app_key # agent-devx-infra GITHUB_PR_COMMENTER_INTEGRATION_ID: pr-commenter.github_integration_id # agent-devx-infra GITHUB_PR_COMMENTER_INSTALLATION_ID: pr-commenter.github_installation_id # agent-devx-infra @@ -205,4 +200,4 @@ variables: RESTORE_CACHE_ATTEMPTS: 2 # Feature flags FF_SCRIPT_SECTIONS: 1 # Prevent multiline scripts log collapsing, see https://gitlab.com/gitlab-org/gitlab-runner/-/issues/3392 - FF_KUBERNETES_HONOR_ENTRYPOINT: true # Honor the entrypoint in the Docker image when running Kubernetes jobs \ No newline at end of file + FF_KUBERNETES_HONOR_ENTRYPOINT: true # Honor the entrypoint in the Docker image when running Kubernetes jobs diff --git a/tasks/winbuildscripts/secagent.ps1 b/tasks/winbuildscripts/secagent.ps1 index 0ff6a448cf737..af6a1cbb85eef 100644 --- a/tasks/winbuildscripts/secagent.ps1 +++ b/tasks/winbuildscripts/secagent.ps1 @@ -25,7 +25,7 @@ if ($Env:TARGET_ARCH -eq "x86") { $err = $LASTEXITCODE if($err -ne 0){ - Write-Host -ForegroundColor Red "kitchen prepare failed $err" + Write-Host -ForegroundColor Red "e2e prepare failed $err" [Environment]::Exit($err) } Write-Host Test passed diff --git a/tasks/winbuildscripts/sysprobe.bat b/tasks/winbuildscripts/sysprobe.bat index 4281fa5028a93..0b71364dbc0ef 100644 --- a/tasks/winbuildscripts/sysprobe.bat +++ b/tasks/winbuildscripts/sysprobe.bat @@ -18,5 +18,5 @@ call %BUILD_ROOT%\datadog-agent\tasks\winbuildscripts\extract-modcache.bat %BUIL Powershell -C "%BUILD_ROOT%\datadog-agent\tasks\winbuildscripts\sysprobe.ps1" || exit /b 5 REM copy resulting packages to expected location for collection by gitlab. -if not exist c:\mnt\test\kitchen\site-cookbooks\dd-system-probe-check\files\default\tests\ mkdir c:\mnt\test\kitchen\site-cookbooks\dd-system-probe-check\files\default\tests\ || exit /b 6 -xcopy /e/s/q %BUILD_ROOT%\datadog-agent\test\kitchen\site-cookbooks\dd-system-probe-check\files\default\tests\*.* c:\mnt\test\kitchen\site-cookbooks\dd-system-probe-check\files\default\tests\ || exit /b 7 +if not exist c:\mnt\test\new-e2e\tests\sysprobe-functional\artifacts\ mkdir c:\mnt\ttest\new-e2e\tests\sysprobe-functional\artifacts\ || exit /b 6 +xcopy /e/s/q %BUILD_ROOT%\datadog-agent\test\new-e2e\tests\sysprobe-functional\artifacts\*.* c:\mnt\test\new-e2e\tests\sysprobe-functional\artifacts\ || exit /b 7 diff --git a/tasks/winbuildscripts/sysprobe.ps1 b/tasks/winbuildscripts/sysprobe.ps1 index 7abc3cd02ba3f..2ac70e2766a27 100644 --- a/tasks/winbuildscripts/sysprobe.ps1 +++ b/tasks/winbuildscripts/sysprobe.ps1 @@ -23,11 +23,11 @@ if ($err -ne 0) { [Environment]::Exit($err) } -& inv -e system-probe.kitchen-prepare --ci +& inv -e system-probe.e2e-prepare --ci $err = $LASTEXITCODE if($err -ne 0){ - Write-Host -ForegroundColor Red "kitchen prepare failed $err" + Write-Host -ForegroundColor Red "e2e prepare failed $err" [Environment]::Exit($err) } Write-Host Test passed diff --git a/test/files/default/.gitkeep b/test/files/default/.gitkeep new file mode 100644 index 0000000000000..6fa10537e826d --- /dev/null +++ b/test/files/default/.gitkeep @@ -0,0 +1 @@ +This file is used by some tests as a folder to store artifacts diff --git a/test/kitchen/.gitignore b/test/kitchen/.gitignore deleted file mode 100644 index ff9d59ff7cdde..0000000000000 --- a/test/kitchen/.gitignore +++ /dev/null @@ -1,26 +0,0 @@ -.kitchen/ -.rbenv-version -.ruby-gemset -.ruby-version -.rvmrc -.vagrant -Berksfile.lock -cookbooks/ -.kitchen.yml -kitchen.yml -tmpkitchen.yml -ssh-key -ssh-key.pub -azureid.sh -*.bat -*.ps1 -!site-cookbooks/**/files/**/*.ps1 -localplatforms.json -uservars.json -rsa-key -rsa-key.pub -ed25519-key -ed25519-key.pub -Gemfile -Gemfile.lock -!test/**/Gemfile diff --git a/test/kitchen/Berksfile b/test/kitchen/Berksfile deleted file mode 100644 index 1ecd9cf9143c5..0000000000000 --- a/test/kitchen/Berksfile +++ /dev/null @@ -1,27 +0,0 @@ -source 'https://supermarket.chef.io' - -cookbook 'datadog', '~> 4.20.0' - -# We pin an old version of the apt cookbook because this cookbook triggers an "apt update" by default -# and in newer versions this update is not allowed to fail, while in 3.X it is. For some reason -# apt update fails a lot in our debian instances. -# This can be removed if the datadog cookbook no longer depends on apt, since it's only used there -# (ie: when the datadog cookbook requires chef >= 13.3, which already bundles everything we use from apt). -cookbook 'apt', '< 4.0' - -# Version 7.3.0 of the cookbook depends on chef version >= 15.0 but right now we are running 14.12.9 -cookbook 'docker', '< 7.3.0' -# Version 4.0.0 of the cookbook depends on chef version >= 15.3 but right now we are running 14.12.9 -cookbook 'selinux', '< 4.0.0' - -cookbook 'dd-agent-disable-system-repos', path: './site-cookbooks/dd-agent-disable-system-repos' -cookbook 'dd-agent-install', path: './site-cookbooks/dd-agent-install' -cookbook 'dd-agent-reinstall', path: './site-cookbooks/dd-agent-reinstall' -cookbook 'dd-agent-upgrade', path: './site-cookbooks/dd-agent-upgrade' -cookbook 'dd-agent-import-conf', path: './site-cookbooks/dd-agent-import-conf' -cookbook 'dd-agent-5', path: './site-cookbooks/dd-agent-5' -cookbook 'dd-agent-sles-workaround', path: './site-cookbooks/dd-agent-sles-workaround' -cookbook 'dd-agent-rhel-workaround', path: './site-cookbooks/dd-agent-rhel-workaround' -cookbook 'dd-agent-system-files-check', path: './site-cookbooks/dd-agent-system-files-check' -cookbook 'dd-security-agent-check', path: './site-cookbooks/dd-security-agent-check' -cookbook 'dd-system-probe-check', path: './site-cookbooks/dd-system-probe-check' diff --git a/test/kitchen/Gemfile.local b/test/kitchen/Gemfile.local deleted file mode 100644 index 9ecbbd033e9ed..0000000000000 --- a/test/kitchen/Gemfile.local +++ /dev/null @@ -1,11 +0,0 @@ -require 'open-uri' - -group :test do - gem "rspec" - gem "rspec_junit_formatter", require: false -end - -# Actual gemfile is stored in the buildimages repo because it comes pre-installed in the dd-agent-testing Docker image, read it from there -gemfile = ::URI.open('https://raw.githubusercontent.com/DataDog/datadog-agent-buildimages/main/dd-agent-testing/Gemfile') -eval gemfile.read - diff --git a/test/kitchen/README.md b/test/kitchen/README.md deleted file mode 100644 index 8f27b05a830f0..0000000000000 --- a/test/kitchen/README.md +++ /dev/null @@ -1,283 +0,0 @@ -# Datadog Agent Testing - -This directory contains automated integration tests for the Datadog Agent. It -currently tests Agent packaging (installing, updating, and removing the Agent), -as well as basic functionality. The tests are executed on virtual machines that -span most of the supported Agent platforms. They're currently run on Azure VMs. - -This is meant to be executed internally at Datadog and references our internal build structure. -However, people outside of Datadog can run it by editing the repository URL that they are uploaded to in the .kitchen-azure.yml file. You will also need to ensure that the repo branch is `pipeline-$CI_PIPELINE_ID`. - -## Getting Started - -### Dependencies -Non-bundled dependencies: - - [Ruby](http://www.ruby-lang.org/) (last tested with 2.2.1) - - [Bundler](http://bundler.io/) - -Then install bundled gem dependencies: -``` -bundle config set --local path '.' -bundle config set --local gemfile './Gemfile.local' -``` - -`bundle install` - -Note: When building on macOS M1, you might run into an error when installing the `ffi-yajl` gem. You should be able to get around that by setting the build `ldflags` for this gem in bundler configuration (see [this Github Issue](https://github.com/chef/ffi-yajl/issues/115)): -```bash -bundle config build.ffi-yajl --with-ldflags="-Wl,-undefined,dynamic_lookup" -``` - -#### Azure - -These tests are set up to be run on Azure. -It is set up to use our automated testing. -However, there are also provisions to run it locally. - -You will need to create a service principle. -You can do that with the following command on the azure cli tool: - -``` -az ad sp create-for-rbac --name -``` - -Then create a file called `azureid.sh` and export the relevant settings into environment variables: - -The subscription ID is retrieved from the azure portal, by starting a azure shell. --or-- the "id" returned from `az account list` - -The AZURE_CLIENT_ID is returned as the appId from the above command - -the AZURE_CLIENT_SECRET is returned as the password from the above command - -the AZURE_TENANT_ID is returned as tenant from the above command --or-- the "tenantId" returned from `az account list` - -``` -export AZURE_CLIENT_ID="$AZURE_CLIENT_ID" -export AZURE_CLIENT_SECRET="$AZURE_CLIENT_SECRET" -export AZURE_TENANT_ID="$AZURE_TENANT_ID" -export AZURE_SUBSCRIPTION_ID="$AZURE_SUBSCRIPTION_ID" -export CI_PIPELINE_ID="$CI_PIPELINE_ID" -export NOT_GITLAB="true" -``` - -##### Images - -If for some reason you need to find another version of a specific image you will -need to use the Azure CLI. - -This will list all the images available on Azure (and take ~10min to run) -```bash -az vm image list --all --output table -``` - -This will list all the images available on Azure for a specific OS (and take ~2min to run) -```bash -az vm image list --offer Ubuntu --all --output table -``` - -#### Common - -To see the rest of the rake commands, execute - - rake -T - -For finer control, you can invoke test-kitchen directly - -To list all available tests, execute - - kitchen list - -And to run one of these tests, execute - - kitchen test - -For more kitchen commands, execute - - kitchen help - -## Test Coverage - -Tests are composed of platforms and suites. A suite is a series of commands to -execute (usually in the form of Chef recipes) followed by a series of tests -that verify that the commands completed as expected. Platforms are -systems environments in which the suites are executed. Each test suite is -executed on each platform. - -### Platforms Tested: - -To generate a test suite, the platforms to be tested are passed in via the -TEST_PLATFORMS environment variable. The exact format of the list that's -supplied in this variable will vary depending upon which driver (provider) -is being used. - -In Azure (which is what is used in the ci pipeline), the list of platforms -is created in the top level .gitlab-ci.yaml, and the syntax is of the form: -`short_name1,azure_full_qualified_name1|short_name2,azure_full_qualified_name2` - -Each driver (provider) will have a slightly different format, which is described -in the driver-specific yaml (drivers/azure-driver.yml, drivers/ec2-driver, etc.) - - -### Packaging Test Suites - -The *release candidate* is the latest Agent built. -In other words, they are the most up-to-date packages on our -staging (datad0g.com) deb (unstable branch) and yum repositories. - -Agent packaging methods tested: - -- `chef`: Installing the latest release candidate using the - [chef-datadog](https://github.com/DataDog/chef-datadog). The recipe will - determine if the base Agent should be installed instead of the regular one - (based on the system version of Python). -- `upgrade-agent6`: Installs the latest release Agent 6 (the latest publicly - available Agent 6 version), then upgrades it to the latest release candidate - using the platform's package manager. -- `upgrade-agent5`: Installs the latest release Agent 5 (the latest publicly - available Agent 5 version), then upgrades it to the latest Agent 6 release candidate - using the platform's package manager. -- `install-script`: Installs the latest release candidate using our [Agent - install script](https://raw.github.com/DataDog/dd-agent/master/packaging/datadog-agent/source/install_agent.sh). -- `step-by-step`: Installs the latest release candidate using our - step-by-step installation instructions as listed on Dogweb. - -For each platform, for each packaging method, the following Agent tests are -run (in the order listed): - - * The Agent is running: - - the Agent is running after installation is complete - - the configuration has been correctly placed (where applicable) - - the info command output does not contain 'ERROR' and exits with a non-zero - value - * The Agent stops: - - the `stop` command does not error when the Agent is running - - no Agent processes are running after the Agent has been stopped - - the Agent starts after being stopped - * The Agent restarts: - - the `restart` command does not error when the Agent is running - - the Agent is running after a previously-running Agent it is restarted - - the `restart` command does not error when the Agent is stopped - - the Agent is running after a previously-stopped Agent it is restarted - * The Agent is removed (if installed using a package manager): - - removing the Agent using the package manager should not error - - the Agent should not be running after it is removed - - the Agent binary should not be present after removal - -For the `upgrade` method, the version of the agent after the upgrade is tested. -Be sure to set the `DD_AGENT_EXPECTED_VERSION` environment variable to the version the agent -should be upgraded to (for instance `export DD_AGENT_EXPECTED_VERSION='5.5.0+git.213.59ac9da'`). - -### Agent Properties that are NOT Tested - -This suite covers the installing, upgrading, and removing the Agent on most -platforms. The following, among other aspects, are *not* covered: - -* Updates from versions of the Agent prior to the latest publicly available - version. This can easily be added by setting the ['datadog']['agent_version'] - attribute to the version that you wish to upgrade from in the - `upgrade` suite -* Not all supported operating systems are tested. Missing operating systems - include: - - Mac OS 10.x - - Amazon Linux -* Memory leaks or any obscurities that result from the Agent running for a long time, and so short term tests like these will not catch them -* Sending metrics/events over Dogstatsd via client libraries -* Changes made to an environment by a user (no sudo present, system Python - removed, supervisor installed etc.) - -## Adding Tests - -For basic test-kitchen usage, see its [Getting Started -guide](https://github.com/opscode/test-kitchen/wiki/Getting-Started). - -### Adding a Platform -Tests are executed on Azure in ci. Platforms are defined in the OS dependent -files kitchen testing definitions in /.gitlab/kitchen_testing/.yaml - -### Adding a Suite -Suites define the commands that should be run on a platform as Chef recipes, -and tests that verify the outcome of these commands written in RSpec. Suites -are defined in specific yaml files in the `test-definitions` directory. - -Add new cookbooks by describing them in `Berksfile`. If you want to write your -own cookbook that is specific to this repository, place it in the -`site-cookbooks` directory. New cookbooks will not be available in your tests -until `rake berks` is executed. - -Tests should be placed in `test/integration//rspec/`. They will be -copied and executed on a platform after the suite's recipes have been applied -to the environment. They are not managed by `Berks`. Code that can be shared -between suites is in `test/integration/common/rspec/`. - -Tests do not need to be written in RSpec; [Busser](https://github.com/fnichol/busser), -the framework that executes the tests, supports several different testing -frameworks (including Bats and minitest). - -### Creating a complete test file (kitchen.yaml) - -To support running multiple kitchen suites using multiple back-end providers, the -kitchen configuration file (kitchen.yaml) is created dynamically by combining three -provided yaml files. - -A complete kitchen configuration (kitchen.yaml) is created by taking one of the -driver files, adding the common configuration options [platforms-common](test-definitions/platforms-common.yml), -and then adding the desired test suite(s) from the test-definitions directory. - -There is an invoke task for creating the completed `kitchen.yml`. The usage for -the invoke task is: - - invoke kitchen.genconfig --platform=platform --osversions=osversions --provider=provider --arch=arch --testfiles=testfiles - -where: - platform is an index into the platforms.json. It is (currently) one of: - - centos - - debian - - suse - - ubuntu - - windows - - amazonlinux - - osversions is an index into the per-provider dictionary for the given - platform. Examples include - - win2012r2 (which is in both windows/azure and windows/ec2) - - ubuntu-20-04 (which is in ubuntu/azure) - - Provider is the kitchen driver to be used. Currently supported are - - azure - - ec2 - - vagrant - - hyperv (with a user-supplied platforms file) - - arch is: - - x86_64 - - arm64 - - Testfiles is the name of the test-specific file(s) (found in [test-definitions](test-definitions) ) to be - added. The testfiles define the tests that are run, on what OS, on the given provider. - -An example command would be - invoke kitchen.genconfig --platform ubuntu --osversions all --provider azure --arch x86_64 --testfiles install-script-test - - This will generate a kitchen.yml which executes the `install-script-test` on all of the defined `ubuntu` - OS images in azure. - -#### Running in CI - -When run in CI, the gitlab job will set up the `TEST_PLATFORMS` environment variable, -and then concatenate the [azure driver](drivers/azure-driver.yml), [platforms-common](test-definitions/platforms-common.yml), -and the desired test suite file (for example [upgrade7-test](test-definitions/upgrade7-test.yml)). - -Test kitchen then expands out each of the `TEST_PLATFORMS` into a kitchen platform, and runs -each suite on each provided platform - -#### Running locally - -To run kitchen locally, either to do broad tests on a given build or to develop the -kitchen tests themselves, additional driver files are provided for using AWS EC2, Hyper-V, -or vagrant as the back end. - -To create a kitchen file, take the same steps as above. Combine the desired driver file, -the common file, and the desired test suite(s). Using `erb` as a manual step will generate -a kitchen file that can be reused. - -At present, the EC2 and Hyper-V driver files have only been tested for Windows targets. diff --git a/test/kitchen/azure-creds.erb b/test/kitchen/azure-creds.erb deleted file mode 100644 index 65cd405c3f46e..0000000000000 --- a/test/kitchen/azure-creds.erb +++ /dev/null @@ -1,4 +0,0 @@ -[<%= subscription_id %>] -client_id = "<%= client_id %>" -client_secret = "<%= client_secret %>" -tenant_id = "<%= tenant_id %>" diff --git a/test/kitchen/docs/README.md b/test/kitchen/docs/README.md deleted file mode 100644 index 80e3b3fa28df7..0000000000000 --- a/test/kitchen/docs/README.md +++ /dev/null @@ -1,236 +0,0 @@ -# Test Kitchen Overview - -## Build pipeline testing - -### Configuration (.gitlab-ci.yml) - -The gitlab pipelines which require kitchen testing have 3 independent stages for provisioning kitchen testing, running kitchen testing, and cleaning up (removing the artifacts). The `testkitchen_deploy` stage copies the build artifacts to an S3 bucket. The `testkitchen_testing` stage executes the kitchen tests. The `testkitchen_cleanup` stage cleans up the s3 buckets and the azure virtual machines. - -#### testkitchen_deploy - -This stage contains jobs to deploy the Agent packages created by the package build jobs to our test repositories: -- apttesting.datad0g.com (for .deb packages used by the Debian and Ubuntu tests) -- yumtesting.datad0g.com (for .rpm packages used by the CentOS/RHEL and SUSE tests) -- s3.amazonaws.com/dd-agent-mstesting (for .msi packages used by the Windows tests) - -For each package type, there are two jobs: one to deploy the A6 package, the other -to deploy the A7 and IoT packages. - -Each pipeline puts its packages in a dedicated branch: -- .deb packages are put in the `dists/pipeline--a6` and `dists/pipeline--a7` branches apttesting.datad0g.com. -- .rpm packages are put in the `pipeline--a6` and `pipeline--a7` branches of yumtesting.datad0g.com. -- SUSE .rpm packages are put in the `suse/pipeline--a6` and `suse/pipeline--a7` branches of yumtesting.datad0g.com. -- .msi packages are put in the `pipelines/A6/` and `pipelines/A7/` branches of s3.amazonaws.com/dd-agent-mstesting. - -#### testkitchen_testing - -This stage contains jobs which execute the kitchen tests on our Azure account. - -Each job executes one specific test suite, for one OS, for one Agent flavor and one major Agent version. - -The `.gitlab-ci.yml` file has been structured to avoid config duplication with the following jobs: - -- a common `kitchen_common` job from which all kitchen testing jobs inherit -- `kitchen_agent_aX` jobs that specify the Agent version tested -- `kitchen_os_X` jobs that specify which OS is tested -- `kitchen_test_X` jobs that specify which test suite is run -- `kitchen_datadog_X_flavor` jobs that specify which Agent flavor is run (eg. `datadog-agent`, `datadog-iot-agent`) -- `kitchen_azure_location_X` jobs that specify the Azure location where the tests are run. - -**Note:** We spread our kitchen tests on multiple regions mainly because we have a limited number of resources available on each region on Azure. - -From these base blocks, we define: -- test types: `kitchen_test__` which is a combination of a chosen test suite, Agent flavor and Azure location. -- scenarios: `kitchen_scenario__aX` which is a combination of a chosen OS and major Agent version. - -**Note:** When jobs use combinations of other jobs with the `extends` keyword (eg. test types, scenarios), the `extends` list is processed in order. Duplicate keys are overridden (ie. the latest job in the list which contains the key wins). Therefore, `extends` lists need to be ordered from the most generic to the most specific extension. - -**Note:** To avoid having too many different test types, we bind each test suite with a specific Azure location. Eg. all install script tests are run in the same Azure location. - -The real jobs that are run in the Gitlab pipelines are thus a combination of test types and scenarios, named `kitchen___-aX`. - -##### testkitchen_cleanup - -The `testkitchen_cleanup_azure-aX` jobs clean up the Azure VMs that were used during the `testkitchen_testing` stage. - -**Note:** The kitchen test jobs send a `destroy` request to Azure when their tests end, so usually these jobs do nothing. They're mainly useful to make sure all VMs have been destroyed, or when kitchen jobs are cancelled while they're running. - -**Note:** Azure VMs are also cleaned up on a daily basis by a job in the `mars-jenkins-scripts` pipeline. - -The `testkitchen_cleanup_s3-aX` jobs clean up the S3 buckets of the testing repos. - -**Important note:** These jobs are always run, even when a kitchen test fails. This is done on purpose (to avoid having remaining resources once a job fails). -The downside of this approach is that when you want to retry a failing kitchen test job, you'll have to re-run the corresponding deploy job first (to put the Agent packages back in the testing repository). - -#### Test suites - -kitchen tests are defined in a file named `kitchen.yml` which defines: -- the provisioner (`provisioner:` key) used in the tests. In the pipeline, `chef-solo` is used. -- the driver (`driver:` + `driver_config:` keys) used to run the tests. In the pipeline, the [Azure kitchen driver](https://github.com/test-kitchen/kitchen-azurerm) is used. - -- the list of platforms (`platforms:` key) used in the tests. -- the list of test suites (`suites:` key) to run. - -To reduce duplication, the `kitchen.yml` file is generated at test time by the `run-test-kitchen.sh` script ([see below](#test-execution-tasksrun-test-kitchensh)) by concatenating 2 template files: - -- the `kitchen-azure-common.yml` file, which defines the provisioner, driver, and platforms that will be used. It also defines a number of useful variables that can be used by the test suite templates (such as: which major Agent version is used, what are the testing repository URLs, etc.). -- a `kitchen-azure--test.yml` file, which contains the test suite definition for a particular test. That definition consists in the list of recipes to run, with their attributes, and optionally a list of platforms to not run the test on (eg. if you know that a particular test x platform combination cannot work). - -These files are `.erb` template files, the rendered contents (eg. the list of platforms) depend on what variables are passed to the `run-test-kitchen.sh` script. - -#### Test execution (tasks/run-test-kitchen.sh) - -Each individual test environment is controlled from the `.gitlab-ci.yml` jobs. The tests are set up using environment variables. - -##### `TEST_PLATFORMS` - -`TEST_PLATFORMS` is a list of test platforms which are turned into test kitchen platforms. In `.gitlab-ci.yml`, the platform list has the following syntax: - `short_name1,type1,azure_fully_qualified_name1|short_name2,type2,azure_fully_qualified_name2` - -There are two types of platforms: -- ones which use a public image (type `urn`): the azure qualified name for such an image can be found by using `az vm image list` to search for the image (using the publisher name, the offer name and/or the sku). The `urn` field contains the azure fully qualified name. -- ones which use a private image (type `id`): the image is in an image gallery in the `kitchen-test-images` resource group of the Azure account. The fully qualified name is the full path to the image in the gallery. - -We mainly use private images for platforms we still want to test, but have been removed from the public Azure images list (eg. because they're EOL). - -**Note:** this variable is set by the `kitchen_os_X` jobs. - -##### `AZURE_LOCATION` - -`AZURE_LOCATION` is a string that indicates on which Azure region the test VMs are spun up. - -**Note:** this variable is set by the `kitchen_azure_location_X` jobs. - -##### `AGENT_FLAVOR` - -`AGENT_FLAVOR` is a string that indicates which flavor the Agent is installed (eg. datadog-agent, datadog-iot-agent). In particular, it helps knowing which package has to be installed, and which tests should be applied (eg. doing Python tests on the IoT Agent doesn't make sense). - -**Note:** this variable is set by the `kitchen_datadog_X_flavor` jobs. - -This configuration is fed to the `tasks/run-test-kitchen.sh`. That script also takes two mandatory parameters: - -- an identifier for the test suite that is run (eg. `install-script`, `upgrade5`), -- the major Agent version that is tested (eg. `6` or `7`). - -In turn, it sets up additional variables for Azure (authentication/environment variables), as well as some variables used during testing (such as the exact expected Agent version, gathered from the `inv agent.version` command). - -It concatenates the `kitchen-azure-common.yml` file with the file specific to the provided test suite into a `kitchen.yml` file, and then executes the actual kitchen command. - -### Test Implementation - -#### Directory structure - -Test kitchen imposes a very specific directory structure. For more information, see the [test kitchen documentation](https://kitchen.ci/docs). However, a brief overview: - -##### Cookbooks - -The `site_cookbooks` tree contains the chef cookbooks that are run during the `kitchen converge` stage. - -**Note:** The test suites can also use recipes from other cookbooks defined in the `Berksfile`, such as our official `chef-datadog` cookbook. - -``` -. -├── site-cookbooks -│   ├── dd-agent-install-script -│   │   ├── attributes -│   │   │   └── default.rb -│   │   ├── recipes -│   │   │   └── default.rb -``` -etc. - -The `recipes` directory contains the actions that the cookbook does. By default (ie. when including the `[]` recipe to your test suite), the `default.rb` recipe is used. To target a specific recipe, include `[:]`. - -The `attributes` directory contains the default attributes of your recipes. While not mandatory (you can explicitly define all attributes in the test suites), they are useful to quickly know what can be configured in the recipe. - -**Note:** The cookbooks are run prior to an individual test. Each listed cookbook is run before any verification stage, so multi-stage tests can't do verification in between stages (like the upgrade test). - -##### Tests - -The `test/integration` tree contains the `rspec` verification tests that are run during the `kitchen verify` stage. - -``` -└── test - └── integration - ├── common - │   └── rspec - │   └── spec_helper.rb - │   └── iot_spec_helper.rb - ├── install-script - │   └── rspec - │   ├── install_script_spec.rb - │   └── spec_helper.rb -> ../../common/rspec/spec_helper.rb - │   └── iot_spec_helper.rb -> ../../common/rspec/iot_spec_helper.rb - ├── win-all-subservices - │   └── rspec - │   ├── win-all-subservices_spec.rb - │   └── spec_helper.rb -> ../../common/rspec/spec_helper.rb - ├── win-installopts - │   └── rspec - │   ├── win-installopts_spec.rb - │   └── spec_helper.rb -> ../../common/rspec/spec_helper.rb -``` - -To prevent copy/paste, and make maintenance manageable, therefore there's a group of common test definitions in `spec_helper.rb` that is shared to the other via the symbolic links. The symbolic link is necessary because chef/kitchen only copies the test files from the specific test directory that will be run to the target machine. - -The same is done for IoT-specific helpers, via the `iot_spec_helper.rb` file. - -**On Windows** symbolic links must be explicitly enabled in git prior to fetching the tree. This can be done at install time, or after the fact with `git config --global core.symlinks=true`. - -The two `spec_helper` files define helpers and groups of examples that can be used by test suites. Test suites can then add their own specific tests in their test file, and/or use the test groups and helpers defined in the `spec_helper` files. - -In particular, both `spec_helper` and `iot_spec_helper` have: -- an "install" test group, to check that the Agent is correctly installed. -- a "behavior" test group, to check various properties of the Agent. -- an "uninstall" test group, to uninstall the Agent and verify its uninstall properties (eg. no files left after uninstall). - - -#### Test definition - -Each test suite runs one or more chef recipes (usually to install the agent in various ways), defined by the `run_list:` key, and then its verifier. The verifier is assumed (by kitchen) to be in the directory that has the name of the suite. So, the suite named `dd-agent-install-script` suite runs the verifier script in `dd-agent-install-script/rspec/dd-agent-install-script_spec.rb`. - -### How to add a new test suite to the pipeline - -1. If needed, create (a) new cookbook(s) that perform(s) the install type you want to test. - -- To scaffold your cookbook, you can use the same cookbook structure as existing cookbooks in the directory -- Don't forget to add your cookbook to the `Berksfile`, otherwise Chef won't know that it's there. -- Think of the different attributes that your cookbook needs (usually, it needs a way to know which Agent version it installs, as well as a location where it can fetch the Agent package built by the pipeline), add them to the `attributes/default.rb` file. - -2. Create the new test suite file (`kitchen-azure--test.yml`). - -- The most important parts are the run list, the attributes to set for each cookbook used, and optionally a list of platforms to exclude. -- Add the suite to the list of accepted suites in `tasks/run-test-kitchen.sh`. - -**Note:** When creating kitchen resources on Azure, the kitchen Azure driver creates one resource group for each suite + test platform combination. Its name is computed as follows: -`kitchen---pl-`, with: -- `suite_name`: the kitchen test suite name, defined in `kitchen-azure--test.yml`. -- `platform_name`: the short name of the test platform, defined in the `TEST_PLATFORMS`. -- `timestamp`: a `YYYYMMDDThhmmss` timestamp (15 chars), -- `pipeline n°`: the pipeline number (7-8 chars for the foreseeable future). -- `suffix`: `a6` or `a7` (2 chars). - -Azure will throw an error if a resource group name is longer than 80 characters: `Failed to complete #create action: [{"error"=>{"code"=>"InvalidParameter", "message"=>"The entity name 'resourceGroupName' is invalid according to its validation rule: ^[^_\\W][\\w-._]{0,79}(?"resourceGroupName"}}]` - -Therefore, your test suite name + test platform short name combinations need to be short enough to not exceed the limit. - -**Note (HACK):** On some test suites, we define attributes for a cookbook named `dd-agent-rspec`. This is not a real cookbook; we're using this as a workaround to pass variables to the rspec tests (in the rspec tests, we only have access to a `dna.json` file that has the contents of `kitchen.yml`). - -3. Create the rspec test directory matching your new test suite. - -- Do not forget to create the symlinks to the `rspec_helper` files from the `common` directory if you need them. -- Remember that your main test file must be in `test/integration//_spec.rb`. - -4. Create the necessary Gitlab jobs to run your test suite on all platforms, Agent flavors and versions you want, following the existing naming conventions. - -5. Update the periodic cleanup job (`periodic_kitchen_cleanup_azure`) - -When kitchen tests are run, VMs are created in dedicated resource groups in Azure. These resource groups are prefixed with `kitchen-`. - -The periodic cleanup jobs runs the `cleanup_azure.py` script on a given list of Azure resource group prefixes. Eg.: -``` -RESOURCE_GROUP_PREFIX=kitchen-dd-agent python3 /deploy_scripts/cleanup_azure.py -``` -cleans up all resources created by test suites that start with `dd-agent`. - -If you add a new test suite that doesn't match any of the already present prefixes, then you need to add a line to the cleanup job to clean up the resources created under this new prefix. \ No newline at end of file diff --git a/test/kitchen/docs/win-all-subservices.md b/test/kitchen/docs/win-all-subservices.md deleted file mode 100644 index c73dfe50b25b1..0000000000000 --- a/test/kitchen/docs/win-all-subservices.md +++ /dev/null @@ -1,27 +0,0 @@ -## win-all-subservices.md - -### Objective - -Test the Windows command line installer options for explicitly enabling the various datadog subservices (processes, trace, and logs) - -### Installation Recipe - -Uses the \_install_windows_base recipe to do a fresh install of the agent. -1. Uses a fresh install because install options are ignored on upgrades -2. Uses the \_base recipe which allows setting of additional options - -### Test definition - -The test is successful if: -1. APM - 1. APM is enabled in the configuration file - 2. Something is listening on port 8126 - 3. there is a process in the process table called `trace-agent.exe` - 4. There is a service registered called `datadog-trace-agent` which can be queried via `sc qc` -2. Logs - 1. Logs is enabled in the configuration file -3. Process - 1. Process is enabled in the configuration file - 2. There is a process in the process table called `process-agent.exe` - 3. There is a service registered called `datadog-process-agent` which can be queried via `sc qc` - \ No newline at end of file diff --git a/test/kitchen/docs/win-installopts.md b/test/kitchen/docs/win-installopts.md deleted file mode 100644 index 1ff285bdb9613..0000000000000 --- a/test/kitchen/docs/win-installopts.md +++ /dev/null @@ -1,15 +0,0 @@ -## win-installopts - -### Objective - -Test the Windows command line installer options for tags, hostname, command port, all proxy settings, and datadog site-specific settings - -### Installation Recipe - -Uses the \_install_windows_base recipe to do a fresh install of the agent. -1. Uses a fresh install because install options are ignored on upgrades -2. Uses the \_base recipe which allows setting of additional options - -### Test definition - -Test is successful if the options are correctly written to `datadog.yaml`. The verifier reads and parses the resulting configuration file to verify the test options are correctly written. \ No newline at end of file diff --git a/test/kitchen/docs/win-no-subservices.md b/test/kitchen/docs/win-no-subservices.md deleted file mode 100644 index b6be7b425e1a5..0000000000000 --- a/test/kitchen/docs/win-no-subservices.md +++ /dev/null @@ -1,27 +0,0 @@ -## win-no-subservices.md - -### Objective - -Test the Windows command line installer options for explicitly disabling the various datadog subservices (processes, trace, and logs) - -### Installation Recipe - -Uses the \_install_windows_base recipe to do a fresh install of the agent. -1. Uses a fresh install because install options are ignored on upgrades -2. Uses the \_base recipe which allows setting of additional options - -### Test definition - -The test is successful if: -1. APM - 1. APM is disabled in the configuration file - 2. Nothing is listening on port 8126 - 3. there is no process in the process table called `trace-agent.exe` - 4. There is not a service registered called `datadog-trace-agent` which can be queried via `sc qc` -2. Logs - 1. Logs is not enabled in the configuration file -3. Process - 1. Process is disabled in the configuration file - 2. There is no process in the process table called `process-agent.exe` - 3. There is not a service registered called `datadog-process-agent` which can be queried via `sc qc` - \ No newline at end of file diff --git a/test/kitchen/drivers/azure-driver.yml b/test/kitchen/drivers/azure-driver.yml deleted file mode 100644 index 65f815b10eff4..0000000000000 --- a/test/kitchen/drivers/azure-driver.yml +++ /dev/null @@ -1,200 +0,0 @@ -<% - ENV['AZURE_LOCATION'] ||= "North Central US" - location = ENV['AZURE_LOCATION'] -%> - -<% - vm_tags = { - 'dd_agent_testing': 'dd_agent_testing' - } - vm_username = ENV['VM_USERNAME'] ? ENV['VM_USERNAME'] : "datadog" - if ENV['DD_PIPELINE_ID'] - vm_tags['pipeline_id'] = ENV['DD_PIPELINE_ID'] - else - vm_tags['pipeline_id'] = 'nopipeline' - end -%> - -provisioner: - name: chef_solo - <% if ENV['KITCHEN_CI_MOUNT_PATH'] && ENV['KITCHEN_CI_ROOT_PATH'] %> - root_path: <%= ENV['KITCHEN_CI_ROOT_PATH'] %>/kitchen - <% end %> - product_name: chef - # There is no arm64 distribution of Chef 14 for Debian. Use the Ubuntu package instead - <% if ENV['KITCHEN_PLATFORM'] == "debian" && ENV['KITCHEN_ARCH'] == "arm64" %> - download_url: https://packages.chef.io/files/stable/chef/14.15.6/ubuntu/18.04/chef_14.15.6-1_arm64.deb - product_version: 14.15.6 - <% else %> - product_version: <%= ENV['CHEF_VERSION'] ||= '14.12.9' %> - <% end %> - install_strategy: always - # the following settings make it possible to do a reboot during setup - # (necessary for FIPS tests which reboot to enable FIPS mode) - max_retries: 3 - wait_for_retry: 90 - client_rb: - client_fork: false - -driver: - name: azurerm - -driver_config: - subscription_id: <%= ENV['AZURE_SUBSCRIPTION_ID'] %> - location: <%= location %> - <% if ENV['DD_PIPELINE_ID'] %> - azure_resource_group_suffix: pl<%= ENV['DD_PIPELINE_ID'] %> - <% else %> - azure_resource_group_suffix: plnone - <% end %> - -platforms: -# Loop through two lists and output a total matrix of all possible platform + chef versions, -# for both drivers - - -<% - # TEST_PLATFORMS syntax is `short_name1,azure_full_qualified_name1|short_name2,azure_full_qualified_name1` - # TEST_PLATFORMS syntax is `short_name1,parent vhd folder,parent_vhd_name|...` - azure_test_platforms = ENV['TEST_PLATFORMS'].split('|').map { |p| p.split(',') } - cws_supported_platforms = (ENV['KITCHEN_CWS_SUPPORTED_OSVERS'] || "").split(',') - - if ENV['TEST_IMAGE_SIZE'] != "" - sizes = [ - ENV['TEST_IMAGE_SIZE'] - ] - else - sizes = [ - "Standard_D1_v2", - "Standard_A1_v2", - ] - end - - windows_sizes = [ - "Standard_D2_v4" - ] - - windows_platforms = [] - sles15_platforms = [] - - idx = 0 - azure_test_platforms.each do |platform| - idx += 1 - - host = "azure" - - # KITCHEN_PLATFORM_SUFFIX is set for non-standard Agent tests (eg. IoT Agent, FIPS) - # that use the same test suites as the standard Agent. - # This is needed because the resource group name used by the driver is computed as: - # --- - # which means that, without that KITCHEN_PLATFORM_SUFFIX, two types of tests - # running at the same time can conflict with each other if they start at the same time, - # as they try to use the same resource group name, leading to provisioning errors. - if ENV['KITCHEN_PLATFORM_SUFFIX'] - platform_name = platform[0] + "-" + ENV['KITCHEN_PLATFORM_SUFFIX'] + "-#{host}-#{ENV['KITCHEN_ARCH']}" - else - platform_name = platform[0] + "-#{host}-#{ENV['KITCHEN_ARCH']}" - end - - windows = platform_name.include?("win") - sles15 = platform_name.include?("sles-15") - debian9 = platform_name.include?("debian-9") - - if windows - windows_platforms << platform_name - size = windows_sizes[idx % windows_sizes.length] - else - if sles15 - sles15_platforms << platform_name - end - size = sizes[idx % sizes.length] - end - - # Check if we should use an ed25519 key, an rsa key or the default key - # Some newer platforms don't support rsa, while some older platforms don't support ed25519 - # In Azure, ed25519 is not supported, but the default key created by the driver works - default_key_platforms = ["ubuntu-22-04", "rhel-91", "debian-12"] - use_default_key = default_key_platforms.any? { |p| platform_name.include?(p) } - - ed25519_platforms = [] - use_ed25519 = ed25519_platforms.any? { |p| platform_name.include?(p) } - - vm_password = ENV['SERVER_PASSWORD'] - -%> - -- name: <%= platform_name %> - attributes: - color_idx: <%= idx %> - dd-agent-rspec: - enable_cws: <%= ENV['KITCHEN_CWS'] == "true" && cws_supported_platforms.include?(platform[0]) %> - <% if ENV["KITCHEN_CWS_PLATFORM"] %> - cws_platform: <%= ENV["KITCHEN_CWS_PLATFORM"] %> - <% end %> - <% if ENV['KITCHEN_CI_MOUNT_PATH'] && ENV['KITCHEN_CI_ROOT_PATH'] %> - provisioner: - command_prefix: TMPDIR=<%= ENV['KITCHEN_CI_ROOT_PATH'] %> - <% end %> - driver_config: - machine_size: <%= size %> - <% if platform[1] == "urn" %> - image_urn: <%= platform[2] %> - <% else %> - image_id: <%= platform[2] %> - <% end %> - location: <%= location %> - <% if windows %> - vm_name: ddat<%= platform[0] %> - <% else %> - vm_name: dd-agent-testing-<%= platform[0] %>-azure - <% end %> - vm_tags: - <% vm_tags.each do |key,value| %> - <%= key %>: <%= value %> - <% end %> - username: <%= vm_username %> - password: <%= vm_password %> - <% if (ENV['KITCHEN_CI_MOUNT_PATH'] && ENV['KITCHEN_CI_ROOT_PATH']) || debian9 %> - lifecycle: - post_create: - <% if ENV['KITCHEN_CI_MOUNT_PATH'] && ENV['KITCHEN_CI_ROOT_PATH'] %> - - remote: | - sudo mkdir -p <%= ENV['KITCHEN_CI_MOUNT_PATH'] %>; - sudo chmod a+rwx <%= ENV['KITCHEN_CI_MOUNT_PATH'] %>; - sudo ln -s <%= ENV['KITCHEN_CI_MOUNT_PATH'] %> <%= ENV['KITCHEN_CI_ROOT_PATH'] %>; - <% end %> - <% if debian9 %> - - local: echo 'Updating the sources.list file to use archive.debian.org for the stretch suites' - - remote: | - # Stretch has been moved to archive.debian.org - # See https://lists.debian.org/debian-devel-announce/2023/03/msg00006.html - sudo sed -i 's/debian-archive.trafficmanager.net/archive.debian.org/g' /etc/apt/sources.list - # The stretch-updates dist doesn't exist in archive.debian.org/debian - sudo sed -i '/stretch-updates/d' /etc/apt/sources.list - <% end %> - <% end %> - - transport: - <% if windows %> - name: winrm - username: <%= vm_username %> - password: <%= vm_password %> - <% else %> - connection_retries: 30 - connection_retry_sleep: 2 - <% if use_default_key %> - ssh_key: - <% elsif use_ed25519 %> - ssh_key: <%= ENV['KITCHEN_ED25519_SSH_KEY_PATH'] %> - <% else %> - ssh_key: <%= ENV['KITCHEN_RSA_SSH_KEY_PATH'] %> - <% end %> - <% end %> - - verifier: - downloads: - "/tmp/junit.tar.gz": junit-<%= platform_name %>.tar.gz - "/tmp/testjson.tar.gz": testjson/<%= platform_name %>/testjson.tar.gz - "/tmp/kitchen/rspec.xml": kitchen-rspec-<%= platform_name %>.xml - -<% end %> diff --git a/test/kitchen/drivers/ec2-driver.yml b/test/kitchen/drivers/ec2-driver.yml deleted file mode 100644 index 57359d902dd5d..0000000000000 --- a/test/kitchen/drivers/ec2-driver.yml +++ /dev/null @@ -1,215 +0,0 @@ -provisioner: - name: chef_solo - <% if ENV['KITCHEN_CI_MOUNT_PATH'] && ENV['KITCHEN_CI_ROOT_PATH'] %> - root_path: <%= ENV['KITCHEN_CI_ROOT_PATH'] %>/kitchen - <% end %> - product_name: chef - # There is no arm64 distribution of Chef 14 for Debian. Use the Ubuntu package instead - <% if ENV['KITCHEN_PLATFORM'] == "debian" && ENV['KITCHEN_ARCH'] == "arm64" %> - download_url: https://packages.chef.io/files/stable/chef/14.15.6/ubuntu/18.04/chef_14.15.6-1_arm64.deb - product_version: 14.15.6 - <% elsif (ENV['KITCHEN_PLATFORM'] == "amazonlinux" || ENV['KITCHEN_PLATFORM'] == "suse") && ENV['KITCHEN_ARCH'] == "arm64" %> - # There is no arm64 distribution of Chef 14 for Amazon Linux 2022 nor SLES 15. Use the CentOS package instead - download_url: https://packages.chef.io/files/stable/chef/14.15.6/el/7/chef-14.15.6-1.el7.aarch64.rpm - product_version: 14.15.6 - <% elsif ENV['KITCHEN_PLATFORM'] == "amazonlinux" && ENV['KITCHEN_ARCH'] == "x86_64" %> - # There is no x86_64 distribution of Chef 14 for Amazon Linux 2022. Use the CentOS package instead - download_url: https://packages.chef.io/files/stable/chef/14.15.6/el/7/chef-14.15.6-1.el7.x86_64.rpm - product_version: 14.15.6 - <% else %> - product_version: <%= ENV['CHEF_VERSION'] ||= '14.12.9' %> - <% end %> - install_strategy: always - # the following settings make it possible to do a reboot during setup - # (necessary for FIPS tests which reboot to enable FIPS mode) - max_retries: 3 - wait_for_retry: 90 - client_rb: - client_fork: false - -driver: - name: ec2 - <% if ENV['KITCHEN_EC2_SSH_KEY_ID'] %> - aws_ssh_key_id: <%= ENV['KITCHEN_EC2_SSH_KEY_ID'] %> - <% end %> - <% if ENV['KITCHEN_EC2_SG_IDS'] %> - security_group_ids: <%= [ENV['KITCHEN_EC2_SG_IDS']] %> - <% else %> - security_group_ids: [ "sg-7fedd80a","sg-46506837" ] - <% end %> - # Fix an edge case where IMDSv2 doesn't work for this specific ubuntu AMI - # Using this AMI with any other (e.g : KITCHEN_OSVERS: ubuntu-16-04-4.4,ubuntu-18-04) will use IMDSv2 and fail. - <% if ENV['KITCHEN_OSVERS'] != "ubuntu-16-04-4.4" %> - metadata_options: - http_tokens: required - http_put_response_hop_limit: 1 - instance_metadata_tags: enabled - <% end %> - region: <%= ENV['KITCHEN_EC2_REGION'] ||= "us-east-1" %> - instance_type: <%= ENV['KITCHEN_EC2_INSTANCE_TYPE'] ||= 't3.xlarge' %> - associate_public_ip: false - subnet_id: <%= ENV['KITCHEN_EC2_SUBNET'] ||= 'subnet-b89e00e2' %> - iam_profile_name: <%= ENV['KITCHEN_EC2_IAM_PROFILE_NAME'] ||= nil %> - <% if ENV['KITCHEN_EC2_SPOT_PRICE'] %> - spot_price: <%= ENV['KITCHEN_EC2_SPOT_PRICE'] %> - <% end %> - block_duration_minutes: <%= ENV['KITCHEN_EC2_SPOT_DURATION'] ||= '60' %> - tags: - Name: ci-datadog-agent-kitchen - Team: agent-devx-loops - PipelineId: <%= ENV['DD_PIPELINE_ID'] %> - CreatedBy: datadog-agent-kitchen-tests - Creator: <%= ENV['KITCHEN_EC2_TAG_CREATOR'] || "datadog-agent-kitchen-user" %> - -platforms: -# Loop through two lists and output a total matrix of all possible platform + chef versions, -# for both drivers - - -<% - # TEST_PLATFORMS syntax is `short_name1,ami|...` - ec2_test_platforms = ENV['TEST_PLATFORMS'].split('|').map { |p| p.split(',') } - cws_supported_platforms = (ENV['KITCHEN_CWS_SUPPORTED_OSVERS'] || "").split(',') - - windows_platforms = [] - sles15_platforms = [] - - idx = 0 - ec2_test_platforms.each do |platform| - idx += 1 - - host = "ec2" - platform_name = platform[0] + "-#{host}-#{ENV['KITCHEN_ARCH']}" - - windows = platform_name.include?("win") - sles15 = platform_name.include?("sles-15") - al2022 = platform_name.include?("amazonlinux2022") - al2023 = platform_name.include?("amazonlinux2023") - fedora = platform_name.include?("fedora") - rocky = platform_name.include?("rocky") - - if windows - windows_platforms << platform_name - else - if sles15 - sles15_platforms << platform_name - end - end - - # Check if we should use allow RSA key usage via user_data - allow_rsa_key_platforms = ["ubuntu-22-04"] - allow_rsa_key = allow_rsa_key_platforms.any? { |p| platform_name.include?(p) } - - vm_username = ENV['VM_USERNAME'] ? ENV['VM_USERNAME'] : "datadog" - vm_password = ENV['SERVER_PASSWORD'] - -%> - -- name: <%= platform_name %> - attributes: - color_idx: <%= idx %> - dd-agent-rspec: - enable_cws: <%= ENV['KITCHEN_CWS'] == "true" && cws_supported_platforms.include?(platform[0]) %> - <% if ENV["KITCHEN_CWS_PLATFORM"] %> - cws_platform: <%= ENV["KITCHEN_CWS_PLATFORM"] %> - <% end %> - <% if ENV["DOCKER_REGISTRY_LOGIN"] && ENV["DOCKER_REGISTRY_PASSWORD"] %> - docker: - registry: <%= ENV["DOCKER_REGISTRY_URL"] %> - username: <%= ENV["DOCKER_REGISTRY_LOGIN"] %> - password: <%%= ENV["DOCKER_REGISTRY_PASSWORD"] %> - <% end %> - <% if ENV['KITCHEN_CI_MOUNT_PATH'] && ENV['KITCHEN_CI_ROOT_PATH'] %> - provisioner: - command_prefix: TMPDIR=<%= ENV['KITCHEN_CI_ROOT_PATH'] %> - <% end %> - driver: - <% if windows %> - connection_timeout: 20 - connection_retries: 40 - retryable_tries: 600 - connection_retry_sleep: 20 - max_wait_until_ready: 1200 - <% end %> - image_id: <%= platform[1] %> - block_device_mappings: - <% if ENV['KITCHEN_ARCH'] == "arm64" %> - - device_name: <%= ENV['KITCHEN_EC2_DEVICE_NAME'] || "/dev/sda1" %> - <% else %> - - device_name: <%= ENV['KITCHEN_EC2_DEVICE_NAME'] || "/dev/xvda" %> - <% end %> - ebs: - volume_type: gp2 - volume_size: 100 - delete_on_termination: true - <% if allow_rsa_key || al2022 || al2023 || fedora %> - user_data: | - #!/bin/sh - <% end %> - <% if allow_rsa_key %> - echo PubkeyAcceptedKeyTypes=+ssh-rsa >> /etc/ssh/sshd_config - service ssh reload - <% end %> - <% if al2022 || al2023 || fedora %> - sudo dnf install -y libxcrypt-compat - <% end %> - <% if (ENV['KITCHEN_CI_MOUNT_PATH'] && ENV['KITCHEN_CI_ROOT_PATH']) || al2022 || al2023 || fedora %> - lifecycle: - post_create: - <% end %> - <% if ENV['KITCHEN_CI_MOUNT_PATH'] && ENV['KITCHEN_CI_ROOT_PATH'] %> - - remote: | - sudo mkdir -p <%= ENV['KITCHEN_CI_MOUNT_PATH'] %>; - sudo chmod a+rwx <%= ENV['KITCHEN_CI_MOUNT_PATH'] %>; - sudo ln -s <%= ENV['KITCHEN_CI_MOUNT_PATH'] %> <%= ENV['KITCHEN_CI_ROOT_PATH'] %>; - <% end %> - <% if al2022 || al2023 || fedora %> - # Add a hook after creating the host, to make sure we wait until the user_data - # script has been run. - # Snippet taken from the kitchen docs: https://kitchen.ci/docs/reference/lifecycle-hooks/ - - local: echo 'Awaiting cloud-init completion' - - remote: | - declare i=0; - declare wait=5; - declare timeout=300; - while true; do - [ -f /var/lib/cloud/instance/boot-finished ] && break; - if [ ${i} -ge ${timeout} ]; then - echo "Timed out after ${i}s waiting for cloud-init to complete"; - exit 1; - fi; - echo "Waited ${i}/${timeout}s for cloud-init to complete, retrying in ${wait} seconds" - sleep ${wait}; - let i+=${wait}; - done; - <% end %> - verifier: - downloads: - "/tmp/junit.tar.gz": junit-<%= platform_name %>.tar.gz - "/tmp/testjson.tar.gz": testjson/<%= platform_name %>/testjson.tar.gz - "/tmp/kitchen/rspec.xml": kitchen-rspec-<%= platform_name %>.xml - - transport: - <% if windows %> - name: winrm - elevated: true - username: administrator - - <% else %> - connection_retries: 30 - connection_retry_sleep: 2 - max_wait_until_ready: 30 - <% end %> - <% if sles15 || al2022 || al2023 %> - # The AWS EC2 driver doesn't recognize Amazon Linux 2022 yet, - # therefore it doesn't know that it needs to use ec2-user. - username: ec2-user - <% end %> - <% if rocky %> - username: rocky - <% end %> - <% if ENV['KITCHEN_EC2_SSH_KEY_PATH'] %> - ssh_key: <%= ENV['KITCHEN_EC2_SSH_KEY_PATH'] %> - <% end %> - -<% end %> diff --git a/test/kitchen/drivers/hyperv-driver.yml b/test/kitchen/drivers/hyperv-driver.yml deleted file mode 100644 index 3626cf008479f..0000000000000 --- a/test/kitchen/drivers/hyperv-driver.yml +++ /dev/null @@ -1,89 +0,0 @@ -provisioner: - name: chef_solo - product_name: chef - product_version: 13.9.4 - install_strategy: always - # the following settings make it possible to do a reboot during setup - # (necessary for FIPS tests which reboot to enable FIPS mode) - max_retries: 3 - wait_for_retry: 90 - client_rb: - client_fork: false - -driver: - name: hyperv - vm_switch: <%= ENV['KITCHEN_HYPERV_SWITCH'] %> - dynamic_memory: true - <% if ENV['KITCHEN_HYPERV_MEM_MIN'] %> - dynamic_memory_min_bytes: <%= ENV['KITCHEN_HYPERV_MEM_MIN'] %> - memory_startup_bytes: <%= ENV['KITCHEN_HYPERV_MEM_MIN'] %> - <% else %> - dynamic_memory_min_bytes: 2GB - memory_startup_bytes: 2GB - <% end %> - <% if ENV['KITCHEN_HYPERV_MEM_MAX'] %> - dynamic_memory_max_bytes: <%= ENV['KITCHEN_HYPERV_MEM_MAX'] %> - <% else %> - dynamic_memory_max_bytes: 8GB - <% end %> - <% if ENV['KITCHEN_HYPERV_PROC_COUNT'] %> - processor_count: <%= ENV['KITCHEN_HYPERV_PROC_COUNT'] %> - <% end %> - -platforms: -# Loop through two lists and output a total matrix of all possible platform + chef versions, -# for both drivers - - -<% - # TEST_PLATFORMS syntax is `short_name1,parent vhd folder,parent_vhd_name|...` - hyperv_test_platforms = ENV['TEST_PLATFORMS'].split('|').map { |p| p.split(',') } - - windows_platforms = [] - sles15_platforms = [] - - idx = 0 - hyperv_test_platforms.each do |platform| - idx += 1 - - host = "hyperv" - platform_name = platform[0] + "-#{host}" - - windows = platform_name.include?("win") - sles15 = platform_name.include?("sles-15") - - if windows - windows_platforms << platform_name - end - if sles15 - sles15_platforms << platform_name - end - - vm_username = ENV['VM_USERNAME'] ? ENV['VM_USERNAME'] : "datadog" - vm_password = ENV['SERVER_PASSWORD'] - vm_hyperv_switch = ENV['KITCHEN_HYPERV_SWITCH'] ? ENV['KITCHEN_HYPERV_SWITCH'] : "public_eth" - -%> - -- name: <%= platform_name %> - driver: - name: hyperv - parent_vhd_folder: <%= platform[1] %> - parent_vhd_name: <%= platform[2] %> - vm_switch: <%= vm_hyperv_switch %> - driver_config: - username: <%= vm_username %> - password: <%= vm_password %> - - transport: - <% if windows %> - name: winrm - username: <%= vm_username %> - password: <%= vm_password %> - <% else %> - connection_retries: 30 - connection_retry_sleep: 2 - ssh_key: <%= ENV['KITCHEN_SSH_KEY_PATH'] %> - <% end %> - -<% end %> \ No newline at end of file diff --git a/test/kitchen/drivers/vagrant-driver.yml b/test/kitchen/drivers/vagrant-driver.yml deleted file mode 100644 index 846174d69e1d9..0000000000000 --- a/test/kitchen/drivers/vagrant-driver.yml +++ /dev/null @@ -1,54 +0,0 @@ ---- -driver: - name: vagrant - provider: <%= ENV['KITCHEN_VAGRANT_PROVIDER'] %> - - <% if ENV['KITCHEN_VAGRANT_PROVIDER'] != "hyperv" && ENV['KITCHEN_VAGRANT_SYNCED_FOLDER'] %> - # Hyper-V doesn't support synced folders - synced_folders: - - ["<%= ENV['KITCHEN_VAGRANT_SYNCED_FOLDER'].tr('\\', '/') %>", "/datadog-agent"] - <% end %> - -provisioner: - name: chef_solo - product_name: chef - install_strategy: always - # Use the same product_version as the CI kitchen test in Azure. - product_version: 14.12.9 - # the following settings make it possible to do a reboot during setup - # (necessary for FIPS tests which reboot to enable FIPS mode) - max_retries: 3 - wait_for_retry: 90 - client_rb: - client_fork: false - -platforms: -<% - ENV['TEST_PLATFORMS'] ||= "centos7,roboxes/centos7|centos8,roboxes/centos8" - cws_supported_platforms = (ENV['KITCHEN_CWS_SUPPORTED_OSVERS'] || "").split(',') - test_platforms = ENV['TEST_PLATFORMS'].split('|').map { |p| p.split(',') } - test_platforms.each do |platform| -%> - - name: <%= platform[0] %> - attributes: - dd-agent-rspec: - enable_cws: <%= ENV['KITCHEN_CWS'] && cws_supported_platforms.include?(platform[0]) %> - driver: - box: <%= platform[1] %> - # Always use linked_clone when possible, it's so much faster - linked_clone: true - <% if ENV['KITCHEN_VAGRANT_PROVIDER'] == "virtualbox" %> - gui: true - <% end %> - <% if platform[1].include?('opensuse') %> - customize: - disk_bus: sata - <% end %> -# uncomment below to locally inspect junit tarballs used for CI visibility -# verifier: -# downloads: -# "/tmp/junit.tar.gz": junit-<%= platform[0] %>.tar.gz -# "/tmp/testjson.tar.gz": testjson/<%= platform[0] %>/testjson.tar.gz -<% - end -%> diff --git a/test/kitchen/platforms.json b/test/kitchen/platforms.json deleted file mode 100644 index 6f3d87834c60c..0000000000000 --- a/test/kitchen/platforms.json +++ /dev/null @@ -1,175 +0,0 @@ -{ - "centos": { - "azure": { - "x86_64": { - "centos-76": "urn,OpenLogic:CentOS:7.6:7.6.201909120", - "centos-77": "urn,OpenLogic:CentOS:7.7:7.7.201912090", - "rhel-81": "urn,RedHat:RHEL:8.1:8.1.2021040910", - "rhel-85": "urn,RedHat:RHEL:8_5:8.5.2021121501", - "rhel-91": "urn,RedHat:RHEL:9_1:9.1.2022112113" - } - }, - "ec2": { - "x86_64": { - "centos-79": "ami-036de472bb001ae9c", - "rhel-86": "ami-031eff1ae75bb87e4", - "rocky-92": "ami-08f362c39d03a4eb5" - }, - "arm64": { - "centos-79": "ami-0cb7a00afccf30559", - "rhel-86": "ami-0238411fb452f8275" - } - }, - "vagrant": { - "x86_64": { - "centos-76": "bento/centos-7.6", - "centos7": "roboxes/centos7", - "centos8": "roboxes/centos8" - } - } - }, - "debian": { - "azure": { - "x86_64": { - "debian-8": "urn,credativ:Debian:8:8.0.201901221", - "debian-9": "urn,credativ:Debian:9:9.20200722.0", - "debian-10": "urn,Debian:debian-10:10:0.20230802.1460", - "debian-11": "urn,Debian:debian-11:11:0.20230501.1367", - "debian-12": "urn,Debian:debian-12:12:0.20230802.1460" - } - }, - "ec2": { - "x86_64": { - "debian-10": "ami-067a196d70cb53732", - "debian-11": "ami-0607e701db389efe7", - "debian-12": "ami-07edaec601cf2b6d3" - }, - "arm64": { - "debian-10": "ami-0b6ee4b8f4aa91fb4", - "debian-11": "ami-00988b9ead6afb0b1", - "debian-12": "ami-02aab8d5301cb8d68" - } - } - }, - "fedora": { - "ec2": { - "x86_64": { - "fedora-36": "ami-05e7ccec1e0408397", - "fedora-37": "ami-032e9a5778bde5a1a" - }, - "arm64": { - "fedora-36": "ami-0487fbde1f898f0f1", - "fedora-37": "ami-0e9221491fc51fca6" - } - } - }, - "suse": { - "azure": { - "x86_64": { - "sles-12": "urn,SUSE:sles-12-sp5-byos:gen1:2023.03.21", - "sles-15": "urn,SUSE:sles-15-sp2-byos:gen1:2022.11.09", - "opensuse-15-3": "urn,SUSE:opensuse-leap-15-3:gen1:2022.01.28" - } - }, - "ec2": { - "arm64": { - "sles-15": "ami-02f7663f03ca92749" - } - } - }, - "ubuntu": { - "azure": { - "x86_64": { - "ubuntu-14-04": "urn,Canonical:UbuntuServer:14.04.5-LTS:14.04.201905140", - "ubuntu-16-04": "urn,Canonical:UbuntuServer:16.04.0-LTS:16.04.202106110", - "ubuntu-18-04-0": "urn,Canonical:UbuntuServer:18.04-LTS:18.04.201809110", - "ubuntu-18-04": "urn,Canonical:UbuntuServer:18.04-LTS:18.04.201906040", - "ubuntu-18-04-3": "urn,Canonical:UbuntuServer:18.04-LTS:18.04.201912180", - "ubuntu-20-04": "urn,Canonical:0001-com-ubuntu-server-focal:20_04-lts:20.04.202004230", - "ubuntu-20-04-2": "urn,Canonical:0001-com-ubuntu-server-focal:20_04-lts:20.04.202107200", - "ubuntu-22-04": "urn,Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202205060" - } - }, - "ec2": { - "x86_64": { - "ubuntu-16-04": "ami-089043ae24872fe78", - "ubuntu-18-04": "ami-015715c1584e7243c", - "ubuntu-20-04": "ami-0ffb8e1df897204c4", - "ubuntu-22-04": "ami-02e99c6973f5a184a", - "ubuntu-23-04": "ami-09c5d86a379ab69a5", - "ubuntu-23-10": "ami-0949b45ef274e55a1" - }, - "arm64": { - "ubuntu-18-04": "ami-002c0df0f55a14f82", - "ubuntu-20-04": "ami-0ccf50ab09c6df2d4", - "ubuntu-20-04-2": "ami-023f1e40b096c3ebc", - "ubuntu-21-04": "ami-044f0ceee8e885e87", - "ubuntu-22-04": "ami-0f1d4680f8b775120", - "ubuntu-23-04": "ami-05fab5da2d7fe0b0b", - "ubuntu-23-10": "ami-0dea732dd5f1da0a8" - } - }, - "vagrant": { - "x86_64": { - "ubuntu-16-04": "bento/ubuntu-16.04" - }, - "arm64": { - "ubuntu-20-04": "bytesguy/ubuntu-server-20.04-arm64", - "ubuntu-22-04": "brycekahle/ubuntu-22.04-arm64" - } - } - }, - "oracle": { - "azure": { - "x86_64": { - "oracle-7-9": "urn,Oracle:Oracle-Linux:ol79:7.9.9" - } - } - }, - "amazonlinux": { - "ec2": { - "x86_64": { - "amazonlinux2-4-14": "ami-038b3df3312ddf25d", - "amazonlinux2-5-10": "ami-06a0cd9728546d178", - "amazonlinux2022-5-15": "ami-0f0f00c2d082c52ae", - "amazonlinux2023": "ami-064ed2d3fc01d3ec1" - }, - "arm64": { - "amazonlinux2-4-14": "ami-090230ed0c6b13c74", - "amazonlinux2-5-10": "ami-09e51988f56677f44", - "amazonlinux2022-5-15": "ami-0acc51c3357f26240", - "amazonlinux2023": "ami-0a515c154e76934f7" - } - } - }, - "windows": { - "azure": { - "x86_64": { - "win2016": "urn,MicrosoftWindowsServer:WindowsServer:2016-Datacenter-Server-Core:latest", - "win2019": "urn,MicrosoftWindowsServer:WindowsServer:2019-Datacenter-Core:latest", - "win2019cn": "urn,MicrosoftWindowsServer:WindowsServer:2019-Datacenter-zhcn:latest", - "win2022": "urn,MicrosoftWindowsServer:WindowsServer:2022-datacenter-core:latest" - } - }, - "ec2": { - "x86_64": { - "win2016": "ami-03bee25bb430166e4", - "comment-win2016": "# Windows_Server-2016-English-Core-Containers-2022.12.14", - "win2019": "ami-01cc656499debb56a", - "comment-win2019": "Windows_Server-2019-English-Core-ContainersLatest-2023.01.19", - "win2022": "ami-0176b2659d40f0696", - "comment-win2022": "Windows_Server-2022-English-Core-ContainersLatest-2023.01.19" - } - }, - "vagrant": { - "x86_64": { - "win2022": "cdaf/WindowsServer2022", - "comment-win2022": "Windows Server 2022 Standard Desktop Experience Evaluation", - "win2022-dc": "cdaf/WindowsServerDC", - "comment-win2022-dc": "Windows Server 2022 Standard Evaluation + Domain Controller", - "win2019-core": "cdaf/WindowsServerCore", - "comment-win2019-core": "Windows Server 2019 Standard Core Evaluation" - } - } - } -} diff --git a/test/kitchen/site-cookbooks/dd-agent-5/README.md b/test/kitchen/site-cookbooks/dd-agent-5/README.md deleted file mode 100644 index 21c8535d9b566..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-5/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# dd-agent-install cookbook - - -This installs the Datadog Agent. -The Windows installation on the Chef Cookbook is broken for Agent 6. -This will be a temporary solution. diff --git a/test/kitchen/site-cookbooks/dd-agent-5/attributes/default.rb b/test/kitchen/site-cookbooks/dd-agent-5/attributes/default.rb deleted file mode 100644 index aefa5307d24a7..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-5/attributes/default.rb +++ /dev/null @@ -1,26 +0,0 @@ -default['dd-agent-5']['api_key'] = nil -default['dd-agent-5']['url'] = nil - -if node['platform_family'] == 'windows' - default['dd-agent-5']['agent_package_retries'] = nil - default['dd-agent-5']['agent_package_retry_delay'] = nil - default['dd-agent-5']['windows_agent_checksum'] = nil - default['dd-agent-5']['windows_version'] = nil - default['dd-agent-5']['windows_agent_filename'] = "ddagent-cli-latest" - default['dd-agent-5']['windows_agent_url'] = 'https://ddagent-windows-stable.s3.amazonaws.com/' - default['dd-agent-5']['agent_install_options'] = nil - default['dd-agent-5']['config_dir'] = "#{ENV['ProgramData']}/Datadog" - default['dd-agent-5']['agent_name'] = 'DatadogAgent' - default['dd-agent-5']['agent6_config_dir'] = "#{ENV['ProgramData']}/Datadog" -else - default['dd-agent-5']['config_dir'] = '/etc/dd-agent' - default['dd-agent-5']['working_dir'] = '/tmp/install-script/' - default['dd-agent-5']['install_script_url'] = 'https://raw.githubusercontent.com/DataDog/dd-agent/master/packaging/datadog-agent/source/install_agent.sh' -end - -# Enable the agent to start at boot -default['dd-agent-5']['agent_enable'] = true -default['dd-agent-5']['agent_start'] = true -default['dd-agent-5']['enable_trace_agent'] = true -default['dd-agent-5']['enable_process_agent'] = true - diff --git a/test/kitchen/site-cookbooks/dd-agent-5/metadata.rb b/test/kitchen/site-cookbooks/dd-agent-5/metadata.rb deleted file mode 100644 index 0bb3e5e3876bd..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-5/metadata.rb +++ /dev/null @@ -1,9 +0,0 @@ -name "dd-agent-5" -maintainer "Datadog" -description "Installs the Datadog Agent5" -long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) -version "0.2.0" - -depends 'apt', '>= 2.1.0' -depends 'datadog' -depends 'yum', '< 7.0.0' diff --git a/test/kitchen/site-cookbooks/dd-agent-5/recipes/_install_linux.rb b/test/kitchen/site-cookbooks/dd-agent-5/recipes/_install_linux.rb deleted file mode 100644 index 2c06921195c42..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-5/recipes/_install_linux.rb +++ /dev/null @@ -1,68 +0,0 @@ -# -# Cookbook Name:: dd-agent-install-script -# Recipe:: default -# -# Copyright (C) 2013-present Datadog -# -# All rights reserved - Do Not Redistribute -# - -wrk_dir = node['dd-agent-5']['working_dir'] -is_windows = node['platform_family'] == 'windows' - -directory wrk_dir do - recursive true -end - -remote_file "#{wrk_dir}/install-script" do - source node['dd-agent-5']['install_script_url'] -end - -# apt-get update fails a LOT on our droplets, so ignore these failures -# TODO: assess whether we should do the same thing in the install script itself -execute 'ignore "apt-get update" failure' do - cwd wrk_dir - command "sed -i 's/apt-get update$/apt-get update || true/' install-script" -end - - -execute 'run agent install script' do - cwd wrk_dir - command <<-EOF - sed -i '1aDD_API_KEY=#{node['dd-agent-5']['api_key']}' install-script - bash install-script - sleep 10 - EOF - live_stream true -end - -agent_config_file = ::File.join(node['dd-agent-5']['config_dir'], 'datadog.conf') -template agent_config_file do - def template_vars - dd_url = 'https://app.datadoghq.com' - - api_keys = [node['dd-agent-5']['api_key']] - dd_urls = [dd_url] - { - :api_keys => api_keys, - :dd_urls => dd_urls - } - end - if is_windows - owner 'Administrators' - rights :full_control, 'Administrators' - inherits false - else - owner 'dd-agent' - group 'root' - mode '640' - end - variables( - if respond_to?(:lazy) - lazy { template_vars } - else - template_vars - end - ) - sensitive true if Chef::Resource.instance_methods(false).include?(:sensitive) -end \ No newline at end of file diff --git a/test/kitchen/site-cookbooks/dd-agent-5/recipes/_install_windows_base.rb b/test/kitchen/site-cookbooks/dd-agent-5/recipes/_install_windows_base.rb deleted file mode 100644 index 848780762329a..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-5/recipes/_install_windows_base.rb +++ /dev/null @@ -1,73 +0,0 @@ -# -# Cookbook Name:: dd-agent-5 -# Recipe:: _install_windows_base -# -# Copyright (C) 2019-present Datadog -# -# All rights reserved - Do Not Redistribute -# - -package_retries = node['dd-agent-5']['agent_package_retries'] -package_retry_delay = node['dd-agent-5']['agent_package_retry_delay'] -dd_agent_version = node['dd-agent-5']['windows_version'] -dd_agent_filename = node['dd-agent-5']['windows_agent_filename'] - -dd_agent_installer_basename = dd_agent_filename - -temp_file_basename = ::File.join(Chef::Config[:file_cache_path], 'ddagent-cli').gsub(File::SEPARATOR, File::ALT_SEPARATOR || File::SEPARATOR) - -dd_agent_installer = "#{dd_agent_installer_basename}.msi" -temp_file = "#{temp_file_basename}.msi" -installer_type = :msi -# Agent >= 5.12.0 installs per-machine by default, but specifying ALLUSERS=1 shouldn't affect the install -agent_install_options = node['dd-agent-5']['agent_install_options'] -install_options = "/norestart ALLUSERS=1 #{agent_install_options}" -use_windows_package_resource = true - -agent_config_file = ::File.join(node['dd-agent-5']['config_dir'], 'datadog.conf') - -# Set the Agent service enable or disable -agent_enable = node['dd-agent-5']['agent_enable'] ? :enable : :disable -# Set the correct Agent startup action -agent_start = node['dd-agent-5']['agent_start'] ? :start : :stop - -package 'Datadog Agent removal' do - package_name 'Datadog Agent' - action :nothing -end - -source_url = node['dd-agent-5']['windows_agent_url'] -if !source_url.end_with? '/' - source_url += '/' -end -source_url += dd_agent_installer - - # Download the installer to a temp location -remote_file temp_file do - source source_url - checksum node['dd-agent-5']['windows_agent_checksum'] if node['dd-agent-5']['windows_agent_checksum'] - retries package_retries unless package_retries.nil? - retry_delay package_retry_delay unless package_retry_delay.nil? - # As of v1.37, the windows cookbook doesn't upgrade the package if a newer version is downloaded - # As a workaround uninstall the package first if a new MSI is downloaded - notifies :remove, 'package[Datadog Agent removal]', :immediately -end - -execute "install-agent" do - command "start /wait msiexec /log install.log /q /i #{temp_file} #{install_options}" - status_out = `sc interrogate datadogagent 2>&1` - puts status_out - action :run -end - -service 'datadog-agent' do - service_name node['dd-agent-5']['agent_name'] - action [agent_enable, agent_start] - supports :restart => true, :start => true, :stop => true - subscribes :restart, "template[#{agent_config_file}]", :delayed unless node['dd-agent-5']['agent_start'] == false - restart_command "powershell -Command \"restart-service -Force -Name datadogagent\"" - # HACK: the restart can fail when we hit systemd's restart limits (by default, 5 starts every 10 seconds) - # To workaround this, retry once after 5 seconds, and a second time after 10 seconds - retries 2 - retry_delay 5 - end diff --git a/test/kitchen/site-cookbooks/dd-agent-5/recipes/default.rb b/test/kitchen/site-cookbooks/dd-agent-5/recipes/default.rb deleted file mode 100644 index dd46c2774cbcf..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-5/recipes/default.rb +++ /dev/null @@ -1,15 +0,0 @@ -# -# Cookbook Name:: dd-agent-install -# Recipe:: default -# -# Copyright (C) 2013-present Datadog -# -# All rights reserved - Do Not Redistribute -# -require 'uri' - -if node['platform_family'] == 'windows' - include_recipe 'dd-agent-5::_install_windows_base' -else - include_recipe 'dd-agent-5::_install_linux' -end diff --git a/test/kitchen/site-cookbooks/dd-agent-5/templates/datadog.conf.erb b/test/kitchen/site-cookbooks/dd-agent-5/templates/datadog.conf.erb deleted file mode 100644 index 21104977bbaa3..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-5/templates/datadog.conf.erb +++ /dev/null @@ -1,3 +0,0 @@ -[Main] -dd_url: <%= @dd_urls.join(',') %> -api_key: <%= @api_keys.join(',') %> diff --git a/test/kitchen/site-cookbooks/dd-agent-disable-system-repos/.gitignore b/test/kitchen/site-cookbooks/dd-agent-disable-system-repos/.gitignore deleted file mode 100644 index 45b891c93cfc3..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-disable-system-repos/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -.vagrant -Berksfile.lock -*~ -*# -.#* -\#*# -.*.sw[a-z] -*.un~ -/cookbooks - -# Bundler -Gemfile.lock -bin/* -.bundle/* - diff --git a/test/kitchen/site-cookbooks/dd-agent-disable-system-repos/Berksfile b/test/kitchen/site-cookbooks/dd-agent-disable-system-repos/Berksfile deleted file mode 100644 index c4bb297b7275b..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-disable-system-repos/Berksfile +++ /dev/null @@ -1,3 +0,0 @@ -site :opscode - -metadata diff --git a/test/kitchen/site-cookbooks/dd-agent-disable-system-repos/Gemfile b/test/kitchen/site-cookbooks/dd-agent-disable-system-repos/Gemfile deleted file mode 100644 index 01b5db30b2f16..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-disable-system-repos/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem 'bundler', '~> 2.2.17' -gem 'berkshelf' diff --git a/test/kitchen/site-cookbooks/dd-agent-disable-system-repos/README.md b/test/kitchen/site-cookbooks/dd-agent-disable-system-repos/README.md deleted file mode 100644 index 553e0565c0df3..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-disable-system-repos/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# dd-agent-disable-system-repos cookbook - -Cookbook that disables all system package repositories (if applicable) diff --git a/test/kitchen/site-cookbooks/dd-agent-disable-system-repos/chefignore b/test/kitchen/site-cookbooks/dd-agent-disable-system-repos/chefignore deleted file mode 100644 index a6de14221d876..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-disable-system-repos/chefignore +++ /dev/null @@ -1,96 +0,0 @@ -# Put files/directories that should be ignored in this file when uploading -# or sharing to the community site. -# Lines that start with '# ' are comments. - -# OS generated files # -###################### -.DS_Store -Icon? -nohup.out -ehthumbs.db -Thumbs.db - -# SASS # -######## -.sass-cache - -# EDITORS # -########### -\#* -.#* -*~ -*.sw[a-z] -*.bak -REVISION -TAGS* -tmtags -*_flymake.* -*_flymake -*.tmproj -.project -.settings -mkmf.log - -## COMPILED ## -############## -a.out -*.o -*.pyc -*.so -*.com -*.class -*.dll -*.exe -*/rdoc/ - -# Testing # -########### -.watchr -.rspec -spec/* -spec/fixtures/* -test/* -features/* -Guardfile -Procfile - -# SCM # -####### -.git -*/.git -.gitignore -.gitmodules -.gitconfig -.gitattributes -.svn -*/.bzr/* -*/.hg/* -*/.svn/* - -# Berkshelf # -############# -Berksfile -Berksfile.lock -cookbooks/* -tmp - -# Cookbooks # -############# -CONTRIBUTING -CHANGELOG* - -# Strainer # -############ -Colanderfile -Strainerfile -.colander -.strainer - -# Vagrant # -########### -.vagrant -Vagrantfile - -# Travis # -########## -.travis.yml diff --git a/test/kitchen/site-cookbooks/dd-agent-disable-system-repos/metadata.rb b/test/kitchen/site-cookbooks/dd-agent-disable-system-repos/metadata.rb deleted file mode 100644 index 2a0578c2e67e1..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-disable-system-repos/metadata.rb +++ /dev/null @@ -1,5 +0,0 @@ -name "dd-agent-disable-system-repos" -maintainer "Datadog" -description "Cookbook that disables all system package repositories (if applicable)" -long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) -version "0.0.1" diff --git a/test/kitchen/site-cookbooks/dd-agent-disable-system-repos/recipes/default.rb b/test/kitchen/site-cookbooks/dd-agent-disable-system-repos/recipes/default.rb deleted file mode 100644 index 17ed9c2fb9e6c..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-disable-system-repos/recipes/default.rb +++ /dev/null @@ -1,20 +0,0 @@ -# -# Cookbook Name:: dd-agent-disable-system-repos -# Recipe:: default -# -# Copyright (C) 2021-present Datadog -# -# All rights reserved - Do Not Redistribute -# - -if ['redhat', 'centos', 'fedora'].include?(node[:platform]) - execute 'disable all yum repositories' do - command 'yum-config-manager --disable "*"' - end -elsif ['suse', 'opensuseleap'].include?(node[:platform]) - execute 'disable all zypper repositories' do - # Zypper appears to be running when the VM starts, so we - # wait for up to 2 minutes for it to release its lock - command 'ZYPP_LOCK_TIMEOUT=120 zypper mr -da' - end -end diff --git a/test/kitchen/site-cookbooks/dd-agent-import-conf/.gitignore b/test/kitchen/site-cookbooks/dd-agent-import-conf/.gitignore deleted file mode 100644 index 45b891c93cfc3..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-import-conf/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -.vagrant -Berksfile.lock -*~ -*# -.#* -\#*# -.*.sw[a-z] -*.un~ -/cookbooks - -# Bundler -Gemfile.lock -bin/* -.bundle/* - diff --git a/test/kitchen/site-cookbooks/dd-agent-import-conf/Berksfile b/test/kitchen/site-cookbooks/dd-agent-import-conf/Berksfile deleted file mode 100644 index c4bb297b7275b..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-import-conf/Berksfile +++ /dev/null @@ -1,3 +0,0 @@ -site :opscode - -metadata diff --git a/test/kitchen/site-cookbooks/dd-agent-import-conf/Gemfile b/test/kitchen/site-cookbooks/dd-agent-import-conf/Gemfile deleted file mode 100644 index 01b5db30b2f16..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-import-conf/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem 'bundler', '~> 2.2.17' -gem 'berkshelf' diff --git a/test/kitchen/site-cookbooks/dd-agent-import-conf/README.md b/test/kitchen/site-cookbooks/dd-agent-import-conf/README.md deleted file mode 100644 index b12eb7c3a539b..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-import-conf/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# dd-agent-import-conf cookbook - -Only used while upgrading an Agent 5 to an Agent 6. -This way, we can have a generic cookbook to setup an Agent 6. diff --git a/test/kitchen/site-cookbooks/dd-agent-import-conf/attributes/default.rb b/test/kitchen/site-cookbooks/dd-agent-import-conf/attributes/default.rb deleted file mode 100644 index 163b2c7f0c35c..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-import-conf/attributes/default.rb +++ /dev/null @@ -1,13 +0,0 @@ -default['dd-agent-import-conf']['api_key'] = nil - -if node['platform_family'] == 'windows' - default['dd-agent-import-conf']['config_dir'] = "#{ENV['ProgramData']}/Datadog" - default['dd-agent-import-conf']['agent_name'] = 'DatadogAgent' - default['dd-agent-import-conf']['agent6_config_dir'] = "#{ENV['ProgramData']}/Datadog" -else - default['dd-agent-import-conf']['agent6_config_dir'] = '/etc/datadog-agent' - default['dd-agent-import-conf']['config_dir'] = '/etc/dd-agent' - default['dd-agent-import-conf']['agent_name'] = 'datadog-agent' -end - -default['dd-agent-import-conf']['agent_start'] = true diff --git a/test/kitchen/site-cookbooks/dd-agent-import-conf/chefignore b/test/kitchen/site-cookbooks/dd-agent-import-conf/chefignore deleted file mode 100644 index a6de14221d876..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-import-conf/chefignore +++ /dev/null @@ -1,96 +0,0 @@ -# Put files/directories that should be ignored in this file when uploading -# or sharing to the community site. -# Lines that start with '# ' are comments. - -# OS generated files # -###################### -.DS_Store -Icon? -nohup.out -ehthumbs.db -Thumbs.db - -# SASS # -######## -.sass-cache - -# EDITORS # -########### -\#* -.#* -*~ -*.sw[a-z] -*.bak -REVISION -TAGS* -tmtags -*_flymake.* -*_flymake -*.tmproj -.project -.settings -mkmf.log - -## COMPILED ## -############## -a.out -*.o -*.pyc -*.so -*.com -*.class -*.dll -*.exe -*/rdoc/ - -# Testing # -########### -.watchr -.rspec -spec/* -spec/fixtures/* -test/* -features/* -Guardfile -Procfile - -# SCM # -####### -.git -*/.git -.gitignore -.gitmodules -.gitconfig -.gitattributes -.svn -*/.bzr/* -*/.hg/* -*/.svn/* - -# Berkshelf # -############# -Berksfile -Berksfile.lock -cookbooks/* -tmp - -# Cookbooks # -############# -CONTRIBUTING -CHANGELOG* - -# Strainer # -############ -Colanderfile -Strainerfile -.colander -.strainer - -# Vagrant # -########### -.vagrant -Vagrantfile - -# Travis # -########## -.travis.yml diff --git a/test/kitchen/site-cookbooks/dd-agent-import-conf/metadata.rb b/test/kitchen/site-cookbooks/dd-agent-import-conf/metadata.rb deleted file mode 100644 index e7b17a74e19c1..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-import-conf/metadata.rb +++ /dev/null @@ -1,9 +0,0 @@ -name "dd-agent-import-conf" -maintainer "Datadog" -description "Import configuration from Agent 5 to Agent 6" -long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) -version "0.1.0" - -depends 'apt', '>= 2.1.0' -depends 'datadog' -depends 'yum', '< 7.0.0' diff --git a/test/kitchen/site-cookbooks/dd-agent-import-conf/recipes/_datadog-agent-6.rb b/test/kitchen/site-cookbooks/dd-agent-import-conf/recipes/_datadog-agent-6.rb deleted file mode 100644 index 21c43cba9548c..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-import-conf/recipes/_datadog-agent-6.rb +++ /dev/null @@ -1,75 +0,0 @@ -# -# Cookbook Name:: dd-agent-import-conf -# Recipe:: datadog-agent-6 -# -# Copyright 2011-present, Datadog -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -# Fail here at converge time if no api_key is set -ruby_block 'datadog-api-key-unset' do - block do - raise "Set ['datadog']['api_key'] as an attribute or on the node's run_state to configure this node's Datadog Agent." - end - only_if { node['dd-agent-import-conf']['api_key'].nil? } -end - -is_windows = node['platform_family'] == 'windows' - -# -# Configures a basic agent -# To add integration-specific configurations, add 'datadog::config_name' to -# the node's run_list and set the relevant attributes -# -agent6_config_file = ::File.join(node['dd-agent-import-conf']['agent6_config_dir'], 'datadog.yaml') - -# Common configuration -service_provider = nil -if (((node['platform'] == 'amazon' || node['platform_family'] == 'amazon') && node['platform_version'].to_i != 2) || - (node['platform'] == 'ubuntu' && node['platform_version'].to_f < 15.04) || # chef <11.14 doesn't use the correct service provider - (node['platform'] != 'amazon' && node['platform_family'] == 'rhel' && node['platform_version'].to_i < 7)) - # use Upstart provider explicitly for Agent 6 on Amazon Linux < 2.0 and RHEL < 7 - service_provider = Chef::Provider::Service::Upstart -end - -service 'datadog-agent-6' do - service_name node['dd-agent-import-conf']['agent_name'] - action :nothing - provider service_provider unless service_provider.nil? - if is_windows - supports :restart => true, :start => true, :stop => true - restart_command "powershell restart-service #{node['dd-agent-import-conf']['agent_name']} -Force" - stop_command "powershell stop-service #{node['dd-agent-import-conf']['agent_name']} -Force" - else - supports :restart => true, :status => true, :start => true, :stop => true - end - subscribes :restart, "template[#{agent6_config_file}]", :delayed unless node['dd-agent-import-conf']['agent_start'] == false - # HACK: the restart can fail when we hit systemd's restart limits (by default, 5 starts every 10 seconds) - # To workaround this, retry once after 5 seconds, and a second time after 10 seconds - retries 2 - retry_delay 5 -end - -# TODO: Add this when we update our datadog Berksfile dependency to 2.20 or 3.0 -# only load system-probe recipe if an agent6 installation comes with it -# ruby_block 'include system-probe' do -# block do -# if ::File.exist?('/opt/datadog-agent/embedded/bin/system-probe') && !is_windows -# run_context.include_recipe 'datadog::system-probe' -# end -# end -# end - -# Install integration packages -#include_recipe 'datadog::integrations' unless is_windows diff --git a/test/kitchen/site-cookbooks/dd-agent-import-conf/recipes/default.rb b/test/kitchen/site-cookbooks/dd-agent-import-conf/recipes/default.rb deleted file mode 100644 index a34b67cbb46c1..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-import-conf/recipes/default.rb +++ /dev/null @@ -1,26 +0,0 @@ -# Cookbook Name:: dd-agent-imprt-conf -# Recipe:: default -# -# Copyright (C) 2013-present Datadog -# -# All rights reserved - Do Not Redistribute -# - -# We only do the import, meaning that the Agent 5 and -# the Agent 6 has already been setup. -# We just have to run the command. - - -if node['platform_family'] != 'windows' - include_recipe 'dd-agent-import-conf::_datadog-agent-6' - - execute "import-command" do - command "sudo -u dd-agent -- /opt/datadog-agent/bin/agent/agent import /etc/dd-agent/ /etc/datadog-agent/" - action :run - notifies :restart, 'service[datadog-agent-6]' - end -end - -if node['platform_family'] == 'windows' - # TODO(remy): do we want to test the import on Windows? -end diff --git a/test/kitchen/site-cookbooks/dd-agent-install/.gitignore b/test/kitchen/site-cookbooks/dd-agent-install/.gitignore deleted file mode 100644 index 45b891c93cfc3..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -.vagrant -Berksfile.lock -*~ -*# -.#* -\#*# -.*.sw[a-z] -*.un~ -/cookbooks - -# Bundler -Gemfile.lock -bin/* -.bundle/* - diff --git a/test/kitchen/site-cookbooks/dd-agent-install/Berksfile b/test/kitchen/site-cookbooks/dd-agent-install/Berksfile deleted file mode 100644 index c4bb297b7275b..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/Berksfile +++ /dev/null @@ -1,3 +0,0 @@ -site :opscode - -metadata diff --git a/test/kitchen/site-cookbooks/dd-agent-install/Gemfile b/test/kitchen/site-cookbooks/dd-agent-install/Gemfile deleted file mode 100644 index 01b5db30b2f16..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem 'bundler', '~> 2.2.17' -gem 'berkshelf' diff --git a/test/kitchen/site-cookbooks/dd-agent-install/README.md b/test/kitchen/site-cookbooks/dd-agent-install/README.md deleted file mode 100644 index 21c8535d9b566..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# dd-agent-install cookbook - - -This installs the Datadog Agent. -The Windows installation on the Chef Cookbook is broken for Agent 6. -This will be a temporary solution. diff --git a/test/kitchen/site-cookbooks/dd-agent-install/attributes/default.rb b/test/kitchen/site-cookbooks/dd-agent-install/attributes/default.rb deleted file mode 100644 index 82463b244b5c5..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/attributes/default.rb +++ /dev/null @@ -1,83 +0,0 @@ -# -# Linux options (Linux uses the official datadog cookbook) -# - -default['datadog']['agent_start'] = true -default['datadog']['agent_enable'] = true -default['datadog']['agent_version'] = nil - -# All other options use the defaults set in the official cookbook, -# or the options set in the kitchen job (eg. aptrepo, yumrepo, etc.) - -# -# Windows options (Windows uses the custom dd-agent-install cookbook) -# - -# The dd-agent-install recipe is a copy of the official install recipe, -# the only difference being the command used to install the Agent. -# Here, we add a start /wait to the command, otherwise chef doesn't wait -# for the Agent to be installed before ending its run. -# This behavior could make kitchen tests fail, because we would start testing -# the Agent before it is ready. - -default['dd-agent-install']['api_key'] = nil -default['dd-agent-install']['agent_major_version'] = nil -default['dd-agent-install']['windows_version'] = nil # => install the latest available version -default['dd-agent-install']['windows_agent_checksum'] = nil -default['dd-agent-install']['windows_agent_url'] = 'https://ddagent-windows-stable.s3.amazonaws.com/' - -default['dd-agent-install']['agent_package_retries'] = nil -default['dd-agent-install']['agent_package_retry_delay'] = nil -default['dd-agent-install']['config_dir'] = "#{ENV['ProgramData']}/Datadog" -default['dd-agent-install']['agent_name'] = 'DatadogAgent' -default['dd-agent-install']['agent6_config_dir'] = "#{ENV['ProgramData']}/Datadog" - -# Enable the agent to start at boot -default['dd-agent-install']['agent_enable'] = true - -# Start agent or not -default['dd-agent-install']['agent_start'] = true -default['dd-agent-install']['enable_trace_agent'] = true -default['dd-agent-install']['enable_process_agent'] = true - -# Set the defaults from the chef recipe -default['dd-agent-install']['extra_endpoints']['prod']['enabled'] = nil -default['dd-agent-install']['extra_endpoints']['prod']['api_key'] = nil -default['dd-agent-install']['extra_endpoints']['prod']['application_key'] = nil -default['dd-agent-install']['extra_endpoints']['prod']['url'] = nil # op -default['dd-agent-install']['extra_config']['forwarder_timeout'] = nil -default['dd-agent-install']['web_proxy']['host'] = nil -default['dd-agent-install']['web_proxy']['port'] = nil -default['dd-agent-install']['web_proxy']['user'] = nil -default['dd-agent-install']['web_proxy']['password'] = nil -default['dd-agent-install']['web_proxy']['skip_ssl_validation'] = nil # accepted values 'yes' or 'no' -default['dd-agent-install']['dogstreams'] = [] -default['dd-agent-install']['custom_emitters'] = [] -default['dd-agent-install']['syslog']['active'] = false -default['dd-agent-install']['syslog']['udp'] = false -default['dd-agent-install']['syslog']['host'] = nil -default['dd-agent-install']['syslog']['port'] = nil -default['dd-agent-install']['log_file_directory'] = nil -default['dd-agent-install']['process_agent']['blacklist'] = nil -default['dd-agent-install']['process_agent']['container_blacklist'] = nil -default['dd-agent-install']['process_agent']['container_whitelist'] = nil -default['dd-agent-install']['process_agent']['log_file'] = nil -default['dd-agent-install']['process_agent']['process_interval'] = nil -default['dd-agent-install']['process_agent']['rtprocess_interval'] = nil -default['dd-agent-install']['process_agent']['container_interval'] = nil -default['dd-agent-install']['process_agent']['rtcontainer_interval'] = nil -default['dd-agent-install']['tags'] = '' -default['dd-agent-install']['histogram_aggregates'] = 'max, median, avg, count' -default['dd-agent-install']['histogram_percentiles'] = '0.95' -default['dd-agent-install']['dogstatsd'] = true -default['dd-agent-install']['dogstatsd_port'] = 8125 -default['dd-agent-install']['dogstatsd_interval'] = 10 -default['dd-agent-install']['dogstatsd_normalize'] = 'yes' -default['dd-agent-install']['dogstatsd_target'] = 'http://localhost:17123' -default['dd-agent-install']['statsd_forward_host'] = nil -default['dd-agent-install']['statsd_forward_port'] = 8125 -default['dd-agent-install']['statsd_metric_namespace'] = nil -default['dd-agent-install']['log_level'] = 'INFO' -default['dd-agent-install']['enable_logs_agent'] = false - -default['dd-agent-install']['agent_install_options'] = '' diff --git a/test/kitchen/site-cookbooks/dd-agent-install/chefignore b/test/kitchen/site-cookbooks/dd-agent-install/chefignore deleted file mode 100644 index a6de14221d876..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/chefignore +++ /dev/null @@ -1,96 +0,0 @@ -# Put files/directories that should be ignored in this file when uploading -# or sharing to the community site. -# Lines that start with '# ' are comments. - -# OS generated files # -###################### -.DS_Store -Icon? -nohup.out -ehthumbs.db -Thumbs.db - -# SASS # -######## -.sass-cache - -# EDITORS # -########### -\#* -.#* -*~ -*.sw[a-z] -*.bak -REVISION -TAGS* -tmtags -*_flymake.* -*_flymake -*.tmproj -.project -.settings -mkmf.log - -## COMPILED ## -############## -a.out -*.o -*.pyc -*.so -*.com -*.class -*.dll -*.exe -*/rdoc/ - -# Testing # -########### -.watchr -.rspec -spec/* -spec/fixtures/* -test/* -features/* -Guardfile -Procfile - -# SCM # -####### -.git -*/.git -.gitignore -.gitmodules -.gitconfig -.gitattributes -.svn -*/.bzr/* -*/.hg/* -*/.svn/* - -# Berkshelf # -############# -Berksfile -Berksfile.lock -cookbooks/* -tmp - -# Cookbooks # -############# -CONTRIBUTING -CHANGELOG* - -# Strainer # -############ -Colanderfile -Strainerfile -.colander -.strainer - -# Vagrant # -########### -.vagrant -Vagrantfile - -# Travis # -########## -.travis.yml diff --git a/test/kitchen/site-cookbooks/dd-agent-install/metadata.rb b/test/kitchen/site-cookbooks/dd-agent-install/metadata.rb deleted file mode 100644 index 8430034d05a5d..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/metadata.rb +++ /dev/null @@ -1,9 +0,0 @@ -name "dd-agent-install" -maintainer "Datadog" -description "Installs the Datadog Agent" -long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) -version "0.2.0" - -depends 'apt', '>= 2.1.0' -depends 'datadog' -depends 'yum', '< 7.0.0' diff --git a/test/kitchen/site-cookbooks/dd-agent-install/recipes/_agent6_windows_config.rb b/test/kitchen/site-cookbooks/dd-agent-install/recipes/_agent6_windows_config.rb deleted file mode 100644 index 6965c4fa2ddcc..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/recipes/_agent6_windows_config.rb +++ /dev/null @@ -1,120 +0,0 @@ -# -# Cookbook Name:: dd-agent-install -# Recipe:: _agent6_windows_config -# -# Copyright 2011-present, Datadog -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -is_windows = node['platform_family'] == 'windows' - -# FIXME: with the agent6, we still need the agent5 conf file in duplicate -# in /etc/datadog-agent/trace-agent.conf for the trace agent. -# Remove them when these agents can read from datadog.yaml. -trace_agent_config_file = ::File.join(node['dd-agent-install']['agent6_config_dir'], 'trace-agent.conf') -config_dir = node['dd-agent-install']['agent_major_version'].to_i > 5 ? node['dd-agent-install']['agent6_config_dir'] : node['dd-agent-install']['config_dir'] - - -template trace_agent_config_file do - def conf_template_vars - { - :api_keys => [node['dd-agent-install']['api_key']], - :dd_urls => [node['dd-agent-install']['url']] - } - end - variables( - if respond_to?(:lazy) - lazy { conf_template_vars } - else - conf_template_vars - end - ) - if is_windows - # the windows installer takes care of setting the correct permissions - else - owner 'dd-agent' - group 'dd-agent' - mode '640' - end - source 'datadog.conf.erb' - sensitive true if Chef::Resource.instance_methods(false).include?(:sensitive) - notifies :restart, 'service[datadog-agent]', :delayed unless node['dd-agent-install']['agent_start'] == false -end - - -# With agent6, the process-agent and trace-agent are enabled as long-running checks -# TODO: on agent6, we can't really make the trace-agent _not_ run yet -template ::File.join(config_dir, 'conf.d', "apm.yaml") do - if node['platform_family'] == 'windows' - owner 'Administrators' - rights :full_control, 'Administrators' - inherits false - else - owner 'dd-agent' - mode '600' - end - - source 'integration.yaml.erb' - - variables( - instances: [{}] - ) - sensitive true if Chef::Resource.instance_methods(false).include?(:sensitive) - notifies :restart, 'service[datadog-agent]', :delayed if node['dd-agent-install']['agent_start'] -end - -agent6_config_file = ::File.join(node['dd-agent-install']['agent6_config_dir'], 'datadog.yaml') -template agent6_config_file do # rubocop:disable Metrics/BlockLength - def template_vars # rubocop:disable Metrics/AbcSize, Metrics/MethodLength - additional_endpoints = {} - node['dd-agent-install']['extra_endpoints'].each do |_, endpoint| - next unless endpoint['enabled'] - url = if endpoint['url'] - endpoint['url'] - else - node['dd-agent-install']['url'] - end - if additional_endpoints.key?(url) - additional_endpoints[url] << endpoint['api_key'] - else - additional_endpoints[url] = [endpoint['api_key']] - end - end - extra_config = {} - node['dd-agent-install']['extra_config'].each do |k, v| - next if v.nil? - extra_config[k] = v - end - { - extra_config: extra_config, - api_key: Chef::Datadog.api_key(node), - additional_endpoints: additional_endpoints - } - end - - if node['platform_family'] == 'windows' - else - owner 'dd-agent' - mode '600' - end - variables( - if respond_to?(:lazy) - lazy { template_vars } - else - template_vars - end - ) - sensitive true if Chef::Resource.instance_methods(false).include?(:sensitive) - notifies :restart, 'service[datadog-agent]', :delayed unless node['dd-agent-install']['agent_start'] == false -end diff --git a/test/kitchen/site-cookbooks/dd-agent-install/recipes/_damage_windows_install.rb b/test/kitchen/site-cookbooks/dd-agent-install/recipes/_damage_windows_install.rb deleted file mode 100644 index ebdcbf3a84741..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/recipes/_damage_windows_install.rb +++ /dev/null @@ -1,11 +0,0 @@ -# -# Cookbook Name:: dd-agent-install -# Recipe:: _damage_windows_install -# -# Copyright (C) 2021-present Datadog - -powershell_script "damage-agent" do - code <<-EOF - Remove-Item -Recurse -Force 'C:\\Program Files\\Datadog\\Datadog Agent\\bin\\agent.exe' - EOF -end diff --git a/test/kitchen/site-cookbooks/dd-agent-install/recipes/_install_windows.rb b/test/kitchen/site-cookbooks/dd-agent-install/recipes/_install_windows.rb deleted file mode 100644 index f229e7aabde29..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/recipes/_install_windows.rb +++ /dev/null @@ -1,47 +0,0 @@ -# -# Cookbook Name:: dd-agent-install -# Recipe:: _install_windows -# -# Copyright (C) 2019-present Datadog -# -# All rights reserved - Do Not Redistribute -# - -if node['dd-agent-install']['enable_testsigning'] - reboot 'enable_testsigning' do - action :nothing - reason 'Cannot continue Chef run without a reboot.' - end - - execute 'enable unsigned drivers' do - command "bcdedit.exe /set testsigning on" - notifies :reboot_now, 'reboot[enable_testsigning]', :immediately - not_if 'bcdedit.exe | findstr "testsigning" | findstr "Yes"' - end -end - - -include_recipe 'dd-agent-install::_install_windows_base' - -agent_config_file = ::File.join(node['dd-agent-install']['config_dir'], 'datadog.conf') - -# Set the Agent service enable or disable -agent_enable = node['dd-agent-install']['agent_enable'] ? :enable : :disable -# Set the correct Agent startup action -agent_start = node['dd-agent-install']['agent_start'] ? :start : :stop - - -include_recipe 'dd-agent-install::_agent6_windows_config' - -# Common configuration -service 'datadog-agent' do - service_name node['dd-agent-install']['agent_name'] - action [agent_enable, agent_start] - supports :restart => true, :start => true, :stop => true - subscribes :restart, "template[#{agent_config_file}]", :delayed unless node['dd-agent-install']['agent_start'] == false - restart_command "powershell -Command \"restart-service -Force -Name datadogagent\"" - # HACK: the restart can fail when we hit systemd's restart limits (by default, 5 starts every 10 seconds) - # To workaround this, retry once after 5 seconds, and a second time after 10 seconds - retries 2 - retry_delay 5 -end diff --git a/test/kitchen/site-cookbooks/dd-agent-install/recipes/_install_windows_base.rb b/test/kitchen/site-cookbooks/dd-agent-install/recipes/_install_windows_base.rb deleted file mode 100644 index 274d2c1fd7b3c..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/recipes/_install_windows_base.rb +++ /dev/null @@ -1,101 +0,0 @@ -# -# Cookbook Name:: dd-agent-install -# Recipe:: _install_windows_base -# -# Copyright (C) 2019-present Datadog -# -# All rights reserved - Do Not Redistribute -# - -package_retries = node['dd-agent-install']['agent_package_retries'] -package_retry_delay = node['dd-agent-install']['agent_package_retry_delay'] -dd_agent_version = node['datadog']['agent_version'] || node['dd-agent-install']['windows_version'] -dd_agent_filename = node['dd-agent-install']['windows_agent_filename'] - -source_url = node['dd-agent-install']['windows_agent_url'] -if !source_url.end_with? '/' - source_url += '/' -end - -if dd_agent_filename - dd_agent_installer_basename = dd_agent_filename -else - # HACK: the packages have different names in the stable repos and the testing repos - # Check the source URL to know if we need to use the "stable" filename, or the "testing" filename - if source_url == "https://ddagent-windows-stable.s3.amazonaws.com/" # Use a version of the Agent from the official repos - dd_agent_installer_basename = "ddagent-cli-#{dd_agent_version}" - else # Use a version of the Agent from the testing repos - dd_agent_installer_basename = "datadog-agent-#{dd_agent_version}-1-x86_64" - end -end - -temp_file_basename = ::File.join(Chef::Config[:file_cache_path], 'ddagent-cli').gsub(File::SEPARATOR, File::ALT_SEPARATOR || File::SEPARATOR) - -dd_agent_installer = "#{dd_agent_installer_basename}.msi" -source_url += dd_agent_installer -temp_file = "#{temp_file_basename}.msi" - -log_file_name = ::File.join(Chef::Config[:file_cache_path], 'install.log').gsub(File::SEPARATOR, File::ALT_SEPARATOR || File::SEPARATOR) -# Delete the log file in case it exists (in case of multiple converge runs for example) -file log_file_name do - action :delete -end - -# Agent >= 5.12.0 installs per-machine by default, but specifying ALLUSERS=1 shouldn't affect the install -agent_install_options = node['dd-agent-install']['agent_install_options'] -install_options = "/log #{log_file_name} /norestart ALLUSERS=1 #{agent_install_options}" - -# This fake package resource serves only to trigger the Datadog Agent uninstall. -# If the checksum is not provided, assume we need to reinstall the Agent. -package 'Datadog Agent removal' do - only_if { node['dd-agent-install']['windows_agent_checksum'].nil? } - package_name 'Datadog Agent' - action :remove -end - -# When WIXFAILWHENDEFERRED is present, we expect the installer to fail. -expected_msi_result_code = [0, 3010] -expected_msi_result_code.append(1603) if agent_install_options.include?('WIXFAILWHENDEFERRED') - -windows_package 'Datadog Agent' do - source source_url - checksum node['dd-agent-install']['windows_agent_checksum'] if node['dd-agent-install']['windows_agent_checksum'] - retries package_retries unless package_retries.nil? - retry_delay package_retry_delay unless package_retry_delay.nil? - options install_options - action :install - remote_file_attributes ({ - :path => temp_file - }) - returns expected_msi_result_code - # It's ok to ignore failure, the kitchen test will fail anyway - # but we need to print the install logs. - ignore_failure true -end - -# This runs during the converge phase and will return a non-zero exit -# code if the service doesn't run. While it can be useful to quickly -# test locally if the Datadog Agent service is running after a converge phase -# it defeats the purpose of the kitchen tests, so keep it commented unless debugging the installer. -#execute "check-agent-service" do -# command "sc interrogate datadogagent 2>&1" -# action :run -#end - -ruby_block "Print install logs" do - only_if { ::File.exists?(log_file_name) } - block do - # Use warn, because Chef's default "log" is too chatty - # and the kitchen tests default to "warn" - Chef::Log.warn(File.open(log_file_name, "rb:UTF-16LE", &:read).encode('UTF-8')) - end -end - -ruby_block "Check install sucess" do - not_if { agent_install_options.include?('WIXFAILWHENDEFERRED') } - block do - raise "Could not find installation log file, did the installer run ?" if !File.file?(log_file_name) - logfile = File.open(log_file_name, "rb:UTF-16LE", &:read).encode('UTF-8') - raise "The Agent failed to install" if logfile.include? "Product: Datadog Agent -- Installation failed." - end -end diff --git a/test/kitchen/site-cookbooks/dd-agent-install/recipes/_repair_windows_install.rb b/test/kitchen/site-cookbooks/dd-agent-install/recipes/_repair_windows_install.rb deleted file mode 100644 index 6c4f76fbe2dd1..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/recipes/_repair_windows_install.rb +++ /dev/null @@ -1,12 +0,0 @@ -# -# Cookbook Name:: dd-agent-install -# Recipe:: _repair_windows_install -# -# Copyright (C) 2021-present Datadog - -powershell_script "repair-agent" do - code <<-EOF - $product_code = (Get-WmiObject Win32_Product | Where-Object -Property Name -eq 'Datadog Agent').IdentifyingNumber - Start-Process msiexec.exe -Wait -ArgumentList '/q','/log','repair.log','/fa',$product_code - EOF -end diff --git a/test/kitchen/site-cookbooks/dd-agent-install/recipes/_stop_windows_agent.rb b/test/kitchen/site-cookbooks/dd-agent-install/recipes/_stop_windows_agent.rb deleted file mode 100644 index f45604773bbb1..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/recipes/_stop_windows_agent.rb +++ /dev/null @@ -1,23 +0,0 @@ -# -# Cookbook Name:: dd-agent-install -# Recipe:: _stop_windows_agent -# -# Copyright (C) 2021-present Datadog - -# -# gives the agent 60s to actually get started if it hasn't fully started yet -# -powershell_script 'stop-datadog-agent' do - code <<-EOH - $serviceName = "#{node['dd-agent-install']['agent_name']}" - sc.exe query $serviceName; - for($i= 0; $i -lt 30; $i++) { - $s = (get-service datadogagent).status - if($s -ne "StartPending") { - break; - } - start-sleep -seconds 2 - } - Stop-Service -force $serviceName - EOH -end diff --git a/test/kitchen/site-cookbooks/dd-agent-install/recipes/default.rb b/test/kitchen/site-cookbooks/dd-agent-install/recipes/default.rb deleted file mode 100644 index 5697c1873426f..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/recipes/default.rb +++ /dev/null @@ -1,15 +0,0 @@ -# -# Cookbook Name:: dd-agent-install -# Recipe:: default -# -# Copyright (C) 2013-present Datadog -# -# All rights reserved - Do Not Redistribute -# -require 'uri' - -if node['platform_family'] == 'windows' && node['dd-agent-install']['agent_major_version'].to_i > 5 - include_recipe 'dd-agent-install::_install_windows' -else - include_recipe 'datadog::dd-agent' -end diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/activemq.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/activemq.yaml.erb deleted file mode 100644 index 6b001e0ea0a23..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/activemq.yaml.erb +++ /dev/null @@ -1,60 +0,0 @@ -# Generated by Chef, local modifications will be overwritten - -<%= JSON.parse(({ 'instances' => @instances, 'logs' => @logs }).to_json).to_yaml %> - -# List of metrics to be collected by the integration -# You should not have to modify this. -init_config: - conf: - - include: - Type: Queue - attribute: - AverageEnqueueTime: - alias: activemq.queue.avg_enqueue_time - metric_type: gauge - ConsumerCount: - alias: activemq.queue.consumer_count - metric_type: gauge - DequeueCount: - alias: activemq.queue.dequeue_count - metric_type: counter - DispatchCount: - alias: activemq.queue.dispatch_count - metric_type: counter - EnqueueCount: - alias: activemq.queue.enqueue_count - metric_type: counter - ExpiredCount: - alias: activemq.queue.expired_count - metric_type: counter - InFlightCount: - alias: activemq.queue.in_flight_count - metric_type: counter - MaxEnqueueTime: - alias: activemq.queue.max_enqueue_time - metric_type: gauge - MemoryPercentUsage: - alias: activemq.queue.memory_pct - metric_type: gauge - MinEnqueueTime: - alias: activemq.queue.min_enqueue_time - metric_type: gauge - ProducerCount: - alias: activemq.queue.producer_count - metric_type: gauge - QueueSize: - alias: activemq.queue.size - metric_type: gauge - - - include: - Type: Broker - attribute: - MemoryPercentUsage: - alias: activemq.broker.memory_pct - metric_type: gauge - StorePercentUsage: - alias: activemq.broker.store_pct - metric_type: gauge - TempPercentUsage: - alias: activemq.broker.temp_pct - metric_type: gauge diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/apache.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/apache.yaml.erb deleted file mode 100644 index 6af28d1a3358d..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/apache.yaml.erb +++ /dev/null @@ -1,19 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -instances: -<% @instances.each do |i| -%> - - apache_status_url: <%= i['status_url'] %> - <% if i['apache_user'] -%>apache_user: <%= i['apache_user'] %><% end -%> - <% if i['apache_password'] -%>apache_password: <%= i['apache_password'] %><% end -%> - <% if i['disable_ssl_validation'] -%>disable_ssl_validation: <%= i['disable_ssl_validation'] %><% end -%> - - <% if i.key?('tags') -%> - tags: - <% i['tags'].each do |t| -%> - - <%= t %> - <% end -%> - <% end -%> -<% end -%> - -# Nothing to configure here -init_config: diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/cacti.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/cacti.yaml.erb deleted file mode 100644 index 1a73bb3977395..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/cacti.yaml.erb +++ /dev/null @@ -1,22 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -instances: -<% @instances.each do |i| -%> - - mysql_host: <%= i['mysql_host'] %> - mysql_user: <%= i['mysql_user'] %> - mysql_password: <%= i['mysql_password'] %> - rrd_path: <%= i['rrd_path'] %> - <% if i['rrd_whitelist'] -%> - rrd_whitelist: <%= i['rrd_whitelist'] %> - <% end -%> - - <% if i.key?('field_names') -%> - field_names: - <% i['field_names'].each do |fn| -%> - - <%= fn %> - <% end -%> - <% end -%> -<% end -%> - -# Nothing to configure here -init_config: diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/cassandra.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/cassandra.yaml.erb deleted file mode 100644 index daf913192f645..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/cassandra.yaml.erb +++ /dev/null @@ -1,152 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -instances: -<% @instances.each do |i| -%> - - host: <%= i['server'] || i['host'] %> - <% (i.keys - ['host']).each do |key| -%> - <%= key %>: <%= i[key] %> - <% end -%> - cassandra_aliasing: true -<% end -%> - -<% if @version == 2 %> -init_config: - # List of metrics to be collected by the integration - # Read http://docs.datadoghq.com/integrations/java/ to learn how to customize it - conf: - - include: - domain: org.apache.cassandra.metrics - type: ClientRequest - scope: - - Read - - Write - name: - - Latency - - Timeouts - - Unavailables - attribute: - - Count - - OneMinuteRate - - include: - domain: org.apache.cassandra.metrics - type: ClientRequest - scope: - - Read - - Write - name: - - TotalLatency - - include: - domain: org.apache.cassandra.metrics - type: Storage - name: - - Load - - Exceptions - - include: - domain: org.apache.cassandra.metrics - type: ColumnFamily - bean_regex: - - .*keyspace=.* - name: - - TotalDiskSpaceUsed - - BloomFilterDiskSpaceUsed - - BloomFilterFalsePositives - - BloomFilterFalseRatio - - CompressionRatio - - LiveDiskSpaceUsed - - LiveSSTableCount - - MaxRowSize - - MeanRowSize - - MemtableColumnsCount - - MemtableLiveDataSize - - MemtableSwitchCount - - MinRowSize - exclude: - keyspace: - - OpsCenter - - system - - system_auth - - system_distributed - - system_schema - - system_traces - - include: - domain: org.apache.cassandra.metrics - type: Cache - name: - - Capacity - - Size - attribute: - - Value - - include: - domain: org.apache.cassandra.metrics - type: Cache - name: - - Hits - - Requests - attribute: - - Count - - include: - domain: org.apache.cassandra.metrics - type: ThreadPools - path: request - name: - - ActiveTasks - - CompletedTasks - - PendingTasks - - CurrentlyBlockedTasks - - include: - domain: org.apache.cassandra.db - attribute: - - UpdateInterval -<% else %> -# List of metrics to be collected. -init_config: - conf: - - include: - domain: org.apache.cassandra.db - attribute: - - BloomFilterDiskSpaceUsed - - BloomFilterFalsePositives - - BloomFilterFalseRatio - - Capacity - - CompletedTasks - - CompressionRatio - - ExceptionCount - - Hits - - KeyCacheRecentHitRate - - LiveDiskSpaceUsed - - LiveSSTableCount - - Load - - MaxRowSize - - MeanRowSize - - MemtableColumnsCount - - MemtableDataSize - - MemtableSwitchCount - - MinRowSize - - PendingTasks - - ReadCount - - RecentHitRate - - RecentRangeLatencyMicros - - RecentReadLatencyMicros - - RecentWriteLatencyMicros - - Requests - - RowCacheRecentHitRate - - Size - - TotalDiskSpaceUsed - - TotalReadLatencyMicros - - TotalWriteLatencyMicros - - UpdateInterval - - WriteCount - exclude: - keyspace: system - - include: - domain: org.apache.cassandra.internal - attribute: - - ActiveCount - - CompletedTasks - - CurrentlyBlockedTasks - - TotalBlockedTasks - - include: - domain: org.apache.cassandra.net - attribute: - - TotalTimeouts -<% end %> diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/consul.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/consul.yaml.erb deleted file mode 100644 index 345bb8751e1c6..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/consul.yaml.erb +++ /dev/null @@ -1,24 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -instances: -<% @instances.each do |i| -%> - - url: <%= i['url'] %> - <% unless i['new_leader_checks'].nil? %> - new_leader_checks: <%= i['new_leader_checks'] %> - <% end %> - <% unless i['catalog_checks'].nil? %> - catalog_checks: <%= i['catalog_checks'] %> - <% end %> - <% unless i['service_whitelist'].nil? %> - service_whitelist: <%= i['service_whitelist'] %> - <% end %> - <% if i.key?('tags') && !i['tags'].empty? -%> - tags: - <% i['tags'].each do |t| -%> - - <%= t %> - <% end -%> - <% end -%> -<% end -%> - -# Nothing to configure here -init_config: diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/couch.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/couch.yaml.erb deleted file mode 100644 index d4987a07f9fe1..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/couch.yaml.erb +++ /dev/null @@ -1,12 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -instances: -<% @instances.each do |i| -%> - - server: <%= i['server'] %> - <% (i.keys - ['server']).each do |key| -%> - <%= key %>: <%= i[key] %> - <% end -%> -<% end -%> - -# Nothing to change below -init_config: diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/couchbase.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/couchbase.yaml.erb deleted file mode 100644 index 4010a711a8d02..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/couchbase.yaml.erb +++ /dev/null @@ -1,9 +0,0 @@ -<%= JSON.parse(({ 'logs' => @logs }).to_json).to_yaml %> - -instances: -<% @instances.each do |i| -%> - - server: <%= i['server'] %> - user: <%= @node.fetch('couchbase', {}).fetch('server', {}).fetch('username', i.fetch('username', 'Administrator')) %> - password: <%= @node.fetch('couchbase', {}).fetch('server', {}).fetch('password', i.fetch('password', '')) %> -<% end %> -init_config: diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/datadog.conf.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/datadog.conf.erb deleted file mode 100644 index 1117d30b69cd6..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/datadog.conf.erb +++ /dev/null @@ -1,240 +0,0 @@ -# Generated by Chef, local modifications will be overwritten - -[Main] -dd_url: <%= @dd_urls.join(',') %> -api_key: <%= @api_keys.join(',') %> -check_freq: <%= node['dd-agent-install']['check_freq'] %> -hostname: <%= node['dd-agent-install']['hostname'] %> -use_mount: <%= node['dd-agent-install']['use_mount'] ? "yes" : "no" %> -listen_port: <%= node['dd-agent-install']['agent_port'] %> -bind_host: <%= node['dd-agent-install']['bind_host'] %> -<% if node['dd-agent-install']['autorestart'] -%> -autorestart: <%= node['dd-agent-install']['autorestart'] %> -<% end -%> -<% if node['dd-agent-install']['web_proxy']['skip_ssl_validation'] -%> -skip_ssl_validation: <%= node['dd-agent-install']['web_proxy']['skip_ssl_validation'] %> -<% end -%> -<% if node['dd-agent-install']['developer_mode'] -%> -developer_mode: <%= node['dd-agent-install']['developer_mode'] %> -<% end -%> - -<% if node['dd-agent-install']['tags'].respond_to?(:each_pair) -%> -tags: <%= node['dd-agent-install']['tags'].reject{ |_k,v| v.empty? }.map{ |k,v| "#{k}:#{v}" }.join(',') %> -<% else -%> -tags: <%= node['dd-agent-install']['tags'] %> -<% end -%> -<% if node['dd-agent-install']['create_dd_check_tags'] -%> -create_dd_check_tags: <%= node['dd-agent-install']['create_dd_check_tags'] %> -<% end -%> -<% if node['dd-agent-install']['collect_ec2_tags'] -%> -collect_ec2_tags: <%= node['dd-agent-install']['collect_ec2_tags'] %> -<% end -%> - -<% if node['dd-agent-install']['web_proxy']['host'] -%> -proxy_host: <%= node['dd-agent-install']['web_proxy']['host'] %> -proxy_port: <%= node['dd-agent-install']['web_proxy']['port'] %> -proxy_user: <%= node['dd-agent-install']['web_proxy']['user'] %> -proxy_password: <%= node['dd-agent-install']['web_proxy']['password'] %> -<% end -%> - -<% if node['dd-agent-install']['non_local_traffic'] == true %> -non_local_traffic: true -<% end -%> - -<% if !node['dd-agent-install']['dogstreams'].empty? -%> -dogstreams: <%= node['dd-agent-install']['dogstreams'].join(', ') %> -<% end -%> - -<% if !node['dd-agent-install']['custom_emitters'].empty? -%> -custom_emitters: <%= node['dd-agent-install']['custom_emitters'].join(', ') %> -<% end -%> - -<% if node['dd-agent-install']['agent_checks_interval'] -%> -agent_checks_interval: <%= node['dd-agent-install']['agent_checks_interval'] %> -<% end -%> - -<% if node['dd-agent-install']['graphite'] -%> -graphite_listen_port: <%= node['dd-agent-install']['graphite_port'] %> -<% end -%> - -## Histogram settings -histogram_aggregates: <%= node['dd-agent-install']['histogram_aggregates'] %> -histogram_percentiles: <%= node['dd-agent-install']['histogram_percentiles'] %> - -<% if node['dd-agent-install']['service_discovery_backend'] -%> -# ========================================================================== # -# Service Discovery # -# See https://docs.datadoghq.com/guides/servicediscovery/ for details # -# ========================================================================== # - -# Service discovery allows the agent to look for running services -# and load a configuration object for the one it recognizes. -# This feature is disabled by default. -# Uncomment this line to enable it (works for docker containers only for now). -service_discovery_backend: <%= node['dd-agent-install']['service_discovery_backend'] %> - -# Define which key/value store must be used to look for configuration templates. -# Default is etcd. Consul is also supported. -sd_config_backend: <%= node['dd-agent-install']['sd_config_backend'] %> - -# Settings for connecting to the service discovery backend. -sd_backend_host: <%= node['dd-agent-install']['sd_backend_host'] %> -sd_backend_port: <%= node['dd-agent-install']['sd_backend_port'] %> - -# By default, the agent will look for the configuration templates under the -# `/datadog/check_configs` key in the back-end. If you wish otherwise, uncomment this option -# and modify its value. -sd_template_dir: <%= node['dd-agent-install']['sd_template_dir'] %> -<% end -%> - -<% if node['dd-agent-install']['dogstatsd'] -%> -# ========================================================================== # -# DogStatsd configuration # -# ========================================================================== # - -# DogStatsd is a small server that aggregates your custom app metrics. For -# usage information, check out http://docs.datadoghq.com - -# Make sure your client is sending to the same port. -dogstatsd_port: <%= node['dd-agent-install']['dogstatsd_port'] %> - -## The dogstatsd flush period. -dogstatsd_interval: <%= node['dd-agent-install']['dogstatsd_interval'] %> - -## The target location to send the data -dogstatsd_target: <%= node['dd-agent-install']['dogstatsd_target'] %> - -## If 'yes', counters and rates will be normalized to 1 second (that is divided -## by the dogstatsd_interval) before being sent to the server. Defaults to 'yes' -dogstatsd_normalize: <%= node['dd-agent-install']['dogstatsd_normalize'] %> -<% if node['dd-agent-install']['statsd_forward_host'] -%> -statsd_forward_host: <%= node['dd-agent-install']['statsd_forward_host'] %> -statsd_forward_port: <%= node['dd-agent-install']['statsd_forward_port'] %> -<% end -%> - -<% if node['dd-agent-install']['statsd_metric_namespace'] -%> -statsd_metric_namespace: <%= node['dd-agent-install']['statsd_metric_namespace'] %> -<% end -%> -<% else -%> -use_dogstatsd: no -<% end -%> - -# ========================================================================== # -# Logging -# ========================================================================== # - -log_level: <%= node['dd-agent-install']['log_level'] %> - -<% if node['dd-agent-install']['log_file_directory'] -%> -collector_log_file: <%= node['dd-agent-install']['log_file_directory'] %>/collector.log -forwarder_log_file: <%= node['dd-agent-install']['log_file_directory'] %>/forwarder.log -dogstatsd_log_file: <%= node['dd-agent-install']['log_file_directory'] %>/dogstatsd.log -jmxfetch_log_file: <%= node['dd-agent-install']['log_file_directory'] %>/jmxfetch.log -<% unless node['platform_family'] == 'windows' -%> -go-metro_log_file: <%= node['dd-agent-install']['log_file_directory'] %>/go-metro.log -<% end -%> -<% end -%> - -# if syslog is enabled but a host and port are not set, a local domain socket -# connection will be attempted -# -log_to_syslog: <%= node['dd-agent-install']['syslog']['active'] ? 'yes' : 'no' %> -<% if node['dd-agent-install']['syslog']['udp'] -%> -syslog_host: <%= node['dd-agent-install']['syslog']['host'] %> -syslog_port: <%= node['dd-agent-install']['syslog']['port'] %> - -<% end -%> -# ========================================================================== # -# Legacy Integrations -# ========================================================================== # - -# For integrations which do not yet use the yaml configurations -<% -if node['dd-agent-install']['legacy_integrations'] - node['dd-agent-install']['legacy_integrations'].each do |int_name, int_hash| - if int_hash["enabled"] and int_hash.has_key? "config" - description = int_name - description += " - #{int_hash["description"]}" if int_hash["description"] - description.gsub!(/^/, '# ') --%> -<%= description %> -<% - int_hash['config'].each do |k,v| --%> -<%= k %>: <%= v %> -<% - end - end - end -end --%> - -<% if node['dd-agent-install']['enable_process_agent'].is_a?(TrueClass) || node['dd-agent-install']['enable_process_agent'].is_a?(FalseClass) -%> -process_agent_enabled: <%= node['dd-agent-install']['enable_process_agent'] %> -<% end -%> - -<% if node['dd-agent-install']['enable_trace_agent'].is_a?(TrueClass) || node['dd-agent-install']['enable_trace_agent'].is_a?(FalseClass) -%> -apm_enabled: <%= node['dd-agent-install']['enable_trace_agent'] %> -<% end -%> - -<% if ! node['dd-agent-install']['extra_config'].empty? -%> -# ========================================================================== # -# Other config options -# ========================================================================== # - <% node['dd-agent-install']['extra_config'].each do |k, v| -%> - <% if ! v.nil? -%> -<%= k %>: <%= v %> - <% end -%> - <% end -%> -<% end -%> - -## Trace settings - -[trace.config] -<% unless node['dd-agent-install']['trace_env'].nil? -%> -env: <%= node['dd-agent-install']['trace_env'] %> -<% end -%> - -[trace.sampler] -<% unless node['dd-agent-install']['extra_sample_rate'].nil? -%> -extra_sample_rate: <%= node['dd-agent-install']['extra_sample_rate'] %> -<% end -%> -<% unless node['dd-agent-install']['max_traces_per_second'].nil? -%> -max_traces_per_second: <%= node['dd-agent-install']['max_traces_per_second'] %> -<% end -%> - -[trace.receiver] -<% unless node['dd-agent-install']['receiver_port'].nil? -%> -receiver_port: <%= node['dd-agent-install']['receiver_port'] %> -<% end -%> -<% unless node['dd-agent-install']['connection_limit'].nil? -%> -connection_limit: <%= node['dd-agent-install']['connection_limit'] %> -<% end -%> - -## Process settings - -[process.config] -<% unless node['dd-agent-install']['process_agent']['blacklist'].nil? -%> -blacklist: <%= node['dd-agent-install']['process_agent']['blacklist'] %> -<% end -%> -<% unless node['dd-agent-install']['process_agent']['container_blacklist'].nil? -%> -container_blacklist: <%= node['dd-agent-install']['process_agent']['container_blacklist'] %> -<% end -%> -<% unless node['dd-agent-install']['process_agent']['container_whitelist'].nil? -%> -container_whitelist: <%= node['dd-agent-install']['process_agent']['container_whitelist'] %> -<% end -%> -<% unless node['dd-agent-install']['process_agent']['process_interval'].nil? -%> -process_interval = <%= node['dd-agent-install']['process_agent']['process_interval'] %> -<% end -%> -<% unless node['dd-agent-install']['process_agent']['rtprocess_interval'].nil? -%> -rtprocess_interval = <%= node['dd-agent-install']['process_agent']['rtprocess_interval'] %> -<% end -%> -<% unless node['dd-agent-install']['process_agent']['container_interval'].nil? -%> -container_interval = <%= node['dd-agent-install']['process_agent']['container_interval'] %> -<% end -%> -<% unless node['dd-agent-install']['process_agent']['rtcontainer_interval'].nil? -%> -rtcontainer_interval = <%= node['dd-agent-install']['process_agent']['rtcontainer_interval'] %> -<% end -%> -<% unless node['dd-agent-install']['process_agent']['log_file'].nil? -%> -log_file: <%= node['dd-agent-install']['process_agent']['log_file'] %> -<% end -%> diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/datadog.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/datadog.yaml.erb deleted file mode 100644 index be783c320da42..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/datadog.yaml.erb +++ /dev/null @@ -1,116 +0,0 @@ -<% -# OPTIONS REMOVED IN AGENT 6: -# - check_freq -# - use_mount -# - developer_mode -# - dogstreams -# - autorestart -# - custom_emitters -# - graphite -# - dogstatsd_target -# - dogstatsd_interval -# - dogstatsd_normalize -# - legacy_integrations - -# TODO: options not supported yet: -# - agent_checks_interval -# - Autodiscovery (aka Service Discovery) related options -# - statsd_forward_host -# - statsd_forward_port -# - statsd_metric_namespace -# - enable_trace_agent: always enabled -# - all trace-related options are written to an INI file - -def string_list_to_array(string_list) - # return an array from a comma-separated list in a string - string_list.split(',').map{ |elem| elem.strip } -end - -## Normalize complex config values for agent6 format ## -if node['dd-agent-install']['tags'].respond_to?(:each_pair) - tags = node['dd-agent-install']['tags'].reject{ |_k,v| v.empty? }.map{ |k,v| "#{k.strip}:#{v.strip}" } -else - tags = string_list_to_array(node['dd-agent-install']['tags']) -end - -# TODO: support the more complete proxy settings that the agent6 supports -http_proxy = nil -if node['dd-agent-install']['web_proxy']['host'] - host = node['dd-agent-install']['web_proxy']['host'] - port = node['dd-agent-install']['web_proxy']['port'] - user = node['dd-agent-install']['web_proxy']['user'] - password = node['dd-agent-install']['web_proxy']['password'] - scheme = "" - - unless host.start_with?('http://') or host.start_with?('https://') - scheme = 'http://' - end - - http_proxy = host - if port - http_proxy += ":#{port}" - end - if user - if password - http_proxy = "#{user}:#{port}@#{http_proxy}" - else - http_proxy = "#{user}@#{http_proxy}" - end - end - - http_proxy = scheme + http_proxy -end - -## Populate agent_config ## -agent_config = @extra_config.merge({ - api_key: @api_key, - dd_url: node['dd-agent-install']['url'], - hostname: node['dd-agent-install']['hostname'], - additional_endpoints: @additional_endpoints, - listen_port: node['dd-agent-install']['agent_port'], - bind_host: node['dd-agent-install']['bind_host'], - skip_ssl_validation: node['dd-agent-install']['web_proxy']['skip_ssl_validation'], - tags: tags, - create_dd_check_tags: node['dd-agent-install']['create_dd_check_tags'], - collect_ec2_tags: node['dd-agent-install']['collect_ec2_tags'], - non_local_traffic: node['dd-agent-install']['non_local_traffic'], - histogram_aggregates: string_list_to_array(node['dd-agent-install']['histogram_aggregates']), - histogram_percentiles: string_list_to_array(node['dd-agent-install']['histogram_percentiles']), # TODO: check that the value works with agent6 - use_dogstatsd: node['dd-agent-install']['dogstatsd'], - log_level: node['dd-agent-install']['log_level'], # TODO: make sure it's a seelog-compatible log level - - # log agent options - logs_enabled: node['dd-agent-install']['enable_logs_agent'] -}) - -if node['dd-agent-install']['log_file_directory'] - agent_config['log_file'] = ::File.join(node['dd-agent-install']['log_file_directory'], "agent.log") -end - -if node['dd-agent-install']['use_v2_api'] - agent_config['use_v2_api'] = node['dd-agent-install']['use_v2_api'] -end - -if node['dd-agent-install']['syslog']['active'] - agent_config['log_to_syslog'] = true - # TODO: double check the udp settings work with agent6 - if node['dd-agent-install']['syslog']['udp'] - agent_config['syslog_uri'] = "#{node['dd-agent-install']['syslog']['host']}:#{node['dd-agent-install']['syslog']['port']}" - end -end - -# Set proxy options -if !http_proxy.nil? - agent_config['proxy'] = { - http: http_proxy, - https: http_proxy - } -end - -# Remove nil values -agent_config.reject!{ |k,v| v.nil? } - --%> -# Generated by Chef, local modifications will be overwritten - -<%= JSON.parse(agent_config.to_json).to_yaml %> diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/directory.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/directory.yaml.erb deleted file mode 100644 index 26413d4f9d601..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/directory.yaml.erb +++ /dev/null @@ -1,15 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -instances: -<% @instances.each do |i| -%> - - directory: "<%= i['directory'] %>" - <% if i['name'] -%>name: "<%= i['name'] %>"<% end -%> - <% if i['dirtagname'] -%>dirtagname: "<%= i['dirtagname'] %>"<% end -%> - <% if i['filetagname'] -%>filetagname: "<%= i['filetagname'] %>"<% end -%> - <% if i.key?('filegauges') -%>filegauges: <%= i['filegauges'] %><% end -%> - <% if i['pattern'] -%>pattern: "<%= i['pattern'] %>"<% end -%> - <% if i.key?('recursive') -%>recursive: <%= i['recursive'] %><% end -%> -<% end -%> - -# Nothing to configure here -init_config: diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/disk.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/disk.yaml.erb deleted file mode 100644 index 70a04547944bc..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/disk.yaml.erb +++ /dev/null @@ -1,3 +0,0 @@ -# Generated by Chef, local modifications will be overwritten - -<%= JSON.parse(({ 'instances' => @instances, 'init_config' => @init_config, 'logs' => @logs }).to_json).to_yaml %> diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/dns_check.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/dns_check.yaml.erb deleted file mode 100644 index 62207e78d22f3..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/dns_check.yaml.erb +++ /dev/null @@ -1,13 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -instances: - <% @instances.each do |i| -%> - - hostname: <%= i["hostname"] %> - nameserver: <%= i["nameserver"] || '127.0.0.1' %> - <% unless i["timeout"].nil? %> - timeout: <%= i["timeout"] %> - <% end %> - <% end %> - -init_config: - default_timeout: 4 diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/docker.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/docker.yaml.erb deleted file mode 100644 index 3b2d3b1ef91f3..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/docker.yaml.erb +++ /dev/null @@ -1,13 +0,0 @@ -# Generated by Chef, local modifications will be overwritten - -<%= JSON.parse(({ 'instances' => @instances, 'logs' => @logs }).to_json).to_yaml %> - -init_config: - <% if @init_config %> - <% if @init_config.key?('docker_root') -%> - docker_root: <%= @init_config['docker_root'] %> - <% end -%> - <% if @init_config.key?('socket_timeout') -%> - socket_timeout: <%= @init_config['socket_timeout'] %> - <% end -%> - <% end -%> diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/docker_daemon.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/docker_daemon.yaml.erb deleted file mode 100644 index 1b3b8c08cbd1d..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/docker_daemon.yaml.erb +++ /dev/null @@ -1,3 +0,0 @@ -# Generated by Chef, local modifications will be overwritten - -<%= JSON.parse(({ 'init_config' => @init_config, 'instances' => @instances, 'logs' => @logs }).to_json).to_yaml %> diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/elastic.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/elastic.yaml.erb deleted file mode 100644 index 37e077e263394..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/elastic.yaml.erb +++ /dev/null @@ -1,48 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -instances: - <% @instances.each do |i| -%> - - url: <%= i["url"] %> - <% unless i["shard_level_metrics"].nil? %> - shard_level_metrics: <%= i["shard_level_metrics"] %> - <% end %> - <% unless i["pshard_stats"].nil? %> - pshard_stats: <%= i["pshard_stats"] %> - <% end %> - <% unless i["cluster_stats"].nil? %> - cluster_stats: <%= i["cluster_stats"] %> - <% end %> - <% unless i["is_external"].nil? %> - is_external: <%= i["is_external"] %> - <% end %> - <% unless i["username"].nil? %> - username: <%= i["username"] %> - <% end %> - <% unless i["password"].nil? %> - password: <%= i["password"] %> - <% end %> - <% unless i["timeout"].nil? %> - timeout: <%= i["timeout"] %> - <% end %> - <% unless i["pending_task_stats"].nil? %> - pending_task_stats: <%= i["pending_task_stats"] %> - <% end %> - <% unless i["ssl_verify"].nil? %> - ssl_verify: <%= i["ssl_verify"] %> - <% end %> - <% unless i["ssl_cert"].nil? %> - ssl_cert: <%= i["ssl_cert"] %> - <% end %> - <% unless i["ssl_key"].nil? %> - ssl_key: <%= i["ssl_key"] %> - <% end %> - <% if i.key?('tags') -%> - tags: - <% i['tags'].each do |t| -%> - - <%= t %> - <% end -%> - <% end -%> - <% end %> - -# Nothing to configure below -init_config: diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/etcd.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/etcd.yaml.erb deleted file mode 100644 index 8473daa4a1cc2..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/etcd.yaml.erb +++ /dev/null @@ -1,20 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -instances: -<% @instances.each do |i| -%> - - url: <%= i['url'] %> - <% if i['timeout'] -%>timeout: <%= i['timeout'] %><% end -%> - <% if i['ssl_keyfile'] -%>ssl_keyfile: <%= i['ssl_keyfile'] %><% end -%> - <% if i['ssl_certfile'] -%>ssl_certfile: <%= i['ssl_certfile'] %><% end -%> - <% if i['ssl_cert_validation'] -%>ssl_cert_validation: <%= i['ssl_cert_validation'] %><% end -%> - <% if i['ssl_ca_certs'] -%>ssl_ca_certs: <%= i['ssl_ca_certs'] %><% end -%> - <% if i.key?('tags') -%> - tags: - <% i['tags'].each do |t| -%> - - <%= t %> - <% end -%> - <% end -%> -<% end -%> - -# Nothing to configure here -init_config: diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/fluentd.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/fluentd.yaml.erb deleted file mode 100644 index f09867a7e9efd..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/fluentd.yaml.erb +++ /dev/null @@ -1,4 +0,0 @@ -<%= JSON.parse(({ 'instances' => @instances, 'logs' => @logs }).to_json).to_yaml %> - -# Nothing to configure here -init_config: diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/go-metro.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/go-metro.yaml.erb deleted file mode 100644 index 7351b887819c4..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/go-metro.yaml.erb +++ /dev/null @@ -1,4 +0,0 @@ -# Generated by Chef, local modifications will be overwritten - -<%= JSON.parse(({ 'init_config' => @init_config, 'instances' => @instances, 'logs' => @logs}).to_json).to_yaml %> - diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/go_expvar.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/go_expvar.yaml.erb deleted file mode 100644 index 1b3b8c08cbd1d..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/go_expvar.yaml.erb +++ /dev/null @@ -1,3 +0,0 @@ -# Generated by Chef, local modifications will be overwritten - -<%= JSON.parse(({ 'init_config' => @init_config, 'instances' => @instances, 'logs' => @logs }).to_json).to_yaml %> diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/gunicorn.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/gunicorn.yaml.erb deleted file mode 100644 index 2b40a714fdc97..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/gunicorn.yaml.erb +++ /dev/null @@ -1,15 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -instances: -<% @instances.each do |i| -%> - - proc_name: <%= i['proc_name'] %> - <% if i.key?('tags') -%> - tags: - <% i['tags'].each do |t| -%> - - <%= t %> - <% end -%> - <% end -%> -<% end -%> - -# Nothing to configure here -init_config: diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/haproxy.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/haproxy.yaml.erb deleted file mode 100644 index 1afb39166aecf..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/haproxy.yaml.erb +++ /dev/null @@ -1,17 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -<% excluded_keys = ["url", "username", "password"] -%> -instances: - <% @instances.each do |i| -%> - - url: <%= i['url'] %> - <% if i.key?('username') && i.key?('password') -%> - username: <%= i['username'] %> - password: <%= i['password'] %> - <% end -%> - <% (i.keys - excluded_keys).each do |key| -%> - <%= key %>: <%= i[key] %> - <% end -%> - <% end -%> - -# Nothing to configure below -init_config: diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/hdfs.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/hdfs.yaml.erb deleted file mode 100644 index 9643fb11012a7..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/hdfs.yaml.erb +++ /dev/null @@ -1,18 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -# Each instance requires a namenode hostname. -# Port defaults to 8020. -instances: - <% @instances.each do |instance| -%> - - namenode: <%= instance.fetch("fqdn"){ node["fqdn"] } %> - port: <%= instance.fetch("port", 8020) %> - <% if instance.key?("tags") -%> - tags: - <% instance["tags"].each do |tag| -%> - - <%= tag %> - <% end -%> - <% end -%> - <% end -%> - -# HDFS check does not require any init_config -init_config: diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/http_check.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/http_check.yaml.erb deleted file mode 100644 index 5f39a4d59e5c2..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/http_check.yaml.erb +++ /dev/null @@ -1,5 +0,0 @@ -<%# Sanitize the compiled Mash to standard Array/Hash objects by way of JSON -%> -<%= JSON.parse(({ 'instances' => @instances, 'logs' => @logs }).to_json).to_yaml %> - -init_config: -# Nothing to configure here diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/iis.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/iis.yaml.erb deleted file mode 100644 index 8176b70ce29f3..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/iis.yaml.erb +++ /dev/null @@ -1,41 +0,0 @@ -# Generated by Chef, local modifications will be overwritten - -# By default, this check will run against a single instance - the current -# machine that the Agent is running on. It will check the WMI performance -# counters for IIS on that machine. -# -# If you want to check other remote machines as well, you can add one -# instance per host. Note: If you also want to check the counters on the -# current machine, you will have to create an instance with empty params. - -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -instances: - <% @instances.each do |i| -%> - <% if i['host'] == 'localhost' -%> - - host: . - <% else -%> - - host: <%= i['host'] %> - <% end -%> - <% if i.key?('username') -%> - username: <%= i['username'] %> - password: <%= i['password'] %> - <% end -%> - <% if i.key?('provider') -%> - provider: <%= i['provider'] %> - <% end -%> - <% if i.key?('tags') -%> - tags: - <% i['tags'].each do |t| -%> - - <%= t %> - <% end -%> - <% end -%> - <% if i.key?('sites') -%> - sites: - <% i['sites'].each do |s| -%> - - <%= s %> - <% end -%> - <% end -%> - <% end -%> - -init_config: diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/integration.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/integration.yaml.erb deleted file mode 100644 index 70a04547944bc..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/integration.yaml.erb +++ /dev/null @@ -1,3 +0,0 @@ -# Generated by Chef, local modifications will be overwritten - -<%= JSON.parse(({ 'instances' => @instances, 'init_config' => @init_config, 'logs' => @logs }).to_json).to_yaml %> diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/jenkins.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/jenkins.yaml.erb deleted file mode 100644 index 3f81fdfde8b20..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/jenkins.yaml.erb +++ /dev/null @@ -1,9 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -instances: - <% @instances.each do |i| -%> - - name: <%= i['name'] %> - jenkins_home: <%= i['home'] %> - <% end -%> - -init_config: diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/jmx.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/jmx.yaml.erb deleted file mode 100644 index 5f39a4d59e5c2..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/jmx.yaml.erb +++ /dev/null @@ -1,5 +0,0 @@ -<%# Sanitize the compiled Mash to standard Array/Hash objects by way of JSON -%> -<%= JSON.parse(({ 'instances' => @instances, 'logs' => @logs }).to_json).to_yaml %> - -init_config: -# Nothing to configure here diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/kafka.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/kafka.yaml.erb deleted file mode 100644 index 45bb4ef39ff63..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/kafka.yaml.erb +++ /dev/null @@ -1,553 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -instances: - <% @instances.each do |i| -%> - - host: <%= i['host'] %> - port: <%= i['port'] %> - <% if i['name'] -%> - name: <%= i['name'] %> - <% end -%> - <% if i['user'] -%> - user: <%= i['user'] %> - <% end -%> - <% if i['password'] -%> - password: <%= i['password'] %> - <% end -%> - <% if i['process_name_regex'] and i['tools_jar_path'] -%> - process_name_regex: <%= i['process_name_regex'] %> # Instead of specifying a host, and port. The agent can connect using the attach api. - # This requires the JDK to be installed and the path to tools.jar to be set below. - tools_jar_path: <%= i['tools_jar_path'] %> - <% end -%> - <% if i['java_bin_path'] -%> - java_bin_path: <%= i['java_bin_path'] %> #Optional, should be set if the agent cannot find your java executable - <% end -%> - <% if i['trust_store_path'] -%> - trust_store_path: <%= i['trust_store_path'] %> # Optional, should be set if ssl is enabled - <% end -%> - <% if i['trust_store_password'] -%> - trust_store_password: <%= i['trust_store_password'] %> - <% end -%> - <% if i.key?('tags') -%> - tags: - <% i['tags'].each do |k, v| -%> - <%= k %>: <%= v %> - <% end -%> - <% end -%> - <% end -%> - -<% if @version == 2 %> -init_config: - is_jmx: true - - # Metrics collected by this check. You should not have to modify this. - conf: - # v0.8.2.x Producers - - include: - domain: 'kafka.producer' - bean_regex: 'kafka\.producer:type=ProducerRequestMetrics,name=ProducerRequestRateAndTimeMs,clientId=.*' - attribute: - Count: - metric_type: rate - alias: kafka.producer.request_rate - - include: - domain: 'kafka.producer' - bean_regex: 'kafka\.producer:type=ProducerRequestMetrics,name=ProducerRequestRateAndTimeMs,clientId=.*' - attribute: - Mean: - metric_type: gauge - alias: kafka.producer.request_latency_avg - - include: - domain: 'kafka.producer' - bean_regex: 'kafka\.producer:type=ProducerTopicMetrics,name=BytesPerSec,clientId=.*' - attribute: - Count: - metric_type: rate - alias: kafka.producer.bytes_out - - include: - domain: 'kafka.producer' - bean_regex: 'kafka\.producer:type=ProducerTopicMetrics,name=MessagesPerSec,clientId=.*' - attribute: - Count: - metric_type: rate - alias: kafka.producer.message_rate - - - # v0.9.0.x Producers - - include: - domain: 'kafka.producer' - bean_regex: 'kafka\.producer:type=producer-metrics,client-id=.*' - attribute: - response-rate: - metric_type: gauge - alias: kafka.producer.response_rate - - include: - domain: 'kafka.producer' - bean_regex: 'kafka\.producer:type=producer-metrics,client-id=.*' - attribute: - request-rate: - metric_type: gauge - alias: kafka.producer.request_rate - - include: - domain: 'kafka.producer' - bean_regex: 'kafka\.producer:type=producer-metrics,client-id=.*' - attribute: - request-latency-avg: - metric_type: gauge - alias: kafka.producer.request_latency_avg - - include: - domain: 'kafka.producer' - bean_regex: 'kafka\.producer:type=producer-metrics,client-id=.*' - attribute: - outgoing-byte-rate: - metric_type: gauge - alias: kafka.producer.bytes_out - - include: - domain: 'kafka.producer' - bean_regex: 'kafka\.producer:type=producer-metrics,client-id=.*' - attribute: - io-wait-time-ns-avg: - metric_type: gauge - alias: kafka.producer.io_wait - - - # v0.8.2.x Consumers - - include: - domain: 'kafka.consumer' - bean_regex: 'kafka\.consumer:type=ConsumerFetcherManager,name=MaxLag,clientId=.*' - attribute: - Value: - metric_type: gauge - alias: kafka.consumer.max_lag - - include: - domain: 'kafka.consumer' - bean_regex: 'kafka\.consumer:type=ConsumerFetcherManager,name=MinFetchRate,clientId=.*' - attribute: - Value: - metric_type: gauge - alias: kafka.consumer.fetch_rate - - include: - domain: 'kafka.consumer' - bean_regex: 'kafka\.consumer:type=ConsumerTopicMetrics,name=BytesPerSec,clientId=.*' - attribute: - Count: - metric_type: rate - alias: kafka.consumer.bytes_in - - include: - domain: 'kafka.consumer' - bean_regex: 'kafka\.consumer:type=ConsumerTopicMetrics,name=MessagesPerSec,clientId=.*' - attribute: - Count: - metric_type: rate - alias: kafka.consumer.messages_in - - # Offsets committed to ZooKeeper - - include: - domain: 'kafka.consumer' - bean_regex: 'kafka\.consumer:type=ZookeeperConsumerConnector,name=ZooKeeperCommitsPerSec,clientId=.*' - attribute: - Count: - metric_type: rate - alias: kafka.consumer.zookeeper_commits - # Offsets committed to Kafka - - include: - domain: 'kafka.consumer' - bean_regex: 'kafka\.consumer:type=ZookeeperConsumerConnector,name=KafkaCommitsPerSec,clientId=.*' - attribute: - Count: - metric_type: rate - alias: kafka.consumer.kafka_commits - - # v0.9.0.x Consumers - - include: - domain: 'kafka.consumer' - bean_regex: 'kafka\.consumer:type=consumer-fetch-manager-metrics,client-id=.*' - attribute: - bytes-consumed-rate: - metric_type: gauge - alias: kafka.consumer.bytes_in - - include: - domain: 'kafka.consumer' - bean_regex: 'kafka\.consumer:type=consumer-fetch-manager-metrics,client-id=.*' - attribute: - records-consumed-rate: - metric_type: gauge - alias: kafka.consumer.messages_in - - # - # Aggregate cluster stats - # - - include: - domain: 'kafka.server' - bean: 'kafka.server:type=BrokerTopicMetrics,name=BytesOutPerSec' - attribute: - Count: - metric_type: rate - alias: kafka.net.bytes_out.rate - - include: - domain: 'kafka.server' - bean: 'kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec' - attribute: - Count: - metric_type: rate - alias: kafka.net.bytes_in.rate - - include: - domain: 'kafka.server' - bean: 'kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec' - attribute: - Count: - metric_type: rate - alias: kafka.messages_in.rate - - include: - domain: 'kafka.server' - bean: 'kafka.server:type=BrokerTopicMetrics,name=BytesRejectedPerSec' - attribute: - Count: - metric_type: rate - alias: kafka.net.bytes_rejected.rate - - # - # Request timings - # - - include: - domain: 'kafka.server' - bean: 'kafka.server:type=BrokerTopicMetrics,name=FailedFetchRequestsPerSec' - attribute: - Count: - metric_type: rate - alias: kafka.request.fetch.failed.rate - - include: - domain: 'kafka.server' - bean: 'kafka.server:type=BrokerTopicMetrics,name=FailedProduceRequestsPerSec' - attribute: - Count: - metric_type: rate - alias: kafka.request.produce.failed.rate - - include: - domain: 'kafka.network' - bean: 'kafka.network:type=RequestMetrics,name=RequestsPerSec,request=Produce' - attribute: - Count: - metric_type: rate - alias: kafka.request.produce.rate - - include: - domain: 'kafka.network' - bean: 'kafka.network:type=RequestMetrics,name=TotalTimeMs,request=Produce' - attribute: - Mean: - metric_type: gauge - alias: kafka.request.produce.time.avg - 99thPercentile: - metric_type: gauge - alias: kafka.request.produce.time.99percentile - - include: - domain: 'kafka.network' - bean: 'kafka.network:type=RequestMetrics,name=RequestsPerSec,request=FetchConsumer' - attribute: - Count: - metric_type: rate - alias: kafka.request.fetch_consumer.rate - - include: - domain: 'kafka.network' - bean: 'kafka.network:type=RequestMetrics,name=RequestsPerSec,request=FetchFollower' - attribute: - Count: - metric_type: rate - alias: kafka.request.fetch_follower.rate - - include: - domain: 'kafka.network' - bean: 'kafka.network:type=RequestMetrics,name=TotalTimeMs,request=FetchConsumer' - attribute: - Mean: - metric_type: gauge - alias: kafka.request.fetch_consumer.time.avg - 99thPercentile: - metric_type: gauge - alias: kafka.request.fetch_consumer.time.99percentile - - include: - domain: 'kafka.network' - bean: 'kafka.network:type=RequestMetrics,name=TotalTimeMs,request=FetchFollower' - attribute: - Mean: - metric_type: gauge - alias: kafka.request.fetch_follower.time.avg - 99thPercentile: - metric_type: gauge - alias: kafka.request.fetch_follower.time.99percentile - - include: - domain: 'kafka.network' - bean: 'kafka.network:type=RequestMetrics,name=TotalTimeMs,request=UpdateMetadata' - attribute: - Mean: - metric_type: gauge - alias: kafka.request.update_metadata.time.avg - 99thPercentile: - metric_type: gauge - alias: kafka.request.update_metadata.time.99percentile - - include: - domain: 'kafka.network' - bean: 'kafka.network:type=RequestMetrics,name=TotalTimeMs,request=Metadata' - attribute: - Mean: - metric_type: gauge - alias: kafka.request.metadata.time.avg - 99thPercentile: - metric_type: gauge - alias: kafka.request.metadata.time.99percentile - - include: - domain: 'kafka.network' - bean: 'kafka.network:type=RequestMetrics,name=TotalTimeMs,request=Offsets' - attribute: - Mean: - metric_type: gauge - alias: kafka.request.offsets.time.avg - 99thPercentile: - metric_type: gauge - alias: kafka.request.offsets.time.99percentile - - include: - domain: 'kafka.server' - bean: 'kafka.server:type=KafkaRequestHandlerPool,name=RequestHandlerAvgIdlePercent' - attribute: - Count: - metric_type: rate - alias: kafka.request.handler.avg.idle.pct.rate - - include: - domain: 'kafka.server' - bean: 'kafka.server:type=ProducerRequestPurgatory,name=PurgatorySize' - attribute: - Value: - metric_type: gauge - alias: kafka.request.producer_request_purgatory.size - - include: - domain: 'kafka.server' - bean: 'kafka.server:type=FetchRequestPurgatory,name=PurgatorySize' - attribute: - Value: - metric_type: gauge - alias: kafka.request.fetch_request_purgatory.size - - # - # Replication stats - # - - include: - domain: 'kafka.server' - bean: 'kafka.server:type=ReplicaManager,name=UnderReplicatedPartitions' - attribute: - Value: - metric_type: gauge - alias: kafka.replication.under_replicated_partitions - - include: - domain: 'kafka.server' - bean: 'kafka.server:type=ReplicaManager,name=IsrShrinksPerSec' - attribute: - Count: - metric_type: rate - alias: kafka.replication.isr_shrinks.rate - - include: - domain: 'kafka.server' - bean: 'kafka.server:type=ReplicaManager,name=IsrExpandsPerSec' - attribute: - Count: - metric_type: rate - alias: kafka.replication.isr_expands.rate - - include: - domain: 'kafka.controller' - bean: 'kafka.controller:type=ControllerStats,name=LeaderElectionRateAndTimeMs' - attribute: - Count: - metric_type: rate - alias: kafka.replication.leader_elections.rate - - include: - domain: 'kafka.controller' - bean: 'kafka.controller:type=ControllerStats,name=UncleanLeaderElectionsPerSec' - attribute: - Count: - metric_type: rate - alias: kafka.replication.unclean_leader_elections.rate - - include: - domain: 'kafka.controller' - bean: 'kafka.controller:type=KafkaController,name=OfflinePartitionsCount' - attribute: - Value: - metric_type: gauge - alias: kafka.replication.offline_partitions_count - - include: - domain: 'kafka.controller' - bean: 'kafka.controller:type=KafkaController,name=ActiveControllerCount' - attribute: - Value: - metric_type: gauge - alias: kafka.replication.active_controller_count - - include: - domain: 'kafka.server' - bean: 'kafka.server:type=ReplicaManager,name=PartitionCount' - attribute: - Value: - metric_type: gauge - alias: kafka.replication.partition_count - - include: - domain: 'kafka.server' - bean: 'kafka.server:type=ReplicaManager,name=LeaderCount' - attribute: - Value: - metric_type: gauge - alias: kafka.replication.leader_count - - include: - domain: 'kafka.server' - bean: 'kafka.server:type=ReplicaFetcherManager,name=MaxLag,clientId=Replica' - attribute: - Value: - metric_type: gauge - alias: kafka.replication.max_lag - - # - # Log flush stats - # - - include: - domain: 'kafka.log' - bean: 'kafka.log:type=LogFlushStats,name=LogFlushRateAndTimeMs' - attribute: - Count: - metric_type: rate - alias: kafka.log.flush_rate.rate -<% else %> -init_config: - is_jmx: true - - # Metrics collected by this check. You should not have to modify this. - conf: - # - # Aggregate cluster stats - # - - include: - domain: '"kafka.server"' - bean: '"kafka.server":type="BrokerTopicMetrics",name="AllTopicsBytesOutPerSec"' - attribute: - MeanRate: - metric_type: gauge - alias: kafka.net.bytes_out - - include: - domain: '"kafka.server"' - bean: '"kafka.server":type="BrokerTopicMetrics",name="AllTopicsBytesInPerSec"' - attribute: - MeanRate: - metric_type: gauge - alias: kafka.net.bytes_in - - include: - domain: '"kafka.server"' - bean: '"kafka.server":type="BrokerTopicMetrics",name="AllTopicsMessagesInPerSec"' - attribute: - MeanRate: - metric_type: gauge - alias: kafka.messages_in - - # - # Request timings - # - - include: - domain: '"kafka.server"' - bean: '"kafka.server":type="BrokerTopicMetrics",name="AllTopicsFailedFetchRequestsPerSec"' - attribute: - MeanRate: - metric_type: gauge - alias: kafka.request.fetch.failed - - include: - domain: '"kafka.server"' - bean: '"kafka.server":type="BrokerTopicMetrics",name="AllTopicsFailedProduceRequestsPerSec"' - attribute: - MeanRate: - metric_type: gauge - alias: kafka.request.produce.failed - - include: - domain: '"kafka.network"' - bean: '"kafka.network":type="RequestMetrics",name="Produce-TotalTimeMs"' - attribute: - Mean: - metric_type: gauge - alias: kafka.request.produce.time.avg - 99thPercentile: - metric_type: gauge - alias: kafka.request.produce.time.99percentile - - include: - domain: '"kafka.network"' - bean: '"kafka.network":type="RequestMetrics",name="Fetch-TotalTimeMs"' - attribute: - Mean: - metric_type: gauge - alias: kafka.request.fetch.time.avg - 99thPercentile: - metric_type: gauge - alias: kafka.request.fetch.time.99percentile - - include: - domain: '"kafka.network"' - bean: '"kafka.network":type="RequestMetrics",name="UpdateMetadata-TotalTimeMs"' - attribute: - Mean: - metric_type: gauge - alias: kafka.request.update_metadata.time.avg - 99thPercentile: - metric_type: gauge - alias: kafka.request.update_metadata.time.99percentile - - include: - domain: '"kafka.network"' - bean: '"kafka.network":type="RequestMetrics",name="Metadata-TotalTimeMs"' - attribute: - Mean: - metric_type: gauge - alias: kafka.request.metadata.time.avg - 99thPercentile: - metric_type: gauge - alias: kafka.request.metadata.time.99percentile - - include: - domain: '"kafka.network"' - bean: '"kafka.network":type="RequestMetrics",name="Offsets-TotalTimeMs"' - attribute: - Mean: - metric_type: gauge - alias: kafka.request.offsets.time.avg - 99thPercentile: - metric_type: gauge - alias: kafka.request.offsets.time.99percentile - - # - # Replication stats - # - - include: - domain: '"kafka.server"' - bean: '"kafka.server":type="ReplicaManager",name="ISRShrinksPerSec"' - attribute: - MeanRate: - metric_type: gauge - alias: kafka.replication.isr_shrinks - - include: - domain: '"kafka.server"' - bean: '"kafka.server":type="ReplicaManager",name="ISRExpandsPerSec"' - attribute: - MeanRate: - metric_type: gauge - alias: kafka.replication.isr_expands - - include: - domain: '"kafka.server"' - bean: '"kafka.server":type="ControllerStats",name="LeaderElectionRateAndTimeMs"' - attribute: - MeanRate: - metric_type: gauge - alias: kafka.replication.leader_elections - - include: - domain: '"kafka.server"' - bean: '"kafka.server":type="ControllerStats",name="UncleanLeaderElectionsPerSec"' - attribute: - MeanRate: - metric_type: gauge - alias: kafka.replication.unclean_leader_elections - - # - # Log flush stats - # - - include: - domain: '"kafka.log"' - bean: '"kafka.log":type="LogFlushStats",name="LogFlushRateAndTimeMs"' - attribute: - MeanRate: - metric_type: gauge - alias: kafka.log.flush_rate -<% end %> diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/kafka_consumer.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/kafka_consumer.yaml.erb deleted file mode 100644 index 68c6d23bfdc41..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/kafka_consumer.yaml.erb +++ /dev/null @@ -1,23 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -instances: - <% @instances.each do |i| -%> - - kafka_connect_str: <%= i['kafka_connect_str'] %> - zk_connect_str: <%= i['zk_connect_str'] %> - <% if i['zk_prefix'] -%> - zk_prefix: <%= i['zk_prefix'] %> - <% end -%> - <% if i['consumer_groups'] -%> - consumer_groups: <%= i['name'] %> - <% i["consumer_groups"].each do |consumer, t| -%> - <%= consumer %>: - <% t.each do |topic, l| -%> - <%= topic %>: <%= l %> - <% end -%> - <% end -%> - <% end -%> - <% end -%> - -init_config: -# The Kafka Consumer check does not require any init_config - diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/kubernetes.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/kubernetes.yaml.erb deleted file mode 100644 index f09867a7e9efd..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/kubernetes.yaml.erb +++ /dev/null @@ -1,4 +0,0 @@ -<%= JSON.parse(({ 'instances' => @instances, 'logs' => @logs }).to_json).to_yaml %> - -# Nothing to configure here -init_config: diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/kyototycoon.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/kyototycoon.yaml.erb deleted file mode 100644 index 3d9caa307304a..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/kyototycoon.yaml.erb +++ /dev/null @@ -1,19 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -# Add one or more instances, which accept report_url, -# name, and optionally tags keys. The report URL should -# be a URL to the Kyoto Tycoon "report" RPC endpoint. -instances: - <% @instances.each do |i| -%> - - name: <%= i['name'] %> - report_url: <%= i['report_url'] %> # e.g. http://localhost:1978/rpc/report - <% if i.key?('tags') -%> - tags: - <% @tags.each do |k, v| -%> - <%= k %>: <%= v %> - <% end -%> - <% end -%> - <% end -%> - -init_config: -# The Kyoto Tycoon check does not require any init_config diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/lighttpd.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/lighttpd.yaml.erb deleted file mode 100644 index e2ab2f0205b94..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/lighttpd.yaml.erb +++ /dev/null @@ -1,15 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -instances: - <% @instances.each do |i| -%> - - lighttpd_status_url: <%= i['status_url'] %> - <% if i.key?('tags') -%> - tags: - <% i['tags'].each_pair do |k, v| -%> - - <%= k %>: <%= v %> - <% end -%> - <% end -%> - <% end -%> - -init_config: -# No init_config section needed diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/mcache.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/mcache.yaml.erb deleted file mode 100644 index c64cca9687d7b..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/mcache.yaml.erb +++ /dev/null @@ -1,18 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -instances: - <% @instances.each do |i| -%> - - url: <%= i['url'] %> - <% if i.key?('port') -%> - port: <%= i['port'] %> - <% end -%> - <% if i.key?('tags') -%> - tags: - <% i['tags'].each do |t| -%> - - <%= t %> - <% end -%> - <% end -%> - <% end -%> - -init_config: -# No init_config section needed diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/mesos.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/mesos.yaml.erb deleted file mode 100644 index 88097d78f8f7f..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/mesos.yaml.erb +++ /dev/null @@ -1,8 +0,0 @@ -# Generated by Chef, local modifications will be overwritten - -<%= JSON.parse(({ 'instances' => @instances, 'logs' => @logs }).to_json).to_yaml %> - -init_config: - <% if @init_config.key?('default_timeout') -%> - default_timeout: <%= @init_config['default_timeout'] %> - <% end -%> diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/mongo.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/mongo.yaml.erb deleted file mode 100644 index cd45bae7c1532..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/mongo.yaml.erb +++ /dev/null @@ -1,35 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -instances: - <% @instances.each do |i| -%> - - server: mongodb://<%= i['host']%>:<%= i['port'] %> - <% if i.key?('tags') -%> - tags: - <% i['tags'].each do |t| -%> - - <%= t %> - <% end -%> - <% end -%> - <% if i.key?('ssl') -%> - ssl: <%= i['ssl'] %> - ssl_ca_certs: <%= i['ssl_ca_certs'] %> - ssl_cert_reqs: <%= i['ssl_cert_reqs'] %> - ssl_certfile: <%= i['ssl_certfile'] %> - ssl_keyfile: <%= i['ssl_keyfile'] %> - <% end %> - <% if i.key?('additional_metrics') -%> - additional_metrics: - <% i['additional_metrics'].each do |t| %> - - <%= t %> - <%end -%> - <% end %> - <% if i.key?('collections') -%> - collections: - <% i['collections'].each do |t| %> - - <%= t %> - <%end -%> - <% end %> - <% end -%> - -init_config: -# No init_config details needed - diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/mysql.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/mysql.yaml.erb deleted file mode 100644 index e7cc4672fbcd7..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/mysql.yaml.erb +++ /dev/null @@ -1,38 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -instances: -<% @instances.each do |i| -%> - - server: <%= i['server'] %> - <% if i.key?('port') -%> - port: <%= i['port'] %> - <% end -%> - user: <%= i['user'] %> - pass: <%= i['pass'] %> - <% if i.key?('sock') -%> - sock: <%= i['sock'] %> - <% end -%> - <% if i.key?('tags') -%> - tags: - <% i['tags'].each do |t| -%> - - <%= t %> - <% end -%> - <% end -%> - <% if i.key?('options') -%> - options: - <% i['options'].each do |o| -%> - <%= o %> - <% end -%> - <% end -%> - <% if i.key?('queries') -%> - queries: - <% i['queries'].each do |q| -%> - - type: <%= q['type'] %> - field: <%= q['field'] %> - metric: <%= q['metric'] %> - query: <%= q['query'] %> - <% end -%> - <% end -%> -<% end -%> - -# Nothing to configure here -init_config: diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/network.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/network.yaml.erb deleted file mode 100644 index 8646ba6c06d41..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/network.yaml.erb +++ /dev/null @@ -1,13 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -init_config: - -# Network check supports only one configured instance -instances: -<% @instances.each do |i| -%> - - collect_connection_state: <%= i['collect_connection_state'] || 'false' %> - excluded_interfaces: - <% i["excluded_interfaces"].each do |interface| -%> - - <%= interface %> - <% end -%> -<% end -%> diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/nginx.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/nginx.yaml.erb deleted file mode 100644 index bda9413ab5448..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/nginx.yaml.erb +++ /dev/null @@ -1,23 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -instances: -<% @instances.each do |i| -%> - - nginx_status_url: <%= i['nginx_status_url'] %> - <% unless i['ssl_validation'].nil? -%> - ssl_validation: <%= i['ssl_validation'] %> - <% end -%> - <%# don't print user/password if either is nil -%> - <% unless i['user'].nil? || i['password'].nil? -%> - user: <%= i['user'] %> - password: <%= i['password'] %> - <% end -%> - <% if i.key?('tags') -%> - tags: - <% i['tags'].each do |t| -%> - - <%= t %> - <% end -%> - <% end -%> -<% end -%> - -# Nothing to configure here -init_config: diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/ntp.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/ntp.yaml.erb deleted file mode 100644 index 5f39a4d59e5c2..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/ntp.yaml.erb +++ /dev/null @@ -1,5 +0,0 @@ -<%# Sanitize the compiled Mash to standard Array/Hash objects by way of JSON -%> -<%= JSON.parse(({ 'instances' => @instances, 'logs' => @logs }).to_json).to_yaml %> - -init_config: -# Nothing to configure here diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/pgbouncer.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/pgbouncer.yaml.erb deleted file mode 100644 index d6f4ae3cde641..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/pgbouncer.yaml.erb +++ /dev/null @@ -1,6 +0,0 @@ -# Generated by Chef, local modifications will be overwritten - -<%= JSON.parse(({ 'instances' => @instances, 'logs' => @logs }).to_json).to_yaml %> - -init_config: -# Nothing to configure here diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/php_fpm.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/php_fpm.yaml.erb deleted file mode 100644 index c4b509c7e7881..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/php_fpm.yaml.erb +++ /dev/null @@ -1,4 +0,0 @@ -<%= JSON.parse(({ 'instances' => @instances, 'logs' => @logs }).to_json).to_yaml %> - -init_config: -# nothing to add here diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/postfix.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/postfix.yaml.erb deleted file mode 100644 index ead1e879187c1..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/postfix.yaml.erb +++ /dev/null @@ -1,21 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -# Each instance requires a directory and an array of queues. -# Tags are optional. -instances: - <% @instances.each do |instance| -%> - - directory: <%= instance['directory'] %> - queues: - <% Array(instance['queues']).each do |queue| -%> - - <%= queue %> - <% end -%> - <% if instance.key?('tags') -%> - tags: - <% Array(instance['tags']).each do |tag| -%> - - <%= tag %> - <% end -%> - <% end -%> - <% end -%> - -# Postfix check does not require any init_config -init_config: diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/postgres.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/postgres.yaml.erb deleted file mode 100644 index 0ad4a4f09d45c..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/postgres.yaml.erb +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Chef, local modifications will be overwritten - -<%# TODO: Breaking change, remove defaults -%> -<% - # Apply default transformations to @instances, an ImmutableArray - instances = @instances.to_a - - instances.each do |instance| - # The `server` key renders as a `host` value - # `if` test future-proofs the key from being modified if users change to - # using `host` as their key. - instance['host'] = instance.delete 'server' if instance['server'] - - # If `port` is unspecified, set to 5432 - instance['port'] = 5432 if instance['port'].nil? - end --%> -<%= JSON.parse(({ 'instances' => instances, 'logs' => @logs }).to_json).to_yaml %> - -init_config: -# Nothing to configure here diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/process.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/process.yaml.erb deleted file mode 100644 index 6d65c5a271baf..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/process.yaml.erb +++ /dev/null @@ -1,3 +0,0 @@ -<%= JSON.parse(({ 'instances' => @instances, 'logs' => @logs }).to_json).to_yaml %> - -init_config: \ No newline at end of file diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/rabbitmq.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/rabbitmq.yaml.erb deleted file mode 100644 index 426d4dc34bb69..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/rabbitmq.yaml.erb +++ /dev/null @@ -1,54 +0,0 @@ -# Generated by Chef, local modifications will be overwritten -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -instances: - # for every instance a 'rabbitmq_api_url' must be provided, pointing to the api - # url of the RabbitMQ Management Plugin (http://www.rabbitmq.com/management.html) - # optional: 'rabbitmq_user' (default: guest), 'rabbitmq_pass' (default: guest), 'ssl_verify' (default: true) and 'tag_families' (default: false) -<% @instances.each do |i| -%> - - rabbitmq_api_url: <%= i['api_url'] %> - rabbitmq_user: <%= i['user'] || 'guest' %> - rabbitmq_pass: <%= i['pass'] || 'guest' %> - ssl_verify: <%= i.key?('ssl_verify') ? i['ssl_verify'] : 'true' %> - # https://help.datadoghq.com/hc/en-us/articles/211590103-Tagging-RabbitMQ-queues-by-tag-family - tag_families: <%= i['tag_families'] || 'false' %> - <% if i.key?('tags') -%> - tags: - <% i['tags'].each do |x| -%> - - <%= x %> - <% end -%> - <% end -%> - <% if i.key?('nodes') -%> - nodes: - <% i['nodes'].each do |x| -%> - - <%= x %> - <% end -%> - <% end -%> - <% if i.key?('nodes_regexes') -%> - nodes_regexes: - <% i['nodes_regexes'].each do |x| -%> - - <%= x %> - <% end -%> - <% end -%> - <% if i.key?('queues') -%> - queues: - <% i['queues'].each do |x| -%> - - <%= x %> - <% end -%> - <% end -%> - <% if i.key?('queues_regexes') -%> - queues_regexes: - <% i['queues_regexes'].each do |x| -%> - - <%= x %> - <% end -%> - <% end -%> - <% if i.key?('vhosts') -%> - vhosts: - <% i['vhosts'].each do |x| -%> - - <%= x %> - <% end -%> - <% end -%> -<% end -%> - -# Nothing to configure here -init_config: diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/redisdb.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/redisdb.yaml.erb deleted file mode 100644 index e610af37df9e8..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/redisdb.yaml.erb +++ /dev/null @@ -1,38 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -instances: -<% @instances.each do |i| -%> - <% if i.key?("unix_socket_path") -%> - - unix_socket_path: <%= i["unix_socket_path"] %> - <% else -%> - - host: <%= i["server"] %> - port: <%= i["port"] || 6379 %> - <% end -%> - <% if i.key?("password") -%> - password: <%= i["password"] %> - <% end -%> - <% if i.key?("db") -%> - db: <%= i["db"] %> - <% end -%> - <% if i.key?("tags") -%> - tags: - <% i["tags"].each do |t| -%> - - <%= t %> - <% end -%> - <% end -%> - <% if i.key?("keys") -%> - <% if i.key?("warn_on_missing_keys") -%> - warn_on_missing_keys: <%= i['warn_on_missing_keys'] %> - <% end -%> - keys: - <% i["keys"].each do |k| -%> - - <%= k %> - <% end -%> - <% end -%> - <% if i.key?('slowlog-max-len') -%>slowlog-max-len: <%= i['slowlog-max-len'] %><% end -%> - <% if i.key?('socket_timeout') -%>socket_timeout: <%= i['socket_timeout'] %><% end -%> - <% if i.key?('command_stats') -%>command_stats: <%= i['command_stats'] %><% end -%> -<% end -%> - -init_config: -# nothing to add here diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/riak.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/riak.yaml.erb deleted file mode 100644 index 9f5f1958fbff2..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/riak.yaml.erb +++ /dev/null @@ -1,9 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -instances: -<% @instances.each do |i| -%> - - url: <%= i["url"] %> -<% end -%> - -init_config: -# Nothing to configure here diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/snmp.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/snmp.yaml.erb deleted file mode 100644 index 11b348e06fe94..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/snmp.yaml.erb +++ /dev/null @@ -1,3 +0,0 @@ -# Generated by Chef, local modifications will be overwritten - -<%= JSON.parse(({'init_config' => @init_config, 'instances' => @instances, 'logs' => @logs}).to_json).to_yaml %> diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/solr.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/solr.yaml.erb deleted file mode 100644 index f4e6cd90b24f5..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/solr.yaml.erb +++ /dev/null @@ -1,71 +0,0 @@ -# Generated by Chef, local modifications will be overwritten - -<%= JSON.parse(({ 'instances' => @instances, 'logs' => @logs }).to_json).to_yaml %> - -# List of metrics to be collected by the integration -# Read http://docs.datadoghq.com/integrations/java/ to learn how to customize it -init_config: - conf: - - include: - type: searcher - attribute: - maxDoc: - alias: solr.searcher.maxdoc - metric_type: gauge - numDocs: - alias: solr.searcher.numdocs - metric_type: gauge - warmupTime: - alias: solr.searcher.warmup - metric_type: gauge - - include: - id: org.apache.solr.search.FastLRUCache - attribute: - cumulative_lookups: - alias: solr.cache.lookups - metric_type: counter - cumulative_hits: - alias: solr.cache.hits - metric_type: counter - cumulative_inserts: - alias: solr.cache.inserts - metric_type: counter - cumulative_evictions: - alias: solr.cache.evictions - metric_type: counter - - include: - id: org.apache.solr.search.LRUCache - attribute: - cumulative_lookups: - alias: solr.cache.lookups - metric_type: counter - cumulative_hits: - alias: solr.cache.hits - metric_type: counter - cumulative_inserts: - alias: solr.cache.inserts - metric_type: counter - cumulative_evictions: - alias: solr.cache.evictions - metric_type: counter - - include: - id: org.apache.solr.handler.component.SearchHandler - attribute: - errors: - alias: solr.search_handler.errors - metric_type: counter - requests: - alias: solr.search_handler.requests - metric_type: counter - timeouts: - alias: solr.search_handler.timeouts - metric_type: counter - totalTime: - alias: solr.search_handler.time - metric_type: counter - avgTimePerRequest: - alias: solr.search_handler.avg_time_per_req - metric_type: gauge - avgRequestsPerSecond: - alias: solr.search_handler.avg_requests_per_sec - metric_type: gauge diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/sqlserver.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/sqlserver.yaml.erb deleted file mode 100644 index e44ccc5f42938..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/sqlserver.yaml.erb +++ /dev/null @@ -1,3 +0,0 @@ -# Generated by Chef, local modifications will be overwritten - -<%= JSON.parse(({'init_config' => @init_config, 'instances' => @instances, 'logs' => @logs }).to_json).to_yaml %> diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/ssh_check.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/ssh_check.yaml.erb deleted file mode 100644 index daf37dbcac11d..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/ssh_check.yaml.erb +++ /dev/null @@ -1,26 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -instances: -<% @instances.each do |i| -%> - - host: <%= i['host'] %> - username: <%= i['username'] %> - <% - keys = %w(password port sftp_check private_key_file add_missing_keys tags) - keys.each do |key| - if i.key?(key) - -%> - <%= key %>: <%= i[key] %> - <% - end - end - -%> - <% if i.key?('tags') -%> - tags: - <% i['tags'].each do |t| -%> - - <%= t %> - <% end -%> - <% end -%> -<% end -%> - -# Nothing to configure here -init_config: diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/supervisord.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/supervisord.yaml.erb deleted file mode 100644 index ab6c4d5b09541..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/supervisord.yaml.erb +++ /dev/null @@ -1,6 +0,0 @@ -# Generated by Chef, local modifications will be overwritten - -<%= JSON.parse(({ 'instances' => @instances, 'logs' => @logs }).to_json).to_yaml %> - -# Nothing to configure here -init_config: diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/system_core.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/system_core.yaml.erb deleted file mode 100644 index 5f7e3d4c7ea39..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/system_core.yaml.erb +++ /dev/null @@ -1,9 +0,0 @@ -# Generated by Chef, local modifications will be overwritten -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -init_config: - -instances: - # No configuration is needed for this check. - # A single instance needs to be defined with any value. - - foo: bar diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/system_swap.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/system_swap.yaml.erb deleted file mode 100644 index 489e2bb4ee68a..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/system_swap.yaml.erb +++ /dev/null @@ -1,9 +0,0 @@ -# Generated by Chef, local modifications will be overwritten - -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -# This check takes no initial configuration -init_config: - -instances: - [{}] diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/tcp_check.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/tcp_check.yaml.erb deleted file mode 100644 index 5f39a4d59e5c2..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/tcp_check.yaml.erb +++ /dev/null @@ -1,5 +0,0 @@ -<%# Sanitize the compiled Mash to standard Array/Hash objects by way of JSON -%> -<%= JSON.parse(({ 'instances' => @instances, 'logs' => @logs }).to_json).to_yaml %> - -init_config: -# Nothing to configure here diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/tokumx.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/tokumx.yaml.erb deleted file mode 100644 index a7fbcb3a27ecc..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/tokumx.yaml.erb +++ /dev/null @@ -1,34 +0,0 @@ -<%= JSON.parse(({ 'logs' => @logs }).to_json).to_yaml %> - -instances: - <% @instances.each do |i| -%> - - server: mongodb://<%= i['host']%>:<%= i['port'] %> - <% if i.key?('tags') -%> - tags: - <% i['tags'].each do |t| -%> - - <%= t %> - <% end -%> - <% end -%> - <% if i.key?('ssl') -%> - ssl: <%= i['ssl'] %> - ssl_ca_certs: <%= i['ssl_ca_certs'] %> - ssl_cert_reqs: <%= i['ssl_cert_reqs'] %> - ssl_certfile: <%= i['ssl_certfile'] %> - ssl_keyfile: <%= i['ssl_keyfile'] %> - <% end %> - <% if i.key?('additional_metrics') -%> - additional_metrics: - <% i['additional_metrics'].each do |t| %> - - <%= t %> - <%end -%> - <% end %> - <% if i.key?('collections') -%> - collections: - <% i['collections'].each do |t| %> - - <%= t %> - <%end -%> - <% end %> - <% end -%> - -init_config: -# No init_config details needed diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/tomcat.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/tomcat.yaml.erb deleted file mode 100644 index 17f4c7298b931..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/tomcat.yaml.erb +++ /dev/null @@ -1,78 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -instances: -<% @instances.each do |i| -%> - - host: <%= i["server"] %> - port: <%= i["port"] %> - <% if i.key?("username") -%> - user: <%= i["username"] %> - password: <%= i["password"] %> - <% end -%> - name: <%= i["name"] || "tomcat" %> -<% end -%> - -# List of metrics to be collected by the integration -# You should not need to modify this. -init_config: - conf: - - include: - type: ThreadPool - attribute: - maxThreads: - alias: tomcat.threads.max - metric_type: gauge - currentThreadCount: - alias: tomcat.threads.count - metric_type: gauge - currentThreadsBusy: - alias: tomcat.threads.busy - metric_type: gauge - - include: - type: GlobalRequestProcessor - attribute: - bytesSent: - alias: tomcat.bytes_sent - metric_type: counter - bytesReceived: - alias: tomcat.bytes_rcvd - metric_type: counter - errorCount: - alias: tomcat.error_count - metric_type: counter - requestCount: - alias: tomcat.request_count - metric_type: counter - maxTime: - alias: tomcat.max_time - metric_type: gauge - processingTime: - alias: tomcat.processing_time - metric_type: counter - - include: - j2eeType: Servlet - attribute: - processingTime: - alias: tomcat.servlet.processing_time - metric_type: counter - errorCount: - alias: tomcat.servlet.error_count - metric_type: counter - requestCount: - alias: tomcat.servlet.request_count - metric_type: counter - - include: - type: Cache - accessCount: - alias: tomcat.cache.access_count - metric_type: counter - hitsCounts: - alias: tomcat.cache.hits_count - metric_type: counter - - include: - type: JspMonitor - jspCount: - alias: tomcat.jsp.count - metric_type: counter - jspReloadCount: - alias: tomcat.jsp.reload_count - metric_type: counter diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/varnish.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/varnish.yaml.erb deleted file mode 100644 index 512bbce5a76b0..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/varnish.yaml.erb +++ /dev/null @@ -1,24 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -instances: -<% @instances.each do |i| -%> - - varnishstat: <%= i["varnishstat"] || "/usr/bin/varnishstat" %> - <% if i.key?("name") -%> - name: <%= i["name"] %> - <% end -%> - <% if i.key?("tags") -%> - tags: - <% i["tags"].each do |t| -%> - - <%= t %> - <% end -%> - <% end -%> - <% if i.key?("varnishadm") -%> - varnishadm: <%= i["varnishadm"] %> - <% end -%> - <% if i.key?("secretfile") -%> - secretfile: <%= i["secretfile"] %> - <% end -%> -<% end -%> - -init_config: -# Nothing to configure here diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/win32_event_log.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/win32_event_log.yaml.erb deleted file mode 100644 index 11b348e06fe94..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/win32_event_log.yaml.erb +++ /dev/null @@ -1,3 +0,0 @@ -# Generated by Chef, local modifications will be overwritten - -<%= JSON.parse(({'init_config' => @init_config, 'instances' => @instances, 'logs' => @logs}).to_json).to_yaml %> diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/windows_service.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/windows_service.yaml.erb deleted file mode 100644 index ab6c4d5b09541..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/windows_service.yaml.erb +++ /dev/null @@ -1,6 +0,0 @@ -# Generated by Chef, local modifications will be overwritten - -<%= JSON.parse(({ 'instances' => @instances, 'logs' => @logs }).to_json).to_yaml %> - -# Nothing to configure here -init_config: diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/wmi_check.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/wmi_check.yaml.erb deleted file mode 100644 index a80c523a04bbb..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/wmi_check.yaml.erb +++ /dev/null @@ -1,75 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -init_config: - -instances: - # Each WMI query has 2 required options, `class` and `metrics` and two - # optional options, `filters` and `tag_by`. - # - # `class` is the name of the WMI class, for example Win32_OperatingSystem - # or Win32_PerfFormattedData_PerfProc_Process. You can find many of the - # standard class names on the MSDN docs at - # http://msdn.microsoft.com/en-us/library/windows/desktop/aa394084.aspx. - # The Win32_FormattedData_* classes provide many useful performance counters - # by default. - # - # - # `metrics` is a list of metrics you want to capture, with each item in the - # list being a set of [WMI property name, metric name, metric type]. - # - # - The property name is something like `NumberOfUsers` or `ThreadCount`. - # The standard properties are also available on the MSDN docs for each - # class. - # - # - The metric name is the name you want to show up in Datadog. - # - # - The metric type is from the standard choices for all agent checks, such - # as gauge, rate, histogram or counter. - # - # - # `filters` is a list of filters on the WMI query you may want. For example, - # for a process-based WMI class you may want metrics for only certain - # processes running on your machine, so you could add a filter for each - # process name. See below for an example of this case. - # - # - # `tag_by` optionally lets you tag each metric with a property from the - # WMI class you're using. This is only useful when you will have multiple - # values for your WMI query. The examples below show how you can tag your - # process metrics with the process name (giving a tag of "name:app_name"). - - - # Fetch the number of processes and users - - class: Win32_OperatingSystem - metrics: - - [NumberOfProcesses, system.proc.count, gauge] - - [NumberOfUsers, system.users.count, gauge] - - # Fetch metrics for a single running application, called myapp - - class: Win32_PerfFormattedData_PerfProc_Process - metrics: - - [ThreadCount, my_app.threads.count, gauge] - - [VirtualBytes, my_app.mem.virtual, gauge] - filters: - - Name: myapp - - # Fetch process metrics for a set of processes, tagging by app name. - - class: Win32_PerfFormattedData_PerfProc_Process - metrics: - - [ThreadCount, proc.threads.count, gauge] - - [VirtualBytes, proc.mem.virtual, gauge] - - [PercentProcessorTime, proc.cpu_pct, gauge] - filters: - - Name: app1 - - Name: app2 - - Name: app3 - tag_by: Name - - # Fetch process metrics for every available process, tagging by app name. - - class: Win32_PerfFormattedData_PerfProc_Process - metrics: - - [IOReadBytesPerSec, proc.io.bytes_read, gauge] - - [IOWriteBytesPerSec, proc.io.bytes_written, gauge] - tag_by: Name - - diff --git a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/zk.yaml.erb b/test/kitchen/site-cookbooks/dd-agent-install/templates/default/zk.yaml.erb deleted file mode 100644 index c5ee8f8386bf5..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-install/templates/default/zk.yaml.erb +++ /dev/null @@ -1,22 +0,0 @@ -<%= JSON.parse(({'logs' => @logs }).to_json).to_yaml %> - -<% excluded_keys = ["host", "port", "timeout", "tags"] -%> -instances: - <% @instances.each do |instance| -%> - - host: <%= instance["host"] %> - port: <%= instance["port"] %> - <% if instance.key?("timeout") -%> - timeout: <%= instance["timeout"] %> - <% end -%> - <% if instance.key?("tags") -%> - tags: - <% instance["tags"].each do |tag| -%> - - <%= tag %> - <% end -%> - <% end -%> - <% (instance.keys - excluded_keys).each do |key| -%> - <%= key %>: <%= instance[key] %> - <% end -%> - <% end %> - -init_config: diff --git a/test/kitchen/site-cookbooks/dd-agent-reinstall/.gitignore b/test/kitchen/site-cookbooks/dd-agent-reinstall/.gitignore deleted file mode 100644 index 45b891c93cfc3..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-reinstall/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -.vagrant -Berksfile.lock -*~ -*# -.#* -\#*# -.*.sw[a-z] -*.un~ -/cookbooks - -# Bundler -Gemfile.lock -bin/* -.bundle/* - diff --git a/test/kitchen/site-cookbooks/dd-agent-reinstall/Berksfile b/test/kitchen/site-cookbooks/dd-agent-reinstall/Berksfile deleted file mode 100644 index c4bb297b7275b..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-reinstall/Berksfile +++ /dev/null @@ -1,3 +0,0 @@ -site :opscode - -metadata diff --git a/test/kitchen/site-cookbooks/dd-agent-reinstall/Gemfile b/test/kitchen/site-cookbooks/dd-agent-reinstall/Gemfile deleted file mode 100644 index 01b5db30b2f16..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-reinstall/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem 'bundler', '~> 2.2.17' -gem 'berkshelf' diff --git a/test/kitchen/site-cookbooks/dd-agent-reinstall/README.md b/test/kitchen/site-cookbooks/dd-agent-reinstall/README.md deleted file mode 100644 index 15c8de8b2df5a..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-reinstall/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# dd-agent-reinstall cookbook - -Reinstalls the same Windows Agent version, using different installer flags \ No newline at end of file diff --git a/test/kitchen/site-cookbooks/dd-agent-reinstall/attributes/default.rb b/test/kitchen/site-cookbooks/dd-agent-reinstall/attributes/default.rb deleted file mode 100644 index 6df9bffb59358..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-reinstall/attributes/default.rb +++ /dev/null @@ -1,8 +0,0 @@ -default['dd-agent-reinstall']['agent_package_retries'] = nil -default['dd-agent-reinstall']['agent_package_retry_delay'] = nil - -default['dd-agent-reinstall']['windows_version'] = nil # => install the latest available version -default['dd-agent-reinstall']['windows_agent_url'] = 'https://ddagent-windows-stable.s3.amazonaws.com/' -default['dd-agent-reinstall']['windows_agent_filename'] = nil - -default['dd-agent-reinstall']['agent_install_options'] = '' diff --git a/test/kitchen/site-cookbooks/dd-agent-reinstall/chefignore b/test/kitchen/site-cookbooks/dd-agent-reinstall/chefignore deleted file mode 100644 index a6de14221d876..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-reinstall/chefignore +++ /dev/null @@ -1,96 +0,0 @@ -# Put files/directories that should be ignored in this file when uploading -# or sharing to the community site. -# Lines that start with '# ' are comments. - -# OS generated files # -###################### -.DS_Store -Icon? -nohup.out -ehthumbs.db -Thumbs.db - -# SASS # -######## -.sass-cache - -# EDITORS # -########### -\#* -.#* -*~ -*.sw[a-z] -*.bak -REVISION -TAGS* -tmtags -*_flymake.* -*_flymake -*.tmproj -.project -.settings -mkmf.log - -## COMPILED ## -############## -a.out -*.o -*.pyc -*.so -*.com -*.class -*.dll -*.exe -*/rdoc/ - -# Testing # -########### -.watchr -.rspec -spec/* -spec/fixtures/* -test/* -features/* -Guardfile -Procfile - -# SCM # -####### -.git -*/.git -.gitignore -.gitmodules -.gitconfig -.gitattributes -.svn -*/.bzr/* -*/.hg/* -*/.svn/* - -# Berkshelf # -############# -Berksfile -Berksfile.lock -cookbooks/* -tmp - -# Cookbooks # -############# -CONTRIBUTING -CHANGELOG* - -# Strainer # -############ -Colanderfile -Strainerfile -.colander -.strainer - -# Vagrant # -########### -.vagrant -Vagrantfile - -# Travis # -########## -.travis.yml diff --git a/test/kitchen/site-cookbooks/dd-agent-reinstall/metadata.rb b/test/kitchen/site-cookbooks/dd-agent-reinstall/metadata.rb deleted file mode 100644 index c196d46aadd9f..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-reinstall/metadata.rb +++ /dev/null @@ -1,5 +0,0 @@ -name "dd-agent-reinstall" -maintainer "Datadog" -description "Reinstalls the installed Windows Agent" -long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) -version "0.2.0" diff --git a/test/kitchen/site-cookbooks/dd-agent-reinstall/recipes/default.rb b/test/kitchen/site-cookbooks/dd-agent-reinstall/recipes/default.rb deleted file mode 100644 index d16e90baee341..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-reinstall/recipes/default.rb +++ /dev/null @@ -1,57 +0,0 @@ -# -# Cookbook Name:: dd-agent-reinstall -# Recipe:: default -# -# Copyright (C) 2013 Datadog -# -# All rights reserved - Do Not Redistribute -# -require 'uri' - -if node['platform_family'] != 'windows' - raise "The dd-agent-reinstall cookbook is only usable on Windows." -end - -package_retries = node['dd-agent-reinstall']['agent_package_retries'] -package_retry_delay = node['dd-agent-reinstall']['agent_package_retry_delay'] -dd_agent_version = node['dd-agent-reinstall']['windows_version'] -dd_agent_filename = node['dd-agent-reinstall']['windows_agent_filename'] - -if dd_agent_filename - dd_agent_installer_basename = dd_agent_filename -else - if dd_agent_version - dd_agent_installer_basename = "datadog-agent-#{dd_agent_version}-1-x86_64" - else - dd_agent_installer_basename = "datadog-agent-6.0.0-beta.latest.amd64" - end -end - -temp_file_basename = ::File.join(Chef::Config[:file_cache_path], 'ddagent-up').gsub(File::SEPARATOR, File::ALT_SEPARATOR || File::SEPARATOR) - -dd_agent_installer = "#{dd_agent_installer_basename}.msi" -temp_file = "#{temp_file_basename}.msi" -installer_type = :msi -# Agent >= 5.12.0 installs per-machine by default, but specifying ALLUSERS=1 shouldn't affect the install -agent_install_options = node['dd-agent-reinstall']['agent_install_options'] -install_options = "/norestart ALLUSERS=1 #{agent_install_options}" - -use_windows_package_resource = true - -source_url = node['dd-agent-reinstall']['windows_agent_url'] -if !source_url.end_with? '/' - source_url += '/' -end -source_url += dd_agent_installer - -# Download the installer to a temp location -remote_file temp_file do - source source_url - retries package_retries unless package_retries.nil? - retry_delay package_retry_delay unless package_retry_delay.nil? -end - -execute "reinstall-agent" do - command "start /wait msiexec /log upgrade.log /q /i #{temp_file} #{install_options}" - action :run -end diff --git a/test/kitchen/site-cookbooks/dd-agent-rhel-workaround/.gitignore b/test/kitchen/site-cookbooks/dd-agent-rhel-workaround/.gitignore deleted file mode 100644 index 45b891c93cfc3..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-rhel-workaround/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -.vagrant -Berksfile.lock -*~ -*# -.#* -\#*# -.*.sw[a-z] -*.un~ -/cookbooks - -# Bundler -Gemfile.lock -bin/* -.bundle/* - diff --git a/test/kitchen/site-cookbooks/dd-agent-rhel-workaround/Berksfile b/test/kitchen/site-cookbooks/dd-agent-rhel-workaround/Berksfile deleted file mode 100644 index c4bb297b7275b..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-rhel-workaround/Berksfile +++ /dev/null @@ -1,3 +0,0 @@ -site :opscode - -metadata diff --git a/test/kitchen/site-cookbooks/dd-agent-rhel-workaround/Gemfile b/test/kitchen/site-cookbooks/dd-agent-rhel-workaround/Gemfile deleted file mode 100644 index 01b5db30b2f16..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-rhel-workaround/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem 'bundler', '~> 2.2.17' -gem 'berkshelf' diff --git a/test/kitchen/site-cookbooks/dd-agent-rhel-workaround/README.md b/test/kitchen/site-cookbooks/dd-agent-rhel-workaround/README.md deleted file mode 100644 index 1c73493f28680..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-rhel-workaround/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# dd-agent-rhel-workaround cookbook - -Works around the root partition not being large enough to install and upgrade the Agent diff --git a/test/kitchen/site-cookbooks/dd-agent-rhel-workaround/chefignore b/test/kitchen/site-cookbooks/dd-agent-rhel-workaround/chefignore deleted file mode 100644 index a6de14221d876..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-rhel-workaround/chefignore +++ /dev/null @@ -1,96 +0,0 @@ -# Put files/directories that should be ignored in this file when uploading -# or sharing to the community site. -# Lines that start with '# ' are comments. - -# OS generated files # -###################### -.DS_Store -Icon? -nohup.out -ehthumbs.db -Thumbs.db - -# SASS # -######## -.sass-cache - -# EDITORS # -########### -\#* -.#* -*~ -*.sw[a-z] -*.bak -REVISION -TAGS* -tmtags -*_flymake.* -*_flymake -*.tmproj -.project -.settings -mkmf.log - -## COMPILED ## -############## -a.out -*.o -*.pyc -*.so -*.com -*.class -*.dll -*.exe -*/rdoc/ - -# Testing # -########### -.watchr -.rspec -spec/* -spec/fixtures/* -test/* -features/* -Guardfile -Procfile - -# SCM # -####### -.git -*/.git -.gitignore -.gitmodules -.gitconfig -.gitattributes -.svn -*/.bzr/* -*/.hg/* -*/.svn/* - -# Berkshelf # -############# -Berksfile -Berksfile.lock -cookbooks/* -tmp - -# Cookbooks # -############# -CONTRIBUTING -CHANGELOG* - -# Strainer # -############ -Colanderfile -Strainerfile -.colander -.strainer - -# Vagrant # -########### -.vagrant -Vagrantfile - -# Travis # -########## -.travis.yml diff --git a/test/kitchen/site-cookbooks/dd-agent-rhel-workaround/metadata.rb b/test/kitchen/site-cookbooks/dd-agent-rhel-workaround/metadata.rb deleted file mode 100644 index 3c9e3a75cd96d..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-rhel-workaround/metadata.rb +++ /dev/null @@ -1,5 +0,0 @@ -name "dd-agent-rhel-workaround" -maintainer "Datadog" -description "Works around the root partition not being large enough to install and upgrade the Agent" -long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) -version "0.0.1" diff --git a/test/kitchen/site-cookbooks/dd-agent-rhel-workaround/recipes/default.rb b/test/kitchen/site-cookbooks/dd-agent-rhel-workaround/recipes/default.rb deleted file mode 100644 index ba081242e8fcc..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-rhel-workaround/recipes/default.rb +++ /dev/null @@ -1,22 +0,0 @@ -# -# Cookbook Name:: dd-agent-rhel-workaround -# Recipe:: default -# -# Copyright (C) 2020-present Datadog -# -# All rights reserved - Do Not Redistribute -# - -if node['platform_family'] == 'rhel' && node['platform_version'].to_i >= 8 - execute 'increase / partition size' do - command <<-EOF - export size=32; - export rootpart=$(cat /proc/mounts | awk '{ if ($2 =="/") print $1; }'); - while [[ $size -ne "0" ]] && ! sudo lvextend --size +${size}G ${rootpart}; do - size=$(($size / 2)); - done; - sudo xfs_growfs / - EOF - live_stream true - end -end diff --git a/test/kitchen/site-cookbooks/dd-agent-sles-workaround/.gitignore b/test/kitchen/site-cookbooks/dd-agent-sles-workaround/.gitignore deleted file mode 100644 index 45b891c93cfc3..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-sles-workaround/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -.vagrant -Berksfile.lock -*~ -*# -.#* -\#*# -.*.sw[a-z] -*.un~ -/cookbooks - -# Bundler -Gemfile.lock -bin/* -.bundle/* - diff --git a/test/kitchen/site-cookbooks/dd-agent-sles-workaround/Berksfile b/test/kitchen/site-cookbooks/dd-agent-sles-workaround/Berksfile deleted file mode 100644 index c4bb297b7275b..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-sles-workaround/Berksfile +++ /dev/null @@ -1,3 +0,0 @@ -site :opscode - -metadata diff --git a/test/kitchen/site-cookbooks/dd-agent-sles-workaround/Gemfile b/test/kitchen/site-cookbooks/dd-agent-sles-workaround/Gemfile deleted file mode 100644 index 01b5db30b2f16..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-sles-workaround/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem 'bundler', '~> 2.2.17' -gem 'berkshelf' diff --git a/test/kitchen/site-cookbooks/dd-agent-sles-workaround/README.md b/test/kitchen/site-cookbooks/dd-agent-sles-workaround/README.md deleted file mode 100644 index ed9a87cebbd96..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-sles-workaround/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# dd-agent-sles-workaround cookbook - -Works around the Azure Agent trying to restart network interfaces -on SLES 12. diff --git a/test/kitchen/site-cookbooks/dd-agent-sles-workaround/chefignore b/test/kitchen/site-cookbooks/dd-agent-sles-workaround/chefignore deleted file mode 100644 index a6de14221d876..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-sles-workaround/chefignore +++ /dev/null @@ -1,96 +0,0 @@ -# Put files/directories that should be ignored in this file when uploading -# or sharing to the community site. -# Lines that start with '# ' are comments. - -# OS generated files # -###################### -.DS_Store -Icon? -nohup.out -ehthumbs.db -Thumbs.db - -# SASS # -######## -.sass-cache - -# EDITORS # -########### -\#* -.#* -*~ -*.sw[a-z] -*.bak -REVISION -TAGS* -tmtags -*_flymake.* -*_flymake -*.tmproj -.project -.settings -mkmf.log - -## COMPILED ## -############## -a.out -*.o -*.pyc -*.so -*.com -*.class -*.dll -*.exe -*/rdoc/ - -# Testing # -########### -.watchr -.rspec -spec/* -spec/fixtures/* -test/* -features/* -Guardfile -Procfile - -# SCM # -####### -.git -*/.git -.gitignore -.gitmodules -.gitconfig -.gitattributes -.svn -*/.bzr/* -*/.hg/* -*/.svn/* - -# Berkshelf # -############# -Berksfile -Berksfile.lock -cookbooks/* -tmp - -# Cookbooks # -############# -CONTRIBUTING -CHANGELOG* - -# Strainer # -############ -Colanderfile -Strainerfile -.colander -.strainer - -# Vagrant # -########### -.vagrant -Vagrantfile - -# Travis # -########## -.travis.yml diff --git a/test/kitchen/site-cookbooks/dd-agent-sles-workaround/metadata.rb b/test/kitchen/site-cookbooks/dd-agent-sles-workaround/metadata.rb deleted file mode 100644 index aa90d59ab293e..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-sles-workaround/metadata.rb +++ /dev/null @@ -1,5 +0,0 @@ -name "dd-agent-sles-workaround" -maintainer "Datadog" -description "Works around waagent restarting network interfaces on SLES 12" -long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) -version "0.0.1" diff --git a/test/kitchen/site-cookbooks/dd-agent-sles-workaround/recipes/default.rb b/test/kitchen/site-cookbooks/dd-agent-sles-workaround/recipes/default.rb deleted file mode 100644 index f941e8fffd57f..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-sles-workaround/recipes/default.rb +++ /dev/null @@ -1,29 +0,0 @@ -# -# Cookbook Name:: dd-agent-sles-workaround -# Recipe:: default -# -# Copyright (C) 2020-present Datadog -# -# All rights reserved - Do Not Redistribute -# - -if node['platform_family'] == 'suse' && node.key?('azure') - # Update the waagent conf to stop watching hostname changes. - execute 'update Azure Agent conf' do - command "sed -i 's/Provisioning\\.MonitorHostName=y/Provisioning\\.MonitorHostName=n/' /etc/waagent.conf" - end - - # Change the Windows Azure Agent conf to stop watching hostname changes. - # For some reason it's changing the hostname every 30s on SLES 12, which - # leads to a network interface reset, making it likely for tests to fail if a - # network call happens during the reset. - service 'waagent' do - service_name "waagent" - action :restart - end - - # Put eth0 back up in case the waagent was taking it down while we restarted it. - execute 'bring eth0 up' do - command "/sbin/ifup eth0" - end -end diff --git a/test/kitchen/site-cookbooks/dd-agent-system-files-check/.gitignore b/test/kitchen/site-cookbooks/dd-agent-system-files-check/.gitignore deleted file mode 100644 index 45b891c93cfc3..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-system-files-check/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -.vagrant -Berksfile.lock -*~ -*# -.#* -\#*# -.*.sw[a-z] -*.un~ -/cookbooks - -# Bundler -Gemfile.lock -bin/* -.bundle/* - diff --git a/test/kitchen/site-cookbooks/dd-agent-system-files-check/Berksfile b/test/kitchen/site-cookbooks/dd-agent-system-files-check/Berksfile deleted file mode 100644 index c4bb297b7275b..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-system-files-check/Berksfile +++ /dev/null @@ -1,3 +0,0 @@ -site :opscode - -metadata diff --git a/test/kitchen/site-cookbooks/dd-agent-system-files-check/Gemfile b/test/kitchen/site-cookbooks/dd-agent-system-files-check/Gemfile deleted file mode 100644 index 01b5db30b2f16..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-system-files-check/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem 'bundler', '~> 2.2.17' -gem 'berkshelf' diff --git a/test/kitchen/site-cookbooks/dd-agent-system-files-check/README.md b/test/kitchen/site-cookbooks/dd-agent-system-files-check/README.md deleted file mode 100644 index d1bbe95134ca5..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-system-files-check/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# dd-agent-system-files-check cookbook - -Lists system files before and after an install-uninstall cycle and checks we aren't deleting what we shouldn't. diff --git a/test/kitchen/site-cookbooks/dd-agent-system-files-check/chefignore b/test/kitchen/site-cookbooks/dd-agent-system-files-check/chefignore deleted file mode 100644 index a6de14221d876..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-system-files-check/chefignore +++ /dev/null @@ -1,96 +0,0 @@ -# Put files/directories that should be ignored in this file when uploading -# or sharing to the community site. -# Lines that start with '# ' are comments. - -# OS generated files # -###################### -.DS_Store -Icon? -nohup.out -ehthumbs.db -Thumbs.db - -# SASS # -######## -.sass-cache - -# EDITORS # -########### -\#* -.#* -*~ -*.sw[a-z] -*.bak -REVISION -TAGS* -tmtags -*_flymake.* -*_flymake -*.tmproj -.project -.settings -mkmf.log - -## COMPILED ## -############## -a.out -*.o -*.pyc -*.so -*.com -*.class -*.dll -*.exe -*/rdoc/ - -# Testing # -########### -.watchr -.rspec -spec/* -spec/fixtures/* -test/* -features/* -Guardfile -Procfile - -# SCM # -####### -.git -*/.git -.gitignore -.gitmodules -.gitconfig -.gitattributes -.svn -*/.bzr/* -*/.hg/* -*/.svn/* - -# Berkshelf # -############# -Berksfile -Berksfile.lock -cookbooks/* -tmp - -# Cookbooks # -############# -CONTRIBUTING -CHANGELOG* - -# Strainer # -############ -Colanderfile -Strainerfile -.colander -.strainer - -# Vagrant # -########### -.vagrant -Vagrantfile - -# Travis # -########## -.travis.yml diff --git a/test/kitchen/site-cookbooks/dd-agent-system-files-check/metadata.rb b/test/kitchen/site-cookbooks/dd-agent-system-files-check/metadata.rb deleted file mode 100644 index 2866375908287..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-system-files-check/metadata.rb +++ /dev/null @@ -1,5 +0,0 @@ -name "dd-agent-system-files-check" -maintainer "Datadog" -description "Lists system files before and after an install-uninstall cycle and checks we aren't deleting what we shouldn't." -long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) -version "0.0.1" diff --git a/test/kitchen/site-cookbooks/dd-agent-system-files-check/recipes/list-files-before-install.rb b/test/kitchen/site-cookbooks/dd-agent-system-files-check/recipes/list-files-before-install.rb deleted file mode 100644 index b77d8c48c74cd..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-system-files-check/recipes/list-files-before-install.rb +++ /dev/null @@ -1,27 +0,0 @@ -# -# Cookbook Name:: dd-agent-system-files-check -# Recipe:: default -# -# Copyright (C) 2020-present Datadog -# -# All rights reserved - Do Not Redistribute -# -require 'find' - -if node['platform_family'] != 'windows' - puts "dd-agent-system-files-check: Not implemented on non-windows" -else - ruby_block "list-before-files" do - block do - # Windows update is likely to change lots of files, disable it. - # It's okay to do this because this should run on an ephemereal VM. - system("sc.exe config wuauserv start=disabled") - system("sc.exe stop wuauserv") - - File.open("c:/before-files.txt", "w") do |out| - Find.find('c:/windows/').each { |f| out.puts(f) } - end - end - action :run - end -end diff --git a/test/kitchen/site-cookbooks/dd-agent-upgrade/.gitignore b/test/kitchen/site-cookbooks/dd-agent-upgrade/.gitignore deleted file mode 100644 index 45b891c93cfc3..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-upgrade/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -.vagrant -Berksfile.lock -*~ -*# -.#* -\#*# -.*.sw[a-z] -*.un~ -/cookbooks - -# Bundler -Gemfile.lock -bin/* -.bundle/* - diff --git a/test/kitchen/site-cookbooks/dd-agent-upgrade/Berksfile b/test/kitchen/site-cookbooks/dd-agent-upgrade/Berksfile deleted file mode 100644 index c4bb297b7275b..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-upgrade/Berksfile +++ /dev/null @@ -1,3 +0,0 @@ -site :opscode - -metadata diff --git a/test/kitchen/site-cookbooks/dd-agent-upgrade/Gemfile b/test/kitchen/site-cookbooks/dd-agent-upgrade/Gemfile deleted file mode 100644 index 01b5db30b2f16..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-upgrade/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem 'bundler', '~> 2.2.17' -gem 'berkshelf' diff --git a/test/kitchen/site-cookbooks/dd-agent-upgrade/README.md b/test/kitchen/site-cookbooks/dd-agent-upgrade/README.md deleted file mode 100644 index a6ce282f7c05a..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-upgrade/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# dd-agent-upgrade cookbook - -Updates an installed Agent to the latest version (default), or the version -specified in `version`. You can also add a new repository by setting the -`add_new_repo` flag to `true` and passing an `aptrepo` and/or a `yumrepo`. This -is useful when you want to use the `dd-agent` recipe to install the latest -release, and then use this repository to add the candidate repository and -install the latest candidate. diff --git a/test/kitchen/site-cookbooks/dd-agent-upgrade/Vagrantfile b/test/kitchen/site-cookbooks/dd-agent-upgrade/Vagrantfile deleted file mode 100644 index 23861276f1181..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-upgrade/Vagrantfile +++ /dev/null @@ -1,25 +0,0 @@ -# -*- mode: ruby -*- -# vi: set ft=ruby : - -Vagrant.configure("2") do |config| - config.vm.hostname = "dd-agent-upgrade-dev" - config.vm.box = "opscode_ubuntu-12.04_chef-11.4.4" - - #config.vm.box_url = "https://dl.dropbox.com/u/31081437/Berkshelf-CentOS-6.3-x86_64-minimal.box" - - config.berkshelf.enabled = true - - config.vm.provision :chef_solo do |chef| - chef.json = { - :mysql => { - :server_root_password => 'rootpass', - :server_debian_password => 'debpass', - :server_repl_password => 'replpass' - } - } - - chef.run_list = [ - "recipe[dd-agent-upgrade::default]" - ] - end -end diff --git a/test/kitchen/site-cookbooks/dd-agent-upgrade/attributes/default.rb b/test/kitchen/site-cookbooks/dd-agent-upgrade/attributes/default.rb deleted file mode 100644 index cc3ea3f8ade8d..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-upgrade/attributes/default.rb +++ /dev/null @@ -1,70 +0,0 @@ -default['dd-agent-upgrade']['api_key'] = nil -default['dd-agent-upgrade']['agent_major_version'] = nil - -default['dd-agent-upgrade']['version'] = nil # => install the latest available version -default['dd-agent-upgrade']['add_new_repo'] = false # If set to true, be sure to set aptrepo and yumrepo -default['dd-agent-upgrade']['aptrepo'] = nil -default['dd-agent-upgrade']['aptrepo_dist'] = nil -default['dd-agent-upgrade']['yumrepo'] = nil -default['dd-agent-upgrade']['yumrepo_suse'] = nil -default['dd-agent-upgrade']['package_name'] = 'datadog-agent' - -default['dd-agent-upgrade']['windows_version'] = nil # => install the latest available version -default['dd-agent-upgrade']['windows_agent_checksum'] = nil -default['dd-agent-upgrade']['windows_agent_url'] = 'https://ddagent-windows-stable.s3.amazonaws.com/' - -default['dd-agent-upgrade']['agent_package_retries'] = nil -default['dd-agent-upgrade']['agent_package_retry_delay'] = nil - -# Enable the agent to start at boot -default['dd-agent-upgrade']['agent_enable'] = true - -# Start agent or not -default['dd-agent-upgrade']['agent_start'] = true -default['dd-agent-upgrade']['enable_trace_agent'] = true -default['dd-agent-upgrade']['enable_process_agent'] = true - -# Set the defaults from the chef recipe -default['dd-agent-upgrade']['extra_endpoints']['prod']['enabled'] = nil -default['dd-agent-upgrade']['extra_endpoints']['prod']['api_key'] = nil -default['dd-agent-upgrade']['extra_endpoints']['prod']['application_key'] = nil -default['dd-agent-upgrade']['extra_endpoints']['prod']['url'] = nil # op -default['dd-agent-upgrade']['extra_config']['forwarder_timeout'] = nil -default['dd-agent-upgrade']['web_proxy']['host'] = nil -default['dd-agent-upgrade']['web_proxy']['port'] = nil -default['dd-agent-upgrade']['web_proxy']['user'] = nil -default['dd-agent-upgrade']['web_proxy']['password'] = nil -default['dd-agent-upgrade']['web_proxy']['skip_ssl_validation'] = nil # accepted values 'yes' or 'no' -default['dd-agent-upgrade']['dogstreams'] = [] -default['dd-agent-upgrade']['custom_emitters'] = [] -default['dd-agent-upgrade']['syslog']['active'] = false -default['dd-agent-upgrade']['syslog']['udp'] = false -default['dd-agent-upgrade']['syslog']['host'] = nil -default['dd-agent-upgrade']['syslog']['port'] = nil -default['dd-agent-upgrade']['log_file_directory'] = - if node['platform_family'] == 'windows' - nil # let the agent use a default log file dir - else - '/var/log/datadog' - end -default['dd-agent-upgrade']['process_agent']['blacklist'] = nil -default['dd-agent-upgrade']['process_agent']['container_blacklist'] = nil -default['dd-agent-upgrade']['process_agent']['container_whitelist'] = nil -default['dd-agent-upgrade']['process_agent']['log_file'] = nil -default['dd-agent-upgrade']['process_agent']['process_interval'] = nil -default['dd-agent-upgrade']['process_agent']['rtprocess_interval'] = nil -default['dd-agent-upgrade']['process_agent']['container_interval'] = nil -default['dd-agent-upgrade']['process_agent']['rtcontainer_interval'] = nil -default['dd-agent-upgrade']['tags'] = '' -default['dd-agent-upgrade']['histogram_aggregates'] = 'max, median, avg, count' -default['dd-agent-upgrade']['histogram_percentiles'] = '0.95' -default['dd-agent-upgrade']['dogstatsd'] = true -default['dd-agent-upgrade']['dogstatsd_port'] = 8125 -default['dd-agent-upgrade']['dogstatsd_interval'] = 10 -default['dd-agent-upgrade']['dogstatsd_normalize'] = 'yes' -default['dd-agent-upgrade']['dogstatsd_target'] = 'http://localhost:17123' -default['dd-agent-upgrade']['statsd_forward_host'] = nil -default['dd-agent-upgrade']['statsd_forward_port'] = 8125 -default['dd-agent-upgrade']['statsd_metric_namespace'] = nil -default['dd-agent-upgrade']['log_level'] = 'INFO' -default['dd-agent-upgrade']['enable_logs_agent'] = false diff --git a/test/kitchen/site-cookbooks/dd-agent-upgrade/chefignore b/test/kitchen/site-cookbooks/dd-agent-upgrade/chefignore deleted file mode 100644 index a6de14221d876..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-upgrade/chefignore +++ /dev/null @@ -1,96 +0,0 @@ -# Put files/directories that should be ignored in this file when uploading -# or sharing to the community site. -# Lines that start with '# ' are comments. - -# OS generated files # -###################### -.DS_Store -Icon? -nohup.out -ehthumbs.db -Thumbs.db - -# SASS # -######## -.sass-cache - -# EDITORS # -########### -\#* -.#* -*~ -*.sw[a-z] -*.bak -REVISION -TAGS* -tmtags -*_flymake.* -*_flymake -*.tmproj -.project -.settings -mkmf.log - -## COMPILED ## -############## -a.out -*.o -*.pyc -*.so -*.com -*.class -*.dll -*.exe -*/rdoc/ - -# Testing # -########### -.watchr -.rspec -spec/* -spec/fixtures/* -test/* -features/* -Guardfile -Procfile - -# SCM # -####### -.git -*/.git -.gitignore -.gitmodules -.gitconfig -.gitattributes -.svn -*/.bzr/* -*/.hg/* -*/.svn/* - -# Berkshelf # -############# -Berksfile -Berksfile.lock -cookbooks/* -tmp - -# Cookbooks # -############# -CONTRIBUTING -CHANGELOG* - -# Strainer # -############ -Colanderfile -Strainerfile -.colander -.strainer - -# Vagrant # -########### -.vagrant -Vagrantfile - -# Travis # -########## -.travis.yml diff --git a/test/kitchen/site-cookbooks/dd-agent-upgrade/metadata.rb b/test/kitchen/site-cookbooks/dd-agent-upgrade/metadata.rb deleted file mode 100644 index e2fa67352e52f..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-upgrade/metadata.rb +++ /dev/null @@ -1,9 +0,0 @@ -name "dd-agent-upgrade" -maintainer "Datadog" -description "Updates the installed Agent" -long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) -version "0.2.0" - -depends 'apt', '>= 2.1.0' -depends 'datadog' -depends 'yum', '< 7.0.0' diff --git a/test/kitchen/site-cookbooks/dd-agent-upgrade/recipes/default.rb b/test/kitchen/site-cookbooks/dd-agent-upgrade/recipes/default.rb deleted file mode 100644 index 1cba4f72b0d3a..0000000000000 --- a/test/kitchen/site-cookbooks/dd-agent-upgrade/recipes/default.rb +++ /dev/null @@ -1,188 +0,0 @@ -# -# Cookbook Name:: dd-agent-upgrade -# Recipe:: default -# -# Copyright (C) 2013-present Datadog -# -# All rights reserved - Do Not Redistribute -# -require 'uri' - -if node['dd-agent-upgrade']['add_new_repo'] - case node['platform_family'] - when 'debian' - include_recipe 'apt' - apt_trusted_d_keyring = '/etc/apt/trusted.gpg.d/datadog-archive-keyring.gpg' - apt_usr_share_keyring = '/usr/share/keyrings/datadog-archive-keyring.gpg' - apt_gpg_keys = { - 'DATADOG_APT_KEY_CURRENT.public' => 'https://keys.datadoghq.com/DATADOG_APT_KEY_CURRENT.public', - 'D75CEA17048B9ACBF186794B32637D44F14F620E' => 'https://keys.datadoghq.com/DATADOG_APT_KEY_F14F620E.public', - 'A2923DFF56EDA6E76E55E492D3A80E30382E94DE' => 'https://keys.datadoghq.com/DATADOG_APT_KEY_382E94DE.public', - } - - package 'install dependencies' do - package_name ['apt-transport-https', 'gnupg'] - action :install - end - - file apt_usr_share_keyring do - action :create_if_missing - content '' - mode '0644' - end - - apt_gpg_keys.each do |key_fingerprint, key_url| - # Download the APT key - key_local_path = ::File.join(Chef::Config[:file_cache_path], key_fingerprint) - # By default, remote_file will use `If-Modified-Since` header to see if the file - # was modified remotely, so this works fine for the "current" key - remote_file "remote_file_#{key_fingerprint}" do - path key_local_path - source key_url - notifies :run, "execute[import apt datadog key #{key_fingerprint}]", :immediately - end - - # Import the APT key - execute "import apt datadog key #{key_fingerprint}" do - command "/bin/cat #{key_local_path} | gpg --import --batch --no-default-keyring --keyring #{apt_usr_share_keyring}" - # the second part extracts the fingerprint of the key from output like "fpr::::A2923DFF56EDA6E76E55E492D3A80E30382E94DE:" - not_if "/usr/bin/gpg --no-default-keyring --keyring #{apt_usr_share_keyring} --list-keys --with-fingerprint --with-colons | grep \ - $(cat #{key_local_path} | gpg --with-colons --with-fingerprint 2>/dev/null | grep 'fpr:' | sed 's|^fpr||' | tr -d ':')" - action :nothing - end - end - - remote_file apt_trusted_d_keyring do - action :create - mode '0644' - source "file://#{apt_usr_share_keyring}" - only_if { (platform?('ubuntu') && node['platform_version'].to_i < 16) || (platform?('debian') && node['platform_version'].to_i < 9) } - end - - # Add APT repositories - # Chef's apt_repository resource doesn't allow specifying the signed-by option and we can't pass - # it in uri, as that would make it fail parsing, hence we use the file and apt_update resources. - apt_update 'datadog' do - retries retries - ignore_failure true # this is exactly what apt_repository does - action :nothing - end - - file '/etc/apt/sources.list.d/datadog.list' do - action :create - owner 'root' - group 'root' - mode '0644' - content "deb #{node['dd-agent-upgrade']['aptrepo']} #{node['dd-agent-upgrade']['aptrepo_dist']} #{node['dd-agent-upgrade']['agent_major_version']}" - notifies :update, 'apt_update[datadog]', :immediately - end - - when 'rhel' - include_recipe 'yum' - - yum_repository 'datadog' do - name 'datadog' - description 'datadog' - url node['dd-agent-upgrade']['yumrepo'] - action :add - make_cache true - # Older versions of yum embed M2Crypto with SSL that doesn't support TLS1.2 - protocol = node['platform_version'].to_i < 6 ? 'http' : 'https' - gpgkey [ - "#{protocol}://keys.datadoghq.com/DATADOG_RPM_KEY_CURRENT.public", - "#{protocol}://keys.datadoghq.com/DATADOG_RPM_KEY_FD4BF915.public", - "#{protocol}://keys.datadoghq.com/DATADOG_RPM_KEY_E09422B3.public", - ] - end - when 'suse' - zypper_repository 'datadog' do - name 'datadog' - description 'datadog' - baseurl node['dd-agent-upgrade']['yumrepo_suse'] - action :add - gpgcheck false - # Older versions of yum embed M2Crypto with SSL that doesn't support TLS1.2 - protocol = node['platform_version'].to_i < 6 ? 'http' : 'https' - gpgkey "#{protocol}://keys.datadoghq.com/DATADOG_RPM_KEY_CURRENT.public" - gpgautoimportkeys false - end - end -end - -if node['platform_family'] != 'windows' - package node['dd-agent-upgrade']['package_name'] do - action :upgrade - version node['dd-agent-upgrade']['version'] - end - # the :upgrade method seems broken for sles: https://github.com/chef/chef/issues/4863 - if node['platform_family'] == 'suse' - package node['dd-agent-upgrade']['package_name'] do - action :remove - end - # We have this commented and run it as `execute` command to be able to provide - # ZYPP_RPM_DEBUG=1 and see debug output. Whenever we solve/understand - # https://bugzilla.suse.com/show_bug.cgi?id=1192034, we can uncomment - # and remove the command. - # - # package node['dd-agent-upgrade']['package_name'] do - # action :install - # version node['dd-agent-upgrade']['version'] - # end - execute 'install agent' do - command "zypper --non-interactive install --auto-agree-with-licenses #{node['dd-agent-upgrade']['package_name']}=#{node['dd-agent-upgrade']['version']}" - - environment({'ZYPP_RPM_DEBUG' => '1'}) - live_stream true - action :run - end - end -end - -if node['platform_family'] == 'windows' - package_retries = node['dd-agent-upgrade']['agent_package_retries'] - package_retry_delay = node['dd-agent-upgrade']['agent_package_retry_delay'] - dd_agent_version = node['dd-agent-upgrade']['windows_version'] - dd_agent_filename = node['dd-agent-upgrade']['windows_agent_filename'] - - if dd_agent_filename - dd_agent_installer_basename = dd_agent_filename - else - if dd_agent_version - dd_agent_installer_basename = "datadog-agent-#{dd_agent_version}-1-x86_64" - else - dd_agent_installer_basename = "datadog-agent-6.0.0-beta.latest.amd64" - end - end - - temp_file_basename = ::File.join(Chef::Config[:file_cache_path], 'ddagent-up').gsub(File::SEPARATOR, File::ALT_SEPARATOR || File::SEPARATOR) - - dd_agent_installer = "#{dd_agent_installer_basename}.msi" - temp_file = "#{temp_file_basename}.msi" - installer_type = :msi - # Agent >= 5.12.0 installs per-machine by default, but specifying ALLUSERS=1 shouldn't affect the install - agent_install_options = node['dd-agent-upgrade']['agent_install_options'] - install_options = "/norestart ALLUSERS=1 #{agent_install_options}" - - use_windows_package_resource = true - - source_url = node['dd-agent-upgrade']['windows_agent_url'] - if !source_url.end_with? '/' - source_url += '/' - end - source_url += dd_agent_installer - - # Download the installer to a temp location - remote_file temp_file do - source source_url - checksum node['dd-agent-upgrade']['windows_agent_checksum'] if node['dd-agent-upgrade']['windows_agent_checksum'] - retries package_retries unless package_retries.nil? - retry_delay package_retry_delay unless package_retry_delay.nil? - end - - execute "install-agent" do - command "start /wait msiexec /log upgrade.log /q /i #{temp_file} #{install_options}" - action :run - # notifies :restart, 'service[datadog-agent]' - end - -end diff --git a/test/kitchen/site-cookbooks/dd-system-probe-check/.gitignore b/test/kitchen/site-cookbooks/dd-system-probe-check/.gitignore deleted file mode 100644 index bae3233263f53..0000000000000 --- a/test/kitchen/site-cookbooks/dd-system-probe-check/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -# Exclude system-probe test files generated by running inv -e system-probe.kitchen-prepare -files/default/tests/* -files/default/clang-bpf -files/default/llc-bpf -files/default/gotestsum -files/default/test2json -files/default/minimized-btfs.tar.xz diff --git a/test/kitchen/site-cookbooks/dd-system-probe-check/Berksfile b/test/kitchen/site-cookbooks/dd-system-probe-check/Berksfile deleted file mode 100644 index d1086cfcbeba1..0000000000000 --- a/test/kitchen/site-cookbooks/dd-system-probe-check/Berksfile +++ /dev/null @@ -1,3 +0,0 @@ -site :opscode -source 'https://supermarket.chef.io' -metadata diff --git a/test/kitchen/site-cookbooks/dd-system-probe-check/Gemfile b/test/kitchen/site-cookbooks/dd-system-probe-check/Gemfile deleted file mode 100644 index 01b5db30b2f16..0000000000000 --- a/test/kitchen/site-cookbooks/dd-system-probe-check/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem 'bundler', '~> 2.2.17' -gem 'berkshelf' diff --git a/test/kitchen/site-cookbooks/dd-system-probe-check/README.md b/test/kitchen/site-cookbooks/dd-system-probe-check/README.md deleted file mode 100644 index 4b81ad7cc58c2..0000000000000 --- a/test/kitchen/site-cookbooks/dd-system-probe-check/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# dd-system-probe-check - -Prepare environment for system-probe test execution diff --git a/test/kitchen/site-cookbooks/dd-system-probe-check/attributes/default.rb b/test/kitchen/site-cookbooks/dd-system-probe-check/attributes/default.rb deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/test/kitchen/site-cookbooks/dd-system-probe-check/chefignore b/test/kitchen/site-cookbooks/dd-system-probe-check/chefignore deleted file mode 100644 index e08f95962d56d..0000000000000 --- a/test/kitchen/site-cookbooks/dd-system-probe-check/chefignore +++ /dev/null @@ -1,84 +0,0 @@ -# Put files/directories that should be ignored in this file when uploading -# or sharing to the community site. -# Lines that start with '# ' are comments. - -# OS generated files # -###################### -.DS_Store -Icon? -nohup.out -ehthumbs.db -Thumbs.db - -# SASS # -######## -.sass-cache - -# EDITORS # -########### -\#* -.#* -*~ -*.sw[a-z] -*.bak -REVISION -TAGS* -tmtags -*_flymake.* -*_flymake -*.tmproj -.project -.settings -mkmf.log - -# Testing # -########### -.watchr -.rspec -spec/* -spec/fixtures/* -test/* -features/* -Guardfile -Procfile - -# SCM # -####### -.git -*/.git -.gitignore -.gitmodules -.gitconfig -.gitattributes -.svn -*/.bzr/* -*/.hg/* -*/.svn/* - -# Berkshelf # -############# -Berksfile -Berksfile.lock -cookbooks/* -tmp - -# Cookbooks # -############# -CONTRIBUTING -CHANGELOG* - -# Strainer # -############ -Colanderfile -Strainerfile -.colander -.strainer - -# Vagrant # -########### -.vagrant -Vagrantfile - -# Travis # -########## -.travis.yml diff --git a/test/kitchen/site-cookbooks/dd-system-probe-check/files/default/.gitkeep b/test/kitchen/site-cookbooks/dd-system-probe-check/files/default/.gitkeep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/test/kitchen/site-cookbooks/dd-system-probe-check/files/windows/decompress_merge_module.ps1 b/test/kitchen/site-cookbooks/dd-system-probe-check/files/windows/decompress_merge_module.ps1 deleted file mode 100644 index 13d2c62887c7d..0000000000000 --- a/test/kitchen/site-cookbooks/dd-system-probe-check/files/windows/decompress_merge_module.ps1 +++ /dev/null @@ -1,61 +0,0 @@ -param( - [Parameter(Mandatory = $true)][string] $file, - [Parameter(Mandatory = $true)][string] $targetDir - ) - - -[Reflection.Assembly]::LoadFrom("$($Env:WIX)\Microsoft.Deployment.WindowsInstaller.dll") - -write-host "Extracting files from merge module: "$file - -if(![IO.Directory]::Exists($targetDir)) { new-item -type directory -path $targetDir } - -$cabFile = join-path $targetDir "temp.cab" -if([IO.File]::Exists($cabFile)) { remove-item $cabFile } - -$db = new-object Microsoft.Deployment.WindowsInstaller.DataBase($file, [Microsoft.Deployment.WindowsInstaller.DataBaseOpenMode]::ReadOnly) -$view = $db.OpenView("SELECT `Name`,`Data` FROM _Streams WHERE `Name`= 'MergeModule.CABinet'") -$view.Execute() -$record = $view.Fetch() -$record.GetStream(2, $cabFile) -$view.Dispose() - -& "$($Env:WINDIR)\system32\expand" -F:* $cabFile $targetDir - -remove-item $cabFile - -$extractedFiles = get-childitem $targetDir -$hashFiles = @{} -foreach($extracted in $extractedFiles) -{ - try - { - $longName = $db.ExecuteScalar("SELECT `FileName` FROM `File` WHERE `File`='{0}'", $extracted.Name) - } - catch - { - write-host "$($extracted.Name) is not in the MSM file" - } - - if($longName) - { - $longName = $LongName.SubString($LongName.IndexOf("|") + 1) - Write-host $longName - - #There are duplicates in the - if($hashFiles.Contains($longName)) - { - write-host "Removing duplicate of $longName" - remove-item $extracted.FullName - } - else - { - write-host "Rename $($extracted.Name) to $longName" - $hashFiles[$longName] = $extracted - $targetFilePath = join-path $targetDir $longName - if([IO.File]::Exists($targetFilePath)) {remove-item $targetFilePath} - rename-item $extracted.FullName -NewName $longName - } - } -} -$db.Dispose() diff --git a/test/kitchen/site-cookbooks/dd-system-probe-check/files/windows/iisstart.htm b/test/kitchen/site-cookbooks/dd-system-probe-check/files/windows/iisstart.htm deleted file mode 100644 index e658d1b5f675c..0000000000000 --- a/test/kitchen/site-cookbooks/dd-system-probe-check/files/windows/iisstart.htm +++ /dev/null @@ -1,32 +0,0 @@ - - - - -IIS Windows - - - -

-IIS -
- - \ No newline at end of file diff --git a/test/kitchen/site-cookbooks/dd-system-probe-check/files/windows/iisstart.png b/test/kitchen/site-cookbooks/dd-system-probe-check/files/windows/iisstart.png deleted file mode 100644 index 29f1c908592a36630e1433cf72556634c99492e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98757 zcmeFZbyQSuyEjgVfD!@&2nZAn z(eHD9kL#@Gyx;fF_nh;v7HiMmv-iHQ`-;!!x~}_%5M{+TxDUu5prD}O%1BG7qM)FE zMnOT-#zI40p*er7i9Fo16jcyKL8*#*cw>x#JjZ?~t>cV>@?h)NFDeHYD zi<*Oli@ULtIf}9|$lirrQBwV>8#g--JLiiRr%u@@D2Q+w2~qX;275~wMu3^N`#HN52tX~STb-s3+2ZR>AOdGk|U)+K`}ex`h9%d@%8u7=pG09uMd6%EjYg~Nd5eO z;f7-bWIxxEQ0wh>>tVVV$6K%6u*~LV1h36+8Gp8SeRYrSjJFggX&K#Ho`LUqSsu(q zxd|h>*ABhqvaiCZeOr%q55eU5!_CVkHmJXzy5TrF7S3932&3Z8l+!tL3QBiS5W4E9 zvlL#r_>$DLq16UI(u#?Vkk@~Q`CC`44>+_kv3rHHvb?uD4~6f}lMKO#92x?O{9WN& zNF97*;+e`(uX*&7gS+9PJ7q9{oIglUX&HG09%@24)D4;Y&=mwrNslmZA0(zXn zj5}H-XBcXDPFO-KCWNUXC*(yLz(5-%{KC`cv>UxA>c(HA5z@{TW6*mdKtdBtc0fBPBDw zgwM1EeBet%uqh5XZ|vSojoaastsFS39_+|f1(tflYG()E#&@1>l|8d_kTibKtp4_5 zl1Jrc^T!IKQkX~RA&2ixX9{2Y)%t>A#`_Dsm`$d8VR>dZNBD)CGb@Pq$E}CUH#a{r z!MC?JUMsgpyVYk%eZx8qDMjF_8=d5A{u_Kk2;frW)Fy~NVHa{B#m#*(M&tFjP*?9NT=f#rmwzG=x&(F>3w#E$;^2^sdJ#v{hjGKlC z`An+>TRY*ax%&33=$oK5_1lWa7Ns5miQ{i7GqfG!^j^O&ySKG@(JIxAX?QoVIj#TG z&tnAq?zTsX4_u#qD!;x;3fk`LBvt}p4tr&2=7N^zq9h__g*LW%7nXBV&IOnW+jql% zOx92R3enH2NG}gTMhAvOS!rzrZCQg@Be&1lS6hO()^p+wV;nZwS!$n?u=nyNGaDSf zSNr%!KRauveGwb@?V<3v3UHb4xHx4NQ@Y{xL4Go67n@~h9T0rEQ85|y5$oFEGM4<_ z&FS~_r(x;c7elIg#`#Nro=5FVms3&gLLR%IJsAd}ta_o_o|*VD$)PWAg!A{+ z7=nZ^h04SbD38vNLZTRLBcr?J29z)&qV`ik|BOp=A=GI~ZH77H1HBwI!k;|&x?|<$ zW+7yzJPaPfaQf<{_gI*FlrMzqpwr>*!X0-C6*7ME+ySvM^GIOdGfZ<(4^gZQM~+pP z6uVs@oO|Cl@bE($62A88ABS8Hv@DH)MNcR=e5D9<%r3MlZed$vQQZnQM`@>ehBw{^ zOAa7Rj%w=MH5&YL#2uVRv$}HjQyG?Ni?=n`J)n^fVwQzw^;ia3~aAuE( zG$Pl7jc?ueFd%cLSOeD6M48#}Pg-rzD~pSrHLmU>slWkbfbs#o33yt=-lH@j?m{C~ zriHJX?o!J@5a;|=vfp4gY#^O-r!t}el`ghTuYwW(@H9pxABAh6L_rsowlPlct z?UD9&4`ejQDede|fnP>rSdqjulcTvDG=&O`R_I^Lw8oddLKIbZIDqf=k2QS5=Dp6% ztt;XEN}vo?E}zd=QQnirKlCO?bWPcn>27mY@4gxW9L9yWzjM|=JH-~OlQO&y1&aBc zCMbUy_3q*qWKW<%_B`&8$kM!lPpkXO0*|s5>}J3L7zz_gh>P7H z()|{{W<% zF2W5D(nB?YFqh!k`sNj<==}{zL5FimKgjRY-)pQa{-QS&k`G9bq{JFkRLi`*xlToT zhyKNkK*xDp=Iv>7sxSiXHNTTIb%r$3_8fjY=?Ne|Y6adZp1n3)Z$*40=bzg-T#w}1 znNZ)GD~7y|3hWevW3J&%G?@Se)Is4w>>EG;q=WF-4nxGcGI!~eoU)@Ft|3|ul z!=dMgjHN(!@9h0LJ}tqkqT_^jzh3prV!uFX4QlV`d|@hC1kvtPnHccr9J7o&796-+byV3gJ8U(UJQ7giO{O zwaJEC9A)f(DvmuO(0D+vl<>e0Y%-z-h1#i_8J~SN6S{c5&j_)Wt z>s&?Q07uC6BFXDBQJH)1zeTCkZm}g4Sjc-Of~dG5^2*>1)*I%!-+ELdG(8m!whb@*9-htnaSgRMsDTaSrK z5QzSDrJ!ocJS9!ghpyHikZaR2rfag#kN=RmY~J*VB*|LGhT)onuj<|vc(UEpVG^v4 zFeJ`E>H?Xey8|fRp?)?ws+QTaO$vPMzHqn6(4B#Jb1QHzwZI}gR`8kftsjE(k9Xp7 z9@O0qDTN9mqTud(xJP=~mnmpBQGZGt%Q^gg@#53+rH(f@`A|)swFL(0nZ;1kkS0Rq zmV)ds#5;3pz1eJ|DlmKce_% zsFfD+iTmSpo|5s+OQ6gWQ4KHM$)|FXfvAM!#gR?lCvbpEc*r@>8B+-F=HZ``Xmr0U z&OHjWuxe3hdm)!n7#JZw*@0+ATU#ZHCqy%V8x)ikn;yxrK zl4d$K`PxxBZ=oQn2ZEaX`44vqF^<(BEY39!3H0V%W<+O*C{?eZ4!CO~i8xhP>I#;u zfHD^95pq5*;ghp6=!%qGLz|j#+gbtz-d7tXvG+lY8$aW*5}%dBX_hse_fUb z%Y|yETTB{9E{nNHrF%_wF>?uIGAHyv4d#Mi4~Qkv&wfBN7zIgr!nFhF;bb8ZkIWsE z!SRU_cLm~dIuRlXaK7fHRu`|JOadCNVlSE^&k-&aov9J&XTI8}#goBy%#s1KD!?Le zssFOv&15|JcV3}LZCat2!fZam1(kUeY2$yQ&A0@;QG!2nx3t=JpTt`9k>n0R44K)b z^=z?}iDQn6Aj(5^8T4mob;ZQkwT-PpD+WpOzN%{nKQl-(tBQZVkvJ`ap-z3>yD4@9 zWCNwb{a?%ru@%EkV1>mOc{jB1o}G}RR#9gCBZq^$h3gJ72F=`}aZ0@e@G2{jN4y5t ze2%WIn!dP%XFjg%UFSDmAv~UGO|(V&KYV>iIy@&tie9tg(Hc<+ZO^B$U}Y&@xkA+D zGDc<)n_Vk;Ey0j>D|B3F#VsiutQvQ)j+AXonjIh^Kh{GzMxByw2uh@rJphhlS}SXa zaY2jKEsqOw_V-s-(_`|eEI$b?QakfR%!Y+v+)X*4d=H;Z@M@3T267iMXMQOs-Vy*HrXUN(;DW>(=s4B@` zu{j4)9>x21nonK;K_`qSBkAU_$-WV3+qfn5eDZ1IqvzbdFN>Czd$VcwIrFf7)>r-k zQBo#pM?mp4vf8o84PanZjC=$MS$mvB7s+g5Q6Rl*1PM<=gpk_MzH9#_1JAbNfk)he zdhkLC>!vEM!VWo`wbAPeWz28~f1#Lu_p#y~HHtY3G`1-!Y_K!O(lWjxRe<6=nnL`y z2rvx1#mb#wUZgcID6&7-tjrB9=Zvg-M?qaM4qiw3&$iREJPjkjqNuv}yhD-|`m_o zs$hDWMLVbjsi0;2;kT>yHX05L@N@ih^VPWx*%hrt!I9T(TNA#; zPy#4CF>wzGL3=_xqu(l1qCP`ub##C@X*DAWO@N8Ik?MFq>fh!S63au3KT;}CCvThM zmAqKLI9a)RDbc8>6t=zs@cUCkR&TS%0+4_Qd=;-b-y{8w(|u39dH?Q3>Cnn{Y>X1~ zTI9Zmv+#4Cwurap)wp(Xc8LVHW(g8qUAygfqGJlzWtJK~JHiqrIRw5I6- zKuNCVM_okoev}&1QB9|U)eHPTatpU0bQcW=%W=Dlps~8f{lEOGUy!5inP`4Vg0Gi- zoSU2E~KVnS7EBv{- z!+InD*T08i6sv%e6`=^8WVUnm(x>T};X3$bl6_E741ngNWL_0gyj&?g-i#Cpe4V_$ z-h@qVM`Dfkc`z%#`QJ#q+^qF(fLb*~an$dtw5rD3PGXSsu2R^FwP=QXb}c>7Y;)O>9~Y4m*%D)XOe3?cZ15jO%L5nD}p zU`th=zhHZnM|D%ey|JD`g{~qBV@ORpocoF6<`TW#x5WIPM z&jYgd2n8hz4Oyc0JdW-?rCrkUQXIK_@&H-#QkaTREyO*I2oQ_z#TSb% zc!h^-S1|vqmaz>-^{`d?2qbwRN+paXnz8xv9tuj~XJmHEd4Ii15PMvk@t()O2l=+YP`1soQ(Z|c&6eSOA|5NJ5vt6KrdlUs}3f2Pp*edabt~U^@wHbC>mZLjh|7J9wYF5A5ELN zC_JtQ@s-?Q{^82<#3{+gK#g&Lpb@mmAlI(9?sh6c_pj%5;cL_sc(BlII7j=C&u!CM z)kVU6tWoO%j#l-m0^kJYP=26X*K#jMvTNkZwqo@^10)<3*A_@pYy+=Y^uBGThM_MD zP#ZR%=5IHf{Pk)G*63+5fJywY72Z1j4e`qNQL%C|ed%#zV}$ctFTpFzKST^i&9gj* z-NzkNm(kG?6boAz-+5N~Zh*#GJONlH;3n0`T}Js9q;LIH>{aXVl8?5I1cf@U7&lD8 zJZ2VeO4+N5{fxo$vxL|Zcj-~m1+mp9z$u8JOf?<7?ytz3()OcYEBBV+*-0HmWFCD| z#z39F_XlurZoP1*^<>R`Eh|}^J6jyZRlf>CB%~G6lSDWJI|YCCa>v8 z(9BK*cod~DGOra%PtgD;npWB3f5>#XS=Fd>gia=leL8M~2J+I(6F~|xg6m1-=7!D| z{(%{_#b~gVB7BLX(^~3~>UiZ(?rrTdcIAj;ilLI-qS)ArCinI{NuUyoRA#Ge*j7U5 zZ6@L^s8rqU{U(HwBm=RIG_|@ok)5c_Pg(qgi##oB)Bbt!?Zx|6vFiD&&}sPCc&=4ak;9 z%RE0(0{6ft&?~Cy>jHEX*Ib7Q%T#c(+=x~gz`Q8778mOXGE&wZ5mJ?f#K?xk0TqAus&cdVVkFA4*Gtj6dy5>IM;M41qc8IGJ|5U8a_5j zohnnt6lJRCv=HdYPNL3V_9(1kX3OTGLR9meVy$hqe70Fhwsn* zih!t(tU2!M?l;YoyZVucH@K+=?zc<+V-7SK%yC$?JIN(@qh1xhBhX@P{nyIROiDcU zUB`*5G(1AZ&1_;OCF@Ae9u%is!(AZ+4jsn_dAoe^8KbJt|3m)J^HTx_CV`p4h~p7; zU0F+5b#U-tF`y`K+;3+tZ=*#PP8e=;vgSo7J@N4e*dhUonNYq~CfT)I3 zd+{<`_H0&0LS@jV=#9Yh=b5~ySd#`guzA;7o}CQ!+K!#CTFIhbWNzK^ z|Ae&xBqlCgUj{S=9yTj8GjUEdOo2Bnc)x|r>TZK=>2^M-4QhF6h45-m=`)@+nHV&y zKN2K3NwBY+xB8uyD3^`DmmSl5{Z@2RMMJQ{oJ+)AS@2MlOuvyre>?O+94dsj+cOV$ zbb!Vg32Fi9u@YWxFJS5+1rIjJ@cDfMQzw+L~uia$|n5*78hZ z789JTVk_2lSm*ph*>OklLoD^twet6^jwCQQERJphk1K<;tBO~4xJ!aQ@``BHI>ud! z7OHCam7h|VAeSRDY6jXbhCN}a^C9pj7WT_RcRMETkI3g=x$$_(l<|y{S$wf zfd}J{B;$@(-eGXEk4t3h=qs7BX)qT-5}Er`Bix|U``z5rs~;X!1^1|sw{%A<<>X6$ zmPH$lgv^tlRVwIZsig200<#pzuu(V1e&=@Cx_L+HS7$=d$bwZ5lWA>ZE)k-6R>^ms z8i+EIBOkXN3v1-Q4Ley6a)~VHIMEsfUkJ57^E`^e*0&i==2OA3dsav5fiKS{f4oc| zhViT+5@aZ+yGgoUu?NffJ8_M-93S)`j!KsrUJmJa5&e;MZdO)iO3R=j1#_Oy;Bq&p_$Qpk4ORWvp5i{O|MoRyJLI#Q;!CfpPME-`h=`_Q^u3 zKm^HO$zyTV`yKZk^dlUYlb1H724z&M(os?(^ZvsTF!Y8uL*9?%B7^B$=!$^4a&Ero zMmF9NV_h;ISynf%Bwt|=jA`fDRB&Eb-+$nY?mabr42hq4&MAtIHoUVX2V{z+7&y{D z?IpfQ4{@PV$!mBzdLOj5!;KsRVL?AB-{pQZJ*k=&sL?7=n|putG*?67PIFlEOwWdo zF5r&<7WqdOJSFj3gWmB_M`lEVQX_;vdt4$co{^O(3%g8ik_U~4$UPDSO)f7*`a02r zUK4%KJmOlxBI`AJq=V;;qbM+bQauG6N>*uOPxxCS_tDa{6n9o--MMo}YM&qK4NR`xT$S1BUD_Ib7A0l|>!_kj~-c#JPxg*-5>an{k2$7H!3r6-Z za$SDYAEKNU>dQjYdeJ?@1b;Qu$&mZ|27A8pkWm-`c9(AxrwRjvZoU&4-n?F`-Q8z5 zaDII*q{m#;@%_R|z@Jwv73x07f5BZjkrWnbZ zd}Z*>**HI;*gczlh4#D41vJG(@tb>(qyhBs)rdp;YI3Qrl@1PXQ5lEA$_ID(x{a`zlPkA zR43iI{%ex06ZkohLMKPGp?IFn!N@DGhM23KmVQ#(Qm(MKJUQc(be}t*Xw|O zg7iTKXlW{rZ|>89ip?71#@X`BIF;n42vQ2;%B2ejXdJ)l463!px?>Q8Nv09IXHCgH zG`w`6Z;L=tI4n8Uc?L;&AN?r;d_O*UTVv6co|P^PiZuYutClXZOsJ1KBgw6DzW3K6 zQ4ewzv*yT2q38Z%j167QoGf`(ss-hbXBj0c6pbBkiFG%64#A^MfCm96&3Q9<4n|^bcqH3Zfvw7=xmqn2(l>yE1`ALg#(P2fYYEC?4+Z4~1;>n;t)Gf= zp*c@a)#v^9dp>LUzR2yFhcr}xqEk`pFGv;f+7NC$i;zt!2B8=7ix8Qst$u%$XV46V z9HFpLVHmfnIw&vfTjPw*v?Gj1OqJB|^2t2upuVF!Wq{y>6>>m)uzUm)UzirsSfBre zv4W*xGY)sIh0i7_Qs?;)E!=|}Tt z3~iTJNV7cl;Ma+muSq;c)m`+rNO*u0j~O=x;E_-%cf$I$xX85RGaBr@llUUHCc+;2 zUOBhe@EbQ(R(IUo4#()D_UCE>b9W=Ka7UfoKtKudTY6=rEpT!>LB9{Q%%f6OG0ns z0!#8Vx0LA%`;?lZ#{2}$8Y<*1Qf&i8d-q=i7DK^%?-9{9?Gek zI!ab+101XmV4}#9AF`}y=1J5pD*X$|KJO9WL0{jNwlOFSb@45lN2ah@2RC4s0TAr} z3Yk+pU9!96yKazf&C=+hZw_9~MWS(+1F9yxlsnJT5kK{~O5|Ddc&R)^b|TDY{;8e> z5-f;1)KeHuR5dlnYebmh&`PYHW`Hygo~T9iqp(4X2_uOCV5YSlKI`{}5G{L^RGd+o ztuWW_P+-mhcDG|p@f0V7JXltxq9vWv_J;f379UR3JFMNv^z5>bmFED7%KTB*0~w;D zT6cAh1MQOAr58h<56Axn2oHWEZF}S~v))Mo@GerwE1G$mjSpsQBZ#W&C#l*(u`pW8 zM7>t%K+yfGnIk!g6*mme=sxeA4*7q_8}1w-C7I^Ntr%o2Z*!_jXp?iQ;^IEFqAQ#S z_7A_%;jvz~a-b&sc6hi?OiVHj&GG;_%81rj*y+{}e;ul-vtKu|-2JgnNko>IQOeTS zkA-`Re|&;_e!=~-fH+|EvtMPF-%le?T%3o;d|4@X%^qCM; zLq)S>HI2lhNYr;Z8+CF}sok^E@O?1&ou87}TeGjLH`QO#KHh}a_JW+RA3yPeUTG`iDo&^LuuoVy#R1l$84v0|k-hhOZGP_t zgS+wr`Zv7Mx3{bhciH;BZIDOk({((FNGIQ2t1+&wcYlQ1q>>}0h=&Jwhwjs|28D(` z4AV`jwH<5mxUSoO2;p&ccEmeAadZd8Lc`cVkcIpPKNEHgtC(br&~6%*AWTdZG~Slj z&%x18#ao5s!)Vy@PM?sGOH{}-6>4_Rm4!L$t>WDcptuKn~a|YFRV0*jeR_kPg}1bV_KIjPdnj<-`g|!EmNdeKLlvfxBQ>n3sFM9G`vYo-qhpy~ z?cQjckB$szMo~XBl@I^tQ9e+9`xUJSVqGdLv!Y>_)t-BTMqCpw!~6Tm2o5hWKmM?6-CTquhPSUzn<V$Og^L;!& z0TJi38dfAPeM+(cx+UCmZg?r6=Aub2p6FItS7*Pv_>!MB9?h{@ai&}$Rgsdv&VH`g zvYx6tAOO`@D85WGke7DzX-tNsOMU}umxO<>lvJ0b51-4}?HTQ+HBJ*&Z3k@1nj2fxWNyC{MR_sVhLj z!Plbz$fuiD7nNsJzqd;QzGdQ5hi zo$Xr)FeEHI6boBHPH|h?V7W{#$<1#5e0!<@)<8QtBfte@&(aMw#>>$s;=JJY~%a1f2^bGTZ!QIkuv|Xb`^!Vi0|&W6udBK*Av36 zxJQ(m-^V4?RdN5$`GahTl6n*)aEWfCo{0+ZtBSa|yM{$YhTvd-RUFw{uGOoc5)?>u ze+)EI-c2m~czX-|a*A*9*q(dWxw4_xJFG2Gl}jc#A{#}a0=sIAMt;}C%D^y}%!jiH zx~xo=nwdUbr63wKjRDBoovEOvB23OqnFex499PX6c?0cUiIL`j6@v4K&$y2`V*u5z zV=+y$eGSP!t#%R z(CI`L$lKyO2a02AYc;f^E7p|lj{86fYetnns5+^q|ZLQaM zXpQm7t|}p+D&c8GQHTr^b_f&p5lAM4 zmZu7u!HhfPq8=9$o0gHLJ_`&Rcg`F($C&G9k4T4#i}NQC*V-)ug#uTdY^#O96N$(_ z@?kRpeG0^)5^sDZLn?k&6cRsd%B4m)0I}rxD$}nhH!vjqRYu{#&-0%yu4B$1C^#|4 zvHSU0B;Gmi^t7+RLBC@RAS*}gQ{jiZz}MY2K7qWiG3_iZ&CShCml#=RIoP>ok=}st zhdt9f`CA-pY}#=URyJJ5q?O%iXxqU&v5fi}&z20{5YlJILg+nDCb4>EH9h?xD!;VIS|<3fO*c zT>^D}tY;d62HY?T?K2PPMu(qKzcw-&IcV((&k#Z7fBlk{lU<0(;Ej&XJ@bL;z?X6r z{j@A>`hER3u#J(wHa zl?Pc!|IrvmV+xy7&Bt4xo7TnK*GoPUfo`q@Q4$jcwY9Z*dB~WV^iS@K7IEMsMKZ~c zp2&fmaXhzkK-T`A?UzqJreDxN`fo6Ahd{D_pDP`}1a#iM#@)|d6H)$=svg}rQ$8zuD17d1k{iCD%KdNqm%19RJ+K&6!AbqkA4 zOG|>#ZiSj^h=nE3P=Ef_W@BUSQ-&aB5QvJWuOF0=`X)hAA(dqFM^ZgA`FOLp)gdw! zd#L7u9UmnlJR-Md(sWGgS>gnT)&pPH&QQ_ymHhIlnJ+v@F$NWs0 z)d<%iL6%D$UwO!zWk0^cLDdESm>U}EUK*-h#e+q-zO|J%(6sP$lJzL517ro^QZCmk zA^M35T-gr+L9FL=D)dV63dRI_lcfEs|fqkhC_#D8`%D`cU-+>e+{-74yB*(i0(Z ziLsd}An9d5hqLbbCQpt;Mp-*3Jt-z8Ge)K{B^0A^Eqn@10t$*YLYF|^<51|mif-5 z+K`&oR(<*R($-?OU!g5tKcZ}wUia2k#nq>#)~A*;L~>O@nbI~9-ZWJ8SUecZ=f zrt@j`=}olVyT>)op~nxArYGgG(OoRf@&^ECY?jlUxHn8gyZ7~CtMSV8>K*2)TQo}C z%*{8<*#v6smx^3dBg=Ft$YHixy0MATk0=PJ)^~|SQD;{8^hqc38+4jiKMvCBTid#* zOFy0JeG|BmPfNUMR?oy_tEIVEUFZQa=JsR*Day2hR3=&y1BMoo5?w$`#m*&(f&+T) z4u*?GuHP@8p=%DM^VoHb`fv3We)HRk79lJj8C^zQrb0EK0t8S#*&{NcaUPE&G^J^( z=U^I?IdgL6T+BQF>E!O}>X?sXXFk%k36UcP6XA_3Y?4Qs;*PEe?lOpWt{0 z%l676kr!-+-iX#+5+$n4^!R9U(j;<R4>1suY^p z_rEs7Y-Vy=#4CpNJ>7ODYfKB4DbE@`l%q1lJu z=R(xm=2|;S0)RxwTu+ZwX6o)#jusM%LW_|K%_6g*uqlz!blsWGGqSrB@SBd$rQF|N zgaGk=o-_9i?#(x8j2xc>x`NKOd8|d+$I#(QPk7DX$trPy_^CYh>&YLM=y49)9Zq`o zOSIV1xw1VpJvE(FHC0WT*pdH`E)d!M(8lVv;^0f7A65uGb{c^EaIx2GG8^z0+SgTc ziNt#lj)#YnhqJ%Gv34MPcyPFu03e-W6)4kJsp3t+ zOVoZK-S2{L(UxkmX69Q)Yv4s*>1(6Y&!TJh@yUc;`er*m(c@5Zd2|KKJeLZ8^5UIQ zy}in_4!{%z&`KmG#ej)!f<*z4!z4Z-kuo(r9r@99f8N!qsBijImUDi2czUSOQPstz zU6HaEXOGWy5{t`pZ>uqmelU~E@u2HS&QdW0SbEU{T2tC<1WO?8E&yY*fh@dc$$82m z$ief9TQrG~G!8(N@Q5HEF>T3Le>@I#>%QuQyBPvqReP&r8!DqOgDd^Fg14fxDn*3B z9QYIz3(+F&0Dbvl_Bulk8(jd&7RCB*|KD=W#2GBM^UoDF|nGBFX7Q+sBHE zA9VSXDMw0)n%ix2wu-waBAwrQGS|2>@M2rdKo|0u5}AMK&AfB}rN6LX`E4CqQ0QSD zFYkFBoZ(erBJ)&SL~TS#OWzf^l-FUu^_0 zyt5%0@j70wlKFIfZaY(~Av#f=@8NIa;;U=z85;?GXKfo^QP7-J@Mh$=PJbamo>I_u zVPFHj*$rx&9+wuMo+izG^ga8TuaKKtT}*a|P7$_G6U>m$R5g&DT@&#rnEL;!`w$6F z9f`mN_bzmFboBR!pusYuD!$|6=0}nPP4)`0x$}p~`K(uuC0Q^psI_%Rp>hky%jwNH z2Xm=TCxxi!Z}1+!u(oHvL}P#n{z2TOd&;%oGKk3 z@bKI?39`F~su?041D#Jt)8cdEXA2ufjs7;2Z(A+jbmmY5%G|ShQ1RjJ4q23gWcp15 z!=DISuZA;mGel-ooAmD(e+sH&Wy(8V@iwIKq#^Nl>YkO_R&aiTXeoyYfP z&yi?T0RjXMOiE5zmL?0hcc;yrFes$GaM`MC^HE(}d;M0Q5p||qzu8_8IWD9t!V*H@ zo>L@EG!$IAXXNlkr%93WmWDaB2dGl%X0y7;%5AFsBXU9tXQdUiR@K@Zb-3W{y|TRK z<<6cic=xkS-=Y1zNB=3dcoPy(^EGCWR8-HttF1d*SE)0jX-*mXFg33LNy|a^Fcc_+ zT)spvr)sih@Ow*twP>`{1LoyXhU&%h46zOL%Z5L2cY-N}hiy+bnH_X-u3=sjz!xXi z*OM9lR)sOCASai}Agd#5WOjGBmYNZtmXgNnxHVh#oMAAH-)p=9RFYUuCg| zbDDgo-y{_fsLN-q9yVTMOsJAd80@-?pm5V=vPwT2HAsmp2 zTTc%^n^3u>M{`+;rl8yE>{XDWpd);}F)nC^Bju>C|GCzRx9if)w%YxR-Ib!wEcK70cM{H^kQOr}>p+h{~+9zG`yJ>2b4}uvbT*BH4jb;C)}bN{(eDg|OvnE{0kGTPjcQyBUwW zdC9Ot{U+OqPz^oJvbh%PvmK0wyzF|@d9F4kfk?vLajuLF1QqKy^Ac}UCNzHqq<7Om z++9Y&CxP%7d`MviIbZcO0?ouPN=s4fW^gQrL&)AhEjXz^JY z_xM_%@OYtp#{Yv)@7XSAu1)Xv)+Uu)s@cXCSJ4R+hmrLz|1y@Oa)TEqG0%fEM>2RT zmAdRLyM>PI32n6Zau~B>7^k_)KDV8D#V5@0v~O z5}WOc03~#9AMRK+ZnbfSh~$^Pr@4(an@TA!Oos-%7!;BxE95S)JEi0)cr4(_jx{|B z$pVh!UqBO@LxzPiioef9&FF6`zTeQ&FEYI<;<#FJN)Xp|%d zcb_stE1xm!X8MxUXC}y+2YQ+~IQ%ejnCUBiM$Dua_F3T!7K-F7J=21B!kLPaY>~@g z#MhCx@7DspRtSR~4-}r3=`1l@f^eobL+ybbWhe8W?r3 z)T;M27KJ0~W-)E8xqhYHacF~qYN^esKVH-)AAeui^zyT0T+bjGkIRkUvK?fzp$Q1m z(5|%KUJSxN(0k>)8vY$U(1rbQxj6oBtK%_IMA#=9zA!S+sg=32GdVfge)-{KE)!&X zLydG$4`{wR=vu;yyyEk2WO+g=GF{Mq{H9-xiJv1=&}-ucV>gL?;r}D-yW`nx+`YR! z9jIClik8|%)vA@WW^JXVMx?0SP@6=gliIawMC{mm&(_|16KWG9My$km@1Ea#KJWRQ z_nhD3kNoexulrixaaEcxWzY*$D(a%#J8?P(!m9#=i=G50C-)hh* znZeVUow{O|TW*bfvoiP9Ek^qkmsOOA$krrd6h-0bUOXy(4K*X$jHaY|{G+#e4>n^rkh|y${gpGelhDcw7Bch_{ zpt3Hz!@uMTneQ>{3FQ4uCcClR3z z&@vl(%T=?>tp{rdF+-lipARi`G+gQF>QDsfEv{P%NS0Gk1 zuFhwFIaV)&nlOcG9lySZ)i9Q}KL9?zF+tN}v$f)V^=Jo3nN=H!^3ZX*6fv~?S;m8H zynbPPMs8{>w^v)+!**kMdsNPfCQ|7y2b&+wLDH}E9%mTDoxcZ}F~mljRQRn3^~EQbr8u{2+>v4U9aRRAKkoTf+Kzz-AiOX2@d& zlVuJqA+G`}gwQC$iD8blmf<6_;Uk~AOSN*q&3&2s#|b1dP6^Hs z!T*$;@!)~g18fhI9I|!MFmOc}4RY%B9Wl1jjFp1_{>^03CXAM{AE`ZNiC)FHakIn} z)Sk}(?bT!{YAS@nV^g}^adwB|09Ol?B3MXKyD?&TGDnPe?H@qLmlwQtoozJy$0tXpAyB-RM||g4aE@Pk3O;`ekykb+O^b+PH4>g(gtsnw zv5dmdlE~i7vr|S*Ouf%excD9;%(%{d%s2ROw!&%5m&`U^z4`Ni)z5uXy4s^}ppG0e z-GJ!K3{#S-a?niRdm8Ai(ecAd@kxePXOEaRZI4bE|5~1HikA!mVZFi)GOeHcb$=^= zt2Y>}G|T&RNLOu;{xCT&*Jj}vsD8@e;p`K)Ms-HaS)aXu5O{ywW7g;Nv;vBj@!8%; zMlLpQ!Tc&5r7JB@wLjq)3DuKbc#K2 z0K3>6RxMDlO*X7ACgzFy5~(R~j92^ggw7)OaWNQ(&-|QA+X1+8bB019f6jp8dn+J% zwOA4U@saZG1&Op5}%a61uwZifAe11*+}1LblOQ2 ztCdjn_G~a#Zy8tNL;kep!b8bY<=s0iev=^&QtLW3>4uPifeK-5myIjfC*8nH%e2%R z;4;+t+GmQ2hft9;gM#o3P4wNnfLU*6%{*JlW8q6;Jv!CE=bPypE#dC$?&3tbz2i@L zvrkP+U9U?L4kdJa& zXw^2D^*LU`vLm+!^!h-~^Ajo|V6WZ&Do*NdR=Ed4{JX>f3e@@L7<)aL6x_8U4EDhf zG$FLXg`fYaXeh`wzM#QSMxfEG>4W#qlhP`i7r#VGSz!Bq$RZ|E=u0wsXG_i624nZE zgV<`!XS~(=4uzmq9($vgr}(4^gR`D9B`f1INFM6D-mCq;77&NPU{Y`G7cyWrN6FHE z{$daS>eL1!kwDx9^d3&TXy+M~DRTAbSf(of*=$+JHyN$0csvx^7^r?lI6#wK*GB3T zyi`l3GbWfoiKfFrlX{a3Rnr{>wStiPK)grS}% zgQ-}dL@A%MVIYdA6XZ${kMi^UDrPGXr=4Fde7&k_9A@g5`esqb$1CipDzCi~>RF$| z&Xx+OC#lT37vhDdK?Z>k-e;9Gu~~e=a);d*)R}7X$!AGZ&(jH)J~{aAe5}QZ+JhBh zOoJ&vHPg3!p>gn?xqs$Ol$9Bv+x}mP1TWL9Mjik``t-f`%LE}KNz`;Mliu>fxQch9 zrB_+>9U;=l8KTGnubkuS>UUjuaUedWDlNtaaCGRy1lgp99q;A#xi;;@CzVKYe`1|Q zV-wEA#Ku0-vqi6qLwZP2si}m8q&gju5Ab@*f`cPIBfk|m&g!SzbBE$8;K#j70%JW; zIH6daC0fX^?)^+kY{ZQ{(Yv=$v+)v27vstmK2G&@*)N=UQAp$>mL{z0YtD{q3hIb^ z+Thde(~1JH$5{)Ot94cZ+KyUcUA@uXVs{9#+}+-2Of2^Aaid+~2!F7`HD@Wd~!=lXzbZhTdwXCcUl=rHN*dAPMeK46SEvvs@O#xWT9!UWH95Zh=8q5?<}%N5|W%AGxJs44Og z7~pFUJJUV#O%@F}F4H8fz2ejLok4774E~1x#{AU}XqB@lV_vE{HuDo6Tvcv|ys#d3TzRQ>6e}>k5Rp@mRi0 zC33}|f+|7Ub9?dZ)S8OjXZ2STUDnvc*J5cZ1q>5jOxIP}gdBod_faef<$MmZLqX`g zx|%?W9zA&dN+M#bnw&_YWF{fJqSLvkg(CDdCuIddJ%?+dflZtDTUONC`cZjOVBjLg!g`Q}h4@;ERQe6-PY2s+-bi*GnP zTcDn;JIC)in$&OOTX;;pcQ?{iv=YH?M?0w$THwOHR2NJSIjOaqo z-A`GxR)UEY=B)>z)HduKbRv!jzad@R!5^FN;t=CuA*?uqKLWv_aV|f1s4?zgheB~EU2pX{*rrrnjJg(w_)^4}!Y0Eipt^PXQG-jY6kwyz< zKU^wBqtR}h_E7CUs-9geHQUKdpfK`$KV}xSHzEl|`s|GXZ3t?6GSJbq{s=FsUGF?s z#E6k~+37Cg(YotRY_Bh&*kT{5i-?bDa}jQM{wLlY8%~HhIRu~Mfts-y)WSjqGCw}=lhtbRy9k%7}TAXMn<1n;-=&Or+*(+ zFnWOtU$*7z5up6*6+b~q6rcAh;H&(n3xfXt8|6x2+9xB61Elw%d}#I~)$Yxp>!Dgf znkJ9k<|3U+qJ@m4>?h~wb5|=ZWSZ&Hape(YImoPSA?P7XWbn` zc}8N?+j|ufCokv+U@@(|I5l-1;_B&S`bt6Fq0rJYkk|3RWfJ;}q&&t%ul27t3n0>{ zrM0$O4Vs>-I~EkZY~yli3M|@SjDTaE)_qm>B-8)}kh+fh_CsgSH$GQ@k%wi}&<5xI zvaSeUN|OpFxiX+&XMmnU&o|cXfp2Fn9)sHEZn(o_b6M=GK_^-*tVPdA&0nt+Yp}n^ z#_?3oBFvxflb*Vzo|uA?h;TQOa4k>h)8qdxjNuh?`J19Edm&pog(q#-$^9PmLnK@%KxPxqld>)YMp>88Qu+>`wR zWmqQ5n_>zqbUA=$Ky`6IwI*>Qr?V!|Pb89R=oZYRduXt650eXA8%a;kG?1jlsLS!? z06x&rGA0@7$D9%yrS?NH362{cK;=fFEG35V{gY6*gJp|)rU0PRnSPXI}tF2D!1&y^g z!0+wOf0g)!%EC8}I8{Q~a3$7LKqh4r;ujXO4T~VGZ7r?#kC*w!=LP4z;yi6)*}pY= z4PYKGOg784g73}riT-TL`z%xo)i=iu|JePKnf&#tK%3@Fg%vr~kIm~~U?pFcJn6Dh zVB&*M@6wh-Egc(pypwuuGW@GgxP5eVw0CBvV<5}FBrvtk!pm$Yqsj$}Ty9)n!H{M9_iOywx*h%#cKLH>imp9_X?fw z0xq0j&yPtF)S&a`2} zkUBno!*VzTh^fx$PD?Nh??mcyi|dCA$m2AFXNB34B`qb?Xfomp)+fG?Yq(EbsqO)0zW#H8&nID&*o%724f17z2J;b z$ZVef@$DY<7|6DI4W`cHy4qi%bWHrHCn+>h@7D8?tk3rP31WR9bp=zmJ>SBUh&URi z)yv3RleFeLH0g%gPpJfX5a8$X-K9_|nMx2Y+;4)K0sTe|SGr5Ki3 z@0}gDQ`S{#&=AF{BpAN8M4fMfpDH`~xzj|FAYC{eI)tLmddjFNFOpb+j`#M?%UH$C zS8XP4vN)jUl5W3KR9zV_aH;e^Of6zx|2I>ML?5Lc2E3=H5Rx1}NIRgNMq5eKHHiNzU%rVvgCaG;Gb{f*+UE8rIaV%o+GA~EHui_Y?1G3DIL zfR^t=iwVCz;L_rOwp~!{w!bXq_E}mv3j(pdD}x$Q9DOPj`;r&7iF5Fs>5}S??N)~Fu408VCDP2-WY8$YAb;Eb~u}K#> zI))yw2JFU5_I21#rHF}0OZ=R|7NyeGg#`ywDp~I=_3X0@SJ=K~U0B~-zz>2zc0MZy z6ft>;V7ti=?x|alv1fuyme=**n@CI_8UfH{8fp*Lf?2@8Ozw80e|G&cQJr8~b+Ww2Xxczr z?9v9GZE#`}pEw;&`+o+2&KYU2%me;iFvfd#g}veu(b}Nlv23H$=BXsuX9chlHSsz; z#sYx7+etSca~BXhK$fdM*vGQ#z|ZiU7C_!n3cDi+5nJoboc^NUrWdAI7U5i#<~5+3 z{E(}(`i?1IhJd!mH~O*&Pw1$^$NlU2%kq>#ChLa04iH%yxuGtu<~O1q_3BD`#246? z>g;;(pBBdsu%yWJ#kY8O#dbv^T04VHcM7kJ2+Y0GjQ1TGW-+iaFk>~|`E9%3<9Kx> z#~{~rA<9Sjm#4x0e{e-I^AVAWEvN?%=Bd6_X5D8Pcz%DGsrq|>eb!?=^ncy_px`=J zY!M3jt_+(Mb>-eO*MxJ z((hO26oBhNi~d7cj4Tppvg{U=22ux|@j*en8EGEst4z*dt+@2G}FH_{3mcBVp#!RAg@4fJD2e93o}HfJoSKjpNyywPzPu6m{XMl zCL8$y{VIoSTI*M9dP(-_Ac2#zaJxwROiyq5>6DD1{ORC)SEZH);ioqv6|-L3KA?9p zH0G4Z#1+dMHWwFUzLiDi*WPTWiug2E*XvEkv(+zt( z9Y@i>?Em`GL_I1N-~9g+DSo@wf7vQ)h&jSwtju&7fuok(mU*!a?!Trj?V}xk$XKi) zfp;D&VZE8cH8lnsukq>%lS63B7M^#{aZ&&avlS@A`5Zp zSVRrLYa&&PJMB2T93B!Gpl!(w6u6{kd6Q*0W*LSSUrO6a@59Bfp^jkZLIX_RvA#Gf7L zc=gA6skE-_sIv(|!@2uH4AkdrO+~F0=zx2z&%MaN%yasCgmD(N|CNy)m6_%>)Yb=9 zwK(Vjrr4vVidhr#b|Cf4*&^BieV^$MC0IoHU_nWnne1~( z-}4B`_t)$ya&;zcFfV;p$njC!7MAqM*%vfLx!Gm1=zwa%4=fQl&3U;DI%7C40u62u z-ZruJDBowr2Ge|dIP2v^q`a|05QPmqHJh#U=?7m_GO%NtIo|QufpQ)KLUx1aOCB}0 z$|gT;vnqe;23LOJuQH5H&eSx37`?F7s4}UF)dc*ShV|6t)m4}Jh5=>%f9e_L78e(P zzupd6oELwUsDy&tPZq0yE!*ZqiTm9A)d;M{UD;AYEB!*$Q^oh0p?+8l zRfKnv z*H8j@Z+u6TCo~ax*60$$R#*6@GbsAl3qXLo`nfXJb&cuiV%{!wvx#oi2!qeJdkhL> z-Ohjr@;TgR{L`$&7l2TQ>0OR>+ub>RAh)H)sy~DCT(^G-HE4VL7gD8s+Bh=$F8asz zfHmgqU_F>ck{6899ykVa#`z*nl86f02DU&@pRM_y>7O@S%KpR+p|Iu4Nn>`Rq;HnH1-KQhfUC2Mt?Z%>bZ`Ru zwX2`+^jz=Jqtr~{-TG9L_X4$wFUU80&HDhKl$D~TwhRM1I#BuPOQ1_SBPMq=bAFinr$JE&&EG;O0 zI)mr@y7}pW+0MVx>i+?jyqV$Dl~ddwsQM(_ak|y>`=YhRUI~=Jv25vfl3xvye4ZxQcQm zJ6#jq`8JG?_udMDPwssC6tG$Yd+$Y2n>OtBs>jTD&o#2d^nsl`p+4@*dW?yrg)tUV zL+LI6WYnGRk_$|I4wtNFt9EYzb9|wv+L$=t92Nd-WG6D;$u&JST@6wFBir%8YRM-v z!18Y1oc|l5&y~s2gK;%Qb$=eNwyKu>;N7UgGn~Mv0-nt+y!@#WoSs$RBZyfqc=bXV zRx&+37kumHS4CE_k*HF>^yjKE@{dOP6+gcAzUr6B`0TRHFhi4ysDm$d&FP7z zQ8^^&e-UcUZQ;37N+Kd6cI_-IXz8^sN^?tcqD}`XZ!!u&%e+sg4ZBA3C!`U(L2l~N zFvF6qk9kv}GYu=lA3yU@&b~eDzkiCkFN+|yH&L^tTsYmHYocbCed5snlcDPPa?Sob zW1SyS-^XP+MIl(1LXYP`BVLtNdPdm4Ay|hxfC}QH^p!JUGM7n$u3E&nG1cN{NR%FI93+*7-p;v;PLaIl=_ zA)Wrs&ZJ$D$j3r%WrLZpx$)y1?#6WYL7$kf&%1|BvuLOl0#^i@jqs||6X{I*{86K~ z!+IyuPIgmL24@0p3+ue7aVm=bA^D%{oTK%0?dkBOn;Fh4Kk^ee6!gL@%|9{+=1A5J zjzmoc-prMF8mN=&FeaT}XPY1msre8v*a zTVZ)Bp#*6kc%Onc#uM)k04vT%$tocrpPfIPRiI_=UYMAO1;#Ruce&>+ZLLDR4n7Wv z_Z_yLY1TGD1}EEG|AtCCwHwN|wxg1WIO*2IhN9&v z561y$+T-0sot5DWxU;wJJZc6(CJPrJ5vRb_%%d*=^SmHm7PS*)o#?q{i(Cd3pVsFR zOZQgT$XkKhsFMTINCgzRS+yq&&O1-_6$YLD^)Je1&ee45PVHB6J>5DB9u7zYNKa!g zRD4qo@==^KC0+V;AoGoWMZ*{OjRtRt>*;5e`WCV@eL84;pWZWUY@zgwsMpQ1X1Da8 zwD?FkpMrn~6Yp)kVCRUh0i7r*y5Wm)I&>K$N{Dn3dRtD8uL7IbFA>3?{;wYS%F!`E zg)nVVyeK_*JIUqo?x>(~!<)0gCH1l1#3I+VaLNVcV2Ctgrmo9itJ-nlY*Qv=3+Lf{ ze)b38E;|3&aZ2G2(j|bmAAMcB3@l-#ymvn$Bd$>g+@vN95L$<88ivu6%Y9>9gOOrl{m9Vdv3H#uB}TsCPpjc|t&EtG`O9H{}pE=l*63 z%HqXkc7PUTd3_o9wIM7r;n%Qx*PkEk|F!>@&|lwpsc+a4*hjhUReR{H$5ydu_cjnW zVq-AU=fFICs{!P>xHto$sF)`I%-FBd7v$@B9<2S`lRRQjf410E06JaW%ONzluVon| zN}YEC0Kw5>Y7Dy!01)_}9_IIIsCyB+6)>oyt+6qn)lFBA!8{>vq+%11#AeY@Gyt;z zi~=(^e-L6HFc~gVGsD%)GR%;;8manBQmxdAtjzuk;-az^{i#4Vft+~u>sC7NmO$Wn z0tefQ-ld|)sj}BJgIiG4bRK0b43Sn>E|S>)Q`NeV9upy(>Qb(;51adjrP7G#Q(N3(jZRu2)@>sOAo^~69l$V#&p*P>b*79(;X&eON zO7rnlrsD2&);h^cAOv^*yLW^|nUNYgjXcFaGbXSUAvRZ81;$`h!ryG~tS!+K2=Ppd zOq(m|dwZID)OSVa$w}?Om6c{5pVG&R&n&&l|(Ycq~`BSo3i}(|#fk znk`hQH;u}~M8)@q2b$Pxk9W(?Yxf$DReHg$8`D`$+6g|}{(98^5?~e@t*V4&H|SS2 z%n2v|t;}@_y^))|7F+ngsr8$cRK%SeI4+f*Ig)WV`jeB*=FDge*Cx6c3*sI*k*1~8 zTZ1v8_6NIL5JWJu?7NxBwH!v_sWRKHkLW}8iJF!1`Z_-kf>gEjY%*&N+jN$P>!E}5 z?neMFd*XSpJ;%s~FegL@U*{{@&%;klOh`!q5@|Pg+rii8IQOkYnveAzX7w)0?$9S* z#LADHThQwL-z1nZV}YrR<BGI#f9$!j-wOLF$^U@o|s&r7Yme^Tcs3KkNGU%Nwac5uB_b_m2kG zjO9(%!`E8BmIOW?a=Y%|heqv!3+j#rWE|^}OS{K@Az95zvSfL-4({u4c2#oVMeJ}~}>fvSnph9?et zf%WcP`N5%LhCZkWd?Rvgh%xA{I6&G{+MJ9$TpzIRE~F^|_H`AWE#+=3R2$RBzfTYK zK7c9#p1JA=^Y9x&5?8Tkid~KWE#DaNM1QRl?%tB7SqS8Q0R%G}1HM z)YFHXXql)giU`Hp>wHI)xOXU>?ll@K5?RMlQ?>ipa(2&?@rgDn@b2P{OW+oSd0dp+ z?zw#9I34Z>9d10blBQ#aGu$;bg0?N=f#!3~#DqjyC1G20qunoJ$PbBOiPEB+ZfedG zoy(yK6X*SjI28{VxbV0hZLjZORBbboyCzsH8XgfLBui>%>4SO`$^?WVvZ#Y!r=hG; z#6NT%fYFIq{W(Cca7+NpND9IZM+IXr-oz;DK8(+sLjbXtt3>Yo%44C1HH7{XHHTBm zbY*SM%<(92CNg<#WM(E2PysYFU@%Z;-OiILb>*N$S+n_#WX=rDA7TZWg=v~O61W;y zb`hKQQYTt{L8EHqsjpmo#oh6ug`WUCD*>A*o2w@iaFveh<)>5b2{VZ8)zia6%y5rr zQ;+(}8a;lAerth#Zb4O)W@cufK9Q#0)c@?GpnRjWvfp87;NQ&b;=CZ&H}AH-4cfY_ zY>gK?HibYe3^W2+VwuHFVjkTWH#34amIgJiG5HgvMMZ7(tpTXo2c` zwB85a+gPv;AxwCYKFU#V&LX_~@+}StNu_mG%Zs%^L9q2P3~IIcYYCQZ+?g;FY)^nT z*sV;`%Z%myE9w6m8rgGgHR8@eM!&`Y0IAE!$QTHbQ4NZa!Hw9P*Qi)z;2XsI zoY;`NGNLjv1-3pV^C{sDXlZKvEUNKGQQ%7VL@9g|Kx7YLv+n1unlht~m8hoH%kl1a zr;9B*0;Dwk7LTGy*A}l{S-MJUCV93U!Q04iB?O|41aCVgSzV>@_!h$aJ&6UA9UuK{ z?zJSJpo59pc>B@s@f+7$zJYO^V7L$QilGK@z(yw-HTTZ`P7T` z7%aJjyVW2+q8S}oTJM5B@K z&zmUN$7{`ZGAwUyL1aBn8z)Ku7~|hd{z5i}hcAG^ojsk3YZIfbt+=5kTo)$@)#I5%Jpfr58AOhpR>GEu+^7 zxFVm^dHNxlAi>}*TABe#{@jORwQim|&vc$TBrz^6dp7)>{`s5XzS(9f2Yj7_;z4te znm;=xBmRf-nv|JcwS&G@W3C1+DCkI)ui8KBWopB$ESH>_e71vz+Vu8Y-1cIcNJm!0 z;GmV&+wR`>g!tI{CjxG&`uO?W#bd(`mlEAoH!J1AG-8@lmXpG~k36$-gT^gl%iC&=wL9=iaUVYbd}^OR+D>vfsy$VS$X3e_59rd&xM z4tL(gU)>Acn(%tR-nvwhk((%kJnrrYffjE%VcM!EuFQTa!?BNT z&q`yq#o=ve~Z66I2v$i3r-Yq9*<1^{JQv}*T%gofY~the_W*kMEbj)CLd83 z0S6Q@Ynk@0=c@hzf4KmD7f$4f$;rvvNpdDQ$o#?rRueOX`29W1B7^d8Dck<`j_NPX z<43O{=JN8o=69A>BNrnh=}5C*nwt}H6Ot9kK9hj)aWusTY?Qu|GR$#)%xIM%)UIY4 ziGD02YN>3syGTqc0%U0O9L7hzbso(bUtPE;iD(`yUoC(@_0N2so z_?=dntXjkwvCx{%t)UtkAC?>+6I;wHRW#F<Hlf%CQdaqmP-cjb^ z3DWXs5C3~gn{f=vIKjtXt?k{N)I6T7N<#G2&8Hxm2kpB*d}+V0x@Hj}lh>#913iKA z2oxc!4;n1_3U>+4jFc`!Z!{}Sa0TkdYYs;BXsP{(OMEOW0JDN`rEHv}OBw3vy0mdi zvP8d@)*UN`YRDh{$SmG24Ep)=FJX3+B(>xUH`PH1DP(fAz@R}34bVzPa)1T;siTte z+4@VGBu7mToSVV>r%#7Ax;qpogfZfDv3yqsDre`IR2f88r2R7p>lVZ(2T2eCCF9U z6MPha7!-Z$+NFiO%OY9iQt0$P_o%!E02##rxwuxIba^mrUPc)YZ(fDBtt)f$Xgt?U z_!0dCB<}E@gFaPSMd>ggm?i2Cm_y3_jr`k{)o%x3132?}UoI{URqePa!|Ern&R-`q zGR_&8hZDq?DGx%Vo76 zG*{-JucqbzpB(>q%BU4vY1iAW6v5-lE5O&;BM6Iw4vNJda}caXq-DsS)=hPF9Z7>0P#iXSl<2bJrN&&Y>O7 z2n$5Z*RoqTVe|}g_nt{|K_q!ZVLqco1z>Dl5uA-Ggrg>lhk7Iu35EM>DaSWcYL<_w z*H}O(r;QB1U3WP{-AVDzmJ)wAWRCJa%V^%Kf&(1jY?yC=)jFLd86b7?4GQW%{x~N* zm@js}<6kwnwpBxLm>$ncv-N=kQx-_hI+#_&v2ncUGO4`1w^K`1u)UkNz4OgKq_V_s zy<$wCT>r4BZYROwD=XdB#S2~fK$rbO)}`Lq*w#2uh4i`~$UYsbuPJv7XS}-lH`LFeJxC6RKgEB z#`uWvX~2H$pJD+|)QE7Vh~s!1Wnv;*eaJjqrBZNFq3vK*GA;8J4?;%8F5esK7Zr83 zE`T4-rv0&mZMck+1lf9LJG?h<%v@Z|THCqo8X3PpYU2sg2(e>fGiAOb`Q(|TOioK9 zvB+3g`JJW!G%Q+1)NLg3%ccq~qoDsLPV9S-5Oo~*p7+|fZ)bv+jMu%%3>0qmw1c_# zlETU~n|$@@&`J*a+%)K@EDrIUjDSMmYOHRt=ZIFB-AIa?^UzSd<=c$rw!^Ldd?k0~ z7thYZucsD=-=VcI4_}xMH@6u7dS|id^X=}Rf5axhDNKOIzqnI*>HHF~Keg?3|8D)@ z=}_)p{pjk$yN}+!tnj&P99d4=V8;s_UjhuIhIxji-9GPKxMAUd7RvNTkEm?`Y zda%TwQL|NF<6q+9G~`VaV=V5-utC`T{bprzfr*7J?lwIW>z%u+n=L|-_d;2}yt(%0 z^xL1)o#=*pp>6a>jDWwVrc3!}SvPows@Ip#m&EF-tKqKeQb`tLTc;FMguxnA$-IQb zC`m$1y|ZBd7WG{}x+{2iE1uNawjVM?sTxEmP`?{Z2fhdL`5;v8^78Fe;g_(E>#4ef zzT9tv)Ph)I2i>Y2_I)eK5^dCuOygodKRdfr&^2iJ*Dt-8$@?saP=agQ&^|5{;}z|d z0aWDoezlePD}44P5xXzBDw)=cztE0kvdn(ogF^E+I$I9mJZ4$h?u4V`?f|YiOw5BB zgJ+~E6jlN4|yk!3UZ4gCOYQ+p<; zc6o0IFd4m_2a@{$fD6m@=ziE5Ooe)_I3UT?o6{wZLkyO_Q$r-x(s%ty_W@aa?wr!E zYKMUxx+FwP3-O!(I(^Q1LEySd%Xp?la&@x*jzWYkxsBTJ$D?;{yGi?55G;O@?n{!%d%Ur79XX$BSS(s{TpjX0S9o&10V>GF`iW_^Ae+_4;Vm zRFc`}?fKh~g7L~kC(;F+Aa}LBt477@kNkl!Sd&GyA`g{zz-IEf3qP#2g%ZsOesASH z2BJw9yfoA(>(VG&ZB6#@KX8csJ(jKT*0e1%t@if=G!!1>Xdd1mB+4r#@Z?E*Q??oB z(lI5Mg2AF?lj1YOSTjA~#E~YwSyi#>`Jvv%2A>=m4hK9wn^lzD9U#imkx|R(*sDjL z*GQg9epgz)`u$VM*G{t*@z($fSZ9`y5F5JsK!`A$?t%G;uHNtNu%9VRj`}t!=3nqT zQ{m!d_OsV7-oLB(@x^DyNzQ^#K*b~Eh9eV0G9&XC4=5ku>RIz`wReE2&O(|<LNJ3b#KZKU6!NOy)@OMmRP4OX=$Nm_YsPl zq%5O;8rYnh$j?z?mXh?)bmC=LWX=z}k?c+U^poa3Vd)1C_{E;^36)#qglpxgP0=%2 zK3L^_MfURY1&n{bUi;5~_Zj-HUl0GssHQMzUTFX|-oI3ulY_tt$xX(1Y>d>Punuy? z&bxrc2(LasQ=J^n)2lE`^`&XK?}W3MN3?JehhF%G07HrH-*>0Q9;Il$*1%?NkDB$6 zRVa;_pQB&iEsH8aZ^d*rC|Dlc5PBV++y*-q6#U?xXC4L@1 znyeS&zO;lx5V!iXjO~n+Pf4T;f?H1wuKeMjNM;f+>+GZVWn16VO4n=G<~w?8tYm(- z`k3r>aZd0PN0+?3n*1H5$et7_5@gN^Hi90g?=>W=xVCKOF4u zextk@a)0iA^2K`9B9YC2_!#k?!0R`2{_5Xy@G)gOVhCyY{O{@#(!Jh|V5mVCxE5u{ z8&zFh>9*Pr_!qeYJHv;BaVb8os84)lW8iJ4b?U5Dlvjc2>Ga9Blo>ugB<(!BP37=g z@EQ%vh{)s0dynpQ@H`N{m-~b_|JC#JP(~R z7khCFuqcDgCSSg~nh!yg68ib>i}u?fgkstWrIe@l&z8LKx?Gi)d& zIt&bKHhsEr37Jy&+2xY_jnBG96xxtGU<tq8Z2V>?kFQ?%x%NMj6Dt>RTwR%=_N2!pmN@N*~ZO7D5(yI6Qj-SM2aXd7T_>XP_ zv6VG4J|HqY3vTWM%RYMa_{qKYF&QaPKEx?-zBU&yQlm+_-lOAd^$(4-sgisB{`NIZ zI^C9ATw0QV57F-KXr8gh+H_g10@f29awq3bl5Okvl64?aV3i!2e>%h}AXb7|jK(WG z;8?Beur4=Eb&g9GwVxiJUXH&iu}NQUUgI#a)qE@y!L1p>G$8R-&FoE0;(&kFMLrr3 zgu9hsOuzpVp9$+qWq(aC?&9#kHYC(fgz9V4lwLUK1Ey&eHSu?nuK!cJ5lMUqw5UqH z8O>{3TQm6(@@Srs+tzdy#EU#W{`y94Wc=pl{>AEnJn#~-Pp)k5ag*PE59>Imee(ya zR6lx3_SgM6>hQMFqH0CVhqurh{ds`Ft>JgxwFajYqAuG zt%uz9&X`7>2~NOgvf7*PB9zi8ycUlTiq%zOj~2bc5^e7!8_M}l=Z5~w&dt>zk+QLq zzW!D~DN@3K#`}2M+hoRPWyGGI-&6Te;bA22?N`jebv#jVsT8CT$df$r4^6WHO#)@a zx86?0ok1Kf6;k7#$NSU+KU|KiSzQHssd*|_3!b*5r?bBLz84@l?%BPl=Y;97&+(L- z7#X|wdtsk%z}++*U)>2ySY4pqqKRX_4WXkm{hRLPZMuHhCm>vff$!{a_;037c~K)@ zU$08vmg8HifX4dWm9>76ad1Cpb6d+;Us(|v9ra47jsK3Tr8amh&o~snKANLqc$6sZ zX3z9kM3Y+-uniZ(0pebvU>3ilW5D_I8kyvKME-j92xv1bxp~}eA-a=dF&t&oOUuR= znLU!uss3G8spya|_EayIxV>#NRSxUY7nE^d?azQswYRsE_KAR7!Q^CLTZyezP{e20 zrnDR7Md>7Ka`W8fT@`AWg!}8cZ_lnG;cs2vv0%b~uhVZZBrLHfEU*J5xs*3^;X}KY z*BPr@J@WAh8B4Cv-l5byq&{@Mx#J>iM>AgJRtWuofPX*)W<0w*)l9At&)2?>>lcQ> zC8pu|208Am20S&r{`dKO92~R`(rM0uVazza9Q{8lmIw2X0HNTKg5;v<7?JO*H*4IOHgl&apk(G_J8*A}ZMB5Z^ z!0c}#+bw5sF#KS1GCDfy>Xj=xq|zapgzRMY=Iwe zCZUx3#~J4I0ytY2{X$?gA{@fbW^L2;SN+}a0rf96=zke%?Bj8IHNB9?5B6i_<#yxu z8w=Dcp+Q(~slY$wL`7GI2x&RJ+_VpCOG_i!uX4h} z=gVQnF_F=vWAY5}QBwJ?B~F$BUF&PC7OTuDflj(vh3x7WKi+^KeK2KGAgzS5z3eZu zaJF^Q_&>D0WmuH$+BQ5hzyLF}0@5Xjq%?xSAPPteh)8!xHmLPTyJjk!sZ*fmjyTjU!IOKX!%-Ax*m8P5Wt9zTl*I@iPJ`Q1_^ zt!_L&kFW!PB_jp1eDOtsIpE^12!JL*XXnt3jL;+Np$`*ZQ4->mBE*D;@ZJ60W7p#$ z8RV7jxHPa5@%Q8a3H-r-O+wuG4D6*8e0Ez=26?o1WdBS{OHXgOn()#gzp04Qj7Hq>G13uKfC}k%NN+CBxE>&u*<{lJ`GC1?eyX4gNbt;0EWqO4aT@A|m4BUHtvs zsJ;ED{eApn=K~LqT}OPl>qhFL)NKJ<_qX=y#)n^9^YDYe2Yzam6^^3+Dd?Hs}(#TU{uYxbV-If+Sz#UGPNPfS>dNU>G=|Y-ZOkWIDJk@s=rdrX~8V!^2un%V5 zG&T_pqfyiVPzc$guj`1-Kj`Vz*f-FJ&%JS8pev%D)X|M{h!d=~wsnskLsxe8JE2B_ zPPvTh{b2VRG67{l0D-saw?B**`BT@$B_<}<>uRH=a8@1LM1ZZM7$!eIecj}KdZ9eI zjrm>BwVH3%(eJ76$AeOxE&na3W9OO^zWf+@bnuItlbeUrO==4Ji`ee0mbvWQp^uR(7SBD?mVPO*H=V2CP z6J!^=eUC%*UhA$UUK<4Bm0a^e)bCM-J2y)Jg!#f(=Hkn* zO4Sa@0md#iWf;D&e(Ln}K+C-SaXa^y1_@w)j%DqJ?b4!VlgYZvEkJ@ClG*ZA%ZG#f(#ca4m6b`x^Gx2enY zm|p61oUr10b)0)=LA`Tuyk))Xp>_9vOpFin`$P)3^-fPmPd{F?h|A1xbWg7XvU6A( zZK2sAKXim#%WF1nFihR&U=+s`+GrXLfp*vpOE*cH2IZSB9C_1ZwFryWy zrHp%Jrayqmsd;Fm+NA@P*VB-r_ObCx!aq`{|BIOeLMbF`FO(9r+BsPlK>kgG@f7XB zeY!~$5dvxED;O&JXV_%PPI37!hI3dX=IYlw7E2D(CI(tt&2$i;H_l zPVSDJ_Z?hsU0s?z3{YYFi_pJCS4q%cbxW*-$bCrh&9|j*!bOGyh2=8GwX+o@8NH09 z26dQ*e}d&($bMiI&~tKKIPgQ zey){y8u>M4JZPLenzjkO5RTo#(}(S7)2cK$kTx7-pZS zpEE80Aw^1mP9z?u)~>WQS%rm##g3q?VrS>%w*CI0xved#f{Q!*Xc%2`Wxe>j<`$pG zk+TzS_u|%wAg>_rojjQrN}*ciOr-YGne;80^i0O|EneHc`~eo#VJQ>L&e|4vZ;Gpw zSuSU84L3b+3kfk)vNf|YRsKBDp>wSmA^5!>Q@G01pznL>VKICo|2IhQc{rtN#XtBQ z+}~CGG%LC1y4-_e*NN7n&3!T?%ETh+?c1kGT)Gqje|*|dDR1AhDpuc8MzN_7%&}cA zSN8qlU&$&IoY8&!e(T^ze{X+(iAeqRs|W9Y3W##}={}r&$6h*WyeA$X@Zp^;?x|?h zK*aRKfVXwbqq4o98_C$w8M8v8QdZgSQBiSgyH}Uf?nzz7s95&aBv5r_$VbS^TllQ11|3yGs9*$;r6;JlJQIllB@1qa3D< z8+(&^7fb&Mwmo`<62+kXoFok-dYv1xZ7ny8E1;>Q&V+)#=ip%e!iITn-z5*YEy00- zbilq07)8;Q_fEs{sIEWxjrrjusgiuh!z1OrdfsPJ~mr*Och|tIJ(K`lCX!i%HyIhwy_8%B2wrW~L@x zM=4%h0hT}#+zn&D{)PveV=*wpMn+HIU8=rYza7GTaf?coUV?glJtd9gSz>Y~2dD4R zYMcO267s-j^`yo3+tJqjFS>fMX&XQhAgcd}l`5PFDu&C-iqzhrypid%u7ZrA>_c7g zBJCf36+>o`pcqyam>sbsn(!`~>jK8Hn@^>LTvgAZ-}usZH`_VE+%|c%K+pV&)JEvG zbZ}ElRp#`VsGv5oCn7weQ{FJS&grr2Sw~f2GEhO82O*?T3*}FnFLhv$Y|eGG$(S$p zpopzzIDM>63m=Z_juA;q`{oroJls6`}(rbU!?7XR3XF zglg;Vs8JN4{Xr^t@5tr(1U7Fj8YRsd{m^pb9?&3l*LF`IF-3yZa`XJ$TVRnw=9pTe)=8tSD_ zrSbW?9}!9WNeTupG=b{yNjE_853&8woZ-!chZn$I+<=+f0IggPVXb%> z;2>vUPC(w|bp#b$lmtW$Tl9FZ;-H)_a<3wTVj*$5FV_X3ZC-=!_LE-tXyQy3K)phw zpD;VtJlNs zWI~5f4{IiNWhJdey*I@6Gt!r~h0I=LP}k+s-LNXlu|So@PoC$IUu|BXAj+qt2^o|H zGXAx~hvz_YSV19TCZUeQ?J~Y{ctkO||5L?1EYqAx0qru<)sMKZ+{mNZXD0nOBC@7_ zNmLBZ-%;I*+*zJ#h|!2=#!Mm5DA~v-j^SZ0un4E^xY>A;Wg}ywSu?XmW6L>nt^2mw z_~%F`$~!b~utf?l?4_xkP@M4>W9|o>^yE$6>hqKI(#iEJ2{DR}e0;RxU$=~$x}K`K zH|3?&l1Ophc(WO`LG?6KnY$QoHZ>H-?Zw;poBu9 zy_qNqEbr-ZQ(TfIUvCe^pS8{lXRKw7u6tZ?fg9tnZj^}W&H?Jz%+*nJ3SL@ol|)^H zoO!AIR73U3^0RU{C3gF56hfopJ#bUqHDuAOM~>l&&f!m-@$p>B4k}=~F7o@15n)b| zyUzRNpPcyx%J~KO`8Kgzd%M3jcXjvnbhoy3wDz@h_qTU%n0yI+^!awMsJ%gKr9dq(t)+WT z!kcI(E`em;(%3|^(M6n>FXv;XS6Q}};S1^Q$!BjPDNEAt1ND0OpX7+Ko-Ui2e^-w$ zDE(0H}W&NjVYY-AA*yb@6yphyh-RR9Ok5 zFxc@*mGI}#l?_B$+{PrM9G>4md@}&2lf6@21VyGc!_Hzy7-qQG7GZPSem8Rars~9c@IZh7C1d5^A+=+%^N#mYjj{bAs%P!roS)6 zLc{U2-%2{S!{syi*k6OMjJN9LmK?Sl+#ahR6)g5`n0$*qh*WS?*v`%qI1*+mvqXmB z-6 zqZ0ss^bRhz#67_5kOrGEq9PyMlbK1RASVs5V7BneXe0E8hkddrwLlj(n;0b;4D2&Rn&Z4EbYL>-_q$(&;abSL+i)D=`cbb;-<_9Iwf( z5%YtO4F=T|$*S~Cp7Z13Sm)6@Gxdggnhzi0!4mK;{xhDW8=(1`vMf-BChuXxH$JJV zWpJc35^@ASEW_{QbktI#!sBEI>z0#Ej;=l>dW{tY8p=*W<{HxZy@6tH7oF_8IY|7+TYG7L&qZQREyLUu=UH$#-EnR(G?d?Rb<6f<(bTPPSq(z+DDj#E^DKZ~-*%gu%GLlT`~K)_?_ajE9{r)+ASyX)ZR&TqxyG5R z`d-p!cQ_L(;RP+(2Q~C>HTsW+wGu*jLB@Xfc0vk+#wRuW@#N8%a#BO1ykWB582=w? zEu_}OC~H2p7T{z!0uQp1kfu*BZ+$YJEFRC;7U2LjpAHc{y@vXH(fcwr<@3PD=fRie zEGjCh8UJfvqY;ybtq`9J=L!*&L{GO~li${0y7*uy(YC3%#p22`1P_R|92`XA!x$#~ z<(IoZbFKuH=#wSYSDzn|hu1&%=+Xb_yHWAAkJH3b6%N20euN_)I7sv)=>Ey^9v;IA zE*{<7$BW*GTe)TIxnZKoDWb`%_V%$P(|yWRfW;*vHKQb1n7@JT?c{v$Ndr4IEivlN zTe_mp+7r#GX;Fr;`g#d6h*1Xem(!P%R=KRM{4zZ91E{%`aDm|o65k0e{d6fW zcd&nHZ0N1{HqsJkc5s;+|L!6eLp#Cw$|wf=COhc~>OWFO@tl-l9G4eL24IAbG*ix) zCemJ=oXR%a&9ErQT?eNaeNCM*rv3@-G&tbEHwYJWtpz>2Uj?zkHp@@D*Q`~*&{Pd^ z$LlOGj08zBkeGx0{EVfUW-&#*Ts!`|U|x}d%!czL1%OC$g1oh!#lLBM_3ZJJ?UT5` zceX_jeZI6__%xRthbhvEyJ~OeRF;RF_4Rm{=#wNg-gaLpxV?<2;Z^K3Nc!R>ebRgP z{YSZ1UvJmG3K9(_I*52rMk3jbyZPdTacBCc-ubcf&ddO}SI~14hL}}913qJwOo<1O z^H;&aqd{pI>1oMPp~+E+Z-Ud)q7;#Vx?yh=!y=!1+A#|e(-1QhmVsz^i8)0m&COEd z!cpOGQQ^U)&Ar{&NAna55AvPwF}7&053j+2>3R=piSYy}?}X;2D=R+U+wc9V{rpV> zDycl;LrK89?&7ovkvw_6er#LFKlCVW>Ihki`+jhR(LZ{+` zUScnEqZvr&S7x}`yo?6kf5atDmvn!4G)bs$PVW1RF!6^-HgCie!<$L<9N`n6dRfcU zD1!x;Vrq3cL+W%neLQJoXbSbZwl)#fuVck(ED7k_JkbZUU5GELWr zf%uw968yy857@!S$73(8B5beaZm*?cAk1SR%*5nwASrAi%qA(Rauk;2rusVFDZ2moR#az3*7h z?fJCuv#+G1jw1DCM}dNlhj}7^WcqcU&exKp;H#{#*tNK;WMD3hsD%B;LZ^+v&onFj zdg3l;!!1~MVi-{Woox9RORC?ozL5Kz^;|t~QK}j#Ex{}t8l<@{2;NVd=txobkgU83TgOrP_*L)N&o6`UPCoFgt~5B;xWDtxTt+?^BmJKJUC zWZo;ki`(y>mFxz6ngvU?1o{NX;RLDR;nA;9O7#0*6g7Vzy1-T4XL!)>e|T$Vj>X5D zXxBO1C316_G-)wu>RW?{)bW+C&F0cP`P|L8*`%qyKJL!;yUkrKa#T?kSdO2-4i-x$ z#yI_b-}+g)38R_a4OT1W@UaT($5b_@JVZ_kA-t-Z$N_oF9!u5d9d&6x`ws0~1$##l ze~~W=I`m9^c0V0PUB-WCeS!bIN8`Bh)z!qui6`Dz+@~AKX1p26jgH%!-(`SdO(B0v z^pJ(GSvP(toQE)AH^e_=75ycMREvIffZ1f;x=pAf1;sE#S3@qfiek0U{&p~2%@duk zNG^c8;yelpI(c=f{q_Yg<_C+~^^1Ol3QXE%909Ql9LEKwa zT-SO+@#5SwD0&yhut52M06Ud(yqH9ucKL?nSMNE3>!nW@xvIPGrMf&0@9nfN_{b3* zI6v8!r(Klr4%j)=Ia+*b@cri$2+$A}X%!VP5eSz-99Ie#S4y0+_+wel}IOjHQg7E}fgev&S-z z?`Nlt4bV&0`qw=2Q)q3Q=*m^p_{7pslH;{rV?Wj4cY2fvECHcya9e==cSt(7!J(|> z8ZnVhKV zqZtrhWmp+HFD!O974fOO%;^0G0I3&1Kw_W!wl&37=8IZ{Xh0;FR!{(=dIm2=}nrP!l1B z`*N%Bxp!YIv-mLQVh6=&2(md(%GTGuh+2SI_hpbmYwbBq|B2oyK0k_N&B#sQ_uL=wg zj*H4@V^va>J|iQs0%$M()46w9;}d(RWJ4dZsqd>crt8KzJGOb|+4&|P3eaAP>lfeK zLXWq&dsPe@rKZ&N1t-SVjjglp@D_5oC_i2A9uc@RlDL?O2nW398_c8N+ra< zSv`F`i#tmGl?~K?ouBDF$<%_w9NCA;X_O1Q&#tD_D=vNCQR}6z*T-N5N0^|I)mEU# z@YoGLtIJymf6+mbmz3UWt7{zIn+LRt_W5;j&~kJ}BFAZHqamUpVPhxc^6W9)XWaxVY}H&G6}xV82WMFs@i*d7&O$-@9bRdO35f;ot6CNAO(QwF`e){r@_ zG#z}Rk5pF2Nr2sZ%9yT=WBVmZEDWx2#g6Lu9q_4k)Q1p)aDfHHM=W<4rNsk?`f1-- zs6}5IXM)#eW@jMWz{-QZzSiE0xl!WB*f=U!C`oS>Lq&Z>Wzx=Jt2HIt!*6Kk|4ymoWf~Rz_FEzvp<2juISJu40GS73W%7+AbQI%v+dK zt(3(`K0rT3CE+3@gsZRz$Ih53XM$L9--H%}fTU41bGYf51!|*q2d^w_%y3 z8pbC-55Tn&Y|lgi(=3LmJO!ZUvbZFxRco}2J>0GBoL$_WvCmJ~ceZJmN23*TkLXF3 zR_?o>Ancfo*IG_Qc%^pi3SjP)Fz2$v%6pYV&uWG>g*4;qefGyEZhTu;>>7~Nxtu#M z&EV?8o=nrV=AdHlrskMVs&{Jd86o=bt{)wW;VEhNO(IfKX(nlD`Vt}3RV*{+PBbmh zoL$sd9nzRnkdLZPou|X4`LvPDYar=z)RC=NF;>bc-viP#bHGArHF1_^=Vf83sSiHW z8hx%IG&(FeGRi+TQZ6LuD#+(lRk`cpsuurdezHg9mB%h#6G_>MX+rsmfBpe!ck2EI z2S^PJ+I+=ee)85|M8v!yIZZVnSv7zk(npx}A}CTfg@3V^kn5G5EN-!k#t@n)Z=fj@ z2o;xNo*1Ov6Pi%8#Hke>c=uph{l%H%(N*C}MxQbPN&LqEx?Ji-M|AX$_9yPlma-zM0yq2U4u|_j$cu&-N9<>m!U+C`^#mg8Jo4_Yyc!E+(mk-rYatSn* zj9v+Pnu6}NR*>_6x&q8vzHD=766l=?N_GjO%{^Lbl(lytO~pKy*nTU~Q}-|$VI z3{mIH`P0UvGY13TyN;|ia&8laIn%fl1xibGV*y0|E7n(@?XTE}ghxX%#+HFWxjE7rBy-DPw#(8}8k=dQ zy|t=LD{wcX;I+MdT-z6Bxs#xQ-F5LUh21^9CLinChSRS3!$L~Ki-TN$g6a`m@fWz` zx?U+%qN_G3gp~2*0}DtD8}h5M|CR=j5h|99Te(dcgcISdu7A!Wd{+wq_sl#TraPb zPNJM=M<1BzU3h!4LwsMa6t!mhdIy=67}D%m`_~B`Y&{?FKfC(zzN7n|Wm-|!Ovb;GO73)`LihQ_%+ zKK^!07X3IF`&d!IK-5?3xs0-|vb3S%W97Z*#J4S{0>HuyN$=Cm&j8{1S?5eHS~*3S zUk`wMc6OruPxU(1LS}E>t!P^0zDj0%#ruf;NqBH-bqKT?dS-Htb9&^gF%8FF|B~_H zdjRg~U915_PPz1|KjGs8bp>`ePi$%P-rT!KUxbOc``a3hmI%9*teCc|N+&P9rv>EI zM&6nXrpQD(qJE;#aQazE)+WQ{{&K*?q5PLA&+0!tHat4s5@!JEE@pW@z=`kkHt7GLoe^(iMm>mm~7I zmEC>_#@KI82#B|#$htQIo8OQ5703GXs#$KbJ~Z%q0!y&Q%BY` zsnt`(rswWy>oyYa(l7STOD%T@Wk3Ho)1jKMDjeS^sH3ui)=u_H-THfi($v;|WMy{+ zy>kaH0B2!Yz(t^gv57Y)eAhN#(7Bltn%}o0$02{EgpPSH?l<3>KlHpmy~%Gb{&0!2 z;&}-q6gu_UZ=qyZxj9v)CvU2;*eQ7)Bc>1$vR<%UC)Sbr67u1T-iLRPbI-eVK4x1Y zczjVg1P?T1)9-%#KK_Mhw$J;@d;n7aYP7MbrH8X0KKz#QhE?|kArF0=KaBvnQE$Qy zqEtC#dDhZ$#oQEYx2)Wm|C7r-7pHp%`(>Wuy8ThaeFVR<+JhgYX4rDyk*%8uQEN2I zbtuWqa?@QNpZ@7i!KO-?3+(3E=(-}3G8)iPc*#FTUSinjz4WCxyno75?2@TY(Y9p+~!-j{!}@$KQ?S?d^tEdqVz5D5Mwp|DL=PPDo$ zgKhB7%%aE3-yBhnQJ7Kfx~2sQSz?gC{APH0ka4Z&d3xEnEQiS%<3HT|@wI(LZB7=t z{+@ILxh?r<7U%!wBph=?fCTTKex3ULpI6wcyxKz)kUM@yKcyUDd{9S|S&SN!1jMay z*3pPC(ZLM;H{OMn+zSQeP%0h1ChdKlh$|V=&4dV+8ru~B{jJwPVT&1^QPC6oamx%e zvPyX2liNf7-eYx8(CG^uZ>TPcDp1+ziJnitb`=3k`UxPJ?^-VJP6#xctJPa36W09{ zbmh(GmW~ni){4#BXgW2bBQM|=BU0TruCepHWs9)t&Ph;||4fFbQ~yrnl7c zLnEF9b6`@|sH6POCSl;A0puhEiNIR&-3lV?^~$6`T4E9BaA)Gs?B=M1L$?Au%8#Te zXsI=ug)fOwf9Gmw-jjlk!Ud13KD|Lv3`GlKeQOViYB69`=1yMsgDI@aB}mUXD0xkf zUEpb=BSiD?bK7NoST5sada~u zuJfqjlbClDn8%{~>zlh|zF&cpD4g%N}JXl<#6Ip;x6yFQ6A;JLUUwVD*Ha^ixY5Tg9H%7r0n z$FH?RbknnKg%-;+xoe6# zZOMEe{!D=xhTBr$3eyA`pv%`7hPjX&m{Pi}X*|TAv_76l-P;h9Nvk*nuXHw=!f=`U z-PA@X&-PU=$?{RbRoMsbYAb#YRX>KXqVHlhKT(z<&q;=CUg9V< z@{#6BjQ*>jk8y-wXEUMPmF|GBIuB{0f=lucx7DBqZ0dMBXmDg1in&w|@e2D#vU?dJIWdMp99%ZpE3jM8*b9iW%dQR;y>x6#GdH~tJvr;4vl_^l*Tw9rg% zJ3tWx!&JAeELBY9f%Dr4#NK*MRD@0A2F35q%EyRQNh5#PFwCkDmg6H2@V-K^*RO?d zsiCJ%K)JZ?Ds){}43Iyovth;VqUpLVtho-Gni>^?OK<%r7g~f=-uV(&Yuc+@m2G+fylZ>owr*Q;hmC{?meV3ryT0(J?=VgN9 zkHmwq&dqSOsH{Y`*g&bR<^Rv`1;&788eWym{S_w%e`^Z=bE{#h^Vd*eBLW|4%^W&6 zXni18PWyO0ayZjG*1&V0FA0YnAylAiiZwE9><|kIMU(GEVf|4l^RM;{C{OsaGG0)j zn-FIHb}h@+AOs}u9y>S{j!k{O429+lqiJn%B9z3n2o(?%;@EkhNAKL_%J7GA)0!b) zz1psVnEu`ajA}F$Lr$WUMZp$IbWv9akUy%R{uTIv5ZbT=%P9D#Z&)+jmDL}Lf9Q|x zks^H^iD*n$7wH2A6Jsv3f5Lx5;cIO&$_!j3sX&+r;h&H8 zk4Im7tJFw=-*1WTQE6WJ9*rgM=Bv|4k(RTyWkdTs}IE zDM7@~1OEYU{>f5hhlc=H!uxjW0Ip=s4Q+&cKvE$pxr3w+B^F*9aIM_DyONXqWg`Z)cMsNwTJpwil{5QjciJ*O*AHe4iEqE zns)Ux`{4$f1brcLapD0NT&`$RMTfrkJ-2~e>g4^3L$LUP|Dc3To7eIT{uw8$;(2N> zU(bVIZzUWyUOk5!UgC{blKT;2Zu;76Kwt@#NYC`z6Q8-IrjTR#7=uBmApuEaIgC*- zu)9(p;%kO`NoZwOTyDsvoeNQ;Ke-j;t@d!s8l*jGb*K^ByeD(TS#}5y#vxMvrP=wS zJjb9OS?r&HkTFnMs!7wq#U%c59r7`9931F()M2X=RvMzCaI#eq>OVNK-^8_XpqU!e zNFWNBF?)?`G0;qqCu8HO?cfXWb9L|$fzM6k6M=iCv)?cv+2%t5wSat%Jka7TvwR}L z$L?x`X8G|^QQtrt*;>u(rmScpQNg^|TR0W7+UR;nTA2!5Q3LFadbp{C=wXBhrB%0H z69Wj36~?a#F^UygfA=oa0wrkr@%u1#2MrIVsm}(78Yn#|svH?zDw0QwNMH^Wmqci9 zCJdeNZIOWFk&H6Mpbu2+nWJAp!Hi+X)+G1K@$lVSy30w;LGBO?1j1NNUWlNh1L048 z2d^$lr+T#_qOC>1=vjPxK~dJSL}50Kehsz# zMWEtgcsY#S8Zr+$T6=c#!Ibjcc4ZwP^1KGTn-kW@?I0BbSh=9D4Y~=;impL#$%9JC ztyZz+l0b;2h&V+ur-tFL5nW|uHpv6oeAtQ!Rc!rv97xDU53 zH~@MC^%QHKxlP%4MtU)Z4c~gVJO(?glSPBI&xft)jXc(+ei?050pZV-8GCAvW^UdLC?021gLLPo(GKAQyvJYJ z7oc~CZL>f%luhxKO=c1&ZU^dT`9sIwWUPo*9Oee@Q&+VB>ZpF*ZehSRlLp3J!wXfF zX8|ek;BPZ_IHGjR@k9o{N(s$3gBZL@15oxQ2Y;R8eK=jNg zGet}cNtayk8PgRg_$z3P6*GPd+szQ~&lo0E_lgpco^Luh%tQ5+e?1@(*_d%wadVsw zcyiVAj_&d$k@X=g90d+Wv!VXVw&nmKioK z-n@Av@9w!uUK;}b0D)0#WnkZ}0fWX5IjEHW2VSss&||30GI0EpgOg~ z97Tb^0a;Puk!TTtSeu8-JEZUDL5XmK=sCgP0*FGJ__Y|sd9>bE)7s!B1Om6`tcklB z@Gfu7%HoI=BaRih;F}av(<#hNTIlkJ7cKyFTw~EfY#1Jp8p)|Kcmth{hXLn5M&ZK7 z1JvY>U$2W1Lj~N+`IXimQwX@=WQ>t(cR`zB;rv>JpVR>_OO5bWAyyU@CoVEDfT9fh zR~RFqCXEeD5VB3k*sX1&4c8U|jR$QJf$l&nX>KEw9UnPDwC^LUoe0+R=YO9PMwSCl zO~p;&j0t2bR|N45W0CNBLdS@nIj+JY0dXZf?J2(p4;EL-Uu)w+x*J|VqUdl0BNK

mEW?jjf>(oy;h&7B)SZlX_Q zXDI_z4_B;@3F9=MfoxG{1=p&89*|p6;Hs&k@rJo#H77~+X48kc%2d5jIW?A@Hq!Wc zue165v+W_?;Gyhd;=#($HbW{}9K_F{XB~su;=`$+Nee?_fEMflSZ=T1n^+#Kr4H2T z1te&v01Bd5j2!zfTHayE4Xhq<(PIGa5*NX=ElLAcWCyv_(E*F^aop~vp20A zy~bBXtEeUZV&ZK;sE%b@P(2Q5)Y(pFr9Qu%&Z~VJMqF)bkeIbni!{zl+?ZTR2{m-q zLz=LBOot)6qv?eX&ZIMkHWM30n?3g@3@^p+=tn3TLJjr>Y0Fe!UX$l}=RnK?Mukwy zSCg)I%`d#AbS?qo_P}0YqoOhtil~pHIS$x5e=__`x8JOwek0pn`d*?`T3|lCFp%K)Z2}ZLeAvdWuiR^95;JZd@ zp+|_}1$8<~XG4OQLbjZ4U_$k8tu4|~Cj1EHO{M05M6A3hjTR20p4K-p*0}A4@WTuB zS9a`epe5~F7g2b!QE#-xweec7Bx5cE$8C;rFbtHDo|Qs|G`GNLYInUn(wFx^n|M{k z>G*jdGrC7A1;^Laf0ZTDfR^StRt}sCrK9qLbtp#~f-Py)(w*PH|NiXoH*Du!+h~Zc z4r%%oxB9`GHY$*1{OP;n%Qh>rK}<+ zrrEHiv62loIQ&#b2f?HjRgFUc>^4t z=ckKq(Hi_VgGB>%Yle_9D(+OIpfw6nVwEoF{1`Iw$(2a@vp3jwS5E-b#zpeNkp-1% zq|8|bQlm-$RpCT|z6BFu3mZpi&?O&XG#ODjNv2VO*j7}x<+pqh!7bm{3Z?A=xZL$X zRdF*QK*^2b)~o!Fp-bcJ`!;PvT6pf?D#nWlxVpit**a^0L=j9k3!&}h*Rtpqe2hH= zVF}Uc$T0~#!4H1%7yNA!%KIdWpj0`hxM`QHly+4$om@?;>g)A87UP~uM{ZO(?7!9q z5z#~mPszm5ZNh(HqwlUuX$>|y27=GH)fi}==TJbI@?h90ILD_uVmH~LT+*sb{l2jg`|KBMXw zi&GjQd^H8 zWHELhB=|t%@L_EH-gdq%s9RZ#A4cnA9|S>R!+@|`6ak!aomCkaD3U{)Ix;hbNG?fictJ@tq%7H$3XqE(^Pd+Lt{gF^#2?{ zrCR!}uX;rXXu?wMS*Q((yEKIBcAcRPSb~H-_lVVq^Qbh!C^J=re6sCn8ss~JD>*u- znr&6H>?JxBO%Wi_@-hI&7Kd9+^S-`3SLThbGlS&hlMD@T4DtD?*z_5A&j6OunHiM1qaho(&CBV*sMkK|N2_?sdW$( zoAaJnlwzE8ljsQYVjX`7E(j8DGjy@~s~SvuM>l-cKkoE`&*ta`Wm8s#g|fM*k>Xqbp9n{|I?-hxpn(j>GAkXb7s>V7BbMp zUlEraxdVyBu?B+KMo|bEe9+_^76xz2V3-fjDpL!TnEw$AO*+|;DM~O{$sH&K85P~a z2N)fAe1;iuK1{~(7xUxK9v;&e=qGQ|fIyK+sm)$p%bgBA$6fXM7zG-ZkTEI+Jq!lf znn2ZhzZS5eTPqFg(7#kVrLF0xZCfj8kV21(p<6g7AF-)HD!0UW)Z|Zy(~qte;Fm)1z7XNMF#$12+sQZF`Qk+vz9eCu+9l_{Mj|wv40j_=~C-|$MtwF zgY-7Wp9j6-aez|B$z-^=+WDtz1O&d$SwQOqkR_YzV6Q)ZtvovOUy~K~{I?2|o|K-C zBuZiba4RX)@N>r0Tl$%9#JX~_p z>Q^(Ya{StUpw}R#$l&^&U(-AA%sX(#l=Q$RIAarRa!~855M#59)*X#iJd4$sjMX1R zEBiG0nlzaXBHe5aUruaBb7ut!sR;WDehyWIR^Trid~jsz)=e&*+` z={4o|`M*^5szRj6dG-=vNpIy6$x3eJ%-rissO|)6GTH0NMkM5Qrh|2++t&@+b6Uvh z!=uDdRqlIs^lyJQo?>MN%kY_-;wRq7chh*$C-BPd0FyXng_y6(M9MHg_SmpiNb$aU zp?>#Aig_bu7c0EJR2ozSyh<&27Lsb0q^q5oX%iiyUlLB)g-JJClBvLF7u@6K+v67A z%aX#;f6USKuh$H9UXlut4pA>-j-}+HukFVaecb$>^`*@5hBh2gPnN z)|GfALi?p6u%epRR@G6~#ho`yGmOTw-0M`-9B3$dX~&3PRQ|D!!GTq zE{%gw5z*f7seT#ncXSxhByA0-M&j;y#(B6>x5dXN_Jl*rfP{I$3 z{F>syMLU5++KOkipGNeZg{EMddU&#a!76cy>yqS2PnG-cZW&BSNPlhF{SY@E;eFSQ zn4iXSUzakI^YeG)J2x3{s3i8hG870^hy8*)VS-4x9wD2<(^aDb{Yzx-eV5F_OvRWj z%JA>rwyuvIrj_3penhtdaSOfB)e5S2f5iIjp?U5@^A!`;6?OAub(~!F8#5fa?6cj8 zXMWGTz$0E)BRZ1Lnlpc0yhKWDc#e3r3+aZAreO;~LWSYhg2Xn}5w=yYUpj@^)Wp~w zD{Q^)-Z@m*fpxAC_O9V~ZG^KBXC)C@K8rFNi#C52vototY4uJ%|JD;82IZ1lF?Xq1 zgjLv{{e<78hTo+nW{x@|?a-@`{jx9XyD$5bKh*BcnM4KD=actqmLJ?Ey1gvxQ8F(H zAl+^a@G6NXI`-H?-)!&q-1Hq2WR0xtNsSXBG%k<1SqJ!E zw66DIQ?qDZ&uc96YiG?MU!B%ijrtg+ya356HDSg}p#cu%(wF9A3eUzAYQ|+ZFwmY@ z+4?ZH+!TxCTCL-+qsYqWynt;{69=--BH3l)jb*$gR*ZtBcSLi=KbhQ15WV$OlvauM zXn^6cpWd}+)1!ylv4{4sm-?`qUa6QC&J^WoLHx>$@Utahy%~{s7Qy5lVzC?|u^fVw z#~wf0-RfAY(tRn0nJhv+ax>QjMZD4O^NYvl%1wy5ngt?(0ng-IOi` zMV2M*j^$2fKw_MRu=9n;O~+Lk#%VJkpATT^?}l<2OJcltQ$h*}B8m+*amCA^;kW2z zr9nq-O%J9*vG|d6n6hu=@VoE`A~Wt|GUa3SXUSyGlGV*u)E}Rd-Hl|Xi*b&e<#3CE zDVM^0XEuXsHN$ z=@@VQH}OKs*~IS)DZ@+erpTpNKPj#sb#5N_(mM{UAN14jc2Vh>b_#f7SX}NEJNHU? zbaL8sa(a(*o8rlTa`P#Dp;_}pGx_PGP%WcKC&!O=nhkzNQPPO)B+K#wjrZ|(qxwBJ zsorScZR@1*GENqRB=*XfyJD5R#Gc|K(h!VMD~}#5i}~&p@!ct0;Fn4{VQ(3{-zDE!dwe!i#wB{1JSABLqU^i}y8+0EkPI zY~cLvj$Yjaqi&cFJ$iK@c)y31{2apS9T1Q8v@e)I&55y4oHEUe5=F*{nWSeGd!Ic? zpB*B(6e3Apx6N8WWEL9RjUE=8`6@P(1zlOKn@tD_o2u@diq8AeAG;~sbSNB?;GUdC zbY82qv8t8Ux!n9(EA&J-W|*gDn8%?zYsFyTHT}+OgPBdqnnU}H-f63Sq=rH=&{pfw zkF=yHTLBvy4NS;PzX;rZE7PBk^~8LkWDV;m{IVMVa zS{1KjMd0N}ikg)XaRM=)ZKz7El0U4+7cOYnQarUu#%#Wu0$_bBLn=l6ev+meZ|$PA z&riLVEM%)Q#I$E5VIovOAe?a&{=0@7Gl2!U<3X@s_FCQHtwsLi4Z(NeIwfYN8O)}$ z(T(k+VAk!pZ1qjoD&6X3Dt_g#b7`fB3lmgZSuU5v8u9 z%*4^Ts+<-#;W*`^r^?agebIZxDtmUq|A())3X5y&nuQZ21PBmsJ(CJW~5sGJ9>;YdJ^^i8bIp>vcd7U!twoN?R?o%bkkOV zwM=)FE^`C<>N6Po&1nF^wYyx^%_W~;fd-!>q@<^RO>>gDvk#DW)6<>4#CIrR2C3Qs-mzwM>#G6d|J6JMd$ zQ`55QO=Ft`P8z(c7ng9Q&*A{u27hbMyWQ(oxM&`S4DZV5zeJre%umqq=Tx~qg8xj0 ziMJ0S1TaW7#{b;b4I8I?D^TM)QVkpT!lL(+BY2P_0?8z$f(X+55>z^dzEN5_>BJXt z>&+B?T8eZ0qg}oyDO8f?B`dO5;6E?8`sgq~OA?g_VraIzFVl&1}a?CPGm@? zqo*YkOyWez$m%`iRn)W7N=ZxbK(3dt?I6TSG}p_<^l-2&Z8&o&_H*A$VQlZ4cTS@5 zB=1T0NZQkaXRvaZp$1NK>4D2eI*SbngAF9dHX+YGJNLlY^zA2WLUjwo;!K`DNLV0K zq@>|lRV&VT{SwKDKS3)7<^BfwUk~<9kLXH^#&1rI8FsC~9+fID?&6(`>g_5M-J%oi zvg+-Ezw7l-FmF;g#0T3%bQ)}Ehdid!)7oiHvyRXRLf^>@auKAs^WI=!#VAfR`$tvl zAN_vy^Oo>ok?NDFnw;X@~56-a*J|^eXoR zqY_JW$cYdaYoNz#pog~=Y?Vey%R6XD0A=wT(IV+>KGNS<;6b_~r>S&!Fach4ZDp%QA*{Wq3NMi zt65^;Lg}AM-i=0?CyJ;qZH>|dh|&(D!CTk(aJC5mZnyEtxX;rmM(+%>?O>={xkp?1 zWDaYsFs*EoDNEV2emFG3(-%pA3Mc5VzJsp3(_h_8r^rj|*i6rNhkoIL_Ie0?s0B#X zwwk-Qy_1JeZRa*`=E_ft%lC-OKbgw+d@_B?38J*R_AoqmMX~$MSF^y?xFFoBBUYfv zpCcvKEX7`J#9yrft#LL>5aNx zh2+R?{UK}%w+>tMK3ZfOET9}La9)@-j=2=A8U>#@Vu%VNN6>wszC-3i7Xfm1Bu{m; z2A`Bt{#fp0Z3U0DK8=wYV=+0;i7KejOU&(3&+YakeS0c=CEDM5ih?z0h&od5AT&j! z)ywt~%~m%wQ|DZ;Y(G$9X|L3}Te~91K}bTwU!qoaLorz$!+Jx%QQbLi>6P=)uCd*9 zkKZ^hZOrZT?U&u}k;WP$x_W!?$gG3NtR>jmUF1{$bZ6nO)16;y+WU&mJnwB*KmBVn z>aN1D^9@{DZ+4Fr;)&^!mu7TI(80pE7Qrm&kC$#zS93(lzsU9DysUG(K_ixj{QQjY)GtZ-Cyh8 zSi;rMviaTC39-PfNnlwjUt2SFRU-CHqUz5+%9wg^)pt>ZUEZ1F@R{$!&Kuu~z;3o0 z&qa1nH&YRmrU*)#XE4*GJ=7qvT8EyqyOwjTU$&`nk~LX?PPo=aPsGj+n(`njj`bIYJ?%gBLL*Me-xlyGgEc>R!g!J1;p zo@izlakn#d@*o4Hy=8>GV??BIggO_>TCu=gx6ba<&EPZ1T(-{aFv*<&V`e(R{WJC#zZ_#Bs>3C(^K05SuBcFo%9_X~ZyjsA4AXazjCbaQ@vTK>{Wx6(v@ z(ggm}?+m3bjzelkJEnP#&Cf`~Mo3Xch`$a zsWoR^k!0y@O0*1O1SG zoU{I07Xu=uMMB73ik*Mr(Y+SQt6AdPh16FIkkHw5lsPiA1+rJOOJ8S~WabQH`2ckF zf`d)SpvM0h<2_Xl+!PPJvC9myet?fyWM4sM^o#L<&kCu~P zj~shPp1G?XyDRNqDj)wuIcCO(+mBRC}3*almecYW$wKEkT%a>fL zA)e+%n)VgZ$^p8PDc%NFjwV2zHEq2wPv;?6cFWWI!qNGHJl82}vPF8|aQsY{1~GWD z|0^ycJ;k!quD_|BIa}6hm*O>DwQps}KiX-Q@xdal>PT_glU6=`mvJ#3|Kzvgbtqy{ zHdTC&mzfH39O+2{MCPAA+3g*Ko=Ebz*z%J!~T|9SPQHN34fL+Cn?Nl4# z{1VBD3c8y*d73u8k-2t~y@Z!KlWsUmlm?}Mtfy!RCu#|0Xb7c#;z~8-%TVWy2MWgP zbEX;dW*G{-lOV?!r@B-=Yl?9E@!{qx0XAsw1@zQS@whtDc?zd==CTseaBI3VwOXj~ z!DvW8c-j=O`iu*nj0-KtT6|Vbmvq`SE+pD@F4dO2gkq~~YYOGr8+wulqBPW$WohlD z!Fd4&{??xjx0YTg+gG={H*$nHd;DtBiK|Mb>BCOx%=?D4-Yju|lyLE!HXuysr7ia5 z8QQ-NNP6&ssKX)tEA9d;ZWmH(g>=i2w7s>)(JluA(`|HR9+P1nleOe>TN9LH653PU zIA^`sLRJhHJ$!o*KC@toou4)->OAq?0`dI<1pnGVa%>k1$i)9#iif*N-(53_rzEIkvOK_R|4> zGDY^Y1Z}g0ZAs@Gi0AV+)TuI74>Cpmq|I+7uGmp6IFrmd63X6v%M1=mN|swPf=XgO zn@4q72z*ZYM7v zW-gtkLr)TB@IFmaDO182zV{`@5H*U0m!~Q_rH(nIGx)G4U9u2)v8PbxljVu_Yh z`oA_B`tfSJoD4(YlKL$|wniB&UQYDS)ymvDG!#{5`$6R3OJU zyK#ymBnqNm6eAf&vVK10;TVmf?(?BAK1)HR_^1{tTWAtbO z)P@N}RC-TThL&Rg3b=e$0la1-^k&5cBx5d5+8l$${uL3)(2NxIW;kuvhY_q^9=+<$ zt#eM_{cW&oFF>gKkZ@&m(UAGNXf2fRi4L23=bD;;Pr_>crPVyxDw;Z}Q{f6cq_P%) z#b?$q9>?p`$NqmCQVU83l( zKsHxxh28)<@1=g9RGIpHG=BSs`O;?X)f(nDXIZ`r_PVHYK8(`Z=;E4)(uT<5n%5OI z7$uF^CAH`!wU}kKSQX);&f~@VY8AxFRg|h_JqV81OSGLjr(4~2De zvm2Tc5Mz^tV3`+Zo0DLNRbjJDKb^-4-%gg&b>K}q4;|XHe^mT z9LCQW9(ycPL3U7)Iy^Q{%h=L4L_F^hkHN{-a(SLU>j#4`+)x&pG?iWhr(k{tZ$UaQ z!9JfaUjxlk4E(EHyiEemKP&0;TcHTKe0=Znn`n{SO5`|`cRQZT6nAxxc!5CT*hAsO zTj9W60f9=NzWCxysqcbk>_VntL8h#}{W~K$F>n0$<8}BWqTxk=GRd*ulV{^kiQU!Q z55(R3KS|!1Y7KqT-T35tZu{DgC7fqdhl5m|Crdp@EXS25&zz~zp1#PRFV~r^!-})c zim}5>@MmC4jt6g-LxZ*L9KhuluLD=Jt57>WJn`n=x6gz&Sw{C)jMMieup$zmao^GX z0soKMN;2y;j?p;2q5zEhMyud*0*U^Jf-TifCzbdnb`5VPZEqHJ57vdh<+In7)3DO% z^HT30&h^+;b&j3Xm#O;;@n9(8e%mtxPy&MSl#6ecj$-N1boQ*ydD{;{lm$ zNL#OoUvH7zH$=r=<$(RJGM#4in9dfU&=xF;Pj0aS< zGSX$2xaeD&M%{NB^V6EA!ko6lyg3IfTB*Dp$kOO5oFTlKAhMr0 zZ9_PhOEKvVEm0k-`6bdaCX_oPTC*yeJHwaTD_SzcNHS?f0ktEYGJCtcfxk{Ez3(%! zk3;(g6;}=^;=@M&mbz5}C&6blP6AD{LL7}FYnZ`aUTIMR84;I3GM544CzMv3h8z%Y zlSN^UM`4abgW09JX-{Cxu|n13gD48Z4f5Zc%^~fv?W1MJ6kZL2(YgkTi^>BV#q{mp zsYsx4WNcQ4ET4t6Vq25qGj;Pns)#f6i&Rai10-Ivq}Bsc>d=w~3N3X=%JQjDlPuHL ztx%EfFpx|L@&_S6V`)_z@?3_vl@!C3Y@@YolQ}ZYNr>TMit%)|zEG?VfLQIgCc@S` z+QldG%vJ5+d^oRNlsJ|DPYPf^e*P?D9#30fJ6?1@S#TR7vYjNd4-xqj$Ge>|?}E4P zL^)T2w_=SuPaeB^0$JKin3MBs;V4@d!E1KU_OQsWmg|!;ILCb!CIYK+g^qs`v1B#D{YGm=apM>;!17f@*R@`CAi^f;A>tu z3uCV#W4^H6jIdtRBY=-qs>=KWJIshV@0&+%rAo*P`AOx(a6=_Lekj4 z)LlwfRw)4NgW>nS%<_GeyFi}lZ?U=s_I&O{j(4eIlo}kH*)vB;3U|~=e^w~VV!tUB zSt&YWEkCg)t7m$ni+H22vXvy7(0M8y-TXd|VkNys5FKM===9MjxZmKI-vTefR=Dmd z;_n^b`G2QjbSDQ+qS@bXW8dz)oOsnJ@+S-R5!B6SHOXhz%~Lw@p+c_A;=&R1c_neWHh=7nA!kvSr>8YLq#(l0Vn zD8jrWGGc@mGYlY#(kD_BA{quw>InRo^W1P=zNIq3U4m7imq~L>2wr5I*6x>F>XjUA zk(Em}HC(kQTF}SWyh2yI{Gn)=vwfPaV49}baH4FKFGqSXE5}wsqmCKa$gWY#JnhQF zi)Gt*S<+sy0a91I*)@W15ovv;RfSN)ouX1gF$PHl;A&*-zqr`-y{Gk`#+3`kv_fi{R^F67LaW zPX(%a#bZoHVr&K+K?K}viS4`lCPeZf@nu;3OSEcL()#Fw18u|8E?e`Ek6}ZkEF-MwGj*qxzbDbM!IjOGB#W+L3%G<1eYjCOK53psFiFR zPBF-*Be>9!@5uUIj@;u}afG;Uw|D<+TUuBzw_H^PE!AFi_$(4PVZy2}&Lc89E6x67 zA=n}!9U&{cWzWG%MX{VYj^;6@))~fd$X|cla!a_X4exdhHZO1j|O>M{5Eapu; z4xsG>j`U|@S_R@L-HXw9vGT`MXuTS~*$$xv{_-+$jfBl4`~jp|tZj>u8d zzqHNYA>gA^-R*U*2~CfWlRh6-Ifitq85ji!N?HT0&ix2!4Do z^ZyD+mMK-;x$jhg$xeZ2ZzBJ?Vf?-L>+Vs9@Pj>GVPyO5;ae46{a%cSf#G8O1iJnV z4Lb|!?r)M)7+mVk2M#r8k2L8qRQGd~ud>vR&^L~7)(kS&t#g-&eXL@yaQyf&h$CJY zUxzD0i%&7vlQ!4)W3J`L5=((XM?{ur{Gu>KQ!H-XQ>??ArtQht>qgmp$5IxqWqjdi zd}IiQYPj!o=xUhgpJ-`K<;ZCm5u3%%awRQuWY2Y`%?o5twWm(izc>~w!&>CtY4g&n z82LOL9M+xWv0S}?rX!CZY|MCU#CmAJS`>aO<<3s}-xjC448uv9b8Dj60P9Q!bXU+F z=;u=b3sxrcjr}gHz_p8dSSfRON_Xf?r|(=y>Rfo}T&SN#KuSpf1n=n7*A{;Njp1!| z4|b~62gjS!NVXrhuNc00({}6U*C+E8TRt*Fxc=dfvD>HLL*q2mEUvy)0yuyXK+q~| zqb+D_`<)JlD#m#Bo8iM~>PrSfEP6s58({SI>~||*Op*2{@Fs0ZfN-NPPpd6Yq_Au$ z70xKx-!U=_n&@wFgOUms!39(AVZN3J9s97M$<2tbkqBMLcd>J0{R?;Ry}>l=r#F z=2_&%zidt-*rGrm7^}yZTFsg?hlqHKnp%&DGzY{v4vA#mxzS_^7#=URLJ9`DmufbQ zuP{@y(R8zRkBt1Tj*4?5!XXO#8eW}Rol_m#9Sna!xx2kTeV_Vm4W+NZeCt?u37Fn z2Q<&|@n(eTg5f)A!f7b}S`wZ~bZaNpBoUQT0gbTBsh z%gPV&l4#O*6I9D}YG2Q0;}DUs3i<-y=o2UC=0>fXstWj75$4kdjM+isC%URG`b=jA zWA=K=XwE7m5aV%sgCS=F#EY>r!&jmz1p#TuDjT=(N19W_gf8$O6FOV*Ps2Hd1is-! z-jO!5RMc3m;ZCzer#}cBjwzP&LotBpz%S|0SBuzBC-qjF^Z}@gqO}~V?I)*mBoOC> zR2KM7f84maXKcI=;j8*2Y@{ zMD8X+DKdgwwE70_^EA-YHTXV9C|;P-gloTs ?Gs&F(#bk|RXYlm};`IJ3jVJRgAZ!gyX_ZM7`kD+tNrCti0Z@{cP=WjYiKMuNYTIlt65hZm<-|Ly4j-JC4-4h;+sj=AYdcF$~|W-<@T zpx%AGy;}>qVWqdm?rMIgabuB9K75nKxc$a&_YG+8&BM0Fi|OMekqqc36brrHPs_lCUU#8iR7YT*pAc@WGt;>0YTV|0 zjs5xp$JG|s*!f##+sD0TxKuL5*-A6h2_=wN?wF0tS8KV>a1Bkjgv8K}#DMiww|w8Y zl0>(JOuvLe*Nzml$W#AL9Hmy2LY;>~zg`b4Uzk{lf}A+x;_tL^AN+5MFKMW#+`8cU zY^EuZ_^b#0e(PH=!-%wTX)AvRmm)1xkWeV)AUHs>Z+oF_8e_GXP2Mqe(BN~DZZFN~TkG~hTl z7vQuNVG;U_zIr3 zH0nhsYd&FxD3i=&0FqICST1(TF}7LIr;F}1zWJrp*YY@FB%a7~S=0KZ(^!SQ)>-{^CHFrIJWFr}uS!0?`_hgkjq1CYis~nD9q|{lmV33`b7+l$ zyXpsQ2TNl?!;F7tP&3jW_&c%B-s}b=*CJxEVNn<+P-IVCXeL ze?6miy`A6eXYFfYMfEU%**y2B@jn+@x`BqK(RR8^gD8z&;j=q38m(ZHlg=`XsXLNs z?zJyf$Y5q9F(>lO%b&jaYqyNNf%30lwOy|#$rg*(Lx2U&m+yAhMrFbTpu9XRiM6!% z4nWsl0kz@cKk>3f(IOH(-)JV?=f!iB=8T4W^w-{B_np_Z8;%;1J0ijkSVl(y-j3@n z9t_;v90x`K?_*Ph>2#m8x*d?-+Su6{T|Les3_DB2dw(}n(m1CWu&^smah4ExQ>4pNHJUP{*YLcb^aJH3v=kTS}{=up@xmVDf+ z7Qwh+;D8ZLdj=8qi6|}G$6q6E8~b20%4=kEBz^k<5`r6y2TD94!i9FfmSPa9fT!CT z##>wSJ+2y$l9RQq`l7;&>!i!woy#IC1Q=-Ne-50%oWD*1K#iZQSTS{OyLQ%p>9^l5 zOv?=9$y9F2)I{!dXfq=fDj5u622qbwIrv#}T;F7N+j>}kX4WiEYp*VJeYx29t9!6j zD*G5|7YiebaBU*HWAX2#%PwT&_xc@EiYlL2>*D#g;mC)^$U;_`Bg!A&{%x1rPF5%? z*NZN~lUT119~L;O)b6aMP+0r+y4gy#**POfkNqseKe-Z5eIU_wHT=DWYNvx{xv4>( zsY)l410#Lk;MmY`e@`dhhTq=x2^2y?Qqx!2fNFb**zHJsI9;o2kb*@6FT)?ln1>Pm zpv|7=mo>ehuc&HD7)P0eU4f1hEe77NDtEBaSB)XaqJkkLycV4;y=lQl1GplDobY)! ztXvPp{$Op=${HMP2zj+|9kf3(7+nln_TZREOx81(_qpHrq0(578c7t9(cshC^&P)*=!NoKow5uj z0CR7hnzdcKww}%fnEP<>hiF|$E#S#)?HH{;s^~+I%hRO;tT)BoNX>k=izVp3^v}jf zNy<7vlLupCyhOz{cKq{fD{`Fd$Cj3#)pzDUKeVcfzkt;Rh9WijfW=nga zDK8>$YaEjqI3twim>=u0Kf0r{o<~%;zh?D_DgOJt6862sEvCZb zdvOg`1>aTGtUDWqy!~vAib(VGN9GweRquZy1`r<+$>NpcdS|BjIKZd!jtB8qx$*EA z(87vi|4t!4Ok@lB9WG9ZY;L}z`336luOtWH=ll8bjd*fEhv;+qc)YuL^C$RiK31E4 zo%9s@Dqx*3d6p%3oWM_r0HUeaG3nPanX_KALl6T-cvVLEVP;HOKj?m67$;#Fmop`Ous4z2Pk~Bps#)u-+#l4nPc4zPinMap z`LJe;`xG^Z6Ars*3A0SW0xLSEv!56tX}w|Le^b@?y`u4lm_2FWqVT<|@2TC^esA)* zT*X$*@~H?y_>(+9M8zW-qYvkM-0-0>s%q2~3e+kJ3m z^JmpKkMK(Ty{W+xQuQHRC8m*f#fRb7I7 zSGPoZd~DEnrASn>Y8rMGdZSAa7+WH{I9?hR%65$Yz)hPKHfSgM)hBup#2;)&J0^Jx zZrkd+Y4E zr_!!x_w3$O)P&!HF|#z%5AjFU|B#9QCbk(#wH!*@MW~V!>V`F|Sz|fJX1wY3P?Hz| zg!U~-FT#L6%)opB&yrRLNUbI$-YHi_yrsMd2S7GbnF%Fk?8^An{rh*d6LcQ2(K)Zb zB2TM5M#1g~M8m|xV<$>^fm0RxxjQ)U;j{R~h3na3O-KxcQ~hk(GI;||-h1E(ucQTp z70Zqkn1yYN4$g`;jRxm6K2Z0mH(mC8+O+i?>bQl0O0@Boylyn zm+_w`C1uhRt`$e4ZQiw<+*vEk1OFuRj2M^ra$@YV zVC)KnOtvVW8nYhi(Os3}UsWbw&%hIXW}>=yMY{yA)3w=O_j?AV*_w}J18BbB;UR&`+%7ULs%z-ZzX^vx7sUMAfG)EMJ+a zV6U$}eY4o&bObut{?>gEuqbHf(Y zQh2QtNi|dEx)pVkZk$2>bie&qC-Go*(dYayy9?(D^dqpN>6v-*n7!}bt9x9({qI6K z$;p$NF??(AOBlNg0#Tj3+dg@0Sxr*n%?1aS?d5A`s--|u5-cN%OlEy z{&<9+6g=#uQRxK1=6*yE8n_p&f0!T=ll-Te-Tp%i9>+Pu= z0cdm?6m6^V*i$u~qxphl{!4NtBjbPKX1X<(QX#|;5@Pn(ZuKZ-tXgeq_#mCHdSr?e zbzD5*tm%;~q%rSt8J)e|C8i5koSi zDcA=q?n zw|mSc)}a&?@OoCy8bSA5zSeGov(1gb)7&L$nVD0PkTpT6r@LP8 zU2pK$De+BP4m*~5*HKm*fih>VPRD6Fi#}F7j>9CtDHeIFDNU>}i8^2AWObeuQST6= zucV}FI6i@0m4{!~q6#>9_(kuT=%Jp|hyuT6ZMzqz;j=fS%gw3U5A?a_Zf=W3S=o@h z97)(P%vre5UgRxTlowo)vQ62CqQTP)>KE$OdG4R~`#G?Xj{d>owy8Ut4{RFr= z9C`S$mL~N5y9pF(b=q6j4^!NdjlFMQng~; z1-EuuS@yn8AGdi9_q!F*JQ@j7`SwHr-YB<bG4~|8X;Gy7fS3R`aveQES4s)9cb`OFB?| zJ3<^&qdQk3KU5>%lPkZ_A+0ZV5gV|q_v09IxkY0D#p)q)#D`or^)s!@*2bo}<%$f# zuJah;x8UvljUr4CqIOZ6y=TQQN@pFQzan#3yq6Ss6YpuPx(ntru3sU9LTt&cTp7eo zPW$DZRc??ME^(h%dc=npFI->Sp)7j5_ItC)-3_I2>*? z93D7aY;)@S!jG$XAN*F_d=uqy~*J@=XW=acg@Z66A6cz&9_5$GD<}zpIemJHj z^`MdhhmsttTtCYOze}@|zxHE)6yd*_Jn5cgu2R;b*1<5i8crAd;Gjt?@N!j+D(GQ` zU+f8G<>n4YtO5+*I^-7{3%c6si=xU7RKqo|7QVk`SVc4GTKF4)`B{h=`PQ>PB_*tj z)bBioJ?QoziVAEG-=wn2e)@|rx|SQ;6XR&A>WGjRVWU8xqIsdLcADciqGbrMrE}P7 z;(Q{HDBEQyBiTN1<)Yt*%SnxVQ0yY}=?m;=MFulbVjo6V?S*Ey7Icj{cltAkIn^T@ zY|VcT5$}hEZQqqLnAl+lYzp7$&2FYJKq;S-+W!JKkWMz9KK!eW(r`+#s{m4I8|O7h zBR5bk-VaUDXi_9FersR4A+Xify z6<)|0p$Ab7KX@ko?blLQiw;uz21V@Z^?b94`?q(NI1jsT?sl-y@ZX@lmHmY=h+wy5 zQoe`bM_bLVc_<#%MVvImoO!7pUMNysj!;Cr|M62t?6*r6ebYqpO{LHs1EZ0UkWLoN zvEX#(yhv`U%QY}!q~{MAhiL#G}I+~4l<2$J>f1@l2jVvLKtt9!=IPN(N> zDo9I0eSNEa_ikmkrF@_Tp&RN;Ye|Jc!Z#tmrbrf`R6;D@~j+ojRbuV{JL4 z2u!HzuZsaH{-{EO7>VCg=KLgsfyQaJeSj_RIb`?GAYF{f0E_Um(tV=u)nRv?%S4mt zT0Ec*^|j~JV{*X*wnfnM=3sVtnAlQ0uL`4D_Hw*X1Dy@M`%{ZNycfsahH*!5#sFh) zoyjPV5*z1V*UN8W>vf)C^~Ui|2gnB(l~3O985eQ2GckBq6nP98kt%k8yKglZU6O*v z!i!CHJQo_}`)j136^i{upVQ@hp$|b8R#r=$PRu)3JtxpcC#d2bJdwhHL^QxeHr9&{ z3iDHw4$agmOi<1`h4j1*75uWZ^{qMv#3e@Y8}2CJQYhk(OMh4fT8fb?v%vJv!<6G< zlB;tVxFDks|A9xsy9Lp{akr<39n#m84q8Nh+rpH~SIFN$?Oh{5R_}{z4PH7fIvD+S zuu=rc*j;LFmElk6?$nx?kaYlphQsP;I*&{4%73(LkU!VcJ>Pkr)y2)L0hlO(mPCL< zqc!&7dXKP&{)9MpjqB)_{UO;!b7OScV+cu)T#A}plB!&?au~iU8j)%k;TTH%&kpyq zl$-L{wq$gNDuQ=y``}?RWM8M%i-xM%K!x0myT--_oJI9ohwMraYYq}0l2KQ31^CHq z#-sPZCF^;Mp<$@1DKSU^!eDeow=+Wd{v|2eRY@tF`4I|?+U>X30f;>hc)%`j!ac-8 z*BSNdNuM8P%g*xmI=A0z(o1#87;})^0g62;cFv&=?6~$<;1z@pbw{mhSQktw@=z$b zC%0fgW#R}5Xt}DH>)X>1p`xfV5;1w+*Sh#HFigku&rkyXe;|e(d9t12JNw>Xcu~MVPKU9ebUeoINLH zho%1r4b4nS;tI7m3Ttb0v0Cg*N^k=_Upp-iN?#}!Mvhh{=^HxS#AnLSL6o_5*{=Mw zsIHnt-5Xf`igNx@aM+Ex@LI>RLIm3|09Vv1$d$^QiA;omQ-V9myrz_^4!El}6k?`? za}ERxE+ha`{H32%Yh{}YRz&=gfdn1@!>xNhhE^ z#qYJs&3T?tU2vTl3KP|O@CuMiNjX&+XSi_&Z*PaI!?%5G>=8CJQ`vK{BZXK1stno_ zeaK;z8PP16*vN;50w-#|f7CKCXeMq6go`N+QIS-R3j(6^tM|MR4re?ScAmW#y&+Zh zVh@82Q&o)C%8Ytsd_`LoMMMC7V~+av#i_?HH5;Ly9+V!IT)?;I*@zuvV(vaZZ#+k3 zG_?k2QG%VKGx~pU{+@X`zO8H*X2V6vRH%l)ghs=r*oDmKamsNHt%JW3>dprrgYXN^ z3zPeCa0{zTa;|Ic-P!uBsu)xzBgGjMUw2=7d9cvOP*n>wDX40Hoq9*(cHnovl~PC* zMA7osFwe{j(~YoRTx2uoUx~MbeoC6Y=^(&)5`s4oD{ z%s6s8%U-A;4%gY_yRF|-0(yI%791LOEHXAs6ZW}%pb}xzxMRVjEx!1TWqfC&xU5(_ z%D0e(4LRbQF*4Y2en4o*q~|(g1;UqoT_|^*&+M&0z0t26i^Eu{;aJVXYL&-NpVo9$ zXA;@n5b|%*M6t~*PEYQp&C(xW&BR`N(CJ6P#N*s-a~6XW3jytT*h%mCL|7T&h~}x) zD;zpMS<?)6q7G6}gt-bVJ4rPrB~a`x<|yPJ5x;G%h3x$t(Gyman?oJYUJ?YFy8P8C&NS;a&UE)VI@CD!7^=~GS+Lg=Aka?n}vp^>S z_>XJ2i{V}u1?W76D(K$kI^k>yIxkIL8iS*67TD(Lrt~DdL(v06@M#w-4a{-|lwE4Z zi}4~Ig^uW;XB@}CD4wADogq+xUu9a-NT!-k61&Ew5NOwB`)&&h$Hh~$WA*A1xS&}w z&M^Ic3a(XilRrYCM#7xTs3{sN{^4yG&VO{1Y-WYyxrJ=GGT1#b*ukORPclHTjJHI; zcTZt-uC^+!wrU)2<3>YcF7JHL+`L4?D+w>vo^DQ$Hpg~t)sgTs(Pj^{$=!-KZQf4M z&dd1^YrE4uFG2R?62JB#O=|&TI5_$IO%J&9w@1xrQ01ZzNB;&m z7-}0`p+-9-auyu)*Cs!mLbII@=`bUWAIY#cTKvt_p;$Fbvm?Df26mP}~ zldELOmp0p^FCN7SnPx7QCYuc5nSKaRF5s9fXIti5Q|??|_x?C;!!zc>B6cZZ*0(i( z+%o+&*Ya%sEx<(E&TRJtNQurlMm0DmGVB6TtMGfP<0jVnC}BASPpvJP%qw~SPFD>r zwg@SFMq-=f&*az#oPUTNXtH~-xX%+qu<=%Ja>^qGyH9;*K$J5cYmk$F&)n7Fz~VwM z^E$7{L+#o-}^y_B5U0?j`MffzS;995PFT4l>+!vZB zKA-X4L3YwLC-Eaxeb=Q}AgQ=DkrAK{{`P62OtSyy{9N5%H_KnlXP>_!%Qba9voVul zGGkthQ$WR58l46koet$tM4XR*00q@;J?M;X5=T%Y1VVe0ycb%3CCO=CQf}+3;bqti z8P{3$7@g0<6~0ONopO>Sb$$iCybB5Li+leoJg7&W*pH=aqtj#Hv%^5F!$7sob-2fU zwFN9zYP#BJI#%<(+G{!|h%je_rpSo9?vRjCtt~fkeJM66ig8xIlW`z#vX^6FwtBL! zd~t;bYFO88>?Qy$1N661FSf3&|B_a}ODQ+>zYslPv{*M7}ihIqIgwa#lQsYQ3*f~?`B_d>PgbX%Dc0EJ_8z#Y~|6TxG zt5ZGpkf*3tB(7GWtPekGQX#KbAmxcU;f*?+x^{6>c2PPdUKnLq8&bnKIB>Uf5Y50J zMHEeiZzJ0{%+5g8p+ICw*^YMJE)9Q~)J*@lB+2Qg-i}qOZ3$RWMh5K%-?ykbaZ>&y+!lPxZZs~^yKrE-PwHdm}S%f3yc1U_A8jg=mk8Y#~bTwjzc_+=l-TUEdfTX`?ke!Gse`>||nRVrydCnb@}NOl;c|+qP}9 zW3!{%=R5biJnvfR{ONzs+FeiWUAt;0e8qSgZR*Dc7EQ5xRbSQfQ{$0&bI9HCtnN6Z zMOnpNWGQD!LDr9Jq&Me##dqEfz10DK!G-*S5!xNd6TcN#TveA?H}W_%Q=RM_sH;ug zn+=+)&D{_L1lg?Ds4l0PT;(UP_}5-Z5AET)wBc%W z;i@&^DzInk)DM~A%FyIbS^Jry%$~DWld9butK5#I#Y^~`k5GpTSCt1-o&#jY;fFex z>HU<=V*E#AeZGa9VgniV3NpIYXx-5O4bWZf!O=qM_t`4ZzcAIMZ&)IIm<7v4za`LW3X6?w0nImIMUr(Fd9|Z@=bp}^>Es|6S2|mHmK=(gduQyv88mv4_abM}C z9N^2%>Xy1dfb%B*#VxQ~d3)oO(h$igXFq?6Xcu<~&fKZ4?f6MhqKcQisf^BvOlYK;@e;gu$;)wFl zL1{x@#&;wOdd9{U>g1Rl2}1{Y!X)H< z?=xt^j_J{Xe2y^hOYW&3EOb%RgIt$FpXn$@05xsGdoYEG5y-i7s5SUCkfFvkk0)Kh#^gSELOWOR=HD33;r**%5dW(-vMw+Fpy3Wjo=iJ}1xaa5s(drD7B8k;E#PJ3*8Q0r6hgTB)nC9$`rl2U{AVaA;tiA7 z&S9QoeWp`>JIij9Qf)T6@Laz1QoG_vF@H~y`a(V)L;NFN`^}!fo{`0#k=&8-hbJGg z@eg8SzMuAERAzHio}8rivvkTbPVD{AS4>wc_D9!wsL)8Kx?CJ-#w=LX=x+Nnzxzje z;-LvfFRIGCKim!d2PAywAo%wn2>S|kKh*Vfx^1WQ3{J$AcWZ37Vs(4%i0n!8?ItK} zSvu@0@~(UwJsl-PIBWAkcmGJK+QZ}(f9og#)O2i=kUA#c*_X|?iPaxwJ4dj6^nz&2C7q^HG#-RrpAP(W^ z(QgDra!k>AM#<<*s?0@3I+m6-UmQ#0;Cp<$lo0y9 znOPk5_Uy|)k-Osi! z3JOgJ8D?PUe=ZC?_=3{j+<$;mq%<(mzDJ;0-BzC*ZZ-ZGU5`z&hBwBiM)3;E87QJR zP9QvrPf@zXKy^rtcOYDGlg3(;=7yef3!)nWOaX@`JVa$zfIQbQpR~mDulMLKqEI@j zOQ0=2s%)O6^S^G|i6nsHTg)T+-IOb8U3nLmuozmraOze}r5W7#dDO&t%*1uv%=HvS zu0%yPJYAklZ9Wt=rgRlfE@pOSPWC%J8yoY7-Q&(1XlCY!awLl4;^HHKNlG#yuQ%{w zS=T&G6K11pe{&w4bH5iJ6Ar|BiJ9@`FMNJCOZR z5neZXo*h6t%uR;=;h3uf^&@@N11sJ6R6ng*iG3P#-N*{`I9Yueue_m+uK z0`P1-x-Pvd&0Bxq`}_{Z{EW+87-IRcO-2yGYoX3^10SG)@2-X5SO4+GoVKH@u9Vp8 z#6}<5&y$nU!KB5w(UZ}%leFNM!_acwE|1lv&2bV^Du;(+NAKSw2fSCHYX!;VpGV~F z(W<)O{;_dlgwT`>TZ?h>tqlnWV3iEh$!hPDTjthMn)$ld;5H^N66T# zuj6l%tNcg9%YwH~D6lVLn9`5xH8E~M!*<_~T^oldht1=HjU_S%08<{w`s|3_1(V@dKJ!+bqfT6b3*RI#8L6`4?I}yo#7NIX z?^*AajSu4y1AcSw3={5&Anm6!wc5Xo7 z#Khi1P!y^|2FaTJ#Q_*Ye|rp$jDq}j@7~OYnWTdDJwi&7MoN-8{OiHkDHs2?9;u;zT*Mtb%-tRQ&26}y!_Ad}p1#4+R`XL|u#|-f2EppU>0481aKCOW6yNxTTk2+8 zD$;qYWl^bVk8h?t0kl&qwL z7&UQufq)dTU&7BbCyvdFkv!VOBPS0^B0|#++^To$m=RRqo$0f6vGYyB=bszQwc!6; ztdy(Bmzqa3>X@LuRpnyD)jHyvHx1Og;nBuB#@>9&ykiP8d~$pp=6-!j{9Q_d1173t z3W@`uKi;&1xa4;rM*chie9xql1oPbhdh+*W2In~3pYDgP^%BJM{Ubmd6&0iL9!r%W zYq2$>%^u4Uy7M;whk{+7fLW8&8Yt?eTTZmwRkT|TBlZL=^x$LTum5H5R&;M|ehAwy z0gFLPAoy+vTQhk8X8-SoR`rg@&H^2PM(K^zd~5 z{$&P9LnM_BL!e(yDLHLsc!E}Mox&NK*0+ZDmuWa?tlJajkL#6E{ zPOIAbY>I|$;jF6X6xbOWnpvwq5ZmJ@+Nx zAAiW|Z@SFO>>yT~{=MRRQW%os>8WKZBO;?^8Cuyme^OAAXahR2{kSm;5$X~l5e5eb zdwp|v19BGI-`!rrLHJ`NBky1y9UUAV?STFt?d@#c>@NN0#!?y&DG%YNyVCee=mW9_ zl{&vkTy2=9liPH+K(G`2XJ8%Cz!=f`o@gcUhfSD_yRO06K38NTsP-YzccH>}!TYKv zX`v%Yy3fGt(V%aQ7Ey0H++Aw)t5n$ltmU-5)be0Z=F9a0_Ep$RPfN*YA(iDe4IWP< zZDd8e%Y~7?A}VS%r+XKmcr3v5AkucBLG7Tz_bp!TKwMqbYS+%;(9GjSUUpGjcJdwT zm!$((ZLKeDb4OQxSwWX!ZoWHFXU!-#liYS+ZGM%$n}LU$m&19l*YdTK)Rpk>Wp(FQ z0nbmj<&nV0uG#3`o8+z9Jm{EwX2~Z)j=!LGb$FD#JZxirNkK=`eRm_t5ISZ|LSi$i z&3*Ua1fu;Z3_cv@2LAfy`o<3Qxs8AehXH}Dy;9vqrnWZT&Ziql!e}ouOWb^*ZL*+m z)&J4yPF3wqR&5x(@}#_o4BDsne>>dL1R-EMf`X)EO zoR*|}J}s~Kdh$me-*%@jx7uAzlpQR%;_D&5iU^=Vk^x8qh^XPHC6N{60}e7Br*d=s zz(oZdrdT#*esY_Le9PVUOmCZSwq@Mk>#A?(`Sb+7@H}L0mn~SRWHA^!CvYUhKK-by z5ZI273CxPfvYu?qDY{AJUXpz$M=Y@MX^2fMi(RnaK8D>M@dTS?udmLYy5LS*iTBB) zsI?ei&*Pz|0B8dAKpT(wYZ=DQGUkI1Nos2h3$ECj?U`JjU7mJMdTv%`UVlAPH+Y#= zdBwXH8J+4YODb&-L|+9QpX4_yqubUu@e7!5%7VEkte(&?jT6zDHm&}^#KfT`Y*97~ zswp|fq@B%;g*WA{8Xg7UL4LR3dcqzx{7H*v8 z$~|dTV6u%b%h$5F#ki^A;qtH-b1QH4IMA+9@V5>TjAqshE2Q8yJnM%bO*1X#FPZ~F z#}ljb!9X8lf;`MkVhh7QYA8Hy+$gKiw_jzuutIzv3&#s-4R0q6;K=Fbu&qQw(?)1= z6o5c+Uev5r3-_I-z_b2|+mhB4ll?o-_g}#L_^lyyJT>{F1HCw8a%&XSOGj?r3*6QH zBkludpN-cyCo>#Q4tH{%2XiYMBd>(A&&t%ksnoF_&9Q~Y=N0AF5a$#zy-=kq9<@6+=eGDan0W+?WsqcLk)o7_$;-S84yOEPxjRXg*P+j}Ja9GJ za4+v45$7e#t31gDFcZ{u&I!!2>3T zMg*hBsLsRhLM4X^!vTJLU;;qHKpD5dVzBmAcJeH)flZ||&nw4v%U1V+_C~H^D;_o&?p}dLLj-9@ln-ZA0I<@7P zhn6EwXPzeW$3b!Lmmv3piEQvD*SQR$WQ%i;H|ft05uZt6H;)U6X5dPNP%qsLS?3M< zCRGt@_K)3dNulpOK1~T1^J{qNfu{ype+jtgRPdw;#;gHzF^XdeN}c&^+QJI0=C4a> zQ7TT3vh5ETR`P;=fLGC`KMM1DRRSOaAF)J@df$V5WgMn!QqsbOwt zVXtjxA%YWgeWL?H)~zLYm@IgxSZt`+^a$g3+nn2js;B9v`1{3FRd2XItcBM0NaN9E zQ+C{=po6{j+2C3Tu&r$;cjiG+(SX<>|5yH8{2cBf`|;(>oboy~#n-w{Jh1*@ zxo#vGv@ek10pO5e-xwG$xrbL9XoB$>=5dRes^yGzGNxKNf3L78*?AThzUYXo8~*cC zZbq9aNyUU!FE)^wNWO{tyW#LB6 z%9MqXAQCZ_`Az1mnV$_C*_)m5(?^k!llHJ_eDq@P|0u6u1^Zi6>A(eWl#F0%7ZqdB2h#5g6MDI$W}5?XX< zm{RGz-%utiFv=A;j>`>4zp${Vv)a9^pkUM4QW{i~8wQ#J2Bj9(&5>VNud`R^GJwx9 zVN6fQ4BqSqK|+2HAQc45Ct6=?%wR85aph^*cz6cgMRC7V78zd{Tq+wg(KH@ce#kmG z3!I*X-n9s9>kvS0;L5Xv3FyMKcnegu(V!1fg@H8Vjsd3|*52$VgNnv>e&way`q-p+ z3-Jao`#zc&b{`(AZlTRZ#^R5H!k?wXlBF#GD^(zBB0YF0pU>p^)DrFfobYZq?A14F zN^&&>hzur01d8&6jeBFI)&CYqjR=Jpp2pR;So9jYgf)T#6(`yj2RdyLQ#{sL1eN}gOQ%l^27-z z-SgZ(Y?)YsF;cj*v^g9`G6-@Z^2@%LC5Ev`itjl&d`K()VCB1Vo*Mi}5L{uk^nKoi zCUGCM?=H>Xgtpj_+l-pZjFj%q(Rt*mEaW@0*gNz;ANMv_fmmI{|E{r^hplpgj=-rB zCE_fjrWuN(`D$tVV5G8P)v~%av!J2l3o!9qrnGJXN_q>32h6!pywH(*${Cqy1%sYx zX{*PB?097xZZmOzpFuux8&pWgW@qDqa#K0At?EW@gP>1AMMY#`VoO+R#R8BngUx>+ zviBMu`77zbz@Uimps=ur$UxB7U{E5=4M*S0TT|qEH>qxs(Ppmkb}D@vuZlwih6-z% zvY6E0yh7G3F~Xp7gwtDa!I{&bsvj^wozfd5%~s=9WX&I@SNY!A!O@prAG67(LX|Ae z5#=&r37q)Zk8qiiVnw1PO9l%S0u0C@3PAVNzeQ)s(tw-IrZtpGYkFOd#4+F7`bA5W z@c+n?{`_-XmguD^&BjXaO5J#DZ6b0&uawNnZ*S)SJi*yUlJ!B8>9$2+lZqODA){($ z+nxJ3pidcyW;Va*V*J`QYyRRa(+ni%5;a?7Z)0F-_}#YU^CGI|Aea@Grm~r|)-^ji ze>YAoot4iTC2N-YY&GZPc=yNb>ZE<1*)6ZD=-yy5t7>a)jiw1hmAp-} zou%2rN@c4}L_$SEK|)YaR#Q|_`j?=pth92ZABlLl)R?%qM0j{07TphOdTP?K{@yO* zP>G|-;k2lEjpdSC8yWPCbb9N2{_Z$CbEbmq^i6@u(vm!+zC|c!cYh)?=U>anklqXn z&(M_{b=okMvHAM>>Bc~e`oyRqb1fN^I)sZ6K0s)64z}G>)}L|WP%@>0xnnv0VPiik zn0aPwk^AaeDY`;_DEtiO)9;WN?ON)*SvpKv3cse8ZZwn_IU8DdfOMyY9ng8Bh`5O& zL0^}v-d7bhlX1|Vezv+XFz%DVy3BhN9D9h)%eZ)t(~lEvce!L^Wtm+!Z;+DGwQNsrOJ7T#9Fqi@t8N{b&Wgy2 zmZc=et5cGa;*&8_V$o1Bp}{oO6El(yLCCRIX&TOo+R9#XXCrH@TY|BfpS+zvq)S|) zTjY12sm&bD2cw3&aQHPKcMQ^SmM)=c!I*>98}d@7u006(dpjS z)SpMnQ>>b^GMXm{l6_>7r|8tkx~%^H{6x9WnOI#-&D2e;nkU!HQyjhaA2Bf5|CD_C zy{4^Z)|CZW-L6tfnt@ufD2yyo#IWo?<6po$$jhzR+O60+Th9DUmu&zFgvbRXRB;i2^R zxVEZq$-2-VuR#ji-dMv`{f7k zDb(S2pj>u_#Arzng-mu##x;D-xA2k>inu@nGsd#|R&?gHA|iq9$x6HjID!pNr(3VL zRJoBbwH_m*Qzy-n&57HS1!4=QH8;BrC-u4K6FahRHWzJ#wVCIjJdb?0E@{L1+E@+? zH>Q!91HaVJ-BAcmbn``a`i*nyva^v2tFi74hZ7T1cW+M}6(!Zd%8`k+od%piYoIXr z*4!L59s8A{cYjpVd)YPk zV%8COKtS@+64l8G1geq@KJO%cR%NFUzBdUkNkJeH zUR80eiu0&yRHel!HTBq^KMqVxiUtO^OmlE&#_S{3AU5@vh=zfVjE;;-WB?WYfL*jC z=}2Ysuk|TSo8XjH;USBn|9$yF1=I{^RY00tH34;(1P>YVo$CK->z&wu0a|*kVk08e zHGk*rA9UI)ZX2CEAMwxZ`5{o4U$jYA`9tuKneEAgFp{`3G?+4eOMW8jd(1jn>`JS` z((#$PZQp>EzrQC#11GcEF0|M1qg^h!xg5^Fk&%YuWOJdX-xK{@lCVMLXNS%X%}7Z4 zYIMv>Ye{=xlp|a?(>Gsiz+8Q-sceBmj=?s7!D^(&Vv@XAg1MZcV^h|(1E5>i7h9Y>0BUPU503CN`hXt(CQji0G*5 zh$@Bz^>Y(&B!YA22Wvrk~M! zxT3tLp1*t&#-KFJ6@CyPs?w__vs(IK0FEs9T~0N;E?ab0ob;sE!~N?0ZvZGva-qe~ zA*Mk?hax3t*@%+&*D**^Wh13l)FUGV)e@d_O8A~1h2!6s`#L6;v>qyDCS@ioe+v~D zDoa|b`C9UmvCslzgQu`<2|?v3>cKVS!4<-_MkH!!X|t>iJSXCnDF17-+907I2o_{M zV^~^lYNeN3oKH>D2_mZ-t6>K__hYH&^qp$>lpG^F%Z&`XUcNGNR?8KNk+gJxVO4-u0FSN_-fy=(=pcC z$9x&nXRvUaQx@-YGjdRpasv+Olbk;|0gwqI%G{CtbRy~#0K?&87L z?%00tI5@3O4j5*i%h8s~F{j14w8l;=ypJ_)CnppoGs(cl!8tiTwXoDo$I?j0Ny9zK zI1a?>lv3031R%=b)5%yzU92xCt0b`pVpUe<=a+Z(uT2by%c&XH*TwlO2wMnhzB~k+ zYNg<2oMr$?#zTaphKa|A4H@DM>ErvyDNXN&e*K}$`?~+n6FsM%>V=KUnW4^sq0W`L zlA+0kO*QdSvl9F65`I?7WRy6`2-zH2x)wDZ@9yKh`aLOTM)SiV)mf%L;b-XcEDuO< zu$Uv13Y!q3a+w)Cm@=?Z>DTatyr;}Qw>+!-a4on=YiCZ{;Sr&s8A4bws6S93Yf~Q# zh))gn+U*96qOunHb@16qY zkaiwZy%$x7EV*B7Ee@3Nd}3M~-!*9Em}u!f{4V@GeO6I^Y-LF%w@uT%P+F9i*R3?Z zwlT1_u`)L>Gq=*SA+SAxJj1*+4|+irRhH!y)yf#2Em{AiZqvkBDh^>Q76q&#hwaP(U&@^4GcOq0UqNf}feB(JiRQ-0X{x`-@|0Q2$59DmwOB!p+~t z+OaO<%F1p}-pC@MXujuCC=k(xgnmotbz?~OSq>;B12rTsghHi18nahFj$qyL@t6ay z?gI-({Jozh;4tMoCU1=fnOC4>)?yc|>D6xF);>kQZ93;-o15lJ`||$-we{i6tQ=Pa6Zhkh5n?hhj`S1I)}p?#k+Uofx{Bha6O)l|sx$ zmGk@cO?xk_s}fxCo+G(eA7u%N86aUq5H>Nkka5~i&~sT(3-Dd-YIMg<(u{|W>q5fG zftWN^5fRl_odnQ^=TgkP6pV7O7S)XF@==0+SpXz!q)u!YVSJ#gt&;dsIvHWvb~vbYufki=jY{Sh8jaom(R=n)~30y zFTd$>0cLtJ?&Y@w^pt;YO=nK7;kWeBhasf0WYN!&TCiMbStKOL)b*7j$^i#ucL&#n z&}6KJe7%cYLzTmFyiubbSQ!#hV_BoLMUaD0?qB7ghGas>FSS$|E~1DsY&VuN|1WGVHSy?c7Vt96Kd# zcbEvfSMS-5|&dB-~(i7!MVjyH}-7`@% z=`NsIsb!cVGmeQaqMVJ*IZI5pYVZe|!*5nO*E+`bbmaSIRh7o8oAU5o+oSES49~mA zhlpi{>@E;4T%4uA=NwTCL7^xz%~wlfD6>L|0sh0|ecDFXb|}j;g)#Si2dXUcep!T4 zni1vtB&?;y{AkW9^s#d5YUz0Yq`oT#G5!5T@3^qZg;?!@|0-|{;5u%hkF;oqPCB8F+Ilrz#h7(EKiTqG7T={cn=^@YMjN1 z9VyhwiypbmdcGhe@@gEr-(fGp`b{Oi=E!GFd@O=DoWv0q^uPE`eVp@}{x!_>8gn@& zFTEVuGGB3>>3r{*wV!r06!Q*wYKwpGBcC3QhsZap#b(AHB*_L7g65^vmsl8K(bUFx zkzS~IDk~eOFg=@=UUrvR^pIQ5PVaI!x}1zH$&$Du2___G@JaofRkAoGqvIo0_F{Jh z+}r2QA#8pJ8XTXMhwJ7bd;%Lj$Ln{eW1ukz9y@Yu(sJ6~eNLw~RvOd(v`}M4IA#pc zAYN4P8z&hTC0VtS2zW}pFh(@Ii;69(OdXq05_Dk3DMK#YSS8lsR3bReknP+X=y6jCG>HXaO-Nv=b&cX-#bY}<7%tR=gG!K z|7N}qF!<8i>}ad&o0{Xv&(F^Pbb4`yX{*EQdGmHN4tN6S@O!ap7Yt=^_y(5FTiw5Y8(n zk=9nvo0~Zg^ir}gme&`B3nF>kd0tNk6WDFDJ2O1Lg5PhfV-m4{-kLr3o|9TTxH*+N zTD7EbFaYyJ~=NqzT^K z!bxBKON~oiI)RLqBU}yu7Qw{qTE@w-)^|%2LQ2|QGHP_n67@VwoxjE_o;^|L_BKo$ zHn-YnFIEFaW<2lXdDFv41lL%cd(7Baa)^-yL1c0vg-Qtpgw14pR+3&TnQx_Z7y3#Y zff))Yv!rh4|)Ytq@1TU-=mdF!)WrUCa6#=1SEA_u5}#F zt0h;KWw!02s%Go@@TTysHD5>0>$AR({%(KDpj<=*q2SBo z!`(7N4xjJi^G$)L^4P(_^UT5l5eS>W?6T(w_ynCl?q^|Y*hE3OOmik1DDa1W)v~j-pNo*sss1JMe(Gjb zoZruit>pkE72c0c9h3H3vasY(d@giHXI(L(5lJq>7KJ)!;+YKDE`$NWFr)YO<%?tu zR-OGdIJa@d?JG!%CUOIkoKhjm2S`s)#_=FDAr&u?T*XcC!_CxXT?r7I(iX2V>pmKR zxqIr>N4Br!f_e1x<)X6moaR&G&)JU0{2P3{- ztCH}1k^=*Fi_zIvx|42s?(C_@$?g{JCnw+!_noN=ONdGtk}PX$*L0un-hn5bKkd{j@eK+&|g1jMB}eXlMz+v|}o`E$E3 zx4mzldlM*-d|nQF%Q3qrI^92fJ{E_cZ27#sUQhZng5_*|-*5dd?_L>n`FvkGp55(l z?f@b)&%m?3>KuN0`UwV~bO=6%3Ez+VkGsCtLAfiwF6cPmU|(PRbOd3SPjU4twtA`| zA9(NVxEGusYA7dVV4%CZ4HN)>f8&kN|9=XKXZ%UOCgk4-Xo#MNAQou#bg>cA%9B~( z#^OIr>lyfMq6zhNj(jJ5-CVS>ePN-PuW{UYV$$ISw*zoKQ-8(`M`oz&eKCn#%?i{D%UKxHRd_SbloM$R9`2NV z7e=AfNtNg8$K+c(<`qD84-n zr|Zr9+aCC_7m~}L16$$#*>t~5@+Xwx~Gz~0Q8!lkaiPdP2pv(pIT6(mWJbxZtUQONG*F4oy zT#5Vw)`E53&I%FD5SC{P(m@G!L$H1@f}Nn^sYQN+^Mk^Qk7LA*oR4hnfrDU)&jur< zhbUb)DJ7`U5bgQe^T${QKN5v@s6$B<*9tE&5-qwz<-poc_K1$CK6U~OXTl!>^yR^o zdNTa?h8Knj#>BWtFl3>)k%%v&=&;q}5G*LBajh`18fj8T1f&bZV3+~~gC^%N!glh+ z);0E`xG>qp0CQ2;rXe@ne;3Q|pC-$rikr+JT34o@?(jLdTCjl}}u zhZw(8+5RY_6nTJek6cHnfOaLsTk|ZO{;&gF26iUPqEbvbV_lvwHsCjG@ayfeG^`sx z=Za;WO%2WCxCS6x2H~(Wlszre@cm7;Xl2w<@;P`sY^}E4W(c@{bGn@Duh!K8QTv`v7c;WMUcm6o5zUoPQff0^&JWvK#ip}o*KK@*Wlu0|{ z+u?Ty&dC~^<&Wtg>(2~M3n6JokSD8NLv;Wx?l%kN*!zOGHWJ@+W#shVlG$fjLyF=_ zs0c84uKR}Xj<&u-VutfGoNv4>mLPXI^AvJ7$vy2;=8;VKT9(+BUs&?0tv#2=`;guc z3+0UqW zcd>2C?i*DFTxbD)^|)3*x6{in4a3c%^uM=z0UPms9mHpy*ne=o!%-6ngjR3kRTsvU z=ec^8NOTWw39bhUu|Z!RYb~4Mx@d4W9&0rpt2>=uUDmIN@t!Up9>g0KtDm=UPMb@G zWGSX!6f4)utQMzZ;-72DWnw>t7aJeS{;up=S7+z;3T4_@vTMz!=CwI`Od2|U8+&_B zk6-w+5j55@kdeZKOC5hIwQrM5v2ZZFgifJsB9cV<6`dT)bO`c`xx$C}tbf_8AeF*L z_-+@hehF&ddw!rdO8*pT@GDse(0KSO8aZ^5X^5Ipkg^dZW(j1n5u_R*B*`=gt>{_p z5c2mJJe?d;l{gahGz_f-Jf-XnjVxydCIAABG>b}xS1SqEt&y~Yn3;%XjD&fPmwSkY zVX2++MpyEG6vQ%1Z&B%2T1`k;i5REuQXkL1Nw4z&hu&V(QtcKl&SDPp=hSROumbKlNR=#89vC_}YZUK?!Qj7OrNBYn!kdUtSbjW84GV=`{)uhR2pg7=dQ(-d=ANG$Ua z-)X~j$8Wxu#d@FgE357a!tU+ZSBth;$#p#8!H6a^rzD?JK3%@X^D+=P3=aIGv;!y-0LPGw;Lm{o!xK-UEs_)gRE{ySsF03pPzXaO;T9waHDaXtff__zBw3$+|BK1m5Hg4O|(}sK>D!;$Y4X;I+Htc$s&})u zi*Tc%o^Nc?I3a0Qq245n1(HWuJ_Xuc+)xYDdgGs+|21Q<%YH`Yd5?RcXAb$ z{Ts+;3>`CQ=THaxoiT&`k5u?~caYY;smf!Ng8 zky+uTZ6*AT0(M+xz~RoJ9v0>2ABQ~$rhIii8y*a+gf7elL6|9$10yh{1AdpDT?9l! zyJS#;y9N~AXt!s&9~4JQuOK4V$!Bplogd3bDFPE$otPapqstA_|A~HFRfn@caSwwo zz89PmxvN}&N%*z@M3G+9hQCclUJN@NqY%ja_PRd{7WK6J;`Cmk2E8(su9O8rMF9%8 z3x<+WVMOX7#BL8cq+!G&<(h9Jy=3px0`BGqgWaAD-Co_#XVtp)VE53~z0p0|$Q6P} zVf)3c2i+dd*O?b(TEGQ8pJ}C^%K*6dw5Wis5Jdp5|tyrFJm zft9bJsCVMwZ`<^sf}~*Vp&cTc1XZOONtWJC@J6!4GdM?>O4Mt<#>U6_ z9E_R_%@5^*u?2g1T;Yaet1w+1uOAY2sw@nF)xf2WZ`|n`81H{sS>agr7atuup()R- z72&qb&PR&-w38YR7G;c^wZf>dHClmqh%ifyYxOE(!!u*Qwl@}f#tiyRL~b4w^XE|Bz#-}J zLUR22QENK9wBOYE!2SLD_3b(Ez+#3`uko}qd9*X#Xw`!VA+>q<3C;Yz$n@yLxX}_a zfKoT%;c;mw%xday>>TInSwk{{_Q~{KuHSe_!3mRN;E8qxGSpIo(Emqm=NZ*h*7flK zp#(7WCM{qPfzSpBRY)WTkdA;Ly@OJMRD(e1ASDUC!+?MV1r(%85h*H2Q|V2R4ocI| zpExt`%==}YZ_izKt-ID~zVbB~P z4mS}f-yJ60NTMb$*|2-3`_mQDl@-mG237<;@jiFokiM53xnNJF)Puh%WX)CWpVrRWpD^mx!#jNG5UXQ{zmR+79+wqJd0s z)V2V^1je02e1+p82PE(0tW-x+-}X;lkum-;hETV&7S$yeK())qA{H-8DQB8t(fGE9 z1^`gGy`6pT&g5vftmus;_*!W+L^H~|b+3DMHmXB=c~-mcVd~w5Gna#ApM68n;M7#h zlo}wmATbZYe1Ez;tM00Vz8NoYWhMF65-?R<1I-XOD*<^B)$?d~_qKh_BuQ4aX3PjQ zZtj&9yNPAF;wZawZB=!TN%t-H{DEG)1)K1Pq{QALQ=<iKDaQAIfCYgBU>cbaWv4NMLf$d`xr<2+FETt18IEB#a|txs<_o zP3l)ZVwZO@m>tZWok%YX2IGgpkk22=-Y`CgEi5B2j8UxiFhGiPw+AKIV-ZK|MnN~& zd-vSZ@R@!Vr@cHmzG`?qY4cws6^0}JQhV$d(Sru5U+n=l@A#gtMbg3T4oPzz_r(T5 z!!qu2wC)kRp>fiKv`Y<{TD@p)0)XFt^P3o`f~%8qz>#m94U@JC$kdF&oM2k$&Tc7H)Q!r!p*QAab78dBHHo|eu} z^fxWd&1u&NjvlVwe7NyEW4ffu!+xEgbzqT03ej31`IDiRsT>q$t9Dkz9b zOU&c#>`bIqY9uuPu&HQ`*AzGeqZFx6<0!(puXhCChoc$if+Zb0(`8b4Evn1ALl|Vv z&$>qyg&;wn9ruo@{*UTCGbR6eKls#$FY*}BV7#15n;f9NXSgrPG#J@&(#z#&%@-Eo z8BGBiOsYy(4+Dj2<$U!YJ)*`!mdJO@i)2SOB&kt(*=YM(VJV}Pvv!Yuh8^s$?*=6n zziK-UqLgo;I`@?BZ@fJ|CZnK$+?co8)*2mDTD~yzwEUAwxk%H}-ARAS&k|cgpqr_{ zAM|v}Ao{4{N_@}ldCX((Ff&*nFXxkY0~Pl>-0ctcx0OOEXOiOUAzvhQ_Vzqc?K!L% zS7;;;(H;rSX5Bsn=3f+Tu1LW;pgppE44mELKdNMwKE^ucCC8gg25~C~qu(^gpbGS_ zDPx91cFhBehN(aw2pQRzMJ?sG2!~nw*3tj|D+jjhxxdD{ZvP+i^f(< zyEz?7#;AXh)LqdC*NeEpq%uQa3swOMZ78#^g{^>hpaIx`QCfm_GB;p7IJlv)u@MoC z#$c)=su^)`CUSpfQCSg0gr{znC#<4Rf%u-cC2ujme^m;xM4d_21oF*v z40I|C2@^zMe*%zA*g+IrkHl# zmFrH`!d#=Ll6gLMu>933CZ&*T*i97;7cU)`(*4Ki@*i>F1DY$SZom zW#xxIPYFp^K%~Sk3PUeJq1wVKuSPB-IlrdAmN?`g_NzDD3^vPmozP{;vwX? zjbIW|Z~*?P@ptXMi2mTJct+dhI#?sSLx--oBlBvb$~Jv^ue2f0J?%5Sj60MkR!Wpr z({?w%-<~}Q>b>DyU9gI#^!Fdp@D{oN;%=F6n@LeG*DxpToRk=0&g|4wIopm^_S{YH!Efh)XOxWC*S);7lk|)Pvv(S;5bzH_q9evEnBQLZ{#WS zKM4pe5r;hzfjkqd3Cnu${O$Z^rlQ`aU;Uc%6Za61ZY01Q40=z@HY;zrmUz?4 zHrT^)#j>i@(Kf~KF-_BJe&5=YUv6!&yp!tpYRX%@X?6I?>BN~K5`4Gm{H;~@+a3~Lrs=8aoLnp% z9OdC!aoi^iD%uu|g1i#zxeB+(m6RGt!4_lVVW$Uf=H{I00#f9p^!6qcj*}`j1iP>2hGlxm1;kExOuE&_QNtOjz7|sU=hHS8IymADja9|J~;zqe0hPt=#MA$d& zd3J}f%3jr5dX4>h%QE8*sOwrz|JUF063f!RbbUUeOW%QTDKmHu~_W=*RaunHQ!rwU*X;Nr?9O znmsM0cp!|4Yq=?4eQX?Qv{a(;y5oIaN(?n{C1CyY&Yh8O@>CE-zu{83llgN327!xU zc}~qU6E$xsDO+2{6R>=2Zyd*BH*;g~wzZmtfq?qIgIPD*kXp7nc7dfIV)YNnP1BbB zD}C}dT3ugM8F_>>tQ=mC{4#UJvG7WX7BJ=~JpqA(+ckmCo#%uOwl}A0a}3`<$-P** z1lFW!j!W8z)&Ds&RT+T1rCa&1wkm$iSV%||NfE;8E1l4QhZajB#$ZyF^_JUxr#7jS z!120DlPf06!fD?7Db_8YhNl#*!z-SYJX5dQa11f@IRge{tH{ad@RXZ`^mI=i#@;+a zTZL#f#rAl-7&u;V+7=CZV&=Av&i9{wF^U+l@a;si2nng%60k_ha*Z#2?_R&_=RKDT2DM=Q1hf2TX8FOaDa^^L$g_YX+hECsMAz2zYrJ~$B$1@3P}?Du{Hdn z^--mnP${dB@Yf5%Yp_f9y24|G_?OUmp1yEJbdj5R!w ze44y@x&9D+GgkEI?e!pRh_v19)=xtU=u+cvv!zqbld4FMEqR*C`5wko}|DM7kHh~C1%0W#5Rl^1SdVYyPo>Fj3r zB5;!&mojSB7U~AD*;y)iX(rmgvCPY$e}0O9;Oq?b&qv8B~qO?JO(C$6j9TskAgZ%AERv*2$QBK6$>(tm^$E zo9W`ri^9ti&_Fb5%1&EY54H0=e}ZsYI7B5tCIg)cm%G(Yj`}txKkh%1xV4lZj-t~k zWaXsJnatN7Y~QgW(iJ}yN2PO!cx7>ow<4{h)0{3uH0X~GPYfx`DoV(x%fai9@A+em zT{ah^;-apbRb207C+ByaZlM>Pzok_GnZ~_ZO&$j-+!z`0ezAw; z@vsCL%TjXo=$>`E83YoDtB6~!HixMy<_2J}lmYlKNc}}M=8i88aI!m~vAaF!Bj+S* z&3&jjur~m9T%pKiOPr^HQrQ8v)KOFMr77*FKbMAIcMf$1k5#t$0ske(>8`0KGVe@J`*Aya^5k zty)<5&j!NJW_%+lDTIa)+Nos|8oOZ=7bv)4H1euWr}+w6*&6lQN;|j>@HRC*h?89n zcBxv|+~OLb>Y_v?R4n@IT>8TDbh!tlMrUBG`|XGQ=m{{tvWFO(=E#VU*dvh}Rr^Vw z0~j+E0=t$?yOu|1R`T@pq}e%G9cpIk8f%OsKiLg=(#}rQg&(cYBF>*~`)EXt8fu)> zy7uQ5jp9-iZX+35J`dZ$)-5b7I-L1e013G<85}V16*-EY#Gak+yS_tya)Or?qu?y> z6PK4S&dWj&etsiG5#9FR?{N!r2^QX7)r{twI?lKL&f`uOdCEvuOGC(C!6oa)$G^`= z{-sE#`(=cz@cvQ+F#qw+;>a4nKdf|zG-L+*PwSxKFTnkmFIma@OMUsL``)=fhb3E! ueGp`=+n?^CRAjOHpYH$5q45p%XW^TY+4+jn?0f+7qjS{&_3Vm$ { 'default' => ::File.join(Chef::Config[:file_cache_path], 'system-probe') }, -) - -directory rootdir do - recursive true -end - -# This will copy the whole file tree from COOKBOOK_NAME/files/default/tests -# to the directory where RSpec is expecting them. -remote_directory ::File.join(rootdir, "tests") do - source 'tests' - mode '755' - files_mode '755' - sensitive true -end - -if platform?('windows') - include_recipe "::windows" -end diff --git a/test/kitchen/site-cookbooks/dd-system-probe-check/recipes/windows.rb b/test/kitchen/site-cookbooks/dd-system-probe-check/recipes/windows.rb deleted file mode 100644 index 912ff2fe1d115..0000000000000 --- a/test/kitchen/site-cookbooks/dd-system-probe-check/recipes/windows.rb +++ /dev/null @@ -1,96 +0,0 @@ -require 'json' - -# manually install and start the NPM driver -tmp_dir = "#{ENV['USERPROFILE']}\\AppData\\Local\\Temp" -dna_json_path = "#{tmp_dir}\\kitchen\\dna.json" -agentvars = JSON.parse(IO.read(dna_json_path)).fetch('dd-agent-rspec') -driver_path = agentvars.fetch('driver_path') -driver_ver = agentvars.fetch('driver_ver') -driver_msmsha = agentvars.fetch('driver_msmsha') - -remote_path = "https://s3.amazonaws.com/dd-windowsfilter/builds/#{driver_path}/ddnpminstall-#{driver_ver}.msm" -remote_file "#{tmp_dir}\\ddnpm.msm" do - source remote_path - checksum driver_msmsha -end - -remote_file "#{tmp_dir}\\wix311-binaries.zip" do - source "https://github.com/wixtoolset/wix3/releases/download/wix3112rtm/wix311-binaries.zip" -end - - -execute 'wix-extract' do - cwd tmp_dir - command "powershell -C \"Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory('wix311-binaries.zip', 'wix');\"" - not_if { ::File.directory?(::File.join(tmp_dir, 'wix')) } -end - -cookbook_file "#{tmp_dir}\\decompress_merge_module.ps1" do - source 'decompress_merge_module.ps1' -end - -execute 'extract driver merge module' do - cwd tmp_dir - live_stream true - environment 'WIX' => "#{tmp_dir}\\wix" - command "powershell -C \".\\decompress_merge_module.ps1 -file ddnpm.msm -targetDir .\\expanded\"" - not_if { ::File.exist?(::File.join(tmp_dir, 'expanded', 'ddnpm.msm')) } -end - -execute 'IIS' do - command "powershell -C \"Install-WindowsFeature -name Web-Server -IncludeManagementTools\"" -end - -directory "Make IIS Paths" do - path "c:\\tmp\\inetpub\\testsite1" - recursive true -end - -cookbook_file "c:\\tmp\\inetpub\\testsite1\\iisstart.htm" do - source 'iisstart.htm' -end -cookbook_file "c:\\tmp\\inetpub\\testsite1\\iisstart.png" do - source 'iisstart.png' -end - -directory "Make IIS Paths" do - path "c:\\tmp\\inetpub\\testsite2" - recursive true -end - -cookbook_file "c:\\tmp\\inetpub\\testsite2\\iisstart.htm" do - source 'iisstart.htm' -end -cookbook_file "c:\\tmp\\inetpub\\testsite2\\iisstart.png" do - source 'iisstart.png' -end -execute "create testsite 1" do - command "powershell -C \"New-IISSite -Name 'TestSite1' -BindingInformation '*:8081:' -PhysicalPath c:\\tmp\\inetpub\\testsite1\"" -end - -execute "create testsite 2" do - command "powershell -C \"New-IISSite -Name 'TestSite2' -BindingInformation '*:8082:' -PhysicalPath c:\\tmp\\inetpub\\testsite2\"" -end - -if driver_path == "testsigned" - reboot 'now' do - action :nothing - reason 'Cannot continue Chef run without a reboot.' - end - - execute 'enable unsigned drivers' do - command "bcdedit.exe /set testsigning on" - notifies :reboot_now, 'reboot[now]', :immediately - not_if 'bcdedit.exe | findstr "testsigning" | findstr "Yes"' - end -end - -execute 'system-probe-driver-install' do - command "powershell -C \"sc.exe create ddnpm type= kernel binpath= #{tmp_dir}\\expanded\\ddnpm.sys start= demand\"" - not_if 'sc.exe query ddnpm' -end - -windows_service 'system-probe-driver' do - service_name 'ddnpm' - action :start -end diff --git a/test/kitchen/tasks/README.md b/test/kitchen/tasks/README.md deleted file mode 100644 index 63dc2a0ca125b..0000000000000 --- a/test/kitchen/tasks/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# Tasks - -These are shell scripts that execute the build and cleanup. They also have some debugging included. -They are meant to be run from our build environment, however they can also be run locally if you provide the proper variables. - -Look at the test kitchen readme for a discussion of these environment variables and how to get them. diff --git a/test/kitchen/tasks/__init__.py b/test/kitchen/tasks/__init__.py deleted file mode 100644 index 7d75e1a988354..0000000000000 --- a/test/kitchen/tasks/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -""" -Invoke entrypoint, import here all the tasks we want to make available -""" - -from invoke import Collection - -from . import kitchen - -ns = Collection() - -ns.add_collection(kitchen) diff --git a/test/kitchen/tasks/clean.sh b/test/kitchen/tasks/clean.sh deleted file mode 100755 index b05c08fa71f7d..0000000000000 --- a/test/kitchen/tasks/clean.sh +++ /dev/null @@ -1,72 +0,0 @@ -#!/bin/bash - -# This script cleans up any stray azure vms that may remain from the prior run. - -# http://redsymbol.net/articles/unofficial-bash-strict-mode/ -IFS=$'\n\t' -set -euo pipefail - -# These should not be printed out -if [ -z ${AZURE_CLIENT_ID+x} ]; then - AZURE_CLIENT_ID=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $KITCHEN_AZURE client_id) - export AZURE_CLIENT_ID -fi -if [ -z ${AZURE_CLIENT_SECRET+x} ]; then - AZURE_CLIENT_SECRET=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $KITCHEN_AZURE token) - export AZURE_CLIENT_SECRET -fi -if [ -z ${AZURE_TENANT_ID+x} ]; then - AZURE_TENANT_ID=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $KITCHEN_AZURE tenant_id) - export AZURE_TENANT_ID -fi -if [ -z ${AZURE_SUBSCRIPTION_ID+x} ]; then - AZURE_SUBSCRIPTION_ID=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $KITCHEN_AZURE subscription_id) - export AZURE_SUBSCRIPTION_ID -fi -if [ -z ${DD_PIPELINE_ID+x} ]; then - DD_PIPELINE_ID='none' - export DD_PIPELINE_ID -fi - -if [ -z ${AZURE_SUBSCRIPTION_ID+x} ] || [ -z ${AZURE_TENANT_ID+x} ] || [ -z ${AZURE_CLIENT_SECRET+x} ] || [ -z ${AZURE_CLIENT_ID+x} ]; then - printf "You are missing some of the necessary credentials. Exiting." - exit 1 -fi - -az login --service-principal -u "$AZURE_CLIENT_ID" -p "$AZURE_CLIENT_SECRET" --tenant "$AZURE_TENANT_ID" > /dev/null - -if [ ${CLEAN_ALL+x} ]; then - groups=$(az group list -o tsv --query "[?starts_with(name, 'kitchen')].[name]") -else - groups=$(az group list -o tsv --query "[?starts_with(name, 'kitchen')]|[?ends_with(name, 'pl$DD_PIPELINE_ID')].[name]") -fi - -# This will really only fail if a VM or Group -# is in the process of being deleted when queried but is deleted -# when the deletion attempt is made. -# So, failure should generally be swallowed. - -for group in $groups; do - echo "az group delete -n $group -y" - if [ ${CLEAN_ASYNC+x} ]; then - ( az group delete -n "$group" -y || true ) & - else - ( az group delete -n "$group" -y || true ) - fi - printf "\n\n" -done - -if [ ${CLEAN_ALL+x} ]; then - vms=$(az vm list --query "[?tags.dd_agent_testing=='dd_agent_testing']|[*].[id]" -o tsv) -else - vms=$(az vm list --query "[?tags.dd_agent_testing=='dd_agent_testing']|[?tags.pipeline_id=='$DD_PIPELINE_ID']|[*].[id]" -o tsv) -fi - -for vm in $vms; do - echo "az vm delete --ids $vm -y" - if [ ${CLEAN_ASYNC+x} ]; then - (az vm delete --ids "$vm" -y || true) & - else - (az vm delete --ids "$vm" -y || true) - fi -done diff --git a/test/kitchen/tasks/kitchen.py b/test/kitchen/tasks/kitchen.py deleted file mode 100644 index beb345b66d4ad..0000000000000 --- a/test/kitchen/tasks/kitchen.py +++ /dev/null @@ -1,253 +0,0 @@ -import glob -import json -import os -import re -import sys -import traceback - -import requests -from invoke import task -from invoke.exceptions import Exit - -WINDOWS_SKIP_IF_TESTSIGNING = ['.*cn'] - - -@task(iterable=['platlist']) -def genconfig( - ctx, - platform=None, - provider=None, - osversions="all", - testfiles=None, - uservars=None, - platformfile=None, - platlist=None, - fips=False, - arch="x86_64", - imagesize=None, -): - """ - Create a kitchen config - """ - if not platform and not platlist: - raise Exit(message="Must supply a platform to configure\n", code=1) - - if not testfiles: - raise Exit(message="Must supply one or more testfiles to include\n", code=1) - - if platlist and (platform or provider): - raise Exit( - message="Can specify either a list of specific OS images OR a platform and provider, but not both\n", code=1 - ) - - if not platlist and not provider: - provider = "azure" - - if platformfile: - with open(platformfile) as f: - platforms = json.load(f) - else: - try: - print( - "Fetching the latest kitchen platforms.json from Github. Use --platformfile=platforms.json to override with a local file." - ) - r = requests.get( - 'https://raw.githubusercontent.com/DataDog/datadog-agent/main/test/kitchen/platforms.json', - allow_redirects=True, - ) - r.raise_for_status() - platforms = r.json() - except Exception: - traceback.print_exc() - print("Warning: Could not fetch the latest kitchen platforms.json from Github, using local version.") - with open("platforms.json") as f: - platforms = json.load(f) - - # create the TEST_PLATFORMS environment variable - testplatformslist = [] - - if platform: - plat = platforms.get(platform) - if not plat: - raise Exit( - message=f"Unknown platform {platform}. Known platforms are {list(platforms.keys())}\n", - code=2, - ) - - # check to see if the OS is configured for the given provider - prov = plat.get(provider) - if not prov: - raise Exit( - message=f"Unknown provider {provider}. Known providers for platform {platform} are {list(plat.keys())}\n", - code=3, - ) - - ar = prov.get(arch) - if not ar: - raise Exit( - message=f"Unknown architecture {arch}. Known architectures for platform {platform} provider {provider} are {list(prov.keys())}\n", - code=4, - ) - - # get list of target OSes - if osversions.lower() == "all": - osversions = ".*" - - osimages = load_targets(ctx, ar, osversions, platform) - - print(f"Chose os targets {osimages}\n") - for osimage in osimages: - testplatformslist.append(f"{osimage},{ar[osimage]}") - - elif platlist: - # platform list should be in the form of driver,os,arch,image - for entry in platlist: - driver, osv, arch, image = entry.split(",") - if provider and driver != provider: - raise Exit(message=f"Can only use one driver type per config ( {provider} != {driver} )\n", code=1) - - provider = driver - # check to see if we know this one - if not platforms.get(osv): - raise Exit(message=f"Unknown OS in {entry}\n", code=4) - - if not platforms[osv].get(driver): - raise Exit(message=f"Unknown driver in {entry}\n", code=5) - - if not platforms[osv][driver].get(arch): - raise Exit(message=f"Unknown architecture in {entry}\n", code=5) - - if not platforms[osv][driver][arch].get(image): - raise Exit(message=f"Unknown image in {entry}\n", code=6) - - testplatformslist.append(f"{image},{platforms[osv][driver][arch][image]}") - - print("Using the following test platform(s)\n") - for logplat in testplatformslist: - print(f" {logplat}") - testplatforms = "|".join(testplatformslist) - - # create the kitchen.yml file - with open('tmpkitchen.yml', 'w') as kitchenyml: - # first read the correct driver - print(f"Adding driver file drivers/{provider}-driver.yml\n") - - with open(f"drivers/{provider}-driver.yml") as driverfile: - kitchenyml.write(driverfile.read()) - - # read the generic contents - with open("test-definitions/platforms-common.yml") as commonfile: - kitchenyml.write(commonfile.read()) - - # now open the requested test files - for f in glob.glob(f"test-definitions/{testfiles}.yml"): - if f.lower().endswith("platforms-common.yml"): - print("Skipping common file\n") - with open(f) as infile: - print(f"Adding file {f}\n") - kitchenyml.write(infile.read()) - - env = {} - if uservars: - env = load_user_env(ctx, provider, uservars) - - # set KITCHEN_ARCH if it's not set in the user env - if 'KITCHEN_ARCH' not in env and 'KITCHEN_ARCH' not in os.environ.keys(): - env['KITCHEN_ARCH'] = arch - - env['TEST_PLATFORMS'] = testplatforms - - if provider == "azure": - env['TEST_IMAGE_SIZE'] = imagesize if imagesize else "" - elif provider == "ec2" and imagesize: - env['KITCHEN_EC2_INSTANCE_TYPE'] = imagesize - - if fips: - env['FIPS'] = 'true' - ctx.run("erb tmpkitchen.yml > kitchen.yml", env=env) - - -@task -def should_rerun_failed(_, runlog): - """ - Parse a log from kitchen run and see if we should rerun it (e.g. because of a network issue). - """ - test_result_re_gotest = re.compile(r'--- FAIL: (?P[A-Z].*) \(.*\)') - test_result_re_rspec = re.compile(r'\d+\s+examples?,\s+(?P\d+)\s+failures?') - - with open(runlog, encoding='utf-8') as f: - text = f.read() - result_rspec = set(test_result_re_rspec.findall(text)) - result_gotest = set(test_result_re_gotest.findall(text)) - result = result_rspec.union(result_gotest) - if result == {'0'} or result == set(): - print( - "Seeing no failed kitchen tests in log this is probably an infrastructure problem, advising to rerun the failed test suite" - ) - else: - raise Exit("Seeing some failed kitchen tests in log, not advising to rerun the failed test suite", 1) - - -@task -def invoke_unit_tests(ctx): - """ - Run the unit tests on the invoke tasks - """ - for _, _, files in os.walk("tasks/unit-tests/"): - for file in files: - if file[-3:] == ".py" and file != "__init__.py": - ctx.run(f"{sys.executable} -m tasks.unit-tests.{file[:-3]}") - - -def load_targets(_, targethash, selections, platform): - returnlist = [] - skiplist = [] - commentpattern = re.compile("^comment") - - if platform == "windows": - if 'WINDOWS_DDNPM_DRIVER' in os.environ.keys() and os.environ['WINDOWS_DDNPM_DRIVER'] == 'testsigned': - for skip in WINDOWS_SKIP_IF_TESTSIGNING: - skiplist.append(re.compile(skip)) - - for selection in selections.split(","): - selectionpattern = re.compile(f"^{selection}$") - - matched = False - for key in targethash: - if commentpattern.match(key): - continue - if selectionpattern.search(key): - for skip in skiplist: - if skip.match(key): - print(f"Matched key {key} to skip list, skipping\n") - matched = True - break - else: - # will only execute if there's not a break in the previous for - # loop. - matched = True - if key not in returnlist: - returnlist.append(key) - else: - print(f"Skipping duplicate target key {key} (matched search {selection})\n") - - if not matched: - raise Exit(message=f"Couldn't find any match for target {selection}\n", code=7) - return returnlist - - -def load_user_env(_, provider, varsfile): - env = {} - commentpattern = re.compile("^comment") - if os.path.exists(varsfile): - with open(varsfile) as f: - vars = json.load(f) - for key, val in vars.get("global", {}).items(): - if commentpattern.match(key): - continue - env[key] = val - for key, val in vars.get(provider, {}).items(): - if commentpattern.match(key): - continue - env[key] = val - return env diff --git a/test/kitchen/tasks/kitchen_rspec_xml_update.sh b/test/kitchen/tasks/kitchen_rspec_xml_update.sh deleted file mode 100755 index d7f253a1212ec..0000000000000 --- a/test/kitchen/tasks/kitchen_rspec_xml_update.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -# set testsuite name with the job name -sed -i "s/name=\"rspec\"/name=\"$2\"/g" "$1" -# Edit filepath from relative to the kitchen test to the datadog git repository for codeowners -parent_folder=$(sed -n 's/.*classname="\([^"]*\)_spec.*/\1/p' "$1" | head -1) -sed -i "s/file=\".\/${parent_folder}_spec.rb\"/file=\".\/test\/kitchen\/test\/integration\/${parent_folder}\/rspec_datadog\/${parent_folder}_spec.rb\"/g" "$1" diff --git a/test/kitchen/tasks/kitchen_setup.sh b/test/kitchen/tasks/kitchen_setup.sh deleted file mode 100755 index dfa0d7652624f..0000000000000 --- a/test/kitchen/tasks/kitchen_setup.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -rm -rf "$CI_PROJECT_DIR/kitchen_logs" -rm -rf "$DD_AGENT_TESTING_DIR/.kitchen" -mkdir "$CI_PROJECT_DIR/kitchen_logs" -ln -s "$CI_PROJECT_DIR/kitchen_logs" "$DD_AGENT_TESTING_DIR/.kitchen" diff --git a/test/kitchen/tasks/run-test-kitchen.ps1 b/test/kitchen/tasks/run-test-kitchen.ps1 deleted file mode 100644 index ad6a536e57526..0000000000000 --- a/test/kitchen/tasks/run-test-kitchen.ps1 +++ /dev/null @@ -1,35 +0,0 @@ -if (Test-Path $PSScriptRoot\ssh-key) { - Write-Host -ForegroundColor Yellow "Deleting existing $PSScriptRoot\ssh-key" - Remove-Item $PSScriptRoot\ssh-key -} - -if (Test-Path $PSScriptRoot\ssh-key.pub) { - Write-Host -ForegroundColor Yellow "Deleting existing $PSScriptRoot\ssh-key" - Remove-Item $PSScriptRoot\ssh-key.pub -} - -$keyfile = "$PSScriptRoot\ssh-key" -Write-Host -ForegroundColor Green "Generating $PSScriptRoot\ssh-key" -& 'ssh-keygen.exe' -f $keyfile -P """" -t rsa -b 2048 - -$KITCHEN_SSH_KEY_PATH=$keyfile -& 'ssh-agent.exe' -s -& 'ssh-add' $keyfile - -if (-not (Test-Path env:AZURE_CLIENT_ID)) { - Write-Host -ForegroundColor Red "Need AZURE_CLIENT_ID" - exit -} - -if (-not (Test-Path env:AZURE_CLIENT_SECRET)) { - Write-Host -ForegroundColor Red "Need AZURE_CLIENT_SECRET" - exit -} -if (-not (Test-Path env:AZURE_TENANT_ID)) { - Write-Host -ForegroundColor Red "Need AZURE_TENANT_ID" - exit -} -if (-not (Test-Path env:AZURE_SUBSCRIPTION_ID)) { - Write-Host -ForegroundColor Red "Need AZURE_SUBSCRIPTION_ID" - exit -} diff --git a/test/kitchen/tasks/run-test-kitchen.sh b/test/kitchen/tasks/run-test-kitchen.sh deleted file mode 100755 index 795ee25dc4ff1..0000000000000 --- a/test/kitchen/tasks/run-test-kitchen.sh +++ /dev/null @@ -1,200 +0,0 @@ -#!/bin/bash - -# This script sets up the environment and then runs the test kitchen itself. - -# http://redsymbol.net/articles/unofficial-bash-strict-mode/ -IFS=$'\n\t' -set -euo pipefail - -# Ensure that the ssh key is never reused between tests -if [ -f "$(pwd)/ssh-key" ]; then - rm ssh-key -fi -if [ -f "$(pwd)/ssh-key.pub" ]; then - rm ssh-key.pub -fi -# Set a PARENT_DIR variable to call the aws_ssm wrapper in both local and CI contexts -pushd ../.. -if [ -n "$CI_PROJECT_DIR" ]; then - PARENT_DIR="$CI_PROJECT_DIR" -else - PARENT_DIR="$(pwd)" -fi -popd - -# in docker we cannot interact to do this so we must disable it -mkdir -p ~/.ssh -[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config - -if [ "$KITCHEN_PROVIDER" == "azure" ]; then - # Generating SSH keys to connect to Azure VMs - - ssh-keygen -f "$(pwd)/ed25519-key" -P "" -a 100 -t ed25519 - KITCHEN_ED25519_SSH_KEY_PATH="$(pwd)/ed25519-key" - export KITCHEN_ED25519_SSH_KEY_PATH - - # show that the ed25519 ssh key is there - ls "$(pwd)/ed25519-key" - - ssh-keygen -f "$(pwd)/rsa-key" -P "" -t rsa -b 2048 - KITCHEN_RSA_SSH_KEY_PATH="$(pwd)/rsa-key" - export KITCHEN_RSA_SSH_KEY_PATH - - # show that the rsa ssh key is there - ls "$(pwd)/rsa-key" - - # start the ssh-agent and add the keys - eval "$(ssh-agent -s)" - ssh-add "$KITCHEN_RSA_SSH_KEY_PATH" - ssh-add "$KITCHEN_ED25519_SSH_KEY_PATH" - - # Setup the azure credentials, grabbing them from AWS if they do not exist in the environment already - # If running locally, they should be imported into the environment - - # These should not be printed out - set +x - if [ -z ${AZURE_CLIENT_ID+x} ]; then - AZURE_CLIENT_ID=$($PARENT_DIR/tools/ci/fetch_secret.sh $KITCHEN_AZURE client_id) - # make sure whitespace is removed - AZURE_CLIENT_ID="$(echo -e "${AZURE_CLIENT_ID}" | tr -d '[:space:]')" - export AZURE_CLIENT_ID - fi - if [ -z ${AZURE_CLIENT_SECRET+x} ]; then - AZURE_CLIENT_SECRET=$($PARENT_DIR/tools/ci/fetch_secret.sh $KITCHEN_AZURE token) - # make sure whitespace is removed - AZURE_CLIENT_SECRET="$(echo -e "${AZURE_CLIENT_SECRET}" | tr -d '[:space:]')" - export AZURE_CLIENT_SECRET - fi - if [ -z ${AZURE_TENANT_ID+x} ]; then - AZURE_TENANT_ID=$($PARENT_DIR/tools/ci/fetch_secret.sh $KITCHEN_AZURE tenant_id) - # make sure whitespace is removed - AZURE_TENANT_ID="$(echo -e "${AZURE_TENANT_ID}" | tr -d '[:space:]')" - export AZURE_TENANT_ID - fi - if [ -z ${AZURE_SUBSCRIPTION_ID+x} ]; then - AZURE_SUBSCRIPTION_ID=$($PARENT_DIR/tools/ci/fetch_secret.sh $KITCHEN_AZURE subscription_id) - # make sure whitespace is removed - AZURE_SUBSCRIPTION_ID="$(echo -e "${AZURE_SUBSCRIPTION_ID}" | tr -d '[:space:]')" - export AZURE_SUBSCRIPTION_ID - fi - - if [ -z ${AZURE_SUBSCRIPTION_ID+x} ] || [ -z ${AZURE_TENANT_ID+x} ] || [ -z ${AZURE_CLIENT_SECRET+x} ] || [ -z ${AZURE_CLIENT_ID+x} ]; then - printf "You are missing some of the necessary credentials. Exiting." - exit 1 - fi - - # Create the Azure credentials file as requried by the kitchen-azurerm driver - mkdir -p ~/.azure/ - (echo "<% subscription_id=\"$AZURE_SUBSCRIPTION_ID\"; client_id=\"$AZURE_CLIENT_ID\"; client_secret=\"$AZURE_CLIENT_SECRET\"; tenant_id=\"$AZURE_TENANT_ID\"; %>" && cat azure-creds.erb) | erb > ~/.azure/credentials - -elif [ "$KITCHEN_PROVIDER" == "ec2" ]; then - echo "using ec2 kitchen provider" - - # Setup the AWS credentials: grab the ED25519 ssh key that is needed to connect to Amazon Linux 2022 instances - # See: https://github.com/test-kitchen/kitchen-ec2/issues/588 - # Note: this issue happens even when allowing RSA keys in the ssh service of the remote host (which was the fix we did for Ubuntu 22.04), - # therefore using the auto-generated SSH key is not possible at all. - - # These should not be printed out - set +x - if [ -z ${KITCHEN_EC2_SSH_KEY_ID+x} ]; then - export KITCHEN_EC2_SSH_KEY_ID="datadog-agent-kitchen" - export KITCHEN_EC2_SSH_KEY_PATH="$(pwd)/aws-ssh-key" - touch $KITCHEN_EC2_SSH_KEY_PATH && chmod 600 $KITCHEN_EC2_SSH_KEY_PATH - $PARENT_DIR/tools/ci/fetch_secret.sh $KITCHEN_AWS ssh_private_key > $KITCHEN_EC2_SSH_KEY_PATH - fi -fi - -# Generate a password to use for the windows servers -if [ -z ${SERVER_PASSWORD+x} ]; then - export SERVER_PASSWORD="$(tr -dc A-Za-z0-9 < /dev/urandom | head -c32)0aZ" -fi - -if [[ $# == 0 ]]; then - echo "Missing run suite argument. Exiting." - exit 1 -fi - -if [[ $# == 1 ]]; then - echo "Missing major version argument. Exiting." - exit 1 -fi - -export MAJOR_VERSION=$2 - -# if the agent version isn't set, grab it -# This is for the windows agent, as it needs to know the exact right version to grab -# on linux it can just download the latest version from the package manager -if [ -z ${AGENT_VERSION+x} ]; then - pushd ../.. - AGENT_VERSION=$(inv agent.version --url-safe --git-sha-length=7 --major-version "$MAJOR_VERSION") - export AGENT_VERSION - DD_AGENT_EXPECTED_VERSION=$(inv agent.version --url-safe --git-sha-length=7 --major-version "$MAJOR_VERSION") - export DD_AGENT_EXPECTED_VERSION - popd -fi - -KITCHEN_IMAGE_SIZE="${KITCHEN_IMAGE_SIZE:-}" - -invoke -e kitchen.genconfig --platform="$KITCHEN_PLATFORM" --osversions="$KITCHEN_OSVERS" --provider="$KITCHEN_PROVIDER" --arch="${KITCHEN_ARCH:-x86_64}" --imagesize="${KITCHEN_IMAGE_SIZE}" --testfiles="$1" ${KITCHEN_FIPS:+--fips} --platformfile=platforms.json - -bundle exec kitchen diagnose --no-instances --loader - -## copy the generated kitchen.yml to the .kitchen directory so it'll be included -## in the artifacts (for debugging when necessary) -cp kitchen.yml ./.kitchen/generated_kitchen.yml - -rm -rf cookbooks -rm -f Berksfile.lock -berks vendor ./cookbooks - -set +o pipefail - -# Initially test every suite, as we only generate those we want to run -test_suites=".*" -# This for loop retries kitchen tests failing because of infrastructure/networking issues -for attempt in $(seq 0 "${KITCHEN_INFRASTRUCTURE_FLAKES_RETRY:-2}"); do - bundle exec kitchen verify "$test_suites" -c -d always 2>&1 | tee "/tmp/runlog${attempt}" - result=${PIPESTATUS[0]} - # Before destroying the kitchen machines, get the list of failed suites, - # as their status will be reset to non-failing once they're destroyed. - # failing_test_suites is a newline-separated list of the failing test suite names. - failing_test_suites=$(bundle exec kitchen list --no-log-overwrite --json | jq -cr "[ .[] | select( .last_error != null ) ] | map( .instance ) | .[]") - - # Then, destroy the kitchen machines - # Do not fail on kitchen destroy, it breaks the infra failures filter - set +e - bundle exec kitchen destroy "$test_suites" --no-log-overwrite - destroy_result=$? - set -e - - # If the destory operation fails, it is not safe to continue running kitchen - # so we just exit with an infrastructure failure message. - if [ "$destroy_result" -ne 0 ]; then - echo "Failure while destroying kitchen infrastructure, skipping retries" - break - fi - - if [ "$result" -eq 0 ]; then - echo "Kitchen test succeeded exiting 0" - exit 0 - else - if ! invoke kitchen.should-rerun-failed "/tmp/runlog${attempt}" ; then - # if kitchen test failed and shouldn't be rerun, exit with 1 - echo "Kitchen tests failed and it should not be an infrastructure problem" - exit 1 - else - cp -R "${DD_AGENT_TESTING_DIR}"/.kitchen/logs "${DD_AGENT_TESTING_DIR}/.kitchen/logs-${attempt}" - # Only keep test suites that have a non-null error code - # Build the result as a regexp: "test_suite1|test_suite2|test_suite3", as kitchen only - # supports one instance name or a regexp as argument. - test_suites=$(echo -n "$failing_test_suites" | tr '\n' '|') - fi - fi -done - - -# if we ran out of attempts because of infrastructure/networking issues, exit with 1 -echo "Ran out of retry attempts" -echo "ERROR: The kitchen tests failed due to infrastructure failures." -exit 1 diff --git a/test/kitchen/tasks/show-strays.sh b/test/kitchen/tasks/show-strays.sh deleted file mode 100755 index f1d2eff4df7a8..0000000000000 --- a/test/kitchen/tasks/show-strays.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/bash - -# This script lists any stray azure vms that remain from an arbitrary pipeline. -# It's meant to be run manually to see if any cleanup is necessary. - -# http://redsymbol.net/articles/unofficial-bash-strict-mode/ -IFS=$'\n\t' -set -euo pipefail - -# These should not be printed out -set +x -if [ -z ${AZURE_CLIENT_ID+x} ]; then - AZURE_CLIENT_ID=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $KITCHEN_AZURE client_id) - export AZURE_CLIENT_ID -fi -if [ -z ${AZURE_CLIENT_SECRET+x} ]; then - AZURE_CLIENT_SECRET=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $KITCHEN_AZURE token) - export AZURE_CLIENT_SECRET -fi -if [ -z ${AZURE_TENANT_ID+x} ]; then - AZURE_TENANT_ID=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $KITCHEN_AZURE tenant_id) - export AZURE_TENANT_ID -fi -if [ -z ${AZURE_SUBSCRIPTION_ID+x} ]; then - AZURE_SUBSCRIPTION_ID=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $KITCHEN_AZURE subscription_id) - export AZURE_SUBSCRIPTION_ID -fi -if [ -z ${DD_PIPELINE_ID+x} ]; then - DD_PIPELINE_ID='none' - export DD_PIPELINE_ID -fi - -if [ -z ${AZURE_SUBSCRIPTION_ID+x} -o -z ${AZURE_TENANT_ID+x} -o -z ${AZURE_CLIENT_SECRET+x} -o -z ${AZURE_CLIENT_ID+x} ]; then - printf "You are missing some of the necessary credentials. Exiting." - exit 1 -fi - -az login --service-principal -u "$AZURE_CLIENT_ID" -p "$AZURE_CLIENT_SECRET" --tenant "$AZURE_TENANT_ID" > /dev/null - -printf "VMs:\n" - -if [ ${SHOW_ALL+x} ]; then - export VM_QUERY="[?tags.dd_agent_testing=='dd_agent_testing']" -else - export VM_QUERY="[?tags.dd_agent_testing=='dd_agent_testing']|[?tags.pipeline_id=='$CI_PIPELINE_ID']" -fi - -if [ ${STRAYS_VERBOSE+x} ]; then - az vm list --query "$VM_QUERY" -else - az vm list --query "$VM_QUERY|[*].{name:name,location:location,state:provisioningState}" -o tsv -fi - -printf "\n" - -printf "Groups:\n" - -if [ ${SHOW_ALL+x} ]; then - export GROUPS_QUERY="[?starts_with(name, 'kitchen-')]" -else - export GROUPS_QUERY="[?starts_with(name, 'kitchen-')]|[?ends_with(name, 'pl"$CI_PIPELINE_ID"')]" -fi -if [ ${STRAYS_VERBOSE+x} ]; then - az group list --query "$GROUPS_QUERY" -else - az group list --query "$GROUPS_QUERY|[*].{name:name,location:location,state:properties.provisioningState}" -o table -fi diff --git a/test/kitchen/tasks/unit-tests/__init__.py b/test/kitchen/tasks/unit-tests/__init__.py deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/test/kitchen/tasks/unit-tests/gotest-failed-runlog b/test/kitchen/tasks/unit-tests/gotest-failed-runlog deleted file mode 100644 index 86ec9aec47ae9..0000000000000 --- a/test/kitchen/tasks/unit-tests/gotest-failed-runlog +++ /dev/null @@ -1,10 +0,0 @@ -I, [2023-06-20T17:11:07.082387 #404] INFO -- win-sysprobe-test-win2012r2-azure-x86-64: PASS -I, [2023-06-20T17:11:07.083578 #404] INFO -- win-sysprobe-test-win2012r2-azure-x86-64: finished system-probe tests for /pkg/network/tracer/testsuite.exe -I, [2023-06-20T17:11:07.084475 #404] INFO -- win-sysprobe-test-win2012r2-azure-x86-64: -I, [2023-06-20T17:11:07.085372 #404] INFO -- win-sysprobe-test-win2012r2-azure-x86-64: -I, [2023-06-20T17:11:07.086272 #404] INFO -- win-sysprobe-test-win2012r2-azure-x86-64: FAILURES: -I, [2023-06-20T17:11:07.087161 #404] INFO -- win-sysprobe-test-win2012r2-azure-x86-64: -I, [2023-06-20T17:11:07.088145 #404] INFO -- win-sysprobe-test-win2012r2-azure-x86-64: system-probe tests for /pkg/network/testsuite.exe successfully runs: -I, [2023-06-20T17:11:07.089081 #404] INFO -- win-sysprobe-test-win2012r2-azure-x86-64: --- FAIL: TestMustFail (0.00s) -I, [2023-06-20T17:11:07.089982 #404] INFO -- win-sysprobe-test-win2012r2-azure-x86-64: -I, [2023-06-20T17:11:07.090900 #404] INFO -- win-sysprobe-test-win2012r2-azure-x86-64: Finished in 29.9 seconds. \ No newline at end of file diff --git a/test/kitchen/tasks/unit-tests/gotest-infra-failed-runlog b/test/kitchen/tasks/unit-tests/gotest-infra-failed-runlog deleted file mode 100644 index 347a21939800c..0000000000000 --- a/test/kitchen/tasks/unit-tests/gotest-infra-failed-runlog +++ /dev/null @@ -1,10 +0,0 @@ -I, [2023-06-20T17:11:07.071887 #404] INFO -- win-sysprobe-test-win2012r2-azure-x86-64: --- PASS: TestTracerSuite/prebuilt/TestUDPSendAndReceive/v4/random_port (0.08s) -I, [2023-06-20T17:11:07.072844 #404] INFO -- win-sysprobe-test-win2012r2-azure-x86-64: --- PASS: TestTracerSuite/prebuilt/TestUDPSendAndReceive/v6 (0.16s) -I, [2023-06-20T17:11:07.073819 #404] INFO -- win-sysprobe-test-win2012r2-azure-x86-64: --- PASS: TestTracerSuite/prebuilt/TestUDPSendAndReceive/v6/fixed_port (0.08s) -I, [2023-06-20T17:11:07.074785 #404] INFO -- win-sysprobe-test-win2012r2-azure-x86-64: --- PASS: TestTracerSuite/prebuilt/TestUDPSendAndReceive/v6/random_port (0.08s) -I, [2023-06-20T17:11:07.075773 #404] INFO -- win-sysprobe-test-win2012r2-azure-x86-64: --- PASS: TestTracerSuite/prebuilt/TestUnconnectedUDPSendIPv4 (0.08s) -I, [2023-06-20T17:11:07.076712 #404] INFO -- win-sysprobe-test-win2012r2-azure-x86-64: === RUN TestSkipConnectionDNS -I, [2023-06-20T17:11:07.077662 #404] INFO -- win-sysprobe-test-win2012r2-azure-x86-64: === RUN TestSkipConnectionDNS/CollectLocalDNS_disabled -I, [2023-06-20T17:11:07.087161 #404] INFO -- win-sysprobe-test-win2012r2-azure-x86-64: -I, [2023-06-20T17:11:07.089982 #404] INFO -- win-sysprobe-test-win2012r2-azure-x86-64: -I, [2023-06-20T17:11:07.090900 #404] INFO -- win-sysprobe-test-win2012r2-azure-x86-64: Finished in 29.9 seconds. \ No newline at end of file diff --git a/test/kitchen/tasks/unit-tests/infra-failed-runlog b/test/kitchen/tasks/unit-tests/infra-failed-runlog deleted file mode 100644 index 1fc8c62cc9826..0000000000000 --- a/test/kitchen/tasks/unit-tests/infra-failed-runlog +++ /dev/null @@ -1,10 +0,0 @@ -I, [2023-06-19T14:41:49.342860 #357] INFO -- chef-win2022-azure-x86-64: Shared Example Group: "Agent behavior" called from ./chef_spec.rb:5 -I, [2023-06-19T14:41:49.343999 #357] INFO -- chef-win2022-azure-x86-64: # ./spec_helper.rb:225:in `block in integration_install' -I, [2023-06-19T14:41:49.345581 #357] INFO -- chef-win2022-azure-x86-64: # ./spec_helper.rb:224:in `tap' -I, [2023-06-19T14:41:49.347113 #357] INFO -- chef-win2022-azure-x86-64: # ./spec_helper.rb:224:in `integration_install' -I, [2023-06-19T14:41:49.348798 #357] INFO -- chef-win2022-azure-x86-64: # ./spec_helper.rb:782:in `block (2 levels) in ' -I, [2023-06-19T14:41:49.350390 #357] INFO -- chef-win2022-azure-x86-64: # C:/Users/datadog/AppData/Local/Temp/verifier/gems/gems/busser-rspec_datadog-0.8.5/lib/busser/rspec_datadog/runner.rb:23:in `

' -I, [2023-06-19T14:41:49.351817 #357] INFO -- chef-win2022-azure-x86-64: -I, [2023-06-19T14:41:49.353374 #357] INFO -- chef-win2022-azure-x86-64: Finished in 6 minutes 2 seconds (files took 0.45318 seconds to load) -I, [2023-06-19T14:41:49.354914 #357] INFO -- chef-win2022-azure-x86-64: 33 examples, 0 failures, 3 pending -I, [2023-06-19T14:41:49.356773 #357] INFO -- chef-win2022-azure-x86-64: \ No newline at end of file diff --git a/test/kitchen/tasks/unit-tests/kitchen_unit_tests.py b/test/kitchen/tasks/unit-tests/kitchen_unit_tests.py deleted file mode 100644 index 822a27a652ff4..0000000000000 --- a/test/kitchen/tasks/unit-tests/kitchen_unit_tests.py +++ /dev/null @@ -1,35 +0,0 @@ -import unittest - -from invoke import Exit, MockContext - -from ..kitchen import should_rerun_failed - - -class TestKitchenInvokeMethod(unittest.TestCase): - def test_no_rerun_gotest(self): - mock_context = MockContext() - with self.assertRaises(Exit): - should_rerun_failed(mock_context, "tasks/unit-tests/gotest-failed-runlog") - - def test_rerun_gotest(self): - mock_context = MockContext() - try: - should_rerun_failed(mock_context, "tasks/unit-tests/gotest-infra-failed-runlog") - except Exit: - self.fail("should_rerun_failed returned non-zero exit code") - - def test_no_rerun_rspec(self): - mock_context = MockContext() - with self.assertRaises(Exit): - should_rerun_failed(mock_context, "tasks/unit-tests/test-failed-runlog") - - def test_rerun_rspec(self): - mock_context = MockContext() - try: - should_rerun_failed(mock_context, "tasks/unit-tests/infra-failed-runlog") - except Exit: - self.fail("should_rerun_failed returned non-zero exit code") - - -if __name__ == '__main__': - unittest.main() diff --git a/test/kitchen/tasks/unit-tests/test-failed-runlog b/test/kitchen/tasks/unit-tests/test-failed-runlog deleted file mode 100644 index e98d0de145fc0..0000000000000 --- a/test/kitchen/tasks/unit-tests/test-failed-runlog +++ /dev/null @@ -1,10 +0,0 @@ -I, [2023-06-19T14:41:49.342860 #357] INFO -- chef-win2022-azure-x86-64: Shared Example Group: "Agent behavior" called from ./chef_spec.rb:5 -I, [2023-06-19T14:41:49.343999 #357] INFO -- chef-win2022-azure-x86-64: # ./spec_helper.rb:225:in `block in integration_install' -I, [2023-06-19T14:41:49.345581 #357] INFO -- chef-win2022-azure-x86-64: # ./spec_helper.rb:224:in `tap' -I, [2023-06-19T14:41:49.347113 #357] INFO -- chef-win2022-azure-x86-64: # ./spec_helper.rb:224:in `integration_install' -I, [2023-06-19T14:41:49.348798 #357] INFO -- chef-win2022-azure-x86-64: # ./spec_helper.rb:782:in `block (2 levels) in ' -I, [2023-06-19T14:41:49.350390 #357] INFO -- chef-win2022-azure-x86-64: # C:/Users/datadog/AppData/Local/Temp/verifier/gems/gems/busser-rspec_datadog-0.8.5/lib/busser/rspec_datadog/runner.rb:23:in `
' -I, [2023-06-19T14:41:49.351817 #357] INFO -- chef-win2022-azure-x86-64: -I, [2023-06-19T14:41:49.353374 #357] INFO -- chef-win2022-azure-x86-64: Finished in 6 minutes 2 seconds (files took 0.45318 seconds to load) -I, [2023-06-19T14:41:49.354914 #357] INFO -- chef-win2022-azure-x86-64: 33 examples, 2 failures, 3 pending -I, [2023-06-19T14:41:49.356773 #357] INFO -- chef-win2022-azure-x86-64: diff --git a/test/kitchen/test-definitions/chef-test.yml b/test/kitchen/test-definitions/chef-test.yml deleted file mode 100644 index c1df5b346e1ec..0000000000000 --- a/test/kitchen/test-definitions/chef-test.yml +++ /dev/null @@ -1,28 +0,0 @@ -suites: - -# Install the latest release candidate using Chef -- name: chef - run_list: - - "recipe[dd-agent-disable-system-repos]" - - "recipe[dd-agent-sles-workaround]" - - "recipe[dd-agent-system-files-check::list-files-before-install]" - - "recipe[dd-agent-install]" - attributes: - apt: - unattended_upgrades: - enable: false - datadog: - <% dd_agent_config.each do |key, value| %> - <%= key %>: "<%= value %>" - <% end %> - dd-agent-install: - agent_major_version: <%= agent_major_version %> - <% if ENV['AGENT_VERSION'] %> - windows_version: "<%= ENV['AGENT_VERSION'] %>" - <% end %> - <% if ENV['WINDOWS_AGENT_FILE'] %> - windows_agent_filename: "<%= ENV['WINDOWS_AGENT_FILE'] %>" - <% end %> - windows_agent_url: <%= windows_agent_url %> - dd-agent-rspec: - skip_windows_signing_test: &skip_windows_signing_test <%= ENV['SKIP_SIGNATURE_TEST'] || false %> diff --git a/test/kitchen/test-definitions/platforms-common.yml b/test/kitchen/test-definitions/platforms-common.yml deleted file mode 100644 index 3272ba99a70c6..0000000000000 --- a/test/kitchen/test-definitions/platforms-common.yml +++ /dev/null @@ -1,30 +0,0 @@ -<% -def kitchen_arch_to_repo_arch(arch) - case arch - when 'arm64' - "aarch64" - else - arch - end -end - api_key = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" - application_key = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" - url = "https://app.datad0g.com" - aptrepo = "[signed-by=/usr/share/keyrings/datadog-archive-keyring.gpg] http://apttesting.datad0g.com/" - aptrepo_dist = "pipeline-#{ENV['DD_PIPELINE_ID']}-#{ENV['KITCHEN_ARCH']}" - yumrepo = "http://yumtesting.datad0g.com/testing/pipeline-#{ENV['DD_PIPELINE_ID']}/#{ENV['MAJOR_VERSION']}/#{kitchen_arch_to_repo_arch(ENV['KITCHEN_ARCH'])}/" - yumrepo_suse = "http://yumtesting.datad0g.com/suse/testing/pipeline-#{ENV['DD_PIPELINE_ID']}/#{ENV['MAJOR_VERSION']}/#{kitchen_arch_to_repo_arch(ENV['KITCHEN_ARCH'])}/" - agent_major_version = "#{ENV['MAJOR_VERSION']}" - windows_agent_url = ENV['WINDOWS_AGENT_URL'] ? ENV['WINDOWS_AGENT_URL'] : "https://#{ENV['WIN_S3_BUCKET']}.s3.amazonaws.com/#{ENV['WINDOWS_TESTING_S3_BUCKET']}" - dd_agent_config = { - 'agent_major_version': agent_major_version, - 'api_key': api_key, - 'application_key': application_key, - 'url': url, - 'aptrepo': aptrepo, - 'aptrepo_dist': aptrepo_dist, - 'yumrepo': yumrepo, - 'yumrepo_suse': yumrepo_suse, - 'windows_agent_url': windows_agent_url - } -%> diff --git a/test/kitchen/test-definitions/security-agent-stress.yml b/test/kitchen/test-definitions/security-agent-stress.yml deleted file mode 100644 index a4774731e45ec..0000000000000 --- a/test/kitchen/test-definitions/security-agent-stress.yml +++ /dev/null @@ -1,13 +0,0 @@ -suites: - -# Deploys and run the stress tests -- name: security-agent-stress - run_list: - - "recipe[dd-agent-rhel-workaround]" - - "recipe[dd-agent-sles-workaround]" - - "recipe[dd-security-agent-check]" - - "recipe[dd-security-agent-check::stress-tests]" - attributes: - apt: - unattended_upgrades: - enable: false diff --git a/test/kitchen/test-definitions/security-agent-test.yml b/test/kitchen/test-definitions/security-agent-test.yml deleted file mode 100644 index bd09658974ac4..0000000000000 --- a/test/kitchen/test-definitions/security-agent-test.yml +++ /dev/null @@ -1,13 +0,0 @@ -suites: - -# Deploys and run the functional tests -- name: security-agent-test - run_list: - - "recipe[dd-agent-rhel-workaround]" - - "recipe[dd-agent-sles-workaround]" - - "recipe[dd-security-agent-check]" - - "recipe[dd-security-agent-check::functional-tests]" - attributes: - apt: - unattended_upgrades: - enable: false diff --git a/test/kitchen/test-definitions/upgrade5-test.yml b/test/kitchen/test-definitions/upgrade5-test.yml deleted file mode 100644 index 345a892ae5dc6..0000000000000 --- a/test/kitchen/test-definitions/upgrade5-test.yml +++ /dev/null @@ -1,40 +0,0 @@ -suites: - -# Installs the latest release Agent 5, then updates it to the latest release -# candidate -- name: upgrade-agent5 - excludes: <% if (sles15_platforms.nil? || sles15_platforms.empty?) %>[]<% end %> # Agent 5 package doesn't work on SLES 15 - <% sles15_platforms.each do |p| %> - - <%= p %> - <% end %> - run_list: - - "recipe[dd-agent-disable-system-repos]" - - "recipe[dd-agent-rhel-workaround]" - - "recipe[dd-agent-sles-workaround]" - - "recipe[dd-agent-5]" # Setup agent 5 - - "recipe[dd-agent-upgrade]" # Upgrade to Agent 6 - - "recipe[dd-agent-import-conf]" # Import the configuration from 5 to 6 - attributes: - apt: - unattended_upgrades: - enable: false - dd-agent-5: - api_key: <%= api_key %> - dd-agent-upgrade: - add_new_repo: true - <% dd_agent_config.each do |key, value| %> - <%= key %>: "<%= value %>" - <% end %> - <% if ENV['AGENT_VERSION'] %> - windows_version: "<%= ENV['AGENT_VERSION'] %>" - <% end %> - <% if ENV['WINDOWS_AGENT_FILE'] %> - windows_agent_filename: "<%= ENV['WINDOWS_AGENT_FILE'] %>" - <% end %> - dd-agent-import-conf: - api_key: <%= api_key %> - dd-agent-upgrade-rspec: - # Used by the rspec test to know the version to which the agent should be upgraded - agent_expected_version: &agent_expected_version <%= ENV['DD_AGENT_EXPECTED_VERSION'] || "5.99.0" %> - dd-agent-rspec: - skip_windows_signing_test: &skip_windows_signing_test <%= ENV['SKIP_SIGNATURE_TEST'] || false %> diff --git a/test/kitchen/test-definitions/upgrade6-test.yml b/test/kitchen/test-definitions/upgrade6-test.yml deleted file mode 100644 index 166c7df74e270..0000000000000 --- a/test/kitchen/test-definitions/upgrade6-test.yml +++ /dev/null @@ -1,41 +0,0 @@ -suites: - -# Installs the latest release Agent 6, then updates it to the latest release -# candidate -- name: upgrade-agent6 - run_list: - <% if ENV['FIPS'] == 'true' %> - - "recipe[dd-agent-enable-fips::enable]" - - "recipe[dd-agent-enable-fips::ensure]" - <% end %> - - "recipe[dd-agent-disable-system-repos]" - - "recipe[dd-agent-rhel-workaround]" - - "recipe[dd-agent-sles-workaround]" - - "recipe[dd-agent-install]" - - "recipe[dd-agent-upgrade]" - attributes: - apt: - unattended_upgrades: - enable: false - datadog: - agent_major_version: 6 - agent_version: <%= ENV['LAST_STABLE_VERSION'] %> - api_key: <%= api_key %> - dd-agent-upgrade: - add_new_repo: true - <% dd_agent_config.each do |key, value| %> - <%= key %>: "<%= value %>" - <% end %> - <% if ENV['AGENT_VERSION'] %> - windows_version: "<%= ENV['AGENT_VERSION'] %>" - <% end %> - <% if ENV['WINDOWS_AGENT_FILE'] %> - windows_agent_filename: "<%= ENV['WINDOWS_AGENT_FILE'] %>" - <% end %> - dd-agent-import-conf: - api_key: <%= api_key %> - dd-agent-upgrade-rspec: - # Used by the rspec test to know the version to which the agent should be upgraded - agent_expected_version: &agent_expected_version <%= ENV['DD_AGENT_EXPECTED_VERSION'] || "5.99.0" %> - dd-agent-rspec: - skip_windows_signing_test: &skip_windows_signing_test <%= ENV['SKIP_SIGNATURE_TEST'] || false %> diff --git a/test/kitchen/test-definitions/upgrade7-test.yml b/test/kitchen/test-definitions/upgrade7-test.yml deleted file mode 100644 index 0a5f6a7e75bf3..0000000000000 --- a/test/kitchen/test-definitions/upgrade7-test.yml +++ /dev/null @@ -1,47 +0,0 @@ -suites: - -# Installs the latest release Agent 7, then updates it to the latest release -# candidate -- name: upgrade-agent7 - run_list: - <% if ENV['FIPS'] == 'true' %> - - "recipe[dd-agent-enable-fips::enable]" - - "recipe[dd-agent-enable-fips::ensure]" - <% end %> - - "recipe[dd-agent-disable-system-repos]" - - "recipe[dd-agent-rhel-workaround]" - - "recipe[dd-agent-sles-workaround]" - - "recipe[dd-agent-install]" - - "recipe[dd-agent-upgrade]" - attributes: - apt: - unattended_upgrades: - enable: false - datadog: - agent_major_version: 7 - agent_version: <%= ENV['LAST_STABLE_VERSION'] %> - api_key: <%= api_key %> - <% if ENV['AGENT_FLAVOR'] == 'datadog-iot-agent' %> - agent_flavor: 'datadog-iot-agent' - <% end %> - dd-agent-upgrade: - add_new_repo: true - <% if ENV['AGENT_FLAVOR'] == 'datadog-iot-agent' %> - package_name: 'datadog-iot-agent' - <% end %> - <% dd_agent_config.each do |key, value| %> - <%= key %>: "<%= value %>" - <% end %> - <% if ENV['AGENT_VERSION'] %> - windows_version: "<%= ENV['AGENT_VERSION'] %>" - <% end %> - <% if ENV['WINDOWS_AGENT_FILE'] %> - windows_agent_filename: "<%= ENV['WINDOWS_AGENT_FILE'] %>" - <% end %> - dd-agent-import-conf: - api_key: <%= api_key %> - dd-agent-upgrade-rspec: - # Used by the rspec test to know the version to which the agent should be upgraded - agent_expected_version: &agent_expected_version <%= ENV['DD_AGENT_EXPECTED_VERSION'] || "5.99.0" %> - dd-agent-rspec: - skip_windows_signing_test: &skip_windows_signing_test <%= ENV['SKIP_SIGNATURE_TEST'] || false %> diff --git a/test/kitchen/test-definitions/windows-cwsinstall.yml b/test/kitchen/test-definitions/windows-cwsinstall.yml deleted file mode 100644 index f2baf33d3737a..0000000000000 --- a/test/kitchen/test-definitions/windows-cwsinstall.yml +++ /dev/null @@ -1,30 +0,0 @@ -suites: - -- name: win-agent-with-cws-option - run_list: - - "recipe[dd-agent-install]" - attributes: - datadog: - agent_major_version: 7 - api_key: <%= api_key %> - <% if ENV['AGENT_FLAVOR'] == 'datadog-iot-agent' %> - agent_flavor: 'datadog-iot-agent' - <% end %> - enable_process_agent: true - dd-agent-install: - agent_major_version: 7 - agent6: true - windows_agent_url: <%= windows_agent_url %> - <% if ENV['AGENT_VERSION'] %> - windows_version: "<%= ENV['AGENT_VERSION'] %>" - <% end %> - <% if ENV['WINDOWS_AGENT_FILE'] %> - windows_agent_filename: "<%= ENV['WINDOWS_AGENT_FILE'] %>" - <% end %> - agent_install_options: > - NPM=true - enable_testsigning: <%= ENV['WINDOWS_DDPROCMON_DRIVER'] == "testsigned" %> - - dd-agent-rspec: - agent_flavor: <%= ENV['AGENT_FLAVOR'] || "datadog-agent" %> - skip_windows_signing_test: &skip_windows_signing_test <%= ENV['SKIP_SIGNATURE_TEST'] || false %> diff --git a/test/kitchen/test-definitions/windows-install-test.yml b/test/kitchen/test-definitions/windows-install-test.yml deleted file mode 100644 index b149a60ab7459..0000000000000 --- a/test/kitchen/test-definitions/windows-install-test.yml +++ /dev/null @@ -1,24 +0,0 @@ -suites: - - name: win-user - run_list: - - "recipe[dd-agent-install::_install_windows_base]" - attributes: - datadog: - <% dd_agent_config.each do |key, value| %> - <%= key %>: "<%= value %>" - <% end %> - dd-agent-install: - <% if ENV['AGENT_VERSION'] %> - windows_version: "<%= ENV['AGENT_VERSION'] %>" - <% end %> - windows_agent_url: <%= windows_agent_url %> - <% if ENV['WINDOWS_AGENT_FILE'] %> - windows_agent_filename: "<%= ENV['WINDOWS_AGENT_FILE'] %>" - <% end %> - agent_install_options: > - APIKEY=<%= api_key %> - LOGS_ENABLED=false - PROCESS_ENABLED=true - APM_ENABLED=true - dd-agent-rspec: - skip_windows_signing_test: &skip_windows_signing_test <%= ENV['SKIP_SIGNATURE_TEST'] || false %> diff --git a/test/kitchen/test-definitions/windows-npm-test.md b/test/kitchen/test-definitions/windows-npm-test.md deleted file mode 100644 index c42bd916ceada..0000000000000 --- a/test/kitchen/test-definitions/windows-npm-test.md +++ /dev/null @@ -1,54 +0,0 @@ -# Windows NPM Test definitions - -## Test matrix - -The tests in this test file attempt to test all of the install/upgrade scenarios for installing the Windows agent with various install options. Starting in 7.45, the installation option changed from a Windows feature (NPM) to a more general "allow closed source". - -For these tests, then, installing/upgrading from an "old" version means <= 7.43. -Installing/upgrading from a "previous" version means > 7.43, but less than current version. (this is different for testing reacting -to the way the new state is recorded). -The "current" version is the version in test. - - -Install scenarios expected -1. Install old version with no NPM flag, install new version - - expect driver installed, system probe to enable & start -2. Install old version with no NPM flag, install new version - - expect driver installed, disabled -3. Install old version with NPM flag, install new version - - expect install to detect NPM previously installed, results in system probe enabling/starting driver -4. Install new version with NPM disabled - - expect driver installed, disabled -5. Install new version with NPM enabled - - expect driver installed, system probe to enable & start -7. Install version with no flag, reinstall same version with ADDLOCAL=ALL - - expect previous setting to be maintained (driver installed, system probe starts it) -8. Install version with ADDLOCAL=ALL - - (driver installed, system probe starts it) -9. Install version with ADDLOCAL=NPM - -## win-npm-upgrade-to-npm -Scenario 1 - -## win-npm-upgrade-no-npm -Scenario 2 - -## win-npm-upgrade-to-npm-no-csflag -Scenario 3 - -## win-npm-no-npm-option -Scenario 4 - -## win-npm-with-cs-option -Scenario 5 - -## Scenario 6 not currently enabled - -## win-npm-reinstall-option -Scenario 7 - -## win-npm-with-addlocal-all -Scenario 8 - -## win-npm-with-addlocal-npm -Scenario 9 diff --git a/test/kitchen/test-definitions/windows-npm-test.yml b/test/kitchen/test-definitions/windows-npm-test.yml deleted file mode 100644 index e724110bdd54c..0000000000000 --- a/test/kitchen/test-definitions/windows-npm-test.yml +++ /dev/null @@ -1,322 +0,0 @@ -suites: - -# Scenario 1 -# Install old version with no NPM flag, install new version -# - expect driver installed, enable NPM, expect system probe to enable & start -- name: win-npm-upgrade-to-npm - run_list: - - "recipe[dd-agent-install]" - - "recipe[dd-agent-upgrade]" - attributes: - datadog: - agent_major_version: 7 - agent_version: 7.42.0 - api_key: <%= api_key %> - <% if ENV['AGENT_FLAVOR'] == 'datadog-iot-agent' %> - agent_flavor: 'datadog-iot-agent' - <% end %> - dd-agent-install: - agent_major_version: 7 - enable_testsigning: <%= ENV['WINDOWS_DDNPM_DRIVER'] == "testsigned" %> - agent_version: 7.42.0 - dd-agent-upgrade: - add_new_repo: true - <% if ENV['AGENT_FLAVOR'] == 'datadog-iot-agent' %> - package_name: 'datadog-iot-agent' - <% end %> - <% dd_agent_config.each do |key, value| %> - <%= key %>: "<%= value %>" - <% end %> - <% if ENV['AGENT_VERSION'] %> - windows_version: "<%= ENV['AGENT_VERSION'] %>" - <% end %> - <% if ENV['WINDOWS_AGENT_FILE'] %> - windows_agent_filename: "<%= ENV['WINDOWS_AGENT_FILE'] %>" - <% end %> - dd-agent-import-conf: - api_key: <%= api_key %> - dd-agent-upgrade-rspec: - # Used by the rspec test to know the version to which the agent should be upgraded - agent_expected_version: &agent_expected_version <%= ENV['DD_AGENT_EXPECTED_VERSION'] || "5.99.0" %> - dd-agent-rspec: - skip_windows_signing_test: &skip_windows_signing_test <%= ENV['SKIP_SIGNATURE_TEST'] || false %> - - - - -# Scenario 2 -# Install old version with no NPM flag, install new version -# - expect driver installed, does not enable NPM, expect NPM installed but not running -- name: win-npm-upgrade-no-npm - run_list: - - "recipe[dd-agent-install]" - - "recipe[dd-agent-upgrade]" - attributes: - datadog: - agent_major_version: 7 - agent_version: 7.42.0 - api_key: <%= api_key %> - <% if ENV['AGENT_FLAVOR'] == 'datadog-iot-agent' %> - agent_flavor: 'datadog-iot-agent' - <% end %> - dd-agent-install: - agent_major_version: 7 - enable_testsigning: <%= ENV['WINDOWS_DDNPM_DRIVER'] == "testsigned" %> - dd-agent-upgrade: - add_new_repo: true - <% if ENV['AGENT_FLAVOR'] == 'datadog-iot-agent' %> - package_name: 'datadog-iot-agent' - <% end %> - <% dd_agent_config.each do |key, value| %> - <%= key %>: "<%= value %>" - <% end %> - <% if ENV['AGENT_VERSION'] %> - windows_version: "<%= ENV['AGENT_VERSION'] %>" - <% end %> - <% if ENV['WINDOWS_AGENT_FILE'] %> - windows_agent_filename: "<%= ENV['WINDOWS_AGENT_FILE'] %>" - <% end %> - dd-agent-import-conf: - api_key: <%= api_key %> - dd-agent-upgrade-rspec: - # Used by the rspec test to know the version to which the agent should be upgraded - agent_expected_version: &agent_expected_version <%= ENV['DD_AGENT_EXPECTED_VERSION'] || "5.99.0" %> - dd-agent-rspec: - skip_windows_signing_test: &skip_windows_signing_test <%= ENV['SKIP_SIGNATURE_TEST'] || false %> - - -# Scenario 3 -# Install old version with NPM flag, install new version -# - expect driver installed, enable NPM, expect system probe to enable & start -- name: win-npm-upgrade-to-npm-no-csflag - run_list: - - "recipe[dd-agent-install]" - - "recipe[dd-agent-upgrade]" - attributes: - datadog: - agent_major_version: 7 - agent_version: 7.42.0 - api_key: <%= api_key %> - <% if ENV['AGENT_FLAVOR'] == 'datadog-iot-agent' %> - agent_flavor: 'datadog-iot-agent' - <% end %> - dd-agent-install: - agent_major_version: 7 - enable_testsigning: <%= ENV['WINDOWS_DDNPM_DRIVER'] == "testsigned" %> - agent_version: 7.42.0 - agent_install_options: > - ADDLOCAL=NPM - dd-agent-upgrade: - add_new_repo: true - <% if ENV['AGENT_FLAVOR'] == 'datadog-iot-agent' %> - package_name: 'datadog-iot-agent' - <% end %> - <% dd_agent_config.each do |key, value| %> - <%= key %>: "<%= value %>" - <% end %> - <% if ENV['AGENT_VERSION'] %> - windows_version: "<%= ENV['AGENT_VERSION'] %>" - <% end %> - <% if ENV['WINDOWS_AGENT_FILE'] %> - windows_agent_filename: "<%= ENV['WINDOWS_AGENT_FILE'] %>" - <% end %> - dd-agent-import-conf: - api_key: <%= api_key %> - dd-agent-upgrade-rspec: - # Used by the rspec test to know the version to which the agent should be upgraded - agent_expected_version: &agent_expected_version <%= ENV['DD_AGENT_EXPECTED_VERSION'] || "5.99.0" %> - dd-agent-rspec: - skip_windows_signing_test: &skip_windows_signing_test <%= ENV['SKIP_SIGNATURE_TEST'] || false %> - - -# Scenario 4 -# Install latest -# - expect driver installed, does not enable NPM, expect NPM installed but not running -- name: win-npm-no-npm-option - run_list: - - "recipe[dd-agent-install]" - attributes: - datadog: - agent_major_version: 7 - api_key: <%= api_key %> - <% if ENV['AGENT_FLAVOR'] == 'datadog-iot-agent' %> - agent_flavor: 'datadog-iot-agent' - <% end %> - dd-agent-install: - agent_major_version: 7 - windows_agent_url: <%= windows_agent_url %> - <% if ENV['AGENT_VERSION'] %> - windows_version: "<%= ENV['AGENT_VERSION'] %>" - <% end %> - <% if ENV['WINDOWS_AGENT_FILE'] %> - windows_agent_filename: "<%= ENV['WINDOWS_AGENT_FILE'] %>" - <% end %> - enable_testsigning: <%= ENV['WINDOWS_DDNPM_DRIVER'] == "testsigned" %> - dd-agent-rspec: - agent_flavor: <%= ENV['AGENT_FLAVOR'] || "datadog-agent" %> - skip_windows_signing_test: &skip_windows_signing_test <%= ENV['SKIP_SIGNATURE_TEST'] || false %> - -# Scenario 5 -# Install latest -# - expect driver installed, enable NPM, expect system probe to enable & start -- name: win-npm-with-cs-option - run_list: - - "recipe[dd-agent-install]" - attributes: - datadog: - agent_major_version: 7 - api_key: <%= api_key %> - <% if ENV['AGENT_FLAVOR'] == 'datadog-iot-agent' %> - agent_flavor: 'datadog-iot-agent' - <% end %> - dd-agent-install: - agent_major_version: 7 - windows_agent_url: <%= windows_agent_url %> - <% if ENV['AGENT_VERSION'] %> - windows_version: "<%= ENV['AGENT_VERSION'] %>" - <% end %> - <% if ENV['WINDOWS_AGENT_FILE'] %> - windows_agent_filename: "<%= ENV['WINDOWS_AGENT_FILE'] %>" - <% end %> - enable_testsigning: <%= ENV['WINDOWS_DDNPM_DRIVER'] == "testsigned" %> - dd-agent-rspec: - agent_flavor: <%= ENV['AGENT_FLAVOR'] || "datadog-agent" %> - skip_windows_signing_test: &skip_windows_signing_test <%= ENV['SKIP_SIGNATURE_TEST'] || false %> - -# Scenario 7 -# Install latest, reinstall latest with ADDLOCAL=ALL to test old option compat -# - expect driver installed, enable NPM, expect system probe to enable & start -- name: win-npm-reinstall-option - run_list: - - "recipe[dd-agent-install]" - - "recipe[dd-agent-reinstall]" - attributes: - datadog: - agent_major_version: 7 - api_key: <%= api_key %> - <% if ENV['AGENT_FLAVOR'] == 'datadog-iot-agent' %> - agent_flavor: 'datadog-iot-agent' - <% end %> - dd-agent-install: - agent_major_version: 7 - windows_agent_url: <%= windows_agent_url %> - <% if ENV['AGENT_VERSION'] %> - windows_version: "<%= ENV['AGENT_VERSION'] %>" - <% end %> - <% if ENV['WINDOWS_AGENT_FILE'] %> - windows_agent_filename: "<%= ENV['WINDOWS_AGENT_FILE'] %>" - <% end %> - enable_testsigning: <%= ENV['WINDOWS_DDNPM_DRIVER'] == "testsigned" %> - dd-agent-reinstall: - windows_agent_url: <%= windows_agent_url %> - <% if ENV['AGENT_VERSION'] %> - windows_version: "<%= ENV['AGENT_VERSION'] %>" - <% end %> - <% if ENV['WINDOWS_AGENT_FILE'] %> - windows_agent_filename: "<%= ENV['WINDOWS_AGENT_FILE'] %>" - <% end %> - agent_install_options: > - ADDLOCAL=ALL - dd-agent-rspec: - agent_flavor: <%= ENV['AGENT_FLAVOR'] || "datadog-agent" %> - skip_windows_signing_test: &skip_windows_signing_test <%= ENV['SKIP_SIGNATURE_TEST'] || false %> - -# Scenario 8 -# Install latest with ADDLOCAL=ALL to test old option compat -# - expect driver installed, enable NPM, expect system probe to enable & start -- name: win-npm-with-addlocal-all - run_list: - - "recipe[dd-agent-install]" - attributes: - datadog: - agent_major_version: 7 - api_key: <%= api_key %> - <% if ENV['AGENT_FLAVOR'] == 'datadog-iot-agent' %> - agent_flavor: 'datadog-iot-agent' - <% end %> - dd-agent-install: - agent_major_version: 7 - windows_agent_url: <%= windows_agent_url %> - <% if ENV['AGENT_VERSION'] %> - windows_version: "<%= ENV['AGENT_VERSION'] %>" - <% end %> - <% if ENV['WINDOWS_AGENT_FILE'] %> - windows_agent_filename: "<%= ENV['WINDOWS_AGENT_FILE'] %>" - <% end %> - agent_install_options: > - ADDLOCAL=ALL - enable_testsigning: <%= ENV['WINDOWS_DDNPM_DRIVER'] == "testsigned" %> - dd-agent-rspec: - agent_flavor: <%= ENV['AGENT_FLAVOR'] || "datadog-agent" %> - skip_windows_signing_test: &skip_windows_signing_test <%= ENV['SKIP_SIGNATURE_TEST'] || false %> - - -# Scenario 9 -# Install latest with ADDLOCAL=NPM to test old option compat -# - expect driver installed, enable NPM, expect system probe to enable & start -- name: win-npm-with-addlocal-npm - run_list: - - "recipe[dd-agent-install]" - attributes: - datadog: - agent_major_version: 7 - api_key: <%= api_key %> - <% if ENV['AGENT_FLAVOR'] == 'datadog-iot-agent' %> - agent_flavor: 'datadog-iot-agent' - <% end %> - dd-agent-install: - agent_major_version: 7 - windows_agent_url: <%= windows_agent_url %> - <% if ENV['AGENT_VERSION'] %> - windows_version: "<%= ENV['AGENT_VERSION'] %>" - <% end %> - <% if ENV['WINDOWS_AGENT_FILE'] %> - windows_agent_filename: "<%= ENV['WINDOWS_AGENT_FILE'] %>" - <% end %> - agent_install_options: > - ADDLOCAL=NPM - enable_testsigning: <%= ENV['WINDOWS_DDNPM_DRIVER'] == "testsigned" %> - dd-agent-rspec: - agent_flavor: <%= ENV['AGENT_FLAVOR'] || "datadog-agent" %> - skip_windows_signing_test: &skip_windows_signing_test <%= ENV['SKIP_SIGNATURE_TEST'] || false %> - -# Scenario 10 -# Install original NPM beta version, upgrade to latest -# - expect driver installed, enable NPM, expect system probe to enable & start -- name: win-npm-beta-upgrade - run_list: - - "recipe[dd-agent-install]" - - "recipe[dd-agent-upgrade]" - attributes: - datadog: - agent_major_version: 7 - api_key: <%= api_key %> - <% if ENV['AGENT_FLAVOR'] == 'datadog-iot-agent' %> - agent_flavor: 'datadog-iot-agent' - <% end %> - dd-agent-install: - agent_major_version: 7 - windows_agent_url: https://ddagent-windows-unstable.s3.amazonaws.com/ - windows_agent_filename: datadog-agent-7.23.2-beta1-1-x86_64 - enable_testsigning: <%= ENV['WINDOWS_DDNPM_DRIVER'] == "testsigned" %> - dd-agent-upgrade: - add_new_repo: true - <% if ENV['AGENT_FLAVOR'] == 'datadog-iot-agent' %> - package_name: 'datadog-iot-agent' - <% end %> - <% dd_agent_config.each do |key, value| %> - <%= key %>: "<%= value %>" - <% end %> - <% if ENV['AGENT_VERSION'] %> - windows_version: "<%= ENV['AGENT_VERSION'] %>" - <% end %> - <% if ENV['WINDOWS_AGENT_FILE'] %> - windows_agent_filename: "<%= ENV['WINDOWS_AGENT_FILE'] %>" - <% end %> - dd-agent-import-conf: - api_key: <%= api_key %> - dd-agent-upgrade-rspec: - # Used by the rspec test to know the version to which the agent should be upgraded - agent_expected_version: &agent_expected_version <%= ENV['DD_AGENT_EXPECTED_VERSION'] || "5.99.0" %> - dd-agent-rspec: - skip_windows_signing_test: &skip_windows_signing_test <%= ENV['SKIP_SIGNATURE_TEST'] || false %> diff --git a/test/kitchen/test-definitions/windows-npmdriver.yml b/test/kitchen/test-definitions/windows-npmdriver.yml deleted file mode 100644 index 5910f15a8f45a..0000000000000 --- a/test/kitchen/test-definitions/windows-npmdriver.yml +++ /dev/null @@ -1,29 +0,0 @@ -suites: - -- name: win-npm-with-npm-option - run_list: - - "recipe[dd-agent-install]" - attributes: - datadog: - agent_major_version: 7 - api_key: <%= api_key %> - <% if ENV['AGENT_FLAVOR'] == 'datadog-iot-agent' %> - agent_flavor: 'datadog-iot-agent' - <% end %> - enable_process_agent: true - dd-agent-install: - agent_major_version: 7 - agent6: true - windows_agent_url: <%= windows_agent_url %> - <% if ENV['AGENT_VERSION'] %> - windows_version: "<%= ENV['AGENT_VERSION'] %>" - <% end %> - <% if ENV['WINDOWS_AGENT_FILE'] %> - windows_agent_filename: "<%= ENV['WINDOWS_AGENT_FILE'] %>" - <% end %> - agent_install_options: > - NPM=true - enable_testsigning: <%= ENV['WINDOWS_DDNPM_DRIVER'] == "testsigned" %> - dd-agent-rspec: - agent_flavor: <%= ENV['AGENT_FLAVOR'] || "datadog-agent" %> - skip_windows_signing_test: &skip_windows_signing_test <%= ENV['SKIP_SIGNATURE_TEST'] || false %> diff --git a/test/kitchen/test-definitions/windows-secagent-test.yml b/test/kitchen/test-definitions/windows-secagent-test.yml deleted file mode 100644 index 04e78f2f102c1..0000000000000 --- a/test/kitchen/test-definitions/windows-secagent-test.yml +++ /dev/null @@ -1,10 +0,0 @@ -suites: - -- name: win-secagent-test - run_list: - - "recipe[dd-security-agent-check]" - attributes: - dd-agent-rspec: - driver_path: <%= ENV['WINDOWS_DDPROCMON_DRIVER'] %> - driver_ver: <%= ENV['WINDOWS_DDPROCMON_VERSION'] %> - driver_msmsha: <%= ENV['WINDOWS_DDPROCMON_SHASUM'] %> diff --git a/test/kitchen/test-definitions/windows-sysprobe-test.yml b/test/kitchen/test-definitions/windows-sysprobe-test.yml deleted file mode 100644 index e1458e24d8c36..0000000000000 --- a/test/kitchen/test-definitions/windows-sysprobe-test.yml +++ /dev/null @@ -1,10 +0,0 @@ -suites: - -- name: win-sysprobe-test - run_list: - - "recipe[dd-system-probe-check]" - attributes: - dd-agent-rspec: - driver_path: <%= ENV['WINDOWS_DDNPM_DRIVER'] %> - driver_ver: <%= ENV['WINDOWS_DDNPM_VERSION'] %> - driver_msmsha: <%= ENV['WINDOWS_DDNPM_SHASUM'] %> diff --git a/test/kitchen/test/integration/chef/rspec_datadog/Gemfile b/test/kitchen/test/integration/chef/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/chef/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/chef/rspec_datadog/chef_spec.rb b/test/kitchen/test/integration/chef/rspec_datadog/chef_spec.rb deleted file mode 100644 index a2cc4aff11ebe..0000000000000 --- a/test/kitchen/test/integration/chef/rspec_datadog/chef_spec.rb +++ /dev/null @@ -1,7 +0,0 @@ -require 'spec_helper' - -describe 'dd-agent' do - include_examples 'Agent install' - include_examples 'Agent behavior' - include_examples 'Agent uninstall' -end diff --git a/test/kitchen/test/integration/chef/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/chef/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/chef/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/common/rspec_datadog/Gemfile b/test/kitchen/test/integration/common/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/common/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/common/rspec_datadog/kernel_out_spec_helper.rb b/test/kitchen/test/integration/common/rspec_datadog/kernel_out_spec_helper.rb deleted file mode 100644 index c6d5252ebc98c..0000000000000 --- a/test/kitchen/test/integration/common/rspec_datadog/kernel_out_spec_helper.rb +++ /dev/null @@ -1,83 +0,0 @@ -require "rspec/core/formatters/base_text_formatter" - -COLORS = [ - :green, - :blue, - :magenta, - :yellow, - :cyan, -] - -class KernelOut - @@release = `uname -r`.strip - if File.exist?('/tmp/color_idx') - color_idx = File.read('/tmp/color_idx').strip.to_i - 1 - @@color = COLORS[color_idx] - else - @@color = :no_format - end - - def self.format(text, tag="") - tag = "[#{tag}]" if tag != "" - if @@color != :no_format - return RSpec::Core::Formatters::ConsoleCodes.wrap("[#{@@release}]#{tag} #{text}", @@color) - else - return "[#{@@release}]#{tag} #{text}" - end - end -end - -class CustomFormatter - RSpec::Core::Formatters.register self, :example_passed, :example_failed, :dump_summary, :dump_failures, :example_group_started, :example_group_finished - - def initialize(output) - @output = output - end - - # Remove "."'s from the test execution output - def example_passed(_) - end - - # Remove "F"'s from the test execution output - def example_failed(_) - end - - def example_group_started(notification) - @output << "\n" - @output << KernelOut.format("started #{notification.group.description}\n") - end - - def example_group_finished(notification) - @output << KernelOut.format("finished #{notification.group.description}\n\n") - end - - def dump_summary(notification) - @output << KernelOut.format("Finished in #{RSpec::Core::Formatters::Helpers.format_duration(notification.duration)}.\n") - @output << KernelOut.format("#{notification.totals_line}\n") - @output << KernelOut.format("Platform: #{`uname -a`}\n\n") - end - - def dump_failures(notification) # ExamplesNotification - if notification.failed_examples.length > 0 - rel = KernelOut.format("") - failures = RSpec::Core::Formatters::ConsoleCodes.wrap("FAILURES:", :failure) - @output << "\n#{rel} #{failures}\n\n" - @output << error_summary(notification) - end - end - - private - - def error_summary(notification) - summary_output = notification.failed_examples.map do |example| - "#{example.full_description}:\n#{example.execution_result.exception.message}\n\n" - end - - summary_output.join - end -end - - -RSpec.configure do |config| - config.formatter = CustomFormatter -end diff --git a/test/kitchen/test/integration/common/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/common/rspec_datadog/spec_helper.rb deleted file mode 100644 index 89b2fa59a91fd..0000000000000 --- a/test/kitchen/test/integration/common/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1,1383 +0,0 @@ -require 'json' -require 'open-uri' -require 'rspec' -require 'rbconfig' -require 'yaml' -require 'find' -require 'tempfile' -require 'fileutils' -require 'set' - -# -# this enables RSpec output so that individual tests ("it behaves like...") are -# logged. -RSpec.configure do |c| - c.add_formatter "documentation" - FileUtils.mkdir_p '/tmp' - c.add_formatter("RspecJunitFormatter", "/tmp/kitchen/rspec.xml") -end - -os_cache = nil - -# We retrieve the value defined in kitchen.yml because there is no simple way -# to set env variables on the target machine or via parameters in Kitchen/Busser -# See https://github.com/test-kitchen/test-kitchen/issues/662 for reference -def parse_dna - if os == :windows - dna_json_path = "#{ENV['USERPROFILE']}\\AppData\\Local\\Temp\\kitchen\\dna.json" - else - dna_json_path = "/tmp/kitchen/dna.json" - end - JSON.parse(IO.read(dna_json_path)) -end - -def get_agent_flavor - parse_dna().fetch('dd-agent-rspec').fetch('agent_flavor') -end - -def get_service_name(flavor) - # Return the service name of the given flavor depending on the OS - if os == :windows - case flavor - when "datadog-agent", "datadog-heroku-agent", "datadog-iot-agent" - "datadogagent" - when "datadog-dogstatsd" - # Placeholder, not used yet - "dogstatsd" - end - else - case flavor - when "datadog-agent", "datadog-heroku-agent", "datadog-iot-agent" - "datadog-agent" - when "datadog-dogstatsd" - "datadog-dogstatsd" - end - end -end - -def os - # OS Detection from https://stackoverflow.com/questions/11784109/detecting-operating-systems-in-ruby - os_cache ||= ( - host_os = RbConfig::CONFIG['host_os'] - case host_os - when /mswin|msys|mingw|cygwin|bccwin|wince|emc/ - :windows - when /darwin|mac os/ - :macosx - when /linux/ - :linux - when /solaris|bsd/ - :unix - else - raise Error::WebDriverError, "unknown os: #{host_os.inspect}" - end - ) -end - -def safe_program_files - # HACK: on non-English Windows, Chef wrongly installs its 32-bit version on 64-bit hosts because - # of this issue: https://github.com/chef/mixlib-install/issues/343 - # Because of this, the ENV['ProgramFiles'] content is wrong (it's `C:/Program Files (x86)`) - # while the Agent is installed in `C:/Program Files` - # To prevent this issue, we check the system arch and the ProgramFiles folder, and we fix it - # if needed. - - # Env variables are frozen strings, they need to be duplicated to modify them - program_files = ENV['ProgramFiles'].dup - arch = `Powershell -command "(Get-WmiObject Win32_OperatingSystem).OsArchitecture"` - if arch.include? "64" and program_files.include? "(x86)" - program_files.slice!("(x86)") - program_files.strip! - end - - program_files -end - - -def agent_command - if os == :windows - '"C:\\Program Files\\Datadog\\Datadog Agent\\bin\\agent.exe"' - else - "sudo datadog-agent" - end -end - -def wait_until_service_stopped(service, timeout = 60) - # Check if the service has stopped every second - # Timeout after the given number of seconds - for _ in 1..timeout do - if !is_service_running?(service) - case service - when "datadog-agent" - break if !is_port_bound(5001) - when "datadog-dogstatsd" - break if !is_port_bound(8125) - else - break - end - end - sleep 1 - end -end - -def wait_until_service_started(service, timeout = 30) - # Check if the service has started every second - # Timeout after the given number of seconds - for _ in 1..timeout do - if is_service_running?(service) - case service - when "datadog-agent" - break if is_port_bound(5001) - when "datadog-dogstatsd" - break if is_port_bound(8125) - else - break - end - end - sleep 1 - end -end - -def stop(flavor) - service = get_service_name(flavor) - if os == :windows - # forces the trace agent (and other dependent services) to stop - result = system "net stop /y #{service} 2>&1" - sleep 5 - else - if has_systemctl - result = system "sudo systemctl stop #{service}.service" - elsif has_upstart - result = system "sudo initctl stop #{service}" - else - result = system "sudo /sbin/service #{service} stop" - end - end - wait_until_service_stopped(service) - if result == nil || result == false - log_trace "datadog-agent", "stop" - end - result -end - -def start(flavor) - service = get_service_name(flavor) - if os == :windows - result = system "net start #{service} 2>&1" - sleep 5 - else - if has_systemctl - result = system "sudo systemctl start #{service}.service" - elsif has_upstart - result = system "sudo initctl start #{service}" - else - result = system "sudo /sbin/service #{service} start" - end - end - wait_until_service_started(service) - if result == nil || result == false - log_trace "datadog-agent", "start" - end - result -end - -def restart(flavor) - service = get_service_name(flavor) - if os == :windows - # forces the trace agent (and other dependent services) to stop - if is_service_running?(service) - result = system "net stop /y #{service} 2>&1" - sleep 20 - wait_until_service_stopped(service) - end - result = system "net start #{service} 2>&1" - sleep 20 - wait_until_service_started(service) - else - if has_systemctl - result = system "sudo systemctl restart #{service}.service" - # Worst case: the Agent has already stopped and restarted when we check if the process has been stopped - # and we lose 5 seconds. - wait_until_service_stopped(service, 5) - wait_until_service_started(service, 5) - elsif has_upstart - # initctl can't restart - result = system "(sudo initctl restart #{service} || sudo initctl start #{service})" - wait_until_service_stopped(service, 5) - wait_until_service_started(service, 5) - else - result = system "sudo /sbin/service #{service} restart" - wait_until_service_stopped(service, 5) - wait_until_service_started(service, 5) - end - end - if result == nil || result == false - log_trace "datadog-agent", "restart" - end - result -end - -def log_trace(flavor, action) - service = get_service_name(flavor) - if os == :windows - # Collect events from DatadogAgent and this service, since this service may depend on datadogagent it may be - # that the actual error is coming from datadogagent failing to start. - system "powershell.exe -Command \"Get-EventLog -LogName Application -Newest 10 -Source datadogagent,#{service} | fl\"" - system "powershell.exe -Command \"Get-EventLog -LogName System -Newest 10 -Source \\\"Service Control Manager\\\" | fl\"" - else - if has_systemctl - system "sudo journalctl -u #{service} -xe --no-pager" - elsif has_upstart - system "sudo grep #{service} /var/log/upstart" - else - system "sudo grep #{service} /var/log/message" - end - end -end - -def has_systemctl - system('command -v systemctl 2>&1 > /dev/null') -end - -def has_upstart - system('/sbin/init --version 2>&1 | grep -q upstart >/dev/null') -end - -def has_dpkg - system('command -v dpkg 2>&1 > /dev/null') -end - -def info - `#{agent_command} status 2>&1` -end - -def integration_install(package) - `#{agent_command} integration install -r #{package} 2>&1`.tap do |output| - raise "Failed to install integrations package '#{package}' - #{output}" unless $? == 0 - end -end - -def integration_remove(package) - `#{agent_command} integration remove -r #{package} 2>&1`.tap do |output| - raise "Failed to remove integrations package '#{package}' - #{output}" unless $? == 0 - end -end - -def integration_freeze - `#{agent_command} integration freeze 2>&1`.tap do |output| - raise "Failed to get integrations freeze - #{output}" unless $? == 0 - end -end - -def json_info(command) - tmpfile = Tempfile.new('agent-status') - begin - `#{command} status -j -o #{tmpfile.path}` - info_output = File.read(tmpfile.path) - - JSON.parse(info_output) - rescue Exception => e - puts $! - return {} - ensure - tmpfile.close - tmpfile.unlink - end -end - -def windows_service_status(service) - raise "windows_service_status is only for windows" unless os == :windows - # Language-independent way of getting the service status - res = `powershell -command \"try { (get-service #{service} -ErrorAction Stop).Status } catch { write-host NOTINSTALLED }\"` - return (res).upcase.strip -end - -def is_service_running?(service) - if os == :windows - return windows_service_status(service) == "RUNNING" - else - if has_systemctl - system "sudo systemctl status --no-pager #{service}.service" - elsif has_upstart - status = `sudo initctl status #{service}` - status.include?('start/running') - else - status = `sudo /sbin/service #{service} status` - status.include?('running') - end - end -end - -def is_windows_service_installed(service) - raise "is_windows_service_installed is only for windows" unless os == :windows - return windows_service_status(service) != "NOTINSTALLED" -end - -def is_flavor_running?(flavor) - is_service_running?(get_service_name(flavor)) -end - -def is_process_running?(pname) - if os == :windows - tasklist = `tasklist /fi \"ImageName eq #{pname}\" 2>&1` - if tasklist.include?(pname) - return true - end - else - return true if system("pgrep -f #{pname}") - end - return false -end - -def agent_processes_running? - %w(datadog-agent agent.exe).each do |p| - return true if is_process_running?(p) - end - false -end - -def trace_processes_running? - %w(trace-agent trace-agent.exe).each do |p| - return true if is_process_running?(p) - end - false -end - -def security_agent_running? - %w(security-agent security-agent.exe).each do |p| - return true if is_process_running?(p) - end - false -end - -def system_probe_running? - %w(system-probe system-probe.exe).each do |p| - return true if is_process_running?(p) - end - false -end - -def process_agent_running? - %w(process-agent process-agent.exe).each do |p| - return true if is_process_running?(p) - end - false -end - -def dogstatsd_processes_running? - %w(dogstatsd dogstatsd.exe).each do |p| - return true if is_process_running?(p) - end - false -end - -def deploy_cws? - os != :windows && - get_agent_flavor == 'datadog-agent' && - parse_dna().fetch('dd-agent-rspec').fetch('enable_cws') == true -end - -def read_agent_file(path, commit_hash) - open("https://raw.githubusercontent.com/DataDog/datadog-agent/#{commit_hash}/#{path}").read() -end - -# Hash of the commit the Agent was built from -def agent_git_hash - JSON.parse(IO.read("/opt/datadog-agent/version-manifest.json"))['software']['datadog-agent']['locked_version'] -end - -def trace_agent_git_hash - JSON.parse(IO.read("/opt/datadog-agent/version-manifest.json"))['software']['datadog-trace-agent']['locked_version'] -end - -# From a pip-requirements-formatted string, return a hash of 'dep_name' => 'version' -def read_requirements(file_contents) - reqs = Hash.new - file_contents.lines.reject do |line| - /^#/ === line # reject comment lines - end.collect do |line| - /(.+)==([^\s]+)/.match(line) - end.compact.each do |match| - reqs[match[1].downcase] = match[2] - end - reqs -end - -def is_port_bound(port) - if os == :windows - port_regex = Regexp.new(port.to_s) - port_regex.match(`netstat -n -b -a -p TCP 2>&1`) - else - # If netstat is not found (eg. on SUSE >= 15), use ss to get the list of ports used. - system("sudo netstat -lntp | grep #{port} 1>/dev/null") || system("sudo ss -lntp | grep #{port} 1>/dev/null") - end -end - -def get_conf_file(conf_path) - if os == :windows - return "#{ENV['ProgramData']}\\Datadog\\#{conf_path}" - else - return "/etc/datadog-agent/#{conf_path}" - end -end - -def read_conf_file(conf_path = "") - if conf_path == "" - conf_path = get_conf_file("datadog.yaml") - end - puts "cp is #{conf_path}" - f = File.read(conf_path) - confYaml = YAML.load(f) - confYaml -end - -def fetch_python_version(timeout = 15) - # Fetch the python_version from the Agent status - # Timeout after the given number of seconds - for _ in 1..timeout do - json_info_output = json_info(agent_command()) - if json_info_output.key?('python_version') && - ! json_info_output['python_version'].nil? && # nil is considered a correct version by Gem::Version - Gem::Version.correct?(json_info_output['python_version']) # Check that we do have a version number - return json_info_output['python_version'] - end - sleep 1 - end - return nil -end - -def is_file_signed(fullpath) - puts "checking file #{fullpath}" - expect(File).to exist(fullpath) - - output = `powershell -command "(get-authenticodesignature -FilePath '#{fullpath}').SignerCertificate.Thumbprint"` - signature_hashes = Set[ - ## signature below is for new cert acquired using new hsm-backed signing method - ## Non-EV Valid From: May 2023; To: May 2025 - "B03F29CC07566505A718583E9270A6EE17678742".upcase.strip, - ## EV Valid From: Dec 2023; To: Dec 2025 - "ECAA21456723CB0911183255A683DC01A99392DB".upcase.strip, - ## EV Valid From: Jun 2024; To: Jun 2026 - "59063C826DAA5B628B5CE8A2B32015019F164BF0".upcase.strip, - ] - - return true if signature_hashes.include?(output.upcase.strip) - - puts("Acceptable hashes: #{signature_hashes.keys}, actual hash = #{output.upcase.strip}") - return false -end - -def is_dpkg_package_installed(package) - system("dpkg -l #{package} | grep ii") -end - -shared_examples_for 'Agent install' do - it_behaves_like 'an installed Agent' - it_behaves_like 'an installed Datadog Signing Keys' -end - -shared_examples_for 'Basic Agent behavior' do - it_behaves_like 'a running Agent with no errors' - it_behaves_like 'an Agent with integrations' - it_behaves_like 'an Agent that stops' - it_behaves_like 'an Agent that restarts' - it_behaves_like 'an Agent with Python' -end - -shared_examples_for 'Agent behavior' do - include_examples 'Basic Agent behavior' - it_behaves_like 'a running Agent with APM' - it_behaves_like 'a running Agent with APM manually disabled' - if deploy_cws? - it_behaves_like 'a running Agent with CWS enabled' - end -end - -shared_examples_for 'Agent uninstall' do - it_behaves_like 'an Agent that is removed' -end - -shared_examples_for "an installed Agent" do - wait_until_service_started get_service_name("datadog-agent") - - it 'has an example config file' do - if os != :windows - expect(File).to exist('/etc/datadog-agent/datadog.yaml.example') - end - end - - it 'has a datadog-agent binary in usr/bin' do - if os != :windows - expect(File).to exist('/usr/bin/datadog-agent') - end - end - - # We retrieve the value defined in kitchen.yml because there is no simple way - # to set env variables on the target machine or via parameters in Kitchen/Busser - # See https://github.com/test-kitchen/test-kitchen/issues/662 for reference - let(:skip_windows_signing_check) { - parse_dna().fetch('dd-agent-rspec').fetch('skip_windows_signing_test') - } - - it 'is properly signed' do - puts "skipping windows signing check #{skip_windows_signing_check}" if os == :windows and skip_windows_signing_check - #puts "is an upgrade is #{is_upgrade}" - if os == :windows and !skip_windows_signing_check - # The user in the yaml file is "datadog", however the default test kitchen user is azure. - # This allows either to be used without changing the test. - msi_path = "#{ENV['USERPROFILE']}\\AppData\\Local\\Temp\\kitchen\\cache\\ddagent-cli.msi" - msi_path_upgrade = "#{ENV['USERPROFILE']}\\AppData\\Local\\Temp\\kitchen\\cache\\ddagent-up.msi" - - # The upgrade file should only be present when doing an upgrade test. Therefore, - # check the file we're upgrading to, not the file we're upgrading from - if File.file?(msi_path_upgrade) - msi_path = msi_path_upgrade - end - - program_files = safe_program_files - verify_signature_files = [ - msi_path, - # TODO: Uncomment this when we start shipping the security agent on Windows - # "#{program_files}\\DataDog\\Datadog Agent\\bin\\agent\\security-agent.exe", - "#{program_files}\\DataDog\\Datadog Agent\\bin\\agent\\process-agent.exe", - "#{program_files}\\DataDog\\Datadog Agent\\bin\\agent\\trace-agent.exe", - "#{program_files}\\DataDog\\Datadog Agent\\bin\\agent\\ddtray.exe", - "#{program_files}\\DataDog\\Datadog Agent\\bin\\libdatadog-agent-three.dll", - "#{program_files}\\DataDog\\Datadog Agent\\bin\\agent.exe", - ] - libdatadog_agent_two = "#{program_files}\\DataDog\\Datadog Agent\\bin\\libdatadog-agent-two.dll" - if File.file?(libdatadog_agent_two) - verify_signature_files += [ - libdatadog_agent_two, - "#{program_files}\\DataDog\\Datadog Agent\\embedded2\\python.exe", - "#{program_files}\\DataDog\\Datadog Agent\\embedded2\\pythonw.exe", - "#{program_files}\\DataDog\\Datadog Agent\\embedded2\\python27.dll" - ] - end - - verify_signature_files.each do |vf| - expect(is_file_signed(vf)).to be_truthy - end - end - end -end - -shared_examples_for "an installed Datadog Signing Keys" do - it 'is installed (on Debian-based systems)' do - skip if os == :windows - skip unless has_dpkg - # Only check on Debian-based systems, which have dpkg installed - expect(is_dpkg_package_installed('datadog-signing-keys')).to be_truthy - end -end - -shared_examples_for "a running Agent with no errors" do - it 'has an agent binary' do - if os != :windows - expect(File).to exist('/usr/bin/datadog-agent') - end - end - - it 'is running' do - expect(is_flavor_running? "datadog-agent").to be_truthy - end - - it 'has a config file' do - conf_path = get_conf_file("datadog.yaml") - expect(File).to exist(conf_path) - end - - it 'has running checks' do - result = false - # Wait for the collector to do its first run - # Timeout after 30 seconds - for _ in 1..30 do - json_info_output = json_info(agent_command()) - if json_info_output.key?('runnerStats') && - json_info_output['runnerStats'].key?('Checks') && - !json_info_output['runnerStats']['Checks'].empty? - result = true - break - end - sleep 1 - end - expect(result).to be_truthy - end - - it 'has an info command' do - # On systems that use systemd (on which the `start` script returns immediately) - # sleep a few seconds to let the collector finish its first run - # Windows seems to frequently have this same issue - if os != :windows - system('command -v systemctl 2>&1 > /dev/null && sleep 5') - else - sleep 5 - end - - expect(info).to include "Forwarder" - expect(info).to include "DogStatsD" - expect(info).to include "Host Info" - end - - it 'has no errors in the info command' do - info_output = info - # The api key is invalid. this test ensures there are no other errors - info_output = info_output.gsub "[ERROR] API Key is invalid" "API Key is invalid" - expect(info_output).to_not include 'ERROR' - end -end - -shared_examples_for "a running Agent with APM" do - if os == :windows - it 'has the apm agent running' do - expect(is_process_running?("trace-agent.exe")).to be_truthy - expect(is_service_running?("datadog-trace-agent")).to be_truthy - end - end - it 'is bound to the port that receives traces by default' do - expect(is_port_bound(8126)).to be_truthy - end -end - -shared_examples_for "a running Agent with process enabled" do - it 'has the process agent running' do - expect(is_process_running?("process-agent.exe")).to be_truthy - expect(is_service_running?("datadog-process-agent")).to be_truthy - end -end - -shared_examples_for "a running Agent with APM manually disabled" do - it 'is not bound to the port that receives traces when apm_enabled is set to false' do - conf_path = get_conf_file("datadog.yaml") - - f = File.read(conf_path) - confYaml = YAML.load(f) - if !confYaml.key("apm_config") - confYaml["apm_config"] = {} - end - confYaml["apm_config"]["enabled"] = false - File.write(conf_path, confYaml.to_yaml) - - output = restart "datadog-agent" - if os != :windows - expect(output).to be_truthy - system 'command -v systemctl 2>&1 > /dev/null || sleep 5 || true' - else - sleep 5 - end - expect(is_port_bound(8126)).to be_falsey - end - - it "doesn't say 'not running' in the info command" do - # Until it runs the logs agent by default it will say this - # expect(info).to_not include 'not running' - end -end - -shared_examples_for 'an Agent that stops' do - it 'stops' do - output = stop "datadog-agent" - if os != :windows - expect(output).to be_truthy - end - expect(is_flavor_running? "datadog-agent").to be_falsey - end - - it 'has connection refuse in the info command' do - if os == :windows - expect(info).to include 'No connection could be made' - else - expect(info).to include 'connection refuse' - end - end - - it 'is not running any agent processes' do - expect(agent_processes_running?).to be_falsey - expect(trace_processes_running?).to be_falsey - expect(security_agent_running?).to be_falsey - expect(system_probe_running?).to be_falsey - end - - it 'starts after being stopped' do - output = start "datadog-agent" - if os != :windows - expect(output).to be_truthy - end - expect(is_flavor_running? "datadog-agent").to be_truthy - end -end - -shared_examples_for 'an Agent that restarts' do - it 'restarts when the agent is running' do - if !is_flavor_running? "datadog-agent" - start "datadog-agent" - end - output = restart "datadog-agent" - if os != :windows - expect(output).to be_truthy - end - expect(is_flavor_running? "datadog-agent").to be_truthy - end - - it 'restarts when the agent is not running' do - if is_flavor_running? "datadog-agent" - stop "datadog-agent" - end - output = restart "datadog-agent" - if os != :windows - expect(output).to be_truthy - end - expect(is_flavor_running? "datadog-agent").to be_truthy - end -end - -# Checks that the Agent can run Python 3. -# If running on an Agent 6, also check that it can run Python 2. -shared_examples_for 'an Agent with Python' do - it 'restarts after python_version is set to 3' do - conf_path = get_conf_file("datadog.yaml") - f = File.read(conf_path) - confYaml = YAML.load(f) - confYaml["python_version"] = 3 - File.write(conf_path, confYaml.to_yaml) - - output = restart "datadog-agent" - expect(output).to be_truthy - end - - it 'runs Python 3 after python_version is set to 3' do - result = false - python_version = fetch_python_version - if ! python_version.nil? && Gem::Version.new('3.0.0') <= Gem::Version.new(python_version) - result = true - end - expect(result).to be_truthy - end - - it 'restarts after python_version is set to 2' do - skip if info.include? "v7." - conf_path = get_conf_file("datadog.yaml") - f = File.read(conf_path) - confYaml = YAML.load(f) - confYaml["python_version"] = 2 - File.write(conf_path, confYaml.to_yaml) - - output = restart "datadog-agent" - expect(output).to be_truthy - end - - it 'runs Python 2 after python_version is set to 2' do - skip if info.include? "v7." - result = false - python_version = fetch_python_version - if ! python_version.nil? && Gem::Version.new('3.0.0') > Gem::Version.new(python_version) - result = true - end - expect(result).to be_truthy - end -end - -shared_examples_for 'an Agent with integrations' do - let(:integrations_freeze_file) do - if os == :windows - 'C:\Program Files\Datadog\Datadog Agent\requirements-agent-release.txt' - else - '/opt/datadog-agent/requirements-agent-release.txt' - end - end - - before do - freeze_content = File.read(integrations_freeze_file) - freeze_content.gsub!(/datadog-cilium==.*/, 'datadog-cilium==2.2.1') - File.write(integrations_freeze_file, freeze_content) - - integration_remove('datadog-cilium') - end - - it 'can uninstall an installed package' do - integration_install('datadog-cilium==2.2.1') - - expect do - integration_remove('datadog-cilium') - end.to change { integration_freeze.match?(%r{datadog-cilium==.*}) }.from(true).to(false) - end - - it 'can install a new package' do - integration_remove('datadog-cilium') - - expect do - integration_install('datadog-cilium==2.2.1') - end.to change { integration_freeze.match?(%r{datadog-cilium==2\.2\.1}) }.from(false).to(true) - end - - it 'can upgrade an installed package' do - expect do - integration_install('datadog-cilium==2.3.0') - end.to change { integration_freeze.match?(%r{datadog-cilium==2\.3\.0}) }.from(false).to(true) - end - - it 'can downgrade an installed package' do - integration_remove('datadog-cilium') - integration_install('datadog-cilium==2.3.0') - - expect do - integration_install('datadog-cilium==2.2.1') - end.to change { integration_freeze.match?(%r{datadog-cilium==2\.2\.1}) }.from(false).to(true) - end - - it 'cannot downgrade an installed package to a version older than the one shipped with the agent' do - integration_remove('datadog-cilium') - integration_install('datadog-cilium==2.2.1') - - expect do - integration_install('datadog-cilium==2.2.0') - end.to raise_error(/Failed to install integrations package 'datadog-cilium==2\.2\.0'/) - end -end - -shared_examples_for 'an Agent that is removed' do - it 'should remove the agent' do - if os == :windows - # uninstallcmd = "start /wait msiexec /q /x 'C:\\Users\\azure\\AppData\\Local\\Temp\\kitchen\\cache\\ddagent-cli.msi'" - uninstallcmd='for /f "usebackq" %n IN (`wmic product where "name like \'datadog%\'" get IdentifyingNumber ^| find "{"`) do start /wait msiexec /log c:\\uninst.log /q /x %n' - expect(system(uninstallcmd)).to be_truthy - else - if system('which apt-get &> /dev/null') - expect(system("sudo apt-get -q -y remove #{get_agent_flavor} > /dev/null")).to be_truthy - elsif system('which yum &> /dev/null') - expect(system("sudo yum -y remove #{get_agent_flavor} > /dev/null")).to be_truthy - elsif system('which zypper &> /dev/null') - expect(system("sudo zypper --non-interactive remove #{get_agent_flavor} > /dev/null")).to be_truthy - else - raise 'Unknown package manager' - end - end - end - - it 'should not be running the agent after removal' do - sleep 15 - expect(agent_processes_running?).to be_falsey - expect(trace_processes_running?).to be_falsey - expect(security_agent_running?).to be_falsey - expect(system_probe_running?).to be_falsey - end - - if os == :windows - windows_service_names = [ - 'datadogagent', - 'datadog-process-agent', - 'datadog-trace-agent', - 'datadog-system-probe', - 'datadog-security-agent' - ] - it 'should not have services installed' do - windows_service_names.each do |ws| - expect(is_windows_service_installed(ws)).to be_falsey - end - end - end -if os == :windows - it 'should not make changes to system files' do - exclude = [ - 'C:/Windows/Assembly/Temp/', - 'C:/Windows/Assembly/Tmp/', - 'C:/windows/AppReadiness/', - 'C:/Windows/Temp/', - 'C:/Windows/Prefetch/', - 'C:/Windows/Installer/', - 'C:/Windows/WinSxS/', - 'C:/Windows/Logs/', - 'C:/Windows/servicing/', - 'c:/Windows/System32/catroot2/', - 'c:/windows/System32/config/', - 'C:/Windows/ServiceProfiles/NetworkService/AppData/Local/Microsoft/Windows/DeliveryOptimization/Logs/', - 'C:/Windows/ServiceProfiles/NetworkService/AppData/Local/Microsoft/Windows/DeliveryOptimization/Cache/', - 'C:/Windows/SoftwareDistribution/DataStore/Logs/', - 'C:/Windows/System32/wbem/Performance/', - 'c:/windows/System32/LogFiles/', - 'c:/windows/SoftwareDistribution/', - 'c:/windows/ServiceProfiles/NetworkService/AppData/', - 'c:/windows/System32/Tasks/Microsoft/Windows/UpdateOrchestrator/', - 'c:/windows/System32/Tasks/Microsoft/Windows/Windows Defender/Windows Defender Scheduled Scan' - ].each { |e| e.downcase! } - - # We don't really need to create this file since we consume it right afterwards, but it's useful for debugging - File.open("c:/after-files.txt", "w") do |out| - Find.find('c:/windows/').each { |f| out.puts(f) } - end - - before_files = File.readlines('c:/before-files.txt').reject { |f| f.downcase.start_with?(*exclude) } - after_files = File.readlines('c:/after-files.txt').reject { |f| f.downcase.start_with?(*exclude) } - - missing_files = before_files - after_files - new_files = after_files - before_files - - puts "New files:" - new_files.each { |f| puts(f) } - - puts "Missing files:" - missing_files.each { |f| puts(f) } - - expect(missing_files).to be_empty - end - end - - it 'should remove the installation directory' do - if os == :windows - expect(File).not_to exist("C:\\Program Files\\Datadog\\Datadog Agent\\") - else - remaining_files = [] - if Dir.exists?("/opt/datadog-agent") - Find.find('/opt/datadog-agent').each { |f| remaining_files.push(f) } - end - expect(remaining_files).to be_empty - expect(File).not_to exist("/opt/datadog-agent/") - end - end - - if os != :windows - it 'should remove the agent link from bin' do - expect(File).not_to exist('/usr/bin/datadog-agent') - end - end -end - -shared_examples_for 'an Agent with APM enabled' do - it 'has apm enabled' do - confYaml = read_conf_file() - expect(confYaml).to have_key("apm_config") - expect(confYaml["apm_config"]).to have_key("enabled") - expect(confYaml["apm_config"]["enabled"]).to be_truthy - end -end - -shared_examples_for 'an Agent with logs enabled' do - it 'has logs enabled' do - confYaml = read_conf_file() - expect(confYaml).to have_key("logs_config") - expect(confYaml).to have_key("logs_enabled") - expect(confYaml["logs_enabled"]).to be_truthy - end -end - -shared_examples_for 'an Agent with process enabled' do - it 'has process enabled' do - confYaml = read_conf_file() - expect(confYaml).to have_key("process_config") - expect(confYaml["process_config"]).to have_key("process_collection") - expect(confYaml["process_config"]["process_collection"]).to have_key("enabled") - expect(confYaml["process_config"]["process_collection"]["enabled"]).to be_truthy - end -end - -shared_examples_for 'a running Agent with CWS enabled' do - it 'has CWS enabled' do - enable_cws(get_conf_file("system-probe.yaml"), true) - enable_cws(get_conf_file("security-agent.yaml"), true) - - output = restart "datadog-agent" - expect(output).to be_truthy - end - - it 'has the security agent running' do - expect(security_agent_running?).to be_truthy - expect(is_service_running?("datadog-agent-security")).to be_truthy - end - - it 'has system-probe running' do - expect(system_probe_running?).to be_truthy - expect(is_service_running?("datadog-agent-sysprobe")).to be_truthy - end - - it 'has security-agent and system-probe communicating' do - for _ in 1..20 do - json_info_output = json_info("sudo /opt/datadog-agent/embedded/bin/security-agent") - if json_info_output.key?('runtimeSecurityStatus') && - json_info_output['runtimeSecurityStatus'].key?('connected') && - json_info_output['runtimeSecurityStatus']['connected'] - result = true - break - end - sleep 3 - end - expect(result).to be_truthy - end -end - -shared_examples_for 'an upgraded Agent with the expected version' do - # We retrieve the value defined in kitchen.yml because there is no simple way - # to set env variables on the target machine or via parameters in Kitchen/Busser - # See https://github.com/test-kitchen/test-kitchen/issues/662 for reference - let(:agent_expected_version) { - parse_dna().fetch('dd-agent-upgrade-rspec').fetch('agent_expected_version') - } - - it 'runs with the expected version (based on the `info` command output)' do - agent_short_version = /(\.?\d)+/.match(agent_expected_version)[0] - expect(info).to include "v#{agent_short_version}" - end - - it 'runs with the expected version (based on the version manifest file)' do - if os == :windows - version_manifest_file = "C:/Program Files/Datadog/Datadog Agent/version-manifest.txt" - else - version_manifest_file = '/opt/datadog-agent/version-manifest.txt' - end - expect(File).to exist(version_manifest_file) - # Match the first line of the manifest file - expect(File.open(version_manifest_file) {|f| f.readline.strip}).to match "agent #{agent_expected_version}" - end -end - -def enable_cws(conf_path, state) - begin - f = File.read(conf_path) - confYaml = YAML.load(f) - if !confYaml.key("runtime_security_config") - confYaml["runtime_security_config"] = {} - end - confYaml["runtime_security_config"]["enabled"] = state - rescue - confYaml = {'runtime_security_config' => {'enabled' => state}} - ensure - File.write(conf_path, confYaml.to_yaml) - end -end - -def get_user_sid(uname) - output = `powershell -command "(New-Object System.Security.Principal.NTAccount('#{uname}')).Translate([System.Security.Principal.SecurityIdentifier]).value"`.strip - output -end - -def get_sddl_for_object(name) - cmd = "powershell -command \"get-acl -Path \\\"#{name}\\\" | format-list -Property sddl\"" - outp = `#{cmd}`.gsub("\n", "").gsub(" ", "") - sddl = outp.gsub("/\s+/", "").split(":").drop(1).join(":").strip - sddl -end - -def get_security_settings - fname = "secout.txt" - system "secedit /export /cfg #{fname} /areas USER_RIGHTS" - data = Hash.new - - utext = File.open(fname).read - text = utext.unpack("v*").pack("U*") - text.each_line do |line| - next unless line.include? "=" - kv = line.strip.split("=") - data[kv[0].strip] = kv[1].strip - end - #File::delete(fname) - data -end - -def check_has_security_right(data, k, name) - right = data[k] - unless right - return false - end - rights = right.split(",") - rights.each do |r| - return true if r == name - end - false -end - -def check_is_user_in_group(user, group) - members = `net localgroup "#{group}"` - members.split(/\n+/).each do |line| - return true if line.strip == user - end - false -end - -def get_username_from_tasklist(exename) - # output of tasklist command is - # Image Name PID Session Name Session# Mem Usage Status User Name CPU Time Window Title - output = `tasklist /v /fi "imagename eq #{exename}" /nh`.gsub("\n", "").gsub("NT AUTHORITY", "NT_AUTHORITY") - - # for the above, the system user comes out as "NT AUTHORITY\System", which confuses the split - # below. So special case it, and get rid of the space - - #username is fully qualified \username - uname = output.split(' ')[7].partition('\\').last - uname -end - -if os == :windows - require 'English' - - module SDDLHelper - @@ace_types = { - 'A' => 'Access Allowed', - 'D' => 'Access Denied', - 'OA' => 'Object Access Allowed', - 'OD' => 'Object Access Denied', - 'AU' => 'System Audit', - 'AL' => 'System Alarm', - 'OU' => 'Object System Audit', - 'OL' => 'Object System Alarm' - } - - def self.ace_types - @@ace_types - end - - @@ace_flags = { - 'CI' => 'Container Inherit', - 'OI' => 'Object Inherit', - 'NP' => 'No Propagate', - 'IO' => 'Inheritance Only', - 'ID' => 'Inherited', - 'SA' => 'Successful Access Audit', - 'FA' => 'Failed Access Audit' - } - - def self.ace_flags - @@ace_flags - end - - @@permissions = { - 'GA' => 'Generic All', - 'GR' => 'Generic Read', - 'GW' => 'Generic Write', - 'GX' => 'Generic Execute', - - 'RC' => 'Read Permissions', - 'SD' => 'Delete', - 'WD' => 'Modify Permissions', - 'WO' => 'Modify Owner', - 'RP' => 'Read All Properties', - 'WP' => 'Write All Properties', - 'CC' => 'Create All Child Objects', - 'DC' => 'Delete All Child Objects', - 'LC' => 'List Contents', - 'SW' => 'All Validated Writes', - 'LO' => 'List Object', - 'DT' => 'Delete Subtree', - 'CR' => 'All Extended Rights', - - 'FA' => 'File All Access', - 'FR' => 'File Generic Read', - 'FW' => 'File Generic Write', - 'FX' => 'File Generic Execute', - - 'KA' => 'Key All Access', - 'KR' => 'Key Read', - 'KW' => 'Key Write', - 'KX' => 'Key Execute' - } - - def self.permissions - @@permissions - end - - @@trustee = { - 'AO' => 'Account Operators', - 'RU' => 'Alias to allow previous Windows 2000', - 'AN' => 'Anonymous Logon', - 'AU' => 'Authenticated Users', - 'BA' => 'Built-in Administrators', - 'BG' => 'Built in Guests', - 'BO' => 'Backup Operators', - 'BU' => 'Built-in Users', - 'CA' => 'Certificate Server Administrators', - 'CG' => 'Creator Group', - 'CO' => 'Creator Owner', - 'DA' => 'Domain Administrators', - 'DC' => 'Domain Computers', - 'DD' => 'Domain Controllers', - 'DG' => 'Domain Guests', - 'DU' => 'Domain Users', - 'EA' => 'Enterprise Administrators', - 'ED' => 'Enterprise Domain Controllers', - 'WD' => 'Everyone', - 'PA' => 'Group Policy Administrators', - 'IU' => 'Interactively logged-on user', - 'LA' => 'Local Administrator', - 'LG' => 'Local Guest', - 'LS' => 'Local Service Account', - 'SY' => 'Local System', - 'NU' => 'Network Logon User', - 'NO' => 'Network Configuration Operators', - 'NS' => 'Network Service Account', - 'PO' => 'Printer Operators', - 'PS' => 'Self', - 'PU' => 'Power Users', - 'RS' => 'RAS Servers group', - 'RD' => 'Terminal Server Users', - 'RE' => 'Replicator', - 'RC' => 'Restricted Code', - 'SA' => 'Schema Administrators', - 'SO' => 'Server Operators', - 'SU' => 'Service Logon User' - } - - def self.trustee - @@trustee - end - - def self.lookup_trustee(trustee) - if @@trustee[trustee].nil? - nt_account = `powershell -command "(New-Object System.Security.Principal.SecurityIdentifier('#{trustee}')).Translate([System.Security.Principal.NTAccount]).Value"`.strip - return nt_account if 0 == $CHILD_STATUS - - # Can't lookup, just return value - return trustee - end - - @@trustee[trustee] - end - end - - class SDDL - def initialize(sddl_str) - sddl_str.scan(/(.):(.*?)(?=.:|$)/) do |m| - case m[0] - when 'D' - @dacls = [] - m[1].scan(/(\((?.*?);(?.*?);(?.*?);(?.*?);(?.*?);(?.*?)\))/) do |ace_type, ace_flags, permissions, object_type, inherited_object_type, trustee| - @dacls.append(DACL.new(ace_type, ace_flags, permissions, object_type, inherited_object_type, trustee)) - end - when 'O' - @owner = m[1] - when 'G' - @group = m[1] - end - end - end - - attr_reader :owner, :group, :dacls - - def to_s - str = "Owner: #{SDDLHelper.lookup_trustee(@owner)}\n" - str += "Group: #{SDDLHelper.lookup_trustee(@owner)}\n" - @dacls.each do |dacl| - str += dacl.to_s - end - str - end - - def ==(other_sddl) - return false if - @owner != other_sddl.owner || - @group != other_sddl.group || - @dacls.length != other_sddl.dacls.length - - @dacls.each do |d1| - if other_sddl.dacls.find { |d2| d1 == d2 }.eql? nil - return false - end - end - - other_sddl.dacls.each do |d1| - if @dacls.find { |d2| d1 == d2 }.eql? nil - return false - end - end - end - - def eql?(other_sddl) - self == other_sddl - end - - end - - class DACL - def initialize(ace_type, ace_flags, permissions, object_type, inherited_object_type, trustee) - @ace_type = ace_type - @ace_flags = ace_flags - @permissions = permissions - @object_type = object_type - @inherited_object_type = inherited_object_type - @trustee = trustee - end - - attr_reader :ace_type, :ace_flags, :permissions, :object_type, :inherited_object_type, :trustee - - def ==(other_dacl) - return false if other_dacl.eql? nil - - @ace_type == other_dacl.ace_type && - @ace_flags == other_dacl.ace_flags && - @permissions == other_dacl.permissions && - @object_type == other_dacl.object_type && - @inherited_object_type == other_dacl.inherited_object_type && - @trustee == other_dacl.trustee - end - - def eql?(other_dacl) - self == other_dacl - end - - def to_s - str = " Trustee: #{SDDLHelper.lookup_trustee(@trustee)}\n" - str += " Type: #{SDDLHelper.ace_types[@ace_type]}\n" - str += " Permissions: \n - #{break_flags(@permissions, SDDLHelper.permissions).join("\n - ")}\n" if permissions != '' - str += " Inheritance: \n - #{break_flags(@ace_flags, SDDLHelper.ace_flags).join("\n - ")}\n" if ace_flags != '' - str - end - - private - - def break_flags(flags, lookup_dict) - return [lookup_dict[flags]] if flags.length <= 2 - - idx = 0 - flags_str = '' - flags_list = [] - flags.each_char do |ch| - if idx.positive? && idx.even? - flags_list.append(lookup_dict[flags_str]) - flags_str = '' - end - flags_str += ch - idx += 1 - end - flags_list - end - end - - RSpec::Matchers.define :have_sddl_equal_to do |expected| - def get_difference(actual, expected) - actual_sddl = SDDL.new(actual) - expected_sddl = SDDL.new(expected) - - difference = '' - if expected_sddl.owner != actual_sddl.owner - difference += " => expected owner to be \"#{SDDLHelper.lookup_trustee(expected_sddl.owner)}\" but was \"#{SDDLHelper.lookup_trustee(actual_sddl.owner)}\"\n" - end - if expected_sddl.group != actual_sddl.group - difference += " => expected owner to be \"#{SDDLHelper.lookup_trustee(expected_sddl.owner)}\" but was \"#{SDDLHelper.lookup_trustee(actual_sddl.owner)}\"\n" - end - - expected_sddl.dacls.each do |expected_dacl| - actual_dacl = actual_sddl.dacls.find { |d| expected_dacl == d } - if actual_dacl.eql? nil - difference += " => expected missing DACL\n#{expected_dacl}\n" - end - end - - actual_sddl.dacls.each do |actual_dacl| - expected_dacl = expected_sddl.dacls.find { |d| actual_dacl == d } - if expected_dacl.eql? nil - difference += " => found unexpected DACL\n#{actual_dacl}\n" - end - end - - difference - end - - match do |actual| - actual_sddl = SDDL.new(actual) - expected_sddl = SDDL.new(expected) - return actual_sddl == expected_sddl - end - - failure_message do |actual| - get_difference(actual, expected) - end - end - -end diff --git a/test/kitchen/test/integration/common/rspec_datadog/windows_npm_spec_helper.rb b/test/kitchen/test/integration/common/rspec_datadog/windows_npm_spec_helper.rb deleted file mode 100644 index e65a8e2736ae9..0000000000000 --- a/test/kitchen/test/integration/common/rspec_datadog/windows_npm_spec_helper.rb +++ /dev/null @@ -1,103 +0,0 @@ -require 'win32/registry' - -def is_windows_service_disabled(service) - keypath = "SYSTEM\\CurrentControlSet\\Services\\#{service}" - type = 0; - Win32::Registry::HKEY_LOCAL_MACHINE.open(keypath) do |reg| - type = reg['Start'] - end - return true if type == 4 - return false -end -shared_examples_for 'a Windows Agent with NPM driver that can start' do - it 'has system probe service installed' do - expect(is_windows_service_installed("datadog-system-probe")).to be_truthy - end - it 'has Windows NPM driver installed' do - expect(is_windows_service_installed("ddnpm")).to be_truthy - end - it 'has Windows NPM driver files installed' do - program_files = safe_program_files - expect(File).to exist("#{program_files}\\DataDog\\Datadog Agent\\bin\\agent\\driver\\ddnpm.cat") - expect(File).to exist("#{program_files}\\DataDog\\Datadog Agent\\bin\\agent\\driver\\ddnpm.sys") - expect(File).to exist("#{program_files}\\DataDog\\Datadog Agent\\bin\\agent\\driver\\ddnpm.inf") - end - - it 'does not have the driver running on install' do - ## verify that the driver is not started yet - expect(is_service_running?("ddnpm")).to be_falsey - end - - - it 'can successfully start the driver' do - ## start the service - result = system "net start ddnpm 2>&1" - - ## now expect it to be running - expect(is_service_running?("ddnpm")).to be_truthy - end - -end -shared_examples_for 'a Windows Agent with NPM driver disabled' do - it 'has the service disabled' do - expect(is_windows_service_disabled("ddnpm")).to be_truthy - end -end - -shared_examples_for 'a Windows Agent with NPM driver installed' do - it 'has system probe service installed' do - expect(is_windows_service_installed("datadog-system-probe")).to be_truthy - end - it 'has Windows NPM driver installed' do - expect(is_windows_service_installed("ddnpm")).to be_truthy - end - it 'has Windows NPM driver files installed' do - program_files = safe_program_files - expect(File).to exist("#{program_files}\\DataDog\\Datadog Agent\\bin\\agent\\driver\\ddnpm.cat") - expect(File).to exist("#{program_files}\\DataDog\\Datadog Agent\\bin\\agent\\driver\\ddnpm.sys") - expect(File).to exist("#{program_files}\\DataDog\\Datadog Agent\\bin\\agent\\driver\\ddnpm.inf") - end -end - -shared_examples_for 'a Windows Agent with NPM running' do - it 'can start system probe' do - conf_path = "" - if os != :windows - conf_path = "/etc/datadog-agent/datadog.yaml" - else - conf_path = "#{ENV['ProgramData']}\\Datadog\\datadog.yaml" - end - f = File.read(conf_path) - confYaml = YAML.load(f) - if !confYaml.key("process_config") - confYaml["process_config"] = {} - end - confYaml["process_config"]["process_collection"] = { "enabled": true } - File.write(conf_path, confYaml.to_yaml) - - if os != :windows - spconf_path = "/etc/datadog-agent/datadog.yaml" - else - spconf_path = "#{ENV['ProgramData']}\\Datadog\\system-probe.yaml" - end - spf = File.read(spconf_path) - spconfYaml = YAML.load(spf) - if !spconfYaml - spconfYaml = {} - end - if !spconfYaml.key("network_config") - spconfYaml["network_config"] = {} - end - spconfYaml["network_config"]["enabled"] = true - File.write(spconf_path, spconfYaml.to_yaml) - - expect(is_service_running?("datadog-system-probe")).to be_falsey - #restart "datadog-agent" - stop "datadog-agent" - sleep 10 - start "datadog-agent" - sleep 20 - expect(is_service_running?("datadogagent")).to be_truthy - expect(is_service_running?("datadog-system-probe")).to be_truthy - end -end diff --git a/test/kitchen/test/integration/upgrade-agent5/rspec_datadog/Gemfile b/test/kitchen/test/integration/upgrade-agent5/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/upgrade-agent5/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/upgrade-agent5/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/upgrade-agent5/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/upgrade-agent5/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/upgrade-agent5/rspec_datadog/upgrade-agent5_spec.rb b/test/kitchen/test/integration/upgrade-agent5/rspec_datadog/upgrade-agent5_spec.rb deleted file mode 120000 index 01c4a8f741b40..0000000000000 --- a/test/kitchen/test/integration/upgrade-agent5/rspec_datadog/upgrade-agent5_spec.rb +++ /dev/null @@ -1 +0,0 @@ -../../upgrade/rspec_datadog/upgrade_spec.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/upgrade-agent6/rspec_datadog/Gemfile b/test/kitchen/test/integration/upgrade-agent6/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/upgrade-agent6/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/upgrade-agent6/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/upgrade-agent6/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/upgrade-agent6/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/upgrade-agent6/rspec_datadog/upgrade-agent6_spec.rb b/test/kitchen/test/integration/upgrade-agent6/rspec_datadog/upgrade-agent6_spec.rb deleted file mode 120000 index 01c4a8f741b40..0000000000000 --- a/test/kitchen/test/integration/upgrade-agent6/rspec_datadog/upgrade-agent6_spec.rb +++ /dev/null @@ -1 +0,0 @@ -../../upgrade/rspec_datadog/upgrade_spec.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/upgrade-agent7/rspec_datadog/Gemfile b/test/kitchen/test/integration/upgrade-agent7/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/upgrade-agent7/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/upgrade-agent7/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/upgrade-agent7/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/upgrade-agent7/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/upgrade-agent7/rspec_datadog/upgrade-agent7_spec.rb b/test/kitchen/test/integration/upgrade-agent7/rspec_datadog/upgrade-agent7_spec.rb deleted file mode 120000 index 01c4a8f741b40..0000000000000 --- a/test/kitchen/test/integration/upgrade-agent7/rspec_datadog/upgrade-agent7_spec.rb +++ /dev/null @@ -1 +0,0 @@ -../../upgrade/rspec_datadog/upgrade_spec.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/upgrade/rspec_datadog/Gemfile b/test/kitchen/test/integration/upgrade/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/upgrade/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/upgrade/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/upgrade/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/upgrade/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/upgrade/rspec_datadog/upgrade_spec.rb b/test/kitchen/test/integration/upgrade/rspec_datadog/upgrade_spec.rb deleted file mode 100644 index b44751fdbd782..0000000000000 --- a/test/kitchen/test/integration/upgrade/rspec_datadog/upgrade_spec.rb +++ /dev/null @@ -1,7 +0,0 @@ -require 'spec_helper' - -describe 'the upgraded agent' do - it_behaves_like 'an installed Agent' - it_behaves_like 'a running Agent with no errors' - it_behaves_like 'an upgraded Agent with the expected version' -end diff --git a/test/kitchen/test/integration/win-agent-with-cws-option/rspec_datadog/Gemfile b/test/kitchen/test/integration/win-agent-with-cws-option/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/win-agent-with-cws-option/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/win-agent-with-cws-option/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/win-agent-with-cws-option/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/win-agent-with-cws-option/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-agent-with-cws-option/rspec_datadog/win-agent-with-cws-option_spec.rb b/test/kitchen/test/integration/win-agent-with-cws-option/rspec_datadog/win-agent-with-cws-option_spec.rb deleted file mode 100644 index ee4063d3e1a1d..0000000000000 --- a/test/kitchen/test/integration/win-agent-with-cws-option/rspec_datadog/win-agent-with-cws-option_spec.rb +++ /dev/null @@ -1,81 +0,0 @@ -require 'spec_helper' -require 'windows_npm_spec_helper' # for is_windows_service_disabled - - -shared_examples_for 'a Windows Agent with CWS driver disabled' do - it 'has the service disabled' do - expect(is_windows_service_disabled("ddprocmon")).to be_truthy - end -end - -shared_examples_for 'a Windows Agent with CWS driver installed' do - it 'has system probe service installed' do - expect(is_windows_service_installed("datadog-system-probe")).to be_truthy - end - - it 'has required services installed' do - expect(is_windows_service_installed("datadog-security-agent")).to be_truthy - expect(is_windows_service_installed("ddprocmon")).to be_truthy - end - it 'has driver files' do - program_files = safe_program_files - expect(File).to exist("#{program_files}\\DataDog\\Datadog Agent\\bin\\agent\\driver\\ddprocmon.cat") - expect(File).to exist("#{program_files}\\DataDog\\Datadog Agent\\bin\\agent\\driver\\ddprocmon.sys") - expect(File).to exist("#{program_files}\\DataDog\\Datadog Agent\\bin\\agent\\driver\\ddprocmon.inf") - end - - it 'does not have the driver running on install' do - ## verify that the driver is not started yet - expect(is_service_running?("ddprocmon")).to be_falsey - end - -end - -shared_examples_for 'a Windows Agent with CWS running' do - it 'has cws services not started by default' do - expect(is_service_running?("datadog-system-probe")).to be_falsey - expect(is_service_running?("datadog-security-agent")).to be_falsey - end - - it 'has default config files' do - expect(File).to exist(get_conf_file("system-probe.yaml")) - expect(File).to exist(get_conf_file("security-agent.yaml")) - end - it 'can start security agent' do - - enable_cws(get_conf_file("system-probe.yaml"), true) - enable_cws(get_conf_file("security-agent.yaml"), true) - - stop "datadog-agent" - - start "datadog-agent" - sleep 30 - expect(is_service_running?("datadogagent")).to be_truthy - expect(is_service_running?("datadog-system-probe")).to be_truthy - expect(is_service_running?("datadog-security-agent")).to be_truthy - end - it 'can gracefully shut down security agent' do - stop "datadog-agent" - - ## these tests return false for any state other than running. So "shutting down" - ## will erroneously pass here - expect(is_service_running?("datadogagent")).to be_falsey - expect(is_service_running?("datadog-system-probe")).to be_falsey - expect(is_service_running?("datadog-security-agent")).to be_falsey - - ## so also check that the process is actually gone - expect(security_agent_running?).to be_falsey - expect(system_probe_running?).to be_falsey - - end -end - - -describe 'the agent installed with the cws component' do - it_behaves_like 'an installed Agent' - it_behaves_like 'a running Agent with no errors' - it_behaves_like 'a Windows Agent with CWS driver installed' - it_behaves_like 'a Windows Agent with CWS driver disabled' - it_behaves_like 'a Windows Agent with CWS running' -end - diff --git a/test/kitchen/test/integration/win-agent-with-cws-option/rspec_datadog/windows_npm_spec_helper.rb b/test/kitchen/test/integration/win-agent-with-cws-option/rspec_datadog/windows_npm_spec_helper.rb deleted file mode 120000 index 7a89ca8b118c7..0000000000000 --- a/test/kitchen/test/integration/win-agent-with-cws-option/rspec_datadog/windows_npm_spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/windows_npm_spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-all-subservices/rspec_datadog/Gemfile b/test/kitchen/test/integration/win-all-subservices/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/win-all-subservices/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/win-all-subservices/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/win-all-subservices/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/win-all-subservices/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-all-subservices/rspec_datadog/win-all-subservices_spec.rb b/test/kitchen/test/integration/win-all-subservices/rspec_datadog/win-all-subservices_spec.rb deleted file mode 100644 index 39618d4d83211..0000000000000 --- a/test/kitchen/test/integration/win-all-subservices/rspec_datadog/win-all-subservices_spec.rb +++ /dev/null @@ -1,12 +0,0 @@ -require_relative 'spec_helper' - -describe 'win-all-subservices' do - include_examples 'Agent install' - include_examples 'Basic Agent behavior' - it_behaves_like 'an Agent with APM enabled' - it_behaves_like 'an Agent with logs enabled' - it_behaves_like 'an Agent with process enabled' - it_behaves_like 'a running Agent with APM' - it_behaves_like 'a running Agent with process enabled' - include_examples 'Agent uninstall' -end diff --git a/test/kitchen/test/integration/win-alt-dir/rspec_datadog/Gemfile b/test/kitchen/test/integration/win-alt-dir/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/win-alt-dir/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/win-alt-dir/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/win-alt-dir/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/win-alt-dir/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-alt-dir/rspec_datadog/win-alt-dir_spec.rb b/test/kitchen/test/integration/win-alt-dir/rspec_datadog/win-alt-dir_spec.rb deleted file mode 100644 index a0a74b975bf01..0000000000000 --- a/test/kitchen/test/integration/win-alt-dir/rspec_datadog/win-alt-dir_spec.rb +++ /dev/null @@ -1,126 +0,0 @@ -require 'spec_helper' - - -def check_user_exists(name) - selectstatement = "powershell -command \"get-wmiobject -query \\\"Select * from Win32_UserAccount where Name='#{name}'\\\"\"" - outp = `#{selectstatement} 2>&1` - outp -end - -shared_examples_for 'a correctly created configuration root' do - # We retrieve the value defined in kitchen.yml because there is no simple way - # to set env variables on the target machine or via parameters in Kitchen/Busser - # See https://github.com/test-kitchen/test-kitchen/issues/662 for reference - let(:configuration_path) { - dna_json_path = "#{ENV['USERPROFILE']}\\AppData\\Local\\Temp\\kitchen\\dna.json" - JSON.parse(IO.read(dna_json_path)).fetch('dd-agent-rspec').fetch('APPLICATIONDATADIRECTORY') - } - it 'has the proper configuration root' do - expect(File).not_to exist("#{ENV['ProgramData']}\\DataDog") - expect(File).to exist("#{configuration_path}") - end -end - -shared_examples_for 'a correctly created binary root' do - # We retrieve the value defined in kitchen.yml because there is no simple way - # to set env variables on the target machine or via parameters in Kitchen/Busser - # See https://github.com/test-kitchen/test-kitchen/issues/662 for reference - let(:binary_path) { - dna_json_path = "#{ENV['USERPROFILE']}\\AppData\\Local\\Temp\\kitchen\\dna.json" - JSON.parse(IO.read(dna_json_path)).fetch('dd-agent-rspec').fetch('PROJECTLOCATION') - } - it 'has the proper binary root' do - expect(File).not_to exist("#{ENV['ProgramFiles']}\\DataDog\\Datadog Agent") - expect(File).to exist("#{binary_path}") - end -end - -shared_examples_for 'an Agent with valid permissions' do - let(:configuration_path) { - dna_json_path = "#{ENV['USERPROFILE']}\\AppData\\Local\\Temp\\kitchen\\dna.json" - JSON.parse(IO.read(dna_json_path)).fetch('dd-agent-rspec').fetch('APPLICATIONDATADIRECTORY') - } - let(:binary_path) { - dna_json_path = "#{ENV['USERPROFILE']}\\AppData\\Local\\Temp\\kitchen\\dna.json" - JSON.parse(IO.read(dna_json_path)).fetch('dd-agent-rspec').fetch('PROJECTLOCATION') - } - dd_user_sid = get_user_sid('ddagentuser') - it 'has proper permissions on programdata\datadog' do - expected_sddl = "O:SYG:SYD:PAI(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;FA;;;#{dd_user_sid})" - actual_sddl = get_sddl_for_object(configuration_path) - - expect(actual_sddl).to have_sddl_equal_to(expected_sddl) - end - it 'has proper permissions on datadog.yaml' do - expected_sddl = "O:SYG:SYD:AI(A;ID;FA;;;SY)(A;ID;FA;;;BA)(A;ID;FA;;;#{dd_user_sid})" - actual_sddl = get_sddl_for_object("#{configuration_path}\\datadog.yaml") - - expect(actual_sddl).to have_sddl_equal_to(expected_sddl) - end - it 'has proper permissions on the conf.d directory' do - # A,OICI;FA;;;SY = Allows Object Inheritance (OI) container inherit (CI); File All Access to LocalSystem - # A,OICIID;WD;;;BU = Allows OI, CI, this is an inherited ACE (ID), change permissions (WD), to built-in users - # A,OICIID;FA;;;BA = Allow OI, CI, ID, File All Access (FA) to Builtin Administrators - # A,OICIID;FA;;;SY = Inherited right of OI, CI, (FA) to LocalSystem - # A,OICIID;FA;;;dd_user_sid = explicit right assignment of OI, CI, FA to the dd-agent user, inherited from the parent - - expected_sddl = "O:SYG:SYD:AI(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;#{dd_user_sid})" - actual_sddl = get_sddl_for_object("#{configuration_path}\\conf.d") - - expect(actual_sddl).to have_sddl_equal_to(expected_sddl) - end - - it 'has the proper permissions on the DataDog registry key' do - # A;;KA;;;SY = Allows KA (KeyAllAccess) to local system - # A;;KA;;;BA = Allows KA (KeyAllAccess) to BA builtin administrators - # A;;KA;; allows KEY_ALL_ACCESS to the dd agent user - # A;OICIIO; Object Inherit AC, container inherit ace, Inherit only ace - # CCDCLCSWRPWPSDRCWDWOGA CC = SDDL Create Child - # DC = SDDL Delete Child - # LC = Listchildrent - # SW = self write - # RP = read property - # WP = write property - # SD = standard delete - # RC = read control - # WD = WRITE DAC - # WO = Write owner - # GA = Generic All - # for dd-agent-user - # A;CIID;KR;;;BU = Allow Container Inherit/inherited ace KeyRead to BU (builtin users) - # A;CIID;KA;;;BA = KeyAllAccess (builtin admins) - # A;CIID;KA;;;SY = Keyallaccess (local system) - # A;CIIOID;KA;;;CO= container inherit, inherit only, inherited ace, keyallAccess, to creator/owner - # A;CIID;KR;;;AC = allow container inherit/inherited ace Key Read to AC () - expected_sddl = "O:SYG:SYD:AI(A;;KA;;;SY)(A;;KA;;;BA)(A;;KA;;;#{dd_user_sid})(A;CIID;KR;;;BU)(A;CIID;KA;;;BA)(A;CIID;KA;;;SY)(A;CIIOID;KA;;;CO)(A;CIID;KR;;;AC)" - expected_sddl_with_edge = "O:SYG:SYD:AI(A;;KA;;;SY)(A;;KA;;;BA)(A;;KA;;;#{dd_user_sid})(A;CIID;KR;;;BU)(A;CIID;KA;;;BA)(A;CIID;KA;;;SY)(A;CIIOID;KA;;;CO)(A;CIID;KR;;;AC)(A;CIID;KR;;;S-1-15-3-1024-1065365936-1281604716-3511738428-1654721687-432734479-3232135806-4053264122-3456934681)" - - ## sigh. M$ added a mystery sid some time back, that Edge/IE use for sandboxing, - ## and it's an inherited ace. Allow that one, too - - actual_sddl = get_sddl_for_object("HKLM:Software\\Datadog\\Datadog Agent") - - expect(actual_sddl).to have_sddl_equal_to(expected_sddl) - .or have_sddl_equal_to(expected_sddl_with_edge) - end - - it 'has agent.exe running as ddagentuser' do - expect(get_username_from_tasklist("agent.exe")).to eq("ddagentuser") - end - secdata = get_security_settings - it 'has proper security rights assigned' do - expect(check_has_security_right(secdata, "SeDenyInteractiveLogonRight", "ddagentuser")).to be_truthy - expect(check_has_security_right(secdata, "SeDenyNetworkLogonRight", "ddagentuser")).to be_truthy - expect(check_has_security_right(secdata, "SeDenyRemoteInteractiveLogonRight", "ddagentuser")).to be_truthy - end - it 'is in proper groups' do - expect(check_is_user_in_group("ddagentuser", "Performance Monitor Users")).to be_truthy - end -end - -describe 'dd-agent-install-alternate-dir' do - it_behaves_like 'a correctly created configuration root' - it_behaves_like 'a correctly created binary root' - it_behaves_like 'an Agent with valid permissions' -end - diff --git a/test/kitchen/test/integration/win-install-fail/rspec_datadog/Gemfile b/test/kitchen/test/integration/win-install-fail/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/win-install-fail/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/win-install-fail/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/win-install-fail/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/win-install-fail/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-install-fail/rspec_datadog/win-install-fail_spec.rb b/test/kitchen/test/integration/win-install-fail/rspec_datadog/win-install-fail_spec.rb deleted file mode 100644 index 5b6279ad760a5..0000000000000 --- a/test/kitchen/test/integration/win-install-fail/rspec_datadog/win-install-fail_spec.rb +++ /dev/null @@ -1,42 +0,0 @@ -require 'spec_helper' - -def check_user_exists(name) - selectstatement = "powershell -command \"get-wmiobject -query \\\"Select * from Win32_UserAccount where Name='#{name}'\\\"\"" - outp = `#{selectstatement} 2>&1` - outp -end -shared_examples_for 'a device with no files installed' do - it 'has no DataDog program files directory' do - expect(File).not_to exist("#{ENV['ProgramFiles']}\\DataDog") - end - it 'has no DataDog program data directory' do - expect(File).not_to exist("#{ENV['ProgramData']}\\DataDog\\conf.d") - expect(File).not_to exist("#{ENV['ProgramData']}\\DataDog\\checks.d") - # Do not check that the datadog.yaml file was removed because once it's created - # it's risky to delete it. - # expect(File).not_to exist("#{ENV['ProgramData']}\\DataDog\\datadog.yaml") - expect(File).not_to exist("#{ENV['ProgramData']}\\DataDog\\auth_token") - end -end - -shared_examples_for 'a device with a ddagentuser' do - is_user = check_user_exists('ddagentuser') - it 'has a ddagentuser account' do - expect(is_user).not_to be_empty - end -end - -shared_examples_for 'a device without a ddagentuser' do - is_user = check_user_exists('ddagentuser') - it 'doesn\'t have a ddagentuser account' do - expect(is_user).to be_empty - end -end - -describe 'dd-agent-win-install-fail' do - it_behaves_like 'a device with no files installed' - # The installer no longer deletes the user on uninstall and is transitioning away from managing user accounts. - # Therefore we should instead check that it did create a ddagentuser account for now, and in the future check - # that it did not create a ddagentuser account. - it_behaves_like 'a device with a ddagentuser' -end diff --git a/test/kitchen/test/integration/win-installopts/rspec_datadog/Gemfile b/test/kitchen/test/integration/win-installopts/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/win-installopts/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/win-installopts/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/win-installopts/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/win-installopts/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-installopts/rspec_datadog/win-installopts_spec.rb b/test/kitchen/test/integration/win-installopts/rspec_datadog/win-installopts_spec.rb deleted file mode 100644 index 6c9ecbbb1d48e..0000000000000 --- a/test/kitchen/test/integration/win-installopts/rspec_datadog/win-installopts_spec.rb +++ /dev/null @@ -1,64 +0,0 @@ -require 'spec_helper' - -shared_examples_for 'an Agent with APM disabled' do - it 'has apm disabled' do - confYaml = read_conf_file() - expect(confYaml).to have_key("apm_config") - expect(confYaml["apm_config"]).to have_key("enabled") - expect(confYaml["apm_config"]["enabled"]).to be_falsey - expect(is_port_bound(8126)).to be_falsey - end -end - -shared_examples_for 'a configured Agent' do - confYaml = read_conf_file() - it 'has an API key' do - expect(confYaml).to have_key("api_key") - expect(confYaml["api_key"]).to eql("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") - end - it 'has tags set' do - expect(confYaml).to have_key("tags") - expect(confYaml["tags"]).to include("k1:v1", "k2:v2") - expect(confYaml["tags"]).not_to include("k1:v2") - expect(confYaml["tags"]).not_to include("k2:v1") - end - it 'has CMDPORT set' do - expect(confYaml).to have_key("cmd_port") - expect(confYaml["cmd_port"]).to equal(4999) - expect(is_port_bound(4999)).to be_truthy - expect(is_port_bound(5001)).to be_falsey - end - it 'has proxy settings' do - expect(confYaml).to have_key("proxy") - expect(confYaml["proxy"]).to have_key("https") - expect(URI.parse(confYaml["proxy"]["https"])).to eq(URI.parse("http://puser:ppass@proxy.foo.com:1234")) - end - it 'has site settings' do - expect(confYaml).to have_key("site") - expect(confYaml["site"]).to eq("eu") - - expect(confYaml).to have_key("dd_url") - expect(URI.parse(confYaml["dd_url"])).to eq(URI.parse("https://someurl.datadoghq.com")) - - expect(confYaml).to have_key("logs_config") - expect(confYaml["logs_config"]).to have_key("logs_dd_url") - expect(URI.parse(confYaml["logs_config"]["logs_dd_url"])).to eq(URI.parse("https://logs.someurl.datadoghq.com")) - - expect(confYaml).to have_key("process_config") - expect(confYaml["process_config"]).to have_key("process_dd_url") - expect(URI.parse(confYaml["process_config"]["process_dd_url"])).to eq(URI.parse("https://process.someurl.datadoghq.com")) - - expect(confYaml).to have_key("apm_config") - expect(confYaml["apm_config"]).to have_key("apm_dd_url") - expect(URI.parse(confYaml["apm_config"]["apm_dd_url"])).to eq(URI.parse("https://trace.someurl.datadoghq.com")) - - end -end - - -describe 'win-installopts' do - include_examples 'Agent install' - it_behaves_like 'a configured Agent' - include_examples 'Agent uninstall' -end - diff --git a/test/kitchen/test/integration/win-no-subservices/rspec_datadog/Gemfile b/test/kitchen/test/integration/win-no-subservices/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/win-no-subservices/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/win-no-subservices/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/win-no-subservices/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/win-no-subservices/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-no-subservices/rspec_datadog/win-no-subservices_spec.rb b/test/kitchen/test/integration/win-no-subservices/rspec_datadog/win-no-subservices_spec.rb deleted file mode 100644 index 4bdc85bcac06f..0000000000000 --- a/test/kitchen/test/integration/win-no-subservices/rspec_datadog/win-no-subservices_spec.rb +++ /dev/null @@ -1,48 +0,0 @@ -require_relative 'spec_helper' - - -shared_examples_for 'an Agent with APM disabled' do - it 'has apm disabled' do - confYaml = read_conf_file() - expect(confYaml).to have_key("apm_config") - expect(confYaml["apm_config"]).to have_key("enabled") - expect(confYaml["apm_config"]["enabled"]).to be_falsey - expect(is_port_bound(8126)).to be_falsey - end - it 'does not have the apm agent running' do - expect(is_process_running?("trace-agent.exe")).to be_falsey - expect(is_service_running?("datadog-trace-agent")).to be_falsey - end -end - -shared_examples_for 'an Agent with logs disabled' do - it 'has logs disabled' do - confYaml = read_conf_file() - expect(confYaml).to have_key("logs_config") - expect(confYaml).to have_key("logs_enabled") - expect(confYaml["logs_enabled"]).to be_falsey - end -end - -shared_examples_for 'an Agent with process disabled' do - it 'has process disabled' do - confYaml = read_conf_file() - expect(confYaml).to have_key("process_config") - expect(confYaml["process_config"]).to have_key("process_collection") - expect(confYaml["process_config"]["process_collection"]).to have_key("enabled") - expect(confYaml["process_config"]["process_collection"]["enabled"]).to eq(false) - expect(confYaml["process_config"]["process_discovery"]["enabled"]).to eq(false) - end - it 'does not have the process agent running' do - expect(is_process_running?("process-agent.exe")).to be_falsey - expect(is_service_running?("datadog-process-agent")).to be_falsey - end -end - -describe 'win-no-subservices' do - include_examples 'Agent install' - include_examples 'Basic Agent behavior' - it_behaves_like 'an Agent with APM disabled' - it_behaves_like 'an Agent with logs disabled' - it_behaves_like 'an Agent with process disabled' -end diff --git a/test/kitchen/test/integration/win-npm-beta-upgrade/rspec_datadog/Gemfile b/test/kitchen/test/integration/win-npm-beta-upgrade/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/win-npm-beta-upgrade/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/win-npm-beta-upgrade/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/win-npm-beta-upgrade/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/win-npm-beta-upgrade/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-npm-beta-upgrade/rspec_datadog/win-npm-beta-upgrade_spec.rb b/test/kitchen/test/integration/win-npm-beta-upgrade/rspec_datadog/win-npm-beta-upgrade_spec.rb deleted file mode 100644 index 4f29c6702bfd9..0000000000000 --- a/test/kitchen/test/integration/win-npm-beta-upgrade/rspec_datadog/win-npm-beta-upgrade_spec.rb +++ /dev/null @@ -1,10 +0,0 @@ -require 'spec_helper' -require 'windows_npm_spec_helper' - -describe 'the agent upgraded from npm beta' do - it_behaves_like 'an installed Agent' - it_behaves_like 'a running Agent with no errors' - it_behaves_like 'a Windows Agent with NPM driver installed' - it_behaves_like 'a Windows Agent with NPM running' - it_behaves_like 'an upgraded Agent with the expected version' -end diff --git a/test/kitchen/test/integration/win-npm-beta-upgrade/rspec_datadog/windows_npm_spec_helper.rb b/test/kitchen/test/integration/win-npm-beta-upgrade/rspec_datadog/windows_npm_spec_helper.rb deleted file mode 120000 index 7a89ca8b118c7..0000000000000 --- a/test/kitchen/test/integration/win-npm-beta-upgrade/rspec_datadog/windows_npm_spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/windows_npm_spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-npm-no-npm-option/rspec_datadog/Gemfile b/test/kitchen/test/integration/win-npm-no-npm-option/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/win-npm-no-npm-option/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/win-npm-no-npm-option/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/win-npm-no-npm-option/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/win-npm-no-npm-option/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-npm-no-npm-option/rspec_datadog/win-npm-no-npm-option_spec.rb b/test/kitchen/test/integration/win-npm-no-npm-option/rspec_datadog/win-npm-no-npm-option_spec.rb deleted file mode 100644 index 4b1ad54ab4d07..0000000000000 --- a/test/kitchen/test/integration/win-npm-no-npm-option/rspec_datadog/win-npm-no-npm-option_spec.rb +++ /dev/null @@ -1,10 +0,0 @@ -require 'spec_helper' -require 'windows_npm_spec_helper.rb' - -describe 'the agent installed with no npm options' do - it_behaves_like 'an installed Agent' - it_behaves_like 'a running Agent with no errors' - it_behaves_like 'a Windows Agent with NPM driver installed' - it_behaves_like 'a Windows Agent with NPM driver disabled' - - end \ No newline at end of file diff --git a/test/kitchen/test/integration/win-npm-no-npm-option/rspec_datadog/windows_npm_spec_helper.rb b/test/kitchen/test/integration/win-npm-no-npm-option/rspec_datadog/windows_npm_spec_helper.rb deleted file mode 120000 index 7a89ca8b118c7..0000000000000 --- a/test/kitchen/test/integration/win-npm-no-npm-option/rspec_datadog/windows_npm_spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/windows_npm_spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-npm-reinstall-option/rspec_datadog/Gemfile b/test/kitchen/test/integration/win-npm-reinstall-option/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/win-npm-reinstall-option/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/win-npm-reinstall-option/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/win-npm-reinstall-option/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/win-npm-reinstall-option/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-npm-reinstall-option/rspec_datadog/win-npm-reinstall-option_spec.rb b/test/kitchen/test/integration/win-npm-reinstall-option/rspec_datadog/win-npm-reinstall-option_spec.rb deleted file mode 100644 index 649c3ab9a68b1..0000000000000 --- a/test/kitchen/test/integration/win-npm-reinstall-option/rspec_datadog/win-npm-reinstall-option_spec.rb +++ /dev/null @@ -1,9 +0,0 @@ -require 'spec_helper' -require 'windows_npm_spec_helper' - -describe 'the agent installed with no npm options' do - it_behaves_like 'an installed Agent' - it_behaves_like 'a running Agent with no errors' - it_behaves_like 'a Windows Agent with NPM driver installed' - it_behaves_like 'a Windows Agent with NPM running' -end diff --git a/test/kitchen/test/integration/win-npm-reinstall-option/rspec_datadog/windows_npm_spec_helper.rb b/test/kitchen/test/integration/win-npm-reinstall-option/rspec_datadog/windows_npm_spec_helper.rb deleted file mode 120000 index 7a89ca8b118c7..0000000000000 --- a/test/kitchen/test/integration/win-npm-reinstall-option/rspec_datadog/windows_npm_spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/windows_npm_spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-npm-upgrade-no-npm/rspec_datadog/Gemfile b/test/kitchen/test/integration/win-npm-upgrade-no-npm/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/win-npm-upgrade-no-npm/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/win-npm-upgrade-no-npm/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/win-npm-upgrade-no-npm/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/win-npm-upgrade-no-npm/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-npm-upgrade-no-npm/rspec_datadog/win-npm-upgrade-no-npm_spec.rb b/test/kitchen/test/integration/win-npm-upgrade-no-npm/rspec_datadog/win-npm-upgrade-no-npm_spec.rb deleted file mode 100644 index 7759de3e99fab..0000000000000 --- a/test/kitchen/test/integration/win-npm-upgrade-no-npm/rspec_datadog/win-npm-upgrade-no-npm_spec.rb +++ /dev/null @@ -1,9 +0,0 @@ -require 'spec_helper' -require 'windows_npm_spec_helper' - -describe 'the agent installed with no npm options' do - it_behaves_like 'an installed Agent' - it_behaves_like 'a running Agent with no errors' - it_behaves_like 'a Windows Agent with NPM driver installed' - it_behaves_like 'a Windows Agent with NPM driver disabled' -end \ No newline at end of file diff --git a/test/kitchen/test/integration/win-npm-upgrade-no-npm/rspec_datadog/windows_npm_spec_helper.rb b/test/kitchen/test/integration/win-npm-upgrade-no-npm/rspec_datadog/windows_npm_spec_helper.rb deleted file mode 120000 index 7a89ca8b118c7..0000000000000 --- a/test/kitchen/test/integration/win-npm-upgrade-no-npm/rspec_datadog/windows_npm_spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/windows_npm_spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-npm-upgrade-to-npm-no-csflag/rspec_datadog/Gemfile b/test/kitchen/test/integration/win-npm-upgrade-to-npm-no-csflag/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/win-npm-upgrade-to-npm-no-csflag/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/win-npm-upgrade-to-npm-no-csflag/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/win-npm-upgrade-to-npm-no-csflag/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/win-npm-upgrade-to-npm-no-csflag/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-npm-upgrade-to-npm-no-csflag/rspec_datadog/win-npm-upgrade-to-npm-no-csflag_spec.rb b/test/kitchen/test/integration/win-npm-upgrade-to-npm-no-csflag/rspec_datadog/win-npm-upgrade-to-npm-no-csflag_spec.rb deleted file mode 100644 index 34d70581c6542..0000000000000 --- a/test/kitchen/test/integration/win-npm-upgrade-to-npm-no-csflag/rspec_datadog/win-npm-upgrade-to-npm-no-csflag_spec.rb +++ /dev/null @@ -1,10 +0,0 @@ -require 'spec_helper' -require 'windows_npm_spec_helper' - -describe 'an agent upgraded with NPM added' do - it_behaves_like 'an installed Agent' - it_behaves_like 'a running Agent with no errors' - it_behaves_like 'a Windows Agent with NPM driver installed' - it_behaves_like 'a Windows Agent with NPM running' - it_behaves_like 'an upgraded Agent with the expected version' -end diff --git a/test/kitchen/test/integration/win-npm-upgrade-to-npm-no-csflag/rspec_datadog/windows_npm_spec_helper.rb b/test/kitchen/test/integration/win-npm-upgrade-to-npm-no-csflag/rspec_datadog/windows_npm_spec_helper.rb deleted file mode 120000 index 7a89ca8b118c7..0000000000000 --- a/test/kitchen/test/integration/win-npm-upgrade-to-npm-no-csflag/rspec_datadog/windows_npm_spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/windows_npm_spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-npm-upgrade-to-npm/rspec_datadog/Gemfile b/test/kitchen/test/integration/win-npm-upgrade-to-npm/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/win-npm-upgrade-to-npm/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/win-npm-upgrade-to-npm/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/win-npm-upgrade-to-npm/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/win-npm-upgrade-to-npm/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-npm-upgrade-to-npm/rspec_datadog/win-npm-upgrade-to-npm_spec.rb b/test/kitchen/test/integration/win-npm-upgrade-to-npm/rspec_datadog/win-npm-upgrade-to-npm_spec.rb deleted file mode 100644 index 34d70581c6542..0000000000000 --- a/test/kitchen/test/integration/win-npm-upgrade-to-npm/rspec_datadog/win-npm-upgrade-to-npm_spec.rb +++ /dev/null @@ -1,10 +0,0 @@ -require 'spec_helper' -require 'windows_npm_spec_helper' - -describe 'an agent upgraded with NPM added' do - it_behaves_like 'an installed Agent' - it_behaves_like 'a running Agent with no errors' - it_behaves_like 'a Windows Agent with NPM driver installed' - it_behaves_like 'a Windows Agent with NPM running' - it_behaves_like 'an upgraded Agent with the expected version' -end diff --git a/test/kitchen/test/integration/win-npm-upgrade-to-npm/rspec_datadog/windows_npm_spec_helper.rb b/test/kitchen/test/integration/win-npm-upgrade-to-npm/rspec_datadog/windows_npm_spec_helper.rb deleted file mode 120000 index 7a89ca8b118c7..0000000000000 --- a/test/kitchen/test/integration/win-npm-upgrade-to-npm/rspec_datadog/windows_npm_spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/windows_npm_spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-npm-with-addlocal-all/rspec_datadog/Gemfile b/test/kitchen/test/integration/win-npm-with-addlocal-all/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/win-npm-with-addlocal-all/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/win-npm-with-addlocal-all/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/win-npm-with-addlocal-all/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/win-npm-with-addlocal-all/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-npm-with-addlocal-all/rspec_datadog/win-npm-with-addlocal-all_spec.rb b/test/kitchen/test/integration/win-npm-with-addlocal-all/rspec_datadog/win-npm-with-addlocal-all_spec.rb deleted file mode 100644 index c659e18a27362..0000000000000 --- a/test/kitchen/test/integration/win-npm-with-addlocal-all/rspec_datadog/win-npm-with-addlocal-all_spec.rb +++ /dev/null @@ -1,9 +0,0 @@ -require 'spec_helper' -require 'windows_npm_spec_helper' - -describe 'an agent upgraded with NPM added' do - it_behaves_like 'an installed Agent' - it_behaves_like 'a running Agent with no errors' - it_behaves_like 'a Windows Agent with NPM driver installed' - it_behaves_like 'a Windows Agent with NPM running' -end diff --git a/test/kitchen/test/integration/win-npm-with-addlocal-all/rspec_datadog/windows_npm_spec_helper.rb b/test/kitchen/test/integration/win-npm-with-addlocal-all/rspec_datadog/windows_npm_spec_helper.rb deleted file mode 120000 index 7a89ca8b118c7..0000000000000 --- a/test/kitchen/test/integration/win-npm-with-addlocal-all/rspec_datadog/windows_npm_spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/windows_npm_spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-npm-with-addlocal-npm/rspec_datadog/Gemfile b/test/kitchen/test/integration/win-npm-with-addlocal-npm/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/win-npm-with-addlocal-npm/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/win-npm-with-addlocal-npm/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/win-npm-with-addlocal-npm/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/win-npm-with-addlocal-npm/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-npm-with-addlocal-npm/rspec_datadog/win-npm-with-addlocal-npm_spec.rb b/test/kitchen/test/integration/win-npm-with-addlocal-npm/rspec_datadog/win-npm-with-addlocal-npm_spec.rb deleted file mode 100644 index c659e18a27362..0000000000000 --- a/test/kitchen/test/integration/win-npm-with-addlocal-npm/rspec_datadog/win-npm-with-addlocal-npm_spec.rb +++ /dev/null @@ -1,9 +0,0 @@ -require 'spec_helper' -require 'windows_npm_spec_helper' - -describe 'an agent upgraded with NPM added' do - it_behaves_like 'an installed Agent' - it_behaves_like 'a running Agent with no errors' - it_behaves_like 'a Windows Agent with NPM driver installed' - it_behaves_like 'a Windows Agent with NPM running' -end diff --git a/test/kitchen/test/integration/win-npm-with-addlocal-npm/rspec_datadog/windows_npm_spec_helper.rb b/test/kitchen/test/integration/win-npm-with-addlocal-npm/rspec_datadog/windows_npm_spec_helper.rb deleted file mode 120000 index 7a89ca8b118c7..0000000000000 --- a/test/kitchen/test/integration/win-npm-with-addlocal-npm/rspec_datadog/windows_npm_spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/windows_npm_spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-npm-with-cs-option/rspec_datadog/Gemfile b/test/kitchen/test/integration/win-npm-with-cs-option/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/win-npm-with-cs-option/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/win-npm-with-cs-option/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/win-npm-with-cs-option/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/win-npm-with-cs-option/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-npm-with-cs-option/rspec_datadog/win-npm-with-cs-option_spec.rb b/test/kitchen/test/integration/win-npm-with-cs-option/rspec_datadog/win-npm-with-cs-option_spec.rb deleted file mode 100644 index 1d7e10d67beec..0000000000000 --- a/test/kitchen/test/integration/win-npm-with-cs-option/rspec_datadog/win-npm-with-cs-option_spec.rb +++ /dev/null @@ -1,9 +0,0 @@ -require 'spec_helper' -require 'windows_npm_spec_helper.rb' - -describe 'the agent installed with npm options' do - it_behaves_like 'an installed Agent' - it_behaves_like 'a running Agent with no errors' - it_behaves_like 'a Windows Agent with NPM driver installed' - it_behaves_like 'a Windows Agent with NPM running' -end diff --git a/test/kitchen/test/integration/win-npm-with-cs-option/rspec_datadog/windows_npm_spec_helper.rb b/test/kitchen/test/integration/win-npm-with-cs-option/rspec_datadog/windows_npm_spec_helper.rb deleted file mode 120000 index 7a89ca8b118c7..0000000000000 --- a/test/kitchen/test/integration/win-npm-with-cs-option/rspec_datadog/windows_npm_spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/windows_npm_spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-npm-with-npm-option/rspec_datadog/Gemfile b/test/kitchen/test/integration/win-npm-with-npm-option/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/win-npm-with-npm-option/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/win-npm-with-npm-option/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/win-npm-with-npm-option/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/win-npm-with-npm-option/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-npm-with-npm-option/rspec_datadog/win-npm-with-npm-option_spec.rb b/test/kitchen/test/integration/win-npm-with-npm-option/rspec_datadog/win-npm-with-npm-option_spec.rb deleted file mode 100644 index 52ff3bec79bc3..0000000000000 --- a/test/kitchen/test/integration/win-npm-with-npm-option/rspec_datadog/win-npm-with-npm-option_spec.rb +++ /dev/null @@ -1,9 +0,0 @@ -require 'spec_helper' -require 'windows_npm_spec_helper' - -describe 'the agent installed with the npm option' do - it_behaves_like 'an installed Agent' - it_behaves_like 'a running Agent with no errors' - it_behaves_like 'a Windows Agent with NPM driver installed' - it_behaves_like 'a Windows Agent with NPM running' - end \ No newline at end of file diff --git a/test/kitchen/test/integration/win-npm-with-npm-option/rspec_datadog/windows_npm_spec_helper.rb b/test/kitchen/test/integration/win-npm-with-npm-option/rspec_datadog/windows_npm_spec_helper.rb deleted file mode 120000 index 7a89ca8b118c7..0000000000000 --- a/test/kitchen/test/integration/win-npm-with-npm-option/rspec_datadog/windows_npm_spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/windows_npm_spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-repair/rspec_datadog/Gemfile b/test/kitchen/test/integration/win-repair/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/win-repair/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/win-repair/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/win-repair/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/win-repair/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-repair/rspec_datadog/win-repair_spec.rb b/test/kitchen/test/integration/win-repair/rspec_datadog/win-repair_spec.rb deleted file mode 100644 index 37c4a4e307b41..0000000000000 --- a/test/kitchen/test/integration/win-repair/rspec_datadog/win-repair_spec.rb +++ /dev/null @@ -1,6 +0,0 @@ -require 'spec_helper' - -describe 'win-repair' do - include_examples 'Agent install' - include_examples 'Basic Agent behavior' -end diff --git a/test/kitchen/test/integration/win-secagent-test/rspec_datadog/Gemfile b/test/kitchen/test/integration/win-secagent-test/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/win-secagent-test/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/win-secagent-test/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/win-secagent-test/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/win-secagent-test/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-secagent-test/rspec_datadog/win-secagent-test_spec.rb b/test/kitchen/test/integration/win-secagent-test/rspec_datadog/win-secagent-test_spec.rb deleted file mode 100644 index 5be3ff7811b77..0000000000000 --- a/test/kitchen/test/integration/win-secagent-test/rspec_datadog/win-secagent-test_spec.rb +++ /dev/null @@ -1,43 +0,0 @@ -require 'spec_helper' -#require 'sysprobe_spec_helper' -#require 'windows_npm_spec_helper' -require 'open3' - -GOLANG_TEST_FAILURE = /FAIL:/ - -def check_output(output, wait_thr) - test_failures = [] - - output.each_line do |line| - puts line - test_failures << line.strip if line =~ GOLANG_TEST_FAILURE - end - - if test_failures.empty? && !wait_thr.value.success? - test_failures << "Test command exited with status (#{wait_thr.value.exitstatus}) but no failures were captured." - end - - test_failures -end - -print `Powershell -C "Get-WmiObject Win32_OperatingSystem | Select Caption, OSArchitecture, Version, BuildNumber | FL"` - -wait_until_service_stopped('datadog-agent-sysprobe') - -root_dir = "#{ENV['USERPROFILE']}\\AppData\\Local\\Temp\\kitchen\\cache\\security-agent\\tests".gsub("\\", File::SEPARATOR) -print "#{root_dir}\n" -print "#{Dir.entries(root_dir)}\n" - -Dir.glob("#{root_dir}/**/testsuite.exe").each do |f| - #pkg = f.delete_prefix(root_dir).delete_suffix('/testsuite.exe') - describe "security-agent tests for #{f}" do - it 'successfully runs' do - Dir.chdir(File.dirname(f)) do - Open3.popen2e(f, "-test.v", "-test.timeout=10m", "-test.count=1") do |_, output, wait_thr| - test_failures = check_output(output, wait_thr) - expect(test_failures).to be_empty, test_failures.join("\n") - end - end - end - end -end diff --git a/test/kitchen/test/integration/win-sysprobe-test/rspec_datadog/Gemfile b/test/kitchen/test/integration/win-sysprobe-test/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/win-sysprobe-test/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/win-sysprobe-test/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/win-sysprobe-test/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/win-sysprobe-test/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-sysprobe-test/rspec_datadog/sysprobe_spec_helper.rb b/test/kitchen/test/integration/win-sysprobe-test/rspec_datadog/sysprobe_spec_helper.rb deleted file mode 100644 index f7c183282e725..0000000000000 --- a/test/kitchen/test/integration/win-sysprobe-test/rspec_datadog/sysprobe_spec_helper.rb +++ /dev/null @@ -1,52 +0,0 @@ -require "rspec/core/formatters/base_text_formatter" - -class CustomFormatter - RSpec::Core::Formatters.register self, :example_passed, :example_failed, :dump_summary, :dump_failures, :example_group_started, :example_group_finished - - def initialize(output) - @output = output - end - - # Remove "."'s from the test execution output - def example_passed(_) - end - - # Remove "F"'s from the test execution output - def example_failed(_) - end - - def example_group_started(notification) - @output << "\nstarted #{notification.group.description}\n" - end - - def example_group_finished(notification) - @output << "finished #{notification.group.description}\n\n" - end - - def dump_summary(notification) - @output << "Finished in #{RSpec::Core::Formatters::Helpers.format_duration(notification.duration)}.\n" - @output << "Platform: #{`Powershell -C \"Get-WmiObject Win32_OperatingSystem | Select Caption, OSArchitecture, Version, BuildNumber | FL\"`}\n\n" - end - - def dump_failures(notification) # ExamplesNotification - if notification.failed_examples.length > 0 - @output << "\n#{RSpec::Core::Formatters::ConsoleCodes.wrap("FAILURES:", :failure)}\n\n" - @output << error_summary(notification) - end - end - - private - - def error_summary(notification) - summary_output = notification.failed_examples.map do |example| - "#{example.full_description}:\n#{example.execution_result.exception.message}\n\n" - end - - summary_output.join - end -end - - -RSpec.configure do |config| - config.formatter = CustomFormatter -end diff --git a/test/kitchen/test/integration/win-sysprobe-test/rspec_datadog/win-sysprobe-test_spec.rb b/test/kitchen/test/integration/win-sysprobe-test/rspec_datadog/win-sysprobe-test_spec.rb deleted file mode 100644 index 3e1efaac7d850..0000000000000 --- a/test/kitchen/test/integration/win-sysprobe-test/rspec_datadog/win-sysprobe-test_spec.rb +++ /dev/null @@ -1,39 +0,0 @@ -require 'spec_helper' -require 'open3' - -GOLANG_TEST_FAILURE = /FAIL:/ - -def check_output(output, wait_thr) - test_failures = [] - - output.each_line do |line| - puts line - test_failures << line.strip if line =~ GOLANG_TEST_FAILURE - end - - if test_failures.empty? && !wait_thr.value.success? - test_failures << "Test command exited with status (#{wait_thr.value.exitstatus}) but no failures were captured." - end - - test_failures -end - -print `Powershell -C "Get-WmiObject Win32_OperatingSystem | Select Caption, OSArchitecture, Version, BuildNumber | FL"` - -root_dir = "#{ENV['USERPROFILE']}\\AppData\\Local\\Temp\\kitchen\\cache\\system-probe\\tests".gsub("\\", File::SEPARATOR) -print root_dir -print Dir.entries(root_dir) - -Dir.glob("#{root_dir}/**/testsuite.exe").each do |f| - pkg = f.delete_prefix(root_dir).delete_suffix('/testsuite') - describe "system probe tests for #{pkg}" do - it 'successfully runs' do - Dir.chdir(File.dirname(f)) do - Open3.popen2e(f, "-test.v", "-test.timeout=10m", "-test.count=1") do |_, output, wait_thr| - test_failures = check_output(output, wait_thr) - expect(test_failures).to be_empty, test_failures.join("\n") - end - end - end - end -end diff --git a/test/kitchen/test/integration/win-sysprobe-test/rspec_datadog/windows_npm_spec_helper.rb b/test/kitchen/test/integration/win-sysprobe-test/rspec_datadog/windows_npm_spec_helper.rb deleted file mode 120000 index 7a89ca8b118c7..0000000000000 --- a/test/kitchen/test/integration/win-sysprobe-test/rspec_datadog/windows_npm_spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/windows_npm_spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-upgrade-rollback/rspec_datadog/Gemfile b/test/kitchen/test/integration/win-upgrade-rollback/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/win-upgrade-rollback/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/win-upgrade-rollback/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/win-upgrade-rollback/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/win-upgrade-rollback/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-upgrade-rollback/rspec_datadog/win-upgrade-rollback_spec.rb b/test/kitchen/test/integration/win-upgrade-rollback/rspec_datadog/win-upgrade-rollback_spec.rb deleted file mode 100644 index 5b9fecaf2761f..0000000000000 --- a/test/kitchen/test/integration/win-upgrade-rollback/rspec_datadog/win-upgrade-rollback_spec.rb +++ /dev/null @@ -1,8 +0,0 @@ -require 'spec_helper' - -describe 'win-upgrade-rollback' do - include_examples 'Agent install' - include_examples 'Basic Agent behavior' - it_behaves_like 'an upgraded Agent with the expected version' - include_examples 'Agent uninstall' -end diff --git a/test/kitchen/test/integration/win-user/rspec_datadog/Gemfile b/test/kitchen/test/integration/win-user/rspec_datadog/Gemfile deleted file mode 100644 index 28ffa17ad1a72..0000000000000 --- a/test/kitchen/test/integration/win-user/rspec_datadog/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem "rspec" -gem "rspec_junit_formatter" diff --git a/test/kitchen/test/integration/win-user/rspec_datadog/spec_helper.rb b/test/kitchen/test/integration/win-user/rspec_datadog/spec_helper.rb deleted file mode 120000 index 257bfb51db84c..0000000000000 --- a/test/kitchen/test/integration/win-user/rspec_datadog/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -../../common/rspec_datadog/spec_helper.rb \ No newline at end of file diff --git a/test/kitchen/test/integration/win-user/rspec_datadog/win-user_spec.rb b/test/kitchen/test/integration/win-user/rspec_datadog/win-user_spec.rb deleted file mode 100644 index 176f0b78503d1..0000000000000 --- a/test/kitchen/test/integration/win-user/rspec_datadog/win-user_spec.rb +++ /dev/null @@ -1,142 +0,0 @@ -require 'spec_helper' - -=begin -Each SDDL is defined as follows (split across multiple lines here for readability, but they're -all concatenated into one) -O:owner_sid -G:group_sid -D:dacl_flags(string_ace1)(string_ace2)... (string_acen) -S:sacl_flags(string_ace1)(string_ace2)... (string_acen) - -Well known SID strings we're interested in -SY = LOCAL_SYSTEM -BU = Builtin Users -BA = Builtin Administrators - -So, the string O:SYG:SY indicates owner sid is LOCAL_SYSTEM group sid is SYSTEM -Then, D: indicates what comes after is the DACL, which is a list of ACE strings - -Ace strings are defined as -ace_type;ace_flags;rights;object_guid;inherit_object_guid;account_sid;(resource_attribute) - -Ace types include -A = Allowed -D = Denied - -Ace flags -ID = this ace inherited from parent - -rights -GA = Generic All -FA = File All access -FR = File Read -FW = File Write -WD = Write DAC (change permissions) - -Putting it all together, the sddl that we expect for Datadog.yaml is -O:SYG:SYD:(A;;FA;;;SY)(A;ID;WD;;;BU)(A;ID;FA;;;BA)(A;ID;FA;;;SY)(A;ID;FA;;;#{dd_user_sid}) - -Owner: Local System -Group: Local System - -A;;FA;;;SY grants File All Access to Local System -A;ID;WD;;;BU grants members of the builtin users group Change Permissions; this ACE is inherited -A;ID;FA;;;BA grants Fila All Access to Builtin Administrators; this ACE was inherited from the parent -A;ID;FA;;;SY grants LocalSystem file AllAccess -A;ID;FA;;;#{dd_user_id} grants the ddagentuser FileAllAccess, this ACE is inherited from the parent -=end - -shared_examples_for 'an Agent with valid permissions' do - dd_user_sid = get_user_sid('ddagentuser') - it 'has proper permissions on programdata\datadog' do - # og+ng installers set protected explicit ACE on the config root - expected_sddl = "O:SYG:SYD:PAI(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;FA;;;#{dd_user_sid})" - actual_sddl = get_sddl_for_object("#{ENV['ProgramData']}\\Datadog") - - expect(actual_sddl).to have_sddl_equal_to(expected_sddl) - end - it 'has proper permissions on datadog.yaml' do - # ng installer sets inherited ACE - expected_sddl = "O:SYG:SYD:AI(A;ID;FA;;;SY)(A;ID;FA;;;BA)(A;ID;FA;;;#{dd_user_sid})" - actual_sddl = get_sddl_for_object("#{ENV['ProgramData']}\\Datadog\\datadog.yaml") - - expect(actual_sddl).to have_sddl_equal_to(expected_sddl) - end - it 'has proper permissions on the conf.d directory' do - # A,OICI;FA;;;SY = Allows Object Inheritance (OI) container inherit (CI); File All Access to LocalSystem - # A,OICIID;WD;;;BU = Allows OI, CI, this is an inherited ACE (ID), change permissions (WD), to built-in users - # A,OICIID;FA;;;BA = Allow OI, CI, ID, File All Access (FA) to Builtin Administrators - # A,OICIID;FA;;;SY = Inherited right of OI, CI, (FA) to LocalSystem - # A,OICIID;FA;;;dd_user_sid = explicit right assignment of OI, CI, FA to the dd-agent user, inherited from the parent - - # ng installer sets inherited ACE - expected_sddl = "O:SYG:SYD:AI(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;#{dd_user_sid})" - actual_sddl = get_sddl_for_object("#{ENV['ProgramData']}\\Datadog\\conf.d") - - expect(actual_sddl).to have_sddl_equal_to(expected_sddl) - - end - - it 'has the proper permissions on the DataDog registry key' do - # A;;KA;;;SY = Allows KA (KeyAllAccess) to local system - # A;;KA;;;BA = Allows KA (KeyAllAccess) to BA builtin administrators - # A;;KA;; allows KEY_ALL_ACCESS to the dd agent user - # A;OICIIO; Object Inherit AC, container inherit ace, Inherit only ace - # CCDCLCSWRPWPSDRCWDWOGA CC = SDDL Create Child - # DC = SDDL Delete Child - # LC = Listchildrent - # SW = self write - # RP = read property - # WP = write property - # SD = standard delete - # RC = read control - # WD = WRITE DAC - # WO = Write owner - # GA = Generic All - # for dd-agent-user - # A;CIID;KR;;;BU = Allow Container Inherit/inherited ace KeyRead to BU (builtin users) - # A;CIID;KA;;;BA = KeyAllAccess (builtin admins) - # A;CIID;KA;;;SY = Keyallaccess (local system) - # A;CIIOID;KA;;;CO= container inherit, inherit only, inherited ace, keyallAccess, to creator/owner - # A;CIID;KR;;;AC = allow container inherit/inherited ace Key Read to AC () - expected_sddl = "O:SYG:SYD:AI(A;;KA;;;SY)(A;;KA;;;BA)(A;;KA;;;#{dd_user_sid})(A;CIID;KR;;;BU)(A;CIID;KA;;;BA)(A;CIID;KA;;;SY)(A;CIIOID;KA;;;CO)(A;CIID;KR;;;AC)" - expected_sddl_with_edge = "O:SYG:SYD:AI(A;;KA;;;SY)(A;;KA;;;BA)(A;;KA;;;#{dd_user_sid})(A;CIID;KR;;;BU)(A;CIID;KA;;;BA)(A;CIID;KA;;;SY)(A;CIIOID;KA;;;CO)(A;CIID;KR;;;AC)(A;CIID;KR;;;S-1-15-3-1024-1065365936-1281604716-3511738428-1654721687-432734479-3232135806-4053264122-3456934681)" - - ## sigh. M$ added a mystery sid some time back, that Edge/IE use for sandboxing, - ## and it's an inherited ace. Allow that one, too - - actual_sddl = get_sddl_for_object("HKLM:Software\\Datadog\\Datadog Agent") - - expect(actual_sddl).to have_sddl_equal_to(expected_sddl) - .or have_sddl_equal_to(expected_sddl_with_edge) - end - - it 'has agent.exe running as ddagentuser' do - expect(get_username_from_tasklist("agent.exe")).to eq("ddagentuser") - end - it 'has trace agent running as ddagentuser' do - expect(get_username_from_tasklist("trace-agent.exe")).to eq("ddagentuser") - end - it 'has process agent running as local_system' do - expect(get_username_from_tasklist("process-agent.exe")).to eq("SYSTEM") - end - secdata = get_security_settings - it 'has proper security rights assigned' do - expect(check_has_security_right(secdata, "SeDenyInteractiveLogonRight", "ddagentuser")).to be_truthy - expect(check_has_security_right(secdata, "SeDenyNetworkLogonRight", "ddagentuser")).to be_truthy - expect(check_has_security_right(secdata, "SeDenyRemoteInteractiveLogonRight", "ddagentuser")).to be_truthy - end - it 'is in proper groups' do - expect(check_is_user_in_group("ddagentuser", "Performance Monitor Users")).to be_truthy - end -end -describe 'dd-agent-win-user' do -# it_behaves_like 'an installed Agent' - it_behaves_like 'an Agent with APM enabled' - it_behaves_like 'an Agent with process enabled' - it_behaves_like 'an Agent with valid permissions' - it_behaves_like 'a running Agent with no errors' - it_behaves_like 'a running Agent with APM' - it_behaves_like 'a running Agent with process enabled' -end - diff --git a/test/kitchen/uservars-example.json b/test/kitchen/uservars-example.json deleted file mode 100644 index 0194b1795bef2..0000000000000 --- a/test/kitchen/uservars-example.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "global" : { - "comment-global" : "Environment variables that will be overridden for every target", - "comment-WINDOWS_AGENT_URL": "Override download target (useful for testing specific build). Must end in '/'", - "WINDOWS_AGENT_URL" : "https://s3.amazonaws.com/ddagent-windows-stable/", - "comment-WINDOWS_AGENT_FILE": "Override download file (must _not_ end in msi)", - "WINDOWS_AGENT_FILE" : "datadog-agent-7-latest.amd64", - "AGENT_VERSION" : "7.27.0", - "DD_AGENT_EXPECTED_VERSION" : "7.27.0" - }, - "hyperv" : { - "comment-hyperv-vars": "Variables specific to the hyper-v driver", - "KITCHEN_HYPERV_SWITCH" : "public-eth", - "KITCHEN_HYPERV_MEM_MIN" : "4GB", - "VM_USERNAME" : "administrator", - "SERVER_PASSWORD" : "" - }, - "ec2" : { - "comment-ec2-vars": "Variables specific to the hyper-v driver", - "comment_SSH_KEY": "path to ssh key used to create instances", - "KITCHEN_EC2_SSH_KEY_PATH" : "", - "comment_SSH_ID": "friendly name in EC2 associated with above ssh key", - "KITCHEN_EC2_SSH_KEY_ID" : "derek-sandbox-2", - "KITCHEN_EC2_TAG_CREATOR" : "db" - }, - "azure" : { - - } -} \ No newline at end of file diff --git a/test/new-e2e/tests/npm/ec2_1host_test.go b/test/new-e2e/tests/npm/ec2_1host_test.go index 3ed2cb8de79e0..ba07540f58ca7 100644 --- a/test/new-e2e/tests/npm/ec2_1host_test.go +++ b/test/new-e2e/tests/npm/ec2_1host_test.go @@ -79,8 +79,8 @@ func TestEC2VMSuite(t *testing.T) { e2eParams := []e2e.SuiteOption{e2e.WithProvisioner(e2e.NewTypedPulumiProvisioner("hostHttpbin", hostDockerHttpbinEnvProvisioner(), nil))} - // Source of our kitchen CI images test/kitchen/platforms.json - // Other VM image can be used, our kitchen CI images test/kitchen/platforms.json + // Source of our E2E CI images test/new-e2e/tests/agent-platform/platforms.json + // Other VM image can be used, our E2E CI images test/new-e2e/tests/agent-platform/platforms.json // ec2params.WithImageName("ami-a4dc46db", os.AMD64Arch, ec2os.AmazonLinuxOS) // ubuntu-16-04-4.4 e2e.Run(t, s, e2eParams...) } diff --git a/test/new-e2e/tests/sysprobe-functional/.gitignore b/test/new-e2e/tests/sysprobe-functional/.gitignore new file mode 100644 index 0000000000000..433a10da9f0e5 --- /dev/null +++ b/test/new-e2e/tests/sysprobe-functional/.gitignore @@ -0,0 +1,7 @@ +# Exclude system-probe test files generated by running inv -e system-probe.kitchen-prepare +artifacts/* +clang-bpf +llc-bpf +gotestsum +test2json +minimized-btfs.tar.xz diff --git a/test/new-e2e/tests/sysprobe-functional/apmtags_test.go b/test/new-e2e/tests/sysprobe-functional/apmtags_test.go index fad68dd02267d..3aff8ab90c5ae 100644 --- a/test/new-e2e/tests/sysprobe-functional/apmtags_test.go +++ b/test/new-e2e/tests/sysprobe-functional/apmtags_test.go @@ -17,13 +17,14 @@ import ( "github.com/DataDog/test-infra-definitions/components/datadog/agentparams" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/components" "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e" "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments" awsHostWindows "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments/aws/host/windows" "github.com/DataDog/datadog-agent/test/new-e2e/tests/windows" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) type apmvmSuite struct { @@ -107,9 +108,7 @@ func (v *apmvmSuite) SetupSuite() { currDir, err := os.Getwd() require.NoError(t, err) - reporoot, _ := filepath.Abs(filepath.Join(currDir, "..", "..", "..", "..")) - kitchenDir := filepath.Join(reporoot, "test", "kitchen", "site-cookbooks") - v.testspath = filepath.Join(kitchenDir, "dd-system-probe-check", "files", "default", "tests") + v.testspath = filepath.Join(currDir, "artifacts") // this creates the VM. v.BaseSuite.SetupSuite() diff --git a/test/new-e2e/tests/sysprobe-functional/sysprobe_test.go b/test/new-e2e/tests/sysprobe-functional/sysprobe_test.go index 4e41c685bbd7d..888f9427e4413 100644 --- a/test/new-e2e/tests/sysprobe-functional/sysprobe_test.go +++ b/test/new-e2e/tests/sysprobe-functional/sysprobe_test.go @@ -50,9 +50,7 @@ func (v *vmSuite) SetupSuite() { currDir, err := os.Getwd() require.NoError(t, err) - reporoot, _ := filepath.Abs(filepath.Join(currDir, "..", "..", "..", "..")) - kitchenDir := filepath.Join(reporoot, "test", "kitchen", "site-cookbooks") - v.testspath = filepath.Join(kitchenDir, "dd-system-probe-check", "files", "default", "tests") + v.testspath = filepath.Join(currDir, "artifacts") } func (v *vmSuite) TestSystemProbeNPMSuite() { From 54e744f5a00273a2f8bc8568555fa02f5a8685a0 Mon Sep 17 00:00:00 2001 From: Alexandre Yang Date: Fri, 6 Dec 2024 10:30:54 +0100 Subject: [PATCH 293/439] [HA Agent] Refactor is_leader to state (#31777) --- comp/haagent/def/component.go | 4 +-- .../{impl/utils_test.go => def/state.go} | 19 ++++++------ comp/haagent/impl/haagent.go | 31 ++++++++++++------- comp/haagent/impl/haagent_test.go | 7 +++-- comp/haagent/impl/utils.go | 13 -------- comp/haagent/mock/mock.go | 7 ++++- 6 files changed, 43 insertions(+), 38 deletions(-) rename comp/haagent/{impl/utils_test.go => def/state.go} (51%) delete mode 100644 comp/haagent/impl/utils.go diff --git a/comp/haagent/def/component.go b/comp/haagent/def/component.go index f1d3f53ce3fa5..7115988e5501b 100644 --- a/comp/haagent/def/component.go +++ b/comp/haagent/def/component.go @@ -16,8 +16,8 @@ type Component interface { // GetGroup returns the value of ha_agent.group GetGroup() string - // IsLeader returns true if the current Agent is leader - IsLeader() bool + // GetState returns current HA agent state + GetState() State // SetLeader takes the leader agent hostname as input, if it matches the current agent hostname, // the isLeader state is set to true, otherwise false. diff --git a/comp/haagent/impl/utils_test.go b/comp/haagent/def/state.go similarity index 51% rename from comp/haagent/impl/utils_test.go rename to comp/haagent/def/state.go index 2e9f324c30890..e9d873abc03f3 100644 --- a/comp/haagent/impl/utils_test.go +++ b/comp/haagent/def/state.go @@ -3,15 +3,16 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2024-present Datadog, Inc. -package haagentimpl +package haagent -import ( - "testing" +// State type for HA Agent State +type State string - "github.com/stretchr/testify/assert" +const ( + // Active HA Agent state + Active State = "active" + // Standby HA Agent state + Standby State = "standby" + // Unknown HA Agent state + Unknown State = "unknown" ) - -func Test_leaderStatusToRole(t *testing.T) { - assert.Equal(t, "leader", leaderStateToRole(true)) - assert.Equal(t, "follower", leaderStateToRole(false)) -} diff --git a/comp/haagent/impl/haagent.go b/comp/haagent/impl/haagent.go index f670a0103dbb3..40635092d42f7 100644 --- a/comp/haagent/impl/haagent.go +++ b/comp/haagent/impl/haagent.go @@ -10,6 +10,7 @@ import ( "encoding/json" log "github.com/DataDog/datadog-agent/comp/core/log/def" + haagent "github.com/DataDog/datadog-agent/comp/haagent/def" "github.com/DataDog/datadog-agent/pkg/remoteconfig/state" "github.com/DataDog/datadog-agent/pkg/util/hostname" "go.uber.org/atomic" @@ -18,14 +19,14 @@ import ( type haAgentImpl struct { log log.Component haAgentConfigs *haAgentConfigs - isLeader *atomic.Bool + state *atomic.String } func newHaAgentImpl(log log.Component, haAgentConfigs *haAgentConfigs) *haAgentImpl { return &haAgentImpl{ log: log, haAgentConfigs: haAgentConfigs, - isLeader: atomic.NewBool(false), + state: atomic.NewString(string(haagent.Unknown)), } } @@ -37,8 +38,8 @@ func (h *haAgentImpl) GetGroup() string { return h.haAgentConfigs.group } -func (h *haAgentImpl) IsLeader() bool { - return h.isLeader.Load() +func (h *haAgentImpl) GetState() haagent.State { + return haagent.State(h.state.Load()) } func (h *haAgentImpl) SetLeader(leaderAgentHostname string) { @@ -47,13 +48,21 @@ func (h *haAgentImpl) SetLeader(leaderAgentHostname string) { h.log.Warnf("error getting the hostname: %v", err) return } - newIsLeader := agentHostname == leaderAgentHostname - prevIsLeader := h.isLeader.Load() - if newIsLeader != prevIsLeader { - h.log.Infof("agent role switched from %s to %s", leaderStateToRole(prevIsLeader), leaderStateToRole(newIsLeader)) - h.isLeader.Store(newIsLeader) + + var newState haagent.State + if agentHostname == leaderAgentHostname { + newState = haagent.Active + } else { + newState = haagent.Standby + } + + prevState := h.GetState() + + if newState != prevState { + h.log.Infof("agent state switched from %s to %s", prevState, newState) + h.state.Store(string(newState)) } else { - h.log.Debugf("agent role not changed (current role: %s)", leaderStateToRole(prevIsLeader)) + h.log.Debugf("agent state not changed (current state: %s)", prevState) } } @@ -61,7 +70,7 @@ func (h *haAgentImpl) SetLeader(leaderAgentHostname string) { // When ha-agent is disabled, the agent behave as standalone agent (non HA) and will always run all integrations. func (h *haAgentImpl) ShouldRunIntegration(integrationName string) bool { if h.Enabled() && validHaIntegrations[integrationName] { - return h.isLeader.Load() + return h.GetState() == haagent.Active } return true } diff --git a/comp/haagent/impl/haagent_test.go b/comp/haagent/impl/haagent_test.go index 8821843e21c73..a83822de20431 100644 --- a/comp/haagent/impl/haagent_test.go +++ b/comp/haagent/impl/haagent_test.go @@ -10,6 +10,7 @@ import ( "github.com/DataDog/datadog-agent/comp/core/config" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" + haagent "github.com/DataDog/datadog-agent/comp/haagent/def" "github.com/DataDog/datadog-agent/pkg/remoteconfig/state" "github.com/DataDog/datadog-agent/pkg/util/fxutil" "github.com/stretchr/testify/assert" @@ -62,11 +63,13 @@ func Test_IsLeader_SetLeader(t *testing.T) { } haAgent := newTestHaAgentComponent(t, agentConfigs).Comp + assert.Equal(t, haagent.Unknown, haAgent.GetState()) + haAgent.SetLeader("another-agent") - assert.False(t, haAgent.IsLeader()) + assert.Equal(t, haagent.Standby, haAgent.GetState()) haAgent.SetLeader("my-agent-hostname") - assert.True(t, haAgent.IsLeader()) + assert.Equal(t, haagent.Active, haAgent.GetState()) } func Test_RCListener(t *testing.T) { diff --git a/comp/haagent/impl/utils.go b/comp/haagent/impl/utils.go deleted file mode 100644 index 2ce6dee05203b..0000000000000 --- a/comp/haagent/impl/utils.go +++ /dev/null @@ -1,13 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2024-present Datadog, Inc. - -package haagentimpl - -func leaderStateToRole(isLeader bool) string { - if isLeader { - return "leader" - } - return "follower" -} diff --git a/comp/haagent/mock/mock.go b/comp/haagent/mock/mock.go index 37c5cf4aa9916..f4d713d93f271 100644 --- a/comp/haagent/mock/mock.go +++ b/comp/haagent/mock/mock.go @@ -21,6 +21,7 @@ type mockHaAgent struct { group string enabled bool + state haagent.State } func (m *mockHaAgent) GetGroup() string { @@ -34,7 +35,7 @@ func (m *mockHaAgent) Enabled() bool { func (m *mockHaAgent) SetLeader(_ string) { } -func (m *mockHaAgent) IsLeader() bool { return false } +func (m *mockHaAgent) GetState() haagent.State { return haagent.Standby } func (m *mockHaAgent) SetGroup(group string) { m.group = group @@ -43,6 +44,9 @@ func (m *mockHaAgent) SetGroup(group string) { func (m *mockHaAgent) SetEnabled(enabled bool) { m.enabled = enabled } +func (m *mockHaAgent) SetState(state haagent.State) { + m.state = state +} func (m *mockHaAgent) ShouldRunIntegration(_ string) bool { return true @@ -54,6 +58,7 @@ type Component interface { SetGroup(string) SetEnabled(bool) + SetState(haagent.State) } // NewMockHaAgent returns a new Mock From 57d04939974ef4f5a5a120d8bf69a9420bd46fed Mon Sep 17 00:00:00 2001 From: Arthur Bellal Date: Fri, 6 Dec 2024 10:48:15 +0100 Subject: [PATCH 294/439] (fleet) isolate the downloader in its own sub cmd (#31795) --- .github/CODEOWNERS | 1 + .gitlab/package_build/installer.yml | 2 +- .../main.go} | 4 +- cmd/installer/main.go | 2 - pkg/fleet/installer/setup.sh | 47 ---------- pkg/fleet/installer/setup/install.sh | 52 ++++++++++++ tasks/installer.py | 85 ++++++++----------- 7 files changed, 89 insertions(+), 104 deletions(-) rename cmd/{installer/main_bootstrapper.go => installer-downloader/main.go} (91%) delete mode 100644 pkg/fleet/installer/setup.sh create mode 100644 pkg/fleet/installer/setup/install.sh diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 6c22b2c34e4b8..ad6e11974b350 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -240,6 +240,7 @@ /cmd/systray/ @DataDog/windows-agent /cmd/security-agent/ @DataDog/agent-security /cmd/installer/ @DataDog/fleet @DataDog/windows-agent +/cmd/installer-downloader/ @DataDog/fleet /dev/ @DataDog/agent-devx-loops /devenv/ @DataDog/agent-devx-loops diff --git a/.gitlab/package_build/installer.yml b/.gitlab/package_build/installer.yml index 19dd062fd5461..443b2fe52318b 100644 --- a/.gitlab/package_build/installer.yml +++ b/.gitlab/package_build/installer.yml @@ -103,7 +103,7 @@ installer-install-scripts: - !reference [.retrieve_linux_go_deps] - echo "About to build for $RELEASE_VERSION" - mkdir -p $OMNIBUS_PACKAGE_DIR - - inv -e installer.build-linux-script && mv ./bin/installer/setup.sh $OMNIBUS_PACKAGE_DIR/install-djm.sh + - inv -e installer.build-linux-script && mv ./bin/installer/install.sh $OMNIBUS_PACKAGE_DIR/install-djm.sh - ls -la $OMNIBUS_PACKAGE_DIR artifacts: expire_in: 2 weeks diff --git a/cmd/installer/main_bootstrapper.go b/cmd/installer-downloader/main.go similarity index 91% rename from cmd/installer/main_bootstrapper.go rename to cmd/installer-downloader/main.go index 25f95f8ef281f..f964080a4315b 100644 --- a/cmd/installer/main_bootstrapper.go +++ b/cmd/installer-downloader/main.go @@ -3,9 +3,7 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2023-present Datadog, Inc. -//go:build bootstrapper - -// Package main implements 'installer'. +// Package main implements the installer downloader package main import ( diff --git a/cmd/installer/main.go b/cmd/installer/main.go index 1cd198631d420..e7d94bb6d70fe 100644 --- a/cmd/installer/main.go +++ b/cmd/installer/main.go @@ -3,8 +3,6 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2023-present Datadog, Inc. -//go:build !bootstrapper - // Package main implements 'installer'. package main diff --git a/pkg/fleet/installer/setup.sh b/pkg/fleet/installer/setup.sh deleted file mode 100644 index a3dee1323ce00..0000000000000 --- a/pkg/fleet/installer/setup.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash -set -e -# This script is used to install Datadog. - -if [ "$(uname -s)" != "Linux" ] || { [ "$(uname -m)" != "x86_64" ] && [ "$(uname -m)" != "aarch64" ]; }; then - echo "This installer only supports linux running on amd64 or arm64." >&2 - exit 1 -fi - -installer_path="/opt/datadog-installer-bootstrap" - -install() { - if [ "$UID" == "0" ]; then - sudo_cmd='' - else - sudo_cmd='sudo' - fi - - case "$(uname -m)" in - x86_64) - echo "${installer_bin_linux_amd64}" | base64 -d | $sudo_cmd tee "${installer_path}" >/dev/null - ;; - aarch64) - echo "${installer_bin_linux_arm64}" | base64 -d | $sudo_cmd tee "${installer_path}" >/dev/null - ;; - esac - $sudo_cmd chmod +x "${installer_path}" - echo "Running the installer binary..." - $sudo_cmd "${installer_path}" "$@" - $sudo_cmd rm -f "${installer_path}" -} - -# Embedded installer binaries. -# Source: https://github.com/DataDog/datadog-agent/tree/INSTALLER_COMMIT/cmd/installer -installer_bin_linux_amd64=$( - cat <&2 + exit 1 +fi + +tmp_dir="/opt/datadog-packages/tmp" +downloader_path="${tmp_dir}/download-installer" + +install() { + if [ "$UID" == "0" ]; then + sudo_cmd='' + else + sudo_cmd='sudo' + fi + + $sudo_cmd mkdir -p "${tmp_dir}" + case "$(uname -m)" in + x86_64) + echo "${downloader_bin_linux_amd64}" | base64 -d | $sudo_cmd tee "${downloader_path}" >/dev/null + ;; + aarch64) + echo "${downloader_bin_linux_arm64}" | base64 -d | $sudo_cmd tee "${downloader_path}" >/dev/null + ;; + esac + $sudo_cmd chmod +x "${downloader_path}" + echo "Starting the Datadog installer..." + $sudo_cmd "${downloader_path}" "$@" + $sudo_cmd rm -f "${downloader_path}" +} + +# Embedded binaries used to install Datadog. +# Source: https://github.com/DataDog/datadog-agent/tree/INSTALLER_COMMIT/pkg/fleet/installer +# DO NOT EDIT THIS SECTION MANUALLY. +downloader_bin_linux_amd64=$( + cat < Date: Fri, 6 Dec 2024 11:34:20 +0100 Subject: [PATCH 295/439] Fix comp/otelcol/collector-contrib module path (#31762) --- comp/otelcol/collector-contrib/impl/go.mod | 2 +- comp/otelcol/collector-contrib/impl/manifest.yaml | 2 +- tasks/unit_tests/testdata/collector/valid_datadog_manifest.yaml | 2 +- .../collector/valid_manifest_without_specified_version.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/comp/otelcol/collector-contrib/impl/go.mod b/comp/otelcol/collector-contrib/impl/go.mod index 2ca191c9c4ea0..d23c34cd7c2f2 100644 --- a/comp/otelcol/collector-contrib/impl/go.mod +++ b/comp/otelcol/collector-contrib/impl/go.mod @@ -1,6 +1,6 @@ // Code generated by "go.opentelemetry.io/collector/cmd/builder". DO NOT EDIT. -module github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib +module github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib/impl go 1.22.0 diff --git a/comp/otelcol/collector-contrib/impl/manifest.yaml b/comp/otelcol/collector-contrib/impl/manifest.yaml index a5d48ed8eed80..6f878f6d19c84 100644 --- a/comp/otelcol/collector-contrib/impl/manifest.yaml +++ b/comp/otelcol/collector-contrib/impl/manifest.yaml @@ -3,7 +3,7 @@ connectors: v0.114.0 dist: description: Datadog OpenTelemetry Collector - module: github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib + module: github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib/impl name: otelcol-contrib output_path: ./comp/otelcol/collector-contrib/impl version: 0.114.0 diff --git a/tasks/unit_tests/testdata/collector/valid_datadog_manifest.yaml b/tasks/unit_tests/testdata/collector/valid_datadog_manifest.yaml index 4a3a56caf12e3..0f12f2cc26ca1 100644 --- a/tasks/unit_tests/testdata/collector/valid_datadog_manifest.yaml +++ b/tasks/unit_tests/testdata/collector/valid_datadog_manifest.yaml @@ -1,6 +1,6 @@ --- dist: - module: github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib + module: github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib/impl name: otelcol-contrib description: Valid (default) datadog converged Agent ocb manifest (should pass collector_tests.py) version: 0.114.0 diff --git a/tasks/unit_tests/testdata/collector/valid_manifest_without_specified_version.yaml b/tasks/unit_tests/testdata/collector/valid_manifest_without_specified_version.yaml index baa4486191d7f..7a11140cbb107 100644 --- a/tasks/unit_tests/testdata/collector/valid_manifest_without_specified_version.yaml +++ b/tasks/unit_tests/testdata/collector/valid_manifest_without_specified_version.yaml @@ -1,6 +1,6 @@ --- dist: - module: github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib + module: github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib/impl name: otelcol-contrib description: valid manifest with minimum requirements and no version (should pass collector_tests.py) output_path: ./comp/otelcol/collector-contrib/impl From 38921a72e8df7d7879881cb74d98cae49994d1fc Mon Sep 17 00:00:00 2001 From: Pierre Gimalac Date: Fri, 6 Dec 2024 11:34:26 +0100 Subject: [PATCH 296/439] Bump gohai workflow macos runners to 13 (#31793) --- .github/workflows/gohai.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/gohai.yml b/.github/workflows/gohai.yml index 8b53658112909..851c2f9d0ccd1 100644 --- a/.github/workflows/gohai.yml +++ b/.github/workflows/gohai.yml @@ -7,9 +7,11 @@ on: - main - "[0-9]+.[0-9]+.x" paths: + - ".github/workflows/gohai.yml" - "pkg/gohai/**" pull_request: paths: + - ".github/workflows/gohai.yml" - "pkg/gohai/**" permissions: {} @@ -23,7 +25,7 @@ jobs: [ ubuntu-20.04, ubuntu-latest, - macos-12, + macos-13, macos-latest, windows-2019, windows-latest, From f7625c5ee640792bcbde23507a18de0a9d3464c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9lian=20Raimbault?= <161456554+CelianR@users.noreply.github.com> Date: Fri, 6 Dec 2024 05:48:33 -0500 Subject: [PATCH 297/439] [ACIX-453] Agent 6 release tasks support (#30062) Co-authored-by: Nicolas Schweitzer Co-authored-by: sabrina lu Co-authored-by: pducolin <45568537+pducolin@users.noreply.github.com> --- .github/workflows/create_rc_pr.yml | 4 +- .gitlab/check_merge/do_not_merge.yml | 2 +- .gitlab/e2e_install_packages/windows.yml | 4 +- .../functional_test/regression_detector.yml | 2 +- .gitlab/pkg_metrics/pkg_metrics.yml | 2 +- .../datadog-agent-integrations-py3.rb | 2 +- tasks/kmt.py | 2 +- tasks/libs/ciproviders/github_api.py | 3 + tasks/libs/common/git.py | 6 +- tasks/libs/releasing/json.py | 7 +- tasks/libs/releasing/notes.py | 25 +- tasks/libs/releasing/version.py | 14 +- tasks/notes.py | 4 +- tasks/release.py | 1155 ++++++++++------- tasks/unit_tests/release_tests.py | 37 +- 15 files changed, 712 insertions(+), 557 deletions(-) diff --git a/.github/workflows/create_rc_pr.yml b/.github/workflows/create_rc_pr.yml index 9bbc419466891..874944a0fe95d 100644 --- a/.github/workflows/create_rc_pr.yml +++ b/.github/workflows/create_rc_pr.yml @@ -96,8 +96,10 @@ jobs: - name: Create RC PR if: ${{ steps.check_for_changes.outputs.CHANGES == 'true'}} + env: + MATRIX: ${{ matrix.value }} run: | git config user.name "github-actions[bot]" git config user.email "41898282+github-actions[bot]@users.noreply.github.com" git fetch - inv -e release.create-rc --slack-webhook=${{ secrets.AGENT_RELEASE_SYNC_SLACK_WEBHOOK }} + inv -e release.create-rc "$MATRIX" --slack-webhook=${{ secrets.AGENT_RELEASE_SYNC_SLACK_WEBHOOK }} diff --git a/.gitlab/check_merge/do_not_merge.yml b/.gitlab/check_merge/do_not_merge.yml index 1e76fa3c19303..214e051a7d00e 100644 --- a/.gitlab/check_merge/do_not_merge.yml +++ b/.gitlab/check_merge/do_not_merge.yml @@ -22,5 +22,5 @@ do-not-merge: echo "This workflow fails so that the pull request cannot be merged" exit 1 fi - - inv -e release.check-omnibus-branches || exit 1 + - inv -e release.check-omnibus-branches --no-worktree || exit 1 - exit 0 diff --git a/.gitlab/e2e_install_packages/windows.yml b/.gitlab/e2e_install_packages/windows.yml index 223812e0e0c4e..f4575d0159f8c 100644 --- a/.gitlab/e2e_install_packages/windows.yml +++ b/.gitlab/e2e_install_packages/windows.yml @@ -14,7 +14,7 @@ - !reference [.new_e2e_template, before_script] script: # LAST_STABLE_VERSION is used for upgrade test - - export LAST_STABLE_VERSION=$(invoke release.get-release-json-value "last_stable::7") + - export LAST_STABLE_VERSION=$(invoke release.get-release-json-value "last_stable::7" --no-worktree) - !reference [.new_e2e_template, script] .new-e2e_windows_domain_test: @@ -28,7 +28,7 @@ - !reference [.new_e2e_template, before_script] script: # LAST_STABLE_VERSION is used for upgrade test - - export LAST_STABLE_VERSION=$(invoke release.get-release-json-value "last_stable::7") + - export LAST_STABLE_VERSION=$(invoke release.get-release-json-value "last_stable::7" --no-worktree) - !reference [.new_e2e_template, script] .new-e2e_windows_installer_v7_tests: diff --git a/.gitlab/functional_test/regression_detector.yml b/.gitlab/functional_test/regression_detector.yml index ce412f24981fb..ed86bbc9fa0c0 100644 --- a/.gitlab/functional_test/regression_detector.yml +++ b/.gitlab/functional_test/regression_detector.yml @@ -37,7 +37,7 @@ single-machine-performance-regression_detector: - mkdir outputs # Also needed for smp job sync step # Compute merge base of current commit and `main` - git fetch origin - - SMP_BASE_BRANCH=$(inv release.get-release-json-value base_branch) + - SMP_BASE_BRANCH=$(inv release.get-release-json-value base_branch --no-worktree) - echo "Looking for merge base for branch ${SMP_BASE_BRANCH}" - SMP_MERGE_BASE=$(git merge-base ${CI_COMMIT_SHA} origin/${SMP_BASE_BRANCH}) - echo "Merge base is ${SMP_MERGE_BASE}" diff --git a/.gitlab/pkg_metrics/pkg_metrics.yml b/.gitlab/pkg_metrics/pkg_metrics.yml index 433a381dbb8ce..bb62a727a570a 100644 --- a/.gitlab/pkg_metrics/pkg_metrics.yml +++ b/.gitlab/pkg_metrics/pkg_metrics.yml @@ -85,7 +85,7 @@ send_pkg_size: - if [[ "${ARCH}" == "amd64" ]]; then ls -l $OMNIBUS_PACKAGE_DIR_SUSE; fi - export failures=0 - - export last_stable=$(inv release.get-release-json-value "last_stable::${MAJOR_VERSION}") + - export last_stable=$(inv release.get-release-json-value "last_stable::${MAJOR_VERSION}" --no-worktree) # Get stable packages from S3 buckets, send new package sizes & compare stable and new package sizes # The loop assumes that all flavors start with "da", which is currently the case # We want to run all package size comparisons before failing, so we set +e while doing the comparisons diff --git a/omnibus/config/software/datadog-agent-integrations-py3.rb b/omnibus/config/software/datadog-agent-integrations-py3.rb index e29c4e3431ab4..0b88f6fd8f5d1 100644 --- a/omnibus/config/software/datadog-agent-integrations-py3.rb +++ b/omnibus/config/software/datadog-agent-integrations-py3.rb @@ -132,7 +132,7 @@ ).stdout.split() # Retrieving integrations from cache cache_bucket = ENV.fetch('INTEGRATION_WHEELS_CACHE_BUCKET', '') - cache_branch = (shellout! "inv release.get-release-json-value base_branch", cwd: File.expand_path('..', tasks_dir_in)).stdout.strip + cache_branch = (shellout! "inv release.get-release-json-value base_branch --no-worktree", cwd: File.expand_path('..', tasks_dir_in)).stdout.strip if cache_bucket != '' mkdir cached_wheels_dir shellout! "inv -e agent.get-integrations-from-cache " \ diff --git a/tasks/kmt.py b/tasks/kmt.py index b1c30e0246c50..18f5f9370893b 100644 --- a/tasks/kmt.py +++ b/tasks/kmt.py @@ -2219,7 +2219,7 @@ def install_ddagent( assert len(domains) > 0, err_msg if version is not None: - check_version(version) + check_version(ctx, version) else: with open("release.json") as f: release = json.load(f) diff --git a/tasks/libs/ciproviders/github_api.py b/tasks/libs/ciproviders/github_api.py index 48bd741c85748..4021b5d7937e5 100644 --- a/tasks/libs/ciproviders/github_api.py +++ b/tasks/libs/ciproviders/github_api.py @@ -334,6 +334,9 @@ def latest_release(self) -> str: release = self._repository.get_latest_release() return release.title + def get_releases(self): + return self._repository.get_releases() + def latest_unreleased_release_branches(self): """ Get all the release branches that are newer than the latest release. diff --git a/tasks/libs/common/git.py b/tasks/libs/common/git.py index 6606a4ce522c2..44f5c5a684cfa 100644 --- a/tasks/libs/common/git.py +++ b/tasks/libs/common/git.py @@ -103,17 +103,17 @@ def get_current_branch(ctx) -> str: def is_agent6(ctx) -> bool: - return get_current_branch(ctx).startswith("6.") + return get_current_branch(ctx).startswith("6.53") -def get_default_branch(): +def get_default_branch(major: int | None = None): """Returns the default git branch given the current context (agent 6 / 7).""" # We create a context to avoid passing context in each function # This context is used to get the current branch so there is no side effect ctx = Context() - return '6.53.x' if is_agent6(ctx) else 'main' + return '6.53.x' if major is None and is_agent6(ctx) or major == 6 else 'main' def get_common_ancestor(ctx, branch, base=None) -> str: diff --git a/tasks/libs/releasing/json.py b/tasks/libs/releasing/json.py index 85270b23ce70e..91e68678a8b02 100644 --- a/tasks/libs/releasing/json.py +++ b/tasks/libs/releasing/json.py @@ -7,8 +7,7 @@ from invoke.exceptions import Exit from tasks.libs.common.constants import TAG_FOUND_TEMPLATE -from tasks.libs.common.git import get_default_branch -from tasks.libs.common.worktree import is_worktree +from tasks.libs.common.git import get_default_branch, is_agent6 from tasks.libs.releasing.documentation import _stringify_config, nightly_entry_for, release_entry_for from tasks.libs.releasing.version import ( VERSION_RE, @@ -337,7 +336,7 @@ def set_new_release_branch(branch): _save_release_json(rj) -def generate_repo_data(warning_mode, next_version, release_branch): +def generate_repo_data(ctx, warning_mode, next_version, release_branch): repos = ["integrations-core"] if warning_mode else ALL_REPOS previous_tags = find_previous_tags("release-a7", repos, RELEASE_JSON_FIELDS_TO_UPDATE) data = {} @@ -347,7 +346,7 @@ def generate_repo_data(warning_mode, next_version, release_branch): branch = ( next_version.branch() if repo == "integrations-core" - else (DEFAULT_BRANCHES_AGENT6 if is_worktree() else DEFAULT_BRANCHES).get(repo, get_default_branch()) + else (DEFAULT_BRANCHES_AGENT6 if is_agent6(ctx) else DEFAULT_BRANCHES).get(repo, get_default_branch()) ) data[repo] = { 'branch': branch, diff --git a/tasks/libs/releasing/notes.py b/tasks/libs/releasing/notes.py index d831f372b6197..33eb48a2facb9 100644 --- a/tasks/libs/releasing/notes.py +++ b/tasks/libs/releasing/notes.py @@ -2,7 +2,7 @@ from invoke import Failure -from tasks.libs.common.constants import GITHUB_REPO_NAME +from tasks.libs.common.constants import DEFAULT_INTEGRATIONS_CORE_BRANCH, GITHUB_REPO_NAME from tasks.libs.common.git import get_default_branch from tasks.libs.releasing.version import current_version @@ -10,6 +10,7 @@ def _add_prelude(ctx, version): res = ctx.run(f"reno new prelude-release-{version}") new_releasenote = res.stdout.split(' ')[-1].strip() # get the new releasenote file path + branch = DEFAULT_INTEGRATIONS_CORE_BRANCH with open(new_releasenote, "w") as f: f.write( @@ -17,7 +18,7 @@ def _add_prelude(ctx, version): | Release on: {date.today()} - - Please refer to the `{version} tag on integrations-core `_ for the list of changes on the Core Checks + - Please refer to the `{version} tag on integrations-core `_ for the list of changes on the Core Checks """ ) @@ -26,29 +27,25 @@ def _add_prelude(ctx, version): print(f"git commit -m \"Add prelude for {version} release\"") -def _add_dca_prelude(ctx, agent7_version, agent6_version=""): - """ - Release of the Cluster Agent should be pinned to a version of the Agent. - """ - res = ctx.run(f"reno --rel-notes-dir releasenotes-dca new prelude-release-{agent7_version}") - new_releasenote = res.stdout.split(' ')[-1].strip() # get the new releasenote file path +def _add_dca_prelude(ctx, version=None): + """Release of the Cluster Agent should be pinned to a version of the Agent.""" - if agent6_version != "": - agent6_version = ( - f"--{agent6_version.replace('.', '')}" # generate the right hyperlink to the agent's changelog. - ) + branch = get_default_branch() + + res = ctx.run(f"reno --rel-notes-dir releasenotes-dca new prelude-release-{version}") + new_releasenote = res.stdout.split(' ')[-1].strip() # get the new releasenote file path with open(new_releasenote, "w") as f: f.write( f"""prelude: | Released on: {date.today()} - Pinned to datadog-agent v{agent7_version}: `CHANGELOG `_.""" + Pinned to datadog-agent v{version}: `CHANGELOG `_.""" ) ctx.run(f"git add {new_releasenote}") print("\nIf not run as part of finish task, commit this with:") - print(f"git commit -m \"Add prelude for {agent7_version} release\"") + print(f"git commit -m \"Add prelude for {version} release\"") def update_changelog_generic(ctx, new_version, changelog_dir, changelog_file): diff --git a/tasks/libs/releasing/version.py b/tasks/libs/releasing/version.py index 8c781fb2e134f..23472d57c0cca 100644 --- a/tasks/libs/releasing/version.py +++ b/tasks/libs/releasing/version.py @@ -13,7 +13,7 @@ REPO_NAME, TAG_FOUND_TEMPLATE, ) -from tasks.libs.common.git import get_commit_sha, get_current_branch +from tasks.libs.common.git import get_commit_sha, get_current_branch, is_agent6 from tasks.libs.common.user_interactions import yes_no_question from tasks.libs.releasing.documentation import release_entry_for from tasks.libs.types.version import Version @@ -61,11 +61,13 @@ def _create_version_from_match(match): return version -def check_version(agent_version): +def check_version(ctx, agent_version): """Check Agent version to see if it is valid.""" - version_re = re.compile(r'7[.](\d+)[.](\d+)(-rc\.(\d+))?') + + major = '6' if is_agent6(ctx) else '7' + version_re = re.compile(rf'{major}[.](\d+)[.](\d+)(-rc\.(\d+))?') if not version_re.match(agent_version): - raise Exit(message="Version should be of the form 7.Y.Z or 7.Y.Z-rc.t") + raise Exit(message=f"Version should be of the form {major}.Y.Z or {major}.Y.Z-rc.t") def current_version(ctx, major_version) -> Version: @@ -115,10 +117,6 @@ def next_rc_version(ctx, major_version, patch_version=False) -> Version: return new_version -def parse_major_versions(major_versions): - return sorted(int(x) for x in major_versions.split(",")) - - ## ## Repository version fetch functions ## The following functions aim at returning the correct version to use for a given diff --git a/tasks/notes.py b/tasks/notes.py index 519a2893c3aeb..d58a36cf3ddf8 100644 --- a/tasks/notes.py +++ b/tasks/notes.py @@ -16,11 +16,11 @@ def add_prelude(ctx, version): @task -def add_dca_prelude(ctx, agent7_version, agent6_version=""): +def add_dca_prelude(ctx, version): """ Release of the Cluster Agent should be pinned to a version of the Agent. """ - _add_dca_prelude(ctx, agent7_version, agent6_version) + _add_dca_prelude(ctx, version) @task diff --git a/tasks/release.py b/tasks/release.py index cabf0568e9d20..999230044ea44 100644 --- a/tasks/release.py +++ b/tasks/release.py @@ -1,5 +1,9 @@ -""" -Release helper tasks +"""Release helper tasks + +Notes about Agent6: + Release tasks should be run from the main branch. + To make a task compatible with agent 6, it is possible to use agent_context such that + the task will be run in the agent6 branch. """ import json @@ -26,7 +30,6 @@ check_base_branch, check_clean_branch_state, clone, - get_current_branch, get_default_branch, get_last_commit, get_last_release_tag, @@ -35,6 +38,7 @@ ) from tasks.libs.common.gomodules import get_default_modules from tasks.libs.common.user_interactions import yes_no_question +from tasks.libs.common.worktree import agent_context from tasks.libs.pipeline.notifications import ( DEFAULT_JIRA_PROJECT, DEFAULT_SLACK_CHANNEL, @@ -50,7 +54,6 @@ from tasks.libs.releasing.json import ( DEFAULT_BRANCHES, DEFAULT_BRANCHES_AGENT6, - UNFREEZE_REPO_AGENT, UNFREEZE_REPOS, _get_release_json_value, _save_release_json, @@ -65,12 +68,11 @@ RC_VERSION_RE, VERSION_RE, _create_version_from_match, - check_version, current_version, next_final_version, next_rc_version, - parse_major_versions, ) +from tasks.libs.types.version import Version from tasks.pipeline import edit_schedule, run from tasks.release_metrics.metrics import get_prs_metrics, get_release_lead_time @@ -82,11 +84,66 @@ BACKPORT_LABEL_COLOR = "5319e7" +def deduce_and_ask_version(ctx, branch, as_str=True, trust=False) -> str | Version: + release_version = get_next_version_from_branch(ctx, branch, as_str=as_str) + + if trust: + return release_version + + if yes_no_question( + f'Version {release_version} deduced from branch {branch}. Is this the version you want to use?', + color="orange", + default=False, + ): + return release_version + + raise Exit(color_message("Aborting.", "red"), code=1) + + +def get_version_major(branch: str) -> int: + """Get the major version from a branch name.""" + + return 7 if branch == 'main' else int(branch.split('.')[0]) + + +def get_all_version_tags(ctx) -> list[str]: + """Returns the tags for all the versions of the Agent in git.""" + + cmd = "bash -c 'git tag | grep -E \"^[0-9]\\.[0-9]+\\.[0-9]+$\"'" + + return ctx.run(cmd, hide=True).stdout.strip().split('\n') + + +def get_next_version_from_branch(ctx, branch: str, as_str=True) -> str | Version: + """Returns the latest version + 1 belonging to a branch. + + Example: + get_latest_version_from_branch("7.55.x") -> Version(7, 55, 4) if there are 7.55.0, 7.55.1, 7.55.2, 7.55.3 tags. + get_latest_version_from_branch("6.99.x") -> Version(6, 99, 0) if there are no 6.99.* tags. + """ + + re_branch = re.compile(r"^([0-9]\.[0-9]+\.)x$") + + try: + matched = re_branch.match(branch).group(1) + except Exception as e: + raise Exit( + f'{color_message("Error:", "red")}: Branch {branch} is not a release branch (should be X.Y.x)', code=1 + ) from e + + tags = [tuple(map(int, tag.split('.'))) for tag in get_all_version_tags(ctx) if tag.startswith(matched)] + versions = sorted(Version(*tag) for tag in tags) + + minor, major = tuple(map(int, branch.split('.')[:2])) + + latest = versions[-1].next_version(bump_patch=True) if versions else Version(minor, major, 0) + + return str(latest) if as_str else latest + + @task def list_major_change(_, milestone): - """ - List all PR labeled "major_changed" for this release. - """ + """List all PR labeled "major_changed" for this release.""" gh = GithubAPI() pull_requests = gh.get_pulls(milestone=milestone, labels=['major_change']) @@ -101,25 +158,31 @@ def list_major_change(_, milestone): @task -def update_modules(ctx, agent_version, verify=True): - """ - Update internal dependencies between the different Agent modules. - * --verify checks for correctness on the Agent Version (on by default). +def update_modules(ctx, release_branch=None, version=None, trust=False): + """Update internal dependencies between the different Agent modules. + + Args: + verify: Checks for correctness on the Agent Version (on by default). Examples: - inv -e release.update-modules 7.27.0 + $ inv -e release.update-modules 7.27.x """ - if verify: - check_version(agent_version) - for module in get_default_modules().values(): - for dependency in module.dependencies: - dependency_mod = get_default_modules()[dependency] - ctx.run(f"go mod edit -require={dependency_mod.dependency_path(agent_version)} {module.go_mod_path()}") + assert release_branch or version + + agent_version = version or deduce_and_ask_version(ctx, release_branch, trust=trust) + + with agent_context(ctx, release_branch, skip_checkout=release_branch is None): + modules = get_default_modules() + for module in modules.values(): + for dependency in module.dependencies: + dependency_mod = modules[dependency] + ctx.run(f"go mod edit -require={dependency_mod.dependency_path(agent_version)} {module.go_mod_path()}") def __get_force_option(force: bool) -> str: """Get flag to pass to git tag depending on if we want forcing or not.""" + force_option = "" if force: print(color_message("--force option enabled. This will allow the task to overwrite existing tags.", "orange")) @@ -152,64 +215,72 @@ def __tag_single_module(ctx, module, agent_version, commit, force_option, devel) @task -def tag_modules(ctx, agent_version, commit="HEAD", verify=True, push=True, force=False, devel=False): - """ - Create tags for Go nested modules for a given Datadog Agent version. - The version should be given as an Agent 7 version. - - * --commit COMMIT will tag COMMIT with the tags (default HEAD) - * --verify checks for correctness on the Agent version (on by default). - * --push will push the tags to the origin remote (on by default). - * --force will allow the task to overwrite existing tags. Needed to move existing tags (off by default). - * --devel will create -devel tags (used after creation of the release branch) +def tag_modules( + ctx, release_branch=None, commit="HEAD", push=True, force=False, devel=False, version=None, trust=False +): + """Create tags for Go nested modules for a given Datadog Agent version. + + Args: + commit: Will tag `commit` with the tags (default HEAD). + verify: Checks for correctness on the Agent version (on by default). + push: Will push the tags to the origin remote (on by default). + force: Will allow the task to overwrite existing tags. Needed to move existing tags (off by default). + devel: Will create -devel tags (used after creation of the release branch). Examples: - inv -e release.tag-modules 7.27.0 # Create tags and push them to origin - inv -e release.tag-modules 7.27.0-rc.3 --no-push # Create tags locally; don't push them - inv -e release.tag-modules 7.29.0-rc.3 --force # Create tags (overwriting existing tags with the same name), force-push them to origin - + $ inv -e release.tag-modules 7.27.x # Create tags and push them to origin + $ inv -e release.tag-modules 7.27.x --no-push # Create tags locally; don't push them + $ inv -e release.tag-modules 7.29.x --force # Create tags (overwriting existing tags with the same name), force-push them to origin """ - if verify: - check_version(agent_version) - force_option = __get_force_option(force) + assert release_branch or version + + agent_version = version or deduce_and_ask_version(ctx, release_branch, trust=trust) + tags = [] - for module in get_default_modules().values(): - # Skip main module; this is tagged at tag_version via __tag_single_module. - if module.should_tag and module.path != ".": - new_tags = __tag_single_module(ctx, module, agent_version, commit, force_option, devel) - tags.extend(new_tags) + with agent_context(ctx, release_branch, skip_checkout=release_branch is None): + force_option = __get_force_option(force) + for module in get_default_modules().values(): + # Skip main module; this is tagged at tag_version via __tag_single_module. + if module.should_tag and module.path != ".": + new_tags = __tag_single_module(ctx, module, agent_version, commit, force_option, devel) + tags.extend(new_tags) - if push: - tags_list = ' '.join(tags) - ctx.run(f"git push origin {tags_list}{force_option}") - print(f"Pushed tag {tags_list}") - print(f"Created module tags for version {agent_version}") + if push: + tags_list = ' '.join(tags) + ctx.run(f"git push origin {tags_list}{force_option}") + print(f"Pushed tag {tags_list}") + print(f"Created module tags for version {agent_version}") @task -def tag_version(ctx, agent_version, commit="HEAD", verify=True, push=True, force=False, devel=False): - """ - Create tags for a given Datadog Agent version. - The version should be given as an Agent 7 version. - - * --commit COMMIT will tag COMMIT with the tags (default HEAD) - * --verify checks for correctness on the Agent version (on by default). - * --push will push the tags to the origin remote (on by default). - * --force will allow the task to overwrite existing tags. Needed to move existing tags (off by default). - * --devel will create -devel tags (used after creation of the release branch) +def tag_version( + ctx, release_branch=None, commit="HEAD", push=True, force=False, devel=False, version=None, trust=False +): + """Create tags for a given Datadog Agent version. + + Args: + commit: Will tag `commit` with the tags (default HEAD) + verify: Checks for correctness on the Agent version (on by default). + push: Will push the tags to the origin remote (on by default). + force: Will allow the task to overwrite existing tags. Needed to move existing tags (off by default). + devel: Will create -devel tags (used after creation of the release branch) Examples: - inv -e release.tag-version 7.27.0 # Create tags and push them to origin - inv -e release.tag-version 7.27.0-rc.3 --no-push # Create tags locally; don't push them - inv -e release.tag-version 7.29.0-rc.3 --force # Create tags (overwriting existing tags with the same name), force-push them to origin + $ inv -e release.tag-version 7.27.x # Create tags and push them to origin + $ inv -e release.tag-version 7.27.x --no-push # Create tags locally; don't push them + $ inv -e release.tag-version 7.29.x --force # Create tags (overwriting existing tags with the same name), force-push them to origin """ - if verify: - check_version(agent_version) + + assert release_branch or version + + agent_version = version or deduce_and_ask_version(ctx, release_branch, trust=trust) # Always tag the main module force_option = __get_force_option(force) - tags = __tag_single_module(ctx, get_default_modules()["."], agent_version, commit, force_option, devel) + with agent_context(ctx, release_branch, skip_checkout=release_branch is None): + tags = __tag_single_module(ctx, get_default_modules()["."], agent_version, commit, force_option, devel) + if push: tags_list = ' '.join(tags) ctx.run(f"git push origin {tags_list}{force_option}") @@ -218,25 +289,24 @@ def tag_version(ctx, agent_version, commit="HEAD", verify=True, push=True, force @task -def tag_devel(ctx, agent_version, commit="HEAD", verify=True, push=True, force=False): - tag_version(ctx, agent_version, commit, verify, push, force, devel=True) - tag_modules(ctx, agent_version, commit, verify, push, force, devel=True) +def tag_devel(ctx, release_branch, commit="HEAD", push=True, force=False): + tag_version(ctx, release_branch, commit, push, force, devel=True) + tag_modules(ctx, release_branch, commit, push, force, devel=True, trust=True) @task -def finish(ctx, major_versions="6,7", upstream="origin"): - """ - Updates the release entry in the release.json file for the new version. +def finish(ctx, release_branch, upstream="origin"): + """Updates the release entry in the release.json file for the new version. Updates internal module dependencies with the new version. """ # Step 1: Preparation - list_major_versions = parse_major_versions(major_versions) - print(f"Finishing release for major version(s) {list_major_versions}") + major_version = get_version_major(release_branch) + print(f"Finishing release for major version {major_version}") - for major_version in list_major_versions: + with agent_context(ctx, release_branch): # NOTE: the release process assumes that at least one RC # was built before release.finish is used. It doesn't support # doing final version -> final version updates (eg. 7.32.0 -> 7.32.1 @@ -245,84 +315,85 @@ def finish(ctx, major_versions="6,7", upstream="origin"): # To support this, we'd have to support a --patch-version param in # release.finish new_version = next_final_version(ctx, major_version, False) + if not yes_no_question( + f'Do you want to finish the release with version {new_version}?', color="bold", default=False + ): + raise Exit(color_message("Aborting.", "red"), code=1) update_release_json(new_version, new_version) - current_branch = get_current_branch(ctx) + # Step 2: Update internal module dependencies - # Step 2: Update internal module dependencies + update_modules(ctx, version=str(new_version)) - update_modules(ctx, str(new_version)) + # Step 3: Branch out, commit change, push branch - # Step 3: Branch out, commit change, push branch + final_branch = f"{new_version}-final" - final_branch = f"{new_version}-final" + print(color_message(f"Branching out to {final_branch}", "bold")) + ctx.run(f"git checkout -b {final_branch}") - print(color_message(f"Branching out to {final_branch}", "bold")) - ctx.run(f"git checkout -b {final_branch}") - - print(color_message("Committing release.json and Go modules updates", "bold")) - print( - color_message( - "If commit signing is enabled, you will have to make sure the commit gets properly signed.", "bold" + print(color_message("Committing release.json and Go modules updates", "bold")) + print( + color_message( + "If commit signing is enabled, you will have to make sure the commit gets properly signed.", "bold" + ) ) - ) - ctx.run("git add release.json") - ctx.run("git ls-files . | grep 'go.mod$' | xargs git add") + ctx.run("git add release.json") + ctx.run("git ls-files . | grep 'go.mod$' | xargs git add") - commit_message = f"'Final updates for release.json and Go modules for {new_version} release'" + commit_message = f"'Final updates for release.json and Go modules for {new_version} release'" - ok = try_git_command(ctx, f"git commit -m {commit_message}") - if not ok: - raise Exit( - color_message( - f"Could not create commit. Please commit manually with:\ngit commit -m {commit_message}\n, push the {final_branch} branch and then open a PR against {final_branch}.", - "red", - ), - code=1, - ) + ok = try_git_command(ctx, f"git commit -m {commit_message}") + if not ok: + raise Exit( + color_message( + f"Could not create commit. Please commit manually with:\ngit commit -m {commit_message}\n, push the {final_branch} branch and then open a PR against {final_branch}.", + "red", + ), + code=1, + ) - # Step 4: Add release changelog preludes - print(color_message("Adding Agent release changelog prelude", "bold")) - _add_prelude(ctx, str(new_version)) + # Step 4: Add release changelog preludes + print(color_message("Adding Agent release changelog prelude", "bold")) + _add_prelude(ctx, str(new_version)) - print(color_message("Adding DCA release changelog prelude", "bold")) - _add_dca_prelude(ctx, str(new_version)) + print(color_message("Adding DCA release changelog prelude", "bold")) + _add_dca_prelude(ctx, str(new_version)) - ok = try_git_command(ctx, f"git commit -m 'Add preludes for {new_version} release'") - if not ok: - raise Exit( - color_message( - f"Could not create commit. Please commit manually, push the {final_branch} branch and then open a PR against {final_branch}.", - "red", - ), - code=1, - ) + ok = try_git_command(ctx, f"git commit -m 'Add preludes for {new_version} release'") + if not ok: + raise Exit( + color_message( + f"Could not create commit. Please commit manually, push the {final_branch} branch and then open a PR against {final_branch}.", + "red", + ), + code=1, + ) - # Step 5: Push branch and create PR + # Step 5: Push branch and create PR + print(color_message("Pushing new branch to the upstream repository", "bold")) + res = ctx.run(f"git push --set-upstream {upstream} {final_branch}", warn=True) + if res.exited is None or res.exited > 0: + raise Exit( + color_message( + f"Could not push branch {final_branch} to the upstream '{upstream}'. Please push it manually and then open a PR against {final_branch}.", + "red", + ), + code=1, + ) - print(color_message("Pushing new branch to the upstream repository", "bold")) - res = ctx.run(f"git push --set-upstream {upstream} {final_branch}", warn=True) - if res.exited is None or res.exited > 0: - raise Exit( - color_message( - f"Could not push branch {final_branch} to the upstream '{upstream}'. Please push it manually and then open a PR against {final_branch}.", - "red", - ), - code=1, + create_release_pr( + f"Final updates for release.json and Go modules for {new_version} release + preludes", + release_branch, + final_branch, + new_version, ) - create_release_pr( - f"Final updates for release.json and Go modules for {new_version} release + preludes", - current_branch, - final_branch, - new_version, - ) - @task(help={'upstream': "Remote repository name (default 'origin')"}) -def create_rc(ctx, major_versions="6,7", patch_version=False, upstream="origin", slack_webhook=None): - """ - Updates the release entries in release.json to prepare the next RC build. +def create_rc(ctx, release_branch, patch_version=False, upstream="origin", slack_webhook=None): + """Updates the release entries in release.json to prepare the next RC build. + If the previous version of the Agent (determined as the latest tag on the current branch) is not an RC: - by default, updates the release entries for the next minor version of @@ -336,242 +407,265 @@ def create_rc(ctx, major_versions="6,7", patch_version=False, upstream="origin", If the previous version of the Agent was an RC, updates the release entries for RC + 1. Examples: - If the latest tag on the branch is 7.31.0, and invoke release.create-rc --patch-version - is run, then the task will prepare the release entries for 7.31.1-rc.1, and therefore - will only use 7.31.X tags on the dependency repositories that follow the Agent version scheme. + If the latest tag on the branch is 7.31.0, and invoke release.create-rc --patch-version + is run, then the task will prepare the release entries for 7.31.1-rc.1, and therefore + will only use 7.31.X tags on the dependency repositories that follow the Agent version scheme. - If the latest tag on the branch is 7.32.0-devel or 7.31.0, and invoke release.create-rc - is run, then the task will prepare the release entries for 7.32.0-rc.1, and therefore - will only use 7.32.X tags on the dependency repositories that follow the Agent version scheme. + If the latest tag on the branch is 7.32.0-devel or 7.31.0, and invoke release.create-rc + is run, then the task will prepare the release entries for 7.32.0-rc.1, and therefore + will only use 7.32.X tags on the dependency repositories that follow the Agent version scheme. - Updates internal module dependencies with the new RC. + Updates internal module dependencies with the new RC. - Commits the above changes, and then creates a PR on the upstream repository with the change. + Commits the above changes, and then creates a PR on the upstream repository with the change. - If slack_webhook is provided, it tries to send the PR URL to the provided webhook. This is meant to be used mainly in automation. + If slack_webhook is provided, it tries to send the PR URL to the provided webhook. This is meant to be used mainly in automation. Notes: - This requires a Github token (either in the GITHUB_TOKEN environment variable, or in the MacOS keychain), - with 'repo' permissions. - This also requires that there are no local uncommitted changes, that the current branch is 'main' or the - release branch, and that no branch named 'release/' already exists locally or upstream. + This requires a Github token (either in the GITHUB_TOKEN environment variable, or in the MacOS keychain), + with 'repo' permissions. + This also requires that there are no local uncommitted changes, that the current branch is 'main' or the + release branch, and that no branch named 'release/' already exists locally or upstream. """ - github = GithubAPI(repository=GITHUB_REPO_NAME) - - list_major_versions = parse_major_versions(major_versions) + major_version = get_version_major(release_branch) - # Get the version of the highest major: useful for some logging & to get - # the version to use for Go submodules updates - new_highest_version = next_rc_version(ctx, max(list_major_versions), patch_version) - # Get the next final version of the highest major: useful to know which - # milestone to target, as well as decide which tags from dependency repositories - # can be used. - new_final_version = next_final_version(ctx, max(list_major_versions), patch_version) + with agent_context(ctx, release_branch): + github = GithubAPI(repository=GITHUB_REPO_NAME) - print(color_message(f"Preparing RC for agent version(s) {list_major_versions}", "bold")) + # Get the version of the highest major: useful for some logging & to get + # the version to use for Go submodules updates + new_highest_version = next_rc_version(ctx, major_version, patch_version) + # Get the next final version of the highest major: useful to know which + # milestone to target, as well as decide which tags from dependency repositories + # can be used. + new_final_version = next_final_version(ctx, major_version, patch_version) + print(color_message(f"Preparing RC for agent version {major_version}", "bold")) - # Step 0: checks + # Step 0: checks - print(color_message("Checking repository state", "bold")) - ctx.run("git fetch") + print(color_message("Checking repository state", "bold")) + ctx.run("git fetch") - # Check that the current and update branches are valid - current_branch = get_current_branch(ctx) - update_branch = f"release/{new_highest_version}-{int(time.time())}" + # Check that the current and update branches are valid + update_branch = f"release/{new_highest_version}-{int(time.time())}" - check_clean_branch_state(ctx, github, update_branch) - if not check_base_branch(current_branch, new_highest_version): - raise Exit( - color_message( - f"The branch you are on is neither {get_default_branch()} or the correct release branch ({new_highest_version.branch()}). Aborting.", - "red", - ), - code=1, - ) - - # Step 1: Update release entries + check_clean_branch_state(ctx, github, update_branch) + if not check_base_branch(release_branch, new_highest_version): + raise Exit( + color_message( + f"The branch you are on is neither {get_default_branch()} or the correct release branch ({new_highest_version.branch()}). Aborting.", + "red", + ), + code=1, + ) - print(color_message("Updating release entries", "bold")) - for major_version in list_major_versions: + # Step 1: Update release entries + print(color_message("Updating release entries", "bold")) new_version = next_rc_version(ctx, major_version, patch_version) - update_release_json(new_version, new_final_version) + if not yes_no_question( + f'Do you want to create release candidate with:\n- new version: {new_version}\n- new highest version: {new_highest_version}\n- new final version: {new_final_version}?', + color="bold", + default=False, + ): + raise Exit(color_message("Aborting.", "red"), code=1) - # Step 2: Update internal module dependencies + update_release_json(new_version, new_final_version) - print(color_message("Updating Go modules", "bold")) - update_modules(ctx, str(new_highest_version)) + # Step 2: Update internal module dependencies - # Step 3: branch out, commit change, push branch + print(color_message("Updating Go modules", "bold")) + update_modules(ctx, version=str(new_highest_version)) - print(color_message(f"Branching out to {update_branch}", "bold")) - ctx.run(f"git checkout -b {update_branch}") + # Step 3: branch out, commit change, push branch - print(color_message("Committing release.json and Go modules updates", "bold")) - print( - color_message( - "If commit signing is enabled, you will have to make sure the commit gets properly signed.", "bold" - ) - ) - ctx.run("git add release.json") - ctx.run("git ls-files . | grep 'go.mod$' | xargs git add") + print(color_message(f"Branching out to {update_branch}", "bold")) + ctx.run(f"git checkout -b {update_branch}") - ok = try_git_command( - ctx, f"git commit --no-verify -m 'Update release.json and Go modules for {new_highest_version}'" - ) - if not ok: - raise Exit( + print(color_message("Committing release.json and Go modules updates", "bold")) + print( color_message( - f"Could not create commit. Please commit manually, push the {update_branch} branch and then open a PR against {current_branch}.", - "red", - ), - code=1, + "If commit signing is enabled, you will have to make sure the commit gets properly signed.", "bold" + ) ) + ctx.run("git add release.json") + ctx.run("git ls-files . | grep 'go.mod$' | xargs git add") - print(color_message("Pushing new branch to the upstream repository", "bold")) - res = ctx.run(f"git push --no-verify --set-upstream {upstream} {update_branch}", warn=True) - if res.exited is None or res.exited > 0: - raise Exit( - color_message( - f"Could not push branch {update_branch} to the upstream '{upstream}'. Please push it manually and then open a PR against {current_branch}.", - "red", - ), - code=1, + ok = try_git_command( + ctx, f"git commit --no-verify -m 'Update release.json and Go modules for {new_highest_version}'" ) + if not ok: + raise Exit( + color_message( + f"Could not create commit. Please commit manually, push the {update_branch} branch and then open a PR against {release_branch}.", + "red", + ), + code=1, + ) - pr_url = create_release_pr( - f"[release] Update release.json and Go modules for {new_highest_version}", - current_branch, - update_branch, - new_final_version, - ) + print(color_message("Pushing new branch to the upstream repository", "bold")) + res = ctx.run(f"git push --no-verify --set-upstream {upstream} {update_branch}", warn=True) + if res.exited is None or res.exited > 0: + raise Exit( + color_message( + f"Could not push branch {update_branch} to the upstream '{upstream}'. Please push it manually and then open a PR against {release_branch}.", + "red", + ), + code=1, + ) + + pr_url = create_release_pr( + f"[release] Update release.json and Go modules for {new_highest_version}", + release_branch, + update_branch, + new_final_version, + ) - # Step 4 - If slack workflow webhook is provided, send a slack message - if slack_webhook: - print(color_message("Sending slack notification", "bold")) - payload = { - "pr_url": pr_url, - "version": str(new_highest_version), - } + # Step 4 - If slack workflow webhook is provided, send a slack message + if slack_webhook: + print(color_message("Sending slack notification", "bold")) + payload = { + "pr_url": pr_url, + "version": str(new_highest_version), + } - ctx.run(f"curl -X POST -H 'Content-Type: application/json' --data '{json.dumps(payload)}' {slack_webhook}") + ctx.run(f"curl -X POST -H 'Content-Type: application/json' --data '{json.dumps(payload)}' {slack_webhook}") @task -def build_rc(ctx, major_versions="6,7", patch_version=False, k8s_deployments=False): - """ - To be done after the PR created by release.create-rc is merged, with the same options +def build_rc(ctx, release_branch, patch_version=False, k8s_deployments=False): + """To be done after the PR created by release.create-rc is merged, with the same options as release.create-rc. - k8s_deployments - when set to True the child pipeline deploying to subset of k8s staging clusters will be triggered. - Tags the new RC versions on the current commit, and creates the build pipeline for these new tags. + + Args: + k8s_deployments: When set to True the child pipeline deploying to subset of k8s staging clusters will be triggered. """ - datadog_agent = get_gitlab_repo() - list_major_versions = parse_major_versions(major_versions) + major_version = get_version_major(release_branch) - # Get the version of the highest major: needed for tag_version and to know - # which tag to target when creating the pipeline. - new_version = next_rc_version(ctx, max(list_major_versions), patch_version) + with agent_context(ctx, release_branch): + datadog_agent = get_gitlab_repo() - # Get a string representation of the RC, eg. "6/7.32.0-rc.1" - versions_string = f"{'/'.join([str(n) for n in list_major_versions[:-1]] + [str(new_version)])}" + # Get the version of the highest major: needed for tag_version and to know + # which tag to target when creating the pipeline. + new_version = next_rc_version(ctx, major_version, patch_version) - # Step 0: checks + # Get a string representation of the RC, eg. "6/7.32.0-rc.1" + versions_string = str(new_version) - print(color_message("Checking repository state", "bold")) - # Check that the base branch is valid - current_branch = get_current_branch(ctx) + # Step 0: checks - if not check_base_branch(current_branch, new_version): - raise Exit( + print(color_message("Checking repository state", "bold")) + + # Check that the base branch is valid + if not check_base_branch(release_branch, new_version): + raise Exit( + color_message( + f"The branch you are on is neither {get_default_branch()} or the correct release branch ({new_version.branch()}). Aborting.", + "red", + ), + code=1, + ) + + latest_commit = ctx.run("git --no-pager log --no-color -1 --oneline").stdout.strip() + + if not yes_no_question( + f"This task will create tags for {versions_string} on the current commit: {latest_commit}. Is this OK?", + color="orange", + default=False, + ): + raise Exit(color_message("Aborting.", "red"), code=1) + + # Step 1: Tag versions + + print(color_message(f"Tagging RC for agent version {versions_string}", "bold")) + print( color_message( - f"The branch you are on is neither {get_default_branch()} or the correct release branch ({new_version.branch()}). Aborting.", - "red", - ), - code=1, + "If commit signing is enabled, you will have to make sure each tag gets properly signed.", "bold" + ) ) - latest_commit = ctx.run("git --no-pager log --no-color -1 --oneline").stdout.strip() + # tag_version only takes the highest version (Agent 7 currently), and creates + # the tags for all supported versions + # TODO: make it possible to do Agent 6-only or Agent 7-only tags? + tag_version(ctx, version=str(new_version), force=False) + tag_modules(ctx, version=str(new_version), force=False) + + print(color_message(f"Waiting until the {new_version} tag appears in Gitlab", "bold")) + gitlab_tag = None + while not gitlab_tag: + try: + gitlab_tag = datadog_agent.tags.get(str(new_version)) + except GitlabError: + continue - if not yes_no_question( - f"This task will create tags for {versions_string} on the current commit: {latest_commit}. Is this OK?", - color="orange", - default=False, - ): - raise Exit(color_message("Aborting.", "red"), code=1) + sleep(5) - # Step 1: Tag versions + print(color_message("Creating RC pipeline", "bold")) - print(color_message(f"Tagging RC for agent version(s) {list_major_versions}", "bold")) - print( - color_message("If commit signing is enabled, you will have to make sure each tag gets properly signed.", "bold") - ) - # tag_version only takes the highest version (Agent 7 currently), and creates - # the tags for all supported versions - # TODO: make it possible to do Agent 6-only or Agent 7-only tags? - tag_version(ctx, str(new_version), force=False) - tag_modules(ctx, str(new_version), force=False) - - print(color_message(f"Waiting until the {new_version} tag appears in Gitlab", "bold")) - gitlab_tag = None - while not gitlab_tag: - try: - gitlab_tag = datadog_agent.tags.get(str(new_version)) - except GitlabError: - continue - - sleep(5) - - print(color_message("Creating RC pipeline", "bold")) - - # Step 2: Run the RC pipeline - - run( - ctx, - git_ref=gitlab_tag.name, - use_release_entries=True, - major_versions=major_versions, - repo_branch="beta", - deploy=True, - rc_build=True, - rc_k8s_deployments=k8s_deployments, - ) + # Step 2: Run the RC pipeline + + run( + ctx, + git_ref=gitlab_tag.name, + use_release_entries=True, + repo_branch="beta", + deploy=True, + rc_build=True, + rc_k8s_deployments=k8s_deployments, + ) @task(help={'key': "Path to an existing release.json key, separated with double colons, eg. 'last_stable::6'"}) -def set_release_json(_, key, value): - release_json = load_release_json() - path = key.split('::') - current_node = release_json - for key_idx in range(len(path)): - key = path[key_idx] - if key not in current_node: - raise Exit(code=1, message=f"Couldn't find '{key}' in release.json") - if key_idx == len(path) - 1: - current_node[key] = value - break - else: - current_node = current_node[key] - _save_release_json(release_json) +def set_release_json(ctx, key, value, release_branch=None, skip_checkout=False, worktree=True): + def _main(): + nonlocal key + + release_json = load_release_json() + path = key.split('::') + current_node = release_json + for key_idx in range(len(path)): + key = path[key_idx] + if key not in current_node: + raise Exit(code=1, message=f"Couldn't find '{key}' in release.json") + if key_idx == len(path) - 1: + current_node[key] = value + break + else: + current_node = current_node[key] + _save_release_json(release_json) + + if worktree: + with agent_context(ctx, release_branch, skip_checkout=skip_checkout): + _main() + else: + _main() @task(help={'key': "Path to the release.json key, separated with double colons, eg. 'last_stable::6'"}) -def get_release_json_value(_, key): - release_json = _get_release_json_value(key) +def get_release_json_value(ctx, key, release_branch=None, skip_checkout=False, worktree=True): + if worktree: + with agent_context(ctx, release_branch, skip_checkout=skip_checkout): + release_json = _get_release_json_value(key) + else: + release_json = _get_release_json_value(key) + print(release_json) -def create_and_update_release_branch(ctx, repo, release_branch, base_directory="~/dd", upstream="origin"): - # Perform branch out in all required repositories - with ctx.cd(f"{base_directory}/{repo}"): - # Step 1 - Create a local branch out from the default branch +def create_and_update_release_branch( + ctx, repo, release_branch, base_branch: str | None = None, base_directory="~/dd", upstream="origin" +): + """Create and push a release branch to `repo`. - print(color_message(f"Working repository: {repo}", "bold")) - main_branch = ctx.run(f"git remote show {upstream} | grep \"HEAD branch\" | sed 's/.*: //'").stdout.strip() - ctx.run(f"git checkout {main_branch}") + Args: + base_branch: Branch from which we create the release branch. Default branch if `None`. + """ + + def _main(): ctx.run("git pull") print(color_message(f"Branching out to {release_branch}", "bold")) ctx.run(f"git checkout -b {release_branch}") @@ -589,29 +683,47 @@ def create_and_update_release_branch(ctx, repo, release_branch, base_directory=" code=1, ) + # Perform branch out in all required repositories + print(color_message(f"Working repository: {repo}", "bold")) + if repo == 'datadog-agent': + with agent_context(ctx, base_branch or get_default_branch(major=get_version_major(release_branch))): + _main() + else: + with ctx.cd(f"{base_directory}/{repo}"): + # Step 1 - Create a local branch out from the default branch + main_branch = ( + base_branch + or ctx.run(f"git remote show {upstream} | grep \"HEAD branch\" | sed 's/.*: //'").stdout.strip() + ) + ctx.run(f"git checkout {main_branch}") + + _main() + # TODO: unfreeze is the former name of this task, kept for backward compatibility. Remove in a few weeks. @task(help={'upstream': "Remote repository name (default 'origin')"}, aliases=["unfreeze"]) -def create_release_branches(ctx, base_directory="~/dd", major_versions="6,7", upstream="origin", check_state=True): - """ - Create and push release branches in Agent repositories and update them. +def create_release_branches(ctx, base_directory="~/dd", major_version: int = 7, upstream="origin", check_state=True): + """Create and push release branches in Agent repositories and update them. + That includes: - - creates a release branch in datadog-agent, datadog-agent-macos, omnibus-ruby and omnibus-software repositories, - - updates release.json on new datadog-agent branch to point to newly created release branches in nightly section - - updates entries in .gitlab-ci.yml and .gitlab/notify/notify.yml which depend on local branch name + - creates a release branch in datadog-agent, datadog-agent-macos, omnibus-ruby and omnibus-software repositories, + - updates release.json on new datadog-agent branch to point to newly created release branches in nightly section + - updates entries in .gitlab-ci.yml and .gitlab/notify/notify.yml which depend on local branch name + + Args: + base_directory: Path to the directory where dd repos are cloned, defaults to ~/dd, but can be overwritten. + use_worktree: If True, will go to datadog-agent-worktree instead of datadog-agent. Notes: - base_directory - path to the directory where dd repos are cloned, defaults to ~/dd, but can be overwritten. - This requires a Github token (either in the GITHUB_TOKEN environment variable, or in the MacOS keychain), - with 'repo' permissions. - This also requires that there are no local uncommitted changes, that the current branch is 'main' or the - release branch, and that no branch named 'release/' already exists locally or upstream. + This requires a Github token (either in the GITHUB_TOKEN environment variable, or in the MacOS keychain), + with 'repo' permissions. + This also requires that there are no local uncommitted changes, that the current branch is 'main' or the + release branch, and that no branch named 'release/' already exists locally or upstream. """ - github = GithubAPI(repository=GITHUB_REPO_NAME) - list_major_versions = parse_major_versions(major_versions) + github = GithubAPI(repository=GITHUB_REPO_NAME) - current = current_version(ctx, max(list_major_versions)) + current = current_version(ctx, major_version) next = current.next_version(bump_minor=True) current.rc = False current.devel = False @@ -620,34 +732,39 @@ def create_release_branches(ctx, base_directory="~/dd", major_versions="6,7", up # Strings with proper branch/tag names release_branch = current.branch() - # Step 0: checks - ctx.run("git fetch") + with agent_context(ctx, get_default_branch(major=major_version)): + # Step 0: checks + ctx.run("git fetch") - if check_state: - print(color_message("Checking repository state", "bold")) - check_clean_branch_state(ctx, github, release_branch) + if check_state: + print(color_message("Checking repository state", "bold")) + check_clean_branch_state(ctx, github, release_branch) - if not yes_no_question( - f"This task will create new branches with the name '{release_branch}' in repositories: {', '.join(UNFREEZE_REPOS)}. Is this OK?", - color="orange", - default=False, - ): - raise Exit(color_message("Aborting.", "red"), code=1) + if not yes_no_question( + f"This task will create new branches with the name '{release_branch}' in repositories: {', '.join(UNFREEZE_REPOS)}. Is this OK?", + color="orange", + default=False, + ): + raise Exit(color_message("Aborting.", "red"), code=1) - # Step 1 - Create release branches in all required repositories + # Step 1 - Create release branches in all required repositories - for repo in UNFREEZE_REPOS: - create_and_update_release_branch(ctx, repo, release_branch, base_directory=base_directory, upstream=upstream) + base_branch = get_default_branch() if major_version == 6 else None - # create the backport label in the Agent repo - print(color_message("Creating backport label in the Agent repository", Color.BOLD)) - github.create_label( - f'backport/{release_branch}', BACKPORT_LABEL_COLOR, f'Automatically create a backport PR to {release_branch}' - ) + for repo in UNFREEZE_REPOS: + create_and_update_release_branch( + ctx, repo, release_branch, base_branch=base_branch, base_directory=base_directory, upstream=upstream + ) - # Step 2 - Create PRs with new settings in datadog-agent repository + # create the backport label in the Agent repo + print(color_message("Creating backport label in the Agent repository", Color.BOLD)) + github.create_label( + f'backport/{release_branch}', + BACKPORT_LABEL_COLOR, + f'Automatically create a backport PR to {release_branch}', + ) - with ctx.cd(f"{base_directory}/{UNFREEZE_REPO_AGENT}"): + # Step 2 - Create PRs with new settings in datadog-agent repository # Step 2.0 - Create milestone update milestone_branch = f"release_milestone-{int(time.time())}" ctx.run(f"git switch -c {milestone_branch}") @@ -738,114 +855,135 @@ def create_release_branches(ctx, base_directory="~/dd", major_versions="6,7", up ) -def _update_last_stable(_, version, major_versions="7"): +def _update_last_stable(_, version, major_version: int = 7): """ Updates the last_release field(s) of release.json and returns the current milestone """ release_json = load_release_json() - list_major_versions = parse_major_versions(major_versions) # If the release isn't a RC, update the last stable release field - for major in list_major_versions: - version.major = major - release_json['last_stable'][str(major)] = str(version) + version.major = major_version + release_json['last_stable'][str(major_version)] = str(version) _save_release_json(release_json) return release_json["current_milestone"] +def _get_agent6_latest_release(gh): + return max((r for r in gh.get_releases() if r.title.startswith('6.53')), key=lambda r: r.created_at).title + + @task -def cleanup(ctx): - """ - Perform the post release cleanup steps +def cleanup(ctx, release_branch): + """Perform the post release cleanup steps + Currently this: - Updates the scheduled nightly pipeline to target the new stable branch - Updates the release.json last_stable fields """ - gh = GithubAPI() - latest_release = gh.latest_release() - match = VERSION_RE.search(latest_release) - if not match: - raise Exit(f'Unexpected version fetched from github {latest_release}', code=1) - version = _create_version_from_match(match) - current_milestone = _update_last_stable(ctx, version) - - # create pull request to update last stable version - main_branch = get_default_branch() - cleanup_branch = f"release/{version}-cleanup" - ctx.run(f"git checkout -b {cleanup_branch}") - ctx.run("git add release.json") - - commit_message = f"Update last_stable to {version}" - ok = try_git_command(ctx, f"git commit -m '{commit_message}'") - if not ok: - raise Exit( - color_message( - f"Could not create commit. Please commit manually with:\ngit commit -m {commit_message}\n, push the {cleanup_branch} branch and then open a PR against {main_branch}.", - "red", - ), - code=1, - ) - if not ctx.run(f"git push --set-upstream origin {cleanup_branch}", warn=True): - raise Exit( - color_message( - f"Could not push branch {cleanup_branch} to the upstream 'origin'. Please push it manually and then open a PR against {main_branch}.", - "red", - ), - code=1, - ) + with agent_context(ctx, release_branch): + gh = GithubAPI() + major_version = get_version_major(release_branch) + if major_version == 6: + latest_release = _get_agent6_latest_release(gh) + else: + latest_release = gh.latest_release() + match = VERSION_RE.search(latest_release) + if not match: + raise Exit(f'Unexpected version fetched from github {latest_release}', code=1) + + version = _create_version_from_match(match) + current_milestone = _update_last_stable(ctx, version, major_version=major_version) + + # create pull request to update last stable version + main_branch = get_default_branch() + cleanup_branch = f"release/{version}-cleanup" + ctx.run(f"git checkout -b {cleanup_branch}") + ctx.run("git add release.json") - create_release_pr(commit_message, main_branch, cleanup_branch, version, milestone=current_milestone) + commit_message = f"Update last_stable to {version}" + ok = try_git_command(ctx, f"git commit -m '{commit_message}'") + if not ok: + raise Exit( + color_message( + f"Could not create commit. Please commit manually with:\ngit commit -m {commit_message}\n, push the {cleanup_branch} branch and then open a PR against {main_branch}.", + "red", + ), + code=1, + ) - edit_schedule(ctx, 2555, ref=version.branch()) + if not ctx.run(f"git push --set-upstream origin {cleanup_branch}", warn=True): + raise Exit( + color_message( + f"Could not push branch {cleanup_branch} to the upstream 'origin'. Please push it manually and then open a PR against {main_branch}.", + "red", + ), + code=1, + ) + + create_release_pr(commit_message, main_branch, cleanup_branch, version, milestone=current_milestone) + + if major_version != 6: + edit_schedule(ctx, 2555, ref=version.branch()) @task -def check_omnibus_branches(ctx): - base_branch = _get_release_json_value('base_branch') - if base_branch == get_default_branch(): - default_branches = DEFAULT_BRANCHES_AGENT6 if is_agent6(ctx) else DEFAULT_BRANCHES - omnibus_ruby_branch = default_branches['omnibus-ruby'] - omnibus_software_branch = default_branches['omnibus-software'] - else: - omnibus_ruby_branch = base_branch - omnibus_software_branch = base_branch - - def _check_commit_in_repo(repo_name, branch, release_json_field): - with tempfile.TemporaryDirectory() as tmpdir: - ctx.run( - f'git clone --depth=50 https://github.com/DataDog/{repo_name} --branch {branch} {tmpdir}/{repo_name}', - hide='stdout', - ) - for version in ['nightly', 'nightly-a7']: - commit = _get_release_json_value(f'{version}::{release_json_field}') - if ctx.run(f'git -C {tmpdir}/{repo_name} branch --contains {commit}', warn=True, hide=True).exited != 0: - raise Exit( - code=1, - message=f'{repo_name} commit ({commit}) is not in the expected branch ({branch}). The PR is not mergeable', - ) - else: - print(f'[{version}] Commit {commit} was found in {repo_name} branch {branch}') +def check_omnibus_branches(ctx, release_branch=None, worktree=True): + def _main(): + base_branch = _get_release_json_value('base_branch') + if base_branch == get_default_branch(): + default_branches = DEFAULT_BRANCHES_AGENT6 if is_agent6(ctx) else DEFAULT_BRANCHES + omnibus_ruby_branch = default_branches['omnibus-ruby'] + omnibus_software_branch = default_branches['omnibus-software'] + else: + omnibus_ruby_branch = base_branch + omnibus_software_branch = base_branch + + def _check_commit_in_repo(repo_name, branch, release_json_field): + with tempfile.TemporaryDirectory() as tmpdir: + ctx.run( + f'git clone --depth=50 https://github.com/DataDog/{repo_name} --branch {branch} {tmpdir}/{repo_name}', + hide='stdout', + ) + for version in ['nightly', 'nightly-a7']: + commit = _get_release_json_value(f'{version}::{release_json_field}') + if ( + ctx.run(f'git -C {tmpdir}/{repo_name} branch --contains {commit}', warn=True, hide=True).exited + != 0 + ): + raise Exit( + code=1, + message=f'{repo_name} commit ({commit}) is not in the expected branch ({branch}). The PR is not mergeable', + ) + else: + print(f'[{version}] Commit {commit} was found in {repo_name} branch {branch}') - _check_commit_in_repo('omnibus-ruby', omnibus_ruby_branch, 'OMNIBUS_RUBY_VERSION') - _check_commit_in_repo('omnibus-software', omnibus_software_branch, 'OMNIBUS_SOFTWARE_VERSION') + _check_commit_in_repo('omnibus-ruby', omnibus_ruby_branch, 'OMNIBUS_RUBY_VERSION') + _check_commit_in_repo('omnibus-software', omnibus_software_branch, 'OMNIBUS_SOFTWARE_VERSION') - return True + return True + + if worktree: + with agent_context(ctx, release_branch): + return _main() + else: + return _main() @task def update_build_links(_, new_version, patch_version=False): - """ - Updates Agent release candidates build links on https://datadoghq.atlassian.net/wiki/spaces/agent/pages/2889876360/Build+links + """Updates Agent release candidates build links on https://datadoghq.atlassian.net/wiki/spaces/agent/pages/2889876360/Build+links - new_version - should be given as an Agent 7 RC version, ie. '7.50.0-rc.1' format. Does not support patch version unless patch_version is set to True. - patch_version - if set to True, then task can be used for patch releases (3 digits), ie. '7.50.1-rc.1' format. Otherwise patch release number will be considered as invalid. + Args: + new_version: Should be given as an Agent 7 RC version, ie. '7.50.0-rc.1' format. Does not support patch version unless patch_version is set to True. + patch_version: If set to True, then task can be used for patch releases (3 digits), ie. '7.50.1-rc.1' format. Otherwise patch release number will be considered as invalid. Notes: - Attlasian credentials are required to be available as ATLASSIAN_USERNAME and ATLASSIAN_PASSWORD as environment variables. - ATLASSIAN_USERNAME is typically an email address. - ATLASSIAN_PASSWORD is a token. See: https://id.atlassian.com/manage-profile/security/api-tokens + Attlasian credentials are required to be available as ATLASSIAN_USERNAME and ATLASSIAN_PASSWORD as environment variables. + ATLASSIAN_USERNAME is typically an email address. + ATLASSIAN_PASSWORD is a token. See: https://id.atlassian.com/manage-profile/security/api-tokens """ + from atlassian import Confluence from atlassian.confluence import ApiError @@ -918,19 +1056,21 @@ def _create_build_links_patterns(current_version, new_version): @task -def get_active_release_branch(_): - """ - Determine what is the current active release branch for the Agent. +def get_active_release_branch(ctx, release_branch): + """Determine what is the current active release branch for the Agent within the release worktree. + If release started and code freeze is in place - main branch is considered active. If release started and code freeze is over - release branch is considered active. """ - gh = GithubAPI() - next_version = get_next_version(gh) - release_branch = gh.get_branch(next_version.branch()) - if release_branch: - print(f"{release_branch.name}") - else: - print(get_default_branch()) + + with agent_context(ctx, branch=release_branch): + gh = GithubAPI() + next_version = get_next_version(gh, latest_release=_get_agent6_latest_release(gh) if is_agent6(ctx) else None) + release_branch = gh.get_branch(next_version.branch()) + if release_branch: + print(f"{release_branch.name}") + else: + print(get_default_branch()) @task @@ -942,23 +1082,24 @@ def get_unreleased_release_branches(_): print(json.dumps([branch.name for branch in gh.latest_unreleased_release_branches()])) -def get_next_version(gh): - latest_release = gh.latest_release() +def get_next_version(gh, latest_release=None): + latest_release = latest_release or gh.latest_release() current_version = _create_version_from_match(VERSION_RE.search(latest_release)) return current_version.next_version(bump_minor=True) @task def generate_release_metrics(ctx, milestone, freeze_date, release_date): - """ - Task to run after the release is done to generate release metrics. + """Task to run after the release is done to generate release metrics. - milestone - github milestone number for the release. Expected format like '7.54.0' - freeze_date - date when the code freeze was started. Expected format YYYY-MM-DD, like '2022-02-01' - release_date - date when the release was done. Expected format YYYY-MM-DD, like '2022-09-15' + Args: + milestone: Github milestone number for the release. Expected format like '7.54.0' + freeze_date: Date when the code freeze was started. Expected format YYYY-MM-DD, like '2022-02-01' + release_date: Date when the release was done. Expected format YYYY-MM-DD, like '2022-09-15' - Results are formatted in a way that can be easily copied to https://docs.google.com/spreadsheets/d/1r39CtyuvoznIDx1JhhLHQeAzmJB182n7ln8nToiWQ8s/edit#gid=1490566519 - Copy paste numbers to the respective sheets and select 'Split text to columns'. + Notes: + Results are formatted in a way that can be easily copied to https://docs.google.com/spreadsheets/d/1r39CtyuvoznIDx1JhhLHQeAzmJB182n7ln8nToiWQ8s/edit#gid=1490566519 + Copy paste numbers to the respective sheets and select 'Split text to columns'. """ # Step 1: Lead Time for Changes data @@ -987,10 +1128,12 @@ def generate_release_metrics(ctx, milestone, freeze_date, release_date): @task def create_schedule(_, version, freeze_date): + """Create confluence pages for the release schedule. + + Args: + freeze_date: Date when the code freeze was started. Expected format YYYY-MM-DD, like '2022-02-01' """ - Create confluence pages for the release schedule. - freeze_date - date when the code freeze was started. Expected format YYYY-MM-DD, like '2022-02-01' - """ + required_environment_variables = ["ATLASSIAN_USERNAME", "ATLASSIAN_PASSWORD"] if not all(key in os.environ for key in required_environment_variables): raise Exit(f"You must set {required_environment_variables} environment variables to use this task.", code=1) @@ -1052,36 +1195,38 @@ def check_for_changes(ctx, release_branch, warning_mode=False): """ Check if there was any modification on the release repositories since last release candidate. """ - next_version = next_rc_version(ctx, "7") - repo_data = generate_repo_data(warning_mode, next_version, release_branch) - changes = 'false' - for repo_name, repo in repo_data.items(): - head_commit = get_last_commit(ctx, repo_name, repo['branch']) - last_tag_commit, last_tag_name = get_last_release_tag(ctx, repo_name, next_version.tag_pattern()) - if last_tag_commit != "" and last_tag_commit != head_commit: - changes = 'true' - print(f"{repo_name} has new commits since {last_tag_name}", file=sys.stderr) - if warning_mode: - team = "agent-integrations" - emails = release_manager(next_version.clone(), team) - warn_new_commits(emails, team, repo['branch'], next_version) - else: - if repo_name not in ["datadog-agent", "integrations-core"]: - with clone(ctx, repo_name, repo['branch'], options="--filter=blob:none --no-checkout"): - # We can add the new commit now to be used by release candidate creation - print(f"Creating new tag {next_version} on {repo_name}", file=sys.stderr) - ctx.run(f"git tag {next_version}") - ctx.run(f"git push origin tag {next_version}") - # This repo has changes, the next check is not needed - continue - if repo_name != "datadog-agent" and last_tag_name != repo['previous_tag']: - changes = 'true' - print( - f"{repo_name} has a new tag {last_tag_name} since last release candidate (was {repo['previous_tag']})", - file=sys.stderr, - ) - # Send a value for the create_rc_pr.yml workflow - print(changes) + with agent_context(ctx, release_branch): + major_version = get_version_major(release_branch) + next_version = next_rc_version(ctx, major_version) + repo_data = generate_repo_data(ctx, warning_mode, next_version, release_branch) + changes = 'false' + for repo_name, repo in repo_data.items(): + head_commit = get_last_commit(ctx, repo_name, repo['branch']) + last_tag_commit, last_tag_name = get_last_release_tag(ctx, repo_name, next_version.tag_pattern()) + if last_tag_commit != "" and last_tag_commit != head_commit: + changes = 'true' + print(f"{repo_name} has new commits since {last_tag_name}", file=sys.stderr) + if warning_mode: + team = "agent-integrations" + emails = release_manager(next_version.clone(), team) + warn_new_commits(emails, team, repo['branch'], next_version) + else: + if repo_name not in ["datadog-agent", "integrations-core"]: + with clone(ctx, repo_name, repo['branch'], options="--filter=blob:none --no-checkout"): + # We can add the new commit now to be used by release candidate creation + print(f"Creating new tag {next_version} on {repo_name}", file=sys.stderr) + ctx.run(f"git tag {next_version}") + ctx.run(f"git push origin tag {next_version}") + # This repo has changes, the next check is not needed + continue + if repo_name != "datadog-agent" and last_tag_name != repo['previous_tag']: + changes = 'true' + print( + f"{repo_name} has a new tag {last_tag_name} since last release candidate (was {repo['previous_tag']})", + file=sys.stderr, + ) + # Send a value for the create_rc_pr.yml workflow + print(changes) @task @@ -1100,7 +1245,7 @@ def create_qa_cards(ctx, tag): @task -def create_github_release(_ctx, version, draft=True): +def create_github_release(ctx, release_branch, draft=True): """ Create a GitHub release for the given tag. """ @@ -1112,40 +1257,42 @@ def create_github_release(_ctx, version, draft=True): ) notes = [] + version = deduce_and_ask_version(ctx, release_branch) - for section, filename in sections: - text = pandoc.write(pandoc.read(file=filename), format="markdown_strict", options=["--wrap=none"]) + with agent_context(ctx, release_branch): + for section, filename in sections: + text = pandoc.write(pandoc.read(file=filename), format="markdown_strict", options=["--wrap=none"]) - header_found = False - lines = [] + header_found = False + lines = [] - # Extract the section for the given version - for line in text.splitlines(): - # Move to the right section - if line.startswith("## " + version): - header_found = True - continue + # Extract the section for the given version + for line in text.splitlines(): + # Move to the right section + if line.startswith("## " + version): + header_found = True + continue + + if header_found: + # Next version found, stop + if line.startswith("## "): + break + lines.append(line) + # if we found the header, add the section to the final release note if header_found: - # Next version found, stop - if line.startswith("## "): - break - lines.append(line) - - # if we found the header, add the section to the final release note - if header_found: - notes.append(f"# {section}") - notes.extend(lines) - - if not notes: - print(f"No release notes found for {version}") - raise Exit(code=1) - - github = GithubAPI() - release = github.create_release( - version, - "\n".join(notes), - draft=draft, - ) + notes.append(f"# {section}") + notes.extend(lines) + + if not notes: + print(f"No release notes found for {version}") + raise Exit(code=1) + + github = GithubAPI() + release = github.create_release( + version, + "\n".join(notes), + draft=draft, + ) - print(f"Link to the release note: {release.html_url}") + print(f"Link to the release note: {release.html_url}") diff --git a/tasks/unit_tests/release_tests.py b/tasks/unit_tests/release_tests.py index 0f52819ed6e4c..bf912ef27c930 100644 --- a/tasks/unit_tests/release_tests.py +++ b/tasks/unit_tests/release_tests.py @@ -7,7 +7,7 @@ from types import SimpleNamespace from unittest.mock import MagicMock, call, patch -from invoke import MockContext, Result +from invoke import Context, MockContext, Result from invoke.exceptions import Exit from tasks import release @@ -634,7 +634,7 @@ class TestGenerateRepoData(unittest.TestCase): def test_integrations_core_only_main(self): next_version = MagicMock() next_version.branch.return_value = "9.1.x" - repo_data = generate_repo_data(True, next_version, "main") + repo_data = generate_repo_data(Context(), True, next_version, "main") self.assertEqual(len(repo_data), 1) self.assertEqual("9.1.x", repo_data["integrations-core"]["branch"]) self.assertEqual("9.1.1-rc.0", repo_data["integrations-core"]["previous_tag"]) @@ -645,7 +645,7 @@ def test_integrations_core_only_main(self): def test_integrations_core_only_release(self): next_version = MagicMock() next_version.branch.return_value = "9.1.x" - repo_data = generate_repo_data(True, next_version, "9.1.x") + repo_data = generate_repo_data(Context(), True, next_version, "9.1.x") self.assertEqual(len(repo_data), 1) self.assertEqual("9.1.x", repo_data["integrations-core"]["branch"]) self.assertEqual("9.1.1-rc.0", repo_data["integrations-core"]["previous_tag"]) @@ -664,7 +664,7 @@ def test_integrations_core_only_release(self): def test_all_repos_default_branch(self): next_version = MagicMock() next_version.branch.return_value = "9.1.x" - repo_data = generate_repo_data(False, next_version, "main") + repo_data = generate_repo_data(Context(), False, next_version, "main") self.assertEqual(len(repo_data), 5) self.assertEqual("9.1.x", repo_data["integrations-core"]["branch"]) self.assertEqual("9.1.1-rc.0", repo_data["integrations-core"]["previous_tag"]) @@ -691,7 +691,7 @@ def test_all_repos_default_branch(self): def test_all_repos_release(self): next_version = MagicMock() next_version.branch.return_value = "9.1.x" - repo_data = generate_repo_data(False, next_version, "9.1.x") + repo_data = generate_repo_data(Context(), False, next_version, "9.1.x") self.assertEqual(len(repo_data), 5) self.assertEqual("9.1.x", repo_data["integrations-core"]["branch"]) self.assertEqual("9.1.x", repo_data["omnibus-software"]["branch"]) @@ -701,6 +701,7 @@ def test_all_repos_release(self): class TestCheckForChanges(unittest.TestCase): + @patch('tasks.release.agent_context') @patch('builtins.print') @patch('tasks.release.next_rc_version') @patch( @@ -715,7 +716,7 @@ class TestCheckForChanges(unittest.TestCase): } ), ) - def test_no_changes(self, version_mock, print_mock): + def test_no_changes(self, version_mock, print_mock, _): next = MagicMock() next.tag_pattern.return_value = "7.55.0*" next.__str__.return_value = "7.55.0-rc.2" @@ -757,6 +758,7 @@ def test_no_changes(self, version_mock, print_mock): release.check_for_changes(c, "main") print_mock.assert_called_with("false") + @patch('tasks.release.agent_context') @patch('builtins.print') @patch('tasks.release.next_rc_version') @patch( @@ -772,7 +774,7 @@ def test_no_changes(self, version_mock, print_mock): ), ) @patch('os.chdir', new=MagicMock()) - def test_changes_new_commit_first_repo(self, version_mock, print_mock): + def test_changes_new_commit_first_repo(self, version_mock, print_mock, _): with mock_git_clone(): next = MagicMock() next.tag_pattern.return_value = "7.55.0*" @@ -835,6 +837,7 @@ def test_changes_new_commit_first_repo(self, version_mock, print_mock): print_mock.assert_has_calls(calls) self.assertEqual(print_mock.call_count, 3) + @patch('tasks.release.agent_context') @patch('builtins.print') @patch('tasks.release.next_rc_version') @patch( @@ -850,7 +853,7 @@ def test_changes_new_commit_first_repo(self, version_mock, print_mock): ), ) @patch('os.chdir', new=MagicMock()) - def test_changes_new_commit_all_repo(self, version_mock, print_mock): + def test_changes_new_commit_all_repo(self, version_mock, print_mock, _): with mock_git_clone(): next = MagicMock() next.tag_pattern.return_value = "7.55.0*" @@ -919,6 +922,7 @@ def test_changes_new_commit_all_repo(self, version_mock, print_mock): print_mock.assert_has_calls(calls) self.assertEqual(print_mock.call_count, 9) + @patch('tasks.release.agent_context') @patch('builtins.print') @patch('tasks.release.next_rc_version') @patch( @@ -933,7 +937,7 @@ def test_changes_new_commit_all_repo(self, version_mock, print_mock): } ), ) - def test_changes_new_release_one_repo(self, version_mock, print_mock): + def test_changes_new_release_one_repo(self, version_mock, print_mock, _): next = MagicMock() next.tag_pattern.return_value = "7.55.0*" next.__str__.return_value = "7.55.0-rc.2" @@ -983,6 +987,7 @@ def test_changes_new_release_one_repo(self, version_mock, print_mock): print_mock.assert_has_calls(calls, any_order=True) self.assertEqual(print_mock.call_count, 2) + @patch('tasks.release.agent_context') @patch('builtins.print') @patch('tasks.release.next_rc_version') @patch( @@ -998,7 +1003,7 @@ def test_changes_new_release_one_repo(self, version_mock, print_mock): ), ) @patch('os.chdir', new=MagicMock()) - def test_changes_new_commit_second_repo_branch_out(self, version_mock, print_mock): + def test_changes_new_commit_second_repo_branch_out(self, version_mock, print_mock, _): with mock_git_clone(): next = MagicMock() next.tag_pattern.return_value = "7.55.0*" @@ -1062,6 +1067,7 @@ def test_changes_new_commit_second_repo_branch_out(self, version_mock, print_moc self.assertEqual(print_mock.call_count, 3) # def test_no_changes_warning(self, print_mock): + @patch('tasks.release.agent_context') @patch('builtins.print') @patch('tasks.release.next_rc_version') @patch( @@ -1072,7 +1078,7 @@ def test_changes_new_commit_second_repo_branch_out(self, version_mock, print_moc } ), ) - def test_no_changes_warning(self, version_mock, print_mock): + def test_no_changes_warning(self, version_mock, print_mock, _): next = MagicMock() next.tag_pattern.return_value = "7.55.0*" next.__str__.return_value = "7.55.0-rc.2" @@ -1090,6 +1096,7 @@ def test_no_changes_warning(self, version_mock, print_mock): release.check_for_changes(c, "main", True) print_mock.assert_called_with("false") + @patch('tasks.release.agent_context') @patch('builtins.print') @patch('tasks.release.next_rc_version') @patch( @@ -1102,7 +1109,7 @@ def test_no_changes_warning(self, version_mock, print_mock): ) @patch('tasks.release.release_manager', new=MagicMock(return_value="release_manager")) @patch('tasks.release.warn_new_commits', new=MagicMock()) - def test_changes_other_repo_warning(self, version_mock, print_mock): + def test_changes_other_repo_warning(self, version_mock, print_mock, _): next = MagicMock() next.tag_pattern.return_value = "7.55.0*" next.__str__.return_value = "7.55.0-rc.2" @@ -1120,6 +1127,7 @@ def test_changes_other_repo_warning(self, version_mock, print_mock): release.check_for_changes(c, "main", True) print_mock.assert_called_with("false") + @patch('tasks.release.agent_context') @patch('builtins.print') @patch('tasks.release.next_rc_version') @patch( @@ -1132,7 +1140,7 @@ def test_changes_other_repo_warning(self, version_mock, print_mock): ) @patch('tasks.release.release_manager', new=MagicMock(return_value="release_manager")) @patch('tasks.release.warn_new_commits', new=MagicMock()) - def test_changes_integrations_core_warning(self, version_mock, print_mock): + def test_changes_integrations_core_warning(self, version_mock, print_mock, _): next = MagicMock() next.tag_pattern.return_value = "7.55.0*" next.__str__.return_value = "7.55.0-rc.2" @@ -1155,6 +1163,7 @@ def test_changes_integrations_core_warning(self, version_mock, print_mock): print_mock.assert_has_calls(calls) self.assertEqual(print_mock.call_count, 2) + @patch('tasks.release.agent_context') @patch('builtins.print') @patch('tasks.release.next_rc_version') @patch( @@ -1167,7 +1176,7 @@ def test_changes_integrations_core_warning(self, version_mock, print_mock): ) @patch('tasks.release.release_manager', new=MagicMock(return_value="release_manager")) @patch('tasks.release.warn_new_commits', new=MagicMock()) - def test_changes_integrations_core_warning_branch_out(self, version_mock, print_mock): + def test_changes_integrations_core_warning_branch_out(self, version_mock, print_mock, _): next = MagicMock() next.tag_pattern.return_value = "7.55.0*" next.__str__.return_value = "7.55.0-rc.2" From cf461803fe15f5acaac159c02babcd37b1d920b1 Mon Sep 17 00:00:00 2001 From: Alexandre Yang Date: Fri, 6 Dec 2024 13:03:34 +0100 Subject: [PATCH 298/439] [HA Agent] Fix typo and use correct term (#31826) --- comp/haagent/def/component.go | 2 +- comp/haagent/impl/config.go | 2 +- comp/haagent/impl/haagent_test.go | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/comp/haagent/def/component.go b/comp/haagent/def/component.go index 7115988e5501b..bc5038265b76f 100644 --- a/comp/haagent/def/component.go +++ b/comp/haagent/def/component.go @@ -20,7 +20,7 @@ type Component interface { GetState() State // SetLeader takes the leader agent hostname as input, if it matches the current agent hostname, - // the isLeader state is set to true, otherwise false. + // the state is set to active, otherwise standby. SetLeader(leaderAgentHostname string) // ShouldRunIntegration returns true if the integration should be run diff --git a/comp/haagent/impl/config.go b/comp/haagent/impl/config.go index dc55f791264fc..2a6c4e20a8d12 100644 --- a/comp/haagent/impl/config.go +++ b/comp/haagent/impl/config.go @@ -10,7 +10,7 @@ import ( ) // validHaIntegrations represent the list of integrations that will be considered as -// an "HA Integration", meaning it will only run on the leader Agent. +// an "HA Integration", meaning it will only run on the active Agent. // At the moment, the list of HA Integrations is hardcoded here, but we might provide // more dynamic way to configure which integration should be considered HA Integration. var validHaIntegrations = map[string]bool{ diff --git a/comp/haagent/impl/haagent_test.go b/comp/haagent/impl/haagent_test.go index a83822de20431..88b1397f70456 100644 --- a/comp/haagent/impl/haagent_test.go +++ b/comp/haagent/impl/haagent_test.go @@ -57,7 +57,7 @@ func Test_GetGroup(t *testing.T) { assert.Equal(t, "my-group-01", haAgent.GetGroup()) } -func Test_IsLeader_SetLeader(t *testing.T) { +func Test_GetState(t *testing.T) { agentConfigs := map[string]interface{}{ "hostname": "my-agent-hostname", } @@ -201,7 +201,7 @@ func Test_haAgentImpl_ShouldRunIntegration(t *testing.T) { }, }, { - name: "ha agent enabled and agent is not leader", + name: "ha agent enabled and agent is not active", // should skip HA-integrations // should run "non HA integrations" agentConfigs: map[string]interface{}{ @@ -209,7 +209,7 @@ func Test_haAgentImpl_ShouldRunIntegration(t *testing.T) { "ha_agent.enabled": true, "ha_agent.group": testGroup, }, - leader: "another-agent-is-leader", + leader: "another-agent-is-active", expectShouldRunIntegration: map[string]bool{ "snmp": false, "cisco_aci": false, From 88c98ae502d042d0826a09369e2aa05a1055987a Mon Sep 17 00:00:00 2001 From: Kevin Fairise <132568982+KevinFairise2@users.noreply.github.com> Date: Fri, 6 Dec 2024 13:12:59 +0100 Subject: [PATCH 299/439] Rotate e2e tests API key (#31818) --- test/new-e2e/pkg/runner/parameters/store_aws.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/new-e2e/pkg/runner/parameters/store_aws.go b/test/new-e2e/pkg/runner/parameters/store_aws.go index 1a9ccfd55228a..7a2bc86aeea18 100644 --- a/test/new-e2e/pkg/runner/parameters/store_aws.go +++ b/test/new-e2e/pkg/runner/parameters/store_aws.go @@ -9,9 +9,10 @@ import ( "context" "errors" "fmt" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/utils/common" "strings" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/utils/common" + "github.com/aws/aws-sdk-go-v2/service/ssm" ssmTypes "github.com/aws/aws-sdk-go-v2/service/ssm/types" @@ -59,6 +60,6 @@ func (s awsStore) get(key StoreKey) (string, error) { // awsOverrides is a map of StoreKey to StoreKey used to override key only in AWS store var awsOverrides = map[StoreKey]StoreKey{ - APIKey: "api_key_2", + APIKey: "api_key_3", APPKey: "app_key_2", } From 6583e3ebf025cf04fa72da2e4275aa6dfe6e1e1c Mon Sep 17 00:00:00 2001 From: pducolin <45568537+pducolin@users.noreply.github.com> Date: Fri, 6 Dec 2024 13:42:28 +0100 Subject: [PATCH 300/439] [e2e] improve logs in UpdateEnv (#31804) --- test/new-e2e/pkg/e2e/suite.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/new-e2e/pkg/e2e/suite.go b/test/new-e2e/pkg/e2e/suite.go index e83a083f9d2be..bb15e92e7ce2e 100644 --- a/test/new-e2e/pkg/e2e/suite.go +++ b/test/new-e2e/pkg/e2e/suite.go @@ -281,6 +281,8 @@ func (bs *BaseSuite[Env]) reconcileEnv(targetProvisioners ProvisionerMap) error return nil } + bs.T().Logf("Updating environment with new provisioners") + logger := newTestLogger(bs.T()) ctx, cancel := bs.providerContext(createTimeout) defer cancel() @@ -293,6 +295,7 @@ func (bs *BaseSuite[Env]) reconcileEnv(targetProvisioners ProvisionerMap) error // Check for removed provisioners, we need to call delete on them first for id, provisioner := range bs.currentProvisioners { if _, found := targetProvisioners[id]; !found { + bs.T().Logf("Destroying stack %s with provisioner %s", bs.params.stackName, id) if err := provisioner.Destroy(ctx, bs.params.stackName, logger); err != nil { return fmt.Errorf("unable to delete stack: %s, provisioner %s, err: %v", bs.params.stackName, id, err) } @@ -305,6 +308,7 @@ func (bs *BaseSuite[Env]) reconcileEnv(targetProvisioners ProvisionerMap) error var provisionerResources RawResources var err error + bs.T().Logf("Provisioning environment stack %s with provisioner %s", bs.params.stackName, id) switch pType := provisioner.(type) { case TypedProvisioner[Env]: provisionerResources, err = pType.ProvisionEnv(ctx, bs.params.stackName, logger, newEnv) From caf881cfc72ca88f0568c7586bc58aa9dd97de90 Mon Sep 17 00:00:00 2001 From: Baptiste Foy Date: Fri, 6 Dec 2024 14:16:25 +0100 Subject: [PATCH 301/439] upgrade(installer): Uninstall deb/rpm agent when installing the OCI (#31784) --- pkg/fleet/installer/installer.go | 19 +++++-- pkg/fleet/installer/packages/datadog_agent.go | 20 ++++++-- .../packages/datadog_agent_windows.go | 5 ++ pkg/fleet/installer/packages/pkg_manager.go | 51 +++++++++++++++++++ test/new-e2e/tests/installer/host/host.go | 6 ++- .../installer/unix/package_agent_test.go | 8 ++- 6 files changed, 98 insertions(+), 11 deletions(-) create mode 100644 pkg/fleet/installer/packages/pkg_manager.go diff --git a/pkg/fleet/installer/installer.go b/pkg/fleet/installer/installer.go index 8000be3c5a261..d7cca9819b4da 100644 --- a/pkg/fleet/installer/installer.go +++ b/pkg/fleet/installer/installer.go @@ -160,7 +160,7 @@ func (i *installerImpl) IsInstalled(_ context.Context, pkg string) (bool, error) func (i *installerImpl) Install(ctx context.Context, url string, args []string) error { i.m.Lock() defer i.m.Unlock() - pkg, err := i.downloader.Download(ctx, url) + pkg, err := i.downloader.Download(ctx, url) // Downloads pkg metadata only if err != nil { return fmt.Errorf("could not download package: %w", err) } @@ -169,6 +169,10 @@ func (i *installerImpl) Install(ctx context.Context, url string, args []string) span.SetTag(ext.ResourceName, pkg.Name) span.SetTag("package_version", pkg.Version) } + err = i.preparePackage(ctx, pkg.Name, args) // Preinst + if err != nil { + return fmt.Errorf("could not prepare package: %w", err) + } dbPkg, err := i.db.GetPackage(pkg.Name) if err != nil && !errors.Is(err, db.ErrPackageNotFound) { return fmt.Errorf("could not get package: %w", err) @@ -203,11 +207,11 @@ func (i *installerImpl) Install(ctx context.Context, url string, args []string) if err != nil { return fmt.Errorf("could not create repository: %w", err) } - err = i.configurePackage(ctx, pkg.Name) + err = i.configurePackage(ctx, pkg.Name) // Config if err != nil { return fmt.Errorf("could not configure package: %w", err) } - err = i.setupPackage(ctx, pkg.Name, args) + err = i.setupPackage(ctx, pkg.Name, args) // Postinst if err != nil { return fmt.Errorf("could not setup package: %w", err) } @@ -615,6 +619,15 @@ func (i *installerImpl) promoteExperiment(ctx context.Context, pkg string) error } } +func (i *installerImpl) preparePackage(ctx context.Context, pkg string, _ []string) error { + switch pkg { + case packageDatadogAgent: + return packages.PrepareAgent(ctx) + default: + return nil + } +} + func (i *installerImpl) setupPackage(ctx context.Context, pkg string, args []string) error { switch pkg { case packageDatadogInstaller: diff --git a/pkg/fleet/installer/packages/datadog_agent.go b/pkg/fleet/installer/packages/datadog_agent.go index ad8b7c4fade4c..7236096bbf1e1 100644 --- a/pkg/fleet/installer/packages/datadog_agent.go +++ b/pkg/fleet/installer/packages/datadog_agent.go @@ -64,6 +64,22 @@ var ( } ) +// PrepareAgent prepares the machine to install the agent +func PrepareAgent(ctx context.Context) (err error) { + span, ctx := tracer.StartSpanFromContext(ctx, "prepare_agent") + defer func() { span.Finish(tracer.WithError(err)) }() + + // Check if the agent has been installed by a package manager, if yes remove it + if !oldAgentInstalled() { + return nil // Nothing to do + } + err = stopOldAgentUnits(ctx) + if err != nil { + return fmt.Errorf("failed to stop old agent units: %w", err) + } + return removeDebRPMPackage(ctx, agentPackage) +} + // SetupAgent installs and starts the agent func SetupAgent(ctx context.Context, _ []string) (err error) { span, ctx := tracer.StartSpanFromContext(ctx, "setup_agent") @@ -75,10 +91,6 @@ func SetupAgent(ctx context.Context, _ []string) (err error) { span.Finish(tracer.WithError(err)) }() - if err = stopOldAgentUnits(ctx); err != nil { - return err - } - for _, unit := range stableUnits { if err = loadUnit(ctx, unit); err != nil { return fmt.Errorf("failed to load %s: %v", unit, err) diff --git a/pkg/fleet/installer/packages/datadog_agent_windows.go b/pkg/fleet/installer/packages/datadog_agent_windows.go index 3000a96fe712d..d330ab434d0e0 100644 --- a/pkg/fleet/installer/packages/datadog_agent_windows.go +++ b/pkg/fleet/installer/packages/datadog_agent_windows.go @@ -21,6 +21,11 @@ const ( datadogAgent = "datadog-agent" ) +// PrepareAgent prepares the machine to install the agent +func PrepareAgent(_ context.Context) error { + return nil // No-op on Windows +} + // SetupAgent installs and starts the agent func SetupAgent(ctx context.Context, args []string) (err error) { span, _ := tracer.StartSpanFromContext(ctx, "setup_agent") diff --git a/pkg/fleet/installer/packages/pkg_manager.go b/pkg/fleet/installer/packages/pkg_manager.go new file mode 100644 index 0000000000000..e74dba210a015 --- /dev/null +++ b/pkg/fleet/installer/packages/pkg_manager.go @@ -0,0 +1,51 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build !windows + +package packages + +import ( + "bytes" + "context" + "fmt" + "os/exec" + + "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" +) + +// removeDebRPMPackage removes a package installed via deb/rpm package manager +// It doesn't remove dependencies or purge as we want to keep existing configuration files +// and reinstall the package using the installer. +// Note: we don't run the pre/post remove scripts as we want to avoid surprises for older agent versions (like removing config) +func removeDebRPMPackage(ctx context.Context, pkg string) (err error) { + span, _ := tracer.StartSpanFromContext(ctx, "remove_deb_rpm_package") + defer func() { span.Finish(tracer.WithError(err)) }() + // Compute the right command depending on the package manager + var cmd *exec.Cmd + if _, pathErr := exec.LookPath("dpkg"); pathErr == nil { + // Doesn't fail if the package isn't installed + cmd = exec.Command("dpkg", "-r", "--no-triggers", agentPackage) + } else if _, pathErr := exec.LookPath("rpm"); pathErr == nil { + // Check if package exist, else the command will fail + pkgErr := exec.Command("rpm", "-q", agentPackage).Run() + if pkgErr == nil { + cmd = exec.Command("rpm", "-e", "--nodeps", "--noscripts", agentPackage) + } + } + + if cmd == nil { + // If we can't find a package manager or the package is not installed, ignore this step + return nil + } + + // Run the command + var buf bytes.Buffer + cmd.Stderr = &buf + if err := cmd.Run(); err != nil { + return fmt.Errorf("failed to uninstall deb/rpm package %s (%w): %s", pkg, err, buf.String()) + } + return nil +} diff --git a/test/new-e2e/tests/installer/host/host.go b/test/new-e2e/tests/installer/host/host.go index c98684ab498fa..79b43ef730fec 100644 --- a/test/new-e2e/tests/installer/host/host.go +++ b/test/new-e2e/tests/installer/host/host.go @@ -253,7 +253,9 @@ func (h *Host) AssertPackageNotInstalledByPackageManager(pkgs ...string) { for _, pkg := range pkgs { switch h.pkgManager { case "apt": - h.remote.MustExecute("! dpkg-query -l " + pkg) + // If a package is removed but not purged, it will be in the "rc" state (opposed to "ii" for installed) + // if it's been purged, the command will return an error + h.remote.MustExecute(fmt.Sprintf("dpkg-query -l %[1]s | grep '^rc' || ! dpkg-query -l %[1]s", pkg)) case "yum", "zypper": h.remote.MustExecute("! rpm -q " + pkg) default: @@ -647,7 +649,7 @@ func (s *State) AssertDirExists(path string, perms fs.FileMode, user string, gro func (s *State) AssertPathDoesNotExist(path string) { path = evalSymlinkPath(path, s.FS) _, ok := s.FS[path] - assert.False(s.t, ok, "something exists at path", path) + assert.False(s.t, ok, "something exists at path %s", path) } // AssertFileExistsAnyUser asserts that a file exists on the host with the given perms. diff --git a/test/new-e2e/tests/installer/unix/package_agent_test.go b/test/new-e2e/tests/installer/unix/package_agent_test.go index 571d7a87eae41..70ddeff75c676 100644 --- a/test/new-e2e/tests/installer/unix/package_agent_test.go +++ b/test/new-e2e/tests/installer/unix/package_agent_test.go @@ -113,7 +113,7 @@ func (s *packageAgentSuite) TestUpgrade_AgentDebRPM_to_OCI() { state = s.host.State() s.assertUnits(state, false) s.host.AssertPackageInstalledByInstaller("datadog-agent") - s.host.AssertPackageInstalledByPackageManager("datadog-agent") + s.host.AssertPackageNotInstalledByPackageManager("datadog-agent") } // TestUpgrade_Agent_OCI_then_DebRpm agent deb/rpm install while OCI one is installed @@ -422,7 +422,7 @@ func (s *packageAgentSuite) TestUpgrade_DisabledAgentDebRPM_to_OCI() { state = s.host.State() s.assertUnits(state, false) s.host.AssertPackageInstalledByInstaller("datadog-agent") - s.host.AssertPackageInstalledByPackageManager("datadog-agent") + s.host.AssertPackageNotInstalledByPackageManager("datadog-agent") s.host.Run("sudo systemctl show datadog-agent -p ExecStart | grep /opt/datadog-packages") } @@ -430,6 +430,7 @@ func (s *packageAgentSuite) TestUpgrade_DisabledAgentDebRPM_to_OCI() { func (s *packageAgentSuite) TestInstallWithLeftoverDebDir() { // create /opt/datadog-agent to simulate a disabled agent s.host.Run("sudo mkdir -p /opt/datadog-agent") + defer func() { s.host.Run("sudo rm -rf /opt/datadog-agent") }() // install OCI agent s.RunInstallScript(envForceInstall("datadog-agent")) @@ -451,6 +452,9 @@ func (s *packageAgentSuite) purgeAgentDebInstall() { default: s.T().Fatalf("unsupported package manager: %s", pkgManager) } + // Make sure everything is cleaned up -- there are tests where the package is + // removed but not purged so the directory remains + s.Env().RemoteHost.Execute("sudo rm -rf /opt/datadog-agent") } func (s *packageAgentSuite) installDebRPMAgent() { From 68415f12658292cb1773a0e7998b6712e5abbc0e Mon Sep 17 00:00:00 2001 From: Alexandre Yang Date: Fri, 6 Dec 2024 14:54:31 +0100 Subject: [PATCH 302/439] [HA Agent] Add datadog.agent.ha_agent.running metric (#31782) --- pkg/aggregator/aggregator.go | 13 ++++++ pkg/aggregator/aggregator_test.go | 72 +++++++++++++++++++++++++++++-- pkg/aggregator/sender_test.go | 2 +- 3 files changed, 82 insertions(+), 5 deletions(-) diff --git a/pkg/aggregator/aggregator.go b/pkg/aggregator/aggregator.go index e8ac4fd425d13..653a031194819 100644 --- a/pkg/aggregator/aggregator.go +++ b/pkg/aggregator/aggregator.go @@ -610,6 +610,19 @@ func (agg *BufferedAggregator) appendDefaultSeries(start time.Time, series metri SourceTypeName: "System", }) + if agg.haAgent.Enabled() { + haAgentTags := append(agg.tags(false), "agent_state:"+string(agg.haAgent.GetState())) + // Send along a metric to show if HA Agent is running with agent_state tag. + series.Append(&metrics.Serie{ + Name: fmt.Sprintf("datadog.%s.ha_agent.running", agg.agentName), + Points: []metrics.Point{{Value: float64(1), Ts: float64(start.Unix())}}, + Tags: tagset.CompositeTagsFromSlice(haAgentTags), + Host: agg.hostname, + MType: metrics.APIGaugeType, + SourceTypeName: "System", + }) + } + // Send along a metric that counts the number of times we dropped some payloads because we couldn't split them. series.Append(&metrics.Serie{ Name: fmt.Sprintf("n_o_i_n_d_e_x.datadog.%s.payload.dropped", agg.agentName), diff --git a/pkg/aggregator/aggregator_test.go b/pkg/aggregator/aggregator_test.go index a60e3055f2206..5a0676cbcb507 100644 --- a/pkg/aggregator/aggregator_test.go +++ b/pkg/aggregator/aggregator_test.go @@ -27,6 +27,7 @@ import ( "github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder" "github.com/DataDog/datadog-agent/comp/forwarder/eventplatform" orchestratorforwarder "github.com/DataDog/datadog-agent/comp/forwarder/orchestrator" + haagent "github.com/DataDog/datadog-agent/comp/haagent/def" haagentmock "github.com/DataDog/datadog-agent/comp/haagent/mock" compressionmock "github.com/DataDog/datadog-agent/comp/serializer/compression/fx-mock" checkid "github.com/DataDog/datadog-agent/pkg/collector/check/id" @@ -57,8 +58,11 @@ func initF() { tagsetTlm.reset() } -func testNewFlushTrigger(start time.Time, waitForSerializer bool) flushTrigger { - seriesSink := metrics.NewIterableSeries(func(_ *metrics.Serie) {}, 1000, 1000) +func testNewFlushTrigger(start time.Time, waitForSerializer bool, callback func(_ *metrics.Serie)) flushTrigger { + if callback == nil { + callback = func(_ *metrics.Serie) {} + } + seriesSink := metrics.NewIterableSeries(callback, 1000, 1000) flushedSketches := make(metrics.SketchSeriesList, 0) return flushTrigger{ @@ -130,7 +134,7 @@ func TestDeregisterCheckSampler(t *testing.T) { return agg.checkSamplers[checkID1].deregistered && !agg.checkSamplers[checkID2].deregistered }, time.Second, 10*time.Millisecond) - agg.Flush(testNewFlushTrigger(time.Now(), false)) + agg.Flush(testNewFlushTrigger(time.Now(), false, nil)) agg.mu.Lock() require.Len(t, agg.checkSamplers, 1) @@ -265,7 +269,7 @@ func TestDefaultData(t *testing.T) { s.On("SendSeries", series).Return(nil).Times(1) - agg.Flush(testNewFlushTrigger(start, false)) + agg.Flush(testNewFlushTrigger(start, false, nil)) s.AssertNotCalled(t, "SendEvents") s.AssertNotCalled(t, "SendSketch") @@ -273,6 +277,66 @@ func TestDefaultData(t *testing.T) { assert.Equal(t, uint64(0), tagsetTlm.hugeSeriesCount[0].Load()) } +func TestDefaultSeries(t *testing.T) { + s := &MockSerializerIterableSerie{} + taggerComponent := taggerMock.SetupFakeTagger(t) + + mockHaAgent := haagentmock.NewMockHaAgent().(haagentmock.Component) + mockHaAgent.SetEnabled(true) + mockHaAgent.SetState(haagent.Active) + + agg := NewBufferedAggregator(s, nil, mockHaAgent, taggerComponent, "hostname", DefaultFlushInterval) + + start := time.Now() + + // Check only the name for `datadog.agent.up` as the timestamp may not be the same. + agentUpMatcher := mock.MatchedBy(func(m servicecheck.ServiceChecks) bool { + require.Equal(t, 1, len(m)) + require.Equal(t, "datadog.agent.up", m[0].CheckName) + require.Equal(t, servicecheck.ServiceCheckOK, m[0].Status) + require.Equal(t, []string{"agent_group:group01"}, m[0].Tags) + require.Equal(t, agg.hostname, m[0].Host) + + return true + }) + s.On("SendServiceChecks", agentUpMatcher).Return(nil).Times(1) + + expectedSeries := metrics.Series{&metrics.Serie{ + Name: fmt.Sprintf("datadog.%s.running", flavor.GetFlavor()), + Points: []metrics.Point{{Value: 1, Ts: float64(start.Unix())}}, + Tags: tagset.CompositeTagsFromSlice([]string{"version:" + version.AgentVersion, "agent_group:group01"}), + Host: agg.hostname, + MType: metrics.APIGaugeType, + SourceTypeName: "System", + }, &metrics.Serie{ + Name: fmt.Sprintf("datadog.%s.ha_agent.running", agg.agentName), + Points: []metrics.Point{{Value: float64(1), Ts: float64(start.Unix())}}, + Tags: tagset.CompositeTagsFromSlice([]string{"agent_group:group01", "agent_state:standby"}), + Host: agg.hostname, + MType: metrics.APIGaugeType, + SourceTypeName: "System", + }, &metrics.Serie{ + Name: fmt.Sprintf("n_o_i_n_d_e_x.datadog.%s.payload.dropped", flavor.GetFlavor()), + Points: []metrics.Point{{Value: 0, Ts: float64(start.Unix())}}, + Host: agg.hostname, + Tags: tagset.CompositeTagsFromSlice([]string{"agent_group:group01"}), + MType: metrics.APIGaugeType, + SourceTypeName: "System", + NoIndex: true, + }} + + s.On("SendSeries", expectedSeries).Return(nil).Times(1) + + var flushedSeries metrics.Series + triggerInstance := testNewFlushTrigger(start, false, func(serie *metrics.Serie) { + flushedSeries = append(flushedSeries, serie) + }) + + agg.Flush(triggerInstance) + + assert.EqualValues(t, expectedSeries, flushedSeries) +} + func TestSeriesTooManyTags(t *testing.T) { // this test IS USING globals (tagsetTlm and recurrentSeries) but a local aggregator // - diff --git a/pkg/aggregator/sender_test.go b/pkg/aggregator/sender_test.go index 994cc96969d1c..ef7173f8a1bcc 100644 --- a/pkg/aggregator/sender_test.go +++ b/pkg/aggregator/sender_test.go @@ -180,7 +180,7 @@ func TestDestroySender(t *testing.T) { return aggregatorInstance.checkSamplers[checkID1].deregistered }, time.Second, 10*time.Millisecond) - aggregatorInstance.Flush(testNewFlushTrigger(time.Now(), false)) + aggregatorInstance.Flush(testNewFlushTrigger(time.Now(), false, nil)) assertAggSamplersLen(t, aggregatorInstance, 1) } From 35675c30fd1151f1d86a757c4ade99e081e71e13 Mon Sep 17 00:00:00 2001 From: Vickenty Fesunov Date: Fri, 6 Dec 2024 15:06:28 +0100 Subject: [PATCH 303/439] AMLII-2169 Activate BouncyCastle Java FIPS provider for FIPS images (#31827) --- .gitlab/container_build/docker_linux.yml | 4 ++-- Dockerfiles/agent/Dockerfile | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.gitlab/container_build/docker_linux.yml b/.gitlab/container_build/docker_linux.yml index c94f319627621..517cecdcf3b67 100644 --- a/.gitlab/container_build/docker_linux.yml +++ b/.gitlab/container_build/docker_linux.yml @@ -154,7 +154,7 @@ docker_build_fips_agent7_jmx: IMAGE: registry.ddbuild.io/ci/datadog-agent/agent BUILD_CONTEXT: Dockerfiles/agent TAG_SUFFIX: -7-fips-jmx - BUILD_ARG: --target test --build-arg WITH_JMX=true --build-arg DD_AGENT_ARTIFACT=datadog-fips-agent-7*-amd64.tar.xz + BUILD_ARG: --target test --build-arg WITH_JMX=true --build-arg WITH_JMX_FIPS=true --build-arg DD_AGENT_ARTIFACT=datadog-fips-agent-7*-amd64.tar.xz docker_build_fips_agent7_arm64_jmx: extends: [.docker_build_job_definition_arm64, .docker_build_artifact] @@ -167,7 +167,7 @@ docker_build_fips_agent7_arm64_jmx: IMAGE: registry.ddbuild.io/ci/datadog-agent/agent BUILD_CONTEXT: Dockerfiles/agent TAG_SUFFIX: -7-fips-jmx - BUILD_ARG: --target test --build-arg WITH_JMX=true --build-arg DD_AGENT_ARTIFACT=datadog-fips-agent-7*-arm64.tar.xz + BUILD_ARG: --target test --build-arg WITH_JMX=true --build-arg WITH_JMX_FIPS=true --build-arg DD_AGENT_ARTIFACT=datadog-fips-agent-7*-arm64.tar.xz # build agent7 UA image docker_build_ot_agent7: diff --git a/Dockerfiles/agent/Dockerfile b/Dockerfiles/agent/Dockerfile index 58ecd02ae3bb6..f43642f79e819 100644 --- a/Dockerfiles/agent/Dockerfile +++ b/Dockerfiles/agent/Dockerfile @@ -39,6 +39,7 @@ RUN gcc -pipe -Wall -Wextra -O2 -shared -fPIC -Wl,--version-script=/tmp/nosys.sy FROM baseimage AS extract ARG TARGETARCH ARG WITH_JMX +ARG WITH_JMX_FIPS ARG DD_AGENT_ARTIFACT=datadog-agent*-$TARGETARCH.tar.xz ARG GENERAL_ARTIFACTS_CACHE_BUCKET_URL @@ -96,6 +97,7 @@ RUN if [ -n "$WITH_JMX" ]; then cd /opt/bouncycastle-fips && mvn dependency:copy FROM baseimage AS release LABEL maintainer="Datadog " ARG WITH_JMX +ARG WITH_JMX_FIPS ARG DD_GIT_REPOSITORY_URL ARG DD_GIT_COMMIT_SHA ENV DOCKER_DD_AGENT=true \ @@ -196,6 +198,9 @@ COPY --from=extract /opt/bouncycastle-fips/target/dependency/*.jar /opt/bouncyca COPY --chmod=644 bouncycastle-fips/java.security /opt/bouncycastle-fips/ COPY --chmod=644 bouncycastle-fips/bc-fips.policy /opt/bouncycastle-fips/ RUN if [ -z "$WITH_JMX" ]; then rm -rf /opt/bouncycastle-fips; fi +# Configure Java to use BouncyCastle FIPS provider on JMX FIPS images. +# Double equals sign for java.security.properties istructs java to replace system defaults with the contents of the new file. +ENV JAVA_TOOL_OPTIONS="${WITH_JMX_FIPS:+--module-path=/opt/bouncycastle-fips -Djava.security.properties==/opt/bouncycastle-fips/java.security -Dpolicy.url.2=file:/opt/bouncycastle-fips/bc-fips.policy}" # Update if optional OTel Agent process should not run RUN if [ ! -f /opt/datadog-agent/embedded/bin/otel-agent ]; then \ From 4daa586489638c5f6df38499f0f6fa69cb182967 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20Beauz=C3=A9e-Luyssen?= Date: Fri, 6 Dec 2024 15:16:42 +0100 Subject: [PATCH 304/439] omnibus: reorder depencencies (#31802) --- omnibus/config/projects/agent.rb | 29 ++++---------- omnibus/config/software/agent-dependencies.rb | 22 ----------- .../software/datadog-agent-dependencies.rb | 38 ++++++++++++++++++- omnibus/config/software/datadog-agent.rb | 1 - omnibus/config/software/snmp-traps.rb | 1 - 5 files changed, 45 insertions(+), 46 deletions(-) delete mode 100644 omnibus/config/software/agent-dependencies.rb diff --git a/omnibus/config/projects/agent.rb b/omnibus/config/projects/agent.rb index 62a6afb6deaf7..b3ab9c10ae1ad 100644 --- a/omnibus/config/projects/agent.rb +++ b/omnibus/config/projects/agent.rb @@ -221,9 +221,17 @@ # ------------------------------------ if do_build + # Include traps db file in snmp.d/traps_db/ + dependency 'snmp-traps' + # Datadog agent dependency 'datadog-agent' + # This depends on the agent and must be added after it + if ENV['WINDOWS_DDPROCMON_DRIVER'] and not ENV['WINDOWS_DDPROCMON_DRIVER'].empty? + dependency 'datadog-security-agent-policies' + end + # System-probe if sysprobe_enabled? dependency 'system-probe' @@ -237,27 +245,6 @@ if linux_target? dependency 'datadog-security-agent-policies' - if fips_mode? - dependency 'openssl-fips-provider' - end - end - - # Include traps db file in snmp.d/traps_db/ - dependency 'snmp-traps' - - # Additional software - if windows_target? - if ENV['WINDOWS_DDNPM_DRIVER'] and not ENV['WINDOWS_DDNPM_DRIVER'].empty? - dependency 'datadog-windows-filter-driver' - end - if ENV['WINDOWS_APMINJECT_MODULE'] and not ENV['WINDOWS_APMINJECT_MODULE'].empty? - dependency 'datadog-windows-apminject' - end - if ENV['WINDOWS_DDPROCMON_DRIVER'] and not ENV['WINDOWS_DDPROCMON_DRIVER'].empty? - dependency 'datadog-windows-procmon-driver' - ## this is a duplicate of the above dependency in linux - dependency 'datadog-security-agent-policies' - end end # this dependency puts few files out of the omnibus install dir and move them diff --git a/omnibus/config/software/agent-dependencies.rb b/omnibus/config/software/agent-dependencies.rb deleted file mode 100644 index 125fd7a9525f0..0000000000000 --- a/omnibus/config/software/agent-dependencies.rb +++ /dev/null @@ -1,22 +0,0 @@ -name 'agent-dependencies' - -# Linux-specific dependencies -if linux_target? - dependency 'procps-ng' - dependency 'curl' -end - -# Bundled cacerts file (is this a good idea?) -dependency 'cacerts' - -# External agents -dependency 'jmxfetch' - -if linux_target? - dependency 'sds' -end - -# version manifest file -dependency 'version-manifest' - - diff --git a/omnibus/config/software/datadog-agent-dependencies.rb b/omnibus/config/software/datadog-agent-dependencies.rb index 3cac114d0578e..fd6712983b10b 100644 --- a/omnibus/config/software/datadog-agent-dependencies.rb +++ b/omnibus/config/software/datadog-agent-dependencies.rb @@ -2,6 +2,28 @@ description "Enforce building dependencies as soon as possible so they can be cached" +# Linux-specific dependencies +if linux_target? + dependency 'procps-ng' + dependency 'curl' + if fips_mode? + dependency 'openssl-fips-provider' + end +end + +# Bundled cacerts file (is this a good idea?) +dependency 'cacerts' + +# External agents +dependency 'jmxfetch' + +if linux_target? + dependency 'sds' +end + +# version manifest file +dependency 'version-manifest' + # Used for memory profiling with the `status py` agent subcommand dependency 'pympler' @@ -9,4 +31,18 @@ dependency "systemd" if linux_target? -dependency 'libpcap' if linux_target? and !heroku_target? # system-probe dependency \ No newline at end of file +dependency 'libpcap' if linux_target? and !heroku_target? # system-probe dependency + +# Additional software +if windows_target? + if ENV['WINDOWS_DDNPM_DRIVER'] and not ENV['WINDOWS_DDNPM_DRIVER'].empty? + dependency 'datadog-windows-filter-driver' + end + if ENV['WINDOWS_APMINJECT_MODULE'] and not ENV['WINDOWS_APMINJECT_MODULE'].empty? + dependency 'datadog-windows-apminject' + end + if ENV['WINDOWS_DDPROCMON_DRIVER'] and not ENV['WINDOWS_DDPROCMON_DRIVER'].empty? + dependency 'datadog-windows-procmon-driver' + end +end + diff --git a/omnibus/config/software/datadog-agent.rb b/omnibus/config/software/datadog-agent.rb index ecfe7cb0d4c7c..8f24178d2c07e 100644 --- a/omnibus/config/software/datadog-agent.rb +++ b/omnibus/config/software/datadog-agent.rb @@ -20,7 +20,6 @@ # especially at higher thread counts. dependency "libjemalloc" if linux_target? -dependency 'agent-dependencies' dependency 'datadog-agent-dependencies' source path: '..' diff --git a/omnibus/config/software/snmp-traps.rb b/omnibus/config/software/snmp-traps.rb index 1dc01d61b1680..5a021b01ed8d4 100644 --- a/omnibus/config/software/snmp-traps.rb +++ b/omnibus/config/software/snmp-traps.rb @@ -3,7 +3,6 @@ # Needs the configuration folder as created in datadog-agent dependency 'datadog-agent' -always_build true # For cache related purposes, it comes after datadog-agent source :url => "https://s3.amazonaws.com/dd-agent-omnibus/snmp_traps_db/dd_traps_db-#{version}.json.gz", :sha256 => "04fb9d43754c2656edf35f08fbad11ba8dc20d52654962933f3dd8f4d463b42c", From 2ee99e0efe6cc535b7d6272c6f7e0e206c343ab4 Mon Sep 17 00:00:00 2001 From: Jeremy Hanna Date: Fri, 6 Dec 2024 11:04:44 -0500 Subject: [PATCH 305/439] Set GOFIPS via build arg for docker env (#31808) --- .gitlab/container_build/docker_linux.yml | 8 ++++---- Dockerfiles/agent/Dockerfile | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.gitlab/container_build/docker_linux.yml b/.gitlab/container_build/docker_linux.yml index 517cecdcf3b67..4bd10a6be23ff 100644 --- a/.gitlab/container_build/docker_linux.yml +++ b/.gitlab/container_build/docker_linux.yml @@ -101,7 +101,7 @@ docker_build_fips_agent7: IMAGE: registry.ddbuild.io/ci/datadog-agent/agent BUILD_CONTEXT: Dockerfiles/agent TAG_SUFFIX: -7-fips - BUILD_ARG: --target test --build-arg DD_AGENT_ARTIFACT=datadog-fips-agent-7*-amd64.tar.xz + BUILD_ARG: --target test --build-arg FIPS_ENABLED=1 --build-arg DD_AGENT_ARTIFACT=datadog-fips-agent-7*-amd64.tar.xz docker_build_fips_agent7_arm64: extends: [.docker_build_job_definition_arm64, .docker_build_artifact] @@ -114,7 +114,7 @@ docker_build_fips_agent7_arm64: IMAGE: registry.ddbuild.io/ci/datadog-agent/agent BUILD_CONTEXT: Dockerfiles/agent TAG_SUFFIX: -7-fips - BUILD_ARG: --target test --build-arg DD_AGENT_ARTIFACT=datadog-fips-agent-7*-arm64.tar.xz + BUILD_ARG: --target test --build-arg FIPS_ENABLED=1 --build-arg DD_AGENT_ARTIFACT=datadog-fips-agent-7*-arm64.tar.xz # build agent7 jmx image docker_build_agent7_jmx: @@ -154,7 +154,7 @@ docker_build_fips_agent7_jmx: IMAGE: registry.ddbuild.io/ci/datadog-agent/agent BUILD_CONTEXT: Dockerfiles/agent TAG_SUFFIX: -7-fips-jmx - BUILD_ARG: --target test --build-arg WITH_JMX=true --build-arg WITH_JMX_FIPS=true --build-arg DD_AGENT_ARTIFACT=datadog-fips-agent-7*-amd64.tar.xz + BUILD_ARG: --target test --build-arg FIPS_ENABLED=1 --build-arg WITH_JMX=true --build-arg WITH_JMX_FIPS=true --build-arg DD_AGENT_ARTIFACT=datadog-fips-agent-7*-amd64.tar.xz docker_build_fips_agent7_arm64_jmx: extends: [.docker_build_job_definition_arm64, .docker_build_artifact] @@ -167,7 +167,7 @@ docker_build_fips_agent7_arm64_jmx: IMAGE: registry.ddbuild.io/ci/datadog-agent/agent BUILD_CONTEXT: Dockerfiles/agent TAG_SUFFIX: -7-fips-jmx - BUILD_ARG: --target test --build-arg WITH_JMX=true --build-arg WITH_JMX_FIPS=true --build-arg DD_AGENT_ARTIFACT=datadog-fips-agent-7*-arm64.tar.xz + BUILD_ARG: --target test --build-arg FIPS_ENABLED=1 --build-arg WITH_JMX=true --build-arg WITH_JMX_FIPS=true --build-arg DD_AGENT_ARTIFACT=datadog-fips-agent-7*-arm64.tar.xz # build agent7 UA image docker_build_ot_agent7: diff --git a/Dockerfiles/agent/Dockerfile b/Dockerfiles/agent/Dockerfile index f43642f79e819..072b832fb3f0a 100644 --- a/Dockerfiles/agent/Dockerfile +++ b/Dockerfiles/agent/Dockerfile @@ -96,6 +96,7 @@ RUN if [ -n "$WITH_JMX" ]; then cd /opt/bouncycastle-fips && mvn dependency:copy FROM baseimage AS release LABEL maintainer="Datadog " +ARG FIPS_ENABLED=0 ARG WITH_JMX ARG WITH_JMX_FIPS ARG DD_GIT_REPOSITORY_URL @@ -185,8 +186,8 @@ RUN [ "$(getent passwd dd-agent | cut -d: -f 3)" -eq 100 ] # Enable FIPS if needed RUN if [ -x /opt/datadog-agent/embedded/bin/fipsinstall.sh ]; then \ /opt/datadog-agent/embedded/bin/fipsinstall.sh; \ - export GOFIPS=1; \ fi +ENV GOFIPS=${FIPS_ENABLED} # Override the exit script by ours to fix --pid=host operations RUN mv /etc/s6/init/init-stage3 /etc/s6/init/init-stage3-original From 81092f177c80c9d7e57d037f48b4dd7b9c437a7e Mon Sep 17 00:00:00 2001 From: Pierre Gimalac Date: Fri, 6 Dec 2024 17:47:44 +0100 Subject: [PATCH 306/439] Fix build without clusterchecks build tag (#31707) Co-authored-by: Cedric Lamoriniere --- pkg/clusteragent/clusterchecks/handler_api_nocompile.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/clusteragent/clusterchecks/handler_api_nocompile.go b/pkg/clusteragent/clusterchecks/handler_api_nocompile.go index cd03f0938cecc..d66023e3bf585 100644 --- a/pkg/clusteragent/clusterchecks/handler_api_nocompile.go +++ b/pkg/clusteragent/clusterchecks/handler_api_nocompile.go @@ -13,6 +13,7 @@ import ( "errors" "github.com/DataDog/datadog-agent/comp/core/autodiscovery" + tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/pkg/clusteragent/clusterchecks/types" ) @@ -31,7 +32,7 @@ func (h *Handler) GetState() (types.StateResponse, error) { } // NewHandler not implemented -func NewHandler(_ autodiscovery.Component) (*Handler, error) { +func NewHandler(_ autodiscovery.Component, _ tagger.Component) (*Handler, error) { return nil, ErrNotCompiled } From bf19c87fa6015930a4c36adae17fd1f57d7cafc6 Mon Sep 17 00:00:00 2001 From: Stuart Geipel Date: Fri, 6 Dec 2024 11:58:47 -0500 Subject: [PATCH 307/439] [ebpfless] Fix revive linter warnings in TCP processor (#31817) --- .../connection/ebpfless/tcp_processor.go | 48 ++-- .../ebpfless/tcp_processor_retransmit_test.go | 30 +-- .../ebpfless/tcp_processor_rtt_test.go | 4 +- .../connection/ebpfless/tcp_processor_test.go | 220 +++++++++--------- .../tracer/connection/ebpfless/tcp_utils.go | 36 +-- 5 files changed, 170 insertions(+), 168 deletions(-) diff --git a/pkg/network/tracer/connection/ebpfless/tcp_processor.go b/pkg/network/tracer/connection/ebpfless/tcp_processor.go index 500a89893eeb6..b312f460269ee 100644 --- a/pkg/network/tracer/connection/ebpfless/tcp_processor.go +++ b/pkg/network/tracer/connection/ebpfless/tcp_processor.go @@ -21,7 +21,7 @@ import ( ) type connectionState struct { - tcpState ConnStatus + tcpState connStatus // hasSentPacket is whether anything has been sent outgoing (aka whether maxSeqSent exists) hasSentPacket bool @@ -38,9 +38,9 @@ type connectionState struct { lastRemoteAck uint32 // localSynState is the status of the outgoing SYN handshake - localSynState SynState + localSynState synState // remoteSynState is the status of the incoming SYN handshake - remoteSynState SynState + remoteSynState synState // hasLocalFin is whether the outgoing side has FIN'd hasLocalFin bool @@ -54,11 +54,13 @@ type connectionState struct { rttTracker rttTracker } -type TCPProcessor struct { //nolint:revive // TODO +// TCPProcessor encapsulates TCP state tracking for the ebpfless tracer +type TCPProcessor struct { conns map[network.ConnectionTuple]connectionState } -func NewTCPProcessor() *TCPProcessor { //nolint:revive // TODO +// NewTCPProcessor constructs an empty TCPProcessor +func NewTCPProcessor() *TCPProcessor { return &TCPProcessor{ conns: map[network.ConnectionTuple]connectionState{}, } @@ -106,7 +108,7 @@ func checkInvalidTCP(tcp *layers.TCP) bool { return false } -func (t *TCPProcessor) updateSynFlag(conn *network.ConnectionStats, st *connectionState, pktType uint8, tcp *layers.TCP, payloadLen uint16) { //nolint:revive // TODO +func (t *TCPProcessor) updateSynFlag(conn *network.ConnectionStats, st *connectionState, pktType uint8, tcp *layers.TCP, _payloadLen uint16) { if tcp.RST { return } @@ -116,22 +118,22 @@ func (t *TCPProcessor) updateSynFlag(conn *network.ConnectionStats, st *connecti } else { st.remoteSynState.update(tcp.SYN, tcp.ACK) } - // if any SynState has progressed, move to attempted - if st.tcpState == ConnStatClosed && (st.localSynState != SynStateNone || st.remoteSynState != SynStateNone) { - st.tcpState = ConnStatAttempted + // if any synState has progressed, move to attempted + if st.tcpState == connStatClosed && (st.localSynState != synStateNone || st.remoteSynState != synStateNone) { + st.tcpState = connStatAttempted updateConnStatsForOpen(conn) } // if both synStates are ack'd, move to established - if st.tcpState == ConnStatAttempted && st.localSynState == SynStateAcked && st.remoteSynState == SynStateAcked { - st.tcpState = ConnStatEstablished + if st.tcpState == connStatAttempted && st.localSynState == synStateAcked && st.remoteSynState == synStateAcked { + st.tcpState = connStatEstablished conn.Monotonic.TCPEstablished++ } } -// updateTcpStats is designed to mirror the stat tracking in the windows driver's handleFlowProtocolTcp +// updateTCPStats is designed to mirror the stat tracking in the windows driver's handleFlowProtocolTcp // https://github.com/DataDog/datadog-windows-filter/blob/d7560d83eb627117521d631a4c05cd654a01987e/ddfilter/flow/flow_tcp.c#L91 -func (t *TCPProcessor) updateTcpStats(conn *network.ConnectionStats, st *connectionState, pktType uint8, tcp *layers.TCP, payloadLen uint16, timestampNs uint64) { //nolint:revive // TODO +func (t *TCPProcessor) updateTCPStats(conn *network.ConnectionStats, st *connectionState, pktType uint8, tcp *layers.TCP, payloadLen uint16, timestampNs uint64) { nextSeq := calcNextSeq(tcp, payloadLen) if pktType == unix.PACKET_OUTGOING { @@ -152,8 +154,8 @@ func (t *TCPProcessor) updateTcpStats(conn *network.ConnectionStats, st *connect ackOutdated := !st.hasLocalAck || isSeqBefore(st.lastLocalAck, tcp.Ack) if tcp.ACK && ackOutdated { - // wait until data comes in via SynStateAcked - if st.hasLocalAck && st.remoteSynState == SynStateAcked { + // wait until data comes in via synStateAcked + if st.hasLocalAck && st.remoteSynState == synStateAcked { ackDiff := tcp.Ack - st.lastLocalAck isFinAck := st.hasRemoteFin && tcp.Ack == st.remoteFinSeq if isFinAck { @@ -199,31 +201,31 @@ func (t *TCPProcessor) updateFinFlag(conn *network.ConnectionStats, st *connecti // if both fins have been sent and ack'd, then mark the connection closed localFinIsAcked := st.hasLocalFin && isSeqBeforeEq(st.localFinSeq, st.lastRemoteAck) remoteFinIsAcked := st.hasRemoteFin && isSeqBeforeEq(st.remoteFinSeq, st.lastLocalAck) - if st.tcpState == ConnStatEstablished && localFinIsAcked && remoteFinIsAcked { + if st.tcpState == connStatEstablished && localFinIsAcked && remoteFinIsAcked { *st = connectionState{ - tcpState: ConnStatClosed, + tcpState: connStatClosed, } conn.Monotonic.TCPClosed++ updateConnStatsForClose(conn) } } -func (t *TCPProcessor) updateRstFlag(conn *network.ConnectionStats, st *connectionState, pktType uint8, tcp *layers.TCP, payloadLen uint16) { //nolint:revive // TODO - if !tcp.RST || st.tcpState == ConnStatClosed { +func (t *TCPProcessor) updateRstFlag(conn *network.ConnectionStats, st *connectionState, _pktType uint8, tcp *layers.TCP, _payloadLen uint16) { + if !tcp.RST || st.tcpState == connStatClosed { return } reason := syscall.ECONNRESET - if st.tcpState == ConnStatAttempted { + if st.tcpState == connStatAttempted { reason = syscall.ECONNREFUSED } conn.TCPFailures[uint16(reason)]++ - if st.tcpState == ConnStatEstablished { + if st.tcpState == connStatEstablished { conn.Monotonic.TCPClosed++ } *st = connectionState{ - tcpState: ConnStatClosed, + tcpState: connStatClosed, } updateConnStatsForClose(conn) } @@ -251,7 +253,7 @@ func (t *TCPProcessor) Process(conn *network.ConnectionStats, timestampNs uint64 st := t.conns[conn.ConnectionTuple] t.updateSynFlag(conn, &st, pktType, tcp, payloadLen) - t.updateTcpStats(conn, &st, pktType, tcp, payloadLen, timestampNs) + t.updateTCPStats(conn, &st, pktType, tcp, payloadLen, timestampNs) t.updateFinFlag(conn, &st, pktType, tcp, payloadLen) t.updateRstFlag(conn, &st, pktType, tcp, payloadLen) diff --git a/pkg/network/tracer/connection/ebpfless/tcp_processor_retransmit_test.go b/pkg/network/tracer/connection/ebpfless/tcp_processor_retransmit_test.go index ecfdb22e1fc72..9082872964c42 100644 --- a/pkg/network/tracer/connection/ebpfless/tcp_processor_retransmit_test.go +++ b/pkg/network/tracer/connection/ebpfless/tcp_processor_retransmit_test.go @@ -67,7 +67,7 @@ func TestAllRetransmitsOutgoing(t *testing.T) { t.Run("retransmit SYN", func(t *testing.T) { traffic := retransmitNth(basicHandshake, 0) - f := newTcpTestFixture(t) + f := newTCPTestFixture(t) f.runPkts(traffic) require.Empty(t, f.conn.TCPFailures) @@ -77,7 +77,7 @@ func TestAllRetransmitsOutgoing(t *testing.T) { t.Run("retransmit data", func(t *testing.T) { traffic := retransmitNth(basicHandshake, 3) - f := newTcpTestFixture(t) + f := newTCPTestFixture(t) f.runPkts(traffic) require.Empty(t, f.conn.TCPFailures) @@ -87,7 +87,7 @@ func TestAllRetransmitsOutgoing(t *testing.T) { t.Run("retransmit FIN", func(t *testing.T) { traffic := retransmitNth(basicHandshake, 8) - f := newTcpTestFixture(t) + f := newTCPTestFixture(t) f.runPkts(traffic) require.Empty(t, f.conn.TCPFailures) @@ -130,7 +130,7 @@ func TestAllRetransmitsIncoming(t *testing.T) { t.Run("retransmit SYNACK", func(t *testing.T) { traffic := retransmitNth(basicHandshake, 1) - f := newTcpTestFixture(t) + f := newTCPTestFixture(t) f.runPkts(traffic) require.Empty(t, f.conn.TCPFailures) @@ -140,7 +140,7 @@ func TestAllRetransmitsIncoming(t *testing.T) { t.Run("retransmit data", func(t *testing.T) { traffic := retransmitNth(basicHandshake, 5) - f := newTcpTestFixture(t) + f := newTCPTestFixture(t) f.runPkts(traffic) require.Empty(t, f.conn.TCPFailures) @@ -150,7 +150,7 @@ func TestAllRetransmitsIncoming(t *testing.T) { t.Run("retransmit FIN", func(t *testing.T) { traffic := retransmitNth(basicHandshake, 6) - f := newTcpTestFixture(t) + f := newTCPTestFixture(t) f.runPkts(traffic) require.Empty(t, f.conn.TCPFailures) @@ -171,16 +171,16 @@ func TestRstTwice(t *testing.T) { pb.outgoing(0, 1, 1, RST|ACK), } - expectedClientStates := []ConnStatus{ - ConnStatAttempted, - ConnStatAttempted, - ConnStatEstablished, + expectedClientStates := []connStatus{ + connStatAttempted, + connStatAttempted, + connStatEstablished, // reset - ConnStatClosed, - ConnStatClosed, + connStatClosed, + connStatClosed, } - f := newTcpTestFixture(t) + f := newTCPTestFixture(t) f.runAgainstState(basicHandshake, expectedClientStates) // should count as a single failure @@ -220,7 +220,7 @@ func TestKeepAlivePacketsArentRetransmits(t *testing.T) { pb.outgoing(0, 2, 2, ACK), } - f := newTcpTestFixture(t) + f := newTCPTestFixture(t) f.runPkts(basicHandshake) require.Empty(t, f.conn.TCPFailures) @@ -255,7 +255,7 @@ func TestRetransmitMultipleSegments(t *testing.T) { pb.outgoing(0, 2, 2, ACK), } - f := newTcpTestFixture(t) + f := newTCPTestFixture(t) f.runPkts(traffic) require.Empty(t, f.conn.TCPFailures) diff --git a/pkg/network/tracer/connection/ebpfless/tcp_processor_rtt_test.go b/pkg/network/tracer/connection/ebpfless/tcp_processor_rtt_test.go index 7ff2eca99a352..356d1d1a9712b 100644 --- a/pkg/network/tracer/connection/ebpfless/tcp_processor_rtt_test.go +++ b/pkg/network/tracer/connection/ebpfless/tcp_processor_rtt_test.go @@ -101,7 +101,7 @@ func TestTcpProcessorRtt(t *testing.T) { // t=300 us, for a round trip of 100us synack.timestampNs = 300 * 1000 - f := newTcpTestFixture(t) + f := newTCPTestFixture(t) f.runPkt(syn) // round trip has not completed yet @@ -123,7 +123,7 @@ func TestTcpProcessorRttRetransmit(t *testing.T) { // t=300 us, for a round trip of 100us synack.timestampNs = 300 * 1000 - f := newTcpTestFixture(t) + f := newTCPTestFixture(t) f.runPkt(syn) // round trip has not completed yet diff --git a/pkg/network/tracer/connection/ebpfless/tcp_processor_test.go b/pkg/network/tracer/connection/ebpfless/tcp_processor_test.go index a558f073dc4ec..8656a73463d36 100644 --- a/pkg/network/tracer/connection/ebpfless/tcp_processor_test.go +++ b/pkg/network/tracer/connection/ebpfless/tcp_processor_test.go @@ -21,14 +21,14 @@ import ( "github.com/DataDog/datadog-agent/pkg/process/util" ) -var localhost net.IP = net.ParseIP("127.0.0.1") //nolint:revive // TODO -var remoteIP net.IP = net.ParseIP("12.34.56.78") //nolint:revive // TODO +var localhost = net.ParseIP("127.0.0.1") +var remoteIP = net.ParseIP("12.34.56.78") const ( minIhl = 5 defaultLocalPort = 12345 defaultRemotePort = 8080 - defaultNsId = 123 //nolint:revive // TODO + defaultNsID = 123 ) const ( @@ -79,7 +79,7 @@ type testCapture struct { } // TODO can this be merged with the logic creating scratchConns in ebpfless tracer? -func makeTcpStates(synPkt testCapture) *network.ConnectionStats { //nolint:revive // TODO +func makeTCPStates(synPkt testCapture) *network.ConnectionStats { var family network.ConnectionFamily var srcIP, dstIP net.IP if synPkt.ipv4 != nil && synPkt.ipv6 != nil { @@ -109,8 +109,8 @@ func makeTcpStates(synPkt testCapture) *network.ConnectionStats { //nolint:reviv ConnectionTuple: network.ConnectionTuple{ Source: util.AddressFromNetIP(srcIP), Dest: util.AddressFromNetIP(dstIP), - Pid: 0, // @stu we can't know this right - NetNS: defaultNsId, + Pid: 0, // packet capture does not have PID information. + NetNS: defaultNsID, SPort: uint16(synPkt.tcp.SrcPort), DPort: uint16(synPkt.tcp.DstPort), Type: network.TCP, @@ -165,7 +165,7 @@ func (pb packetBuilder) outgoing(payloadLen uint16, relSeq, relAck uint32, flags } } -func newTcpTestFixture(t *testing.T) *tcpTestFixture { //nolint:revive // TODO +func newTCPTestFixture(t *testing.T) *tcpTestFixture { return &tcpTestFixture{ t: t, tcp: NewTCPProcessor(), @@ -175,7 +175,7 @@ func newTcpTestFixture(t *testing.T) *tcpTestFixture { //nolint:revive // TODO func (fixture *tcpTestFixture) runPkt(pkt testCapture) { if fixture.conn == nil { - fixture.conn = makeTcpStates(pkt) + fixture.conn = makeTCPStates(pkt) } err := fixture.tcp.Process(fixture.conn, pkt.timestampNs, pkt.pktType, pkt.ipv4, pkt.ipv6, pkt.tcp) require.NoError(fixture.t, err) @@ -187,18 +187,18 @@ func (fixture *tcpTestFixture) runPkts(packets []testCapture) { //nolint:unused } } -func (fixture *tcpTestFixture) runAgainstState(packets []testCapture, expected []ConnStatus) { +func (fixture *tcpTestFixture) runAgainstState(packets []testCapture, expected []connStatus) { require.Equal(fixture.t, len(packets), len(expected), "packet length didn't match expected states length") var expectedStrs []string var actualStrs []string for i, pkt := range packets { - expectedStrs = append(expectedStrs, LabelForState(expected[i])) + expectedStrs = append(expectedStrs, labelForState(expected[i])) fixture.runPkt(pkt) connTuple := fixture.conn.ConnectionTuple actual := fixture.tcp.conns[connTuple].tcpState - actualStrs = append(actualStrs, LabelForState(actual)) + actualStrs = append(actualStrs, labelForState(actual)) } require.Equal(fixture.t, expectedStrs, actualStrs) } @@ -223,23 +223,23 @@ func testBasicHandshake(t *testing.T, pb packetBuilder) { pb.incoming(0, 347, 125, ACK), } - expectedClientStates := []ConnStatus{ - ConnStatAttempted, - ConnStatAttempted, + expectedClientStates := []connStatus{ + connStatAttempted, + connStatAttempted, // three-way handshake finishes here - ConnStatEstablished, - ConnStatEstablished, - ConnStatEstablished, - ConnStatEstablished, + connStatEstablished, + connStatEstablished, + connStatEstablished, + connStatEstablished, // passive close begins here - ConnStatEstablished, - ConnStatEstablished, - ConnStatEstablished, + connStatEstablished, + connStatEstablished, + connStatEstablished, // final FIN was ack'd - ConnStatClosed, + connStatClosed, } - f := newTcpTestFixture(t) + f := newTCPTestFixture(t) f.runAgainstState(basicHandshake, expectedClientStates) require.Empty(t, f.conn.TCPFailures) @@ -292,22 +292,22 @@ func testReversedBasicHandshake(t *testing.T, pb packetBuilder) { pb.outgoing(0, 347, 125, ACK), } - expectedClientStates := []ConnStatus{ - ConnStatAttempted, - ConnStatAttempted, + expectedClientStates := []connStatus{ + connStatAttempted, + connStatAttempted, // three-way handshake finishes here - ConnStatEstablished, - ConnStatEstablished, - ConnStatEstablished, - ConnStatEstablished, + connStatEstablished, + connStatEstablished, + connStatEstablished, + connStatEstablished, // active close begins here - ConnStatEstablished, - ConnStatEstablished, - ConnStatEstablished, - ConnStatClosed, + connStatEstablished, + connStatEstablished, + connStatEstablished, + connStatClosed, } - f := newTcpTestFixture(t) + f := newTCPTestFixture(t) f.runAgainstState(basicHandshake, expectedClientStates) require.Empty(t, f.conn.TCPFailures) @@ -359,21 +359,21 @@ func testCloseWaitState(t *testing.T, pb packetBuilder) { pb.incoming(0, 347, 224+42+1, ACK), } - expectedClientStates := []ConnStatus{ - ConnStatAttempted, - ConnStatAttempted, + expectedClientStates := []connStatus{ + connStatAttempted, + connStatAttempted, // three-way handshake finishes here - ConnStatEstablished, - ConnStatEstablished, + connStatEstablished, + connStatEstablished, // passive close begins here - ConnStatEstablished, - ConnStatEstablished, - ConnStatEstablished, - ConnStatEstablished, - ConnStatClosed, + connStatEstablished, + connStatEstablished, + connStatEstablished, + connStatEstablished, + connStatClosed, } - f := newTcpTestFixture(t) + f := newTCPTestFixture(t) f.runAgainstState(basicHandshake, expectedClientStates) require.Empty(t, f.conn.TCPFailures) @@ -427,23 +427,23 @@ func testFinWait2State(t *testing.T, pb packetBuilder) { pb.outgoing(0, 347, 225, ACK), } - expectedClientStates := []ConnStatus{ - ConnStatAttempted, - ConnStatAttempted, + expectedClientStates := []connStatus{ + connStatAttempted, + connStatAttempted, // three-way handshake finishes here - ConnStatEstablished, - ConnStatEstablished, - ConnStatEstablished, - ConnStatEstablished, + connStatEstablished, + connStatEstablished, + connStatEstablished, + connStatEstablished, // active close begins here - ConnStatEstablished, - ConnStatEstablished, - ConnStatEstablished, - ConnStatEstablished, - ConnStatClosed, + connStatEstablished, + connStatEstablished, + connStatEstablished, + connStatEstablished, + connStatClosed, } - f := newTcpTestFixture(t) + f := newTCPTestFixture(t) f.runAgainstState(basicHandshake, expectedClientStates) require.Empty(t, f.conn.TCPFailures) @@ -486,17 +486,17 @@ func TestImmediateFin(t *testing.T) { pb.outgoing(0, 2, 2, ACK), } - expectedClientStates := []ConnStatus{ - ConnStatAttempted, - ConnStatAttempted, - ConnStatEstablished, + expectedClientStates := []connStatus{ + connStatAttempted, + connStatAttempted, + connStatEstablished, // active close begins here - ConnStatEstablished, - ConnStatEstablished, - ConnStatClosed, + connStatEstablished, + connStatEstablished, + connStatClosed, } - f := newTcpTestFixture(t) + f := newTCPTestFixture(t) f.runAgainstState(basicHandshake, expectedClientStates) require.Empty(t, f.conn.TCPFailures) @@ -520,12 +520,12 @@ func TestConnRefusedSyn(t *testing.T) { pb.outgoing(0, 0, 0, RST|ACK), } - expectedClientStates := []ConnStatus{ - ConnStatAttempted, - ConnStatClosed, + expectedClientStates := []connStatus{ + connStatAttempted, + connStatClosed, } - f := newTcpTestFixture(t) + f := newTCPTestFixture(t) f.runAgainstState(basicHandshake, expectedClientStates) require.Equal(t, map[uint16]uint32{ @@ -552,13 +552,13 @@ func TestConnRefusedSynAck(t *testing.T) { pb.outgoing(0, 0, 0, RST|ACK), } - expectedClientStates := []ConnStatus{ - ConnStatAttempted, - ConnStatAttempted, - ConnStatClosed, + expectedClientStates := []connStatus{ + connStatAttempted, + connStatAttempted, + connStatClosed, } - f := newTcpTestFixture(t) + f := newTCPTestFixture(t) f.runAgainstState(basicHandshake, expectedClientStates) require.Equal(t, map[uint16]uint32{ @@ -587,15 +587,15 @@ func TestConnReset(t *testing.T) { pb.outgoing(0, 1, 1, RST|ACK), } - expectedClientStates := []ConnStatus{ - ConnStatAttempted, - ConnStatAttempted, - ConnStatEstablished, + expectedClientStates := []connStatus{ + connStatAttempted, + connStatAttempted, + connStatEstablished, // reset - ConnStatClosed, + connStatClosed, } - f := newTcpTestFixture(t) + f := newTCPTestFixture(t) f.runAgainstState(basicHandshake, expectedClientStates) require.Equal(t, map[uint16]uint32{ @@ -628,23 +628,23 @@ func TestConnectTwice(t *testing.T) { pb.outgoing(0, 2, 2, ACK), } - expectedClientStates := []ConnStatus{ - ConnStatAttempted, - ConnStatAttempted, - ConnStatEstablished, + expectedClientStates := []connStatus{ + connStatAttempted, + connStatAttempted, + connStatEstablished, // active close begins here - ConnStatEstablished, - ConnStatEstablished, - ConnStatClosed, + connStatEstablished, + connStatEstablished, + connStatClosed, } - f := newTcpTestFixture(t) + f := newTCPTestFixture(t) f.runAgainstState(basicHandshake, expectedClientStates) state := f.tcp.conns[f.conn.ConnectionTuple] // make sure the TCP state was erased after the connection was closed require.Equal(t, connectionState{ - tcpState: ConnStatClosed, + tcpState: connStatClosed, }, state) // second connection here @@ -677,18 +677,18 @@ func TestSimultaneousClose(t *testing.T) { pb.incoming(0, 2, 2, ACK), } - expectedClientStates := []ConnStatus{ - ConnStatAttempted, - ConnStatAttempted, - ConnStatEstablished, + expectedClientStates := []connStatus{ + connStatAttempted, + connStatAttempted, + connStatEstablished, // active close begins here - ConnStatEstablished, - ConnStatEstablished, - ConnStatEstablished, - ConnStatClosed, + connStatEstablished, + connStatEstablished, + connStatEstablished, + connStatClosed, } - f := newTcpTestFixture(t) + f := newTCPTestFixture(t) f.runAgainstState(basicHandshake, expectedClientStates) require.Empty(t, f.conn.TCPFailures) @@ -720,18 +720,18 @@ func TestUnusualAckSyn(t *testing.T) { pb.outgoing(0, 2, 2, ACK), } - expectedClientStates := []ConnStatus{ - ConnStatAttempted, - ConnStatAttempted, - ConnStatAttempted, - ConnStatEstablished, + expectedClientStates := []connStatus{ + connStatAttempted, + connStatAttempted, + connStatAttempted, + connStatEstablished, // active close begins here - ConnStatEstablished, - ConnStatEstablished, - ConnStatClosed, + connStatEstablished, + connStatEstablished, + connStatClosed, } - f := newTcpTestFixture(t) + f := newTCPTestFixture(t) f.runAgainstState(basicHandshake, expectedClientStates) require.Empty(t, f.conn.TCPFailures) @@ -752,7 +752,7 @@ func TestUnusualAckSyn(t *testing.T) { func TestOpenCloseConn(t *testing.T) { pb := newPacketBuilder(lowerSeq, higherSeq) - f := newTcpTestFixture(t) + f := newTCPTestFixture(t) // send a SYN packet to kick things off f.runPkt(pb.incoming(0, 0, 0, SYN)) diff --git a/pkg/network/tracer/connection/ebpfless/tcp_utils.go b/pkg/network/tracer/connection/ebpfless/tcp_utils.go index 3a02ea3b09e29..1969fd85a5bc1 100644 --- a/pkg/network/tracer/connection/ebpfless/tcp_utils.go +++ b/pkg/network/tracer/connection/ebpfless/tcp_utils.go @@ -37,12 +37,12 @@ var statsTelemetry = struct { const tcpSeqMidpoint = 0x80000000 -type ConnStatus uint8 //nolint:revive // TODO +type connStatus uint8 const ( - ConnStatClosed ConnStatus = iota //nolint:revive // TODO - ConnStatAttempted //nolint:revive // TODO - ConnStatEstablished //nolint:revive // TODO + connStatClosed connStatus = iota + connStatAttempted + connStatEstablished ) var connStatusLabels = []string{ @@ -51,32 +51,32 @@ var connStatusLabels = []string{ "Established", } -type SynState uint8 //nolint:revive // TODO +type synState uint8 const ( - SynStateNone SynState = iota //nolint:revive // TODO - SynStateSent //nolint:revive // TODO - SynStateAcked //nolint:revive // TODO + synStateNone synState = iota + synStateSent + synStateAcked ) -func (ss *SynState) update(synFlag, ackFlag bool) { +func (ss *synState) update(synFlag, ackFlag bool) { // for simplicity, this does not consider the sequence number of the SYNs and ACKs. // if these matter in the future, change this to store SYN seq numbers - if *ss == SynStateNone && synFlag { - *ss = SynStateSent + if *ss == synStateNone && synFlag { + *ss = synStateSent } - if *ss == SynStateSent && ackFlag { - *ss = SynStateAcked + if *ss == synStateSent && ackFlag { + *ss = synStateAcked } // if we see ACK'd traffic but missed the SYN, assume the connection started before // the datadog-agent starts. - if *ss == SynStateNone && ackFlag { + if *ss == synStateNone && ackFlag { statsTelemetry.missedTCPConnections.Inc() - *ss = SynStateAcked + *ss = synStateAcked } } -func LabelForState(tcpState ConnStatus) string { //nolint:revive // TODO +func labelForState(tcpState connStatus) string { idx := int(tcpState) if idx < len(connStatusLabels) { return connStatusLabels[idx] @@ -105,7 +105,7 @@ func debugPacketDir(pktType uint8) string { } } -func debugTcpFlags(tcp *layers.TCP) string { //nolint:revive // TODO +func debugTCPFlags(tcp *layers.TCP) string { var flags []string if tcp.RST { flags = append(flags, "RST") @@ -123,5 +123,5 @@ func debugTcpFlags(tcp *layers.TCP) string { //nolint:revive // TODO } func debugPacketInfo(pktType uint8, tcp *layers.TCP, payloadLen uint16) string { - return fmt.Sprintf("pktType=%+v ports=(%+v, %+v) size=%d seq=%+v ack=%+v flags=%s", debugPacketDir(pktType), uint16(tcp.SrcPort), uint16(tcp.DstPort), payloadLen, tcp.Seq, tcp.Ack, debugTcpFlags(tcp)) + return fmt.Sprintf("pktType=%+v ports=(%+v, %+v) size=%d seq=%+v ack=%+v flags=%s", debugPacketDir(pktType), uint16(tcp.SrcPort), uint16(tcp.DstPort), payloadLen, tcp.Seq, tcp.Ack, debugTCPFlags(tcp)) } From 12815d619573492e1fed6ed7461059beb9dfcc60 Mon Sep 17 00:00:00 2001 From: Branden Clark Date: Fri, 6 Dec 2024 11:59:19 -0500 Subject: [PATCH 308/439] Build Windows FIPS Agent containers (#31727) --- .gitlab/container_build/docker_windows.yml | 16 ++ .../container_build/docker_windows_agent7.yml | 20 ++- .../dev_container_deploy/docker_windows.yml | 155 ++++++------------ Dockerfiles/agent/install-fips.ps1 | 19 ++- Dockerfiles/agent/windows/amd64/Dockerfile | 1 + 5 files changed, 101 insertions(+), 110 deletions(-) diff --git a/.gitlab/container_build/docker_windows.yml b/.gitlab/container_build/docker_windows.yml index 5beeea220c02e..f2402de687d30 100644 --- a/.gitlab/container_build/docker_windows.yml +++ b/.gitlab/container_build/docker_windows.yml @@ -62,5 +62,21 @@ BUILD_ARG: "--build-arg BASE_IMAGE=mcr.microsoft.com/powershell:windowsservercore-${VARIANT} --build-arg WITH_JMX=${WITH_JMX} --build-arg VARIANT=${VARIANT} --build-arg INSTALL_INFO=core-${VARIANT}" SERVERCORE: "-servercore" +.docker_build_fips_agent7_windows_common: + extends: + - .docker_build_agent7_windows_common + needs: + ["windows_msi_and_bosh_zip_x64-a7-fips", "build_windows_container_entrypoint"] + variables: + AGENT_ZIP: "datadog-fips-agent-7*-x86_64.zip" + BUILD_ARG: "--build-arg BASE_IMAGE=mcr.microsoft.com/powershell:lts-nanoserver-${VARIANT} --build-arg WITH_JMX=${WITH_JMX} --build-arg WITH_FIPS=true --build-arg VARIANT=${VARIANT} --build-arg INSTALL_INFO=nano-${VARIANT}-fips" + +.docker_build_fips_agent7_windows_servercore_common: + extends: + - .docker_build_fips_agent7_windows_common + variables: + BUILD_ARG: "--build-arg BASE_IMAGE=mcr.microsoft.com/powershell:windowsservercore-${VARIANT} --build-arg WITH_JMX=${WITH_JMX} --build-arg WITH_FIPS=true --build-arg VARIANT=${VARIANT} --build-arg INSTALL_INFO=core-${VARIANT}-fips" + SERVERCORE: "-servercore" + include: - .gitlab/container_build/docker_windows_agent7.yml diff --git a/.gitlab/container_build/docker_windows_agent7.yml b/.gitlab/container_build/docker_windows_agent7.yml index e8bf47cbba812..4a3c9393d5ba1 100644 --- a/.gitlab/container_build/docker_windows_agent7.yml +++ b/.gitlab/container_build/docker_windows_agent7.yml @@ -21,7 +21,6 @@ docker_build_agent7_windows2022_jmx: extends: - .docker_build_agent7_windows_common tags: ["runner:windows-docker", "windowsversion:2022"] - needs: ["windows_msi_and_bosh_zip_x64-a7", "build_windows_container_entrypoint"] variables: VARIANT: ltsc2022 TAG_SUFFIX: -7-jmx @@ -67,8 +66,25 @@ docker_build_agent7_windows2022_core_jmx: extends: - .docker_build_agent7_windows_servercore_common tags: ["runner:windows-docker", "windowsversion:2022"] - needs: ["windows_msi_and_bosh_zip_x64-a7", "build_windows_container_entrypoint"] variables: VARIANT: ltsc2022 TAG_SUFFIX: -7-jmx WITH_JMX: "true" + +docker_build_fips_agent7_windows2022_core: + extends: + - .docker_build_fips_agent7_windows_servercore_common + tags: ["runner:windows-docker", "windowsversion:2022"] + variables: + VARIANT: ltsc2022 + TAG_SUFFIX: "-7-fips" + WITH_JMX: "false" + +docker_build_fips_agent7_windows2022_core_jmx: + extends: + - .docker_build_fips_agent7_windows_servercore_common + tags: ["runner:windows-docker", "windowsversion:2022"] + variables: + VARIANT: ltsc2022 + TAG_SUFFIX: -7-fips-jmx + WITH_JMX: "true" diff --git a/.gitlab/dev_container_deploy/docker_windows.yml b/.gitlab/dev_container_deploy/docker_windows.yml index 734c81cacd36c..c219f4b7a44ec 100644 --- a/.gitlab/dev_container_deploy/docker_windows.yml +++ b/.gitlab/dev_container_deploy/docker_windows.yml @@ -2,11 +2,9 @@ include: - .gitlab/common/container_publish_job_templates.yml -dev_branch-a7-windows: +.dev_a7-windows-common: extends: .docker_publish_job_definition stage: dev_container_deploy - rules: - !reference [.manual] needs: - docker_build_agent7_windows1809 - docker_build_agent7_windows1809_jmx @@ -23,16 +21,16 @@ dev_branch-a7-windows: # Multi-arch - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7" IMG_SOURCES: "%BASE%-win1809-amd64,%BASE%-winltsc2022-amd64" - IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-py3-win + IMG_DESTINATIONS: agent-dev:${IMG_DESTINATION_SLUG}-py3-win - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-jmx" IMG_SOURCES: "%BASE%-win1809-amd64,%BASE%-winltsc2022-amd64" - IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-py3-jmx-win + IMG_DESTINATIONS: agent-dev:${IMG_DESTINATION_SLUG}-py3-jmx-win - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7" IMG_SOURCES: "%BASE%-win1809-servercore-amd64,%BASE%-winltsc2022-servercore-amd64" - IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-py3-win-servercore + IMG_DESTINATIONS: agent-dev:${IMG_DESTINATION_SLUG}-py3-win-servercore - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-jmx" IMG_SOURCES: "%BASE%-win1809-servercore-amd64,%BASE%-winltsc2022-servercore-amd64" - IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-py3-jmx-win-servercore + IMG_DESTINATIONS: agent-dev:${IMG_DESTINATION_SLUG}-py3-jmx-win-servercore # ltsc2019 - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7" IMG_SOURCES: "%BASE%-win1809-amd64" @@ -60,118 +58,63 @@ dev_branch-a7-windows: IMG_SOURCES: "%BASE%-winltsc2022-servercore-amd64" IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-py3-jmx-win-servercore-ltsc2022 +dev_branch-a7-windows: + extends: .dev_a7-windows-common + rules: + !reference [.manual] + variables: + IMG_DESTINATION_SLUG: ${CI_COMMIT_REF_SLUG} + dev_master-a7-windows: - extends: .docker_publish_job_definition - stage: dev_container_deploy + extends: .dev_a7-windows-common rules: !reference [.on_main] - needs: - - docker_build_agent7_windows1809 - - docker_build_agent7_windows1809_jmx - - docker_build_agent7_windows1809_core - - docker_build_agent7_windows1809_core_jmx - - docker_build_agent7_windows2022 - - docker_build_agent7_windows2022_jmx - - docker_build_agent7_windows2022_core - - docker_build_agent7_windows2022_core_jmx variables: - IMG_REGISTRIES: dev - parallel: - matrix: - # Multi-arch - - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7" - IMG_SOURCES: "%BASE%-win1809-amd64,%BASE%-winltsc2022-amd64" - IMG_DESTINATIONS: agent-dev:master-py3-win - - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-jmx" - IMG_SOURCES: "%BASE%-win1809-amd64,%BASE%-winltsc2022-amd64" - IMG_DESTINATIONS: agent-dev:master-py3-jmx-win - - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7" - IMG_SOURCES: "%BASE%-win1809-servercore-amd64,%BASE%-winltsc2022-servercore-amd64" - IMG_DESTINATIONS: agent-dev:master-py3-win-servercore - - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-jmx" - IMG_SOURCES: "%BASE%-win1809-servercore-amd64,%BASE%-winltsc2022-servercore-amd64" - IMG_DESTINATIONS: agent-dev:master-py3-jmx-win-servercore - # ltsc2019 - - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7" - IMG_SOURCES: "%BASE%-win1809-amd64" - IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-py3-win-ltsc2019 - - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-jmx" - IMG_SOURCES: "%BASE%-win1809-amd64" - IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-py3-jmx-win-ltsc2019 - - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7" - IMG_SOURCES: "%BASE%-win1809-servercore-amd64" - IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-py3-win-servercore-ltsc2019 - - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-jmx" - IMG_SOURCES: "%BASE%-win1809-servercore-amd64" - IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-py3-jmx-win-servercore-ltsc2019 - # ltsc2022 - - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7" - IMG_SOURCES: "%BASE%-winltsc2022-amd64" - IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-py3-win-ltsc2022 - - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-jmx" - IMG_SOURCES: "%BASE%-winltsc2022-amd64" - IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-py3-jmx-win-ltsc2022 - - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7" - IMG_SOURCES: "%BASE%-winltsc2022-servercore-amd64" - IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-py3-win-servercore-ltsc2022 - - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-jmx" - IMG_SOURCES: "%BASE%-winltsc2022-servercore-amd64" - IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-py3-jmx-win-servercore-ltsc2022 + IMG_DESTINATION_SLUG: master dev_nightly-a7-windows: - extends: .docker_publish_job_definition - stage: dev_container_deploy + extends: .dev_a7-windows-common rules: !reference [.on_deploy_nightly_repo_branch] + variables: + IMG_DESTINATION_SLUG: nightly + +.dev_fips-a7-windows-common: + extends: .docker_publish_job_definition + stage: dev_container_deploy needs: - - docker_build_agent7_windows1809 - - docker_build_agent7_windows1809_jmx - - docker_build_agent7_windows1809_core - - docker_build_agent7_windows1809_core_jmx - - docker_build_agent7_windows2022 - - docker_build_agent7_windows2022_jmx - - docker_build_agent7_windows2022_core - - docker_build_agent7_windows2022_core_jmx + - docker_build_fips_agent7_windows2022_core + - docker_build_fips_agent7_windows2022_core_jmx variables: IMG_REGISTRIES: dev + # Only publish ltsc2022 servercore for now, that's all that's used by the integrations testing parallel: matrix: - # Multi-arch - - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7" - IMG_SOURCES: "%BASE%-win1809-amd64,%BASE%-winltsc2022-amd64" - IMG_DESTINATIONS: agent-dev:nightly-${CI_COMMIT_SHORT_SHA}-py3-win - - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-jmx" - IMG_SOURCES: "%BASE%-win1809-amd64,%BASE%-winltsc2022-amd64" - IMG_DESTINATIONS: agent-dev:nightly-${CI_COMMIT_SHORT_SHA}-py3-jmx-win - - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7" - IMG_SOURCES: "%BASE%-win1809-servercore-amd64,%BASE%-winltsc2022-servercore-amd64" - IMG_DESTINATIONS: agent-dev:nightly-${CI_COMMIT_SHORT_SHA}-py3-win-servercore - - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-jmx" - IMG_SOURCES: "%BASE%-win1809-servercore-amd64,%BASE%-winltsc2022-servercore-amd64" - IMG_DESTINATIONS: agent-dev:nightly-${CI_COMMIT_SHORT_SHA}-py3-jmx-win-servercore - # ltsc2019 - - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7" - IMG_SOURCES: "%BASE%-win1809-amd64" - IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-py3-win-ltsc2019 - - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-jmx" - IMG_SOURCES: "%BASE%-win1809-amd64" - IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-py3-jmx-win-ltsc2019 - - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7" - IMG_SOURCES: "%BASE%-win1809-servercore-amd64" - IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-py3-win-servercore-ltsc2019 - - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-jmx" - IMG_SOURCES: "%BASE%-win1809-servercore-amd64" - IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-py3-jmx-win-servercore-ltsc2019 # ltsc2022 - - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7" - IMG_SOURCES: "%BASE%-winltsc2022-amd64" - IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-py3-win-ltsc2022 - - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-jmx" - IMG_SOURCES: "%BASE%-winltsc2022-amd64" - IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-py3-jmx-win-ltsc2022 - - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7" + - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-fips" IMG_SOURCES: "%BASE%-winltsc2022-servercore-amd64" - IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-py3-win-servercore-ltsc2022 - - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-jmx" + IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-py3-fips-win-servercore-ltsc2022 + - IMG_VARIABLES: "BASE=${SRC_AGENT}:v${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}-7-fips-jmx" IMG_SOURCES: "%BASE%-winltsc2022-servercore-amd64" - IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-py3-jmx-win-servercore-ltsc2022 + IMG_DESTINATIONS: agent-dev:${CI_COMMIT_REF_SLUG}-py3-fips-jmx-win-servercore-ltsc2022 + +dev_branch-fips-a7-windows: + extends: .dev_fips-a7-windows-common + rules: + !reference [.manual] + variables: + IMG_DESTINATION_SLUG: ${CI_COMMIT_REF_SLUG} + +dev_master-fips-a7-windows: + extends: .dev_fips-a7-windows-common + rules: + !reference [.on_main] + variables: + IMG_DESTINATION_SLUG: master + +dev_nightly-fips-a7-windows: + extends: .dev_fips-a7-windows-common + rules: + !reference [.on_deploy_nightly_repo_branch] + variables: + IMG_DESTINATION_SLUG: nightly diff --git a/Dockerfiles/agent/install-fips.ps1 b/Dockerfiles/agent/install-fips.ps1 index 70be3b0da44bb..05324776e9dda 100644 --- a/Dockerfiles/agent/install-fips.ps1 +++ b/Dockerfiles/agent/install-fips.ps1 @@ -1,5 +1,16 @@ $ErrorActionPreference = 'Stop' +# Removes temporary files for FIPS setup +function Remove-TempFiles { + Remove-Item -Force -Recurse \fips-build +} + +if ("$env:WITH_FIPS" -ne "true") { + # If FIPS is not enabled, skip the FIPS setup + Remove-TempFiles + exit 0 +} + $maven_sha512 = '8BEAC8D11EF208F1E2A8DF0682B9448A9A363D2AD13CA74AF43705549E72E74C9378823BF689287801CBBFC2F6EA9596201D19CCACFDFB682EE8A2FF4C4418BA' if ("$env:WITH_JMX" -ne "false") { @@ -18,6 +29,10 @@ if ("$env:WITH_JMX" -ne "false") { if (!$?) { Write-Error ("BouncyCastle self check failed with exit code: {0}" -f $LASTEXITCODE) } + cd \ } -cd \ -Remove-Item -Force -Recurse \fips-build + +# TODO: Run openssl fipsinstall command here when embedded Python work is completed +# HERE + +Remove-TempFiles diff --git a/Dockerfiles/agent/windows/amd64/Dockerfile b/Dockerfiles/agent/windows/amd64/Dockerfile index 275801062f047..72c7060810838 100755 --- a/Dockerfiles/agent/windows/amd64/Dockerfile +++ b/Dockerfiles/agent/windows/amd64/Dockerfile @@ -7,6 +7,7 @@ ARG WITH_JMX="false" ARG VARIANT="unknown" ARG INSTALL_INFO="unknown" ARG GENERAL_ARTIFACTS_CACHE_BUCKET_URL +ARG WITH_FIPS="false" LABEL maintainer "Datadog " From af201abc9475d7f37e028f4c03709466a450de3f Mon Sep 17 00:00:00 2001 From: Joachim Date: Fri, 6 Dec 2024 18:00:36 +0000 Subject: [PATCH 309/439] Bugfix - recognize PDB as K8s resource (#31839) --- pkg/orchestrator/model/types.go | 35 +++++++++++++++++---------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/pkg/orchestrator/model/types.go b/pkg/orchestrator/model/types.go index b8046b5ab73af..28687af8c460e 100644 --- a/pkg/orchestrator/model/types.go +++ b/pkg/orchestrator/model/types.go @@ -192,33 +192,34 @@ func (n NodeType) String() string { // Orchestrator returns the orchestrator name for a node type. func (n NodeType) Orchestrator() string { switch n { - case K8sCluster, + case K8sCR, + K8sCRD, + K8sCluster, + K8sClusterRole, + K8sClusterRoleBinding, K8sCronJob, - K8sDeployment, K8sDaemonSet, + K8sDeployment, + K8sHorizontalPodAutoscaler, + K8sIngress, K8sJob, + K8sLimitRange, + K8sNamespace, + K8sNetworkPolicy, K8sNode, - K8sPod, - K8sReplicaSet, - K8sService, - K8sStatefulSet, K8sPersistentVolume, K8sPersistentVolumeClaim, + K8sPod, + K8sPodDisruptionBudget, + K8sReplicaSet, K8sRole, K8sRoleBinding, - K8sClusterRole, - K8sClusterRoleBinding, + K8sService, K8sServiceAccount, - K8sIngress, - K8sCRD, - K8sCR, - K8sNamespace, - K8sVerticalPodAutoscaler, - K8sHorizontalPodAutoscaler, - K8sNetworkPolicy, - K8sLimitRange, + K8sStatefulSet, K8sStorageClass, - K8sUnsetType: + K8sUnsetType, + K8sVerticalPodAutoscaler: return "k8s" case ECSTask: return "ecs" From 4b5c8b9270fe4626702db6d66298a060176251d0 Mon Sep 17 00:00:00 2001 From: Rey Abolofia Date: Fri, 6 Dec 2024 20:29:28 +0100 Subject: [PATCH 310/439] [serverless] Support trace context propagation for ALB target groups with MultiValueHeaders (#31542) Co-authored-by: quietsato --- pkg/serverless/trace/propagation/carriers.go | 10 ++++ .../trace/propagation/carriers_test.go | 51 ++++++++++++++++++- pkg/serverless/trace/propagation/extractor.go | 2 +- .../trace/propagation/extractor_test.go | 18 +++++++ pkg/serverless/trigger/events/events.go | 9 ++-- pkg/serverless/trigger/extractor.go | 13 ++++- pkg/serverless/trigger/extractor_test.go | 19 +++++++ 7 files changed, 114 insertions(+), 8 deletions(-) diff --git a/pkg/serverless/trace/propagation/carriers.go b/pkg/serverless/trace/propagation/carriers.go index 9cfa1255baabb..ee2062664780e 100644 --- a/pkg/serverless/trace/propagation/carriers.go +++ b/pkg/serverless/trace/propagation/carriers.go @@ -253,6 +253,16 @@ func headersCarrier(hdrs map[string]string) (tracer.TextMapReader, error) { return tracer.TextMapCarrier(hdrs), nil } +// headersOrMultiheadersCarrier returns the tracer.TextMapReader used to extract +// trace context from a Headers field of form map[string]string or MultiValueHeaders +// field of form map[string][]string. +func headersOrMultiheadersCarrier(hdrs map[string]string, multiHdrs map[string][]string) (tracer.TextMapReader, error) { + if len(hdrs) > 0 { + return headersCarrier(hdrs) + } + return tracer.HTTPHeadersCarrier(multiHdrs), nil +} + // extractTraceContextFromStepFunctionContext extracts the execution ARN, state name, and state entered time and uses them to generate Trace ID and Parent ID // The logic is based on the trace context conversion in Logs To Traces, dd-trace-py, dd-trace-js, etc. func extractTraceContextFromStepFunctionContext(event events.StepFunctionPayload) (*TraceContext, error) { diff --git a/pkg/serverless/trace/propagation/carriers_test.go b/pkg/serverless/trace/propagation/carriers_test.go index c58b294b74e39..16e382343f15f 100644 --- a/pkg/serverless/trace/propagation/carriers_test.go +++ b/pkg/serverless/trace/propagation/carriers_test.go @@ -816,7 +816,7 @@ func TestHeadersCarrier(t *testing.T) { for _, tc := range testcases { t.Run(tc.name, func(t *testing.T) { tm, err := headersCarrier(tc.event) - t.Logf("rawPayloadCarrier returned TextMapReader=%#v error=%#v", tm, err) + t.Logf("headersCarrier returned TextMapReader=%#v error=%#v", tm, err) assert.Equal(t, tc.expErr != nil, err != nil) if tc.expErr != nil && err != nil { assert.Equal(t, tc.expErr.Error(), err.Error()) @@ -826,6 +826,55 @@ func TestHeadersCarrier(t *testing.T) { } } +func TestHeadersOrMultiheadersCarrier(t *testing.T) { + testcases := []struct { + name string + hdrs map[string]string + multiHdrs map[string][]string + expMap map[string]string + }{ + { + name: "nil-map", + hdrs: headersMapNone, + multiHdrs: toMultiValueHeaders(headersMapNone), + expMap: headersMapEmpty, + }, + { + name: "empty-map", + hdrs: headersMapEmpty, + multiHdrs: toMultiValueHeaders(headersMapEmpty), + expMap: headersMapEmpty, + }, + { + name: "headers-and-multiheaders", + hdrs: headersMapDD, + multiHdrs: toMultiValueHeaders(headersMapW3C), + expMap: headersMapDD, + }, + { + name: "just-headers", + hdrs: headersMapDD, + multiHdrs: toMultiValueHeaders(headersMapEmpty), + expMap: headersMapDD, + }, + { + name: "just-multiheaders", + hdrs: headersMapEmpty, + multiHdrs: toMultiValueHeaders(headersMapW3C), + expMap: headersMapW3C, + }, + } + + for _, tc := range testcases { + t.Run(tc.name, func(t *testing.T) { + tm, err := headersOrMultiheadersCarrier(tc.hdrs, tc.multiHdrs) + t.Logf("headersOrMultiheadersCarrier returned TextMapReader=%#v error=%#v", tm, err) + assert.Nil(t, err) + assert.Equal(t, tc.expMap, getMapFromCarrier(tm)) + }) + } +} + func Test_stringToDdSpanId(t *testing.T) { type args struct { execArn string diff --git a/pkg/serverless/trace/propagation/extractor.go b/pkg/serverless/trace/propagation/extractor.go index d6c756ae1693f..d9fe9b883275c 100644 --- a/pkg/serverless/trace/propagation/extractor.go +++ b/pkg/serverless/trace/propagation/extractor.go @@ -112,7 +112,7 @@ func (e Extractor) extract(event interface{}) (*TraceContext, error) { case events.APIGatewayCustomAuthorizerRequestTypeRequest: carrier, err = headersCarrier(ev.Headers) case events.ALBTargetGroupRequest: - carrier, err = headersCarrier(ev.Headers) + carrier, err = headersOrMultiheadersCarrier(ev.Headers, ev.MultiValueHeaders) case events.LambdaFunctionURLRequest: carrier, err = headersCarrier(ev.Headers) case events.StepFunctionPayload: diff --git a/pkg/serverless/trace/propagation/extractor_test.go b/pkg/serverless/trace/propagation/extractor_test.go index 8cdd07c6d9027..cdcb4bd39b3ec 100644 --- a/pkg/serverless/trace/propagation/extractor_test.go +++ b/pkg/serverless/trace/propagation/extractor_test.go @@ -176,6 +176,14 @@ var ( } ) +func toMultiValueHeaders(headers map[string]string) map[string][]string { + mvh := make(map[string][]string) + for k, v := range headers { + mvh[k] = []string{v} + } + return mvh +} + func TestNilPropagator(t *testing.T) { var extractor Extractor tc, err := extractor.Extract([]byte(`{"headers":` + headersAll + `}`)) @@ -533,6 +541,16 @@ func TestExtractorExtract(t *testing.T) { expCtx: ddTraceContext, expNoErr: true, }, + { + name: "ALBTargetGroupRequestMultiValueHeaders", + events: []interface{}{ + events.ALBTargetGroupRequest{ + MultiValueHeaders: toMultiValueHeaders(headersMapAll), + }, + }, + expCtx: ddTraceContext, + expNoErr: true, + }, // events.LambdaFunctionURLRequest: { diff --git a/pkg/serverless/trigger/events/events.go b/pkg/serverless/trigger/events/events.go index 03e4760b82044..cb55ea9691ba7 100644 --- a/pkg/serverless/trigger/events/events.go +++ b/pkg/serverless/trigger/events/events.go @@ -122,10 +122,11 @@ type APIGatewayCustomAuthorizerRequestTypeRequestContext struct { // ALBTargetGroupRequest mirrors events.ALBTargetGroupRequest type, removing // unused fields. type ALBTargetGroupRequest struct { - HTTPMethod string - Path string - Headers map[string]string - RequestContext ALBTargetGroupRequestContext + HTTPMethod string + Path string + Headers map[string]string + MultiValueHeaders map[string][]string + RequestContext ALBTargetGroupRequestContext } // ALBTargetGroupRequestContext mirrors events.ALBTargetGroupRequestContext diff --git a/pkg/serverless/trigger/extractor.go b/pkg/serverless/trigger/extractor.go index 1652c176245e3..6632628d69441 100644 --- a/pkg/serverless/trigger/extractor.go +++ b/pkg/serverless/trigger/extractor.go @@ -188,14 +188,23 @@ func GetTagsFromALBTargetGroupRequest(event events.ALBTargetGroupRequest) map[st httpTags := make(map[string]string) httpTags["http.url_details.path"] = event.Path httpTags["http.method"] = event.HTTPMethod + if event.Headers != nil { - if event.Headers["Referer"] != "" { - httpTags["http.referer"] = event.Headers["Referer"] + if r := event.Headers["Referer"]; r != "" { + httpTags["http.referer"] = r } if ua := event.Headers["User-Agent"]; ua != "" { httpTags["http.useragent"] = ua } + } else if event.MultiValueHeaders != nil { + if r := event.MultiValueHeaders["Referer"]; len(r) > 0 && r[0] != "" { + httpTags["http.referer"] = r[0] + } + if ua := event.MultiValueHeaders["User-Agent"]; len(ua) > 0 && ua[0] != "" { + httpTags["http.useragent"] = ua[0] + } } + return httpTags } diff --git a/pkg/serverless/trigger/extractor_test.go b/pkg/serverless/trigger/extractor_test.go index 34cb6f4b3c816..91234c92ed997 100644 --- a/pkg/serverless/trigger/extractor_test.go +++ b/pkg/serverless/trigger/extractor_test.go @@ -353,6 +353,25 @@ func TestGetTagsFromALBTargetGroupRequest(t *testing.T) { }, httpTags) } +func TestGetTagsFromALBTargetGroupRequestMultiValueHeaders(t *testing.T) { + event := events.ALBTargetGroupRequest{ + MultiValueHeaders: map[string][]string{ + "key": {"val"}, + "Referer": {"referer"}, + }, + Path: "path", + HTTPMethod: "http-method", + } + + httpTags := GetTagsFromALBTargetGroupRequest(event) + + assert.Equal(t, map[string]string{ + "http.url_details.path": "path", + "http.method": "http-method", + "http.referer": "referer", + }, httpTags) +} + func TestGetTagsFromFunctionURLRequest(t *testing.T) { event := events.LambdaFunctionURLRequest{ Headers: map[string]string{ From 858cb1cae75f20afd261ed5d4c8bca70bd6e0c3d Mon Sep 17 00:00:00 2001 From: Branden Clark Date: Fri, 6 Dec 2024 14:51:35 -0500 Subject: [PATCH 311/439] Deprecate Windows .bat scripts (#31732) --- .github/CODEOWNERS | 1 + .gitlab/package_build/installer.yml | 2 +- .gitlab/package_build/windows.yml | 7 +- Dockerfiles/agent/windows/README.md | 2 +- docs/dev/agent_omnibus.md | 6 +- tasks/__init__.py | 2 + tasks/winbuild.py | 71 +++++ tasks/winbuildscripts/Build-AgentPackages.ps1 | 83 ++++++ .../Build-InstallerPackages.ps1 | 72 ++++++ tasks/winbuildscripts/Build-OmnibusTarget.ps1 | 90 +++++++ tasks/winbuildscripts/Generate-OCIPackage.ps1 | 11 +- tasks/winbuildscripts/buildinstaller.bat | 59 ----- tasks/winbuildscripts/buildlocal.bat | 14 - tasks/winbuildscripts/buildwin.bat | 39 --- tasks/winbuildscripts/common.ps1 | 242 ++++++++++++++++++ tasks/winbuildscripts/dobuild.bat | 62 ----- tasks/winbuildscripts/libyajl2_install.ps1 | 26 -- 17 files changed, 576 insertions(+), 213 deletions(-) create mode 100644 tasks/winbuild.py create mode 100644 tasks/winbuildscripts/Build-AgentPackages.ps1 create mode 100644 tasks/winbuildscripts/Build-InstallerPackages.ps1 create mode 100644 tasks/winbuildscripts/Build-OmnibusTarget.ps1 delete mode 100644 tasks/winbuildscripts/buildinstaller.bat delete mode 100644 tasks/winbuildscripts/buildlocal.bat delete mode 100644 tasks/winbuildscripts/buildwin.bat create mode 100644 tasks/winbuildscripts/common.ps1 delete mode 100644 tasks/winbuildscripts/dobuild.bat delete mode 100644 tasks/winbuildscripts/libyajl2_install.ps1 diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index ad6e11974b350..202c143c2da56 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -570,6 +570,7 @@ /tasks/sds.py @DataDog/agent-processing-and-routing /tasks/systray.py @DataDog/windows-agent /tasks/winbuildscripts/ @DataDog/windows-agent +/tasks/winbuild.py @DataDog/windows-agent /tasks/windows_resources.py @DataDog/windows-agent /tasks/components.py @DataDog/agent-shared-components /tasks/components_templates @DataDog/agent-shared-components diff --git a/.gitlab/package_build/installer.yml b/.gitlab/package_build/installer.yml index 443b2fe52318b..6ab10c1a19e62 100644 --- a/.gitlab/package_build/installer.yml +++ b/.gitlab/package_build/installer.yml @@ -220,7 +220,7 @@ windows-installer-amd64: -e USE_S3_CACHING="$USE_S3_CACHING" -e API_KEY_ORG2=${API_KEY_ORG2} registry.ddbuild.io/ci/datadog-agent-buildimages/windows_1809_${ARCH}${Env:DATADOG_AGENT_WINBUILDIMAGES_SUFFIX}:${Env:DATADOG_AGENT_WINBUILDIMAGES} - c:\mnt\tasks\winbuildscripts\buildinstaller.bat + powershell -C "c:\mnt\tasks\winbuildscripts\Build-InstallerPackages.ps1 -BuildOutOfSource 1 -InstallDeps 1 -CheckGoVersion 1" after_script: - '$_instance_id = (iwr -UseBasicParsing http://169.254.169.254/latest/meta-data/instance-id).content ; Write-Host "Running on instance $($_instance_id)"' artifacts: diff --git a/.gitlab/package_build/windows.yml b/.gitlab/package_build/windows.yml index 16734f170f1da..cb57ebafa617f 100644 --- a/.gitlab/package_build/windows.yml +++ b/.gitlab/package_build/windows.yml @@ -32,14 +32,13 @@ -e S3_OMNIBUS_CACHE_BUCKET="$S3_OMNIBUS_CACHE_BUCKET" -e USE_S3_CACHING="$USE_S3_CACHING" -e INTEGRATION_WHEELS_CACHE_BUCKET="$INTEGRATION_WHEELS_CACHE_BUCKET" - -e GO_VERSION_CHECK="true" -e BUNDLE_MIRROR__RUBYGEMS__ORG=${BUNDLE_MIRROR__RUBYGEMS__ORG} -e PIP_INDEX_URL=${PIP_INDEX_URL} -e API_KEY_ORG2=${API_KEY_ORG2} -e OMNIBUS_GIT_CACHE_DIR=${Env:TEMP}/${CI_PIPELINE_ID}/omnibus-git-cache -e AGENT_FLAVOR=${AGENT_FLAVOR} registry.ddbuild.io/ci/datadog-agent-buildimages/windows_1809_${ARCH}${Env:DATADOG_AGENT_WINBUILDIMAGES_SUFFIX}:${Env:DATADOG_AGENT_WINBUILDIMAGES} - c:\mnt\tasks\winbuildscripts\buildwin.bat + powershell -C "c:\mnt\tasks\winbuildscripts\Build-AgentPackages.ps1 -BuildOutOfSource 1 -InstallDeps 1 -CheckGoVersion 1" - If ($lastExitCode -ne "0") { throw "Previous command returned $lastExitCode" } - get-childitem omnibus\pkg - !reference [.upload_sbom_artifacts_windows] @@ -89,7 +88,7 @@ windows_zip_agent_binaries_x64-a7: needs: ["go_mod_tidy_check", "go_deps"] variables: ARCH: "x64" - OMNIBUS_TARGET: agent_binaries + OMNIBUS_TARGET: agent-binaries before_script: - set RELEASE_VERSION $RELEASE_VERSION_7 script: @@ -122,7 +121,7 @@ windows_zip_agent_binaries_x64-a7: -e PIP_INDEX_URL=${PIP_INDEX_URL} -e API_KEY_ORG2=${API_KEY_ORG2} registry.ddbuild.io/ci/datadog-agent-buildimages/windows_1809_${ARCH}${Env:DATADOG_AGENT_WINBUILDIMAGES_SUFFIX}:${Env:DATADOG_AGENT_WINBUILDIMAGES} - c:\mnt\tasks\winbuildscripts\buildwin.bat + powershell -C "c:\mnt\tasks\winbuildscripts\Build-OmnibusTarget.ps1 -BuildOutOfSource 1 -InstallDeps 1 -CheckGoVersion 1" - If ($lastExitCode -ne "0") { throw "Previous command returned $lastExitCode" } - get-childitem omnibus\pkg - !reference [.upload_sbom_artifacts_windows] diff --git a/Dockerfiles/agent/windows/README.md b/Dockerfiles/agent/windows/README.md index e33eeda9bd4e0..7c966fd0294c2 100644 --- a/Dockerfiles/agent/windows/README.md +++ b/Dockerfiles/agent/windows/README.md @@ -6,7 +6,7 @@ How to build the Agent docker image From the root of the repository, run the following command: ``` -docker run --rm -it -v "${pwd}:c:\mnt" -e OMNIBUS_TARGET=main -e MAJOR_VERSION=7 -e RELEASE_VERSION=nightly -e PY_RUNTIMES=3 datadog/agent-buildimages-windows_x64:1809 c:\mnt\tasks\winbuildscripts\buildwin.bat +docker run --rm -it -v "${pwd}:c:\mnt" -e OMNIBUS_TARGET=main -e MAJOR_VERSION=7 -e RELEASE_VERSION=nightly-a7 -e PY_RUNTIMES=3 datadog/agent-buildimages-windows_x64:1809 powershell -C "c:\mnt\tasks\winbuildscripts\Build-AgentPackages.ps1 -BuildOutOfSource 1 -InstallDeps 1 -CheckGoVersion 1" ``` The build artifacts will be in `omnibus\pkg`. diff --git a/docs/dev/agent_omnibus.md b/docs/dev/agent_omnibus.md index 68ff17b6e3724..421303cbfc173 100644 --- a/docs/dev/agent_omnibus.md +++ b/docs/dev/agent_omnibus.md @@ -90,7 +90,7 @@ Start a Powershell prompt and navigate to your local clone of the `datadog-agent Run the following command: ```powershell -docker run -v "$(Get-Location):c:\mnt" -e OMNIBUS_TARGET=main -e RELEASE_VERSION=nightly -e MAJOR_VERSION=7 -e TARGET_ARCH=x64 datadog/agent-buildimages-windows_x64:1809 c:\mnt\tasks\winbuildscripts\buildwin.bat +docker run -v "$(Get-Location):c:\mnt" -e OMNIBUS_TARGET=main -e RELEASE_VERSION=nightly-a7 -e MAJOR_VERSION=7 -e TARGET_ARCH=x64 datadog/agent-buildimages-windows_x64:1809 powershell -C "c:\mnt\tasks\winbuildscripts\Build-AgentPackages.ps1 -BuildOutOfSource 1 -InstallDeps 1 -CheckGoVersion 1" ``` Downloading the Docker image may take some time in the first run. @@ -100,7 +100,7 @@ Alternatively here's a small Powershell script to facilitate using the docker im param ( [int]$MAJOR_VERSION=7, $TARGET_ARCH="x64", - $RELEASE_VERSION="nightly", + $RELEASE_VERSION="nightly-a7", [bool]$RM_CONTAINER=$true, [bool]$DEBUG=$false ) @@ -113,7 +113,7 @@ $opts = "-e OMNIBUS_TARGET=main -e RELEASE_VERSION=$RELEASE_VERSION -e MAJOR_VER if ($DEBUG) { $opts += " -e DEBUG_CUSTOMACTION=yes " } -$cmd += " -m 8192M -v ""$(Get-Location):c:\mnt"" $opts datadog/agent-buildimages-windows_x64:1809 c:\mnt\tasks\winbuildscripts\buildwin.bat" +$cmd += " -m 8192M -v ""$(Get-Location):c:\mnt"" $opts datadog/agent-buildimages-windows_x64:1809 powershell -C ""c:\mnt\tasks\winbuildscripts\Build-AgentPackages.ps1 -BuildOutOfSource 1 -InstallDeps 1 -CheckGoVersion 1""" Write-Host $cmd Invoke-Expression -Command $cmd ``` diff --git a/tasks/__init__.py b/tasks/__init__.py index 44adcefb1dcad..d59a06de7463b 100644 --- a/tasks/__init__.py +++ b/tasks/__init__.py @@ -63,6 +63,7 @@ trace_agent, vim, vscode, + winbuild, worktree, ) from tasks.build_tags import audit_tag_impact, print_default_build_tags @@ -212,6 +213,7 @@ ns.add_collection(collector) ns.add_collection(invoke_unit_tests) ns.add_collection(debug) +ns.add_collection(winbuild) ns.add_collection(worktree) ns.configure( { diff --git a/tasks/winbuild.py b/tasks/winbuild.py new file mode 100644 index 0000000000000..66f0cb02b68a1 --- /dev/null +++ b/tasks/winbuild.py @@ -0,0 +1,71 @@ +import os +import shutil + +from invoke.tasks import task + +from tasks.flavor import AgentFlavor +from tasks.libs.common.utils import get_version +from tasks.msi import build as build_agent_msi +from tasks.msi import build_installer as build_installer_msi +from tasks.omnibus import build as omnibus_build + +# Output directory for package files +OUTPUT_PATH = os.path.join(os.getcwd(), "omnibus", "pkg") +# Omnibus stores files here, e.g. C:\opt\datadog-agent, C:\opt\dataog-installer +OPT_SOURCE_DIR = os.path.join('C:\\', 'opt') + + +@task +def agent_package( + ctx, + flavor=AgentFlavor.base.name, + release_version="nightly-a7", + skip_deps=False, +): + # Build agent + omnibus_build( + ctx, + flavor=flavor, + release_version=release_version, + skip_deps=skip_deps, + ) + + # Package Agent into MSI + build_agent_msi(ctx, release_version=release_version) + + # Package MSI into OCI + if AgentFlavor[flavor] == AgentFlavor.base: + ctx.run('powershell -C "./tasks/winbuildscripts/Generate-OCIPackage.ps1 -package datadog-agent"') + + +@task +def installer_package( + ctx, + release_version="nightly-a7", + skip_deps=False, +): + # Build installer + omnibus_build( + ctx, + release_version=release_version, + skip_deps=skip_deps, + target_project="installer", + ) + + # Package Insaller into MSI + build_installer_msi(ctx) + + # Package MSI into OCI + ctx.run('powershell -C "./tasks/winbuildscripts/Generate-OCIPackage.ps1 -package datadog-installer"') + + # Copy installer.exe to the output dir so it can be deployed as the bootstrapper + agent_version = get_version( + ctx, + include_git=True, + url_safe=True, + include_pipeline_id=True, + ) + shutil.copy2( + os.path.join(OPT_SOURCE_DIR, "datadog-installer\\datadog-installer.exe"), + os.path.join(OUTPUT_PATH, f"datadog-installer-{agent_version}-1-x86_64.exe"), + ) diff --git a/tasks/winbuildscripts/Build-AgentPackages.ps1 b/tasks/winbuildscripts/Build-AgentPackages.ps1 new file mode 100644 index 0000000000000..34c2188c8249b --- /dev/null +++ b/tasks/winbuildscripts/Build-AgentPackages.ps1 @@ -0,0 +1,83 @@ +<# +.SYNOPSIS +Builds the Datadog Agent packages for Windows. Builds everything with omnibus and packages the output into MSI, ZIP, and OCI. + +.DESCRIPTION +This script builds the Datadog Agent packages for Windows, with options to configure the build environment. + +.PARAMETER ReleaseVersion +Specifies the release version of the build. Default is the value of the environment variable RELEASE_VERSION. + +.PARAMETER Flavor +Specifies the flavor of the agent. Default is the value of the environment variable AGENT_FLAVOR. + +.PARAMETER BuildOutOfSource +Specifies whether to build out of source. Default is $false. + +Use this option in the CI to keep the job directory clean and avoid conflicts/stale data. +Use this option in Hyper-V based containers to improve build performance. + +.PARAMETER InstallDeps +Specifies whether to install dependencies (python requirements, go deps, etc.). Default is $true. + +.PARAMETER CheckGoVersion +Specifies whether to check the Go version. If not provided, it defaults to the value of the environment variable GO_VERSION_CHECK or $true if the environment variable is not set. + +.EXAMPLE +.\Build-AgentPackages.ps1 -InstallDeps $false + +.EXAMPLE +.\Build-AgentPackages.ps1 -BuildOutOfSource $true -InstallDeps $true -Flavor "fips" -CheckGoVersion $true + +.NOTES +This script should be run from the root of the repository. + +#> +param( + [bool] $BuildOutOfSource = $false, + [nullable[bool]] $CheckGoVersion, + [bool] $InstallDeps = $true, + [string] $ReleaseVersion = $env:RELEASE_VERSION, + [string] $Flavor = $env:AGENT_FLAVOR +) + +. "$PSScriptRoot\common.ps1" + +Invoke-BuildScript ` + -BuildOutOfSource $BuildOutOfSource ` + -InstallDeps $InstallDeps ` + -CheckGoVersion $CheckGoVersion ` + -Command { + $inv_args = @( + "--skip-deps" + ) + if ($ReleaseVersion) { + $inv_args += "--release-version" + $inv_args += $ReleaseVersion + $env:RELEASE_VERSION=$ReleaseVersion + } + + if ($Flavor) { + $inv_args += "--flavor" + $inv_args += $Flavor + $env:AGENT_FLAVOR=$Flavor + } + + Write-Host "inv -e winbuild.agent-package $inv_args" + inv -e winbuild.agent-package @inv_args + if ($LASTEXITCODE -ne 0) { + Write-Error "Failed to build the agent package" + exit 1 + } + + # Show the contents of the output package directories for debugging purposes + Get-ChildItem -Path C:\omnibus-ruby\pkg\ + Get-ChildItem -Path "C:\opt\datadog-agent\bin\agent\" + Get-ChildItem -Path ".\omnibus\pkg\" + + if ($BuildOutOfSource) { + # Copy the resulting package to the mnt directory + mkdir C:\mnt\omnibus\pkg -Force -ErrorAction Stop | Out-Null + Copy-Item -Path ".\omnibus\pkg\*" -Destination "C:\mnt\omnibus\pkg" -Force -ErrorAction Stop + } +} diff --git a/tasks/winbuildscripts/Build-InstallerPackages.ps1 b/tasks/winbuildscripts/Build-InstallerPackages.ps1 new file mode 100644 index 0000000000000..bf381a8ef5f8a --- /dev/null +++ b/tasks/winbuildscripts/Build-InstallerPackages.ps1 @@ -0,0 +1,72 @@ +<# +.SYNOPSIS +Builds the Datadog Installer packages for Windows. Builds everything with omnibus and packages the output into MSI, ZIP, and OCI. + +.DESCRIPTION +This script builds the Datadog Installer packages for Windows, with options to configure the build environment. + +.PARAMETER BuildOutOfSource +Specifies whether to build out of source. Default is $false. + +Use this option in the CI to keep the job directory clean and avoid conflicts/stale data. +Use this option in Hyper-V based containers to improve build performance. + +.PARAMETER InstallDeps +Specifies whether to install dependencies (python requirements, go deps, etc.). Default is $true. + +.PARAMETER ReleaseVersion +Specifies the release version of the build. Default is the value of the environment variable RELEASE_VERSION. + +.PARAMETER CheckGoVersion +Specifies whether to check the Go version. If not provided, it defaults to the value of the environment variable GO_VERSION_CHECK or $true if the environment variable is not set. + +.EXAMPLE +.\Build-InstallerPackages.ps1 -InstallDeps $false + +.EXAMPLE +.\Build-InstallerPackages.ps1 -BuildOutOfSource $true -InstallDeps $true -CheckGoVersion $true + +.NOTES +This script should be run from the root of the repository. + +#> +param( + [bool] $BuildOutOfSource = $false, + [nullable[bool]] $CheckGoVersion, + [bool] $InstallDeps = $true, + [string] $ReleaseVersion = $env:RELEASE_VERSION +) + +. "$PSScriptRoot\common.ps1" + +Invoke-BuildScript ` + -BuildOutOfSource $BuildOutOfSource ` + -InstallDeps $InstallDeps ` + -CheckGoVersion $CheckGoVersion ` + -Command { + $inv_args = @( + "--skip-deps" + ) + if ($ReleaseVersion) { + $inv_args += "--release-version" + $inv_args += $ReleaseVersion + } + + Write-Host "inv -e winbuild.installer-package $inv_args" + inv -e winbuild.installer-package @inv_args + if ($LASTEXITCODE -ne 0) { + Write-Error "Failed to build the agent package" + exit 1 + } + + # Show the contents of the output package directories for debugging purposes + Get-ChildItem -Path C:\omnibus-ruby\pkg\ + Get-ChildItem -Path C:\opt\datadog-installer + Get-ChildItem -Path ".\omnibus\pkg\" + + if ($BuildOutOfSource) { + # Copy the resulting package to the mnt directory + mkdir C:\mnt\omnibus\pkg -Force -ErrorAction Stop | Out-Null + Copy-Item -Path ".\omnibus\pkg\*" -Destination "C:\mnt\omnibus\pkg" -Force -ErrorAction Stop + } +} diff --git a/tasks/winbuildscripts/Build-OmnibusTarget.ps1 b/tasks/winbuildscripts/Build-OmnibusTarget.ps1 new file mode 100644 index 0000000000000..50dfc63f30e23 --- /dev/null +++ b/tasks/winbuildscripts/Build-OmnibusTarget.ps1 @@ -0,0 +1,90 @@ +<# +.SYNOPSIS +Builds an Omnibus project for Windows. + +.DESCRIPTION +This script builds an Omnibus Project for Windows, with options to configure the build environment. + +.PARAMETER ReleaseVersion +Specifies the release version of the build. Default is the value of the environment variable RELEASE_VERSION. + +.PARAMETER Flavor +Specifies the flavor of the agent. Default is the value of the environment variable AGENT_FLAVOR. + +.PARAMETER BuildOutOfSource +Specifies whether to build out of source. Default is $false. + +Use this option in the CI to keep the job directory clean and avoid conflicts/stale data. +Use this option in Hyper-V based containers to improve build performance. + +.PARAMETER InstallDeps +Specifies whether to install dependencies (python requirements, go deps, etc.). Default is $true. + +.PARAMETER CheckGoVersion +Specifies whether to check the Go version. If not provided, it defaults to the value of the environment variable GO_VERSION_CHECK or $true if the environment variable is not set. + +.PARAMETER TargetProject +Specifies the target project for the build. This parameter is mandatory and defaults to the value of the environment variable OMNIBUS_TARGET. + +.EXAMPLE +.\Build-OmnibusTarget.ps1 -InstallDeps $false + +.EXAMPLE +.\Build-OmnibusTarget.ps1 -BuildOutOfSource $true -InstallDeps $true -Flavor "fips" -CheckGoVersion $true + +.NOTES +This script should be run from the root of the repository. + +#> +param( + [bool] $BuildOutOfSource = $false, + [nullable[bool]] $CheckGoVersion, + [bool] $InstallDeps = $true, + [string] $ReleaseVersion = $env:RELEASE_VERSION, + [string] $TargetProject = $env:OMNIBUS_TARGET +) + +. "$PSScriptRoot\common.ps1" + +Invoke-BuildScript ` + -BuildOutOfSource $BuildOutOfSource ` + -InstallDeps $InstallDeps ` + -CheckGoVersion $CheckGoVersion ` + -Command { + $inv_args = @( + "--skip-deps" + ) + if ($ReleaseVersion) { + $inv_args += "--release-version" + $inv_args += $ReleaseVersion + $env:RELEASE_VERSION=$ReleaseVersion + } + + if ($TargetProject) { + $inv_args += "--target-project" + $inv_args += $TargetProject + $env:OMNIBUS_TARGET=$TargetProject + } else { + Write-Error "Target project is required" + Write-Error "To build the (default) Agent package, use Build-AgentPackages.ps1 instead" + exit 1 + } + + Write-Host "inv -e omnibus.build $inv_args" + inv -e omnibus.build @inv_args + if ($LASTEXITCODE -ne 0) { + Write-Error "Failed to build the agent package" + exit 1 + } + + # Show the contents of the output package directories for debugging purposes + Get-ChildItem -Path C:\omnibus-ruby\pkg\ + Get-ChildItem -Path "C:\opt\datadog-agent\bin\agent\" + Get-ChildItem -Path ".\omnibus\pkg\" + + if ($BuildOutOfSource) { + # Copy the resulting package to the mnt directory + mkdir C:\mnt\omnibus\pkg -Force -ErrorAction Stop | Out-Null + Copy-Item -Path ".\omnibus\pkg\*" -Destination "C:\mnt\omnibus\pkg" -Force -ErrorAction Stop + } +} diff --git a/tasks/winbuildscripts/Generate-OCIPackage.ps1 b/tasks/winbuildscripts/Generate-OCIPackage.ps1 index ee48f4badc9fe..8b64223788b3e 100644 --- a/tasks/winbuildscripts/Generate-OCIPackage.ps1 +++ b/tasks/winbuildscripts/Generate-OCIPackage.ps1 @@ -1,11 +1,10 @@ Param( [Parameter(Mandatory=$true)] [string] $package, - [string] $version + [string] $version, + [string] $omnibusOutput = "$(Get-Location)\omnibus\pkg\" ) -$omnibusOutput = "$($Env:REPO_ROOT)\omnibus\pkg\" - if (-not (Test-Path C:\tools\datadog-package.exe)) { Write-Host "Downloading datadog-package.exe" (New-Object System.Net.WebClient).DownloadFile("https://dd-agent-omnibus.s3.amazonaws.com/datadog-package.exe", "C:\\tools\\datadog-package.exe") @@ -26,10 +25,14 @@ if (Test-Path $omnibusOutput\$packageName) { # datadog-package takes a folder as input and will package everything in that, so copy the msi to its own folder Remove-Item -Recurse -Force C:\oci-pkg -ErrorAction SilentlyContinue -New-Item -ItemType Directory C:\oci-pkg +New-Item -ItemType Directory C:\oci-pkg | Out-Null Copy-Item (Get-ChildItem $omnibusOutput\${package}-${version}-x86_64.msi).FullName -Destination C:\oci-pkg\${package}-${version}-x86_64.msi # The argument --archive-path ".\omnibus\pkg\datadog-agent-${version}.tar.gz" is currently broken and has no effects & C:\tools\datadog-package.exe create --package $package --os windows --arch amd64 --archive --version $version C:\oci-pkg +if ($LASTEXITCODE -ne 0) { + Write-Error "Failed to create OCI package" + exit 1 +} Move-Item ${package}-${version}-windows-amd64.tar $omnibusOutput\$packageName diff --git a/tasks/winbuildscripts/buildinstaller.bat b/tasks/winbuildscripts/buildinstaller.bat deleted file mode 100644 index bd41ccad5dc2a..0000000000000 --- a/tasks/winbuildscripts/buildinstaller.bat +++ /dev/null @@ -1,59 +0,0 @@ -if not exist c:\mnt\ goto nomntdir -@echo on -@echo c:\mnt found, continuing -@echo PARAMS %* -@echo RELEASE_VERSION %RELEASE_VERSION% - -set BUILD_ROOT=c:\buildroot -set REPO_ROOT=%BUILD_ROOT%\datadog-agent -mkdir %REPO_ROOT% -if not exist %REPO_ROOT% exit /b 2 -cd %REPO_ROOT% || exit /b 3 -xcopy /e/s/h/q c:\mnt\*.* || exit /b 4 - -call %BUILD_ROOT%\tasks\winbuildscripts\extract-modcache.bat %REPO_ROOT% modcache - -set OMNIBUS_BUILD=omnibus.build -@rem OMNIBUS_TARGET is also used in the C# code to only produce the .cmd for the Datadog Installer (instead of for both the Agent installer and the Datadog installer). -@rem It's not strictly needed, as we will only invoke the .cmd for the Datadog Installer in the invoke task build-installer, but it's a good practice to be consistent. -set OMNIBUS_TARGET=installer -set OMNIBUS_ARGS=%OMNIBUS_ARGS% --target-project %OMNIBUS_TARGET% -@rem Have to use arcane syntax to store AGENT_VERSION, see https://ss64.com/nt/for_cmd.html -FOR /F "tokens=*" %%g IN ('inv agent.version --url-safe --major-version 7') do (SET AGENT_VERSION=%%g) - -if DEFINED GOMODCACHE set OMNIBUS_ARGS=%OMNIBUS_ARGS% --go-mod-cache %GOMODCACHE% -if DEFINED USE_S3_CACHING set OMNIBUS_ARGS=%OMNIBUS_ARGS% %USE_S3_CACHING% - -SET PATH=%PATH%;%GOPATH%/bin -REM AGENT_MSI_OUTDIR is always overridden in msi.py - -@echo GOPATH %GOPATH% -@echo PATH %PATH% -@echo VSTUDIO_ROOT %VSTUDIO_ROOT% - -call ridk enable -pip3 install -r requirements.txt - -@echo "inv -e %OMNIBUS_BUILD% %OMNIBUS_ARGS% --skip-deps --release-version %RELEASE_VERSION%" -inv -e %OMNIBUS_BUILD% %OMNIBUS_ARGS% --skip-deps --release-version %RELEASE_VERSION% || exit /b 1 -inv -e msi.build-installer || exit /b 2 - -Powershell -C "./tasks/winbuildscripts/Generate-OCIPackage.ps1 -package 'datadog-installer'" - -REM show output package directories (for debugging) -dir \omnibus-ruby\pkg\ -dir C:\opt\datadog-installer\ -dir %REPO_ROOT%\omnibus\pkg\ - -REM copy resulting packages to expected location for collection by gitlab. -if not exist c:\mnt\omnibus\pkg\ mkdir c:\mnt\omnibus\pkg\ || exit /b 5 -copy %REPO_ROOT%\omnibus\pkg\* c:\mnt\omnibus\pkg\ || exit /b 6 -REM Save the installer.exe for bootstrapping -copy C:\opt\datadog-installer\datadog-installer.exe c:\mnt\omnibus\pkg\datadog-installer-%AGENT_VERSION%-1-x86_64.exe || exit /b 7 - -goto :EOF - -:nomntdir -@echo directory not mounted, parameters incorrect -exit /b 1 -goto :EOF diff --git a/tasks/winbuildscripts/buildlocal.bat b/tasks/winbuildscripts/buildlocal.bat deleted file mode 100644 index c2aaab3b4bfa8..0000000000000 --- a/tasks/winbuildscripts/buildlocal.bat +++ /dev/null @@ -1,14 +0,0 @@ -@echo RELEASE_VERSION %RELEASE_VERSION% -@echo MAJOR_VERSION %MAJOR_VERSION% - -REM set up variables for local build. -REM assumes attempting to build A7/x64 nightly -REM assumes target directory is mounted in the container -REM (vs. copied in as in CI build) -if NOT DEFINED RELEASE_VERSION set RELEASE_VERSION=nightly -if NOT DEFINED MAJOR_VERSION set MAJOR_VERSION=7 -if NOT DEFINED CI_JOB_ID set CI_JOB_ID=1 -if NOT DEFINED TARGET_ARCH set TARGET_ARCH=x64 - -call %~dp0dobuild.bat -if not %ERRORLEVEL% == 0 @echo "Build failed %ERRORLEVEL%" diff --git a/tasks/winbuildscripts/buildwin.bat b/tasks/winbuildscripts/buildwin.bat deleted file mode 100644 index e23c72d579db4..0000000000000 --- a/tasks/winbuildscripts/buildwin.bat +++ /dev/null @@ -1,39 +0,0 @@ -if not exist c:\mnt\ goto nomntdir -@echo on -@echo c:\mnt found, continuing - -set BUILD_ROOT=c:\buildroot -mkdir %BUILD_ROOT%\datadog-agent -if not exist %BUILD_ROOT%\datadog-agent exit /b 2 -cd %BUILD_ROOT%\datadog-agent || exit /b 3 -xcopy /e/s/h/q c:\mnt\*.* || exit /b 4 - -call %BUILD_ROOT%\datadog-agent\tasks\winbuildscripts\extract-modcache.bat %BUILD_ROOT%\datadog-agent modcache - -REM -REM after copying files in from the host, execute the build -REM using `dobuild.bat` -REM -call %BUILD_ROOT%\datadog-agent\tasks\winbuildscripts\dobuild.bat %* -if not %ERRORLEVEL% == 0 exit /b %ERRORLEVEL% - -REM show output package directories (for debugging) -dir \omnibus-ruby\pkg\ - -dir %BUILD_ROOT%\datadog-agent\omnibus\pkg\ - -REM copy resulting packages to expected location for collection by gitlab. -if not exist c:\mnt\omnibus\pkg\ mkdir c:\mnt\omnibus\pkg\ || exit /b 5 -copy %BUILD_ROOT%\datadog-agent\omnibus\pkg\* c:\mnt\omnibus\pkg\ || exit /b 6 - -REM show output binary directories (for debugging) -dir C:\opt\datadog-agent\bin\agent\ - -goto :EOF - -:nomntdir -@echo directory not mounted, parameters incorrect -exit /b 1 -goto :EOF - - diff --git a/tasks/winbuildscripts/common.ps1 b/tasks/winbuildscripts/common.ps1 new file mode 100644 index 0000000000000..35ef863d57535 --- /dev/null +++ b/tasks/winbuildscripts/common.ps1 @@ -0,0 +1,242 @@ +<# +.SYNOPSIS +Copies files from C:\mnt into C:\buildroot\datadog-agent and sets the current directory to the buildroot. + +.PARAMETER buildroot +Specifies the root directory where the files will be copied to. The default value is "c:\buildroot". + +.NOTES +This function is typically used in the context of building and running scripts within a containerized environment to +ensure that the files are copied to the container filesystem before running the build scripts. This is useful for +keeping the source clean and can provide speed improvements for hyper-v based containers. +See also, issue with job cross-contamination due to improperly cancelled jobs: https://datadoghq.atlassian.net/browse/CIEXE-143 +#> +function Enter-BuildRoot() { + param( + [string] $buildroot = "c:\buildroot" + ) + if (-Not (Test-Path -Path "c:\mnt")) { + Write-Error "C:\mnt directory not mounted, parameters incorrect" + exit 1 + } + + # copy to buildroot + mkdir -Force "$buildroot\datadog-agent" -ErrorAction Stop | Out-Null + if (-Not (Test-Path -Path "$buildroot\datadog-agent")) { + Write-Error "Failed to create buildroot directory" + exit 2 + } + + # copy the repository into the container filesystem + Write-Host "Switching to buildroot $buildroot\datadog-agent" + Push-Location "$buildroot\datadog-agent" -ErrorAction Stop -StackName AgentBuildRoot + xcopy /e/s/h/q c:\mnt\*.* +} + +<# +.SYNOPSIS +Leaves the buildroot directory and returns to the original working directory. +#> +function Exit-BuildRoot() { + Write-Host "Leaving buildroot" + Pop-Location -StackName AgentBuildRoot +} + +<# +.SYNOPSIS +Expands the Go module cache from an archive file. + +.DESCRIPTION +This function expands the Go module cache from an archive file located in the specified root directory. +It extracts the contents of the archive file into the Go module cache directory defined by the GOMODCACHE environment variable. + +.PARAMETER root +The root directory where the tar.xz file is located. Defaults to the current location. + +.PARAMETER modcache +The base name (without extension) of the file to be expanded. Expected values are `modcache` and `modcache_tools`. + +.NOTES +If the GOMODCACHE environment variable is not set, the function will skip the expansion process. + +.EXAMPLE +Expand-ModCache -modcache "modcache" +This will expand the modcache file located at "\modcache.tar.xz" into the Go module cache directory. + +#> +function Expand-ModCache() { + param( + [string] $root = (Get-Location).Path, + [ValidateSet('modcache', 'modcache_tools')] + [string] $modcache + ) + + $MODCACHE_ROOT = $root + $MODCACHE_FILE_ROOT = $modcache + $MODCACHE_XZ_FILE = Join-Path $MODCACHE_ROOT "$MODCACHE_FILE_ROOT.tar.xz" + $MODCACHE_TAR_FILE = Join-Path $MODCACHE_ROOT "$MODCACHE_FILE_ROOT.tar" + + if (-not $env:GOMODCACHE) { + Write-Host "GOMODCACHE environment variable not set, skipping expansion of mod cache files" + return + } + + Write-Host "MODCACHE_XZ_FILE $MODCACHE_XZ_FILE MODCACHE_TAR_FILE $MODCACHE_TAR_FILE GOMODCACHE $env:GOMODCACHE" + if (Test-Path $MODCACHE_XZ_FILE) { + Write-Host "Extracting modcache file $MODCACHE_XZ_FILE" + & 7z.exe x $MODCACHE_XZ_FILE -o"$MODCACHE_ROOT" -bt + if ($LASTEXITCODE -ne 0) { + Write-Error "Failed to extract $MODCACHE_XZ_FILE" + exit 1 + } + Get-ChildItem $MODCACHE_TAR_FILE + # Use -aoa to allow overwriting existing files + # This shouldn't have any negative impact: since modules are + # stored per version and hash, files that get replaced will + # get replaced by the same files + & 7z.exe x $MODCACHE_TAR_FILE -o"$env:GOMODCACHE\cache" -aoa -bt + if ($LASTEXITCODE -ne 0) { + Write-Error "Failed to extract $MODCACHE_XZ_FILE" + exit 1 + } + Write-Host "Modcache extracted" + } else { + Write-Host "Modcache XZ file $MODCACHE_XZ_FILE not found, dependencies will be downloaded" + } + + if (Test-Path $MODCACHE_XZ_FILE) { + Write-Host "Deleting modcache tar.xz $MODCACHE_XZ_FILE" + Remove-Item -Force $MODCACHE_XZ_FILE + } + if (Test-Path $MODCACHE_TAR_FILE) { + Write-Host "Deleting modcache tar $MODCACHE_TAR_FILE" + Remove-Item -Force $MODCACHE_TAR_FILE + } +} + +function Install-Deps() { + Write-Host "Installing python requirements" + pip3.exe install -r .\requirements.txt + Write-Host "Installing go dependencies" + inv -e deps +} + +function Enable-DevEnv() { + # Add go bin to PATH for golangci-lint and other go tools + if (-Not $env:GOPATH) { + Write-Host "GOPATH not set, setting to C:\dev\go" + $env:GOPATH = "C:\dev\go" + } + $env:PATH = "$env:GOPATH\bin;$env:PATH" + + # Enable ruby/msys environment, for mingw, make, etc. + ridk enable +} + +<# +.SYNOPSIS +Converts a string value to a boolean value based on specific conditions. + +.DESCRIPTION +This function takes a string input and a default boolean value. +- If the input string is null or empty, it returns the default boolean value. +- If the input string is "true", "yes", or "1" (case insensitive), it returns $true. +- Otherwise, it returns $false. +#> +function Convert-StringToBool() { + param( + [string] $Value, + [bool] $DefaultValue + ) + + if ([string]::IsNullOrEmpty($Value)) { + return $DefaultValue + } + + if ($Value.ToLower() -eq "true") { + return $true + } + + if ($Value.ToLower() -eq "yes" -or $Value -eq "1") { + return $true + } + + return $false +} + +<# +.SYNOPSIS +Invokes a build script with optional parameters for build environment configuration. + +.DESCRIPTION +The Invoke-BuildScript function sets up the build environment, optionally installs dependencies, checks the Go version, and executes a provided script block. It supports building out of source and restores the original working directory upon completion. + +.PARAMETER buildroot +Specifies the root directory for the build. Default is "c:\buildroot". + +.PARAMETER BuildOutOfSource +Specifies whether to build out of source. Default is $false. + +Use this option in the CI to keep the job directory clean and avoid conflicts/stale data. +Use this option in Hyper-V based containers to improve build performance. + +.PARAMETER InstallDeps +Specifies whether to install dependencies (python requirements, go deps, etc.). Default is $true. + +.PARAMETER CheckGoVersion +Specifies whether to check the Go version. If not provided, it defaults to the value of the environment variable GO_VERSION_CHECK or $true if the environment variable is not set. + +.PARAMETER Command +A script block containing the commands to execute as part of the build process. + +.EXAMPLE +Invoke-BuildScript -buildroot "c:\mybuild" -BuildOutOfSource $true -Command { ./build.ps1 } + +#> +function Invoke-BuildScript { + param( + [string] $buildroot = "c:\buildroot", + [bool] $BuildOutOfSource = $false, + [bool] $InstallDeps = $true, + [nullable[bool]] $CheckGoVersion, + [ScriptBlock] $Command = {$null} + ) + + try { + if ($null -eq $CheckGoVersion) { + $CheckGoVersion = Convert-StringToBool -Value $env:GO_VERSION_CHECK -default $true + } + + if ($BuildOutOfSource) { + Enter-BuildRoot + } + + Expand-ModCache -modcache modcache + + Enable-DevEnv + + if ($InstallDeps) { + Install-Deps + } + + if ($CheckGoVersion) { + inv -e check-go-version + if ($LASTEXITCODE -ne 0) { + Write-Error "Go version check failed" + exit 1 + } + } + + # Execute the provided ScriptBlock/Command + & $Command + + } finally { + # This finally block is executed regardless of whether the try block completes successfully, throws an exception, + # or uses `exit` to terminate the script. + + if ($BuildOutOfSource) { + # Restore the original working directory + Exit-BuildRoot + } + } +} diff --git a/tasks/winbuildscripts/dobuild.bat b/tasks/winbuildscripts/dobuild.bat deleted file mode 100644 index 0ed92222f1f71..0000000000000 --- a/tasks/winbuildscripts/dobuild.bat +++ /dev/null @@ -1,62 +0,0 @@ -@echo PARAMS %* -@echo RELEASE_VERSION %RELEASE_VERSION% -@echo MAJOR_VERSION %MAJOR_VERSION% -@echo GO_VERSION_CHECK %GO_VERSION_CHECK% - -if NOT DEFINED RELEASE_VERSION set RELEASE_VERSION=%~1 -if NOT DEFINED MAJOR_VERSION set MAJOR_VERSION=%~2 -if NOT DEFINED GO_VERSION_CHECK set GO_VERSION_CHECK=%~4 - -set OMNIBUS_BUILD=omnibus.build - -if "%OMNIBUS_TARGET%" == "" set OMNIBUS_TARGET=main -if "%OMNIBUS_TARGET%" == "iot" set OMNIBUS_ARGS=--flavor iot -if "%OMNIBUS_TARGET%" == "dogstatsd" set OMNIBUS_ARGS=--target-project dogstatsd -if "%OMNIBUS_TARGET%" == "agent_binaries" set OMNIBUS_ARGS=%OMNIBUS_ARGS% --target-project agent-binaries -if "%AGENT_FLAVOR%" == "fips" set OMNIBUS_ARGS=--flavor fips - -if DEFINED GOMODCACHE set OMNIBUS_ARGS=%OMNIBUS_ARGS% --go-mod-cache %GOMODCACHE% -if DEFINED USE_S3_CACHING set OMNIBUS_ARGS=%OMNIBUS_ARGS% %USE_S3_CACHING% - -set REPO_ROOT=%~p0\..\.. -pushd . -cd %REPO_ROOT% || exit /b 100 - -SET PATH=%PATH%;%GOPATH%\bin - -@echo GOPATH %GOPATH% -@echo PATH %PATH% -@echo VSTUDIO_ROOT %VSTUDIO_ROOT% - -REM Section to pre-install libyajl2 gem with fix for gcc10 compatibility -Powershell -C "ridk enable; ./tasks/winbuildscripts/libyajl2_install.ps1" - - -if "%TARGET_ARCH%" == "x64" ( - @echo IN x64 BRANCH - call ridk enable -) - - -pip3 install -r requirements.txt || exit /b 120 - -inv -e deps || exit /b 130 -if "%GO_VERSION_CHECK%" == "true" ( - inv -e check-go-version || exit /b 140 -) - -@echo "inv -e %OMNIBUS_BUILD% %OMNIBUS_ARGS% --skip-deps --release-version %RELEASE_VERSION%" -inv -e %OMNIBUS_BUILD% %OMNIBUS_ARGS% --skip-deps --release-version %RELEASE_VERSION% || exit /b 150 - -REM only build MSI for main targets for now. -if "%OMNIBUS_TARGET%" == "main" ( - @echo "inv -e msi.build --release-version %RELEASE_VERSION% - inv -e msi.build --release-version %RELEASE_VERSION% || exit /b 160 -) - -REM Build the OCI package for the Agent 7 only. -if %MAJOR_VERSION% == 7 ( - Powershell -C "./tasks/winbuildscripts/Generate-OCIPackage.ps1 -package 'datadog-agent'" -) - -popd diff --git a/tasks/winbuildscripts/libyajl2_install.ps1 b/tasks/winbuildscripts/libyajl2_install.ps1 deleted file mode 100644 index a978c004ffcbd..0000000000000 --- a/tasks/winbuildscripts/libyajl2_install.ps1 +++ /dev/null @@ -1,26 +0,0 @@ -pushd . -New-Item -Force -Path c:\tmp -ItemType Directory -cd \tmp - -# Clone the repo; recursive is needed to pick up the submodule inside -git clone --depth 1 --branch 1.2.0 --recursive https://github.com/DataDog/libyajl2-gem libyajl2 -cd libyajl2 - -# Remove existing rake install, we don't need it and its version is too high -gem uninstall -x rake - -# We don't need the development_extras group, we're not running tests -bundle config set --local without 'development_extras' - -# Install dev dependencies - maybe --path should be used to do a local install, but unsure how this will affect the next commands -bundle install - -# Prepare the repo -rake prep -# Install the gem -gem build ./libyajl2.gemspec -gem install ./libyajl2-1.2.0.gem - -# Cleanup -popd -Remove-Item -Recurse -Force c:\tmp\libyajl2 \ No newline at end of file From d255f0cadcbc8a5d657119249f1baa9892f45a8e Mon Sep 17 00:00:00 2001 From: Seth Samuel Date: Fri, 6 Dec 2024 15:25:22 -0500 Subject: [PATCH 312/439] Query Aurora instances per cluster (#31846) --- pkg/databasemonitoring/aws/aurora.go | 77 ++++++++++--------- pkg/databasemonitoring/aws/aurora_test.go | 12 ++- ...nstances-per-cluster-8481d23d9e432e1a.yaml | 12 +++ 3 files changed, 63 insertions(+), 38 deletions(-) create mode 100644 releasenotes/notes/query-aurora-instances-per-cluster-8481d23d9e432e1a.yaml diff --git a/pkg/databasemonitoring/aws/aurora.go b/pkg/databasemonitoring/aws/aurora.go index 590de926ce977..6e5b25198b20d 100644 --- a/pkg/databasemonitoring/aws/aurora.go +++ b/pkg/databasemonitoring/aws/aurora.go @@ -45,45 +45,50 @@ func (c *Client) GetAuroraClusterEndpoints(ctx context.Context, dbClusterIdentif if len(dbClusterIdentifiers) == 0 { return nil, fmt.Errorf("at least one database cluster identifier is required") } - clusterInstances, err := c.client.DescribeDBInstances(ctx, - &rds.DescribeDBInstancesInput{ - Filters: []types.Filter{ - { - Name: aws.String("db-cluster-id"), - Values: dbClusterIdentifiers, - }, - }, - }) - if err != nil { - return nil, fmt.Errorf("error running GetAuroraClusterEndpoints %v", err) - } clusters := make(map[string]*AuroraCluster, 0) - for _, db := range clusterInstances.DBInstances { - if db.Endpoint != nil && db.DBClusterIdentifier != nil { - if db.Endpoint.Address == nil || db.DBInstanceStatus == nil || strings.ToLower(*db.DBInstanceStatus) != "available" { - continue - } - // Add to list of instances for the cluster - instance := &Instance{ - Endpoint: *db.Endpoint.Address, - } - // Set if IAM is configured for the endpoint - if db.IAMDatabaseAuthenticationEnabled != nil { - instance.IamEnabled = *db.IAMDatabaseAuthenticationEnabled - } - // Set the port, if it is known - if db.Endpoint.Port != nil { - instance.Port = *db.Endpoint.Port - } - if db.Engine != nil { - instance.Engine = *db.Engine - } - if _, ok := clusters[*db.DBClusterIdentifier]; !ok { - clusters[*db.DBClusterIdentifier] = &AuroraCluster{ - Instances: make([]*Instance, 0), + + for _, clusterID := range dbClusterIdentifiers { + // TODO: Seth Samuel: This method is not paginated, so if there are more than 100 instances in a cluster, we will only get the first 100 + // We should add pagination support to this method at some point + clusterInstances, err := c.client.DescribeDBInstances(ctx, + &rds.DescribeDBInstancesInput{ + Filters: []types.Filter{ + { + Name: aws.String("db-cluster-id"), + Values: []string{clusterID}, + }, + }, + }) + if err != nil { + return nil, fmt.Errorf("error running GetAuroraClusterEndpoints %v", err) + } + for _, db := range clusterInstances.DBInstances { + if db.Endpoint != nil && db.DBClusterIdentifier != nil { + if db.Endpoint.Address == nil || db.DBInstanceStatus == nil || strings.ToLower(*db.DBInstanceStatus) != "available" { + continue + } + // Add to list of instances for the cluster + instance := &Instance{ + Endpoint: *db.Endpoint.Address, + } + // Set if IAM is configured for the endpoint + if db.IAMDatabaseAuthenticationEnabled != nil { + instance.IamEnabled = *db.IAMDatabaseAuthenticationEnabled + } + // Set the port, if it is known + if db.Endpoint.Port != nil { + instance.Port = *db.Endpoint.Port + } + if db.Engine != nil { + instance.Engine = *db.Engine + } + if _, ok := clusters[*db.DBClusterIdentifier]; !ok { + clusters[*db.DBClusterIdentifier] = &AuroraCluster{ + Instances: make([]*Instance, 0), + } } + clusters[*db.DBClusterIdentifier].Instances = append(clusters[*db.DBClusterIdentifier].Instances, instance) } - clusters[*db.DBClusterIdentifier].Instances = append(clusters[*db.DBClusterIdentifier].Instances, instance) } } if len(clusters) == 0 { diff --git a/pkg/databasemonitoring/aws/aurora_test.go b/pkg/databasemonitoring/aws/aurora_test.go index 64869b7a1d4f6..4fd364ad3da49 100644 --- a/pkg/databasemonitoring/aws/aurora_test.go +++ b/pkg/databasemonitoring/aws/aurora_test.go @@ -211,7 +211,7 @@ func TestGetAuroraClusterEndpoints(t *testing.T) { { name: "multiple cluster ids returns single endpoint from API", configureClient: func(k *MockrdsService) { - k.EXPECT().DescribeDBInstances(gomock.Any(), createDescribeDBInstancesRequest([]string{"test-cluster", "test-cluster-2"})).Return(&rds.DescribeDBInstancesOutput{ + k.EXPECT().DescribeDBInstances(gomock.Any(), createDescribeDBInstancesRequest([]string{"test-cluster"})).Return(&rds.DescribeDBInstancesOutput{ DBInstances: []types.DBInstance{ { Endpoint: &types.Endpoint{ @@ -226,6 +226,9 @@ func TestGetAuroraClusterEndpoints(t *testing.T) { }, }, }, nil).Times(1) + k.EXPECT().DescribeDBInstances(gomock.Any(), createDescribeDBInstancesRequest([]string{"test-cluster-2"})).Return(&rds.DescribeDBInstancesOutput{ + DBInstances: []types.DBInstance{}, + }, nil).Times(1) }, clusterIDs: []string{"test-cluster", "test-cluster-2"}, expectedAuroraClusterEndpoints: map[string]*AuroraCluster{ @@ -244,7 +247,7 @@ func TestGetAuroraClusterEndpoints(t *testing.T) { { name: "multiple cluster ids returns many endpoints from API", configureClient: func(k *MockrdsService) { - k.EXPECT().DescribeDBInstances(gomock.Any(), createDescribeDBInstancesRequest([]string{"test-cluster", "test-cluster-2"})).Return(&rds.DescribeDBInstancesOutput{ + k.EXPECT().DescribeDBInstances(gomock.Any(), createDescribeDBInstancesRequest([]string{"test-cluster"})).Return(&rds.DescribeDBInstancesOutput{ DBInstances: []types.DBInstance{ { Endpoint: &types.Endpoint{ @@ -268,6 +271,11 @@ func TestGetAuroraClusterEndpoints(t *testing.T) { DBInstanceStatus: aws.String("available"), Engine: aws.String("aurora-postgresql"), }, + }, + }, nil).Times(1) + + k.EXPECT().DescribeDBInstances(gomock.Any(), createDescribeDBInstancesRequest([]string{"test-cluster-2"})).Return(&rds.DescribeDBInstancesOutput{ + DBInstances: []types.DBInstance{ { Endpoint: &types.Endpoint{ Address: aws.String("test-endpoint-3"), diff --git a/releasenotes/notes/query-aurora-instances-per-cluster-8481d23d9e432e1a.yaml b/releasenotes/notes/query-aurora-instances-per-cluster-8481d23d9e432e1a.yaml new file mode 100644 index 0000000000000..0bbafb416a868 --- /dev/null +++ b/releasenotes/notes/query-aurora-instances-per-cluster-8481d23d9e432e1a.yaml @@ -0,0 +1,12 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +enhancements: + - | + Query Aurora instances per cluster to allow up to 100 instances per cluster + rather than 100 instances total. From 6ae9f79ff1d0067e485fb16e607308931a7799e7 Mon Sep 17 00:00:00 2001 From: Branden Clark Date: Fri, 6 Dec 2024 15:52:34 -0500 Subject: [PATCH 313/439] Update CODEOWNERS (#31850) --- .github/CODEOWNERS | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 202c143c2da56..4f6fc8357ea4e 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -76,7 +76,7 @@ /.gitlab/deps_fetch/* @DataDog/agent-devx-infra /.gitlab/e2e/* @DataDog/agent-devx-infra @DataDog/agent-devx-loops /.gitlab/e2e_testing_deploy/* @DataDog/agent-devx-loops @DataDog/agent-devx-infra -/.gitlab/e2e_install_packages/* @DataDog/agent-delivery +/.gitlab/e2e_install_packages/* @DataDog/agent-delivery @DataDog/container-ecosystems /.gitlab/e2e_pre_test/* @DataDog/agent-devx-infra @DataDog/agent-devx-loops /.gitlab/kernel_matrix_testing/* @DataDog/agent-devx-infra @DataDog/ebpf-platform /.gitlab/lint/* @DataDog/agent-devx-infra @@ -131,13 +131,12 @@ /.gitlab/deps_build/ @DataDog/ebpf-platform @DataDog/agent-delivery @DataDog/windows-agent -/.gitlab/e2e_install_packages/windows.yml @DataDog/container-ecosystems @DataDog/agent-delivery @DataDog/windows-agent +/.gitlab/e2e_install_packages/windows.yml @DataDog/agent-delivery @DataDog/container-ecosystems @DataDog/windows-agent /.gitlab/common/ @DataDog/agent-devx-infra /.gitlab/common/test_infra_version.yml @DataDog/agent-devx-loops @DataDog/agent-devx-infra /.gitlab/e2e/e2e.yml @DataDog/container-integrations @DataDog/agent-devx-loops -/.gitlab/e2e_install_packages @DataDog/container-ecosystems @DataDog/agent-delivery /.gitlab/container_build/fakeintake.yml @DataDog/agent-e2e-testing @DataDog/agent-devx-loops /.gitlab/binary_build/fakeintake.yml @DataDog/agent-e2e-testing @DataDog/agent-devx-loops From 07187c133020064fafea30b3451a91b8a00e72cd Mon Sep 17 00:00:00 2001 From: Stanley Liu Date: Fri, 6 Dec 2024 16:16:24 -0500 Subject: [PATCH 314/439] Add apm_config.additional_endpoints to authorized config paths (#31851) --- comp/api/api/def/component.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/comp/api/api/def/component.go b/comp/api/api/def/component.go index 7bd2f7f716670..02c3aae88a231 100644 --- a/comp/api/api/def/component.go +++ b/comp/api/api/def/component.go @@ -48,7 +48,7 @@ type AuthorizedSet map[string]struct{} // config API. var AuthorizedConfigPathsCore = buildAuthorizedSet( "api_key", "site", "dd_url", "logs_config.dd_url", - "additional_endpoints", "logs_config.additional_endpoints", + "additional_endpoints", "logs_config.additional_endpoints", "apm_config.additional_endpoints", ) func buildAuthorizedSet(paths ...string) AuthorizedSet { From 00f8f5b1597ef887a062b8b2ecc3a18cc4be1e5e Mon Sep 17 00:00:00 2001 From: Adel Haj Hassan <41540817+adel121@users.noreply.github.com> Date: Sun, 8 Dec 2024 00:00:41 +0100 Subject: [PATCH 315/439] [CONTP-535] optimise tagger server chunking function by processing chunks in place (#31837) --- comp/core/tagger/server/README.md | 77 +++++++++++++++++++ comp/core/tagger/server/server.go | 27 ++++--- comp/core/tagger/server/util.go | 67 ++++++++++++---- .../core/tagger/server/util_benchmark_test.go | 48 ++++++++++++ comp/core/tagger/server/util_test.go | 75 ++++++++++++------ 5 files changed, 244 insertions(+), 50 deletions(-) create mode 100644 comp/core/tagger/server/README.md create mode 100644 comp/core/tagger/server/util_benchmark_test.go diff --git a/comp/core/tagger/server/README.md b/comp/core/tagger/server/README.md new file mode 100644 index 0000000000000..60e1c0cd90014 --- /dev/null +++ b/comp/core/tagger/server/README.md @@ -0,0 +1,77 @@ +## Introduction + +This package server implements a gRPC server that streams Tagger entities to remote tagger clients. + +## Behaviour + +When a client connects to the tagger grpc server, the server creates a subscription to the local tagger in order to stream tags. + +Before streaming new tag events, the server sends an initial burst to the client over the stream. This initial burst contains a snapshot of the tagger content. After the initial burst has been processed, the server will stream new tag events to the client based on the filters provided in the streaming request. + +### Cutting Events into chunks + +Sending very large messages over the grpc stream can cause the message to be dropped or rejected by the client. The limit is 4MB by default. + +To avoid such scenarios, especially when sending the initial burst, the server cuts each message into small chunks that can be easily transmitted over the stream. + +This logic is implemented in the `util.go` folder. + +We provide 2 implementations: +- `processChunksWithSplit`: splits an event slice into a small chunks where each chunk contains a contiguous slice of events. It then processes the generated chunks sequentially. This will load all chunks into memory (stored in a slice) and then return them. +- `processChunksInPlace`: this has a similar functionality as `processChunksWithSplit`, but it is more optimized in terms of memory and cpu because it processes chunks in place without any extra memory allocation. + +We keep both implementations for at least release candidate to ensure everything works well and be able to quickly revert in case of regressions. + +#### Benchmark Testing + +Benchmark tests show that using lazy chunking results in significant memory and cpu improvement: + +Go to `util_benchmark_test.go`: + +``` +// with processChunksFunc = processChunksWithSplit[int] +go test -bench BenchmarkProcessChunks -benchmem -count 6 -benchtime 100x > old.txt + +// with processChunksFunc = processChunksInPlace[int] +go test -bench BenchmarkProcessChunks -benchmem -count 6 -benchtime 100x > new.txt + +// Compare results +benchstat old.txt new.txt + +goos: linux +goarch: arm64 +pkg: github.com/DataDog/datadog-agent/comp/core/tagger/server + │ old.txt │ new.txt │ + │ sec/op │ sec/op vs base │ +ProcessChunks/100-items-10 2399.5n ± 47% 239.8n ± 4% -90.01% (p=0.002 n=6) +ProcessChunks/1000-items-10 35.072µ ± 13% 2.344µ ± 11% -93.32% (p=0.002 n=6) +ProcessChunks/10000-items-10 365.19µ ± 5% 22.56µ ± 18% -93.82% (p=0.002 n=6) +ProcessChunks/100000-items-10 3435.1µ ± 7% 222.5µ ± 16% -93.52% (p=0.002 n=6) +ProcessChunks/1000000-items-10 29.059m ± 9% 2.219m ± 31% -92.36% (p=0.002 n=6) +geomean 314.3µ 22.87µ -92.72% + + │ old.txt │ new.txt │ + │ B/op │ B/op vs base │ +ProcessChunks/100-items-10 2.969Ki ± 0% 0.000Ki ± 0% -100.00% (p=0.002 n=6) +ProcessChunks/1000-items-10 29.02Ki ± 0% 0.00Ki ± 0% -100.00% (p=0.002 n=6) +ProcessChunks/10000-items-10 370.7Ki ± 0% 0.0Ki ± 0% -100.00% (p=0.002 n=6) +ProcessChunks/100000-items-10 4.165Mi ± 0% 0.000Mi ± 0% -100.00% (p=0.002 n=6) +ProcessChunks/1000000-items-10 44.65Mi ± 0% 0.00Mi ± 0% -100.00% (p=0.002 n=6) +geomean 362.1Ki ? ¹ ² +¹ summaries must be >0 to compute geomean +² ratios must be >0 to compute geomean + + │ old.txt │ new.txt │ + │ allocs/op │ allocs/op vs base │ +ProcessChunks/100-items-10 81.00 ± 0% 0.00 ± 0% -100.00% (p=0.002 n=6) +ProcessChunks/1000-items-10 759.0 ± 0% 0.0 ± 0% -100.00% (p=0.002 n=6) +ProcessChunks/10000-items-10 7.514k ± 0% 0.000k ± 0% -100.00% (p=0.002 n=6) +ProcessChunks/100000-items-10 75.02k ± 0% 0.00k ± 0% -100.00% (p=0.002 n=6) +ProcessChunks/1000000-items-10 750.0k ± 0% 0.0k ± 0% -100.00% (p=0.002 n=6) +geomean 7.638k ? ¹ ² +¹ summaries must be >0 to compute geomean +² ratios must be >0 to compute geomean +``` + + + diff --git a/comp/core/tagger/server/server.go b/comp/core/tagger/server/server.go index 58c4ef2a0667c..5e323c43c7ee2 100644 --- a/comp/core/tagger/server/server.go +++ b/comp/core/tagger/server/server.go @@ -77,6 +77,15 @@ func (s *Server) TaggerStreamEntities(in *pb.StreamTagsRequest, out pb.AgentSecu ticker := time.NewTicker(streamKeepAliveInterval) defer ticker.Stop() + + sendFunc := func(chunk []*pb.StreamTagsEvent) error { + return grpc.DoWithTimeout(func() error { + return out.Send(&pb.StreamTagsResponse{ + Events: chunk, + }) + }, taggerStreamSendTimeout) + } + for { select { case events, ok := <-subscription.EventsChan(): @@ -98,20 +107,10 @@ func (s *Server) TaggerStreamEntities(in *pb.StreamTagsRequest, out pb.AgentSecu responseEvents = append(responseEvents, e) } - // Split events into chunks and send each one - chunks := splitEvents(responseEvents, s.maxEventSize) - for _, chunk := range chunks { - err = grpc.DoWithTimeout(func() error { - return out.Send(&pb.StreamTagsResponse{ - Events: chunk, - }) - }, taggerStreamSendTimeout) - - if err != nil { - log.Warnf("error sending tagger event: %s", err) - s.taggerComponent.GetTaggerTelemetryStore().ServerStreamErrors.Inc() - return err - } + if err := processChunksInPlace(responseEvents, s.maxEventSize, computeTagsEventInBytes, sendFunc); err != nil { + log.Warnf("error sending tagger event: %s", err) + s.taggerComponent.GetTaggerTelemetryStore().ServerStreamErrors.Inc() + return err } case <-out.Context().Done(): diff --git a/comp/core/tagger/server/util.go b/comp/core/tagger/server/util.go index 28fc2c54a1f3d..538c71b4dc05e 100644 --- a/comp/core/tagger/server/util.go +++ b/comp/core/tagger/server/util.go @@ -11,15 +11,44 @@ import ( pb "github.com/DataDog/datadog-agent/pkg/proto/pbgo/core" ) -// splitBySize splits the given slice into contiguous non-overlapping subslices such that -// the size of each sub-slice is at most maxChunkSize. -// The size of each item is calculated using computeSize +type sizeComputerFunc[T any] func(T) int + +type consumeChunkFunc[T any] func(T) error + +// computeProtoEventSize returns the size of a tags stream event in bytes +func computeTagsEventInBytes(event *pb.StreamTagsEvent) int { return proto.Size(event) } + +// processChunksInPlace splits the passed slice into contiguous chunks such that the total size of each chunk is at most maxChunkSize +// and applies the consume function to each of these chunks // -// This function assumes that the size of each single item of the initial slice is not larger than maxChunkSize -func splitBySize[T any](slice []T, maxChunkSize int, computeSize func(T) int) [][]T { +// The size of an item is computed with computeSize +// If an item has a size large than maxChunkSize, it is placed in a singleton chunk (chunk with one item) +// +// The consume function is applied to different chunks in-place, without any need extra memory allocation +func processChunksInPlace[T any](slice []T, maxChunkSize int, computeSize sizeComputerFunc[T], consume consumeChunkFunc[[]T]) error { + idx := 0 + for idx < len(slice) { + chunkSize := computeSize(slice[idx]) + j := idx + 1 + + for j < len(slice) { + eventSize := computeSize(slice[j]) + if chunkSize+eventSize > maxChunkSize { + break + } + chunkSize += eventSize + j++ + } + + if err := consume(slice[idx:j]); err != nil { + return err + } + idx = j + } + return nil +} - // TODO: return an iter.Seq[[]T] instead of [][]T once we upgrade to golang v1.23 - // returning iter.Seq[[]T] has better performance in terms of memory consumption +func splitBySize[T any](slice []T, maxChunkSize int, computeSize func(T) int) [][]T { var chunks [][]T currentChunk := []T{} currentSize := 0 @@ -40,11 +69,21 @@ func splitBySize[T any](slice []T, maxChunkSize int, computeSize func(T) int) [] return chunks } -// splitEvents splits the array of events to chunks with at most maxChunkSize each -func splitEvents(events []*pb.StreamTagsEvent, maxChunkSize int) [][]*pb.StreamTagsEvent { - return splitBySize( - events, - maxChunkSize, - func(event *pb.StreamTagsEvent) int { return proto.Size(event) }, - ) +// processChunksWithSplit splits the passed slice into contiguous chunks such that the total size of each chunk is at most maxChunkSize +// and then applies the consume function to each of these chunks +// +// The size of an item is computed with computeSize +// If an item has a size large than maxChunkSize, it is placed in a singleton chunk (chunk with one item) +// +// Prefer using processChunksInPlace for better CPU and memory performance. This implementation is only kept for benchmarking purposes. +func processChunksWithSplit[T any](slice []T, maxChunkSize int, computeSize sizeComputerFunc[T], consume consumeChunkFunc[[]T]) error { + chunks := splitBySize(slice, maxChunkSize, computeSize) + + for _, chunk := range chunks { + if err := consume(chunk); err != nil { + return err + } + } + + return nil } diff --git a/comp/core/tagger/server/util_benchmark_test.go b/comp/core/tagger/server/util_benchmark_test.go new file mode 100644 index 0000000000000..49ccd243d7365 --- /dev/null +++ b/comp/core/tagger/server/util_benchmark_test.go @@ -0,0 +1,48 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2024-present Datadog, Inc. + +package server + +import ( + "fmt" + "testing" +) + +var benchmarkSizes = []int{100, 1000, 10000, 100000, 1000000} + +const maxChunkSize = 4 +const mockItemSize = 1 + +var global []int + +func createBaseBenchmarkSlice(size int) []int { + var baseBenchmarkSlice = make([]int, size) + for i := range size { + baseBenchmarkSlice[i] = i + } + return baseBenchmarkSlice +} + +func mockComputeSize(int) int { return mockItemSize } + +func BenchmarkProcessChunks(b *testing.B) { + b.ReportAllocs() + for _, size := range benchmarkSizes { + b.Run(fmt.Sprintf("%d-items", size), func(b *testing.B) { + + // Point this to the implementation you want to benchmark + var processChunksFunc = processChunksInPlace[int] + + items := createBaseBenchmarkSlice(size) + var local []int + + b.ResetTimer() + for i := 0; i < b.N; i++ { + _ = processChunksFunc(items, maxChunkSize, mockComputeSize, func(t []int) error { local = t; return nil }) + } + global = local + }) + } +} diff --git a/comp/core/tagger/server/util_test.go b/comp/core/tagger/server/util_test.go index 76f94c4988630..7a8b979b30157 100644 --- a/comp/core/tagger/server/util_test.go +++ b/comp/core/tagger/server/util_test.go @@ -6,6 +6,7 @@ package server import ( + "reflect" "testing" "github.com/stretchr/testify/assert" @@ -16,18 +17,35 @@ type mockStreamTagsEvent struct { size int } -func TestSplitEvents(t *testing.T) { +var computeSize = func(e mockStreamTagsEvent) int { + return e.size +} + +func getConsumeFunc(slice *[][]int) consumeChunkFunc[[]mockStreamTagsEvent] { + return func(chunk []mockStreamTagsEvent) error { + ids := make([]int, 0, len(chunk)) + for _, item := range chunk { + ids = append(ids, item.id) + } + + *slice = append(*slice, ids) + return nil + } +} + +func Test(t *testing.T) { + testCases := []struct { name string events []mockStreamTagsEvent maxChunkSize int - expected [][]mockStreamTagsEvent // Expecting indices of events in chunks for easier comparison + expected [][]int // Expecting id's of events in chunks for easier comparison }{ { name: "Empty input", events: []mockStreamTagsEvent{}, maxChunkSize: 100, - expected: nil, // No chunks expected + expected: [][]int{}, }, { name: "Single event within chunk size", @@ -35,9 +53,9 @@ func TestSplitEvents(t *testing.T) { {id: 1, size: 50}, // Mock event with size 50 }, maxChunkSize: 100, - expected: [][]mockStreamTagsEvent{ + expected: [][]int{ { - {id: 1, size: 50}, // One chunk with one event + 1, // One chunk with one event }, }, }, @@ -47,9 +65,9 @@ func TestSplitEvents(t *testing.T) { {id: 1, size: 20}, {id: 2, size: 30}, {id: 3, size: 40}, // Total size = 90 }, maxChunkSize: 100, - expected: [][]mockStreamTagsEvent{ + expected: [][]int{ { - {id: 1, size: 20}, {id: 2, size: 30}, {id: 3, size: 40}, // All events fit in one chunk + 1, 2, 3, // All events fit in one chunk }, }, }, @@ -59,13 +77,12 @@ func TestSplitEvents(t *testing.T) { {id: 1, size: 40}, {id: 2, size: 50}, {id: 3, size: 60}, // Total size = 150 }, maxChunkSize: 100, - expected: [][]mockStreamTagsEvent{ + expected: [][]int{ { - {id: 1, size: 40}, - {id: 2, size: 50}, + 1, 2, }, { - {id: 3, size: 60}, + 3, }, // Last event in second chunk }, }, @@ -75,8 +92,8 @@ func TestSplitEvents(t *testing.T) { {id: 1, size: 50}, {id: 2, size: 50}, // Total size = 100 }, maxChunkSize: 100, - expected: [][]mockStreamTagsEvent{ - {{id: 1, size: 50}, {id: 2, size: 50}}, // Both events fit exactly in one chunk + expected: [][]int{ + {1, 2}, // Both events fit exactly in one chunk }, }, { @@ -85,21 +102,35 @@ func TestSplitEvents(t *testing.T) { {id: 1, size: 100}, {id: 2, size: 101}, // One exactly fits, one exceeds }, maxChunkSize: 100, - expected: [][]mockStreamTagsEvent{ - { - {id: 1, size: 100}, - }, - { - {id: 2, size: 101}, - }, + expected: [][]int{ + {1}, {2}, + }, + }, + { + name: "Multiple items exceeding max chunk size", + events: []mockStreamTagsEvent{ + {id: 1, size: 100}, {id: 2, size: 101}, {id: 3, size: 101}, + }, + maxChunkSize: 100, + expected: [][]int{ + {1}, {2}, {3}, }, }, } for _, testCase := range testCases { t.Run(testCase.name, func(t *testing.T) { - chunks := splitBySize(testCase.events, testCase.maxChunkSize, func(e mockStreamTagsEvent) int { return e.size }) - assert.Equal(t, testCase.expected, chunks) + slice := make([][]int, 0, len(testCase.expected)) + processChunksInPlace(testCase.events, testCase.maxChunkSize, computeSize, getConsumeFunc(&slice)) + if len(testCase.expected) > 0 || len(slice) > 0 { + assert.Truef(t, reflect.DeepEqual(testCase.expected, slice), "expected %v, found %v", testCase.expected, slice) + } + + slice = make([][]int, 0, len(testCase.expected)) + processChunksWithSplit(testCase.events, testCase.maxChunkSize, computeSize, getConsumeFunc(&slice)) + if len(testCase.expected) > 0 || len(slice) > 0 { + assert.Truef(t, reflect.DeepEqual(testCase.expected, slice), "expected %v, found %v", testCase.expected, slice) + } }) } } From b08c03dc0cfd3b7c05e3e1225e3a0549b97be712 Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Sun, 8 Dec 2024 13:04:03 +0100 Subject: [PATCH 316/439] pkg/languagedetection: extract mock function from privileged detector (#31860) Co-authored-by: Guy Arbitman --- .../privileged/privileged_detector.go | 8 ------ .../privileged_detector_testutil.go | 25 +++++++++++++++++++ 2 files changed, 25 insertions(+), 8 deletions(-) create mode 100644 pkg/languagedetection/privileged/privileged_detector_testutil.go diff --git a/pkg/languagedetection/privileged/privileged_detector.go b/pkg/languagedetection/privileged/privileged_detector.go index b6447ea310c14..2e09103a99aa8 100644 --- a/pkg/languagedetection/privileged/privileged_detector.go +++ b/pkg/languagedetection/privileged/privileged_detector.go @@ -18,7 +18,6 @@ import ( "strconv" "sync" "syscall" - "testing" "github.com/hashicorp/golang-lru/v2/simplelru" @@ -107,13 +106,6 @@ func (l *LanguageDetector) DetectWithPrivileges(procs []languagemodels.Process) return languages } -// MockPrivilegedDetectors is used in tests to inject mock tests. It should be called before `DetectWithPrivileges` -func MockPrivilegedDetectors(t *testing.T, newDetectors []languagemodels.Detector) { - oldDetectors := detectorsWithPrivilege - t.Cleanup(func() { detectorsWithPrivilege = oldDetectors }) - detectorsWithPrivilege = newDetectors -} - func (l *LanguageDetector) getBinID(process languagemodels.Process) (binaryID, error) { procPath := filepath.Join(l.hostProc, strconv.Itoa(int(process.GetPid()))) exePath := filepath.Join(procPath, "exe") diff --git a/pkg/languagedetection/privileged/privileged_detector_testutil.go b/pkg/languagedetection/privileged/privileged_detector_testutil.go new file mode 100644 index 0000000000000..1810dd8006164 --- /dev/null +++ b/pkg/languagedetection/privileged/privileged_detector_testutil.go @@ -0,0 +1,25 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2024-present Datadog, Inc. + +//go:build linux && test + +// Package privileged implements language detection that relies on elevated permissions. +// +// An example of privileged language detection would be binary analysis, where the binary must be +// inspected to determine the language it was compiled from. +package privileged + +import ( + "testing" + + "github.com/DataDog/datadog-agent/pkg/languagedetection/languagemodels" +) + +// MockPrivilegedDetectors is used in tests to inject mock tests. It should be called before `DetectWithPrivileges` +func MockPrivilegedDetectors(t *testing.T, newDetectors []languagemodels.Detector) { + oldDetectors := detectorsWithPrivilege + t.Cleanup(func() { detectorsWithPrivilege = oldDetectors }) + detectorsWithPrivilege = newDetectors +} From 512bca5b18e2481d0048924a3c4c6fbc2756704c Mon Sep 17 00:00:00 2001 From: Guy Arbitman Date: Sun, 8 Dec 2024 15:22:18 +0200 Subject: [PATCH 317/439] usm: Move helper function to its only usage (#31862) --- pkg/network/usm/sharedlibraries/watcher.go | 28 +++++++++++++++++++++- pkg/process/monitor/process_monitor.go | 26 -------------------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/pkg/network/usm/sharedlibraries/watcher.go b/pkg/network/usm/sharedlibraries/watcher.go index ca44117d63772..f23673fc6c24e 100644 --- a/pkg/network/usm/sharedlibraries/watcher.go +++ b/pkg/network/usm/sharedlibraries/watcher.go @@ -275,7 +275,7 @@ func (w *Watcher) Start() { return case <-processSync.C: processSet := w.registry.GetRegisteredProcesses() - deletedPids := monitor.FindDeletedProcesses(processSet) + deletedPids := findDeletedProcesses(processSet) for deletedPid := range deletedPids { _ = w.registry.Unregister(deletedPid) } @@ -290,3 +290,29 @@ func (w *Watcher) Start() { utils.AddAttacher(consts.USMModuleName, "native", w) } + +// findDeletedProcesses returns the terminated PIDs from the given map. +func findDeletedProcesses[V any](pids map[uint32]V) map[uint32]struct{} { + existingPids := make(map[uint32]struct{}, len(pids)) + + procIter := func(pid int) error { + if _, exists := pids[uint32(pid)]; exists { + existingPids[uint32(pid)] = struct{}{} + } + return nil + } + // Scanning already running processes + if err := kernel.WithAllProcs(kernel.ProcFSRoot(), procIter); err != nil { + return nil + } + + res := make(map[uint32]struct{}, len(pids)-len(existingPids)) + for pid := range pids { + if _, exists := existingPids[pid]; exists { + continue + } + res[pid] = struct{}{} + } + + return res +} diff --git a/pkg/process/monitor/process_monitor.go b/pkg/process/monitor/process_monitor.go index 1b9e30eb1ec84..8710aa63e324f 100644 --- a/pkg/process/monitor/process_monitor.go +++ b/pkg/process/monitor/process_monitor.go @@ -487,32 +487,6 @@ func (pm *ProcessMonitor) Stop() { pm.processExitCallbacksMutex.Unlock() } -// FindDeletedProcesses returns the terminated PIDs from the given map. -func FindDeletedProcesses[V any](pids map[uint32]V) map[uint32]struct{} { - existingPids := make(map[uint32]struct{}, len(pids)) - - procIter := func(pid int) error { - if _, exists := pids[uint32(pid)]; exists { - existingPids[uint32(pid)] = struct{}{} - } - return nil - } - // Scanning already running processes - if err := kernel.WithAllProcs(kernel.ProcFSRoot(), procIter); err != nil { - return nil - } - - res := make(map[uint32]struct{}, len(pids)-len(existingPids)) - for pid := range pids { - if _, exists := existingPids[pid]; exists { - continue - } - res[pid] = struct{}{} - } - - return res -} - // Event defines the event used by the process monitor type Event struct { Type model.EventType From b027f60e9e1129550c7ee0a272d22a75720f4a78 Mon Sep 17 00:00:00 2001 From: Nicolas Schweitzer Date: Mon, 9 Dec 2024 09:51:18 +0100 Subject: [PATCH 318/439] refactor(package_size): Move code to a python invoke task (#31578) --- .gitlab/JOBOWNERS | 1 + .gitlab/pkg_metrics/pkg_metrics.yml | 29 ++++ tasks/libs/common/git.py | 2 +- tasks/libs/package/size.py | 93 ++++++++++- tasks/libs/package/utils.py | 76 +++++++++ tasks/package.py | 46 ++--- tasks/unit_tests/package_lib_tests.py | 157 +++++++++++++++++- tasks/unit_tests/package_tests.py | 81 +++++++++ tasks/unit_tests/testdata/package_sizes.json | 44 +++++ .../testdata/package_sizes_real.json | 1 + .../packages/datadog-agent-7.aarch64.rpm | 0 .../packages/datadog-agent-7.x86_64.rpm | 0 .../packages/datadog-agent_7_arm64.deb | 0 .../packages/datadog-dogstatsd-7.x86_64.rpm | 0 .../packages/datadog-dogstatsd_7_amd64.deb | 0 .../packages/datadog-dogstatsd_7_arm64.deb | 0 .../packages/datadog-heroku-agent_7_amd64.deb | 0 .../packages/datadog-iot-agent-7.aarch64.rpm | 0 .../packages/datadog-iot-agent-7.x86_64.rpm | 0 .../packages/datadog-iot-agent_7_amd64.deb | 0 .../packages/datadog-iot-agent_7_arm64.deb | 0 21 files changed, 506 insertions(+), 24 deletions(-) create mode 100644 tasks/libs/package/utils.py create mode 100644 tasks/unit_tests/package_tests.py create mode 100644 tasks/unit_tests/testdata/package_sizes.json create mode 100644 tasks/unit_tests/testdata/package_sizes_real.json create mode 100644 tasks/unit_tests/testdata/packages/datadog-agent-7.aarch64.rpm create mode 100644 tasks/unit_tests/testdata/packages/datadog-agent-7.x86_64.rpm create mode 100644 tasks/unit_tests/testdata/packages/datadog-agent_7_arm64.deb create mode 100644 tasks/unit_tests/testdata/packages/datadog-dogstatsd-7.x86_64.rpm create mode 100644 tasks/unit_tests/testdata/packages/datadog-dogstatsd_7_amd64.deb create mode 100644 tasks/unit_tests/testdata/packages/datadog-dogstatsd_7_arm64.deb create mode 100644 tasks/unit_tests/testdata/packages/datadog-heroku-agent_7_amd64.deb create mode 100644 tasks/unit_tests/testdata/packages/datadog-iot-agent-7.aarch64.rpm create mode 100644 tasks/unit_tests/testdata/packages/datadog-iot-agent-7.x86_64.rpm create mode 100644 tasks/unit_tests/testdata/packages/datadog-iot-agent_7_amd64.deb create mode 100644 tasks/unit_tests/testdata/packages/datadog-iot-agent_7_arm64.deb diff --git a/.gitlab/JOBOWNERS b/.gitlab/JOBOWNERS index 9cf4e21fc84de..9cb87462dca48 100644 --- a/.gitlab/JOBOWNERS +++ b/.gitlab/JOBOWNERS @@ -67,6 +67,7 @@ iot_agent_suse* @DataDog/agent-delivery dogstatsd_suse* @DataDog/agent-delivery agent_oci* @DataDog/agent-delivery installer_oci* @DataDog/agent-delivery +new_check_pkg_size @DataDog/agent-delivery # Testing package deploy deploy_deb_testing* @DataDog/agent-delivery diff --git a/.gitlab/pkg_metrics/pkg_metrics.yml b/.gitlab/pkg_metrics/pkg_metrics.yml index bb62a727a570a..e8616c61247a2 100644 --- a/.gitlab/pkg_metrics/pkg_metrics.yml +++ b/.gitlab/pkg_metrics/pkg_metrics.yml @@ -179,3 +179,32 @@ check_pkg_size-arm64-a7: ["datadog-iot-agent"]="10000000" ["datadog-dogstatsd"]="10000000" ) + +new_check_pkg_size: + stage: pkg_metrics + image: registry.ddbuild.io/ci/datadog-agent-buildimages/deb_x64$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES + tags: ["arch:amd64"] + rules: + - !reference [.except_mergequeue] + - when: on_success + allow_failure: true + needs: + - agent_deb-x64-a7 + - iot_agent_deb-x64 + - dogstatsd_deb-x64 + - agent_heroku_deb-x64-a7 + - agent_rpm-x64-a7 + - iot_agent_rpm-x64 + - dogstatsd_rpm-x64 + - agent_suse-x64-a7 + - dogstatsd_suse-x64 + - iot_agent_suse-x64 + - agent_deb-arm64-a7 + - iot_agent_deb-arm64 + - dogstatsd_deb-arm64 + - agent_rpm-arm64-a7 + - iot_agent_rpm-arm64 + script: + - ls -l $OMNIBUS_PACKAGE_DIR + - ls -l $OMNIBUS_PACKAGE_DIR_SUSE + - inv package.check-size diff --git a/tasks/libs/common/git.py b/tasks/libs/common/git.py index 44f5c5a684cfa..dfff77eda03f7 100644 --- a/tasks/libs/common/git.py +++ b/tasks/libs/common/git.py @@ -117,7 +117,7 @@ def get_default_branch(major: int | None = None): def get_common_ancestor(ctx, branch, base=None) -> str: - base = base or get_default_branch() + base = base or f"origin/{get_default_branch()}" return ctx.run(f"git merge-base {branch} {base}", hide=True).stdout.strip() diff --git a/tasks/libs/package/size.py b/tasks/libs/package/size.py index 5f564c91837f2..cae0353453f7d 100644 --- a/tasks/libs/package/size.py +++ b/tasks/libs/package/size.py @@ -1,10 +1,15 @@ import os +import sys import tempfile from datetime import datetime -from tasks.libs.common.color import color_message +from invoke import Exit + +from tasks.libs.common.color import Color, color_message from tasks.libs.common.constants import ORIGIN_CATEGORY, ORIGIN_PRODUCT, ORIGIN_SERVICE +from tasks.libs.common.git import get_common_ancestor, get_current_branch, get_default_branch from tasks.libs.common.utils import get_metric_origin +from tasks.libs.package.utils import get_package_path DEBIAN_OS = "debian" CENTOS_OS = "centos" @@ -31,6 +36,26 @@ }, } +PACKAGE_SIZE_TEMPLATE = { + 'amd64': { + 'datadog-agent': {'deb': 140000000}, + 'datadog-iot-agent': {'deb': 10000000}, + 'datadog-dogstatsd': {'deb': 10000000}, + 'datadog-heroku-agent': {'deb': 70000000}, + }, + 'x86_64': { + 'datadog-agent': {'rpm': 140000000, 'suse': 140000000}, + 'datadog-iot-agent': {'rpm': 10000000, 'suse': 10000000}, + 'datadog-dogstatsd': {'rpm': 10000000, 'suse': 10000000}, + }, + 'arm64': { + 'datadog-agent': {'deb': 140000000}, + 'datadog-iot-agent': {'deb': 10000000}, + 'datadog-dogstatsd': {'deb': 10000000}, + }, + 'aarch64': {'datadog-agent': {'rpm': 140000000}, 'datadog-iot-agent': {'rpm': 10000000}}, +} + def extract_deb_package(ctx, package_path, extract_dir): ctx.run(f"dpkg -x {package_path} {extract_dir} > /dev/null") @@ -132,3 +157,69 @@ def compute_package_size_metrics( ) return series + + +def compare(ctx, package_sizes, arch, flavor, os_name, threshold): + """ + Compare (or update) a package size with the ancestor package size. + """ + mb = 1000000 + if os_name == 'suse': + dir = os.environ['OMNIBUS_PACKAGE_DIR_SUSE'] + path = f'{dir}/{flavor}-7*{arch}.rpm' + else: + dir = os.environ['OMNIBUS_PACKAGE_DIR'] + separator = '_' if os_name == 'deb' else '-' + path = f'{dir}/{flavor}{separator}7*{arch}.{os_name}' + package_size = _get_uncompressed_size(ctx, get_package_path(path), os_name) + branch = get_current_branch(ctx) + ancestor = get_common_ancestor(ctx, branch) + if branch == get_default_branch(): + package_sizes[ancestor][arch][flavor][os_name] = package_size + return + previous_size = get_previous_size(package_sizes, ancestor, arch, flavor, os_name) + diff = package_size - previous_size + + # For printing purposes + new_package_size_mb = package_size / mb + stable_package_size_mb = previous_size / mb + threshold_mb = threshold / mb + diff_mb = diff / mb + message = f"""{flavor}-{arch}-{os_name} size increase is OK: + New package size is {new_package_size_mb:.2f}MB + Ancestor package ({ancestor}) size is {stable_package_size_mb:.2f}MB + Diff is {diff_mb:.2f}MB (max allowed diff: {threshold_mb:.2f}MB)""" + + if diff > threshold: + print(color_message(message.replace('OK', 'too large'), Color.RED), file=sys.stderr) + raise Exit(code=1) + + print(message) + + +def get_previous_size(package_sizes, ancestor, arch, flavor, os_name): + """ + Get the size of the package for the given ancestor, or the earliest ancestor if the given ancestor is not found. + """ + if ancestor in package_sizes: + commit = ancestor + else: + commit = min(package_sizes, key=lambda x: package_sizes[x]['timestamp']) + return package_sizes[commit][arch][flavor][os_name] + + +def _get_uncompressed_size(ctx, package, os_name): + if os_name == 'deb': + return _get_deb_uncompressed_size(ctx, package) + else: + return _get_rpm_uncompressed_size(ctx, package) + + +def _get_deb_uncompressed_size(ctx, package): + # the size returned by dpkg is a number of bytes divided by 1024 + # so we multiply it back to get the same unit as RPM or stat + return int(ctx.run(f'dpkg-deb --info {package} | grep Installed-Size | cut -d : -f 2 | xargs').stdout) * 1024 + + +def _get_rpm_uncompressed_size(ctx, package): + return int(ctx.run(f'rpm -qip {package} | grep Size | cut -d : -f 2 | xargs').stdout) diff --git a/tasks/libs/package/utils.py b/tasks/libs/package/utils.py new file mode 100644 index 0000000000000..ba5448ad666c7 --- /dev/null +++ b/tasks/libs/package/utils.py @@ -0,0 +1,76 @@ +import glob +import json + +from invoke import Exit, UnexpectedExit + +from tasks.libs.common.color import color_message +from tasks.libs.notify.utils import AWS_S3_CP_CMD + +PACKAGE_SIZE_S3_CI_BUCKET_URL = "s3://dd-ci-artefacts-build-stable/datadog-agent/package_size" + + +def get_package_path(glob_pattern): + package_paths = glob.glob(glob_pattern) + if len(package_paths) > 1: + raise Exit(code=1, message=color_message(f"Too many files matching {glob_pattern}: {package_paths}", "red")) + elif len(package_paths) == 0: + raise Exit(code=1, message=color_message(f"Couldn't find any file matching {glob_pattern}", "red")) + + return package_paths[0] + + +def list_packages(template, parent=""): + """ + Recursively parse the template to generate the argument list for the compare task + """ + packs = [] + parent = parent if parent else [] + for key, value in template.items(): + if isinstance(value, dict): + packs += list_packages(value, parent + [key]) + else: + if key != "timestamp": + packs.append(parent + [key, value]) + return packs + + +def retrieve_package_sizes(ctx, package_size_file: str, distant: bool = True): + """ + Retrieve the stored document in aws s3, or create it + The content of the file is the following: + { + "c0ae34b1": { + "timestamp": "1582230020", + "amd64": { + "datadog-agent": { + "deb": 123456, + "rpm": 123456, + "suse": 123456}}} + """ + try: + if distant: + ctx.run( + f"{AWS_S3_CP_CMD} {PACKAGE_SIZE_S3_CI_BUCKET_URL}/{package_size_file} {package_size_file}", + hide=True, + ) + with open(package_size_file) as f: + package_sizes = json.load(f) + except UnexpectedExit as e: + if "404" in e.result.stderr: + package_sizes = {} + else: + raise e + return package_sizes + + +def upload_package_sizes(ctx, package_sizes: dict, package_size_file: str, distant: bool = True): + """ + Save the package_sizes dict to a file and upload it to the CI bucket + """ + with open(package_size_file, "w") as f: + json.dump(package_sizes, f) + if distant: + ctx.run( + f"{AWS_S3_CP_CMD} {package_size_file} {PACKAGE_SIZE_S3_CI_BUCKET_URL}/{package_size_file}", + hide="stdout", + ) diff --git a/tasks/package.py b/tasks/package.py index ee1dc1adabbf0..4e9a859ae8850 100644 --- a/tasks/package.py +++ b/tasks/package.py @@ -1,31 +1,37 @@ -import glob import os +from datetime import datetime from invoke import task from invoke.exceptions import Exit from tasks.libs.common.color import color_message -from tasks.libs.package.size import compute_package_size_metrics +from tasks.libs.common.git import get_common_ancestor, get_current_branch, get_default_branch +from tasks.libs.package.size import ( + PACKAGE_SIZE_TEMPLATE, + _get_deb_uncompressed_size, + _get_rpm_uncompressed_size, + compare, + compute_package_size_metrics, +) +from tasks.libs.package.utils import get_package_path, list_packages, retrieve_package_sizes, upload_package_sizes -def get_package_path(glob_pattern): - package_paths = glob.glob(glob_pattern) - if len(package_paths) > 1: - raise Exit(code=1, message=color_message(f"Too many files matching {glob_pattern}: {package_paths}", "red")) - elif len(package_paths) == 0: - raise Exit(code=1, message=color_message(f"Couldn't find any file matching {glob_pattern}", "red")) - - return package_paths[0] - - -def _get_deb_uncompressed_size(ctx, package): - # the size returned by dpkg is a number of bytes divided by 1024 - # so we multiply it back to get the same unit as RPM or stat - return int(ctx.run(f'dpkg-deb --info {package} | grep Installed-Size | cut -d : -f 2 | xargs').stdout) * 1024 - - -def _get_rpm_uncompressed_size(ctx, package): - return int(ctx.run(f'rpm -qip {package} | grep Size | cut -d : -f 2 | xargs').stdout) +@task +def check_size(ctx, filename: str = 'package_sizes.json', dry_run: bool = False): + package_sizes = retrieve_package_sizes(ctx, filename, distant=not dry_run) + if get_current_branch(ctx) == get_default_branch(): + # Initialize to default values + ancestor = get_common_ancestor(ctx, get_default_branch()) + if ancestor in package_sizes: + # The test already ran on this commit + return + package_sizes[ancestor] = PACKAGE_SIZE_TEMPLATE + package_sizes[ancestor]['timestamp'] = int(datetime.now().timestamp()) + # Check size of packages + for package_info in list_packages(PACKAGE_SIZE_TEMPLATE): + compare(ctx, package_sizes, *package_info) + if get_current_branch(ctx) == get_default_branch(): + upload_package_sizes(ctx, package_sizes, filename, distant=not dry_run) @task diff --git a/tasks/unit_tests/package_lib_tests.py b/tasks/unit_tests/package_lib_tests.py index ba637931b2ded..0ae56501c3439 100644 --- a/tasks/unit_tests/package_lib_tests.py +++ b/tasks/unit_tests/package_lib_tests.py @@ -1,9 +1,19 @@ +import json +import sys import unittest from unittest.mock import MagicMock, patch -from invoke import MockContext +from invoke import Exit, MockContext, Result -from tasks.libs.package.size import SCANNED_BINARIES, compute_package_size_metrics +from tasks.libs.package.size import ( + PACKAGE_SIZE_TEMPLATE, + SCANNED_BINARIES, + _get_uncompressed_size, + compare, + compute_package_size_metrics, + get_previous_size, +) +from tasks.libs.package.utils import list_packages class TestProduceSizeStats(unittest.TestCase): @@ -94,3 +104,146 @@ def test_compute_size_invalid_flavor(self): bucket_branch=test_branch, arch=test_arch, ) + + +class TestListPackages(unittest.TestCase): + def test_no_package(self): + template = {} + self.assertEqual(list_packages(template), []) + + def test_single_package(self): + template = {"key": "value"} + self.assertEqual(list_packages(template), [["key", "value"]]) + + def test_multiple_packages(self): + template = {"key": {"key2": 42}} + self.assertEqual(list_packages(template), [["key", "key2", 42]]) + + def test_ignore_timestamp_root(self): + template = {"key": {"key2": 42}, "timestamp": 1234567890} + self.assertEqual(list_packages(template), [["key", "key2", 42]]) + + def test_ignore_timestamp_nested(self): + template = {"key": {"key2": 42, "timestamp": 1234567890}} + self.assertEqual(list_packages(template), [["key", "key2", 42]]) + + +class TestGetPreviousSize(unittest.TestCase): + package_sizes = {} + + def setUp(self) -> None: + with open('tasks/unit_tests/testdata/package_sizes.json') as f: + self.package_sizes = json.load(f) + + def test_is_ancestor(self): + self.assertEqual(get_previous_size(self.package_sizes, "grand_ma", "artdeco", "cherry", 'fibula'), 42) + + def test_is_other_ancestor(self): + self.assertEqual(get_previous_size(self.package_sizes, "pa", "artdeco", "cherry", 'fibula'), 3) + + def test_is_not_ancestor(self): + self.assertEqual(get_previous_size(self.package_sizes, "grandPa", "artdeco", "cherry", 'fibula'), 42) + + +class TestGetUncompressedSize(unittest.TestCase): + def test_get_deb_uncompressed_size(self): + flavor = 'datadog-agent.deb' + c = MockContext(run={f"dpkg-deb --info {flavor} | grep Installed-Size | cut -d : -f 2 | xargs": Result(42)}) + self.assertEqual(_get_uncompressed_size(c, flavor, 'deb'), 43008) + + def test_get_rpm_uncompressed_size(self): + flavor = 'datadog-agent.rpm' + c = MockContext(run={f"rpm -qip {flavor} | grep Size | cut -d : -f 2 | xargs": Result(42)}) + self.assertEqual(_get_uncompressed_size(c, flavor, 'rpm'), 42) + + def test_get_suse_uncompressed_size(self): + flavor = 'datadog-agent.rpm' + c = MockContext(run={f"rpm -qip {flavor} | grep Size | cut -d : -f 2 | xargs": Result(69)}) + self.assertEqual(_get_uncompressed_size(c, flavor, 'suse'), 69) + + +class TestCompare(unittest.TestCase): + package_sizes = {} + pkg_root = 'tasks/unit_tests/testdata/packages' + + def setUp(self) -> None: + with open('tasks/unit_tests/testdata/package_sizes.json') as f: + self.package_sizes = json.load(f) + + @patch.dict('os.environ', {'OMNIBUS_PACKAGE_DIR': 'tasks/unit_tests/testdata/packages'}) + @patch('builtins.print') + def test_on_main(self, mock_print): + flavor, arch, os_name = 'datadog-heroku-agent', 'amd64', 'deb' + c = MockContext( + run={ + 'git rev-parse --abbrev-ref HEAD': Result('main'), + 'git merge-base main origin/main': Result('12345'), + f"dpkg-deb --info {self.pkg_root}/{flavor}_7_{arch}.{os_name} | grep Installed-Size | cut -d : -f 2 | xargs": Result( + 42 + ), + } + ) + self.package_sizes['12345'] = PACKAGE_SIZE_TEMPLATE + self.assertEqual(self.package_sizes['12345'][arch][flavor][os_name], 70000000) + compare(c, self.package_sizes, arch, flavor, os_name, 2001) + self.assertEqual(self.package_sizes['12345'][arch][flavor][os_name], 43008) + mock_print.assert_not_called() + + @patch.dict('os.environ', {'OMNIBUS_PACKAGE_DIR_SUSE': 'tasks/unit_tests/testdata/packages'}) + @patch('builtins.print') + def test_on_branch_ok(self, mock_print): + flavor, arch, os_name = 'datadog-agent', 'aarch64', 'suse' + c = MockContext( + run={ + 'git rev-parse --abbrev-ref HEAD': Result('pikachu'), + 'git merge-base pikachu origin/main': Result('25'), + f"rpm -qip {self.pkg_root}/{flavor}-7.{arch}.rpm | grep Size | cut -d : -f 2 | xargs": Result(69000000), + } + ) + compare(c, self.package_sizes, arch, flavor, os_name, 70000000) + mock_print.assert_called_with(f"""{flavor}-{arch}-{os_name} size increase is OK: + New package size is 69.00MB + Ancestor package (25) size is 68.00MB + Diff is 1.00MB (max allowed diff: 70.00MB)""") + + @patch.dict('os.environ', {'OMNIBUS_PACKAGE_DIR': 'tasks/unit_tests/testdata/packages'}) + @patch('builtins.print') + def test_on_branch_ok_rpm(self, mock_print): + flavor, arch, os_name = 'datadog-iot-agent', 'x86_64', 'rpm' + c = MockContext( + run={ + 'git rev-parse --abbrev-ref HEAD': Result('pikachu'), + 'git merge-base pikachu origin/main': Result('25'), + f"rpm -qip {self.pkg_root}/{flavor}-7.{arch}.{os_name} | grep Size | cut -d : -f 2 | xargs": Result( + 69000000 + ), + } + ) + compare(c, self.package_sizes, arch, flavor, os_name, 70000000) + mock_print.assert_called_with(f"""{flavor}-{arch}-{os_name} size increase is OK: + New package size is 69.00MB + Ancestor package (25) size is 78.00MB + Diff is -9.00MB (max allowed diff: 70.00MB)""") + + @patch.dict('os.environ', {'OMNIBUS_PACKAGE_DIR_SUSE': 'tasks/unit_tests/testdata/packages'}) + @patch('builtins.print') + def test_on_branch_ko(self, mock_print): + flavor, arch, os_name = 'datadog-agent', 'aarch64', 'suse' + c = MockContext( + run={ + 'git rev-parse --abbrev-ref HEAD': Result('pikachu'), + 'git merge-base pikachu origin/main': Result('25'), + f"rpm -qip {self.pkg_root}/{flavor}-7.{arch}.rpm | grep Size | cut -d : -f 2 | xargs": Result( + 139000000 + ), + } + ) + with self.assertRaises(Exit): + compare(c, self.package_sizes, arch, flavor, os_name, 70000000) + mock_print.assert_called_with( + """\x1b[91mdatadog-agent-aarch64-suse size increase is too large: + New package size is 139.00MB + Ancestor package (25) size is 68.00MB + Diff is 71.00MB (max allowed diff: 70.00MB)\x1b[0m""", + file=sys.stderr, + ) diff --git a/tasks/unit_tests/package_tests.py b/tasks/unit_tests/package_tests.py new file mode 100644 index 0000000000000..912c1ce53a912 --- /dev/null +++ b/tasks/unit_tests/package_tests.py @@ -0,0 +1,81 @@ +import json +import unittest +from unittest.mock import MagicMock, patch + +from invoke import Context, Exit, MockContext, Result + +from tasks.package import check_size + + +class TestCheckSize(unittest.TestCase): + @patch.dict( + 'os.environ', + { + 'OMNIBUS_PACKAGE_DIR': 'tasks/unit_tests/testdata/packages', + 'OMNIBUS_PACKAGE_DIR_SUSE': 'tasks/unit_tests/testdata/packages', + }, + ) + @patch('tasks.libs.package.size.get_package_path', new=MagicMock(return_value='datadog-agent')) + def test_dev_branch_ko(self): + flavor = 'datadog-agent' + c = MockContext( + run={ + 'git rev-parse --abbrev-ref HEAD': Result('pikachu'), + 'git merge-base pikachu origin/main': Result('25'), + f"dpkg-deb --info {flavor} | grep Installed-Size | cut -d : -f 2 | xargs": Result(42), + f"rpm -qip {flavor} | grep Size | cut -d : -f 2 | xargs": Result(69000000), + } + ) + with self.assertRaises(Exit): + check_size(c, filename='tasks/unit_tests/testdata/package_sizes_real.json', dry_run=True) + + @patch('builtins.print') + @patch.dict( + 'os.environ', + { + 'OMNIBUS_PACKAGE_DIR': 'tasks/unit_tests/testdata/packages', + 'OMNIBUS_PACKAGE_DIR_SUSE': 'tasks/unit_tests/testdata/packages', + }, + ) + @patch('tasks.libs.package.size.get_package_path', new=MagicMock(return_value='datadog-agent')) + def test_dev_branch_ok(self, print_mock): + flavor = 'datadog-agent' + c = MockContext( + run={ + 'git rev-parse --abbrev-ref HEAD': Result('pikachu'), + 'git merge-base pikachu origin/main': Result('25'), + f"dpkg-deb --info {flavor} | grep Installed-Size | cut -d : -f 2 | xargs": Result(42), + f"rpm -qip {flavor} | grep Size | cut -d : -f 2 | xargs": Result(20000000), + } + ) + check_size(c, filename='tasks/unit_tests/testdata/package_sizes_real.json', dry_run=True) + print_mock.assert_called() + self.assertEqual(print_mock.call_count, 15) + + @patch('builtins.print') + @patch.dict( + 'os.environ', + { + 'OMNIBUS_PACKAGE_DIR': 'tasks/unit_tests/testdata/packages', + 'OMNIBUS_PACKAGE_DIR_SUSE': 'tasks/unit_tests/testdata/packages', + }, + ) + @patch('tasks.libs.package.size.get_package_path', new=MagicMock(return_value='datadog-agent')) + def test_main_branch_ok(self, print_mock): + flavor = 'datadog-agent' + c = MockContext( + run={ + 'git rev-parse --abbrev-ref HEAD': Result('main'), + 'git merge-base main origin/main': Result('25'), + f"dpkg-deb --info {flavor} | grep Installed-Size | cut -d : -f 2 | xargs": Result(42), + f"rpm -qip {flavor} | grep Size | cut -d : -f 2 | xargs": Result(20000000), + } + ) + check_size(c, filename='tasks/unit_tests/testdata/package_sizes_real.json', dry_run=True) + with open('tasks/unit_tests/testdata/package_sizes_real.json') as f: + new_sizes = json.load(f) + self.assertIn('25', new_sizes) + self.assertEqual(new_sizes['25']['x86_64']['datadog-agent']['rpm'], 20000000) + self.assertEqual(new_sizes['25']['arm64']['datadog-iot-agent']['deb'], 43008) + ctx = Context() + ctx.run("git checkout -- tasks/unit_tests/testdata/package_sizes_real.json") diff --git a/tasks/unit_tests/testdata/package_sizes.json b/tasks/unit_tests/testdata/package_sizes.json new file mode 100644 index 0000000000000..2aade2e8320fa --- /dev/null +++ b/tasks/unit_tests/testdata/package_sizes.json @@ -0,0 +1,44 @@ +{ + "grand_ma": { + "timestamp": -810907200, + "artdeco": { + "cherry": { + "fibula" : 42, + "ulna" : 2 + }, + "apple": { + "patella" : 4 + } + } + }, + "ma": { + "timestamp": 159192000, + "gothic": { + "vanilla": { + "fabella" : 5 + } + } + }, + "pa": { + "timestamp": -14182940, + "artdeco": { + "cherry": { + "fibula" : 3, + "ulna" : 6 + } + } + }, + "25": { + "timestamp": 0, + "aarch64": { + "datadog-agent": { + "suse" : 68000000 + } + }, + "x86_64": { + "datadog-iot-agent": { + "rpm" : 78000000 + } + } + } +} diff --git a/tasks/unit_tests/testdata/package_sizes_real.json b/tasks/unit_tests/testdata/package_sizes_real.json new file mode 100644 index 0000000000000..e24ed4d2bc98d --- /dev/null +++ b/tasks/unit_tests/testdata/package_sizes_real.json @@ -0,0 +1 @@ +{"12345": {"timestamp": 1732804637, "amd64": {"datadog-agent": {"deb": 140000000}, "datadog-iot-agent": {"deb": 10000000}, "datadog-dogstatsd": {"deb": 10000000}, "datadog-heroku-agent": {"deb": 70000000}}, "x86_64": {"datadog-agent": {"rpm": 140000000, "suse": 140000000}, "datadog-iot-agent": {"rpm": 10000000, "suse": 10000000}, "datadog-dogstatsd": {"rpm": 10000000, "suse": 10000000}}, "arm64": {"datadog-agent": {"deb": 140000000}, "datadog-iot-agent": {"deb": 10000000}, "datadog-dogstatsd": {"deb": 10000000}}, "aarch64": {"datadog-agent": {"rpm": 140000000}, "datadog-iot-agent": {"rpm": 10000000}}}} \ No newline at end of file diff --git a/tasks/unit_tests/testdata/packages/datadog-agent-7.aarch64.rpm b/tasks/unit_tests/testdata/packages/datadog-agent-7.aarch64.rpm new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/tasks/unit_tests/testdata/packages/datadog-agent-7.x86_64.rpm b/tasks/unit_tests/testdata/packages/datadog-agent-7.x86_64.rpm new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/tasks/unit_tests/testdata/packages/datadog-agent_7_arm64.deb b/tasks/unit_tests/testdata/packages/datadog-agent_7_arm64.deb new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/tasks/unit_tests/testdata/packages/datadog-dogstatsd-7.x86_64.rpm b/tasks/unit_tests/testdata/packages/datadog-dogstatsd-7.x86_64.rpm new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/tasks/unit_tests/testdata/packages/datadog-dogstatsd_7_amd64.deb b/tasks/unit_tests/testdata/packages/datadog-dogstatsd_7_amd64.deb new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/tasks/unit_tests/testdata/packages/datadog-dogstatsd_7_arm64.deb b/tasks/unit_tests/testdata/packages/datadog-dogstatsd_7_arm64.deb new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/tasks/unit_tests/testdata/packages/datadog-heroku-agent_7_amd64.deb b/tasks/unit_tests/testdata/packages/datadog-heroku-agent_7_amd64.deb new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/tasks/unit_tests/testdata/packages/datadog-iot-agent-7.aarch64.rpm b/tasks/unit_tests/testdata/packages/datadog-iot-agent-7.aarch64.rpm new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/tasks/unit_tests/testdata/packages/datadog-iot-agent-7.x86_64.rpm b/tasks/unit_tests/testdata/packages/datadog-iot-agent-7.x86_64.rpm new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/tasks/unit_tests/testdata/packages/datadog-iot-agent_7_amd64.deb b/tasks/unit_tests/testdata/packages/datadog-iot-agent_7_amd64.deb new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/tasks/unit_tests/testdata/packages/datadog-iot-agent_7_arm64.deb b/tasks/unit_tests/testdata/packages/datadog-iot-agent_7_arm64.deb new file mode 100644 index 0000000000000..e69de29bb2d1d From 2491564a64949ebc3a9bdf2d1f273442f283da1a Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Mon, 9 Dec 2024 09:51:25 +0100 Subject: [PATCH 319/439] [CWS] small optimizations to regex parsing in SECL (#31792) --- pkg/security/secl/compiler/eval/strings.go | 4 +- .../secl/compiler/eval/strings_test.go | 38 ++++++++++++++----- 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/pkg/security/secl/compiler/eval/strings.go b/pkg/security/secl/compiler/eval/strings.go index 13b2a9a6491ab..751d86db6a015 100644 --- a/pkg/security/secl/compiler/eval/strings.go +++ b/pkg/security/secl/compiler/eval/strings.go @@ -123,7 +123,7 @@ type RegexpStringMatcher struct { re *regexp.Regexp } -var stringBigOrRe = regexp.MustCompile(`^\.\*\(([a-zA-Z_|]+)\)\.\*$`) +var stringBigOrRe = regexp.MustCompile(`^(?:\.\*)?\(([a-zA-Z_|]+)\)(?:\.\*)?$`) // Compile a regular expression based pattern func (r *RegexpStringMatcher) Compile(pattern string, caseInsensitive bool) error { @@ -135,7 +135,7 @@ func (r *RegexpStringMatcher) Compile(pattern string, caseInsensitive bool) erro } } - if caseInsensitive { + if caseInsensitive && !strings.HasPrefix(pattern, "(?i)") { pattern = "(?i)" + pattern } diff --git a/pkg/security/secl/compiler/eval/strings_test.go b/pkg/security/secl/compiler/eval/strings_test.go index 181864bac1bc8..a09be87afbc24 100644 --- a/pkg/security/secl/compiler/eval/strings_test.go +++ b/pkg/security/secl/compiler/eval/strings_test.go @@ -260,17 +260,35 @@ func TestRegexp(t *testing.T) { } func BenchmarkRegexpEvaluator(b *testing.B) { - pattern := ".*(restore|recovery|readme|instruction|how_to|ransom).*" + b.Run("with stars", func(b *testing.B) { + pattern := ".*(restore|recovery|readme|instruction|how_to|ransom).*" - var matcher RegexpStringMatcher - if err := matcher.Compile(pattern, false); err != nil { - b.Fatal(err) - } + var matcher RegexpStringMatcher + if err := matcher.Compile(pattern, false); err != nil { + b.Fatal(err) + } + + b.ResetTimer() + for i := 0; i < b.N; i++ { + if !matcher.Matches("123ransom456.txt") { + b.Fatal("unexpected result") + } + } + }) - b.ResetTimer() - for i := 0; i < b.N; i++ { - if !matcher.Matches("123ransom456.txt") { - b.Fatal("unexpected result") + b.Run("without stars", func(b *testing.B) { + pattern := "(restore|recovery|readme|instruction|how_to|ransom)" + + var matcher RegexpStringMatcher + if err := matcher.Compile(pattern, false); err != nil { + b.Fatal(err) + } + + b.ResetTimer() + for i := 0; i < b.N; i++ { + if !matcher.Matches("123ransom456.txt") { + b.Fatal("unexpected result") + } } - } + }) } From 88a8e04543920cb3e57b4bf22d477b9396c09456 Mon Sep 17 00:00:00 2001 From: "Duong (Yoon)" <47346352+DDuongNguyen@users.noreply.github.com> Date: Mon, 9 Dec 2024 04:40:54 -0500 Subject: [PATCH 320/439] [AMLII-2184] http1 and http2 regression cases (#31539) --- .../conf.d/disk-listener.d/conf.yaml | 5 +++ .../datadog-agent/datadog.yaml | 21 ++++++++++ .../experiment.yaml | 39 +++++++++++++++++++ .../lading/lading.yaml | 27 +++++++++++++ .../conf.d/disk-listener.d/conf.yaml | 5 +++ .../datadog-agent/datadog.yaml | 21 ++++++++++ .../experiment.yaml | 39 +++++++++++++++++++ .../lading/lading.yaml | 27 +++++++++++++ 8 files changed, 184 insertions(+) create mode 100644 test/regression/cases/file_to_blackhole_0ms_latency_http1/datadog-agent/conf.d/disk-listener.d/conf.yaml create mode 100644 test/regression/cases/file_to_blackhole_0ms_latency_http1/datadog-agent/datadog.yaml create mode 100644 test/regression/cases/file_to_blackhole_0ms_latency_http1/experiment.yaml create mode 100644 test/regression/cases/file_to_blackhole_0ms_latency_http1/lading/lading.yaml create mode 100644 test/regression/cases/file_to_blackhole_0ms_latency_http2/datadog-agent/conf.d/disk-listener.d/conf.yaml create mode 100644 test/regression/cases/file_to_blackhole_0ms_latency_http2/datadog-agent/datadog.yaml create mode 100644 test/regression/cases/file_to_blackhole_0ms_latency_http2/experiment.yaml create mode 100644 test/regression/cases/file_to_blackhole_0ms_latency_http2/lading/lading.yaml diff --git a/test/regression/cases/file_to_blackhole_0ms_latency_http1/datadog-agent/conf.d/disk-listener.d/conf.yaml b/test/regression/cases/file_to_blackhole_0ms_latency_http1/datadog-agent/conf.d/disk-listener.d/conf.yaml new file mode 100644 index 0000000000000..ec51a59de1c46 --- /dev/null +++ b/test/regression/cases/file_to_blackhole_0ms_latency_http1/datadog-agent/conf.d/disk-listener.d/conf.yaml @@ -0,0 +1,5 @@ +logs: + - type: file + path: "/smp-shared/*.log" + service: "my-service" + source: "my-client-app" diff --git a/test/regression/cases/file_to_blackhole_0ms_latency_http1/datadog-agent/datadog.yaml b/test/regression/cases/file_to_blackhole_0ms_latency_http1/datadog-agent/datadog.yaml new file mode 100644 index 0000000000000..667ce4d27223f --- /dev/null +++ b/test/regression/cases/file_to_blackhole_0ms_latency_http1/datadog-agent/datadog.yaml @@ -0,0 +1,21 @@ +auth_token_file_path: /tmp/agent-auth-token + +# Disable cloud detection. This stops the Agent from poking around the +# execution environment & network. This is particularly important if the target +# has network access. +cloud_provider_metadata: [] + +dd_url: http://127.0.0.1:9091 + +logs_enabled: true +logs_config: + logs_dd_url: 127.0.0.1:9092 + http_protocol: http1 + file_scan_period: 1 + logs_no_ssl: true + force_use_http: true + +process_config.process_dd_url: http://localhost:9093 + +telemetry.enabled: true +telemetry.checks: '*' diff --git a/test/regression/cases/file_to_blackhole_0ms_latency_http1/experiment.yaml b/test/regression/cases/file_to_blackhole_0ms_latency_http1/experiment.yaml new file mode 100644 index 0000000000000..c51505add2bb6 --- /dev/null +++ b/test/regression/cases/file_to_blackhole_0ms_latency_http1/experiment.yaml @@ -0,0 +1,39 @@ +optimization_goal: egress_throughput +erratic: false + +target: + name: datadog-agent + command: /bin/entrypoint.sh + cpu_allotment: 8 + memory_allotment: 1.5GiB + + environment: + DD_API_KEY: 00000001 + DD_HOSTNAME: smp-regression + + profiling_environment: + DD_INTERNAL_PROFILING_BLOCK_PROFILE_RATE: 10000 + DD_INTERNAL_PROFILING_CPU_DURATION: 1m + DD_INTERNAL_PROFILING_DELTA_PROFILES: true + DD_INTERNAL_PROFILING_ENABLED: true + DD_INTERNAL_PROFILING_ENABLE_GOROUTINE_STACKTRACES: true + DD_INTERNAL_PROFILING_MUTEX_PROFILE_FRACTION: 10 + DD_INTERNAL_PROFILING_PERIOD: 1m + DD_INTERNAL_PROFILING_UNIX_SOCKET: /var/run/datadog/apm.socket + DD_PROFILING_EXECUTION_TRACE_ENABLED: true + DD_PROFILING_EXECUTION_TRACE_PERIOD: 1m + DD_PROFILING_WAIT_PROFILE: true + +checks: + - name: memory_usage + description: "Memory usage" + bounds: + series: total_rss_bytes + # The machine has 12GiB free. + upper_bound: 1.2GiB + + - name: lost_bytes + description: "Available bytes not polled by log Agent" + bounds: + series: lost_bytes + upper_bound: 0KiB diff --git a/test/regression/cases/file_to_blackhole_0ms_latency_http1/lading/lading.yaml b/test/regression/cases/file_to_blackhole_0ms_latency_http1/lading/lading.yaml new file mode 100644 index 0000000000000..639cdb3b546aa --- /dev/null +++ b/test/regression/cases/file_to_blackhole_0ms_latency_http1/lading/lading.yaml @@ -0,0 +1,27 @@ +generator: + - file_gen: + logrotate_fs: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, + 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131] + load_profile: + constant: 10MB + concurrent_logs: 1 + maximum_bytes_per_log: 500MB + total_rotations: 5 + max_depth: 0 + variant: "ascii" + maximum_prebuild_cache_size_bytes: 300MB + mount_point: /smp-shared + +blackhole: + - http: + binding_addr: "127.0.0.1:9091" + - http: + binding_addr: "127.0.0.1:9092" + response_delay_millis: 0 + - http: + binding_addr: "127.0.0.1:9093" + +target_metrics: + - prometheus: + uri: "http://127.0.0.1:5000/telemetry" diff --git a/test/regression/cases/file_to_blackhole_0ms_latency_http2/datadog-agent/conf.d/disk-listener.d/conf.yaml b/test/regression/cases/file_to_blackhole_0ms_latency_http2/datadog-agent/conf.d/disk-listener.d/conf.yaml new file mode 100644 index 0000000000000..ec51a59de1c46 --- /dev/null +++ b/test/regression/cases/file_to_blackhole_0ms_latency_http2/datadog-agent/conf.d/disk-listener.d/conf.yaml @@ -0,0 +1,5 @@ +logs: + - type: file + path: "/smp-shared/*.log" + service: "my-service" + source: "my-client-app" diff --git a/test/regression/cases/file_to_blackhole_0ms_latency_http2/datadog-agent/datadog.yaml b/test/regression/cases/file_to_blackhole_0ms_latency_http2/datadog-agent/datadog.yaml new file mode 100644 index 0000000000000..efe55170e4dc9 --- /dev/null +++ b/test/regression/cases/file_to_blackhole_0ms_latency_http2/datadog-agent/datadog.yaml @@ -0,0 +1,21 @@ +auth_token_file_path: /tmp/agent-auth-token + +# Disable cloud detection. This stops the Agent from poking around the +# execution environment & network. This is particularly important if the target +# has network access. +cloud_provider_metadata: [] + +dd_url: http://127.0.0.1:9091 + +logs_enabled: true +logs_config: + logs_dd_url: 127.0.0.1:9092 + http_protocol: auto + file_scan_period: 1 + logs_no_ssl: true + force_use_http: true + +process_config.process_dd_url: http://localhost:9093 + +telemetry.enabled: true +telemetry.checks: '*' diff --git a/test/regression/cases/file_to_blackhole_0ms_latency_http2/experiment.yaml b/test/regression/cases/file_to_blackhole_0ms_latency_http2/experiment.yaml new file mode 100644 index 0000000000000..c51505add2bb6 --- /dev/null +++ b/test/regression/cases/file_to_blackhole_0ms_latency_http2/experiment.yaml @@ -0,0 +1,39 @@ +optimization_goal: egress_throughput +erratic: false + +target: + name: datadog-agent + command: /bin/entrypoint.sh + cpu_allotment: 8 + memory_allotment: 1.5GiB + + environment: + DD_API_KEY: 00000001 + DD_HOSTNAME: smp-regression + + profiling_environment: + DD_INTERNAL_PROFILING_BLOCK_PROFILE_RATE: 10000 + DD_INTERNAL_PROFILING_CPU_DURATION: 1m + DD_INTERNAL_PROFILING_DELTA_PROFILES: true + DD_INTERNAL_PROFILING_ENABLED: true + DD_INTERNAL_PROFILING_ENABLE_GOROUTINE_STACKTRACES: true + DD_INTERNAL_PROFILING_MUTEX_PROFILE_FRACTION: 10 + DD_INTERNAL_PROFILING_PERIOD: 1m + DD_INTERNAL_PROFILING_UNIX_SOCKET: /var/run/datadog/apm.socket + DD_PROFILING_EXECUTION_TRACE_ENABLED: true + DD_PROFILING_EXECUTION_TRACE_PERIOD: 1m + DD_PROFILING_WAIT_PROFILE: true + +checks: + - name: memory_usage + description: "Memory usage" + bounds: + series: total_rss_bytes + # The machine has 12GiB free. + upper_bound: 1.2GiB + + - name: lost_bytes + description: "Available bytes not polled by log Agent" + bounds: + series: lost_bytes + upper_bound: 0KiB diff --git a/test/regression/cases/file_to_blackhole_0ms_latency_http2/lading/lading.yaml b/test/regression/cases/file_to_blackhole_0ms_latency_http2/lading/lading.yaml new file mode 100644 index 0000000000000..639cdb3b546aa --- /dev/null +++ b/test/regression/cases/file_to_blackhole_0ms_latency_http2/lading/lading.yaml @@ -0,0 +1,27 @@ +generator: + - file_gen: + logrotate_fs: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, + 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131] + load_profile: + constant: 10MB + concurrent_logs: 1 + maximum_bytes_per_log: 500MB + total_rotations: 5 + max_depth: 0 + variant: "ascii" + maximum_prebuild_cache_size_bytes: 300MB + mount_point: /smp-shared + +blackhole: + - http: + binding_addr: "127.0.0.1:9091" + - http: + binding_addr: "127.0.0.1:9092" + response_delay_millis: 0 + - http: + binding_addr: "127.0.0.1:9093" + +target_metrics: + - prometheus: + uri: "http://127.0.0.1:5000/telemetry" From 5bbb3fc1b22a982f6d264f749b9c630579428179 Mon Sep 17 00:00:00 2001 From: Alexandre Yang Date: Mon, 9 Dec 2024 11:15:25 +0100 Subject: [PATCH 321/439] [HA Agent] e2e test for datadog.agent.ha_agent.running metric (#31835) --- test/new-e2e/tests/ha-agent/haagent_test.go | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/test/new-e2e/tests/ha-agent/haagent_test.go b/test/new-e2e/tests/ha-agent/haagent_test.go index bdf4e33790007..2dc700bec2be8 100644 --- a/test/new-e2e/tests/ha-agent/haagent_test.go +++ b/test/new-e2e/tests/ha-agent/haagent_test.go @@ -41,8 +41,9 @@ log_level: debug )) } -func (s *haAgentTestSuite) TestHaAgentGroupTagPresentOnDatadogAgentRunningMetric() { +func (s *haAgentTestSuite) TestHaAgentRunningMetrics() { fakeClient := s.Env().FakeIntake.Client() + s.EventuallyWithT(func(c *assert.CollectT) { s.T().Log("try assert datadog.agent.running metric") metrics, err := fakeClient.FilterMetrics("datadog.agent.running") @@ -57,6 +58,21 @@ func (s *haAgentTestSuite) TestHaAgentGroupTagPresentOnDatadogAgentRunningMetric require.NoError(c, err) assert.NotEmpty(c, metrics) }, 5*time.Minute, 3*time.Second) + + s.EventuallyWithT(func(c *assert.CollectT) { + s.T().Log("try assert datadog.agent.ha_agent.running metric") + metrics, err := fakeClient.FilterMetrics("datadog.agent.ha_agent.running") + require.NoError(c, err) + assert.NotEmpty(c, metrics) + for _, metric := range metrics { + s.T().Logf(" datadog.agent.ha_agent.running metric tags: %+v", metric.Tags) + } + + tags := []string{"agent_group:test-group01", "agent_state:unknown"} + metrics, err = fakeClient.FilterMetrics("datadog.agent.ha_agent.running", fakeintakeclient.WithTags[*aggregator.MetricSeries](tags)) + require.NoError(c, err) + assert.NotEmpty(c, metrics) + }, 5*time.Minute, 3*time.Second) } func (s *haAgentTestSuite) TestHaAgentAddedToRCListeners() { From 3bdaa27c2b3c3809831d167f453f092c4b00d3c9 Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Mon, 9 Dec 2024 11:17:40 +0100 Subject: [PATCH 322/439] add missing `test` build tag on testing utility files (#31859) --- comp/aggregator/diagnosesendermanager/component_mock.go | 2 ++ comp/snmptraps/oidresolver/oidresolverimpl/mock.go | 2 ++ pkg/network/protocols/amqp/server.go | 2 ++ pkg/network/protocols/mongo/server.go | 2 ++ pkg/network/protocols/mysql/server.go | 2 ++ pkg/network/protocols/redis/server.go | 3 +-- pkg/network/usm/monitor_testutil.go | 2 +- pkg/security/secl/rules/testutil.go | 2 ++ pkg/util/dmi/dmi_mock.go | 2 +- pkg/util/dmi/no_dmi_mock.go | 2 +- 10 files changed, 16 insertions(+), 5 deletions(-) diff --git a/comp/aggregator/diagnosesendermanager/component_mock.go b/comp/aggregator/diagnosesendermanager/component_mock.go index 73c87ebe6caee..1d1e2cd662b0b 100644 --- a/comp/aggregator/diagnosesendermanager/component_mock.go +++ b/comp/aggregator/diagnosesendermanager/component_mock.go @@ -3,6 +3,8 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2023-present Datadog, Inc. +//go:build test + // Package diagnosesendermanager defines the sender manager for the local diagnose check package diagnosesendermanager diff --git a/comp/snmptraps/oidresolver/oidresolverimpl/mock.go b/comp/snmptraps/oidresolver/oidresolverimpl/mock.go index 865e74fd56163..e9c259a876a08 100644 --- a/comp/snmptraps/oidresolver/oidresolverimpl/mock.go +++ b/comp/snmptraps/oidresolver/oidresolverimpl/mock.go @@ -3,6 +3,8 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2022-present Datadog, Inc. +//go:build test + package oidresolverimpl import ( diff --git a/pkg/network/protocols/amqp/server.go b/pkg/network/protocols/amqp/server.go index fd343ab5a29ae..31a2fd6286313 100644 --- a/pkg/network/protocols/amqp/server.go +++ b/pkg/network/protocols/amqp/server.go @@ -3,6 +3,8 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. +//go:build test + package amqp import ( diff --git a/pkg/network/protocols/mongo/server.go b/pkg/network/protocols/mongo/server.go index cc9bf63b55545..5537f67b6a588 100644 --- a/pkg/network/protocols/mongo/server.go +++ b/pkg/network/protocols/mongo/server.go @@ -3,6 +3,8 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. +//go:build test + package mongo import ( diff --git a/pkg/network/protocols/mysql/server.go b/pkg/network/protocols/mysql/server.go index 423ca963943e7..a152e704bd8fd 100644 --- a/pkg/network/protocols/mysql/server.go +++ b/pkg/network/protocols/mysql/server.go @@ -3,6 +3,8 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. +//go:build test + package mysql import ( diff --git a/pkg/network/protocols/redis/server.go b/pkg/network/protocols/redis/server.go index 58e645a42b3fd..3c5b4f6ed7b8d 100644 --- a/pkg/network/protocols/redis/server.go +++ b/pkg/network/protocols/redis/server.go @@ -3,10 +3,9 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -// Package redis provides a Redis client to interact with a Redis server. - //go:build test +// Package redis provides a Redis client to interact with a Redis server. package redis import ( diff --git a/pkg/network/usm/monitor_testutil.go b/pkg/network/usm/monitor_testutil.go index bbf01267af343..48f63271ed5ab 100644 --- a/pkg/network/usm/monitor_testutil.go +++ b/pkg/network/usm/monitor_testutil.go @@ -3,7 +3,7 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -//go:build linux_bpf +//go:build linux_bpf && test package usm diff --git a/pkg/security/secl/rules/testutil.go b/pkg/security/secl/rules/testutil.go index 2631662e7b2fe..aea0ab0779d96 100644 --- a/pkg/security/secl/rules/testutil.go +++ b/pkg/security/secl/rules/testutil.go @@ -3,6 +3,8 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. +//go:build test + // Package rules holds rules related files package rules diff --git a/pkg/util/dmi/dmi_mock.go b/pkg/util/dmi/dmi_mock.go index 5bdd5325248b2..fa838328ab9c1 100644 --- a/pkg/util/dmi/dmi_mock.go +++ b/pkg/util/dmi/dmi_mock.go @@ -3,7 +3,7 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -//go:build !windows && !serverless +//go:build !windows && !serverless && test package dmi diff --git a/pkg/util/dmi/no_dmi_mock.go b/pkg/util/dmi/no_dmi_mock.go index 947edcc79a393..a28da41a3becd 100644 --- a/pkg/util/dmi/no_dmi_mock.go +++ b/pkg/util/dmi/no_dmi_mock.go @@ -3,7 +3,7 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -//go:build windows || serverless +//go:build (windows || serverless) && test package dmi From feb37a10a39be0f721b150e2f8b0af019349b20e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9lian=20Raimbault?= <161456554+CelianR@users.noreply.github.com> Date: Mon, 9 Dec 2024 05:19:27 -0500 Subject: [PATCH 323/439] Fix pipeline cancel retries (#31869) --- tasks/libs/ciproviders/gitlab_api.py | 7 +++++++ tasks/libs/pipeline/tools.py | 4 ++-- tasks/pipeline.py | 7 ++++--- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/tasks/libs/ciproviders/gitlab_api.py b/tasks/libs/ciproviders/gitlab_api.py index 03ba1e58c8003..cb4e42644e7c6 100644 --- a/tasks/libs/ciproviders/gitlab_api.py +++ b/tasks/libs/ciproviders/gitlab_api.py @@ -119,6 +119,13 @@ def refresh_pipeline(pipeline: ProjectPipeline): pipeline.refresh() +@retry_function('cancel pipeline #{0.id}', retry_delay=5) +def cancel_pipeline(pipeline: ProjectPipeline): + """Cancels a pipeline, retries if there is an error.""" + + pipeline.cancel() + + class GitlabCIDiff: def __init__( self, diff --git a/tasks/libs/pipeline/tools.py b/tasks/libs/pipeline/tools.py index 2cab6a42d28b5..ce425eb700317 100644 --- a/tasks/libs/pipeline/tools.py +++ b/tasks/libs/pipeline/tools.py @@ -11,7 +11,7 @@ from gitlab.exceptions import GitlabJobPlayError from gitlab.v4.objects import Project, ProjectJob, ProjectPipeline -from tasks.libs.ciproviders.gitlab_api import refresh_pipeline +from tasks.libs.ciproviders.gitlab_api import cancel_pipeline, refresh_pipeline from tasks.libs.common.color import Color, color_message from tasks.libs.common.git import get_default_branch from tasks.libs.common.user_interactions import yes_no_question @@ -64,7 +64,7 @@ def cancel_pipelines_with_confirmation(repo: Project, pipelines: list[ProjectPip ) if yes_no_question("Do you want to cancel this pipeline?", color="orange", default=True): - pipeline.cancel() + cancel_pipeline(pipeline) print(f"Pipeline {color_message(pipeline.id, 'bold')} has been cancelled.\n") else: print(f"Pipeline {color_message(pipeline.id, 'bold')} will keep running.\n") diff --git a/tasks/pipeline.py b/tasks/pipeline.py index 8d63109fee536..bff7b05b8b1ab 100644 --- a/tasks/pipeline.py +++ b/tasks/pipeline.py @@ -13,6 +13,7 @@ from tasks.libs.ciproviders.github_api import GithubAPI from tasks.libs.ciproviders.gitlab_api import ( + cancel_pipeline, get_gitlab_bot_token, get_gitlab_repo, gitlab_configuration_is_modified, @@ -865,7 +866,7 @@ def test_merge_queue(ctx): # Clean up print("Cleaning up") if success: - pipeline.cancel() + cancel_pipeline(pipeline) pr.edit(state="closed") ctx.run(f"git checkout {current_branch}", hide=True) ctx.run(f"git branch -D {test_default}", hide=True) @@ -929,7 +930,7 @@ def compare_to_itself(ctx): if attempt == max_attempts - 1: # Clean up the branch and possible pipelines for pipeline in pipelines: - pipeline.cancel() + cancel_pipeline(pipeline) ctx.run(f"git checkout {current_branch}", hide=True) ctx.run(f"git branch -D {new_branch}", hide=True) ctx.run(f"git push origin :{new_branch}", hide=True) @@ -946,7 +947,7 @@ def compare_to_itself(ctx): # Clean up print("Cleaning up the pipelines") for pipeline in pipelines: - pipeline.cancel() + cancel_pipeline(pipeline) print("Cleaning up git") ctx.run(f"git checkout {current_branch}", hide=True) ctx.run(f"git branch -D {new_branch}", hide=True) From 61aa61b86ac48a41ab41ecb10b6d7d0f43b751af Mon Sep 17 00:00:00 2001 From: Gabriel Dos Santos <91925154+gabedos@users.noreply.github.com> Date: Mon, 9 Dec 2024 12:05:34 +0100 Subject: [PATCH 324/439] [bug] flake pod parse testing (#31871) --- .../collectors/util/kubernetes_resource_parsers/pod_test.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/comp/core/workloadmeta/collectors/util/kubernetes_resource_parsers/pod_test.go b/comp/core/workloadmeta/collectors/util/kubernetes_resource_parsers/pod_test.go index 2f5e8e0c941a0..5f604e3568220 100644 --- a/comp/core/workloadmeta/collectors/util/kubernetes_resource_parsers/pod_test.go +++ b/comp/core/workloadmeta/collectors/util/kubernetes_resource_parsers/pod_test.go @@ -8,6 +8,7 @@ package kubernetesresourceparsers import ( + "reflect" "testing" "github.com/stretchr/testify/assert" @@ -16,11 +17,9 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" - "github.com/DataDog/datadog-agent/pkg/util/testutil/flake" ) func TestPodParser_Parse(t *testing.T) { - flake.Mark(t) filterAnnotations := []string{"ignoreAnnotation"} parser, err := NewPodParser(filterAnnotations) @@ -126,5 +125,6 @@ func TestPodParser_Parse(t *testing.T) { QOSClass: "Guaranteed", } - assert.Equal(t, expected, parsed) + assert.True(t, reflect.DeepEqual(expected, parsed), + "Expected: %v, Actual: %v", expected, parsed) } From 92bf0e8cf9db418c17677fc235ea0f367cdc77d2 Mon Sep 17 00:00:00 2001 From: Nicolas Schweitzer Date: Mon, 9 Dec 2024 12:09:55 +0100 Subject: [PATCH 325/439] fix(assign_issue): Use the correct option name (#31867) --- .github/workflows/assign_issue.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/assign_issue.yml b/.github/workflows/assign_issue.yml index be9db6209604b..f752788cf64c8 100644 --- a/.github/workflows/assign_issue.yml +++ b/.github/workflows/assign_issue.yml @@ -27,4 +27,4 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - inv -e issue.assign-owner --issue ${{ github.event.issue.number }} + inv -e issue.assign-owner -i ${{ github.event.issue.number }} From 8619535c19ac43fe3a9b39b78dd3b92348d3ac4c Mon Sep 17 00:00:00 2001 From: Guy Arbitman Date: Mon, 9 Dec 2024 14:11:59 +0200 Subject: [PATCH 326/439] event monitor: tests: Allow setting cached hostname (#31863) --- pkg/ebpf/uprobes/attacher_test.go | 2 ++ pkg/eventmonitor/consumers/testutil/testutil.go | 4 +++- pkg/network/usm/monitor_tls_test.go | 2 ++ pkg/network/usm/sharedlibraries/watcher_test.go | 5 +++-- pkg/process/monitor/process_monitor_test.go | 2 ++ pkg/security/utils/hostname_testutil.go | 15 +++++++++++++++ 6 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 pkg/security/utils/hostname_testutil.go diff --git a/pkg/ebpf/uprobes/attacher_test.go b/pkg/ebpf/uprobes/attacher_test.go index abad66f8778f2..26428868c1d70 100644 --- a/pkg/ebpf/uprobes/attacher_test.go +++ b/pkg/ebpf/uprobes/attacher_test.go @@ -34,6 +34,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/network/usm/utils" "github.com/DataDog/datadog-agent/pkg/process/monitor" procmontestutil "github.com/DataDog/datadog-agent/pkg/process/monitor/testutil" + secutils "github.com/DataDog/datadog-agent/pkg/security/utils" "github.com/DataDog/datadog-agent/pkg/util/kernel" ) @@ -799,6 +800,7 @@ func launchProcessMonitor(t *testing.T, useEventStream bool) *monitor.ProcessMon t.Cleanup(pm.Stop) require.NoError(t, pm.Initialize(useEventStream)) if useEventStream { + secutils.SetCachedHostname("test-hostname") eventmonitortestutil.StartEventMonitor(t, procmontestutil.RegisterProcessMonitorEventConsumer) } diff --git a/pkg/eventmonitor/consumers/testutil/testutil.go b/pkg/eventmonitor/consumers/testutil/testutil.go index 4ed3b9fb2a1ea..871cf780b0089 100644 --- a/pkg/eventmonitor/consumers/testutil/testutil.go +++ b/pkg/eventmonitor/consumers/testutil/testutil.go @@ -15,8 +15,8 @@ import ( "github.com/DataDog/datadog-agent/pkg/eventmonitor" "github.com/DataDog/datadog-agent/pkg/eventmonitor/consumers" - eventtestutil "github.com/DataDog/datadog-agent/pkg/eventmonitor/testutil" + "github.com/DataDog/datadog-agent/pkg/security/utils" ) const defaultChanSize = 100 @@ -25,6 +25,8 @@ const defaultChanSize = 100 // created for testing. This function should be called in tests that require a ProcessConsumer. func NewTestProcessConsumer(t *testing.T) *consumers.ProcessConsumer { var pc *consumers.ProcessConsumer + // Set fake hostname to avoid fetching it from the core agent. + utils.SetCachedHostname("test-hostname") eventtestutil.StartEventMonitor(t, func(t *testing.T, evm *eventmonitor.EventMonitor) { var err error eventTypes := []consumers.ProcessConsumerEventTypes{consumers.ExecEventType, consumers.ExitEventType} diff --git a/pkg/network/usm/monitor_tls_test.go b/pkg/network/usm/monitor_tls_test.go index a4fd5924bd630..322f9be425da4 100644 --- a/pkg/network/usm/monitor_tls_test.go +++ b/pkg/network/usm/monitor_tls_test.go @@ -45,6 +45,7 @@ import ( usmtestutil "github.com/DataDog/datadog-agent/pkg/network/usm/testutil" "github.com/DataDog/datadog-agent/pkg/network/usm/utils" procmontestutil "github.com/DataDog/datadog-agent/pkg/process/monitor/testutil" + secutils "github.com/DataDog/datadog-agent/pkg/security/utils" globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" dockerutils "github.com/DataDog/datadog-agent/pkg/util/testutil/docker" ) @@ -869,6 +870,7 @@ func setupUSMTLSMonitor(t *testing.T, cfg *config.Config) *Monitor { require.NoError(t, err) require.NoError(t, usmMonitor.Start()) if cfg.EnableUSMEventStream && usmconfig.NeedProcessMonitor(cfg) { + secutils.SetCachedHostname("test-hostname") eventmonitortestutil.StartEventMonitor(t, procmontestutil.RegisterProcessMonitorEventConsumer) } t.Cleanup(usmMonitor.Stop) diff --git a/pkg/network/usm/sharedlibraries/watcher_test.go b/pkg/network/usm/sharedlibraries/watcher_test.go index ec8eddb5f8edf..ca401e180fc50 100644 --- a/pkg/network/usm/sharedlibraries/watcher_test.go +++ b/pkg/network/usm/sharedlibraries/watcher_test.go @@ -21,9 +21,8 @@ import ( "time" "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/suite" - "github.com/stretchr/testify/require" + "github.com/stretchr/testify/suite" "github.com/DataDog/datadog-agent/pkg/ebpf/ebpftest" "github.com/DataDog/datadog-agent/pkg/ebpf/prebuilt" @@ -33,6 +32,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/network/usm/utils" "github.com/DataDog/datadog-agent/pkg/process/monitor" procmontestutil "github.com/DataDog/datadog-agent/pkg/process/monitor/testutil" + secutils "github.com/DataDog/datadog-agent/pkg/security/utils" "github.com/DataDog/datadog-agent/pkg/util/kernel" "github.com/DataDog/datadog-agent/pkg/util/log" ) @@ -42,6 +42,7 @@ func launchProcessMonitor(t *testing.T, useEventStream bool) { t.Cleanup(pm.Stop) require.NoError(t, pm.Initialize(useEventStream)) if useEventStream { + secutils.SetCachedHostname("test-hostname") eventmonitortestutil.StartEventMonitor(t, procmontestutil.RegisterProcessMonitorEventConsumer) } } diff --git a/pkg/process/monitor/process_monitor_test.go b/pkg/process/monitor/process_monitor_test.go index b6cc085089e74..0fe9e80bd21cb 100644 --- a/pkg/process/monitor/process_monitor_test.go +++ b/pkg/process/monitor/process_monitor_test.go @@ -22,6 +22,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/eventmonitor" eventmonitortestutil "github.com/DataDog/datadog-agent/pkg/eventmonitor/testutil" "github.com/DataDog/datadog-agent/pkg/network/protocols/telemetry" + "github.com/DataDog/datadog-agent/pkg/security/utils" "github.com/DataDog/datadog-agent/pkg/util" "github.com/DataDog/datadog-agent/pkg/util/kernel" "github.com/DataDog/datadog-agent/pkg/util/log" @@ -55,6 +56,7 @@ func waitForProcessMonitor(t *testing.T, pm *ProcessMonitor) { func initializePM(t *testing.T, pm *ProcessMonitor, useEventStream bool) { require.NoError(t, pm.Initialize(useEventStream)) if useEventStream { + utils.SetCachedHostname("test-hostname") eventmonitortestutil.StartEventMonitor(t, func(t *testing.T, evm *eventmonitor.EventMonitor) { // Can't use the implementation in procmontestutil due to import cycles procmonconsumer, err := NewProcessMonitorEventConsumer(evm) diff --git a/pkg/security/utils/hostname_testutil.go b/pkg/security/utils/hostname_testutil.go new file mode 100644 index 0000000000000..e8b180e1665b6 --- /dev/null +++ b/pkg/security/utils/hostname_testutil.go @@ -0,0 +1,15 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2024-present Datadog, Inc. + +//go:build test + +package utils + +// SetCachedHostname test utility to set the cached hostname, to avoid fetching it from the core agent. +func SetCachedHostname(name string) { + hostnameLock.Lock() + cachedHostname = name + hostnameLock.Unlock() +} From 09ef14cb519acddee4102017b9b8c911dd067fcb Mon Sep 17 00:00:00 2001 From: maxime mouial Date: Mon, 9 Dec 2024 14:19:17 +0100 Subject: [PATCH 327/439] Fix diff around default and known settings (#31658) --- pkg/config/model/viper.go | 2 +- pkg/config/nodetreemodel/config.go | 80 +++++++++++++------ pkg/config/nodetreemodel/config_test.go | 14 +++- pkg/config/nodetreemodel/getter.go | 51 +++++++++++- pkg/config/nodetreemodel/getter_test.go | 24 +++++- pkg/config/nodetreemodel/read_config_file.go | 37 ++++++--- .../nodetreemodel/read_config_file_test.go | 2 +- pkg/config/setup/config.go | 11 ++- pkg/config/setup/config_test.go | 7 +- pkg/config/teeconfig/teeconfig.go | 80 ++++++++++--------- 10 files changed, 214 insertions(+), 94 deletions(-) diff --git a/pkg/config/model/viper.go b/pkg/config/model/viper.go index eeb4b65492e70..5742b4c06520b 100644 --- a/pkg/config/model/viper.go +++ b/pkg/config/model/viper.go @@ -852,7 +852,7 @@ func (c *safeConfig) GetProxies() *Proxy { if c.Viper.GetBool("fips.enabled") { return nil } - if !c.Viper.IsSet("proxy.http") && !c.Viper.IsSet("proxy.https") && !c.Viper.IsSet("proxy.no_proxy") { + if c.Viper.GetString("proxy.http") == "" && c.Viper.GetString("proxy.https") == "" && len(c.Viper.GetStringSlice("proxy.no_proxy")) == 0 { return nil } p := &Proxy{ diff --git a/pkg/config/nodetreemodel/config.go b/pkg/config/nodetreemodel/config.go index 9e293bb9a7592..3d09ddc016eba 100644 --- a/pkg/config/nodetreemodel/config.go +++ b/pkg/config/nodetreemodel/config.go @@ -51,6 +51,18 @@ type ntmConfig struct { // Bellow are all the different configuration layers. Each layers represents a source for our configuration. // They are merge into the 'root' tree following order of importance (see pkg/model/viper.go:sourcesPriority). + // schema holds all the settings with or without value. Settings are added to the schema through BindEnv and + // SetDefault. + // + // This solved the difference between 'AllKeysLowercased' which returns the configuration schema and + // 'AllSettings' which only returns settings with a value. + // + // A setting register with BindEnv without default might not have a value depending on the environment. Such + // settings are part of the schema but won't appear in the configuration (through Get, AllSettings, ...). This + // mimic the behavior from Viper. Once we enfore a default value for all settings we will be able to merge + // 'schema' and 'defaults' fields. + schema InnerNode + // defaults contains the settings with a default value defaults InnerNode // unknown contains the settings set at runtime from unknown source. This should only evey be used by tests. @@ -131,11 +143,11 @@ func (c *ntmConfig) OnUpdate(callback model.NotificationReceiver) { c.notificationReceivers = append(c.notificationReceivers, callback) } -func (c *ntmConfig) setDefault(key string, value interface{}) { +func (c *ntmConfig) addToSchema(key string, source model.Source) { parts := splitKey(key) - // TODO: Ensure that for default tree, setting nil to a node will not override - // an existing value - _, _ = c.defaults.SetAt(parts, value, model.SourceDefault) + _, _ = c.schema.SetAt(parts, nil, source) + + c.addToKnownKeys(key) } func (c *ntmConfig) getTreeBySource(source model.Source) (InnerNode, error) { @@ -179,7 +191,7 @@ func (c *ntmConfig) Set(key string, newValue interface{}, source model.Source) { key = strings.ToLower(key) c.Lock() - previousValue := c.leafAtPath(key).Get() + previousValue := c.leafAtPathFromNode(key, c.root).Get() parts := splitKey(key) @@ -221,8 +233,12 @@ func (c *ntmConfig) SetDefault(key string, value interface{}) { panic("cannot SetDefault() once the config has been marked as ready for use") } key = strings.ToLower(key) - c.knownKeys[key] = struct{}{} - c.setDefault(key, value) + c.addToSchema(key, model.SourceDefault) + + parts := splitKey(key) + // TODO: Ensure that for default tree, setting nil to a node will not override + // an existing value + _, _ = c.defaults.SetAt(parts, value, model.SourceDefault) } // UnsetForSource unsets a config entry for a given source @@ -232,7 +248,19 @@ func (c *ntmConfig) UnsetForSource(_key string, _source model.Source) { c.Unlock() } -// SetKnown adds a key to the set of known valid config keys +func (c *ntmConfig) addToKnownKeys(key string) { + base := "" + keyParts := splitKey(key) + for _, part := range keyParts { + base = joinKey(base, part) + c.knownKeys[base] = struct{}{} + } +} + +// SetKnown adds a key to the set of known valid config keys. +// +// Important: this doesn't add the key to the schema. The "known keys" are a legacy feature we inherited from our Viper +// wrapper. Once all settings have a default we'll be able to remove this concept entirely. func (c *ntmConfig) SetKnown(key string) { c.Lock() defer c.Unlock() @@ -240,8 +268,7 @@ func (c *ntmConfig) SetKnown(key string) { panic("cannot SetKnown() once the config has been marked as ready for use") } - key = strings.ToLower(key) - c.knownKeys[key] = struct{}{} + c.addToKnownKeys(key) } // IsKnown returns whether a key is known @@ -273,6 +300,7 @@ func (c *ntmConfig) checkKnownKey(key string) { } func (c *ntmConfig) mergeAllLayers() error { + // We intentionally don't merge the schema layer as it hold no values treeList := []InnerNode{ c.defaults, c.unknown, @@ -324,7 +352,7 @@ func (c *ntmConfig) BuildSchema() { if err := c.mergeAllLayers(); err != nil { c.warnings = append(c.warnings, err.Error()) } - c.allSettings = computeAllSettings(c.defaults, "") + c.allSettings = computeAllSettings(c.schema, "") } // Stringify stringifies the config, but only with the test build tag @@ -409,7 +437,21 @@ func (c *ntmConfig) IsSet(key string) bool { c.RLock() defer c.RUnlock() - return c.IsKnown(key) + if !c.isReady() { + log.Errorf("attempt to read key before config is constructed: %s", key) + return false + } + + pathParts := splitKey(key) + var curr Node = c.root + for _, part := range pathParts { + next, err := curr.GetChild(part) + if err != nil { + return false + } + curr = next + } + return true } // AllKeysLowercased returns all keys lower-cased from the default tree, but not keys that are merely marked as known @@ -420,16 +462,7 @@ func (c *ntmConfig) AllKeysLowercased() []string { return slices.Clone(c.allSettings) } -func (c *ntmConfig) leafAtPath(key string) LeafNode { - return c.leafAtPathFromNode(key, c.root) -} - func (c *ntmConfig) leafAtPathFromNode(key string, curr Node) LeafNode { - if !c.isReady() { - log.Errorf("attempt to read key before config is constructed: %s", key) - return missingLeaf - } - pathParts := splitKey(key) for _, part := range pathParts { next, err := curr.GetChild(part) @@ -496,8 +529,7 @@ func (c *ntmConfig) BindEnv(key string, envvars ...string) { c.configEnvVars[envvar] = key } - c.knownKeys[key] = struct{}{} - c.setDefault(key, nil) + c.addToSchema(key, model.SourceEnvVar) } // SetEnvKeyReplacer binds a replacer function for keys @@ -706,6 +738,7 @@ func NewConfig(name string, envPrefix string, envKeyReplacer *strings.Replacer) knownKeys: map[string]struct{}{}, allSettings: []string{}, unknownKeys: map[string]struct{}{}, + schema: newInnerNode(nil), defaults: newInnerNode(nil), file: newInnerNode(nil), unknown: newInnerNode(nil), @@ -716,6 +749,7 @@ func NewConfig(name string, envPrefix string, envKeyReplacer *strings.Replacer) fleetPolicies: newInnerNode(nil), cli: newInnerNode(nil), envTransform: make(map[string]func(string) interface{}), + configName: "datadog", } config.SetConfigName(name) diff --git a/pkg/config/nodetreemodel/config_test.go b/pkg/config/nodetreemodel/config_test.go index c9f87747e2345..dfba602113411 100644 --- a/pkg/config/nodetreemodel/config_test.go +++ b/pkg/config/nodetreemodel/config_test.go @@ -64,13 +64,13 @@ secret_backend_command: ./my_secret_fetcher.sh { description: "nested setting from env var works", setting: "network_path.collector.input_chan_size", - expectValue: "23456", + expectValue: 23456, expectSource: model.SourceEnvVar, }, { description: "top-level setting from env var works", setting: "secret_backend_timeout", - expectValue: "60", // TODO: cfg.Get returns string because this is an env var + expectValue: 60, expectSource: model.SourceEnvVar, }, { @@ -326,13 +326,21 @@ func TestIsSet(t *testing.T) { cfg := NewConfig("test", "TEST", nil) cfg.SetDefault("a", 0) cfg.SetDefault("b", 0) + cfg.SetKnown("c") cfg.BuildSchema() cfg.Set("b", 123, model.SourceAgentRuntime) - assert.True(t, cfg.IsSet("b")) assert.True(t, cfg.IsSet("a")) + assert.True(t, cfg.IsSet("b")) + assert.False(t, cfg.IsSet("c")) + + assert.True(t, cfg.IsKnown("a")) + assert.True(t, cfg.IsKnown("b")) + assert.True(t, cfg.IsKnown("c")) + assert.False(t, cfg.IsSet("unknown")) + assert.False(t, cfg.IsKnown("unknown")) } func TestAllKeysLowercased(t *testing.T) { diff --git a/pkg/config/nodetreemodel/getter.go b/pkg/config/nodetreemodel/getter.go index 454bbe2b885aa..450271f001f95 100644 --- a/pkg/config/nodetreemodel/getter.go +++ b/pkg/config/nodetreemodel/getter.go @@ -16,6 +16,15 @@ import ( "golang.org/x/exp/slices" ) +func (c *ntmConfig) leafAtPath(key string) LeafNode { + if !c.isReady() { + log.Errorf("attempt to read key before config is constructed: %s", key) + return missingLeaf + } + + return c.leafAtPathFromNode(key, c.root) +} + // GetKnownKeysLowercased returns all the keys that meet at least one of these criteria: // 1) have a default, 2) have an environment variable binded or 3) have been SetKnown() // Note that it returns the keys lowercased. @@ -71,16 +80,50 @@ func (c *ntmConfig) GetProxies() *model.Proxy { return c.proxies } +func (c *ntmConfig) inferTypeFromDefault(key string, value interface{}) (interface{}, error) { + // Viper infer the type from the default value for Get. This reproduce the same behavior. + // Once all settings have a default value we could move this logic where we load data into the config rather + // than out. + defaultNode := c.leafAtPathFromNode(key, c.defaults) + if defaultNode != missingLeaf { + switch defaultNode.Get().(type) { + case bool: + return cast.ToBoolE(value) + case string: + return cast.ToStringE(value) + case int32, int16, int8, int: + return cast.ToIntE(value) + case int64: + return cast.ToInt64E(value) + case float64, float32: + return cast.ToFloat64E(value) + case time.Time: + return cast.ToTimeE(value) + case time.Duration: + return cast.ToDurationE(value) + case []string: + return cast.ToStringSliceE(value) + } + } + + // NOTE: should only need to deepcopy for `Get`, because it can be an arbitrary value, + // and we shouldn't ever return complex types like maps and slices that could be modified + // by callers accidentally or on purpose. By copying, the caller may modify the result safetly + return deepcopy.Copy(value), nil +} + // Get returns a copy of the value for the given key func (c *ntmConfig) Get(key string) interface{} { c.RLock() defer c.RUnlock() c.checkKnownKey(key) val := c.leafAtPath(key).Get() - // NOTE: should only need to deepcopy for `Get`, because it can be an arbitrary value, - // and we shouldn't ever return complex types like maps and slices that could be modified - // by callers accidentally or on purpose. By copying, the caller may modify the result safetly - return deepcopy.Copy(val) + + val, err := c.inferTypeFromDefault(key, val) + if err != nil { + log.Warnf("failed to get configuration value for key %q: %s", key, err) + } + return val } // GetAllSources returns all values for a key for each source in sorted from lower to higher priority diff --git a/pkg/config/nodetreemodel/getter_test.go b/pkg/config/nodetreemodel/getter_test.go index fc5bf9b3d583e..3c05bffc40d27 100644 --- a/pkg/config/nodetreemodel/getter_test.go +++ b/pkg/config/nodetreemodel/getter_test.go @@ -24,7 +24,10 @@ func TestGetKnownKeysLowercased(t *testing.T) { assert.Equal(t, map[string]interface{}{ "a": struct{}{}, + "b": struct{}{}, "b.c": struct{}{}, + "d": struct{}{}, + "d.e": struct{}{}, "d.e.f": struct{}{}, }, cfg.GetKnownKeysLowercased()) @@ -37,8 +40,25 @@ func TestGet(t *testing.T) { assert.Equal(t, 1234, cfg.Get("a")) - cfg.Set("a", "test", model.SourceAgentRuntime) - assert.Equal(t, "test", cfg.Get("a")) + cfg.Set("a", 9876, model.SourceAgentRuntime) + assert.Equal(t, 9876, cfg.Get("a")) + + assert.Equal(t, nil, cfg.Get("does_not_exists")) +} + +func TestGetCastToDefault(t *testing.T) { + cfg := NewConfig("test", "", nil) + cfg.SetDefault("a", []string{}) + cfg.BuildSchema() + + // This test that we mimic viper's behavior on Get where we convert the value from the config to the same type + // from the default. + + cfg.Set("a", 9876, model.SourceAgentRuntime) + assert.Equal(t, []string{"9876"}, cfg.Get("a")) + + cfg.Set("a", "a b c", model.SourceAgentRuntime) + assert.Equal(t, []string{"a", "b", "c"}, cfg.Get("a")) assert.Equal(t, nil, cfg.Get("does_not_exists")) } diff --git a/pkg/config/nodetreemodel/read_config_file.go b/pkg/config/nodetreemodel/read_config_file.go index c829ff6837aeb..8354a012376b0 100644 --- a/pkg/config/nodetreemodel/read_config_file.go +++ b/pkg/config/nodetreemodel/read_config_file.go @@ -9,6 +9,7 @@ import ( "fmt" "io" "os" + "path/filepath" "reflect" "strings" @@ -17,11 +18,16 @@ import ( "gopkg.in/yaml.v2" ) -func (c *ntmConfig) getConfigFile() string { +func (c *ntmConfig) findConfigFile() { if c.configFile == "" { - return "datadog.yaml" + for _, path := range c.configPaths { + configFilePath := filepath.Join(path, c.configName+".yaml") + if _, err := os.Stat(configFilePath); err == nil { + c.configFile = configFilePath + return + } + } } - return c.configFile } // ReadInConfig wraps Viper for concurrent access @@ -33,7 +39,8 @@ func (c *ntmConfig) ReadInConfig() error { c.Lock() defer c.Unlock() - err := c.readInConfig(c.getConfigFile()) + c.findConfigFile() + err := c.readInConfig(c.configFile) if err != nil { return err } @@ -76,10 +83,14 @@ func (c *ntmConfig) readInConfig(filePath string) error { func (c *ntmConfig) readConfigurationContent(target InnerNode, content []byte) error { var obj map[string]interface{} - if err := yaml.Unmarshal(content, &obj); err != nil { - return err + + if strictErr := yaml.UnmarshalStrict(content, &obj); strictErr != nil { + log.Errorf("warning reading config file: %v\n", strictErr) + if err := yaml.Unmarshal(content, &obj); err != nil { + return err + } } - c.warnings = append(c.warnings, loadYamlInto(c.defaults, target, obj, "")...) + c.warnings = append(c.warnings, loadYamlInto(c.schema, target, obj, "")...) return nil } @@ -113,7 +124,7 @@ func toMapStringInterface(data any, path string) (map[string]interface{}, error) // // The function traverses a object loaded from YAML, checking if each node is known within the configuration. // If known, the value from the YAML blob is imported into the 'dest' tree. If unknown, a warning will be created. -func loadYamlInto(defaults InnerNode, dest InnerNode, data map[string]interface{}, path string) []string { +func loadYamlInto(schema InnerNode, dest InnerNode, data map[string]interface{}, path string) []string { if path != "" { path = path + "." } @@ -123,15 +134,15 @@ func loadYamlInto(defaults InnerNode, dest InnerNode, data map[string]interface{ key = strings.ToLower(key) curPath := path + key - // check if the key is know in the defaults - defaultNode, err := defaults.GetChild(key) + // check if the key is know in the schema + schemaNode, err := schema.GetChild(key) if err != nil { warnings = append(warnings, fmt.Sprintf("unknown key from YAML: %s", curPath)) continue } // if the default is a leaf we create a new leaf in dest - if _, isLeaf := defaultNode.(LeafNode); isLeaf { + if _, isLeaf := schemaNode.(LeafNode); isLeaf { // check that dest don't have a inner leaf under that name c, _ := dest.GetChild(key) if _, ok := c.(InnerNode); ok { @@ -148,8 +159,8 @@ func loadYamlInto(defaults InnerNode, dest InnerNode, data map[string]interface{ warnings = append(warnings, err.Error()) } - // by now we know defaultNode is an InnerNode - defaultNext, _ := defaultNode.(InnerNode) + // by now we know schemaNode is an InnerNode + defaultNext, _ := schemaNode.(InnerNode) if !dest.HasChild(key) { destInner := newInnerNode(nil) diff --git a/pkg/config/nodetreemodel/read_config_file_test.go b/pkg/config/nodetreemodel/read_config_file_test.go index 3b68045071be1..4a9281c289065 100644 --- a/pkg/config/nodetreemodel/read_config_file_test.go +++ b/pkg/config/nodetreemodel/read_config_file_test.go @@ -151,7 +151,7 @@ c: cfg.SetDefault("a", "apple") cfg.SetDefault("b", 123) - cfg.SetDefault("c.d", true) + cfg.SetDefault("c.d", 1) cfg.SetDefault("c.e.f", 456) cfg.BuildSchema() diff --git a/pkg/config/setup/config.go b/pkg/config/setup/config.go index 73648316c5f4c..a9c74bb2765fa 100644 --- a/pkg/config/setup/config.go +++ b/pkg/config/setup/config.go @@ -1038,7 +1038,10 @@ func agent(config pkgconfigmodel.Setup) { config.BindEnv("dd_url", "DD_DD_URL", "DD_URL") config.BindEnvAndSetDefault("app_key", "") config.BindEnvAndSetDefault("cloud_provider_metadata", []string{"aws", "gcp", "azure", "alibaba", "oracle", "ibm"}) - config.SetDefault("proxy", nil) + config.SetDefault("proxy.http", "") + config.SetDefault("proxy.https", "") + config.SetDefault("proxy.no_proxy", []string{}) + config.BindEnvAndSetDefault("skip_ssl_validation", false) config.BindEnvAndSetDefault("sslkeylogfile", "") config.BindEnv("tls_handshake_timeout") @@ -1121,10 +1124,6 @@ func agent(config pkgconfigmodel.Setup) { config.BindEnvAndSetDefault("GUI_port", defaultGuiPort) config.BindEnvAndSetDefault("GUI_session_expiration", 0) - config.SetKnown("proxy.http") - config.SetKnown("proxy.https") - config.SetKnown("proxy.no_proxy") - // Core agent (disabled for Error Tracking Standalone, Logs Collection Only) config.BindEnvAndSetDefault("core_agent.enabled", true) pkgconfigmodel.AddOverrideFunc(toggleDefaultPayloads) @@ -1331,7 +1330,7 @@ func serverless(config pkgconfigmodel.Setup) { config.BindEnvAndSetDefault("capture_lambda_payload_max_depth", 10) config.BindEnvAndSetDefault("serverless.trace_enabled", true, "DD_TRACE_ENABLED") config.BindEnvAndSetDefault("serverless.trace_managed_services", true, "DD_TRACE_MANAGED_SERVICES") - config.BindEnvAndSetDefault("serverless.service_mapping", nil, "DD_SERVICE_MAPPING") + config.BindEnvAndSetDefault("serverless.service_mapping", "", "DD_SERVICE_MAPPING") } func forwarder(config pkgconfigmodel.Setup) { diff --git a/pkg/config/setup/config_test.go b/pkg/config/setup/config_test.go index 1421770758180..c9713b2fccd9c 100644 --- a/pkg/config/setup/config_test.go +++ b/pkg/config/setup/config_test.go @@ -243,7 +243,7 @@ func TestProxy(t *testing.T) { { name: "no values", tests: func(t *testing.T, config pkgconfigmodel.Config) { - assert.Nil(t, config.Get("proxy")) + assert.Equal(t, map[string]interface{}{"http": "", "https": "", "no_proxy": []interface{}{}}, config.Get("proxy")) assert.Nil(t, config.GetProxies()) }, proxyForCloudMetadata: true, @@ -373,7 +373,7 @@ func TestProxy(t *testing.T) { proxyForCloudMetadata: true, }, { - name: "proxy withou no_proxy", + name: "proxy without no_proxy", setup: func(t *testing.T, _ pkgconfigmodel.Config) { t.Setenv("DD_PROXY_HTTP", "http_url") t.Setenv("DD_PROXY_HTTPS", "https_url") @@ -385,7 +385,8 @@ func TestProxy(t *testing.T) { HTTPS: "https_url", }, config.GetProxies()) - assert.Equal(t, []interface{}{}, config.Get("proxy.no_proxy")) + fmt.Printf("%#v\n", config.Get("proxy.no_proxy")) + assert.Equal(t, []string(nil), config.Get("proxy.no_proxy")) }, proxyForCloudMetadata: true, }, diff --git a/pkg/config/teeconfig/teeconfig.go b/pkg/config/teeconfig/teeconfig.go index efbc1c44b8e82..ba787dd5db77b 100644 --- a/pkg/config/teeconfig/teeconfig.go +++ b/pkg/config/teeconfig/teeconfig.go @@ -7,9 +7,11 @@ package teeconfig import ( + "fmt" "io" "reflect" "runtime" + "slices" "strings" "time" @@ -25,6 +27,12 @@ type teeConfig struct { compare model.Config } +func getLocation(nbStack int) string { + _, file, line, _ := runtime.Caller(nbStack + 1) + fileParts := strings.Split(file, "DataDog/datadog-agent/") + return fmt.Sprintf("%s:%d", fileParts[len(fileParts)-1], line) +} + // NewTeeConfig constructs a new teeConfig func NewTeeConfig(baseline, compare model.Config) model.Config { return &teeConfig{baseline: baseline, compare: compare} @@ -84,7 +92,7 @@ func (t *teeConfig) IsKnown(key string) bool { func (t *teeConfig) GetKnownKeysLowercased() map[string]interface{} { base := t.baseline.GetKnownKeysLowercased() compare := t.compare.GetKnownKeysLowercased() - compareResult("", "GetKnownKeysLowercased", base, compare) + t.compareResult("", "GetKnownKeysLowercased", base, compare) return base } @@ -125,7 +133,7 @@ func (t *teeConfig) IsSet(key string) bool { base := t.baseline.IsSet(key) compare := t.compare.IsSet(key) if base != compare { - log.Warnf("difference in config: IsSet(%s) -> base: %v | compare %v", key, base, compare) + log.Warnf("difference in config: IsSet(%s) -> base[%s]: %v | compare[%s]: %v | from %s", key, t.baseline.GetSource(key), base, t.compare.GetSource(key), compare, getLocation(1)) } return base } @@ -134,21 +142,22 @@ func (t *teeConfig) AllKeysLowercased() []string { base := t.baseline.AllKeysLowercased() compare := t.compare.AllKeysLowercased() if !reflect.DeepEqual(base, compare) { - log.Warnf("difference in config: allkeyslowercased() -> base len: %d | compare len: %d", len(base), len(compare)) + log.Warnf("difference in config: AllKeysLowercased() -> base len: %d | compare len: %d", len(base), len(compare)) i := 0 j := 0 for i < len(base) && j < len(compare) { - if base[i] != compare[j] { + if base[i] == compare[j] { i++ j++ continue } - log.Warnf("difference in config: allkeyslowercased() -> base[%d]: %v | compare[%d]: %v", i, base[i], j, compare[j]) if strings.Compare(base[i], compare[j]) == -1 { + log.Warnf("difference in config: allkeyslowercased() missing key in compare -> base[%d]: %#v", i, base[i]) i++ } else { + log.Warnf("difference in config: allkeyslowercased() extra key in compare -> --- | compare[%d]: %#v", j, compare[j]) j++ } } @@ -156,27 +165,25 @@ func (t *teeConfig) AllKeysLowercased() []string { return base } -func compareResult(key, method string, base, compare interface{}) interface{} { +func (t *teeConfig) compareResult(key, method string, base, compare interface{}) { if !reflect.DeepEqual(base, compare) { - _, file, line, _ := runtime.Caller(2) - fileParts := strings.Split(file, "DataDog/datadog-agent/") - log.Warnf("difference in config: %s(%s) -> base: %v | compare %v from %s:%d", method, key, base, compare, fileParts[len(fileParts)-1], line) + log.Warnf("difference in config: %s(%s) -> base[%s]: %#v | compare[%s] %#v | from %s", method, key, t.baseline.GetSource(key), base, t.compare.GetSource(key), compare, getLocation(2)) } - return compare } // Get wraps Viper for concurrent access func (t *teeConfig) Get(key string) interface{} { base := t.baseline.Get(key) compare := t.compare.Get(key) - return compareResult(key, "Get", base, compare) + t.compareResult(key, "Get", base, compare) + return base } // GetAllSources returns the value of a key for each source func (t *teeConfig) GetAllSources(key string) []model.ValueWithSource { base := t.baseline.GetAllSources(key) compare := t.compare.GetAllSources(key) - compareResult(key, "GetAllSources", base, compare) + t.compareResult(key, "GetAllSources", base, compare) return base } @@ -184,7 +191,7 @@ func (t *teeConfig) GetAllSources(key string) []model.ValueWithSource { func (t *teeConfig) GetString(key string) string { base := t.baseline.GetString(key) compare := t.compare.GetString(key) - compareResult(key, "GetString", base, compare) + t.compareResult(key, "GetString", base, compare) return base } @@ -193,7 +200,7 @@ func (t *teeConfig) GetString(key string) string { func (t *teeConfig) GetBool(key string) bool { base := t.baseline.GetBool(key) compare := t.compare.GetBool(key) - compareResult(key, "GetBool", base, compare) + t.compareResult(key, "GetBool", base, compare) return base } @@ -202,7 +209,7 @@ func (t *teeConfig) GetBool(key string) bool { func (t *teeConfig) GetInt(key string) int { base := t.baseline.GetInt(key) compare := t.compare.GetInt(key) - compareResult(key, "GetInt", base, compare) + t.compareResult(key, "GetInt", base, compare) return base } @@ -211,7 +218,7 @@ func (t *teeConfig) GetInt(key string) int { func (t *teeConfig) GetInt32(key string) int32 { base := t.baseline.GetInt32(key) compare := t.compare.GetInt32(key) - compareResult(key, "GetInt32", base, compare) + t.compareResult(key, "GetInt32", base, compare) return base } @@ -220,7 +227,7 @@ func (t *teeConfig) GetInt32(key string) int32 { func (t *teeConfig) GetInt64(key string) int64 { base := t.baseline.GetInt64(key) compare := t.compare.GetInt64(key) - compareResult(key, "GetInt64", base, compare) + t.compareResult(key, "GetInt64", base, compare) return base } @@ -229,7 +236,7 @@ func (t *teeConfig) GetInt64(key string) int64 { func (t *teeConfig) GetFloat64(key string) float64 { base := t.baseline.GetFloat64(key) compare := t.compare.GetFloat64(key) - compareResult(key, "GetFloat64", base, compare) + t.compareResult(key, "GetFloat64", base, compare) return base } @@ -238,7 +245,7 @@ func (t *teeConfig) GetFloat64(key string) float64 { func (t *teeConfig) GetDuration(key string) time.Duration { base := t.baseline.GetDuration(key) compare := t.compare.GetDuration(key) - compareResult(key, "GetDuration", base, compare) + t.compareResult(key, "GetDuration", base, compare) return base } @@ -247,7 +254,7 @@ func (t *teeConfig) GetDuration(key string) time.Duration { func (t *teeConfig) GetStringSlice(key string) []string { base := t.baseline.GetStringSlice(key) compare := t.compare.GetStringSlice(key) - compareResult(key, "GetStringSlice", base, compare) + t.compareResult(key, "GetStringSlice", base, compare) return base } @@ -256,7 +263,7 @@ func (t *teeConfig) GetStringSlice(key string) []string { func (t *teeConfig) GetFloat64Slice(key string) []float64 { base := t.baseline.GetFloat64Slice(key) compare := t.compare.GetFloat64Slice(key) - compareResult(key, "GetFloat64Slice", base, compare) + t.compareResult(key, "GetFloat64Slice", base, compare) return base } @@ -265,7 +272,7 @@ func (t *teeConfig) GetFloat64Slice(key string) []float64 { func (t *teeConfig) GetStringMap(key string) map[string]interface{} { base := t.baseline.GetStringMap(key) compare := t.compare.GetStringMap(key) - compareResult(key, "GetStringMap", base, compare) + t.compareResult(key, "GetStringMap", base, compare) return base } @@ -274,7 +281,7 @@ func (t *teeConfig) GetStringMap(key string) map[string]interface{} { func (t *teeConfig) GetStringMapString(key string) map[string]string { base := t.baseline.GetStringMapString(key) compare := t.compare.GetStringMapString(key) - compareResult(key, "GetStringMapString", base, compare) + t.compareResult(key, "GetStringMapString", base, compare) return base } @@ -283,7 +290,7 @@ func (t *teeConfig) GetStringMapString(key string) map[string]string { func (t *teeConfig) GetStringMapStringSlice(key string) map[string][]string { base := t.baseline.GetStringMapStringSlice(key) compare := t.compare.GetStringMapStringSlice(key) - compareResult(key, "GetStringMapStringSlice", base, compare) + t.compareResult(key, "GetStringMapStringSlice", base, compare) return base } @@ -292,7 +299,7 @@ func (t *teeConfig) GetStringMapStringSlice(key string) map[string][]string { func (t *teeConfig) GetSizeInBytes(key string) uint { base := t.baseline.GetSizeInBytes(key) compare := t.compare.GetSizeInBytes(key) - compareResult(key, "GetSizeInBytes", base, compare) + t.compareResult(key, "GetSizeInBytes", base, compare) return base } @@ -301,7 +308,7 @@ func (t *teeConfig) GetSizeInBytes(key string) uint { func (t *teeConfig) GetSource(key string) model.Source { base := t.baseline.GetSource(key) compare := t.compare.GetSource(key) - compareResult(key, "GetSource", base, compare) + t.compareResult(key, "GetSource", base, compare) return base } @@ -386,7 +393,7 @@ func (t *teeConfig) AllSettings() map[string]interface{} { continue } if !reflect.DeepEqual(base[key], compare[key]) { - log.Warnf("\titem %s: %v | %v", key, base[key], compare[key]) + log.Warnf("\titem %s: %#v | %#v", key, base[key], compare[key]) } log.Flush() } @@ -399,7 +406,7 @@ func (t *teeConfig) AllSettings() map[string]interface{} { func (t *teeConfig) AllSettingsWithoutDefault() map[string]interface{} { base := t.baseline.AllSettingsWithoutDefault() compare := t.compare.AllSettingsWithoutDefault() - compareResult("", "AllSettingsWithoutDefault", base, compare) + t.compareResult("", "AllSettingsWithoutDefault", base, compare) return base } @@ -408,7 +415,7 @@ func (t *teeConfig) AllSettingsWithoutDefault() map[string]interface{} { func (t *teeConfig) AllSettingsBySource() map[model.Source]interface{} { base := t.baseline.AllSettingsBySource() compare := t.compare.AllSettingsBySource() - compareResult("", "AllSettingsBySource", base, compare) + t.compareResult("", "AllSettingsBySource", base, compare) return base } @@ -454,21 +461,18 @@ func (t *teeConfig) SetConfigType(in string) { func (t *teeConfig) ConfigFileUsed() string { base := t.baseline.ConfigFileUsed() compare := t.compare.ConfigFileUsed() - compareResult("", "ConfigFileUsed", base, compare) + t.compareResult("", "ConfigFileUsed", base, compare) return base } -//func (t *teeConfig) SetTypeByDefaultValue(in bool) { -// t.baseline.SetTypeByDefaultValue(in) -// t.compare.SetTypeByDefaultValue(in) -//} - // GetEnvVars implements the Config interface func (t *teeConfig) GetEnvVars() []string { base := t.baseline.GetEnvVars() compare := t.compare.GetEnvVars() - compareResult("", "GetEnvVars", base, compare) + slices.Sort(base) + slices.Sort(compare) + t.compareResult("", "GetEnvVars", base, compare) return base } @@ -495,13 +499,13 @@ func (t *teeConfig) Stringify(source model.Source) string { func (t *teeConfig) GetProxies() *model.Proxy { base := t.baseline.GetProxies() compare := t.compare.GetProxies() - compareResult("", "GetProxies", base, compare) + t.compareResult("", "GetProxies", base, compare) return base } func (t *teeConfig) ExtraConfigFilesUsed() []string { base := t.baseline.ExtraConfigFilesUsed() compare := t.compare.ExtraConfigFilesUsed() - compareResult("", "ExtraConfigFilesUsed", base, compare) + t.compareResult("", "ExtraConfigFilesUsed", base, compare) return base } From d9a4c787c54377f67d89a397b4db6ec8f71019a9 Mon Sep 17 00:00:00 2001 From: Arthur Bellal Date: Mon, 9 Dec 2024 14:55:24 +0100 Subject: [PATCH 328/439] (fleet) downloader flavors (#31840) --- .gitattributes | 47 +++++----- .gitlab/package_build/installer.yml | 3 +- cmd/installer-downloader/main.go | 86 ++++++++++++++++-- .../subcommands/installer/command.go | 26 ++---- .../telemetry/telemetryimpl/telemetry.go | 5 +- pkg/fleet/bootstrapper/bootstrapper.go | 2 +- pkg/fleet/installer/default_packages.go | 2 +- pkg/fleet/installer/default_packages_test.go | 2 +- pkg/fleet/installer/fixtures/README.md | 19 ++++ .../{internal => installer}/fixtures/fs.go | 0 .../oci-layout-simple-v1-linux2-amd128.tar | Bin .../fixtures/oci-layout-simple-v1.tar | Bin .../fixtures/oci-layout-simple-v2.tar | Bin .../fixtures/server.go | 2 +- .../simple-v1-config/datadog.yaml.example | 0 .../fixtures/simple-v1/executable.sh | 0 .../fixtures/simple-v1/file.txt | 0 .../simple-v2-config/datadog.yaml.example | 0 .../fixtures/simple-v2/executable-new.sh | 0 pkg/fleet/installer/installer.go | 2 +- pkg/fleet/installer/installer_test.go | 4 +- .../{internal => installer}/oci/download.go | 2 +- .../oci/download_test.go | 2 +- .../{internal => installer}/oci/mirror.go | 0 .../oci/mirror_test.go | 2 +- pkg/fleet/installer/setup/common/config.go | 2 +- pkg/fleet/installer/setup/setup.go | 20 ++-- pkg/fleet/{internal => installer}/tar/tar.go | 0 pkg/fleet/internal/bootstrap/bootstrap_nix.go | 2 +- .../internal/bootstrap/bootstrap_windows.go | 2 +- pkg/fleet/internal/fixtures/README.md | 19 ---- pkg/fleet/telemetry/telemetry.go | 17 +++- tasks/installer.py | 15 ++- 33 files changed, 184 insertions(+), 99 deletions(-) create mode 100644 pkg/fleet/installer/fixtures/README.md rename pkg/fleet/{internal => installer}/fixtures/fs.go (100%) rename pkg/fleet/{internal => installer}/fixtures/oci-layout-simple-v1-linux2-amd128.tar (100%) rename pkg/fleet/{internal => installer}/fixtures/oci-layout-simple-v1.tar (100%) rename pkg/fleet/{internal => installer}/fixtures/oci-layout-simple-v2.tar (100%) rename pkg/fleet/{internal => installer}/fixtures/server.go (98%) rename pkg/fleet/{internal => installer}/fixtures/simple-v1-config/datadog.yaml.example (100%) rename pkg/fleet/{internal => installer}/fixtures/simple-v1/executable.sh (100%) rename pkg/fleet/{internal => installer}/fixtures/simple-v1/file.txt (100%) rename pkg/fleet/{internal => installer}/fixtures/simple-v2-config/datadog.yaml.example (100%) rename pkg/fleet/{internal => installer}/fixtures/simple-v2/executable-new.sh (100%) rename pkg/fleet/{internal => installer}/oci/download.go (99%) rename pkg/fleet/{internal => installer}/oci/download_test.go (99%) rename pkg/fleet/{internal => installer}/oci/mirror.go (100%) rename pkg/fleet/{internal => installer}/oci/mirror_test.go (97%) rename pkg/fleet/{internal => installer}/tar/tar.go (100%) delete mode 100644 pkg/fleet/internal/fixtures/README.md diff --git a/.gitattributes b/.gitattributes index 0b7a4b14e7cf1..9b3d026858313 100644 --- a/.gitattributes +++ b/.gitattributes @@ -10,7 +10,7 @@ go.sum -diff -merge linguist-generated=true pkg/security/probe/constantfetch/btfhub/constants.json -diff -merge linguist-generated=true pkg/security/seclwin/** -diff -merge linguist-generated=true # Fixtures should have LF line endings because they are checked against OCI packages built on Linux -pkg/fleet/internal/fixtures/** text=auto eol=lf +pkg/fleet/installer/fixtures/** text=auto eol=lf # Fix `git diff` when running on the below file formats. # Our windows build image uses MinGit which tries to use the astextplain diff algorithm (https://git-scm.com/docs/gitattributes#_setting_the_internal_diff_algorithm). @@ -27,26 +27,25 @@ pkg/fleet/internal/fixtures/** text=auto eol=lf # textconv = astextplain # ``` - -*.doc diff -*.DOC diff -*.docx diff -*.DOCX diff -*.docm diff -*.DOCM diff -*.dot diff -*.DOT diff -*.dotx diff -*.DOTX diff -*.dotm diff -*.DOTM diff -*.pdf diff -*.PDF diff -*.rtf diff -*.RTF diff -*.ods diff -*.ODS diff -*.odf diff -*.ODF diff -*.odt diff -*.ODT diff +*.doc diff +*.DOC diff +*.docx diff +*.DOCX diff +*.docm diff +*.DOCM diff +*.dot diff +*.DOT diff +*.dotx diff +*.DOTX diff +*.dotm diff +*.DOTM diff +*.pdf diff +*.PDF diff +*.rtf diff +*.RTF diff +*.ods diff +*.ODS diff +*.odf diff +*.ODF diff +*.odt diff +*.ODT diff diff --git a/.gitlab/package_build/installer.yml b/.gitlab/package_build/installer.yml index 6ab10c1a19e62..154392b246469 100644 --- a/.gitlab/package_build/installer.yml +++ b/.gitlab/package_build/installer.yml @@ -103,7 +103,8 @@ installer-install-scripts: - !reference [.retrieve_linux_go_deps] - echo "About to build for $RELEASE_VERSION" - mkdir -p $OMNIBUS_PACKAGE_DIR - - inv -e installer.build-linux-script && mv ./bin/installer/install.sh $OMNIBUS_PACKAGE_DIR/install-djm.sh + - inv -e installer.build-linux-script "databricks" "$RELEASE_VERSION" + - mv ./bin/installer/install-*.sh $OMNIBUS_PACKAGE_DIR/ - ls -la $OMNIBUS_PACKAGE_DIR artifacts: expire_in: 2 weeks diff --git a/cmd/installer-downloader/main.go b/cmd/installer-downloader/main.go index f964080a4315b..db35a6c337519 100644 --- a/cmd/installer-downloader/main.go +++ b/cmd/installer-downloader/main.go @@ -7,20 +7,94 @@ package main import ( + "context" "fmt" "os" + "os/exec" + "path/filepath" - "github.com/DataDog/datadog-agent/cmd/installer/subcommands/installer" "github.com/DataDog/datadog-agent/cmd/installer/user" - "github.com/DataDog/datadog-agent/cmd/internal/runcmd" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/oci" + "github.com/DataDog/datadog-agent/pkg/fleet/telemetry" + "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" +) + +const ( + installerPackage = "datadog-installer" + installerBinPath = "bin/installer/installer" +) + +var ( + // Version is the version of the installer to download. + Version string + // Flavor is the flavor of the setup to run. + Flavor string ) func main() { + if Version == "" || Flavor == "" { + fmt.Fprintln(os.Stderr, "Version and Flavor must be set at build time.") + os.Exit(1) + } if !user.IsRoot() { - fmt.Fprintln(os.Stderr, "This command requires root privileges.") + fmt.Fprintln(os.Stderr, "This installer requires root privileges.") os.Exit(1) } - cmd := installer.BootstrapCommand() - cmd.SilenceUsage = true - os.Exit(runcmd.Run(cmd)) + env := env.FromEnv() + ctx := context.Background() + + t := telemetry.NewTelemetry(env.HTTPClient(), env.APIKey, env.Site, fmt.Sprintf("datadog-installer-downloader-%s", Flavor)) + _ = t.Start(ctx) + defer func() { _ = t.Stop(ctx) }() + var err error + span, ctx := telemetry.StartSpanFromEnv(ctx, "downloader") + defer func() { span.Finish(tracer.WithError(err)) }() + err = runDownloader(ctx, env, Version, Flavor) + if err != nil { + fmt.Fprintf(os.Stderr, "Installation failed: %v\n", err) + os.Exit(1) + } +} + +func runDownloader(ctx context.Context, env *env.Env, version string, flavor string) error { + downloaderPath, err := os.Executable() + if err != nil { + return fmt.Errorf("failed to get executable path: %w", err) + } + tmpDir, err := os.MkdirTemp(filepath.Dir(downloaderPath), "datadog-installer") + if err != nil { + return fmt.Errorf("failed to create temporary directory: %w", err) + } + defer os.RemoveAll(tmpDir) + err = downloadInstaller(ctx, env, version, tmpDir) + if err != nil { + return fmt.Errorf("failed to download installer: %w", err) + } + cmd := exec.CommandContext(ctx, filepath.Join(tmpDir, installerBinPath), "setup", "--flavor", flavor) + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + cmd.Env = os.Environ() + err = cmd.Run() + if err != nil { + return fmt.Errorf("failed to run installer: %w", err) + } + return nil +} + +func downloadInstaller(ctx context.Context, env *env.Env, version string, tmpDir string) error { + url := oci.PackageURL(env, installerPackage, version) + downloader := oci.NewDownloader(env, env.HTTPClient()) + downloadedPackage, err := downloader.Download(ctx, url) + if err != nil { + return fmt.Errorf("failed to download installer package: %w", err) + } + if downloadedPackage.Name != installerPackage { + return fmt.Errorf("unexpected package name: %s, expected %s", downloadedPackage.Name, installerPackage) + } + err = downloadedPackage.ExtractLayers(oci.DatadogPackageLayerMediaType, tmpDir) + if err != nil { + return fmt.Errorf("failed to extract layers: %w", err) + } + return nil } diff --git a/cmd/installer/subcommands/installer/command.go b/cmd/installer/subcommands/installer/command.go index 7b898b0579cdb..186367fc20b42 100644 --- a/cmd/installer/subcommands/installer/command.go +++ b/cmd/installer/subcommands/installer/command.go @@ -96,7 +96,7 @@ type cmd struct { func newCmd(operation string) *cmd { env := env.FromEnv() t := newTelemetry(env) - span, ctx := newSpan(operation) + span, ctx := telemetry.StartSpanFromEnv(context.Background(), operation) setInstallerUmask(span) return &cmd{ t: t, @@ -226,12 +226,8 @@ func newTelemetry(env *env.Env) *telemetry.Telemetry { if site == "" { site = config.Site } - t, err := telemetry.NewTelemetry(env.HTTPClient(), apiKey, site, "datadog-installer") // No sampling rules for commands - if err != nil { - fmt.Printf("failed to initialize telemetry: %v\n", err) - return nil - } - err = t.Start(context.Background()) + t := telemetry.NewTelemetry(env.HTTPClient(), apiKey, site, "datadog-installer") // No sampling rules for commands + err := t.Start(context.Background()) if err != nil { fmt.Printf("failed to start telemetry: %v\n", err) return nil @@ -239,15 +235,6 @@ func newTelemetry(env *env.Env) *telemetry.Telemetry { return t } -func newSpan(operationName string) (ddtrace.Span, context.Context) { - var spanOptions []ddtrace.StartSpanOption - spanContext, ok := telemetry.SpanContextFromEnv() - if ok { - spanOptions = append(spanOptions, tracer.ChildOf(spanContext)) - } - return tracer.StartSpanFromContext(context.Background(), operationName, spanOptions...) -} - func versionCommand() *cobra.Command { return &cobra.Command{ Use: "version", @@ -287,6 +274,7 @@ func bootstrapCommand() *cobra.Command { } func setupCommand() *cobra.Command { + flavor := "" cmd := &cobra.Command{ Use: "setup", Hidden: true, @@ -294,9 +282,13 @@ func setupCommand() *cobra.Command { RunE: func(_ *cobra.Command, _ []string) (err error) { cmd := newCmd("setup") defer func() { cmd.Stop(err) }() - return setup.Setup(cmd.ctx, cmd.env) + if flavor == "" { + return setup.Agent7InstallScript(cmd.ctx, cmd.env) + } + return setup.Setup(cmd.ctx, cmd.env, flavor) }, } + cmd.Flags().StringVar(&flavor, "flavor", "", "The setup flavor") return cmd } diff --git a/comp/updater/telemetry/telemetryimpl/telemetry.go b/comp/updater/telemetry/telemetryimpl/telemetry.go index cf19e681c5708..d8f961e8398e6 100644 --- a/comp/updater/telemetry/telemetryimpl/telemetry.go +++ b/comp/updater/telemetry/telemetryimpl/telemetry.go @@ -38,16 +38,13 @@ func newTelemetry(deps dependencies) (telemetry.Component, error) { client := &http.Client{ Transport: httputils.CreateHTTPTransport(deps.Config), } - telemetry, err := fleettelemetry.NewTelemetry(client, utils.SanitizeAPIKey(deps.Config.GetString("api_key")), deps.Config.GetString("site"), "datadog-installer-daemon", + telemetry := fleettelemetry.NewTelemetry(client, utils.SanitizeAPIKey(deps.Config.GetString("api_key")), deps.Config.GetString("site"), "datadog-installer-daemon", fleettelemetry.WithSamplingRules( tracer.NameServiceRule("cdn.*", "datadog-installer-daemon", 0.1), tracer.NameServiceRule("*garbage_collect*", "datadog-installer-daemon", 0.05), tracer.NameServiceRule("HTTPClient.*", "datadog-installer-daemon", 0.05), ), ) - if err != nil { - return nil, err - } deps.Lc.Append(fx.Hook{OnStart: telemetry.Start, OnStop: telemetry.Stop}) return telemetry, nil } diff --git a/pkg/fleet/bootstrapper/bootstrapper.go b/pkg/fleet/bootstrapper/bootstrapper.go index e935a6cadc649..fed97034722d1 100644 --- a/pkg/fleet/bootstrapper/bootstrapper.go +++ b/pkg/fleet/bootstrapper/bootstrapper.go @@ -11,9 +11,9 @@ import ( "fmt" "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/oci" "github.com/DataDog/datadog-agent/pkg/fleet/internal/bootstrap" "github.com/DataDog/datadog-agent/pkg/fleet/internal/exec" - "github.com/DataDog/datadog-agent/pkg/fleet/internal/oci" "github.com/DataDog/datadog-agent/pkg/fleet/internal/paths" ) diff --git a/pkg/fleet/installer/default_packages.go b/pkg/fleet/installer/default_packages.go index 66c7017f42bac..04b4828e6eeb9 100644 --- a/pkg/fleet/installer/default_packages.go +++ b/pkg/fleet/installer/default_packages.go @@ -11,7 +11,7 @@ import ( "strings" "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" - "github.com/DataDog/datadog-agent/pkg/fleet/internal/oci" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/oci" ) // Package represents a package known to the installer diff --git a/pkg/fleet/installer/default_packages_test.go b/pkg/fleet/installer/default_packages_test.go index e17645ec7cefb..f454dbd1ab165 100644 --- a/pkg/fleet/installer/default_packages_test.go +++ b/pkg/fleet/installer/default_packages_test.go @@ -9,7 +9,7 @@ import ( "testing" "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" - "github.com/DataDog/datadog-agent/pkg/fleet/internal/oci" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/oci" "github.com/stretchr/testify/assert" ) diff --git a/pkg/fleet/installer/fixtures/README.md b/pkg/fleet/installer/fixtures/README.md new file mode 100644 index 0000000000000..792fb38a15da8 --- /dev/null +++ b/pkg/fleet/installer/fixtures/README.md @@ -0,0 +1,19 @@ +# Datadog Package fixtures + +This directory contains a few examples of Datadog Packages for use in the +updater tests. + +*simple-v1* +```bash +datadog-package create --archive --version "v1" --archive-path "pkg/fleet/installer/fixtures/oci-layout-simple-v1.tar" --package "simple" --configs pkg/fleet/installer/fixtures/simple-v1-config pkg/fleet/installer/fixtures/simple-v1 +``` + +*simple-v2* +```bash +datadog-package create --archive --version "v2" --archive-path "pkg/fleet/installer/fixtures/oci-layout-simple-v2.tar" --package "simple" --configs pkg/fleet/installer/fixtures/simple-v2-config pkg/fleet/installer/fixtures/simple-v2 +``` + +*simple-v1-linux2-amd128* +```bash +datadog-package create --archive --version "v1" --os "linux2" --arch "amd128" --archive-path "pkg/fleet/installer/fixtures/oci-layout-simple-v1-linux2-amd128.tar" --package "simple" pkg/fleet/installer/fixtures/simple-v1 +``` diff --git a/pkg/fleet/internal/fixtures/fs.go b/pkg/fleet/installer/fixtures/fs.go similarity index 100% rename from pkg/fleet/internal/fixtures/fs.go rename to pkg/fleet/installer/fixtures/fs.go diff --git a/pkg/fleet/internal/fixtures/oci-layout-simple-v1-linux2-amd128.tar b/pkg/fleet/installer/fixtures/oci-layout-simple-v1-linux2-amd128.tar similarity index 100% rename from pkg/fleet/internal/fixtures/oci-layout-simple-v1-linux2-amd128.tar rename to pkg/fleet/installer/fixtures/oci-layout-simple-v1-linux2-amd128.tar diff --git a/pkg/fleet/internal/fixtures/oci-layout-simple-v1.tar b/pkg/fleet/installer/fixtures/oci-layout-simple-v1.tar similarity index 100% rename from pkg/fleet/internal/fixtures/oci-layout-simple-v1.tar rename to pkg/fleet/installer/fixtures/oci-layout-simple-v1.tar diff --git a/pkg/fleet/internal/fixtures/oci-layout-simple-v2.tar b/pkg/fleet/installer/fixtures/oci-layout-simple-v2.tar similarity index 100% rename from pkg/fleet/internal/fixtures/oci-layout-simple-v2.tar rename to pkg/fleet/installer/fixtures/oci-layout-simple-v2.tar diff --git a/pkg/fleet/internal/fixtures/server.go b/pkg/fleet/installer/fixtures/server.go similarity index 98% rename from pkg/fleet/internal/fixtures/server.go rename to pkg/fleet/installer/fixtures/server.go index cdb1fb6b7323c..bdeba97c5997e 100644 --- a/pkg/fleet/internal/fixtures/server.go +++ b/pkg/fleet/installer/fixtures/server.go @@ -18,7 +18,7 @@ import ( "strings" "testing" - "github.com/DataDog/datadog-agent/pkg/fleet/internal/tar" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/tar" "github.com/google/go-containerregistry/pkg/name" "github.com/google/go-containerregistry/pkg/registry" "github.com/google/go-containerregistry/pkg/v1/layout" diff --git a/pkg/fleet/internal/fixtures/simple-v1-config/datadog.yaml.example b/pkg/fleet/installer/fixtures/simple-v1-config/datadog.yaml.example similarity index 100% rename from pkg/fleet/internal/fixtures/simple-v1-config/datadog.yaml.example rename to pkg/fleet/installer/fixtures/simple-v1-config/datadog.yaml.example diff --git a/pkg/fleet/internal/fixtures/simple-v1/executable.sh b/pkg/fleet/installer/fixtures/simple-v1/executable.sh similarity index 100% rename from pkg/fleet/internal/fixtures/simple-v1/executable.sh rename to pkg/fleet/installer/fixtures/simple-v1/executable.sh diff --git a/pkg/fleet/internal/fixtures/simple-v1/file.txt b/pkg/fleet/installer/fixtures/simple-v1/file.txt similarity index 100% rename from pkg/fleet/internal/fixtures/simple-v1/file.txt rename to pkg/fleet/installer/fixtures/simple-v1/file.txt diff --git a/pkg/fleet/internal/fixtures/simple-v2-config/datadog.yaml.example b/pkg/fleet/installer/fixtures/simple-v2-config/datadog.yaml.example similarity index 100% rename from pkg/fleet/internal/fixtures/simple-v2-config/datadog.yaml.example rename to pkg/fleet/installer/fixtures/simple-v2-config/datadog.yaml.example diff --git a/pkg/fleet/internal/fixtures/simple-v2/executable-new.sh b/pkg/fleet/installer/fixtures/simple-v2/executable-new.sh similarity index 100% rename from pkg/fleet/internal/fixtures/simple-v2/executable-new.sh rename to pkg/fleet/installer/fixtures/simple-v2/executable-new.sh diff --git a/pkg/fleet/installer/installer.go b/pkg/fleet/installer/installer.go index d7cca9819b4da..e43e0cfaae4d2 100644 --- a/pkg/fleet/installer/installer.go +++ b/pkg/fleet/installer/installer.go @@ -22,10 +22,10 @@ import ( "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" installerErrors "github.com/DataDog/datadog-agent/pkg/fleet/installer/errors" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/oci" "github.com/DataDog/datadog-agent/pkg/fleet/installer/packages" "github.com/DataDog/datadog-agent/pkg/fleet/installer/repository" "github.com/DataDog/datadog-agent/pkg/fleet/internal/db" - "github.com/DataDog/datadog-agent/pkg/fleet/internal/oci" "github.com/DataDog/datadog-agent/pkg/util/log" "github.com/DataDog/datadog-agent/pkg/version" "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/ext" diff --git a/pkg/fleet/installer/installer_test.go b/pkg/fleet/installer/installer_test.go index 9ab772b32dc0f..a98deece97ee0 100644 --- a/pkg/fleet/installer/installer_test.go +++ b/pkg/fleet/installer/installer_test.go @@ -17,10 +17,10 @@ import ( "github.com/stretchr/testify/assert" "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/fixtures" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/oci" "github.com/DataDog/datadog-agent/pkg/fleet/installer/repository" "github.com/DataDog/datadog-agent/pkg/fleet/internal/db" - "github.com/DataDog/datadog-agent/pkg/fleet/internal/fixtures" - "github.com/DataDog/datadog-agent/pkg/fleet/internal/oci" ) var testCtx = context.TODO() diff --git a/pkg/fleet/internal/oci/download.go b/pkg/fleet/installer/oci/download.go similarity index 99% rename from pkg/fleet/internal/oci/download.go rename to pkg/fleet/installer/oci/download.go index a03f7917d27df..1ddff40e37238 100644 --- a/pkg/fleet/internal/oci/download.go +++ b/pkg/fleet/installer/oci/download.go @@ -35,7 +35,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" installerErrors "github.com/DataDog/datadog-agent/pkg/fleet/installer/errors" - "github.com/DataDog/datadog-agent/pkg/fleet/internal/tar" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/tar" "github.com/DataDog/datadog-agent/pkg/util/log" ) diff --git a/pkg/fleet/internal/oci/download_test.go b/pkg/fleet/installer/oci/download_test.go similarity index 99% rename from pkg/fleet/internal/oci/download_test.go rename to pkg/fleet/installer/oci/download_test.go index e3c9b61916145..44d6462aaf4f9 100644 --- a/pkg/fleet/internal/oci/download_test.go +++ b/pkg/fleet/installer/oci/download_test.go @@ -19,7 +19,7 @@ import ( "golang.org/x/net/http2" "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" - "github.com/DataDog/datadog-agent/pkg/fleet/internal/fixtures" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/fixtures" "github.com/google/go-containerregistry/pkg/authn" oci "github.com/google/go-containerregistry/pkg/v1" "github.com/google/go-containerregistry/pkg/v1/google" diff --git a/pkg/fleet/internal/oci/mirror.go b/pkg/fleet/installer/oci/mirror.go similarity index 100% rename from pkg/fleet/internal/oci/mirror.go rename to pkg/fleet/installer/oci/mirror.go diff --git a/pkg/fleet/internal/oci/mirror_test.go b/pkg/fleet/installer/oci/mirror_test.go similarity index 97% rename from pkg/fleet/internal/oci/mirror_test.go rename to pkg/fleet/installer/oci/mirror_test.go index cee744c5fcbff..1a59f9d85a6db 100644 --- a/pkg/fleet/internal/oci/mirror_test.go +++ b/pkg/fleet/installer/oci/mirror_test.go @@ -12,7 +12,7 @@ import ( "strings" "testing" - "github.com/DataDog/datadog-agent/pkg/fleet/internal/fixtures" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/fixtures" "github.com/stretchr/testify/require" ) diff --git a/pkg/fleet/installer/setup/common/config.go b/pkg/fleet/installer/setup/common/config.go index d025311d5e15e..5ec929682808b 100644 --- a/pkg/fleet/installer/setup/common/config.go +++ b/pkg/fleet/installer/setup/common/config.go @@ -15,9 +15,9 @@ import ( "path/filepath" "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/oci" "github.com/DataDog/datadog-agent/pkg/fleet/installer/packages" "github.com/DataDog/datadog-agent/pkg/fleet/internal/exec" - "github.com/DataDog/datadog-agent/pkg/fleet/internal/oci" "github.com/DataDog/datadog-agent/pkg/fleet/internal/paths" "gopkg.in/yaml.v2" ) diff --git a/pkg/fleet/installer/setup/setup.go b/pkg/fleet/installer/setup/setup.go index 313b12e2782d5..376abc751eaf5 100644 --- a/pkg/fleet/installer/setup/setup.go +++ b/pkg/fleet/installer/setup/setup.go @@ -9,7 +9,6 @@ package setup import ( "context" "fmt" - "os" "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" "github.com/DataDog/datadog-agent/pkg/fleet/installer/setup/djm" @@ -17,16 +16,23 @@ import ( "github.com/DataDog/datadog-agent/pkg/fleet/internal/paths" ) -// Setup is the main function to resolve packages to install and install them -func Setup(ctx context.Context, env *env.Env) error { - if os.Getenv("DD_DJM_FLAVOR") == "databricks" { +const ( + // FlavorDatabricks is the flavor for the Data Jobs Monitoring databricks setup. + FlavorDatabricks = "databricks" +) + +// Setup installs Datadog. +func Setup(ctx context.Context, env *env.Env, flavor string) error { + switch flavor { + case FlavorDatabricks: return djm.SetupDatabricks(ctx, env) + default: + return fmt.Errorf("unknown setup flavor %s", flavor) } - - return defaultSetup(ctx, env) } -func defaultSetup(ctx context.Context, env *env.Env) error { +// Agent7InstallScript is the setup used by the agent7 install script. +func Agent7InstallScript(ctx context.Context, env *env.Env) error { cmd := exec.NewInstallerExec(env, paths.StableInstallerPath) defaultPackages, err := cmd.DefaultPackages(ctx) if err != nil { diff --git a/pkg/fleet/internal/tar/tar.go b/pkg/fleet/installer/tar/tar.go similarity index 100% rename from pkg/fleet/internal/tar/tar.go rename to pkg/fleet/installer/tar/tar.go diff --git a/pkg/fleet/internal/bootstrap/bootstrap_nix.go b/pkg/fleet/internal/bootstrap/bootstrap_nix.go index fbc9817f0783c..cf085c2379e33 100644 --- a/pkg/fleet/internal/bootstrap/bootstrap_nix.go +++ b/pkg/fleet/internal/bootstrap/bootstrap_nix.go @@ -17,8 +17,8 @@ import ( "github.com/DataDog/datadog-agent/pkg/fleet/internal/paths" "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/oci" "github.com/DataDog/datadog-agent/pkg/fleet/internal/exec" - "github.com/DataDog/datadog-agent/pkg/fleet/internal/oci" ) func install(ctx context.Context, env *env.Env, url string, experiment bool) error { diff --git a/pkg/fleet/internal/bootstrap/bootstrap_windows.go b/pkg/fleet/internal/bootstrap/bootstrap_windows.go index c3d867f959db2..6990ec77cf042 100644 --- a/pkg/fleet/internal/bootstrap/bootstrap_windows.go +++ b/pkg/fleet/internal/bootstrap/bootstrap_windows.go @@ -18,8 +18,8 @@ import ( "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" "github.com/DataDog/datadog-agent/pkg/fleet/internal/paths" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/oci" iexec "github.com/DataDog/datadog-agent/pkg/fleet/internal/exec" - "github.com/DataDog/datadog-agent/pkg/fleet/internal/oci" ) func install(ctx context.Context, env *env.Env, url string, experiment bool) error { diff --git a/pkg/fleet/internal/fixtures/README.md b/pkg/fleet/internal/fixtures/README.md deleted file mode 100644 index 4aad4996bed08..0000000000000 --- a/pkg/fleet/internal/fixtures/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# Datadog Package fixtures - -This directory contains a few examples of Datadog Packages for use in the -updater tests. - -*simple-v1* -```bash -datadog-package create --archive --version "v1" --archive-path "pkg/fleet/internal/fixtures/oci-layout-simple-v1.tar" --package "simple" --configs pkg/fleet/internal/fixtures/simple-v1-config pkg/fleet/internal/fixtures/simple-v1 -``` - -*simple-v2* -```bash -datadog-package create --archive --version "v2" --archive-path "pkg/fleet/internal/fixtures/oci-layout-simple-v2.tar" --package "simple" --configs pkg/fleet/internal/fixtures/simple-v2-config pkg/fleet/internal/fixtures/simple-v2 -``` - -*simple-v1-linux2-amd128* -```bash -datadog-package create --archive --version "v1" --os "linux2" --arch "amd128" --archive-path "pkg/fleet/internal/fixtures/oci-layout-simple-v1-linux2-amd128.tar" --package "simple" pkg/fleet/internal/fixtures/simple-v1 -``` diff --git a/pkg/fleet/telemetry/telemetry.go b/pkg/fleet/telemetry/telemetry.go index 842ea1b678cbd..b63bdfb0de764 100644 --- a/pkg/fleet/telemetry/telemetry.go +++ b/pkg/fleet/telemetry/telemetry.go @@ -59,7 +59,7 @@ type Telemetry struct { type Option func(*Telemetry) // NewTelemetry creates a new telemetry instance -func NewTelemetry(client *http.Client, apiKey string, site string, service string, opts ...Option) (*Telemetry, error) { +func NewTelemetry(client *http.Client, apiKey string, site string, service string, opts ...Option) *Telemetry { endpoint := &traceconfig.Endpoint{ Host: fmt.Sprintf("https://%s.%s", telemetrySubdomain, strings.TrimSpace(site)), APIKey: apiKey, @@ -81,7 +81,7 @@ func NewTelemetry(client *http.Client, apiKey string, site string, service strin opt(t) } t.server.Handler = t.handler() - return t, nil + return t } // Start starts the telemetry @@ -205,8 +205,17 @@ func (addr) String() string { return "local" } -// SpanContextFromEnv injects the traceID and parentID from the environment into the context if available. -func SpanContextFromEnv() (ddtrace.SpanContext, bool) { +// StartSpanFromEnv starts a span using the environment variables to find the parent span. +func StartSpanFromEnv(ctx context.Context, operationName string, spanOptions ...ddtrace.StartSpanOption) (ddtrace.Span, context.Context) { + spanContext, ok := spanContextFromEnv() + if ok { + spanOptions = append([]ddtrace.StartSpanOption{tracer.ChildOf(spanContext)}, spanOptions...) + } + return tracer.StartSpanFromContext(ctx, operationName, spanOptions...) +} + +// spanContextFromEnv injects the traceID and parentID from the environment into the context if available. +func spanContextFromEnv() (ddtrace.SpanContext, bool) { traceID := os.Getenv(EnvTraceID) parentID := os.Getenv(EnvParentID) ctxCarrier := tracer.TextMapCarrier{ diff --git a/tasks/installer.py b/tasks/installer.py index e3554723a5f41..7429a1eaf3148 100644 --- a/tasks/installer.py +++ b/tasks/installer.py @@ -16,8 +16,9 @@ DIR_BIN = os.path.join(".", "bin", "installer") INSTALLER_BIN = os.path.join(DIR_BIN, bin_name("installer")) DOWNLOADER_BIN = os.path.join(DIR_BIN, bin_name("downloader")) -INSTALL_SCRIPT = os.path.join(DIR_BIN, "install.sh") INSTALL_SCRIPT_TEMPLATE = os.path.join("pkg", "fleet", "installer", "setup", "install.sh") +DOWNLOADER_MAIN_PACKAGE = "cmd/installer-downloader" + MAJOR_VERSION = '7' @@ -76,14 +77,18 @@ def build( @task def build_downloader( ctx, + flavor, + version, os="linux", arch="amd64", ): ''' Builds the installer downloader binary. ''' + version_flag = f'-X main.Version={version}' + flavor_flag = f'-X main.Flavor={flavor}' ctx.run( - f'go build -ldflags="-s -w" -o {DOWNLOADER_BIN} {REPO_PATH}/cmd/installer-downloader', + f'go build -ldflags="-s -w {version_flag} {flavor_flag}" -o {DOWNLOADER_BIN} {REPO_PATH}/{DOWNLOADER_MAIN_PACKAGE}', env={'GOOS': os, 'GOARCH': arch, 'CGO_ENABLED': '0'}, ) @@ -91,6 +96,8 @@ def build_downloader( @task def build_linux_script( ctx, + flavor, + version, ): ''' Builds the linux script that is used to install the agent on linux. @@ -101,7 +108,7 @@ def build_linux_script( archs = ['amd64', 'arm64'] for arch in archs: - build_downloader(ctx, os='linux', arch=arch) + build_downloader(ctx, flavor=flavor, version=version, os='linux', arch=arch) with open(DOWNLOADER_BIN, 'rb') as f: encoded_bin = base64.encodebytes(f.read()).decode('utf-8') install_script = install_script.replace(f'DOWNLOADER_BIN_{arch.upper()}', encoded_bin) @@ -109,7 +116,7 @@ def build_linux_script( commit_sha = ctx.run('git rev-parse HEAD', hide=True).stdout.strip() install_script = install_script.replace('INSTALLER_COMMIT', commit_sha) - with open(INSTALL_SCRIPT, 'w') as f: + with open(os.path.join(DIR_BIN, f'install-{flavor}.sh'), 'w') as f: f.write(install_script) From 4f9e172fbeab787906d974ba7855222953a0ea0d Mon Sep 17 00:00:00 2001 From: Usama Saqib Date: Mon, 9 Dec 2024 15:07:57 +0100 Subject: [PATCH 329/439] Add rocky 9.4 to KMT platforms (#31880) --- test/new-e2e/system-probe/config/platforms.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/test/new-e2e/system-probe/config/platforms.json b/test/new-e2e/system-probe/config/platforms.json index 9249144d9ded9..9229b46f9476e 100644 --- a/test/new-e2e/system-probe/config/platforms.json +++ b/test/new-e2e/system-probe/config/platforms.json @@ -257,6 +257,14 @@ "alt_version_names": [ "oracular" ] + }, + "rocky_9.4": { + "os_name": "Rocky Linux", + "os_id": "rocky", + "kernel": "5.14.0-503.15.1.el9_5", + "os_version": "9.4", + "image": "rocky-9.4-x86_64.qcow2.xz", + "image_version": "20241209_f6a14db0" } }, "arm64": { @@ -486,6 +494,14 @@ "alt_version_names": [ "oracular" ] + }, + "rocky_9.4": { + "os_name": "Rocky Linux", + "os_id": "rocky", + "kernel": "5.14.0-503.15.1.el9_5", + "os_version": "9.4", + "image": "rocky-9.4-arm64.qcow2.xz", + "image_version": "20241209_f6a14db0" } } } \ No newline at end of file From 495529f72483db90db16d1170240b3c8fb64a941 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Mathieu?= Date: Mon, 9 Dec 2024 15:49:25 +0100 Subject: [PATCH 330/439] logs/sds: fallback on default excluded keywords if no included keywords available. (#29981) Co-authored-by: jszwedko --- pkg/logs/sds/scanner.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/pkg/logs/sds/scanner.go b/pkg/logs/sds/scanner.go index b0caf689efbfd..9b86f478321c0 100644 --- a/pkg/logs/sds/scanner.go +++ b/pkg/logs/sds/scanner.go @@ -313,13 +313,19 @@ func interpretRCRule(userRule RuleConfig, standardRule StandardRuleConfig, defau } // If the "Use recommended keywords" checkbox has been checked, we use the default - // included keywords available in the rule (curated by Datadog). + // included keywords available in the rule (curated by Datadog), if not included keywords + // exist, fallback on using the default excluded keywords. // Otherwise: // If some included keywords have been manually filled by the user, we use them // Else we start using the default excluded keywords. if userRule.IncludedKeywords.UseRecommendedKeywords { - // default included keywords - extraConfig.ProximityKeywords = sds.CreateProximityKeywordsConfig(defaults.IncludedKeywordsCharCount, defToUse.DefaultIncludedKeywords, nil) + // default included keywords if any + if len(defToUse.DefaultIncludedKeywords) > 0 { + extraConfig.ProximityKeywords = sds.CreateProximityKeywordsConfig(defaults.IncludedKeywordsCharCount, defToUse.DefaultIncludedKeywords, nil) + } else if len(defaults.ExcludedKeywords) > 0 && defaults.ExcludedKeywordsCharCount > 0 { + // otherwise fallback on default excluded keywords + extraConfig.ProximityKeywords = sds.CreateProximityKeywordsConfig(defaults.ExcludedKeywordsCharCount, nil, defaults.ExcludedKeywords) + } } else { if len(userRule.IncludedKeywords.Keywords) > 0 && userRule.IncludedKeywords.CharacterCount > 0 { // user provided included keywords From 40a840dfadd6a4744da510792af666ec36769c6d Mon Sep 17 00:00:00 2001 From: Branden Clark Date: Mon, 9 Dec 2024 10:10:15 -0500 Subject: [PATCH 331/439] Add initial Windows E2E FIPS package test/support (#31771) --- .gitlab/e2e_install_packages/windows.yml | 46 ++++--- .gitlab/e2e_testing_deploy/e2e_deploy.yml | 21 +++ .../windows/base_agent_installer_suite.go | 5 + .../tests/windows/common/agent/package.go | 127 ++++++++++++++---- test/new-e2e/tests/windows/common/policy.go | 46 +++++++ test/new-e2e/tests/windows/common/registry.go | 17 +++ .../tests/windows/fips-test/fips_test.go | 123 +++++++++++++++++ .../tests/windows/install-test/npm_test.go | 2 +- .../windows/install-test/upgrade_test.go | 6 +- 9 files changed, 346 insertions(+), 47 deletions(-) create mode 100644 test/new-e2e/tests/windows/common/policy.go create mode 100644 test/new-e2e/tests/windows/fips-test/fips_test.go diff --git a/.gitlab/e2e_install_packages/windows.yml b/.gitlab/e2e_install_packages/windows.yml index f4575d0159f8c..86958e1a9c9ad 100644 --- a/.gitlab/e2e_install_packages/windows.yml +++ b/.gitlab/e2e_install_packages/windows.yml @@ -1,10 +1,9 @@ # NOTE: If a new job is added, be sure to upate .gitlab/e2e_test_junit_upload.yml -.new-e2e_windows_msi: +.new-e2e_with_version: variables: - TARGETS: ./tests/windows/install-test + WINDOWS_AGENT_ARCH: "x86_64" TEAM: windows-agent - EXTRA_PARAMS: --run "$E2E_MSI_TEST$" extends: - .new_e2e_template before_script: @@ -17,19 +16,18 @@ - export LAST_STABLE_VERSION=$(invoke release.get-release-json-value "last_stable::7" --no-worktree) - !reference [.new_e2e_template, script] +.new-e2e_windows_msi: + variables: + TARGETS: ./tests/windows/install-test + EXTRA_PARAMS: --run "$E2E_MSI_TEST$" + extends: + - .new-e2e_with_version + .new-e2e_windows_domain_test: variables: TARGETS: ./tests/windows/domain-test - TEAM: windows-agent - before_script: - # WINDOWS_AGENT_VERSION is used to verify the installed agent version - # Must run before new_e2e_template changes the aws profile - - WINDOWS_AGENT_VERSION=$(invoke agent.version) || exit $?; export WINDOWS_AGENT_VERSION - - !reference [.new_e2e_template, before_script] - script: - # LAST_STABLE_VERSION is used for upgrade test - - export LAST_STABLE_VERSION=$(invoke release.get-release-json-value "last_stable::7" --no-worktree) - - !reference [.new_e2e_template, script] + extends: + - .new-e2e_with_version .new-e2e_windows_installer_v7_tests: parallel: @@ -72,8 +70,6 @@ new-e2e_windows_powershell_module_test: # Agent 7 .new-e2e_windows_a7_x86_64: - variables: - WINDOWS_AGENT_ARCH: "x86_64" extends: - .new-e2e_windows_msi - .new-e2e_agent_a7 @@ -95,10 +91,7 @@ new-e2e-windows-agent-msi-windows-server-a7-x86_64: new-e2e-windows-agent-domain-tests-a7-x86_64: stage: e2e_install_packages - variables: - WINDOWS_AGENT_ARCH: "x86_64" extends: - - .new_e2e_template - .new-e2e_windows_domain_test - .new-e2e_agent_a7 needs: @@ -110,6 +103,23 @@ new-e2e-windows-agent-domain-tests-a7-x86_64: - !reference [.manual] timeout: 1h15m +new-e2e-windows-agent-a7-x86_64-fips: + stage: e2e_install_packages + variables: + WINDOWS_AGENT_FLAVOR: "fips" + TARGETS: ./tests/windows/fips-test + extends: + - .new-e2e_with_version + - .new-e2e_agent_a7 + needs: + - !reference [.needs_new_e2e_template] + - deploy_windows_testing-a7-fips + rules: + - !reference [.on_deploy] + - !reference [.on_e2e_or_windows_installer_changes] + - !reference [.manual] + timeout: 1h15m + ## single test for PRs ## skipped if the full tests are running new-e2e-windows-agent-msi-upgrade-windows-server-a7-x86_64: diff --git a/.gitlab/e2e_testing_deploy/e2e_deploy.yml b/.gitlab/e2e_testing_deploy/e2e_deploy.yml index 45be38a825a5d..d47fcb6748da3 100644 --- a/.gitlab/e2e_testing_deploy/e2e_deploy.yml +++ b/.gitlab/e2e_testing_deploy/e2e_deploy.yml @@ -192,3 +192,24 @@ deploy_windows_testing-a7: $OMNIBUS_PACKAGE_DIR s3://$WIN_S3_BUCKET/$WINDOWS_TESTING_S3_BUCKET_A7 --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers full=id=3a6e02b08553fd157ae3fb918945dd1eaae5a1aa818940381ef07a430cf25732 + +deploy_windows_testing-a7-fips: + rules: + - !reference [.except_no_tests_no_deploy] + - !reference [.except_mergequeue] + - when: on_success + stage: e2e_deploy + image: registry.ddbuild.io/ci/datadog-agent-buildimages/gitlab_agent_deploy$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES + tags: ["arch:amd64"] + needs: + ["lint_windows-x64", "windows_msi_and_bosh_zip_x64-a7-fips"] + before_script: + - ls $OMNIBUS_PACKAGE_DIR + script: + - $S3_CP_CMD + --recursive + --exclude "*" + --include "datadog-fips-agent-7.*.msi" + $OMNIBUS_PACKAGE_DIR s3://$WIN_S3_BUCKET/$WINDOWS_TESTING_S3_BUCKET_A7 + --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers + full=id=3a6e02b08553fd157ae3fb918945dd1eaae5a1aa818940381ef07a430cf25732 diff --git a/test/new-e2e/tests/windows/base_agent_installer_suite.go b/test/new-e2e/tests/windows/base_agent_installer_suite.go index 5f2f6809d33b0..b73ba6d22ace5 100644 --- a/test/new-e2e/tests/windows/base_agent_installer_suite.go +++ b/test/new-e2e/tests/windows/base_agent_installer_suite.go @@ -56,6 +56,11 @@ func (b *BaseAgentInstallerSuite[Env]) SetupSuite() { b.BaseSuite.SetupSuite() var err error + b.OutputDir, err = b.CreateTestOutputDir() + if err != nil { + b.T().Fatalf("should get output dir") + } + b.AgentPackage, err = windowsAgent.GetPackageFromEnv() if err != nil { b.T().Fatalf("failed to get MSI URL from env: %v", err) diff --git a/test/new-e2e/tests/windows/common/agent/package.go b/test/new-e2e/tests/windows/common/agent/package.go index 8e3f867f41a80..5fd6497c2f0b1 100644 --- a/test/new-e2e/tests/windows/common/agent/package.go +++ b/test/new-e2e/tests/windows/common/agent/package.go @@ -18,14 +18,19 @@ import ( ) const ( - defaultMajorVersion = "7" - defaultArch = "x86_64" - agentInstallerListProductName = "datadog-agent" - agentS3BucketRelease = "ddagent-windows-stable" - betaChannel = "beta" - betaURL = "https://s3.amazonaws.com/dd-agent-mstesting/builds/beta/installers_v2.json" - stableChannel = "stable" - stableURL = "https://ddagent-windows-stable.s3.amazonaws.com/installers_v2.json" + defaultMajorVersion = "7" + defaultArch = "x86_64" + defaultFlavor = "base" + agentS3BucketRelease = "ddagent-windows-stable" + betaChannel = "beta" + betaURL = "https://s3.amazonaws.com/dd-agent-mstesting/builds/beta/installers_v2.json" + stableChannel = "stable" + stableURL = "https://ddagent-windows-stable.s3.amazonaws.com/installers_v2.json" +) + +// Environment variable constants +const ( + PackageFlavorEnvVar = "WINDOWS_AGENT_FLAVOR" ) // Package contains identifying information about an Agent MSI package. @@ -40,6 +45,8 @@ type Package struct { Arch string // URL is the URL the MSI can be downloaded from URL string + // Flavor is the Agent Flavor (e.g. `base`, `fips`, `iot``) + Flavor string } // AgentVersion returns a string containing version number and the pre only, e.g. `0.0.0-beta.1` @@ -50,33 +57,61 @@ func (p *Package) AgentVersion() string { } // GetBetaMSIURL returns the URL for the beta agent MSI +// // majorVersion: 6, 7 // arch: x86_64 -func GetBetaMSIURL(version string, arch string) (string, error) { - return GetMSIURL(betaChannel, version, arch) +// flavor: base, fips +func GetBetaMSIURL(version string, arch string, flavor string) (string, error) { + return GetMSIURL(betaChannel, version, arch, flavor) } // GetStableMSIURL returns the URL for the stable agent MSI +// // majorVersion: 6, 7 // arch: x86_64 -func GetStableMSIURL(version string, arch string) (string, error) { - return GetMSIURL(stableChannel, version, arch) +// flavor: base, fips +func GetStableMSIURL(version string, arch string, flavor string) (string, error) { + return GetMSIURL(stableChannel, version, arch, flavor) } // GetMSIURL returns the URL for the agent MSI +// // channel: beta, stable // majorVersion: 6, 7 // arch: x86_64 -func GetMSIURL(channel string, version string, arch string) (string, error) { +// flavor: base, fips +func GetMSIURL(channel string, version string, arch string, flavor string) (string, error) { channelURL, err := GetChannelURL(channel) if err != nil { return "", err } - return installers.GetProductURL(channelURL, agentInstallerListProductName, version, arch) + productName, err := GetFlavorProductName(flavor) + if err != nil { + return "", err + } + + return installers.GetProductURL(channelURL, productName, version, arch) +} + +// GetFlavorProductName returns the product name for the flavor +// +// flavor: base, fips +func GetFlavorProductName(flavor string) (string, error) { + switch flavor { + case "": + return "datadog-agent", nil + case "base": + return "datadog-agent", nil + case "fips": + return "datadog-fips-agent", nil + default: + return "", fmt.Errorf("unknown flavor %v", flavor) + } } // GetChannelURL returns the URL for the channel name +// // channel: beta, stable func GetChannelURL(channel string) (string, error) { if strings.EqualFold(channel, betaChannel) { @@ -89,21 +124,32 @@ func GetChannelURL(channel string) (string, error) { } // GetLatestMSIURL returns the URL for the latest agent MSI +// // majorVersion: 6, 7 // arch: x86_64 -func GetLatestMSIURL(majorVersion string, arch string) string { +func GetLatestMSIURL(majorVersion string, arch string, flavor string) (string, error) { // why do we use amd64 for the latest URL and x86_64 everywhere else? if arch == "x86_64" { arch = "amd64" } - return fmt.Sprintf(`https://s3.amazonaws.com/`+agentS3BucketRelease+`/datadog-agent-%s-latest.%s.msi`, - majorVersion, arch) + productName, err := GetFlavorProductName(flavor) + if err != nil { + return "", err + } + return fmt.Sprintf(`https://s3.amazonaws.com/`+agentS3BucketRelease+`/%s-%s-latest.%s.msi`, + productName, majorVersion, arch), nil } // GetPipelineMSIURL returns the URL for the agent MSI built by the pipeline +// // majorVersion: 6, 7 // arch: x86_64 -func GetPipelineMSIURL(pipelineID string, majorVersion string, arch string) (string, error) { +// flavor: base, fips +func GetPipelineMSIURL(pipelineID string, majorVersion string, arch string, flavor string) (string, error) { + productName, err := GetFlavorProductName(flavor) + if err != nil { + return "", err + } // Manual URL example: https://s3.amazonaws.com/dd-agent-mstesting?prefix=pipelines/A7/25309493 fmt.Printf("Looking for agent MSI for pipeline majorVersion %v %v\n", majorVersion, pipelineID) artifactURL, err := pipeline.GetPipelineArtifact(pipelineID, pipeline.AgentS3BucketTesting, majorVersion, func(artifact string) bool { @@ -114,9 +160,10 @@ func GetPipelineMSIURL(pipelineID string, majorVersion string, arch string) (str // TODO: CIREL-1970 // Example: datadog-agent-7.52.0-1-x86_64.msi // Example: datadog-agent-7.53.0-devel.git.512.41b1225.pipeline.30353507-1-x86_64.msi - if !strings.Contains(artifact, fmt.Sprintf("datadog-agent-%s", majorVersion)) { + if !strings.Contains(artifact, fmt.Sprintf("%s-%s", productName, majorVersion)) { return false } + // Not all pipelines include the pipeline ID in the artifact name, but if it is there then match against it if strings.Contains(artifact, "pipeline.") && !strings.Contains(artifact, fmt.Sprintf("pipeline.%s", pipelineID)) { @@ -129,7 +176,7 @@ func GetPipelineMSIURL(pipelineID string, majorVersion string, arch string) (str return true }) if err != nil { - return "", fmt.Errorf("no agent MSI found for pipeline %v and arch %v: %w", pipelineID, arch, err) + return "", fmt.Errorf("no agent MSI found for pipeline %v arch %v flavor: %v: %w", pipelineID, arch, flavor, err) } return artifactURL, nil } @@ -148,6 +195,20 @@ func LookupChannelFromEnv() (string, bool) { return stableChannel, false } +// LookupFlavorFromEnv looks at environment variables to select the agent flavor, if the value +// is found it is returned along with true, otherwise an empty string and false are returned. +// +// WINDOWS_AGENT_FLAVOR: base, fips +// +// Default Flavor: base +func LookupFlavorFromEnv() (string, bool) { + flavor := os.Getenv(PackageFlavorEnvVar) + if flavor != "" { + return flavor, true + } + return defaultFlavor, false +} + // LookupVersionFromEnv looks at environment variabes to select the agent version, if the value // is found it is returned along with true, otherwise a default value and false are returned. // @@ -217,7 +278,7 @@ func LookupChannelURLFromEnv() (string, bool) { // // The returned Package contains the MSI URL and other identifying information. // Some Package fields will be populated but may not be related to the returned URL. -// For example, if a URL is provided directly, the Channel, Version, and Arch fields +// For example, if a URL is provided directly, the Channel, Version, Arch, and Flavor fields // have no effect on the returned URL. They are returned anyway so they can be used for // other purposes, such as logging, stack name, instance options, test assertions, etc. // @@ -235,6 +296,8 @@ func LookupChannelURLFromEnv() (string, bool) { // // WINDOWS_AGENT_ARCH: The arch of the agent, x86_64 // +// WINDOWS_AGENT_FLAVOR: The flavor of the agent, base or fips +// // If a channel is not provided and the version contains `-rc.`, the beta channel is used. // // See other Lookup*FromEnv functions for more options and details. @@ -245,6 +308,7 @@ func GetPackageFromEnv() (*Package, error) { channel, channelFound := LookupChannelFromEnv() version, _ := LookupVersionFromEnv() arch, _ := LookupArchFromEnv() + flavor, _ := LookupFlavorFromEnv() pipelineID, pipelineIDFound := os.LookupEnv("E2E_PIPELINE_ID") majorVersion := strings.Split(version, ".")[0] @@ -267,12 +331,13 @@ func GetPackageFromEnv() (*Package, error) { Version: version, Arch: arch, URL: url, + Flavor: flavor, }, nil } // check if we should use the URL from a specific CI pipeline if pipelineIDFound { - url, err := GetPipelineMSIURL(pipelineID, majorVersion, arch) + url, err := GetPipelineMSIURL(pipelineID, majorVersion, arch, flavor) if err != nil { return nil, err } @@ -281,6 +346,7 @@ func GetPackageFromEnv() (*Package, error) { Version: version, Arch: arch, URL: url, + Flavor: flavor, }, nil } @@ -295,7 +361,11 @@ func GetPackageFromEnv() (*Package, error) { } } // Get MSI URL - url, err := installers.GetProductURL(channelURL, agentInstallerListProductName, version, arch) + productName, err := GetFlavorProductName(flavor) + if err != nil { + return nil, err + } + url, err := installers.GetProductURL(channelURL, productName, version, arch) if err != nil { return nil, err } @@ -304,16 +374,21 @@ func GetPackageFromEnv() (*Package, error) { Version: version, Arch: arch, URL: url, + Flavor: flavor, }, nil } // Default to latest stable - url = GetLatestMSIURL(majorVersion, arch) + url, err = GetLatestMSIURL(majorVersion, arch, flavor) + if err != nil { + return nil, err + } return &Package{ Channel: stableChannel, Version: version, Arch: arch, URL: url, + Flavor: flavor, }, nil } @@ -329,6 +404,7 @@ func GetPackageFromEnv() (*Package, error) { // invoke release.get-release-json-value "last_stable::$AGENT_MAJOR_VERSION" func GetLastStablePackageFromEnv() (*Package, error) { arch, _ := LookupArchFromEnv() + flavor, _ := LookupFlavorFromEnv() ver := os.Getenv("LAST_STABLE_VERSION") if ver == "" { return nil, fmt.Errorf("LAST_STABLE_VERSION is not set") @@ -341,7 +417,7 @@ func GetLastStablePackageFromEnv() (*Package, error) { url := os.Getenv("LAST_STABLE_WINDOWS_AGENT_MSI_URL") if url == "" { // Manual URL not provided, lookup the URL using the version - url, err = GetStableMSIURL(ver, arch) + url, err = GetStableMSIURL(ver, arch, flavor) if err != nil { return nil, err } @@ -352,5 +428,6 @@ func GetLastStablePackageFromEnv() (*Package, error) { Version: ver, Arch: arch, URL: url, + Flavor: flavor, }, nil } diff --git a/test/new-e2e/tests/windows/common/policy.go b/test/new-e2e/tests/windows/common/policy.go new file mode 100644 index 0000000000000..df50d64375790 --- /dev/null +++ b/test/new-e2e/tests/windows/common/policy.go @@ -0,0 +1,46 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2023-present Datadog, Inc. + +package common + +import ( + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/components" +) + +// setFIPSAlgorithmPolicy configures local security policy to enable or disable FIPS mode. +// +// The setting is applied system-wide and does NOT require a reboot. +// This setting may be overridden by group policy. +// +// https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/security-policy-settings/system-cryptography-use-fips-compliant-algorithms-for-encryption-hashing-and-signing +func setFIPSAlgorithmPolicy(host *components.RemoteHost, enabled bool) error { + path := `HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy` + valueName := "Enabled" + value := 0 + if enabled { + value = 1 + } + return SetRegistryDWORDValue(host, path, valueName, value) +} + +// EnableFIPSMode enables FIPS mode on the host. +// +// The setting is applied system-wide and does NOT require a reboot. +// This setting may be overridden by group policy. +// +// https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/security-policy-settings/system-cryptography-use-fips-compliant-algorithms-for-encryption-hashing-and-signing +func EnableFIPSMode(host *components.RemoteHost) error { + return setFIPSAlgorithmPolicy(host, true) +} + +// DisableFIPSMode disables FIPS mode on the host. +// +// The setting is applied system-wide and does NOT require a reboot. +// This setting may be overridden by group policy. +// +// https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/security-policy-settings/system-cryptography-use-fips-compliant-algorithms-for-encryption-hashing-and-signing +func DisableFIPSMode(host *components.RemoteHost) error { + return setFIPSAlgorithmPolicy(host, false) +} diff --git a/test/new-e2e/tests/windows/common/registry.go b/test/new-e2e/tests/windows/common/registry.go index 19c44f530f02d..0957c3510251f 100644 --- a/test/new-e2e/tests/windows/common/registry.go +++ b/test/new-e2e/tests/windows/common/registry.go @@ -38,3 +38,20 @@ func DeleteRegistryKey(host *components.RemoteHost, path string) error { _, err := host.Execute(cmd) return err } + +// SetRegistryDWORDValue sets, creating if necessary, a DWORD value at the specified path +func SetRegistryDWORDValue(host *components.RemoteHost, path string, name string, value int) error { + return SetTypedRegistryValue(host, path, name, fmt.Sprintf("%d", value), "DWORD") +} + +// SetTypedRegistryValue sets, creating if necessary, the value at the specified path with the specified type +// +// https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.management/set-itemproperty?view=powershell-7.4#-type +func SetTypedRegistryValue(host *components.RemoteHost, path string, name string, value string, typeName string) error { + cmd := fmt.Sprintf("New-Item -Path '%s' -Force; Set-ItemProperty -Path '%s' -Name '%s' -Value '%s' -Type '%s'", path, path, name, value, typeName) + _, err := host.Execute(cmd) + if err != nil { + return err + } + return nil +} diff --git a/test/new-e2e/tests/windows/fips-test/fips_test.go b/test/new-e2e/tests/windows/fips-test/fips_test.go new file mode 100644 index 0000000000000..e46be55c5a941 --- /dev/null +++ b/test/new-e2e/tests/windows/fips-test/fips_test.go @@ -0,0 +1,123 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package fipstest +package fipstest + +import ( + "fmt" + "os" + "path/filepath" + + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments" + awsHostWindows "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments/aws/host/windows" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/utils/e2e/client" + "github.com/DataDog/datadog-agent/test/new-e2e/tests/windows" + windowsCommon "github.com/DataDog/datadog-agent/test/new-e2e/tests/windows/common" + windowsAgent "github.com/DataDog/datadog-agent/test/new-e2e/tests/windows/common/agent" + + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +type fipsAgentSuite struct { + windows.BaseAgentInstallerSuite[environments.WindowsHost] + + installPath string +} + +func TestFIPSAgent(t *testing.T) { + opts := []e2e.SuiteOption{e2e.WithProvisioner(awsHostWindows.ProvisionerNoAgentNoFakeIntake())} + s := &fipsAgentSuite{} + e2e.Run(t, s, opts...) +} + +func (s *fipsAgentSuite) SetupSuite() { + // Default to using FIPS Agent package + if _, set := windowsAgent.LookupFlavorFromEnv(); !set { + os.Setenv(windowsAgent.PackageFlavorEnvVar, "fips") + } + + s.BaseAgentInstallerSuite.SetupSuite() + host := s.Env().RemoteHost + var err error + + // Enable FIPS mode before installing the Agent to make sure that works + err = windowsCommon.EnableFIPSMode(host) + require.NoError(s.T(), err) + + // Install Agent (With FIPS mode enabled) + _, err = s.InstallAgent(host, windowsAgent.WithPackage(s.AgentPackage)) + require.NoError(s.T(), err) + + s.installPath, err = windowsAgent.GetInstallPathFromRegistry(host) + require.NoError(s.T(), err) +} + +func (s *fipsAgentSuite) TestWithSystemFIPSDisabled() { + host := s.Env().RemoteHost + windowsCommon.DisableFIPSMode(host) + + s.Run("version command", func() { + s.Run("gofips enabled", func() { + _, err := s.execAgentCommandWithFIPS("version") + assertErrorContainsFIPSPanic(s.T(), err, "agent should panic when GOFIPS=1 but system FIPS is disabled") + }) + + s.Run("gofips disabled", func() { + _, err := s.execAgentCommand("version") + require.NoError(s.T(), err) + }) + }) +} + +func (s *fipsAgentSuite) TestWithSystemFIPSEnabled() { + host := s.Env().RemoteHost + windowsCommon.EnableFIPSMode(host) + + s.Run("version command", func() { + s.Run("gofips enabled", func() { + _, err := s.execAgentCommandWithFIPS("version") + require.NoError(s.T(), err) + }) + + s.Run("gofips disabled", func() { + _, err := s.execAgentCommand("version") + require.NoError(s.T(), err) + }) + }) +} + +func (s *fipsAgentSuite) execAgentCommand(command string, options ...client.ExecuteOption) (string, error) { + host := s.Env().RemoteHost + + require.NotEmpty(s.T(), s.installPath) + agentPath := filepath.Join(s.installPath, "bin", "agent.exe") + + cmd := fmt.Sprintf(`& "%s" %s`, agentPath, command) + return host.Execute(cmd, options...) +} + +func (s *fipsAgentSuite) execAgentCommandWithFIPS(command string) (string, error) { + // There isn't support for appending env vars to client.ExecuteOption, so + // this function doesn't accept any other options. + + // Setting GOFIPS=1 causes the Windows FIPS Agent to panic if the system is not in FIPS mode. + // This setting does NOT control whether the FIPS Agent uses FIPS-compliant crypto libraries, + // the System-level setting determines that. + // https://github.com/microsoft/go/tree/microsoft/main/eng/doc/fips#windows-fips-mode-cng + vars := client.EnvVar{ + "GOFIPS": "1", + } + + return s.execAgentCommand(command, client.WithEnvVariables(vars)) +} + +func assertErrorContainsFIPSPanic(t *testing.T, err error, args ...interface{}) bool { + return assert.ErrorContains(t, err, "panic: cngcrypto: not in FIPS mode", args...) +} diff --git a/test/new-e2e/tests/windows/install-test/npm_test.go b/test/new-e2e/tests/windows/install-test/npm_test.go index cefec1f51b626..ecd8ffcd56129 100644 --- a/test/new-e2e/tests/windows/install-test/npm_test.go +++ b/test/new-e2e/tests/windows/install-test/npm_test.go @@ -149,7 +149,7 @@ func (s *testNPMInstallSuite) TearDownSuite() { func (s *testNPMInstallSuite) installPreviousAgentVersion(vm *components.RemoteHost, options ...windowsAgent.InstallAgentOption) { if s.url == "" { - url, err := windowsAgent.GetStableMSIURL(s.previousVersion, "x86_64") + url, err := windowsAgent.GetStableMSIURL(s.previousVersion, "x86_64", "") s.Require().NoError(err, "should get MSI URL for version %s", s.previousVersion) s.url = url } diff --git a/test/new-e2e/tests/windows/install-test/upgrade_test.go b/test/new-e2e/tests/windows/install-test/upgrade_test.go index 851b6a739f376..4f274dbccea1f 100644 --- a/test/new-e2e/tests/windows/install-test/upgrade_test.go +++ b/test/new-e2e/tests/windows/install-test/upgrade_test.go @@ -142,7 +142,7 @@ func (s *testUpgradeRollbackWithoutCWSSuite) SetupSuite() { Version: fmt.Sprintf("%s.51.0-1", majorVersion), Arch: "x86_64", } - s.previousAgentPackage.URL, err = windowsAgent.GetStableMSIURL(s.previousAgentPackage.Version, s.previousAgentPackage.Arch) + s.previousAgentPackage.URL, err = windowsAgent.GetStableMSIURL(s.previousAgentPackage.Version, s.previousAgentPackage.Arch, "") s.Require().NoError(err, "should get stable agent package URL") } @@ -282,7 +282,7 @@ func TestUpgradeFromV5(t *testing.T) { s.agent5Package = &windowsAgent.Package{ Version: "5.32.8-1", } - s.agent5Package.URL, err = windowsAgent.GetStableMSIURL(s.agent5Package.Version, "x86_64") + s.agent5Package.URL, err = windowsAgent.GetStableMSIURL(s.agent5Package.Version, "x86_64", "") require.NoError(t, err) run(t, s) } @@ -375,7 +375,7 @@ func TestUpgradeFromV6(t *testing.T) { Version: "6.53.0-1", Arch: "x86_64", } - s.previousAgentPackge.URL, err = windowsAgent.GetStableMSIURL(s.previousAgentPackge.Version, s.previousAgentPackge.Arch) + s.previousAgentPackge.URL, err = windowsAgent.GetStableMSIURL(s.previousAgentPackge.Version, s.previousAgentPackge.Arch, "") require.NoError(t, err) run(t, s) } From 86aa47af3eb8121086b6b41b029105c9d4d15daf Mon Sep 17 00:00:00 2001 From: Andrew Glaude Date: Mon, 9 Dec 2024 11:19:08 -0500 Subject: [PATCH 332/439] Only start telemetryForwarder when we start the receiver (APMSP-1633) (#31813) --- pkg/trace/api/api.go | 2 ++ pkg/trace/api/telemetry.go | 1 - pkg/trace/api/telemetry_test.go | 12 ++++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/pkg/trace/api/api.go b/pkg/trace/api/api.go index 9ad40058faf82..c74ecbb137fb9 100644 --- a/pkg/trace/api/api.go +++ b/pkg/trace/api/api.go @@ -235,6 +235,8 @@ func getConfiguredEVPRequestTimeoutDuration(conf *config.AgentConfig) time.Durat // Start starts doing the HTTP server and is ready to receive traces func (r *HTTPReceiver) Start() { + r.telemetryForwarder.start() + if !r.conf.ReceiverEnabled { log.Debug("HTTP Server is off: HTTPReceiver is disabled.") return diff --git a/pkg/trace/api/telemetry.go b/pkg/trace/api/telemetry.go index a45ac4105042f..5408f3db40e1c 100644 --- a/pkg/trace/api/telemetry.go +++ b/pkg/trace/api/telemetry.go @@ -123,7 +123,6 @@ func NewTelemetryForwarder(conf *config.AgentConfig, containerIDProvider IDProvi statsd: statsd, logger: log.NewThrottled(5, 10*time.Second), } - forwarder.start() return forwarder } diff --git a/pkg/trace/api/telemetry_test.go b/pkg/trace/api/telemetry_test.go index 3608436d83aae..b9a0930507687 100644 --- a/pkg/trace/api/telemetry_test.go +++ b/pkg/trace/api/telemetry_test.go @@ -99,6 +99,7 @@ func TestTelemetryBasicProxyRequest(t *testing.T) { return []string{"key:test\nvalue"}, nil } recv := newTestReceiverFromConfig(cfg) + recv.telemetryForwarder.start() recv.telemetryForwarder.containerIDProvider = getTestContainerIDProvider() assertSendRequest(t, recv, endpointCalled) @@ -121,6 +122,7 @@ func TestGoogleCloudRun(t *testing.T) { cfg.GlobalTags["service_name"] = "test_service" cfg.GlobalTags["origin"] = "cloudrun" recv := newTestReceiverFromConfig(cfg) + recv.telemetryForwarder.start() assertSendRequest(t, recv, endpointCalled) } @@ -145,6 +147,7 @@ func TestAzureAppService(t *testing.T) { cfg.GlobalTags["app_name"] = "test_app" cfg.GlobalTags["origin"] = "appservice" recv := newTestReceiverFromConfig(cfg) + recv.telemetryForwarder.start() assertSendRequest(t, recv, endpointCalled) } @@ -169,6 +172,7 @@ func TestAzureContainerApp(t *testing.T) { cfg.GlobalTags["app_name"] = "test_app" cfg.GlobalTags["origin"] = "containerapp" recv := newTestReceiverFromConfig(cfg) + recv.telemetryForwarder.start() assertSendRequest(t, recv, endpointCalled) } @@ -202,6 +206,7 @@ func TestAWSFargate(t *testing.T) { return []string{"task_arn:test_ARN"}, nil } recv := newTestReceiverFromConfig(cfg) + recv.telemetryForwarder.start() recv.telemetryForwarder.containerIDProvider = getTestContainerIDProvider() assertSendRequest(t, recv, endpointCalled) @@ -256,6 +261,7 @@ func TestTelemetryProxyMultipleEndpoints(t *testing.T) { cfg.GlobalTags[functionARNKeyTag] = "test_ARN" recv := newTestReceiverFromConfig(cfg) + recv.telemetryForwarder.start() req, rec := newRequestRecorder(t) recv.buildMux().ServeHTTP(rec, req) @@ -315,6 +321,7 @@ func TestMaxInflightBytes(t *testing.T) { cfg := getTestConfig(srv.URL) recv := newTestReceiverFromConfig(cfg) + recv.telemetryForwarder.start() recv.telemetryForwarder.maxInflightBytes = 100 mux := recv.buildMux() @@ -359,6 +366,7 @@ func TestInflightBytesReset(t *testing.T) { cfg := getTestConfig(srv.URL) recv := newTestReceiverFromConfig(cfg) + recv.telemetryForwarder.start() recv.telemetryForwarder.maxInflightBytes = 100 mux := recv.buildMux() @@ -417,6 +425,7 @@ func TestActualServer(t *testing.T) { cfg := getTestConfig(intakeMockServer.URL) r := newTestReceiverFromConfig(cfg) + r.telemetryForwarder.start() // We call this manually here to avoid starting the entire test receiver logs := bytes.Buffer{} prevLogger := log.SetLogger(log.NewBufferLogger(&logs)) defer log.SetLogger(prevLogger) @@ -445,6 +454,7 @@ func TestTelemetryConfig(t *testing.T) { cfg := config.New() cfg.Endpoints[0].APIKey = "api_key" recv := newTestReceiverFromConfig(cfg) + recv.telemetryForwarder.start() req, rec := newRequestRecorder(t) recv.buildMux().ServeHTTP(rec, req) @@ -463,6 +473,7 @@ func TestTelemetryConfig(t *testing.T) { Host: "111://malformed.dd_url.com", }} recv := newTestReceiverFromConfig(cfg) + recv.telemetryForwarder.start() req, rec := newRequestRecorder(t) recv.buildMux().ServeHTTP(rec, req) @@ -486,6 +497,7 @@ func TestTelemetryConfig(t *testing.T) { Host: srv.URL, }} recv := newTestReceiverFromConfig(cfg) + recv.telemetryForwarder.start() req, rec := newRequestRecorder(t) recv.buildMux().ServeHTTP(rec, req) From 952f4b2bc1b854e5e949da235353002cab8979ee Mon Sep 17 00:00:00 2001 From: Dustin Long Date: Mon, 9 Dec 2024 11:31:50 -0500 Subject: [PATCH 333/439] Implement UnsetForSource method (#31733) --- pkg/config/model/viper.go | 15 ++- pkg/config/nodetreemodel/config.go | 80 ++++++++++++- pkg/config/nodetreemodel/config_test.go | 142 +++++++++++++++++++++++ pkg/config/nodetreemodel/inner_node.go | 10 +- pkg/config/nodetreemodel/leaf_node.go | 6 +- pkg/config/nodetreemodel/missing_node.go | 2 +- pkg/config/nodetreemodel/node.go | 3 +- pkg/config/nodetreemodel/struct_node.go | 3 + 8 files changed, 247 insertions(+), 14 deletions(-) diff --git a/pkg/config/model/viper.go b/pkg/config/model/viper.go index 5742b4c06520b..a977863b7368d 100644 --- a/pkg/config/model/viper.go +++ b/pkg/config/model/viper.go @@ -91,9 +91,18 @@ type ValueWithSource struct { Value interface{} } -// IsGreaterOrEqualThan returns true if the current source is of higher priority than the one given as a parameter -func (s Source) IsGreaterOrEqualThan(x Source) bool { - return sourcesPriority[s] >= sourcesPriority[x] +// IsGreaterThan returns true if the current source is of higher priority than the one given as a parameter +func (s Source) IsGreaterThan(x Source) bool { + return sourcesPriority[s] > sourcesPriority[x] +} + +// PreviousSource returns the source before the current one, or Default (lowest priority) if there isn't one +func (s Source) PreviousSource() Source { + previous := sourcesPriority[s] + if previous == 0 { + return sources[previous] + } + return sources[previous-1] } // String casts Source into a string diff --git a/pkg/config/nodetreemodel/config.go b/pkg/config/nodetreemodel/config.go index 3d09ddc016eba..e2f6c4b8f7139 100644 --- a/pkg/config/nodetreemodel/config.go +++ b/pkg/config/nodetreemodel/config.go @@ -241,11 +241,83 @@ func (c *ntmConfig) SetDefault(key string, value interface{}) { _, _ = c.defaults.SetAt(parts, value, model.SourceDefault) } +func (c *ntmConfig) findPreviousSourceNode(key string, source model.Source) (Node, error) { + iter := source + for iter != model.SourceDefault { + iter = iter.PreviousSource() + tree, err := c.getTreeBySource(iter) + if err != nil { + return nil, err + } + node := c.leafAtPathFromNode(key, tree) + if _, isMissing := node.(*missingLeafImpl); !isMissing { + return node, nil + } + } + return nil, ErrNotFound +} + // UnsetForSource unsets a config entry for a given source -func (c *ntmConfig) UnsetForSource(_key string, _source model.Source) { +func (c *ntmConfig) UnsetForSource(key string, source model.Source) { c.Lock() - c.logErrorNotImplemented("UnsetForSource") - c.Unlock() + defer c.Unlock() + + // Remove it from the original source tree + tree, err := c.getTreeBySource(source) + if err != nil { + log.Errorf("%s", err) + return + } + parentNode, childName, err := c.parentOfNode(tree, key) + if err != nil { + return + } + // Only remove if the setting is a leaf + if child, err := parentNode.GetChild(childName); err == nil { + if _, ok := child.(LeafNode); ok { + parentNode.RemoveChild(childName) + } else { + log.Errorf("cannot remove setting %q, not a leaf", key) + return + } + } + + // If the node in the merged tree doesn't match the source we expect, we're done + if c.leafAtPathFromNode(key, c.root).Source() != source { + return + } + + // Find what the previous value used to be, based upon the previous source + prevNode, err := c.findPreviousSourceNode(key, source) + if err != nil { + return + } + + // Get the parent node of the leaf we're unsetting + parentNode, childName, err = c.parentOfNode(c.root, key) + if err != nil { + return + } + // Replace the child with the node from the previous layer + parentNode.InsertChildNode(childName, prevNode.Clone()) +} + +func (c *ntmConfig) parentOfNode(node Node, key string) (InnerNode, string, error) { + parts := splitKey(key) + lastPart := parts[len(parts)-1] + parts = parts[:len(parts)-1] + var err error + for _, p := range parts { + node, err = node.GetChild(p) + if err != nil { + return nil, "", err + } + } + innerNode, ok := node.(InnerNode) + if !ok { + return nil, "", ErrNotFound + } + return innerNode, lastPart, nil } func (c *ntmConfig) addToKnownKeys(key string) { @@ -609,7 +681,7 @@ func (c *ntmConfig) AllSettingsWithoutDefault() map[string]interface{} { defer c.RUnlock() // We only want to include leaf with a source higher than SourceDefault - return c.root.DumpSettings(func(source model.Source) bool { return source.IsGreaterOrEqualThan(model.SourceUnknown) }) + return c.root.DumpSettings(func(source model.Source) bool { return source.IsGreaterThan(model.SourceDefault) }) } // AllSettingsBySource returns the settings from each source (file, env vars, ...) diff --git a/pkg/config/nodetreemodel/config_test.go b/pkg/config/nodetreemodel/config_test.go index dfba602113411..4738b4e446767 100644 --- a/pkg/config/nodetreemodel/config_test.go +++ b/pkg/config/nodetreemodel/config_test.go @@ -433,3 +433,145 @@ server_timeout val:30, source:default` assert.Equal(t, expect, txt) } + +func TestUnsetForSource(t *testing.T) { + // env source, highest priority + os.Setenv("TEST_NETWORK_PATH_COLLECTOR_INPUT_CHAN_SIZE", "23456") + os.Setenv("TEST_NETWORK_PATH_COLLECTOR_PATHTEST_CONTEXTS_LIMIT", "654321") + os.Setenv("TEST_NETWORK_PATH_COLLECTOR_PROCESSING_CHAN_SIZE", "78900") + // file source, medium priority + configData := `network_path: + collector: + workers: 6 + pathtest_contexts_limit: 43210 + processing_chan_size: 45678` + // default source, lowest priority + cfg := NewConfig("test", "TEST", strings.NewReplacer(".", "_")) + cfg.BindEnvAndSetDefault("network_path.collector.input_chan_size", 100000) + cfg.BindEnvAndSetDefault("network_path.collector.pathtest_contexts_limit", 100000) + cfg.BindEnvAndSetDefault("network_path.collector.processing_chan_size", 100000) + cfg.BindEnvAndSetDefault("network_path.collector.workers", 4) + + cfg.BuildSchema() + err := cfg.ReadConfig(strings.NewReader(configData)) + require.NoError(t, err) + + // The merged config + txt := cfg.(*ntmConfig).Stringify("root") + expect := `network_path + collector + input_chan_size + val:23456, source:environment-variable + pathtest_contexts_limit + val:654321, source:environment-variable + processing_chan_size + val:78900, source:environment-variable + workers + val:6, source:file` + assert.Equal(t, expect, txt) + + // No change if source doesn't match + cfg.UnsetForSource("network_path.collector.input_chan_size", model.SourceFile) + assert.Equal(t, expect, txt) + + // No change if setting is not a leaf + cfg.UnsetForSource("network_path", model.SourceEnvVar) + assert.Equal(t, expect, txt) + + // No change if setting is not found + cfg.UnsetForSource("network_path.unknown", model.SourceEnvVar) + assert.Equal(t, expect, txt) + + // Remove a setting from the env source, nothing in the file source, it goes to default + cfg.UnsetForSource("network_path.collector.input_chan_size", model.SourceEnvVar) + txt = cfg.(*ntmConfig).Stringify("root") + expect = `network_path + collector + input_chan_size + val:100000, source:default + pathtest_contexts_limit + val:654321, source:environment-variable + processing_chan_size + val:78900, source:environment-variable + workers + val:6, source:file` + assert.Equal(t, expect, txt) + + // Remove a setting from the file source, it goes to default + cfg.UnsetForSource("network_path.collector.workers", model.SourceFile) + txt = cfg.(*ntmConfig).Stringify("root") + expect = `network_path + collector + input_chan_size + val:100000, source:default + pathtest_contexts_limit + val:654321, source:environment-variable + processing_chan_size + val:78900, source:environment-variable + workers + val:4, source:default` + assert.Equal(t, expect, txt) + + // Removing a setting from the env source, it goes to file source + cfg.UnsetForSource("network_path.collector.processing_chan_size", model.SourceEnvVar) + txt = cfg.(*ntmConfig).Stringify("root") + expect = `network_path + collector + input_chan_size + val:100000, source:default + pathtest_contexts_limit + val:654321, source:environment-variable + processing_chan_size + val:45678, source:file + workers + val:4, source:default` + assert.Equal(t, expect, txt) + + // Then remove it from the file source as well, leaving the default source + cfg.UnsetForSource("network_path.collector.processing_chan_size", model.SourceFile) + txt = cfg.(*ntmConfig).Stringify("root") + expect = `network_path + collector + input_chan_size + val:100000, source:default + pathtest_contexts_limit + val:654321, source:environment-variable + processing_chan_size + val:100000, source:default + workers + val:4, source:default` + assert.Equal(t, expect, txt) + + // Check the file layer in isolation + fileTxt := cfg.(*ntmConfig).Stringify(model.SourceFile) + fileExpect := `network_path + collector + pathtest_contexts_limit + val:43210, source:file` + assert.Equal(t, fileExpect, fileTxt) + + // Removing from the file source first does not change the merged value, because it uses env layer + cfg.UnsetForSource("network_path.collector.pathtest_contexts_limit", model.SourceFile) + assert.Equal(t, expect, txt) + + // But the file layer itself has been modified + fileTxt = cfg.(*ntmConfig).Stringify(model.SourceFile) + fileExpect = `network_path + collector` + assert.Equal(t, fileExpect, fileTxt) + + // Finally, remove it from the env layer + cfg.UnsetForSource("network_path.collector.pathtest_contexts_limit", model.SourceEnvVar) + txt = cfg.(*ntmConfig).Stringify("root") + expect = `network_path + collector + input_chan_size + val:100000, source:default + pathtest_contexts_limit + val:100000, source:default + processing_chan_size + val:100000, source:default + workers + val:4, source:default` + assert.Equal(t, expect, txt) +} diff --git a/pkg/config/nodetreemodel/inner_node.go b/pkg/config/nodetreemodel/inner_node.go index d531dc1d7facb..dd0c4bee914c1 100644 --- a/pkg/config/nodetreemodel/inner_node.go +++ b/pkg/config/nodetreemodel/inner_node.go @@ -88,7 +88,7 @@ func (n *innerNode) Merge(src InnerNode) error { } if srcIsLeaf { - if srcLeaf.SourceGreaterOrEqual(dstLeaf.Source()) { + if srcLeaf.Source() == dstLeaf.Source() || srcLeaf.SourceGreaterThan(dstLeaf.Source()) { n.children[name] = srcLeaf.Clone() } } else { @@ -132,7 +132,7 @@ func (n *innerNode) SetAt(key []string, value interface{}, source model.Source) } if leaf, ok := node.(LeafNode); ok { - if source.IsGreaterOrEqualThan(leaf.Source()) { + if source == leaf.Source() || source.IsGreaterThan(leaf.Source()) { n.children[part] = newLeafNode(value, source) return true, nil } @@ -163,6 +163,12 @@ func (n *innerNode) InsertChildNode(name string, node Node) { n.makeRemapCase() } +// RemoveChild removes a node from the current node +func (n *innerNode) RemoveChild(name string) { + delete(n.children, name) + n.makeRemapCase() +} + // DumpSettings clone the entire tree starting from the node into a map based on the leaf source. // // The selector will be call with the source of each leaf to determine if it should be included in the dump. diff --git a/pkg/config/nodetreemodel/leaf_node.go b/pkg/config/nodetreemodel/leaf_node.go index 45a6391248bd4..3140145d521f7 100644 --- a/pkg/config/nodetreemodel/leaf_node.go +++ b/pkg/config/nodetreemodel/leaf_node.go @@ -43,10 +43,10 @@ func (n *leafNodeImpl) Clone() Node { return newLeafNode(n.val, n.source) } -// SourceGreaterOrEqual returns true if the source of the current node is greater or equal to the one given as a +// SourceGreaterThan returns true if the source of the current node is greater than the one given as a // parameter -func (n *leafNodeImpl) SourceGreaterOrEqual(source model.Source) bool { - return n.source.IsGreaterOrEqualThan(source) +func (n *leafNodeImpl) SourceGreaterThan(source model.Source) bool { + return n.source.IsGreaterThan(source) } // GetChild returns an error because a leaf has no children diff --git a/pkg/config/nodetreemodel/missing_node.go b/pkg/config/nodetreemodel/missing_node.go index 52d68f0112ef9..d6a2ad640d8af 100644 --- a/pkg/config/nodetreemodel/missing_node.go +++ b/pkg/config/nodetreemodel/missing_node.go @@ -38,6 +38,6 @@ func (m *missingLeafImpl) Clone() Node { return m } -func (m *missingLeafImpl) SourceGreaterOrEqual(model.Source) bool { +func (m *missingLeafImpl) SourceGreaterThan(model.Source) bool { return false } diff --git a/pkg/config/nodetreemodel/node.go b/pkg/config/nodetreemodel/node.go index 97007efa50198..469f0d89cfedd 100644 --- a/pkg/config/nodetreemodel/node.go +++ b/pkg/config/nodetreemodel/node.go @@ -96,6 +96,7 @@ type InnerNode interface { Merge(InnerNode) error SetAt([]string, interface{}, model.Source) (bool, error) InsertChildNode(string, Node) + RemoveChild(string) makeRemapCase() DumpSettings(func(model.Source) bool) map[string]interface{} } @@ -105,5 +106,5 @@ type LeafNode interface { Node Get() interface{} Source() model.Source - SourceGreaterOrEqual(model.Source) bool + SourceGreaterThan(model.Source) bool } diff --git a/pkg/config/nodetreemodel/struct_node.go b/pkg/config/nodetreemodel/struct_node.go index 30fa47ce1c12b..511235381c35a 100644 --- a/pkg/config/nodetreemodel/struct_node.go +++ b/pkg/config/nodetreemodel/struct_node.go @@ -74,6 +74,9 @@ func (n *structNodeImpl) SetAt([]string, interface{}, model.Source) (bool, error // InsertChildNode is not implemented for a leaf node func (n *structNodeImpl) InsertChildNode(string, Node) {} +// RemoveChild is not implemented for struct node +func (n *structNodeImpl) RemoveChild(string) {} + // makeRemapCase not implemented func (n *structNodeImpl) makeRemapCase() {} From 94679d8b5fb02b7e8cd15af96e799e71fab761b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillermo=20Juli=C3=A1n?= Date: Mon, 9 Dec 2024 18:05:08 +0100 Subject: [PATCH 334/439] fix(podresources): detect API availability client creation (#31806) --- .../env/environment_container_features.go | 2 ++ pkg/config/env/environment_containers.go | 21 +++++++++++++++++-- pkg/util/kubernetes/kubelet/kubelet.go | 12 ++++++----- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/pkg/config/env/environment_container_features.go b/pkg/config/env/environment_container_features.go index 1601a47696da5..ffced09b49c61 100644 --- a/pkg/config/env/environment_container_features.go +++ b/pkg/config/env/environment_container_features.go @@ -31,4 +31,6 @@ const ( CloudFoundry Feature = "cloudfoundry" // Podman containers storage path accessible Podman Feature = "podman" + // PodResources socket present + PodResources Feature = "podresources" ) diff --git a/pkg/config/env/environment_containers.go b/pkg/config/env/environment_containers.go index 9ddc1cdfcab62..7dbb0cf9ce58f 100644 --- a/pkg/config/env/environment_containers.go +++ b/pkg/config/env/environment_containers.go @@ -46,6 +46,7 @@ func init() { registerFeature(ECSOrchestratorExplorer) registerFeature(CloudFoundry) registerFeature(Podman) + registerFeature(PodResources) } // IsAnyContainerFeaturePresent checks if any of known container features is present @@ -69,6 +70,7 @@ func detectContainerFeatures(features FeatureMap, cfg model.Reader) { detectAWSEnvironments(features, cfg) detectCloudFoundry(features, cfg) detectPodman(features, cfg) + detectPodResources(features, cfg) } func detectKubernetes(features FeatureMap, cfg model.Reader) { @@ -96,7 +98,7 @@ func detectDocker(features FeatureMap) { // Even though it does not modify configuration, using the OverrideFunc mechanism for uniformity model.AddOverrideFunc(func(model.Config) { - os.Setenv("DOCKER_HOST", getDefaultDockerSocketType()+defaultDockerSocketPath) + os.Setenv("DOCKER_HOST", getDefaultSocketPrefix()+defaultDockerSocketPath) }) break } @@ -226,6 +228,21 @@ func detectPodman(features FeatureMap, cfg model.Reader) { } } +func detectPodResources(features FeatureMap, cfg model.Reader) { + // We only check the path from config. Default socket path is defined in the config + socketPath := getDefaultSocketPrefix() + cfg.GetString("kubernetes_kubelet_podresources_socket") + + exists, reachable := socket.IsAvailable(socketPath, socketTimeout) + if exists && reachable { + log.Infof("Agent found PodResources socket at %s", socketPath) + features[PodResources] = struct{}{} + } else if exists && !reachable { + log.Infof("Agent found PodResources socket at %s but socket not reachable (permissions?)", socketPath) + } else { + log.Infof("Agent did not find PodResources socket at %s", socketPath) + } +} + func getHostMountPrefixes() []string { if IsContainerized() { return []string{"", defaultHostMountPrefix} @@ -233,7 +250,7 @@ func getHostMountPrefixes() []string { return []string{""} } -func getDefaultDockerSocketType() string { +func getDefaultSocketPrefix() string { if runtime.GOOS == "windows" { return winNamedPipePrefix } diff --git a/pkg/util/kubernetes/kubelet/kubelet.go b/pkg/util/kubernetes/kubelet/kubelet.go index 5708841967134..d44e8074be936 100644 --- a/pkg/util/kubernetes/kubelet/kubelet.go +++ b/pkg/util/kubernetes/kubelet/kubelet.go @@ -15,6 +15,7 @@ import ( "sync" "time" + "github.com/DataDog/datadog-agent/pkg/config/env" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/errors" "github.com/DataDog/datadog-agent/pkg/util/cache" @@ -84,9 +85,11 @@ func (ku *KubeUtil) init() error { } } - ku.podResourcesClient, err = NewPodResourcesClient(pkgconfigsetup.Datadog()) - if err != nil { - log.Warnf("Failed to create pod resources client, resource data will not be available: %s", err) + if env.IsFeaturePresent(env.PodResources) { + ku.podResourcesClient, err = NewPodResourcesClient(pkgconfigsetup.Datadog()) + if err != nil { + log.Warnf("Failed to create pod resources client, resource data will not be available: %s", err) + } } return nil @@ -214,8 +217,7 @@ func (ku *KubeUtil) getLocalPodList(ctx context.Context) (*PodList, error) { err = ku.addContainerResourcesData(ctx, pods.Items) if err != nil { - // TODO: Switch back to error level once the socket issue is fixed. - log.Debugf("Error adding container resources data: %s", err) + log.Errorf("Error adding container resources data: %s", err) } // ensure we dont have nil pods From 0b3f726f2a98fd5f3fbf4008399a67314806dbcf Mon Sep 17 00:00:00 2001 From: Nicolas Schweitzer Date: Mon, 9 Dec 2024 18:17:43 +0100 Subject: [PATCH 335/439] feat(package_size): Display the package size message in the PR (#31832) --- .gitlab/pkg_metrics/pkg_metrics.yml | 3 +- tasks/libs/package/size.py | 72 +++++++-------- tasks/libs/package/utils.py | 30 +++++++ tasks/package.py | 37 ++++++-- tasks/unit_tests/package_lib_tests.py | 87 ++++++++++--------- tasks/unit_tests/package_tests.py | 24 ++--- .../testdata/package_sizes_real.json | 2 +- 7 files changed, 153 insertions(+), 102 deletions(-) diff --git a/.gitlab/pkg_metrics/pkg_metrics.yml b/.gitlab/pkg_metrics/pkg_metrics.yml index e8616c61247a2..ceed774b62f41 100644 --- a/.gitlab/pkg_metrics/pkg_metrics.yml +++ b/.gitlab/pkg_metrics/pkg_metrics.yml @@ -205,6 +205,5 @@ new_check_pkg_size: - agent_rpm-arm64-a7 - iot_agent_rpm-arm64 script: - - ls -l $OMNIBUS_PACKAGE_DIR - - ls -l $OMNIBUS_PACKAGE_DIR_SUSE + - !reference [.setup_agent_github_app] - inv package.check-size diff --git a/tasks/libs/package/size.py b/tasks/libs/package/size.py index cae0353453f7d..dad67823d3223 100644 --- a/tasks/libs/package/size.py +++ b/tasks/libs/package/size.py @@ -3,11 +3,9 @@ import tempfile from datetime import datetime -from invoke import Exit - from tasks.libs.common.color import Color, color_message from tasks.libs.common.constants import ORIGIN_CATEGORY, ORIGIN_PRODUCT, ORIGIN_SERVICE -from tasks.libs.common.git import get_common_ancestor, get_current_branch, get_default_branch +from tasks.libs.common.git import get_default_branch from tasks.libs.common.utils import get_metric_origin from tasks.libs.package.utils import get_package_path @@ -36,24 +34,25 @@ }, } +# The below template contains the relative increase threshold for each package type PACKAGE_SIZE_TEMPLATE = { 'amd64': { - 'datadog-agent': {'deb': 140000000}, - 'datadog-iot-agent': {'deb': 10000000}, - 'datadog-dogstatsd': {'deb': 10000000}, - 'datadog-heroku-agent': {'deb': 70000000}, + 'datadog-agent': {'deb': 140 * pow(10, 6)}, + 'datadog-iot-agent': {'deb': 10 * pow(10, 6)}, + 'datadog-dogstatsd': {'deb': 10 * pow(10, 6)}, + 'datadog-heroku-agent': {'deb': 70 * pow(10, 6)}, }, 'x86_64': { - 'datadog-agent': {'rpm': 140000000, 'suse': 140000000}, - 'datadog-iot-agent': {'rpm': 10000000, 'suse': 10000000}, - 'datadog-dogstatsd': {'rpm': 10000000, 'suse': 10000000}, + 'datadog-agent': {'rpm': 140 * pow(10, 6), 'suse': 140 * pow(10, 6)}, + 'datadog-iot-agent': {'rpm': 10 * pow(10, 6), 'suse': 10 * pow(10, 6)}, + 'datadog-dogstatsd': {'rpm': 10 * pow(10, 6), 'suse': 10 * pow(10, 6)}, }, 'arm64': { - 'datadog-agent': {'deb': 140000000}, - 'datadog-iot-agent': {'deb': 10000000}, - 'datadog-dogstatsd': {'deb': 10000000}, + 'datadog-agent': {'deb': 140 * pow(10, 6)}, + 'datadog-iot-agent': {'deb': 10 * pow(10, 6)}, + 'datadog-dogstatsd': {'deb': 10 * pow(10, 6)}, }, - 'aarch64': {'datadog-agent': {'rpm': 140000000}, 'datadog-iot-agent': {'rpm': 10000000}}, + 'aarch64': {'datadog-agent': {'rpm': 140 * pow(10, 6)}, 'datadog-iot-agent': {'rpm': 10 * pow(10, 6)}}, } @@ -159,11 +158,10 @@ def compute_package_size_metrics( return series -def compare(ctx, package_sizes, arch, flavor, os_name, threshold): +def compare(ctx, package_sizes, ancestor, arch, flavor, os_name, threshold): """ Compare (or update) a package size with the ancestor package size. """ - mb = 1000000 if os_name == 'suse': dir = os.environ['OMNIBUS_PACKAGE_DIR_SUSE'] path = f'{dir}/{flavor}-7*{arch}.rpm' @@ -172,40 +170,25 @@ def compare(ctx, package_sizes, arch, flavor, os_name, threshold): separator = '_' if os_name == 'deb' else '-' path = f'{dir}/{flavor}{separator}7*{arch}.{os_name}' package_size = _get_uncompressed_size(ctx, get_package_path(path), os_name) - branch = get_current_branch(ctx) - ancestor = get_common_ancestor(ctx, branch) - if branch == get_default_branch(): + if os.environ['CI_COMMIT_REF_NAME'] == get_default_branch(): package_sizes[ancestor][arch][flavor][os_name] = package_size return - previous_size = get_previous_size(package_sizes, ancestor, arch, flavor, os_name) + previous_size = package_sizes[ancestor][arch][flavor][os_name] diff = package_size - previous_size - # For printing purposes - new_package_size_mb = package_size / mb - stable_package_size_mb = previous_size / mb - threshold_mb = threshold / mb - diff_mb = diff / mb - message = f"""{flavor}-{arch}-{os_name} size increase is OK: - New package size is {new_package_size_mb:.2f}MB - Ancestor package ({ancestor}) size is {stable_package_size_mb:.2f}MB - Diff is {diff_mb:.2f}MB (max allowed diff: {threshold_mb:.2f}MB)""" + message = f"{flavor}-{arch}-{os_name} size {mb(package_size)} is OK: {mb(diff)} diff with previous {mb(previous_size)} (max: {mb(threshold)})" if diff > threshold: + emoji = "❌" print(color_message(message.replace('OK', 'too large'), Color.RED), file=sys.stderr) - raise Exit(code=1) - - print(message) + else: + emoji = "✅" if diff <= 0 else "⚠️" + print(message) + return f"|{flavor}-{arch}-{os_name}|{mb(diff)}|{emoji}|{mb(package_size)}|{mb(previous_size)}|{mb(threshold)}|" -def get_previous_size(package_sizes, ancestor, arch, flavor, os_name): - """ - Get the size of the package for the given ancestor, or the earliest ancestor if the given ancestor is not found. - """ - if ancestor in package_sizes: - commit = ancestor - else: - commit = min(package_sizes, key=lambda x: package_sizes[x]['timestamp']) - return package_sizes[commit][arch][flavor][os_name] +def mb(value): + return f"{value / 1000000:.2f}MB" def _get_uncompressed_size(ctx, package, os_name): @@ -218,8 +201,11 @@ def _get_uncompressed_size(ctx, package, os_name): def _get_deb_uncompressed_size(ctx, package): # the size returned by dpkg is a number of bytes divided by 1024 # so we multiply it back to get the same unit as RPM or stat - return int(ctx.run(f'dpkg-deb --info {package} | grep Installed-Size | cut -d : -f 2 | xargs').stdout) * 1024 + return ( + int(ctx.run(f'dpkg-deb --info {package} | grep Installed-Size | cut -d : -f 2 | xargs', hide=True).stdout) + * 1024 + ) def _get_rpm_uncompressed_size(ctx, package): - return int(ctx.run(f'rpm -qip {package} | grep Size | cut -d : -f 2 | xargs').stdout) + return int(ctx.run(f'rpm -qip {package} | grep Size | cut -d : -f 2 | xargs', hide=True).stdout) diff --git a/tasks/libs/package/utils.py b/tasks/libs/package/utils.py index ba5448ad666c7..298901732c33e 100644 --- a/tasks/libs/package/utils.py +++ b/tasks/libs/package/utils.py @@ -3,7 +3,9 @@ from invoke import Exit, UnexpectedExit +from tasks.github_tasks import pr_commenter from tasks.libs.common.color import color_message +from tasks.libs.common.git import get_common_ancestor from tasks.libs.notify.utils import AWS_S3_CP_CMD PACKAGE_SIZE_S3_CI_BUCKET_URL = "s3://dd-ci-artefacts-build-stable/datadog-agent/package_size" @@ -74,3 +76,31 @@ def upload_package_sizes(ctx, package_sizes: dict, package_size_file: str, dista f"{AWS_S3_CP_CMD} {package_size_file} {PACKAGE_SIZE_S3_CI_BUCKET_URL}/{package_size_file}", hide="stdout", ) + + +def get_ancestor(ctx, package_sizes, on_main): + """ + Get the common ancestor between HEAD and the default branch + Return the most recent commit if the ancestor is not found in the package_size file + """ + ancestor = get_common_ancestor(ctx, "HEAD") + if not on_main and ancestor not in package_sizes: + return min(package_sizes, key=lambda x: package_sizes[x]['timestamp']) + return ancestor + + +def display_message(ctx, ancestor, rows, decision): + is_open = '' if "Passed" in decision else ' open' + message = f"""Comparison with [ancestor](https://github.com/DataDog/datadog-agent/commit/{ancestor}) `{ancestor}` + + Diff per package + +|package|diff|status|size|ancestor|threshold| +|--|--|--|--|--|--| +{rows} + + +## Decision +{decision} +""" + pr_commenter(ctx, title="Package size comparison", body=message) diff --git a/tasks/package.py b/tasks/package.py index 4e9a859ae8850..307624be2f2f2 100644 --- a/tasks/package.py +++ b/tasks/package.py @@ -4,8 +4,8 @@ from invoke import task from invoke.exceptions import Exit -from tasks.libs.common.color import color_message -from tasks.libs.common.git import get_common_ancestor, get_current_branch, get_default_branch +from tasks.libs.common.color import Color, color_message +from tasks.libs.common.git import get_default_branch from tasks.libs.package.size import ( PACKAGE_SIZE_TEMPLATE, _get_deb_uncompressed_size, @@ -13,25 +13,48 @@ compare, compute_package_size_metrics, ) -from tasks.libs.package.utils import get_package_path, list_packages, retrieve_package_sizes, upload_package_sizes +from tasks.libs.package.utils import ( + display_message, + get_ancestor, + get_package_path, + list_packages, + retrieve_package_sizes, + upload_package_sizes, +) @task def check_size(ctx, filename: str = 'package_sizes.json', dry_run: bool = False): package_sizes = retrieve_package_sizes(ctx, filename, distant=not dry_run) - if get_current_branch(ctx) == get_default_branch(): + on_main = os.environ['CI_COMMIT_REF_NAME'] == get_default_branch() + ancestor = get_ancestor(ctx, package_sizes, on_main) + if on_main: # Initialize to default values - ancestor = get_common_ancestor(ctx, get_default_branch()) if ancestor in package_sizes: # The test already ran on this commit return package_sizes[ancestor] = PACKAGE_SIZE_TEMPLATE package_sizes[ancestor]['timestamp'] = int(datetime.now().timestamp()) # Check size of packages + print( + color_message(f"Checking package sizes from {os.environ['CI_COMMIT_REF_NAME']} against {ancestor}", Color.BLUE) + ) + size_table = "" for package_info in list_packages(PACKAGE_SIZE_TEMPLATE): - compare(ctx, package_sizes, *package_info) - if get_current_branch(ctx) == get_default_branch(): + size_table += f"{compare(ctx, package_sizes, ancestor, *package_info)}\n" + + if on_main: upload_package_sizes(ctx, package_sizes, filename, distant=not dry_run) + else: + if "❌" in size_table: + decision = "❌ Failed" + elif "⚠️" in size_table: + decision = "⚠️ Warning" + else: + decision = "✅ Passed" + display_message(ctx, ancestor, size_table, decision) + if "Failed" in decision: + raise Exit(code=1) @task diff --git a/tasks/unit_tests/package_lib_tests.py b/tasks/unit_tests/package_lib_tests.py index 0ae56501c3439..57816701fd07c 100644 --- a/tasks/unit_tests/package_lib_tests.py +++ b/tasks/unit_tests/package_lib_tests.py @@ -3,7 +3,7 @@ import unittest from unittest.mock import MagicMock, patch -from invoke import Exit, MockContext, Result +from invoke import MockContext, Result from tasks.libs.package.size import ( PACKAGE_SIZE_TEMPLATE, @@ -11,9 +11,8 @@ _get_uncompressed_size, compare, compute_package_size_metrics, - get_previous_size, ) -from tasks.libs.package.utils import list_packages +from tasks.libs.package.utils import get_ancestor, list_packages class TestProduceSizeStats(unittest.TestCase): @@ -135,14 +134,20 @@ def setUp(self) -> None: with open('tasks/unit_tests/testdata/package_sizes.json') as f: self.package_sizes = json.load(f) - def test_is_ancestor(self): - self.assertEqual(get_previous_size(self.package_sizes, "grand_ma", "artdeco", "cherry", 'fibula'), 42) + @patch.dict('os.environ', {'CI_COMMIT_REF_NAME': 'puppet'}) + def test_found_on_dev(self): + c = MockContext(run={'git merge-base HEAD origin/main': Result('grand_ma')}) + self.assertEqual(get_ancestor(c, self.package_sizes, False), "grand_ma") - def test_is_other_ancestor(self): - self.assertEqual(get_previous_size(self.package_sizes, "pa", "artdeco", "cherry", 'fibula'), 3) + @patch.dict('os.environ', {'CI_COMMIT_REF_NAME': 'puppet'}) + def test_not_found_on_dev(self): + c = MockContext(run={'git merge-base HEAD origin/main': Result('grand_pa')}) + self.assertEqual(get_ancestor(c, self.package_sizes, False), "grand_ma") - def test_is_not_ancestor(self): - self.assertEqual(get_previous_size(self.package_sizes, "grandPa", "artdeco", "cherry", 'fibula'), 42) + @patch.dict('os.environ', {'CI_COMMIT_REF_NAME': 'main'}) + def test_on_main(self): + c = MockContext(run={'git merge-base HEAD origin/main': Result('kirk')}) + self.assertEqual(get_ancestor(c, self.package_sizes, True), "kirk") class TestGetUncompressedSize(unittest.TestCase): @@ -170,14 +175,15 @@ def setUp(self) -> None: with open('tasks/unit_tests/testdata/package_sizes.json') as f: self.package_sizes = json.load(f) - @patch.dict('os.environ', {'OMNIBUS_PACKAGE_DIR': 'tasks/unit_tests/testdata/packages'}) + @patch.dict( + 'os.environ', {'OMNIBUS_PACKAGE_DIR': 'tasks/unit_tests/testdata/packages', 'CI_COMMIT_REF_NAME': 'main'} + ) @patch('builtins.print') def test_on_main(self, mock_print): flavor, arch, os_name = 'datadog-heroku-agent', 'amd64', 'deb' c = MockContext( run={ - 'git rev-parse --abbrev-ref HEAD': Result('main'), - 'git merge-base main origin/main': Result('12345'), + 'git merge-base HEAD origin/main': Result('12345'), f"dpkg-deb --info {self.pkg_root}/{flavor}_7_{arch}.{os_name} | grep Installed-Size | cut -d : -f 2 | xargs": Result( 42 ), @@ -185,65 +191,68 @@ def test_on_main(self, mock_print): ) self.package_sizes['12345'] = PACKAGE_SIZE_TEMPLATE self.assertEqual(self.package_sizes['12345'][arch][flavor][os_name], 70000000) - compare(c, self.package_sizes, arch, flavor, os_name, 2001) + res = compare(c, self.package_sizes, '12345', arch, flavor, os_name, 2001) + self.assertIsNone(res) self.assertEqual(self.package_sizes['12345'][arch][flavor][os_name], 43008) mock_print.assert_not_called() - @patch.dict('os.environ', {'OMNIBUS_PACKAGE_DIR_SUSE': 'tasks/unit_tests/testdata/packages'}) + @patch.dict( + 'os.environ', + {'OMNIBUS_PACKAGE_DIR_SUSE': 'tasks/unit_tests/testdata/packages', 'CI_COMMIT_REF_NAME': 'pikachu'}, + ) @patch('builtins.print') - def test_on_branch_ok(self, mock_print): + def test_on_branch_warning(self, mock_print): flavor, arch, os_name = 'datadog-agent', 'aarch64', 'suse' c = MockContext( run={ - 'git rev-parse --abbrev-ref HEAD': Result('pikachu'), - 'git merge-base pikachu origin/main': Result('25'), + 'git merge-base HEAD origin/main': Result('25'), f"rpm -qip {self.pkg_root}/{flavor}-7.{arch}.rpm | grep Size | cut -d : -f 2 | xargs": Result(69000000), } ) - compare(c, self.package_sizes, arch, flavor, os_name, 70000000) - mock_print.assert_called_with(f"""{flavor}-{arch}-{os_name} size increase is OK: - New package size is 69.00MB - Ancestor package (25) size is 68.00MB - Diff is 1.00MB (max allowed diff: 70.00MB)""") + res = compare(c, self.package_sizes, '25', arch, flavor, os_name, 70000000) + self.assertEqual(res, "|datadog-agent-aarch64-suse|1.00MB|⚠️|69.00MB|68.00MB|70.00MB|") + mock_print.assert_called_with( + f"{flavor}-{arch}-{os_name} size 69.00MB is OK: 1.00MB diff with previous 68.00MB (max: 70.00MB)" + ) - @patch.dict('os.environ', {'OMNIBUS_PACKAGE_DIR': 'tasks/unit_tests/testdata/packages'}) + @patch.dict( + 'os.environ', {'OMNIBUS_PACKAGE_DIR': 'tasks/unit_tests/testdata/packages', 'CI_COMMIT_REF_NAME': 'pikachu'} + ) @patch('builtins.print') def test_on_branch_ok_rpm(self, mock_print): flavor, arch, os_name = 'datadog-iot-agent', 'x86_64', 'rpm' c = MockContext( run={ - 'git rev-parse --abbrev-ref HEAD': Result('pikachu'), - 'git merge-base pikachu origin/main': Result('25'), + 'git merge-base HEAD origin/main': Result('25'), f"rpm -qip {self.pkg_root}/{flavor}-7.{arch}.{os_name} | grep Size | cut -d : -f 2 | xargs": Result( 69000000 ), } ) - compare(c, self.package_sizes, arch, flavor, os_name, 70000000) - mock_print.assert_called_with(f"""{flavor}-{arch}-{os_name} size increase is OK: - New package size is 69.00MB - Ancestor package (25) size is 78.00MB - Diff is -9.00MB (max allowed diff: 70.00MB)""") + res = compare(c, self.package_sizes, '25', arch, flavor, os_name, 70000000) + self.assertEqual(res, "|datadog-iot-agent-x86_64-rpm|-9.00MB|✅|69.00MB|78.00MB|70.00MB|") + mock_print.assert_called_with( + f"{flavor}-{arch}-{os_name} size 69.00MB is OK: -9.00MB diff with previous 78.00MB (max: 70.00MB)" + ) - @patch.dict('os.environ', {'OMNIBUS_PACKAGE_DIR_SUSE': 'tasks/unit_tests/testdata/packages'}) + @patch.dict( + 'os.environ', + {'OMNIBUS_PACKAGE_DIR_SUSE': 'tasks/unit_tests/testdata/packages', 'CI_COMMIT_REF_NAME': 'pikachu'}, + ) @patch('builtins.print') def test_on_branch_ko(self, mock_print): flavor, arch, os_name = 'datadog-agent', 'aarch64', 'suse' c = MockContext( run={ - 'git rev-parse --abbrev-ref HEAD': Result('pikachu'), - 'git merge-base pikachu origin/main': Result('25'), + 'git merge-base HEAD origin/main': Result('25'), f"rpm -qip {self.pkg_root}/{flavor}-7.{arch}.rpm | grep Size | cut -d : -f 2 | xargs": Result( 139000000 ), } ) - with self.assertRaises(Exit): - compare(c, self.package_sizes, arch, flavor, os_name, 70000000) + res = compare(c, self.package_sizes, '25', arch, flavor, os_name, 70000000) + self.assertEqual(res, "|datadog-agent-aarch64-suse|71.00MB|❌|139.00MB|68.00MB|70.00MB|") mock_print.assert_called_with( - """\x1b[91mdatadog-agent-aarch64-suse size increase is too large: - New package size is 139.00MB - Ancestor package (25) size is 68.00MB - Diff is 71.00MB (max allowed diff: 70.00MB)\x1b[0m""", + "\x1b[91mdatadog-agent-aarch64-suse size 139.00MB is too large: 71.00MB diff with previous 68.00MB (max: 70.00MB)\x1b[0m", file=sys.stderr, ) diff --git a/tasks/unit_tests/package_tests.py b/tasks/unit_tests/package_tests.py index 912c1ce53a912..b1698695b8e5e 100644 --- a/tasks/unit_tests/package_tests.py +++ b/tasks/unit_tests/package_tests.py @@ -13,15 +13,16 @@ class TestCheckSize(unittest.TestCase): { 'OMNIBUS_PACKAGE_DIR': 'tasks/unit_tests/testdata/packages', 'OMNIBUS_PACKAGE_DIR_SUSE': 'tasks/unit_tests/testdata/packages', + 'CI_COMMIT_REF_NAME': 'pikachu', }, ) @patch('tasks.libs.package.size.get_package_path', new=MagicMock(return_value='datadog-agent')) + @patch('tasks.package.display_message', new=MagicMock()) def test_dev_branch_ko(self): flavor = 'datadog-agent' c = MockContext( run={ - 'git rev-parse --abbrev-ref HEAD': Result('pikachu'), - 'git merge-base pikachu origin/main': Result('25'), + 'git merge-base HEAD origin/main': Result('25'), f"dpkg-deb --info {flavor} | grep Installed-Size | cut -d : -f 2 | xargs": Result(42), f"rpm -qip {flavor} | grep Size | cut -d : -f 2 | xargs": Result(69000000), } @@ -35,38 +36,41 @@ def test_dev_branch_ko(self): { 'OMNIBUS_PACKAGE_DIR': 'tasks/unit_tests/testdata/packages', 'OMNIBUS_PACKAGE_DIR_SUSE': 'tasks/unit_tests/testdata/packages', + 'CI_COMMIT_REF_NAME': 'pikachu', }, ) @patch('tasks.libs.package.size.get_package_path', new=MagicMock(return_value='datadog-agent')) - def test_dev_branch_ok(self, print_mock): + @patch('tasks.package.display_message', new=MagicMock()) + @patch('tasks.package.upload_package_sizes') + def test_dev_branch_ok(self, upload_mock, print_mock): flavor = 'datadog-agent' c = MockContext( run={ - 'git rev-parse --abbrev-ref HEAD': Result('pikachu'), - 'git merge-base pikachu origin/main': Result('25'), + 'git merge-base HEAD origin/main': Result('25'), f"dpkg-deb --info {flavor} | grep Installed-Size | cut -d : -f 2 | xargs": Result(42), f"rpm -qip {flavor} | grep Size | cut -d : -f 2 | xargs": Result(20000000), } ) check_size(c, filename='tasks/unit_tests/testdata/package_sizes_real.json', dry_run=True) print_mock.assert_called() - self.assertEqual(print_mock.call_count, 15) + self.assertEqual(print_mock.call_count, 16) + upload_mock.assert_not_called() - @patch('builtins.print') @patch.dict( 'os.environ', { 'OMNIBUS_PACKAGE_DIR': 'tasks/unit_tests/testdata/packages', 'OMNIBUS_PACKAGE_DIR_SUSE': 'tasks/unit_tests/testdata/packages', + 'CI_COMMIT_REF_NAME': 'main', }, ) @patch('tasks.libs.package.size.get_package_path', new=MagicMock(return_value='datadog-agent')) - def test_main_branch_ok(self, print_mock): + @patch('tasks.package.display_message', new=MagicMock()) + def test_main_branch_ok(self): flavor = 'datadog-agent' c = MockContext( run={ - 'git rev-parse --abbrev-ref HEAD': Result('main'), - 'git merge-base main origin/main': Result('25'), + 'git merge-base HEAD origin/main': Result('25'), f"dpkg-deb --info {flavor} | grep Installed-Size | cut -d : -f 2 | xargs": Result(42), f"rpm -qip {flavor} | grep Size | cut -d : -f 2 | xargs": Result(20000000), } diff --git a/tasks/unit_tests/testdata/package_sizes_real.json b/tasks/unit_tests/testdata/package_sizes_real.json index e24ed4d2bc98d..39f8858b13e0b 100644 --- a/tasks/unit_tests/testdata/package_sizes_real.json +++ b/tasks/unit_tests/testdata/package_sizes_real.json @@ -1 +1 @@ -{"12345": {"timestamp": 1732804637, "amd64": {"datadog-agent": {"deb": 140000000}, "datadog-iot-agent": {"deb": 10000000}, "datadog-dogstatsd": {"deb": 10000000}, "datadog-heroku-agent": {"deb": 70000000}}, "x86_64": {"datadog-agent": {"rpm": 140000000, "suse": 140000000}, "datadog-iot-agent": {"rpm": 10000000, "suse": 10000000}, "datadog-dogstatsd": {"rpm": 10000000, "suse": 10000000}}, "arm64": {"datadog-agent": {"deb": 140000000}, "datadog-iot-agent": {"deb": 10000000}, "datadog-dogstatsd": {"deb": 10000000}}, "aarch64": {"datadog-agent": {"rpm": 140000000}, "datadog-iot-agent": {"rpm": 10000000}}}} \ No newline at end of file +{"12345": {"timestamp": 1732804637, "amd64": {"datadog-agent": {"deb": 140000000}, "datadog-iot-agent": {"deb": 10000000}, "datadog-dogstatsd": {"deb": 10000000}, "datadog-heroku-agent": {"deb": 70000000}}, "x86_64": {"datadog-agent": {"rpm": 140000000, "suse": 140000000}, "datadog-iot-agent": {"rpm": 10000000, "suse": 10000000}, "datadog-dogstatsd": {"rpm": 10000000, "suse": 10000000}}, "arm64": {"datadog-agent": {"deb": 140000000}, "datadog-iot-agent": {"deb": 10000000}, "datadog-dogstatsd": {"deb": 10000000}}, "aarch64": {"datadog-agent": {"rpm": 140000000}, "datadog-iot-agent": {"rpm": 10000000}}}} From c5069b54c0645677da73fcaf0765bbf6c898c8e1 Mon Sep 17 00:00:00 2001 From: Stan Rozenraukh Date: Mon, 9 Dec 2024 12:32:07 -0500 Subject: [PATCH 336/439] Only set INSTALLATION environment variables when doing injection (#31503) Co-authored-by: Rosa Trieu <107086888+rtrieu@users.noreply.github.com> --- .../auto_instrumentation.go | 4 +- .../auto_instrumentation_test.go | 44 ++----------------- ...disabled-no-env-vars-135252f0eb8ddef4.yaml | 5 +++ 3 files changed, 12 insertions(+), 41 deletions(-) create mode 100644 releasenotes-dca/notes/admission-controller-disabled-no-env-vars-135252f0eb8ddef4.yaml diff --git a/pkg/clusteragent/admission/mutate/autoinstrumentation/auto_instrumentation.go b/pkg/clusteragent/admission/mutate/autoinstrumentation/auto_instrumentation.go index b25289c3a1d31..a3d1aff6b6afa 100644 --- a/pkg/clusteragent/admission/mutate/autoinstrumentation/auto_instrumentation.go +++ b/pkg/clusteragent/admission/mutate/autoinstrumentation/auto_instrumentation.go @@ -157,7 +157,6 @@ func (w *Webhook) inject(pod *corev1.Pod, ns string, _ dynamic.Interface) (bool, if pod.Namespace == "" { pod.Namespace = ns } - injectApmTelemetryConfig(pod) if !w.isPodEligible(pod) { return false, nil @@ -371,6 +370,9 @@ func (s libInfoSource) mutatePod(pod *corev1.Pod) error { Name: instrumentationInstallTypeEnvVarName, Value: s.injectionType(), }) + + injectApmTelemetryConfig(pod) + return nil } diff --git a/pkg/clusteragent/admission/mutate/autoinstrumentation/auto_instrumentation_test.go b/pkg/clusteragent/admission/mutate/autoinstrumentation/auto_instrumentation_test.go index 2db44b4acbb6a..97dda98d33174 100644 --- a/pkg/clusteragent/admission/mutate/autoinstrumentation/auto_instrumentation_test.go +++ b/pkg/clusteragent/admission/mutate/autoinstrumentation/auto_instrumentation_test.go @@ -2307,16 +2307,7 @@ func TestInjectAutoInstrumentation(t *testing.T) { "admission.datadoghq.com/enabled": "false", }, }.Create(), - expectedEnvs: []corev1.EnvVar{ - { - Name: "DD_INSTRUMENTATION_INSTALL_TIME", - Value: installTime, - }, - { - Name: "DD_INSTRUMENTATION_INSTALL_ID", - Value: uuid, - }, - }, + expectedEnvs: nil, expectedInjectedLibraries: map[string]string{}, expectedSecurityContext: &corev1.SecurityContext{}, wantErr: false, @@ -2415,16 +2406,7 @@ func TestInjectAutoInstrumentation(t *testing.T) { ParentKind: "replicaset", ParentName: "test-deployment-123", }.Create(), - expectedEnvs: []corev1.EnvVar{ - { - Name: "DD_INSTRUMENTATION_INSTALL_TIME", - Value: installTime, - }, - { - Name: "DD_INSTRUMENTATION_INSTALL_ID", - Value: uuid, - }, - }, + expectedEnvs: nil, expectedInjectedLibraries: map[string]string{}, expectedSecurityContext: &corev1.SecurityContext{}, wantErr: false, @@ -2495,16 +2477,7 @@ func TestInjectAutoInstrumentation(t *testing.T) { ParentKind: "replicaset", ParentName: "test-deployment-123", }.Create(), - expectedEnvs: []corev1.EnvVar{ - { - Name: "DD_INSTRUMENTATION_INSTALL_TIME", - Value: installTime, - }, - { - Name: "DD_INSTRUMENTATION_INSTALL_ID", - Value: uuid, - }, - }, + expectedEnvs: nil, expectedInjectedLibraries: map[string]string{}, expectedSecurityContext: &corev1.SecurityContext{}, wantErr: false, @@ -2517,16 +2490,7 @@ func TestInjectAutoInstrumentation(t *testing.T) { ParentKind: "replicaset", ParentName: "test-deployment-123", }.Create(), - expectedEnvs: []corev1.EnvVar{ - { - Name: "DD_INSTRUMENTATION_INSTALL_TIME", - Value: installTime, - }, - { - Name: "DD_INSTRUMENTATION_INSTALL_ID", - Value: uuid, - }, - }, + expectedEnvs: nil, expectedInjectedLibraries: map[string]string{}, expectedSecurityContext: &corev1.SecurityContext{}, wantErr: false, diff --git a/releasenotes-dca/notes/admission-controller-disabled-no-env-vars-135252f0eb8ddef4.yaml b/releasenotes-dca/notes/admission-controller-disabled-no-env-vars-135252f0eb8ddef4.yaml new file mode 100644 index 0000000000000..763bb18a91d83 --- /dev/null +++ b/releasenotes-dca/notes/admission-controller-disabled-no-env-vars-135252f0eb8ddef4.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + The auto-instrumentation webhook no longer injects the default environment + variables when disabled. From b2fbed91df80d72c08950b8433e6981c3bc660b0 Mon Sep 17 00:00:00 2001 From: Florent Clarret Date: Mon, 9 Dec 2024 19:08:39 +0100 Subject: [PATCH 337/439] Fix the Create RC PR Workflow (#31892) --- .github/workflows/create_rc_pr.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/create_rc_pr.yml b/.github/workflows/create_rc_pr.yml index 874944a0fe95d..5539dc44532b1 100644 --- a/.github/workflows/create_rc_pr.yml +++ b/.github/workflows/create_rc_pr.yml @@ -62,8 +62,6 @@ jobs: - name: Checkout release branch uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 with: - ref: ${{ matrix.value }} - fetch-depth: 0 persist-credentials: true - name: Install python From 426d979ee9ba40fe4cb65a28067a4d4fdcf022c1 Mon Sep 17 00:00:00 2001 From: Adel Haj Hassan <41540817+adel121@users.noreply.github.com> Date: Mon, 9 Dec 2024 19:49:12 +0100 Subject: [PATCH 338/439] [CONTP-521] use a hybrid health check for wlm kubeapiserver collector (#31876) --- .../core/healthprobe/impl/healthprobe_test.go | 3 ++- .../internal/kubeapiserver/kubeapiserver.go | 2 +- pkg/status/health/global.go | 16 +++++++------ pkg/status/health/health.go | 23 ++++++++----------- pkg/status/health/health_test.go | 6 ++--- pkg/status/health/options.go | 15 ++++++++++++ 6 files changed, 40 insertions(+), 25 deletions(-) create mode 100644 pkg/status/health/options.go diff --git a/comp/core/healthprobe/impl/healthprobe_test.go b/comp/core/healthprobe/impl/healthprobe_test.go index 0dc9b5d271bad..7774e42043765 100644 --- a/comp/core/healthprobe/impl/healthprobe_test.go +++ b/comp/core/healthprobe/impl/healthprobe_test.go @@ -13,11 +13,12 @@ import ( "net/http/httptest" "testing" + "github.com/stretchr/testify/assert" + healthprobeComponent "github.com/DataDog/datadog-agent/comp/core/healthprobe/def" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" compdef "github.com/DataDog/datadog-agent/comp/def" "github.com/DataDog/datadog-agent/pkg/status/health" - "github.com/stretchr/testify/assert" ) func TestServer(t *testing.T) { diff --git a/comp/core/workloadmeta/collectors/internal/kubeapiserver/kubeapiserver.go b/comp/core/workloadmeta/collectors/internal/kubeapiserver/kubeapiserver.go index 0666db1755b75..7def82fc21d9b 100644 --- a/comp/core/workloadmeta/collectors/internal/kubeapiserver/kubeapiserver.go +++ b/comp/core/workloadmeta/collectors/internal/kubeapiserver/kubeapiserver.go @@ -224,7 +224,7 @@ func runStartupCheck(ctx context.Context, stores []*reflectorStore) { // There is no way to ensure liveness correctly as it would need to be plugged inside the // inner loop of Reflector. // However, we add Startup when we got at least some data. - startupHealthCheck := health.RegisterStartup(componentName) + startupHealthCheck := health.RegisterReadiness(componentName, health.Once) // Checked synced, in its own scope to cleanly un-reference the syncTimer { diff --git a/pkg/status/health/global.go b/pkg/status/health/global.go index 32af425cbe111..9f6c031f22128 100644 --- a/pkg/status/health/global.go +++ b/pkg/status/health/global.go @@ -12,21 +12,23 @@ import ( var readinessAndLivenessCatalog = newCatalog() var readinessOnlyCatalog = newCatalog() -var startupOnlyCatalog = newStartupCatalog() +var startupOnlyCatalog = newCatalog() // RegisterReadiness registers a component for readiness check with the default 30 seconds timeout, returns a token -func RegisterReadiness(name string) *Handle { - return readinessOnlyCatalog.register(name) +func RegisterReadiness(name string, options ...Option) *Handle { + return readinessOnlyCatalog.register(name, options...) } // RegisterLiveness registers a component for liveness check with the default 30 seconds timeout, returns a token -func RegisterLiveness(name string) *Handle { - return readinessAndLivenessCatalog.register(name) +func RegisterLiveness(name string, options ...Option) *Handle { + return readinessAndLivenessCatalog.register(name, options...) } // RegisterStartup registers a component for startup check, returns a token -func RegisterStartup(name string) *Handle { - return startupOnlyCatalog.register(name) +func RegisterStartup(name string, options ...Option) *Handle { + // Startup health checks are registered with Once option because, by design, they should stop being checked + // once they are marked as healthy once + return startupOnlyCatalog.register(name, append(options, Once)...) } // Deregister a component from the healthcheck diff --git a/pkg/status/health/health.go b/pkg/status/health/health.go index 7e3e3327bb794..0b1a0e8a69c96 100644 --- a/pkg/status/health/health.go +++ b/pkg/status/health/health.go @@ -29,33 +29,25 @@ type component struct { name string healthChan chan time.Time healthy bool + // if set to true, once the check is healthy, we mark it as healthy forever and we stop checking it + once bool } type catalog struct { sync.RWMutex components map[*Handle]*component latestRun time.Time - startup bool } func newCatalog() *catalog { return &catalog{ components: make(map[*Handle]*component), latestRun: time.Now(), // Start healthy - startup: false, - } -} - -func newStartupCatalog() *catalog { - return &catalog{ - components: make(map[*Handle]*component), - latestRun: time.Now(), // Start healthy - startup: true, } } // register a component with the default 30 seconds timeout, returns a token -func (c *catalog) register(name string) *Handle { +func (c *catalog) register(name string, options ...Option) *Handle { c.Lock() defer c.Unlock() @@ -68,6 +60,11 @@ func (c *catalog) register(name string) *Handle { healthChan: make(chan time.Time, bufferSize), healthy: false, } + + for _, option := range options { + option(component) + } + h := &Handle{ C: component.healthChan, } @@ -107,8 +104,8 @@ func (c *catalog) pingComponents(healthDeadline time.Time) bool { c.Lock() defer c.Unlock() for _, component := range c.components { - // In startup mode, we skip already healthy components. - if c.startup && component.healthy { + // We skip components that are registered to be skipped once they pass once + if component.healthy && component.once { continue } select { diff --git a/pkg/status/health/health_test.go b/pkg/status/health/health_test.go index f1d934fb157e5..37a57773a1d73 100644 --- a/pkg/status/health/health_test.go +++ b/pkg/status/health/health_test.go @@ -124,9 +124,9 @@ func TestGetHealthy(t *testing.T) { assert.Len(t, status.Unhealthy, 0) } -func TestStartupCatalog(t *testing.T) { - cat := newStartupCatalog() - token := cat.register("test1") +func TestCatalogWithOnceComponent(t *testing.T) { + cat := newCatalog() + token := cat.register("test1", Once) // Start unhealthy status := cat.getStatus() diff --git a/pkg/status/health/options.go b/pkg/status/health/options.go new file mode 100644 index 0000000000000..c2182a6a3d485 --- /dev/null +++ b/pkg/status/health/options.go @@ -0,0 +1,15 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package health implements the internal healthcheck +package health + +// Option represents the application of an option to a component's health check +type Option func(*component) + +// Once has the effect of not checking the health of a component once it has been marked healthy once +func Once(c *component) { + c.once = true +} From cefb01ce6f8d35672b2fca8dc3cd8939fc1dff0b Mon Sep 17 00:00:00 2001 From: sabrina lu Date: Mon, 9 Dec 2024 14:01:49 -0500 Subject: [PATCH 339/439] add agent onboarding as codeowners to install related files (#31893) --- .github/CODEOWNERS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 4f6fc8357ea4e..cd6fe7ade112c 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -25,7 +25,7 @@ /CHANGELOG.rst @DataDog/agent-delivery /CHANGELOG-DCA.rst @DataDog/container-integrations @DataDog/container-platform -/CHANGELOG-INSTALLSCRIPT.rst @DataDog/agent-delivery +/CHANGELOG-INSTALLSCRIPT.rst @DataDog/agent-delivery @DataDog/container-ecosystems /*.md @DataDog/agent-devx-infra @DataDog/documentation /NOTICE @DataDog/agent-delivery @DataDog/documentation @@ -91,7 +91,7 @@ /.gitlab/binary_build/include.yml @DataDog/agent-devx-infra /.gitlab/binary_build/linux.yml @DataDog/agent-devx-infra @DataDog/agent-delivery /.gitlab/functional_test/include.yml @DataDog/agent-devx-infra -/.gitlab/install_script_testing/install_script_testing.yml @DataDog/agent-delivery +/.gitlab/install_script_testing/install_script_testing.yml @DataDog/agent-delivery @DataDog/container-ecosystems /.gitlab/integration_test/dogstatsd.yml @DataDog/agent-devx-infra @DataDog/agent-metrics-logs /.gitlab/integration_test/include.yml @DataDog/agent-devx-infra /.gitlab/integration_test/linux.yml @DataDog/agent-devx-infra From e08947533be88e02dba2fcde55055d5495bff9d9 Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Mon, 9 Dec 2024 20:42:01 +0100 Subject: [PATCH 340/439] [CWS] remove watch dir option from directory provider (#31884) Co-authored-by: Sandra (neko) <165049174+neko-dd@users.noreply.github.com> --- .../subcommands/runtime/command.go | 4 +- .../subcommands/runtime/command.go | 4 +- pkg/config/setup/system_probe_cws.go | 1 - pkg/security/config/config.go | 3 - pkg/security/rules/engine.go | 2 +- pkg/security/secl/go.mod | 1 - pkg/security/secl/go.sum | 2 - pkg/security/secl/rules/policy_dir.go | 98 +------------------ pkg/security/secl/rules/policy_test.go | 12 +-- pkg/security/tests/module_tester.go | 2 +- ...ove-watch-dir-option-f8faee4937353316.yaml | 13 +++ 11 files changed, 29 insertions(+), 113 deletions(-) create mode 100644 releasenotes/notes/cws-remove-watch-dir-option-f8faee4937353316.yaml diff --git a/cmd/security-agent/subcommands/runtime/command.go b/cmd/security-agent/subcommands/runtime/command.go index 0b32529c60d36..08bbdcea4c787 100644 --- a/cmd/security-agent/subcommands/runtime/command.go +++ b/cmd/security-agent/subcommands/runtime/command.go @@ -472,7 +472,7 @@ func checkPoliciesLocal(args *checkPoliciesCliParams, writer io.Writer) error { }, } - provider, err := rules.NewPoliciesDirProvider(args.dir, false) + provider, err := rules.NewPoliciesDirProvider(args.dir) if err != nil { return err } @@ -611,7 +611,7 @@ func evalRule(_ log.Component, _ config.Component, _ secrets.Component, evalArgs }, } - provider, err := rules.NewPoliciesDirProvider(policiesDir, false) + provider, err := rules.NewPoliciesDirProvider(policiesDir) if err != nil { return err } diff --git a/cmd/system-probe/subcommands/runtime/command.go b/cmd/system-probe/subcommands/runtime/command.go index e6030500a9b17..e0d17e16d0a2e 100644 --- a/cmd/system-probe/subcommands/runtime/command.go +++ b/cmd/system-probe/subcommands/runtime/command.go @@ -466,7 +466,7 @@ func checkPoliciesLocal(args *checkPoliciesCliParams, writer io.Writer) error { }, } - provider, err := rules.NewPoliciesDirProvider(args.dir, false) + provider, err := rules.NewPoliciesDirProvider(args.dir) if err != nil { return err } @@ -583,7 +583,7 @@ func evalRule(_ log.Component, _ config.Component, _ secrets.Component, evalArgs }, } - provider, err := rules.NewPoliciesDirProvider(policiesDir, false) + provider, err := rules.NewPoliciesDirProvider(policiesDir) if err != nil { return err } diff --git a/pkg/config/setup/system_probe_cws.go b/pkg/config/setup/system_probe_cws.go index b72d72df3c971..d2cc6276907d3 100644 --- a/pkg/config/setup/system_probe_cws.go +++ b/pkg/config/setup/system_probe_cws.go @@ -20,7 +20,6 @@ func initCWSSystemProbeConfig(cfg pkgconfigmodel.Config) { // CWS - general config cfg.BindEnvAndSetDefault("runtime_security_config.enabled", false) cfg.BindEnv("runtime_security_config.fim_enabled") - cfg.BindEnvAndSetDefault("runtime_security_config.policies.watch_dir", false) cfg.BindEnvAndSetDefault("runtime_security_config.policies.monitor.enabled", false) cfg.BindEnvAndSetDefault("runtime_security_config.policies.monitor.per_rule_enabled", false) cfg.BindEnvAndSetDefault("runtime_security_config.policies.monitor.report_internal_policies", false) diff --git a/pkg/security/config/config.go b/pkg/security/config/config.go index fc9cbcecc6a4b..ab6b0b6b591e1 100644 --- a/pkg/security/config/config.go +++ b/pkg/security/config/config.go @@ -45,8 +45,6 @@ type RuntimeSecurityConfig struct { RuntimeEnabled bool // PoliciesDir defines the folder in which the policy files are located PoliciesDir string - // WatchPoliciesDir activate policy dir inotify - WatchPoliciesDir bool // PolicyMonitorEnabled enable policy monitoring PolicyMonitorEnabled bool // PolicyMonitorPerRuleEnabled enabled per-rule policy monitoring @@ -353,7 +351,6 @@ func NewRuntimeSecurityConfig() (*RuntimeSecurityConfig, error) { // policy & ruleset PoliciesDir: pkgconfigsetup.SystemProbe().GetString("runtime_security_config.policies.dir"), - WatchPoliciesDir: pkgconfigsetup.SystemProbe().GetBool("runtime_security_config.policies.watch_dir"), PolicyMonitorEnabled: pkgconfigsetup.SystemProbe().GetBool("runtime_security_config.policies.monitor.enabled"), PolicyMonitorPerRuleEnabled: pkgconfigsetup.SystemProbe().GetBool("runtime_security_config.policies.monitor.per_rule_enabled"), PolicyMonitorReportInternalPolicies: pkgconfigsetup.SystemProbe().GetBool("runtime_security_config.policies.monitor.report_internal_policies"), diff --git a/pkg/security/rules/engine.go b/pkg/security/rules/engine.go index 6b0f98fd15666..ffb73244b6c2d 100644 --- a/pkg/security/rules/engine.go +++ b/pkg/security/rules/engine.go @@ -377,7 +377,7 @@ func (e *RuleEngine) gatherDefaultPolicyProviders() []rules.PolicyProvider { } // directory policy provider - if provider, err := rules.NewPoliciesDirProvider(e.config.PoliciesDir, e.config.WatchPoliciesDir); err != nil { + if provider, err := rules.NewPoliciesDirProvider(e.config.PoliciesDir); err != nil { seclog.Errorf("failed to load local policies: %s", err) } else { policyProviders = append(policyProviders, provider) diff --git a/pkg/security/secl/go.mod b/pkg/security/secl/go.mod index 9c3d225dcdad1..e5f0a3c820483 100644 --- a/pkg/security/secl/go.mod +++ b/pkg/security/secl/go.mod @@ -8,7 +8,6 @@ require ( github.com/alecthomas/participle v0.7.1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/fatih/structtag v1.2.0 - github.com/fsnotify/fsnotify v1.8.0 github.com/google/go-cmp v0.6.0 github.com/google/gopacket v1.1.19 github.com/hashicorp/go-multierror v1.1.1 diff --git a/pkg/security/secl/go.sum b/pkg/security/secl/go.sum index 18391dc2e1b6e..0c694b56983cf 100644 --- a/pkg/security/secl/go.sum +++ b/pkg/security/secl/go.sum @@ -17,8 +17,6 @@ github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4 github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= -github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= -github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= diff --git a/pkg/security/secl/rules/policy_dir.go b/pkg/security/secl/rules/policy_dir.go index 119f31a40f461..f1c31ca699b46 100644 --- a/pkg/security/secl/rules/policy_dir.go +++ b/pkg/security/secl/rules/policy_dir.go @@ -7,12 +7,10 @@ package rules import ( - "context" "os" "path/filepath" "sort" - "github.com/fsnotify/fsnotify" "github.com/hashicorp/go-multierror" ) @@ -25,17 +23,10 @@ var _ PolicyProvider = (*PoliciesDirProvider)(nil) // PoliciesDirProvider defines a new policy dir provider type PoliciesDirProvider struct { PoliciesDir string - - onNewPoliciesReadyCb func() - cancelFnc func() - watcher *fsnotify.Watcher - watchedFiles []string } // SetOnNewPoliciesReadyCb implements the policy provider interface -func (p *PoliciesDirProvider) SetOnNewPoliciesReadyCb(cb func()) { - p.onNewPoliciesReadyCb = cb -} +func (p *PoliciesDirProvider) SetOnNewPoliciesReadyCb(_ func()) {} // Start starts the policy dir provider func (p *PoliciesDirProvider) Start() {} @@ -92,14 +83,6 @@ func (p *PoliciesDirProvider) LoadPolicies(macroFilters []MacroFilter, ruleFilte errs = multierror.Append(errs, err) } - // remove oldest watched files - if p.watcher != nil { - for _, watched := range p.watchedFiles { - _ = p.watcher.Remove(watched) - } - p.watchedFiles = p.watchedFiles[0:0] - } - // Load and parse policies for _, filename := range policyFiles { policy, err := p.loadPolicy(filename, macroFilters, ruleFilters) @@ -112,14 +95,6 @@ func (p *PoliciesDirProvider) LoadPolicies(macroFilters []MacroFilter, ruleFilte } policies = append(policies, policy) - - if p.watcher != nil { - if err := p.watcher.Add(filename); err != nil { - errs = multierror.Append(errs, err) - } else { - p.watchedFiles = append(p.watchedFiles, filename) - } - } } return policies, errs @@ -127,79 +102,14 @@ func (p *PoliciesDirProvider) LoadPolicies(macroFilters []MacroFilter, ruleFilte // Close stops policy provider interface func (p *PoliciesDirProvider) Close() error { - if p.cancelFnc != nil { - p.cancelFnc() - } - - if p.watcher != nil { - p.watcher.Close() - } return nil } -func filesEqual(a []string, b []string) bool { - if len(a) != len(b) { - return false - } - for i, v := range a { - if v != b[i] { - return false - } - } - return true -} - -func (p *PoliciesDirProvider) watch(ctx context.Context) { - go func() { - for { - select { - case <-ctx.Done(): - return - case event, ok := <-p.watcher.Events: - if !ok { - return - } - - if event.Op&(fsnotify.Create|fsnotify.Remove) > 0 { - files, _ := p.getPolicyFiles() - if !filesEqual(files, p.watchedFiles) { - p.onNewPoliciesReadyCb() - } - } else if event.Op&fsnotify.Write > 0 && filepath.Ext(event.Name) == policyExtension { - p.onNewPoliciesReadyCb() - } - case _, ok := <-p.watcher.Errors: - if !ok { - return - } - } - } - }() -} - // NewPoliciesDirProvider returns providers for the given policies dir -func NewPoliciesDirProvider(policiesDir string, watch bool) (*PoliciesDirProvider, error) { - p := &PoliciesDirProvider{ +func NewPoliciesDirProvider(policiesDir string) (*PoliciesDirProvider, error) { + return &PoliciesDirProvider{ PoliciesDir: policiesDir, - } - - if watch { - var err error - if p.watcher, err = fsnotify.NewWatcher(); err != nil { - return nil, err - } - - if err := p.watcher.Add(policiesDir); err != nil { - p.watcher.Close() - return nil, err - } - - var ctx context.Context - ctx, p.cancelFnc = context.WithCancel(context.Background()) - go p.watch(ctx) - } - - return p, nil + }, nil } // Type returns the type of policy dir provider diff --git a/pkg/security/secl/rules/policy_test.go b/pkg/security/secl/rules/policy_test.go index e6252c10593f1..da1fda9740860 100644 --- a/pkg/security/secl/rules/policy_test.go +++ b/pkg/security/secl/rules/policy_test.go @@ -75,7 +75,7 @@ func TestMacroMerge(t *testing.T) { event.SetFieldValue("open.file.path", "/tmp/test") event.SetFieldValue("process.comm", "/usr/bin/vi") - provider, err := NewPoliciesDirProvider(tmpDir, false) + provider, err := NewPoliciesDirProvider(tmpDir) if err != nil { t.Fatal(err) } @@ -150,7 +150,7 @@ func TestRuleMerge(t *testing.T) { t.Fatal(err) } - provider, err := NewPoliciesDirProvider(tmpDir, false) + provider, err := NewPoliciesDirProvider(tmpDir) if err != nil { t.Fatal(err) } @@ -284,7 +284,7 @@ func TestActionSetVariable(t *testing.T) { t.Fatal(err) } - provider, err := NewPoliciesDirProvider(tmpDir, false) + provider, err := NewPoliciesDirProvider(tmpDir) if err != nil { t.Fatal(err) } @@ -354,7 +354,7 @@ func TestActionSetVariableTTL(t *testing.T) { t.Fatal(err) } - provider, err := NewPoliciesDirProvider(tmpDir, false) + provider, err := NewPoliciesDirProvider(tmpDir) if err != nil { t.Fatal(err) } @@ -420,7 +420,7 @@ func TestActionSetVariableConflict(t *testing.T) { t.Fatal(err) } - provider, err := NewPoliciesDirProvider(tmpDir, false) + provider, err := NewPoliciesDirProvider(tmpDir) if err != nil { t.Fatal(err) } @@ -441,7 +441,7 @@ func loadPolicy(t *testing.T, testPolicy *PolicyDef, policyOpts PolicyLoaderOpts t.Fatal(err) } - provider, err := NewPoliciesDirProvider(tmpDir, false) + provider, err := NewPoliciesDirProvider(tmpDir) if err != nil { t.Fatal(err) } diff --git a/pkg/security/tests/module_tester.go b/pkg/security/tests/module_tester.go index 22711615cc70f..0b01cbcd72d49 100644 --- a/pkg/security/tests/module_tester.go +++ b/pkg/security/tests/module_tester.go @@ -118,7 +118,7 @@ func (tm *testModule) reloadPolicies() error { log.Debugf("reload policies with cfgDir: %s", commonCfgDir) bundledPolicyProvider := bundled.NewPolicyProvider(tm.eventMonitor.Probe.Config.RuntimeSecurity) - policyDirProvider, err := rules.NewPoliciesDirProvider(commonCfgDir, false) + policyDirProvider, err := rules.NewPoliciesDirProvider(commonCfgDir) if err != nil { return err } diff --git a/releasenotes/notes/cws-remove-watch-dir-option-f8faee4937353316.yaml b/releasenotes/notes/cws-remove-watch-dir-option-f8faee4937353316.yaml new file mode 100644 index 0000000000000..320f7e164f786 --- /dev/null +++ b/releasenotes/notes/cws-remove-watch-dir-option-f8faee4937353316.yaml @@ -0,0 +1,13 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +deprecations: + - | + CWS: the `runtime_security_config.policies.watch_dir` option has been removed. + Use remote configuration for dynamically updating policies, or send + the `SIGHUP` signal to the `system-probe` process to reload the policies. From 4f0073dbe2585abdc01c50d1188c3609c6bcf3f9 Mon Sep 17 00:00:00 2001 From: Jack Phillips Date: Mon, 9 Dec 2024 16:02:16 -0500 Subject: [PATCH 341/439] Update filesystem permission to restrict access to datadog user (#31770) Co-authored-by: Branden Clark Co-authored-by: Rosa Trieu <107086888+rtrieu@users.noreply.github.com> --- comp/api/authtoken/go.mod | 6 +- comp/core/config/go.mod | 6 +- comp/core/log/impl-trace/go.mod | 6 +- comp/core/log/impl/go.mod | 6 +- comp/core/log/mock/go.mod | 4 +- comp/core/status/statusimpl/go.mod | 6 +- comp/forwarder/defaultforwarder/go.mod | 6 +- .../orchestrator/orchestratorinterface/go.mod | 6 +- comp/logs/agent/config/go.mod | 6 +- comp/otelcol/converter/impl/go.mod | 6 +- comp/otelcol/ddflareextension/impl/go.mod | 6 +- comp/otelcol/logsagentpipeline/go.mod | 6 +- .../logsagentpipelineimpl/go.mod | 6 +- .../exporter/datadogexporter/go.mod | 6 +- .../exporter/logsagentexporter/go.mod | 6 +- .../exporter/serializerexporter/go.mod | 6 +- comp/otelcol/otlp/testutil/go.mod | 6 +- comp/serializer/compression/go.mod | 6 +- go.mod | 6 +- pkg/api/go.mod | 6 +- pkg/config/env/go.mod | 6 +- pkg/config/mock/go.mod | 6 +- pkg/config/remote/go.mod | 6 +- pkg/config/setup/go.mod | 6 +- pkg/config/utils/go.mod | 6 +- pkg/logs/auditor/go.mod | 6 +- pkg/logs/client/go.mod | 6 +- pkg/logs/diagnostic/go.mod | 6 +- pkg/logs/message/go.mod | 6 +- pkg/logs/pipeline/go.mod | 6 +- pkg/logs/processor/go.mod | 6 +- pkg/logs/sds/go.mod | 6 +- pkg/logs/sender/go.mod | 6 +- pkg/logs/sources/go.mod | 6 +- pkg/logs/util/testutils/go.mod | 6 +- pkg/metrics/go.mod | 6 +- pkg/serializer/go.mod | 6 +- pkg/util/filesystem/go.mod | 7 +- pkg/util/filesystem/go.sum | 1 - pkg/util/filesystem/permission_windows.go | 31 +++----- .../filesystem/permission_windows_test.go | 73 +++++++++++++++++++ pkg/util/flavor/go.mod | 6 +- pkg/util/grpc/go.mod | 6 +- pkg/util/http/go.mod | 6 +- pkg/util/log/setup/go.mod | 6 +- pkg/util/system/go.mod | 6 +- pkg/util/winutil/service.go | 17 +++++ pkg/util/winutil/users.go | 51 +++++++++++++ pkg/util/winutil/users_test.go | 26 +++++++ ...ns-to-dduser-windows-6e9940175f9130ff.yaml | 12 +++ test/otel/go.mod | 6 +- 51 files changed, 324 insertions(+), 150 deletions(-) create mode 100644 pkg/util/filesystem/permission_windows_test.go create mode 100644 releasenotes/notes/file-permissions-to-dduser-windows-6e9940175f9130ff.yaml diff --git a/comp/api/authtoken/go.mod b/comp/api/authtoken/go.mod index 532d1be88a5c4..233f326a297d1 100644 --- a/comp/api/authtoken/go.mod +++ b/comp/api/authtoken/go.mod @@ -68,13 +68,13 @@ require ( github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/log/setup v0.58.0-devel // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect diff --git a/comp/core/config/go.mod b/comp/core/config/go.mod index 2973aa62895a7..bed15530c21b9 100644 --- a/comp/core/config/go.mod +++ b/comp/core/config/go.mod @@ -42,7 +42,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/defaultpaths v0.0.0-00010101000000-000000000000 github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 github.com/DataDog/viper v1.13.5 github.com/stretchr/testify v1.10.0 go.uber.org/fx v1.23.0 @@ -60,9 +60,9 @@ require ( github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect diff --git a/comp/core/log/impl-trace/go.mod b/comp/core/log/impl-trace/go.mod index 46dbc7aba09c2..2ee9571d6657a 100644 --- a/comp/core/log/impl-trace/go.mod +++ b/comp/core/log/impl-trace/go.mod @@ -45,7 +45,7 @@ require ( github.com/DataDog/datadog-agent/pkg/config/env v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/trace v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/fxutil v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect; v2.6 github.com/stretchr/testify v1.10.0 go.uber.org/fx v1.23.0 // indirect @@ -72,10 +72,10 @@ require ( github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect diff --git a/comp/core/log/impl/go.mod b/comp/core/log/impl/go.mod index 116cf25e6c584..9d9c721ce2ba8 100644 --- a/comp/core/log/impl/go.mod +++ b/comp/core/log/impl/go.mod @@ -39,7 +39,7 @@ require ( github.com/DataDog/datadog-agent/comp/core/log/def v0.0.0-00010101000000-000000000000 github.com/DataDog/datadog-agent/comp/def v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/config/mock v0.59.0 - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/DataDog/datadog-agent/pkg/util/log/setup v0.0.0-00010101000000-000000000000 github.com/stretchr/testify v1.10.0 ) @@ -61,10 +61,10 @@ require ( github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect diff --git a/comp/core/log/mock/go.mod b/comp/core/log/mock/go.mod index 96c709d9f2f32..f8515313b702d 100644 --- a/comp/core/log/mock/go.mod +++ b/comp/core/log/mock/go.mod @@ -31,7 +31,7 @@ replace ( require ( github.com/DataDog/datadog-agent/comp/core/log/def v0.0.0-00010101000000-000000000000 - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/DataDog/datadog-agent/pkg/util/log/setup v0.0.0-00010101000000-000000000000 github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 ) @@ -40,7 +40,7 @@ require ( github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.60.0-devel // indirect github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.60.0-devel // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect diff --git a/comp/core/status/statusimpl/go.mod b/comp/core/status/statusimpl/go.mod index bc13e9cf4a943..600683ed2cceb 100644 --- a/comp/core/status/statusimpl/go.mod +++ b/comp/core/status/statusimpl/go.mod @@ -70,14 +70,14 @@ require ( github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/log/setup v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect diff --git a/comp/forwarder/defaultforwarder/go.mod b/comp/forwarder/defaultforwarder/go.mod index a6e6b5f2297da..55d901ebce30c 100644 --- a/comp/forwarder/defaultforwarder/go.mod +++ b/comp/forwarder/defaultforwarder/go.mod @@ -71,7 +71,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/fxutil v0.57.1 github.com/DataDog/datadog-agent/pkg/util/http v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 github.com/DataDog/datadog-agent/pkg/version v0.57.1 github.com/golang/protobuf v1.5.4 github.com/hashicorp/go-multierror v1.1.1 @@ -94,12 +94,12 @@ require ( github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.60.0-devel // indirect github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/log/setup v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/beorn7/perks v1.0.1 // indirect diff --git a/comp/forwarder/orchestrator/orchestratorinterface/go.mod b/comp/forwarder/orchestrator/orchestratorinterface/go.mod index d5f8d766d32f6..63ef4e9d8c4a8 100644 --- a/comp/forwarder/orchestrator/orchestratorinterface/go.mod +++ b/comp/forwarder/orchestrator/orchestratorinterface/go.mod @@ -94,13 +94,13 @@ require ( github.com/DataDog/datadog-agent/pkg/util/fxutil v0.57.1 // indirect github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/http v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.57.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect diff --git a/comp/logs/agent/config/go.mod b/comp/logs/agent/config/go.mod index 91137e7bcc76c..733a8bf8b17c7 100644 --- a/comp/logs/agent/config/go.mod +++ b/comp/logs/agent/config/go.mod @@ -43,7 +43,7 @@ require ( github.com/DataDog/datadog-agent/pkg/config/structure v0.59.0 github.com/DataDog/datadog-agent/pkg/config/utils v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 github.com/DataDog/viper v1.13.5 github.com/stretchr/testify v1.10.0 @@ -64,10 +64,10 @@ require ( github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect diff --git a/comp/otelcol/converter/impl/go.mod b/comp/otelcol/converter/impl/go.mod index b321ff5db70ad..f4c649d45be37 100644 --- a/comp/otelcol/converter/impl/go.mod +++ b/comp/otelcol/converter/impl/go.mod @@ -69,13 +69,13 @@ require ( github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.2 // indirect github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect diff --git a/comp/otelcol/ddflareextension/impl/go.mod b/comp/otelcol/ddflareextension/impl/go.mod index 6c75776d13338..5f0036a040fb9 100644 --- a/comp/otelcol/ddflareextension/impl/go.mod +++ b/comp/otelcol/ddflareextension/impl/go.mod @@ -251,17 +251,17 @@ require ( github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/http v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/json v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/log/setup v0.58.0-devel // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/sort v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/startstop v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/statstracker v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-api-client-go/v2 v2.31.0 // indirect github.com/DataDog/datadog-go/v5 v5.5.0 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect diff --git a/comp/otelcol/logsagentpipeline/go.mod b/comp/otelcol/logsagentpipeline/go.mod index 0b8f861795c6c..40a8e60d9efba 100644 --- a/comp/otelcol/logsagentpipeline/go.mod +++ b/comp/otelcol/logsagentpipeline/go.mod @@ -96,15 +96,15 @@ require ( github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/http v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/startstop v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/statstracker v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect github.com/DataDog/viper v1.13.5 // indirect diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod index ca80a71894cb3..25af1fd191eb1 100644 --- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod +++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod @@ -112,14 +112,14 @@ require ( github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/http v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/log/setup v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/statstracker v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect github.com/DataDog/viper v1.13.5 // indirect diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod index 109071e12c948..1fbae2bae0cf9 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod @@ -186,16 +186,16 @@ require ( github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/http v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/json v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/sort v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/startstop v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/statstracker v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.57.1 // indirect github.com/DataDog/datadog-api-client-go/v2 v2.31.0 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod index 63514d6b9afdb..b2fc1508016cf 100644 --- a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod @@ -47,7 +47,7 @@ require ( github.com/DataDog/datadog-agent/comp/otelcol/otlp/testutil v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/logs/message v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/logs/sources v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0 github.com/stormcat24/protodep v0.1.8 @@ -80,13 +80,13 @@ require ( github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/statstracker v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/datadog-api-client-go/v2 v2.31.0 // indirect github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0 // indirect diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod index 1ca371316a075..f469f0ac3856a 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod @@ -68,7 +68,7 @@ require ( github.com/DataDog/datadog-agent/pkg/proto v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/serializer v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/tagset v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0 github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 @@ -129,11 +129,11 @@ require ( github.com/DataDog/datadog-agent/pkg/util/json v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/sort v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.57.1 // indirect github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 // indirect github.com/DataDog/sketches-go v1.4.6 // indirect diff --git a/comp/otelcol/otlp/testutil/go.mod b/comp/otelcol/otlp/testutil/go.mod index 023eadca279c9..08136f64f178e 100644 --- a/comp/otelcol/otlp/testutil/go.mod +++ b/comp/otelcol/otlp/testutil/go.mod @@ -55,13 +55,13 @@ require ( github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect diff --git a/comp/serializer/compression/go.mod b/comp/serializer/compression/go.mod index 9e8574fe77f13..7575544de493a 100644 --- a/comp/serializer/compression/go.mod +++ b/comp/serializer/compression/go.mod @@ -36,7 +36,7 @@ replace ( require ( github.com/DataDog/datadog-agent/comp/core/config v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/DataDog/zstd v1.5.6 ) @@ -58,10 +58,10 @@ require ( github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect diff --git a/go.mod b/go.mod index 2c8473f077cef..c6af83af3b80c 100644 --- a/go.mod +++ b/go.mod @@ -154,9 +154,9 @@ require ( github.com/DataDog/datadog-agent/pkg/security/secl v0.56.0 github.com/DataDog/datadog-agent/pkg/trace v0.59.0 github.com/DataDog/datadog-agent/pkg/util/cgroups v0.59.0 - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 github.com/DataDog/datadog-go/v5 v5.5.0 github.com/DataDog/datadog-operator v0.7.1-0.20241024104907-734366f3c0d1 github.com/DataDog/ebpf-manager v0.7.4 @@ -728,7 +728,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 github.com/DataDog/datadog-agent/pkg/util/testutil v0.59.0 github.com/DataDog/datadog-agent/pkg/util/uuid v0.59.0 - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 github.com/DataDog/datadog-agent/pkg/version v0.59.0 github.com/DataDog/go-libddwaf/v3 v3.5.1 github.com/DataDog/go-sqllexer v0.0.17 diff --git a/pkg/api/go.mod b/pkg/api/go.mod index b30cc5d081999..28a2032095417 100644 --- a/pkg/api/go.mod +++ b/pkg/api/go.mod @@ -43,7 +43,7 @@ require ( github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 github.com/DataDog/datadog-agent/pkg/config/utils v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 github.com/stretchr/testify v1.10.0 ) @@ -64,9 +64,9 @@ require ( github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect diff --git a/pkg/config/env/go.mod b/pkg/config/env/go.mod index 7188be93ca23d..2d26e478fd4e7 100644 --- a/pkg/config/env/go.mod +++ b/pkg/config/env/go.mod @@ -8,18 +8,20 @@ replace ( github.com/DataDog/datadog-agent/pkg/util/log => ../../util/log/ github.com/DataDog/datadog-agent/pkg/util/scrubber => ../../util/scrubber/ github.com/DataDog/datadog-agent/pkg/util/system/socket => ../../util/system/socket/ + github.com/DataDog/datadog-agent/pkg/util/winutil => ../../util/winutil ) require ( github.com/DataDog/datadog-agent/pkg/config/model v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/filesystem v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/DataDog/datadog-agent/pkg/util/system/socket v0.56.0-rc.3 github.com/stretchr/testify v1.10.0 ) require ( - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect diff --git a/pkg/config/mock/go.mod b/pkg/config/mock/go.mod index 041266bf69dff..9fc526fc2c5de 100644 --- a/pkg/config/mock/go.mod +++ b/pkg/config/mock/go.mod @@ -45,13 +45,13 @@ require ( github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect diff --git a/pkg/config/remote/go.mod b/pkg/config/remote/go.mod index 5a00e0b18ab42..ab537bc1eb918 100644 --- a/pkg/config/remote/go.mod +++ b/pkg/config/remote/go.mod @@ -50,7 +50,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/backoff v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/grpc v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/http v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/DataDog/datadog-agent/pkg/util/uuid v0.56.0-rc.3 github.com/Masterminds/semver v1.5.0 github.com/benbjohnson/clock v1.3.5 @@ -83,7 +83,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/datadog-go/v5 v5.5.0 // indirect github.com/DataDog/go-libddwaf/v3 v3.5.1 // indirect @@ -121,7 +121,7 @@ require ( ) require ( - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/go-tuf v1.1.0-0.5.2 github.com/DataDog/viper v1.13.5 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect diff --git a/pkg/config/setup/go.mod b/pkg/config/setup/go.mod index c6855f5379f0f..772c6b0ee8e53 100644 --- a/pkg/config/setup/go.mod +++ b/pkg/config/setup/go.mod @@ -44,11 +44,11 @@ require ( github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 github.com/stretchr/testify v1.10.0 go.uber.org/fx v1.23.0 gopkg.in/yaml.v2 v2.4.0 diff --git a/pkg/config/utils/go.mod b/pkg/config/utils/go.mod index 4c39a2d8c2f78..0f4f9537ccb9f 100644 --- a/pkg/config/utils/go.mod +++ b/pkg/config/utils/go.mod @@ -38,7 +38,7 @@ require ( github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 github.com/DataDog/datadog-agent/pkg/config/structure v0.59.0 - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 github.com/stretchr/testify v1.10.0 ) @@ -54,10 +54,10 @@ require ( github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect diff --git a/pkg/logs/auditor/go.mod b/pkg/logs/auditor/go.mod index 9f000ce69c516..0ea48c9e7895a 100644 --- a/pkg/logs/auditor/go.mod +++ b/pkg/logs/auditor/go.mod @@ -47,7 +47,7 @@ require ( github.com/DataDog/datadog-agent/pkg/logs/message v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/logs/sources v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/status/health v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/stretchr/testify v1.10.0 ) @@ -66,11 +66,11 @@ require ( github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/statstracker v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect diff --git a/pkg/logs/client/go.mod b/pkg/logs/client/go.mod index 9f0ec05367e17..cac2a5ce40f32 100644 --- a/pkg/logs/client/go.mod +++ b/pkg/logs/client/go.mod @@ -60,7 +60,7 @@ require ( github.com/DataDog/datadog-agent/pkg/telemetry v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/backoff v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/http v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 github.com/stretchr/testify v1.10.0 golang.org/x/net v0.31.0 @@ -84,11 +84,11 @@ require ( github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/statstracker v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/benbjohnson/clock v1.3.5 // indirect diff --git a/pkg/logs/diagnostic/go.mod b/pkg/logs/diagnostic/go.mod index e5350d717dc74..7f3357f60d406 100644 --- a/pkg/logs/diagnostic/go.mod +++ b/pkg/logs/diagnostic/go.mod @@ -67,14 +67,14 @@ require ( github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/statstracker v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect diff --git a/pkg/logs/message/go.mod b/pkg/logs/message/go.mod index a7acc1d3319f8..b4b0ab2e615ed 100644 --- a/pkg/logs/message/go.mod +++ b/pkg/logs/message/go.mod @@ -42,7 +42,7 @@ replace ( require ( github.com/DataDog/datadog-agent/comp/logs/agent/config v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/logs/sources v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/stretchr/testify v1.10.0 ) @@ -62,11 +62,11 @@ require ( github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/statstracker v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect diff --git a/pkg/logs/pipeline/go.mod b/pkg/logs/pipeline/go.mod index aa3225348e8e9..06f20a79a4199 100644 --- a/pkg/logs/pipeline/go.mod +++ b/pkg/logs/pipeline/go.mod @@ -71,7 +71,7 @@ require ( github.com/DataDog/datadog-agent/pkg/logs/sender v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/status/health v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/DataDog/datadog-agent/pkg/util/startstop v0.56.0-rc.3 github.com/hashicorp/go-multierror v1.1.1 github.com/stretchr/testify v1.10.0 @@ -100,11 +100,11 @@ require ( github.com/DataDog/datadog-agent/pkg/util/http v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/statstracker v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect github.com/DataDog/viper v1.13.5 // indirect diff --git a/pkg/logs/processor/go.mod b/pkg/logs/processor/go.mod index 42339476936cc..858475c3a8a54 100644 --- a/pkg/logs/processor/go.mod +++ b/pkg/logs/processor/go.mod @@ -57,7 +57,7 @@ require ( github.com/DataDog/datadog-agent/pkg/logs/metrics v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/logs/sds v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/logs/sources v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/stretchr/testify v1.10.0 ) @@ -80,11 +80,11 @@ require ( github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/statstracker v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect github.com/DataDog/viper v1.13.5 // indirect diff --git a/pkg/logs/sds/go.mod b/pkg/logs/sds/go.mod index b9c7c9706a849..c6f00cb1cf5e7 100644 --- a/pkg/logs/sds/go.mod +++ b/pkg/logs/sds/go.mod @@ -52,7 +52,7 @@ require ( github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 github.com/DataDog/datadog-agent/pkg/logs/message v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/telemetry v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 github.com/stretchr/testify v1.10.0 ) @@ -77,11 +77,11 @@ require ( github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/statstracker v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect diff --git a/pkg/logs/sender/go.mod b/pkg/logs/sender/go.mod index 085c081f2774e..2f438b2f0cc86 100644 --- a/pkg/logs/sender/go.mod +++ b/pkg/logs/sender/go.mod @@ -59,7 +59,7 @@ require ( github.com/DataDog/datadog-agent/pkg/logs/sources v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/telemetry v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/benbjohnson/clock v1.3.5 github.com/stretchr/testify v1.10.0 ) @@ -84,11 +84,11 @@ require ( github.com/DataDog/datadog-agent/pkg/util/http v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/statstracker v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect diff --git a/pkg/logs/sources/go.mod b/pkg/logs/sources/go.mod index b81f5d609a906..a73c178af0286 100644 --- a/pkg/logs/sources/go.mod +++ b/pkg/logs/sources/go.mod @@ -41,7 +41,7 @@ replace ( require ( github.com/DataDog/datadog-agent/comp/logs/agent/config v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/DataDog/datadog-agent/pkg/util/statstracker v0.56.0-rc.3 github.com/stretchr/testify v1.10.0 ) @@ -61,10 +61,10 @@ require ( github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect diff --git a/pkg/logs/util/testutils/go.mod b/pkg/logs/util/testutils/go.mod index d7bbeef948cbb..d2aa1b59f3e82 100644 --- a/pkg/logs/util/testutils/go.mod +++ b/pkg/logs/util/testutils/go.mod @@ -58,14 +58,14 @@ require ( github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/statstracker v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect diff --git a/pkg/metrics/go.mod b/pkg/metrics/go.mod index 2129bb8455c09..198885497f0b9 100644 --- a/pkg/metrics/go.mod +++ b/pkg/metrics/go.mod @@ -46,7 +46,7 @@ require ( github.com/DataDog/datadog-agent/pkg/tagset v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/telemetry v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/buf v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 github.com/stretchr/testify v1.10.0 go.uber.org/atomic v1.11.0 @@ -67,11 +67,11 @@ require ( github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/sort v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/sketches-go v1.4.6 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect diff --git a/pkg/serializer/go.mod b/pkg/serializer/go.mod index 5e0bd3938c766..4b6353199d174 100644 --- a/pkg/serializer/go.mod +++ b/pkg/serializer/go.mod @@ -77,7 +77,7 @@ require ( github.com/DataDog/datadog-agent/pkg/tagset v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/telemetry v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/json v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/DataDog/datadog-agent/pkg/version v0.57.1 github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 github.com/gogo/protobuf v1.3.2 @@ -116,11 +116,11 @@ require ( github.com/DataDog/datadog-agent/pkg/util/http v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/sort v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 // indirect github.com/DataDog/sketches-go v1.4.6 // indirect github.com/DataDog/viper v1.13.5 // indirect diff --git a/pkg/util/filesystem/go.mod b/pkg/util/filesystem/go.mod index 1753d7310cddd..d1fbed28429ae 100644 --- a/pkg/util/filesystem/go.mod +++ b/pkg/util/filesystem/go.mod @@ -5,11 +5,13 @@ go 1.22.0 replace ( github.com/DataDog/datadog-agent/pkg/util/log => ../log/ github.com/DataDog/datadog-agent/pkg/util/scrubber => ../scrubber/ + github.com/DataDog/datadog-agent/pkg/util/winutil => ../winutil/ ) require ( - github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 github.com/shirou/gopsutil/v3 v3.24.5 github.com/stretchr/testify v1.10.0 @@ -17,11 +19,10 @@ require ( ) require ( - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/go-ole/go-ole v1.3.0 // indirect - github.com/kr/text v0.2.0 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect diff --git a/pkg/util/filesystem/go.sum b/pkg/util/filesystem/go.sum index e3cc0b7e589e0..7bde33aa41ad5 100644 --- a/pkg/util/filesystem/go.sum +++ b/pkg/util/filesystem/go.sum @@ -1,6 +1,5 @@ github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= diff --git a/pkg/util/filesystem/permission_windows.go b/pkg/util/filesystem/permission_windows.go index 2ae2929ce1809..43819ee0be97c 100644 --- a/pkg/util/filesystem/permission_windows.go +++ b/pkg/util/filesystem/permission_windows.go @@ -8,15 +8,16 @@ package filesystem import ( "fmt" - "syscall" "github.com/hectane/go-acl" "golang.org/x/sys/windows" + + "github.com/DataDog/datadog-agent/pkg/util/winutil" ) // Permission handles permissions for Unix and Windows type Permission struct { - currentUserSid *windows.SID + ddUserSid *windows.SID administratorSid *windows.SID systemSid *windows.SID } @@ -32,32 +33,24 @@ func NewPermission() (*Permission, error) { return nil, err } - currentUserSid, err := getCurrentUserSid() + ddUserSid, err := getDatadogUserSid() if err != nil { - return nil, fmt.Errorf("Unable to get current user sid %v", err) + return nil, fmt.Errorf("unable to get datadog user sid %v", err) } return &Permission{ - currentUserSid: currentUserSid, + ddUserSid: ddUserSid, administratorSid: administratorSid, systemSid: systemSid, }, nil } -func getCurrentUserSid() (*windows.SID, error) { - token, err := syscall.OpenCurrentProcessToken() - if err != nil { - return nil, fmt.Errorf("Couldn't get process token %v", err) - } - defer token.Close() - user, err := token.GetTokenUser() - if err != nil { - return nil, fmt.Errorf("Couldn't get token user %v", err) - } - sidString, err := user.User.Sid.String() +func getDatadogUserSid() (*windows.SID, error) { + ddUserSid, err := winutil.GetDDAgentUserSID() if err != nil { - return nil, fmt.Errorf("Couldn't get user sid string %v", err) + // falls back to current user on failure + return winutil.GetSidFromUser() } - return windows.StringToSid(sidString) + return ddUserSid, nil } // RestrictAccessToUser update the ACL of a file so only the current user and ADMIN/SYSTEM can access it @@ -68,7 +61,7 @@ func (p *Permission) RestrictAccessToUser(path string) error { false, // don't inherit acl.GrantSid(windows.GENERIC_ALL, p.administratorSid), acl.GrantSid(windows.GENERIC_ALL, p.systemSid), - acl.GrantSid(windows.GENERIC_ALL, p.currentUserSid)) + acl.GrantSid(windows.GENERIC_ALL, p.ddUserSid)) } // RemoveAccessToOtherUsers on Windows this function calls RestrictAccessToUser diff --git a/pkg/util/filesystem/permission_windows_test.go b/pkg/util/filesystem/permission_windows_test.go new file mode 100644 index 0000000000000..61921718cd37f --- /dev/null +++ b/pkg/util/filesystem/permission_windows_test.go @@ -0,0 +1,73 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build windows + +package filesystem + +import ( + "os" + "path/filepath" + "testing" + "unsafe" + + "github.com/stretchr/testify/require" + "golang.org/x/sys/windows" +) + +func TestRemoveAccessToOtherUsers(t *testing.T) { + + p, err := NewPermission() + require.NoError(t, err) + + root := t.TempDir() + + t.Log(root) + + testFile := filepath.Join(root, "file") + testDir := filepath.Join(root, "dir") + + err = os.WriteFile(testFile, []byte("test"), 0777) + require.NoError(t, err) + err = os.Mkdir(testDir, 0777) + require.NoError(t, err) + + err = p.RemoveAccessToOtherUsers(testFile) + require.NoError(t, err) + + // Assert the permissions for the file + assertPermissions(t, testFile, p) + + err = p.RemoveAccessToOtherUsers(testDir) + require.NoError(t, err) + + // Assert the permissions for the directory + assertPermissions(t, testDir, p) +} + +func assertPermissions(t *testing.T, path string, p *Permission) { + sd, err := windows.GetNamedSecurityInfo( + path, + windows.SE_FILE_OBJECT, + windows.DACL_SECURITY_INFORMATION, + ) + require.NoError(t, err) + + dacl, _, err := sd.DACL() + require.NoError(t, err) + + aceCount := int(dacl.AceCount) + for i := 0; i < aceCount; i++ { + var ace *windows.ACCESS_ALLOWED_ACE + err := windows.GetAce(dacl, uint32(i), &ace) + require.NoError(t, err) + + var sid *windows.SID = (*windows.SID)(unsafe.Pointer(&ace.SidStart)) + + if !sid.Equals(p.ddUserSid) && !sid.Equals(p.administratorSid) && !sid.Equals(p.systemSid) { + t.Errorf("Unexpected SID with access: %v", sid) + } + } +} diff --git a/pkg/util/flavor/go.mod b/pkg/util/flavor/go.mod index bb7190a4d241c..dabdfd9bcee13 100644 --- a/pkg/util/flavor/go.mod +++ b/pkg/util/flavor/go.mod @@ -46,13 +46,13 @@ require ( github.com/DataDog/datadog-agent/pkg/util/executable v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect diff --git a/pkg/util/grpc/go.mod b/pkg/util/grpc/go.mod index b058dd317dd34..bdbb97d385501 100644 --- a/pkg/util/grpc/go.mod +++ b/pkg/util/grpc/go.mod @@ -37,7 +37,7 @@ replace ( require ( github.com/DataDog/datadog-agent/pkg/api v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/proto v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 github.com/stretchr/testify v1.10.0 @@ -61,10 +61,10 @@ require ( github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect diff --git a/pkg/util/http/go.mod b/pkg/util/http/go.mod index 0d248d6101c9f..e4699e99baf5e 100644 --- a/pkg/util/http/go.mod +++ b/pkg/util/http/go.mod @@ -33,7 +33,7 @@ replace ( require ( github.com/DataDog/datadog-agent/pkg/config/mock v0.59.0 github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/stretchr/testify v1.10.0 golang.org/x/net v0.31.0 ) @@ -51,10 +51,10 @@ require ( github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect diff --git a/pkg/util/log/setup/go.mod b/pkg/util/log/setup/go.mod index 8eb352e5a4570..1d7dfdbbb7c8b 100644 --- a/pkg/util/log/setup/go.mod +++ b/pkg/util/log/setup/go.mod @@ -33,7 +33,7 @@ replace ( require ( github.com/DataDog/datadog-agent/pkg/config/mock v0.59.0 github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 github.com/stretchr/testify v1.10.0 ) @@ -51,10 +51,10 @@ require ( github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect diff --git a/pkg/util/system/go.mod b/pkg/util/system/go.mod index db28f3923c003..8ec61475312c9 100644 --- a/pkg/util/system/go.mod +++ b/pkg/util/system/go.mod @@ -13,10 +13,10 @@ replace ( require ( github.com/DataDog/datadog-agent/pkg/util/filesystem v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/DataDog/datadog-agent/pkg/util/pointer v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/testutil v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/util/winutil v0.56.0-rc.3 + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 github.com/shirou/gopsutil/v3 v3.24.5 github.com/stretchr/testify v1.10.0 go.uber.org/atomic v1.11.0 @@ -24,7 +24,7 @@ require ( ) require ( - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/go-ole/go-ole v1.3.0 // indirect diff --git a/pkg/util/winutil/service.go b/pkg/util/winutil/service.go index 11bc407bb0f43..22387fd89ea28 100644 --- a/pkg/util/winutil/service.go +++ b/pkg/util/winutil/service.go @@ -419,3 +419,20 @@ func IsServiceRunning(serviceName string) (running bool, err error) { } return (status.State == windows.SERVICE_RUNNING), nil } + +// GetServiceUser returns the service user for the given service +func GetServiceUser(serviceName string) (string, error) { + manager, service, err := openManagerService(serviceName, windows.SERVICE_QUERY_CONFIG) + if err != nil { + return "", err + } + defer closeManagerService(manager, service) + + serviceConfig, err := service.Config() + if err != nil { + return "", fmt.Errorf("could not retrieve config for %s: %w", serviceName, err) + } + + return serviceConfig.ServiceStartName, nil + +} diff --git a/pkg/util/winutil/users.go b/pkg/util/winutil/users.go index 7026b76507ebb..be17fe6a7cdb2 100644 --- a/pkg/util/winutil/users.go +++ b/pkg/util/winutil/users.go @@ -8,6 +8,7 @@ package winutil import ( "fmt" + "strings" "syscall" "golang.org/x/sys/windows" @@ -75,3 +76,53 @@ func GetLocalSystemSID() (*windows.SID, error) { return localSystem, err } + +// GetServiceUserSID returns the SID of the specified service account +func GetServiceUserSID(service string) (*windows.SID, error) { + // get config for datadogagent service + user, err := GetServiceUser(service) + if err != nil { + return nil, fmt.Errorf("could not get datadogagent service user: %s", err) + } + + username, err := getUserFromServiceUser(user) + if err != nil { + return nil, err + } + + // Manually map some aliases that SCM uses and are not recognized by the + // security subsystem (`LookupAccountName()` will fail) + // https://learn.microsoft.com/en-us/windows/win32/services/service-user-accounts + if username == "LocalSystem" { + return windows.StringToSid("S-1-5-18") + } + + // get the SID for the user account + sid, _, _, err := windows.LookupSID("", username) + return sid, err +} + +func getUserFromServiceUser(user string) (string, error) { + var domain, username string + parts := strings.SplitN(user, "\\", 2) + if len(parts) == 1 { + username = user + } else if len(parts) == 2 { + domain = parts[0] + if domain == "." { + username = parts[1] + } else { + username = user + } + } else { + return "", fmt.Errorf("could not parse user: %s", user) + } + + return username, nil + +} + +// GetDDAgentUserSID returns the SID of the DataDog Agent account +func GetDDAgentUserSID() (*windows.SID, error) { + return GetServiceUserSID("datadogagent") +} diff --git a/pkg/util/winutil/users_test.go b/pkg/util/winutil/users_test.go index d541eeb4e1ff8..d1941003bfda4 100644 --- a/pkg/util/winutil/users_test.go +++ b/pkg/util/winutil/users_test.go @@ -11,6 +11,8 @@ import ( "testing" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "golang.org/x/sys/windows" ) func TestGetSidFromUser(t *testing.T) { @@ -19,3 +21,27 @@ func TestGetSidFromUser(t *testing.T) { assert.Nil(t, err) assert.NotNil(t, sid) } + +func TestGetServiceUserSID(t *testing.T) { + // create LocalService SID + serviceSid, err := windows.StringToSid("S-1-5-19") + require.NoError(t, err) + + // get the SID for the EventLog service (has LocalService as its user) + sid, err := GetServiceUserSID("EventLog") + require.NoError(t, err) + assert.NotNil(t, sid) + assert.True(t, windows.EqualSid(sid, serviceSid)) + t.Logf("The SID found was: %v", sid) + + // create LocalSystem SID + systemSid, err := windows.StringToSid("S-1-5-18") + require.NoError(t, err) + + // get the SID for the BITS service (has LocalSystem as its user) + sid, err = GetServiceUserSID("BITS") + require.NoError(t, err) + assert.NotNil(t, sid) + assert.True(t, windows.EqualSid(sid, systemSid)) + t.Logf("The SID found was: %v", sid) +} diff --git a/releasenotes/notes/file-permissions-to-dduser-windows-6e9940175f9130ff.yaml b/releasenotes/notes/file-permissions-to-dduser-windows-6e9940175f9130ff.yaml new file mode 100644 index 0000000000000..45e2515092583 --- /dev/null +++ b/releasenotes/notes/file-permissions-to-dduser-windows-6e9940175f9130ff.yaml @@ -0,0 +1,12 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +fixes: + - | + Fix Windows file permissions on authToken to give access to the Datadog user even when privilege processes create it. + diff --git a/test/otel/go.mod b/test/otel/go.mod index 7fb2f3b6d5f1e..dd0663ecebd79 100644 --- a/test/otel/go.mod +++ b/test/otel/go.mod @@ -164,15 +164,15 @@ require ( github.com/DataDog/datadog-agent/pkg/util/fxutil v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/http v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/startstop v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/statstracker v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect github.com/DataDog/datadog-api-client-go/v2 v2.31.0 // indirect github.com/DataDog/datadog-go/v5 v5.5.0 // indirect From 0744b78e72154436a2b6a533abb5c80be831eea5 Mon Sep 17 00:00:00 2001 From: yuri-lipnesh Date: Mon, 9 Dec 2024 17:46:30 -0500 Subject: [PATCH 342/439] [usm] system-probe, add Postgres message counters to the eBPF module (#31104) --- .../ebpf/c/protocols/postgres/decoding-maps.h | 4 + .../ebpf/c/protocols/postgres/decoding.h | 101 ++++++++-- pkg/network/ebpf/c/protocols/postgres/types.h | 25 ++- pkg/network/protocols/ebpf_types.go | 6 +- pkg/network/protocols/ebpf_types_linux.go | 4 +- pkg/network/protocols/postgres/ebpf/types.go | 8 +- .../protocols/postgres/ebpf/types_linux.go | 11 +- pkg/network/protocols/postgres/protocol.go | 83 +++++++- pkg/network/protocols/postgres/telemetry.go | 47 +++++ pkg/network/protocols/telemetry/metric.go | 14 ++ pkg/network/usm/postgres_monitor_test.go | 177 +++++++++++++++++- 11 files changed, 437 insertions(+), 43 deletions(-) diff --git a/pkg/network/ebpf/c/protocols/postgres/decoding-maps.h b/pkg/network/ebpf/c/protocols/postgres/decoding-maps.h index 67288e1243f9e..3ccbd67e52466 100644 --- a/pkg/network/ebpf/c/protocols/postgres/decoding-maps.h +++ b/pkg/network/ebpf/c/protocols/postgres/decoding-maps.h @@ -15,4 +15,8 @@ BPF_PERCPU_ARRAY_MAP(postgres_scratch_buffer, postgres_event_t, 1) // Maintains the current state of tail calls for each Postgres message. BPF_PERCPU_ARRAY_MAP(postgres_iterations, postgres_tail_call_state_t, 1) +// Postgres telemetry maps in kernel provide empirical statistics on the number of processed Postgres messages. +// Key 0 for plaintext traffic, key 1 for encrypted traffic. +BPF_ARRAY_MAP(postgres_telemetry, postgres_kernel_msg_count_t, 2) + #endif diff --git a/pkg/network/ebpf/c/protocols/postgres/decoding.h b/pkg/network/ebpf/c/protocols/postgres/decoding.h index 300ca6ba949a9..3f5e6d489376e 100644 --- a/pkg/network/ebpf/c/protocols/postgres/decoding.h +++ b/pkg/network/ebpf/c/protocols/postgres/decoding.h @@ -108,6 +108,48 @@ static int __always_inline skip_string(pktbuf_t pkt, int message_len) { return SKIP_STRING_FAILED; } +// Return a pointer to the postgres telemetry record in the corresponding map. +static __always_inline void* get_pg_msg_counts_map(pktbuf_t pkt) { + const __u32 plain_key = 0; + const __u32 tls_key = 1; + + pktbuf_map_lookup_option_t pg_telemetry_lookup_opt[] = { + [PKTBUF_SKB] = { + .map = &postgres_telemetry, + .key = (void*)&plain_key, + }, + [PKTBUF_TLS] = { + .map = &postgres_telemetry, + .key = (void*)&tls_key, + }, + }; + return pktbuf_map_lookup(pkt, pg_telemetry_lookup_opt); +} + +// update_msg_count_telemetry increases the corresponding counter of the telemetry bucket. +static __always_inline void update_msg_count_telemetry(postgres_kernel_msg_count_t* pg_msg_counts, __u8 count) { + // This line can be interpreted as a step function of the difference, multiplied by the difference itself. + // The step function of the difference returns 0 if the difference is negative and 1 if it is positive. + // As a result, if the difference is negative, the output will be 0; if the difference is positive, + // the output will equal the difference. + count = count < PG_KERNEL_MSG_COUNT_FIRST_BUCKET ? 0 : count - PG_KERNEL_MSG_COUNT_FIRST_BUCKET; + + // This line functions as a ceiling operation, ensuring that if the count is not a multiple of the bucket size, + // it is rounded up to the next bucket. Since eBPF does not support floating-point numbers, the implementation + // adds (bucket size - 1) to the count and then divides the result by the bucket size. + // This effectively simulates the ceiling function. + __u8 bucket_idx = (count + PG_KERNEL_MSG_COUNT_BUCKET_SIZE - 1) / PG_KERNEL_MSG_COUNT_BUCKET_SIZE; + + // This line ensures that the bucket index stays within the range of 0 to PG_KERNEL_MSG_COUNT_NUM_BUCKETS. + // While not strictly necessary, we include this check to satisfy the verifier and to explicitly define a lower bound. + bucket_idx = bucket_idx < 0 ? 0 : bucket_idx; + + // This line ensures that the bucket index remains within the range of 0 to PG_KERNEL_MSG_COUNT_NUM_BUCKETS, + // preventing any possibility of exceeding the upper bound. + bucket_idx = bucket_idx >= PG_KERNEL_MSG_COUNT_NUM_BUCKETS ? PG_KERNEL_MSG_COUNT_NUM_BUCKETS-1 : bucket_idx; + __sync_fetch_and_add(&pg_msg_counts->msg_count_buckets[bucket_idx], 1); +} + // Reads the first message header and decides what to do based on the // message tag. If the message is a new query, it stores the query in the in-flight map. // If the message is a parse message, we tail call to the dedicated process_parse_message program. @@ -148,7 +190,7 @@ static __always_inline void postgres_handle_message(pktbuf_t pkt, conn_tuple_t * return; } - iteration_value->iteration = 0; + iteration_value->total_msg_count = 0; iteration_value->data_off = 0; pktbuf_tail_call_option_t handle_response_tail_call_array[] = { [PKTBUF_SKB] = { @@ -197,10 +239,10 @@ static __always_inline void postgres_handle_parse_message(pktbuf_t pkt, conn_tup // Handles Postgres command complete messages by examining packet data for both plaintext and TLS traffic. // This function handles multiple messages within a single packet, processing up to POSTGRES_MAX_MESSAGES_PER_TAIL_CALL -// messages per call. When more messages exist beyond this limit, it uses tail call chaining (up to -// POSTGRES_MAX_TAIL_CALLS_FOR_MAX_MESSAGES) to continue processing. -static __always_inline bool handle_response(pktbuf_t pkt, conn_tuple_t conn_tuple) { +// messages per call. When more messages exist beyond this limit, it uses tail call chaining to continue processing. +static __always_inline bool handle_response(pktbuf_t pkt, conn_tuple_t conn_tuple, postgres_kernel_msg_count_t* pg_msg_counts) { const __u32 zero = 0; + bool read_result = false; bool found_command_complete = false; struct pg_message_header header; @@ -210,7 +252,7 @@ static __always_inline bool handle_response(pktbuf_t pkt, conn_tuple_t conn_tupl return 0; } - if (iteration_value->iteration >= POSTGRES_MAX_TAIL_CALLS_FOR_MAX_MESSAGES) { + if (iteration_value->total_msg_count >= (POSTGRES_MAX_TOTAL_MESSAGES - 1)) { return 0; } @@ -225,13 +267,14 @@ static __always_inline bool handle_response(pktbuf_t pkt, conn_tuple_t conn_tupl return 0; } + __u8 messages_count = 0; #pragma unroll(POSTGRES_MAX_MESSAGES_PER_TAIL_CALL) - for (__u32 iteration = 0; iteration < POSTGRES_MAX_MESSAGES_PER_TAIL_CALL; ++iteration) { - if (!read_message_header(pkt, &header)) { + for (; messages_count < POSTGRES_MAX_MESSAGES_PER_TAIL_CALL; ++messages_count) { + read_result = read_message_header(pkt, &header); + if (read_result != true) { break; } if (header.message_tag == POSTGRES_COMMAND_COMPLETE_MAGIC_BYTE) { - handle_command_complete(&conn_tuple, transaction); found_command_complete = true; break; } @@ -240,20 +283,35 @@ static __always_inline bool handle_response(pktbuf_t pkt, conn_tuple_t conn_tupl // the message tag. So we need to add 1 to the message length to jump over the entire message. pktbuf_advance(pkt, header.message_len + 1); } + iteration_value->total_msg_count += messages_count; if (found_command_complete) { + handle_command_complete(&conn_tuple, transaction); + update_msg_count_telemetry(pg_msg_counts, iteration_value->total_msg_count); + return 0; } - // We didn't find a command complete message, so we need to continue processing the packet. - // We save the current data offset and increment the iteration counter. - iteration_value->iteration += 1; - iteration_value->data_off = pktbuf_data_offset(pkt); - // If the maximum number of tail calls has been reached, we can skip invoking the next tail call. - if (iteration_value->iteration >= POSTGRES_MAX_TAIL_CALLS_FOR_MAX_MESSAGES) { + if (iteration_value->total_msg_count >= (POSTGRES_MAX_TOTAL_MESSAGES - 1)) { + // reached max messages, add counter and stop iterating. + __sync_fetch_and_add(&pg_msg_counts->reached_max_messages, 1); + return 0; + } + if (pktbuf_data_offset(pkt) == pktbuf_data_end(pkt)) { + // stop the iterator if the end of the TCP packet is reached. + update_msg_count_telemetry(pg_msg_counts, iteration_value->total_msg_count); + return 0; + } + if (read_result == false) { + // the packet was fragmented, add counter stop iterating. + __sync_fetch_and_add(&pg_msg_counts->fragmented_packets, 1); return 0; } + // We didn't find a command complete message, so we need to continue processing the packet. + // We save the current data offset. + iteration_value->data_off = pktbuf_data_offset(pkt); + pktbuf_tail_call_option_t handle_response_tail_call_array[] = { [PKTBUF_SKB] = { .prog_array_map = &protocols_progs, @@ -315,7 +373,11 @@ int socket__postgres_handle_response(struct __sk_buff* skb) { normalize_tuple(&conn_tuple); pktbuf_t pkt = pktbuf_from_skb(skb, &skb_info); - handle_response(pkt, conn_tuple); + postgres_kernel_msg_count_t* pg_msg_counts = get_pg_msg_counts_map(pkt); + if (pg_msg_counts == NULL) { + return 0; + } + handle_response(pkt, conn_tuple, pg_msg_counts); return 0; } @@ -406,10 +468,15 @@ int uprobe__postgres_tls_handle_response(struct pt_regs *ctx) { return 0; } + pktbuf_t pkt = pktbuf_from_tls(ctx, args); + postgres_kernel_msg_count_t* pg_msg_counts = get_pg_msg_counts_map(pkt); + if (pg_msg_counts == NULL) { + return 0; + } + // Copying the tuple to the stack to handle verifier issues on kernel 4.14. conn_tuple_t tup = args->tup; - pktbuf_t pkt = pktbuf_from_tls(ctx, args); - handle_response(pkt, tup); + handle_response(pkt, tup, pg_msg_counts); return 0; } diff --git a/pkg/network/ebpf/c/protocols/postgres/types.h b/pkg/network/ebpf/c/protocols/postgres/types.h index 0e88332dc78a7..6f0abf951ddaf 100644 --- a/pkg/network/ebpf/c/protocols/postgres/types.h +++ b/pkg/network/ebpf/c/protocols/postgres/types.h @@ -7,10 +7,13 @@ #define POSTGRES_BUFFER_SIZE 160 // Represents the maximum number of tail calls we can use to process a single message. -#define POSTGRES_MAX_TAIL_CALLS_FOR_MAX_MESSAGES 1 +#define POSTGRES_MAX_TAIL_CALLS_FOR_MAX_MESSAGES 3 // Represents the maximum number of messages we process in a single tail call. -#define POSTGRES_MAX_MESSAGES_PER_TAIL_CALL 80 +#define POSTGRES_MAX_MESSAGES_PER_TAIL_CALL 60 + +// maximum number of messages to fetch +#define POSTGRES_MAX_TOTAL_MESSAGES (POSTGRES_MAX_TAIL_CALLS_FOR_MAX_MESSAGES * POSTGRES_MAX_MESSAGES_PER_TAIL_CALL) // Postgres transaction information we store in the kernel. typedef struct { @@ -30,10 +33,26 @@ typedef struct { } postgres_event_t; typedef struct { - __u8 iteration; + __u8 total_msg_count; // Saving the packet data offset is crucial for maintaining the current read position and ensuring proper utilization // of tail calls. __u32 data_off; } postgres_tail_call_state_t; +// Postgres communication operates via a continuous message stream. +// Gather empirical statistics on the number of messages processed by the program. +// These statistics enable optimization of the monitoring code. +// Collect counters for each subsequent bucket. +// bucket 0: count 0 to 100, bucket 1: 100 to 119, bucket 2: 120 to 139 etc. +#define PG_KERNEL_MSG_COUNT_NUM_BUCKETS 5 +#define PG_KERNEL_MSG_COUNT_BUCKET_SIZE 20 +#define PG_KERNEL_MSG_COUNT_FIRST_BUCKET 100 + +// This structure stores statistics about the number of Postgres messages in a TCP packet. +typedef struct { + __u64 reached_max_messages; + __u64 fragmented_packets; + __u64 msg_count_buckets[PG_KERNEL_MSG_COUNT_NUM_BUCKETS]; +} postgres_kernel_msg_count_t; + #endif diff --git a/pkg/network/protocols/ebpf_types.go b/pkg/network/protocols/ebpf_types.go index 57bdb4539bf5e..c5b90864ee74e 100644 --- a/pkg/network/protocols/ebpf_types.go +++ b/pkg/network/protocols/ebpf_types.go @@ -19,10 +19,8 @@ const ( ) const ( - // PostgresMaxMessagesPerTailCall is the maximum number of messages that can be processed in a single tail call in our Postgres decoding solution - PostgresMaxMessagesPerTailCall = C.POSTGRES_MAX_MESSAGES_PER_TAIL_CALL - // PostgresMaxTailCalls is the maximum number of tail calls that can be made in our Postgres decoding solution - PostgresMaxTailCalls = C.POSTGRES_MAX_TAIL_CALLS_FOR_MAX_MESSAGES + // PostgresMaxTotalMessages is the maximum number of Postgres messages processed by the eBPF program. + PostgresMaxTotalMessages = C.POSTGRES_MAX_TOTAL_MESSAGES ) // DispatcherProgramType is a C type to represent the eBPF programs used for tail calls. diff --git a/pkg/network/protocols/ebpf_types_linux.go b/pkg/network/protocols/ebpf_types_linux.go index ae855cfe48b77..8cc9c663dc3d5 100644 --- a/pkg/network/protocols/ebpf_types_linux.go +++ b/pkg/network/protocols/ebpf_types_linux.go @@ -10,9 +10,7 @@ const ( ) const ( - PostgresMaxMessagesPerTailCall = 0x50 - - PostgresMaxTailCalls = 0x1 + PostgresMaxTotalMessages = 0xb4 ) type DispatcherProgramType uint32 diff --git a/pkg/network/protocols/postgres/ebpf/types.go b/pkg/network/protocols/postgres/ebpf/types.go index 7c615186958e4..63071b914e5a7 100644 --- a/pkg/network/protocols/postgres/ebpf/types.go +++ b/pkg/network/protocols/postgres/ebpf/types.go @@ -9,6 +9,7 @@ package ebpf /* #include "../../ebpf/c/protocols/postgres/types.h" +#include "../../ebpf/c/protocols/postgres/defs.h" #include "../../ebpf/c/protocols/classification/defs.h" */ import "C" @@ -19,7 +20,12 @@ type ConnTuple = C.conn_tuple_t type EbpfEvent C.postgres_event_t type EbpfTx C.postgres_transaction_t +type PostgresKernelMsgCount C.postgres_kernel_msg_count_t const ( - BufferSize = C.POSTGRES_BUFFER_SIZE + BufferSize = C.POSTGRES_BUFFER_SIZE + MsgCountBucketSize = C.PG_KERNEL_MSG_COUNT_BUCKET_SIZE + MsgCountNumBuckets = C.PG_KERNEL_MSG_COUNT_NUM_BUCKETS + MsgCountFirstBucket = C.PG_KERNEL_MSG_COUNT_FIRST_BUCKET + MsgCountMaxTotal = C.POSTGRES_MAX_TOTAL_MESSAGES ) diff --git a/pkg/network/protocols/postgres/ebpf/types_linux.go b/pkg/network/protocols/postgres/ebpf/types_linux.go index 9b0097a2b5f9d..9413ee269ac20 100644 --- a/pkg/network/protocols/postgres/ebpf/types_linux.go +++ b/pkg/network/protocols/postgres/ebpf/types_linux.go @@ -27,7 +27,16 @@ type EbpfTx struct { Tags uint8 Pad_cgo_0 [3]byte } +type PostgresKernelMsgCount struct { + Reached_max_messages uint64 + Fragmented_packets uint64 + Msg_count_buckets [5]uint64 +} const ( - BufferSize = 0xa0 + BufferSize = 0xa0 + MsgCountBucketSize = 0x14 + MsgCountNumBuckets = 0x5 + MsgCountFirstBucket = 0x64 + MsgCountMaxTotal = 0xb4 ) diff --git a/pkg/network/protocols/postgres/protocol.go b/pkg/network/protocols/postgres/protocol.go index 6bc245896a91a..c0d7aa37a6747 100644 --- a/pkg/network/protocols/postgres/protocol.go +++ b/pkg/network/protocols/postgres/protocol.go @@ -9,6 +9,7 @@ package postgres import ( "io" + "time" "unsafe" "github.com/cilium/ebpf" @@ -28,6 +29,8 @@ import ( ) const ( + // KernelTelemetryMap is the map for getting kernel metrics + KernelTelemetryMap = "postgres_telemetry" // InFlightMap is the name of the in-flight map. InFlightMap = "postgres_in_flight" scratchBufferMap = "postgres_scratch_buffer" @@ -44,11 +47,13 @@ const ( // protocol holds the state of the postgres protocol monitoring. type protocol struct { - cfg *config.Config - telemetry *Telemetry - eventsConsumer *events.Consumer[postgresebpf.EbpfEvent] - mapCleaner *ddebpf.MapCleaner[netebpf.ConnTuple, postgresebpf.EbpfTx] - statskeeper *StatKeeper + cfg *config.Config + telemetry *Telemetry + eventsConsumer *events.Consumer[postgresebpf.EbpfEvent] + mapCleaner *ddebpf.MapCleaner[netebpf.ConnTuple, postgresebpf.EbpfTx] + statskeeper *StatKeeper + kernelTelemetry *kernelTelemetry // retrieves Postgres metrics from kernel + kernelTelemetryStopCh chan struct{} } // Spec is the protocol spec for the postgres protocol. @@ -133,9 +138,11 @@ func newPostgresProtocol(cfg *config.Config) (protocols.Protocol, error) { } return &protocol{ - cfg: cfg, - telemetry: NewTelemetry(cfg), - statskeeper: NewStatkeeper(cfg), + cfg: cfg, + telemetry: NewTelemetry(cfg), + statskeeper: NewStatkeeper(cfg), + kernelTelemetry: newKernelTelemetry(), + kernelTelemetryStopCh: make(chan struct{}), }, nil } @@ -175,6 +182,7 @@ func (p *protocol) PreStart(mgr *manager.Manager) (err error) { func (p *protocol) PostStart(mgr *manager.Manager) error { // Setup map cleaner after manager start. p.setupMapCleaner(mgr) + p.startKernelTelemetry(mgr) return nil } @@ -186,11 +194,16 @@ func (p *protocol) Stop(*manager.Manager) { if p.eventsConsumer != nil { p.eventsConsumer.Stop() } + if p.kernelTelemetryStopCh != nil { + close(p.kernelTelemetryStopCh) + } } // DumpMaps dumps map contents for debugging. func (p *protocol) DumpMaps(w io.Writer, mapName string, currentMap *ebpf.Map) { - if mapName == InFlightMap { // maps/postgres_in_flight (BPF_MAP_TYPE_HASH), key ConnTuple, value EbpfTx + switch mapName { + case InFlightMap: + // maps/postgres_in_flight (BPF_MAP_TYPE_HASH), key ConnTuple, value EbpfTx var key netebpf.ConnTuple var value postgresebpf.EbpfTx protocols.WriteMapDumpHeader(w, currentMap, mapName, key, value) @@ -198,12 +211,27 @@ func (p *protocol) DumpMaps(w io.Writer, mapName string, currentMap *ebpf.Map) { for iter.Next(unsafe.Pointer(&key), unsafe.Pointer(&value)) { spew.Fdump(w, key, value) } + case KernelTelemetryMap: + // postgres_msg_count (BPF_ARRAY_MAP), key 0 and 1, value PostgresKernelMsgCount + plainKey := uint32(0) + tlsKey := uint32(1) + + var value postgresebpf.PostgresKernelMsgCount + protocols.WriteMapDumpHeader(w, currentMap, mapName, plainKey, value) + if err := currentMap.Lookup(unsafe.Pointer(&plainKey), unsafe.Pointer(&value)); err == nil { + spew.Fdump(w, plainKey, value) + } + protocols.WriteMapDumpHeader(w, currentMap, mapName, tlsKey, value) + if err := currentMap.Lookup(unsafe.Pointer(&tlsKey), unsafe.Pointer(&value)); err == nil { + spew.Fdump(w, tlsKey, value) + } } } // GetStats returns a map of Postgres stats. func (p *protocol) GetStats() *protocols.ProtocolStats { p.eventsConsumer.Sync() + p.kernelTelemetry.Log() return &protocols.ProtocolStats{ Type: protocols.Postgres, @@ -250,3 +278,40 @@ func (p *protocol) setupMapCleaner(mgr *manager.Manager) { p.mapCleaner = mapCleaner } + +func (p *protocol) startKernelTelemetry(mgr *manager.Manager) { + telemetryMap, err := protocols.GetMap(mgr, KernelTelemetryMap) + if err != nil { + log.Errorf("couldnt find kernel telemetry map: %s, error: %v", telemetryMap, err) + return + } + + plainKey := uint32(0) + tlsKey := uint32(1) + pgKernelMsgCount := &postgresebpf.PostgresKernelMsgCount{} + ticker := time.NewTicker(30 * time.Second) + + go func() { + defer ticker.Stop() + + for { + select { + case <-ticker.C: + if err := telemetryMap.Lookup(unsafe.Pointer(&plainKey), unsafe.Pointer(pgKernelMsgCount)); err != nil { + log.Errorf("unable to lookup %q map: %s", KernelTelemetryMap, err) + return + } + p.kernelTelemetry.update(pgKernelMsgCount, false) + + if err := telemetryMap.Lookup(unsafe.Pointer(&tlsKey), unsafe.Pointer(pgKernelMsgCount)); err != nil { + log.Errorf("unable to lookup %q map: %s", KernelTelemetryMap, err) + return + } + p.kernelTelemetry.update(pgKernelMsgCount, true) + + case <-p.kernelTelemetryStopCh: + return + } + } + }() +} diff --git a/pkg/network/protocols/postgres/telemetry.go b/pkg/network/protocols/postgres/telemetry.go index cc17b902c24ea..d8cb08725a80e 100644 --- a/pkg/network/protocols/postgres/telemetry.go +++ b/pkg/network/protocols/postgres/telemetry.go @@ -9,6 +9,7 @@ package postgres import ( "fmt" + "strconv" "github.com/cihub/seelog" @@ -178,3 +179,49 @@ func (t *Telemetry) Log() { log.Debugf("postgres stats summary: %s", t.metricGroup.Summary()) } } + +// kernelTelemetry provides empirical kernel statistics about the number of messages in each TCP packet +type kernelTelemetry struct { + metricGroup *libtelemetry.MetricGroup + reachedMaxMessages *libtelemetry.TLSAwareCounter + fragmentedPackets *libtelemetry.TLSAwareCounter + msgCountBuckets [ebpf.MsgCountNumBuckets]*libtelemetry.TLSAwareCounter // Postgres messages counters divided into buckets +} + +// newKernelTelemetry this is the Postgres message counter store. +func newKernelTelemetry() *kernelTelemetry { + metricGroup := libtelemetry.NewMetricGroup("usm.postgres", libtelemetry.OptStatsd) + kernelTel := &kernelTelemetry{ + metricGroup: metricGroup, + } + kernelTel.reachedMaxMessages = libtelemetry.NewTLSAwareCounter(metricGroup, "max_messages") + kernelTel.fragmentedPackets = libtelemetry.NewTLSAwareCounter(metricGroup, "incomplete_messages") + + for i := range kernelTel.msgCountBuckets { + kernelTel.msgCountBuckets[i] = libtelemetry.NewTLSAwareCounter(metricGroup, "messages_count_bucket_"+strconv.Itoa(i+1)) + } + return kernelTel +} + +// update the postgres message counter store with new counters from the kernel, return immediately if nothing to add. +func (t *kernelTelemetry) update(kernCounts *ebpf.PostgresKernelMsgCount, isTLS bool) { + if kernCounts == nil { + return + } + + t.reachedMaxMessages.Set(int64(kernCounts.Reached_max_messages), isTLS) + t.fragmentedPackets.Set(int64(kernCounts.Fragmented_packets), isTLS) + + for i := range t.msgCountBuckets { + v := kernCounts.Msg_count_buckets[i] + t.msgCountBuckets[i].Set(int64(v), isTLS) + } +} + +// Log logs summary of telemetry +func (t *kernelTelemetry) Log() { + if log.ShouldLog(seelog.DebugLvl) { + s := t.metricGroup.Summary() + log.Debugf("postgres kernel telemetry, summary: %s", s) + } +} diff --git a/pkg/network/protocols/telemetry/metric.go b/pkg/network/protocols/telemetry/metric.go index 46aa226351278..56ce64a1b00b8 100644 --- a/pkg/network/protocols/telemetry/metric.go +++ b/pkg/network/protocols/telemetry/metric.go @@ -26,6 +26,11 @@ func NewCounter(name string, tagsAndOptions ...string) *Counter { return globalRegistry.FindOrCreate(c).(*Counter) } +// Set value atomically +func (c *Counter) Set(v int64) { + c.value.Store(v) +} + // Add value atomically func (c *Counter) Add(v int64) { if v > 0 { @@ -118,6 +123,15 @@ func NewTLSAwareCounter(metricGroup *MetricGroup, metricName string, tags ...str } } +// Set Sets the given value to the counter based on the encryption. +func (c *TLSAwareCounter) Set(v int64, isTLS bool) { + if isTLS { + c.counterTLS.Set(v) + return + } + c.counterPlain.Set(v) +} + // Add adds the given delta to the counter based on the encryption. func (c *TLSAwareCounter) Add(delta int64, isTLS bool) { if isTLS { diff --git a/pkg/network/usm/postgres_monitor_test.go b/pkg/network/usm/postgres_monitor_test.go index 76c616beff5bd..9198448f99468 100644 --- a/pkg/network/usm/postgres_monitor_test.go +++ b/pkg/network/usm/postgres_monitor_test.go @@ -16,8 +16,10 @@ import ( "sync" "testing" "time" + "unsafe" "github.com/jackc/pgx/v5/pgproto3" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/stretchr/testify/suite" @@ -47,7 +49,6 @@ const ( alterTableQuery = "ALTER TABLE dummy ADD test VARCHAR(255);" truncateTableQuery = "TRUNCATE TABLE dummy" showQuery = "SHOW search_path" - maxSupportedMessages = protocols.PostgresMaxMessagesPerTailCall * protocols.PostgresMaxTailCalls ) var ( @@ -591,7 +592,7 @@ func testDecoding(t *testing.T, isTLS bool) { }, // The purpose of this test is to validate the POSTGRES_MAX_MESSAGES_PER_TAIL_CALL * POSTGRES_MAX_TAIL_CALLS_FOR_MAX_MESSAGES limit. { - name: "validate supporting max supported messages limit", + name: "validate max supported messages limit", preMonitorSetup: func(t *testing.T, ctx pgTestContext) { pg, err := postgres.NewPGXClient(postgres.ConnectionOptions{ ServerAddress: ctx.serverAddress, @@ -607,7 +608,7 @@ func testDecoding(t *testing.T, isTLS bool) { ctx.extras["pg"] = pg require.NoError(t, pg.RunQuery(createTableQuery)) // We reduce the limit by 2 messages because the protocol adds messages at the beginning of the maximum message response. - require.NoError(t, pg.RunQuery(createInsertQuery(generateTestValues(1, maxSupportedMessages-3)...))) + require.NoError(t, pg.RunQuery(createInsertQuery(generateTestValues(1, protocols.PostgresMaxTotalMessages-3)...))) require.NoError(t, pg.RunQuery(selectAllQuery)) }, validation: func(t *testing.T, _ pgTestContext, monitor *Monitor) { @@ -623,7 +624,7 @@ func testDecoding(t *testing.T, isTLS bool) { // This test validates that when we exceed the POSTGRES_MAX_MESSAGES_PER_TAIL_CALL * POSTGRES_MAX_TAIL_CALLS_FOR_MAX_MESSAGES limit, // the request is not captured as we will miss the response.In this case, it applies to the SELECT query. { - name: "validate exceeding max supported messages limit is not supported", + name: "exceeding max supported messages limit", preMonitorSetup: func(t *testing.T, ctx pgTestContext) { pg, err := postgres.NewPGXClient(postgres.ConnectionOptions{ ServerAddress: ctx.serverAddress, @@ -638,7 +639,7 @@ func testDecoding(t *testing.T, isTLS bool) { require.NoError(t, pg.Ping()) ctx.extras["pg"] = pg require.NoError(t, pg.RunQuery(createTableQuery)) - require.NoError(t, pg.RunQuery(createInsertQuery(generateTestValues(1, maxSupportedMessages+1)...))) + require.NoError(t, pg.RunQuery(createInsertQuery(generateTestValues(1, protocols.PostgresMaxTotalMessages+1)...))) require.NoError(t, pg.RunQuery(selectAllQuery)) }, validation: func(t *testing.T, _ pgTestContext, monitor *Monitor) { @@ -890,3 +891,169 @@ func createFragment(fragment []byte) [ebpf.BufferSize]byte { copy(b[:], fragment) return b } + +func (s *postgresProtocolParsingSuite) TestKernelTelemetry() { + t := s.T() + tests := []struct { + name string + isTLS bool + }{ + { + name: "without TLS", + isTLS: false, + }, + { + name: "with TLS", + isTLS: true, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if tt.isTLS && !gotlstestutil.GoTLSSupported(t, config.New()) { + t.Skip("GoTLS not supported for this setup") + } + testKernelMessagesCount(t, tt.isTLS) + }) + } +} + +// testKernelMessagesCount check postgres kernel messages count. +func testKernelMessagesCount(t *testing.T, isTLS bool) { + serverHost := "127.0.0.1" + serverAddress := net.JoinHostPort(serverHost, postgresPort) + require.NoError(t, postgres.RunServer(t, serverHost, postgresPort, isTLS)) + waitForPostgresServer(t, serverAddress, isTLS) + + monitor := setupUSMTLSMonitor(t, getPostgresDefaultTestConfiguration(isTLS)) + if isTLS { + utils.WaitForProgramsToBeTraced(t, consts.USMModuleName, GoTLSAttacherName, os.Getpid(), utils.ManualTracingFallbackEnabled) + } + pgClient := setupPGClient(t, serverAddress, isTLS) + t.Cleanup(func() { + if pgClient != nil { + _ = pgClient.RunQuery(dropTableQuery) + pgClient.Close() + pgClient = nil + } + }) + + createLargeTable(t, pgClient, ebpf.MsgCountFirstBucket+ebpf.MsgCountBucketSize*ebpf.MsgCountNumBuckets) + expectedBuckets := [ebpf.MsgCountNumBuckets]bool{} + + for i := 0; i < ebpf.MsgCountNumBuckets; i++ { + testName := fmt.Sprintf("kernel messages count bucket[%d]", i) + t.Run(testName, func(t *testing.T) { + + expectedBuckets[i] = true + cleanProtocolMaps(t, "postgres", monitor.ebpfProgram.Manager.Manager) + + require.NoError(t, monitor.Resume()) + if i == 0 { + // first bucket, it counts upto ebpf.MsgCountFirstBucketMax messages + // subtract three messages ('bind', 'row description' and 'ready') + require.NoError(t, pgClient.RunQuery(generateSelectLimitQuery(ebpf.MsgCountFirstBucket-3))) + } else { + limitCount := ebpf.MsgCountFirstBucket + i*ebpf.MsgCountBucketSize - 3 + require.NoError(t, pgClient.RunQuery(generateSelectLimitQuery(limitCount))) + } + require.NoError(t, monitor.Pause()) + + validateKernelBuckets(t, monitor, isTLS, expectedBuckets) + if i > 0 { + // clear current bucket except the first one, which is always non-empty. + expectedBuckets[i] = false + } + }) + } + + t.Run("exceed max buckets", func(t *testing.T) { + + cleanProtocolMaps(t, "postgres", monitor.ebpfProgram.Manager.Manager) + require.NoError(t, monitor.Resume()) + + require.NoError(t, pgClient.RunQuery(generateSelectLimitQuery(ebpf.MsgCountMaxTotal))) + require.NoError(t, monitor.Pause()) + + validateKernelExceedingMax(t, monitor, isTLS) + }) +} + +func setupPGClient(t *testing.T, serverAddress string, isTLS bool) *postgres.PGXClient { + pg, err := postgres.NewPGXClient(postgres.ConnectionOptions{ + ServerAddress: serverAddress, + EnableTLS: isTLS, + }) + require.NoError(t, err) + require.NoError(t, pg.Ping()) + return pg +} + +// createLargeTable runs a postgres query to create a table large enough to retrieve long responses later. +func createLargeTable(t *testing.T, pg *postgres.PGXClient, tableValuesCount int) { + require.NoError(t, pg.RunQuery(createTableQuery)) + require.NoError(t, pg.RunQuery(createInsertQuery(generateTestValues(0, tableValuesCount)...))) +} + +// validateKernel Checking telemetry data received for a postgres query +func validateKernelBuckets(t *testing.T, monitor *Monitor, tls bool, expected [ebpf.MsgCountNumBuckets]bool) { + var actual *ebpf.PostgresKernelMsgCount + assert.Eventually(t, func() bool { + found, err := getKernelTelemetry(monitor, tls) + if err != nil { + return false + } + actual = found + return compareMessagesCount(found, expected) + }, time.Second*2, time.Millisecond*100) + if t.Failed() { + t.Logf("expected telemetry:\n %+v;\nactual telemetry:\n %+v", expected, actual) + ebpftest.DumpMapsTestHelper(t, monitor.DumpMaps, postgres.KernelTelemetryMap) + } +} + +// getKernelTelemetry returns statistics obtained from the kernel +func getKernelTelemetry(monitor *Monitor, isTLS bool) (*ebpf.PostgresKernelMsgCount, error) { + pgKernelTelemetry := &ebpf.PostgresKernelMsgCount{} + mapName := postgres.KernelTelemetryMap + key := uint32(0) + if isTLS { + key = uint32(1) + } + mp, _, err := monitor.ebpfProgram.GetMap(mapName) + if err != nil { + return nil, fmt.Errorf("unable to get %q map: %s", mapName, err) + } + if err := mp.Lookup(unsafe.Pointer(&key), unsafe.Pointer(pgKernelTelemetry)); err != nil { + return nil, fmt.Errorf("unable to lookup %q map: %s", mapName, err) + } + return pgKernelTelemetry, nil +} + +// compareMessagesCount returns true if the expected bucket is non-empty +func compareMessagesCount(found *ebpf.PostgresKernelMsgCount, expected [ebpf.MsgCountNumBuckets]bool) bool { + for i := range expected { + if expected[i] && found.Msg_count_buckets[i] == 0 { + return false + } + if !expected[i] && found.Msg_count_buckets[i] > 0 { + return false + } + } + return true +} + +// validateKernelExceedingMax check for exceeding the maximum number of buckets +func validateKernelExceedingMax(t *testing.T, monitor *Monitor, tls bool) { + var actual *ebpf.PostgresKernelMsgCount + assert.Eventually(t, func() bool { + found, err := getKernelTelemetry(monitor, tls) + if err != nil { + return false + } + actual = found + return found.Reached_max_messages > 0 + }, time.Second*2, time.Millisecond*100) + if t.Failed() { + t.Logf("expected non-zero max messages, actual telemetry:\n %+v", actual) + } +} From 5e3a9d7cbe4c2d1f6a1ba917b8d45e1c1448b0a8 Mon Sep 17 00:00:00 2001 From: Guy Arbitman Date: Tue, 10 Dec 2024 08:20:18 +0200 Subject: [PATCH 343/439] Fix require.Eventually gotchas (#31861) --- pkg/network/dns/snooper_test.go | 8 +- .../testutil/testdns/test_dns_server.go | 12 +- pkg/network/tracer/tracer_linux_test.go | 236 ++++++++---------- pkg/network/tracer/tracer_test.go | 97 +++---- pkg/network/usm/kafka_monitor_test.go | 8 +- .../usm/tests/tracer_usm_linux_test.go | 25 +- 6 files changed, 186 insertions(+), 200 deletions(-) diff --git a/pkg/network/dns/snooper_test.go b/pkg/network/dns/snooper_test.go index 3a0d334c80488..a6c1383a9ddcc 100644 --- a/pkg/network/dns/snooper_test.go +++ b/pkg/network/dns/snooper_test.go @@ -230,7 +230,7 @@ func TestDNSFailedResponseCount(t *testing.T) { "nonexistenent.net.com", "missingdomain.com", } - queryIP, queryPort, reps, _ := testdns.SendDNSQueries(t, domains, testdns.GetServerIP(t), "tcp") + queryIP, queryPort, reps, _ := testdns.SendDNSQueries(domains, testdns.GetServerIP(t), "tcp") for _, rep := range reps { require.NotNil(t, rep) require.Equal(t, rep.Rcode, mdns.RcodeNameError) // All the queries should have failed @@ -281,7 +281,7 @@ func TestDNSOverNonPort53(t *testing.T) { shutdown, port := newTestServer(t, localhost, "udp") defer shutdown() - queryIP, queryPort, reps, err := testdns.SendDNSQueriesOnPort(t, domains, net.ParseIP(localhost), strconv.Itoa(int(port)), "udp") + queryIP, queryPort, reps, err := testdns.SendDNSQueriesOnPort(domains, net.ParseIP(localhost), strconv.Itoa(int(port)), "udp") require.NoError(t, err) require.NotNil(t, reps[0]) @@ -334,7 +334,7 @@ func TestDNSOverUDPTimeoutCount(t *testing.T) { invalidServerIP := "8.8.8.90" domainQueried := "agafsdfsdasdfsd" - queryIP, queryPort, reps, err := testdns.SendDNSQueries(t, []string{domainQueried}, net.ParseIP(invalidServerIP), "udp") + queryIP, queryPort, reps, err := testdns.SendDNSQueries([]string{domainQueried}, net.ParseIP(invalidServerIP), "udp") require.ErrorIs(t, err, os.ErrDeadlineExceeded, "error should be i/o timeout") require.Len(t, reps, 1) require.Nil(t, reps[0]) @@ -358,7 +358,7 @@ func TestDNSOverUDPTimeoutCountWithoutDomain(t *testing.T) { invalidServerIP := "8.8.8.90" domainQueried := "agafsdfsdasdfsd" - queryIP, queryPort, reps, err := testdns.SendDNSQueries(t, []string{domainQueried}, net.ParseIP(invalidServerIP), "udp") + queryIP, queryPort, reps, err := testdns.SendDNSQueries([]string{domainQueried}, net.ParseIP(invalidServerIP), "udp") require.ErrorIs(t, err, os.ErrDeadlineExceeded, "error should be i/o timeout") require.Len(t, reps, 1) require.Nil(t, reps[0]) diff --git a/pkg/network/tracer/testutil/testdns/test_dns_server.go b/pkg/network/tracer/testutil/testdns/test_dns_server.go index 48c4e2fe670fe..05745479b4073 100644 --- a/pkg/network/tracer/testutil/testdns/test_dns_server.go +++ b/pkg/network/tracer/testutil/testdns/test_dns_server.go @@ -131,8 +131,7 @@ func respond(req *dns.Msg, writer dns.ResponseWriter, record string) { } // SendDNSQueriesOnPort makes a DNS query for every domain provided, on the given serverIP, port, and protocol. -func SendDNSQueriesOnPort(t *testing.T, domains []string, serverIP net.IP, port string, protocol string) (string, int, []*dns.Msg, error) { - t.Helper() +func SendDNSQueriesOnPort(domains []string, serverIP net.IP, port string, protocol string) (string, int, []*dns.Msg, error) { dnsClient := dns.Client{Net: protocol, Timeout: 3 * time.Second} dnsHost := net.JoinHostPort(serverIP.String(), port) conn, err := dnsClient.Dial(dnsHost) @@ -168,24 +167,21 @@ func SendDNSQueriesOnPort(t *testing.T, domains []string, serverIP net.IP, port // SendDNSQueriesAndCheckError is a simple helper that requires no errors to be present when calling SendDNSQueries func SendDNSQueriesAndCheckError( - t *testing.T, + t require.TestingT, domains []string, serverIP net.IP, protocol string, ) (string, int, []*dns.Msg) { - t.Helper() - ip, port, resp, err := SendDNSQueries(t, domains, serverIP, protocol) + ip, port, resp, err := SendDNSQueries(domains, serverIP, protocol) require.NoError(t, err) return ip, port, resp } // SendDNSQueries is a simple helper that calls SendDNSQueriesOnPort with port 53 func SendDNSQueries( - t *testing.T, domains []string, serverIP net.IP, protocol string, ) (string, int, []*dns.Msg, error) { - t.Helper() - return SendDNSQueriesOnPort(t, domains, serverIP, "53", protocol) + return SendDNSQueriesOnPort(domains, serverIP, "53", protocol) } diff --git a/pkg/network/tracer/tracer_linux_test.go b/pkg/network/tracer/tracer_linux_test.go index 5897839fb2c41..d90928d560da8 100644 --- a/pkg/network/tracer/tracer_linux_test.go +++ b/pkg/network/tracer/tracer_linux_test.go @@ -174,7 +174,7 @@ func (s *TracerSuite) TestTCPRetransmit() { var conn *network.ConnectionStats require.EventuallyWithT(t, func(ct *assert.CollectT) { // Iterate through active connections until we find connection created above, and confirm send + recv counts - connections := getConnections(t, tr) + connections := getConnections(ct, tr) ok := false conn, ok = findConnection(c.LocalAddr(), c.RemoteAddr(), connections) @@ -185,7 +185,7 @@ func (s *TracerSuite) TestTCPRetransmit() { assert.Equal(ct, 100*clientMessageSize, int(conn.Monotonic.SentBytes)) assert.Equal(ct, serverMessageSize, int(conn.Monotonic.RecvBytes)) if !tr.config.EnableEbpfless { - assert.Equal(t, os.Getpid(), int(conn.Pid)) + assert.Equal(ct, os.Getpid(), int(conn.Pid)) } assert.Equal(ct, addrPort(server.Address()), int(conn.DPort)) @@ -308,7 +308,7 @@ func (s *TracerSuite) TestTCPRTT() { require.EventuallyWithT(t, func(ct *assert.CollectT) { // Fetch connection matching source and target address - allConnections := getConnections(t, tr) + allConnections := getConnections(ct, tr) conn, ok := findConnection(c.LocalAddr(), c.RemoteAddr(), allConnections) if !assert.True(ct, ok) { return @@ -478,7 +478,7 @@ func (s *TracerSuite) TestConntrackExpiration() { return } - connections := getConnections(t, tr) + connections := getConnections(collect, tr) t.Log(connections) // for debugging failures var ok bool conn, ok = findConnection(c.LocalAddr(), c.RemoteAddr(), connections) @@ -541,10 +541,11 @@ func (s *TracerSuite) TestConntrackDelays() { _, err = c.Write([]byte("ping")) require.NoError(t, err) - require.Eventually(t, func() bool { - connections := getConnections(t, tr) + require.EventuallyWithT(t, func(collect *assert.CollectT) { + connections := getConnections(collect, tr) conn, ok := findConnection(c.LocalAddr(), c.RemoteAddr(), connections) - return ok && tr.conntracker.GetTranslationForConn(&conn.ConnectionTuple) != nil + require.True(collect, ok) + require.NotNil(collect, tr.conntracker.GetTranslationForConn(&conn.ConnectionTuple)) }, 3*time.Second, 100*time.Millisecond, "failed to find connection with translation") // write newline so server connections will exit @@ -629,7 +630,7 @@ func (s *TracerSuite) TestUnconnectedUDPSendIPv6() { require.NoError(t, err) require.EventuallyWithT(t, func(ct *assert.CollectT) { - connections := getConnections(t, tr) + connections := getConnections(ct, tr) outgoing := network.FilterConnections(connections, func(cs network.ConnectionStats) bool { if cs.Type != network.UDP { return false @@ -726,7 +727,7 @@ func (s *TracerSuite) TestGatewayLookupEnabled() { var clientIP string var clientPort int require.EventuallyWithT(t, func(c *assert.CollectT) { - clientIP, clientPort, _, err = testdns.SendDNSQueries(t, []string{"google.com"}, dnsAddr, "udp") + clientIP, clientPort, _, err = testdns.SendDNSQueries([]string{"google.com"}, dnsAddr, "udp") assert.NoError(c, err) }, 6*time.Second, 100*time.Millisecond, "failed to send dns query") @@ -783,7 +784,7 @@ func (s *TracerSuite) TestGatewayLookupSubnetLookupError() { var clientIP string var clientPort int require.EventuallyWithT(t, func(c *assert.CollectT) { - clientIP, clientPort, _, err = testdns.SendDNSQueries(t, []string{destDomain}, destAddr, "udp") + clientIP, clientPort, _, err = testdns.SendDNSQueries([]string{destDomain}, destAddr, "udp") assert.NoError(c, err) }, 6*time.Second, 100*time.Millisecond, "failed to send dns query") @@ -798,7 +799,7 @@ func (s *TracerSuite) TestGatewayLookupSubnetLookupError() { require.Nil(t, c.Via) require.EventuallyWithT(t, func(c *assert.CollectT) { - clientIP, clientPort, _, err = testdns.SendDNSQueries(t, []string{destDomain}, destAddr, "udp") + clientIP, clientPort, _, err = testdns.SendDNSQueries([]string{destDomain}, destAddr, "udp") assert.NoError(c, err) }, 6*time.Second, 100*time.Millisecond, "failed to send dns query") @@ -906,12 +907,13 @@ func (s *TracerSuite) TestGatewayLookupCrossNamespace() { _, err = c.Write([]byte("foo")) require.NoError(t, err) - require.Eventually(t, func() bool { + require.EventuallyWithT(t, func(collect *assert.CollectT) { var ok bool - conns := getConnections(t, tr) + conns := getConnections(collect, tr) t.Log(conns) conn, ok = findConnection(c.LocalAddr(), c.RemoteAddr(), conns) - return ok && conn.Direction == network.OUTGOING + require.True(collect, ok) + require.Equal(collect, network.OUTGOING, conn.Direction) }, 3*time.Second, 100*time.Millisecond) // conn.Via should be nil, since traffic is local @@ -939,12 +941,13 @@ func (s *TracerSuite) TestGatewayLookupCrossNamespace() { require.NoError(t, err) var conn *network.ConnectionStats - require.Eventually(t, func() bool { + require.EventuallyWithT(t, func(collect *assert.CollectT) { var ok bool - conns := getConnections(t, tr) + conns := getConnections(collect, tr) t.Log(conns) conn, ok = findConnection(c.LocalAddr(), c.RemoteAddr(), conns) - return ok && conn.Direction == network.OUTGOING + require.True(collect, ok) + require.Equal(collect, network.OUTGOING, conn.Direction) }, 3*time.Second, 100*time.Millisecond) // traffic is local, so Via field should not be set @@ -957,7 +960,7 @@ func (s *TracerSuite) TestGatewayLookupCrossNamespace() { var clientPort int require.EventuallyWithT(t, func(c *assert.CollectT) { kernel.WithNS(test2Ns, func() error { - clientIP, clientPort, _, err = testdns.SendDNSQueries(t, []string{"google.com"}, dnsAddr, "udp") + clientIP, clientPort, _, err = testdns.SendDNSQueries([]string{"google.com"}, dnsAddr, "udp") return nil }) assert.NoError(c, err) @@ -969,10 +972,11 @@ func (s *TracerSuite) TestGatewayLookupCrossNamespace() { iif := ipRouteGet(t, "", dnsClientAddr.IP.String(), nil) ifi := ipRouteGet(t, dnsClientAddr.IP.String(), dnsAddr.String(), iif) - require.Eventually(t, func() bool { + require.EventuallyWithT(t, func(collect *assert.CollectT) { var ok bool - conn, ok = findConnection(dnsClientAddr, dnsServerAddr, getConnections(t, tr)) - return ok && conn.Direction == network.OUTGOING + conn, ok = findConnection(dnsClientAddr, dnsServerAddr, getConnections(collect, tr)) + require.True(collect, ok) + require.Equal(collect, network.OUTGOING, conn.Direction) }, 3*time.Second, 100*time.Millisecond) require.NotNil(t, conn.Via) @@ -1012,16 +1016,15 @@ func (s *TracerSuite) TestConnectionAssured() { require.NoError(t, err) } - var conn *network.ConnectionStats - require.Eventually(t, func() bool { - conns := getConnections(t, tr) - var ok bool - conn, ok = findConnection(c.LocalAddr(), c.RemoteAddr(), conns) - return ok && conn.Monotonic.SentBytes > 0 && conn.Monotonic.RecvBytes > 0 + require.EventuallyWithT(t, func(collect *assert.CollectT) { + conns := getConnections(collect, tr) + conn, ok := findConnection(c.LocalAddr(), c.RemoteAddr(), conns) + require.True(collect, ok) + require.Positive(collect, conn.Monotonic.SentBytes) + require.Positive(collect, conn.Monotonic.RecvBytes) + // verify the connection is marked as assured + require.True(collect, conn.IsAssured) }, 3*time.Second, 100*time.Millisecond, "could not find udp connection") - - // verify the connection is marked as assured - require.True(t, conn.IsAssured) } func (s *TracerSuite) TestConnectionNotAssured() { @@ -1047,16 +1050,15 @@ func (s *TracerSuite) TestConnectionNotAssured() { _, err = c.Write(genPayload(clientMessageSize)) require.NoError(t, err) - var conn *network.ConnectionStats - require.Eventually(t, func() bool { - conns := getConnections(t, tr) - var ok bool - conn, ok = findConnection(c.LocalAddr(), c.RemoteAddr(), conns) - return ok && conn.Monotonic.SentBytes > 0 && conn.Monotonic.RecvBytes == 0 + require.EventuallyWithT(t, func(collect *assert.CollectT) { + conns := getConnections(collect, tr) + conn, ok := findConnection(c.LocalAddr(), c.RemoteAddr(), conns) + require.True(collect, ok) + require.Positive(collect, conn.Monotonic.SentBytes) + require.Zero(collect, conn.Monotonic.RecvBytes) + // verify the connection is marked as not assured + require.False(collect, conn.IsAssured) }, 3*time.Second, 100*time.Millisecond, "could not find udp connection") - - // verify the connection is marked as not assured - require.False(t, conn.IsAssured) } func (s *TracerSuite) TestUDPConnExpiryTimeout() { @@ -1111,19 +1113,15 @@ func (s *TracerSuite) TestDNATIntraHostIntegration() { }) var incoming, outgoing *network.ConnectionStats - require.Eventually(t, func() bool { + require.EventuallyWithT(t, func(collect *assert.CollectT) { _, err = conn.Write([]byte("ping")) - if !assert.NoError(t, err, "error writing in client") { - return false - } + require.NoError(collect, err) bs := make([]byte, 4) _, err = conn.Read(bs) - if !assert.NoError(t, err) { - return false - } + require.NoError(collect, err) - conns := getConnections(t, tr) + conns := getConnections(collect, tr) t.Log(conns) outgoing, _ = findConnection(conn.LocalAddr(), conn.RemoteAddr(), conns) @@ -1131,7 +1129,9 @@ func (s *TracerSuite) TestDNATIntraHostIntegration() { t.Logf("incoming: %+v, outgoing: %+v", incoming, outgoing) - return outgoing != nil && incoming != nil && outgoing.IPTranslation != nil + require.NotNil(collect, outgoing) + require.NotNil(collect, incoming) + require.NotNil(collect, outgoing.IPTranslation) }, 3*time.Second, 100*time.Millisecond, "failed to get both incoming and outgoing connection") assert.True(t, outgoing.IntraHost, "did not find outgoing connection classified as local: %v", outgoing) @@ -1175,13 +1175,13 @@ func (s *TracerSuite) TestSelfConnect() { t.Logf("port is %d", port) - require.Eventually(t, func() bool { - conns := network.FilterConnections(getConnections(t, tr), func(cs network.ConnectionStats) bool { + require.EventuallyWithT(t, func(collect *assert.CollectT) { + conns := network.FilterConnections(getConnections(collect, tr), func(cs network.ConnectionStats) bool { return cs.SPort == uint16(port) && cs.DPort == uint16(port) && cs.Source.IsLoopback() && cs.Dest.IsLoopback() }) t.Logf("connections: %v", conns) - return len(conns) == 2 + require.Len(collect, conns, 2) }, 5*time.Second, 100*time.Millisecond, "could not find expected number of tcp connections, expected: 2") } @@ -1277,8 +1277,8 @@ func testUDPPeekCount(t *testing.T, udpnet, ip string) { var incoming *network.ConnectionStats var outgoing *network.ConnectionStats - require.Eventuallyf(t, func() bool { - conns := getConnections(t, tr) + require.EventuallyWithTf(t, func(collect *assert.CollectT) { + conns := getConnections(collect, tr) if outgoing == nil { outgoing, _ = findConnection(c.LocalAddr(), c.RemoteAddr(), conns) } @@ -1286,7 +1286,8 @@ func testUDPPeekCount(t *testing.T, udpnet, ip string) { incoming, _ = findConnection(c.RemoteAddr(), c.LocalAddr(), conns) } - return outgoing != nil && incoming != nil + require.NotNil(collect, outgoing) + require.NotNil(collect, incoming) }, 3*time.Second, 100*time.Millisecond, "couldn't find incoming and outgoing connections matching") m := outgoing.Monotonic @@ -1343,8 +1344,8 @@ func testUDPPacketSumming(t *testing.T, udpnet, ip string) { var incoming *network.ConnectionStats var outgoing *network.ConnectionStats - require.Eventuallyf(t, func() bool { - conns := getConnections(t, tr) + require.EventuallyWithTf(t, func(collect *assert.CollectT) { + conns := getConnections(collect, tr) if outgoing == nil { outgoing, _ = findConnection(c.LocalAddr(), c.RemoteAddr(), conns) } @@ -1352,7 +1353,8 @@ func testUDPPacketSumming(t *testing.T, udpnet, ip string) { incoming, _ = findConnection(c.RemoteAddr(), c.LocalAddr(), conns) } - return outgoing != nil && incoming != nil + require.NotNil(collect, outgoing) + require.NotNil(collect, incoming) }, 3*time.Second, 100*time.Millisecond, "couldn't find incoming and outgoing connections matching") m := outgoing.Monotonic @@ -1407,8 +1409,8 @@ func (s *TracerSuite) TestUDPPythonReusePort() { t.Logf("port is %d", port) conns := map[network.ConnectionTuple]network.ConnectionStats{} - require.Eventually(t, func() bool { - _conns := network.FilterConnections(getConnections(t, tr), func(cs network.ConnectionStats) bool { + require.EventuallyWithT(t, func(collect *assert.CollectT) { + _conns := network.FilterConnections(getConnections(collect, tr), func(cs network.ConnectionStats) bool { return cs.Type == network.UDP && cs.Source.IsLoopback() && cs.Dest.IsLoopback() && @@ -1421,7 +1423,7 @@ func (s *TracerSuite) TestUDPPythonReusePort() { t.Log(conns) - return len(conns) == 4 + require.Len(collect, conns, 4) }, 3*time.Second, 100*time.Millisecond, "could not find expected number of udp connections, expected: 4") var incoming, outgoing []network.ConnectionStats @@ -1781,15 +1783,12 @@ func (s *TracerSuite) TestSendfileError() { c.Close() - var conn *network.ConnectionStats - require.Eventually(t, func() bool { - conns := getConnections(t, tr) - var ok bool - conn, ok = findConnection(c.LocalAddr(), c.RemoteAddr(), conns) - return ok + require.EventuallyWithT(t, func(collect *assert.CollectT) { + conns := getConnections(collect, tr) + conn, ok := findConnection(c.LocalAddr(), c.RemoteAddr(), conns) + require.True(collect, ok) + require.Equalf(collect, int64(0), int64(conn.Monotonic.SentBytes), "sendfile data wasn't properly traced") }, 3*time.Second, 100*time.Millisecond, "couldn't find connection used by sendfile(2)") - - assert.Equalf(t, int64(0), int64(conn.Monotonic.SentBytes), "sendfile data wasn't properly traced") } func sendFile(t *testing.T, c SyscallConn, f *os.File, offset *int64, count int) (int, error) { @@ -1881,15 +1880,12 @@ func (s *TracerSuite) TestShortWrite() { c, err := net.FileConn(f) require.NoError(t, err) - var conn *network.ConnectionStats - require.Eventually(t, func() bool { - conns := getConnections(t, tr) - var ok bool - conn, ok = findConnection(c.LocalAddr(), c.RemoteAddr(), conns) - return ok + require.EventuallyWithT(t, func(collect *assert.CollectT) { + conns := getConnections(collect, tr) + conn, ok := findConnection(c.LocalAddr(), c.RemoteAddr(), conns) + require.True(collect, ok) + require.Equal(collect, sent, conn.Monotonic.SentBytes) }, 3*time.Second, 100*time.Millisecond, "couldn't find connection used by short write") - - assert.Equal(t, sent, conn.Monotonic.SentBytes) } func (s *TracerSuite) TestKprobeAttachWithKprobeEvents() { @@ -1972,14 +1968,11 @@ func (s *TracerSuite) TestBlockingReadCounts() { assert.Equal(collect, 6, read) }, 10*time.Second, 100*time.Millisecond, "failed to get required bytes") - var conn *network.ConnectionStats - require.Eventually(t, func() bool { - var found bool - conn, found = findConnection(c.(*net.TCPConn).LocalAddr(), c.(*net.TCPConn).RemoteAddr(), getConnections(t, tr)) - return found + require.EventuallyWithT(t, func(collect *assert.CollectT) { + conn, found := findConnection(c.(*net.TCPConn).LocalAddr(), c.(*net.TCPConn).RemoteAddr(), getConnections(collect, tr)) + require.True(collect, found) + require.Equal(collect, uint64(read), conn.Monotonic.RecvBytes) }, 3*time.Second, 100*time.Millisecond) - - assert.Equal(t, uint64(read), conn.Monotonic.RecvBytes) } func (s *TracerSuite) TestPreexistingConnectionDirection() { @@ -2020,15 +2013,16 @@ func (s *TracerSuite) TestPreexistingConnectionDirection() { c.Close() var incoming, outgoing *network.ConnectionStats - require.Eventually(t, func() bool { - connections := getConnections(t, tr) + require.EventuallyWithT(t, func(collect *assert.CollectT) { + connections := getConnections(collect, tr) if outgoing == nil { outgoing, _ = findConnection(c.LocalAddr(), c.RemoteAddr(), connections) } if incoming == nil { incoming, _ = findConnection(c.RemoteAddr(), c.LocalAddr(), connections) } - return incoming != nil && outgoing != nil + require.NotNil(collect, outgoing) + require.NotNil(collect, incoming) }, 3*time.Second, 100*time.Millisecond, "could not find connection incoming and outgoing connections") m := outgoing.Monotonic @@ -2136,14 +2130,12 @@ func (s *TracerSuite) TestUDPIncomingDirectionFix() { raddr, err := net.ResolveUDPAddr("udp", server.address) require.NoError(t, err) - var conn *network.ConnectionStats - require.Eventually(t, func() bool { - conns := getConnections(t, tr) - conn, _ = findConnection(net.UDPAddrFromAddrPort(ap), raddr, conns) - return conn != nil + require.EventuallyWithT(t, func(collect *assert.CollectT) { + conns := getConnections(collect, tr) + conn, _ := findConnection(net.UDPAddrFromAddrPort(ap), raddr, conns) + require.NotNil(collect, conn) + require.Equal(collect, network.OUTGOING, conn.Direction) }, 3*time.Second, 100*time.Millisecond) - - assert.Equal(t, network.OUTGOING, conn.Direction) } func TestEbpfConntrackerFallback(t *testing.T) { @@ -2413,31 +2405,24 @@ LOOP: // get connections, the client connection will still // not be in the closed state, so duration will the // timestamp of when it was created - var conn *network.ConnectionStats require.EventuallyWithT(t, func(collect *assert.CollectT) { - conns := getConnections(t, tr) - var found bool - conn, found = findConnection(c.LocalAddr(), srv.Addr(), conns) - assert.True(collect, found, "could not find connection") - + conns := getConnections(collect, tr) + conn, found := findConnection(c.LocalAddr(), srv.Addr(), conns) + require.True(collect, found, "could not find connection") + // all we can do is verify it is > 0 + require.Greater(collect, conn.Duration, time.Duration(0)) }, 3*time.Second, 100*time.Millisecond, "could not find connection") - // all we can do is verify it is > 0 - assert.Greater(t, conn.Duration, time.Duration(0)) require.NoError(t, c.Close(), "error closing client connection") require.EventuallyWithT(t, func(collect *assert.CollectT) { - var found bool - conn, found = findConnection(c.LocalAddr(), srv.Addr(), getConnections(t, tr)) - if !assert.True(collect, found, "could not find connection") { - return - } - assert.True(collect, conn.IsClosed, "connection should be closed") + conn, found := findConnection(c.LocalAddr(), srv.Addr(), getConnections(t, tr)) + require.True(collect, found, "could not find connection") + require.True(collect, conn.IsClosed, "connection should be closed") + // after closing the client connection, the duration should be + // updated to a value between 1s and 2s + require.Greater(collect, conn.Duration, time.Second, "connection duration should be between 1 and 2 seconds") + require.Less(collect, conn.Duration, 2*time.Second, "connection duration should be between 1 and 2 seconds") }, 3*time.Second, 100*time.Millisecond, "could not find closed connection") - - // after closing the client connection, the duration should be - // updated to a value between 1s and 2s - assert.Greater(t, conn.Duration, time.Second, "connection duration should be between 1 and 2 seconds") - assert.Less(t, conn.Duration, 2*time.Second, "connection duration should be between 1 and 2 seconds") } var failedConnectionsBuildModes = map[ebpftest.BuildMode]struct{}{ @@ -2503,19 +2488,17 @@ func (s *TracerSuite) TestTCPFailureConnectionTimeout() { localAddr := fmt.Sprintf("127.0.0.1:%d", port) // Check if the connection was recorded as failed due to timeout - var conn *network.ConnectionStats - require.Eventually(t, func() bool { - conns := getConnections(t, tr) + require.EventuallyWithT(t, func(collect *assert.CollectT) { + conns := getConnections(collect, tr) // 110 is the errno for ETIMEDOUT - conn = findFailedConnection(t, localAddr, srvAddr, conns, 110) - return conn != nil + conn := findFailedConnection(t, localAddr, srvAddr, conns, 110) + require.NotNil(collect, conn) + assert.Equal(collect, uint32(0), conn.TCPFailures[104], "expected 0 connection reset") + assert.Equal(collect, uint32(0), conn.TCPFailures[111], "expected 0 connection refused") + assert.Equal(collect, uint32(1), conn.TCPFailures[110], "expected 1 connection timeout") + assert.Equal(collect, uint64(0), conn.Monotonic.SentBytes, "expected 0 bytes sent") + assert.Equal(collect, uint64(0), conn.Monotonic.RecvBytes, "expected 0 bytes received") }, 3*time.Second, 100*time.Millisecond, "Failed connection not recorded properly") - - assert.Equal(t, uint32(0), conn.TCPFailures[104], "expected 0 connection reset") - assert.Equal(t, uint32(0), conn.TCPFailures[111], "expected 0 connection refused") - assert.Equal(t, uint32(1), conn.TCPFailures[110], "expected 1 connection timeout") - assert.Equal(t, uint64(0), conn.Monotonic.SentBytes, "expected 0 bytes sent") - assert.Equal(t, uint64(0), conn.Monotonic.RecvBytes, "expected 0 bytes received") } func (s *TracerSuite) TestTCPFailureConnectionResetWithDNAT() { @@ -2561,10 +2544,11 @@ func (s *TracerSuite) TestTCPFailureConnectionResetWithDNAT() { // Check if the connection was recorded as reset var conn *network.ConnectionStats - require.Eventually(t, func() bool { + require.EventuallyWithT(t, func(collect *assert.CollectT) { // 104 is the errno for ECONNRESET - conn = findFailedConnection(t, c.LocalAddr().String(), serverAddr, getConnections(t, tr), 104) - return conn != nil + // findFailedConnection gets `t` as it needs to log, it does not assert so no conversion is needed. + conn = findFailedConnection(t, c.LocalAddr().String(), serverAddr, getConnections(collect, tr), 104) + require.NotNil(collect, conn) }, 3*time.Second, 100*time.Millisecond, "Failed connection not recorded properly") require.NoError(t, c.Close(), "error closing client connection") diff --git a/pkg/network/tracer/tracer_test.go b/pkg/network/tracer/tracer_test.go index b032aabe44c5f..a108e11363fef 100644 --- a/pkg/network/tracer/tracer_test.go +++ b/pkg/network/tracer/tracer_test.go @@ -198,12 +198,13 @@ func (s *TracerSuite) TestTCPSendAndReceive() { require.NoError(t, err) var conn *network.ConnectionStats - require.Eventually(t, func() bool { + require.EventuallyWithT(t, func(collect *assert.CollectT) { // Iterate through active connections until we find connection created above, and confirm send + recv counts - connections := getConnections(t, tr) + connections := getConnections(collect, tr) var ok bool conn, ok = findConnection(c.LocalAddr(), c.RemoteAddr(), connections) - return conn != nil && ok + require.True(collect, ok) + require.NotNil(collect, conn) }, 3*time.Second, 100*time.Millisecond, "failed to find connection") m := conn.Monotonic @@ -246,10 +247,10 @@ func (s *TracerSuite) TestTCPShortLived() { c.Close() var conn *network.ConnectionStats - require.Eventually(t, func() bool { + require.EventuallyWithT(t, func(collect *assert.CollectT) { var ok bool - conn, ok = findConnection(c.LocalAddr(), c.RemoteAddr(), getConnections(t, tr)) - return ok + conn, ok = findConnection(c.LocalAddr(), c.RemoteAddr(), getConnections(collect, tr)) + require.True(collect, ok) }, 3*time.Second, 100*time.Millisecond, "connection not found") m := conn.Monotonic @@ -399,14 +400,15 @@ func (s *TracerSuite) TestTCPConnsReported() { var reverse *network.ConnectionStats var okForward, okReverse bool // for ebpfless, it takes time for the packet capture to arrive, so poll - require.Eventually(t, func() bool { + require.EventuallyWithT(t, func(collect *assert.CollectT) { // Test - connections := getConnections(t, tr) + connections := getConnections(collect, tr) // Server-side forward, okForward = findConnection(c.RemoteAddr(), c.LocalAddr(), connections) + require.True(collect, okForward) // Client-side reverse, okReverse = findConnection(c.LocalAddr(), c.RemoteAddr(), connections) - return okForward && okReverse + require.True(collect, okReverse) }, 3*time.Second, 100*time.Millisecond, "connection not found") assert.Equal(t, network.INCOMING, forward.Direction) @@ -470,7 +472,7 @@ func testUDPSendAndReceive(t *testing.T, tr *Tracer, addr string) { // Iterate through active connections until we find connection created above, and confirm send + recv counts require.EventuallyWithT(t, func(ct *assert.CollectT) { // use t instead of ct because getConnections uses require (not assert), and we get a better error message - connections := getConnections(t, tr) + connections := getConnections(ct, tr) incoming, ok := findConnection(c.RemoteAddr(), c.LocalAddr(), connections) if assert.True(ct, ok, "unable to find incoming connection") { assert.Equal(ct, network.INCOMING, incoming.Direction) @@ -482,12 +484,12 @@ func testUDPSendAndReceive(t *testing.T, tr *Tracer, addr string) { } outgoing, ok := findConnection(c.LocalAddr(), c.RemoteAddr(), connections) - if assert.True(t, ok, "unable to find outgoing connection") { - assert.Equal(t, network.OUTGOING, outgoing.Direction) + if assert.True(ct, ok, "unable to find outgoing connection") { + assert.Equal(ct, network.OUTGOING, outgoing.Direction) - assert.Equal(t, clientMessageSize, int(outgoing.Monotonic.SentBytes), "outgoing sent") - assert.Equal(t, serverMessageSize, int(outgoing.Monotonic.RecvBytes), "outgoing recv") - assert.True(t, outgoing.IntraHost, "outgoing intrahost") + assert.Equal(ct, clientMessageSize, int(outgoing.Monotonic.SentBytes), "outgoing sent") + assert.Equal(ct, serverMessageSize, int(outgoing.Monotonic.RecvBytes), "outgoing recv") + assert.True(ct, outgoing.IntraHost, "outgoing intrahost") } }, 3*time.Second, 100*time.Millisecond) @@ -579,14 +581,14 @@ func (s *TracerSuite) TestLocalDNSCollectionEnabled() { assert.NoError(t, err) // Iterate through active connections making sure theres at least one connection - require.Eventually(t, func() bool { - for _, c := range getConnections(t, tr).Conns { + require.EventuallyWithT(t, func(collect *assert.CollectT) { + for _, c := range getConnections(collect, tr).Conns { if isLocalDNS(c) { - return true + return } } - return false + require.Fail(collect, "could not find connection") }, 3*time.Second, 100*time.Millisecond, "could not find connection") } @@ -651,15 +653,15 @@ func (s *TracerSuite) TestShouldExcludeEmptyStatsConnection() { assert.NoError(t, err) var zeroConn network.ConnectionStats - require.Eventually(t, func() bool { - cxs := getConnections(t, tr) + require.EventuallyWithT(t, func(collect *assert.CollectT) { + cxs := getConnections(collect, tr) for _, c := range cxs.Conns { if c.Dest.String() == "127.0.0.1" && c.DPort == 80 { zeroConn = c - return true + return } } - return false + require.Fail(collect, "could not find connection") }, 2*time.Second, 100*time.Millisecond) // next call should not have the same connection @@ -1094,9 +1096,9 @@ func (s *TracerSuite) TestTCPEstablished() { var ok bool // for ebpfless, wait for the packet capture to appear - require.Eventually(t, func() bool { - conn, ok = findConnection(laddr, raddr, getConnections(t, tr)) - return ok + require.EventuallyWithT(t, func(collect *assert.CollectT) { + conn, ok = findConnection(laddr, raddr, getConnections(collect, tr)) + require.True(collect, ok) }, 3*time.Second, 100*time.Millisecond, "couldn't find connection") require.True(t, ok) @@ -1106,10 +1108,10 @@ func (s *TracerSuite) TestTCPEstablished() { c.Close() // Wait for the connection to be sent from the perf buffer - require.Eventually(t, func() bool { + require.EventuallyWithT(t, func(collect *assert.CollectT) { var ok bool - conn, ok = findConnection(laddr, raddr, getConnections(t, tr)) - return ok + conn, ok = findConnection(laddr, raddr, getConnections(collect, tr)) + require.True(collect, ok) }, 3*time.Second, 100*time.Millisecond, "couldn't find connection") require.True(t, ok) @@ -1140,10 +1142,10 @@ func (s *TracerSuite) TestTCPEstablishedPreExistingConn() { // Wait for the connection to be sent from the perf buffer var conn *network.ConnectionStats - require.Eventually(t, func() bool { + require.EventuallyWithT(t, func(collect *assert.CollectT) { var ok bool - conn, ok = findConnection(laddr, raddr, getConnections(t, tr)) - return ok + conn, ok = findConnection(laddr, raddr, getConnections(collect, tr)) + require.True(collect, ok) }, 3*time.Second, 100*time.Millisecond, "couldn't find connection") m := conn.Monotonic @@ -1167,7 +1169,7 @@ func (s *TracerSuite) TestUnconnectedUDPSendIPv4() { require.NoError(t, err) require.EventuallyWithT(t, func(ct *assert.CollectT) { - connections := getConnections(t, tr) + connections := getConnections(ct, tr) outgoing := network.FilterConnections(connections, func(cs network.ConnectionStats) bool { return cs.DPort == uint16(remotePort) }) @@ -1198,7 +1200,7 @@ func (s *TracerSuite) TestConnectedUDPSendIPv6() { var outgoing []network.ConnectionStats require.EventuallyWithT(t, func(ct *assert.CollectT) { - connections := getConnections(t, tr) + connections := getConnections(ct, tr) outgoing = network.FilterConnections(connections, func(cs network.ConnectionStats) bool { return cs.DPort == uint16(remotePort) }) @@ -1247,8 +1249,8 @@ func (s *TracerSuite) TestTCPDirection() { // Iterate through active connections until we find connection created above var outgoingConns []network.ConnectionStats var incomingConns []network.ConnectionStats - require.Eventuallyf(t, func() bool { - conns := getConnections(t, tr) + require.EventuallyWithTf(t, func(collect *assert.CollectT) { + conns := getConnections(collect, tr) if len(outgoingConns) == 0 { outgoingConns = network.FilterConnections(conns, func(cs network.ConnectionStats) bool { return fmt.Sprintf("%s:%d", cs.Dest, cs.DPort) == serverAddr @@ -1260,7 +1262,8 @@ func (s *TracerSuite) TestTCPDirection() { }) } - return len(outgoingConns) == 1 && len(incomingConns) == 1 + require.Len(collect, outgoingConns, 1) + require.Len(collect, incomingConns, 1) }, 3*time.Second, 10*time.Millisecond, "couldn't find incoming and outgoing http connections matching: %s", serverAddr) // Verify connection directions @@ -1290,11 +1293,11 @@ func (s *TracerSuite) TestTCPFailureConnectionRefused() { // Check if the connection was recorded as refused var foundConn *network.ConnectionStats - require.Eventually(t, func() bool { - conns := getConnections(t, tr) + require.EventuallyWithT(t, func(collect *assert.CollectT) { + conns := getConnections(collect, tr) // Check for the refusal record foundConn = findFailedConnectionByRemoteAddr(srvAddr, conns, 111) - return foundConn != nil + require.NotNil(collect, foundConn) }, 3*time.Second, 100*time.Millisecond, "Failed connection not recorded properly") assert.Equal(t, uint32(1), foundConn.TCPFailures[111], "expected 1 connection refused") @@ -1342,10 +1345,11 @@ func (s *TracerSuite) TestTCPFailureConnectionResetWithData() { // Check if the connection was recorded as reset var conn *network.ConnectionStats - require.Eventually(t, func() bool { + require.EventuallyWithT(t, func(collect *assert.CollectT) { // 104 is the errno for ECONNRESET - conn = findFailedConnection(t, c.LocalAddr().String(), serverAddr, getConnections(t, tr), 104) - return conn != nil + // findFailedConnection needs `t` for logging, hence no need to pass `collect`. + conn = findFailedConnection(t, c.LocalAddr().String(), serverAddr, getConnections(collect, tr), 104) + require.NotNil(collect, conn) }, 3*time.Second, 100*time.Millisecond, "Failed connection not recorded properly") require.NoError(t, c.Close(), "error closing client connection") @@ -1391,11 +1395,12 @@ func (s *TracerSuite) TestTCPFailureConnectionResetNoData() { // Check if the connection was recorded as reset var conn *network.ConnectionStats - require.Eventually(t, func() bool { - conns := getConnections(t, tr) + require.EventuallyWithT(t, func(collect *assert.CollectT) { + conns := getConnections(collect, tr) // 104 is the errno for ECONNRESET + // findFailedConnection needs `t` for logging, hence no need to pass `collect`. conn = findFailedConnection(t, c.LocalAddr().String(), serverAddr, conns, 104) - return conn != nil + require.NotNil(collect, conn) }, 3*time.Second, 100*time.Millisecond, "Failed connection not recorded properly") require.NoError(t, c.Close(), "error closing client connection") diff --git a/pkg/network/usm/kafka_monitor_test.go b/pkg/network/usm/kafka_monitor_test.go index 645db1e3bc064..c4f3e30c08ad4 100644 --- a/pkg/network/usm/kafka_monitor_test.go +++ b/pkg/network/usm/kafka_monitor_test.go @@ -521,14 +521,14 @@ func (s *KafkaProtocolParsingSuite) testKafkaProtocolParsing(t *testing.T, tls b require.NoError(t, client.Client.ProduceSync(ctxTimeout, record).FirstErr(), "record had a produce error while synchronously producing") var telemetryMap *kafka.RawKernelTelemetry - require.Eventually(t, func() bool { + require.EventuallyWithT(t, func(collect *assert.CollectT) { telemetryMap, err = kafka.GetKernelTelemetryMap(monitor.ebpfProgram.Manager.Manager) - require.NoError(t, err) + require.NoError(collect, err) // Ensure that the other buckets remain unchanged before verifying the expected bucket. for idx := 0; idx < kafka.TopicNameBuckets; idx++ { if idx != tt.expectedBucketIndex { - require.Equal(t, currentRawKernelTelemetry.Topic_name_size_buckets[idx], + require.Equal(collect, currentRawKernelTelemetry.Topic_name_size_buckets[idx], telemetryMap.Topic_name_size_buckets[idx], "Expected bucket (%d) to remain unchanged", idx) } @@ -536,7 +536,7 @@ func (s *KafkaProtocolParsingSuite) testKafkaProtocolParsing(t *testing.T, tls b // Verify that the expected bucket contains the correct number of occurrences. expectedNumberOfOccurrences := fixCount(2) // (1 produce request + 1 fetch request) - return uint64(expectedNumberOfOccurrences)+currentRawKernelTelemetry.Topic_name_size_buckets[tt.expectedBucketIndex] == telemetryMap.Topic_name_size_buckets[tt.expectedBucketIndex] + require.Equal(collect, uint64(expectedNumberOfOccurrences)+currentRawKernelTelemetry.Topic_name_size_buckets[tt.expectedBucketIndex], telemetryMap.Topic_name_size_buckets[tt.expectedBucketIndex]) }, time.Second*3, time.Millisecond*100) // Update the current raw kernel telemetry for the next iteration diff --git a/pkg/network/usm/tests/tracer_usm_linux_test.go b/pkg/network/usm/tests/tracer_usm_linux_test.go index cb7cf47e30e4a..5cbbef2763777 100644 --- a/pkg/network/usm/tests/tracer_usm_linux_test.go +++ b/pkg/network/usm/tests/tracer_usm_linux_test.go @@ -429,15 +429,15 @@ func (s *USMSuite) TestIgnoreTLSClassificationIfApplicationProtocolWasDetected() // Perform the TLS handshake require.NoError(t, tlsConn.Handshake()) - - require.Eventually(t, func() bool { - payload := getConnections(t, tr) + require.EventuallyWithT(t, func(collect *assert.CollectT) { + payload := getConnections(collect, tr) for _, c := range payload.Conns { if c.DPort == srvPortU16 || c.SPort == srvPortU16 { - return c.ProtocolStack.Contains(protocols.TLS) == tt.shouldBeTLS + require.Equal(collect, c.ProtocolStack.Contains(protocols.TLS), tt.shouldBeTLS) + return } } - return false + require.Fail(collect, "") }, 10*time.Second, 100*time.Millisecond) }) } @@ -502,14 +502,14 @@ func (s *USMSuite) TestTLSClassification() { }, validation: func(t *testing.T, tr *tracer.Tracer) { // Iterate through active connections until we find connection created above - require.Eventuallyf(t, func() bool { - payload := getConnections(t, tr) + require.EventuallyWithTf(t, func(collect *assert.CollectT) { + payload := getConnections(collect, tr) for _, c := range payload.Conns { if c.DPort == port && c.ProtocolStack.Contains(protocols.TLS) { - return true + return } } - return false + require.Fail(collect, "") }, 4*time.Second, 100*time.Millisecond, "couldn't find TLS connection matching: dst port %v", portAsString) }, }) @@ -574,8 +574,8 @@ func (s *USMSuite) TestTLSClassificationAlreadyRunning() { // Iterate through active connections until we find connection created above var foundIncoming, foundOutgoing bool - require.Eventuallyf(t, func() bool { - payload := getConnections(t, tr) + require.EventuallyWithTf(t, func(collect *assert.CollectT) { + payload := getConnections(collect, tr) for _, c := range payload.Conns { if !foundIncoming && c.DPort == uint16(portAsValue) && c.ProtocolStack.Contains(protocols.TLS) { @@ -586,7 +586,8 @@ func (s *USMSuite) TestTLSClassificationAlreadyRunning() { foundOutgoing = true } } - return foundIncoming && foundOutgoing + require.True(collect, foundIncoming) + require.True(collect, foundOutgoing) }, 4*time.Second, 100*time.Millisecond, "couldn't find matching TLS connection") } From 6615d8d6d1ba839ed20fce6448aa65c1911d79f6 Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Tue, 10 Dec 2024 08:56:16 +0100 Subject: [PATCH 344/439] [CWS] add `rocky_9.4` to CWS KMT tested platforms (#31886) --- .../kernel_matrix_testing/security_agent.yml | 41 +++++++++++++++---- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/.gitlab/kernel_matrix_testing/security_agent.yml b/.gitlab/kernel_matrix_testing/security_agent.yml index 26e9293844e9e..b7f4b80cc6ed1 100644 --- a/.gitlab/kernel_matrix_testing/security_agent.yml +++ b/.gitlab/kernel_matrix_testing/security_agent.yml @@ -147,6 +147,7 @@ kmt_run_secagent_tests_x64: - "oracle_9.3" - "rocky_8.5" - "rocky_9.3" + - "rocky_9.4" - "opensuse_15.3" - "opensuse_15.5" - "suse_12.5" @@ -268,6 +269,7 @@ kmt_run_secagent_tests_x64_docker: - "oracle_9.3" - "rocky_8.5" - "rocky_9.3" + - "rocky_9.4" TEST_SET: [cws_docker] after_script: - !reference [.collect_outcomes_kmt] @@ -301,6 +303,7 @@ kmt_run_secagent_tests_arm64: - "oracle_9.3" - "rocky_8.5" - "rocky_9.3" + - "rocky_9.4" - "opensuse_15.5" TEST_SET: [cws_host] after_script: @@ -395,6 +398,7 @@ kmt_run_secagent_tests_arm64_docker: - "oracle_9.3" - "rocky_8.5" - "rocky_9.3" + - "rocky_9.4" TEST_SET: ["cws_docker"] after_script: - !reference [.collect_outcomes_kmt] @@ -407,35 +411,54 @@ kmt_run_secagent_tests_arm64_docker: variables: TEST_COMPONENT: security-agent -kmt_secagent_cleanup_arm64: - when: always +.kmt_secagent_tests_join: + stage: kernel_matrix_testing_cleanup + rules: !reference [.on_security_agent_changes_or_manual] + image: registry.ddbuild.io/ci/datadog-agent-buildimages/system-probe_arm64$DATADOG_AGENT_SYSPROBE_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_SYSPROBE_BUILDIMAGES + tags: ["arch:arm64"] + script: + - echo "nothing to do here" + +kmt_secagent_tests_join_arm64: extends: - - .kmt_secagent_cleanup + - .kmt_secagent_tests_join needs: - - kmt_setup_env_secagent_arm64 - kmt_run_secagent_tests_arm64 - kmt_run_secagent_tests_arm64_ad - kmt_run_secagent_tests_arm64_ebpfless - kmt_run_secagent_tests_arm64_fentry - kmt_run_secagent_tests_arm64_docker - - upload_dependencies_secagent_arm64 + +kmt_secagent_cleanup_arm64: + when: always + extends: + - .kmt_secagent_cleanup + needs: + - kmt_setup_env_secagent_arm64 + - kmt_secagent_tests_join_arm64 - upload_secagent_tests_arm64 variables: ARCH: arm64 INSTANCE_TYPE: "m6gd.metal" -kmt_secagent_cleanup_x64: - when: always +kmt_secagent_tests_join_x64: extends: - - .kmt_secagent_cleanup + - .kmt_secagent_tests_join needs: - - kmt_setup_env_secagent_x64 - kmt_run_secagent_tests_x64 - kmt_run_secagent_tests_x64_required - kmt_run_secagent_tests_x64_ad - kmt_run_secagent_tests_x64_ebpfless - kmt_run_secagent_tests_x64_fentry - kmt_run_secagent_tests_x64_docker + +kmt_secagent_cleanup_x64: + when: always + extends: + - .kmt_secagent_cleanup + needs: + - kmt_setup_env_secagent_x64 + - kmt_secagent_tests_join_x64 - upload_dependencies_secagent_x64 - upload_secagent_tests_x64 variables: From 27d7ef8cfc37bdf9801b4bf8922c43ada21d500e Mon Sep 17 00:00:00 2001 From: pducolin <45568537+pducolin@users.noreply.github.com> Date: Tue, 10 Dec 2024 09:01:31 +0100 Subject: [PATCH 345/439] [tasks] add download link to update python (#31831) --- tasks/libs/common/utils.py | 12 ++++++++++++ tasks/setup.py | 15 ++++++++++----- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/tasks/libs/common/utils.py b/tasks/libs/common/utils.py index 175b6d848d4d7..56e96ba23403f 100644 --- a/tasks/libs/common/utils.py +++ b/tasks/libs/common/utils.py @@ -661,3 +661,15 @@ def agent_working_directory(): from tasks.libs.common.worktree import LOCAL_DIRECTORY, WORKTREE_DIRECTORY, is_worktree return WORKTREE_DIRECTORY if is_worktree() else LOCAL_DIRECTORY + + +def is_macos(): + return sys.platform == 'darwin' + + +def is_linux(): + return sys.platform.startswith('linux') + + +def is_windows(): + return sys.platform == 'win32' diff --git a/tasks/setup.py b/tasks/setup.py index 5e1eeee98d1f1..cf75c396f5779 100644 --- a/tasks/setup.py +++ b/tasks/setup.py @@ -19,7 +19,7 @@ from tasks.libs.common.color import Color, color_message from tasks.libs.common.git import get_default_branch from tasks.libs.common.status import Status -from tasks.libs.common.utils import running_in_pyapp +from tasks.libs.common.utils import is_linux, is_windows, running_in_pyapp if TYPE_CHECKING: from collections.abc import Generator @@ -145,10 +145,15 @@ def check_python_version(_ctx) -> SetupResult: status = Status.OK if tuple(sys.version_info)[:2] != tuple(int(d) for d in expected_version.split(".")): status = Status.FAIL - message = ( - f"Python version is {sys.version_info[0]}.{sys.version_info[1]}.{sys.version_info[2]}. " - "Please update your environment: https://datadoghq.dev/datadog-agent/setup/#python-dependencies" - ) + install_message = f"Please install Python {expected_version} with 'brew install python@{expected_version}'" + if is_windows(): + install_message = f"Please install Python {expected_version} from https://www.python.org/downloads/windows/" + elif is_linux(): + install_message = ( + f"Please install Python {expected_version} with 'sudo apt-get install python{expected_version}-dev'" + ) + + message = f"Python version out of date, current is {sys.version_info[0]}.{sys.version_info[1]} while expected is {expected_version}.\n{install_message}" return SetupResult("Check Python version", status, message) From d8125d7aa9970af55741c7425af86bb348562586 Mon Sep 17 00:00:00 2001 From: Guy Arbitman Date: Tue, 10 Dec 2024 10:28:14 +0200 Subject: [PATCH 346/439] usm: process monitor: Increase number of runners (#31878) --- pkg/process/monitor/process_monitor.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/process/monitor/process_monitor.go b/pkg/process/monitor/process_monitor.go index 8710aa63e324f..57c174840b66e 100644 --- a/pkg/process/monitor/process_monitor.go +++ b/pkg/process/monitor/process_monitor.go @@ -221,7 +221,10 @@ func (pm *ProcessMonitor) initNetlinkProcessEventMonitor() error { // initCallbackRunner runs multiple workers that run tasks sent over a queue. func (pm *ProcessMonitor) initCallbackRunner() { - cpuNum := runtime.NumVCPU() + cpuNum, err := kernel.PossibleCPUs() + if err != nil { + cpuNum = runtime.NumVCPU() + } pm.callbackRunner = make(chan func(), pendingCallbacksQueueSize) pm.callbackRunnerStopChannel = make(chan struct{}) pm.callbackRunnersWG.Add(cpuNum) From e70c007014b58d371c4494566eb39361d57dd872 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20Beauz=C3=A9e-Luyssen?= Date: Tue, 10 Dec 2024 09:28:22 +0100 Subject: [PATCH 347/439] omnibus: snmp-traps: drop dependency on datadog-agent (#31868) --- omnibus/config/projects/agent.rb | 3 --- omnibus/config/software/datadog-agent-dependencies.rb | 3 +++ omnibus/config/software/datadog-agent.rb | 3 ++- omnibus/config/software/snmp-traps.rb | 3 --- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/omnibus/config/projects/agent.rb b/omnibus/config/projects/agent.rb index b3ab9c10ae1ad..51bacc89a45d0 100644 --- a/omnibus/config/projects/agent.rb +++ b/omnibus/config/projects/agent.rb @@ -221,9 +221,6 @@ # ------------------------------------ if do_build - # Include traps db file in snmp.d/traps_db/ - dependency 'snmp-traps' - # Datadog agent dependency 'datadog-agent' diff --git a/omnibus/config/software/datadog-agent-dependencies.rb b/omnibus/config/software/datadog-agent-dependencies.rb index fd6712983b10b..fc34796e2fa4b 100644 --- a/omnibus/config/software/datadog-agent-dependencies.rb +++ b/omnibus/config/software/datadog-agent-dependencies.rb @@ -33,6 +33,9 @@ dependency 'libpcap' if linux_target? and !heroku_target? # system-probe dependency +# Include traps db file in snmp.d/traps_db/ +dependency 'snmp-traps' + # Additional software if windows_target? if ENV['WINDOWS_DDNPM_DRIVER'] and not ENV['WINDOWS_DDNPM_DRIVER'].empty? diff --git a/omnibus/config/software/datadog-agent.rb b/omnibus/config/software/datadog-agent.rb index 8f24178d2c07e..a05e3b71bd877 100644 --- a/omnibus/config/software/datadog-agent.rb +++ b/omnibus/config/software/datadog-agent.rb @@ -120,7 +120,8 @@ # move around bin and config files move 'bin/agent/dist/datadog.yaml', "#{conf_dir}/datadog.yaml.example" - move 'bin/agent/dist/conf.d', "#{conf_dir}/" + copy 'bin/agent/dist/conf.d/.', "#{conf_dir}" + delete 'bin/agent/dist/conf.d' unless windows_target? copy 'bin/agent', "#{install_dir}/bin/" diff --git a/omnibus/config/software/snmp-traps.rb b/omnibus/config/software/snmp-traps.rb index 5a021b01ed8d4..bb13fc542fd3b 100644 --- a/omnibus/config/software/snmp-traps.rb +++ b/omnibus/config/software/snmp-traps.rb @@ -1,9 +1,6 @@ name "snmp-traps" default_version "0.4.0" -# Needs the configuration folder as created in datadog-agent -dependency 'datadog-agent' - source :url => "https://s3.amazonaws.com/dd-agent-omnibus/snmp_traps_db/dd_traps_db-#{version}.json.gz", :sha256 => "04fb9d43754c2656edf35f08fbad11ba8dc20d52654962933f3dd8f4d463b42c", :target_filename => "dd_traps_db.json.gz" From 5ad43ca4c34e476d4757045fabdcf5ed9288dd52 Mon Sep 17 00:00:00 2001 From: Guy Arbitman Date: Tue, 10 Dec 2024 10:55:55 +0200 Subject: [PATCH 348/439] usm: process monitor: reuse consumers.NewProcessConsumer (#31864) --- cmd/system-probe/modules/eventmonitor.go | 7 +- .../modules/eventmonitor_linux.go | 28 ++++++- .../modules/eventmonitor_windows.go | 4 +- pkg/ebpf/uprobes/attacher_test.go | 7 +- pkg/network/usm/monitor_tls_test.go | 8 +- .../usm/sharedlibraries/watcher_test.go | 7 +- pkg/process/monitor/process_monitor.go | 79 +++---------------- pkg/process/monitor/process_monitor_test.go | 30 +++---- pkg/process/monitor/testutil/testutil.go | 27 ------- 9 files changed, 55 insertions(+), 142 deletions(-) delete mode 100644 pkg/process/monitor/testutil/testutil.go diff --git a/cmd/system-probe/modules/eventmonitor.go b/cmd/system-probe/modules/eventmonitor.go index f74b13bec36af..41707ad513dec 100644 --- a/cmd/system-probe/modules/eventmonitor.go +++ b/cmd/system-probe/modules/eventmonitor.go @@ -85,14 +85,9 @@ func createEventMonitorModule(_ *sysconfigtypes.Config, deps module.FactoryDepen netconfig := netconfig.New() if netconfig.EnableUSMEventStream { - procmonconsumer, err := createProcessMonitorConsumer(evm, netconfig) - if err != nil { + if err := createProcessMonitorConsumer(evm, netconfig); err != nil { return nil, err } - if procmonconsumer != nil { - evm.RegisterEventConsumer(procmonconsumer) - log.Info("USM process monitoring consumer initialized") - } } gpucfg := gpuconfig.New() diff --git a/cmd/system-probe/modules/eventmonitor_linux.go b/cmd/system-probe/modules/eventmonitor_linux.go index 498e3b9feb92d..a3ee2f33666da 100644 --- a/cmd/system-probe/modules/eventmonitor_linux.go +++ b/cmd/system-probe/modules/eventmonitor_linux.go @@ -11,11 +11,13 @@ import ( "github.com/DataDog/datadog-agent/cmd/system-probe/api/module" "github.com/DataDog/datadog-agent/cmd/system-probe/config" "github.com/DataDog/datadog-agent/pkg/eventmonitor" + "github.com/DataDog/datadog-agent/pkg/eventmonitor/consumers" netconfig "github.com/DataDog/datadog-agent/pkg/network/config" usmconfig "github.com/DataDog/datadog-agent/pkg/network/usm/config" usmstate "github.com/DataDog/datadog-agent/pkg/network/usm/state" - procmon "github.com/DataDog/datadog-agent/pkg/process/monitor" + "github.com/DataDog/datadog-agent/pkg/process/monitor" secconfig "github.com/DataDog/datadog-agent/pkg/security/config" + "github.com/DataDog/datadog-agent/pkg/util/log" ) // EventMonitor - Event monitor Factory @@ -28,10 +30,28 @@ var EventMonitor = module.Factory{ }, } -func createProcessMonitorConsumer(evm *eventmonitor.EventMonitor, config *netconfig.Config) (eventmonitor.EventConsumer, error) { +const ( + eventMonitorID = "PROCESS_MONITOR" + eventMonitorChannelSize = 500 +) + +var ( + eventTypes = []consumers.ProcessConsumerEventTypes{ + consumers.ExecEventType, + consumers.ExitEventType, + } +) + +func createProcessMonitorConsumer(evm *eventmonitor.EventMonitor, config *netconfig.Config) error { if !usmconfig.IsUSMSupportedAndEnabled(config) || !usmconfig.NeedProcessMonitor(config) || usmstate.Get() != usmstate.Running { - return nil, nil + return nil } - return procmon.NewProcessMonitorEventConsumer(evm) + consumer, err := consumers.NewProcessConsumer(eventMonitorID, eventMonitorChannelSize, eventTypes, evm) + if err != nil { + return err + } + monitor.InitializeEventConsumer(consumer) + log.Info("USM process monitoring consumer initialized") + return nil } diff --git a/cmd/system-probe/modules/eventmonitor_windows.go b/cmd/system-probe/modules/eventmonitor_windows.go index 870c707f8f3e7..7ec627c076d67 100644 --- a/cmd/system-probe/modules/eventmonitor_windows.go +++ b/cmd/system-probe/modules/eventmonitor_windows.go @@ -21,8 +21,8 @@ var EventMonitor = module.Factory{ Fn: createEventMonitorModule, } -func createProcessMonitorConsumer(_ *eventmonitor.EventMonitor, _ *netconfig.Config) (eventmonitor.EventConsumer, error) { - return nil, nil +func createProcessMonitorConsumer(_ *eventmonitor.EventMonitor, _ *netconfig.Config) error { + return nil } func createGPUProcessEventConsumer(_ *eventmonitor.EventMonitor) error { diff --git a/pkg/ebpf/uprobes/attacher_test.go b/pkg/ebpf/uprobes/attacher_test.go index 26428868c1d70..be848bb5c6afb 100644 --- a/pkg/ebpf/uprobes/attacher_test.go +++ b/pkg/ebpf/uprobes/attacher_test.go @@ -27,14 +27,12 @@ import ( "github.com/DataDog/datadog-agent/pkg/ebpf/bytecode" "github.com/DataDog/datadog-agent/pkg/ebpf/ebpftest" "github.com/DataDog/datadog-agent/pkg/ebpf/prebuilt" - eventmonitortestutil "github.com/DataDog/datadog-agent/pkg/eventmonitor/testutil" + "github.com/DataDog/datadog-agent/pkg/eventmonitor/consumers/testutil" "github.com/DataDog/datadog-agent/pkg/network/go/bininspect" "github.com/DataDog/datadog-agent/pkg/network/usm/sharedlibraries" fileopener "github.com/DataDog/datadog-agent/pkg/network/usm/sharedlibraries/testutil" "github.com/DataDog/datadog-agent/pkg/network/usm/utils" "github.com/DataDog/datadog-agent/pkg/process/monitor" - procmontestutil "github.com/DataDog/datadog-agent/pkg/process/monitor/testutil" - secutils "github.com/DataDog/datadog-agent/pkg/security/utils" "github.com/DataDog/datadog-agent/pkg/util/kernel" ) @@ -800,8 +798,7 @@ func launchProcessMonitor(t *testing.T, useEventStream bool) *monitor.ProcessMon t.Cleanup(pm.Stop) require.NoError(t, pm.Initialize(useEventStream)) if useEventStream { - secutils.SetCachedHostname("test-hostname") - eventmonitortestutil.StartEventMonitor(t, procmontestutil.RegisterProcessMonitorEventConsumer) + monitor.InitializeEventConsumer(testutil.NewTestProcessConsumer(t)) } return pm diff --git a/pkg/network/usm/monitor_tls_test.go b/pkg/network/usm/monitor_tls_test.go index 322f9be425da4..44ca4244b07a1 100644 --- a/pkg/network/usm/monitor_tls_test.go +++ b/pkg/network/usm/monitor_tls_test.go @@ -31,7 +31,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/ebpf/ebpftest" "github.com/DataDog/datadog-agent/pkg/ebpf/prebuilt" - eventmonitortestutil "github.com/DataDog/datadog-agent/pkg/eventmonitor/testutil" + consumerstestutil "github.com/DataDog/datadog-agent/pkg/eventmonitor/consumers/testutil" "github.com/DataDog/datadog-agent/pkg/network" "github.com/DataDog/datadog-agent/pkg/network/config" "github.com/DataDog/datadog-agent/pkg/network/protocols" @@ -44,8 +44,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/network/usm/consts" usmtestutil "github.com/DataDog/datadog-agent/pkg/network/usm/testutil" "github.com/DataDog/datadog-agent/pkg/network/usm/utils" - procmontestutil "github.com/DataDog/datadog-agent/pkg/process/monitor/testutil" - secutils "github.com/DataDog/datadog-agent/pkg/security/utils" + "github.com/DataDog/datadog-agent/pkg/process/monitor" globalutils "github.com/DataDog/datadog-agent/pkg/util/testutil" dockerutils "github.com/DataDog/datadog-agent/pkg/util/testutil/docker" ) @@ -870,8 +869,7 @@ func setupUSMTLSMonitor(t *testing.T, cfg *config.Config) *Monitor { require.NoError(t, err) require.NoError(t, usmMonitor.Start()) if cfg.EnableUSMEventStream && usmconfig.NeedProcessMonitor(cfg) { - secutils.SetCachedHostname("test-hostname") - eventmonitortestutil.StartEventMonitor(t, procmontestutil.RegisterProcessMonitorEventConsumer) + monitor.InitializeEventConsumer(consumerstestutil.NewTestProcessConsumer(t)) } t.Cleanup(usmMonitor.Stop) t.Cleanup(utils.ResetDebugger) diff --git a/pkg/network/usm/sharedlibraries/watcher_test.go b/pkg/network/usm/sharedlibraries/watcher_test.go index ca401e180fc50..7af5b82782fe3 100644 --- a/pkg/network/usm/sharedlibraries/watcher_test.go +++ b/pkg/network/usm/sharedlibraries/watcher_test.go @@ -26,13 +26,11 @@ import ( "github.com/DataDog/datadog-agent/pkg/ebpf/ebpftest" "github.com/DataDog/datadog-agent/pkg/ebpf/prebuilt" - eventmonitortestutil "github.com/DataDog/datadog-agent/pkg/eventmonitor/testutil" + "github.com/DataDog/datadog-agent/pkg/eventmonitor/consumers/testutil" usmconfig "github.com/DataDog/datadog-agent/pkg/network/usm/config" fileopener "github.com/DataDog/datadog-agent/pkg/network/usm/sharedlibraries/testutil" "github.com/DataDog/datadog-agent/pkg/network/usm/utils" "github.com/DataDog/datadog-agent/pkg/process/monitor" - procmontestutil "github.com/DataDog/datadog-agent/pkg/process/monitor/testutil" - secutils "github.com/DataDog/datadog-agent/pkg/security/utils" "github.com/DataDog/datadog-agent/pkg/util/kernel" "github.com/DataDog/datadog-agent/pkg/util/log" ) @@ -42,8 +40,7 @@ func launchProcessMonitor(t *testing.T, useEventStream bool) { t.Cleanup(pm.Stop) require.NoError(t, pm.Initialize(useEventStream)) if useEventStream { - secutils.SetCachedHostname("test-hostname") - eventmonitortestutil.StartEventMonitor(t, procmontestutil.RegisterProcessMonitorEventConsumer) + monitor.InitializeEventConsumer(testutil.NewTestProcessConsumer(t)) } } diff --git a/pkg/process/monitor/process_monitor.go b/pkg/process/monitor/process_monitor.go index 57c174840b66e..8dbdefc99a822 100644 --- a/pkg/process/monitor/process_monitor.go +++ b/pkg/process/monitor/process_monitor.go @@ -18,10 +18,9 @@ import ( "github.com/vishvananda/netlink" "go.uber.org/atomic" - "github.com/DataDog/datadog-agent/pkg/eventmonitor" + "github.com/DataDog/datadog-agent/pkg/eventmonitor/consumers" "github.com/DataDog/datadog-agent/pkg/network/protocols/telemetry" "github.com/DataDog/datadog-agent/pkg/runtime" - "github.com/DataDog/datadog-agent/pkg/security/secl/model" "github.com/DataDog/datadog-agent/pkg/util/kernel" "github.com/DataDog/datadog-agent/pkg/util/log" ) @@ -490,76 +489,20 @@ func (pm *ProcessMonitor) Stop() { pm.processExitCallbacksMutex.Unlock() } -// Event defines the event used by the process monitor -type Event struct { - Type model.EventType - Pid uint32 -} - -// EventConsumer defines an event consumer to handle event monitor events in the -// process monitor -type EventConsumer struct{} - -// NewProcessMonitorEventConsumer returns a new process monitor event consumer -func NewProcessMonitorEventConsumer(em *eventmonitor.EventMonitor) (*EventConsumer, error) { - consumer := &EventConsumer{} - err := em.AddEventConsumerHandler(consumer) - return consumer, err -} - -// ChanSize returns the channel size used by this consumer -func (ec *EventConsumer) ChanSize() int { - return 500 -} - -// ID returns the ID of this consumer -func (ec *EventConsumer) ID() string { - return "PROCESS_MONITOR" -} - -// Start the consumer -func (ec *EventConsumer) Start() error { - return nil -} - -// Stop the consumer -func (ec *EventConsumer) Stop() { -} - -// EventTypes returns the event types handled by this consumer -func (ec *EventConsumer) EventTypes() []model.EventType { - return []model.EventType{ - model.ExecEventType, - model.ExitEventType, - } -} - -// HandleEvent handles events received from the event monitor -func (ec *EventConsumer) HandleEvent(event any) { - sevent, ok := event.(*Event) - if !ok { - return - } - - processMonitor.tel.events.Add(1) - switch sevent.Type { - case model.ExecEventType: +// InitializeEventConsumer initializes the event consumer with the event handling. +func InitializeEventConsumer(consumer *consumers.ProcessConsumer) { + consumer.SubscribeExec(func(pid uint32) { + processMonitor.tel.events.Add(1) processMonitor.tel.exec.Add(1) if processMonitor.hasExecCallbacks.Load() { - processMonitor.handleProcessExec(sevent.Pid) + processMonitor.handleProcessExec(pid) } - case model.ExitEventType: + }) + consumer.SubscribeExit(func(pid uint32) { + processMonitor.tel.events.Add(1) processMonitor.tel.exit.Add(1) if processMonitor.hasExitCallbacks.Load() { - processMonitor.handleProcessExit(sevent.Pid) + processMonitor.handleProcessExit(pid) } - } -} - -// Copy should copy the given event or return nil to discard it -func (ec *EventConsumer) Copy(event *model.Event) any { - return &Event{ - Type: event.GetEventType(), - Pid: event.GetProcessPid(), - } + }) } diff --git a/pkg/process/monitor/process_monitor_test.go b/pkg/process/monitor/process_monitor_test.go index 0fe9e80bd21cb..c03cf721aaafc 100644 --- a/pkg/process/monitor/process_monitor_test.go +++ b/pkg/process/monitor/process_monitor_test.go @@ -19,13 +19,10 @@ import ( "github.com/vishvananda/netns" "go.uber.org/atomic" - "github.com/DataDog/datadog-agent/pkg/eventmonitor" - eventmonitortestutil "github.com/DataDog/datadog-agent/pkg/eventmonitor/testutil" + "github.com/DataDog/datadog-agent/pkg/eventmonitor/consumers/testutil" "github.com/DataDog/datadog-agent/pkg/network/protocols/telemetry" - "github.com/DataDog/datadog-agent/pkg/security/utils" "github.com/DataDog/datadog-agent/pkg/util" "github.com/DataDog/datadog-agent/pkg/util/kernel" - "github.com/DataDog/datadog-agent/pkg/util/log" ) func getProcessMonitor(t *testing.T) *ProcessMonitor { @@ -40,12 +37,12 @@ func getProcessMonitor(t *testing.T) *ProcessMonitor { func waitForProcessMonitor(t *testing.T, pm *ProcessMonitor) { execCounter := atomic.NewInt32(0) execCallback := func(_ uint32) { execCounter.Inc() } - registerCallback(t, pm, true, (*ProcessCallback)(&execCallback)) + registerCallback(t, pm, true, &execCallback) exitCounter := atomic.NewInt32(0) // Sanity subscribing a callback. exitCallback := func(_ uint32) { exitCounter.Inc() } - registerCallback(t, pm, false, (*ProcessCallback)(&exitCallback)) + registerCallback(t, pm, false, &exitCallback) require.Eventually(t, func() bool { _ = exec.Command("/bin/echo").Run() @@ -56,14 +53,7 @@ func waitForProcessMonitor(t *testing.T, pm *ProcessMonitor) { func initializePM(t *testing.T, pm *ProcessMonitor, useEventStream bool) { require.NoError(t, pm.Initialize(useEventStream)) if useEventStream { - utils.SetCachedHostname("test-hostname") - eventmonitortestutil.StartEventMonitor(t, func(t *testing.T, evm *eventmonitor.EventMonitor) { - // Can't use the implementation in procmontestutil due to import cycles - procmonconsumer, err := NewProcessMonitorEventConsumer(evm) - require.NoError(t, err) - evm.RegisterEventConsumer(procmonconsumer) - log.Info("process monitoring test consumer initialized") - }) + InitializeEventConsumer(testutil.NewTestProcessConsumer(t)) } waitForProcessMonitor(t, pm) } @@ -113,7 +103,7 @@ func (s *processMonitorSuite) TestProcessMonitorSanity() { defer execsMutex.Unlock() execs[pid] = struct{}{} } - registerCallback(t, pm, true, (*ProcessCallback)(&callback)) + registerCallback(t, pm, true, &callback) exitMutex := sync.RWMutex{} exits := make(map[uint32]struct{}) @@ -122,7 +112,7 @@ func (s *processMonitorSuite) TestProcessMonitorSanity() { defer exitMutex.Unlock() exits[pid] = struct{}{} } - registerCallback(t, pm, false, (*ProcessCallback)(&exitCallback)) + registerCallback(t, pm, false, &exitCallback) initializePM(t, pm, s.useEventStream) cmd := exec.Command(testBinaryPath, "test") @@ -182,7 +172,7 @@ func (s *processMonitorSuite) TestProcessRegisterMultipleCallbacks() { defer execCountersMutexes[i].Unlock() c[pid] = struct{}{} } - registerCallback(t, pm, true, (*ProcessCallback)(&callback)) + registerCallback(t, pm, true, &callback) exitCountersMutexes[i] = sync.RWMutex{} exitCounters[i] = make(map[uint32]struct{}) @@ -193,7 +183,7 @@ func (s *processMonitorSuite) TestProcessRegisterMultipleCallbacks() { defer exitCountersMutexes[i].Unlock() exitc[pid] = struct{}{} } - registerCallback(t, pm, false, (*ProcessCallback)(&exitCallback)) + registerCallback(t, pm, false, &exitCallback) } initializePM(t, pm, s.useEventStream) @@ -252,10 +242,10 @@ func (s *processMonitorSuite) TestProcessMonitorInNamespace() { pm := getProcessMonitor(t) callback := func(pid uint32) { execSet.Store(pid, struct{}{}) } - registerCallback(t, pm, true, (*ProcessCallback)(&callback)) + registerCallback(t, pm, true, &callback) exitCallback := func(pid uint32) { exitSet.Store(pid, struct{}{}) } - registerCallback(t, pm, false, (*ProcessCallback)(&exitCallback)) + registerCallback(t, pm, false, &exitCallback) monNs, err := netns.New() require.NoError(t, err, "could not create network namespace for process monitor") diff --git a/pkg/process/monitor/testutil/testutil.go b/pkg/process/monitor/testutil/testutil.go deleted file mode 100644 index d270faec3968f..0000000000000 --- a/pkg/process/monitor/testutil/testutil.go +++ /dev/null @@ -1,27 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -//go:build linux && test - -// Package testutil provides utilities for testing the process monitor -package testutil - -import ( - "testing" - - "github.com/stretchr/testify/require" - - "github.com/DataDog/datadog-agent/pkg/eventmonitor" - procmon "github.com/DataDog/datadog-agent/pkg/process/monitor" - "github.com/DataDog/datadog-agent/pkg/util/log" -) - -// RegisterProcessMonitorEventConsumer registers the process monitor consumer to an EventMonitor -func RegisterProcessMonitorEventConsumer(t *testing.T, evm *eventmonitor.EventMonitor) { - procmonconsumer, err := procmon.NewProcessMonitorEventConsumer(evm) - require.NoError(t, err) - evm.RegisterEventConsumer(procmonconsumer) - log.Info("process monitoring test consumer initialized") -} From 7c1a13b48c98a3782396bd2390edaf199a67ca77 Mon Sep 17 00:00:00 2001 From: Guy Arbitman Date: Tue, 10 Dec 2024 11:09:50 +0200 Subject: [PATCH 349/439] usm: sowatcher: Cut instruction cout by 90% (#31947) --- pkg/network/ebpf/c/shared-libraries/probes.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkg/network/ebpf/c/shared-libraries/probes.h b/pkg/network/ebpf/c/shared-libraries/probes.h index 7a71650cdba5e..a33e228a63b26 100644 --- a/pkg/network/ebpf/c/shared-libraries/probes.h +++ b/pkg/network/ebpf/c/shared-libraries/probes.h @@ -23,10 +23,9 @@ static __always_inline void do_sys_open_helper_enter(const char *filename) { // Find the null character and clean up the garbage following it #pragma unroll for (int i = 0; i < LIB_PATH_MAX_SIZE; i++) { - if (path.len) { - path.buf[i] = 0; - } else if (path.buf[i] == 0) { + if (path.buf[i] == 0) { path.len = i; + break; } } } else { From 4f89621f4eb0e48640f666ddcff92845e31ab6bc Mon Sep 17 00:00:00 2001 From: Steven Blumenthal Date: Tue, 10 Dec 2024 10:26:24 +0100 Subject: [PATCH 350/439] Increase default kube_cache_sync_timeout_seconds from 5 to 10 seconds (#31877) --- flakes.yaml | 2 ++ pkg/config/setup/config.go | 2 +- test/new-e2e/tests/containers/dump_cluster_state.go | 5 +++-- test/new-e2e/tests/containers/k8s_test.go | 3 --- test/new-e2e/tests/containers/kindvm_test.go | 3 --- 5 files changed, 6 insertions(+), 9 deletions(-) diff --git a/flakes.yaml b/flakes.yaml index ab2af6b55f3ea..49c403b802517 100644 --- a/flakes.yaml +++ b/flakes.yaml @@ -11,3 +11,5 @@ test/new-e2e/tests/containers: - TestECSSuite/TestCPU/metric___container.cpu.usage{^ecs_container_name:stress-ng$} - TestEKSSuite/TestCPU/metric___container.cpu.usage{^kube_deployment:stress-ng$,^kube_namespace:workload-cpustress$} - TestKindSuite/TestCPU/metric___container.cpu.usage{^kube_deployment:stress-ng$,^kube_namespace:workload-cpustress$} + - TestKindSuite/TestAdmissionControllerWithAutoDetectedLanguage + - TestKindSuite diff --git a/pkg/config/setup/config.go b/pkg/config/setup/config.go index a9c74bb2765fa..563f4230a866e 100644 --- a/pkg/config/setup/config.go +++ b/pkg/config/setup/config.go @@ -490,7 +490,7 @@ func InitConfig(config pkgconfigmodel.Setup) { config.BindEnvAndSetDefault("leader_election_default_resource", "configmap") config.BindEnvAndSetDefault("leader_election_release_on_shutdown", true) config.BindEnvAndSetDefault("kube_resources_namespace", "") - config.BindEnvAndSetDefault("kube_cache_sync_timeout_seconds", 5) + config.BindEnvAndSetDefault("kube_cache_sync_timeout_seconds", 10) // Datadog cluster agent config.BindEnvAndSetDefault("cluster_agent.enabled", false) diff --git a/test/new-e2e/tests/containers/dump_cluster_state.go b/test/new-e2e/tests/containers/dump_cluster_state.go index ddf546d889d09..a1d0eeb97928c 100644 --- a/test/new-e2e/tests/containers/dump_cluster_state.go +++ b/test/new-e2e/tests/containers/dump_cluster_state.go @@ -17,7 +17,6 @@ import ( "strings" "sync" - "github.com/DataDog/datadog-agent/pkg/util/pointer" awsconfig "github.com/aws/aws-sdk-go-v2/config" awsec2 "github.com/aws/aws-sdk-go-v2/service/ec2" awsec2types "github.com/aws/aws-sdk-go-v2/service/ec2/types" @@ -34,6 +33,8 @@ import ( clientcmdapi "k8s.io/client-go/tools/clientcmd/api" kubectlget "k8s.io/kubectl/pkg/cmd/get" kubectlutil "k8s.io/kubectl/pkg/cmd/util" + + "github.com/DataDog/datadog-agent/pkg/util/pointer" ) func dumpEKSClusterState(ctx context.Context, name string) (ret string) { @@ -287,7 +288,7 @@ func dumpK8sClusterState(ctx context.Context, kubeconfig *clientcmdapi.Config, o getCmd.SetErr(out) getCmd.SetContext(ctx) getCmd.SetArgs([]string{ - "nodes,all", + "nodes,mutatingwebhookconfiguration,validatingwebhookconfiguration,all", "--all-namespaces", "-o", "wide", diff --git a/test/new-e2e/tests/containers/k8s_test.go b/test/new-e2e/tests/containers/k8s_test.go index fbb1195a976c3..fb235f979c951 100644 --- a/test/new-e2e/tests/containers/k8s_test.go +++ b/test/new-e2e/tests/containers/k8s_test.go @@ -19,7 +19,6 @@ import ( "gopkg.in/zorkian/go-datadog-api.v2" "github.com/DataDog/datadog-agent/pkg/util/pointer" - "github.com/DataDog/datadog-agent/pkg/util/testutil/flake" "github.com/DataDog/datadog-agent/test/fakeintake/aggregator" fakeintake "github.com/DataDog/datadog-agent/test/fakeintake/client" "github.com/DataDog/datadog-agent/test/new-e2e/pkg/components" @@ -993,8 +992,6 @@ func (suite *k8sSuite) TestAdmissionControllerWithLibraryAnnotation() { } func (suite *k8sSuite) TestAdmissionControllerWithAutoDetectedLanguage() { - // CONTINT-4009 - flake.Mark(suite.T()) suite.testAdmissionControllerPod("workload-mutated-lib-injection", "mutated-with-auto-detected-language", "python", true) } diff --git a/test/new-e2e/tests/containers/kindvm_test.go b/test/new-e2e/tests/containers/kindvm_test.go index 08e327fced435..5282e6fd65e34 100644 --- a/test/new-e2e/tests/containers/kindvm_test.go +++ b/test/new-e2e/tests/containers/kindvm_test.go @@ -10,8 +10,6 @@ import ( "encoding/json" "testing" - "github.com/DataDog/datadog-agent/pkg/util/testutil/flake" - "github.com/DataDog/test-infra-definitions/scenarios/aws/kindvm" "github.com/DataDog/datadog-agent/test/new-e2e/pkg/components" @@ -28,7 +26,6 @@ type kindSuite struct { } func TestKindSuite(t *testing.T) { - flake.Mark(t) suite.Run(t, &kindSuite{}) } From a7ba9110c9023ca31f2c5e913a7ff98ab31a9a5b Mon Sep 17 00:00:00 2001 From: Nicolas Schweitzer Date: Tue, 10 Dec 2024 10:51:13 +0100 Subject: [PATCH 351/439] fix(assign_issue): Add the required slack token (#31949) --- .github/workflows/assign_issue.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/assign_issue.yml b/.github/workflows/assign_issue.yml index f752788cf64c8..0230f9d7c4d6f 100644 --- a/.github/workflows/assign_issue.yml +++ b/.github/workflows/assign_issue.yml @@ -26,5 +26,6 @@ jobs: - name: Assign issue env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SLACK_API_TOKEN : ${{ secrets.SLACK_DATADOG_AGENT_BOT_TOKEN }} run: | inv -e issue.assign-owner -i ${{ github.event.issue.number }} From bcfd6abb95c101caf619f5b2290a27b489ab3056 Mon Sep 17 00:00:00 2001 From: Brian Floersch Date: Tue, 10 Dec 2024 11:35:36 +0100 Subject: [PATCH 352/439] Make # of log pipelines configurable and default to GOMAXPROCS (#31190) Co-authored-by: Srdjan Grubor --- comp/logs/agent/agentimpl/agent_core_init.go | 2 +- comp/logs/agent/agentimpl/agent_serverless_init.go | 2 +- comp/logs/agent/config/constants.go | 5 ----- .../otelcol/logsagentpipeline/logsagentpipelineimpl/agent.go | 2 +- pkg/compliance/reporter.go | 2 +- pkg/config/setup/config.go | 4 ++++ pkg/security/reporter/reporter.go | 2 +- 7 files changed, 9 insertions(+), 10 deletions(-) diff --git a/comp/logs/agent/agentimpl/agent_core_init.go b/comp/logs/agent/agentimpl/agent_core_init.go index 37d5c029cf0f6..fae9804bae9b8 100644 --- a/comp/logs/agent/agentimpl/agent_core_init.go +++ b/comp/logs/agent/agentimpl/agent_core_init.go @@ -46,7 +46,7 @@ func (a *logAgent) SetupPipeline(processingRules []*config.ProcessingRule, wmeta diagnosticMessageReceiver := diagnostic.NewBufferedMessageReceiver(nil, a.hostname) // setup the pipeline provider that provides pairs of processor and sender - pipelineProvider := pipeline.NewProvider(config.NumberOfPipelines, auditor, diagnosticMessageReceiver, processingRules, a.endpoints, destinationsCtx, NewStatusProvider(), a.hostname, a.config) + pipelineProvider := pipeline.NewProvider(a.config.GetInt("logs_config.pipelines"), auditor, diagnosticMessageReceiver, processingRules, a.endpoints, destinationsCtx, NewStatusProvider(), a.hostname, a.config) // setup the launchers lnchrs := launchers.NewLaunchers(a.sources, pipelineProvider, auditor, a.tracker) diff --git a/comp/logs/agent/agentimpl/agent_serverless_init.go b/comp/logs/agent/agentimpl/agent_serverless_init.go index 31dbf3e41d2dc..67711def14029 100644 --- a/comp/logs/agent/agentimpl/agent_serverless_init.go +++ b/comp/logs/agent/agentimpl/agent_serverless_init.go @@ -49,7 +49,7 @@ func (a *logAgent) SetupPipeline( destinationsCtx := client.NewDestinationsContext() // setup the pipeline provider that provides pairs of processor and sender - pipelineProvider := pipeline.NewServerlessProvider(config.NumberOfPipelines, a.auditor, diagnosticMessageReceiver, processingRules, a.endpoints, destinationsCtx, NewStatusProvider(), a.hostname, a.config) + pipelineProvider := pipeline.NewServerlessProvider(a.config.GetInt("logs_config.pipelines"), a.auditor, diagnosticMessageReceiver, processingRules, a.endpoints, destinationsCtx, NewStatusProvider(), a.hostname, a.config) lnchrs := launchers.NewLaunchers(a.sources, pipelineProvider, a.auditor, a.tracker) lnchrs.AddLauncher(channel.NewLauncher()) diff --git a/comp/logs/agent/config/constants.go b/comp/logs/agent/config/constants.go index ae9a0d74680f0..a66b989366370 100644 --- a/comp/logs/agent/config/constants.go +++ b/comp/logs/agent/config/constants.go @@ -5,11 +5,6 @@ package config -// Pipeline constraints -const ( - NumberOfPipelines = 4 -) - const ( // DateFormat is the default date format. DateFormat = "2006-01-02T15:04:05.000000000Z" diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/agent.go b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/agent.go index d1910d28db034..b014d5b31689e 100644 --- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/agent.go +++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/agent.go @@ -210,7 +210,7 @@ func (a *Agent) SetupPipeline( destinationsCtx := client.NewDestinationsContext() // setup the pipeline provider that provides pairs of processor and sender - pipelineProvider := pipeline.NewProvider(config.NumberOfPipelines, auditor, &diagnostic.NoopMessageReceiver{}, processingRules, a.endpoints, destinationsCtx, NewStatusProvider(), a.hostname, a.config) + pipelineProvider := pipeline.NewProvider(a.config.GetInt("logs_config.pipelines"), auditor, &diagnostic.NoopMessageReceiver{}, processingRules, a.endpoints, destinationsCtx, NewStatusProvider(), a.hostname, a.config) a.auditor = auditor a.destinationsCtx = destinationsCtx diff --git a/pkg/compliance/reporter.go b/pkg/compliance/reporter.go index 501ca6f10bc43..cf59ee9043489 100644 --- a/pkg/compliance/reporter.go +++ b/pkg/compliance/reporter.go @@ -44,7 +44,7 @@ func NewLogReporter(hostname string, sourceName, sourceType string, endpoints *c auditor.Start() // setup the pipeline provider that provides pairs of processor and sender - pipelineProvider := pipeline.NewProvider(config.NumberOfPipelines, auditor, &diagnostic.NoopMessageReceiver{}, nil, endpoints, dstcontext, agentimpl.NewStatusProvider(), hostnameimpl.NewHostnameService(), pkgconfigsetup.Datadog()) + pipelineProvider := pipeline.NewProvider(4, auditor, &diagnostic.NoopMessageReceiver{}, nil, endpoints, dstcontext, agentimpl.NewStatusProvider(), hostnameimpl.NewHostnameService(), pkgconfigsetup.Datadog()) pipelineProvider.Start() logSource := sources.NewLogSource( diff --git a/pkg/config/setup/config.go b/pkg/config/setup/config.go index 563f4230a866e..a19de1ebed171 100644 --- a/pkg/config/setup/config.go +++ b/pkg/config/setup/config.go @@ -1572,6 +1572,10 @@ func logsagent(config pkgconfigmodel.Setup) { // Add a tag to logs that are truncated by the agent config.BindEnvAndSetDefault("logs_config.tag_truncated_logs", false) + // Number of logs pipeline instances. Defaults to number of logical CPU cores as defined by GOMAXPROCS or 4, whichever is lower. + logsPipelines := min(4, runtime.GOMAXPROCS(0)) + config.BindEnvAndSetDefault("logs_config.pipelines", logsPipelines) + // If true, the agent looks for container logs in the location used by podman, rather // than docker. This is a temporary configuration parameter to support podman logs until // a more substantial refactor of autodiscovery is made to determine this automatically. diff --git a/pkg/security/reporter/reporter.go b/pkg/security/reporter/reporter.go index 1c8a4f71bf5a0..227f94ac456ed 100644 --- a/pkg/security/reporter/reporter.go +++ b/pkg/security/reporter/reporter.go @@ -52,7 +52,7 @@ func newReporter(hostname string, stopper startstop.Stopper, sourceName, sourceT stopper.Add(auditor) // setup the pipeline provider that provides pairs of processor and sender - pipelineProvider := pipeline.NewProvider(logsconfig.NumberOfPipelines, auditor, &diagnostic.NoopMessageReceiver{}, nil, endpoints, context, agentimpl.NewStatusProvider(), hostnameimpl.NewHostnameService(), pkgconfigsetup.Datadog()) + pipelineProvider := pipeline.NewProvider(4, auditor, &diagnostic.NoopMessageReceiver{}, nil, endpoints, context, agentimpl.NewStatusProvider(), hostnameimpl.NewHostnameService(), pkgconfigsetup.Datadog()) pipelineProvider.Start() stopper.Add(pipelineProvider) From fdbee01da61702d171ffe826745011a9c05d0e92 Mon Sep 17 00:00:00 2001 From: Florent Clarret Date: Tue, 10 Dec 2024 12:28:56 +0100 Subject: [PATCH 353/439] Update release.json (#31952) --- release.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release.json b/release.json index 6c42ba0c2fe30..24cb211dbbdc3 100644 --- a/release.json +++ b/release.json @@ -3,7 +3,7 @@ "current_milestone": "7.62.0", "last_stable": { "6": "6.53.0", - "7": "7.59.0" + "7": "7.59.1" }, "nightly": { "INTEGRATIONS_CORE_VERSION": "master", From 6778936cf2c1983bcb921c26f90fe30ed6bb9125 Mon Sep 17 00:00:00 2001 From: Arthur Bellal Date: Tue, 10 Dec 2024 12:42:06 +0100 Subject: [PATCH 354/439] (fleet) small optmisation to the installer script (#31953) --- pkg/fleet/installer/setup/install.sh | 24 ++++++++++++------------ tasks/installer.py | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/pkg/fleet/installer/setup/install.sh b/pkg/fleet/installer/setup/install.sh index 440e8b71acf1d..d76e790de910f 100644 --- a/pkg/fleet/installer/setup/install.sh +++ b/pkg/fleet/installer/setup/install.sh @@ -22,10 +22,10 @@ install() { $sudo_cmd mkdir -p "${tmp_dir}" case "$(uname -m)" in x86_64) - echo "${downloader_bin_linux_amd64}" | base64 -d | $sudo_cmd tee "${downloader_path}" >/dev/null + write_installer_amd64 "$sudo_cmd" "$downloader_path" ;; aarch64) - echo "${downloader_bin_linux_arm64}" | base64 -d | $sudo_cmd tee "${downloader_path}" >/dev/null + write_installer_arm64 "$sudo_cmd" "$downloader_path" ;; esac $sudo_cmd chmod +x "${downloader_path}" @@ -37,16 +37,16 @@ install() { # Embedded binaries used to install Datadog. # Source: https://github.com/DataDog/datadog-agent/tree/INSTALLER_COMMIT/pkg/fleet/installer # DO NOT EDIT THIS SECTION MANUALLY. -downloader_bin_linux_amd64=$( - cat </dev/null +} +write_installer_arm64() { + local sudo_cmd=$1 + local path=$2 + base64 -d <<<"DOWNLOADER_BIN_LINUX_ARM64" | $sudo_cmd tee "${path}" >/dev/null +} install "$@" exit 0 diff --git a/tasks/installer.py b/tasks/installer.py index 7429a1eaf3148..9e758a96a3bac 100644 --- a/tasks/installer.py +++ b/tasks/installer.py @@ -111,7 +111,7 @@ def build_linux_script( build_downloader(ctx, flavor=flavor, version=version, os='linux', arch=arch) with open(DOWNLOADER_BIN, 'rb') as f: encoded_bin = base64.encodebytes(f.read()).decode('utf-8') - install_script = install_script.replace(f'DOWNLOADER_BIN_{arch.upper()}', encoded_bin) + install_script = install_script.replace(f'DOWNLOADER_BIN_LINUX_{arch.upper()}', encoded_bin) commit_sha = ctx.run('git rev-parse HEAD', hide=True).stdout.strip() install_script = install_script.replace('INSTALLER_COMMIT', commit_sha) From 3911e67300941f3b1a6910a1883f13bd28e403f3 Mon Sep 17 00:00:00 2001 From: Vincent Whitchurch Date: Tue, 10 Dec 2024 13:44:10 +0100 Subject: [PATCH 355/439] usm: test: Do not use splice in transparent proxy (#31955) --- .../external_unix_proxy_server.go | 4 +- .../testutil/proxy/unix_transparent_proxy.go | 57 ++++++++++++++++++- 2 files changed, 58 insertions(+), 3 deletions(-) diff --git a/pkg/network/tracer/testutil/proxy/external_unix_proxy_server/external_unix_proxy_server.go b/pkg/network/tracer/testutil/proxy/external_unix_proxy_server/external_unix_proxy_server.go index 8ef7f164ae5b2..1f077d0717746 100644 --- a/pkg/network/tracer/testutil/proxy/external_unix_proxy_server/external_unix_proxy_server.go +++ b/pkg/network/tracer/testutil/proxy/external_unix_proxy_server/external_unix_proxy_server.go @@ -22,11 +22,13 @@ func main() { var unixPath string var useTLS bool var useControl bool + var useSplice bool flag.StringVar(&remoteAddr, "remote", "", "Remote server address to forward connections to") flag.StringVar(&unixPath, "unix", "/tmp/transparent.sock", "A local unix socket to listen on") flag.BoolVar(&useTLS, "tls", false, "Use TLS to connect to the remote server") flag.BoolVar(&useControl, "control", false, "Use control messages") + flag.BoolVar(&useSplice, "splice", false, "Use splice(2) to transfer data") // Parse command-line flags flag.Parse() @@ -34,7 +36,7 @@ func main() { done := make(chan os.Signal, 1) signal.Notify(done, syscall.SIGINT) - srv := proxy.NewUnixTransparentProxyServer(unixPath, remoteAddr, useTLS, useControl) + srv := proxy.NewUnixTransparentProxyServer(unixPath, remoteAddr, useTLS, useControl, useSplice) defer srv.Stop() if err := srv.Run(); err != nil { diff --git a/pkg/network/tracer/testutil/proxy/unix_transparent_proxy.go b/pkg/network/tracer/testutil/proxy/unix_transparent_proxy.go index 0d19319837b2b..9109b9e0d0756 100644 --- a/pkg/network/tracer/testutil/proxy/unix_transparent_proxy.go +++ b/pkg/network/tracer/testutil/proxy/unix_transparent_proxy.go @@ -43,6 +43,8 @@ type UnixTransparentProxyServer struct { useTLS bool // useControl indicates whether the proxy should expect control messages on the client socket useControl bool + // useSplice indicates whether splice(2) should be used to transfer data between the sockets + useSplice bool // isReady is a flag indicating whether the server is ready to accept connections. isReady atomic.Bool // wg is a wait group used to wait for the server to stop. @@ -52,12 +54,13 @@ type UnixTransparentProxyServer struct { } // NewUnixTransparentProxyServer returns a new instance of a UnixTransparentProxyServer. -func NewUnixTransparentProxyServer(unixPath, remoteAddr string, useTLS, useControl bool) *UnixTransparentProxyServer { +func NewUnixTransparentProxyServer(unixPath, remoteAddr string, useTLS, useControl bool, useSplice bool) *UnixTransparentProxyServer { return &UnixTransparentProxyServer{ unixPath: unixPath, remoteAddr: remoteAddr, useTLS: useTLS, useControl: useControl, + useSplice: useSplice, } } @@ -124,6 +127,51 @@ func WaitForConnectionReady(unixSocket string) error { return fmt.Errorf("could not connect %q after %d retries (after %v)", unixSocket, connectionRetries, connectionRetryInterval*connectionRetries) } +// copyWithoutSplice is based on io.copyBuffer() in the standard library with +// the WriteTo/ReadFrom usage removed (to remove the use of splice(2)) and the +// internal errors replaced (since they are inaccessible from here). +func copyWithoutSplice(dst io.Writer, src io.Reader, buf []byte) (written int64, err error) { + if buf == nil { + size := 32 * 1024 + if l, ok := src.(*io.LimitedReader); ok && int64(size) > l.N { + if l.N < 1 { + size = 1 + } else { + size = int(l.N) + } + } + buf = make([]byte, size) + } + for { + nr, er := src.Read(buf) + if nr > 0 { + nw, ew := dst.Write(buf[0:nr]) + if nw < 0 || nr < nw { + nw = 0 + if ew == nil { + ew = errors.New("invalid write result") + } + } + written += int64(nw) + if ew != nil { + err = ew + break + } + if nr != nw { + err = io.ErrShortWrite + break + } + } + if er != nil { + if er != io.EOF { + err = er + } + break + } + } + return written, err +} + // handleConnection handles a new connection, by forwarding all traffic to the remote address. func (p *UnixTransparentProxyServer) handleConnection(unixSocketConn net.Conn) { defer unixSocketConn.Close() @@ -219,7 +267,12 @@ func (p *UnixTransparentProxyServer) handleConnection(unixSocketConn net.Conn) { if cleanup != nil { defer cleanup() } - _, _ = io.Copy(dst, src) + + if p.useSplice { + _, _ = io.Copy(dst, src) + } else { + _, _ = copyWithoutSplice(dst, src, nil) + } } // If the unix socket is closed, we can close the remote as well. From 8d89378971e1074a64be7313c3bba7034a91fcc4 Mon Sep 17 00:00:00 2001 From: pducolin <45568537+pducolin@users.noreply.github.com> Date: Tue, 10 Dec 2024 13:48:47 +0100 Subject: [PATCH 356/439] [github] run pr-merge task only on PRs targeting main (#31956) --- .github/workflows/report-merged-pr.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/report-merged-pr.yml b/.github/workflows/report-merged-pr.yml index de4cfe0cb01b9..feefb3c5446bd 100644 --- a/.github/workflows/report-merged-pr.yml +++ b/.github/workflows/report-merged-pr.yml @@ -4,6 +4,8 @@ name: Report Merged PR on: pull_request: + branches: + - main types: [closed] permissions: {} From f0211e154ff254b01a16d09a8f770c2536a8c9c4 Mon Sep 17 00:00:00 2001 From: Guillaume Pagnoux Date: Tue, 10 Dec 2024 14:35:48 +0100 Subject: [PATCH 357/439] discovery: fix "too many open files" issue (#31957) --- .../servicediscovery/module/comm.go | 6 +-- .../servicediscovery/module/comm_test.go | 21 +++------- .../servicediscovery/module/envs_test.go | 17 +++----- .../module/ignore_proc_test.go | 7 +--- .../servicediscovery/module/impl_linux.go | 40 +++++-------------- .../module/impl_linux_test.go | 16 -------- .../servicediscovery/module/stat.go | 6 +-- 7 files changed, 27 insertions(+), 86 deletions(-) diff --git a/pkg/collector/corechecks/servicediscovery/module/comm.go b/pkg/collector/corechecks/servicediscovery/module/comm.go index 7b513080aef18..675eac0d2f246 100644 --- a/pkg/collector/corechecks/servicediscovery/module/comm.go +++ b/pkg/collector/corechecks/servicediscovery/module/comm.go @@ -13,8 +13,6 @@ import ( "strconv" "strings" - "github.com/shirou/gopsutil/v3/process" - "github.com/DataDog/datadog-agent/pkg/util/kernel" ddsync "github.com/DataDog/datadog-agent/pkg/util/sync" ) @@ -41,11 +39,11 @@ var ( ) // shouldIgnoreComm returns true if process should be ignored -func (s *discovery) shouldIgnoreComm(proc *process.Process) bool { +func (s *discovery) shouldIgnoreComm(pid int32) bool { if s.config.ignoreComms == nil { return false } - commPath := kernel.HostProc(strconv.Itoa(int(proc.Pid)), "comm") + commPath := kernel.HostProc(strconv.Itoa(int(pid)), "comm") file, err := os.Open(commPath) if err != nil { return true diff --git a/pkg/collector/corechecks/servicediscovery/module/comm_test.go b/pkg/collector/corechecks/servicediscovery/module/comm_test.go index 1bc296913ecf3..23568d19ecd2c 100644 --- a/pkg/collector/corechecks/servicediscovery/module/comm_test.go +++ b/pkg/collector/corechecks/servicediscovery/module/comm_test.go @@ -137,16 +137,10 @@ func TestShouldIgnoreComm(t *testing.T) { _ = cmd.Process.Kill() }) - var proc *process.Process require.EventuallyWithT(t, func(collect *assert.CollectT) { - proc, err = customNewProcess(int32(cmd.Process.Pid)) - assert.NoError(collect, err) - }, 2*time.Second, 100*time.Millisecond) - - require.EventuallyWithT(t, func(collect *assert.CollectT) { - ignore := discovery.shouldIgnoreComm(proc) + ignore := discovery.shouldIgnoreComm(int32(cmd.Process.Pid)) assert.Equal(collect, test.ignore, ignore) - }, 500*time.Millisecond, 100*time.Millisecond) + }, 2*time.Second, 100*time.Millisecond) }) } } @@ -193,9 +187,8 @@ func BenchmarkProcName(b *testing.B) { for i := 0; i < b.N; i++ { // create a new process on each iteration to eliminate name caching from the calculation - proc, err := customNewProcess(int32(cmd.Process.Pid)) - if err != nil { - b.Fatal(err) + proc := &process.Process{ + Pid: int32(cmd.Process.Pid), } comm, err := proc.Name() if err != nil { @@ -216,11 +209,7 @@ func BenchmarkShouldIgnoreComm(b *testing.B) { b.ReportAllocs() for i := 0; i < b.N; i++ { - proc, err := customNewProcess(int32(cmd.Process.Pid)) - if err != nil { - b.Fatal(err) - } - ok := discovery.shouldIgnoreComm(proc) + ok := discovery.shouldIgnoreComm(int32(cmd.Process.Pid)) if ok { b.Fatalf("process should not have been ignored") } diff --git a/pkg/collector/corechecks/servicediscovery/module/envs_test.go b/pkg/collector/corechecks/servicediscovery/module/envs_test.go index 31cb3c8816fe7..3d2987797ff0a 100644 --- a/pkg/collector/corechecks/servicediscovery/module/envs_test.go +++ b/pkg/collector/corechecks/servicediscovery/module/envs_test.go @@ -151,15 +151,12 @@ func TestTargetEnvs(t *testing.T) { // BenchmarkGetEnvs benchmarks reading of all environment variables from /proc//environ. func BenchmarkGetEnvs(b *testing.B) { - proc, err := customNewProcess(int32(os.Getpid())) - if err != nil { - return - } + proc := &process.Process{Pid: int32(os.Getpid())} + b.ResetTimer() b.ReportAllocs() for i := 0; i < b.N; i++ { - _, err = getEnvs(proc) - if err != nil { + if _, err := getEnvs(proc); err != nil { return } } @@ -167,16 +164,12 @@ func BenchmarkGetEnvs(b *testing.B) { // BenchmarkGetEnvsTarget benchmarks reading of target environment variables only from /proc//environ. func BenchmarkGetEnvsTarget(b *testing.B) { - proc, err := customNewProcess(int32(os.Getpid())) - if err != nil { - return - } + proc := &process.Process{Pid: int32(os.Getpid())} b.ResetTimer() b.ReportAllocs() for i := 0; i < b.N; i++ { - _, err = getTargetEnvs(proc) - if err != nil { + if _, err := getTargetEnvs(proc); err != nil { return } } diff --git a/pkg/collector/corechecks/servicediscovery/module/ignore_proc_test.go b/pkg/collector/corechecks/servicediscovery/module/ignore_proc_test.go index 90d0dc9d8dcb3..317455f84fbbe 100644 --- a/pkg/collector/corechecks/servicediscovery/module/ignore_proc_test.go +++ b/pkg/collector/corechecks/servicediscovery/module/ignore_proc_test.go @@ -69,12 +69,9 @@ func TestShouldIgnorePid(t *testing.T) { discovery := newDiscovery(nil) require.NotEmpty(t, discovery) - proc, err := customNewProcess(int32(cmd.Process.Pid)) - require.NoError(t, err) - require.EventuallyWithT(t, func(collect *assert.CollectT) { // wait until the service name becomes available - info, err := discovery.getServiceInfo(proc) + info, err := discovery.getServiceInfo(int32(cmd.Process.Pid)) assert.NoError(collect, err) assert.Equal(collect, test.service, info.ddServiceName) }, 3*time.Second, 100*time.Millisecond) @@ -92,7 +89,7 @@ func TestShouldIgnorePid(t *testing.T) { } // check saved pid to ignore - ignore := discovery.shouldIgnorePid(proc.Pid) + ignore := discovery.shouldIgnorePid(int32(cmd.Process.Pid)) require.Equal(t, test.ignore, ignore) }) } diff --git a/pkg/collector/corechecks/servicediscovery/module/impl_linux.go b/pkg/collector/corechecks/servicediscovery/module/impl_linux.go index 8c2b276d8f56b..c70f64efeae37 100644 --- a/pkg/collector/corechecks/servicediscovery/module/impl_linux.go +++ b/pkg/collector/corechecks/servicediscovery/module/impl_linux.go @@ -383,7 +383,11 @@ func (s *discovery) cleanIgnoredPids(alivePids map[int32]struct{}) { // getServiceInfo gets the service information for a process using the // servicedetector module. -func (s *discovery) getServiceInfo(proc *process.Process) (*serviceInfo, error) { +func (s *discovery) getServiceInfo(pid int32) (*serviceInfo, error) { + proc := &process.Process{ + Pid: pid, + } + cmdline, err := proc.CmdlineSlice() if err != nil { return nil, err @@ -432,39 +436,17 @@ func (s *discovery) getServiceInfo(proc *process.Process) (*serviceInfo, error) }, nil } -// customNewProcess is the same implementation as process.NewProcess but without calling CreateTimeWithContext, which -// is not needed and costly for the discovery module. -func customNewProcess(pid int32) (*process.Process, error) { - p := &process.Process{ - Pid: pid, - } - - exists, err := process.PidExists(pid) - if err != nil { - return p, err - } - if !exists { - return p, process.ErrorProcessNotRunning - } - return p, nil -} - // maxNumberOfPorts is the maximum number of listening ports which we report per // service. const maxNumberOfPorts = 50 // getService gets information for a single service. func (s *discovery) getService(context parsingContext, pid int32) *model.Service { - proc, err := customNewProcess(pid) - if err != nil { - return nil - } - - if s.shouldIgnorePid(proc.Pid) { + if s.shouldIgnorePid(pid) { return nil } - if s.shouldIgnoreComm(proc) { - s.addIgnoredPid(proc.Pid) + if s.shouldIgnoreComm(pid) { + s.addIgnoredPid(pid) return nil } @@ -523,7 +505,7 @@ func (s *discovery) getService(context parsingContext, pid int32) *model.Service ports = ports[:maxNumberOfPorts] } - rss, err := getRSS(proc) + rss, err := getRSS(pid) if err != nil { return nil } @@ -535,7 +517,7 @@ func (s *discovery) getService(context parsingContext, pid int32) *model.Service if ok { info = cached } else { - info, err = s.getServiceInfo(proc) + info, err = s.getServiceInfo(pid) if err != nil { return nil } @@ -550,7 +532,7 @@ func (s *discovery) getService(context parsingContext, pid int32) *model.Service name = info.generatedName } if s.shouldIgnoreService(name) { - s.addIgnoredPid(proc.Pid) + s.addIgnoredPid(pid) return nil } diff --git a/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go b/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go index e584b9816c474..6970f36651c8f 100644 --- a/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go +++ b/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go @@ -1025,22 +1025,6 @@ func TestTagsPriority(t *testing.T) { } } -func BenchmarkOldProcess(b *testing.B) { - b.ResetTimer() - b.ReportAllocs() - for i := 0; i < b.N; i++ { - process.NewProcess(int32(os.Getpid())) - } -} - -func BenchmarkNewProcess(b *testing.B) { - b.ResetTimer() - b.ReportAllocs() - for i := 0; i < b.N; i++ { - customNewProcess(int32(os.Getpid())) - } -} - func getSocketsOld(p *process.Process) ([]uint64, error) { FDs, err := p.OpenFiles() if err != nil { diff --git a/pkg/collector/corechecks/servicediscovery/module/stat.go b/pkg/collector/corechecks/servicediscovery/module/stat.go index ca894aaf0e727..9ea526f7f829d 100644 --- a/pkg/collector/corechecks/servicediscovery/module/stat.go +++ b/pkg/collector/corechecks/servicediscovery/module/stat.go @@ -16,8 +16,6 @@ import ( "strconv" "strings" - "github.com/shirou/gopsutil/v3/process" - "github.com/DataDog/datadog-agent/pkg/util/kernel" ) @@ -28,8 +26,8 @@ var pageSize = uint64(os.Getpagesize()) // getRSS returns the RSS for the process, in bytes. Compare MemoryInfo() in // gopsutil which does the same thing but which parses several other fields // which we're not interested in. -func getRSS(proc *process.Process) (uint64, error) { - statmPath := kernel.HostProc(strconv.Itoa(int(proc.Pid)), "statm") +func getRSS(pid int32) (uint64, error) { + statmPath := kernel.HostProc(strconv.Itoa(int(pid)), "statm") // This file is very small so just read it fully. contents, err := os.ReadFile(statmPath) From 5978d29b02cacc50288b20660816495bacd94448 Mon Sep 17 00:00:00 2001 From: Kevin Fairise <132568982+KevinFairise2@users.noreply.github.com> Date: Tue, 10 Dec 2024 15:20:25 +0100 Subject: [PATCH 358/439] Refactor configuration to be able to pass a different SSH key per cloud provider (#31482) --- .gitlab/e2e/e2e.yml | 23 ++++++++++-- test/new-e2e/pkg/runner/configmap.go | 29 +++++++++------ test/new-e2e/pkg/runner/configmap_test.go | 20 +++++----- test/new-e2e/pkg/runner/parameters/const.go | 37 ++++++++++++++++--- .../runner/parameters/store_config_file.go | 35 ++++++++++++++++-- .../parameters/store_config_file_test.go | 4 +- .../pkg/runner/parameters/store_env.go | 12 ++++-- test/new-e2e/pkg/utils/e2e/client/docker.go | 2 +- test/new-e2e/pkg/utils/e2e/client/host.go | 6 +-- 9 files changed, 125 insertions(+), 43 deletions(-) diff --git a/.gitlab/e2e/e2e.yml b/.gitlab/e2e/e2e.yml index 092ef165d6231..9892eef7c2cb2 100644 --- a/.gitlab/e2e/e2e.yml +++ b/.gitlab/e2e/e2e.yml @@ -14,8 +14,16 @@ - $CI_PROJECT_DIR/tools/ci/fetch_secret.sh $AGENT_QA_E2E profile >> ~/.aws/config || exit $? - export AWS_PROFILE=agent-qa-ci # Now all `aws` commands target the agent-qa profile - - $CI_PROJECT_DIR/tools/ci/fetch_secret.sh $AGENT_QA_E2E ssh_public_key_rsa > $E2E_PUBLIC_KEY_PATH || exit $? - - touch $E2E_PRIVATE_KEY_PATH && chmod 600 $E2E_PRIVATE_KEY_PATH && $CI_PROJECT_DIR/tools/ci/fetch_secret.sh $AGENT_QA_E2E ssh_key_rsa > $E2E_PRIVATE_KEY_PATH || exit $? + # TODO: ADXT-768: Create new secret with different ssh key for the different cloud providers + # SSH Key retrieval for AWS + - $CI_PROJECT_DIR/tools/ci/fetch_secret.sh $AGENT_QA_E2E ssh_public_key_rsa > $E2E_AWS_PUBLIC_KEY_PATH || exit $? + - touch $E2E_AWS_PRIVATE_KEY_PATH && chmod 600 $E2E_AWS_PRIVATE_KEY_PATH && $CI_PROJECT_DIR/tools/ci/fetch_secret.sh $AGENT_QA_E2E ssh_key_rsa > $E2E_AWS_PRIVATE_KEY_PATH || exit $? + # SSH Key retrieval for Azure + - $CI_PROJECT_DIR/tools/ci/fetch_secret.sh $AGENT_QA_E2E ssh_public_key_rsa > $E2E_AZURE_PUBLIC_KEY_PATH || exit $? + - touch $E2E_AZURE_PRIVATE_KEY_PATH && chmod 600 $E2E_AZURE_PRIVATE_KEY_PATH && $CI_PROJECT_DIR/tools/ci/fetch_secret.sh $AGENT_QA_E2E ssh_key_rsa > $E2E_AZURE_PRIVATE_KEY_PATH || exit $? + # SSH Key retrieval for GCP + - $CI_PROJECT_DIR/tools/ci/fetch_secret.sh $AGENT_QA_E2E ssh_public_key_rsa > $E2E_GCP_PUBLIC_KEY_PATH || exit $? + - touch $E2E_GCP_PRIVATE_KEY_PATH && chmod 600 $E2E_GCP_PRIVATE_KEY_PATH && $CI_PROJECT_DIR/tools/ci/fetch_secret.sh $AGENT_QA_E2E ssh_key_rsa > $E2E_GCP_PRIVATE_KEY_PATH || exit $? # Use S3 backend - pulumi login "s3://dd-pulumi-state?region=us-east-1&awssdk=v2&profile=$AWS_PROFILE" # Setup Azure credentials. https://www.pulumi.com/registry/packages/azure-native/installation-configuration/#set-configuration-using-pulumi-config @@ -35,9 +43,16 @@ KUBERNETES_MEMORY_REQUEST: 12Gi KUBERNETES_MEMORY_LIMIT: 16Gi KUBERNETES_CPU_REQUEST: 6 - E2E_PUBLIC_KEY_PATH: /tmp/agent-qa-ssh-key.pub - E2E_PRIVATE_KEY_PATH: /tmp/agent-qa-ssh-key + # AWS SSH Key configuration + E2E_AWS_PUBLIC_KEY_PATH: /tmp/agent-qa-aws-ssh-key.pub + E2E_AWS_PRIVATE_KEY_PATH: /tmp/agent-qa-aws-ssh-key E2E_KEY_PAIR_NAME: datadog-agent-ci-rsa + # Azure SSH Key configuration + E2E_AZURE_PUBLIC_KEY_PATH: /tmp/agent-qa-azure-ssh-key.pub + E2E_AZURE_PRIVATE_KEY_PATH: /tmp/agent-qa-azure-ssh-key + # GCP SSH Key configuration + E2E_GCP_PUBLIC_KEY_PATH: /tmp/agent-qa-gcp-ssh-key.pub + E2E_GCP_PRIVATE_KEY_PATH: /tmp/agent-qa-gcp-ssh-key E2E_PIPELINE_ID: $CI_PIPELINE_ID E2E_COMMIT_SHA: $CI_COMMIT_SHORT_SHA E2E_OUTPUT_DIR: $CI_PROJECT_DIR/e2e-output diff --git a/test/new-e2e/pkg/runner/configmap.go b/test/new-e2e/pkg/runner/configmap.go index bb4fd0a9fb0f7..9541320664572 100644 --- a/test/new-e2e/pkg/runner/configmap.go +++ b/test/new-e2e/pkg/runner/configmap.go @@ -127,14 +127,19 @@ func BuildStackParameters(profile Profile, scenarioConfig ConfigMap) (ConfigMap, // Parameters from profile cm.Set(InfraEnvironmentVariables, profile.EnvironmentNames(), false) params := map[parameters.StoreKey][]string{ - parameters.KeyPairName: {AWSKeyPairName}, - parameters.PublicKeyPath: {AWSPublicKeyPath, AzurePublicKeyPath, GCPPublicKeyPath, LocalPublicKeyPath}, - parameters.PrivateKeyPath: {AWSPrivateKeyPath, AzurePrivateKeyPath, GCPPrivateKeyPath}, - parameters.ExtraResourcesTags: {InfraExtraResourcesTags}, - parameters.PipelineID: {AgentPipelineID}, - parameters.MajorVersion: {AgentMajorVersion}, - parameters.CommitSHA: {AgentCommitSHA}, - parameters.InitOnly: {InfraInitOnly}, + parameters.KeyPairName: {AWSKeyPairName}, + parameters.AWSPublicKeyPath: {AWSPublicKeyPath}, + parameters.AzurePublicKeyPath: {AzurePublicKeyPath}, + parameters.GCPPublicKeyPath: {GCPPublicKeyPath}, + parameters.AWSPrivateKeyPath: {AWSPrivateKeyPath}, + parameters.AzurePrivateKeyPath: {AzurePrivateKeyPath}, + parameters.GCPPrivateKeyPath: {GCPPrivateKeyPath}, + parameters.LocalPublicKeyPath: {LocalPublicKeyPath}, + parameters.ExtraResourcesTags: {InfraExtraResourcesTags}, + parameters.PipelineID: {AgentPipelineID}, + parameters.MajorVersion: {AgentMajorVersion}, + parameters.CommitSHA: {AgentCommitSHA}, + parameters.InitOnly: {InfraInitOnly}, } for storeKey, configMapKeys := range params { @@ -149,9 +154,11 @@ func BuildStackParameters(profile Profile, scenarioConfig ConfigMap) (ConfigMap, // Secret parameters from profile store secretParams := map[parameters.StoreKey][]string{ - parameters.APIKey: {AgentAPIKey}, - parameters.APPKey: {AgentAPPKey}, - parameters.PrivateKeyPassword: {AWSPrivateKeyPassword, AzurePrivateKeyPassword, GCPPrivateKeyPassword}, + parameters.APIKey: {AgentAPIKey}, + parameters.APPKey: {AgentAPPKey}, + parameters.AWSPrivateKeyPassword: {AWSPrivateKeyPassword}, + parameters.AzurePrivateKeyPassword: {AzurePrivateKeyPassword}, + parameters.GCPPrivateKeyPassword: {GCPPrivateKeyPassword}, } for storeKey, configMapKeys := range secretParams { diff --git a/test/new-e2e/pkg/runner/configmap_test.go b/test/new-e2e/pkg/runner/configmap_test.go index 2e9bf966a53a2..23b02f0a0156c 100644 --- a/test/new-e2e/pkg/runner/configmap_test.go +++ b/test/new-e2e/pkg/runner/configmap_test.go @@ -37,16 +37,16 @@ func Test_BuildStackParameters(t *testing.T) { "ddinfra:env": auto.ConfigValue{Value: "", Secret: false}, "ddinfra:extraResourcesTags": auto.ConfigValue{Value: "extra_resources_tags", Secret: false}, "ddinfra:initOnly": auto.ConfigValue{Value: "init_only", Secret: false}, - "ddinfra:aws/defaultPublicKeyPath": auto.ConfigValue{Value: "public_key_path", Secret: false}, - "ddinfra:aws/defaultPrivateKeyPath": auto.ConfigValue{Value: "private_key_path", Secret: false}, - "ddinfra:aws/defaultPrivateKeyPassword": auto.ConfigValue{Value: "private_key_password", Secret: true}, - "ddinfra:az/defaultPublicKeyPath": auto.ConfigValue{Value: "public_key_path", Secret: false}, - "ddinfra:az/defaultPrivateKeyPath": auto.ConfigValue{Value: "private_key_path", Secret: false}, - "ddinfra:az/defaultPrivateKeyPassword": auto.ConfigValue{Value: "private_key_password", Secret: true}, - "ddinfra:gcp/defaultPublicKeyPath": auto.ConfigValue{Value: "public_key_path", Secret: false}, - "ddinfra:gcp/defaultPrivateKeyPath": auto.ConfigValue{Value: "private_key_path", Secret: false}, - "ddinfra:gcp/defaultPrivateKeyPassword": auto.ConfigValue{Value: "private_key_password", Secret: true}, - "ddinfra:local/defaultPublicKeyPath": auto.ConfigValue{Value: "public_key_path", Secret: false}, + "ddinfra:aws/defaultPublicKeyPath": auto.ConfigValue{Value: "aws_public_key_path", Secret: false}, + "ddinfra:aws/defaultPrivateKeyPath": auto.ConfigValue{Value: "aws_private_key_path", Secret: false}, + "ddinfra:aws/defaultPrivateKeyPassword": auto.ConfigValue{Value: "aws_private_key_password", Secret: true}, + "ddinfra:az/defaultPublicKeyPath": auto.ConfigValue{Value: "azure_public_key_path", Secret: false}, + "ddinfra:az/defaultPrivateKeyPath": auto.ConfigValue{Value: "azure_private_key_path", Secret: false}, + "ddinfra:az/defaultPrivateKeyPassword": auto.ConfigValue{Value: "azure_private_key_password", Secret: true}, + "ddinfra:gcp/defaultPublicKeyPath": auto.ConfigValue{Value: "gcp_public_key_path", Secret: false}, + "ddinfra:gcp/defaultPrivateKeyPath": auto.ConfigValue{Value: "gcp_private_key_path", Secret: false}, + "ddinfra:gcp/defaultPrivateKeyPassword": auto.ConfigValue{Value: "gcp_private_key_password", Secret: true}, + "ddinfra:local/defaultPublicKeyPath": auto.ConfigValue{Value: "local_public_key_path", Secret: false}, "ddagent:pipeline_id": auto.ConfigValue{Value: "pipeline_id", Secret: false}, "ddagent:commit_sha": auto.ConfigValue{Value: "commit_sha", Secret: false}, "ddagent:majorVersion": auto.ConfigValue{Value: "major_version", Secret: false}, diff --git a/test/new-e2e/pkg/runner/parameters/const.go b/test/new-e2e/pkg/runner/parameters/const.go index c23c1502946b6..227abac7f651f 100644 --- a/test/new-e2e/pkg/runner/parameters/const.go +++ b/test/new-e2e/pkg/runner/parameters/const.go @@ -5,6 +5,8 @@ package parameters +import "github.com/DataDog/test-infra-definitions/components" + // StoreKey alias to string type StoreKey string @@ -19,14 +21,28 @@ const ( ExtraResourcesTags StoreKey = "extra_resources_tags" // KeyPairName aws keypairname, used to access EC2 instances KeyPairName StoreKey = "key_pair_name" - // PrivateKeyPassword private ssh key password - PrivateKeyPassword StoreKey = "private_key_password" - // PrivateKeyPath private ssh key path - PrivateKeyPath StoreKey = "private_key_path" + // AWSPrivateKeyPassword private ssh key password + AWSPrivateKeyPassword StoreKey = StoreKey(components.CloudProviderAWS + PrivateKeyPasswordSuffix) + // AWSPrivateKeyPath private ssh key path + AWSPrivateKeyPath StoreKey = StoreKey(components.CloudProviderAWS + PrivateKeyPathSuffix) // Profile aws profile name Profile StoreKey = "profile" - // PublicKeyPath public ssh key path - PublicKeyPath StoreKey = "public_key_path" + // AWSPublicKeyPath public ssh key path + AWSPublicKeyPath StoreKey = StoreKey(components.CloudProviderAWS + PublicKeyPathSuffix) + //AzurePrivateKeyPassword private ssh key password + AzurePrivateKeyPassword StoreKey = StoreKey(components.CloudProviderAzure + PrivateKeyPasswordSuffix) + //AzurePrivateKeyPath private ssh key path + AzurePrivateKeyPath StoreKey = StoreKey(components.CloudProviderAzure + PrivateKeyPathSuffix) + //AzurePublicKeyPath public ssh key path + AzurePublicKeyPath StoreKey = StoreKey(components.CloudProviderAzure + PublicKeyPathSuffix) + //GCPPrivateKeyPassword private ssh key password + GCPPrivateKeyPassword StoreKey = StoreKey(components.CloudProviderGCP + PrivateKeyPasswordSuffix) + //GCPPrivateKeyPath private ssh key path + GCPPrivateKeyPath StoreKey = StoreKey(components.CloudProviderGCP + PrivateKeyPathSuffix) + //GCPPublicKeyPath public ssh key path + GCPPublicKeyPath StoreKey = StoreKey(components.CloudProviderGCP + PublicKeyPathSuffix) + // LocalPublicKeyPath public ssh key path + LocalPublicKeyPath StoreKey = "local_public_key_path" // PulumiPassword config file parameter name PulumiPassword StoreKey = "pulumi_password" // SkipDeleteOnFailure keep the stack on test failure @@ -56,3 +72,12 @@ const ( // MajorVersion config flag parameter name MajorVersion StoreKey = "major_version" ) + +const ( + // PrivateKeyPathSuffix private ssh key path suffix + PrivateKeyPathSuffix = "_private_key_path" + // PublicKeyPathSuffix public ssh key path suffix + PublicKeyPathSuffix = "_public_key_path" + // PrivateKeyPasswordSuffix private ssh key password suffix + PrivateKeyPasswordSuffix = "_private_key_password" +) diff --git a/test/new-e2e/pkg/runner/parameters/store_config_file.go b/test/new-e2e/pkg/runner/parameters/store_config_file.go index e9f20051e3708..8fd564adfb636 100644 --- a/test/new-e2e/pkg/runner/parameters/store_config_file.go +++ b/test/new-e2e/pkg/runner/parameters/store_config_file.go @@ -38,6 +38,8 @@ type Config struct { type ConfigParams struct { AWS AWS `yaml:"aws"` Azure Azure `yaml:"azure"` + GCP GCP `yaml:"gcp"` + Local Local `yaml:"local"` Agent Agent `yaml:"agent"` OutputDir string `yaml:"outputDir"` Pulumi Pulumi `yaml:"pulumi"` @@ -62,6 +64,19 @@ type Azure struct { PrivateKeyPassword string `yaml:"privateKeyPassword"` } +// GCP instance contains GCP related parameters +type GCP struct { + Account string `yaml:"account"` + PublicKeyPath string `yaml:"publicKeyPath"` + PrivateKeyPath string `yaml:"privateKeyPath"` + PrivateKeyPassword string `yaml:"privateKeyPassword"` +} + +// Local instance contains local related parameters +type Local struct { + PublicKeyPath string `yaml:"publicKeyPath"` +} + // Agent instance contains agent related parameters type Agent struct { APIKey string `yaml:"apiKey"` @@ -135,12 +150,26 @@ func (s configFileValueStore) get(key StoreKey) (string, error) { value = s.config.ConfigParams.Agent.APPKey case KeyPairName: value = s.config.ConfigParams.AWS.KeyPairName - case PublicKeyPath: + case AWSPublicKeyPath: value = s.config.ConfigParams.AWS.PublicKeyPath - case PrivateKeyPath: + case AWSPrivateKeyPath: value = s.config.ConfigParams.AWS.PrivateKeyPath - case PrivateKeyPassword: + case AWSPrivateKeyPassword: value = s.config.ConfigParams.AWS.PrivateKeyPassword + case AzurePrivateKeyPassword: + value = s.config.ConfigParams.Azure.PrivateKeyPassword + case AzurePrivateKeyPath: + value = s.config.ConfigParams.Azure.PrivateKeyPath + case AzurePublicKeyPath: + value = s.config.ConfigParams.Azure.PublicKeyPath + case GCPPrivateKeyPassword: + value = s.config.ConfigParams.GCP.PrivateKeyPassword + case GCPPrivateKeyPath: + value = s.config.ConfigParams.GCP.PrivateKeyPath + case GCPPublicKeyPath: + value = s.config.ConfigParams.GCP.PublicKeyPath + case LocalPublicKeyPath: + value = s.config.ConfigParams.Local.PublicKeyPath case StackParameters: value = s.stackParamsJSON case ExtraResourcesTags: diff --git a/test/new-e2e/pkg/runner/parameters/store_config_file_test.go b/test/new-e2e/pkg/runner/parameters/store_config_file_test.go index 68826e44f3b67..0c99a5a6d7314 100644 --- a/test/new-e2e/pkg/runner/parameters/store_config_file_test.go +++ b/test/new-e2e/pkg/runner/parameters/store_config_file_test.go @@ -52,7 +52,7 @@ func Test_NewConfigFileStore(t *testing.T) { assert.NoError(t, err) assert.Equal(t, "totoro", value) - value, err = store.Get(PublicKeyPath) + value, err = store.Get(AWSPublicKeyPath) assert.NoError(t, err) assert.Equal(t, "/Users/totoro/.ssh/id_rsa.pub", value) @@ -81,7 +81,7 @@ func Test_NewConfigFileStoreNoAWSAccount(t *testing.T) { assert.NoError(t, err) assert.Equal(t, "totoro", value) - value, err = store.Get(PublicKeyPath) + value, err = store.Get(AWSPublicKeyPath) assert.NoError(t, err) assert.Equal(t, "/Users/totoro/.ssh/id_rsa.pub", value) diff --git a/test/new-e2e/pkg/runner/parameters/store_env.go b/test/new-e2e/pkg/runner/parameters/store_env.go index 6e43128a2af69..1aba3ce15de34 100644 --- a/test/new-e2e/pkg/runner/parameters/store_env.go +++ b/test/new-e2e/pkg/runner/parameters/store_env.go @@ -19,10 +19,16 @@ var envVariablesByStoreKey = map[StoreKey]string{ Environments: "E2E_ENVIRONMENTS", ExtraResourcesTags: "E2E_EXTRA_RESOURCES_TAGS", KeyPairName: "E2E_KEY_PAIR_NAME", - PrivateKeyPassword: "E2E_PRIVATE_KEY_PASSWORD", - PrivateKeyPath: "E2E_PRIVATE_KEY_PATH", + AWSPrivateKeyPassword: "E2E_AWS_PRIVATE_KEY_PASSWORD", + AWSPrivateKeyPath: "E2E_AWS_PRIVATE_KEY_PATH", Profile: "E2E_PROFILE", - PublicKeyPath: "E2E_PUBLIC_KEY_PATH", + AWSPublicKeyPath: "E2E_AWS_PUBLIC_KEY_PATH", + AzurePrivateKeyPath: "E2E_AZURE_PRIVATE_KEY_PATH", + AzurePublicKeyPath: "E2E_AZURE_PUBLIC_KEY_PATH", + AzurePrivateKeyPassword: "E2E_AZURE_PRIVATE_KEY_PASSWORD", + GCPPrivateKeyPath: "E2E_GCP_PRIVATE_KEY_PATH", + GCPPublicKeyPath: "E2E_GCP_PUBLIC_KEY_PATH", + GCPPrivateKeyPassword: "E2E_GCP_PRIVATE_KEY_PASSWORD", PulumiPassword: "E2E_PULUMI_PASSWORD", SkipDeleteOnFailure: "E2E_SKIP_DELETE_ON_FAILURE", StackParameters: "E2E_STACK_PARAMS", diff --git a/test/new-e2e/pkg/utils/e2e/client/docker.go b/test/new-e2e/pkg/utils/e2e/client/docker.go index b31aba4ce7e85..1235bc56c0c2a 100644 --- a/test/new-e2e/pkg/utils/e2e/client/docker.go +++ b/test/new-e2e/pkg/utils/e2e/client/docker.go @@ -40,7 +40,7 @@ func NewDocker(t *testing.T, dockerOutput docker.ManagerOutput) (*Docker, error) sshOpts := []string{"-o", "StrictHostKeyChecking no"} - privateKeyPath, err := runner.GetProfile().ParamStore().GetWithDefault(parameters.PrivateKeyPath, "") + privateKeyPath, err := runner.GetProfile().ParamStore().GetWithDefault(parameters.StoreKey(dockerOutput.Host.CloudProvider+parameters.PrivateKeyPathSuffix), "") if err != nil { return nil, err } diff --git a/test/new-e2e/pkg/utils/e2e/client/host.go b/test/new-e2e/pkg/utils/e2e/client/host.go index e446f56ff32db..ad0f1e0eb8557 100644 --- a/test/new-e2e/pkg/utils/e2e/client/host.go +++ b/test/new-e2e/pkg/utils/e2e/client/host.go @@ -65,12 +65,12 @@ type Host struct { // reconnect retry logic func NewHost(context e2e.Context, hostOutput remote.HostOutput) (*Host, error) { var privateSSHKey []byte - privateKeyPath, err := runner.GetProfile().ParamStore().GetWithDefault(parameters.PrivateKeyPath, "") + + privateKeyPath, err := runner.GetProfile().ParamStore().GetWithDefault(parameters.StoreKey(hostOutput.CloudProvider+parameters.PrivateKeyPathSuffix), "") if err != nil { return nil, err } - - privateKeyPassword, err := runner.GetProfile().SecretStore().GetWithDefault(parameters.PrivateKeyPassword, "") + privateKeyPassword, err := runner.GetProfile().SecretStore().GetWithDefault(parameters.StoreKey(hostOutput.CloudProvider+parameters.PrivateKeyPasswordSuffix), "") if err != nil { return nil, err } From 357c34f5aad3ff5cbf0fdb911e0af7ffe55612b2 Mon Sep 17 00:00:00 2001 From: Jonathan Ribas Date: Tue, 10 Dec 2024 16:05:29 +0100 Subject: [PATCH 359/439] [CWS] Lower ptrace tracee resolution issue log level (#31950) --- pkg/security/probe/probe_ebpf.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go index c51e920adf851..1bb574938bfdd 100644 --- a/pkg/security/probe/probe_ebpf.go +++ b/pkg/security/probe/probe_ebpf.go @@ -1097,7 +1097,7 @@ func (p *EBPFProbe) handleEvent(CPU int, data []byte) { } else { pid, err := utils.TryToResolveTraceePid(event.ProcessContext.Process.Pid, event.PTrace.NSPID) if err != nil { - seclog.Errorf("PTrace err: %v", err) + seclog.Infof("PTrace err: %v", err) return } pidToResolve = pid From 6eeac68a54e5d43501d1fd0d5b1b4898ba3f71a6 Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 10 Dec 2024 10:09:22 -0500 Subject: [PATCH 360/439] Remove flake designation from darwin-based dogstatsd tests (#31890) --- comp/dogstatsd/server/server_util_test.go | 6 ------ 1 file changed, 6 deletions(-) diff --git a/comp/dogstatsd/server/server_util_test.go b/comp/dogstatsd/server/server_util_test.go index 33355d4cbc982..f2c542f45c0e0 100644 --- a/comp/dogstatsd/server/server_util_test.go +++ b/comp/dogstatsd/server/server_util_test.go @@ -8,14 +8,12 @@ package server import ( - "runtime" "testing" "github.com/stretchr/testify/assert" "github.com/DataDog/datadog-agent/pkg/metrics/event" "github.com/DataDog/datadog-agent/pkg/metrics/servicecheck" - "github.com/DataDog/datadog-agent/pkg/util/testutil/flake" "go.uber.org/fx" @@ -77,10 +75,6 @@ func fulfillDeps(t testing.TB) serverDeps { } func fulfillDepsWithConfigOverride(t testing.TB, overrides map[string]interface{}) serverDeps { - // TODO: https://datadoghq.atlassian.net/browse/AMLII-1948 - if runtime.GOOS == "darwin" { - flake.Mark(t) - } return fxutil.Test[serverDeps](t, fx.Options( core.MockBundle(), serverdebugimpl.MockModule(), From e476cb30619e6e9c0ee7afa3649c8b124874f54b Mon Sep 17 00:00:00 2001 From: Kevin Fairise <132568982+KevinFairise2@users.noreply.github.com> Date: Tue, 10 Dec 2024 16:12:14 +0100 Subject: [PATCH 361/439] When running in CI, scrub e2e tests output to avoid leaking keys (#31902) Co-authored-by: pducolin <45568537+pducolin@users.noreply.github.com> --- tasks/new_e2e_tests.py | 9 ++++++++- tasks/tools/gotest-scrubbed.sh | 6 ++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100755 tasks/tools/gotest-scrubbed.sh diff --git a/tasks/new_e2e_tests.py b/tasks/new_e2e_tests.py index 4b0aef5a214a4..6b16dd799eaf9 100644 --- a/tasks/new_e2e_tests.py +++ b/tasks/new_e2e_tests.py @@ -108,7 +108,14 @@ def run( test_run_arg = f"-run {test_run_name}" cmd = f'gotestsum --format {gotestsum_format} ' - cmd += '{junit_file_flag} {json_flag} --packages="{packages}" -- -ldflags="-X {REPO_PATH}/test/new-e2e/tests/containers.GitCommit={commit}" {verbose} -mod={go_mod} -vet=off -timeout {timeout} -tags "{go_build_tags}" {nocache} {run} {skip} {test_run_arg} -args {osversion} {platform} {major_version} {arch} {flavor} {cws_supported_osversion} {src_agent_version} {dest_agent_version} {keep_stacks} {extra_flags}' + scrubber_raw_command = "" + # Scrub the test output to avoid leaking API or APP keys when running in the CI + if running_in_ci(): + scrubber_raw_command = ( + # Using custom go command piped with scrubber sed instructions https://github.com/gotestyourself/gotestsum#custom-go-test-command + f"--raw-command {os.path.join(os.path.dirname(__file__), 'tools', 'gotest-scrubbed.sh')} {{packages}}" + ) + cmd += f'{{junit_file_flag}} {{json_flag}} --packages="{{packages}}" {scrubber_raw_command} -- -ldflags="-X {{REPO_PATH}}/test/new-e2e/tests/containers.GitCommit={{commit}}" {{verbose}} -mod={{go_mod}} -vet=off -timeout {{timeout}} -tags "{{go_build_tags}}" {{nocache}} {{run}} {{skip}} {{test_run_arg}} -args {{osversion}} {{platform}} {{major_version}} {{arch}} {{flavor}} {{cws_supported_osversion}} {{src_agent_version}} {{dest_agent_version}} {{keep_stacks}} {{extra_flags}}' args = { "go_mod": "readonly", diff --git a/tasks/tools/gotest-scrubbed.sh b/tasks/tools/gotest-scrubbed.sh new file mode 100755 index 0000000000000..2000005289fae --- /dev/null +++ b/tasks/tools/gotest-scrubbed.sh @@ -0,0 +1,6 @@ +#!/bin/bash +### This script is used to run go test and scrub the output, the command can be used as follow: +### ./gotest-scrubbed.sh -- +go test -json "$1" "${@:3}" | +sed -E 's/\b[a-fA-F0-9]{27}([a-fA-F0-9]{5})\b/**************************\1/g' | # Scrub API keys +sed -E 's/\b[a-fA-F0-9]{35}([a-fA-F0-9]{5})\b/************************************\1/g' # Scrub APP keys From 04e117d5975a185843812b0829788e1e5b06dc72 Mon Sep 17 00:00:00 2001 From: Kevin Fairise <132568982+KevinFairise2@users.noreply.github.com> Date: Tue, 10 Dec 2024 16:12:22 +0100 Subject: [PATCH 362/439] Post process e2e tests logs to make them more readable (#31615) --- .gitlab/e2e/e2e.yml | 4 +- .gitlab/e2e_install_packages/common.yml | 5 ++ tasks/new_e2e_tests.py | 114 +++++++++++++++++++++++- 3 files changed, 121 insertions(+), 2 deletions(-) diff --git a/.gitlab/e2e/e2e.yml b/.gitlab/e2e/e2e.yml index 9892eef7c2cb2..3f0b2c313389e 100644 --- a/.gitlab/e2e/e2e.yml +++ b/.gitlab/e2e/e2e.yml @@ -57,8 +57,9 @@ E2E_COMMIT_SHA: $CI_COMMIT_SHORT_SHA E2E_OUTPUT_DIR: $CI_PROJECT_DIR/e2e-output EXTERNAL_LINKS_PATH: external_links_$CI_JOB_ID.json + E2E_LOGS_PROCESSING_TEST_DEPTH: 1 script: - - inv -e new-e2e-tests.run --targets $TARGETS -c ddagent:imagePullRegistry=669783387624.dkr.ecr.us-east-1.amazonaws.com -c ddagent:imagePullUsername=AWS -c ddagent:imagePullPassword=$(aws ecr get-login-password) --junit-tar junit-${CI_JOB_ID}.tgz ${EXTRA_PARAMS} --test-washer + - inv -e new-e2e-tests.run --targets $TARGETS -c ddagent:imagePullRegistry=669783387624.dkr.ecr.us-east-1.amazonaws.com -c ddagent:imagePullUsername=AWS -c ddagent:imagePullPassword=$(aws ecr get-login-password) --junit-tar junit-${CI_JOB_ID}.tgz ${EXTRA_PARAMS} --test-washer --logs-folder=$E2E_OUTPUT_DIR/logs --logs-post-processing --logs-post-processing-test-depth=$E2E_LOGS_PROCESSING_TEST_DEPTH after_script: - $CI_PROJECT_DIR/tools/ci/junit_upload.sh artifacts: @@ -403,6 +404,7 @@ new-e2e-installer: TARGETS: ./tests/installer/unix TEAM: fleet FLEET_INSTALL_METHOD: "install_script" + E2E_LOGS_PROCESSING_TEST_DEPTH: 2 new-e2e-installer-windows: extends: .new_e2e_template diff --git a/.gitlab/e2e_install_packages/common.yml b/.gitlab/e2e_install_packages/common.yml index 8985150b3ff14..965f5c67ce6f8 100644 --- a/.gitlab/e2e_install_packages/common.yml +++ b/.gitlab/e2e_install_packages/common.yml @@ -9,6 +9,7 @@ TARGETS: ./tests/agent-platform/install-script TEAM: agent-delivery EXTRA_PARAMS: --osversion $E2E_OSVERS --platform $E2E_PLATFORM --cws-supported-osversion $E2E_CWS_SUPPORTED_OSVERS --arch $E2E_ARCH --flavor $FLAVOR --no-verbose + E2E_LOGS_PROCESSING_TEST_DEPTH: 2 # We use a single test suite and run all the platforms test as subtest .new-e2e_step_by_step: stage: e2e_install_packages @@ -16,6 +17,7 @@ TARGETS: ./tests/agent-platform/step-by-step TEAM: agent-delivery EXTRA_PARAMS: --osversion $E2E_OSVERS --platform $E2E_PLATFORM --cws-supported-osversion $E2E_CWS_SUPPORTED_OSVERS --arch $E2E_ARCH --flavor $FLAVOR + E2E_LOGS_PROCESSING_TEST_DEPTH: 2 # We use a single test suite and run all the platforms test as subtest .new-e2e_script_upgrade7: stage: e2e_install_packages @@ -23,6 +25,7 @@ TARGETS: ./tests/agent-platform/upgrade TEAM: agent-delivery EXTRA_PARAMS: --osversion $E2E_OSVERS --platform $E2E_PLATFORM --arch $E2E_ARCH --flavor $FLAVOR + E2E_LOGS_PROCESSING_TEST_DEPTH: 2 # We use a single test suite and run all the platforms test as subtest parallel: matrix: - START_MAJOR_VERSION: [5, 6, 7] @@ -37,6 +40,7 @@ TARGETS: ./tests/agent-platform/persisting-integrations TEAM: agent-delivery EXTRA_PARAMS: --osversion $E2E_OSVERS --platform $E2E_PLATFORM --arch $E2E_ARCH --flavor $FLAVOR + E2E_LOGS_PROCESSING_TEST_DEPTH: 2 # We use a single test suite and run all the platforms test as subtest script: - DATADOG_AGENT_API_KEY=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $INSTALL_SCRIPT_API_KEY_ORG2 token) || exit $?; export DATADOG_AGENT_API_KEY - inv -e new-e2e-tests.run --targets $TARGETS --junit-tar "junit-${CI_JOB_ID}.tgz" ${EXTRA_PARAMS} --src-agent-version 7 --test-washer @@ -47,6 +51,7 @@ TARGETS: ./tests/agent-platform/rpm TEAM: agent-delivery EXTRA_PARAMS: --osversion $E2E_OSVERS --platform $E2E_PLATFORM --arch $E2E_ARCH + E2E_LOGS_PROCESSING_TEST_DEPTH: 2 # We use a single test suite and run all the platforms test as subtest script: - DATADOG_AGENT_API_KEY=$($CI_PROJECT_DIR/tools/ci/fetch_secret.sh $INSTALL_SCRIPT_API_KEY_ORG2 token) || exit $?; export DATADOG_AGENT_API_KEY - inv -e new-e2e-tests.run --targets $TARGETS --junit-tar "junit-${CI_JOB_ID}.tgz" ${EXTRA_PARAMS} --test-washer diff --git a/tasks/new_e2e_tests.py b/tasks/new_e2e_tests.py index 6b16dd799eaf9..74f027afd1582 100644 --- a/tasks/new_e2e_tests.py +++ b/tasks/new_e2e_tests.py @@ -23,7 +23,7 @@ from tasks.libs.common.git import get_commit_sha from tasks.libs.common.go import download_go_dependencies from tasks.libs.common.gomodules import get_default_modules -from tasks.libs.common.utils import REPO_PATH, color_message, running_in_ci +from tasks.libs.common.utils import REPO_PATH, color_message, gitlab_section, running_in_ci from tasks.tools.e2e_stacks import destroy_remote_stack @@ -66,6 +66,9 @@ def run( test_washer=False, agent_image="", cluster_agent_image="", + logs_post_processing=False, + logs_post_processing_test_depth=1, + logs_folder="e2e_logs", ): """ Run E2E Tests based on test-infra-definitions infrastructure provisioning. @@ -171,6 +174,27 @@ def run( 'You can also add `E2E_DEV_MODE="true"` to run in dev mode which will leave the environment up after the tests.' ) + if logs_post_processing: + if len(test_res) == 1: + post_processed_output = post_process_output( + test_res[0].result_json_path, test_depth=logs_post_processing_test_depth + ) + + os.makedirs(logs_folder, exist_ok=True) + write_result_to_log_files(post_processed_output, logs_folder) + try: + pretty_print_logs(post_processed_output) + except TooManyLogsError: + print( + color_message("WARNING", "yellow") + + f": Too many logs to print, skipping logs printing to avoid Gitlab collapse. You can find your logs properly organized in the job artifacts: https://gitlab.ddbuild.io/DataDog/datadog-agent/-/jobs/{os.getenv('CI_JOB_ID')}/artifacts/browse/e2e-output/logs/" + ) + else: + print( + color_message("WARNING", "yellow") + + f": Logs post processing expect only test result for test/new-e2e module. Skipping because result contains test for {len(test_res)} modules." + ) + if not success: raise Exit(code=1) @@ -260,6 +284,94 @@ def cleanup_remote_stacks(ctx, stack_regex, pulumi_backend): print(f"Failed to destroy stack {stack}") +def post_process_output(path: str, test_depth: int = 1): + """ + Post process the test results to add the test run name + path: path to the test result json file + test_depth: depth of the test name to consider + + By default the test_depth is set to 1, which means that the logs will be splitted depending on the test suite name. + If we use a single test suite to run multiple tests we can increase the test_depth to split the logs per test. + For example with: + TestPackages/run_ubuntu + TestPackages/run_centos + TestPackages/run_debian + We should set test_depth to 2 to avoid mixing all the logs of the different tested platform + """ + + def is_parent(parent: list[str], child: list[str]) -> bool: + for i in range(len(parent)): + if parent[i] != child[i]: + return False + return True + + logs_per_test = {} + with open(path) as f: + all_lines = f.readlines() + + # Initalize logs_per_test with all test names + for line in all_lines: + json_line = json.loads(line) + if "Package" not in json_line or "Test" not in json_line or "Output" not in json_line: + continue + splitted_test = json_line["Test"].split("/") + if len(splitted_test) < test_depth: + continue + if json_line["Package"] not in logs_per_test: + logs_per_test[json_line["Package"]] = {} + + test_name = splitted_test[: min(test_depth, len(splitted_test))] + logs_per_test[json_line["Package"]]["/".join(test_name)] = [] + + for line in all_lines: + json_line = json.loads(line) + if "Package" not in json_line or "Test" not in json_line or "Output" not in json_line: + continue + + if "===" in json_line["Output"]: # Ignore these lines that are produced when running test concurrently + continue + + splitted_test = json_line["Test"].split("/") + + if len(splitted_test) < test_depth: # Append logs to all children tests + for test_name in logs_per_test[json_line["Package"]]: + if is_parent(splitted_test, test_name.split("/")): + logs_per_test[json_line["Package"]][test_name].append(json_line["Output"]) + continue + + logs_per_test[json_line["Package"]]["/".join(splitted_test[:test_depth])].append(json_line["Output"]) + return logs_per_test + + +def write_result_to_log_files(logs_per_test, log_folder): + for package, tests in logs_per_test.items(): + for test, logs in tests.items(): + sanitized_package_name = re.sub(r"[^\w_. -]", "_", package) + sanitized_test_name = re.sub(r"[^\w_. -]", "_", test) + with open(f"{log_folder}/{sanitized_package_name}.{sanitized_test_name}.log", "w") as f: + f.write("".join(logs)) + + +class TooManyLogsError(Exception): + pass + + +def pretty_print_logs(logs_per_test, max_size=250000): + # Compute size in bytes of what we are about to print. If it exceeds max_size, we skip printing because it will make the Gitlab logs almost completely collapsed. + # By default Gitlab has a limit of 500KB per job log, so we want to avoid printing too much. + size = 0 + for _, tests in logs_per_test.items(): + for _, logs in tests.items(): + size += len("".join(logs).encode()) + if size > max_size and running_in_ci(): + raise TooManyLogsError + for package, tests in logs_per_test.items(): + for test, logs in tests.items(): + with gitlab_section("Complete logs for " + package + "." + test, collapsed=True): + print("Complete logs for " + package + "." + test) + print("".join(logs)) + + @task def deps(ctx, verbose=False): """ From 92cf9c4fb7c5cd2589604e45bd3f8ea890b53bc2 Mon Sep 17 00:00:00 2001 From: Nicolas Schweitzer Date: Tue, 10 Dec 2024 16:19:17 +0100 Subject: [PATCH 363/439] feat(assign_owner): Send to correct channel and improve message (#31954) --- tasks/issue.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/tasks/issue.py b/tasks/issue.py index 3d3f80161fdd4..4cd05c97abcdc 100644 --- a/tasks/issue.py +++ b/tasks/issue.py @@ -25,9 +25,16 @@ def assign_owner(_, issue_id, dry_run=False): from slack_sdk import WebClient client = WebClient(os.environ['SLACK_API_TOKEN']) - channel = GITHUB_SLACK_MAP.get(owner.lower(), '#agent-ask-anything') - message = f':githubstatus_partial_outage: *New Community Issue*\n{issue.title} <{issue.html_url}|{gh.repo.name}#{issue_id}>' - message += "\nThe assignation to your team was done automatically, using issue content and title. Please redirect if needed." + channel = next( + (chan for team, chan in GITHUB_SLACK_MAP.items() if owner.lower() in team), '#agent-ask-anything' + ) + message = f':githubstatus_partial_outage: *New Community Issue*\n{issue.title} <{issue.html_url}|{gh.repo.name}#{issue_id}>\n' + if channel == '#agent-ask-anything': + message += "The CI bot failed to assign this issue to a team.\nPlease assign it manually." + else: + message += ( + "Your team was assigned automatically, using the issue content and title.\nPlease redirect if needed." + ) client.chat_postMessage(channel=channel, text=message) return owner From 03a3f1c80d4e360ca636b99818995e371fa3deff Mon Sep 17 00:00:00 2001 From: Gustavo Caso Date: Tue, 10 Dec 2024 16:32:22 +0100 Subject: [PATCH 364/439] Support components multiple implementation for package name (#31551) --- comp/core/log/impl-systemprobe/systemprobe_logger.go | 4 ++-- .../log/impl-systemprobe/systemprobe_logger_test.go | 2 +- comp/core/log/impl-trace/trace_logger.go | 4 ++-- comp/core/log/impl-trace/trace_logger_test.go | 2 +- comp/core/tagger/impl-remote/remote.go | 4 ++-- comp/core/tagger/impl-remote/remote_test.go | 2 +- comp/core/tagger/impl-remote/tagstore.go | 2 +- comp/core/tagger/impl-remote/tagstore_test.go | 2 +- comp/dogstatsd/replay/impl-noop/noop.go | 4 ++-- comp/otelcol/collector/impl-pipeline/flare_filler.go | 4 ++-- .../collector/impl-pipeline/flare_filler_test.go | 4 ++-- comp/otelcol/collector/impl-pipeline/no_otlp.go | 4 ++-- comp/otelcol/collector/impl-pipeline/pipeline.go | 4 ++-- comp/otelcol/collector/impl-pipeline/status.go | 2 +- comp/otelcol/collector/impl-pipeline/status_test.go | 2 +- comp/rdnsquerier/impl-none/none.go | 4 ++-- comp/serializer/compression/impl-noop/no_strategy.go | 4 ++-- comp/serializer/compression/impl-zlib/zlib_strategy.go | 4 ++-- comp/serializer/compression/impl-zstd/zstd_strategy.go | 7 ++++--- comp/trace/compression/impl-gzip/gzip.go | 4 ++-- comp/trace/compression/impl-zstd/zstd.go | 4 ++-- docs/public/components/creating-components.md | 10 +++++----- tasks/components.py | 9 ++++++--- tasks/unit_tests/components_tests.py | 1 + .../components_src/comp/multiple/impl-one/multiple.go | 2 +- .../components_src/comp/multiple/impl-two/multiple.go | 2 +- 26 files changed, 51 insertions(+), 46 deletions(-) diff --git a/comp/core/log/impl-systemprobe/systemprobe_logger.go b/comp/core/log/impl-systemprobe/systemprobe_logger.go index 8457442cc1c93..5cbf8dc21e5de 100644 --- a/comp/core/log/impl-systemprobe/systemprobe_logger.go +++ b/comp/core/log/impl-systemprobe/systemprobe_logger.go @@ -3,8 +3,8 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -// Package logimpl implements a component to handle logging internal to the agent for system-probe. -package logimpl +// Package systemprobeimpl implements a component to handle logging internal to the agent for system-probe. +package systemprobeimpl import ( "context" diff --git a/comp/core/log/impl-systemprobe/systemprobe_logger_test.go b/comp/core/log/impl-systemprobe/systemprobe_logger_test.go index e6a2c6682a593..3ad4e5dad9198 100644 --- a/comp/core/log/impl-systemprobe/systemprobe_logger_test.go +++ b/comp/core/log/impl-systemprobe/systemprobe_logger_test.go @@ -3,7 +3,7 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -package logimpl +package systemprobeimpl import ( "testing" diff --git a/comp/core/log/impl-trace/trace_logger.go b/comp/core/log/impl-trace/trace_logger.go index 71f4f32fdbf45..cbbc8fe5d8a0d 100644 --- a/comp/core/log/impl-trace/trace_logger.go +++ b/comp/core/log/impl-trace/trace_logger.go @@ -3,8 +3,8 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -// Package logimpl provides a component that implements the log.Component for the trace-agent logger -package logimpl +// Package traceimpl provides a component that implements the log.Component for the trace-agent logger +package traceimpl import ( "context" diff --git a/comp/core/log/impl-trace/trace_logger_test.go b/comp/core/log/impl-trace/trace_logger_test.go index 8e074becb0772..83c5a18d14aa2 100644 --- a/comp/core/log/impl-trace/trace_logger_test.go +++ b/comp/core/log/impl-trace/trace_logger_test.go @@ -3,7 +3,7 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -package logimpl +package traceimpl import ( "testing" diff --git a/comp/core/tagger/impl-remote/remote.go b/comp/core/tagger/impl-remote/remote.go index c5a1fb6dad36c..b1a77165f18a9 100644 --- a/comp/core/tagger/impl-remote/remote.go +++ b/comp/core/tagger/impl-remote/remote.go @@ -3,8 +3,8 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -// Package remotetaggerimpl implements a remote Tagger. -package remotetaggerimpl +// Package remoteimpl implements a remote Tagger. +package remoteimpl import ( "context" diff --git a/comp/core/tagger/impl-remote/remote_test.go b/comp/core/tagger/impl-remote/remote_test.go index 48c00d8006bf7..c19b8f5fe1336 100644 --- a/comp/core/tagger/impl-remote/remote_test.go +++ b/comp/core/tagger/impl-remote/remote_test.go @@ -3,7 +3,7 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -package remotetaggerimpl +package remoteimpl import ( "context" diff --git a/comp/core/tagger/impl-remote/tagstore.go b/comp/core/tagger/impl-remote/tagstore.go index de354cf070ad6..11f189ae6da90 100644 --- a/comp/core/tagger/impl-remote/tagstore.go +++ b/comp/core/tagger/impl-remote/tagstore.go @@ -3,7 +3,7 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -package remotetaggerimpl +package remoteimpl import ( "sync" diff --git a/comp/core/tagger/impl-remote/tagstore_test.go b/comp/core/tagger/impl-remote/tagstore_test.go index 8cd92107d56cc..ce2a226ed5dd8 100644 --- a/comp/core/tagger/impl-remote/tagstore_test.go +++ b/comp/core/tagger/impl-remote/tagstore_test.go @@ -3,7 +3,7 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -package remotetaggerimpl +package remoteimpl import ( "testing" diff --git a/comp/dogstatsd/replay/impl-noop/noop.go b/comp/dogstatsd/replay/impl-noop/noop.go index 100d295a8bd0b..06e4985e0ace0 100644 --- a/comp/dogstatsd/replay/impl-noop/noop.go +++ b/comp/dogstatsd/replay/impl-noop/noop.go @@ -3,8 +3,8 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-2021 Datadog, Inc. -// Package replayimpl implements a no-op version of the component -package replayimpl +// Package noopimpl implements a no-op version of the component +package noopimpl import ( "sync" diff --git a/comp/otelcol/collector/impl-pipeline/flare_filler.go b/comp/otelcol/collector/impl-pipeline/flare_filler.go index 97378486d1a22..8c170152f98ca 100644 --- a/comp/otelcol/collector/impl-pipeline/flare_filler.go +++ b/comp/otelcol/collector/impl-pipeline/flare_filler.go @@ -5,8 +5,8 @@ //go:build otlp -// Package collectorimpl implements the collector component -package collectorimpl +// Package pipelineimpl implements the collector component +package pipelineimpl import ( "encoding/json" diff --git a/comp/otelcol/collector/impl-pipeline/flare_filler_test.go b/comp/otelcol/collector/impl-pipeline/flare_filler_test.go index ed98632b0f171..93075929746d4 100644 --- a/comp/otelcol/collector/impl-pipeline/flare_filler_test.go +++ b/comp/otelcol/collector/impl-pipeline/flare_filler_test.go @@ -6,8 +6,8 @@ //go:build test && otlp // +build test,otlp -// Package collectorimpl implements the collector component -package collectorimpl +// Package pipelineimpl implements the collector component +package pipelineimpl import ( "bytes" diff --git a/comp/otelcol/collector/impl-pipeline/no_otlp.go b/comp/otelcol/collector/impl-pipeline/no_otlp.go index c1e5ae7c03789..60f1295ee33aa 100644 --- a/comp/otelcol/collector/impl-pipeline/no_otlp.go +++ b/comp/otelcol/collector/impl-pipeline/no_otlp.go @@ -5,8 +5,8 @@ //go:build !otlp -// Package collectorimpl contains a no-op implementation of the collector -package collectorimpl +// Package pipelineimpl contains a no-op implementation of the collector +package pipelineimpl import ( collector "github.com/DataDog/datadog-agent/comp/otelcol/collector/def" diff --git a/comp/otelcol/collector/impl-pipeline/pipeline.go b/comp/otelcol/collector/impl-pipeline/pipeline.go index ab46ab875bcff..34cd92d133ed8 100644 --- a/comp/otelcol/collector/impl-pipeline/pipeline.go +++ b/comp/otelcol/collector/impl-pipeline/pipeline.go @@ -5,8 +5,8 @@ //go:build otlp -// Package collectorimpl implements the collector component -package collectorimpl +// Package pipelineimpl implements the collector component +package pipelineimpl import ( "context" diff --git a/comp/otelcol/collector/impl-pipeline/status.go b/comp/otelcol/collector/impl-pipeline/status.go index e3c0b01791bc1..a94bb76a0e5dd 100644 --- a/comp/otelcol/collector/impl-pipeline/status.go +++ b/comp/otelcol/collector/impl-pipeline/status.go @@ -5,7 +5,7 @@ //go:build otlp -package collectorimpl +package pipelineimpl import ( "embed" diff --git a/comp/otelcol/collector/impl-pipeline/status_test.go b/comp/otelcol/collector/impl-pipeline/status_test.go index 0e9b6a82e364b..8ae735534ed69 100644 --- a/comp/otelcol/collector/impl-pipeline/status_test.go +++ b/comp/otelcol/collector/impl-pipeline/status_test.go @@ -5,7 +5,7 @@ //go:build otlp && test -package collectorimpl +package pipelineimpl import ( "bytes" diff --git a/comp/rdnsquerier/impl-none/none.go b/comp/rdnsquerier/impl-none/none.go index 0b7f1022f1eb9..014306826c989 100644 --- a/comp/rdnsquerier/impl-none/none.go +++ b/comp/rdnsquerier/impl-none/none.go @@ -3,8 +3,8 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2024-present Datadog, Inc. -// Package rdnsquerierimpl provides the noop rdnsquerier component -package rdnsquerierimpl +// Package noneimpl provides the noop rdnsquerier component +package noneimpl import ( "context" diff --git a/comp/serializer/compression/impl-noop/no_strategy.go b/comp/serializer/compression/impl-noop/no_strategy.go index 45523952b4ca2..3c092a8a536d4 100644 --- a/comp/serializer/compression/impl-noop/no_strategy.go +++ b/comp/serializer/compression/impl-noop/no_strategy.go @@ -3,8 +3,8 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -// Package compressionimpl provides a set of functions for compressing with zlib / zstd -package compressionimpl +// Package noopimpl provides a set of functions for compressing with zlib / zstd +package noopimpl import ( "bytes" diff --git a/comp/serializer/compression/impl-zlib/zlib_strategy.go b/comp/serializer/compression/impl-zlib/zlib_strategy.go index 2bbe1a99d1a09..0bd47af4f91fc 100644 --- a/comp/serializer/compression/impl-zlib/zlib_strategy.go +++ b/comp/serializer/compression/impl-zlib/zlib_strategy.go @@ -3,8 +3,8 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -// Package compressionimpl provides a set of functions for compressing with zlib -package compressionimpl +// Package zlibimpl provides a set of functions for compressing with zlib +package zlibimpl import ( "bytes" diff --git a/comp/serializer/compression/impl-zstd/zstd_strategy.go b/comp/serializer/compression/impl-zstd/zstd_strategy.go index 994135a0889cd..3b90737bbfce8 100644 --- a/comp/serializer/compression/impl-zstd/zstd_strategy.go +++ b/comp/serializer/compression/impl-zstd/zstd_strategy.go @@ -3,14 +3,15 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -// Package compressionimpl provides a set of functions for compressing with zstd -package compressionimpl +// Package zstdimpl provides a set of functions for compressing with zstd +package zstdimpl import ( "bytes" - compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" "github.com/DataDog/zstd" + + compression "github.com/DataDog/datadog-agent/comp/serializer/compression/def" ) // Requires contains the compression level for zstd compression diff --git a/comp/trace/compression/impl-gzip/gzip.go b/comp/trace/compression/impl-gzip/gzip.go index eada290dae873..4a7943bde1f03 100644 --- a/comp/trace/compression/impl-gzip/gzip.go +++ b/comp/trace/compression/impl-gzip/gzip.go @@ -3,8 +3,8 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2024-present Datadog, Inc. -// Package compressionimpl implements the compression component interface -package compressionimpl +// Package gzipimpl implements the compression component interface +package gzipimpl import ( "compress/gzip" diff --git a/comp/trace/compression/impl-zstd/zstd.go b/comp/trace/compression/impl-zstd/zstd.go index d418d4362f8b2..fc43c47cb0886 100644 --- a/comp/trace/compression/impl-zstd/zstd.go +++ b/comp/trace/compression/impl-zstd/zstd.go @@ -3,8 +3,8 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2024-present Datadog, Inc. -// Package compressionimpl implements the compression component interface -package compressionimpl +// Package zstdimpl implements the compression component interface +package zstdimpl import ( "io" diff --git a/docs/public/components/creating-components.md b/docs/public/components/creating-components.md index aa54f63cb3590..2fe844b7175d4 100644 --- a/docs/public/components/creating-components.md +++ b/docs/public/components/creating-components.md @@ -114,11 +114,11 @@ internally by each component (more on this [here TODO]()). --> ### The impl folders The `impl` folder is where the component implementation is written. The details of component implementation are up to the developer. -The only requirements are that the package name follows the pattern `impl` and that there is a public instantiation function called `NewComponent`. +The only requirements are that the package name follows the pattern `impl` for the regular implementation or `impl` for the alternative implementation, and that there is a public instantiation function called `NewComponent`. === ":octicons-file-code-16: comp/compression/impl-zstd/compressor.go" ```go - package compressionimpl + package zstdimpl // NewComponent returns a new ZSTD implementation for the compression component func NewComponent(reqs Requires) Provides { @@ -134,7 +134,7 @@ In this example, the compression component must access the configuration compone === ":octicons-file-code-16: comp/compression/impl-zstd/compressor.go" ```go - package compressionimpl + package zstdimpl import ( "fmt" @@ -160,7 +160,7 @@ In this example, the compression component must access the configuration compone For the output of the component, populate the `Provides` struct with the return values. === ":octicons-file-code-16: comp/compression/impl-zstd/compressor.go" ```go - package compressionimpl + package zstdimpl import ( // Always import the component def folder, so that you can return a 'compression.Component' type. @@ -180,7 +180,7 @@ All together, the component code looks like the following: === ":octicons-file-code-16: comp/compression/impl-zstd/compressor.go" ```go - package compressionimpl + package zstdimpl import ( "fmt" diff --git a/tasks/components.py b/tasks/components.py index c534d63c56b83..fc5b04806ce04 100644 --- a/tasks/components.py +++ b/tasks/components.py @@ -96,8 +96,6 @@ def has_type_component(content) -> bool: 'comp/core/configsync/configsyncimpl', 'comp/core/gui/guiimpl', 'comp/core/hostname/hostnameimpl', - 'comp/core/log/logimpl', - 'comp/core/log/tracelogimpl', 'comp/core/pid/pidimpl', 'comp/core/secrets/secretsimpl', 'comp/core/settings/settingsimpl', @@ -165,7 +163,6 @@ def has_type_component(content) -> bool: # Please do not add a new component to this list. components_missing_implementation_folder = [ "comp/dogstatsd/statsd", - "comp/core/tagger", "comp/forwarder/orchestrator/orchestratorinterface", "comp/core/hostname/hostnameinterface", ] @@ -233,6 +230,12 @@ def check_component_contents_and_file_hiearchy(comp): for src_file in locate_nontest_source_files(impl_folders): pkgname = parse_package_name(src_file) expectname = comp.name + 'impl' + + for part in src_file.parts: + if "impl-" in part: + parts = part.split("-") + expectname = parts[1] + 'impl' + if pkgname != expectname: return f"** {src_file} has wrong package name '{pkgname}', must be '{expectname}'" if comp.path in ignore_fx_import: diff --git a/tasks/unit_tests/components_tests.py b/tasks/unit_tests/components_tests.py index e5d02cab45530..b6b29acc68164 100644 --- a/tasks/unit_tests/components_tests.py +++ b/tasks/unit_tests/components_tests.py @@ -214,6 +214,7 @@ def test_validate_component_implementation(self): implfolder = os.path.join(comps[3].path, 'impl') newfolder = os.path.join(comps[3].path, 'impl-alt') + replace_line(filename, 'package newstyleimpl', 'package altimpl') shutil.move(implfolder, newfolder) comps, _ = components.get_components_and_bundles() diff --git a/tasks/unit_tests/testdata/components_src/comp/multiple/impl-one/multiple.go b/tasks/unit_tests/testdata/components_src/comp/multiple/impl-one/multiple.go index 19e6f23129500..ac4b78b3aeb69 100644 --- a/tasks/unit_tests/testdata/components_src/comp/multiple/impl-one/multiple.go +++ b/tasks/unit_tests/testdata/components_src/comp/multiple/impl-one/multiple.go @@ -3,7 +3,7 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -package multipleimpl +package oneimpl import ( multiple "github.com/DataDog/datadog-agent/comp/multiple/def" diff --git a/tasks/unit_tests/testdata/components_src/comp/multiple/impl-two/multiple.go b/tasks/unit_tests/testdata/components_src/comp/multiple/impl-two/multiple.go index 6ca0f53345424..5be15c220b450 100644 --- a/tasks/unit_tests/testdata/components_src/comp/multiple/impl-two/multiple.go +++ b/tasks/unit_tests/testdata/components_src/comp/multiple/impl-two/multiple.go @@ -3,7 +3,7 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -package multipleimpl +package twoimpl import ( multiple "github.com/DataDog/datadog-agent/comp/multiple/def" From 0b42e2bb62e2d1c0e66f03d6558efb9d99591ee9 Mon Sep 17 00:00:00 2001 From: Dmytro Yurchenko <88330911+ddyurchenko@users.noreply.github.com> Date: Tue, 10 Dec 2024 16:34:53 +0100 Subject: [PATCH 365/439] ci: Fix CODEOWNERS due to team split (#31896) --- .github/CODEOWNERS | 2 +- tasks/libs/pipeline/github_slack_map.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index cd6fe7ade112c..f9c09434f61c7 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -118,7 +118,7 @@ /.gitlab/binary_build/system_probe.yml @DataDog/ebpf-platform @DataDog/agent-delivery /.gitlab/binary_build/windows.yml @DataDog/agent-delivery @DataDog/windows-agent -/.gitlab/benchmarks/ @DataDog/agent-devx-infra @DataDog/apm-reliability-and-performance @DataDog/agent-apm +/.gitlab/benchmarks/ @DataDog/agent-devx-infra @DataDog/apm-ecosystems-performance @DataDog/agent-apm /.gitlab/deploy_containers/ @DataDog/container-integrations @DataDog/agent-delivery /.gitlab/deploy_dca/ @DataDog/container-integrations @DataDog/agent-delivery diff --git a/tasks/libs/pipeline/github_slack_map.yaml b/tasks/libs/pipeline/github_slack_map.yaml index fd021cf169528..1eebefe479b21 100644 --- a/tasks/libs/pipeline/github_slack_map.yaml +++ b/tasks/libs/pipeline/github_slack_map.yaml @@ -44,5 +44,5 @@ '@datadog/agent-devx-infra': '#agent-devx-ops' '@datadog/agent-devx-loops': '#agent-devx-ops' '@datadog/apm-onboarding': '#apm-onboarding' -'@datadog/apm-reliability-and-performance': '#apm-ecosystems-reliability' +'@datadog/apm-ecosystems-performance': '#apm-benchmarking-platform' '@DataDog/container-ecosystems': '#container-ecosystems-ops' From 385f25a20c537acf97b3c5c008d1173a290a5ff0 Mon Sep 17 00:00:00 2001 From: Ken Schneider <103530259+ken-schneider@users.noreply.github.com> Date: Tue, 10 Dec 2024 10:54:42 -0500 Subject: [PATCH 366/439] [NETPATH-371] Move common functions to separate package, create separate testutils package (#31819) --- pkg/networkpath/traceroute/common/common.go | 160 ++++++++++++ .../traceroute/common/common_test.go | 117 +++++++++ pkg/networkpath/traceroute/runner/runner.go | 3 +- pkg/networkpath/traceroute/tcp/tcpv4.go | 22 -- pkg/networkpath/traceroute/tcp/tcpv4_unix.go | 13 +- .../traceroute/tcp/tcpv4_windows.go | 13 +- pkg/networkpath/traceroute/tcp/utils.go | 125 +--------- pkg/networkpath/traceroute/tcp/utils_test.go | 235 +----------------- pkg/networkpath/traceroute/tcp/utils_unix.go | 11 +- .../traceroute/tcp/utils_unix_test.go | 10 +- .../traceroute/tcp/utils_windows.go | 9 +- .../traceroute/tcp/utils_windows_test.go | 5 +- pkg/networkpath/traceroute/testutils/doc.go | 7 + .../traceroute/testutils/testutils.go | 150 +++++++++++ 14 files changed, 481 insertions(+), 399 deletions(-) create mode 100644 pkg/networkpath/traceroute/common/common.go create mode 100644 pkg/networkpath/traceroute/common/common_test.go create mode 100644 pkg/networkpath/traceroute/testutils/doc.go create mode 100644 pkg/networkpath/traceroute/testutils/testutils.go diff --git a/pkg/networkpath/traceroute/common/common.go b/pkg/networkpath/traceroute/common/common.go new file mode 100644 index 0000000000000..c7622fa391891 --- /dev/null +++ b/pkg/networkpath/traceroute/common/common.go @@ -0,0 +1,160 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package common contains common functionality for both TCP and UDP +// traceroute implementations +package common + +import ( + "fmt" + "net" + "strconv" + "time" + + "github.com/DataDog/datadog-agent/pkg/util/log" + "github.com/google/gopacket" + "github.com/google/gopacket/layers" + "golang.org/x/net/ipv4" +) + +const ( + // IPProtoICMP is the IP protocol number for ICMP + // we create our own constant here because there are + // different imports for the constant in different + // operating systems + IPProtoICMP = 1 +) + +type ( + // Results encapsulates a response from the + // traceroute + Results struct { + Source net.IP + SourcePort uint16 + Target net.IP + DstPort uint16 + Hops []*Hop + } + + // Hop encapsulates information about a single + // hop in a traceroute + Hop struct { + IP net.IP + Port uint16 + ICMPType layers.ICMPv4TypeCode + RTT time.Duration + IsDest bool + } + + // CanceledError is sent when a listener + // is canceled + CanceledError string + + // ICMPResponse encapsulates the data from + // an ICMP response packet needed for matching + ICMPResponse struct { + SrcIP net.IP + DstIP net.IP + TypeCode layers.ICMPv4TypeCode + InnerSrcIP net.IP + InnerDstIP net.IP + InnerSrcPort uint16 + InnerDstPort uint16 + InnerSeqNum uint32 + } +) + +func (c CanceledError) Error() string { + return string(c) +} + +// LocalAddrForHost takes in a destionation IP and port and returns the local +// address that should be used to connect to the destination +func LocalAddrForHost(destIP net.IP, destPort uint16) (*net.UDPAddr, error) { + // this is a quick way to get the local address for connecting to the host + // using UDP as the network type to avoid actually creating a connection to + // the host, just get the OS to give us a local IP and local ephemeral port + conn, err := net.Dial("udp4", net.JoinHostPort(destIP.String(), strconv.Itoa(int(destPort)))) + if err != nil { + return nil, err + } + defer conn.Close() + localAddr := conn.LocalAddr() + + localUDPAddr, ok := localAddr.(*net.UDPAddr) + if !ok { + return nil, fmt.Errorf("invalid address type for %s: want %T, got %T", localAddr, localUDPAddr, localAddr) + } + + return localUDPAddr, nil +} + +// ParseICMP takes in an IPv4 header and payload and tries to convert to an ICMP +// message, it returns all the fields from the packet we need to validate it's the response +// we're looking for +func ParseICMP(header *ipv4.Header, payload []byte) (*ICMPResponse, error) { + // in addition to parsing, it is probably not a bad idea to do some validation + // so we can ignore the ICMP packets we don't care about + icmpResponse := ICMPResponse{} + + if header.Protocol != IPProtoICMP || header.Version != 4 || + header.Src == nil || header.Dst == nil { + return nil, fmt.Errorf("invalid IP header for ICMP packet: %+v", header) + } + icmpResponse.SrcIP = header.Src + icmpResponse.DstIP = header.Dst + + var icmpv4Layer layers.ICMPv4 + decoded := []gopacket.LayerType{} + icmpParser := gopacket.NewDecodingLayerParser(layers.LayerTypeICMPv4, &icmpv4Layer) + icmpParser.IgnoreUnsupported = true // ignore unsupported layers, we will decode them in the next step + if err := icmpParser.DecodeLayers(payload, &decoded); err != nil { + return nil, fmt.Errorf("failed to decode ICMP packet: %w", err) + } + // since we ignore unsupported layers, we need to check if we actually decoded + // anything + if len(decoded) < 1 { + return nil, fmt.Errorf("failed to decode ICMP packet, no layers decoded") + } + icmpResponse.TypeCode = icmpv4Layer.TypeCode + + var icmpPayload []byte + if len(icmpv4Layer.Payload) < 40 { + log.Tracef("Payload length %d is less than 40, extending...\n", len(icmpv4Layer.Payload)) + icmpPayload = make([]byte, 40) + copy(icmpPayload, icmpv4Layer.Payload) + // we have to set this in order for the TCP + // parser to work + icmpPayload[32] = 5 << 4 // set data offset + } else { + icmpPayload = icmpv4Layer.Payload + } + + // a separate parser is needed to decode the inner IP and TCP headers because + // gopacket doesn't support this type of nesting in a single decoder + var innerIPLayer layers.IPv4 + var innerTCPLayer layers.TCP + innerIPParser := gopacket.NewDecodingLayerParser(layers.LayerTypeIPv4, &innerIPLayer, &innerTCPLayer) + if err := innerIPParser.DecodeLayers(icmpPayload, &decoded); err != nil { + return nil, fmt.Errorf("failed to decode inner ICMP payload: %w", err) + } + icmpResponse.InnerSrcIP = innerIPLayer.SrcIP + icmpResponse.InnerDstIP = innerIPLayer.DstIP + icmpResponse.InnerSrcPort = uint16(innerTCPLayer.SrcPort) + icmpResponse.InnerDstPort = uint16(innerTCPLayer.DstPort) + icmpResponse.InnerSeqNum = innerTCPLayer.Seq + + return &icmpResponse, nil +} + +// ICMPMatch checks if an ICMP response matches the expected response +// based on the local and remote IP, port, and sequence number +func ICMPMatch(localIP net.IP, localPort uint16, remoteIP net.IP, remotePort uint16, seqNum uint32, response *ICMPResponse) bool { + return localIP.Equal(response.InnerSrcIP) && + remoteIP.Equal(response.InnerDstIP) && + localPort == response.InnerSrcPort && + remotePort == response.InnerDstPort && + seqNum == response.InnerSeqNum +} diff --git a/pkg/networkpath/traceroute/common/common_test.go b/pkg/networkpath/traceroute/common/common_test.go new file mode 100644 index 0000000000000..aa6f6cfdf24cb --- /dev/null +++ b/pkg/networkpath/traceroute/common/common_test.go @@ -0,0 +1,117 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build test + +package common + +import ( + "net" + "testing" + + "github.com/DataDog/datadog-agent/pkg/networkpath/traceroute/testutils" + "github.com/google/gopacket/layers" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "golang.org/x/net/ipv4" +) + +var ( + srcIP = net.ParseIP("1.2.3.4") + dstIP = net.ParseIP("5.6.7.8") + + innerSrcIP = net.ParseIP("10.0.0.1") + innerDstIP = net.ParseIP("192.168.1.1") +) + +func Test_parseICMP(t *testing.T) { + ipv4Header := testutils.CreateMockIPv4Header(srcIP, dstIP, 1) + icmpLayer := testutils.CreateMockICMPLayer(layers.ICMPv4CodeTTLExceeded) + innerIPv4Layer := testutils.CreateMockIPv4Layer(innerSrcIP, innerDstIP, layers.IPProtocolTCP) + innerTCPLayer := testutils.CreateMockTCPLayer(12345, 443, 28394, 12737, true, true, true) + + tt := []struct { + description string + inHeader *ipv4.Header + inPayload []byte + expected *ICMPResponse + errMsg string + }{ + { + description: "empty IPv4 layer should return an error", + inHeader: &ipv4.Header{}, + inPayload: []byte{}, + expected: nil, + errMsg: "invalid IP header for ICMP packet", + }, + { + description: "missing ICMP layer should return an error", + inHeader: ipv4Header, + inPayload: []byte{}, + expected: nil, + errMsg: "failed to decode ICMP packet", + }, + { + description: "missing inner layers should return an error", + inHeader: ipv4Header, + inPayload: testutils.CreateMockICMPPacket(nil, icmpLayer, nil, nil, false), + expected: nil, + errMsg: "failed to decode inner ICMP payload", + }, + { + description: "ICMP packet with partial TCP header should create icmpResponse", + inHeader: ipv4Header, + inPayload: testutils.CreateMockICMPPacket(nil, icmpLayer, innerIPv4Layer, innerTCPLayer, true), + expected: &ICMPResponse{ + SrcIP: srcIP, + DstIP: dstIP, + InnerSrcIP: innerSrcIP, + InnerDstIP: innerDstIP, + InnerSrcPort: 12345, + InnerDstPort: 443, + InnerSeqNum: 28394, + }, + errMsg: "", + }, + { + description: "full ICMP packet should create icmpResponse", + inHeader: ipv4Header, + inPayload: testutils.CreateMockICMPPacket(nil, icmpLayer, innerIPv4Layer, innerTCPLayer, true), + expected: &ICMPResponse{ + SrcIP: srcIP, + DstIP: dstIP, + InnerSrcIP: innerSrcIP, + InnerDstIP: innerDstIP, + InnerSrcPort: 12345, + InnerDstPort: 443, + InnerSeqNum: 28394, + }, + errMsg: "", + }, + } + + for _, test := range tt { + t.Run(test.description, func(t *testing.T) { + actual, err := ParseICMP(test.inHeader, test.inPayload) + if test.errMsg != "" { + require.Error(t, err) + assert.Contains(t, err.Error(), test.errMsg) + assert.Nil(t, actual) + return + } + require.Nil(t, err) + require.NotNil(t, actual) + // assert.Equal doesn't handle net.IP well + assert.Equal(t, testutils.StructFieldCount(test.expected), testutils.StructFieldCount(actual)) + assert.Truef(t, test.expected.SrcIP.Equal(actual.SrcIP), "mismatch source IPs: expected %s, got %s", test.expected.SrcIP.String(), actual.SrcIP.String()) + assert.Truef(t, test.expected.DstIP.Equal(actual.DstIP), "mismatch dest IPs: expected %s, got %s", test.expected.DstIP.String(), actual.DstIP.String()) + assert.Truef(t, test.expected.InnerSrcIP.Equal(actual.InnerSrcIP), "mismatch inner source IPs: expected %s, got %s", test.expected.InnerSrcIP.String(), actual.InnerSrcIP.String()) + assert.Truef(t, test.expected.InnerDstIP.Equal(actual.InnerDstIP), "mismatch inner dest IPs: expected %s, got %s", test.expected.InnerDstIP.String(), actual.InnerDstIP.String()) + assert.Equal(t, test.expected.InnerSrcPort, actual.InnerSrcPort) + assert.Equal(t, test.expected.InnerDstPort, actual.InnerDstPort) + assert.Equal(t, test.expected.InnerSeqNum, actual.InnerSeqNum) + }) + } +} diff --git a/pkg/networkpath/traceroute/runner/runner.go b/pkg/networkpath/traceroute/runner/runner.go index 9087b66b4eb8a..b8240ee6db3cd 100644 --- a/pkg/networkpath/traceroute/runner/runner.go +++ b/pkg/networkpath/traceroute/runner/runner.go @@ -24,6 +24,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/network" "github.com/DataDog/datadog-agent/pkg/networkpath/payload" + "github.com/DataDog/datadog-agent/pkg/networkpath/traceroute/common" "github.com/DataDog/datadog-agent/pkg/networkpath/traceroute/config" "github.com/DataDog/datadog-agent/pkg/networkpath/traceroute/tcp" "github.com/DataDog/datadog-agent/pkg/process/util" @@ -222,7 +223,7 @@ func (r *Runner) runTCP(cfg config.Config, hname string, target net.IP, maxTTL u return pathResult, nil } -func (r *Runner) processTCPResults(res *tcp.Results, hname string, destinationHost string, destinationPort uint16, destinationIP net.IP) (payload.NetworkPath, error) { +func (r *Runner) processTCPResults(res *common.Results, hname string, destinationHost string, destinationPort uint16, destinationIP net.IP) (payload.NetworkPath, error) { traceroutePath := payload.NetworkPath{ AgentVersion: version.AgentVersion, PathtraceID: payload.NewPathtraceID(), diff --git a/pkg/networkpath/traceroute/tcp/tcpv4.go b/pkg/networkpath/traceroute/tcp/tcpv4.go index 64484f9c0ad60..ca38edf21cf4c 100644 --- a/pkg/networkpath/traceroute/tcp/tcpv4.go +++ b/pkg/networkpath/traceroute/tcp/tcpv4.go @@ -9,8 +9,6 @@ package tcp import ( "net" "time" - - "github.com/google/gopacket/layers" ) type ( @@ -27,26 +25,6 @@ type ( Delay time.Duration // delay between sending packets (not applicable if we go the serial send/receive route) Timeout time.Duration // full timeout for all packets } - - // Results encapsulates a response from the TCP - // traceroute - Results struct { - Source net.IP - SourcePort uint16 - Target net.IP - DstPort uint16 - Hops []*Hop - } - - // Hop encapsulates information about a single - // hop in a TCP traceroute - Hop struct { - IP net.IP - Port uint16 - ICMPType layers.ICMPv4TypeCode - RTT time.Duration - IsDest bool - } ) // Close doesn't to anything yet, but we should diff --git a/pkg/networkpath/traceroute/tcp/tcpv4_unix.go b/pkg/networkpath/traceroute/tcp/tcpv4_unix.go index 32cf7e19ee11e..f5859d056e00e 100644 --- a/pkg/networkpath/traceroute/tcp/tcpv4_unix.go +++ b/pkg/networkpath/traceroute/tcp/tcpv4_unix.go @@ -16,15 +16,16 @@ import ( "golang.org/x/net/ipv4" + "github.com/DataDog/datadog-agent/pkg/networkpath/traceroute/common" "github.com/DataDog/datadog-agent/pkg/util/log" ) // TracerouteSequential runs a traceroute sequentially where a packet is // sent and we wait for a response before sending the next packet -func (t *TCPv4) TracerouteSequential() (*Results, error) { +func (t *TCPv4) TracerouteSequential() (*common.Results, error) { // Get local address for the interface that connects to this // host and store in in the probe - addr, err := localAddrForHost(t.Target, t.DestPort) + addr, err := common.LocalAddrForHost(t.Target, t.DestPort) if err != nil { return nil, fmt.Errorf("failed to get local address for target: %w", err) } @@ -71,7 +72,7 @@ func (t *TCPv4) TracerouteSequential() (*Results, error) { } // hops should be of length # of hops - hops := make([]*Hop, 0, t.MaxTTL-t.MinTTL) + hops := make([]*common.Hop, 0, t.MaxTTL-t.MinTTL) for i := int(t.MinTTL); i <= int(t.MaxTTL); i++ { seqNumber := rand.Uint32() @@ -88,7 +89,7 @@ func (t *TCPv4) TracerouteSequential() (*Results, error) { } } - return &Results{ + return &common.Results{ Source: t.srcIP, SourcePort: t.srcPort, Target: t.Target, @@ -97,7 +98,7 @@ func (t *TCPv4) TracerouteSequential() (*Results, error) { }, nil } -func (t *TCPv4) sendAndReceive(rawIcmpConn *ipv4.RawConn, rawTCPConn *ipv4.RawConn, ttl int, seqNum uint32, timeout time.Duration) (*Hop, error) { +func (t *TCPv4) sendAndReceive(rawIcmpConn *ipv4.RawConn, rawTCPConn *ipv4.RawConn, ttl int, seqNum uint32, timeout time.Duration) (*common.Hop, error) { tcpHeader, tcpPacket, err := createRawTCPSyn(t.srcIP, t.srcPort, t.Target, t.DestPort, seqNum, ttl) if err != nil { log.Errorf("failed to create TCP packet with TTL: %d, error: %s", ttl, err.Error()) @@ -122,7 +123,7 @@ func (t *TCPv4) sendAndReceive(rawIcmpConn *ipv4.RawConn, rawTCPConn *ipv4.RawCo rtt = end.Sub(start) } - return &Hop{ + return &common.Hop{ IP: hopIP, Port: hopPort, ICMPType: icmpType, diff --git a/pkg/networkpath/traceroute/tcp/tcpv4_windows.go b/pkg/networkpath/traceroute/tcp/tcpv4_windows.go index 3067695b0e559..e9eb74cae702f 100644 --- a/pkg/networkpath/traceroute/tcp/tcpv4_windows.go +++ b/pkg/networkpath/traceroute/tcp/tcpv4_windows.go @@ -14,6 +14,7 @@ import ( "golang.org/x/sys/windows" + "github.com/DataDog/datadog-agent/pkg/networkpath/traceroute/common" "github.com/DataDog/datadog-agent/pkg/util/log" ) @@ -67,14 +68,14 @@ func createRawSocket() (*winrawsocket, error) { // TracerouteSequential runs a traceroute sequentially where a packet is // sent and we wait for a response before sending the next packet -func (t *TCPv4) TracerouteSequential() (*Results, error) { +func (t *TCPv4) TracerouteSequential() (*common.Results, error) { log.Debugf("Running traceroute to %+v", t) // Get local address for the interface that connects to this // host and store in in the probe // // TODO: do this once for the probe and hang on to the // listener until we decide to close the probe - addr, err := localAddrForHost(t.Target, t.DestPort) + addr, err := common.LocalAddrForHost(t.Target, t.DestPort) if err != nil { return nil, fmt.Errorf("failed to get local address for target: %w", err) } @@ -87,7 +88,7 @@ func (t *TCPv4) TracerouteSequential() (*Results, error) { } defer rs.close() - hops := make([]*Hop, 0, int(t.MaxTTL-t.MinTTL)+1) + hops := make([]*common.Hop, 0, int(t.MaxTTL-t.MinTTL)+1) for i := int(t.MinTTL); i <= int(t.MaxTTL); i++ { seqNumber := rand.Uint32() @@ -104,7 +105,7 @@ func (t *TCPv4) TracerouteSequential() (*Results, error) { } } - return &Results{ + return &common.Results{ Source: t.srcIP, SourcePort: t.srcPort, Target: t.Target, @@ -113,7 +114,7 @@ func (t *TCPv4) TracerouteSequential() (*Results, error) { }, nil } -func (t *TCPv4) sendAndReceive(rs *winrawsocket, ttl int, seqNum uint32, timeout time.Duration) (*Hop, error) { +func (t *TCPv4) sendAndReceive(rs *winrawsocket, ttl int, seqNum uint32, timeout time.Duration) (*common.Hop, error) { _, buffer, _, err := createRawTCPSynBuffer(t.srcIP, t.srcPort, t.Target, t.DestPort, seqNum, ttl) if err != nil { log.Errorf("failed to create TCP packet with TTL: %d, error: %s", ttl, err.Error()) @@ -138,7 +139,7 @@ func (t *TCPv4) sendAndReceive(rs *winrawsocket, ttl int, seqNum uint32, timeout rtt = end.Sub(start) } - return &Hop{ + return &common.Hop{ IP: hopIP, Port: hopPort, ICMPType: icmpType, diff --git a/pkg/networkpath/traceroute/tcp/utils.go b/pkg/networkpath/traceroute/tcp/utils.go index ae7d507f23940..3bd9e437e90c7 100644 --- a/pkg/networkpath/traceroute/tcp/utils.go +++ b/pkg/networkpath/traceroute/tcp/utils.go @@ -8,46 +8,14 @@ package tcp import ( "fmt" "net" - "strconv" + "syscall" - "github.com/DataDog/datadog-agent/pkg/util/log" "github.com/google/gopacket" "github.com/google/gopacket/layers" "golang.org/x/net/ipv4" ) -const ( - // ACK is the acknowledge TCP flag - ACK = 1 << 4 - // RST is the reset TCP flag - RST = 1 << 2 - // SYN is the synchronization TCP flag - SYN = 1 << 1 - - // IPProtoICMP is the ICMP protocol number - IPProtoICMP = 1 - // IPProtoTCP is the TCP protocol number - IPProtoTCP = 6 -) - type ( - // canceledError is sent when a listener - // is canceled - canceledError string - - // icmpResponse encapsulates the data from - // an ICMP response packet needed for matching - icmpResponse struct { - SrcIP net.IP - DstIP net.IP - TypeCode layers.ICMPv4TypeCode - InnerSrcIP net.IP - InnerDstIP net.IP - InnerSrcPort uint16 - InnerDstPort uint16 - InnerSeqNum uint32 - } - // tcpResponse encapsulates the data from a // TCP response needed for matching tcpResponse struct { @@ -57,25 +25,6 @@ type ( } ) -func localAddrForHost(destIP net.IP, destPort uint16) (*net.UDPAddr, error) { - // this is a quick way to get the local address for connecting to the host - // using UDP as the network type to avoid actually creating a connection to - // the host, just get the OS to give us a local IP and local ephemeral port - conn, err := net.Dial("udp4", net.JoinHostPort(destIP.String(), strconv.Itoa(int(destPort)))) - if err != nil { - return nil, err - } - defer conn.Close() - localAddr := conn.LocalAddr() - - localUDPAddr, ok := localAddr.(*net.UDPAddr) - if !ok { - return nil, fmt.Errorf("invalid address type for %s: want %T, got %T", localAddr, localUDPAddr, localAddr) - } - - return localUDPAddr, nil -} - // reserveLocalPort reserves an ephemeral TCP port // and returns both the listener and port because the // listener should be held until the port is no longer @@ -145,64 +94,6 @@ func createRawTCPSynBuffer(sourceIP net.IP, sourcePort uint16, destIP net.IP, de return &ipHdr, packet, 20, nil } -// parseICMP takes in an IPv4 header and payload and tries to convert to an ICMP -// message, it returns all the fields from the packet we need to validate it's the response -// we're looking for -func parseICMP(header *ipv4.Header, payload []byte) (*icmpResponse, error) { - // in addition to parsing, it is probably not a bad idea to do some validation - // so we can ignore the ICMP packets we don't care about - icmpResponse := icmpResponse{} - - if header.Protocol != IPProtoICMP || header.Version != 4 || - header.Src == nil || header.Dst == nil { - return nil, fmt.Errorf("invalid IP header for ICMP packet: %+v", header) - } - icmpResponse.SrcIP = header.Src - icmpResponse.DstIP = header.Dst - - var icmpv4Layer layers.ICMPv4 - decoded := []gopacket.LayerType{} - icmpParser := gopacket.NewDecodingLayerParser(layers.LayerTypeICMPv4, &icmpv4Layer) - icmpParser.IgnoreUnsupported = true // ignore unsupported layers, we will decode them in the next step - if err := icmpParser.DecodeLayers(payload, &decoded); err != nil { - return nil, fmt.Errorf("failed to decode ICMP packet: %w", err) - } - // since we ignore unsupported layers, we need to check if we actually decoded - // anything - if len(decoded) < 1 { - return nil, fmt.Errorf("failed to decode ICMP packet, no layers decoded") - } - icmpResponse.TypeCode = icmpv4Layer.TypeCode - - var icmpPayload []byte - if len(icmpv4Layer.Payload) < 40 { - log.Tracef("Payload length %d is less than 40, extending...\n", len(icmpv4Layer.Payload)) - icmpPayload = make([]byte, 40) - copy(icmpPayload, icmpv4Layer.Payload) - // we have to set this in order for the TCP - // parser to work - icmpPayload[32] = 5 << 4 // set data offset - } else { - icmpPayload = icmpv4Layer.Payload - } - - // a separate parser is needed to decode the inner IP and TCP headers because - // gopacket doesn't support this type of nesting in a single decoder - var innerIPLayer layers.IPv4 - var innerTCPLayer layers.TCP - innerIPParser := gopacket.NewDecodingLayerParser(layers.LayerTypeIPv4, &innerIPLayer, &innerTCPLayer) - if err := innerIPParser.DecodeLayers(icmpPayload, &decoded); err != nil { - return nil, fmt.Errorf("failed to decode inner ICMP payload: %w", err) - } - icmpResponse.InnerSrcIP = innerIPLayer.SrcIP - icmpResponse.InnerDstIP = innerIPLayer.DstIP - icmpResponse.InnerSrcPort = uint16(innerTCPLayer.SrcPort) - icmpResponse.InnerDstPort = uint16(innerTCPLayer.DstPort) - icmpResponse.InnerSeqNum = innerTCPLayer.Seq - - return &icmpResponse, nil -} - type tcpParser struct { layer layers.TCP decoded []gopacket.LayerType @@ -216,7 +107,7 @@ func newTCPParser() *tcpParser { } func (tp *tcpParser) parseTCP(header *ipv4.Header, payload []byte) (*tcpResponse, error) { - if header.Protocol != IPProtoTCP || header.Version != 4 || + if header.Protocol != syscall.IPPROTO_TCP || header.Version != 4 || header.Src == nil || header.Dst == nil { return nil, fmt.Errorf("invalid IP header for TCP packet: %+v", header) } @@ -236,14 +127,6 @@ func (tp *tcpParser) parseTCP(header *ipv4.Header, payload []byte) (*tcpResponse return resp, nil } -func icmpMatch(localIP net.IP, localPort uint16, remoteIP net.IP, remotePort uint16, seqNum uint32, response *icmpResponse) bool { - return localIP.Equal(response.InnerSrcIP) && - remoteIP.Equal(response.InnerDstIP) && - localPort == response.InnerSrcPort && - remotePort == response.InnerDstPort && - seqNum == response.InnerSeqNum -} - func tcpMatch(localIP net.IP, localPort uint16, remoteIP net.IP, remotePort uint16, seqNum uint32, response *tcpResponse) bool { flagsCheck := (response.TCPResponse.SYN && response.TCPResponse.ACK) || response.TCPResponse.RST sourcePort := uint16(response.TCPResponse.SrcPort) @@ -256,7 +139,3 @@ func tcpMatch(localIP net.IP, localPort uint16, remoteIP net.IP, remotePort uint seqNum == response.TCPResponse.Ack-1 && flagsCheck } - -func (c canceledError) Error() string { - return string(c) -} diff --git a/pkg/networkpath/traceroute/tcp/utils_test.go b/pkg/networkpath/traceroute/tcp/utils_test.go index d79cda12ac5da..5b344df71ec16 100644 --- a/pkg/networkpath/traceroute/tcp/utils_test.go +++ b/pkg/networkpath/traceroute/tcp/utils_test.go @@ -10,15 +10,14 @@ package tcp import ( "fmt" "net" - "reflect" "runtime" "testing" - "github.com/google/gopacket" - "github.com/google/gopacket/layers" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "golang.org/x/net/ipv4" + + "github.com/DataDog/datadog-agent/pkg/networkpath/traceroute/testutils" ) var ( @@ -113,102 +112,12 @@ func Test_createRawTCPSynBuffer(t *testing.T) { assert.Equal(t, expectedPktBytes, pktBytes) } -func Test_parseICMP(t *testing.T) { - ipv4Header := createMockIPv4Header(srcIP, dstIP, 1) - icmpLayer := createMockICMPLayer(layers.ICMPv4CodeTTLExceeded) - innerIPv4Layer := createMockIPv4Layer(innerSrcIP, innerDstIP, layers.IPProtocolTCP) - innerTCPLayer := createMockTCPLayer(12345, 443, 28394, 12737, true, true, true) - - tt := []struct { - description string - inHeader *ipv4.Header - inPayload []byte - expected *icmpResponse - errMsg string - }{ - { - description: "empty IPv4 layer should return an error", - inHeader: &ipv4.Header{}, - inPayload: []byte{}, - expected: nil, - errMsg: "invalid IP header for ICMP packet", - }, - { - description: "missing ICMP layer should return an error", - inHeader: ipv4Header, - inPayload: []byte{}, - expected: nil, - errMsg: "failed to decode ICMP packet", - }, - { - description: "missing inner layers should return an error", - inHeader: ipv4Header, - inPayload: createMockICMPPacket(nil, icmpLayer, nil, nil, false), - expected: nil, - errMsg: "failed to decode inner ICMP payload", - }, - { - description: "ICMP packet with partial TCP header should create icmpResponse", - inHeader: ipv4Header, - inPayload: createMockICMPPacket(nil, icmpLayer, innerIPv4Layer, innerTCPLayer, true), - expected: &icmpResponse{ - SrcIP: srcIP, - DstIP: dstIP, - InnerSrcIP: innerSrcIP, - InnerDstIP: innerDstIP, - InnerSrcPort: 12345, - InnerDstPort: 443, - InnerSeqNum: 28394, - }, - errMsg: "", - }, - { - description: "full ICMP packet should create icmpResponse", - inHeader: ipv4Header, - inPayload: createMockICMPPacket(nil, icmpLayer, innerIPv4Layer, innerTCPLayer, true), - expected: &icmpResponse{ - SrcIP: srcIP, - DstIP: dstIP, - InnerSrcIP: innerSrcIP, - InnerDstIP: innerDstIP, - InnerSrcPort: 12345, - InnerDstPort: 443, - InnerSeqNum: 28394, - }, - errMsg: "", - }, - } - - for _, test := range tt { - t.Run(test.description, func(t *testing.T) { - actual, err := parseICMP(test.inHeader, test.inPayload) - if test.errMsg != "" { - require.Error(t, err) - assert.Contains(t, err.Error(), test.errMsg) - assert.Nil(t, actual) - return - } - require.Nil(t, err) - require.NotNil(t, actual) - // assert.Equal doesn't handle net.IP well - assert.Equal(t, structFieldCount(test.expected), structFieldCount(actual)) - assert.Truef(t, test.expected.SrcIP.Equal(actual.SrcIP), "mismatch source IPs: expected %s, got %s", test.expected.SrcIP.String(), actual.SrcIP.String()) - assert.Truef(t, test.expected.DstIP.Equal(actual.DstIP), "mismatch dest IPs: expected %s, got %s", test.expected.DstIP.String(), actual.DstIP.String()) - assert.Truef(t, test.expected.InnerSrcIP.Equal(actual.InnerSrcIP), "mismatch inner source IPs: expected %s, got %s", test.expected.InnerSrcIP.String(), actual.InnerSrcIP.String()) - assert.Truef(t, test.expected.InnerDstIP.Equal(actual.InnerDstIP), "mismatch inner dest IPs: expected %s, got %s", test.expected.InnerDstIP.String(), actual.InnerDstIP.String()) - assert.Equal(t, test.expected.InnerSrcPort, actual.InnerSrcPort) - assert.Equal(t, test.expected.InnerDstPort, actual.InnerDstPort) - assert.Equal(t, test.expected.InnerSeqNum, actual.InnerSeqNum) - }) - } -} - func Test_parseTCP(t *testing.T) { - ipv4Header := createMockIPv4Header(srcIP, dstIP, 6) // 6 is TCP - tcpLayer := createMockTCPLayer(12345, 443, 28394, 12737, true, true, true) + ipv4Header := testutils.CreateMockIPv4Header(srcIP, dstIP, 6) // 6 is TCP + tcpLayer := testutils.CreateMockTCPLayer(12345, 443, 28394, 12737, true, true, true) // full packet - encodedTCPLayer, fullTCPPacket := createMockTCPPacket(ipv4Header, tcpLayer, false) + encodedTCPLayer, fullTCPPacket := testutils.CreateMockTCPPacket(ipv4Header, tcpLayer, false) tt := []struct { description string @@ -257,7 +166,7 @@ func Test_parseTCP(t *testing.T) { require.Nil(t, err) require.NotNil(t, actual) // assert.Equal doesn't handle net.IP well - assert.Equal(t, structFieldCount(test.expected), structFieldCount(actual)) + assert.Equal(t, testutils.StructFieldCount(test.expected), testutils.StructFieldCount(actual)) assert.Truef(t, test.expected.SrcIP.Equal(actual.SrcIP), "mismatch source IPs: expected %s, got %s", test.expected.SrcIP.String(), actual.SrcIP.String()) assert.Truef(t, test.expected.DstIP.Equal(actual.DstIP), "mismatch dest IPs: expected %s, got %s", test.expected.DstIP.String(), actual.DstIP.String()) assert.Equal(t, test.expected.TCPResponse, actual.TCPResponse) @@ -266,11 +175,11 @@ func Test_parseTCP(t *testing.T) { } func BenchmarkParseTCP(b *testing.B) { - ipv4Header := createMockIPv4Header(srcIP, dstIP, 6) // 6 is TCP - tcpLayer := createMockTCPLayer(12345, 443, 28394, 12737, true, true, true) + ipv4Header := testutils.CreateMockIPv4Header(srcIP, dstIP, 6) // 6 is TCP + tcpLayer := testutils.CreateMockTCPLayer(12345, 443, 28394, 12737, true, true, true) // full packet - _, fullTCPPacket := createMockTCPPacket(ipv4Header, tcpLayer, false) + _, fullTCPPacket := testutils.CreateMockTCPPacket(ipv4Header, tcpLayer, false) tp := newTCPParser() @@ -282,129 +191,3 @@ func BenchmarkParseTCP(b *testing.B) { } } } - -func createMockIPv4Header(srcIP, dstIP net.IP, protocol int) *ipv4.Header { - return &ipv4.Header{ - Version: 4, - Src: srcIP, - Dst: dstIP, - Protocol: protocol, - TTL: 64, - Len: 8, - } -} - -func createMockICMPPacket(ipLayer *layers.IPv4, icmpLayer *layers.ICMPv4, innerIP *layers.IPv4, innerTCP *layers.TCP, partialTCPHeader bool) []byte { - innerBuf := gopacket.NewSerializeBuffer() - opts := gopacket.SerializeOptions{FixLengths: true, ComputeChecksums: true} - - innerLayers := make([]gopacket.SerializableLayer, 0, 2) - if innerIP != nil { - innerLayers = append(innerLayers, innerIP) - } - if innerTCP != nil { - innerLayers = append(innerLayers, innerTCP) - if innerIP != nil { - innerTCP.SetNetworkLayerForChecksum(innerIP) - } - } - - gopacket.SerializeLayers(innerBuf, opts, - innerLayers..., - ) - payload := innerBuf.Bytes() - - // if partialTCP is set, truncate - // the payload to include only the - // first 8 bytes of the TCP header - if partialTCPHeader { - payload = payload[:32] - } - - buf := gopacket.NewSerializeBuffer() - gopacket.SerializeLayers(buf, opts, - icmpLayer, - gopacket.Payload(payload), - ) - - icmpBytes := buf.Bytes() - if ipLayer == nil { - return icmpBytes - } - - buf = gopacket.NewSerializeBuffer() - gopacket.SerializeLayers(buf, opts, - ipLayer, - gopacket.Payload(icmpBytes), - ) - - return buf.Bytes() -} - -func createMockTCPPacket(ipHeader *ipv4.Header, tcpLayer *layers.TCP, includeHeader bool) (*layers.TCP, []byte) { - ipLayer := &layers.IPv4{ - Version: 4, - SrcIP: ipHeader.Src, - DstIP: ipHeader.Dst, - Protocol: layers.IPProtocol(ipHeader.Protocol), - TTL: 64, - Length: 8, - } - tcpLayer.SetNetworkLayerForChecksum(ipLayer) - buf := gopacket.NewSerializeBuffer() - opts := gopacket.SerializeOptions{FixLengths: true, ComputeChecksums: true} - if includeHeader { - gopacket.SerializeLayers(buf, opts, - ipLayer, - tcpLayer, - ) - } else { - gopacket.SerializeLayers(buf, opts, - tcpLayer, - ) - } - - pkt := gopacket.NewPacket(buf.Bytes(), layers.LayerTypeTCP, gopacket.Default) - - // return encoded TCP layer here - return pkt.Layer(layers.LayerTypeTCP).(*layers.TCP), buf.Bytes() -} - -func createMockIPv4Layer(srcIP, dstIP net.IP, protocol layers.IPProtocol) *layers.IPv4 { - return &layers.IPv4{ - SrcIP: srcIP, - DstIP: dstIP, - Version: 4, - Protocol: protocol, - } -} - -func createMockICMPLayer(typeCode layers.ICMPv4TypeCode) *layers.ICMPv4 { - return &layers.ICMPv4{ - TypeCode: typeCode, - } -} - -func createMockTCPLayer(srcPort uint16, dstPort uint16, seqNum uint32, ackNum uint32, syn bool, ack bool, rst bool) *layers.TCP { - return &layers.TCP{ - SrcPort: layers.TCPPort(srcPort), - DstPort: layers.TCPPort(dstPort), - Seq: seqNum, - Ack: ackNum, - SYN: syn, - ACK: ack, - RST: rst, - } -} - -func structFieldCount(v interface{}) int { - val := reflect.ValueOf(v) - if val.Kind() == reflect.Ptr { - val = val.Elem() - } - if val.Kind() != reflect.Struct { - return -1 - } - - return val.NumField() -} diff --git a/pkg/networkpath/traceroute/tcp/utils_unix.go b/pkg/networkpath/traceroute/tcp/utils_unix.go index 2a52e5f8bea88..4fd1b2e4b251d 100644 --- a/pkg/networkpath/traceroute/tcp/utils_unix.go +++ b/pkg/networkpath/traceroute/tcp/utils_unix.go @@ -14,6 +14,7 @@ import ( "sync" "time" + "github.com/DataDog/datadog-agent/pkg/networkpath/traceroute/common" "github.com/DataDog/datadog-agent/pkg/util/log" "github.com/google/gopacket/layers" "go.uber.org/multierr" @@ -68,8 +69,8 @@ func listenPackets(icmpConn rawConnWrapper, tcpConn rawConnWrapper, timeout time wg.Wait() if tcpErr != nil && icmpErr != nil { - _, tcpCanceled := tcpErr.(canceledError) - _, icmpCanceled := icmpErr.(canceledError) + _, tcpCanceled := tcpErr.(common.CanceledError) + _, icmpCanceled := icmpErr.(common.CanceledError) if icmpCanceled && tcpCanceled { log.Trace("timed out waiting for responses") return net.IP{}, 0, 0, time.Time{}, nil @@ -103,7 +104,7 @@ func handlePackets(ctx context.Context, conn rawConnWrapper, listener string, lo for { select { case <-ctx.Done(): - return net.IP{}, 0, 0, time.Time{}, canceledError("listener canceled") + return net.IP{}, 0, 0, time.Time{}, common.CanceledError("listener canceled") default: } now := time.Now() @@ -127,12 +128,12 @@ func handlePackets(ctx context.Context, conn rawConnWrapper, listener string, lo // TODO: remove listener constraint and parse all packets // in the same function return a succinct struct here if listener == "icmp" { - icmpResponse, err := parseICMP(header, packet) + icmpResponse, err := common.ParseICMP(header, packet) if err != nil { log.Tracef("failed to parse ICMP packet: %s", err) continue } - if icmpMatch(localIP, localPort, remoteIP, remotePort, seqNum, icmpResponse) { + if common.ICMPMatch(localIP, localPort, remoteIP, remotePort, seqNum, icmpResponse) { return icmpResponse.SrcIP, 0, icmpResponse.TypeCode, received, nil } } else if listener == "tcp" { diff --git a/pkg/networkpath/traceroute/tcp/utils_unix_test.go b/pkg/networkpath/traceroute/tcp/utils_unix_test.go index 731f5affe1380..db78310723d28 100644 --- a/pkg/networkpath/traceroute/tcp/utils_unix_test.go +++ b/pkg/networkpath/traceroute/tcp/utils_unix_test.go @@ -19,6 +19,8 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "golang.org/x/net/ipv4" + + "github.com/DataDog/datadog-agent/pkg/networkpath/traceroute/testutils" ) type ( @@ -40,7 +42,7 @@ type ( ) func Test_handlePackets(t *testing.T) { - _, tcpBytes := createMockTCPPacket(createMockIPv4Header(dstIP, srcIP, 6), createMockTCPLayer(443, 12345, 28394, 28395, true, true, true), false) + _, tcpBytes := testutils.CreateMockTCPPacket(testutils.CreateMockIPv4Header(dstIP, srcIP, 6), testutils.CreateMockTCPLayer(443, 12345, 28394, 28395, true, true, true), false) tt := []struct { description string @@ -120,8 +122,8 @@ func Test_handlePackets(t *testing.T) { description: "successful ICMP parsing returns IP, port, and type code", ctxTimeout: 500 * time.Millisecond, conn: &mockRawConn{ - header: createMockIPv4Header(srcIP, dstIP, 1), - payload: createMockICMPPacket(nil, createMockICMPLayer(layers.ICMPv4CodeTTLExceeded), createMockIPv4Layer(innerSrcIP, innerDstIP, layers.IPProtocolTCP), createMockTCPLayer(12345, 443, 28394, 12737, true, true, true), false), + header: testutils.CreateMockIPv4Header(srcIP, dstIP, 1), + payload: testutils.CreateMockICMPPacket(nil, testutils.CreateMockICMPLayer(layers.ICMPv4CodeTTLExceeded), testutils.CreateMockIPv4Layer(innerSrcIP, innerDstIP, layers.IPProtocolTCP), testutils.CreateMockTCPLayer(12345, 443, 28394, 12737, true, true, true), false), }, localIP: innerSrcIP, localPort: 12345, @@ -137,7 +139,7 @@ func Test_handlePackets(t *testing.T) { description: "successful TCP parsing returns IP, port, and type code", ctxTimeout: 500 * time.Millisecond, conn: &mockRawConn{ - header: createMockIPv4Header(dstIP, srcIP, 6), + header: testutils.CreateMockIPv4Header(dstIP, srcIP, 6), payload: tcpBytes, }, localIP: srcIP, diff --git a/pkg/networkpath/traceroute/tcp/utils_windows.go b/pkg/networkpath/traceroute/tcp/utils_windows.go index 077495f43203e..483167109b6e4 100644 --- a/pkg/networkpath/traceroute/tcp/utils_windows.go +++ b/pkg/networkpath/traceroute/tcp/utils_windows.go @@ -16,6 +16,7 @@ import ( "golang.org/x/net/ipv4" "golang.org/x/sys/windows" + "github.com/DataDog/datadog-agent/pkg/networkpath/traceroute/common" "github.com/DataDog/datadog-agent/pkg/util/log" "github.com/google/gopacket/layers" ) @@ -49,7 +50,7 @@ func (w *winrawsocket) listenPackets(timeout time.Duration, localIP net.IP, loca wg.Wait() if icmpErr != nil { - _, icmpCanceled := icmpErr.(canceledError) + _, icmpCanceled := icmpErr.(common.CanceledError) if icmpCanceled { log.Trace("timed out waiting for responses") return net.IP{}, 0, 0, time.Time{}, nil @@ -74,7 +75,7 @@ func (w *winrawsocket) handlePackets(ctx context.Context, localIP net.IP, localP for { select { case <-ctx.Done(): - return net.IP{}, 0, 0, time.Time{}, canceledError("listener canceled") + return net.IP{}, 0, 0, time.Time{}, common.CanceledError("listener canceled") default: } @@ -110,12 +111,12 @@ func (w *winrawsocket) handlePackets(ctx context.Context, localIP net.IP, localP // TODO: remove listener constraint and parse all packets // in the same function return a succinct struct here if header.Protocol == windows.IPPROTO_ICMP { - icmpResponse, err := parseICMP(header, packet) + icmpResponse, err := common.ParseICMP(header, packet) if err != nil { log.Tracef("failed to parse ICMP packet: %s", err.Error()) continue } - if icmpMatch(localIP, localPort, remoteIP, remotePort, seqNum, icmpResponse) { + if common.ICMPMatch(localIP, localPort, remoteIP, remotePort, seqNum, icmpResponse) { return icmpResponse.SrcIP, 0, icmpResponse.TypeCode, received, nil } } else if header.Protocol == windows.IPPROTO_TCP { diff --git a/pkg/networkpath/traceroute/tcp/utils_windows_test.go b/pkg/networkpath/traceroute/tcp/utils_windows_test.go index 6e5b2a1c81ba4..6fbd7d0cc860b 100644 --- a/pkg/networkpath/traceroute/tcp/utils_windows_test.go +++ b/pkg/networkpath/traceroute/tcp/utils_windows_test.go @@ -18,6 +18,7 @@ import ( "golang.org/x/sys/windows" + "github.com/DataDog/datadog-agent/pkg/networkpath/traceroute/testutils" "github.com/google/gopacket/layers" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -34,7 +35,7 @@ type ( ) func Test_handlePackets(t *testing.T) { - _, tcpBytes := createMockTCPPacket(createMockIPv4Header(dstIP, srcIP, 6), createMockTCPLayer(443, 12345, 28394, 28395, true, true, true), true) + _, tcpBytes := testutils.CreateMockTCPPacket(testutils.CreateMockIPv4Header(dstIP, srcIP, 6), testutils.CreateMockTCPLayer(443, 12345, 28394, 28395, true, true, true), true) tt := []struct { description string @@ -92,7 +93,7 @@ func Test_handlePackets(t *testing.T) { description: "successful ICMP parsing returns IP, port, and type code", ctxTimeout: 500 * time.Millisecond, conn: &mockRawConn{ - payload: createMockICMPPacket(createMockIPv4Layer(srcIP, dstIP, layers.IPProtocolICMPv4), createMockICMPLayer(layers.ICMPv4CodeTTLExceeded), createMockIPv4Layer(innerSrcIP, innerDstIP, layers.IPProtocolTCP), createMockTCPLayer(12345, 443, 28394, 12737, true, true, true), false), + payload: testutils.CreateMockICMPPacket(testutils.CreateMockIPv4Layer(srcIP, dstIP, layers.IPProtocolICMPv4), testutils.CreateMockICMPLayer(layers.ICMPv4CodeTTLExceeded), testutils.CreateMockIPv4Layer(innerSrcIP, innerDstIP, layers.IPProtocolTCP), testutils.CreateMockTCPLayer(12345, 443, 28394, 12737, true, true, true), false), }, localIP: innerSrcIP, localPort: 12345, diff --git a/pkg/networkpath/traceroute/testutils/doc.go b/pkg/networkpath/traceroute/testutils/doc.go new file mode 100644 index 0000000000000..2a31e324c585c --- /dev/null +++ b/pkg/networkpath/traceroute/testutils/doc.go @@ -0,0 +1,7 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package testutils contains utilities for testing traceroute code +package testutils diff --git a/pkg/networkpath/traceroute/testutils/testutils.go b/pkg/networkpath/traceroute/testutils/testutils.go new file mode 100644 index 0000000000000..e412d8971372b --- /dev/null +++ b/pkg/networkpath/traceroute/testutils/testutils.go @@ -0,0 +1,150 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build test + +package testutils + +import ( + "net" + "reflect" + + "github.com/google/gopacket" + "github.com/google/gopacket/layers" + "golang.org/x/net/ipv4" +) + +// CreateMockIPv4Header creates a mock IPv4 header for testing +func CreateMockIPv4Header(srcIP, dstIP net.IP, protocol int) *ipv4.Header { + return &ipv4.Header{ + Version: 4, + Src: srcIP, + Dst: dstIP, + Protocol: protocol, + TTL: 64, + Len: 8, + } +} + +// CreateMockICMPPacket creates a mock ICMP packet for testing +func CreateMockICMPPacket(ipLayer *layers.IPv4, icmpLayer *layers.ICMPv4, innerIP *layers.IPv4, innerTCP *layers.TCP, partialTCPHeader bool) []byte { + innerBuf := gopacket.NewSerializeBuffer() + opts := gopacket.SerializeOptions{FixLengths: true, ComputeChecksums: true} + + innerLayers := make([]gopacket.SerializableLayer, 0, 2) + if innerIP != nil { + innerLayers = append(innerLayers, innerIP) + } + if innerTCP != nil { + innerLayers = append(innerLayers, innerTCP) + if innerIP != nil { + innerTCP.SetNetworkLayerForChecksum(innerIP) // nolint: errcheck + } + } + + gopacket.SerializeLayers(innerBuf, opts, // nolint: errcheck + innerLayers..., + ) + payload := innerBuf.Bytes() + + // if partialTCP is set, truncate + // the payload to include only the + // first 8 bytes of the TCP header + if partialTCPHeader { + payload = payload[:32] + } + + buf := gopacket.NewSerializeBuffer() + gopacket.SerializeLayers(buf, opts, // nolint: errcheck + icmpLayer, + gopacket.Payload(payload), + ) + + icmpBytes := buf.Bytes() + if ipLayer == nil { + return icmpBytes + } + + buf = gopacket.NewSerializeBuffer() + gopacket.SerializeLayers(buf, opts, // nolint: errcheck + ipLayer, + gopacket.Payload(icmpBytes), + ) + + return buf.Bytes() +} + +// CreateMockTCPPacket creates a mock TCP packet for testing +func CreateMockTCPPacket(ipHeader *ipv4.Header, tcpLayer *layers.TCP, includeHeader bool) (*layers.TCP, []byte) { + ipLayer := &layers.IPv4{ + Version: 4, + SrcIP: ipHeader.Src, + DstIP: ipHeader.Dst, + Protocol: layers.IPProtocol(ipHeader.Protocol), + TTL: 64, + Length: 8, + } + tcpLayer.SetNetworkLayerForChecksum(ipLayer) // nolint: errcheck + buf := gopacket.NewSerializeBuffer() + opts := gopacket.SerializeOptions{FixLengths: true, ComputeChecksums: true} + if includeHeader { + gopacket.SerializeLayers(buf, opts, // nolint: errcheck + ipLayer, + tcpLayer, + ) + } else { + gopacket.SerializeLayers(buf, opts, // nolint: errcheck + tcpLayer, + ) + } + + pkt := gopacket.NewPacket(buf.Bytes(), layers.LayerTypeTCP, gopacket.Default) + + // return encoded TCP layer here + return pkt.Layer(layers.LayerTypeTCP).(*layers.TCP), buf.Bytes() +} + +// CreateMockIPv4Layer creates a mock IPv4 layer for testing +func CreateMockIPv4Layer(srcIP, dstIP net.IP, protocol layers.IPProtocol) *layers.IPv4 { + return &layers.IPv4{ + SrcIP: srcIP, + DstIP: dstIP, + Version: 4, + Protocol: protocol, + } +} + +// CreateMockICMPLayer creates a mock ICMP layer for testing +func CreateMockICMPLayer(typeCode layers.ICMPv4TypeCode) *layers.ICMPv4 { + return &layers.ICMPv4{ + TypeCode: typeCode, + } +} + +// CreateMockTCPLayer creates a mock TCP layer for testing +func CreateMockTCPLayer(srcPort uint16, dstPort uint16, seqNum uint32, ackNum uint32, syn bool, ack bool, rst bool) *layers.TCP { + return &layers.TCP{ + SrcPort: layers.TCPPort(srcPort), + DstPort: layers.TCPPort(dstPort), + Seq: seqNum, + Ack: ackNum, + SYN: syn, + ACK: ack, + RST: rst, + } +} + +// StructFieldCount returns the number of fields in a struct +func StructFieldCount(v interface{}) int { + val := reflect.ValueOf(v) + if val.Kind() == reflect.Ptr { + val = val.Elem() + } + if val.Kind() != reflect.Struct { + return -1 + } + + return val.NumField() +} From 5ff3a47729a74ee546d1bde329c6d3e324afb483 Mon Sep 17 00:00:00 2001 From: Sylvain Baubeau Date: Tue, 10 Dec 2024 16:57:46 +0100 Subject: [PATCH 367/439] [CWS] Move tags from cgroup to tags resolver (#31874) --- pkg/security/resolvers/cgroup/model/model.go | 30 +---------- pkg/security/resolvers/cgroup/model/types.go | 5 ++ pkg/security/resolvers/sbom/resolver.go | 11 ++-- .../resolvers/sbom/resolver_unsupported.go | 3 +- pkg/security/resolvers/tags/resolver.go | 2 + pkg/security/resolvers/tags/resolver_linux.go | 52 +++++++++++++------ pkg/security/security_profile/dump/manager.go | 3 +- .../security_profile/profile/manager.go | 33 ++++++------ .../security_profile/profile/manager_test.go | 12 +++-- .../security_profile/profile/profile.go | 3 +- .../tests/activity_tree_test.go | 13 +++-- 11 files changed, 88 insertions(+), 79 deletions(-) diff --git a/pkg/security/resolvers/cgroup/model/model.go b/pkg/security/resolvers/cgroup/model/model.go index c916e45477876..1bde78216970f 100644 --- a/pkg/security/resolvers/cgroup/model/model.go +++ b/pkg/security/resolvers/cgroup/model/model.go @@ -15,7 +15,6 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" "github.com/DataDog/datadog-agent/pkg/security/secl/model" - "github.com/DataDog/datadog-agent/pkg/security/utils" ) // CacheEntry cgroup resolver cache entry @@ -23,9 +22,8 @@ type CacheEntry struct { model.CGroupContext model.ContainerContext sync.RWMutex - Deleted *atomic.Bool - WorkloadSelector WorkloadSelector - PIDs map[uint32]bool + Deleted *atomic.Bool + PIDs map[uint32]bool } // NewCacheEntry returns a new instance of a CacheEntry @@ -78,27 +76,3 @@ func (cgce *CacheEntry) AddPID(pid uint32) { cgce.PIDs[pid] = true } - -// SetTags sets the tags for the provided workload -func (cgce *CacheEntry) SetTags(tags []string) { - cgce.Lock() - defer cgce.Unlock() - - cgce.Tags = tags - cgce.WorkloadSelector.Image = utils.GetTagValue("image_name", tags) - cgce.WorkloadSelector.Tag = utils.GetTagValue("image_tag", tags) - if len(cgce.WorkloadSelector.Image) != 0 && len(cgce.WorkloadSelector.Tag) == 0 { - cgce.WorkloadSelector.Tag = "latest" - } -} - -// GetWorkloadSelectorCopy returns a copy of the workload selector of this cgroup -func (cgce *CacheEntry) GetWorkloadSelectorCopy() *WorkloadSelector { - cgce.Lock() - defer cgce.Unlock() - - return &WorkloadSelector{ - Image: cgce.WorkloadSelector.Image, - Tag: cgce.WorkloadSelector.Tag, - } -} diff --git a/pkg/security/resolvers/cgroup/model/types.go b/pkg/security/resolvers/cgroup/model/types.go index d07f94be04121..09a9a66473aa6 100644 --- a/pkg/security/resolvers/cgroup/model/types.go +++ b/pkg/security/resolvers/cgroup/model/types.go @@ -61,3 +61,8 @@ func (ws WorkloadSelector) ToTags() []string { "image_tag:" + ws.Tag, } } + +// Copy returns a copy of the selector +func (ws WorkloadSelector) Copy() *WorkloadSelector { + return &ws +} diff --git a/pkg/security/resolvers/sbom/resolver.go b/pkg/security/resolvers/sbom/resolver.go index d0a290975d6df..e282dbd6f23d9 100644 --- a/pkg/security/resolvers/sbom/resolver.go +++ b/pkg/security/resolvers/sbom/resolver.go @@ -33,6 +33,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/config" "github.com/DataDog/datadog-agent/pkg/security/metrics" cgroupModel "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup/model" + "github.com/DataDog/datadog-agent/pkg/security/resolvers/tags" "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" "github.com/DataDog/datadog-agent/pkg/security/secl/model" "github.com/DataDog/datadog-agent/pkg/security/seclog" @@ -486,15 +487,15 @@ func (r *Resolver) triggerScan(sbom *SBOM) { } // OnWorkloadSelectorResolvedEvent is used to handle the creation of a new cgroup with its resolved tags -func (r *Resolver) OnWorkloadSelectorResolvedEvent(cgroup *cgroupModel.CacheEntry) { +func (r *Resolver) OnWorkloadSelectorResolvedEvent(workload *tags.Workload) { r.sbomsLock.Lock() defer r.sbomsLock.Unlock() - if cgroup == nil { + if workload == nil { return } - id := cgroup.ContainerID + id := workload.ContainerID // We don't scan hosts for now if len(id) == 0 { return @@ -502,8 +503,8 @@ func (r *Resolver) OnWorkloadSelectorResolvedEvent(cgroup *cgroupModel.CacheEntr _, ok := r.sboms[id] if !ok { - workloadKey := getWorkloadKey(cgroup.GetWorkloadSelectorCopy()) - sbom, err := r.newWorkloadEntry(id, cgroup, workloadKey) + workloadKey := getWorkloadKey(workload.Selector.Copy()) + sbom, err := r.newWorkloadEntry(id, workload.CacheEntry, workloadKey) if err != nil { seclog.Errorf("couldn't create new SBOM entry for sbom '%s': %v", id, err) } diff --git a/pkg/security/resolvers/sbom/resolver_unsupported.go b/pkg/security/resolvers/sbom/resolver_unsupported.go index 9e073e03e552c..614682af506fa 100644 --- a/pkg/security/resolvers/sbom/resolver_unsupported.go +++ b/pkg/security/resolvers/sbom/resolver_unsupported.go @@ -15,6 +15,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/config" cgroupModel "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup/model" + "github.com/DataDog/datadog-agent/pkg/security/resolvers/tags" "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" "github.com/DataDog/datadog-agent/pkg/security/secl/model" ) @@ -33,7 +34,7 @@ func (r *Resolver) OnCGroupDeletedEvent(_ *cgroupModel.CacheEntry) { } // OnWorkloadSelectorResolvedEvent is used to handle the creation of a new cgroup with its resolved tags -func (r *Resolver) OnWorkloadSelectorResolvedEvent(_ *cgroupModel.CacheEntry) { +func (r *Resolver) OnWorkloadSelectorResolvedEvent(_ *tags.Workload) { } // ResolvePackage returns the Package that owns the provided file diff --git a/pkg/security/resolvers/tags/resolver.go b/pkg/security/resolvers/tags/resolver.go index 051122e4436ec..a5f0a4b956775 100644 --- a/pkg/security/resolvers/tags/resolver.go +++ b/pkg/security/resolvers/tags/resolver.go @@ -21,6 +21,8 @@ type Event int const ( // WorkloadSelectorResolved is used to notify that a new cgroup with a resolved workload selector is ready WorkloadSelectorResolved Event = iota + // WorkloadSelectorDeleted is used to notify that a cgroup with a resolved workload selector is deleted + WorkloadSelectorDeleted ) // Tagger defines a Tagger for the Tags Resolver diff --git a/pkg/security/resolvers/tags/resolver_linux.go b/pkg/security/resolvers/tags/resolver_linux.go index e11b2001dba4a..e029f003696b6 100644 --- a/pkg/security/resolvers/tags/resolver_linux.go +++ b/pkg/security/resolvers/tags/resolver_linux.go @@ -13,21 +13,26 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup" cgroupModel "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup/model" + "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" "github.com/DataDog/datadog-agent/pkg/security/seclog" "github.com/DataDog/datadog-agent/pkg/security/utils" ) -type pendingWorkload struct { +// Workload represents a workload along with its tags +type Workload struct { *cgroupModel.CacheEntry - retries int + Tags []string + Selector cgroupModel.WorkloadSelector + retries int } // LinuxResolver represents a default resolver based directly on the underlying tagger type LinuxResolver struct { *DefaultResolver - *utils.Notifier[Event, *cgroupModel.CacheEntry] - workloadsWithoutTags chan *pendingWorkload + *utils.Notifier[Event, *Workload] + workloadsWithoutTags chan *Workload cgroupResolver *cgroup.Resolver + workloads map[containerutils.CGroupID]*Workload } // Start the resolver @@ -37,12 +42,19 @@ func (t *LinuxResolver) Start(ctx context.Context) error { } if err := t.cgroupResolver.RegisterListener(cgroup.CGroupCreated, func(cgce *cgroupModel.CacheEntry) { - workload := &pendingWorkload{CacheEntry: cgce, retries: 3} + workload := &Workload{CacheEntry: cgce, retries: 3} + t.workloads[cgce.CGroupID] = workload t.checkTags(workload) }); err != nil { return err } + if err := t.cgroupResolver.RegisterListener(cgroup.CGroupDeleted, func(cgce *cgroupModel.CacheEntry) { + delete(t.workloads, cgce.CGroupID) + }); err != nil { + return err + } + go func() { ctx, cancel := context.WithCancel(ctx) defer cancel() @@ -73,17 +85,18 @@ func (t *LinuxResolver) Start(ctx context.Context) error { return nil } -func needsTagsResolution(cgce *cgroupModel.CacheEntry) bool { - return len(cgce.ContainerID) != 0 && !cgce.WorkloadSelector.IsReady() +func needsTagsResolution(workload *Workload) bool { + return len(workload.ContainerID) != 0 && !workload.Selector.IsReady() } // checkTags checks if the tags of a workload were properly set -func (t *LinuxResolver) checkTags(pendingWorkload *pendingWorkload) { - workload := pendingWorkload.CacheEntry +func (t *LinuxResolver) checkTags(pendingWorkload *Workload) { + workload := pendingWorkload // check if the workload tags were found or if it was deleted if !workload.Deleted.Load() && needsTagsResolution(workload) { // this is an alive cgroup, try to resolve its tags now - if err := t.fetchTags(workload); err != nil || needsTagsResolution(workload) { + err := t.fetchTags(workload) + if err != nil || needsTagsResolution(workload) { if pendingWorkload.retries--; pendingWorkload.retries >= 0 { // push to the workloadsWithoutTags chan so that its tags can be resolved later select { @@ -102,22 +115,29 @@ func (t *LinuxResolver) checkTags(pendingWorkload *pendingWorkload) { } // fetchTags fetches tags for the provided workload -func (t *LinuxResolver) fetchTags(container *cgroupModel.CacheEntry) error { - newTags, err := t.ResolveWithErr(container.ContainerID) +func (t *LinuxResolver) fetchTags(workload *Workload) error { + newTags, err := t.ResolveWithErr(workload.ContainerID) if err != nil { - return fmt.Errorf("failed to resolve %s: %w", container.ContainerID, err) + return fmt.Errorf("failed to resolve %s: %w", workload.ContainerID, err) } - container.SetTags(newTags) + + workload.Selector.Image = utils.GetTagValue("image_name", newTags) + workload.Selector.Tag = utils.GetTagValue("image_tag", newTags) + if len(workload.Selector.Image) != 0 && len(workload.Selector.Tag) == 0 { + workload.Selector.Tag = "latest" + } + return nil } // NewResolver returns a new tags resolver func NewResolver(tagger Tagger, cgroupsResolver *cgroup.Resolver) *LinuxResolver { resolver := &LinuxResolver{ - Notifier: utils.NewNotifier[Event, *cgroupModel.CacheEntry](), + Notifier: utils.NewNotifier[Event, *Workload](), DefaultResolver: NewDefaultResolver(tagger), - workloadsWithoutTags: make(chan *pendingWorkload, 100), + workloadsWithoutTags: make(chan *Workload, 100), cgroupResolver: cgroupsResolver, + workloads: make(map[containerutils.CGroupID]*Workload), } return resolver } diff --git a/pkg/security/security_profile/dump/manager.go b/pkg/security/security_profile/dump/manager.go index a0b8c490b965e..b37a2c7264f1a 100644 --- a/pkg/security/security_profile/dump/manager.go +++ b/pkg/security/security_profile/dump/manager.go @@ -34,6 +34,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/proto/api" "github.com/DataDog/datadog-agent/pkg/security/resolvers" cgroupModel "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup/model" + "github.com/DataDog/datadog-agent/pkg/security/resolvers/tags" "github.com/DataDog/datadog-agent/pkg/security/secl/model" "github.com/DataDog/datadog-agent/pkg/security/seclog" activity_tree "github.com/DataDog/datadog-agent/pkg/security/security_profile/activity_tree" @@ -47,7 +48,7 @@ type ActivityDumpHandler interface { // SecurityProfileManager is a generic interface used to communicate with the Security Profile manager type SecurityProfileManager interface { - FetchSilentWorkloads() map[cgroupModel.WorkloadSelector][]*cgroupModel.CacheEntry + FetchSilentWorkloads() map[cgroupModel.WorkloadSelector][]*tags.Workload OnLocalStorageCleanup(files []string) } diff --git a/pkg/security/security_profile/profile/manager.go b/pkg/security/security_profile/profile/manager.go index aadd9b94cd88b..38fd111fbfe5a 100644 --- a/pkg/security/security_profile/profile/manager.go +++ b/pkg/security/security_profile/profile/manager.go @@ -29,7 +29,6 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/metrics" "github.com/DataDog/datadog-agent/pkg/security/proto/api" "github.com/DataDog/datadog-agent/pkg/security/resolvers" - "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup" cgroupModel "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup/model" "github.com/DataDog/datadog-agent/pkg/security/resolvers/tags" "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" @@ -228,7 +227,7 @@ func (m *SecurityProfileManager) Start(ctx context.Context) { // register the manager to the CGroup resolver _ = m.resolvers.TagsResolver.RegisterListener(tags.WorkloadSelectorResolved, m.OnWorkloadSelectorResolvedEvent) - _ = m.resolvers.CGroupResolver.RegisterListener(cgroup.CGroupDeleted, m.OnCGroupDeletedEvent) + _ = m.resolvers.TagsResolver.RegisterListener(tags.WorkloadSelectorDeleted, m.OnWorkloadDeletedEvent) seclog.Infof("security profile manager started") @@ -250,7 +249,7 @@ func (m *SecurityProfileManager) propagateWorkloadSelectorsToProviders() { } // OnWorkloadSelectorResolvedEvent is used to handle the creation of a new cgroup with its resolved tags -func (m *SecurityProfileManager) OnWorkloadSelectorResolvedEvent(workload *cgroupModel.CacheEntry) { +func (m *SecurityProfileManager) OnWorkloadSelectorResolvedEvent(workload *tags.Workload) { m.profilesLock.Lock() defer m.profilesLock.Unlock() workload.Lock() @@ -261,7 +260,7 @@ func (m *SecurityProfileManager) OnWorkloadSelectorResolvedEvent(workload *cgrou return } - selector := workload.WorkloadSelector + selector := workload.Selector selector.Tag = "*" // check if the workload of this selector already exists @@ -307,7 +306,7 @@ func (m *SecurityProfileManager) OnWorkloadSelectorResolvedEvent(workload *cgrou } // LinkProfile applies a profile to the provided workload -func (m *SecurityProfileManager) LinkProfile(profile *SecurityProfile, workload *cgroupModel.CacheEntry) { +func (m *SecurityProfileManager) LinkProfile(profile *SecurityProfile, workload *tags.Workload) { profile.Lock() defer profile.Unlock() @@ -329,7 +328,7 @@ func (m *SecurityProfileManager) LinkProfile(profile *SecurityProfile, workload } // UnlinkProfile removes the link between a workload and a profile -func (m *SecurityProfileManager) UnlinkProfile(profile *SecurityProfile, workload *cgroupModel.CacheEntry) { +func (m *SecurityProfileManager) UnlinkProfile(profile *SecurityProfile, workload *tags.Workload) { profile.Lock() defer profile.Unlock() @@ -394,11 +393,11 @@ func FillProfileContextFromProfile(ctx *model.SecurityProfileContext, profile *S } } -// OnCGroupDeletedEvent is used to handle a CGroupDeleted event -func (m *SecurityProfileManager) OnCGroupDeletedEvent(workload *cgroupModel.CacheEntry) { +// OnWorkloadDeletedEvent is used to handle a WorkloadDeleted event +func (m *SecurityProfileManager) OnWorkloadDeletedEvent(workload *tags.Workload) { // lookup the profile selector := cgroupModel.WorkloadSelector{ - Image: workload.WorkloadSelector.Image, + Image: workload.Selector.Image, Tag: "*", } profile := m.GetProfile(selector) @@ -640,24 +639,24 @@ func (m *SecurityProfileManager) unloadProfile(profile *SecurityProfile) { } // linkProfile (thread unsafe) updates the kernel space mapping between a workload and its profile -func (m *SecurityProfileManager) linkProfile(profile *SecurityProfile, workload *cgroupModel.CacheEntry) { +func (m *SecurityProfileManager) linkProfile(profile *SecurityProfile, workload *tags.Workload) { if err := m.securityProfileMap.Put([]byte(workload.ContainerID), profile.profileCookie); err != nil { - seclog.Errorf("couldn't link workload %s (selector: %s) with profile %s (check map size limit ?): %v", workload.ContainerID, workload.WorkloadSelector.String(), profile.Metadata.Name, err) + seclog.Errorf("couldn't link workload %s (selector: %s) with profile %s (check map size limit ?): %v", workload.ContainerID, workload.Selector.String(), profile.Metadata.Name, err) return } - seclog.Infof("workload %s (selector: %s) successfully linked to profile %s", workload.ContainerID, workload.WorkloadSelector.String(), profile.Metadata.Name) + seclog.Infof("workload %s (selector: %s) successfully linked to profile %s", workload.ContainerID, workload.Selector.String(), profile.Metadata.Name) } // unlinkProfile (thread unsafe) updates the kernel space mapping between a workload and its profile -func (m *SecurityProfileManager) unlinkProfile(profile *SecurityProfile, workload *cgroupModel.CacheEntry) { +func (m *SecurityProfileManager) unlinkProfile(profile *SecurityProfile, workload *tags.Workload) { if !profile.loadedInKernel { return } if err := m.securityProfileMap.Delete([]byte(workload.ContainerID)); err != nil { - seclog.Errorf("couldn't unlink workload %s (selector: %s) with profile %s: %v", workload.ContainerID, workload.WorkloadSelector.String(), profile.Metadata.Name, err) + seclog.Errorf("couldn't unlink workload %s (selector: %s) with profile %s: %v", workload.ContainerID, workload.Selector.String(), profile.Metadata.Name, err) } - seclog.Infof("workload %s (selector: %s) successfully unlinked from profile %s", workload.ContainerID, workload.WorkloadSelector.String(), profile.Metadata.Name) + seclog.Infof("workload %s (selector: %s) successfully unlinked from profile %s", workload.ContainerID, workload.Selector.String(), profile.Metadata.Name) } func (m *SecurityProfileManager) canGenerateAnomaliesFor(e *model.Event) bool { @@ -960,11 +959,11 @@ func (m *SecurityProfileManager) SaveSecurityProfile(params *api.SecurityProfile } // FetchSilentWorkloads returns the list of workloads for which we haven't received any profile -func (m *SecurityProfileManager) FetchSilentWorkloads() map[cgroupModel.WorkloadSelector][]*cgroupModel.CacheEntry { +func (m *SecurityProfileManager) FetchSilentWorkloads() map[cgroupModel.WorkloadSelector][]*tags.Workload { m.profilesLock.Lock() defer m.profilesLock.Unlock() - out := make(map[cgroupModel.WorkloadSelector][]*cgroupModel.CacheEntry) + out := make(map[cgroupModel.WorkloadSelector][]*tags.Workload) for selector, profile := range m.profiles { profile.Lock() diff --git a/pkg/security/security_profile/profile/manager_test.go b/pkg/security/security_profile/profile/manager_test.go index dc41ce396c286..b25390fbad9d0 100644 --- a/pkg/security/security_profile/profile/manager_test.go +++ b/pkg/security/security_profile/profile/manager_test.go @@ -21,6 +21,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/config" cgroupModel "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup/model" + "github.com/DataDog/datadog-agent/pkg/security/resolvers/tags" "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" "github.com/DataDog/datadog-agent/pkg/security/secl/model" activity_tree "github.com/DataDog/datadog-agent/pkg/security/security_profile/activity_tree" @@ -841,14 +842,15 @@ func TestSecurityProfileManager_tryAutolearn(t *testing.T) { if ti.newProfile || profile == nil { profile = NewSecurityProfile(cgroupModel.WorkloadSelector{Image: "image", Tag: "tag"}, []model.EventType{model.ExecEventType, model.DNSEventType}, nil) profile.ActivityTree = activity_tree.NewActivityTree(profile, nil, "security_profile") - profile.Instances = append(profile.Instances, &cgroupModel.CacheEntry{ - ContainerContext: model.ContainerContext{ + profile.Instances = append(profile.Instances, &tags.Workload{ + CacheEntry: &cgroupModel.CacheEntry{ContainerContext: model.ContainerContext{ ContainerID: containerutils.ContainerID(defaultContainerID), }, - CGroupContext: model.CGroupContext{ - CGroupID: containerutils.CGroupID(defaultContainerID), + CGroupContext: model.CGroupContext{ + CGroupID: containerutils.CGroupID(defaultContainerID), + }, }, - WorkloadSelector: cgroupModel.WorkloadSelector{Image: "image", Tag: "tag"}, + Selector: cgroupModel.WorkloadSelector{Image: "image", Tag: "tag"}, }) profile.loadedNano = uint64(t0.UnixNano()) } diff --git a/pkg/security/security_profile/profile/profile.go b/pkg/security/security_profile/profile/profile.go index c70c28f9712b2..b7118732d1a9d 100644 --- a/pkg/security/security_profile/profile/profile.go +++ b/pkg/security/security_profile/profile/profile.go @@ -22,6 +22,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/proto/api" cgroupModel "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup/model" + "github.com/DataDog/datadog-agent/pkg/security/resolvers/tags" "github.com/DataDog/datadog-agent/pkg/security/secl/model" activity_tree "github.com/DataDog/datadog-agent/pkg/security/security_profile/activity_tree" mtdt "github.com/DataDog/datadog-agent/pkg/security/security_profile/activity_tree/metadata" @@ -69,7 +70,7 @@ type SecurityProfile struct { pathsReducer *activity_tree.PathsReducer // Instances is the list of workload instances to witch the profile should apply - Instances []*cgroupModel.CacheEntry + Instances []*tags.Workload // Metadata contains metadata for the current profile Metadata mtdt.Metadata diff --git a/pkg/security/security_profile/tests/activity_tree_test.go b/pkg/security/security_profile/tests/activity_tree_test.go index 5f9afbb1c9e9a..a814932f385fd 100644 --- a/pkg/security/security_profile/tests/activity_tree_test.go +++ b/pkg/security/security_profile/tests/activity_tree_test.go @@ -20,6 +20,7 @@ import ( "github.com/stretchr/testify/assert" cgroupModel "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup/model" + "github.com/DataDog/datadog-agent/pkg/security/resolvers/tags" "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" "github.com/DataDog/datadog-agent/pkg/security/secl/model" activity_tree "github.com/DataDog/datadog-agent/pkg/security/security_profile/activity_tree" @@ -692,12 +693,14 @@ func TestActivityTree_CreateProcessNode(t *testing.T) { profile := profile.NewSecurityProfile(cgroupModel.WorkloadSelector{Image: "image", Tag: "tag"}, []model.EventType{model.ExecEventType, model.DNSEventType}, nil) at = activity_tree.NewActivityTree(profile, nil, "profile") profile.ActivityTree = at - profile.Instances = append(profile.Instances, &cgroupModel.CacheEntry{ - ContainerContext: model.ContainerContext{ - ContainerID: containerutils.ContainerID(contID), + profile.Instances = append(profile.Instances, &tags.Workload{ + CacheEntry: &cgroupModel.CacheEntry{ + ContainerContext: model.ContainerContext{ + ContainerID: containerutils.ContainerID(contID), + }, + CGroupContext: model.CGroupContext{CGroupID: containerutils.CGroupID(contID)}, }, - CGroupContext: model.CGroupContext{CGroupID: containerutils.CGroupID(contID)}, - WorkloadSelector: cgroupModel.WorkloadSelector{Image: "image", Tag: "tag"}, + Selector: cgroupModel.WorkloadSelector{Image: "image", Tag: "tag"}, }) } } else { // retrieve last saved tree state From b92624a8de6aa3faa7dfe87c16becda104aa3763 Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Tue, 10 Dec 2024 17:31:11 +0100 Subject: [PATCH 368/439] [CWS] fix overlayfs support on rocky 9.4 (#31948) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../c/include/constants/offsets/filesystem.h | 5 +- pkg/security/ebpf/kernel/kernel.go | 5 + .../probe/constantfetch/btfhub/constants.json | 247 ++++++++++++++++++ .../probe/constantfetch/constant_names.go | 1 + pkg/security/probe/constantfetch/fallback.go | 6 + pkg/security/probe/probe_ebpf.go | 5 + 6 files changed, 268 insertions(+), 1 deletion(-) diff --git a/pkg/security/ebpf/c/include/constants/offsets/filesystem.h b/pkg/security/ebpf/c/include/constants/offsets/filesystem.h index 496927e2fd8eb..24b2d5f769af1 100644 --- a/pkg/security/ebpf/c/include/constants/offsets/filesystem.h +++ b/pkg/security/ebpf/c/include/constants/offsets/filesystem.h @@ -23,9 +23,12 @@ dev_t __attribute__((always_inline)) get_inode_dev(struct inode *inode) { } dev_t __attribute__((always_inline)) get_dentry_dev(struct dentry *dentry) { + u64 offset; + LOAD_CONSTANT("dentry_d_sb_offset", offset); + dev_t dev; struct super_block *sb; - bpf_probe_read(&sb, sizeof(sb), &dentry->d_sb); + bpf_probe_read(&sb, sizeof(sb), (char *)dentry + offset); bpf_probe_read(&dev, sizeof(dev), &sb->s_dev); return dev; } diff --git a/pkg/security/ebpf/kernel/kernel.go b/pkg/security/ebpf/kernel/kernel.go index 65170a4d53c0f..7ff8ef846ac9e 100644 --- a/pkg/security/ebpf/kernel/kernel.go +++ b/pkg/security/ebpf/kernel/kernel.go @@ -251,6 +251,11 @@ func (k *Version) IsRH9_3Kernel() bool { return k.IsRH9Kernel() && strings.HasPrefix(k.OsRelease["VERSION_ID"], "9.3") } +// IsRH9_4Kernel returns whether the kernel is a rh9.3 kernel +func (k *Version) IsRH9_4Kernel() bool { + return k.IsRH9Kernel() && strings.HasPrefix(k.OsRelease["VERSION_ID"], "9.4") +} + // IsSuseKernel returns whether the kernel is a suse kernel func (k *Version) IsSuseKernel() bool { return k.IsSLESKernel() || k.OsRelease["ID"] == "opensuse-leap" diff --git a/pkg/security/probe/constantfetch/btfhub/constants.json b/pkg/security/probe/constantfetch/btfhub/constants.json index c8e007fa9ae5c..abf445a40119a 100644 --- a/pkg/security/probe/constantfetch/btfhub/constants.json +++ b/pkg/security/probe/constantfetch/btfhub/constants.json @@ -11,6 +11,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1320, "file_f_inode_offset": 32, @@ -56,6 +57,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1320, "file_f_inode_offset": 32, @@ -101,6 +103,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1320, "file_f_inode_offset": 32, @@ -146,6 +149,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 44, "creds_uid_offset": 8, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1320, "file_f_inode_offset": 32, @@ -191,6 +195,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1320, "file_f_inode_offset": 32, @@ -236,6 +241,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -281,6 +287,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -326,6 +333,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -371,6 +379,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 44, "creds_uid_offset": 8, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -416,6 +425,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -458,6 +468,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -500,6 +511,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -545,6 +557,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -590,6 +603,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -635,6 +649,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -680,6 +695,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 44, "creds_uid_offset": 8, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -725,6 +741,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -766,6 +783,7 @@ "bpf_prog_aux_offset": 16, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1128, "file_f_inode_offset": 32, @@ -806,6 +824,7 @@ "bpf_prog_aux_offset": 16, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1128, "file_f_inode_offset": 32, @@ -845,6 +864,7 @@ "bpf_prog_aux_offset": 16, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1128, "file_f_inode_offset": 32, @@ -886,6 +906,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1192, "file_f_inode_offset": 32, @@ -929,6 +950,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1320, "file_f_inode_offset": 32, @@ -972,6 +994,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1320, "file_f_inode_offset": 32, @@ -1018,6 +1041,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1288, "file_f_inode_offset": 32, @@ -1062,6 +1086,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1288, "file_f_inode_offset": 32, @@ -1106,6 +1131,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1288, "file_f_inode_offset": 32, @@ -1150,6 +1176,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1288, "file_f_inode_offset": 32, @@ -1194,6 +1221,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1288, "file_f_inode_offset": 32, @@ -1240,6 +1268,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -1285,6 +1314,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -1324,6 +1354,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1160, "file_f_inode_offset": 32, @@ -1364,6 +1395,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1240, "file_f_inode_offset": 32, @@ -1410,6 +1442,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1264, "file_f_inode_offset": 32, @@ -1456,6 +1489,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -1502,6 +1536,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1000, "file_f_inode_offset": 32, @@ -1548,6 +1583,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1000, "file_f_inode_offset": 32, @@ -1595,6 +1631,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -1640,6 +1677,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -1685,6 +1723,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -1732,6 +1771,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1288, "file_f_inode_offset": 32, @@ -1778,6 +1818,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1288, "file_f_inode_offset": 32, @@ -1826,6 +1867,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1288, "file_f_inode_offset": 32, @@ -1874,6 +1916,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -1921,6 +1964,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 152, "dentry_sb_offset": 152, "device_nd_net_net_offset": 1368, "file_f_inode_offset": 32, @@ -1968,6 +2012,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -2015,6 +2060,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 152, "dentry_sb_offset": 152, "device_nd_net_net_offset": 1368, "file_f_inode_offset": 32, @@ -2062,6 +2108,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -2109,6 +2156,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 152, "dentry_sb_offset": 152, "device_nd_net_net_offset": 1368, "file_f_inode_offset": 32, @@ -2156,6 +2204,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 44, "creds_uid_offset": 8, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -2203,6 +2252,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 44, "creds_uid_offset": 8, + "dentry_d_sb_offset": 152, "dentry_sb_offset": 152, "device_nd_net_net_offset": 1368, "file_f_inode_offset": 32, @@ -2250,6 +2300,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 152, "dentry_sb_offset": 152, "device_nd_net_net_offset": 1368, "file_f_inode_offset": 32, @@ -2297,6 +2348,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1264, "file_f_inode_offset": 32, @@ -2345,6 +2397,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 168, "dentry_sb_offset": 168, "device_nd_net_net_offset": 1376, "file_f_inode_offset": 32, @@ -2393,6 +2446,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 44, "creds_uid_offset": 8, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1264, "file_f_inode_offset": 32, @@ -2441,6 +2495,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 44, "creds_uid_offset": 8, + "dentry_d_sb_offset": 168, "dentry_sb_offset": 168, "device_nd_net_net_offset": 1376, "file_f_inode_offset": 32, @@ -2489,6 +2544,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -2536,6 +2592,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 152, "dentry_sb_offset": 152, "device_nd_net_net_offset": 1368, "file_f_inode_offset": 32, @@ -2583,6 +2640,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -2630,6 +2688,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 152, "dentry_sb_offset": 152, "device_nd_net_net_offset": 1368, "file_f_inode_offset": 32, @@ -2677,6 +2736,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -2724,6 +2784,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 152, "dentry_sb_offset": 152, "device_nd_net_net_offset": 1368, "file_f_inode_offset": 32, @@ -2771,6 +2832,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 44, "creds_uid_offset": 8, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -2818,6 +2880,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 44, "creds_uid_offset": 8, + "dentry_d_sb_offset": 152, "dentry_sb_offset": 152, "device_nd_net_net_offset": 1368, "file_f_inode_offset": 32, @@ -2865,6 +2928,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 152, "dentry_sb_offset": 152, "device_nd_net_net_offset": 1368, "file_f_inode_offset": 32, @@ -2912,6 +2976,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1264, "file_f_inode_offset": 32, @@ -2960,6 +3025,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 168, "dentry_sb_offset": 168, "device_nd_net_net_offset": 1376, "file_f_inode_offset": 32, @@ -3008,6 +3074,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 44, "creds_uid_offset": 8, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1264, "file_f_inode_offset": 32, @@ -3056,6 +3123,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 44, "creds_uid_offset": 8, + "dentry_d_sb_offset": 168, "dentry_sb_offset": 168, "device_nd_net_net_offset": 1376, "file_f_inode_offset": 32, @@ -3098,6 +3166,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1320, "file_f_inode_offset": 32, @@ -3140,6 +3209,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -3182,6 +3252,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 152, "dentry_sb_offset": 152, "device_nd_net_net_offset": 1368, "file_f_inode_offset": 32, @@ -3225,6 +3296,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -3267,6 +3339,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1176, "file_f_inode_offset": 32, @@ -3312,6 +3385,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -3354,6 +3428,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1224, "file_f_inode_offset": 32, @@ -3397,6 +3472,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -3444,6 +3520,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1248, "file_f_inode_offset": 32, @@ -3492,6 +3569,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1248, "file_f_inode_offset": 32, @@ -3539,6 +3617,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1312, "file_f_inode_offset": 32, @@ -3587,6 +3666,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -3633,6 +3713,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1248, "file_f_inode_offset": 32, @@ -3681,6 +3762,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -3728,6 +3810,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1248, "file_f_inode_offset": 32, @@ -3776,6 +3859,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -3825,6 +3909,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -3874,6 +3959,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1264, "file_f_inode_offset": 32, @@ -3922,6 +4008,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1264, "file_f_inode_offset": 32, @@ -3970,6 +4057,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -4019,6 +4107,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -4065,6 +4154,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1320, "file_f_inode_offset": 32, @@ -4113,6 +4203,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -4162,6 +4253,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1288, "file_f_inode_offset": 32, @@ -4211,6 +4303,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1288, "file_f_inode_offset": 32, @@ -4257,6 +4350,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1000, "file_f_inode_offset": 32, @@ -4298,6 +4392,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1160, "file_f_inode_offset": 32, @@ -4343,6 +4438,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -4388,6 +4484,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -4436,6 +4533,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -4485,6 +4583,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -4534,6 +4633,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1288, "file_f_inode_offset": 32, @@ -4583,6 +4683,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1288, "file_f_inode_offset": 32, @@ -4632,6 +4733,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1288, "file_f_inode_offset": 32, @@ -4678,6 +4780,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1288, "file_f_inode_offset": 32, @@ -4726,6 +4829,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1288, "file_f_inode_offset": 32, @@ -4775,6 +4879,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1288, "file_f_inode_offset": 32, @@ -4821,6 +4926,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1288, "file_f_inode_offset": 32, @@ -4869,6 +4975,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1288, "file_f_inode_offset": 32, @@ -4915,6 +5022,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1320, "file_f_inode_offset": 32, @@ -4960,6 +5068,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -5005,6 +5114,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1120, "file_f_inode_offset": 32, @@ -5051,6 +5161,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1264, "file_f_inode_offset": 32, @@ -5097,6 +5208,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1264, "file_f_inode_offset": 32, @@ -5143,6 +5255,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1128, "file_f_inode_offset": 32, @@ -5191,6 +5304,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -5240,6 +5354,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -5289,6 +5404,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1056, "file_f_inode_offset": 32, @@ -5338,6 +5454,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1264, "file_f_inode_offset": 32, @@ -5387,6 +5504,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1264, "file_f_inode_offset": 32, @@ -5436,6 +5554,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1128, "file_f_inode_offset": 32, @@ -5480,6 +5599,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1192, "file_f_inode_offset": 32, @@ -5523,6 +5643,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1320, "file_f_inode_offset": 32, @@ -5568,6 +5689,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1000, "file_f_inode_offset": 32, @@ -5614,6 +5736,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1000, "file_f_inode_offset": 32, @@ -5661,6 +5784,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1288, "file_f_inode_offset": 32, @@ -5707,6 +5831,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1288, "file_f_inode_offset": 32, @@ -5755,6 +5880,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1288, "file_f_inode_offset": 32, @@ -5797,6 +5923,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1160, "file_f_inode_offset": 32, @@ -5839,6 +5966,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1160, "file_f_inode_offset": 32, @@ -5884,6 +6012,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -5929,6 +6058,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -5975,6 +6105,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1264, "file_f_inode_offset": 32, @@ -6020,6 +6151,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1320, "file_f_inode_offset": 32, @@ -6066,6 +6198,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1264, "file_f_inode_offset": 32, @@ -6114,6 +6247,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -6163,6 +6297,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -6212,6 +6347,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1264, "file_f_inode_offset": 32, @@ -6261,6 +6397,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1264, "file_f_inode_offset": 32, @@ -6305,6 +6442,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1280, "file_f_inode_offset": 32, @@ -6348,6 +6486,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1280, "file_f_inode_offset": 32, @@ -6391,6 +6530,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -6434,6 +6574,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -6479,6 +6620,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -6526,6 +6668,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1248, "file_f_inode_offset": 32, @@ -6573,6 +6716,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1248, "file_f_inode_offset": 32, @@ -6620,6 +6764,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1248, "file_f_inode_offset": 32, @@ -6667,6 +6812,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1248, "file_f_inode_offset": 32, @@ -6714,6 +6860,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -6761,6 +6908,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -6808,6 +6956,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1248, "file_f_inode_offset": 32, @@ -6856,6 +7005,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1248, "file_f_inode_offset": 32, @@ -6898,6 +7048,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1160, "file_f_inode_offset": 32, @@ -6940,6 +7091,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1160, "file_f_inode_offset": 32, @@ -6982,6 +7134,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1160, "file_f_inode_offset": 32, @@ -7024,6 +7177,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1160, "file_f_inode_offset": 32, @@ -7066,6 +7220,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1160, "file_f_inode_offset": 32, @@ -7108,6 +7263,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1160, "file_f_inode_offset": 32, @@ -7150,6 +7306,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1160, "file_f_inode_offset": 32, @@ -7192,6 +7349,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1160, "file_f_inode_offset": 32, @@ -7234,6 +7392,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1128, "file_f_inode_offset": 32, @@ -7276,6 +7435,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1160, "file_f_inode_offset": 32, @@ -7318,6 +7478,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1160, "file_f_inode_offset": 32, @@ -7360,6 +7521,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1160, "file_f_inode_offset": 32, @@ -7402,6 +7564,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1160, "file_f_inode_offset": 32, @@ -7444,6 +7607,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1128, "file_f_inode_offset": 32, @@ -7486,6 +7650,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1160, "file_f_inode_offset": 32, @@ -7528,6 +7693,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1224, "file_f_inode_offset": 32, @@ -7570,6 +7736,7 @@ "bpf_prog_type_offset": 8, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1224, "file_f_inode_offset": 32, @@ -7615,6 +7782,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1320, "file_f_inode_offset": 32, @@ -7662,6 +7830,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1312, "file_f_inode_offset": 32, @@ -7709,6 +7878,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1312, "file_f_inode_offset": 32, @@ -7757,6 +7927,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1312, "file_f_inode_offset": 32, @@ -7805,6 +7976,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1320, "file_f_inode_offset": 32, @@ -7852,6 +8024,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1320, "file_f_inode_offset": 32, @@ -7899,6 +8072,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1320, "file_f_inode_offset": 32, @@ -7946,6 +8120,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -7995,6 +8170,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -8044,6 +8220,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -8093,6 +8270,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -8142,6 +8320,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -8188,6 +8367,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -8235,6 +8415,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1248, "file_f_inode_offset": 32, @@ -8282,6 +8463,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1248, "file_f_inode_offset": 32, @@ -8329,6 +8511,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1248, "file_f_inode_offset": 32, @@ -8376,6 +8559,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -8423,6 +8607,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -8470,6 +8655,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1248, "file_f_inode_offset": 32, @@ -8518,6 +8704,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1312, "file_f_inode_offset": 32, @@ -8566,6 +8753,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1248, "file_f_inode_offset": 32, @@ -8614,6 +8802,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1248, "file_f_inode_offset": 32, @@ -8662,6 +8851,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1320, "file_f_inode_offset": 32, @@ -8709,6 +8899,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -8756,6 +8947,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1320, "file_f_inode_offset": 32, @@ -8803,6 +8995,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -8850,6 +9043,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1320, "file_f_inode_offset": 32, @@ -8897,6 +9091,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -8946,6 +9141,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -8995,6 +9191,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -9044,6 +9241,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -9093,6 +9291,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -9142,6 +9341,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -9191,6 +9391,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -9240,6 +9441,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -9289,6 +9491,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -9338,6 +9541,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -9387,6 +9591,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -9436,6 +9641,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -9485,6 +9691,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -9534,6 +9741,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1328, "file_f_inode_offset": 32, @@ -9582,6 +9790,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1264, "file_f_inode_offset": 32, @@ -9630,6 +9839,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -9679,6 +9889,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -9728,6 +9939,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -9777,6 +9989,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -9826,6 +10039,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -9875,6 +10089,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1264, "file_f_inode_offset": 32, @@ -9923,6 +10138,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1264, "file_f_inode_offset": 32, @@ -9971,6 +10187,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1264, "file_f_inode_offset": 32, @@ -10019,6 +10236,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1328, "file_f_inode_offset": 32, @@ -10067,6 +10285,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1328, "file_f_inode_offset": 32, @@ -10115,6 +10334,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -10164,6 +10384,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -10213,6 +10434,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -10262,6 +10484,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -10311,6 +10534,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -10360,6 +10584,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -10409,6 +10634,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -10458,6 +10684,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -10507,6 +10734,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -10556,6 +10784,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -10605,6 +10834,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -10654,6 +10884,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -10703,6 +10934,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -10752,6 +10984,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -10801,6 +11034,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1256, "file_f_inode_offset": 32, @@ -10850,6 +11084,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1264, "file_f_inode_offset": 32, @@ -10898,6 +11133,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1264, "file_f_inode_offset": 32, @@ -10946,6 +11182,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1264, "file_f_inode_offset": 32, @@ -10994,6 +11231,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1264, "file_f_inode_offset": 32, @@ -11042,6 +11280,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1264, "file_f_inode_offset": 32, @@ -11090,6 +11329,7 @@ "bpf_prog_type_offset": 4, "creds_cap_inheritable_offset": 40, "creds_uid_offset": 4, + "dentry_d_sb_offset": 104, "dentry_sb_offset": 104, "device_nd_net_net_offset": 1264, "file_f_inode_offset": 32, @@ -18344,6 +18584,13 @@ "uname_release": "4.14.35-2047.542.2.el7uek.aarch64", "cindex": 89 }, + { + "distrib": "ol", + "version": "7", + "arch": "arm64", + "uname_release": "4.14.35-2047.543.3.el7uek.aarch64", + "cindex": 89 + }, { "distrib": "ol", "version": "7", diff --git a/pkg/security/probe/constantfetch/constant_names.go b/pkg/security/probe/constantfetch/constant_names.go index c5ee88a4452f6..2feab9c5e0402 100644 --- a/pkg/security/probe/constantfetch/constant_names.go +++ b/pkg/security/probe/constantfetch/constant_names.go @@ -28,6 +28,7 @@ const ( OffsetNameKernelCloneArgsExitSignal = "kernel_clone_args_exit_signal_offset" OffsetNameFileFinode = "file_f_inode_offset" OffsetNameFileFpath = "file_f_path_offset" + OffsetNameDentryDSb = "dentry_d_sb_offset" OffsetNameMountMntID = "mount_id_offset" // inode times diff --git a/pkg/security/probe/constantfetch/fallback.go b/pkg/security/probe/constantfetch/fallback.go index 468a5f54c84d4..531edb59c29d3 100644 --- a/pkg/security/probe/constantfetch/fallback.go +++ b/pkg/security/probe/constantfetch/fallback.go @@ -139,6 +139,8 @@ func (f *FallbackConstantFetcher) appendRequest(id string) { value = getFileFinodeOffset(f.kernelVersion) case OffsetNameFileFpath: value = getFileFpathOffset(f.kernelVersion) + case OffsetNameDentryDSb: + value = getDentryDsbOffset(f.kernelVersion) case OffsetNameMountMntID: value = getMountIDOffset(f.kernelVersion) case OffsetNameRenameStructOldDentry: @@ -1013,6 +1015,10 @@ func getFileFpathOffset(kv *kernel.Version) uint64 { } } +func getDentryDsbOffset(_ *kernel.Version) uint64 { + return 104 +} + func getMountIDOffset(kv *kernel.Version) uint64 { switch { case kv.IsSuseKernel() || kv.Code >= kernel.Kernel5_12: diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go index 1bb574938bfdd..7446c49f70ceb 100644 --- a/pkg/security/probe/probe_ebpf.go +++ b/pkg/security/probe/probe_ebpf.go @@ -2338,6 +2338,10 @@ func getOvlPathInOvlInode(kernelVersion *kernel.Version) uint64 { return 2 } + if kernelVersion.IsInRangeCloseOpen(kernel.Kernel5_14, kernel.Kernel5_15) && kernelVersion.IsRH9_4Kernel() { + return 2 + } + // https://github.com/torvalds/linux/commit/ffa5723c6d259b3191f851a50a98d0352b345b39 // changes a bit how the lower dentry/inode is stored in `ovl_inode`. To check if we // are in this configuration we first probe the kernel version, then we check for the @@ -2408,6 +2412,7 @@ func AppendProbeRequestsToFetcher(constantFetcher constantfetch.ConstantFetcher, constantFetcher.AppendOffsetofRequest(constantfetch.OffsetNameVMAreaStructFlags, "struct vm_area_struct", "vm_flags", "linux/mm_types.h") constantFetcher.AppendOffsetofRequest(constantfetch.OffsetNameFileFinode, "struct file", "f_inode", "linux/fs.h") constantFetcher.AppendOffsetofRequest(constantfetch.OffsetNameFileFpath, "struct file", "f_path", "linux/fs.h") + constantFetcher.AppendOffsetofRequest(constantfetch.OffsetNameDentryDSb, "struct dentry", "d_sb", "linux/dcache.h") constantFetcher.AppendOffsetofRequest(constantfetch.OffsetNameMountMntID, "struct mount", "mnt_id", "") if kv.Code >= kernel.Kernel5_3 { constantFetcher.AppendOffsetofRequest(constantfetch.OffsetNameKernelCloneArgsExitSignal, "struct kernel_clone_args", "exit_signal", "linux/sched/task.h") From b6292731c4db9ae56ed42eaf1abd83c05178a2dd Mon Sep 17 00:00:00 2001 From: Raphael Gavache Date: Tue, 10 Dec 2024 17:59:00 +0100 Subject: [PATCH 369/439] [fleet] add install_script e2e test setup (#31791) Co-authored-by: Kevin Fairise <132568982+KevinFairise2@users.noreply.github.com> --- .gitlab-ci.yml | 1 + .gitlab/JOBOWNERS | 1 + .gitlab/deploy_packages/e2e.yml | 14 +++++ .gitlab/deploy_packages/oci.yml | 5 ++ .gitlab/e2e/e2e.yml | 14 +++++ pkg/fleet/installer/setup/common/config.go | 14 ++--- .../installer/setup/common/config_test.go | 61 +++++++++++++++++++ pkg/fleet/installer/setup/setup.go | 8 ++- tasks/installer.py | 5 ++ .../tests/installer/script/databricks_test.go | 34 +++++++++++ 10 files changed, 149 insertions(+), 8 deletions(-) create mode 100644 pkg/fleet/installer/setup/common/config_test.go create mode 100644 test/new-e2e/tests/installer/script/databricks_test.go diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ef09047f42cce..abfece6aac73b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -134,6 +134,7 @@ variables: BUCKET_BRANCH: dev # path inside the staging s3 buckets to release to: 'dev', 'nightly', 'oldnightly', 'beta' or 'stable' DEB_TESTING_S3_BUCKET: apttesting.datad0g.com RPM_TESTING_S3_BUCKET: yumtesting.datad0g.com + INSTALLER_TESTING_S3_BUCKET: installtesting.datad0g.com WINDOWS_TESTING_S3_BUCKET_A6: pipelines/A6/$CI_PIPELINE_ID WINDOWS_TESTING_S3_BUCKET_A7: pipelines/A7/$CI_PIPELINE_ID WINDOWS_BUILDS_S3_BUCKET: $WIN_S3_BUCKET/builds diff --git a/.gitlab/JOBOWNERS b/.gitlab/JOBOWNERS index 9cb87462dca48..361807d382218 100644 --- a/.gitlab/JOBOWNERS +++ b/.gitlab/JOBOWNERS @@ -116,6 +116,7 @@ publish_winget* @DataDog/windows-agent powershell_script_deploy @DataDog/windows-agent windows_bootstrapper_deploy @DataDog/windows-agent qa_*_oci @DataDog/agent-delivery +qa_installer_script @DataDog/agent-delivery # Deploy containers deploy_containers* @Datadog/agent-delivery diff --git a/.gitlab/deploy_packages/e2e.yml b/.gitlab/deploy_packages/e2e.yml index 30de15bfbc2c5..a72844e37c245 100644 --- a/.gitlab/deploy_packages/e2e.yml +++ b/.gitlab/deploy_packages/e2e.yml @@ -25,3 +25,17 @@ qa_installer_oci: IMG_REGISTRIES: agent-qa IMG_SOURCES: registry.ddbuild.io/ci/remote-updates/datadog-installer:pipeline-${CI_PIPELINE_ID} IMG_DESTINATIONS: installer-package:pipeline-${CI_PIPELINE_ID} + +qa_installer_script: + image: registry.ddbuild.io/ci/datadog-agent-buildimages/gitlab_agent_deploy$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES + stage: deploy_packages + tags: ["arch:amd64"] + rules: + - !reference [.on_installer_or_e2e_changes] + - !reference [.manual] + needs: + - installer-install-scripts + before_script: + - ls $OMNIBUS_PACKAGE_DIR + script: + - $S3_CP_CMD --recursive --exclude "*" --include "install-*.sh" "$OMNIBUS_PACKAGE_DIR" "s3://${INSTALLER_TESTING_S3_BUCKET}/${CI_COMMIT_SHA}/scripts/" diff --git a/.gitlab/deploy_packages/oci.yml b/.gitlab/deploy_packages/oci.yml index 5f362a55cc728..7db0433b743dd 100644 --- a/.gitlab/deploy_packages/oci.yml +++ b/.gitlab/deploy_packages/oci.yml @@ -24,6 +24,9 @@ include: - datadog-package push registry.ddbuild.io/ci/remote-updates/${OCI_PRODUCT}:${VERSION} ${OMNIBUS_PACKAGE_DIR}/${OCI_PRODUCT}-${VERSION}.oci.tar # This is used for E2E tests. Doesn't cost more than an additional tag to the registry. - datadog-package push registry.ddbuild.io/ci/remote-updates/${OCI_PRODUCT}:pipeline-${CI_PIPELINE_ID} ${OMNIBUS_PACKAGE_DIR}/${OCI_PRODUCT}-${VERSION}.oci.tar + # Used for install scripts e2e tests + - datadog-package replicate-s3 registry.ddbuild.io/ci/remote-updates/${OCI_PRODUCT}:pipeline-${CI_PIPELINE_ID} us-east-1 ${INSTALLER_TESTING_S3_BUCKET} ${S3_PACKAGE} ${VERSION} + - datadog-package replicate-s3 registry.ddbuild.io/ci/remote-updates/${OCI_PRODUCT}:pipeline-${CI_PIPELINE_ID} us-east-1 ${INSTALLER_TESTING_S3_BUCKET} ${S3_PACKAGE} ${CI_COMMIT_SHA} variables: MAJOR_VERSION: 7 @@ -32,9 +35,11 @@ deploy_agent_oci: needs: [ "agent_oci", "go_tools_deps"] variables: OCI_PRODUCT: "datadog-agent" + S3_PACKAGE: "agent-package" deploy_installer_oci: extends: ".deploy_packages_oci" needs: [ "installer_oci", "go_tools_deps" ] variables: OCI_PRODUCT: "datadog-installer" + S3_PACKAGE: "installer-package" diff --git a/.gitlab/e2e/e2e.yml b/.gitlab/e2e/e2e.yml index 3f0b2c313389e..6064179b1069b 100644 --- a/.gitlab/e2e/e2e.yml +++ b/.gitlab/e2e/e2e.yml @@ -385,6 +385,20 @@ new-e2e-apm: - EXTRA_PARAMS: --run TestVMFakeintakeSuiteUDS - EXTRA_PARAMS: --run TestVMFakeintakeSuiteTCP +new-e2e-installer-script: + extends: .new_e2e_template + rules: + - !reference [.on_installer_or_e2e_changes] + - !reference [.manual] + needs: + - !reference [.needs_new_e2e_template] + - deploy_installer_oci + - qa_installer_script + variables: + TARGETS: ./tests/installer/script + TEAM: fleet + FLEET_INSTALL_METHOD: "install_script" + new-e2e-installer: extends: .new_e2e_template rules: diff --git a/pkg/fleet/installer/setup/common/config.go b/pkg/fleet/installer/setup/common/config.go index 5ec929682808b..2fb775ed1066e 100644 --- a/pkg/fleet/installer/setup/common/config.go +++ b/pkg/fleet/installer/setup/common/config.go @@ -27,7 +27,7 @@ var ( datadogConfFile = filepath.Join(configDir, "datadog.yaml") logsConfFile = filepath.Join(configDir, "conf.d/configured_at_install_logs.yaml") sparkConfigFile = filepath.Join(configDir, "conf.d/spark.d/spark.yaml") - injectTracerConfigFile = filepath.Join(configDir, "/etc/datadog-agent/inject/tracer.yaml") + injectTracerConfigFile = filepath.Join(configDir, "inject/tracer.yaml") ) // HostInstaller is a struct that represents the agent agentConfiguration @@ -61,21 +61,21 @@ type logsConfig struct { type LogConfig struct { Type string `yaml:"type"` Path string `yaml:"path"` - Service string `yaml:"service"` - Source string `yaml:"source"` + Service string `yaml:"service,omitempty"` + Source string `yaml:"source,omitempty"` } type sparkConfig struct { - InitConfig interface{} `yaml:"init_config"` + InitConfig interface{} `yaml:"init_config,omitempty"` Instances []SparkInstance `yaml:"instances"` } // SparkInstance is a struct that represents a single spark instance type SparkInstance struct { SparkURL string `yaml:"spark_url"` - SparkClusterMode string `yaml:"spark_cluster_mode"` + SparkClusterMode string `yaml:"spark_cluster_mode,omitempty"` ClusterName string `yaml:"cluster_name"` - StreamingMetrics bool `yaml:"streaming_metrics"` + StreamingMetrics bool `yaml:"streaming_metrics,omitempty"` } type injectorConfig struct { @@ -100,7 +100,7 @@ func NewHostInstaller(env *env.Env) (*HostInstaller, error) { } func newHostInstaller(env *env.Env, ddUID, ddGID int) (*HostInstaller, error) { - i := &HostInstaller{} + i := &HostInstaller{agentConfig: make(map[string]interface{})} if env.APIKey == "" { return nil, fmt.Errorf("DD_API key is required") } diff --git a/pkg/fleet/installer/setup/common/config_test.go b/pkg/fleet/installer/setup/common/config_test.go new file mode 100644 index 0000000000000..bfe2809f39087 --- /dev/null +++ b/pkg/fleet/installer/setup/common/config_test.go @@ -0,0 +1,61 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build !windows + +// Package common contains the HostInstaller struct which is used to write the agent agentConfiguration to disk +package common + +import ( + "os" + "path/filepath" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" +) + +func assertFileContent(t *testing.T, file, content string) { + b, err := os.ReadFile(file) + assert.NoError(t, err) + assert.Equal(t, content, string(b)) +} + +func TestAgentConfigs(t *testing.T) { + configDir = t.TempDir() + datadogConfFile = filepath.Join(configDir, "datadog.yaml") + logsConfFile = filepath.Join(configDir, "conf.d/configured_at_install_logs.yaml") + sparkConfigFile = filepath.Join(configDir, "conf.d/spark.d/spark.yaml") + + i, err := newHostInstaller(&env.Env{APIKey: "a"}, 0, 0) + assert.NotNil(t, i) + assert.Nil(t, err) + + i.AddAgentConfig("key", "value") + i.AddLogConfig(LogConfig{Type: "file", Path: "/var/log/app.log", Service: "app"}) + i.AddHostTag("k1", "v1") + i.AddHostTag("k2", "v2") + i.AddSparkInstance(SparkInstance{ClusterName: "cluster", SparkURL: "http://localhost:8080"}) + + assert.NoError(t, i.writeConfigs()) + assertFileContent(t, datadogConfFile, `api_key: a +key: value +logs_enabled: true +tags: +- k1:v1 +- k2:v2 +`) + + assertFileContent(t, logsConfFile, `logs: +- type: file + path: /var/log/app.log + service: app +`) + assertFileContent(t, sparkConfigFile, `instances: +- spark_url: http://localhost:8080 + cluster_name: cluster +`) +} diff --git a/pkg/fleet/installer/setup/setup.go b/pkg/fleet/installer/setup/setup.go index 376abc751eaf5..89b122d343aae 100644 --- a/pkg/fleet/installer/setup/setup.go +++ b/pkg/fleet/installer/setup/setup.go @@ -25,7 +25,13 @@ const ( func Setup(ctx context.Context, env *env.Env, flavor string) error { switch flavor { case FlavorDatabricks: - return djm.SetupDatabricks(ctx, env) + // temporary until the whole e2e test pipeline is setup + if err := djm.SetupDatabricks(ctx, env); err != nil { + fmt.Printf("Databricks setup failed: %v\n", err) + } else { + fmt.Println("Databricks setup completed") + } + return nil default: return fmt.Errorf("unknown setup flavor %s", flavor) } diff --git a/tasks/installer.py b/tasks/installer.py index 9e758a96a3bac..381c2dc104db8 100644 --- a/tasks/installer.py +++ b/tasks/installer.py @@ -10,6 +10,7 @@ from invoke.exceptions import Exit from tasks.build_tags import filter_incompatible_tags, get_build_tags, get_default_build_tags +from tasks.libs.common.git import get_commit_sha from tasks.libs.common.utils import REPO_PATH, bin_name, get_build_flags from tasks.libs.releasing.version import get_version @@ -106,6 +107,10 @@ def build_linux_script( with open(INSTALL_SCRIPT_TEMPLATE) as f: install_script = f.read() + # default version on pipelines, using the commit sha instead + if version == "nightly-a7": + version = get_commit_sha(ctx) + archs = ['amd64', 'arm64'] for arch in archs: build_downloader(ctx, flavor=flavor, version=version, os='linux', arch=arch) diff --git a/test/new-e2e/tests/installer/script/databricks_test.go b/test/new-e2e/tests/installer/script/databricks_test.go new file mode 100644 index 0000000000000..f947ae38336cc --- /dev/null +++ b/test/new-e2e/tests/installer/script/databricks_test.go @@ -0,0 +1,34 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package installscript + +import ( + "fmt" + "os" + "testing" + + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments" + awshost "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments/aws/host" + osdesc "github.com/DataDog/test-infra-definitions/components/os" + "github.com/DataDog/test-infra-definitions/scenarios/aws/ec2" +) + +type vmUpdaterSuite struct { + commitHash string + e2e.BaseSuite[environments.Host] +} + +func (s *vmUpdaterSuite) TestInstallScript() { + url := fmt.Sprintf("https://installtesting.datad0g.com/%s/scripts/install-databricks.sh", s.commitHash) + s.Env().RemoteHost.MustExecute(fmt.Sprintf("curl -L %s > install_script; export DD_INSTALLER_REGISTRY_URL_INSTALLER_PACKAGE=installtesting.datad0g.com; sudo -E bash install_script", url)) +} + +func TestUpdaterSuite(t *testing.T) { + e2e.Run(t, &vmUpdaterSuite{commitHash: os.Getenv("CI_COMMIT_SHA")}, e2e.WithProvisioner(awshost.ProvisionerNoFakeIntake( + awshost.WithEC2InstanceOptions(ec2.WithOSArch(osdesc.UbuntuDefault, osdesc.ARM64Arch)), + ))) +} From 7f4316fe336920e1e5fb38e88c0d471695fcda2c Mon Sep 17 00:00:00 2001 From: Jonathan Ribas Date: Tue, 10 Dec 2024 18:12:35 +0100 Subject: [PATCH 370/439] [CWS] Lower a noisy ptrace info log to debug (#31976) --- pkg/security/probe/probe_ebpf.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go index 7446c49f70ceb..e262eb2205607 100644 --- a/pkg/security/probe/probe_ebpf.go +++ b/pkg/security/probe/probe_ebpf.go @@ -1097,7 +1097,7 @@ func (p *EBPFProbe) handleEvent(CPU int, data []byte) { } else { pid, err := utils.TryToResolveTraceePid(event.ProcessContext.Process.Pid, event.PTrace.NSPID) if err != nil { - seclog.Infof("PTrace err: %v", err) + seclog.Debugf("PTrace err: %v", err) return } pidToResolve = pid From 8b4888db95c7486f5dc5af3ffe0be1bd4ca93454 Mon Sep 17 00:00:00 2001 From: Wassim Dhif Date: Tue, 10 Dec 2024 18:23:31 +0100 Subject: [PATCH 371/439] fix(kubernetesadmissionevents): add demultiplexer flushing in the unit tests (#31885) Signed-off-by: Wassim DHIF --- .../kubernetesadmissionevents_test.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkg/clusteragent/admission/validate/kubernetesadmissionevents/kubernetesadmissionevents_test.go b/pkg/clusteragent/admission/validate/kubernetesadmissionevents/kubernetesadmissionevents_test.go index 954d338bae5e3..81d58c49a00ce 100644 --- a/pkg/clusteragent/admission/validate/kubernetesadmissionevents/kubernetesadmissionevents_test.go +++ b/pkg/clusteragent/admission/validate/kubernetesadmissionevents/kubernetesadmissionevents_test.go @@ -249,7 +249,10 @@ func TestKubernetesAdmissionEvents(t *testing.T) { assert.Equal(t, eventType, kubernetesAuditWebhook.name) // Emit the event + start := time.Now() mockSender.On("Event", mock.AnythingOfType("event.Event")).Return().Once() + // Force flush to serializer to ensure the event is emitted and received. + demultiplexerMock.ForceFlushToSerializer(start, true) validated, err := kubernetesAuditWebhook.emitEvent(&tt.request, "", nil) assert.NoError(t, err) assert.True(t, validated) From 6dea12debcd4916d28e872f33aa1dafc5518c009 Mon Sep 17 00:00:00 2001 From: Sarah Witt Date: Tue, 10 Dec 2024 12:23:41 -0500 Subject: [PATCH 372/439] [PLINT-578] [PLINT-589] Add platform integrations origins for q4 (#31492) --- pkg/aggregator/sender_test.go | 4 ++-- pkg/metrics/metricsource.go | 21 ++++++++++++++++--- .../internal/metrics/origin_mapping.go | 20 ++++++++++++++++-- ...s-metrics-origins-q4-3278d0ead5015daf.yaml | 11 ++++++++++ 4 files changed, 49 insertions(+), 7 deletions(-) create mode 100644 releasenotes/notes/add-platform-integrations-metrics-origins-q4-3278d0ead5015daf.yaml diff --git a/pkg/aggregator/sender_test.go b/pkg/aggregator/sender_test.go index ef7173f8a1bcc..4479842cc18da 100644 --- a/pkg/aggregator/sender_test.go +++ b/pkg/aggregator/sender_test.go @@ -359,9 +359,9 @@ func TestSenderPopulatingMetricSampleSource(t *testing.T) { expectedMetricSource: metrics.MetricSourceCPU, }, { - name: "checkid ntp:1 should have MetricSourceNtp", + name: "checkid ntp:1 should have MetricSourceNTP", checkID: "ntp:1", - expectedMetricSource: metrics.MetricSourceNtp, + expectedMetricSource: metrics.MetricSourceNTP, }, { name: "checkid memory:1 should have MetricSourceMemory", diff --git a/pkg/metrics/metricsource.go b/pkg/metrics/metricsource.go index 4132329578862..57a802188d380 100644 --- a/pkg/metrics/metricsource.go +++ b/pkg/metrics/metricsource.go @@ -37,7 +37,7 @@ const ( MetricSourceContainerd MetricSourceCri MetricSourceDocker - MetricSourceNtp + MetricSourceNTP MetricSourceSystemd MetricSourceHelm MetricSourceKubernetesAPIServer @@ -60,6 +60,8 @@ const ( MetricSourceDisk MetricSourceNetwork MetricSourceSnmp + MetricSourceCloudFoundry + MetricSourceJenkins // Python Checks MetricSourceZenohRouter @@ -135,6 +137,9 @@ const ( MetricSourceAwsPricing MetricSourceAqua MetricSourceKubernetesClusterAutoscaler + MetricSourceKubeVirtAPI + MetricSourceKubeVirtController + MetricSourceKubeVirtHandler MetricSourceTraefikMesh MetricSourceWeaviate MetricSourceTorchserve @@ -349,7 +354,7 @@ func (ms MetricSource) String() string { return "cri" case MetricSourceDocker: return "docker" - case MetricSourceNtp: + case MetricSourceNTP: return "ntp" case MetricSourceSystemd: return "systemd" @@ -441,6 +446,8 @@ func (ms MetricSource) String() string { return "citrix_hypervisor" case MetricSourceClickhouse: return "clickhouse" + case MetricSourceCloudFoundry: + return "cloudfoundry" case MetricSourceCloudFoundryAPI: return "cloud_foundry_api" case MetricSourceCockroachdb: @@ -523,6 +530,8 @@ func (ms MetricSource) String() string { return "impala" case MetricSourceIstio: return "istio" + case MetricSourceJenkins: + return "jenkins" case MetricSourceKafkaConsumer: return "kafka_consumer" case MetricSourceKepler: @@ -884,7 +893,7 @@ func CheckNameToMetricSource(name string) MetricSource { case "docker": return MetricSourceDocker case "ntp": - return MetricSourceNtp + return MetricSourceNTP case "systemd": return MetricSourceSystemd case "helm": @@ -1071,6 +1080,12 @@ func CheckNameToMetricSource(name string) MetricSource { return MetricSourceKubeProxy case "kube_scheduler": return MetricSourceKubeScheduler + case "kubevirt_api": + return MetricSourceKubeVirtAPI + case "kubevirt_controller": + return MetricSourceKubeVirtController + case "kubevirt_handler": + return MetricSourceKubeVirtHandler case "kubelet": return MetricSourceKubelet case "kubernetes_state": diff --git a/pkg/serializer/internal/metrics/origin_mapping.go b/pkg/serializer/internal/metrics/origin_mapping.go index 95fd26b258e8c..6b64e3e602078 100644 --- a/pkg/serializer/internal/metrics/origin_mapping.go +++ b/pkg/serializer/internal/metrics/origin_mapping.go @@ -40,7 +40,7 @@ func metricSourceToOriginCategory(ms metrics.MetricSource) int32 { metrics.MetricSourceContainerd, metrics.MetricSourceCri, metrics.MetricSourceDocker, - metrics.MetricSourceNtp, + metrics.MetricSourceNTP, metrics.MetricSourceSystemd, metrics.MetricSourceHelm, metrics.MetricSourceKubeflow, @@ -64,6 +64,9 @@ func metricSourceToOriginCategory(ms metrics.MetricSource) int32 { metrics.MetricSourceDisk, metrics.MetricSourceNetwork, metrics.MetricSourceSnmp, + // Plugins and non-checks + metrics.MetricSourceCloudFoundry, + metrics.MetricSourceJenkins, // Python Checks metrics.MetricSourceZenohRouter, metrics.MetricSourceZabbix, @@ -148,6 +151,9 @@ func metricSourceToOriginCategory(ms metrics.MetricSource) int32 { metrics.MetricSourceRay, metrics.MetricSourceNvidiaTriton, metrics.MetricSourceKarpenter, + metrics.MetricSourceKubeVirtAPI, + metrics.MetricSourceKubeVirtController, + metrics.MetricSourceKubeVirtHandler, metrics.MetricSourceFluxcd, metrics.MetricSourceEsxi, metrics.MetricSourceDcgm, @@ -365,6 +371,8 @@ func metricSourceToOriginService(ms metrics.MetricSource) int32 { return 36 case metrics.MetricSourceClickhouse: return 37 + case metrics.MetricSourceCloudFoundry: + return 440 case metrics.MetricSourceCloudFoundryAPI: return 38 case metrics.MetricSourceCockroachdb: @@ -463,6 +471,8 @@ func metricSourceToOriginService(ms metrics.MetricSource) int32 { return 86 case metrics.MetricSourceJbossWildfly: return 87 + case metrics.MetricSourceJenkins: + return 436 case metrics.MetricSourceKafkaConsumer: return 89 case metrics.MetricSourceKafka: @@ -487,6 +497,12 @@ func metricSourceToOriginService(ms metrics.MetricSource) int32 { return 98 case metrics.MetricSourceKubernetesState: return 99 + case metrics.MetricSourceKubeVirtAPI: + return 437 + case metrics.MetricSourceKubeVirtController: + return 438 + case metrics.MetricSourceKubeVirtHandler: + return 439 case metrics.MetricSourceKyototycoon: return 100 case metrics.MetricSourceLighttpd: @@ -651,7 +667,7 @@ func metricSourceToOriginService(ms metrics.MetricSource) int32 { return 182 case metrics.MetricSourceDocker: return 183 - case metrics.MetricSourceNtp: + case metrics.MetricSourceNTP: return 184 case metrics.MetricSourceSystemd: return 185 diff --git a/releasenotes/notes/add-platform-integrations-metrics-origins-q4-3278d0ead5015daf.yaml b/releasenotes/notes/add-platform-integrations-metrics-origins-q4-3278d0ead5015daf.yaml new file mode 100644 index 0000000000000..5ea9260a42a85 --- /dev/null +++ b/releasenotes/notes/add-platform-integrations-metrics-origins-q4-3278d0ead5015daf.yaml @@ -0,0 +1,11 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +other: + - | + Add metric origins for Platform Integrations: Cloud Foundry, Jenkins, KubeVirt API, KubeVirt Controller, and KubeVirt Handler. \ No newline at end of file From 90e7b919ad017c84f751b2dbb8ea1d2b5e4ebe0b Mon Sep 17 00:00:00 2001 From: Guy Arbitman Date: Tue, 10 Dec 2024 19:56:18 +0200 Subject: [PATCH 373/439] usm: sowatcher: Extend paths support up to 220 characters (#31975) --- pkg/network/ebpf/c/shared-libraries/types.h | 2 +- .../usm/sharedlibraries/types_linux.go | 4 +- .../usm/sharedlibraries/watcher_test.go | 47 +++++++++++++++++++ 3 files changed, 50 insertions(+), 3 deletions(-) diff --git a/pkg/network/ebpf/c/shared-libraries/types.h b/pkg/network/ebpf/c/shared-libraries/types.h index 3a4fe97bbc88e..ea2159d5d07eb 100644 --- a/pkg/network/ebpf/c/shared-libraries/types.h +++ b/pkg/network/ebpf/c/shared-libraries/types.h @@ -4,7 +4,7 @@ #include "ktypes.h" #define LIB_SO_SUFFIX_SIZE 9 -#define LIB_PATH_MAX_SIZE 120 +#define LIB_PATH_MAX_SIZE 220 typedef struct { __u32 pid; diff --git a/pkg/network/usm/sharedlibraries/types_linux.go b/pkg/network/usm/sharedlibraries/types_linux.go index 3240185a07632..6b52394ef4c37 100644 --- a/pkg/network/usm/sharedlibraries/types_linux.go +++ b/pkg/network/usm/sharedlibraries/types_linux.go @@ -6,9 +6,9 @@ package sharedlibraries type LibPath struct { Pid uint32 Len uint32 - Buf [120]byte + Buf [220]byte } const ( - LibPathMaxSize = 0x78 + LibPathMaxSize = 0xdc ) diff --git a/pkg/network/usm/sharedlibraries/watcher_test.go b/pkg/network/usm/sharedlibraries/watcher_test.go index 7af5b82782fe3..8c9864a91af8f 100644 --- a/pkg/network/usm/sharedlibraries/watcher_test.go +++ b/pkg/network/usm/sharedlibraries/watcher_test.go @@ -104,6 +104,53 @@ func (s *SharedLibrarySuite) TestSharedLibraryDetection() { }, time.Second*10, 100*time.Millisecond) } +func (s *SharedLibrarySuite) TestLongPath() { + t := s.T() + + const ( + fileName = "foo-libssl.so" + nullTerminatorLength = len("\x00") + ) + padLength := LibPathMaxSize - len(fileName) - len(t.TempDir()) - len("_") - len(string(filepath.Separator)) - nullTerminatorLength + fooPath1, fooPathID1 := createTempTestFile(t, strings.Repeat("a", padLength)+"_"+fileName) + // fooPath2 is longer than the limit we have, thus it will be ignored. + fooPath2, fooPathID2 := createTempTestFile(t, strings.Repeat("a", padLength+1)+"_"+fileName) + + registerRecorder := new(utils.CallbackRecorder) + unregisterRecorder := new(utils.CallbackRecorder) + + watcher, err := NewWatcher(utils.NewUSMEmptyConfig(), LibsetCrypto, + Rule{ + Re: regexp.MustCompile(`foo-libssl.so`), + RegisterCB: registerRecorder.Callback(), + UnregisterCB: unregisterRecorder.Callback(), + }, + ) + require.NoError(t, err) + watcher.Start() + t.Cleanup(watcher.Stop) + + // create files + command1, err := fileopener.OpenFromAnotherProcess(t, fooPath1) + require.NoError(t, err) + + command2, err := fileopener.OpenFromAnotherProcess(t, fooPath2) + require.NoError(t, err) + + require.Eventuallyf(t, func() bool { + return registerRecorder.CallsForPathID(fooPathID1) == 1 && + registerRecorder.CallsForPathID(fooPathID2) == 0 + }, time.Second*10, 100*time.Millisecond, "") + + require.NoError(t, command1.Process.Kill()) + require.NoError(t, command2.Process.Kill()) + + require.Eventually(t, func() bool { + return unregisterRecorder.CallsForPathID(fooPathID1) == 1 && + unregisterRecorder.CallsForPathID(fooPathID2) == 0 + }, time.Second*10, 100*time.Millisecond) +} + func (s *SharedLibrarySuite) TestSharedLibraryDetectionWithPIDAndRootNamespace() { t := s.T() _, err := os.Stat("/usr/bin/busybox") From ea648f38c679860629c00e9ccc465fcb4593279c Mon Sep 17 00:00:00 2001 From: Gustavo Caso Date: Tue, 10 Dec 2024 19:00:26 +0100 Subject: [PATCH 374/439] [ASCII-2567] propagate the tagger component when building the OTLP pipeline for serverless-init (#31576) --- cmd/serverless-init/main.go | 6 +++--- cmd/serverless/main.go | 6 +++--- pkg/serverless/otlp/otlp.go | 5 +++-- pkg/serverless/otlp/otlp_no_otlp.go | 7 +++++-- pkg/serverless/otlp/otlp_test.go | 6 ++++-- 5 files changed, 18 insertions(+), 12 deletions(-) diff --git a/cmd/serverless-init/main.go b/cmd/serverless-init/main.go index 1b5242fa41e21..b4e2076350ff5 100644 --- a/cmd/serverless-init/main.go +++ b/cmd/serverless-init/main.go @@ -146,7 +146,7 @@ func setup(_ mode.Conf, tagger tagger.Component) (cloudservice.CloudService, *se metricAgent := setupMetricAgent(tags, tagger) metric.AddColdStartMetric(prefix, metricAgent.GetExtraTags(), time.Now(), metricAgent.Demux) - setupOtlpAgent(metricAgent) + setupOtlpAgent(metricAgent, tagger) go flushMetricsAgent(metricAgent) return cloudService, agentLogConfig, traceAgent, metricAgent, logsAgent @@ -200,12 +200,12 @@ func setupMetricAgent(tags map[string]string, tagger tagger.Component) *metrics. return metricAgent } -func setupOtlpAgent(metricAgent *metrics.ServerlessMetricAgent) { +func setupOtlpAgent(metricAgent *metrics.ServerlessMetricAgent, tagger tagger.Component) { if !otlp.IsEnabled() { log.Debugf("otlp endpoint disabled") return } - otlpAgent := otlp.NewServerlessOTLPAgent(metricAgent.Demux.Serializer()) + otlpAgent := otlp.NewServerlessOTLPAgent(metricAgent.Demux.Serializer(), tagger) otlpAgent.Start() } diff --git a/cmd/serverless/main.go b/cmd/serverless/main.go index 77f46c01fded4..a679ceef10181 100644 --- a/cmd/serverless/main.go +++ b/cmd/serverless/main.go @@ -124,7 +124,7 @@ func runAgent(tagger tagger.Component) { wg.Add(3) go startTraceAgent(&wg, lambdaSpanChan, coldStartSpanId, serverlessDaemon, tagger, rcService) - go startOtlpAgent(&wg, metricAgent, serverlessDaemon) + go startOtlpAgent(&wg, metricAgent, serverlessDaemon, tagger) go startTelemetryCollection(&wg, serverlessID, logChannel, serverlessDaemon, tagger) // start appsec @@ -330,13 +330,13 @@ func startTelemetryCollection(wg *sync.WaitGroup, serverlessID registration.ID, } } -func startOtlpAgent(wg *sync.WaitGroup, metricAgent *metrics.ServerlessMetricAgent, serverlessDaemon *daemon.Daemon) { +func startOtlpAgent(wg *sync.WaitGroup, metricAgent *metrics.ServerlessMetricAgent, serverlessDaemon *daemon.Daemon, tagger tagger.Component) { defer wg.Done() if !otlp.IsEnabled() { log.Debug("otlp endpoint disabled") return } - otlpAgent := otlp.NewServerlessOTLPAgent(metricAgent.Demux.Serializer()) + otlpAgent := otlp.NewServerlessOTLPAgent(metricAgent.Demux.Serializer(), tagger) otlpAgent.Start() serverlessDaemon.SetOTLPAgent(otlpAgent) diff --git a/pkg/serverless/otlp/otlp.go b/pkg/serverless/otlp/otlp.go index 0efb26bb4f23c..19f7c7847111e 100644 --- a/pkg/serverless/otlp/otlp.go +++ b/pkg/serverless/otlp/otlp.go @@ -15,6 +15,7 @@ import ( "go.opentelemetry.io/collector/otelcol" + tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" coreOtlp "github.com/DataDog/datadog-agent/comp/otelcol/otlp" "github.com/DataDog/datadog-agent/comp/otelcol/otlp/configcheck" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" @@ -29,8 +30,8 @@ type ServerlessOTLPAgent struct { // NewServerlessOTLPAgent creates a new ServerlessOTLPAgent with the correct // otel pipeline. -func NewServerlessOTLPAgent(serializer serializer.MetricSerializer) *ServerlessOTLPAgent { - pipeline, err := coreOtlp.NewPipelineFromAgentConfig(pkgconfigsetup.Datadog(), serializer, nil, nil) +func NewServerlessOTLPAgent(serializer serializer.MetricSerializer, tagger tagger.Component) *ServerlessOTLPAgent { + pipeline, err := coreOtlp.NewPipelineFromAgentConfig(pkgconfigsetup.Datadog(), serializer, nil, tagger) if err != nil { log.Error("Error creating new otlp pipeline:", err) return nil diff --git a/pkg/serverless/otlp/otlp_no_otlp.go b/pkg/serverless/otlp/otlp_no_otlp.go index 761639bed48b0..fe953d1a75543 100644 --- a/pkg/serverless/otlp/otlp_no_otlp.go +++ b/pkg/serverless/otlp/otlp_no_otlp.go @@ -8,13 +8,16 @@ //nolint:revive // TODO(SERV) Fix revive linter package otlp -import "github.com/DataDog/datadog-agent/pkg/serializer" +import ( + tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" + "github.com/DataDog/datadog-agent/pkg/serializer" +) //nolint:revive // TODO(SERV) Fix revive linter type ServerlessOTLPAgent struct{} //nolint:revive // TODO(SERV) Fix revive linter -func NewServerlessOTLPAgent(serializer.MetricSerializer) *ServerlessOTLPAgent { +func NewServerlessOTLPAgent(serializer.MetricSerializer, tagger.Component) *ServerlessOTLPAgent { return nil } diff --git a/pkg/serverless/otlp/otlp_test.go b/pkg/serverless/otlp/otlp_test.go index b7851f4488e14..e7481a198b433 100644 --- a/pkg/serverless/otlp/otlp_test.go +++ b/pkg/serverless/otlp/otlp_test.go @@ -21,11 +21,13 @@ import ( "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp" sdktrace "go.opentelemetry.io/otel/sdk/trace" + "github.com/stretchr/testify/assert" + + taggernoop "github.com/DataDog/datadog-agent/comp/core/tagger/impl-noop" pb "github.com/DataDog/datadog-agent/pkg/proto/pbgo/trace" "github.com/DataDog/datadog-agent/pkg/serverless/metrics" "github.com/DataDog/datadog-agent/pkg/serverless/trace" "github.com/DataDog/datadog-agent/pkg/trace/testutil" - "github.com/stretchr/testify/assert" ) func TestMain(m *testing.M) { @@ -84,7 +86,7 @@ func TestServerlessOTLPAgentReceivesTraces(t *testing.T) { assert.True(metricAgent.IsReady()) // setup otlp agent - otlpAgent := NewServerlessOTLPAgent(metricAgent.Demux.Serializer()) + otlpAgent := NewServerlessOTLPAgent(metricAgent.Demux.Serializer(), taggernoop.NewComponent()) otlpAgent.Start() defer otlpAgent.Stop() assert.NotNil(otlpAgent.pipeline) From 5b42c82d5d690ac4f4c4ad861ee9bd8a0adaf58f Mon Sep 17 00:00:00 2001 From: Pierre Gimalac Date: Tue, 10 Dec 2024 19:32:55 +0100 Subject: [PATCH 375/439] [ASCII-2588] Increase configsync test timeout to avoid flakiness on slow runners (#31881) --- comp/core/configsync/configsyncimpl/sync_integration_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/comp/core/configsync/configsyncimpl/sync_integration_test.go b/comp/core/configsync/configsyncimpl/sync_integration_test.go index 50c7e3680ed0d..91b615bb53493 100644 --- a/comp/core/configsync/configsyncimpl/sync_integration_test.go +++ b/comp/core/configsync/configsyncimpl/sync_integration_test.go @@ -38,7 +38,7 @@ func TestRunWithChan(t *testing.T) { ch := make(chan time.Time, 1) ch <- time.Now() - time.AfterFunc(100*time.Millisecond, cancel) + time.AfterFunc(500*time.Millisecond, cancel) cs.runWithChan(ch) require.True(t, called) From e58c70ea4f5cb2a4f9710e79f9766f109e29eedb Mon Sep 17 00:00:00 2001 From: "John L. Peterson (Jack)" Date: Tue, 10 Dec 2024 13:39:16 -0500 Subject: [PATCH 376/439] Update OTel Collector dependencies to v0.115.0 (#31900) Co-authored-by: github-actions[bot] --- LICENSE-3rdparty.csv | 6 +- comp/otelcol/collector-contrib/def/go.mod | 70 +- comp/otelcol/collector-contrib/def/go.sum | 188 +++--- .../collector-contrib/impl/components.go | 106 +-- comp/otelcol/collector-contrib/impl/go.mod | 271 ++++---- comp/otelcol/collector-contrib/impl/go.sum | 613 +++++++++--------- .../collector-contrib/impl/manifest.yaml | 84 +-- comp/otelcol/collector/impl/collector.go | 2 +- comp/otelcol/converter/def/go.mod | 3 +- comp/otelcol/converter/def/go.sum | 4 +- comp/otelcol/converter/impl/go.mod | 12 +- comp/otelcol/converter/impl/go.sum | 24 +- comp/otelcol/ddflareextension/def/go.mod | 9 +- comp/otelcol/ddflareextension/def/go.sum | 16 +- comp/otelcol/ddflareextension/impl/go.mod | 160 ++--- comp/otelcol/ddflareextension/impl/go.sum | 378 +++++------ .../simple-dd/config-enhanced-result.yaml | 1 + .../simple-dd/config-provided-result.yaml | 1 + .../exporter/datadogexporter/go.mod | 68 +- .../exporter/datadogexporter/go.sum | 178 ++--- .../exporter/logsagentexporter/go.mod | 42 +- .../exporter/logsagentexporter/go.sum | 92 +-- .../exporter/serializerexporter/go.mod | 68 +- .../exporter/serializerexporter/go.sum | 154 ++--- .../processor/infraattributesprocessor/go.mod | 32 +- .../processor/infraattributesprocessor/go.sum | 64 +- .../otlp/components/statsprocessor/go.mod | 10 +- .../otlp/components/statsprocessor/go.sum | 68 +- comp/otelcol/otlp/testutil/go.mod | 2 +- comp/otelcol/otlp/testutil/go.sum | 4 +- comp/trace/agent/def/go.mod | 10 +- comp/trace/agent/def/go.sum | 20 +- go.mod | 245 +++---- go.sum | 528 +++++++-------- pkg/trace/go.mod | 34 +- pkg/trace/go.sum | 172 ++--- pkg/trace/stats/oteltest/go.mod | 10 +- pkg/trace/stats/oteltest/go.sum | 68 +- tasks/collector.py | 4 +- .../awscontainerinsightreceiver_manifest.yaml | 10 +- .../collector/datadogconnector_manifest.yaml | 10 +- .../collector/datadogexporter_manifest.yaml | 10 +- .../healthcheckextension_manifest.yaml | 6 +- .../mismatched_versions_manifest.yaml | 8 +- .../collector/pprofextension_manifest.yaml | 6 +- .../prometheusreceiver_manifest.yaml | 6 +- .../collector/valid_datadog_manifest.yaml | 76 +-- ...id_manifest_without_specified_version.yaml | 8 +- .../collector/zpagesextension_manifest.yaml | 6 +- test/new-e2e/go.mod | 14 +- test/new-e2e/go.sum | 28 +- .../testdata/minimal-full-config.yml | 1 + .../testdata/minimal-provided-config.yml | 1 + test/otel/go.mod | 50 +- test/otel/go.sum | 170 ++--- test/otel/testdata/builder-config.yaml | 97 +-- 56 files changed, 2175 insertions(+), 2153 deletions(-) diff --git a/LICENSE-3rdparty.csv b/LICENSE-3rdparty.csv index 6f885b06c7a9f..8c766a337eb1c 100644 --- a/LICENSE-3rdparty.csv +++ b/LICENSE-3rdparty.csv @@ -2436,12 +2436,12 @@ core,go.opentelemetry.io/collector/pdata/internal,Apache-2.0,Copyright The OpenT core,go.opentelemetry.io/collector/pdata/internal/data,Apache-2.0,Copyright The OpenTelemetry Authors core,go.opentelemetry.io/collector/pdata/internal/data/protogen/collector/logs/v1,Apache-2.0,Copyright The OpenTelemetry Authors core,go.opentelemetry.io/collector/pdata/internal/data/protogen/collector/metrics/v1,Apache-2.0,Copyright The OpenTelemetry Authors -core,go.opentelemetry.io/collector/pdata/internal/data/protogen/collector/profiles/v1experimental,Apache-2.0,Copyright The OpenTelemetry Authors +core,go.opentelemetry.io/collector/pdata/internal/data/protogen/collector/profiles/v1development,Apache-2.0,Copyright The OpenTelemetry Authors core,go.opentelemetry.io/collector/pdata/internal/data/protogen/collector/trace/v1,Apache-2.0,Copyright The OpenTelemetry Authors core,go.opentelemetry.io/collector/pdata/internal/data/protogen/common/v1,Apache-2.0,Copyright The OpenTelemetry Authors core,go.opentelemetry.io/collector/pdata/internal/data/protogen/logs/v1,Apache-2.0,Copyright The OpenTelemetry Authors core,go.opentelemetry.io/collector/pdata/internal/data/protogen/metrics/v1,Apache-2.0,Copyright The OpenTelemetry Authors -core,go.opentelemetry.io/collector/pdata/internal/data/protogen/profiles/v1experimental,Apache-2.0,Copyright The OpenTelemetry Authors +core,go.opentelemetry.io/collector/pdata/internal/data/protogen/profiles/v1development,Apache-2.0,Copyright The OpenTelemetry Authors core,go.opentelemetry.io/collector/pdata/internal/data/protogen/resource/v1,Apache-2.0,Copyright The OpenTelemetry Authors core,go.opentelemetry.io/collector/pdata/internal/data/protogen/trace/v1,Apache-2.0,Copyright The OpenTelemetry Authors core,go.opentelemetry.io/collector/pdata/internal/json,Apache-2.0,Copyright The OpenTelemetry Authors @@ -2488,6 +2488,8 @@ core,go.opentelemetry.io/collector/receiver/receivertest,Apache-2.0,Copyright Th core,go.opentelemetry.io/collector/receiver/scrapererror,Apache-2.0,Copyright The OpenTelemetry Authors core,go.opentelemetry.io/collector/receiver/scraperhelper,Apache-2.0,Copyright The OpenTelemetry Authors core,go.opentelemetry.io/collector/receiver/scraperhelper/internal/metadata,Apache-2.0,Copyright The OpenTelemetry Authors +core,go.opentelemetry.io/collector/scraper,Apache-2.0,Copyright The OpenTelemetry Authors +core,go.opentelemetry.io/collector/scraper/scrapererror,Apache-2.0,Copyright The OpenTelemetry Authors core,go.opentelemetry.io/collector/semconv/v1.16.0,Apache-2.0,Copyright The OpenTelemetry Authors core,go.opentelemetry.io/collector/semconv/v1.17.0,Apache-2.0,Copyright The OpenTelemetry Authors core,go.opentelemetry.io/collector/semconv/v1.18.0,Apache-2.0,Copyright The OpenTelemetry Authors diff --git a/comp/otelcol/collector-contrib/def/go.mod b/comp/otelcol/collector-contrib/def/go.mod index e1998d2b7c5d4..b4b92cf6fe357 100644 --- a/comp/otelcol/collector-contrib/def/go.mod +++ b/comp/otelcol/collector-contrib/def/go.mod @@ -2,21 +2,21 @@ module github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib/def go 1.22.0 -require go.opentelemetry.io/collector/otelcol v0.114.0 +require go.opentelemetry.io/collector/otelcol v0.115.0 require ( - go.opentelemetry.io/collector/component/componenttest v0.114.0 // indirect - go.opentelemetry.io/collector/extension/extensiontest v0.114.0 // indirect + go.opentelemetry.io/collector/component/componenttest v0.115.0 // indirect + go.opentelemetry.io/collector/extension/extensiontest v0.115.0 // indirect ) require ( - go.opentelemetry.io/collector/connector/connectortest v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror v0.114.0 // indirect - go.opentelemetry.io/collector/exporter/exportertest v0.114.0 // indirect - go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0 // indirect - go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/processor/processortest v0.114.0 // indirect - go.opentelemetry.io/collector/receiver/receivertest v0.114.0 // indirect + go.opentelemetry.io/collector/connector/connectortest v0.115.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror v0.115.0 // indirect + go.opentelemetry.io/collector/exporter/exportertest v0.115.0 // indirect + go.opentelemetry.io/collector/internal/fanoutconsumer v0.115.0 // indirect + go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/processor/processortest v0.115.0 // indirect + go.opentelemetry.io/collector/receiver/receivertest v0.115.0 // indirect go.opentelemetry.io/contrib/bridges/otelzap v0.6.0 // indirect ) @@ -53,37 +53,37 @@ require ( github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.60.1 // indirect github.com/prometheus/procfs v0.15.1 // indirect - github.com/shirou/gopsutil/v4 v4.24.10 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/testify v1.10.0 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/collector/component v0.114.0 // indirect - go.opentelemetry.io/collector/component/componentstatus v0.114.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect - go.opentelemetry.io/collector/confmap v1.20.0 // indirect - go.opentelemetry.io/collector/connector v0.114.0 // indirect - go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/consumer v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumertest v0.114.0 // indirect - go.opentelemetry.io/collector/exporter v0.114.0 // indirect - go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/extension v0.114.0 // indirect - go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0 // indirect - go.opentelemetry.io/collector/featuregate v1.20.0 // indirect - go.opentelemetry.io/collector/pdata v1.20.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.114.0 // indirect - go.opentelemetry.io/collector/pdata/testdata v0.114.0 // indirect - go.opentelemetry.io/collector/pipeline v0.114.0 // indirect - go.opentelemetry.io/collector/processor v0.114.0 // indirect - go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/receiver v0.114.0 // indirect - go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/semconv v0.114.0 // indirect - go.opentelemetry.io/collector/service v0.114.0 // indirect + go.opentelemetry.io/collector/component v0.115.0 // indirect + go.opentelemetry.io/collector/component/componentstatus v0.115.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.115.0 // indirect + go.opentelemetry.io/collector/confmap v1.21.0 // indirect + go.opentelemetry.io/collector/connector v0.115.0 // indirect + go.opentelemetry.io/collector/connector/connectorprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/consumer v1.21.0 // indirect + go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/consumer/consumertest v0.115.0 // indirect + go.opentelemetry.io/collector/exporter v0.115.0 // indirect + go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/extension v0.115.0 // indirect + go.opentelemetry.io/collector/extension/extensioncapabilities v0.115.0 // indirect + go.opentelemetry.io/collector/featuregate v1.21.0 // indirect + go.opentelemetry.io/collector/pdata v1.21.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.115.0 // indirect + go.opentelemetry.io/collector/pdata/testdata v0.115.0 // indirect + go.opentelemetry.io/collector/pipeline v0.115.0 // indirect + go.opentelemetry.io/collector/processor v0.115.0 // indirect + go.opentelemetry.io/collector/processor/processorprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/receiver v0.115.0 // indirect + go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/semconv v0.115.0 // indirect + go.opentelemetry.io/collector/service v0.115.0 // indirect go.opentelemetry.io/contrib/config v0.10.0 // indirect go.opentelemetry.io/contrib/propagators/b3 v1.31.0 // indirect go.opentelemetry.io/otel v1.32.0 // indirect diff --git a/comp/otelcol/collector-contrib/def/go.sum b/comp/otelcol/collector-contrib/def/go.sum index 85afb038b26d8..b0340b1c9c43d 100644 --- a/comp/otelcol/collector-contrib/def/go.sum +++ b/comp/otelcol/collector-contrib/def/go.sum @@ -92,8 +92,8 @@ github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWN github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA= github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v4 v4.24.10 h1:7VOzPtfw/5YDU+jLEoBwXwxJbQetULywoSV4RYY7HkM= -github.com/shirou/gopsutil/v4 v4.24.10/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= @@ -110,98 +110,98 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= -go.opentelemetry.io/collector v0.114.0 h1:XLLLOHns06P9XjVHyp0OdEMdwXvol5MLzugqQMmXYuU= -go.opentelemetry.io/collector v0.114.0/go.mod h1:XbjD4Yw9LunLo3IJu3ZZytNZ0drEVznxw1Z14Ujlw3s= -go.opentelemetry.io/collector/client v1.20.0 h1:o60wPcj5nLtaRenF+1E5p4QXFS3TDL6vHlw+GOon3rg= -go.opentelemetry.io/collector/client v1.20.0/go.mod h1:6aqkszco9FaLWCxyJEVam6PP7cUa8mPRIXeS5eZGj0U= -go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= -go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= -go.opentelemetry.io/collector/component/componentstatus v0.114.0 h1:y9my/xink8KB5lK8zFAjgB2+pEh0QYy5TM972fxZY9w= -go.opentelemetry.io/collector/component/componentstatus v0.114.0/go.mod h1:RIoeCYZpPaae7QLE/1RacqzhHuXBmzRAk9H/EwYtIIs= -go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= -go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= -go.opentelemetry.io/collector/config/configauth v0.114.0 h1:R2sJ6xpsLYGH0yU0vCxotzBYDKR/Hrjv0A7y9lwMyiw= -go.opentelemetry.io/collector/config/configauth v0.114.0/go.mod h1:3Z24KcCpG+WYCeQYfs/cNp5cP2BDeOqLCtOEgs/rPqM= -go.opentelemetry.io/collector/config/configcompression v1.20.0 h1:H/mvz7J/5z+O74YsO0t2tk+REnO2tzLM8TgIQ4AZ5w0= -go.opentelemetry.io/collector/config/configcompression v1.20.0/go.mod h1:pnxkFCLUZLKWzYJvfSwZnPrnm0twX14CYj2ADth5xiU= -go.opentelemetry.io/collector/config/confighttp v0.114.0 h1:DjGsBvVm+mGK3IpJBaXianWhwcxEC1fF33cpuC1LY/I= -go.opentelemetry.io/collector/config/confighttp v0.114.0/go.mod h1:nrlNLxOZ+4JQaV9j0TiqQV7LOHhrRivPrT8nQRHED3Q= -go.opentelemetry.io/collector/config/configopaque v1.20.0 h1:2I48zKiyyyYqjm7y0B9OLp24ku2ZSX3nCHG0r5FdWOQ= -go.opentelemetry.io/collector/config/configopaque v1.20.0/go.mod h1:6zlLIyOoRpJJ+0bEKrlZOZon3rOp5Jrz9fMdR4twOS4= -go.opentelemetry.io/collector/config/configretry v1.20.0 h1:z679mrMlW2a6tOOYPGdrS/QfALxdzWLQUOpH8Uu+D5Y= -go.opentelemetry.io/collector/config/configretry v1.20.0/go.mod h1:KvQF5cfphq1rQm1dKR4eLDNQYw6iI2fY72NMZVa+0N0= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/config/configtls v1.20.0 h1:hNlJdwfyY5Qe54RLJ41lfLqKTn9ypkR7sk7JNCcSe2U= -go.opentelemetry.io/collector/config/configtls v1.20.0/go.mod h1:sav/txSHguadTYlSSK+BJO2ljJeYEtRoBahgzWAguYg= -go.opentelemetry.io/collector/config/internal v0.114.0 h1:uWSDWTJb8T6xRjKD9/XmEARakXnxgYVYKUeId78hErc= -go.opentelemetry.io/collector/config/internal v0.114.0/go.mod h1:yC7E4h1Uj0SubxcFImh6OvBHFTjMh99+A5PuyIgDWqc= -go.opentelemetry.io/collector/confmap v1.20.0 h1:ARfOwmkKxFOud1njl03yAHQ30+uenlzqCO6LBYamDTE= -go.opentelemetry.io/collector/confmap v1.20.0/go.mod h1:DMpd9Ay/ffls3JoQBQ73vWeRsz1rNuLbwjo6WtjSQus= -go.opentelemetry.io/collector/connector v0.114.0 h1:efGAeTCtg8zp5Hyd7Am8kBUgsSxWEFlFtAu4OX4mcEA= -go.opentelemetry.io/collector/connector v0.114.0/go.mod h1:8DhGgD8RhkF0ooELl4NOPPD/wgHuXHmY7g90RwJ2eNo= -go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0 h1:uVs9gy3UfQBmH0636ouIbGIoWis7zmKN+ny4XOGm36U= -go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0/go.mod h1:X681qFEAsEPMDQ0pMsD/3DqePw58sfLew1QbBKvGnmw= -go.opentelemetry.io/collector/connector/connectortest v0.114.0 h1:Fpy1JHyNOLdVzNcmxUY6Jwxdz6JDcTXL1NCfw8k1AOc= -go.opentelemetry.io/collector/connector/connectortest v0.114.0/go.mod h1:1zaAlODuL9iNyfyjHQeGCpbcaUjf5b68t8LqlwHKBNA= -go.opentelemetry.io/collector/consumer v0.114.0 h1:1zVaHvfIZowGwZRitRBRo3i+RP2StlU+GClYiofSw0Q= -go.opentelemetry.io/collector/consumer v0.114.0/go.mod h1:d+Mrzt9hsH1ub3zmwSlnQVPLeTYir4Mgo7CrWfnncN4= -go.opentelemetry.io/collector/consumer/consumererror v0.114.0 h1:r2YiELfWerb40FHD23V04gNjIkLUcjEKGxI4Vtm2iO4= -go.opentelemetry.io/collector/consumer/consumererror v0.114.0/go.mod h1:MzIrLQ5jptO2egypolhlAbZsWZr29WC4FhSxQjnxcvg= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 h1:5pXYy3E6UK5Huu3aQbsYL8B6E6MyWx4fvXXDn+oXZaA= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0/go.mod h1:PMq3f54KcJQO4v1tue0QxQScu7REFVADlXxXSAYMiN0= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0 h1:isaTwJK5DOy8Bs7GuLq23ejfgj8gLIo5dOUvkRnLF4g= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0/go.mod h1:GNeLPkfRPdh06n/Rv1UKa/cAtCKjN0a7ADyHjIj4HFE= -go.opentelemetry.io/collector/exporter v0.114.0 h1:5/0BBpXuCJQSQ5SQf31g7j6T4XEKkyx9mZMcA2rS5e8= -go.opentelemetry.io/collector/exporter v0.114.0/go.mod h1:atpd0wWXgh5LAZ0REU/d/Ti/q50HDfnlBIjMjJQlKFg= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 h1:/wmWOSBHcvtz3Pbv7+rWCqPPQuNvYaoidKKaOqZsLKs= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0/go.mod h1:epRYTkyJZTSQZBJflMGHUyUo2EdLPhsaZEyo5Qm848A= -go.opentelemetry.io/collector/exporter/exportertest v0.114.0 h1:vo0idBJT+QACSM1KpjVLm9VeiXVwO7y4UnMpGxN6EyM= -go.opentelemetry.io/collector/exporter/exportertest v0.114.0/go.mod h1:420ssFrhaphneybstbMeSIiqSRoaBARPgO71O17foaM= -go.opentelemetry.io/collector/extension v0.114.0 h1:9Qb92y8hD2WDC5aMDoj4JNQN+/5BQYJWPUPzLXX+iGw= -go.opentelemetry.io/collector/extension v0.114.0/go.mod h1:Yk2/1ptVgfTr12t+22v93nYJpioP14pURv2YercSzU0= -go.opentelemetry.io/collector/extension/auth v0.114.0 h1:1K2qh4yvG8kKR/sTAobI/rw5VxzPZoKcl3FmC195vvo= -go.opentelemetry.io/collector/extension/auth v0.114.0/go.mod h1:IjtsG+jUVJB0utKF8dAK8pLutRun3aEgASshImzsw/U= -go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 h1:hLyX9UvmY0t6iBnk3CqvyNck2U0QjPACekj7pDRx2hA= -go.opentelemetry.io/collector/extension/experimental/storage v0.114.0/go.mod h1:WqYRQVJjJLE1rm+y/ks1wPdPRGWePEvE1VO07xm2J2k= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0 h1:3OHll7gp5XIu7FVgon+koShPy797nze6EjCDokFUG7w= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0/go.mod h1:f0KdeLmE2jWVBmJ1U4WmfAtz1/tQUErGPfhPLKCQ49U= -go.opentelemetry.io/collector/extension/extensiontest v0.114.0 h1:ibXDms1qrswlvlR6b3d2BeyI8sXUXoFV11yOi9Sop8o= -go.opentelemetry.io/collector/extension/extensiontest v0.114.0/go.mod h1:/bOYmqu5yTDfI1bJZUxFqm8ZtmcodpquebiSxiQxtDY= -go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 h1:JosqAcdWw7IGsURJNR8f17xmaGCQEtKhQt9tM0T/DEg= -go.opentelemetry.io/collector/extension/zpagesextension v0.114.0/go.mod h1:+VO4p2GZvmIMqCVyIfS/U85Xqg+HIOe+mdl/ya+jVTE= -go.opentelemetry.io/collector/featuregate v1.20.0 h1:Mi7nMy/q52eruI+6jWnMKUOeM55XvwoPnGcdB1++O8c= -go.opentelemetry.io/collector/featuregate v1.20.0/go.mod h1:47xrISO71vJ83LSMm8+yIDsUbKktUp48Ovt7RR6VbRs= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0 h1:JM9huYqy5LTzmuxQmbPST3l5Ez5kJNit28c6WFWls34= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0/go.mod h1:V28tDU4Wvf1PfW1Ty/SBL9tpKul2iYGno/HkCWGDrj0= -go.opentelemetry.io/collector/otelcol v0.114.0 h1:d/nmYc+adzZ70g4zBMtgujGHVNulF59ExCpuM/3ZKV4= -go.opentelemetry.io/collector/otelcol v0.114.0/go.mod h1:DGmFFao5jHSwD6G1HjUjs0CYcyrTau+u7GjTRUGKN+4= -go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= -go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0 h1:pUNfTzsI/JUTiE+DScDM4lsrPoxnVNLI2fbTxR/oapo= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0/go.mod h1:4aNcj6WM1n1uXyFSXlhVs4ibrERgNYsTbzcYI2zGhxA= -go.opentelemetry.io/collector/pdata/testdata v0.114.0 h1:+AzszWSL1i4K6meQ8rU0JDDW55SYCXa6FVqfDixhhTo= -go.opentelemetry.io/collector/pdata/testdata v0.114.0/go.mod h1:bv8XFdCTZxG2MQB5l9dKxSxf5zBrcodwO6JOy1+AxXM= -go.opentelemetry.io/collector/pipeline v0.114.0 h1:v3YOhc5z0tD6QbO5n/pnftpIeroihM2ks9Z2yKPCcwY= -go.opentelemetry.io/collector/pipeline v0.114.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= -go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0 h1:LZgxMQ2zXcz8ILBefhxpZBpn/Rx+TJTncIIQy0LgtgY= -go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0/go.mod h1:bmyqQCJWcA53/GtqZJ2ahwmLdFl6UelFH2nR6OJFqpw= -go.opentelemetry.io/collector/processor v0.114.0 h1:6bqQgLL7BtKrNv4YkEOGjZfkcfZv/ciJSQx1epGG9Zk= -go.opentelemetry.io/collector/processor v0.114.0/go.mod h1:DV/wa+nAmSHIDeD9NblPwkY9PbgtDQAZJ+PE5biZwPc= -go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 h1:+P/1nLouEXTnN8DVQl+qWwO4BTkQyNPG9t/FrpUqrSI= -go.opentelemetry.io/collector/processor/processorprofiles v0.114.0/go.mod h1:3fuHeNIpINwx3bqFMprmDJyr6y5tWoWbJH599kltO5Y= -go.opentelemetry.io/collector/processor/processortest v0.114.0 h1:3FTaVXAp0LoVmUJn1ewBFckAby7AHa6/Kcdj0xuW14c= -go.opentelemetry.io/collector/processor/processortest v0.114.0/go.mod h1:OgsdOs1Fv5ZGTTJPF5nNIUJh2YkuV1acWd73yWgnti4= -go.opentelemetry.io/collector/receiver v0.114.0 h1:90SAnXAjNq7/k52/pFmmb06Cf1YauoPYtbio4aOXafY= -go.opentelemetry.io/collector/receiver v0.114.0/go.mod h1:KUGT0/D953LXbGH/D3lLPU8yrU3HfWnUqpt4W4hSOnE= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 h1:ibhEfGpvNB3yrtpl2jYFabrunMk1hurxvMYpM0b1Ck4= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0/go.mod h1:UZyRfaasw+NLvN10AN8IQnmj5tQ3BOUH1uP2ctpO9f0= -go.opentelemetry.io/collector/receiver/receivertest v0.114.0 h1:D+Kh9t2n4asTnM+TiSxbrKlUemLZandWntj17BJWWb0= -go.opentelemetry.io/collector/receiver/receivertest v0.114.0/go.mod h1:mNSHQ13vFmqD+VAcRzLjStFBejbcWUn2Mp0pAd7Op+U= -go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= -go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= -go.opentelemetry.io/collector/service v0.114.0 h1:MYF/4nH1CgtiLx09503xPAAUZefCzG1kaO+oanwX590= -go.opentelemetry.io/collector/service v0.114.0/go.mod h1:xH5/RapJdf5Ohh8iU8J0ZstfFYciP1oJPesiByteZxo= +go.opentelemetry.io/collector v0.115.0 h1:qUZ0bTeNBudMxNQ7FJKS//TxTjeJ7tfU/z22mcFavWU= +go.opentelemetry.io/collector v0.115.0/go.mod h1:66qx0xKnVvdwq60e1DEfb4e+zmM9szhPsv2hxZ/Mpj4= +go.opentelemetry.io/collector/client v1.21.0 h1:3Kes8lOFMYVxoxeAmX+DTEAkuS1iTA3NkSfqzGmygJA= +go.opentelemetry.io/collector/client v1.21.0/go.mod h1:jYJGiL0UA975OOyHmjbQSokNWt1OiviI5KjPOMUMGwc= +go.opentelemetry.io/collector/component v0.115.0 h1:iLte1oCiXzjiCnaOBKdsXacfFiECecpWxW3/LeriMoo= +go.opentelemetry.io/collector/component v0.115.0/go.mod h1:oIUFiH7w1eOimdeYhFI+gAIxYSiLDocKVJ0PTvX7d6s= +go.opentelemetry.io/collector/component/componentstatus v0.115.0 h1:pbpUIL+uKDfEiSgKK+S5nuSL6MDIIQYsp4b65ZGVb9M= +go.opentelemetry.io/collector/component/componentstatus v0.115.0/go.mod h1:36A+9XSiOz0Cdhq+UwwPRlEr5CYuSkEnVO9om4BH7d0= +go.opentelemetry.io/collector/component/componenttest v0.115.0 h1:9URDJ9VyP6tuij+YHjp/kSSMecnZOd7oGvzu+rw9SJY= +go.opentelemetry.io/collector/component/componenttest v0.115.0/go.mod h1:PzXvNqKLCiSADZGZFKH+IOHMkaQ0GTHuzysfVbTPKYY= +go.opentelemetry.io/collector/config/configauth v0.115.0 h1:xa+ALdyPgva3rZnLBh1H2oS5MsHP6JxSqMtQmcELnys= +go.opentelemetry.io/collector/config/configauth v0.115.0/go.mod h1:C7anpb3Rf4KswMT+dgOzkW9UX0z/65PLORpUw3p0VYc= +go.opentelemetry.io/collector/config/configcompression v1.21.0 h1:0zbPdZAgPFMAarwJEC4gaR6f/JBP686A3TYSgb3oa+E= +go.opentelemetry.io/collector/config/configcompression v1.21.0/go.mod h1:LvYG00tbPTv0NOLoZN0wXq1F5thcxvukO8INq7xyfWU= +go.opentelemetry.io/collector/config/confighttp v0.115.0 h1:BIy394oNXnqySJwrCqgAJu4gWgAV5aQUDD6k1hy6C8o= +go.opentelemetry.io/collector/config/confighttp v0.115.0/go.mod h1:Wr50ut12NmCEAl4bWLJryw2EjUmJTtYRg89560Q51wc= +go.opentelemetry.io/collector/config/configopaque v1.21.0 h1:PcvRGkBk4Px8BQM7tX+kw4i3jBsfAHGoGQbtZg6Ox7U= +go.opentelemetry.io/collector/config/configopaque v1.21.0/go.mod h1:sW0t0iI/VfRL9VYX7Ik6XzVgPcR+Y5kejTLsYcMyDWs= +go.opentelemetry.io/collector/config/configretry v1.21.0 h1:ZHoOvAkEcv5BBeaJn8IQ6rQ4GMPZWW4S+W7R4QTEbZU= +go.opentelemetry.io/collector/config/configretry v1.21.0/go.mod h1:cleBc9I0DIWpTiiHfu9v83FUaCTqcPXmebpLxjEIqro= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0 h1:U07FinCDop+r2RjWQ3aP9ZWONC7r7kQIp1GkXQi6nsI= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0/go.mod h1:SlBEwQg0qly75rXZ6W1Ig8jN25KBVBkFIIAUI1GiAAE= +go.opentelemetry.io/collector/config/configtls v1.21.0 h1:ZfrlAYgBD8lzp04W0GxwiDmUbrvKsvDYJi+wkyiXlpA= +go.opentelemetry.io/collector/config/configtls v1.21.0/go.mod h1:5EsNefPfVCMOTlOrr3wyj7LrsOgY7V8iqRl8oFZEqtw= +go.opentelemetry.io/collector/config/internal v0.115.0 h1:eVk57iufZpUXyPJFKTb1Ebx5tmcCyroIlt427r5pxS8= +go.opentelemetry.io/collector/config/internal v0.115.0/go.mod h1:OVkadRWlKAoWjHslqjWtBLAne8ceQm8WYT71ZcBWLFc= +go.opentelemetry.io/collector/confmap v1.21.0 h1:1tIcx2/Suwg8VhuPmQw87ba0ludPmumpFCFRZZa6RXA= +go.opentelemetry.io/collector/confmap v1.21.0/go.mod h1:Rrhs+MWoaP6AswZp+ReQ2VO9dfOfcUjdjiSHBsG+nec= +go.opentelemetry.io/collector/connector v0.115.0 h1:4Kkm3HQFzNT1eliMOB8FbIn+PLMRJ2qQku5Vmy3V8Ko= +go.opentelemetry.io/collector/connector v0.115.0/go.mod h1:+ByuAmYLrYHoKh9B+LGqUc0N2kXcN2l8Dea8Mp6brZ8= +go.opentelemetry.io/collector/connector/connectorprofiles v0.115.0 h1:aW1f4Az0I+QJyImFccNWAXqik80bnNu27aQqi2hFfD8= +go.opentelemetry.io/collector/connector/connectorprofiles v0.115.0/go.mod h1:lmynB1CucydOsHa8RSSBh5roUZPfuiv65imXhtNzClM= +go.opentelemetry.io/collector/connector/connectortest v0.115.0 h1:GjtourFr0MJmlbtEPAZ/1BZCxkNAeJ0aMTlrxwftJ0k= +go.opentelemetry.io/collector/connector/connectortest v0.115.0/go.mod h1:f3KQXXNlh/XuV8elmnuVVyfY92dJCAovz10gD72OH0k= +go.opentelemetry.io/collector/consumer v1.21.0 h1:THKZ2Vbi6GkamjTBI2hFq5Dc4kINZTWGwQNa8d/Ty9g= +go.opentelemetry.io/collector/consumer v1.21.0/go.mod h1:FQcC4ThMtRYY41dv+IPNK8POLLhAFY3r1YR5fuP7iiY= +go.opentelemetry.io/collector/consumer/consumererror v0.115.0 h1:yli//xBCQMPZKXNgNlXemo4dvqhnFrAmCZ11DvQgmcY= +go.opentelemetry.io/collector/consumer/consumererror v0.115.0/go.mod h1:LwVzAvQ6ZVNG7mbOvurbAo+W/rKws0IcjOwriuZXqPE= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0 h1:H3fDuyQW1t2HWHkz96WMBQJKUevypOCjBqnqtaAWyoA= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0/go.mod h1:IzEmZ91Tp7TBxVDq8Cc9xvLsmO7H08njr6Pu9P5d9ns= +go.opentelemetry.io/collector/consumer/consumertest v0.115.0 h1:hru0I2447y0TluCdwlKYFFtgcpyCnlM+LiOK1JZyA70= +go.opentelemetry.io/collector/consumer/consumertest v0.115.0/go.mod h1:ybjALRJWR6aKNOzEMy1T1ruCULVDEjj4omtOJMrH/kU= +go.opentelemetry.io/collector/exporter v0.115.0 h1:JnxfpOnsuqhTPKJXVKJLS1Cv3BiVrVLzpHOjJEQw+xw= +go.opentelemetry.io/collector/exporter v0.115.0/go.mod h1:xof3fHQK8wADhaKLIJcQ7ChZaFLNC+haRdPN0wgl6kY= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0 h1:lSQEleCn/q9eFufcuK61NdFKU70ZlgI9dBjPCO/4CrE= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0/go.mod h1:7l5K2AecimX2kx+nZC1gKG3QkP247CO1+SodmJ4fFkQ= +go.opentelemetry.io/collector/exporter/exportertest v0.115.0 h1:P9SMTUXQOtcaq40bGtnnAe14zRmR4/yUgj/Tb2BEf/k= +go.opentelemetry.io/collector/exporter/exportertest v0.115.0/go.mod h1:1jMZ9gFGXglb8wfNrBZIgd+RvpZhSyFwdfE+Jtf9w4U= +go.opentelemetry.io/collector/extension v0.115.0 h1:/cBb8AUdD0KMWC6V3lvCC16eP9Fg0wd1Upcp5rgvuGI= +go.opentelemetry.io/collector/extension v0.115.0/go.mod h1:HI7Ak6loyi6ZrZPsQJW1OO1wbaAW8OqXLFNQlTZnreQ= +go.opentelemetry.io/collector/extension/auth v0.115.0 h1:TTMokbBsSHZRFH48PvGSJmgSS8F3Rkr9MWGHZn8eJDk= +go.opentelemetry.io/collector/extension/auth v0.115.0/go.mod h1:3w+2mzeb2OYNOO4Bi41TUo4jr32ap2y7AOq64IDpxQo= +go.opentelemetry.io/collector/extension/experimental/storage v0.115.0 h1:sZXw0+77092pq24CkUoTRoHQPLQUsDq6HFRNB0g5yR4= +go.opentelemetry.io/collector/extension/experimental/storage v0.115.0/go.mod h1:qjFH7Y3QYYs88By2ZB5GMSUN5k3ul4Brrq2J6lKACA0= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.115.0 h1:/g25Hp5aoCNKdDjIb3Fc7XRglO8yaBRFLO/IUNPnqNI= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.115.0/go.mod h1:EQx7ETiy330O6q05S2KRZsRNDg0aQEeJmVl7Ipx+Fcw= +go.opentelemetry.io/collector/extension/extensiontest v0.115.0 h1:GBVFxFEskR8jSdu9uaQh2qpXnN5VNXhXjpJ2UjxtE8I= +go.opentelemetry.io/collector/extension/extensiontest v0.115.0/go.mod h1:eu1ecbz5mT+cHoH2H3GmD/rOO0WsicSJD2RLrYuOmRA= +go.opentelemetry.io/collector/extension/zpagesextension v0.115.0 h1:zYrZZocc7n0ZuDyXNkIaX0P0qk2fjMQj7NegwBJZA4k= +go.opentelemetry.io/collector/extension/zpagesextension v0.115.0/go.mod h1:OaXwNHF3MAcInBzCXrhXbTNHfIi9b7YGhXjtCFZqxNY= +go.opentelemetry.io/collector/featuregate v1.21.0 h1:+EULHPJDLMipcwAGZVp9Nm8NriRvoBBMxp7MSiIZVMI= +go.opentelemetry.io/collector/featuregate v1.21.0/go.mod h1:3GaXqflNDVwWndNGBJ1+XJFy3Fv/XrFgjMN60N3z7yg= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.115.0 h1:6DRiSECeApFq6Jj5ug77rG53R6FzJEZBfygkyMEXdpg= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.115.0/go.mod h1:vgQf5HQdmLQqpDHpDq2S3nTRoUuKtRcZpRTsy+UiwYw= +go.opentelemetry.io/collector/otelcol v0.115.0 h1:wZhFGrSCZcTQ4qw4ePjI2PaSrOCejoQKAjprKD/xavs= +go.opentelemetry.io/collector/otelcol v0.115.0/go.mod h1:iK8DPvaizirIYKDl1zZG7DDYUj6GkkH4KHifVVM88vk= +go.opentelemetry.io/collector/pdata v1.21.0 h1:PG+UbiFMJ35X/WcAR7Rf/PWmWtRdW0aHlOidsR6c5MA= +go.opentelemetry.io/collector/pdata v1.21.0/go.mod h1:GKb1/zocKJMvxKbS+sl0W85lxhYBTFJ6h6I1tphVyDU= +go.opentelemetry.io/collector/pdata/pprofile v0.115.0 h1:NI89hy13vNDw7EOnQf7Jtitks4HJFO0SUWznTssmP94= +go.opentelemetry.io/collector/pdata/pprofile v0.115.0/go.mod h1:jGzdNfO0XTtfLjXCL/uCC1livg1LlfR+ix2WE/z3RpQ= +go.opentelemetry.io/collector/pdata/testdata v0.115.0 h1:Rblz+AKXdo3fG626jS+KSd0OSA4uMXcTQfpwed6P8LI= +go.opentelemetry.io/collector/pdata/testdata v0.115.0/go.mod h1:inNnRt6S2Nn260EfCBEcjesjlKOSsr0jPwkPqpBkt4s= +go.opentelemetry.io/collector/pipeline v0.115.0 h1:bmACBqb0e8U9ag+vGGHUP7kCfAO7HHROdtzIEg8ulus= +go.opentelemetry.io/collector/pipeline v0.115.0/go.mod h1:qE3DmoB05AW0C3lmPvdxZqd/H4po84NPzd5MrqgtL74= +go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.115.0 h1:3l9ruCAOrssTUDnyChKNzHWOdTtfThnYaoPZ1/+5sD0= +go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.115.0/go.mod h1:2Myg+law/5lcezo9PhhZ0wjCaLYdGK24s1jDWbSW9VY= +go.opentelemetry.io/collector/processor v0.115.0 h1:+fveHGRe24PZPv/F5taahGuZ9HdNW44hgNWEJhIUdyc= +go.opentelemetry.io/collector/processor v0.115.0/go.mod h1:/oLHBlLsm7tFb7zOIrA5C0j14yBtjXKAgxJJ2Bktyk4= +go.opentelemetry.io/collector/processor/processorprofiles v0.115.0 h1:cCZAs+FXaebZPppqAN3m+X3etoSBL6NvyQo8l0hOZoo= +go.opentelemetry.io/collector/processor/processorprofiles v0.115.0/go.mod h1:kMxF0gknlWX4duuAJFi2/HuIRi6C3w95tOenRa0GKOY= +go.opentelemetry.io/collector/processor/processortest v0.115.0 h1:j9HEaYFOeOB6VYl9zGhBnhQbTkqGBa2udUvu5NTh6hc= +go.opentelemetry.io/collector/processor/processortest v0.115.0/go.mod h1:Gws+VEnp/eW3qAqPpqbKsrbnnxxNfyDjqrfUXbZfZic= +go.opentelemetry.io/collector/receiver v0.115.0 h1:55Q3Jvj6zHCIA1psKqi/3kEMJO4OqUF5tNAEYNdB1U8= +go.opentelemetry.io/collector/receiver v0.115.0/go.mod h1:nBSCh2O/WUcfgpJ+Jpz+B0z0Hn5jHeRvF2WmLij5EIY= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0 h1:R9JLaj2Al93smIPUkbJshAkb/cY0H5JBOxIx+Zu0NG4= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0/go.mod h1:05E5hGujWeeXJmzKZwTdHyZ/+rRyrQlQB5p5Q2XY39M= +go.opentelemetry.io/collector/receiver/receivertest v0.115.0 h1:OiB684SbHQi6/Pd3ZH0cXjYvCpBS9ilQBfTQx0wVXHg= +go.opentelemetry.io/collector/receiver/receivertest v0.115.0/go.mod h1:Y8Z9U/bz9Xpyt8GI8DxZZgryw3mnnIw+AeKVLTD2cP8= +go.opentelemetry.io/collector/semconv v0.115.0 h1:SoqMvg4ZEB3mz2EdAb6XYa+TuMo5Mir5FRBr3nVFUDY= +go.opentelemetry.io/collector/semconv v0.115.0/go.mod h1:N6XE8Q0JKgBN2fAhkUQtqK9LT7rEGR6+Wu/Rtbal1iI= +go.opentelemetry.io/collector/service v0.115.0 h1:k4GAOiI5tZgB2QKgwA6c3TeAVr7QL/ft5cOQbzUr8Iw= +go.opentelemetry.io/collector/service v0.115.0/go.mod h1:DKde9LMhNebdREecDSsqiTFLI2wRc+IoV4/wGxU6goY= go.opentelemetry.io/contrib/bridges/otelzap v0.6.0 h1:j8icMXyyqNf6HGuwlYhniPnVsbJIq7n+WirDu3VAJdQ= go.opentelemetry.io/contrib/bridges/otelzap v0.6.0/go.mod h1:evIOZpl+kAlU5IsaYX2Siw+IbpacAZvXemVsgt70uvw= go.opentelemetry.io/contrib/config v0.10.0 h1:2JknAzMaYjxrHkTnZh3eOme/Y2P5eHE2SWfhfV6Xd6c= diff --git a/comp/otelcol/collector-contrib/impl/components.go b/comp/otelcol/collector-contrib/impl/components.go index c5cdd8d5504c2..82de6f29c43a8 100644 --- a/comp/otelcol/collector-contrib/impl/components.go +++ b/comp/otelcol/collector-contrib/impl/components.go @@ -8,29 +8,15 @@ package collectorcontribimpl import ( - "go.opentelemetry.io/collector/component" - "go.opentelemetry.io/collector/connector" - "go.opentelemetry.io/collector/exporter" - "go.opentelemetry.io/collector/extension" - "go.opentelemetry.io/collector/otelcol" - "go.opentelemetry.io/collector/processor" - "go.opentelemetry.io/collector/receiver" spanmetricsconnector "github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector" - debugexporter "go.opentelemetry.io/collector/exporter/debugexporter" - nopexporter "go.opentelemetry.io/collector/exporter/nopexporter" - otlpexporter "go.opentelemetry.io/collector/exporter/otlpexporter" - otlphttpexporter "go.opentelemetry.io/collector/exporter/otlphttpexporter" sapmexporter "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter" - zpagesextension "go.opentelemetry.io/collector/extension/zpagesextension" healthcheckextension "github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension" - pprofextension "github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension" dockerobserver "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver" ecsobserver "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver" ecstaskobserver "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver" hostobserver "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver" k8sobserver "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver" - batchprocessor "go.opentelemetry.io/collector/processor/batchprocessor" - memorylimiterprocessor "go.opentelemetry.io/collector/processor/memorylimiterprocessor" + pprofextension "github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension" attributesprocessor "github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor" cumulativetodeltaprocessor "github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor" filterprocessor "github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor" @@ -42,8 +28,6 @@ import ( routingprocessor "github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor" tailsamplingprocessor "github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor" transformprocessor "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor" - nopreceiver "go.opentelemetry.io/collector/receiver/nopreceiver" - otlpreceiver "go.opentelemetry.io/collector/receiver/otlpreceiver" filelogreceiver "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver" fluentforwardreceiver "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver" hostmetricsreceiver "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver" @@ -51,6 +35,22 @@ import ( prometheusreceiver "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver" receivercreator "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator" zipkinreceiver "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver" + "go.opentelemetry.io/collector/component" + "go.opentelemetry.io/collector/connector" + "go.opentelemetry.io/collector/exporter" + debugexporter "go.opentelemetry.io/collector/exporter/debugexporter" + nopexporter "go.opentelemetry.io/collector/exporter/nopexporter" + otlpexporter "go.opentelemetry.io/collector/exporter/otlpexporter" + otlphttpexporter "go.opentelemetry.io/collector/exporter/otlphttpexporter" + "go.opentelemetry.io/collector/extension" + zpagesextension "go.opentelemetry.io/collector/extension/zpagesextension" + "go.opentelemetry.io/collector/otelcol" + "go.opentelemetry.io/collector/processor" + batchprocessor "go.opentelemetry.io/collector/processor/batchprocessor" + memorylimiterprocessor "go.opentelemetry.io/collector/processor/memorylimiterprocessor" + "go.opentelemetry.io/collector/receiver" + nopreceiver "go.opentelemetry.io/collector/receiver/nopreceiver" + otlpreceiver "go.opentelemetry.io/collector/receiver/otlpreceiver" ) func components() (otelcol.Factories, error) { @@ -71,14 +71,14 @@ func components() (otelcol.Factories, error) { return otelcol.Factories{}, err } factories.ExtensionModules = make(map[component.Type]string, len(factories.Extensions)) - factories.ExtensionModules[zpagesextension.NewFactory().Type()] = "go.opentelemetry.io/collector/extension/zpagesextension v0.114.0" - factories.ExtensionModules[healthcheckextension.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0" - factories.ExtensionModules[pprofextension.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0" - factories.ExtensionModules[dockerobserver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.114.0" - factories.ExtensionModules[ecsobserver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.114.0" - factories.ExtensionModules[ecstaskobserver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.114.0" - factories.ExtensionModules[hostobserver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.114.0" - factories.ExtensionModules[k8sobserver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.114.0" + factories.ExtensionModules[zpagesextension.NewFactory().Type()] = "go.opentelemetry.io/collector/extension/zpagesextension v0.115.0" + factories.ExtensionModules[healthcheckextension.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.115.0" + factories.ExtensionModules[pprofextension.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.115.0" + factories.ExtensionModules[dockerobserver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.115.0" + factories.ExtensionModules[ecsobserver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.115.0" + factories.ExtensionModules[ecstaskobserver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.115.0" + factories.ExtensionModules[hostobserver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.115.0" + factories.ExtensionModules[k8sobserver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.115.0" factories.Receivers, err = receiver.MakeFactoryMap( nopreceiver.NewFactory(), @@ -95,15 +95,15 @@ func components() (otelcol.Factories, error) { return otelcol.Factories{}, err } factories.ReceiverModules = make(map[component.Type]string, len(factories.Receivers)) - factories.ReceiverModules[nopreceiver.NewFactory().Type()] = "go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0" - factories.ReceiverModules[otlpreceiver.NewFactory().Type()] = "go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0" - factories.ReceiverModules[filelogreceiver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.114.0" - factories.ReceiverModules[fluentforwardreceiver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.114.0" - factories.ReceiverModules[hostmetricsreceiver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.114.0" - factories.ReceiverModules[jaegerreceiver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.114.0" - factories.ReceiverModules[prometheusreceiver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0" - factories.ReceiverModules[receivercreator.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.114.0" - factories.ReceiverModules[zipkinreceiver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.114.0" + factories.ReceiverModules[nopreceiver.NewFactory().Type()] = "go.opentelemetry.io/collector/receiver/nopreceiver v0.115.0" + factories.ReceiverModules[otlpreceiver.NewFactory().Type()] = "go.opentelemetry.io/collector/receiver/otlpreceiver v0.115.0" + factories.ReceiverModules[filelogreceiver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.115.0" + factories.ReceiverModules[fluentforwardreceiver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.115.0" + factories.ReceiverModules[hostmetricsreceiver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.115.0" + factories.ReceiverModules[jaegerreceiver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.115.0" + factories.ReceiverModules[prometheusreceiver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.115.0" + factories.ReceiverModules[receivercreator.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.115.0" + factories.ReceiverModules[zipkinreceiver.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.115.0" factories.Exporters, err = exporter.MakeFactoryMap( debugexporter.NewFactory(), @@ -116,11 +116,11 @@ func components() (otelcol.Factories, error) { return otelcol.Factories{}, err } factories.ExporterModules = make(map[component.Type]string, len(factories.Exporters)) - factories.ExporterModules[debugexporter.NewFactory().Type()] = "go.opentelemetry.io/collector/exporter/debugexporter v0.114.0" - factories.ExporterModules[nopexporter.NewFactory().Type()] = "go.opentelemetry.io/collector/exporter/nopexporter v0.114.0" - factories.ExporterModules[otlpexporter.NewFactory().Type()] = "go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0" - factories.ExporterModules[otlphttpexporter.NewFactory().Type()] = "go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0" - factories.ExporterModules[sapmexporter.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.114.0" + factories.ExporterModules[debugexporter.NewFactory().Type()] = "go.opentelemetry.io/collector/exporter/debugexporter v0.115.0" + factories.ExporterModules[nopexporter.NewFactory().Type()] = "go.opentelemetry.io/collector/exporter/nopexporter v0.115.0" + factories.ExporterModules[otlpexporter.NewFactory().Type()] = "go.opentelemetry.io/collector/exporter/otlpexporter v0.115.0" + factories.ExporterModules[otlphttpexporter.NewFactory().Type()] = "go.opentelemetry.io/collector/exporter/otlphttpexporter v0.115.0" + factories.ExporterModules[sapmexporter.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.115.0" factories.Processors, err = processor.MakeFactoryMap( batchprocessor.NewFactory(), @@ -141,19 +141,19 @@ func components() (otelcol.Factories, error) { return otelcol.Factories{}, err } factories.ProcessorModules = make(map[component.Type]string, len(factories.Processors)) - factories.ProcessorModules[batchprocessor.NewFactory().Type()] = "go.opentelemetry.io/collector/processor/batchprocessor v0.114.0" - factories.ProcessorModules[memorylimiterprocessor.NewFactory().Type()] = "go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.114.0" - factories.ProcessorModules[attributesprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.114.0" - factories.ProcessorModules[cumulativetodeltaprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.114.0" - factories.ProcessorModules[filterprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.114.0" - factories.ProcessorModules[groupbyattrsprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.114.0" - factories.ProcessorModules[k8sattributesprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.114.0" - factories.ProcessorModules[probabilisticsamplerprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0" - factories.ProcessorModules[resourcedetectionprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.114.0" - factories.ProcessorModules[resourceprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.114.0" - factories.ProcessorModules[routingprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.114.0" - factories.ProcessorModules[tailsamplingprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.114.0" - factories.ProcessorModules[transformprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0" + factories.ProcessorModules[batchprocessor.NewFactory().Type()] = "go.opentelemetry.io/collector/processor/batchprocessor v0.115.0" + factories.ProcessorModules[memorylimiterprocessor.NewFactory().Type()] = "go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.115.0" + factories.ProcessorModules[attributesprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.115.0" + factories.ProcessorModules[cumulativetodeltaprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.115.0" + factories.ProcessorModules[filterprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.115.0" + factories.ProcessorModules[groupbyattrsprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.115.0" + factories.ProcessorModules[k8sattributesprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.115.0" + factories.ProcessorModules[probabilisticsamplerprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.115.0" + factories.ProcessorModules[resourcedetectionprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.115.0" + factories.ProcessorModules[resourceprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.115.0" + factories.ProcessorModules[routingprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.115.0" + factories.ProcessorModules[tailsamplingprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.115.0" + factories.ProcessorModules[transformprocessor.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.115.0" factories.Connectors, err = connector.MakeFactoryMap( spanmetricsconnector.NewFactory(), @@ -162,7 +162,7 @@ func components() (otelcol.Factories, error) { return otelcol.Factories{}, err } factories.ConnectorModules = make(map[component.Type]string, len(factories.Connectors)) - factories.ConnectorModules[spanmetricsconnector.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0" + factories.ConnectorModules[spanmetricsconnector.NewFactory().Type()] = "github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.115.0" return factories, nil } diff --git a/comp/otelcol/collector-contrib/impl/go.mod b/comp/otelcol/collector-contrib/impl/go.mod index d23c34cd7c2f2..e816b6e25e500 100644 --- a/comp/otelcol/collector-contrib/impl/go.mod +++ b/comp/otelcol/collector-contrib/impl/go.mod @@ -4,60 +4,59 @@ module github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib/impl go 1.22.0 -toolchain go1.22.8 +toolchain go1.23.3 require ( github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib/def v0.0.0-00010101000000-000000000000 - github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.114.0 - go.opentelemetry.io/collector/component v0.114.0 - go.opentelemetry.io/collector/connector v0.114.0 - go.opentelemetry.io/collector/exporter v0.114.0 - go.opentelemetry.io/collector/exporter/debugexporter v0.114.0 - go.opentelemetry.io/collector/exporter/nopexporter v0.114.0 - go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0 - go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0 - go.opentelemetry.io/collector/extension v0.114.0 - go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 - go.opentelemetry.io/collector/otelcol v0.114.0 - go.opentelemetry.io/collector/processor v0.114.0 - go.opentelemetry.io/collector/processor/batchprocessor v0.114.0 - go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.114.0 - go.opentelemetry.io/collector/receiver v0.114.0 - go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0 - go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.115.0 + go.opentelemetry.io/collector/component v0.115.0 + go.opentelemetry.io/collector/connector v0.115.0 + go.opentelemetry.io/collector/exporter v0.115.0 + go.opentelemetry.io/collector/exporter/debugexporter v0.115.0 + go.opentelemetry.io/collector/exporter/nopexporter v0.115.0 + go.opentelemetry.io/collector/exporter/otlpexporter v0.115.0 + go.opentelemetry.io/collector/exporter/otlphttpexporter v0.115.0 + go.opentelemetry.io/collector/extension v0.115.0 + go.opentelemetry.io/collector/extension/zpagesextension v0.115.0 + go.opentelemetry.io/collector/otelcol v0.115.0 + go.opentelemetry.io/collector/processor v0.115.0 + go.opentelemetry.io/collector/processor/batchprocessor v0.115.0 + go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.115.0 + go.opentelemetry.io/collector/receiver v0.115.0 + go.opentelemetry.io/collector/receiver/nopreceiver v0.115.0 + go.opentelemetry.io/collector/receiver/otlpreceiver v0.115.0 ) require ( - cloud.google.com/go/auth v0.9.5 // indirect - cloud.google.com/go/auth/oauth2adapt v0.2.4 // indirect + cloud.google.com/go/auth v0.7.0 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect cloud.google.com/go/compute/metadata v0.5.2 // indirect - dario.cat/mergo v1.0.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect @@ -79,7 +78,7 @@ require ( github.com/bmatcuk/doublestar/v4 v4.7.1 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 // indirect + github.com/cncf/xds/go v0.0.0-20240723142845-024c85f92f20 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dennwc/varint v1.0.0 // indirect github.com/digitalocean/godo v1.118.0 // indirect @@ -90,11 +89,11 @@ require ( github.com/ebitengine/purego v0.8.1 // indirect github.com/elastic/go-grok v0.3.1 // indirect github.com/elastic/lunes v0.1.0 // indirect - github.com/emicklei/go-restful/v3 v3.12.1 // indirect + github.com/emicklei/go-restful/v3 v3.11.0 // indirect github.com/envoyproxy/go-control-plane v0.13.0 // indirect github.com/envoyproxy/protoc-gen-validate v1.1.0 // indirect github.com/expr-lang/expr v1.16.9 // indirect - github.com/fatih/color v1.18.0 // indirect + github.com/fatih/color v1.16.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/fxamacker/cbor/v2 v2.7.0 // indirect @@ -117,18 +116,17 @@ require ( github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect - github.com/google/btree v1.1.3 // indirect github.com/google/gnostic-models v0.6.8 // indirect github.com/google/go-cmp v0.6.0 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/s2a-go v0.1.8 // indirect + github.com/google/s2a-go v0.1.7 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.3.4 // indirect - github.com/googleapis/gax-go/v2 v2.13.0 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect + github.com/googleapis/gax-go/v2 v2.12.5 // indirect github.com/gophercloud/gophercloud v1.13.0 // indirect github.com/gorilla/mux v1.8.1 // indirect - github.com/gorilla/websocket v1.5.1 // indirect + github.com/gorilla/websocket v1.5.0 // indirect github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 // indirect github.com/hashicorp/consul/api v1.30.0 // indirect @@ -140,11 +138,9 @@ require ( github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-retryablehttp v0.7.7 // indirect github.com/hashicorp/go-rootcerts v1.0.2 // indirect - github.com/hashicorp/go-sockaddr v1.0.6 // indirect github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/golang-lru v1.0.2 // indirect github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect - github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/hashicorp/nomad/api v0.0.0-20240717122358-3d93bd3778f3 // indirect github.com/hashicorp/serf v0.10.1 // indirect github.com/hetznercloud/hcloud-go/v2 v2.10.2 // indirect @@ -173,40 +169,37 @@ require ( github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/miekg/dns v1.1.62 // indirect + github.com/miekg/dns v1.1.61 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/moby/docker-image-spec v1.3.1 // indirect - github.com/moby/sys/user v0.3.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mostynb/go-grpc-compression v1.2.3 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect - github.com/onsi/ginkgo/v2 v2.20.2 // indirect - github.com/onsi/gomega v1.34.1 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.115.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0 // indirect github.com/openshift/api v3.9.0+incompatible // indirect @@ -229,68 +222,69 @@ require ( github.com/prometheus/prometheus v0.54.1 // indirect github.com/rs/cors v1.11.1 // indirect github.com/scaleway/scaleway-sdk-go v1.0.0-beta.29 // indirect - github.com/shirou/gopsutil/v4 v4.24.10 // indirect - github.com/signalfx/sapm-proto v0.16.0 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect + github.com/signalfx/sapm-proto v0.17.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/stretchr/testify v1.10.0 // indirect github.com/tinylib/msgp v1.2.4 // indirect - github.com/tklauser/go-sysconf v0.3.14 // indirect - github.com/tklauser/numcpus v0.8.0 // indirect + github.com/tklauser/go-sysconf v0.3.12 // indirect + github.com/tklauser/numcpus v0.6.1 // indirect github.com/ua-parser/uap-go v0.0.0-20240611065828-3a4781585db6 // indirect github.com/valyala/fastjson v1.6.4 // indirect github.com/vultr/govultr/v2 v2.17.2 // indirect github.com/x448/float16 v0.8.4 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/collector v0.114.0 // indirect - go.opentelemetry.io/collector/client v1.20.0 // indirect - go.opentelemetry.io/collector/component/componentstatus v0.114.0 // indirect - go.opentelemetry.io/collector/component/componenttest v0.114.0 // indirect - go.opentelemetry.io/collector/config/configauth v0.114.0 // indirect - go.opentelemetry.io/collector/config/configcompression v1.20.0 // indirect - go.opentelemetry.io/collector/config/configgrpc v0.114.0 // indirect - go.opentelemetry.io/collector/config/confighttp v0.114.0 // indirect - go.opentelemetry.io/collector/config/confignet v1.20.0 // indirect - go.opentelemetry.io/collector/config/configopaque v1.20.0 // indirect - go.opentelemetry.io/collector/config/configretry v1.20.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect - go.opentelemetry.io/collector/config/configtls v1.20.0 // indirect - go.opentelemetry.io/collector/config/internal v0.114.0 // indirect - go.opentelemetry.io/collector/confmap v1.20.0 // indirect - go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/connector/connectortest v0.114.0 // indirect - go.opentelemetry.io/collector/consumer v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumertest v0.114.0 // indirect - go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/exporter/exportertest v0.114.0 // indirect - go.opentelemetry.io/collector/extension/auth v0.114.0 // indirect - go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 // indirect - go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0 // indirect - go.opentelemetry.io/collector/extension/extensiontest v0.114.0 // indirect - go.opentelemetry.io/collector/featuregate v1.20.0 // indirect - go.opentelemetry.io/collector/filter v0.114.0 // indirect - go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0 // indirect - go.opentelemetry.io/collector/internal/memorylimiter v0.114.0 // indirect - go.opentelemetry.io/collector/internal/sharedcomponent v0.114.0 // indirect - go.opentelemetry.io/collector/pdata v1.20.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.114.0 // indirect - go.opentelemetry.io/collector/pdata/testdata v0.114.0 // indirect - go.opentelemetry.io/collector/pipeline v0.114.0 // indirect - go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/processor/processorhelper/processorhelperprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/processor/processortest v0.114.0 // indirect - go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/receiver/receivertest v0.114.0 // indirect - go.opentelemetry.io/collector/semconv v0.114.0 // indirect - go.opentelemetry.io/collector/service v0.114.0 // indirect + go.opentelemetry.io/collector v0.115.0 // indirect + go.opentelemetry.io/collector/client v1.21.0 // indirect + go.opentelemetry.io/collector/component/componentstatus v0.115.0 // indirect + go.opentelemetry.io/collector/component/componenttest v0.115.0 // indirect + go.opentelemetry.io/collector/config/configauth v0.115.0 // indirect + go.opentelemetry.io/collector/config/configcompression v1.21.0 // indirect + go.opentelemetry.io/collector/config/configgrpc v0.115.0 // indirect + go.opentelemetry.io/collector/config/confighttp v0.115.0 // indirect + go.opentelemetry.io/collector/config/confignet v1.21.0 // indirect + go.opentelemetry.io/collector/config/configopaque v1.21.0 // indirect + go.opentelemetry.io/collector/config/configretry v1.21.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.115.0 // indirect + go.opentelemetry.io/collector/config/configtls v1.21.0 // indirect + go.opentelemetry.io/collector/config/internal v0.115.0 // indirect + go.opentelemetry.io/collector/confmap v1.21.0 // indirect + go.opentelemetry.io/collector/connector/connectorprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/connector/connectortest v0.115.0 // indirect + go.opentelemetry.io/collector/consumer v1.21.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror v0.115.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/consumer/consumertest v0.115.0 // indirect + go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/exporter/exportertest v0.115.0 // indirect + go.opentelemetry.io/collector/extension/auth v0.115.0 // indirect + go.opentelemetry.io/collector/extension/experimental/storage v0.115.0 // indirect + go.opentelemetry.io/collector/extension/extensioncapabilities v0.115.0 // indirect + go.opentelemetry.io/collector/extension/extensiontest v0.115.0 // indirect + go.opentelemetry.io/collector/featuregate v1.21.0 // indirect + go.opentelemetry.io/collector/filter v0.115.0 // indirect + go.opentelemetry.io/collector/internal/fanoutconsumer v0.115.0 // indirect + go.opentelemetry.io/collector/internal/memorylimiter v0.115.0 // indirect + go.opentelemetry.io/collector/internal/sharedcomponent v0.115.0 // indirect + go.opentelemetry.io/collector/pdata v1.21.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.115.0 // indirect + go.opentelemetry.io/collector/pdata/testdata v0.115.0 // indirect + go.opentelemetry.io/collector/pipeline v0.115.0 // indirect + go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/processor/processorhelper/processorhelperprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/processor/processorprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/processor/processortest v0.115.0 // indirect + go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/receiver/receivertest v0.115.0 // indirect + go.opentelemetry.io/collector/scraper v0.115.0 // indirect + go.opentelemetry.io/collector/semconv v0.115.0 // indirect + go.opentelemetry.io/collector/service v0.115.0 // indirect go.opentelemetry.io/contrib/bridges/otelzap v0.6.0 // indirect go.opentelemetry.io/contrib/config v0.10.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 // indirect @@ -327,10 +321,10 @@ require ( golang.org/x/sys v0.27.0 // indirect golang.org/x/term v0.26.0 // indirect golang.org/x/text v0.20.0 // indirect - golang.org/x/time v0.8.0 // indirect + golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.27.0 // indirect gonum.org/v1/gonum v0.15.1 // indirect - google.golang.org/api v0.199.0 // indirect + google.golang.org/api v0.188.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect @@ -339,13 +333,12 @@ require ( gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - gotest.tools/v3 v3.5.1 // indirect - k8s.io/api v0.31.2 // indirect - k8s.io/apimachinery v0.31.2 // indirect - k8s.io/client-go v0.31.2 // indirect + k8s.io/api v0.31.3 // indirect + k8s.io/apimachinery v0.31.3 // indirect + k8s.io/client-go v0.31.3 // indirect k8s.io/klog/v2 v2.130.1 // indirect - k8s.io/kube-openapi v0.0.0-20240430033511-f0e62f92d13f // indirect - k8s.io/utils v0.0.0-20240821151609-f90d01438635 // indirect + k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect + k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect sigs.k8s.io/yaml v1.4.0 // indirect diff --git a/comp/otelcol/collector-contrib/impl/go.sum b/comp/otelcol/collector-contrib/impl/go.sum index fe8e6e271ecb8..5672b3b4c0c95 100644 --- a/comp/otelcol/collector-contrib/impl/go.sum +++ b/comp/otelcol/collector-contrib/impl/go.sum @@ -13,10 +13,10 @@ cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKV cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go/auth v0.9.5 h1:4CTn43Eynw40aFVr3GpPqsQponx2jv0BQpjvajsbbzw= -cloud.google.com/go/auth v0.9.5/go.mod h1:Xo0n7n66eHyOWWCnitop6870Ilwo3PiZyodVkkH1xWM= -cloud.google.com/go/auth/oauth2adapt v0.2.4 h1:0GWE/FUsXhf6C+jAkWgYm7X9tK8cuEIfy19DBn6B6bY= -cloud.google.com/go/auth/oauth2adapt v0.2.4/go.mod h1:jC/jOpwFP6JBxhB3P5Rr0a9HLMC/Pe3eaL4NmdvqPtc= +cloud.google.com/go/auth v0.7.0 h1:kf/x9B3WTbBUHkC+1VS8wwwli9TzhSt0vSTVBmMR8Ts= +cloud.google.com/go/auth v0.7.0/go.mod h1:D+WqdrpcjmiCgWrXmLLxOVq1GACoE36chW6KXoEvuIw= +cloud.google.com/go/auth/oauth2adapt v0.2.2 h1:+TTV8aXpjeChS9M+aTtN/TjdQnzJvmzKFt//oWu7HX4= +cloud.google.com/go/auth/oauth2adapt v0.2.2/go.mod h1:wcYjgpZI9+Yu7LyYBg4pqSiaRkfEK3GQcpb7C/uyF1Q= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= @@ -36,8 +36,8 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= -dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= +dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0 h1:GJHeeA2N7xrG3q30L2UXDyuWRzDM900/65j70wcM4Ww= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0/go.mod h1:l38EPgmsp71HHLq9j7De57JcKOWPyhrsW1Awm1JS6K0= @@ -132,8 +132,8 @@ github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6D github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 h1:QVw89YDxXxEe+l8gU8ETbOasdwEV+avkR75ZzsVV9WI= -github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= +github.com/cncf/xds/go v0.0.0-20240723142845-024c85f92f20 h1:N+3sFI5GUjRKBi+i0TxYVST9h4Ie192jJWpHvthBBgg= +github.com/cncf/xds/go v0.0.0-20240723142845-024c85f92f20/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/containerd/platforms v0.2.1 h1:zvwtM3rz2YHPQsF2CHYM8+KtB5dvhISiXh5ZpSBQv6A= @@ -171,8 +171,8 @@ github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkg github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful/v3 v3.8.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= -github.com/emicklei/go-restful/v3 v3.12.1 h1:PJMDIM/ak7btuL8Ex0iYET9hxM3CI2sjZtzpL63nKAU= -github.com/emicklei/go-restful/v3 v3.12.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= +github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -188,8 +188,8 @@ github.com/expr-lang/expr v1.16.9/go.mod h1:8/vRC7+7HBzESEqt5kKpYXxrxkr31SaO8r40 github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= -github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= -github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= +github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= +github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= @@ -302,8 +302,8 @@ github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXi github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= -github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= +github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= +github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ= github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= @@ -339,22 +339,22 @@ github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 h1:5iH8iuqE5apketRbSFBy+X1V0o+l+8NF1avt4HWl7cA= -github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/pprof v0.0.0-20240711041743-f6c9dda6c6da h1:xRmpO92tb8y+Z85iUOMOicpCfaYcv7o3Cg3wKrIpg8g= +github.com/google/pprof v0.0.0-20240711041743-f6c9dda6c6da/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM= -github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA= +github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= +github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw= -github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= +github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= +github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.13.0 h1:yitjD5f7jQHhyDsnhKEBU52NdvvdSeGzlAnDPT0hH1s= -github.com/googleapis/gax-go/v2 v2.13.0/go.mod h1:Z/fvTZXF8/uw7Xu5GuslPw+bplx6SS338j1Is2S+B7A= +github.com/googleapis/gax-go/v2 v2.12.5 h1:8gw9KZK8TiVKB6q3zHY3SBzLnrGp6HQjyfYBYGmXdxA= +github.com/googleapis/gax-go/v2 v2.12.5/go.mod h1:BUDKcWo+RaKq5SC9vVYL0wLADa3VcfswbOMMRmB9H3E= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= github.com/gophercloud/gophercloud v1.13.0 h1:8iY9d1DAbzMW6Vok1AxbbK5ZaUjzMp0tdyt4fX9IeJ0= github.com/gophercloud/gophercloud v1.13.0/go.mod h1:aAVqcocTSXh2vYFZ1JTvx4EQmfgzxRcNupUfxZbBNDM= @@ -363,8 +363,8 @@ github.com/gorilla/handlers v1.5.2/go.mod h1:dX+xVpaxdSw+q0Qek8SSsl3dfMk3jNddUkM github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= -github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= +github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc h1:GN2Lv3MGO7AS6PrRoT6yV5+wkrOpcszoIsO4+4ds248= github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc/go.mod h1:+JKpmjMGhpgPL+rXZ5nsZieVzvarn86asRlBg4uNGnk= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= @@ -402,8 +402,8 @@ github.com/hashicorp/go-retryablehttp v0.7.7/go.mod h1:pkQpWZeYWskR+D1tR2O5OcBFO github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-sockaddr v1.0.6 h1:RSG8rKU28VTUTvEKghe5gIhIQpv8evvNpnDEyqO4u9I= -github.com/hashicorp/go-sockaddr v1.0.6/go.mod h1:uoUUmtwU7n9Dv3O4SNLeFvg0SxQ3lyjsj6+CCykpaxI= +github.com/hashicorp/go-sockaddr v1.0.2 h1:ztczhD1jLxIRjVejw8gFomI1BQZOe2WoVOu0SyteCQc= +github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= @@ -418,8 +418,8 @@ github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iP github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= -github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= -github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= +github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= github.com/hashicorp/memberlist v0.5.0 h1:EtYPN8DpAURiapus508I4n9CzHs2W+8NZGbmmR/prTM= @@ -535,8 +535,8 @@ github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04 github.com/maxatome/go-testdeep v1.12.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= -github.com/miekg/dns v1.1.62 h1:cN8OuEF1/x5Rq6Np+h1epln8OiyPWV+lROx9LxcGgIQ= -github.com/miekg/dns v1.1.62/go.mod h1:mvDlcItzm+br7MToIKqkglaGhlFMHJ9DTNNWONWXbNQ= +github.com/miekg/dns v1.1.61 h1:nLxbwF3XxhwVSm8g9Dghm9MHPaUZuqhPiGL+675ZmEs= +github.com/miekg/dns v1.1.61/go.mod h1:mnAarhS3nWaW+NVP2wTkYVIZyHNJ098SJZUki3eykwQ= github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= @@ -557,8 +557,8 @@ github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YO github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= -github.com/moby/sys/user v0.3.0 h1:9ni5DlcW5an3SvRSx4MouotOygvzaXbaSrc/wGDFWPo= -github.com/moby/sys/user v0.3.0/go.mod h1:bG+tYYYJgaMtRKgEmuueC0hJEAZWwtIbZTB+85uoHjs= +github.com/moby/sys/user v0.1.0 h1:WmZ93f5Ux6het5iituh9x2zAG7NFY9Aqi49jjE1PaQg= +github.com/moby/sys/user v0.1.0/go.mod h1:fKJhFOnsCN6xZ5gSfbM6zaHGgDJMrqt9/reuj4T7MmU= github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28= github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= @@ -591,6 +591,7 @@ github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= +github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU= github.com/onsi/ginkgo/v2 v2.1.6/go.mod h1:MEH45j8TBi6u9BMogfbp0stKC5cdGjumZj5Y7AG4VIk= @@ -601,8 +602,8 @@ github.com/onsi/ginkgo/v2 v2.7.0/go.mod h1:yjiuMwPokqY1XauOgju45q3sJt6VzQ/Fict1L github.com/onsi/ginkgo/v2 v2.8.1/go.mod h1:N1/NbDngAFcSLdyZ+/aYTYGSlq9qMCS/cNKGJjy+csc= github.com/onsi/ginkgo/v2 v2.9.0/go.mod h1:4xkjoL/tZv4SMWeww56BU5kAt19mVB47gTWxmrTcxyk= github.com/onsi/ginkgo/v2 v2.9.1/go.mod h1:FEcmzVcCHl+4o9bQZVab+4dC9+j+91t2FHSzmGAPfuo= -github.com/onsi/ginkgo/v2 v2.20.2 h1:7NVCeyIWROIAheY21RLS+3j2bb52W0W82tkberYytp4= -github.com/onsi/ginkgo/v2 v2.20.2/go.mod h1:K9gyxPIlb+aIvnZ8bd9Ak+YP18w3APlR+5coaZoE2ag= +github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA= +github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= @@ -618,116 +619,116 @@ github.com/onsi/gomega v1.26.0/go.mod h1:r+zV744Re+DiYCIPRlYOTxn0YkOLcAnW8k1xXdM github.com/onsi/gomega v1.27.1/go.mod h1:aHX5xOykVYzWOV4WqQy0sy8BQptgukenXpCXfadcIAw= github.com/onsi/gomega v1.27.3/go.mod h1:5vG284IBtfDAmDyrK+eGyZmUgUlmi+Wngqo557cZ6Gw= github.com/onsi/gomega v1.27.4/go.mod h1:riYq/GJKh8hhoM01HN6Vmuy93AarCXCBGpvFDK3q3fQ= -github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= -github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0 h1:oA79wMjQSQBKz+X90LD5edNOyaEsewspJRBYgxliEMA= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0/go.mod h1:uk7Z36vhLtevNy5672jGxgzNJA2LND6wmispTuhHCxI= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.114.0 h1:quLs6NbDeG2x2eLmncaq/P4yvnCPLAelFqXac2eMRSw= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.114.0/go.mod h1:xX2v2kixYWZbFvnT5re3BGg2pyLy78KSIiMed7P2c/c= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.114.0 h1:93/S5dh3snAbC81fuGP7c+nn2OhgP59UTrXqmFtK1Ww= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.114.0/go.mod h1:fyU1pLPKcXDWkUwO075jt1YOjFS/XIZXDwHEV3xy93g= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 h1:G7SHyt5TvFSEsiaxyhZdqkjcRoK2rP5wl4a3Mu31JM4= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0/go.mod h1:TRsDReUh7ALEUutKVoLlGMRc2QECZAyT/5g/cpAr+aw= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.114.0 h1:xZL2FLnVTKqVeZQuTBSMmVLr3FQUN/N8x7VL70Gd07k= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.114.0/go.mod h1:betAqGGfDFb8SLyMYBwH9BQyB9wzxWOWXXC/Ht6/kas= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.114.0 h1:OwLYURmQGKEo9jyhlMsI3JtFLiYChZIrA2M3MxuomTY= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.114.0/go.mod h1:1UZtI+tYvVvvKkPv5NmggvPpxkQEyKaUVg2ygtCjVoQ= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.114.0 h1:aAobCSGIhUYohlzbMQdfDDtQoKlofPROL3+WSSPxz+c= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.114.0/go.mod h1:4m8sQMLNgHexFom7YEFi2khcsUUqKxEdIWgUOYKcmLI= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.114.0 h1:t59jxlv7dIF+f6SaG8V5mx/+Hxfoy4S5qlMpJlkcPo0= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.114.0/go.mod h1:HbUoZclDdXYC7L6lvh44olwDpJBIoTw9fls1bjqyMZY= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.114.0 h1:1TNrKEIfTHAhQDVzQczhReo2+Rw5q9VNCVZgq5SKq/Y= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.114.0/go.mod h1:3AzBMlWooaEO8LvLWqYQoOhqxQ+fAaUlC09sCicB91s= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.114.0 h1:FetZgJSBHH9xw1JKr3Wetek54bpVYkwJrVJJrO271vU= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.114.0/go.mod h1:QWdTwjk67PGv3AyMT+8yEQXU3laW+PMLCFE8PSewWkM= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 h1:6g5EvbygaEBqed0rJotGHcfxgxGV8hSN/4ZoZFfac5M= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0/go.mod h1:gU87iMdDAdHrQQCWTURbrlE/dLYgFecJ/+WBHuNMjQI= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.114.0 h1:mchuc816TxLpmsGvFbtGA3KBVx91vAXi7vJnlvsQdiU= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.114.0/go.mod h1:vgCMUWPVrfjNux9P9G053fRqGFF6BS3xtxNFZZdFTCM= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.114.0 h1:4qELD/ZwgvXE5PshGzJ9Eu+JEQdLIok6V1x8rvqL+yk= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.114.0/go.mod h1:3U1KoAsmQd9H37t8VkesFfB56tThrPsNVG+ddsMJ2zM= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.114.0 h1:0LbaoE7Aof8J4CVQ5kYv1QbuL3usTxLRSMFisDNBX9U= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.114.0/go.mod h1:ByoGXMLeHE/k5ELO3EITitVmvq3bh4Z/GVwWZZxrQ5s= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0 h1:d2wCLlENxH4I2axQWaogivx/5ZIjDYgn9MIf6sFxlJ4= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0/go.mod h1:Psyligv8GKL9WI3TraW3BLwkOX4TRxaaa1BBQQyICzA= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.114.0 h1:AReCF/mzq8+1BORde9m96xAZ+nnv22/B1b+H56hlFIs= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.114.0/go.mod h1:dCQeeAQww9++hvoqQ69QzTN6SGbq3DoVs1+Z1wcKAX8= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.114.0 h1:WrVBqO/ps3KvUyEhtdL/uDDHhKoszLEE1ywDbwskNRg= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.114.0/go.mod h1:JYklzR+ZxQaxjzlfJP3bxX6rQFl/Hbo0vd3yNj/1s1s= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.114.0 h1:dtW9JkkpAm33Y47estFyqEL0CW05DHGmlLQxZUSx78w= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.114.0/go.mod h1:FcClDm9XVV5tzUDzmH2Mhe6TfYiZ/3GSAQITnuCjZgg= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8stest v0.114.0 h1:Lgk9OkyDQQYWtfZ3DEyfQ+08NM4+dBO3fP0OQN10cXA= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8stest v0.114.0/go.mod h1:2/6/eY8Uvg+NfYDsAbND96A4u5q4UjcDlBJolYcj6jE= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.114.0 h1:cGJRIzB5N3oe1c8vD5HqCuy4dbQE9EDJZ9C7vJn+K8U= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.114.0/go.mod h1:p53t8aSCVoTKXVOsNx62rDLrSdEkBFB4H85yEiTWkyI= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.114.0 h1:lt87gwZaUP9Lh0EAgZFTYego0k89NU8K6Qkk82oR/n8= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.114.0/go.mod h1:nxxBsX9Z2Q7HQvybUTx8CzUvYCJewKBM1Eys6SiS0eg= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.114.0 h1:TrGpqqMJxh5fTzdu5HZORKvDiIUBK8b9K/3zUCGbjps= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.114.0/go.mod h1:mw+aVzR/3HtuGZE5xM6zEXHFv411QG8MxI8mQFJSd5c= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.114.0 h1:2uThKlp4NoQbIm7k9ZRGCKVJjMcibffb8NLcsPslq9o= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.114.0/go.mod h1:jSpHMXCxgNLBIfselixqXAUn0pXDfE5LEuNkz0WjK68= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.114.0 h1:Z+WmSDshEjfNy09A7+opWO01L5LwkZC3Ze9AgfLfuAk= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.114.0/go.mod h1:p58MQDR97vRdpY8vh6JuCqjKp0W+kpo5qHmuqhd7L00= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.114.0 h1:lvpwitQL0CDKHyExi+Wi0MPXGBjpgK5YbXljRYE6YTU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.114.0/go.mod h1:/peNiVTNFe3osINRwW88WB0v5BC1ifjEmDL5oui+ry0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.114.0 h1:SXi6JSSs2cWROnC1U2v3XysG3t58ilGUwoLqxpGuwFU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.114.0/go.mod h1:LSd6sus2Jvpg3M3vM4HgmVh3/dmMtcJmTqELrFOQFRg= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.114.0 h1:G6U2eHR2CGSYb2btot6l05o+mdqsC0ZN7dH8QssXSdk= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.114.0/go.mod h1:kZQvVVzpahX8kFUfEBmzFtDhkKAQW6i8XQCMozDRUlk= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0 h1:m8uPYU2rTj0sKiYgzCvIPajD3meiYsu+nX0hplUnlEU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0/go.mod h1:P0BaP92pXPkTyTmObfLYUoRBfMYU+i0hdS3oM1DpGJo= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0 h1:Qg80zPfNMlub7LO07VMDElOu3M2oxqdZgvvB+X72a4U= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0/go.mod h1:5qsGcjFV3WFI6J2onAlkR7Xd/8VtwJcECaDRZfW4Tb4= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0 h1:PwUMZ6fHMEUV5i9hUly+z3UujDTTdxQtWzL0rWc/lgA= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0/go.mod h1:YEHL6w4vvB9b0/lNwGjz8DyWXTF/7Xw0Hkgc3mGWwa8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 h1:mtSN/07RGQPi1/zHVSZg4G0qRtOoJpPew5jsQWv9uS0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0/go.mod h1:C9Zgh/N3j4NR2D+1FGAA1YizhFW9OS51DwLUFJTdXN4= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.114.0 h1:Xr3Hvm9cxOSQX94tLX1yX63uvuvtglJICrOz9YcxiuI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.114.0/go.mod h1:cgIgmEg66RhVtAv4JkIhHdy70kn2EtVhrH8CtyvhfuI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.114.0 h1:WymtAsFHYen4GTTTXvVqZCoMz6vPADYUf4xIP0Gvm+E= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.114.0/go.mod h1:FcTNci+LpU5x5FkHM0Su3k6/ESDHWQsL30AFISzaIyk= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.114.0 h1:eJxap/u8Q5wYnBcJTrTS1Tq6wq31SOlIr+FMJX5ZoC8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.114.0/go.mod h1:H7uIA2RBaxit2mSwSU8Wc7QXSJX7r8UR66YvdcLmtto= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.114.0 h1:tG98F8g5T7lKYaoxSh9e76agmkauPtXiMbQhuWAeG+I= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.114.0/go.mod h1:eN3xPxPcRZH0wofEQ1Greu1c561qEGeYv5Zt0uedmMM= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.114.0 h1:xDbTY8zDUP3RKG1kg1tmULnBkLEDMwmSpf9j2H0sIcc= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.114.0/go.mod h1:t5uoTcckI8kQeW1sZl8A+1UebVJPe47Qi3WQeNZu6w4= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.114.0 h1:fltPkjMuiVTtIVwoWUzbL0ad2CTCJsWfnCSDJQ9hSxU= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.114.0/go.mod h1:HcG364Is9u2EDqOUtQX0RwnbHtQqSh5+x2FdcYC+F1M= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.114.0 h1:rYwgdR8GE7QEtQlkQxXq5f1JQrd3v36g4yXXljicKoM= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.114.0/go.mod h1:TjEgPVMRxi93SdN0N0qv0hx5L+FF2csgo3YwfzVGJ3g= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.114.0 h1:QBR07Gaw6ePkufQ/AhHgBv4OlwzXlULTdiUnaKIlvLk= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.114.0/go.mod h1:coY0CV/sNj1hltRXKZr2gnrLvr7xUbnW+GhpCQpGR/Y= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.114.0 h1:ap7EK1GxLHau1jKJP8tYcZDb+tEntzx2Kj97XdNb7s4= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.114.0/go.mod h1:1uyslltGfwWhG7F/t41t43dBzrZpEkFzo2hR0OmyZi4= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.114.0 h1:nldvWnYvTjIDi1xmZKgS2b0vz0Ja9UMV2m7ffg/HMDk= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.114.0/go.mod h1:yRuZU0Rd/twuSQFme3WiVB7x9ECgIEwDBs2mPwkqUYY= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 h1:I4ZYVRYW3Cjb65sPENZ9kHam/JUMXNEp2n/knJ0C0Vc= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0/go.mod h1:4BhyIaOn2LS48WS+ZNix4TpP0+goq9gDEtGzth5Cr3M= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.114.0 h1:ttRj/3GIpg+vUTeBI+EBeeWdNuvBT3S/ayoqpvA9B9s= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.114.0/go.mod h1:xoJgFdZUIxlvF8eUHIYiZGmf39zAwditW3sc2SBirAo= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.114.0 h1:je7Aiyn5AHAcpCNpTN5Q4l2SIeqJEvtOjoaZhHszGrs= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.114.0/go.mod h1:cVG4aXgfQFSdSfhAgoawDmmKixogjlvqQtmjmqVJgb4= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.114.0 h1:AsYYMzt+ZGGQaq3S21REATxZsUI4aOuFAOPq09tSPnI= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.114.0/go.mod h1:ifqisebKudvS+YARMbFRyX8/UgdXitSfCD1JCoGOxlY= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.114.0 h1:NrD8Qo2CxrHRAlLuOHm75RtO1xEnul6DDkn6tQMsuSg= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.114.0/go.mod h1:XOlJzIYwicEPMxu6Gv9TL9pS6El+ffjQOAu/wPiL+Jg= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0 h1:lKG7Ghtba2l9P4FFP7I+SbVRqHEpXCGOZs367YTEwGc= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0/go.mod h1:5U/lrnkK5YtIeTFXI8OzDN/d827WtI6pQvu7/59pUVA= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.114.0 h1:Ivu3DRhbERboPxMJeyJpmretbKDJ3hsOAGBQXt2yY3U= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.114.0/go.mod h1:UrMGrA8bA1VeYhdiam7/Xu/U4joG6JftMULEVWLDbe0= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.114.0 h1:Yx0RUwviLdYyozkuqbfpEhSH+ehXlKsW5TtlZbiKm4Q= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.114.0/go.mod h1:Bh9h5hYTgr/zQgXUnvihkLvN1IMmVY/OFa8aHc3gMJU= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.114.0 h1:kSxkZPWBA6je7xXkpMWycjyc2BIMvLGD+OGTIRtJ0xw= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.114.0/go.mod h1:rBegsrFk6WSDU4v9TiOvH3h7xintiOhPq9qd+72SlK8= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.114.0 h1:1NeG/cgiqBMWQJxFvWQmWo9BVj3k4uOvEK0o++BFINY= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.114.0/go.mod h1:skPwfv1xYwB5onG9sj31J4OYUxx6p+wc40aogGy+nVE= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 h1:gdljk66vBTT3lWfSdP4Hl7FaABdH1YPhUCH6jnG2+qY= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0/go.mod h1:T1p6ShTr8farkE4qUB2TyGUIvRSN3s17D0qY7rMqCRM= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.114.0 h1:PwaceYEl50C1OK5MxpH95hnn58CNRzINP2p5YvluZj4= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.114.0/go.mod h1:FrJqdSI+4QuU/w9XtoW9d1Ywp09u2cYaPUOZFqzDtNY= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.114.0 h1:E686MeQcQ+a3Q47A/xAc3Nk6Qdz8wHcBLMJ3Y8bNKi0= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.114.0/go.mod h1:zkQAapuNRobj7GY8kKRal+2EYkAMWmZ1KMysUrQI48A= +github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= +github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M= +github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.115.0 h1:sO4fPw0NRUibgBVvQVTqPBCBRFh0I+ODIr3HAwcWezI= +github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.115.0/go.mod h1:HqzCXJ4rxXzWNYaUtCqJzXyTsCGEKSa/d+tHcyeRDY0= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.115.0 h1:u7Ht+E1ghQESffcjyaxWrXGsfSWa1VE9LKC4f2PPx84= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.115.0/go.mod h1:r3iS2mDYu+cnGjgNc8TgvuUUAN6A6/1BvR1e1YJBrqM= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.115.0 h1:RXYLbv2uTJlJTJcEa5H8/fLdX419XUlbn6mjzEgTWxc= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.115.0/go.mod h1:ngeyITKu+koaagA/sFpnuT+x0nFVBNdWq60/h5buSr4= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.115.0 h1:51D/x3xIAnWgVrY0lgdU+b+yb2aWd72uDqu9GhjRcNI= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.115.0/go.mod h1:nLau1YUdjhtLrk4jXLPb2l9riQ1Ap4xytTLl7MBedBg= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.115.0 h1:eJk/gbfWpGKTIGLUN+EWpqM52Zf4LFTfIeMnDji+dqM= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.115.0/go.mod h1:+GPzqBFeqV90U4/bntDRPMxo/i/12lxH7GyPJmqz4ls= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.115.0 h1:790+/iSYt6bMs/OA3AfLlZl9E/Zpb0pm5X628TCncE4= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.115.0/go.mod h1:LtsKKBDZyn02DiqvuOZapGg75P/FqGQNelTI6fO12o0= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.115.0 h1:BtYrSkQSYGJufsmbqqrpzb+BJXH2S4CKL14i1bxOFCU= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.115.0/go.mod h1:4LQ1S3eBu+MyCNaCkBk0hIoAhvJJS851i/tY45FtDf4= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.115.0 h1:zi0LLZp26hAycIKNbmOIMGc0ZnkikrciTHl1tiJuo4Y= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.115.0/go.mod h1:a/UMjV9mrFJ5WIlpaDQ/S5KgCrg0H3kD8nlhfQRxfBI= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.115.0 h1:5PiDmieivpExBd2LchzSIvEls+cjUeJtPLXvvHxLZoI= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.115.0/go.mod h1:FIFNtgEoqcI/evvgSL+5qO/cdRUK+6ixFKKUdKpmMeA= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.115.0 h1:sMHHN4HrakORqrpsTLQQVGiDjKg4QreBJ+UCx/1OI+I= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.115.0/go.mod h1:q1950sX5QqCGDurVOkwatDSc5de4gpGfuPGVtFgNo3I= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.115.0 h1:HVGG31WeB6Fn2+il2/ycWj9tDP0fxOeOqD1rKCjsBSc= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.115.0/go.mod h1:2hYojHs5daPVWECuZsPViKwty0ojuHUEmk8GEuaFqO0= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.115.0 h1:4Ycg73pYVdiF+oq+BmUq7Dkg0WKeKvBSk9AOKvBe4LU= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.115.0/go.mod h1:l2Q+MmYk2ZRDSbhX9GlJYvBXC51AqhDJAj2ne290Xik= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.115.0 h1:SF3gOOEkfntE3zEhY80yO7BVQ5CkaK8ecic2U2AZPHE= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.115.0/go.mod h1:jeBzX5m8O9X0LQxiryV9sJUIrn+QAwOnCBE2wZWIltQ= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.115.0 h1:vRQQFD4YpasQFUAdF030UWtaflSYFXK542bfWMGhOK0= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.115.0/go.mod h1:BZ7DT+0VkKR7P3I9PGEDfVa0GdB0ty41eEcejIUXF9A= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.115.0 h1:a36EJz/mb83f6ieX0v4fNDJ1jXqpeaM6DVQXeFDvdhw= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.115.0/go.mod h1:r5/40YO1eSP5ZreOmRzVOUtDr7YG39ZIUcVjHd+9Izc= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.115.0 h1:xITYM8BkEgs2Wf+PczOrVv0b1Fk4N929/xR9YtxLpkw= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.115.0/go.mod h1:m+5tYnZKfNDtnZKknOfssYSXBEL5Yqse4CJMpaY5kMk= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.115.0 h1:h6zEsBtuZalQu7lKYf6ZCcj8fTocT+zxdmuOou9515Q= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.115.0/go.mod h1:6QU/K0dGCGYorkOvJmhbDFCspy4RPxRkFjf9I64y6I0= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.115.0 h1:f/HrZgTf6TF97v67uEZB3v2UtBT9aQojBvnloD3LOm4= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.115.0/go.mod h1:Hp9uSq3qNJqdxu24u7RWyuPT9x1GgEUSx9US1LLeLi0= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8stest v0.115.0 h1:vXDJE8YHfAoYIAlPRtODchlqb6lWnGhJxPaT2ljvN7I= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8stest v0.115.0/go.mod h1:f3IgMFHIjEUEI/I+5e3KWMPq9h2PSMy9WovmvPdmlb0= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.115.0 h1:4RoU3SlcNe6Dxyxfv8JVsrN8QgjBQ44Pkt9FLKK095I= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.115.0/go.mod h1:jfPlBpZT+hvp52Ldcx+srxaqyYuKxBkxOd3KtxbveCU= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.115.0 h1:8A+iBT5G23zvBPqYx32Qh4800jHFo4X9T1fpQKVQ+4E= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.115.0/go.mod h1:AhdPvwYKu7G8LKRWzHTNQYBq27RinsMm5qSanwSA/rU= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.115.0 h1:MuyDWyVoCty8HyP2CAYoRZXwINiThHovcC1Bj3+H8lk= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.115.0/go.mod h1:asekVnrdzYsMJBaJtIyXOt8p07l1x0xs8X3h00sZyf0= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.115.0 h1:6GIJOSEIWBt9bprARMtTjRlENrwNsJl2UzbtjOBk7A0= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.115.0/go.mod h1:/Fg/itwlAzDjyM0Sjenup9TbdOT+aVNPSqXsF80M8hw= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.115.0 h1:l4NBxl2AELPlyqupLu1IVAjtbGOEovaKEyt0UGMsuq8= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.115.0/go.mod h1:j1qF1hE/Qcy2I655yXbf2ItezXok61OW+9AAxbH2ORw= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.115.0 h1:l9AsnVHr3Sp4lAGFlBJ6Ochl7mlPE0d5MNd70o4qKEM= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.115.0/go.mod h1:kARk81QZpcX6L8x4fLo4Nr/z/+jpo5PxXtugBxF2DyE= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.115.0 h1:Z9p78zj9Qblw472mGkPieuX7mqduAp47rzMbFfq5evI= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.115.0/go.mod h1:mtxUxJEIQy27MaGR1yzcn/OK8NoddEgb7fumpEbKYss= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.115.0 h1:qdZ9EqmdM19pWhPoFA7VivBTdzP2HvNwXa3CCMHYoDQ= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.115.0/go.mod h1:mrL1MNrcg0zYAJ+aK9WtOH062dl2wN9DDG7mZk9H8v4= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.115.0 h1:MerLKMrkM4YoGF6Di0D9yMXO02yCX8mrZAi/+jJVVeI= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.115.0/go.mod h1:R8AkVWe9G5Q0oMOapvm9HNS076E3Min8SVlmhBL3QD0= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.115.0 h1:WEqcnWSy9dNSlGb8pYRBX7zhaz2ReyaeImlenbzNTB4= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.115.0/go.mod h1:6Mk71CakHUA3I6oM9hARDiyQypYyOolvb+4PFYyVEFg= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.115.0 h1:eoapW0JBablApkdv4C1RUuOKfz0U6SwuKMYYSAJH6fE= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.115.0/go.mod h1:hW2AaybTRcwxJySGLC3Fh1vd2VDaQhRBfa7O7w30NS8= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.115.0 h1:R9MRrO+dSkAHBQLZjuwjv2RHXHQqF2Wtm1Ki0VKD5cs= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.115.0/go.mod h1:rKXLXmwdUVcUHwTilroKSejbg3KSwLeYzNPSpkIEnv4= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.115.0 h1:7tQ+WjojXhtWDFTJlwCvkjpvdTed5YkVKVQKVAu1alg= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.115.0/go.mod h1:iqgJP7+N03pOIOqYaKjVWYoIKweNdFivsvWJfFw6MTQ= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.115.0 h1:rrIm0dyEdaHmQo6udPK1V3opkzEKa0PrZzSdY5oGqmQ= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.115.0/go.mod h1:AMeisxL/9gs0bzozaymUqI1/EJ9GPvtnLh/BtqtjSF8= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.115.0 h1:KghgAubxdDqP4eUQ+d2GzHXUAwtFxpSDToqFVnax0XA= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.115.0/go.mod h1:cW/BaYE6Uo7ZYHbmT0wVBktHP0SfeLqGHMf0qks7rOE= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.115.0 h1:ioGiKiO0WqT3PxkzanuJsPVA24FItH6nTJeDeSMFpYA= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.115.0/go.mod h1:x1W4J+pzK/Bi9jjYBYESTsPq0nRJJLZoN7cPNd0vYSU= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.115.0 h1:A9zqBtUJZ5J/0VI+B1dxuQhc2iVYpD9c54SgaKtFIN8= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.115.0/go.mod h1:hG7GOrBBux/cg1fAUzvSlzYY02ekxjF9IvH4ls/nGXA= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.115.0 h1:hAsK9I081ShnSDSKPVEHB3TLawyOmbR6bPDiQEkgo2Y= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.115.0/go.mod h1:z8XdvlhXSYVboxS3TPGembE9kfxLAYH2PxPLMvf8wTk= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.115.0 h1:t3BGnPpmeuxW51vISSu51PrAs49ACBCa1Yl1NfZGE5Y= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.115.0/go.mod h1:jQLYyroEYEV1kWJApmGBgVuGUd73v+Q6EUJ6Wy7N508= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.115.0 h1:ficXJmB6l6kfiu+R6CmggtnlQWMHUNzu2csDYA4CFSs= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.115.0/go.mod h1:ykraxSeEVCuA43oqlMWnex78+vNQ+1dBTJUeInkqIpA= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.115.0 h1:LVe/Oh2un9CFKFYtepB9oZ6j38whFPVYl01RAVsdxHg= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.115.0/go.mod h1:mGSGQCX5dT5KUxBkuCO15CNqB+8Cb+qj0edt/oKmA34= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.115.0 h1:6RGhDlZkekmp12EvK6JV9fiIwrdZBOJID6/Ts9tXzL4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.115.0/go.mod h1:qZRQtGr/DAjuBqAuKJMN2cWvc9RI94lB0Oq8UyGAduo= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.115.0 h1:vwZQ7k8oqlK0bdZYTsjP/59zjQQfjSD4fNsWIWsTu2w= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.115.0/go.mod h1:5ObSa9amrbzbYTdAK1Qhv3D/YqCxxnQhP0sk2eWB7Oo= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.115.0 h1:jQ6mIXhWqXhl8MPun9soNynsQ0lpOpOYQyAnQ28F014= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.115.0/go.mod h1:oRxNwm6HN7ckp4aJOAFC8BVBPa0UDhB8vNGTFL3QBJg= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.115.0 h1:KbfjEsr2d/5TGWHvcaBC3lOpYAnquEraLXcis4IamAs= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.115.0/go.mod h1:fmtZPK5RIz+2Lcm9xQZuwiM+M8/juSSeJufSxUT+J9w= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.115.0 h1:Ea5v0Q6VNIMRbXVJjHUsSbdOSkB+80sCOH7Y9yhStnY= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.115.0/go.mod h1:IkiZL9vOU8qNCkrnJP0GOWPoFTED+yhB94wJbcLYcGA= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.115.0 h1:olyiml73slGYORDjZNViW3nKiysC+K+h5yPsSBjUxQ4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.115.0/go.mod h1:N00k1mTxzfS2clqxSP4Dxk7iX8GWbbuCq6LF8/ECk/M= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.115.0 h1:sLRTfXUFiqJ5Qe/NN5MUJxTaFt46E0Y/xjSY+KesCQc= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.115.0/go.mod h1:361IqXD4jnfs6G+Yn7978uv1UNozhZo4yBYy4p6Nqzc= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.115.0 h1:JSFnfWwlVGLul8p9DE6Sk6E0zaqCvbys7CqvJQD4MIs= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.115.0/go.mod h1:cw0qzwXzKKxM7QyDcNSp9OSDLySVXyaSrgdqWPqlDk8= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.115.0 h1:2xlgF/vCUsZx9HDqhDi0XyR1QXBM67YFRyWrEq5Ydos= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.115.0/go.mod h1:vWTdohkLm9S+3Ekz4aq1jW0xt8wD2jrdOOSOJNllppo= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.115.0 h1:XDlXWa6pdAp02kdfZdzZ0cjeZMNHjI7dj2dNgKdzOfo= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.115.0/go.mod h1:Zo6YARAWAMCdlUmyKBq0EcuKmLjxfC2hUNd3jIAFsWE= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.115.0 h1:hYNlyUj3F43cuv1ap19NlEEchQfs91vYeNoQ1+nswLo= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.115.0/go.mod h1:1o6wF5HJdpb2hd2eGMoQhGuTKb4F2+j/IHBJJSPdM2w= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.115.0 h1:GIyMUiud3T8nyCJP9KVhxVKvfcNQRBCde5uTCl6K/i0= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.115.0/go.mod h1:x4hCznyUolxGt5cE/uXWRCckdIDrUYqH5hJddvdKZd4= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.115.0 h1:Di0uc2QvwEVrq1PEReZ34FpPuo1z5QhHmT0bvdTe0DU= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.115.0/go.mod h1:ODvjmz18PDQnX/BruQ8IFOpiz/HdGOpUWMEKq7f3nhA= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.115.0 h1:h/HAHLIZnIyu85l8wOeggOyiI8z8citNAqxQktVKUpk= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.115.0/go.mod h1:iEU0NA/i2sUREqD19JYmjKwrjMUTcddad/h1LGdSMHw= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= @@ -817,14 +818,14 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUt github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shirou/gopsutil/v4 v4.24.10 h1:7VOzPtfw/5YDU+jLEoBwXwxJbQetULywoSV4RYY7HkM= -github.com/shirou/gopsutil/v4 v4.24.10/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= -github.com/signalfx/sapm-proto v0.16.0 h1:E8W+awZBl3nmpDTdbPK8Uwla9FdSCWpZChR3p+7bzw0= -github.com/signalfx/sapm-proto v0.16.0/go.mod h1:7VTAIoYIgkAK+j6w3l4Aici+EYySGAmXCK0rfD2OZkU= +github.com/signalfx/sapm-proto v0.17.0 h1:KY+9zm/yDOq6uzaguI1RmrJcWxzbkGv0zE6GplA3ytc= +github.com/signalfx/sapm-proto v0.17.0/go.mod h1:c8fGx9DjGP7Hqif7g6Zy6E+BCMXK/dERFU2b3faA0gk= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= @@ -878,14 +879,14 @@ github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tidwall/tinylru v1.1.0 h1:XY6IUfzVTU9rpwdhKUF6nQdChgCdGjkMfLzbWyiau6I= github.com/tidwall/tinylru v1.1.0/go.mod h1:3+bX+TJ2baOLMWTnlyNWHh4QMnFyARg2TLTQ6OFbzw8= -github.com/tidwall/wal v1.1.7 h1:emc1TRjIVsdKKSnpwGBAcsAGg0767SvUk8+ygx7Bb+4= -github.com/tidwall/wal v1.1.7/go.mod h1:r6lR1j27W9EPalgHiB7zLJDYu3mzW5BQP5KrzBpYY/E= +github.com/tidwall/wal v1.1.8 h1:2qDSGdAdjaY3PEvHRva+9UFqgk+ef7cOiW1Qn5JH1y0= +github.com/tidwall/wal v1.1.8/go.mod h1:r6lR1j27W9EPalgHiB7zLJDYu3mzW5BQP5KrzBpYY/E= github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU= github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= -github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= -github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= -github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= -github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= +github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= +github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= +github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= +github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/ua-parser/uap-go v0.0.0-20240611065828-3a4781585db6 h1:SIKIoA4e/5Y9ZOl0DCe3eVMLPOQzJxgZpfdHHeauNTM= github.com/ua-parser/uap-go v0.0.0-20240611065828-3a4781585db6/go.mod h1:BUbeWZiieNxAuuADTBNb3/aeje6on3DhU3rpWsQSB1E= @@ -910,140 +911,144 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/collector v0.114.0 h1:XLLLOHns06P9XjVHyp0OdEMdwXvol5MLzugqQMmXYuU= -go.opentelemetry.io/collector v0.114.0/go.mod h1:XbjD4Yw9LunLo3IJu3ZZytNZ0drEVznxw1Z14Ujlw3s= -go.opentelemetry.io/collector/client v1.20.0 h1:o60wPcj5nLtaRenF+1E5p4QXFS3TDL6vHlw+GOon3rg= -go.opentelemetry.io/collector/client v1.20.0/go.mod h1:6aqkszco9FaLWCxyJEVam6PP7cUa8mPRIXeS5eZGj0U= -go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= -go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= -go.opentelemetry.io/collector/component/componentstatus v0.114.0 h1:y9my/xink8KB5lK8zFAjgB2+pEh0QYy5TM972fxZY9w= -go.opentelemetry.io/collector/component/componentstatus v0.114.0/go.mod h1:RIoeCYZpPaae7QLE/1RacqzhHuXBmzRAk9H/EwYtIIs= -go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= -go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= -go.opentelemetry.io/collector/config/configauth v0.114.0 h1:R2sJ6xpsLYGH0yU0vCxotzBYDKR/Hrjv0A7y9lwMyiw= -go.opentelemetry.io/collector/config/configauth v0.114.0/go.mod h1:3Z24KcCpG+WYCeQYfs/cNp5cP2BDeOqLCtOEgs/rPqM= -go.opentelemetry.io/collector/config/configcompression v1.20.0 h1:H/mvz7J/5z+O74YsO0t2tk+REnO2tzLM8TgIQ4AZ5w0= -go.opentelemetry.io/collector/config/configcompression v1.20.0/go.mod h1:pnxkFCLUZLKWzYJvfSwZnPrnm0twX14CYj2ADth5xiU= -go.opentelemetry.io/collector/config/configgrpc v0.114.0 h1:3kGI9CljNtzClF+9sg7NWZ5qUoy4qZvGxv9q3phDn7k= -go.opentelemetry.io/collector/config/configgrpc v0.114.0/go.mod h1:IHSyqSdjPXW34aif/8BhNlXxRcIVV6026jVi0/+ituY= -go.opentelemetry.io/collector/config/confighttp v0.114.0 h1:DjGsBvVm+mGK3IpJBaXianWhwcxEC1fF33cpuC1LY/I= -go.opentelemetry.io/collector/config/confighttp v0.114.0/go.mod h1:nrlNLxOZ+4JQaV9j0TiqQV7LOHhrRivPrT8nQRHED3Q= -go.opentelemetry.io/collector/config/confignet v1.20.0 h1:LrM6AuiY8N/woTP4SWhL2V0562JXwJs9MRNFZJFLtRY= -go.opentelemetry.io/collector/config/confignet v1.20.0/go.mod h1:o3v4joAEjvLwntqexg5ixMqRrU1+Vst+jWuCUaBNgOg= -go.opentelemetry.io/collector/config/configopaque v1.20.0 h1:2I48zKiyyyYqjm7y0B9OLp24ku2ZSX3nCHG0r5FdWOQ= -go.opentelemetry.io/collector/config/configopaque v1.20.0/go.mod h1:6zlLIyOoRpJJ+0bEKrlZOZon3rOp5Jrz9fMdR4twOS4= -go.opentelemetry.io/collector/config/configretry v1.20.0 h1:z679mrMlW2a6tOOYPGdrS/QfALxdzWLQUOpH8Uu+D5Y= -go.opentelemetry.io/collector/config/configretry v1.20.0/go.mod h1:KvQF5cfphq1rQm1dKR4eLDNQYw6iI2fY72NMZVa+0N0= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/config/configtls v1.20.0 h1:hNlJdwfyY5Qe54RLJ41lfLqKTn9ypkR7sk7JNCcSe2U= -go.opentelemetry.io/collector/config/configtls v1.20.0/go.mod h1:sav/txSHguadTYlSSK+BJO2ljJeYEtRoBahgzWAguYg= -go.opentelemetry.io/collector/config/internal v0.114.0 h1:uWSDWTJb8T6xRjKD9/XmEARakXnxgYVYKUeId78hErc= -go.opentelemetry.io/collector/config/internal v0.114.0/go.mod h1:yC7E4h1Uj0SubxcFImh6OvBHFTjMh99+A5PuyIgDWqc= -go.opentelemetry.io/collector/confmap v1.20.0 h1:ARfOwmkKxFOud1njl03yAHQ30+uenlzqCO6LBYamDTE= -go.opentelemetry.io/collector/confmap v1.20.0/go.mod h1:DMpd9Ay/ffls3JoQBQ73vWeRsz1rNuLbwjo6WtjSQus= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0 h1:I3xDecFXJVZBo5zJS7Y5SWBjF22XDWGZJgwotiwA5QM= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0/go.mod h1:CF0l8V8MNv+Wag8UkqObotFnlhMzdTFuk4/6kylKwYU= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0 h1:wWxvQ7wj+1O9yDGM5m1HPEz8FJewAHAUWadAAi0KVbM= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0/go.mod h1:/5HWIPjGYk8IUurs1CZUSjGaSsaQyJsfR8+Zs5rGJ6Y= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0 h1:YS1nB8vDoCS8IlfX5OP3QGS90y/hfflwZ7CoPQcAOlU= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0/go.mod h1:aV4UfkgcJ3eyXvfd3m694omN++1c96Joitab+YL6Xks= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0 h1:jSXTojCPI6Xr98m99nF7qbQFnw3INLEOHRcqcHS+lak= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0/go.mod h1:Pu95O2JE3R+0BBTbe4gpAC8ms3w6FbICHJw3WvGWrjs= -go.opentelemetry.io/collector/connector v0.114.0 h1:efGAeTCtg8zp5Hyd7Am8kBUgsSxWEFlFtAu4OX4mcEA= -go.opentelemetry.io/collector/connector v0.114.0/go.mod h1:8DhGgD8RhkF0ooELl4NOPPD/wgHuXHmY7g90RwJ2eNo= -go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0 h1:uVs9gy3UfQBmH0636ouIbGIoWis7zmKN+ny4XOGm36U= -go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0/go.mod h1:X681qFEAsEPMDQ0pMsD/3DqePw58sfLew1QbBKvGnmw= -go.opentelemetry.io/collector/connector/connectortest v0.114.0 h1:Fpy1JHyNOLdVzNcmxUY6Jwxdz6JDcTXL1NCfw8k1AOc= -go.opentelemetry.io/collector/connector/connectortest v0.114.0/go.mod h1:1zaAlODuL9iNyfyjHQeGCpbcaUjf5b68t8LqlwHKBNA= -go.opentelemetry.io/collector/consumer v0.114.0 h1:1zVaHvfIZowGwZRitRBRo3i+RP2StlU+GClYiofSw0Q= -go.opentelemetry.io/collector/consumer v0.114.0/go.mod h1:d+Mrzt9hsH1ub3zmwSlnQVPLeTYir4Mgo7CrWfnncN4= -go.opentelemetry.io/collector/consumer/consumererror v0.114.0 h1:r2YiELfWerb40FHD23V04gNjIkLUcjEKGxI4Vtm2iO4= -go.opentelemetry.io/collector/consumer/consumererror v0.114.0/go.mod h1:MzIrLQ5jptO2egypolhlAbZsWZr29WC4FhSxQjnxcvg= -go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.114.0 h1:0IpwQXyHDXhIaLA6w2VlD6Ca0iuX4wlfCDiF+BKCwEo= -go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.114.0/go.mod h1:9pKeVRcCT92x5/UIULMLAop+J23VYJCWSZcVhmbup5I= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 h1:5pXYy3E6UK5Huu3aQbsYL8B6E6MyWx4fvXXDn+oXZaA= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0/go.mod h1:PMq3f54KcJQO4v1tue0QxQScu7REFVADlXxXSAYMiN0= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0 h1:isaTwJK5DOy8Bs7GuLq23ejfgj8gLIo5dOUvkRnLF4g= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0/go.mod h1:GNeLPkfRPdh06n/Rv1UKa/cAtCKjN0a7ADyHjIj4HFE= -go.opentelemetry.io/collector/exporter v0.114.0 h1:5/0BBpXuCJQSQ5SQf31g7j6T4XEKkyx9mZMcA2rS5e8= -go.opentelemetry.io/collector/exporter v0.114.0/go.mod h1:atpd0wWXgh5LAZ0REU/d/Ti/q50HDfnlBIjMjJQlKFg= -go.opentelemetry.io/collector/exporter/debugexporter v0.114.0 h1:7t1ij8fuV510SRT+eabgbl4973DaAtGmTx0RuGJy8DU= -go.opentelemetry.io/collector/exporter/debugexporter v0.114.0/go.mod h1:rC8PHnf1MniZN4ryU4i5GsyXKRkMEGwEGF2hxHx/JyU= -go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.114.0 h1:W/KsD33oMg/M7Kd5/m2riliWrTg3W9IgQVNeZL3cZjs= -go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.114.0/go.mod h1:Fh47qYBjX+jm+mpWBcqmaaQucZ6KiKm5P0drEt+xNRc= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 h1:/wmWOSBHcvtz3Pbv7+rWCqPPQuNvYaoidKKaOqZsLKs= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0/go.mod h1:epRYTkyJZTSQZBJflMGHUyUo2EdLPhsaZEyo5Qm848A= -go.opentelemetry.io/collector/exporter/exportertest v0.114.0 h1:vo0idBJT+QACSM1KpjVLm9VeiXVwO7y4UnMpGxN6EyM= -go.opentelemetry.io/collector/exporter/exportertest v0.114.0/go.mod h1:420ssFrhaphneybstbMeSIiqSRoaBARPgO71O17foaM= -go.opentelemetry.io/collector/exporter/nopexporter v0.114.0 h1:uMtQQjkAK62tzy2Rs/KCgRofNW7uo0EgU5xn3xmgB2w= -go.opentelemetry.io/collector/exporter/nopexporter v0.114.0/go.mod h1:jV9/E7Twphys1df6m7HgvqgJXpmppxFJb/DYy3XLR94= -go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0 h1:SC/xZNCB/eCVflrhDFX4WtrpvBPsZhmXVuSvgHQBsB8= -go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0/go.mod h1:q1273aUuYewtDUFwizv0AKu5/D+gbQAi8UFLKDv1eMk= -go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0 h1:+nPJraioPpLS2Kj3+YIfErDDFHsLX/5oPMSMAYKoggM= -go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0/go.mod h1:O+75KYmyJwK61VDsW7LHo2qFFXCTf3kEJH3ZvW1bb4Y= -go.opentelemetry.io/collector/extension v0.114.0 h1:9Qb92y8hD2WDC5aMDoj4JNQN+/5BQYJWPUPzLXX+iGw= -go.opentelemetry.io/collector/extension v0.114.0/go.mod h1:Yk2/1ptVgfTr12t+22v93nYJpioP14pURv2YercSzU0= -go.opentelemetry.io/collector/extension/auth v0.114.0 h1:1K2qh4yvG8kKR/sTAobI/rw5VxzPZoKcl3FmC195vvo= -go.opentelemetry.io/collector/extension/auth v0.114.0/go.mod h1:IjtsG+jUVJB0utKF8dAK8pLutRun3aEgASshImzsw/U= -go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 h1:hLyX9UvmY0t6iBnk3CqvyNck2U0QjPACekj7pDRx2hA= -go.opentelemetry.io/collector/extension/experimental/storage v0.114.0/go.mod h1:WqYRQVJjJLE1rm+y/ks1wPdPRGWePEvE1VO07xm2J2k= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0 h1:3OHll7gp5XIu7FVgon+koShPy797nze6EjCDokFUG7w= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0/go.mod h1:f0KdeLmE2jWVBmJ1U4WmfAtz1/tQUErGPfhPLKCQ49U= -go.opentelemetry.io/collector/extension/extensiontest v0.114.0 h1:ibXDms1qrswlvlR6b3d2BeyI8sXUXoFV11yOi9Sop8o= -go.opentelemetry.io/collector/extension/extensiontest v0.114.0/go.mod h1:/bOYmqu5yTDfI1bJZUxFqm8ZtmcodpquebiSxiQxtDY= -go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 h1:JosqAcdWw7IGsURJNR8f17xmaGCQEtKhQt9tM0T/DEg= -go.opentelemetry.io/collector/extension/zpagesextension v0.114.0/go.mod h1:+VO4p2GZvmIMqCVyIfS/U85Xqg+HIOe+mdl/ya+jVTE= -go.opentelemetry.io/collector/featuregate v1.20.0 h1:Mi7nMy/q52eruI+6jWnMKUOeM55XvwoPnGcdB1++O8c= -go.opentelemetry.io/collector/featuregate v1.20.0/go.mod h1:47xrISO71vJ83LSMm8+yIDsUbKktUp48Ovt7RR6VbRs= -go.opentelemetry.io/collector/filter v0.114.0 h1:5I97yblUxc6rXCYRn542aSrsNQLo/dE+87XROW2b5oU= -go.opentelemetry.io/collector/filter v0.114.0/go.mod h1:Nxwc+RD9AH4y/qYtkTP+Ac19CxgW5GAB+sJU4ACLr6g= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0 h1:JM9huYqy5LTzmuxQmbPST3l5Ez5kJNit28c6WFWls34= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0/go.mod h1:V28tDU4Wvf1PfW1Ty/SBL9tpKul2iYGno/HkCWGDrj0= -go.opentelemetry.io/collector/internal/memorylimiter v0.114.0 h1:UpKQ/GtWw7Mh/PjR03NdgR9PG7uT7mnfbQVxpDQVBgk= -go.opentelemetry.io/collector/internal/memorylimiter v0.114.0/go.mod h1:QUZr3bBguTmgLJUFuqVVsOxKr7Y/2JO49k3I1tUH88U= -go.opentelemetry.io/collector/internal/sharedcomponent v0.114.0 h1:DjX9ubjkKDnioQB03FYc40FTyhR25CdobMfjinKkZ1w= -go.opentelemetry.io/collector/internal/sharedcomponent v0.114.0/go.mod h1:lYlFiGIjPjhwTS/Xc+toJ9o3D8A6cCHuK1JX+ZbujVs= -go.opentelemetry.io/collector/otelcol v0.114.0 h1:d/nmYc+adzZ70g4zBMtgujGHVNulF59ExCpuM/3ZKV4= -go.opentelemetry.io/collector/otelcol v0.114.0/go.mod h1:DGmFFao5jHSwD6G1HjUjs0CYcyrTau+u7GjTRUGKN+4= -go.opentelemetry.io/collector/otelcol/otelcoltest v0.114.0 h1:Em5e1EgrPrS90EWDWLJHCvyFIDl5PIq1DuW9zd8F3pY= -go.opentelemetry.io/collector/otelcol/otelcoltest v0.114.0/go.mod h1:YAs78SaOJsf1HNWrNH+GFTdkS58dpQI98cok6gZP4Lg= -go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= -go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0 h1:pUNfTzsI/JUTiE+DScDM4lsrPoxnVNLI2fbTxR/oapo= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0/go.mod h1:4aNcj6WM1n1uXyFSXlhVs4ibrERgNYsTbzcYI2zGhxA= -go.opentelemetry.io/collector/pdata/testdata v0.114.0 h1:+AzszWSL1i4K6meQ8rU0JDDW55SYCXa6FVqfDixhhTo= -go.opentelemetry.io/collector/pdata/testdata v0.114.0/go.mod h1:bv8XFdCTZxG2MQB5l9dKxSxf5zBrcodwO6JOy1+AxXM= -go.opentelemetry.io/collector/pipeline v0.114.0 h1:v3YOhc5z0tD6QbO5n/pnftpIeroihM2ks9Z2yKPCcwY= -go.opentelemetry.io/collector/pipeline v0.114.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= -go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0 h1:LZgxMQ2zXcz8ILBefhxpZBpn/Rx+TJTncIIQy0LgtgY= -go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0/go.mod h1:bmyqQCJWcA53/GtqZJ2ahwmLdFl6UelFH2nR6OJFqpw= -go.opentelemetry.io/collector/processor v0.114.0 h1:6bqQgLL7BtKrNv4YkEOGjZfkcfZv/ciJSQx1epGG9Zk= -go.opentelemetry.io/collector/processor v0.114.0/go.mod h1:DV/wa+nAmSHIDeD9NblPwkY9PbgtDQAZJ+PE5biZwPc= -go.opentelemetry.io/collector/processor/batchprocessor v0.114.0 h1:Xu+pdPGIh6gLqHW5oYJsiim1mbnG85QaaUQy0YPoL+c= -go.opentelemetry.io/collector/processor/batchprocessor v0.114.0/go.mod h1:emnnL5CaliCnWjXNpNixqpvn7uc/kyUTv2939J/reMY= -go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.114.0 h1:gfzShbdzhbA2lsRSx2z9i9QO/FJwAzOSrBW2ObPqf38= -go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.114.0/go.mod h1:leElNJO5dnpOg0o1Gr2Ok59HKADRznbrZ3u2oTfx50Q= -go.opentelemetry.io/collector/processor/processorhelper/processorhelperprofiles v0.114.0 h1:/CQJ0UQRStwBQnM4Z9lTr6D4IqEKH1iuUWVr21fP4To= -go.opentelemetry.io/collector/processor/processorhelper/processorhelperprofiles v0.114.0/go.mod h1:HD2uDr7TIWQ+TsXBLmrHu396EeClj7YNoNzoWJw4jrY= -go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 h1:+P/1nLouEXTnN8DVQl+qWwO4BTkQyNPG9t/FrpUqrSI= -go.opentelemetry.io/collector/processor/processorprofiles v0.114.0/go.mod h1:3fuHeNIpINwx3bqFMprmDJyr6y5tWoWbJH599kltO5Y= -go.opentelemetry.io/collector/processor/processortest v0.114.0 h1:3FTaVXAp0LoVmUJn1ewBFckAby7AHa6/Kcdj0xuW14c= -go.opentelemetry.io/collector/processor/processortest v0.114.0/go.mod h1:OgsdOs1Fv5ZGTTJPF5nNIUJh2YkuV1acWd73yWgnti4= -go.opentelemetry.io/collector/receiver v0.114.0 h1:90SAnXAjNq7/k52/pFmmb06Cf1YauoPYtbio4aOXafY= -go.opentelemetry.io/collector/receiver v0.114.0/go.mod h1:KUGT0/D953LXbGH/D3lLPU8yrU3HfWnUqpt4W4hSOnE= -go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0 h1:CMtfS6fwEwqwTMeC17A3Q2xsSkXfH4gG2SBZDr2txCw= -go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0/go.mod h1:ajp6ok8iSSAcyq58wcOUJVe++1mTQ1isxqlaNUgQNzo= -go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0 h1:8ASaxRWLe8P0pefOiYbCSZ0aXmwE4K06I8FBGc/n+J0= -go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0/go.mod h1:3vjOvYBWGUVzuaovoumMbNHEIK3PqDs5rzEyd/nzsLU= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 h1:ibhEfGpvNB3yrtpl2jYFabrunMk1hurxvMYpM0b1Ck4= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0/go.mod h1:UZyRfaasw+NLvN10AN8IQnmj5tQ3BOUH1uP2ctpO9f0= -go.opentelemetry.io/collector/receiver/receivertest v0.114.0 h1:D+Kh9t2n4asTnM+TiSxbrKlUemLZandWntj17BJWWb0= -go.opentelemetry.io/collector/receiver/receivertest v0.114.0/go.mod h1:mNSHQ13vFmqD+VAcRzLjStFBejbcWUn2Mp0pAd7Op+U= -go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= -go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= -go.opentelemetry.io/collector/service v0.114.0 h1:MYF/4nH1CgtiLx09503xPAAUZefCzG1kaO+oanwX590= -go.opentelemetry.io/collector/service v0.114.0/go.mod h1:xH5/RapJdf5Ohh8iU8J0ZstfFYciP1oJPesiByteZxo= +go.opentelemetry.io/collector v0.115.0 h1:qUZ0bTeNBudMxNQ7FJKS//TxTjeJ7tfU/z22mcFavWU= +go.opentelemetry.io/collector v0.115.0/go.mod h1:66qx0xKnVvdwq60e1DEfb4e+zmM9szhPsv2hxZ/Mpj4= +go.opentelemetry.io/collector/client v1.21.0 h1:3Kes8lOFMYVxoxeAmX+DTEAkuS1iTA3NkSfqzGmygJA= +go.opentelemetry.io/collector/client v1.21.0/go.mod h1:jYJGiL0UA975OOyHmjbQSokNWt1OiviI5KjPOMUMGwc= +go.opentelemetry.io/collector/component v0.115.0 h1:iLte1oCiXzjiCnaOBKdsXacfFiECecpWxW3/LeriMoo= +go.opentelemetry.io/collector/component v0.115.0/go.mod h1:oIUFiH7w1eOimdeYhFI+gAIxYSiLDocKVJ0PTvX7d6s= +go.opentelemetry.io/collector/component/componentstatus v0.115.0 h1:pbpUIL+uKDfEiSgKK+S5nuSL6MDIIQYsp4b65ZGVb9M= +go.opentelemetry.io/collector/component/componentstatus v0.115.0/go.mod h1:36A+9XSiOz0Cdhq+UwwPRlEr5CYuSkEnVO9om4BH7d0= +go.opentelemetry.io/collector/component/componenttest v0.115.0 h1:9URDJ9VyP6tuij+YHjp/kSSMecnZOd7oGvzu+rw9SJY= +go.opentelemetry.io/collector/component/componenttest v0.115.0/go.mod h1:PzXvNqKLCiSADZGZFKH+IOHMkaQ0GTHuzysfVbTPKYY= +go.opentelemetry.io/collector/config/configauth v0.115.0 h1:xa+ALdyPgva3rZnLBh1H2oS5MsHP6JxSqMtQmcELnys= +go.opentelemetry.io/collector/config/configauth v0.115.0/go.mod h1:C7anpb3Rf4KswMT+dgOzkW9UX0z/65PLORpUw3p0VYc= +go.opentelemetry.io/collector/config/configcompression v1.21.0 h1:0zbPdZAgPFMAarwJEC4gaR6f/JBP686A3TYSgb3oa+E= +go.opentelemetry.io/collector/config/configcompression v1.21.0/go.mod h1:LvYG00tbPTv0NOLoZN0wXq1F5thcxvukO8INq7xyfWU= +go.opentelemetry.io/collector/config/configgrpc v0.115.0 h1:gZzXSFe6hB3RUcEeAYqk1yT+TBa+X9tp6/1x29Yg2yk= +go.opentelemetry.io/collector/config/configgrpc v0.115.0/go.mod h1:107lRZ5LdQPMdGJGd4m1GhyKxyH0az2cUOqrJgTEN8E= +go.opentelemetry.io/collector/config/confighttp v0.115.0 h1:BIy394oNXnqySJwrCqgAJu4gWgAV5aQUDD6k1hy6C8o= +go.opentelemetry.io/collector/config/confighttp v0.115.0/go.mod h1:Wr50ut12NmCEAl4bWLJryw2EjUmJTtYRg89560Q51wc= +go.opentelemetry.io/collector/config/confignet v1.21.0 h1:PeQ5YrMnfftysFL/WVaSrjPOWjD6DfeABY50pf9CZxU= +go.opentelemetry.io/collector/config/confignet v1.21.0/go.mod h1:ZppUH1hgUJOubawEsxsQ9MzEYFytqo2GnVSS7d4CVxc= +go.opentelemetry.io/collector/config/configopaque v1.21.0 h1:PcvRGkBk4Px8BQM7tX+kw4i3jBsfAHGoGQbtZg6Ox7U= +go.opentelemetry.io/collector/config/configopaque v1.21.0/go.mod h1:sW0t0iI/VfRL9VYX7Ik6XzVgPcR+Y5kejTLsYcMyDWs= +go.opentelemetry.io/collector/config/configretry v1.21.0 h1:ZHoOvAkEcv5BBeaJn8IQ6rQ4GMPZWW4S+W7R4QTEbZU= +go.opentelemetry.io/collector/config/configretry v1.21.0/go.mod h1:cleBc9I0DIWpTiiHfu9v83FUaCTqcPXmebpLxjEIqro= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0 h1:U07FinCDop+r2RjWQ3aP9ZWONC7r7kQIp1GkXQi6nsI= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0/go.mod h1:SlBEwQg0qly75rXZ6W1Ig8jN25KBVBkFIIAUI1GiAAE= +go.opentelemetry.io/collector/config/configtls v1.21.0 h1:ZfrlAYgBD8lzp04W0GxwiDmUbrvKsvDYJi+wkyiXlpA= +go.opentelemetry.io/collector/config/configtls v1.21.0/go.mod h1:5EsNefPfVCMOTlOrr3wyj7LrsOgY7V8iqRl8oFZEqtw= +go.opentelemetry.io/collector/config/internal v0.115.0 h1:eVk57iufZpUXyPJFKTb1Ebx5tmcCyroIlt427r5pxS8= +go.opentelemetry.io/collector/config/internal v0.115.0/go.mod h1:OVkadRWlKAoWjHslqjWtBLAne8ceQm8WYT71ZcBWLFc= +go.opentelemetry.io/collector/confmap v1.21.0 h1:1tIcx2/Suwg8VhuPmQw87ba0ludPmumpFCFRZZa6RXA= +go.opentelemetry.io/collector/confmap v1.21.0/go.mod h1:Rrhs+MWoaP6AswZp+ReQ2VO9dfOfcUjdjiSHBsG+nec= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.21.0 h1:YLf++Z8CMp86AanfOCWUiE7vKbb1kSjgC3a9VJoxbD4= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.21.0/go.mod h1:aSWLYcmgZZJDNtWN1M8JKQuehoGgOxibl1KuvKTar4M= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.21.0 h1:+zukkM+3l426iGoJkXTpLB2Z8QnZFu26TkGPjh5Rn/4= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.21.0/go.mod h1:BXBpQhF3n4CNLYO2n/mWZPd2U9ekpbLXLRGZrun1VfI= +go.opentelemetry.io/collector/confmap/provider/httpprovider v1.21.0 h1:NYYGM+SgIlTuNGjd8eGzDr8DkvOe4q7cXon8djF9yyI= +go.opentelemetry.io/collector/confmap/provider/httpprovider v1.21.0/go.mod h1:XRYbuwqq1awFuNhLDUv4aSvn6MzqX+abcevx1O+APJI= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.21.0 h1:P3Q9RytCMY76ORPCnkkjOa4fkuFqmZiQRor+F/nPlYE= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.21.0/go.mod h1:xhYhHK3yLQ78tsoaKPIGUfFulgy961ImOe2gATH3RQc= +go.opentelemetry.io/collector/connector v0.115.0 h1:4Kkm3HQFzNT1eliMOB8FbIn+PLMRJ2qQku5Vmy3V8Ko= +go.opentelemetry.io/collector/connector v0.115.0/go.mod h1:+ByuAmYLrYHoKh9B+LGqUc0N2kXcN2l8Dea8Mp6brZ8= +go.opentelemetry.io/collector/connector/connectorprofiles v0.115.0 h1:aW1f4Az0I+QJyImFccNWAXqik80bnNu27aQqi2hFfD8= +go.opentelemetry.io/collector/connector/connectorprofiles v0.115.0/go.mod h1:lmynB1CucydOsHa8RSSBh5roUZPfuiv65imXhtNzClM= +go.opentelemetry.io/collector/connector/connectortest v0.115.0 h1:GjtourFr0MJmlbtEPAZ/1BZCxkNAeJ0aMTlrxwftJ0k= +go.opentelemetry.io/collector/connector/connectortest v0.115.0/go.mod h1:f3KQXXNlh/XuV8elmnuVVyfY92dJCAovz10gD72OH0k= +go.opentelemetry.io/collector/consumer v1.21.0 h1:THKZ2Vbi6GkamjTBI2hFq5Dc4kINZTWGwQNa8d/Ty9g= +go.opentelemetry.io/collector/consumer v1.21.0/go.mod h1:FQcC4ThMtRYY41dv+IPNK8POLLhAFY3r1YR5fuP7iiY= +go.opentelemetry.io/collector/consumer/consumererror v0.115.0 h1:yli//xBCQMPZKXNgNlXemo4dvqhnFrAmCZ11DvQgmcY= +go.opentelemetry.io/collector/consumer/consumererror v0.115.0/go.mod h1:LwVzAvQ6ZVNG7mbOvurbAo+W/rKws0IcjOwriuZXqPE= +go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.115.0 h1:gaIhzpaGFWauiyznrQ3f++TbcdXxA5rpsX3L9uGjMM8= +go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.115.0/go.mod h1:7oXvuGBSawS5bc413lh1KEMcXkqBcrCqZQahOdnE24U= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0 h1:H3fDuyQW1t2HWHkz96WMBQJKUevypOCjBqnqtaAWyoA= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0/go.mod h1:IzEmZ91Tp7TBxVDq8Cc9xvLsmO7H08njr6Pu9P5d9ns= +go.opentelemetry.io/collector/consumer/consumertest v0.115.0 h1:hru0I2447y0TluCdwlKYFFtgcpyCnlM+LiOK1JZyA70= +go.opentelemetry.io/collector/consumer/consumertest v0.115.0/go.mod h1:ybjALRJWR6aKNOzEMy1T1ruCULVDEjj4omtOJMrH/kU= +go.opentelemetry.io/collector/exporter v0.115.0 h1:JnxfpOnsuqhTPKJXVKJLS1Cv3BiVrVLzpHOjJEQw+xw= +go.opentelemetry.io/collector/exporter v0.115.0/go.mod h1:xof3fHQK8wADhaKLIJcQ7ChZaFLNC+haRdPN0wgl6kY= +go.opentelemetry.io/collector/exporter/debugexporter v0.115.0 h1:gb9VMQhcbvYqp0SJ4Hp8R9XqOLNLsoTgNJCPKpNEaVc= +go.opentelemetry.io/collector/exporter/debugexporter v0.115.0/go.mod h1:H/HS1UJlcZPNBbOcrsGZc2sPdQDHtbOjHOxMtJkmlcU= +go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.115.0 h1:fetbc740pODH6JW+H49SW0hiAJwQE+/B0SbuIlaY2rg= +go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.115.0/go.mod h1:oEKZ/d5BeaCK6Made9iwaeqmlT4lRbJSlW9nhIn/TwM= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0 h1:lSQEleCn/q9eFufcuK61NdFKU70ZlgI9dBjPCO/4CrE= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0/go.mod h1:7l5K2AecimX2kx+nZC1gKG3QkP247CO1+SodmJ4fFkQ= +go.opentelemetry.io/collector/exporter/exportertest v0.115.0 h1:P9SMTUXQOtcaq40bGtnnAe14zRmR4/yUgj/Tb2BEf/k= +go.opentelemetry.io/collector/exporter/exportertest v0.115.0/go.mod h1:1jMZ9gFGXglb8wfNrBZIgd+RvpZhSyFwdfE+Jtf9w4U= +go.opentelemetry.io/collector/exporter/nopexporter v0.115.0 h1:ufwLbNp7mfoSxWJcoded3D9f/nIVvCwNa/0+ZqxzkzU= +go.opentelemetry.io/collector/exporter/nopexporter v0.115.0/go.mod h1:iIJgru1t+VJVVCE5KMAKjXbq9RkK4/5FCClnWnAlGtc= +go.opentelemetry.io/collector/exporter/otlpexporter v0.115.0 h1:Kqr31VFrQvgEMzeg8T1JSXWacjUQoZph39efKN8jBpY= +go.opentelemetry.io/collector/exporter/otlpexporter v0.115.0/go.mod h1:5uy/gduFx2mH0GxJ84sY75NfzQJb9xYmgiL9Pf0dKF8= +go.opentelemetry.io/collector/exporter/otlphttpexporter v0.115.0 h1:I0qzSWGbgph+iva5/jU8tkeUTkkqqcj8+UzMxg5ubF8= +go.opentelemetry.io/collector/exporter/otlphttpexporter v0.115.0/go.mod h1:cUrv5EG12iOs5MXaecfi9K+ZATEELefpyZY6Hj4NlUo= +go.opentelemetry.io/collector/extension v0.115.0 h1:/cBb8AUdD0KMWC6V3lvCC16eP9Fg0wd1Upcp5rgvuGI= +go.opentelemetry.io/collector/extension v0.115.0/go.mod h1:HI7Ak6loyi6ZrZPsQJW1OO1wbaAW8OqXLFNQlTZnreQ= +go.opentelemetry.io/collector/extension/auth v0.115.0 h1:TTMokbBsSHZRFH48PvGSJmgSS8F3Rkr9MWGHZn8eJDk= +go.opentelemetry.io/collector/extension/auth v0.115.0/go.mod h1:3w+2mzeb2OYNOO4Bi41TUo4jr32ap2y7AOq64IDpxQo= +go.opentelemetry.io/collector/extension/auth/authtest v0.115.0 h1:OZe7dKbZ01qodSpZU0ZYzI6zpmmzJ3UvfdBSFAbSgDw= +go.opentelemetry.io/collector/extension/auth/authtest v0.115.0/go.mod h1:fk9WCXP0x91Q64Z8HZKWTHh9PWtgoWE1KXe3n2Bff3U= +go.opentelemetry.io/collector/extension/experimental/storage v0.115.0 h1:sZXw0+77092pq24CkUoTRoHQPLQUsDq6HFRNB0g5yR4= +go.opentelemetry.io/collector/extension/experimental/storage v0.115.0/go.mod h1:qjFH7Y3QYYs88By2ZB5GMSUN5k3ul4Brrq2J6lKACA0= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.115.0 h1:/g25Hp5aoCNKdDjIb3Fc7XRglO8yaBRFLO/IUNPnqNI= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.115.0/go.mod h1:EQx7ETiy330O6q05S2KRZsRNDg0aQEeJmVl7Ipx+Fcw= +go.opentelemetry.io/collector/extension/extensiontest v0.115.0 h1:GBVFxFEskR8jSdu9uaQh2qpXnN5VNXhXjpJ2UjxtE8I= +go.opentelemetry.io/collector/extension/extensiontest v0.115.0/go.mod h1:eu1ecbz5mT+cHoH2H3GmD/rOO0WsicSJD2RLrYuOmRA= +go.opentelemetry.io/collector/extension/zpagesextension v0.115.0 h1:zYrZZocc7n0ZuDyXNkIaX0P0qk2fjMQj7NegwBJZA4k= +go.opentelemetry.io/collector/extension/zpagesextension v0.115.0/go.mod h1:OaXwNHF3MAcInBzCXrhXbTNHfIi9b7YGhXjtCFZqxNY= +go.opentelemetry.io/collector/featuregate v1.21.0 h1:+EULHPJDLMipcwAGZVp9Nm8NriRvoBBMxp7MSiIZVMI= +go.opentelemetry.io/collector/featuregate v1.21.0/go.mod h1:3GaXqflNDVwWndNGBJ1+XJFy3Fv/XrFgjMN60N3z7yg= +go.opentelemetry.io/collector/filter v0.115.0 h1:pYnHUFDSHSjEIFZit+CU09itVkDXgV+WcV2HOkjvQcE= +go.opentelemetry.io/collector/filter v0.115.0/go.mod h1:aewQ+jmvpH88gPVWpNXiWSm+wwJVxTK4f23ex2NMd2c= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.115.0 h1:6DRiSECeApFq6Jj5ug77rG53R6FzJEZBfygkyMEXdpg= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.115.0/go.mod h1:vgQf5HQdmLQqpDHpDq2S3nTRoUuKtRcZpRTsy+UiwYw= +go.opentelemetry.io/collector/internal/memorylimiter v0.115.0 h1:U07IJxyHZXM6eLn8cOq/Lycx6DhQZhpDOuYtIRw/d6I= +go.opentelemetry.io/collector/internal/memorylimiter v0.115.0/go.mod h1:KNcU8WVpW5y7Ij6CGnsefb7q1UZT7VvrTDhe5FKNOA4= +go.opentelemetry.io/collector/internal/sharedcomponent v0.115.0 h1:9TL6T6ALqDpumUJ0tYIuPIg5LGo4r6eoqlNArYX116o= +go.opentelemetry.io/collector/internal/sharedcomponent v0.115.0/go.mod h1:SgBLKMh11bOTPR1bdDZbi5MlqsoDBBFI3uBIwnei+0k= +go.opentelemetry.io/collector/otelcol v0.115.0 h1:wZhFGrSCZcTQ4qw4ePjI2PaSrOCejoQKAjprKD/xavs= +go.opentelemetry.io/collector/otelcol v0.115.0/go.mod h1:iK8DPvaizirIYKDl1zZG7DDYUj6GkkH4KHifVVM88vk= +go.opentelemetry.io/collector/otelcol/otelcoltest v0.115.0 h1:HNlFpQujlnvawBk8nvMGxzjDHWDCfSprxem/EpQn4u8= +go.opentelemetry.io/collector/otelcol/otelcoltest v0.115.0/go.mod h1:WsMbqYl2rm3nPFbdxQqyLXf4iu97nYLeuQ1seZIpV3Y= +go.opentelemetry.io/collector/pdata v1.21.0 h1:PG+UbiFMJ35X/WcAR7Rf/PWmWtRdW0aHlOidsR6c5MA= +go.opentelemetry.io/collector/pdata v1.21.0/go.mod h1:GKb1/zocKJMvxKbS+sl0W85lxhYBTFJ6h6I1tphVyDU= +go.opentelemetry.io/collector/pdata/pprofile v0.115.0 h1:NI89hy13vNDw7EOnQf7Jtitks4HJFO0SUWznTssmP94= +go.opentelemetry.io/collector/pdata/pprofile v0.115.0/go.mod h1:jGzdNfO0XTtfLjXCL/uCC1livg1LlfR+ix2WE/z3RpQ= +go.opentelemetry.io/collector/pdata/testdata v0.115.0 h1:Rblz+AKXdo3fG626jS+KSd0OSA4uMXcTQfpwed6P8LI= +go.opentelemetry.io/collector/pdata/testdata v0.115.0/go.mod h1:inNnRt6S2Nn260EfCBEcjesjlKOSsr0jPwkPqpBkt4s= +go.opentelemetry.io/collector/pipeline v0.115.0 h1:bmACBqb0e8U9ag+vGGHUP7kCfAO7HHROdtzIEg8ulus= +go.opentelemetry.io/collector/pipeline v0.115.0/go.mod h1:qE3DmoB05AW0C3lmPvdxZqd/H4po84NPzd5MrqgtL74= +go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.115.0 h1:3l9ruCAOrssTUDnyChKNzHWOdTtfThnYaoPZ1/+5sD0= +go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.115.0/go.mod h1:2Myg+law/5lcezo9PhhZ0wjCaLYdGK24s1jDWbSW9VY= +go.opentelemetry.io/collector/processor v0.115.0 h1:+fveHGRe24PZPv/F5taahGuZ9HdNW44hgNWEJhIUdyc= +go.opentelemetry.io/collector/processor v0.115.0/go.mod h1:/oLHBlLsm7tFb7zOIrA5C0j14yBtjXKAgxJJ2Bktyk4= +go.opentelemetry.io/collector/processor/batchprocessor v0.115.0 h1:dgw1jcE/YVFTs41b3Y7SerU3BBSyMEE93AYV+BAxR8E= +go.opentelemetry.io/collector/processor/batchprocessor v0.115.0/go.mod h1:imG1kDEq14UGlxyCjSCf1TUEFdSWRvF7tLoYX9nixEQ= +go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.115.0 h1:LCA2jwxy1PRc7X/AtRJfMdOANh5rVLdwo5PAM+gAuyo= +go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.115.0/go.mod h1:gPcHyza7Rek3jfrQFxw99fcWBDkkRqBaMHcUz9yYv5I= +go.opentelemetry.io/collector/processor/processorhelper/processorhelperprofiles v0.115.0 h1:r1UF8LPICTRXBL0685zV/CC8J4sWg/qm1g+sHOYMq2Y= +go.opentelemetry.io/collector/processor/processorhelper/processorhelperprofiles v0.115.0/go.mod h1:3erq5umu5a7DKXo4PBm4I5yJjc6r0aJNvBV2nVSPDuE= +go.opentelemetry.io/collector/processor/processorprofiles v0.115.0 h1:cCZAs+FXaebZPppqAN3m+X3etoSBL6NvyQo8l0hOZoo= +go.opentelemetry.io/collector/processor/processorprofiles v0.115.0/go.mod h1:kMxF0gknlWX4duuAJFi2/HuIRi6C3w95tOenRa0GKOY= +go.opentelemetry.io/collector/processor/processortest v0.115.0 h1:j9HEaYFOeOB6VYl9zGhBnhQbTkqGBa2udUvu5NTh6hc= +go.opentelemetry.io/collector/processor/processortest v0.115.0/go.mod h1:Gws+VEnp/eW3qAqPpqbKsrbnnxxNfyDjqrfUXbZfZic= +go.opentelemetry.io/collector/receiver v0.115.0 h1:55Q3Jvj6zHCIA1psKqi/3kEMJO4OqUF5tNAEYNdB1U8= +go.opentelemetry.io/collector/receiver v0.115.0/go.mod h1:nBSCh2O/WUcfgpJ+Jpz+B0z0Hn5jHeRvF2WmLij5EIY= +go.opentelemetry.io/collector/receiver/nopreceiver v0.115.0 h1:87dxAcHekbXqLtjcQjnK1An2PWkWAhTly+EXzPEgYOE= +go.opentelemetry.io/collector/receiver/nopreceiver v0.115.0/go.mod h1:Llu88KNSNwvmYPRr2PMDDbVY9zHfHEbPPB4yTjjQQe0= +go.opentelemetry.io/collector/receiver/otlpreceiver v0.115.0 h1:NqMWsGuVy6y6VKTaPeJS7NZ9KAxhE/xyGUC7GaLYm/o= +go.opentelemetry.io/collector/receiver/otlpreceiver v0.115.0/go.mod h1:9ituzngnjsh/YvO+Phayq9BTk/nw0rgK5ZVvX1oxULk= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0 h1:R9JLaj2Al93smIPUkbJshAkb/cY0H5JBOxIx+Zu0NG4= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0/go.mod h1:05E5hGujWeeXJmzKZwTdHyZ/+rRyrQlQB5p5Q2XY39M= +go.opentelemetry.io/collector/receiver/receivertest v0.115.0 h1:OiB684SbHQi6/Pd3ZH0cXjYvCpBS9ilQBfTQx0wVXHg= +go.opentelemetry.io/collector/receiver/receivertest v0.115.0/go.mod h1:Y8Z9U/bz9Xpyt8GI8DxZZgryw3mnnIw+AeKVLTD2cP8= +go.opentelemetry.io/collector/scraper v0.115.0 h1:hbfebO7x1Xm96OwqeuLz5w7QAaB3ZMlwOkUo0XzPadc= +go.opentelemetry.io/collector/scraper v0.115.0/go.mod h1:7YoCO6/4PeExLiX1FokcydJGCQUa7lUqZsqXokJ5VZ4= +go.opentelemetry.io/collector/semconv v0.115.0 h1:SoqMvg4ZEB3mz2EdAb6XYa+TuMo5Mir5FRBr3nVFUDY= +go.opentelemetry.io/collector/semconv v0.115.0/go.mod h1:N6XE8Q0JKgBN2fAhkUQtqK9LT7rEGR6+Wu/Rtbal1iI= +go.opentelemetry.io/collector/service v0.115.0 h1:k4GAOiI5tZgB2QKgwA6c3TeAVr7QL/ft5cOQbzUr8Iw= +go.opentelemetry.io/collector/service v0.115.0/go.mod h1:DKde9LMhNebdREecDSsqiTFLI2wRc+IoV4/wGxU6goY= go.opentelemetry.io/contrib/bridges/otelzap v0.6.0 h1:j8icMXyyqNf6HGuwlYhniPnVsbJIq7n+WirDu3VAJdQ= go.opentelemetry.io/contrib/bridges/otelzap v0.6.0/go.mod h1:evIOZpl+kAlU5IsaYX2Siw+IbpacAZvXemVsgt70uvw= go.opentelemetry.io/contrib/config v0.10.0 h1:2JknAzMaYjxrHkTnZh3eOme/Y2P5eHE2SWfhfV6Xd6c= @@ -1311,6 +1316,7 @@ golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= @@ -1353,9 +1359,8 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= -golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= -golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -1434,8 +1439,8 @@ google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.199.0 h1:aWUXClp+VFJmqE0JPvpZOK3LDQMyFKYIow4etYd9qxs= -google.golang.org/api v0.199.0/go.mod h1:ohG4qSztDJmZdjK/Ar6MhbAmb/Rpi4JHOqagsh90K28= +google.golang.org/api v0.188.0 h1:51y8fJ/b1AaaBRJr4yWm96fPcuxSo0JcegXE3DaHQHw= +google.golang.org/api v0.188.0/go.mod h1:VR0d+2SIiWOYG3r/jdm7adPW9hI2aRv9ETOSCQ9Beag= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1536,8 +1541,8 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= -gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= +gotest.tools/v3 v3.2.0 h1:I0DwBVMGAx26dttAj1BtJLAkVGncrkkUXfJLC4Flt/I= +gotest.tools/v3 v3.2.0/go.mod h1:Mcr9QNxkg0uMvy/YElmo4SpXgJKWgQvYrT7Kw5RzJ1A= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1547,15 +1552,15 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= k8s.io/api v0.21.1/go.mod h1:FstGROTmsSHBarKc8bylzXih8BLNYTiS3TZcsoEDg2s= k8s.io/api v0.27.1/go.mod h1:z5g/BpAiD+f6AArpqNjkY+cji8ueZDU/WV1jcj5Jk4E= -k8s.io/api v0.31.2 h1:3wLBbL5Uom/8Zy98GRPXpJ254nEFpl+hwndmk9RwmL0= -k8s.io/api v0.31.2/go.mod h1:bWmGvrGPssSK1ljmLzd3pwCQ9MgoTsRCuK35u6SygUk= +k8s.io/api v0.31.3 h1:umzm5o8lFbdN/hIXbrK9oRpOproJO62CV1zqxXrLgk8= +k8s.io/api v0.31.3/go.mod h1:UJrkIp9pnMOI9K2nlL6vwpxRzzEX5sWgn8kGQe92kCE= k8s.io/apimachinery v0.21.1/go.mod h1:jbreFvJo3ov9rj7eWT7+sYiRx+qZuCYXwWT1bcDswPY= k8s.io/apimachinery v0.27.1/go.mod h1:5ikh59fK3AJ287GUvpUsryoMFtH9zj/ARfWCo3AyXTM= -k8s.io/apimachinery v0.31.2 h1:i4vUt2hPK56W6mlT7Ry+AO8eEsyxMD1U44NR22CLTYw= -k8s.io/apimachinery v0.31.2/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/apimachinery v0.31.3 h1:6l0WhcYgasZ/wk9ktLq5vLaoXJJr5ts6lkaQzgeYPq4= +k8s.io/apimachinery v0.31.3/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= k8s.io/client-go v0.21.1/go.mod h1:/kEw4RgW+3xnBGzvp9IWxKSNA+lXn3A7AuH3gdOAzLs= -k8s.io/client-go v0.31.2 h1:Y2F4dxU5d3AQj+ybwSMqQnpZH9F30//1ObxOKlTI9yc= -k8s.io/client-go v0.31.2/go.mod h1:NPa74jSVR/+eez2dFsEIHNa+3o09vtNaWwWwb1qSxSs= +k8s.io/client-go v0.31.3 h1:CAlZuM+PH2cm+86LOBemaJI/lQ5linJ6UFxKX/SoG+4= +k8s.io/client-go v0.31.3/go.mod h1:2CgjPUTpv3fE5dNygAr2NcM8nhHzXvxB8KL5gYc3kJs= k8s.io/code-generator v0.21.1/go.mod h1:hUlps5+9QaTrKx+jiM4rmq7YmH8wPOIko64uZCHDh6Q= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= @@ -1569,13 +1574,13 @@ k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7/go.mod h1:wXW5VT87nVfh/iLV8FpR2uDvrFyomxbtb1KivDbvPTE= k8s.io/kube-openapi v0.0.0-20230308215209-15aac26d736a/go.mod h1:y5VtZWM9sHHc2ZodIH/6SHzXj+TPU5USoA8lcIeKEKY= -k8s.io/kube-openapi v0.0.0-20240430033511-f0e62f92d13f h1:0LQagt0gDpKqvIkAMPaRGcXawNMouPECM1+F9BVxEaM= -k8s.io/kube-openapi v0.0.0-20240430033511-f0e62f92d13f/go.mod h1:S9tOR0FxgyusSNR+MboCuiDpVWkAifZvaYI1Q2ubgro= +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20230209194617-a36077c30491/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -k8s.io/utils v0.0.0-20240821151609-f90d01438635 h1:2wThSvJoW/Ncn9TmQEYXRnevZXi2duqHWf5OX9S3zjI= -k8s.io/utils v0.0.0-20240821151609-f90d01438635/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A= +k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/comp/otelcol/collector-contrib/impl/manifest.yaml b/comp/otelcol/collector-contrib/impl/manifest.yaml index 6f878f6d19c84..952a5f97e483f 100644 --- a/comp/otelcol/collector-contrib/impl/manifest.yaml +++ b/comp/otelcol/collector-contrib/impl/manifest.yaml @@ -1,83 +1,83 @@ connectors: - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector - v0.114.0 + v0.115.0 dist: description: Datadog OpenTelemetry Collector module: github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib/impl name: otelcol-contrib output_path: ./comp/otelcol/collector-contrib/impl - version: 0.114.0 + version: 0.115.0 exporters: -- gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.114.0 -- gomod: go.opentelemetry.io/collector/exporter/nopexporter v0.114.0 -- gomod: go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0 -- gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0 +- gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.115.0 +- gomod: go.opentelemetry.io/collector/exporter/nopexporter v0.115.0 +- gomod: go.opentelemetry.io/collector/exporter/otlpexporter v0.115.0 +- gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter - v0.114.0 + v0.115.0 extensions: -- gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 +- gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver - v0.114.0 + v0.115.0 processors: -- gomod: go.opentelemetry.io/collector/processor/batchprocessor v0.114.0 -- gomod: go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.114.0 +- gomod: go.opentelemetry.io/collector/processor/batchprocessor v0.115.0 +- gomod: go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor - v0.114.0 + v0.115.0 providers: -- gomod: go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0 -- gomod: go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0 -- gomod: go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0 -- gomod: go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0 -- gomod: go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0 +- gomod: go.opentelemetry.io/collector/confmap/provider/envprovider v1.21.0 +- gomod: go.opentelemetry.io/collector/confmap/provider/fileprovider v1.21.0 +- gomod: go.opentelemetry.io/collector/confmap/provider/httpprovider v1.21.0 +- gomod: go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.21.0 +- gomod: go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.21.0 receivers: -- gomod: go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0 -- gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0 +- gomod: go.opentelemetry.io/collector/receiver/nopreceiver v0.115.0 +- gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver - v0.114.0 + v0.115.0 replaces: - github.com/googleapis/gnostic v0.5.6 => github.com/googleapis/gnostic v0.5.5 - github.com/docker/go-connections v0.4.1-0.20210727194412-58542c764a11 => github.com/docker/go-connections diff --git a/comp/otelcol/collector/impl/collector.go b/comp/otelcol/collector/impl/collector.go index 7da391585dd7d..5bc453ed970ef 100644 --- a/comp/otelcol/collector/impl/collector.go +++ b/comp/otelcol/collector/impl/collector.go @@ -139,7 +139,7 @@ func addFactories(reqs Requires, factories otelcol.Factories) { } var buildInfo = component.BuildInfo{ - Version: "v0.114.0", + Version: "v0.115.0", Command: filepath.Base(os.Args[0]), Description: "Datadog Agent OpenTelemetry Collector", } diff --git a/comp/otelcol/converter/def/go.mod b/comp/otelcol/converter/def/go.mod index a0cb90be3f0d1..eea27b7e5bbd3 100644 --- a/comp/otelcol/converter/def/go.mod +++ b/comp/otelcol/converter/def/go.mod @@ -2,7 +2,7 @@ module github.com/DataDog/datadog-agent/comp/otelcol/converter/def go 1.22.0 -require go.opentelemetry.io/collector/confmap v1.20.0 +require go.opentelemetry.io/collector/confmap v1.21.0 require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect @@ -12,7 +12,6 @@ require ( github.com/knadh/koanf/v2 v2.1.2 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect - github.com/stretchr/testify v1.10.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/comp/otelcol/converter/def/go.sum b/comp/otelcol/converter/def/go.sum index 3a078b063a674..42f05aac3c99a 100644 --- a/comp/otelcol/converter/def/go.sum +++ b/comp/otelcol/converter/def/go.sum @@ -22,8 +22,8 @@ github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjR github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -go.opentelemetry.io/collector/confmap v1.20.0 h1:ARfOwmkKxFOud1njl03yAHQ30+uenlzqCO6LBYamDTE= -go.opentelemetry.io/collector/confmap v1.20.0/go.mod h1:DMpd9Ay/ffls3JoQBQ73vWeRsz1rNuLbwjo6WtjSQus= +go.opentelemetry.io/collector/confmap v1.21.0 h1:1tIcx2/Suwg8VhuPmQw87ba0ludPmumpFCFRZZa6RXA= +go.opentelemetry.io/collector/confmap v1.21.0/go.mod h1:Rrhs+MWoaP6AswZp+ReQ2VO9dfOfcUjdjiSHBsG+nec= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= diff --git a/comp/otelcol/converter/impl/go.mod b/comp/otelcol/converter/impl/go.mod index f4c649d45be37..0910f004f852c 100644 --- a/comp/otelcol/converter/impl/go.mod +++ b/comp/otelcol/converter/impl/go.mod @@ -42,12 +42,12 @@ require ( github.com/DataDog/datadog-agent/comp/core/config v0.56.2 github.com/DataDog/datadog-agent/comp/otelcol/converter/def v0.56.0-rc.3 github.com/stretchr/testify v1.10.0 - go.opentelemetry.io/collector/confmap v1.20.0 - go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0 - go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0 - go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0 - go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0 - go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0 + go.opentelemetry.io/collector/confmap v1.21.0 + go.opentelemetry.io/collector/confmap/provider/envprovider v1.21.0 + go.opentelemetry.io/collector/confmap/provider/fileprovider v1.21.0 + go.opentelemetry.io/collector/confmap/provider/httpprovider v1.21.0 + go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.21.0 + go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.21.0 go.uber.org/zap v1.27.0 ) diff --git a/comp/otelcol/converter/impl/go.sum b/comp/otelcol/converter/impl/go.sum index 6a6b8e8abfdf0..edcc6b1df46e4 100644 --- a/comp/otelcol/converter/impl/go.sum +++ b/comp/otelcol/converter/impl/go.sum @@ -230,18 +230,18 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/collector/confmap v1.20.0 h1:ARfOwmkKxFOud1njl03yAHQ30+uenlzqCO6LBYamDTE= -go.opentelemetry.io/collector/confmap v1.20.0/go.mod h1:DMpd9Ay/ffls3JoQBQ73vWeRsz1rNuLbwjo6WtjSQus= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0 h1:I3xDecFXJVZBo5zJS7Y5SWBjF22XDWGZJgwotiwA5QM= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0/go.mod h1:CF0l8V8MNv+Wag8UkqObotFnlhMzdTFuk4/6kylKwYU= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0 h1:wWxvQ7wj+1O9yDGM5m1HPEz8FJewAHAUWadAAi0KVbM= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0/go.mod h1:/5HWIPjGYk8IUurs1CZUSjGaSsaQyJsfR8+Zs5rGJ6Y= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0 h1:YS1nB8vDoCS8IlfX5OP3QGS90y/hfflwZ7CoPQcAOlU= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0/go.mod h1:aV4UfkgcJ3eyXvfd3m694omN++1c96Joitab+YL6Xks= -go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0 h1:0BJHAeKFb46FCT0ehOmmGs0v31cGuAh4DIic07J71NU= -go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0/go.mod h1:gBiweuH4EDuPh9mpLCB/wPZzostdA+gKY8hABwbotQk= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0 h1:jSXTojCPI6Xr98m99nF7qbQFnw3INLEOHRcqcHS+lak= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0/go.mod h1:Pu95O2JE3R+0BBTbe4gpAC8ms3w6FbICHJw3WvGWrjs= +go.opentelemetry.io/collector/confmap v1.21.0 h1:1tIcx2/Suwg8VhuPmQw87ba0ludPmumpFCFRZZa6RXA= +go.opentelemetry.io/collector/confmap v1.21.0/go.mod h1:Rrhs+MWoaP6AswZp+ReQ2VO9dfOfcUjdjiSHBsG+nec= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.21.0 h1:YLf++Z8CMp86AanfOCWUiE7vKbb1kSjgC3a9VJoxbD4= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.21.0/go.mod h1:aSWLYcmgZZJDNtWN1M8JKQuehoGgOxibl1KuvKTar4M= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.21.0 h1:+zukkM+3l426iGoJkXTpLB2Z8QnZFu26TkGPjh5Rn/4= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.21.0/go.mod h1:BXBpQhF3n4CNLYO2n/mWZPd2U9ekpbLXLRGZrun1VfI= +go.opentelemetry.io/collector/confmap/provider/httpprovider v1.21.0 h1:NYYGM+SgIlTuNGjd8eGzDr8DkvOe4q7cXon8djF9yyI= +go.opentelemetry.io/collector/confmap/provider/httpprovider v1.21.0/go.mod h1:XRYbuwqq1awFuNhLDUv4aSvn6MzqX+abcevx1O+APJI= +go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.21.0 h1:2EEUI2DzA2DvrvCImMWRSNqIHdRJ6+qbgvZL44Zb2ac= +go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.21.0/go.mod h1:axezjjQWY4kZc5pr/+wOKAuqSYMhea/tWzP5S30h+dc= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.21.0 h1:P3Q9RytCMY76ORPCnkkjOa4fkuFqmZiQRor+F/nPlYE= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.21.0/go.mod h1:xhYhHK3yLQ78tsoaKPIGUfFulgy961ImOe2gATH3RQc= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/comp/otelcol/ddflareextension/def/go.mod b/comp/otelcol/ddflareextension/def/go.mod index bda6d4d0adf21..d0d35f560a084 100644 --- a/comp/otelcol/ddflareextension/def/go.mod +++ b/comp/otelcol/ddflareextension/def/go.mod @@ -2,16 +2,15 @@ module github.com/DataDog/datadog-agent/comp/otelcol/ddflareextension/def go 1.22.0 -require go.opentelemetry.io/collector/extension v0.114.0 +require go.opentelemetry.io/collector/extension v0.115.0 require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/stretchr/testify v1.10.0 // indirect - go.opentelemetry.io/collector/component v0.114.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect - go.opentelemetry.io/collector/pdata v1.20.0 // indirect + go.opentelemetry.io/collector/component v0.115.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.115.0 // indirect + go.opentelemetry.io/collector/pdata v1.21.0 // indirect go.opentelemetry.io/otel v1.32.0 // indirect go.opentelemetry.io/otel/metric v1.32.0 // indirect go.opentelemetry.io/otel/trace v1.32.0 // indirect diff --git a/comp/otelcol/ddflareextension/def/go.sum b/comp/otelcol/ddflareextension/def/go.sum index 2285317ce7f89..2c09c99ac5912 100644 --- a/comp/otelcol/ddflareextension/def/go.sum +++ b/comp/otelcol/ddflareextension/def/go.sum @@ -16,14 +16,14 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= -go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/extension v0.114.0 h1:9Qb92y8hD2WDC5aMDoj4JNQN+/5BQYJWPUPzLXX+iGw= -go.opentelemetry.io/collector/extension v0.114.0/go.mod h1:Yk2/1ptVgfTr12t+22v93nYJpioP14pURv2YercSzU0= -go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= -go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= +go.opentelemetry.io/collector/component v0.115.0 h1:iLte1oCiXzjiCnaOBKdsXacfFiECecpWxW3/LeriMoo= +go.opentelemetry.io/collector/component v0.115.0/go.mod h1:oIUFiH7w1eOimdeYhFI+gAIxYSiLDocKVJ0PTvX7d6s= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0 h1:U07FinCDop+r2RjWQ3aP9ZWONC7r7kQIp1GkXQi6nsI= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0/go.mod h1:SlBEwQg0qly75rXZ6W1Ig8jN25KBVBkFIIAUI1GiAAE= +go.opentelemetry.io/collector/extension v0.115.0 h1:/cBb8AUdD0KMWC6V3lvCC16eP9Fg0wd1Upcp5rgvuGI= +go.opentelemetry.io/collector/extension v0.115.0/go.mod h1:HI7Ak6loyi6ZrZPsQJW1OO1wbaAW8OqXLFNQlTZnreQ= +go.opentelemetry.io/collector/pdata v1.21.0 h1:PG+UbiFMJ35X/WcAR7Rf/PWmWtRdW0aHlOidsR6c5MA= +go.opentelemetry.io/collector/pdata v1.21.0/go.mod h1:GKb1/zocKJMvxKbS+sl0W85lxhYBTFJ6h6I1tphVyDU= go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= diff --git a/comp/otelcol/ddflareextension/impl/go.mod b/comp/otelcol/ddflareextension/impl/go.mod index 5f0036a040fb9..d25ace6070271 100644 --- a/comp/otelcol/ddflareextension/impl/go.mod +++ b/comp/otelcol/ddflareextension/impl/go.mod @@ -113,58 +113,58 @@ require ( github.com/DataDog/datadog-agent/pkg/version v0.59.0 github.com/google/go-cmp v0.6.0 github.com/gorilla/mux v1.8.1 - github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.115.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.115.0 github.com/stretchr/testify v1.10.0 - go.opentelemetry.io/collector/component v0.114.0 - go.opentelemetry.io/collector/component/componentstatus v0.114.0 - go.opentelemetry.io/collector/component/componenttest v0.114.0 - go.opentelemetry.io/collector/config/confighttp v0.114.0 - go.opentelemetry.io/collector/confmap v1.20.0 - go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0 - go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0 - go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0 - go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0 - go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0 - go.opentelemetry.io/collector/connector v0.114.0 - go.opentelemetry.io/collector/exporter v0.114.0 - go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0 - go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0 - go.opentelemetry.io/collector/extension v0.114.0 - go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0 - go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 - go.opentelemetry.io/collector/otelcol v0.114.0 - go.opentelemetry.io/collector/processor v0.114.0 - go.opentelemetry.io/collector/processor/batchprocessor v0.114.0 - go.opentelemetry.io/collector/receiver v0.114.0 - go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0 - go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0 + go.opentelemetry.io/collector/component v0.115.0 + go.opentelemetry.io/collector/component/componentstatus v0.115.0 + go.opentelemetry.io/collector/component/componenttest v0.115.0 + go.opentelemetry.io/collector/config/confighttp v0.115.0 + go.opentelemetry.io/collector/confmap v1.21.0 + go.opentelemetry.io/collector/confmap/provider/envprovider v1.21.0 + go.opentelemetry.io/collector/confmap/provider/fileprovider v1.21.0 + go.opentelemetry.io/collector/confmap/provider/httpprovider v1.21.0 + go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.21.0 + go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.21.0 + go.opentelemetry.io/collector/connector v0.115.0 + go.opentelemetry.io/collector/exporter v0.115.0 + go.opentelemetry.io/collector/exporter/otlpexporter v0.115.0 + go.opentelemetry.io/collector/exporter/otlphttpexporter v0.115.0 + go.opentelemetry.io/collector/extension v0.115.0 + go.opentelemetry.io/collector/extension/extensioncapabilities v0.115.0 + go.opentelemetry.io/collector/extension/zpagesextension v0.115.0 + go.opentelemetry.io/collector/otelcol v0.115.0 + go.opentelemetry.io/collector/processor v0.115.0 + go.opentelemetry.io/collector/processor/batchprocessor v0.115.0 + go.opentelemetry.io/collector/receiver v0.115.0 + go.opentelemetry.io/collector/receiver/nopreceiver v0.115.0 + go.opentelemetry.io/collector/receiver/otlpreceiver v0.115.0 go.uber.org/zap v1.27.0 gopkg.in/yaml.v2 v2.4.0 ) -require go.opentelemetry.io/collector/extension/extensiontest v0.114.0 // indirect +require go.opentelemetry.io/collector/extension/extensiontest v0.115.0 // indirect require ( github.com/knadh/koanf/maps v0.1.1 // indirect github.com/knadh/koanf/providers/confmap v0.1.0 // indirect github.com/moby/sys/userns v0.1.0 // indirect github.com/pierrec/lz4/v4 v4.1.21 // indirect - go.opentelemetry.io/collector/connector/connectortest v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/exporter/exportertest v0.114.0 // indirect - go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0 // indirect - go.opentelemetry.io/collector/internal/sharedcomponent v0.114.0 // indirect - go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/processor/processortest v0.114.0 // indirect - go.opentelemetry.io/collector/receiver/receivertest v0.114.0 // indirect + go.opentelemetry.io/collector/connector/connectortest v0.115.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror v0.115.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/exporter/exportertest v0.115.0 // indirect + go.opentelemetry.io/collector/internal/fanoutconsumer v0.115.0 // indirect + go.opentelemetry.io/collector/internal/sharedcomponent v0.115.0 // indirect + go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/processor/processortest v0.115.0 // indirect + go.opentelemetry.io/collector/receiver/receivertest v0.115.0 // indirect go.opentelemetry.io/contrib/bridges/otelzap v0.6.0 // indirect ) @@ -397,15 +397,15 @@ require ( github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect github.com/onsi/ginkgo/v2 v2.20.2 // indirect github.com/onsi/gomega v1.34.1 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.115.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0 // indirect github.com/opencontainers/runtime-spec v1.2.0 // indirect @@ -430,7 +430,7 @@ require ( github.com/scaleway/scaleway-sdk-go v1.0.0-beta.29 // indirect github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shirou/gopsutil/v4 v4.24.10 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect @@ -450,33 +450,33 @@ require ( github.com/x448/float16 v0.8.4 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/collector v0.114.0 // indirect - go.opentelemetry.io/collector/client v1.20.0 // indirect - go.opentelemetry.io/collector/config/configauth v0.114.0 // indirect - go.opentelemetry.io/collector/config/configcompression v1.20.0 // indirect - go.opentelemetry.io/collector/config/configgrpc v0.114.0 // indirect - go.opentelemetry.io/collector/config/confignet v1.20.0 // indirect - go.opentelemetry.io/collector/config/configopaque v1.20.0 // indirect - go.opentelemetry.io/collector/config/configretry v1.20.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect - go.opentelemetry.io/collector/config/configtls v1.20.0 // indirect - go.opentelemetry.io/collector/config/internal v0.114.0 // indirect - go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/consumer v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumertest v0.114.0 // indirect - go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/extension/auth v0.114.0 // indirect - go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 // indirect - go.opentelemetry.io/collector/featuregate v1.20.0 // indirect - go.opentelemetry.io/collector/pdata v1.20.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.114.0 // indirect - go.opentelemetry.io/collector/pdata/testdata v0.114.0 // indirect - go.opentelemetry.io/collector/pipeline v0.114.0 // indirect - go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/semconv v0.114.0 // indirect - go.opentelemetry.io/collector/service v0.114.0 // indirect + go.opentelemetry.io/collector v0.115.0 // indirect + go.opentelemetry.io/collector/client v1.21.0 // indirect + go.opentelemetry.io/collector/config/configauth v0.115.0 // indirect + go.opentelemetry.io/collector/config/configcompression v1.21.0 // indirect + go.opentelemetry.io/collector/config/configgrpc v0.115.0 // indirect + go.opentelemetry.io/collector/config/confignet v1.21.0 // indirect + go.opentelemetry.io/collector/config/configopaque v1.21.0 // indirect + go.opentelemetry.io/collector/config/configretry v1.21.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.115.0 // indirect + go.opentelemetry.io/collector/config/configtls v1.21.0 // indirect + go.opentelemetry.io/collector/config/internal v0.115.0 // indirect + go.opentelemetry.io/collector/connector/connectorprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/consumer v1.21.0 // indirect + go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/consumer/consumertest v0.115.0 // indirect + go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/extension/auth v0.115.0 // indirect + go.opentelemetry.io/collector/extension/experimental/storage v0.115.0 // indirect + go.opentelemetry.io/collector/featuregate v1.21.0 // indirect + go.opentelemetry.io/collector/pdata v1.21.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.115.0 // indirect + go.opentelemetry.io/collector/pdata/testdata v0.115.0 // indirect + go.opentelemetry.io/collector/pipeline v0.115.0 // indirect + go.opentelemetry.io/collector/processor/processorprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/semconv v0.115.0 // indirect + go.opentelemetry.io/collector/service v0.115.0 // indirect go.opentelemetry.io/contrib/config v0.10.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect @@ -525,9 +525,9 @@ require ( gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gotest.tools/v3 v3.5.1 // indirect - k8s.io/api v0.31.2 // indirect - k8s.io/apimachinery v0.31.2 // indirect - k8s.io/client-go v0.31.2 // indirect + k8s.io/api v0.31.3 // indirect + k8s.io/apimachinery v0.31.3 // indirect + k8s.io/client-go v0.31.3 // indirect k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kube-openapi v0.0.0-20240430033511-f0e62f92d13f // indirect k8s.io/utils v0.0.0-20240821151609-f90d01438635 // indirect diff --git a/comp/otelcol/ddflareextension/impl/go.sum b/comp/otelcol/ddflareextension/impl/go.sum index aa6426785ee4b..a9f2e49111934 100644 --- a/comp/otelcol/ddflareextension/impl/go.sum +++ b/comp/otelcol/ddflareextension/impl/go.sum @@ -590,58 +590,58 @@ github.com/onsi/ginkgo/v2 v2.20.2 h1:7NVCeyIWROIAheY21RLS+3j2bb52W0W82tkberYytp4 github.com/onsi/ginkgo/v2 v2.20.2/go.mod h1:K9gyxPIlb+aIvnZ8bd9Ak+YP18w3APlR+5coaZoE2ag= github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.114.0 h1:cjiWapRbK28GxsZyKCegQOLJCEiwIWEV+INvxrS8HSA= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.114.0/go.mod h1:1Mx3wOciTCjrN9PgVAB4uFBeoqEfyeZEuvpguOasm4s= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0 h1:oA79wMjQSQBKz+X90LD5edNOyaEsewspJRBYgxliEMA= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0/go.mod h1:uk7Z36vhLtevNy5672jGxgzNJA2LND6wmispTuhHCxI= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.114.0 h1:K1/5bZ5EbmxHH4cfvPo/3sYrHUVnM6H86C0dVkf+6TM= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.114.0/go.mod h1:XWnw+AWGoINC/fG4urgmiLVXDaYeqkRVLKUJMPqC3Ls= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.114.0 h1:quLs6NbDeG2x2eLmncaq/P4yvnCPLAelFqXac2eMRSw= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.114.0/go.mod h1:xX2v2kixYWZbFvnT5re3BGg2pyLy78KSIiMed7P2c/c= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 h1:G7SHyt5TvFSEsiaxyhZdqkjcRoK2rP5wl4a3Mu31JM4= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0/go.mod h1:TRsDReUh7ALEUutKVoLlGMRc2QECZAyT/5g/cpAr+aw= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 h1:6g5EvbygaEBqed0rJotGHcfxgxGV8hSN/4ZoZFfac5M= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0/go.mod h1:gU87iMdDAdHrQQCWTURbrlE/dLYgFecJ/+WBHuNMjQI= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.114.0 h1:4qELD/ZwgvXE5PshGzJ9Eu+JEQdLIok6V1x8rvqL+yk= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.114.0/go.mod h1:3U1KoAsmQd9H37t8VkesFfB56tThrPsNVG+ddsMJ2zM= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.114.0 h1:0LbaoE7Aof8J4CVQ5kYv1QbuL3usTxLRSMFisDNBX9U= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.114.0/go.mod h1:ByoGXMLeHE/k5ELO3EITitVmvq3bh4Z/GVwWZZxrQ5s= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0 h1:d2wCLlENxH4I2axQWaogivx/5ZIjDYgn9MIf6sFxlJ4= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0/go.mod h1:Psyligv8GKL9WI3TraW3BLwkOX4TRxaaa1BBQQyICzA= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.114.0 h1:WrVBqO/ps3KvUyEhtdL/uDDHhKoszLEE1ywDbwskNRg= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.114.0/go.mod h1:JYklzR+ZxQaxjzlfJP3bxX6rQFl/Hbo0vd3yNj/1s1s= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.114.0 h1:dtW9JkkpAm33Y47estFyqEL0CW05DHGmlLQxZUSx78w= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.114.0/go.mod h1:FcClDm9XVV5tzUDzmH2Mhe6TfYiZ/3GSAQITnuCjZgg= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.114.0 h1:cGJRIzB5N3oe1c8vD5HqCuy4dbQE9EDJZ9C7vJn+K8U= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.114.0/go.mod h1:p53t8aSCVoTKXVOsNx62rDLrSdEkBFB4H85yEiTWkyI= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.114.0 h1:lt87gwZaUP9Lh0EAgZFTYego0k89NU8K6Qkk82oR/n8= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.114.0/go.mod h1:nxxBsX9Z2Q7HQvybUTx8CzUvYCJewKBM1Eys6SiS0eg= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 h1:Wq1iTmd0K1SSOIA43Wy2uAU6SB4f9ogyN3ZmvDgTURg= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0/go.mod h1:VCj9H0QxRBWSgbl1pUo8p0NrqnmcxpPo0QjKLFtWkO0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.114.0 h1:SXi6JSSs2cWROnC1U2v3XysG3t58ilGUwoLqxpGuwFU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.114.0/go.mod h1:LSd6sus2Jvpg3M3vM4HgmVh3/dmMtcJmTqELrFOQFRg= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.114.0 h1:G6U2eHR2CGSYb2btot6l05o+mdqsC0ZN7dH8QssXSdk= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.114.0/go.mod h1:kZQvVVzpahX8kFUfEBmzFtDhkKAQW6i8XQCMozDRUlk= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0 h1:m8uPYU2rTj0sKiYgzCvIPajD3meiYsu+nX0hplUnlEU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0/go.mod h1:P0BaP92pXPkTyTmObfLYUoRBfMYU+i0hdS3oM1DpGJo= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0 h1:Qg80zPfNMlub7LO07VMDElOu3M2oxqdZgvvB+X72a4U= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0/go.mod h1:5qsGcjFV3WFI6J2onAlkR7Xd/8VtwJcECaDRZfW4Tb4= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0 h1:PwUMZ6fHMEUV5i9hUly+z3UujDTTdxQtWzL0rWc/lgA= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0/go.mod h1:YEHL6w4vvB9b0/lNwGjz8DyWXTF/7Xw0Hkgc3mGWwa8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 h1:mtSN/07RGQPi1/zHVSZg4G0qRtOoJpPew5jsQWv9uS0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0/go.mod h1:C9Zgh/N3j4NR2D+1FGAA1YizhFW9OS51DwLUFJTdXN4= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.114.0 h1:eJxap/u8Q5wYnBcJTrTS1Tq6wq31SOlIr+FMJX5ZoC8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.114.0/go.mod h1:H7uIA2RBaxit2mSwSU8Wc7QXSJX7r8UR66YvdcLmtto= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.114.0 h1:tG98F8g5T7lKYaoxSh9e76agmkauPtXiMbQhuWAeG+I= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.114.0/go.mod h1:eN3xPxPcRZH0wofEQ1Greu1c561qEGeYv5Zt0uedmMM= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 h1:I4ZYVRYW3Cjb65sPENZ9kHam/JUMXNEp2n/knJ0C0Vc= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0/go.mod h1:4BhyIaOn2LS48WS+ZNix4TpP0+goq9gDEtGzth5Cr3M= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.114.0 h1:NrD8Qo2CxrHRAlLuOHm75RtO1xEnul6DDkn6tQMsuSg= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.114.0/go.mod h1:XOlJzIYwicEPMxu6Gv9TL9pS6El+ffjQOAu/wPiL+Jg= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0 h1:lKG7Ghtba2l9P4FFP7I+SbVRqHEpXCGOZs367YTEwGc= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0/go.mod h1:5U/lrnkK5YtIeTFXI8OzDN/d827WtI6pQvu7/59pUVA= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 h1:gdljk66vBTT3lWfSdP4Hl7FaABdH1YPhUCH6jnG2+qY= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0/go.mod h1:T1p6ShTr8farkE4qUB2TyGUIvRSN3s17D0qY7rMqCRM= +github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.115.0 h1:Xkfl44ZRgkz1EoCCYgwPomQkV+BrYOPvv9v1Kd1gZE4= +github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.115.0/go.mod h1:Sr/upBdJeJ7nxDfmCFCl9iHosXiPoQCPHkCJslDyoUA= +github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.115.0 h1:sO4fPw0NRUibgBVvQVTqPBCBRFh0I+ODIr3HAwcWezI= +github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.115.0/go.mod h1:HqzCXJ4rxXzWNYaUtCqJzXyTsCGEKSa/d+tHcyeRDY0= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.115.0 h1:qtct9PsKONY6YOMc+QGBE/uGs8KMBcF6mvYJbyFHFt8= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.115.0/go.mod h1:OR9DKWrSRpfc3+CxwsL2QTOuHD03S9w0Jubi3EhTcy4= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.115.0 h1:u7Ht+E1ghQESffcjyaxWrXGsfSWa1VE9LKC4f2PPx84= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.115.0/go.mod h1:r3iS2mDYu+cnGjgNc8TgvuUUAN6A6/1BvR1e1YJBrqM= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.115.0 h1:51D/x3xIAnWgVrY0lgdU+b+yb2aWd72uDqu9GhjRcNI= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.115.0/go.mod h1:nLau1YUdjhtLrk4jXLPb2l9riQ1Ap4xytTLl7MBedBg= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.115.0 h1:HVGG31WeB6Fn2+il2/ycWj9tDP0fxOeOqD1rKCjsBSc= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.115.0/go.mod h1:2hYojHs5daPVWECuZsPViKwty0ojuHUEmk8GEuaFqO0= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.115.0 h1:SF3gOOEkfntE3zEhY80yO7BVQ5CkaK8ecic2U2AZPHE= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.115.0/go.mod h1:jeBzX5m8O9X0LQxiryV9sJUIrn+QAwOnCBE2wZWIltQ= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.115.0 h1:vRQQFD4YpasQFUAdF030UWtaflSYFXK542bfWMGhOK0= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.115.0/go.mod h1:BZ7DT+0VkKR7P3I9PGEDfVa0GdB0ty41eEcejIUXF9A= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.115.0 h1:a36EJz/mb83f6ieX0v4fNDJ1jXqpeaM6DVQXeFDvdhw= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.115.0/go.mod h1:r5/40YO1eSP5ZreOmRzVOUtDr7YG39ZIUcVjHd+9Izc= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.115.0 h1:h6zEsBtuZalQu7lKYf6ZCcj8fTocT+zxdmuOou9515Q= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.115.0/go.mod h1:6QU/K0dGCGYorkOvJmhbDFCspy4RPxRkFjf9I64y6I0= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.115.0 h1:f/HrZgTf6TF97v67uEZB3v2UtBT9aQojBvnloD3LOm4= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.115.0/go.mod h1:Hp9uSq3qNJqdxu24u7RWyuPT9x1GgEUSx9US1LLeLi0= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.115.0 h1:4RoU3SlcNe6Dxyxfv8JVsrN8QgjBQ44Pkt9FLKK095I= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.115.0/go.mod h1:jfPlBpZT+hvp52Ldcx+srxaqyYuKxBkxOd3KtxbveCU= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.115.0 h1:8A+iBT5G23zvBPqYx32Qh4800jHFo4X9T1fpQKVQ+4E= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.115.0/go.mod h1:AhdPvwYKu7G8LKRWzHTNQYBq27RinsMm5qSanwSA/rU= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.115.0 h1:WOqt8NpU/JPGYDR4CiWx7g/sHV6Oe9FChzhushwmVdo= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.115.0/go.mod h1:wV/+iU7MyXcyTaY8K5Qx+1Z3yUzrxA40nydPQA476Iw= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.115.0 h1:Z9p78zj9Qblw472mGkPieuX7mqduAp47rzMbFfq5evI= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.115.0/go.mod h1:mtxUxJEIQy27MaGR1yzcn/OK8NoddEgb7fumpEbKYss= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.115.0 h1:qdZ9EqmdM19pWhPoFA7VivBTdzP2HvNwXa3CCMHYoDQ= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.115.0/go.mod h1:mrL1MNrcg0zYAJ+aK9WtOH062dl2wN9DDG7mZk9H8v4= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.115.0 h1:MerLKMrkM4YoGF6Di0D9yMXO02yCX8mrZAi/+jJVVeI= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.115.0/go.mod h1:R8AkVWe9G5Q0oMOapvm9HNS076E3Min8SVlmhBL3QD0= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.115.0 h1:WEqcnWSy9dNSlGb8pYRBX7zhaz2ReyaeImlenbzNTB4= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.115.0/go.mod h1:6Mk71CakHUA3I6oM9hARDiyQypYyOolvb+4PFYyVEFg= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.115.0 h1:eoapW0JBablApkdv4C1RUuOKfz0U6SwuKMYYSAJH6fE= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.115.0/go.mod h1:hW2AaybTRcwxJySGLC3Fh1vd2VDaQhRBfa7O7w30NS8= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.115.0 h1:R9MRrO+dSkAHBQLZjuwjv2RHXHQqF2Wtm1Ki0VKD5cs= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.115.0/go.mod h1:rKXLXmwdUVcUHwTilroKSejbg3KSwLeYzNPSpkIEnv4= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.115.0 h1:KghgAubxdDqP4eUQ+d2GzHXUAwtFxpSDToqFVnax0XA= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.115.0/go.mod h1:cW/BaYE6Uo7ZYHbmT0wVBktHP0SfeLqGHMf0qks7rOE= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.115.0 h1:ioGiKiO0WqT3PxkzanuJsPVA24FItH6nTJeDeSMFpYA= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.115.0/go.mod h1:x1W4J+pzK/Bi9jjYBYESTsPq0nRJJLZoN7cPNd0vYSU= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.115.0 h1:vwZQ7k8oqlK0bdZYTsjP/59zjQQfjSD4fNsWIWsTu2w= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.115.0/go.mod h1:5ObSa9amrbzbYTdAK1Qhv3D/YqCxxnQhP0sk2eWB7Oo= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.115.0 h1:olyiml73slGYORDjZNViW3nKiysC+K+h5yPsSBjUxQ4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.115.0/go.mod h1:N00k1mTxzfS2clqxSP4Dxk7iX8GWbbuCq6LF8/ECk/M= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.115.0 h1:sLRTfXUFiqJ5Qe/NN5MUJxTaFt46E0Y/xjSY+KesCQc= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.115.0/go.mod h1:361IqXD4jnfs6G+Yn7978uv1UNozhZo4yBYy4p6Nqzc= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.115.0 h1:GIyMUiud3T8nyCJP9KVhxVKvfcNQRBCde5uTCl6K/i0= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.115.0/go.mod h1:x4hCznyUolxGt5cE/uXWRCckdIDrUYqH5hJddvdKZd4= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= @@ -742,8 +742,8 @@ github.com/secure-systems-lab/go-securesystemslib v0.8.0 h1:mr5An6X45Kb2nddcFlbm github.com/secure-systems-lab/go-securesystemslib v0.8.0/go.mod h1:UH2VZVuJfCYR8WgMlCU1uFsOUU+KeyrTWcSS73NBOzU= github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shirou/gopsutil/v4 v4.24.10 h1:7VOzPtfw/5YDU+jLEoBwXwxJbQetULywoSV4RYY7HkM= -github.com/shirou/gopsutil/v4 v4.24.10/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= @@ -804,8 +804,8 @@ github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tidwall/tinylru v1.1.0 h1:XY6IUfzVTU9rpwdhKUF6nQdChgCdGjkMfLzbWyiau6I= github.com/tidwall/tinylru v1.1.0/go.mod h1:3+bX+TJ2baOLMWTnlyNWHh4QMnFyARg2TLTQ6OFbzw8= -github.com/tidwall/wal v1.1.7 h1:emc1TRjIVsdKKSnpwGBAcsAGg0767SvUk8+ygx7Bb+4= -github.com/tidwall/wal v1.1.7/go.mod h1:r6lR1j27W9EPalgHiB7zLJDYu3mzW5BQP5KrzBpYY/E= +github.com/tidwall/wal v1.1.8 h1:2qDSGdAdjaY3PEvHRva+9UFqgk+ef7cOiW1Qn5JH1y0= +github.com/tidwall/wal v1.1.8/go.mod h1:r6lR1j27W9EPalgHiB7zLJDYu3mzW5BQP5KrzBpYY/E= github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU= github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= @@ -848,132 +848,134 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/collector v0.114.0 h1:XLLLOHns06P9XjVHyp0OdEMdwXvol5MLzugqQMmXYuU= -go.opentelemetry.io/collector v0.114.0/go.mod h1:XbjD4Yw9LunLo3IJu3ZZytNZ0drEVznxw1Z14Ujlw3s= -go.opentelemetry.io/collector/client v1.20.0 h1:o60wPcj5nLtaRenF+1E5p4QXFS3TDL6vHlw+GOon3rg= -go.opentelemetry.io/collector/client v1.20.0/go.mod h1:6aqkszco9FaLWCxyJEVam6PP7cUa8mPRIXeS5eZGj0U= -go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= -go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= -go.opentelemetry.io/collector/component/componentstatus v0.114.0 h1:y9my/xink8KB5lK8zFAjgB2+pEh0QYy5TM972fxZY9w= -go.opentelemetry.io/collector/component/componentstatus v0.114.0/go.mod h1:RIoeCYZpPaae7QLE/1RacqzhHuXBmzRAk9H/EwYtIIs= -go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= -go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= -go.opentelemetry.io/collector/config/configauth v0.114.0 h1:R2sJ6xpsLYGH0yU0vCxotzBYDKR/Hrjv0A7y9lwMyiw= -go.opentelemetry.io/collector/config/configauth v0.114.0/go.mod h1:3Z24KcCpG+WYCeQYfs/cNp5cP2BDeOqLCtOEgs/rPqM= -go.opentelemetry.io/collector/config/configcompression v1.20.0 h1:H/mvz7J/5z+O74YsO0t2tk+REnO2tzLM8TgIQ4AZ5w0= -go.opentelemetry.io/collector/config/configcompression v1.20.0/go.mod h1:pnxkFCLUZLKWzYJvfSwZnPrnm0twX14CYj2ADth5xiU= -go.opentelemetry.io/collector/config/configgrpc v0.114.0 h1:3kGI9CljNtzClF+9sg7NWZ5qUoy4qZvGxv9q3phDn7k= -go.opentelemetry.io/collector/config/configgrpc v0.114.0/go.mod h1:IHSyqSdjPXW34aif/8BhNlXxRcIVV6026jVi0/+ituY= -go.opentelemetry.io/collector/config/confighttp v0.114.0 h1:DjGsBvVm+mGK3IpJBaXianWhwcxEC1fF33cpuC1LY/I= -go.opentelemetry.io/collector/config/confighttp v0.114.0/go.mod h1:nrlNLxOZ+4JQaV9j0TiqQV7LOHhrRivPrT8nQRHED3Q= -go.opentelemetry.io/collector/config/confignet v1.20.0 h1:LrM6AuiY8N/woTP4SWhL2V0562JXwJs9MRNFZJFLtRY= -go.opentelemetry.io/collector/config/confignet v1.20.0/go.mod h1:o3v4joAEjvLwntqexg5ixMqRrU1+Vst+jWuCUaBNgOg= -go.opentelemetry.io/collector/config/configopaque v1.20.0 h1:2I48zKiyyyYqjm7y0B9OLp24ku2ZSX3nCHG0r5FdWOQ= -go.opentelemetry.io/collector/config/configopaque v1.20.0/go.mod h1:6zlLIyOoRpJJ+0bEKrlZOZon3rOp5Jrz9fMdR4twOS4= -go.opentelemetry.io/collector/config/configretry v1.20.0 h1:z679mrMlW2a6tOOYPGdrS/QfALxdzWLQUOpH8Uu+D5Y= -go.opentelemetry.io/collector/config/configretry v1.20.0/go.mod h1:KvQF5cfphq1rQm1dKR4eLDNQYw6iI2fY72NMZVa+0N0= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/config/configtls v1.20.0 h1:hNlJdwfyY5Qe54RLJ41lfLqKTn9ypkR7sk7JNCcSe2U= -go.opentelemetry.io/collector/config/configtls v1.20.0/go.mod h1:sav/txSHguadTYlSSK+BJO2ljJeYEtRoBahgzWAguYg= -go.opentelemetry.io/collector/config/internal v0.114.0 h1:uWSDWTJb8T6xRjKD9/XmEARakXnxgYVYKUeId78hErc= -go.opentelemetry.io/collector/config/internal v0.114.0/go.mod h1:yC7E4h1Uj0SubxcFImh6OvBHFTjMh99+A5PuyIgDWqc= -go.opentelemetry.io/collector/confmap v1.20.0 h1:ARfOwmkKxFOud1njl03yAHQ30+uenlzqCO6LBYamDTE= -go.opentelemetry.io/collector/confmap v1.20.0/go.mod h1:DMpd9Ay/ffls3JoQBQ73vWeRsz1rNuLbwjo6WtjSQus= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0 h1:I3xDecFXJVZBo5zJS7Y5SWBjF22XDWGZJgwotiwA5QM= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0/go.mod h1:CF0l8V8MNv+Wag8UkqObotFnlhMzdTFuk4/6kylKwYU= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0 h1:wWxvQ7wj+1O9yDGM5m1HPEz8FJewAHAUWadAAi0KVbM= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0/go.mod h1:/5HWIPjGYk8IUurs1CZUSjGaSsaQyJsfR8+Zs5rGJ6Y= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0 h1:YS1nB8vDoCS8IlfX5OP3QGS90y/hfflwZ7CoPQcAOlU= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0/go.mod h1:aV4UfkgcJ3eyXvfd3m694omN++1c96Joitab+YL6Xks= -go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0 h1:0BJHAeKFb46FCT0ehOmmGs0v31cGuAh4DIic07J71NU= -go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0/go.mod h1:gBiweuH4EDuPh9mpLCB/wPZzostdA+gKY8hABwbotQk= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0 h1:jSXTojCPI6Xr98m99nF7qbQFnw3INLEOHRcqcHS+lak= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0/go.mod h1:Pu95O2JE3R+0BBTbe4gpAC8ms3w6FbICHJw3WvGWrjs= -go.opentelemetry.io/collector/connector v0.114.0 h1:efGAeTCtg8zp5Hyd7Am8kBUgsSxWEFlFtAu4OX4mcEA= -go.opentelemetry.io/collector/connector v0.114.0/go.mod h1:8DhGgD8RhkF0ooELl4NOPPD/wgHuXHmY7g90RwJ2eNo= -go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0 h1:uVs9gy3UfQBmH0636ouIbGIoWis7zmKN+ny4XOGm36U= -go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0/go.mod h1:X681qFEAsEPMDQ0pMsD/3DqePw58sfLew1QbBKvGnmw= -go.opentelemetry.io/collector/connector/connectortest v0.114.0 h1:Fpy1JHyNOLdVzNcmxUY6Jwxdz6JDcTXL1NCfw8k1AOc= -go.opentelemetry.io/collector/connector/connectortest v0.114.0/go.mod h1:1zaAlODuL9iNyfyjHQeGCpbcaUjf5b68t8LqlwHKBNA= -go.opentelemetry.io/collector/consumer v0.114.0 h1:1zVaHvfIZowGwZRitRBRo3i+RP2StlU+GClYiofSw0Q= -go.opentelemetry.io/collector/consumer v0.114.0/go.mod h1:d+Mrzt9hsH1ub3zmwSlnQVPLeTYir4Mgo7CrWfnncN4= -go.opentelemetry.io/collector/consumer/consumererror v0.114.0 h1:r2YiELfWerb40FHD23V04gNjIkLUcjEKGxI4Vtm2iO4= -go.opentelemetry.io/collector/consumer/consumererror v0.114.0/go.mod h1:MzIrLQ5jptO2egypolhlAbZsWZr29WC4FhSxQjnxcvg= -go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.114.0 h1:0IpwQXyHDXhIaLA6w2VlD6Ca0iuX4wlfCDiF+BKCwEo= -go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.114.0/go.mod h1:9pKeVRcCT92x5/UIULMLAop+J23VYJCWSZcVhmbup5I= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 h1:5pXYy3E6UK5Huu3aQbsYL8B6E6MyWx4fvXXDn+oXZaA= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0/go.mod h1:PMq3f54KcJQO4v1tue0QxQScu7REFVADlXxXSAYMiN0= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0 h1:isaTwJK5DOy8Bs7GuLq23ejfgj8gLIo5dOUvkRnLF4g= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0/go.mod h1:GNeLPkfRPdh06n/Rv1UKa/cAtCKjN0a7ADyHjIj4HFE= -go.opentelemetry.io/collector/exporter v0.114.0 h1:5/0BBpXuCJQSQ5SQf31g7j6T4XEKkyx9mZMcA2rS5e8= -go.opentelemetry.io/collector/exporter v0.114.0/go.mod h1:atpd0wWXgh5LAZ0REU/d/Ti/q50HDfnlBIjMjJQlKFg= -go.opentelemetry.io/collector/exporter/debugexporter v0.114.0 h1:7t1ij8fuV510SRT+eabgbl4973DaAtGmTx0RuGJy8DU= -go.opentelemetry.io/collector/exporter/debugexporter v0.114.0/go.mod h1:rC8PHnf1MniZN4ryU4i5GsyXKRkMEGwEGF2hxHx/JyU= -go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.114.0 h1:W/KsD33oMg/M7Kd5/m2riliWrTg3W9IgQVNeZL3cZjs= -go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.114.0/go.mod h1:Fh47qYBjX+jm+mpWBcqmaaQucZ6KiKm5P0drEt+xNRc= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 h1:/wmWOSBHcvtz3Pbv7+rWCqPPQuNvYaoidKKaOqZsLKs= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0/go.mod h1:epRYTkyJZTSQZBJflMGHUyUo2EdLPhsaZEyo5Qm848A= -go.opentelemetry.io/collector/exporter/exportertest v0.114.0 h1:vo0idBJT+QACSM1KpjVLm9VeiXVwO7y4UnMpGxN6EyM= -go.opentelemetry.io/collector/exporter/exportertest v0.114.0/go.mod h1:420ssFrhaphneybstbMeSIiqSRoaBARPgO71O17foaM= -go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0 h1:SC/xZNCB/eCVflrhDFX4WtrpvBPsZhmXVuSvgHQBsB8= -go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0/go.mod h1:q1273aUuYewtDUFwizv0AKu5/D+gbQAi8UFLKDv1eMk= -go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0 h1:+nPJraioPpLS2Kj3+YIfErDDFHsLX/5oPMSMAYKoggM= -go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0/go.mod h1:O+75KYmyJwK61VDsW7LHo2qFFXCTf3kEJH3ZvW1bb4Y= -go.opentelemetry.io/collector/extension v0.114.0 h1:9Qb92y8hD2WDC5aMDoj4JNQN+/5BQYJWPUPzLXX+iGw= -go.opentelemetry.io/collector/extension v0.114.0/go.mod h1:Yk2/1ptVgfTr12t+22v93nYJpioP14pURv2YercSzU0= -go.opentelemetry.io/collector/extension/auth v0.114.0 h1:1K2qh4yvG8kKR/sTAobI/rw5VxzPZoKcl3FmC195vvo= -go.opentelemetry.io/collector/extension/auth v0.114.0/go.mod h1:IjtsG+jUVJB0utKF8dAK8pLutRun3aEgASshImzsw/U= -go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 h1:hLyX9UvmY0t6iBnk3CqvyNck2U0QjPACekj7pDRx2hA= -go.opentelemetry.io/collector/extension/experimental/storage v0.114.0/go.mod h1:WqYRQVJjJLE1rm+y/ks1wPdPRGWePEvE1VO07xm2J2k= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0 h1:3OHll7gp5XIu7FVgon+koShPy797nze6EjCDokFUG7w= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0/go.mod h1:f0KdeLmE2jWVBmJ1U4WmfAtz1/tQUErGPfhPLKCQ49U= -go.opentelemetry.io/collector/extension/extensiontest v0.114.0 h1:ibXDms1qrswlvlR6b3d2BeyI8sXUXoFV11yOi9Sop8o= -go.opentelemetry.io/collector/extension/extensiontest v0.114.0/go.mod h1:/bOYmqu5yTDfI1bJZUxFqm8ZtmcodpquebiSxiQxtDY= -go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 h1:JosqAcdWw7IGsURJNR8f17xmaGCQEtKhQt9tM0T/DEg= -go.opentelemetry.io/collector/extension/zpagesextension v0.114.0/go.mod h1:+VO4p2GZvmIMqCVyIfS/U85Xqg+HIOe+mdl/ya+jVTE= -go.opentelemetry.io/collector/featuregate v1.20.0 h1:Mi7nMy/q52eruI+6jWnMKUOeM55XvwoPnGcdB1++O8c= -go.opentelemetry.io/collector/featuregate v1.20.0/go.mod h1:47xrISO71vJ83LSMm8+yIDsUbKktUp48Ovt7RR6VbRs= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0 h1:JM9huYqy5LTzmuxQmbPST3l5Ez5kJNit28c6WFWls34= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0/go.mod h1:V28tDU4Wvf1PfW1Ty/SBL9tpKul2iYGno/HkCWGDrj0= -go.opentelemetry.io/collector/internal/sharedcomponent v0.114.0 h1:DjX9ubjkKDnioQB03FYc40FTyhR25CdobMfjinKkZ1w= -go.opentelemetry.io/collector/internal/sharedcomponent v0.114.0/go.mod h1:lYlFiGIjPjhwTS/Xc+toJ9o3D8A6cCHuK1JX+ZbujVs= -go.opentelemetry.io/collector/otelcol v0.114.0 h1:d/nmYc+adzZ70g4zBMtgujGHVNulF59ExCpuM/3ZKV4= -go.opentelemetry.io/collector/otelcol v0.114.0/go.mod h1:DGmFFao5jHSwD6G1HjUjs0CYcyrTau+u7GjTRUGKN+4= -go.opentelemetry.io/collector/otelcol/otelcoltest v0.114.0 h1:Em5e1EgrPrS90EWDWLJHCvyFIDl5PIq1DuW9zd8F3pY= -go.opentelemetry.io/collector/otelcol/otelcoltest v0.114.0/go.mod h1:YAs78SaOJsf1HNWrNH+GFTdkS58dpQI98cok6gZP4Lg= -go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= -go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0 h1:pUNfTzsI/JUTiE+DScDM4lsrPoxnVNLI2fbTxR/oapo= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0/go.mod h1:4aNcj6WM1n1uXyFSXlhVs4ibrERgNYsTbzcYI2zGhxA= -go.opentelemetry.io/collector/pdata/testdata v0.114.0 h1:+AzszWSL1i4K6meQ8rU0JDDW55SYCXa6FVqfDixhhTo= -go.opentelemetry.io/collector/pdata/testdata v0.114.0/go.mod h1:bv8XFdCTZxG2MQB5l9dKxSxf5zBrcodwO6JOy1+AxXM= -go.opentelemetry.io/collector/pipeline v0.114.0 h1:v3YOhc5z0tD6QbO5n/pnftpIeroihM2ks9Z2yKPCcwY= -go.opentelemetry.io/collector/pipeline v0.114.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= -go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0 h1:LZgxMQ2zXcz8ILBefhxpZBpn/Rx+TJTncIIQy0LgtgY= -go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0/go.mod h1:bmyqQCJWcA53/GtqZJ2ahwmLdFl6UelFH2nR6OJFqpw= -go.opentelemetry.io/collector/processor v0.114.0 h1:6bqQgLL7BtKrNv4YkEOGjZfkcfZv/ciJSQx1epGG9Zk= -go.opentelemetry.io/collector/processor v0.114.0/go.mod h1:DV/wa+nAmSHIDeD9NblPwkY9PbgtDQAZJ+PE5biZwPc= -go.opentelemetry.io/collector/processor/batchprocessor v0.114.0 h1:Xu+pdPGIh6gLqHW5oYJsiim1mbnG85QaaUQy0YPoL+c= -go.opentelemetry.io/collector/processor/batchprocessor v0.114.0/go.mod h1:emnnL5CaliCnWjXNpNixqpvn7uc/kyUTv2939J/reMY= -go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 h1:+P/1nLouEXTnN8DVQl+qWwO4BTkQyNPG9t/FrpUqrSI= -go.opentelemetry.io/collector/processor/processorprofiles v0.114.0/go.mod h1:3fuHeNIpINwx3bqFMprmDJyr6y5tWoWbJH599kltO5Y= -go.opentelemetry.io/collector/processor/processortest v0.114.0 h1:3FTaVXAp0LoVmUJn1ewBFckAby7AHa6/Kcdj0xuW14c= -go.opentelemetry.io/collector/processor/processortest v0.114.0/go.mod h1:OgsdOs1Fv5ZGTTJPF5nNIUJh2YkuV1acWd73yWgnti4= -go.opentelemetry.io/collector/receiver v0.114.0 h1:90SAnXAjNq7/k52/pFmmb06Cf1YauoPYtbio4aOXafY= -go.opentelemetry.io/collector/receiver v0.114.0/go.mod h1:KUGT0/D953LXbGH/D3lLPU8yrU3HfWnUqpt4W4hSOnE= -go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0 h1:CMtfS6fwEwqwTMeC17A3Q2xsSkXfH4gG2SBZDr2txCw= -go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0/go.mod h1:ajp6ok8iSSAcyq58wcOUJVe++1mTQ1isxqlaNUgQNzo= -go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0 h1:8ASaxRWLe8P0pefOiYbCSZ0aXmwE4K06I8FBGc/n+J0= -go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0/go.mod h1:3vjOvYBWGUVzuaovoumMbNHEIK3PqDs5rzEyd/nzsLU= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 h1:ibhEfGpvNB3yrtpl2jYFabrunMk1hurxvMYpM0b1Ck4= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0/go.mod h1:UZyRfaasw+NLvN10AN8IQnmj5tQ3BOUH1uP2ctpO9f0= -go.opentelemetry.io/collector/receiver/receivertest v0.114.0 h1:D+Kh9t2n4asTnM+TiSxbrKlUemLZandWntj17BJWWb0= -go.opentelemetry.io/collector/receiver/receivertest v0.114.0/go.mod h1:mNSHQ13vFmqD+VAcRzLjStFBejbcWUn2Mp0pAd7Op+U= -go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= -go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= -go.opentelemetry.io/collector/service v0.114.0 h1:MYF/4nH1CgtiLx09503xPAAUZefCzG1kaO+oanwX590= -go.opentelemetry.io/collector/service v0.114.0/go.mod h1:xH5/RapJdf5Ohh8iU8J0ZstfFYciP1oJPesiByteZxo= +go.opentelemetry.io/collector v0.115.0 h1:qUZ0bTeNBudMxNQ7FJKS//TxTjeJ7tfU/z22mcFavWU= +go.opentelemetry.io/collector v0.115.0/go.mod h1:66qx0xKnVvdwq60e1DEfb4e+zmM9szhPsv2hxZ/Mpj4= +go.opentelemetry.io/collector/client v1.21.0 h1:3Kes8lOFMYVxoxeAmX+DTEAkuS1iTA3NkSfqzGmygJA= +go.opentelemetry.io/collector/client v1.21.0/go.mod h1:jYJGiL0UA975OOyHmjbQSokNWt1OiviI5KjPOMUMGwc= +go.opentelemetry.io/collector/component v0.115.0 h1:iLte1oCiXzjiCnaOBKdsXacfFiECecpWxW3/LeriMoo= +go.opentelemetry.io/collector/component v0.115.0/go.mod h1:oIUFiH7w1eOimdeYhFI+gAIxYSiLDocKVJ0PTvX7d6s= +go.opentelemetry.io/collector/component/componentstatus v0.115.0 h1:pbpUIL+uKDfEiSgKK+S5nuSL6MDIIQYsp4b65ZGVb9M= +go.opentelemetry.io/collector/component/componentstatus v0.115.0/go.mod h1:36A+9XSiOz0Cdhq+UwwPRlEr5CYuSkEnVO9om4BH7d0= +go.opentelemetry.io/collector/component/componenttest v0.115.0 h1:9URDJ9VyP6tuij+YHjp/kSSMecnZOd7oGvzu+rw9SJY= +go.opentelemetry.io/collector/component/componenttest v0.115.0/go.mod h1:PzXvNqKLCiSADZGZFKH+IOHMkaQ0GTHuzysfVbTPKYY= +go.opentelemetry.io/collector/config/configauth v0.115.0 h1:xa+ALdyPgva3rZnLBh1H2oS5MsHP6JxSqMtQmcELnys= +go.opentelemetry.io/collector/config/configauth v0.115.0/go.mod h1:C7anpb3Rf4KswMT+dgOzkW9UX0z/65PLORpUw3p0VYc= +go.opentelemetry.io/collector/config/configcompression v1.21.0 h1:0zbPdZAgPFMAarwJEC4gaR6f/JBP686A3TYSgb3oa+E= +go.opentelemetry.io/collector/config/configcompression v1.21.0/go.mod h1:LvYG00tbPTv0NOLoZN0wXq1F5thcxvukO8INq7xyfWU= +go.opentelemetry.io/collector/config/configgrpc v0.115.0 h1:gZzXSFe6hB3RUcEeAYqk1yT+TBa+X9tp6/1x29Yg2yk= +go.opentelemetry.io/collector/config/configgrpc v0.115.0/go.mod h1:107lRZ5LdQPMdGJGd4m1GhyKxyH0az2cUOqrJgTEN8E= +go.opentelemetry.io/collector/config/confighttp v0.115.0 h1:BIy394oNXnqySJwrCqgAJu4gWgAV5aQUDD6k1hy6C8o= +go.opentelemetry.io/collector/config/confighttp v0.115.0/go.mod h1:Wr50ut12NmCEAl4bWLJryw2EjUmJTtYRg89560Q51wc= +go.opentelemetry.io/collector/config/confignet v1.21.0 h1:PeQ5YrMnfftysFL/WVaSrjPOWjD6DfeABY50pf9CZxU= +go.opentelemetry.io/collector/config/confignet v1.21.0/go.mod h1:ZppUH1hgUJOubawEsxsQ9MzEYFytqo2GnVSS7d4CVxc= +go.opentelemetry.io/collector/config/configopaque v1.21.0 h1:PcvRGkBk4Px8BQM7tX+kw4i3jBsfAHGoGQbtZg6Ox7U= +go.opentelemetry.io/collector/config/configopaque v1.21.0/go.mod h1:sW0t0iI/VfRL9VYX7Ik6XzVgPcR+Y5kejTLsYcMyDWs= +go.opentelemetry.io/collector/config/configretry v1.21.0 h1:ZHoOvAkEcv5BBeaJn8IQ6rQ4GMPZWW4S+W7R4QTEbZU= +go.opentelemetry.io/collector/config/configretry v1.21.0/go.mod h1:cleBc9I0DIWpTiiHfu9v83FUaCTqcPXmebpLxjEIqro= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0 h1:U07FinCDop+r2RjWQ3aP9ZWONC7r7kQIp1GkXQi6nsI= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0/go.mod h1:SlBEwQg0qly75rXZ6W1Ig8jN25KBVBkFIIAUI1GiAAE= +go.opentelemetry.io/collector/config/configtls v1.21.0 h1:ZfrlAYgBD8lzp04W0GxwiDmUbrvKsvDYJi+wkyiXlpA= +go.opentelemetry.io/collector/config/configtls v1.21.0/go.mod h1:5EsNefPfVCMOTlOrr3wyj7LrsOgY7V8iqRl8oFZEqtw= +go.opentelemetry.io/collector/config/internal v0.115.0 h1:eVk57iufZpUXyPJFKTb1Ebx5tmcCyroIlt427r5pxS8= +go.opentelemetry.io/collector/config/internal v0.115.0/go.mod h1:OVkadRWlKAoWjHslqjWtBLAne8ceQm8WYT71ZcBWLFc= +go.opentelemetry.io/collector/confmap v1.21.0 h1:1tIcx2/Suwg8VhuPmQw87ba0ludPmumpFCFRZZa6RXA= +go.opentelemetry.io/collector/confmap v1.21.0/go.mod h1:Rrhs+MWoaP6AswZp+ReQ2VO9dfOfcUjdjiSHBsG+nec= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.21.0 h1:YLf++Z8CMp86AanfOCWUiE7vKbb1kSjgC3a9VJoxbD4= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.21.0/go.mod h1:aSWLYcmgZZJDNtWN1M8JKQuehoGgOxibl1KuvKTar4M= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.21.0 h1:+zukkM+3l426iGoJkXTpLB2Z8QnZFu26TkGPjh5Rn/4= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.21.0/go.mod h1:BXBpQhF3n4CNLYO2n/mWZPd2U9ekpbLXLRGZrun1VfI= +go.opentelemetry.io/collector/confmap/provider/httpprovider v1.21.0 h1:NYYGM+SgIlTuNGjd8eGzDr8DkvOe4q7cXon8djF9yyI= +go.opentelemetry.io/collector/confmap/provider/httpprovider v1.21.0/go.mod h1:XRYbuwqq1awFuNhLDUv4aSvn6MzqX+abcevx1O+APJI= +go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.21.0 h1:2EEUI2DzA2DvrvCImMWRSNqIHdRJ6+qbgvZL44Zb2ac= +go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.21.0/go.mod h1:axezjjQWY4kZc5pr/+wOKAuqSYMhea/tWzP5S30h+dc= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.21.0 h1:P3Q9RytCMY76ORPCnkkjOa4fkuFqmZiQRor+F/nPlYE= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.21.0/go.mod h1:xhYhHK3yLQ78tsoaKPIGUfFulgy961ImOe2gATH3RQc= +go.opentelemetry.io/collector/connector v0.115.0 h1:4Kkm3HQFzNT1eliMOB8FbIn+PLMRJ2qQku5Vmy3V8Ko= +go.opentelemetry.io/collector/connector v0.115.0/go.mod h1:+ByuAmYLrYHoKh9B+LGqUc0N2kXcN2l8Dea8Mp6brZ8= +go.opentelemetry.io/collector/connector/connectorprofiles v0.115.0 h1:aW1f4Az0I+QJyImFccNWAXqik80bnNu27aQqi2hFfD8= +go.opentelemetry.io/collector/connector/connectorprofiles v0.115.0/go.mod h1:lmynB1CucydOsHa8RSSBh5roUZPfuiv65imXhtNzClM= +go.opentelemetry.io/collector/connector/connectortest v0.115.0 h1:GjtourFr0MJmlbtEPAZ/1BZCxkNAeJ0aMTlrxwftJ0k= +go.opentelemetry.io/collector/connector/connectortest v0.115.0/go.mod h1:f3KQXXNlh/XuV8elmnuVVyfY92dJCAovz10gD72OH0k= +go.opentelemetry.io/collector/consumer v1.21.0 h1:THKZ2Vbi6GkamjTBI2hFq5Dc4kINZTWGwQNa8d/Ty9g= +go.opentelemetry.io/collector/consumer v1.21.0/go.mod h1:FQcC4ThMtRYY41dv+IPNK8POLLhAFY3r1YR5fuP7iiY= +go.opentelemetry.io/collector/consumer/consumererror v0.115.0 h1:yli//xBCQMPZKXNgNlXemo4dvqhnFrAmCZ11DvQgmcY= +go.opentelemetry.io/collector/consumer/consumererror v0.115.0/go.mod h1:LwVzAvQ6ZVNG7mbOvurbAo+W/rKws0IcjOwriuZXqPE= +go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.115.0 h1:gaIhzpaGFWauiyznrQ3f++TbcdXxA5rpsX3L9uGjMM8= +go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.115.0/go.mod h1:7oXvuGBSawS5bc413lh1KEMcXkqBcrCqZQahOdnE24U= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0 h1:H3fDuyQW1t2HWHkz96WMBQJKUevypOCjBqnqtaAWyoA= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0/go.mod h1:IzEmZ91Tp7TBxVDq8Cc9xvLsmO7H08njr6Pu9P5d9ns= +go.opentelemetry.io/collector/consumer/consumertest v0.115.0 h1:hru0I2447y0TluCdwlKYFFtgcpyCnlM+LiOK1JZyA70= +go.opentelemetry.io/collector/consumer/consumertest v0.115.0/go.mod h1:ybjALRJWR6aKNOzEMy1T1ruCULVDEjj4omtOJMrH/kU= +go.opentelemetry.io/collector/exporter v0.115.0 h1:JnxfpOnsuqhTPKJXVKJLS1Cv3BiVrVLzpHOjJEQw+xw= +go.opentelemetry.io/collector/exporter v0.115.0/go.mod h1:xof3fHQK8wADhaKLIJcQ7ChZaFLNC+haRdPN0wgl6kY= +go.opentelemetry.io/collector/exporter/debugexporter v0.115.0 h1:gb9VMQhcbvYqp0SJ4Hp8R9XqOLNLsoTgNJCPKpNEaVc= +go.opentelemetry.io/collector/exporter/debugexporter v0.115.0/go.mod h1:H/HS1UJlcZPNBbOcrsGZc2sPdQDHtbOjHOxMtJkmlcU= +go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.115.0 h1:fetbc740pODH6JW+H49SW0hiAJwQE+/B0SbuIlaY2rg= +go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.115.0/go.mod h1:oEKZ/d5BeaCK6Made9iwaeqmlT4lRbJSlW9nhIn/TwM= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0 h1:lSQEleCn/q9eFufcuK61NdFKU70ZlgI9dBjPCO/4CrE= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0/go.mod h1:7l5K2AecimX2kx+nZC1gKG3QkP247CO1+SodmJ4fFkQ= +go.opentelemetry.io/collector/exporter/exportertest v0.115.0 h1:P9SMTUXQOtcaq40bGtnnAe14zRmR4/yUgj/Tb2BEf/k= +go.opentelemetry.io/collector/exporter/exportertest v0.115.0/go.mod h1:1jMZ9gFGXglb8wfNrBZIgd+RvpZhSyFwdfE+Jtf9w4U= +go.opentelemetry.io/collector/exporter/otlpexporter v0.115.0 h1:Kqr31VFrQvgEMzeg8T1JSXWacjUQoZph39efKN8jBpY= +go.opentelemetry.io/collector/exporter/otlpexporter v0.115.0/go.mod h1:5uy/gduFx2mH0GxJ84sY75NfzQJb9xYmgiL9Pf0dKF8= +go.opentelemetry.io/collector/exporter/otlphttpexporter v0.115.0 h1:I0qzSWGbgph+iva5/jU8tkeUTkkqqcj8+UzMxg5ubF8= +go.opentelemetry.io/collector/exporter/otlphttpexporter v0.115.0/go.mod h1:cUrv5EG12iOs5MXaecfi9K+ZATEELefpyZY6Hj4NlUo= +go.opentelemetry.io/collector/extension v0.115.0 h1:/cBb8AUdD0KMWC6V3lvCC16eP9Fg0wd1Upcp5rgvuGI= +go.opentelemetry.io/collector/extension v0.115.0/go.mod h1:HI7Ak6loyi6ZrZPsQJW1OO1wbaAW8OqXLFNQlTZnreQ= +go.opentelemetry.io/collector/extension/auth v0.115.0 h1:TTMokbBsSHZRFH48PvGSJmgSS8F3Rkr9MWGHZn8eJDk= +go.opentelemetry.io/collector/extension/auth v0.115.0/go.mod h1:3w+2mzeb2OYNOO4Bi41TUo4jr32ap2y7AOq64IDpxQo= +go.opentelemetry.io/collector/extension/auth/authtest v0.115.0 h1:OZe7dKbZ01qodSpZU0ZYzI6zpmmzJ3UvfdBSFAbSgDw= +go.opentelemetry.io/collector/extension/auth/authtest v0.115.0/go.mod h1:fk9WCXP0x91Q64Z8HZKWTHh9PWtgoWE1KXe3n2Bff3U= +go.opentelemetry.io/collector/extension/experimental/storage v0.115.0 h1:sZXw0+77092pq24CkUoTRoHQPLQUsDq6HFRNB0g5yR4= +go.opentelemetry.io/collector/extension/experimental/storage v0.115.0/go.mod h1:qjFH7Y3QYYs88By2ZB5GMSUN5k3ul4Brrq2J6lKACA0= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.115.0 h1:/g25Hp5aoCNKdDjIb3Fc7XRglO8yaBRFLO/IUNPnqNI= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.115.0/go.mod h1:EQx7ETiy330O6q05S2KRZsRNDg0aQEeJmVl7Ipx+Fcw= +go.opentelemetry.io/collector/extension/extensiontest v0.115.0 h1:GBVFxFEskR8jSdu9uaQh2qpXnN5VNXhXjpJ2UjxtE8I= +go.opentelemetry.io/collector/extension/extensiontest v0.115.0/go.mod h1:eu1ecbz5mT+cHoH2H3GmD/rOO0WsicSJD2RLrYuOmRA= +go.opentelemetry.io/collector/extension/zpagesextension v0.115.0 h1:zYrZZocc7n0ZuDyXNkIaX0P0qk2fjMQj7NegwBJZA4k= +go.opentelemetry.io/collector/extension/zpagesextension v0.115.0/go.mod h1:OaXwNHF3MAcInBzCXrhXbTNHfIi9b7YGhXjtCFZqxNY= +go.opentelemetry.io/collector/featuregate v1.21.0 h1:+EULHPJDLMipcwAGZVp9Nm8NriRvoBBMxp7MSiIZVMI= +go.opentelemetry.io/collector/featuregate v1.21.0/go.mod h1:3GaXqflNDVwWndNGBJ1+XJFy3Fv/XrFgjMN60N3z7yg= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.115.0 h1:6DRiSECeApFq6Jj5ug77rG53R6FzJEZBfygkyMEXdpg= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.115.0/go.mod h1:vgQf5HQdmLQqpDHpDq2S3nTRoUuKtRcZpRTsy+UiwYw= +go.opentelemetry.io/collector/internal/sharedcomponent v0.115.0 h1:9TL6T6ALqDpumUJ0tYIuPIg5LGo4r6eoqlNArYX116o= +go.opentelemetry.io/collector/internal/sharedcomponent v0.115.0/go.mod h1:SgBLKMh11bOTPR1bdDZbi5MlqsoDBBFI3uBIwnei+0k= +go.opentelemetry.io/collector/otelcol v0.115.0 h1:wZhFGrSCZcTQ4qw4ePjI2PaSrOCejoQKAjprKD/xavs= +go.opentelemetry.io/collector/otelcol v0.115.0/go.mod h1:iK8DPvaizirIYKDl1zZG7DDYUj6GkkH4KHifVVM88vk= +go.opentelemetry.io/collector/otelcol/otelcoltest v0.115.0 h1:HNlFpQujlnvawBk8nvMGxzjDHWDCfSprxem/EpQn4u8= +go.opentelemetry.io/collector/otelcol/otelcoltest v0.115.0/go.mod h1:WsMbqYl2rm3nPFbdxQqyLXf4iu97nYLeuQ1seZIpV3Y= +go.opentelemetry.io/collector/pdata v1.21.0 h1:PG+UbiFMJ35X/WcAR7Rf/PWmWtRdW0aHlOidsR6c5MA= +go.opentelemetry.io/collector/pdata v1.21.0/go.mod h1:GKb1/zocKJMvxKbS+sl0W85lxhYBTFJ6h6I1tphVyDU= +go.opentelemetry.io/collector/pdata/pprofile v0.115.0 h1:NI89hy13vNDw7EOnQf7Jtitks4HJFO0SUWznTssmP94= +go.opentelemetry.io/collector/pdata/pprofile v0.115.0/go.mod h1:jGzdNfO0XTtfLjXCL/uCC1livg1LlfR+ix2WE/z3RpQ= +go.opentelemetry.io/collector/pdata/testdata v0.115.0 h1:Rblz+AKXdo3fG626jS+KSd0OSA4uMXcTQfpwed6P8LI= +go.opentelemetry.io/collector/pdata/testdata v0.115.0/go.mod h1:inNnRt6S2Nn260EfCBEcjesjlKOSsr0jPwkPqpBkt4s= +go.opentelemetry.io/collector/pipeline v0.115.0 h1:bmACBqb0e8U9ag+vGGHUP7kCfAO7HHROdtzIEg8ulus= +go.opentelemetry.io/collector/pipeline v0.115.0/go.mod h1:qE3DmoB05AW0C3lmPvdxZqd/H4po84NPzd5MrqgtL74= +go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.115.0 h1:3l9ruCAOrssTUDnyChKNzHWOdTtfThnYaoPZ1/+5sD0= +go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.115.0/go.mod h1:2Myg+law/5lcezo9PhhZ0wjCaLYdGK24s1jDWbSW9VY= +go.opentelemetry.io/collector/processor v0.115.0 h1:+fveHGRe24PZPv/F5taahGuZ9HdNW44hgNWEJhIUdyc= +go.opentelemetry.io/collector/processor v0.115.0/go.mod h1:/oLHBlLsm7tFb7zOIrA5C0j14yBtjXKAgxJJ2Bktyk4= +go.opentelemetry.io/collector/processor/batchprocessor v0.115.0 h1:dgw1jcE/YVFTs41b3Y7SerU3BBSyMEE93AYV+BAxR8E= +go.opentelemetry.io/collector/processor/batchprocessor v0.115.0/go.mod h1:imG1kDEq14UGlxyCjSCf1TUEFdSWRvF7tLoYX9nixEQ= +go.opentelemetry.io/collector/processor/processorprofiles v0.115.0 h1:cCZAs+FXaebZPppqAN3m+X3etoSBL6NvyQo8l0hOZoo= +go.opentelemetry.io/collector/processor/processorprofiles v0.115.0/go.mod h1:kMxF0gknlWX4duuAJFi2/HuIRi6C3w95tOenRa0GKOY= +go.opentelemetry.io/collector/processor/processortest v0.115.0 h1:j9HEaYFOeOB6VYl9zGhBnhQbTkqGBa2udUvu5NTh6hc= +go.opentelemetry.io/collector/processor/processortest v0.115.0/go.mod h1:Gws+VEnp/eW3qAqPpqbKsrbnnxxNfyDjqrfUXbZfZic= +go.opentelemetry.io/collector/receiver v0.115.0 h1:55Q3Jvj6zHCIA1psKqi/3kEMJO4OqUF5tNAEYNdB1U8= +go.opentelemetry.io/collector/receiver v0.115.0/go.mod h1:nBSCh2O/WUcfgpJ+Jpz+B0z0Hn5jHeRvF2WmLij5EIY= +go.opentelemetry.io/collector/receiver/nopreceiver v0.115.0 h1:87dxAcHekbXqLtjcQjnK1An2PWkWAhTly+EXzPEgYOE= +go.opentelemetry.io/collector/receiver/nopreceiver v0.115.0/go.mod h1:Llu88KNSNwvmYPRr2PMDDbVY9zHfHEbPPB4yTjjQQe0= +go.opentelemetry.io/collector/receiver/otlpreceiver v0.115.0 h1:NqMWsGuVy6y6VKTaPeJS7NZ9KAxhE/xyGUC7GaLYm/o= +go.opentelemetry.io/collector/receiver/otlpreceiver v0.115.0/go.mod h1:9ituzngnjsh/YvO+Phayq9BTk/nw0rgK5ZVvX1oxULk= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0 h1:R9JLaj2Al93smIPUkbJshAkb/cY0H5JBOxIx+Zu0NG4= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0/go.mod h1:05E5hGujWeeXJmzKZwTdHyZ/+rRyrQlQB5p5Q2XY39M= +go.opentelemetry.io/collector/receiver/receivertest v0.115.0 h1:OiB684SbHQi6/Pd3ZH0cXjYvCpBS9ilQBfTQx0wVXHg= +go.opentelemetry.io/collector/receiver/receivertest v0.115.0/go.mod h1:Y8Z9U/bz9Xpyt8GI8DxZZgryw3mnnIw+AeKVLTD2cP8= +go.opentelemetry.io/collector/semconv v0.115.0 h1:SoqMvg4ZEB3mz2EdAb6XYa+TuMo5Mir5FRBr3nVFUDY= +go.opentelemetry.io/collector/semconv v0.115.0/go.mod h1:N6XE8Q0JKgBN2fAhkUQtqK9LT7rEGR6+Wu/Rtbal1iI= +go.opentelemetry.io/collector/service v0.115.0 h1:k4GAOiI5tZgB2QKgwA6c3TeAVr7QL/ft5cOQbzUr8Iw= +go.opentelemetry.io/collector/service v0.115.0/go.mod h1:DKde9LMhNebdREecDSsqiTFLI2wRc+IoV4/wGxU6goY= go.opentelemetry.io/contrib/bridges/otelzap v0.6.0 h1:j8icMXyyqNf6HGuwlYhniPnVsbJIq7n+WirDu3VAJdQ= go.opentelemetry.io/contrib/bridges/otelzap v0.6.0/go.mod h1:evIOZpl+kAlU5IsaYX2Siw+IbpacAZvXemVsgt70uvw= go.opentelemetry.io/contrib/config v0.10.0 h1:2JknAzMaYjxrHkTnZh3eOme/Y2P5eHE2SWfhfV6Xd6c= @@ -1447,12 +1449,12 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.31.2 h1:3wLBbL5Uom/8Zy98GRPXpJ254nEFpl+hwndmk9RwmL0= -k8s.io/api v0.31.2/go.mod h1:bWmGvrGPssSK1ljmLzd3pwCQ9MgoTsRCuK35u6SygUk= -k8s.io/apimachinery v0.31.2 h1:i4vUt2hPK56W6mlT7Ry+AO8eEsyxMD1U44NR22CLTYw= -k8s.io/apimachinery v0.31.2/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= -k8s.io/client-go v0.31.2 h1:Y2F4dxU5d3AQj+ybwSMqQnpZH9F30//1ObxOKlTI9yc= -k8s.io/client-go v0.31.2/go.mod h1:NPa74jSVR/+eez2dFsEIHNa+3o09vtNaWwWwb1qSxSs= +k8s.io/api v0.31.3 h1:umzm5o8lFbdN/hIXbrK9oRpOproJO62CV1zqxXrLgk8= +k8s.io/api v0.31.3/go.mod h1:UJrkIp9pnMOI9K2nlL6vwpxRzzEX5sWgn8kGQe92kCE= +k8s.io/apimachinery v0.31.3 h1:6l0WhcYgasZ/wk9ktLq5vLaoXJJr5ts6lkaQzgeYPq4= +k8s.io/apimachinery v0.31.3/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/client-go v0.31.3 h1:CAlZuM+PH2cm+86LOBemaJI/lQ5linJ6UFxKX/SoG+4= +k8s.io/client-go v0.31.3/go.mod h1:2CgjPUTpv3fE5dNygAr2NcM8nhHzXvxB8KL5gYc3kJs= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20240430033511-f0e62f92d13f h1:0LQagt0gDpKqvIkAMPaRGcXawNMouPECM1+F9BVxEaM= diff --git a/comp/otelcol/ddflareextension/impl/testdata/simple-dd/config-enhanced-result.yaml b/comp/otelcol/ddflareextension/impl/testdata/simple-dd/config-enhanced-result.yaml index 3f481997c9caa..5914d58d690a1 100644 --- a/comp/otelcol/ddflareextension/impl/testdata/simple-dd/config-enhanced-result.yaml +++ b/comp/otelcol/ddflareextension/impl/testdata/simple-dd/config-enhanced-result.yaml @@ -14,6 +14,7 @@ exporters: host_metadata: enabled: false hostname_source: config_or_system + reporter_period: 30m0s tags: [] hostname: "" http2_ping_timeout: 0s diff --git a/comp/otelcol/ddflareextension/impl/testdata/simple-dd/config-provided-result.yaml b/comp/otelcol/ddflareextension/impl/testdata/simple-dd/config-provided-result.yaml index 620eda80c3ba5..807d80682416a 100644 --- a/comp/otelcol/ddflareextension/impl/testdata/simple-dd/config-provided-result.yaml +++ b/comp/otelcol/ddflareextension/impl/testdata/simple-dd/config-provided-result.yaml @@ -14,6 +14,7 @@ exporters: host_metadata: enabled: false hostname_source: config_or_system + reporter_period: 30m0s tags: [] hostname: "" http2_ping_timeout: 0s diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod index 1fbae2bae0cf9..cab50f84895bc 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod @@ -105,28 +105,28 @@ require ( github.com/DataDog/datadog-go/v5 v5.5.0 github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.115.0 github.com/stretchr/testify v1.10.0 - go.opentelemetry.io/collector/component v0.114.0 - go.opentelemetry.io/collector/config/confignet v1.20.0 - go.opentelemetry.io/collector/config/configretry v1.20.0 - go.opentelemetry.io/collector/consumer v0.114.0 - go.opentelemetry.io/collector/exporter v0.114.0 - go.opentelemetry.io/collector/exporter/exportertest v0.114.0 - go.opentelemetry.io/collector/featuregate v1.20.0 - go.opentelemetry.io/collector/pdata v1.20.0 + go.opentelemetry.io/collector/component v0.115.0 + go.opentelemetry.io/collector/config/confignet v1.21.0 + go.opentelemetry.io/collector/config/configretry v1.21.0 + go.opentelemetry.io/collector/consumer v1.21.0 + go.opentelemetry.io/collector/exporter v0.115.0 + go.opentelemetry.io/collector/exporter/exportertest v0.115.0 + go.opentelemetry.io/collector/featuregate v1.21.0 + go.opentelemetry.io/collector/pdata v1.21.0 go.opentelemetry.io/otel/metric v1.32.0 go.opentelemetry.io/otel/trace v1.32.0 go.uber.org/zap v1.27.0 google.golang.org/protobuf v1.35.2 ) -require go.opentelemetry.io/collector/component/componenttest v0.114.0 // indirect +require go.opentelemetry.io/collector/component/componenttest v0.115.0 // indirect require ( github.com/pierrec/lz4/v4 v4.1.21 // indirect - go.opentelemetry.io/collector/consumer/consumererror v0.114.0 // indirect - go.opentelemetry.io/collector/receiver/receivertest v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror v0.115.0 // indirect + go.opentelemetry.io/collector/receiver/receivertest v0.115.0 // indirect ) require ( @@ -259,8 +259,8 @@ require ( github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.115.0 // indirect github.com/opencontainers/runtime-spec v1.2.0 // indirect github.com/outcaste-io/ristretto v0.2.3 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect @@ -290,26 +290,26 @@ require ( github.com/tklauser/numcpus v0.8.0 // indirect github.com/twmb/murmur3 v1.1.8 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/collector/client v1.20.0 // indirect - go.opentelemetry.io/collector/config/configauth v0.114.0 // indirect - go.opentelemetry.io/collector/config/configcompression v1.20.0 // indirect - go.opentelemetry.io/collector/config/confighttp v0.114.0 // indirect - go.opentelemetry.io/collector/config/configopaque v1.20.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect - go.opentelemetry.io/collector/config/configtls v1.20.0 // indirect - go.opentelemetry.io/collector/config/internal v0.114.0 // indirect - go.opentelemetry.io/collector/confmap v1.20.0 // indirect - go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumertest v0.114.0 // indirect - go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/extension v0.114.0 // indirect - go.opentelemetry.io/collector/extension/auth v0.114.0 // indirect - go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.114.0 // indirect - go.opentelemetry.io/collector/pipeline v0.114.0 // indirect - go.opentelemetry.io/collector/receiver v0.114.0 // indirect - go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/semconv v0.114.0 // indirect + go.opentelemetry.io/collector/client v1.21.0 // indirect + go.opentelemetry.io/collector/config/configauth v0.115.0 // indirect + go.opentelemetry.io/collector/config/configcompression v1.21.0 // indirect + go.opentelemetry.io/collector/config/confighttp v0.115.0 // indirect + go.opentelemetry.io/collector/config/configopaque v1.21.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.115.0 // indirect + go.opentelemetry.io/collector/config/configtls v1.21.0 // indirect + go.opentelemetry.io/collector/config/internal v0.115.0 // indirect + go.opentelemetry.io/collector/confmap v1.21.0 // indirect + go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/consumer/consumertest v0.115.0 // indirect + go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/extension v0.115.0 // indirect + go.opentelemetry.io/collector/extension/auth v0.115.0 // indirect + go.opentelemetry.io/collector/extension/experimental/storage v0.115.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.115.0 // indirect + go.opentelemetry.io/collector/pipeline v0.115.0 // indirect + go.opentelemetry.io/collector/receiver v0.115.0 // indirect + go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/semconv v0.115.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect go.opentelemetry.io/otel v1.32.0 // indirect go.opentelemetry.io/otel/sdk v1.32.0 // indirect diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum index 384aa70b24a81..298ecceb323a8 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum @@ -246,20 +246,20 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0 h1:d2wCLlENxH4I2axQWaogivx/5ZIjDYgn9MIf6sFxlJ4= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0/go.mod h1:Psyligv8GKL9WI3TraW3BLwkOX4TRxaaa1BBQQyICzA= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 h1:Wq1iTmd0K1SSOIA43Wy2uAU6SB4f9ogyN3ZmvDgTURg= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0/go.mod h1:VCj9H0QxRBWSgbl1pUo8p0NrqnmcxpPo0QjKLFtWkO0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0 h1:m8uPYU2rTj0sKiYgzCvIPajD3meiYsu+nX0hplUnlEU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0/go.mod h1:P0BaP92pXPkTyTmObfLYUoRBfMYU+i0hdS3oM1DpGJo= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0 h1:Qg80zPfNMlub7LO07VMDElOu3M2oxqdZgvvB+X72a4U= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0/go.mod h1:5qsGcjFV3WFI6J2onAlkR7Xd/8VtwJcECaDRZfW4Tb4= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0 h1:PwUMZ6fHMEUV5i9hUly+z3UujDTTdxQtWzL0rWc/lgA= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0/go.mod h1:YEHL6w4vvB9b0/lNwGjz8DyWXTF/7Xw0Hkgc3mGWwa8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 h1:mtSN/07RGQPi1/zHVSZg4G0qRtOoJpPew5jsQWv9uS0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0/go.mod h1:C9Zgh/N3j4NR2D+1FGAA1YizhFW9OS51DwLUFJTdXN4= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 h1:I4ZYVRYW3Cjb65sPENZ9kHam/JUMXNEp2n/knJ0C0Vc= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0/go.mod h1:4BhyIaOn2LS48WS+ZNix4TpP0+goq9gDEtGzth5Cr3M= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.115.0 h1:a36EJz/mb83f6ieX0v4fNDJ1jXqpeaM6DVQXeFDvdhw= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.115.0/go.mod h1:r5/40YO1eSP5ZreOmRzVOUtDr7YG39ZIUcVjHd+9Izc= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.115.0 h1:WOqt8NpU/JPGYDR4CiWx7g/sHV6Oe9FChzhushwmVdo= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.115.0/go.mod h1:wV/+iU7MyXcyTaY8K5Qx+1Z3yUzrxA40nydPQA476Iw= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.115.0 h1:MerLKMrkM4YoGF6Di0D9yMXO02yCX8mrZAi/+jJVVeI= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.115.0/go.mod h1:R8AkVWe9G5Q0oMOapvm9HNS076E3Min8SVlmhBL3QD0= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.115.0 h1:WEqcnWSy9dNSlGb8pYRBX7zhaz2ReyaeImlenbzNTB4= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.115.0/go.mod h1:6Mk71CakHUA3I6oM9hARDiyQypYyOolvb+4PFYyVEFg= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.115.0 h1:eoapW0JBablApkdv4C1RUuOKfz0U6SwuKMYYSAJH6fE= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.115.0/go.mod h1:hW2AaybTRcwxJySGLC3Fh1vd2VDaQhRBfa7O7w30NS8= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.115.0 h1:R9MRrO+dSkAHBQLZjuwjv2RHXHQqF2Wtm1Ki0VKD5cs= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.115.0/go.mod h1:rKXLXmwdUVcUHwTilroKSejbg3KSwLeYzNPSpkIEnv4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.115.0 h1:vwZQ7k8oqlK0bdZYTsjP/59zjQQfjSD4fNsWIWsTu2w= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.115.0/go.mod h1:5ObSa9amrbzbYTdAK1Qhv3D/YqCxxnQhP0sk2eWB7Oo= github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk= github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= @@ -394,80 +394,82 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/collector/client v1.20.0 h1:o60wPcj5nLtaRenF+1E5p4QXFS3TDL6vHlw+GOon3rg= -go.opentelemetry.io/collector/client v1.20.0/go.mod h1:6aqkszco9FaLWCxyJEVam6PP7cUa8mPRIXeS5eZGj0U= -go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= -go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= -go.opentelemetry.io/collector/component/componentstatus v0.114.0 h1:y9my/xink8KB5lK8zFAjgB2+pEh0QYy5TM972fxZY9w= -go.opentelemetry.io/collector/component/componentstatus v0.114.0/go.mod h1:RIoeCYZpPaae7QLE/1RacqzhHuXBmzRAk9H/EwYtIIs= -go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= -go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= -go.opentelemetry.io/collector/config/configauth v0.114.0 h1:R2sJ6xpsLYGH0yU0vCxotzBYDKR/Hrjv0A7y9lwMyiw= -go.opentelemetry.io/collector/config/configauth v0.114.0/go.mod h1:3Z24KcCpG+WYCeQYfs/cNp5cP2BDeOqLCtOEgs/rPqM= -go.opentelemetry.io/collector/config/configcompression v1.20.0 h1:H/mvz7J/5z+O74YsO0t2tk+REnO2tzLM8TgIQ4AZ5w0= -go.opentelemetry.io/collector/config/configcompression v1.20.0/go.mod h1:pnxkFCLUZLKWzYJvfSwZnPrnm0twX14CYj2ADth5xiU= -go.opentelemetry.io/collector/config/confighttp v0.114.0 h1:DjGsBvVm+mGK3IpJBaXianWhwcxEC1fF33cpuC1LY/I= -go.opentelemetry.io/collector/config/confighttp v0.114.0/go.mod h1:nrlNLxOZ+4JQaV9j0TiqQV7LOHhrRivPrT8nQRHED3Q= -go.opentelemetry.io/collector/config/confignet v1.20.0 h1:LrM6AuiY8N/woTP4SWhL2V0562JXwJs9MRNFZJFLtRY= -go.opentelemetry.io/collector/config/confignet v1.20.0/go.mod h1:o3v4joAEjvLwntqexg5ixMqRrU1+Vst+jWuCUaBNgOg= -go.opentelemetry.io/collector/config/configopaque v1.20.0 h1:2I48zKiyyyYqjm7y0B9OLp24ku2ZSX3nCHG0r5FdWOQ= -go.opentelemetry.io/collector/config/configopaque v1.20.0/go.mod h1:6zlLIyOoRpJJ+0bEKrlZOZon3rOp5Jrz9fMdR4twOS4= -go.opentelemetry.io/collector/config/configretry v1.20.0 h1:z679mrMlW2a6tOOYPGdrS/QfALxdzWLQUOpH8Uu+D5Y= -go.opentelemetry.io/collector/config/configretry v1.20.0/go.mod h1:KvQF5cfphq1rQm1dKR4eLDNQYw6iI2fY72NMZVa+0N0= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/config/configtls v1.20.0 h1:hNlJdwfyY5Qe54RLJ41lfLqKTn9ypkR7sk7JNCcSe2U= -go.opentelemetry.io/collector/config/configtls v1.20.0/go.mod h1:sav/txSHguadTYlSSK+BJO2ljJeYEtRoBahgzWAguYg= -go.opentelemetry.io/collector/config/internal v0.114.0 h1:uWSDWTJb8T6xRjKD9/XmEARakXnxgYVYKUeId78hErc= -go.opentelemetry.io/collector/config/internal v0.114.0/go.mod h1:yC7E4h1Uj0SubxcFImh6OvBHFTjMh99+A5PuyIgDWqc= -go.opentelemetry.io/collector/confmap v1.20.0 h1:ARfOwmkKxFOud1njl03yAHQ30+uenlzqCO6LBYamDTE= -go.opentelemetry.io/collector/confmap v1.20.0/go.mod h1:DMpd9Ay/ffls3JoQBQ73vWeRsz1rNuLbwjo6WtjSQus= -go.opentelemetry.io/collector/consumer v0.114.0 h1:1zVaHvfIZowGwZRitRBRo3i+RP2StlU+GClYiofSw0Q= -go.opentelemetry.io/collector/consumer v0.114.0/go.mod h1:d+Mrzt9hsH1ub3zmwSlnQVPLeTYir4Mgo7CrWfnncN4= -go.opentelemetry.io/collector/consumer/consumererror v0.114.0 h1:r2YiELfWerb40FHD23V04gNjIkLUcjEKGxI4Vtm2iO4= -go.opentelemetry.io/collector/consumer/consumererror v0.114.0/go.mod h1:MzIrLQ5jptO2egypolhlAbZsWZr29WC4FhSxQjnxcvg= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 h1:5pXYy3E6UK5Huu3aQbsYL8B6E6MyWx4fvXXDn+oXZaA= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0/go.mod h1:PMq3f54KcJQO4v1tue0QxQScu7REFVADlXxXSAYMiN0= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0 h1:isaTwJK5DOy8Bs7GuLq23ejfgj8gLIo5dOUvkRnLF4g= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0/go.mod h1:GNeLPkfRPdh06n/Rv1UKa/cAtCKjN0a7ADyHjIj4HFE= -go.opentelemetry.io/collector/exporter v0.114.0 h1:5/0BBpXuCJQSQ5SQf31g7j6T4XEKkyx9mZMcA2rS5e8= -go.opentelemetry.io/collector/exporter v0.114.0/go.mod h1:atpd0wWXgh5LAZ0REU/d/Ti/q50HDfnlBIjMjJQlKFg= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 h1:/wmWOSBHcvtz3Pbv7+rWCqPPQuNvYaoidKKaOqZsLKs= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0/go.mod h1:epRYTkyJZTSQZBJflMGHUyUo2EdLPhsaZEyo5Qm848A= -go.opentelemetry.io/collector/exporter/exportertest v0.114.0 h1:vo0idBJT+QACSM1KpjVLm9VeiXVwO7y4UnMpGxN6EyM= -go.opentelemetry.io/collector/exporter/exportertest v0.114.0/go.mod h1:420ssFrhaphneybstbMeSIiqSRoaBARPgO71O17foaM= -go.opentelemetry.io/collector/extension v0.114.0 h1:9Qb92y8hD2WDC5aMDoj4JNQN+/5BQYJWPUPzLXX+iGw= -go.opentelemetry.io/collector/extension v0.114.0/go.mod h1:Yk2/1ptVgfTr12t+22v93nYJpioP14pURv2YercSzU0= -go.opentelemetry.io/collector/extension/auth v0.114.0 h1:1K2qh4yvG8kKR/sTAobI/rw5VxzPZoKcl3FmC195vvo= -go.opentelemetry.io/collector/extension/auth v0.114.0/go.mod h1:IjtsG+jUVJB0utKF8dAK8pLutRun3aEgASshImzsw/U= -go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 h1:hLyX9UvmY0t6iBnk3CqvyNck2U0QjPACekj7pDRx2hA= -go.opentelemetry.io/collector/extension/experimental/storage v0.114.0/go.mod h1:WqYRQVJjJLE1rm+y/ks1wPdPRGWePEvE1VO07xm2J2k= -go.opentelemetry.io/collector/extension/extensiontest v0.114.0 h1:ibXDms1qrswlvlR6b3d2BeyI8sXUXoFV11yOi9Sop8o= -go.opentelemetry.io/collector/extension/extensiontest v0.114.0/go.mod h1:/bOYmqu5yTDfI1bJZUxFqm8ZtmcodpquebiSxiQxtDY= -go.opentelemetry.io/collector/featuregate v1.20.0 h1:Mi7nMy/q52eruI+6jWnMKUOeM55XvwoPnGcdB1++O8c= -go.opentelemetry.io/collector/featuregate v1.20.0/go.mod h1:47xrISO71vJ83LSMm8+yIDsUbKktUp48Ovt7RR6VbRs= -go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= -go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0 h1:pUNfTzsI/JUTiE+DScDM4lsrPoxnVNLI2fbTxR/oapo= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0/go.mod h1:4aNcj6WM1n1uXyFSXlhVs4ibrERgNYsTbzcYI2zGhxA= -go.opentelemetry.io/collector/pdata/testdata v0.114.0 h1:+AzszWSL1i4K6meQ8rU0JDDW55SYCXa6FVqfDixhhTo= -go.opentelemetry.io/collector/pdata/testdata v0.114.0/go.mod h1:bv8XFdCTZxG2MQB5l9dKxSxf5zBrcodwO6JOy1+AxXM= -go.opentelemetry.io/collector/pipeline v0.114.0 h1:v3YOhc5z0tD6QbO5n/pnftpIeroihM2ks9Z2yKPCcwY= -go.opentelemetry.io/collector/pipeline v0.114.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= -go.opentelemetry.io/collector/processor v0.114.0 h1:6bqQgLL7BtKrNv4YkEOGjZfkcfZv/ciJSQx1epGG9Zk= -go.opentelemetry.io/collector/processor v0.114.0/go.mod h1:DV/wa+nAmSHIDeD9NblPwkY9PbgtDQAZJ+PE5biZwPc= -go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 h1:+P/1nLouEXTnN8DVQl+qWwO4BTkQyNPG9t/FrpUqrSI= -go.opentelemetry.io/collector/processor/processorprofiles v0.114.0/go.mod h1:3fuHeNIpINwx3bqFMprmDJyr6y5tWoWbJH599kltO5Y= -go.opentelemetry.io/collector/processor/processortest v0.114.0 h1:3FTaVXAp0LoVmUJn1ewBFckAby7AHa6/Kcdj0xuW14c= -go.opentelemetry.io/collector/processor/processortest v0.114.0/go.mod h1:OgsdOs1Fv5ZGTTJPF5nNIUJh2YkuV1acWd73yWgnti4= -go.opentelemetry.io/collector/receiver v0.114.0 h1:90SAnXAjNq7/k52/pFmmb06Cf1YauoPYtbio4aOXafY= -go.opentelemetry.io/collector/receiver v0.114.0/go.mod h1:KUGT0/D953LXbGH/D3lLPU8yrU3HfWnUqpt4W4hSOnE= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 h1:ibhEfGpvNB3yrtpl2jYFabrunMk1hurxvMYpM0b1Ck4= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0/go.mod h1:UZyRfaasw+NLvN10AN8IQnmj5tQ3BOUH1uP2ctpO9f0= -go.opentelemetry.io/collector/receiver/receivertest v0.114.0 h1:D+Kh9t2n4asTnM+TiSxbrKlUemLZandWntj17BJWWb0= -go.opentelemetry.io/collector/receiver/receivertest v0.114.0/go.mod h1:mNSHQ13vFmqD+VAcRzLjStFBejbcWUn2Mp0pAd7Op+U= -go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= -go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= +go.opentelemetry.io/collector/client v1.21.0 h1:3Kes8lOFMYVxoxeAmX+DTEAkuS1iTA3NkSfqzGmygJA= +go.opentelemetry.io/collector/client v1.21.0/go.mod h1:jYJGiL0UA975OOyHmjbQSokNWt1OiviI5KjPOMUMGwc= +go.opentelemetry.io/collector/component v0.115.0 h1:iLte1oCiXzjiCnaOBKdsXacfFiECecpWxW3/LeriMoo= +go.opentelemetry.io/collector/component v0.115.0/go.mod h1:oIUFiH7w1eOimdeYhFI+gAIxYSiLDocKVJ0PTvX7d6s= +go.opentelemetry.io/collector/component/componentstatus v0.115.0 h1:pbpUIL+uKDfEiSgKK+S5nuSL6MDIIQYsp4b65ZGVb9M= +go.opentelemetry.io/collector/component/componentstatus v0.115.0/go.mod h1:36A+9XSiOz0Cdhq+UwwPRlEr5CYuSkEnVO9om4BH7d0= +go.opentelemetry.io/collector/component/componenttest v0.115.0 h1:9URDJ9VyP6tuij+YHjp/kSSMecnZOd7oGvzu+rw9SJY= +go.opentelemetry.io/collector/component/componenttest v0.115.0/go.mod h1:PzXvNqKLCiSADZGZFKH+IOHMkaQ0GTHuzysfVbTPKYY= +go.opentelemetry.io/collector/config/configauth v0.115.0 h1:xa+ALdyPgva3rZnLBh1H2oS5MsHP6JxSqMtQmcELnys= +go.opentelemetry.io/collector/config/configauth v0.115.0/go.mod h1:C7anpb3Rf4KswMT+dgOzkW9UX0z/65PLORpUw3p0VYc= +go.opentelemetry.io/collector/config/configcompression v1.21.0 h1:0zbPdZAgPFMAarwJEC4gaR6f/JBP686A3TYSgb3oa+E= +go.opentelemetry.io/collector/config/configcompression v1.21.0/go.mod h1:LvYG00tbPTv0NOLoZN0wXq1F5thcxvukO8INq7xyfWU= +go.opentelemetry.io/collector/config/confighttp v0.115.0 h1:BIy394oNXnqySJwrCqgAJu4gWgAV5aQUDD6k1hy6C8o= +go.opentelemetry.io/collector/config/confighttp v0.115.0/go.mod h1:Wr50ut12NmCEAl4bWLJryw2EjUmJTtYRg89560Q51wc= +go.opentelemetry.io/collector/config/confignet v1.21.0 h1:PeQ5YrMnfftysFL/WVaSrjPOWjD6DfeABY50pf9CZxU= +go.opentelemetry.io/collector/config/confignet v1.21.0/go.mod h1:ZppUH1hgUJOubawEsxsQ9MzEYFytqo2GnVSS7d4CVxc= +go.opentelemetry.io/collector/config/configopaque v1.21.0 h1:PcvRGkBk4Px8BQM7tX+kw4i3jBsfAHGoGQbtZg6Ox7U= +go.opentelemetry.io/collector/config/configopaque v1.21.0/go.mod h1:sW0t0iI/VfRL9VYX7Ik6XzVgPcR+Y5kejTLsYcMyDWs= +go.opentelemetry.io/collector/config/configretry v1.21.0 h1:ZHoOvAkEcv5BBeaJn8IQ6rQ4GMPZWW4S+W7R4QTEbZU= +go.opentelemetry.io/collector/config/configretry v1.21.0/go.mod h1:cleBc9I0DIWpTiiHfu9v83FUaCTqcPXmebpLxjEIqro= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0 h1:U07FinCDop+r2RjWQ3aP9ZWONC7r7kQIp1GkXQi6nsI= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0/go.mod h1:SlBEwQg0qly75rXZ6W1Ig8jN25KBVBkFIIAUI1GiAAE= +go.opentelemetry.io/collector/config/configtls v1.21.0 h1:ZfrlAYgBD8lzp04W0GxwiDmUbrvKsvDYJi+wkyiXlpA= +go.opentelemetry.io/collector/config/configtls v1.21.0/go.mod h1:5EsNefPfVCMOTlOrr3wyj7LrsOgY7V8iqRl8oFZEqtw= +go.opentelemetry.io/collector/config/internal v0.115.0 h1:eVk57iufZpUXyPJFKTb1Ebx5tmcCyroIlt427r5pxS8= +go.opentelemetry.io/collector/config/internal v0.115.0/go.mod h1:OVkadRWlKAoWjHslqjWtBLAne8ceQm8WYT71ZcBWLFc= +go.opentelemetry.io/collector/confmap v1.21.0 h1:1tIcx2/Suwg8VhuPmQw87ba0ludPmumpFCFRZZa6RXA= +go.opentelemetry.io/collector/confmap v1.21.0/go.mod h1:Rrhs+MWoaP6AswZp+ReQ2VO9dfOfcUjdjiSHBsG+nec= +go.opentelemetry.io/collector/consumer v1.21.0 h1:THKZ2Vbi6GkamjTBI2hFq5Dc4kINZTWGwQNa8d/Ty9g= +go.opentelemetry.io/collector/consumer v1.21.0/go.mod h1:FQcC4ThMtRYY41dv+IPNK8POLLhAFY3r1YR5fuP7iiY= +go.opentelemetry.io/collector/consumer/consumererror v0.115.0 h1:yli//xBCQMPZKXNgNlXemo4dvqhnFrAmCZ11DvQgmcY= +go.opentelemetry.io/collector/consumer/consumererror v0.115.0/go.mod h1:LwVzAvQ6ZVNG7mbOvurbAo+W/rKws0IcjOwriuZXqPE= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0 h1:H3fDuyQW1t2HWHkz96WMBQJKUevypOCjBqnqtaAWyoA= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0/go.mod h1:IzEmZ91Tp7TBxVDq8Cc9xvLsmO7H08njr6Pu9P5d9ns= +go.opentelemetry.io/collector/consumer/consumertest v0.115.0 h1:hru0I2447y0TluCdwlKYFFtgcpyCnlM+LiOK1JZyA70= +go.opentelemetry.io/collector/consumer/consumertest v0.115.0/go.mod h1:ybjALRJWR6aKNOzEMy1T1ruCULVDEjj4omtOJMrH/kU= +go.opentelemetry.io/collector/exporter v0.115.0 h1:JnxfpOnsuqhTPKJXVKJLS1Cv3BiVrVLzpHOjJEQw+xw= +go.opentelemetry.io/collector/exporter v0.115.0/go.mod h1:xof3fHQK8wADhaKLIJcQ7ChZaFLNC+haRdPN0wgl6kY= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0 h1:lSQEleCn/q9eFufcuK61NdFKU70ZlgI9dBjPCO/4CrE= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0/go.mod h1:7l5K2AecimX2kx+nZC1gKG3QkP247CO1+SodmJ4fFkQ= +go.opentelemetry.io/collector/exporter/exportertest v0.115.0 h1:P9SMTUXQOtcaq40bGtnnAe14zRmR4/yUgj/Tb2BEf/k= +go.opentelemetry.io/collector/exporter/exportertest v0.115.0/go.mod h1:1jMZ9gFGXglb8wfNrBZIgd+RvpZhSyFwdfE+Jtf9w4U= +go.opentelemetry.io/collector/extension v0.115.0 h1:/cBb8AUdD0KMWC6V3lvCC16eP9Fg0wd1Upcp5rgvuGI= +go.opentelemetry.io/collector/extension v0.115.0/go.mod h1:HI7Ak6loyi6ZrZPsQJW1OO1wbaAW8OqXLFNQlTZnreQ= +go.opentelemetry.io/collector/extension/auth v0.115.0 h1:TTMokbBsSHZRFH48PvGSJmgSS8F3Rkr9MWGHZn8eJDk= +go.opentelemetry.io/collector/extension/auth v0.115.0/go.mod h1:3w+2mzeb2OYNOO4Bi41TUo4jr32ap2y7AOq64IDpxQo= +go.opentelemetry.io/collector/extension/auth/authtest v0.115.0 h1:OZe7dKbZ01qodSpZU0ZYzI6zpmmzJ3UvfdBSFAbSgDw= +go.opentelemetry.io/collector/extension/auth/authtest v0.115.0/go.mod h1:fk9WCXP0x91Q64Z8HZKWTHh9PWtgoWE1KXe3n2Bff3U= +go.opentelemetry.io/collector/extension/experimental/storage v0.115.0 h1:sZXw0+77092pq24CkUoTRoHQPLQUsDq6HFRNB0g5yR4= +go.opentelemetry.io/collector/extension/experimental/storage v0.115.0/go.mod h1:qjFH7Y3QYYs88By2ZB5GMSUN5k3ul4Brrq2J6lKACA0= +go.opentelemetry.io/collector/extension/extensiontest v0.115.0 h1:GBVFxFEskR8jSdu9uaQh2qpXnN5VNXhXjpJ2UjxtE8I= +go.opentelemetry.io/collector/extension/extensiontest v0.115.0/go.mod h1:eu1ecbz5mT+cHoH2H3GmD/rOO0WsicSJD2RLrYuOmRA= +go.opentelemetry.io/collector/featuregate v1.21.0 h1:+EULHPJDLMipcwAGZVp9Nm8NriRvoBBMxp7MSiIZVMI= +go.opentelemetry.io/collector/featuregate v1.21.0/go.mod h1:3GaXqflNDVwWndNGBJ1+XJFy3Fv/XrFgjMN60N3z7yg= +go.opentelemetry.io/collector/pdata v1.21.0 h1:PG+UbiFMJ35X/WcAR7Rf/PWmWtRdW0aHlOidsR6c5MA= +go.opentelemetry.io/collector/pdata v1.21.0/go.mod h1:GKb1/zocKJMvxKbS+sl0W85lxhYBTFJ6h6I1tphVyDU= +go.opentelemetry.io/collector/pdata/pprofile v0.115.0 h1:NI89hy13vNDw7EOnQf7Jtitks4HJFO0SUWznTssmP94= +go.opentelemetry.io/collector/pdata/pprofile v0.115.0/go.mod h1:jGzdNfO0XTtfLjXCL/uCC1livg1LlfR+ix2WE/z3RpQ= +go.opentelemetry.io/collector/pdata/testdata v0.115.0 h1:Rblz+AKXdo3fG626jS+KSd0OSA4uMXcTQfpwed6P8LI= +go.opentelemetry.io/collector/pdata/testdata v0.115.0/go.mod h1:inNnRt6S2Nn260EfCBEcjesjlKOSsr0jPwkPqpBkt4s= +go.opentelemetry.io/collector/pipeline v0.115.0 h1:bmACBqb0e8U9ag+vGGHUP7kCfAO7HHROdtzIEg8ulus= +go.opentelemetry.io/collector/pipeline v0.115.0/go.mod h1:qE3DmoB05AW0C3lmPvdxZqd/H4po84NPzd5MrqgtL74= +go.opentelemetry.io/collector/processor v0.115.0 h1:+fveHGRe24PZPv/F5taahGuZ9HdNW44hgNWEJhIUdyc= +go.opentelemetry.io/collector/processor v0.115.0/go.mod h1:/oLHBlLsm7tFb7zOIrA5C0j14yBtjXKAgxJJ2Bktyk4= +go.opentelemetry.io/collector/processor/processorprofiles v0.115.0 h1:cCZAs+FXaebZPppqAN3m+X3etoSBL6NvyQo8l0hOZoo= +go.opentelemetry.io/collector/processor/processorprofiles v0.115.0/go.mod h1:kMxF0gknlWX4duuAJFi2/HuIRi6C3w95tOenRa0GKOY= +go.opentelemetry.io/collector/processor/processortest v0.115.0 h1:j9HEaYFOeOB6VYl9zGhBnhQbTkqGBa2udUvu5NTh6hc= +go.opentelemetry.io/collector/processor/processortest v0.115.0/go.mod h1:Gws+VEnp/eW3qAqPpqbKsrbnnxxNfyDjqrfUXbZfZic= +go.opentelemetry.io/collector/receiver v0.115.0 h1:55Q3Jvj6zHCIA1psKqi/3kEMJO4OqUF5tNAEYNdB1U8= +go.opentelemetry.io/collector/receiver v0.115.0/go.mod h1:nBSCh2O/WUcfgpJ+Jpz+B0z0Hn5jHeRvF2WmLij5EIY= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0 h1:R9JLaj2Al93smIPUkbJshAkb/cY0H5JBOxIx+Zu0NG4= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0/go.mod h1:05E5hGujWeeXJmzKZwTdHyZ/+rRyrQlQB5p5Q2XY39M= +go.opentelemetry.io/collector/receiver/receivertest v0.115.0 h1:OiB684SbHQi6/Pd3ZH0cXjYvCpBS9ilQBfTQx0wVXHg= +go.opentelemetry.io/collector/receiver/receivertest v0.115.0/go.mod h1:Y8Z9U/bz9Xpyt8GI8DxZZgryw3mnnIw+AeKVLTD2cP8= +go.opentelemetry.io/collector/semconv v0.115.0 h1:SoqMvg4ZEB3mz2EdAb6XYa+TuMo5Mir5FRBr3nVFUDY= +go.opentelemetry.io/collector/semconv v0.115.0/go.mod h1:N6XE8Q0JKgBN2fAhkUQtqK9LT7rEGR6+Wu/Rtbal1iI= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 h1:UP6IpuHFkUgOQL9FFQFrZ+5LiwhhYRbi7VZSIx6Nj5s= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0/go.mod h1:qxuZLtbq5QDtdeSHsS7bcf6EH6uO6jUAgk764zd3rhM= go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod index b2fc1508016cf..0e14870fd4f2a 100644 --- a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod @@ -52,16 +52,18 @@ require ( github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0 github.com/stormcat24/protodep v0.1.8 github.com/stretchr/testify v1.10.0 - go.opentelemetry.io/collector/component v0.114.0 - go.opentelemetry.io/collector/exporter v0.114.0 - go.opentelemetry.io/collector/exporter/exportertest v0.114.0 - go.opentelemetry.io/collector/pdata v1.20.0 + go.opentelemetry.io/collector/component v0.115.0 + go.opentelemetry.io/collector/exporter v0.115.0 + go.opentelemetry.io/collector/exporter/exportertest v0.115.0 + go.opentelemetry.io/collector/pdata v1.21.0 ) require ( - go.opentelemetry.io/collector/component/componenttest v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror v0.114.0 // indirect - go.opentelemetry.io/collector/receiver/receivertest v0.114.0 // indirect + github.com/hashicorp/go-version v1.7.0 // indirect + go.opentelemetry.io/collector/component/componenttest v0.115.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror v0.115.0 // indirect + go.opentelemetry.io/collector/featuregate v1.21.0 // indirect + go.opentelemetry.io/collector/receiver/receivertest v0.115.0 // indirect ) require ( @@ -132,19 +134,19 @@ require ( github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/collector/config/configretry v1.20.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect - go.opentelemetry.io/collector/consumer v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumertest v0.114.0 // indirect - go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/extension v0.114.0 // indirect - go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.114.0 // indirect - go.opentelemetry.io/collector/pipeline v0.114.0 // indirect - go.opentelemetry.io/collector/receiver v0.114.0 // indirect - go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/semconv v0.114.0 // indirect + go.opentelemetry.io/collector/config/configretry v1.21.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.115.0 // indirect + go.opentelemetry.io/collector/consumer v1.21.0 // indirect + go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/consumer/consumertest v0.115.0 // indirect + go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/extension v0.115.0 // indirect + go.opentelemetry.io/collector/extension/experimental/storage v0.115.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.115.0 // indirect + go.opentelemetry.io/collector/pipeline v0.115.0 // indirect + go.opentelemetry.io/collector/receiver v0.115.0 // indirect + go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/semconv v0.115.0 // indirect go.opentelemetry.io/otel v1.32.0 // indirect go.opentelemetry.io/otel/metric v1.32.0 // indirect go.opentelemetry.io/otel/sdk v1.32.0 // indirect diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum index b27097f6ddcfe..46c7f002b47da 100644 --- a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum @@ -114,6 +114,8 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9G github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.13.0/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= +github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= +github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= @@ -272,50 +274,52 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= -go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= -go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= -go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= -go.opentelemetry.io/collector/config/configretry v1.20.0 h1:z679mrMlW2a6tOOYPGdrS/QfALxdzWLQUOpH8Uu+D5Y= -go.opentelemetry.io/collector/config/configretry v1.20.0/go.mod h1:KvQF5cfphq1rQm1dKR4eLDNQYw6iI2fY72NMZVa+0N0= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/consumer v0.114.0 h1:1zVaHvfIZowGwZRitRBRo3i+RP2StlU+GClYiofSw0Q= -go.opentelemetry.io/collector/consumer v0.114.0/go.mod h1:d+Mrzt9hsH1ub3zmwSlnQVPLeTYir4Mgo7CrWfnncN4= -go.opentelemetry.io/collector/consumer/consumererror v0.114.0 h1:r2YiELfWerb40FHD23V04gNjIkLUcjEKGxI4Vtm2iO4= -go.opentelemetry.io/collector/consumer/consumererror v0.114.0/go.mod h1:MzIrLQ5jptO2egypolhlAbZsWZr29WC4FhSxQjnxcvg= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 h1:5pXYy3E6UK5Huu3aQbsYL8B6E6MyWx4fvXXDn+oXZaA= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0/go.mod h1:PMq3f54KcJQO4v1tue0QxQScu7REFVADlXxXSAYMiN0= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0 h1:isaTwJK5DOy8Bs7GuLq23ejfgj8gLIo5dOUvkRnLF4g= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0/go.mod h1:GNeLPkfRPdh06n/Rv1UKa/cAtCKjN0a7ADyHjIj4HFE= -go.opentelemetry.io/collector/exporter v0.114.0 h1:5/0BBpXuCJQSQ5SQf31g7j6T4XEKkyx9mZMcA2rS5e8= -go.opentelemetry.io/collector/exporter v0.114.0/go.mod h1:atpd0wWXgh5LAZ0REU/d/Ti/q50HDfnlBIjMjJQlKFg= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 h1:/wmWOSBHcvtz3Pbv7+rWCqPPQuNvYaoidKKaOqZsLKs= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0/go.mod h1:epRYTkyJZTSQZBJflMGHUyUo2EdLPhsaZEyo5Qm848A= -go.opentelemetry.io/collector/exporter/exportertest v0.114.0 h1:vo0idBJT+QACSM1KpjVLm9VeiXVwO7y4UnMpGxN6EyM= -go.opentelemetry.io/collector/exporter/exportertest v0.114.0/go.mod h1:420ssFrhaphneybstbMeSIiqSRoaBARPgO71O17foaM= -go.opentelemetry.io/collector/extension v0.114.0 h1:9Qb92y8hD2WDC5aMDoj4JNQN+/5BQYJWPUPzLXX+iGw= -go.opentelemetry.io/collector/extension v0.114.0/go.mod h1:Yk2/1ptVgfTr12t+22v93nYJpioP14pURv2YercSzU0= -go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 h1:hLyX9UvmY0t6iBnk3CqvyNck2U0QjPACekj7pDRx2hA= -go.opentelemetry.io/collector/extension/experimental/storage v0.114.0/go.mod h1:WqYRQVJjJLE1rm+y/ks1wPdPRGWePEvE1VO07xm2J2k= -go.opentelemetry.io/collector/extension/extensiontest v0.114.0 h1:ibXDms1qrswlvlR6b3d2BeyI8sXUXoFV11yOi9Sop8o= -go.opentelemetry.io/collector/extension/extensiontest v0.114.0/go.mod h1:/bOYmqu5yTDfI1bJZUxFqm8ZtmcodpquebiSxiQxtDY= -go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= -go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0 h1:pUNfTzsI/JUTiE+DScDM4lsrPoxnVNLI2fbTxR/oapo= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0/go.mod h1:4aNcj6WM1n1uXyFSXlhVs4ibrERgNYsTbzcYI2zGhxA= -go.opentelemetry.io/collector/pdata/testdata v0.114.0 h1:+AzszWSL1i4K6meQ8rU0JDDW55SYCXa6FVqfDixhhTo= -go.opentelemetry.io/collector/pdata/testdata v0.114.0/go.mod h1:bv8XFdCTZxG2MQB5l9dKxSxf5zBrcodwO6JOy1+AxXM= -go.opentelemetry.io/collector/pipeline v0.114.0 h1:v3YOhc5z0tD6QbO5n/pnftpIeroihM2ks9Z2yKPCcwY= -go.opentelemetry.io/collector/pipeline v0.114.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= -go.opentelemetry.io/collector/receiver v0.114.0 h1:90SAnXAjNq7/k52/pFmmb06Cf1YauoPYtbio4aOXafY= -go.opentelemetry.io/collector/receiver v0.114.0/go.mod h1:KUGT0/D953LXbGH/D3lLPU8yrU3HfWnUqpt4W4hSOnE= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 h1:ibhEfGpvNB3yrtpl2jYFabrunMk1hurxvMYpM0b1Ck4= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0/go.mod h1:UZyRfaasw+NLvN10AN8IQnmj5tQ3BOUH1uP2ctpO9f0= -go.opentelemetry.io/collector/receiver/receivertest v0.114.0 h1:D+Kh9t2n4asTnM+TiSxbrKlUemLZandWntj17BJWWb0= -go.opentelemetry.io/collector/receiver/receivertest v0.114.0/go.mod h1:mNSHQ13vFmqD+VAcRzLjStFBejbcWUn2Mp0pAd7Op+U= -go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= -go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= +go.opentelemetry.io/collector/component v0.115.0 h1:iLte1oCiXzjiCnaOBKdsXacfFiECecpWxW3/LeriMoo= +go.opentelemetry.io/collector/component v0.115.0/go.mod h1:oIUFiH7w1eOimdeYhFI+gAIxYSiLDocKVJ0PTvX7d6s= +go.opentelemetry.io/collector/component/componenttest v0.115.0 h1:9URDJ9VyP6tuij+YHjp/kSSMecnZOd7oGvzu+rw9SJY= +go.opentelemetry.io/collector/component/componenttest v0.115.0/go.mod h1:PzXvNqKLCiSADZGZFKH+IOHMkaQ0GTHuzysfVbTPKYY= +go.opentelemetry.io/collector/config/configretry v1.21.0 h1:ZHoOvAkEcv5BBeaJn8IQ6rQ4GMPZWW4S+W7R4QTEbZU= +go.opentelemetry.io/collector/config/configretry v1.21.0/go.mod h1:cleBc9I0DIWpTiiHfu9v83FUaCTqcPXmebpLxjEIqro= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0 h1:U07FinCDop+r2RjWQ3aP9ZWONC7r7kQIp1GkXQi6nsI= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0/go.mod h1:SlBEwQg0qly75rXZ6W1Ig8jN25KBVBkFIIAUI1GiAAE= +go.opentelemetry.io/collector/consumer v1.21.0 h1:THKZ2Vbi6GkamjTBI2hFq5Dc4kINZTWGwQNa8d/Ty9g= +go.opentelemetry.io/collector/consumer v1.21.0/go.mod h1:FQcC4ThMtRYY41dv+IPNK8POLLhAFY3r1YR5fuP7iiY= +go.opentelemetry.io/collector/consumer/consumererror v0.115.0 h1:yli//xBCQMPZKXNgNlXemo4dvqhnFrAmCZ11DvQgmcY= +go.opentelemetry.io/collector/consumer/consumererror v0.115.0/go.mod h1:LwVzAvQ6ZVNG7mbOvurbAo+W/rKws0IcjOwriuZXqPE= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0 h1:H3fDuyQW1t2HWHkz96WMBQJKUevypOCjBqnqtaAWyoA= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0/go.mod h1:IzEmZ91Tp7TBxVDq8Cc9xvLsmO7H08njr6Pu9P5d9ns= +go.opentelemetry.io/collector/consumer/consumertest v0.115.0 h1:hru0I2447y0TluCdwlKYFFtgcpyCnlM+LiOK1JZyA70= +go.opentelemetry.io/collector/consumer/consumertest v0.115.0/go.mod h1:ybjALRJWR6aKNOzEMy1T1ruCULVDEjj4omtOJMrH/kU= +go.opentelemetry.io/collector/exporter v0.115.0 h1:JnxfpOnsuqhTPKJXVKJLS1Cv3BiVrVLzpHOjJEQw+xw= +go.opentelemetry.io/collector/exporter v0.115.0/go.mod h1:xof3fHQK8wADhaKLIJcQ7ChZaFLNC+haRdPN0wgl6kY= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0 h1:lSQEleCn/q9eFufcuK61NdFKU70ZlgI9dBjPCO/4CrE= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0/go.mod h1:7l5K2AecimX2kx+nZC1gKG3QkP247CO1+SodmJ4fFkQ= +go.opentelemetry.io/collector/exporter/exportertest v0.115.0 h1:P9SMTUXQOtcaq40bGtnnAe14zRmR4/yUgj/Tb2BEf/k= +go.opentelemetry.io/collector/exporter/exportertest v0.115.0/go.mod h1:1jMZ9gFGXglb8wfNrBZIgd+RvpZhSyFwdfE+Jtf9w4U= +go.opentelemetry.io/collector/extension v0.115.0 h1:/cBb8AUdD0KMWC6V3lvCC16eP9Fg0wd1Upcp5rgvuGI= +go.opentelemetry.io/collector/extension v0.115.0/go.mod h1:HI7Ak6loyi6ZrZPsQJW1OO1wbaAW8OqXLFNQlTZnreQ= +go.opentelemetry.io/collector/extension/experimental/storage v0.115.0 h1:sZXw0+77092pq24CkUoTRoHQPLQUsDq6HFRNB0g5yR4= +go.opentelemetry.io/collector/extension/experimental/storage v0.115.0/go.mod h1:qjFH7Y3QYYs88By2ZB5GMSUN5k3ul4Brrq2J6lKACA0= +go.opentelemetry.io/collector/extension/extensiontest v0.115.0 h1:GBVFxFEskR8jSdu9uaQh2qpXnN5VNXhXjpJ2UjxtE8I= +go.opentelemetry.io/collector/extension/extensiontest v0.115.0/go.mod h1:eu1ecbz5mT+cHoH2H3GmD/rOO0WsicSJD2RLrYuOmRA= +go.opentelemetry.io/collector/featuregate v1.21.0 h1:+EULHPJDLMipcwAGZVp9Nm8NriRvoBBMxp7MSiIZVMI= +go.opentelemetry.io/collector/featuregate v1.21.0/go.mod h1:3GaXqflNDVwWndNGBJ1+XJFy3Fv/XrFgjMN60N3z7yg= +go.opentelemetry.io/collector/pdata v1.21.0 h1:PG+UbiFMJ35X/WcAR7Rf/PWmWtRdW0aHlOidsR6c5MA= +go.opentelemetry.io/collector/pdata v1.21.0/go.mod h1:GKb1/zocKJMvxKbS+sl0W85lxhYBTFJ6h6I1tphVyDU= +go.opentelemetry.io/collector/pdata/pprofile v0.115.0 h1:NI89hy13vNDw7EOnQf7Jtitks4HJFO0SUWznTssmP94= +go.opentelemetry.io/collector/pdata/pprofile v0.115.0/go.mod h1:jGzdNfO0XTtfLjXCL/uCC1livg1LlfR+ix2WE/z3RpQ= +go.opentelemetry.io/collector/pdata/testdata v0.115.0 h1:Rblz+AKXdo3fG626jS+KSd0OSA4uMXcTQfpwed6P8LI= +go.opentelemetry.io/collector/pdata/testdata v0.115.0/go.mod h1:inNnRt6S2Nn260EfCBEcjesjlKOSsr0jPwkPqpBkt4s= +go.opentelemetry.io/collector/pipeline v0.115.0 h1:bmACBqb0e8U9ag+vGGHUP7kCfAO7HHROdtzIEg8ulus= +go.opentelemetry.io/collector/pipeline v0.115.0/go.mod h1:qE3DmoB05AW0C3lmPvdxZqd/H4po84NPzd5MrqgtL74= +go.opentelemetry.io/collector/receiver v0.115.0 h1:55Q3Jvj6zHCIA1psKqi/3kEMJO4OqUF5tNAEYNdB1U8= +go.opentelemetry.io/collector/receiver v0.115.0/go.mod h1:nBSCh2O/WUcfgpJ+Jpz+B0z0Hn5jHeRvF2WmLij5EIY= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0 h1:R9JLaj2Al93smIPUkbJshAkb/cY0H5JBOxIx+Zu0NG4= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0/go.mod h1:05E5hGujWeeXJmzKZwTdHyZ/+rRyrQlQB5p5Q2XY39M= +go.opentelemetry.io/collector/receiver/receivertest v0.115.0 h1:OiB684SbHQi6/Pd3ZH0cXjYvCpBS9ilQBfTQx0wVXHg= +go.opentelemetry.io/collector/receiver/receivertest v0.115.0/go.mod h1:Y8Z9U/bz9Xpyt8GI8DxZZgryw3mnnIw+AeKVLTD2cP8= +go.opentelemetry.io/collector/semconv v0.115.0 h1:SoqMvg4ZEB3mz2EdAb6XYa+TuMo5Mir5FRBr3nVFUDY= +go.opentelemetry.io/collector/semconv v0.115.0/go.mod h1:N6XE8Q0JKgBN2fAhkUQtqK9LT7rEGR6+Wu/Rtbal1iI= go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod index f469f0ac3856a..4ae9f643df3cf 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod @@ -73,19 +73,19 @@ require ( github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0 github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.115.0 github.com/stretchr/testify v1.10.0 github.com/tinylib/msgp v1.2.4 - go.opentelemetry.io/collector/component v0.114.0 - go.opentelemetry.io/collector/config/confignet v1.20.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect - go.opentelemetry.io/collector/confmap v1.20.0 // indirect - go.opentelemetry.io/collector/consumer v0.114.0 - go.opentelemetry.io/collector/exporter v0.114.0 - go.opentelemetry.io/collector/extension v0.114.0 // indirect - go.opentelemetry.io/collector/pdata v1.20.0 - go.opentelemetry.io/collector/receiver v0.114.0 // indirect - go.opentelemetry.io/collector/semconv v0.114.0 // indirect + go.opentelemetry.io/collector/component v0.115.0 + go.opentelemetry.io/collector/config/confignet v1.21.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.115.0 // indirect + go.opentelemetry.io/collector/confmap v1.21.0 // indirect + go.opentelemetry.io/collector/consumer v1.21.0 + go.opentelemetry.io/collector/exporter v0.115.0 + go.opentelemetry.io/collector/extension v0.115.0 // indirect + go.opentelemetry.io/collector/pdata v1.21.0 + go.opentelemetry.io/collector/receiver v0.115.0 // indirect + go.opentelemetry.io/collector/semconv v0.115.0 // indirect go.uber.org/multierr v1.11.0 ) @@ -199,14 +199,14 @@ require ( github.com/tklauser/numcpus v0.8.0 // indirect github.com/twmb/murmur3 v1.1.8 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/collector/config/configretry v1.20.0 // indirect - go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumertest v0.114.0 // indirect - go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.114.0 // indirect - go.opentelemetry.io/collector/pipeline v0.114.0 // indirect - go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/config/configretry v1.21.0 // indirect + go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/consumer/consumertest v0.115.0 // indirect + go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/extension/experimental/storage v0.115.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.115.0 // indirect + go.opentelemetry.io/collector/pipeline v0.115.0 // indirect + go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0 // indirect go.opentelemetry.io/otel v1.32.0 // indirect go.opentelemetry.io/otel/metric v1.32.0 // indirect go.opentelemetry.io/otel/sdk v1.32.0 // indirect @@ -228,31 +228,31 @@ require ( ) require ( - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 - go.opentelemetry.io/collector/component/componenttest v0.114.0 - go.opentelemetry.io/collector/exporter/exportertest v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.115.0 + go.opentelemetry.io/collector/component/componenttest v0.115.0 + go.opentelemetry.io/collector/exporter/exportertest v0.115.0 ) require ( github.com/hashicorp/go-version v1.7.0 // indirect - go.opentelemetry.io/collector/featuregate v1.20.0 // indirect + go.opentelemetry.io/collector/featuregate v1.21.0 // indirect ) require ( github.com/knadh/koanf/maps v0.1.1 // indirect github.com/knadh/koanf/providers/confmap v0.1.0 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.115.0 // indirect github.com/pierrec/lz4/v4 v4.1.21 // indirect - go.opentelemetry.io/collector/client v1.20.0 // indirect - go.opentelemetry.io/collector/config/configauth v0.114.0 // indirect - go.opentelemetry.io/collector/config/configcompression v1.20.0 // indirect - go.opentelemetry.io/collector/config/confighttp v0.114.0 // indirect - go.opentelemetry.io/collector/config/configopaque v1.20.0 // indirect - go.opentelemetry.io/collector/config/configtls v1.20.0 // indirect - go.opentelemetry.io/collector/config/internal v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror v0.114.0 // indirect - go.opentelemetry.io/collector/extension/auth v0.114.0 // indirect - go.opentelemetry.io/collector/receiver/receivertest v0.114.0 // indirect + go.opentelemetry.io/collector/client v1.21.0 // indirect + go.opentelemetry.io/collector/config/configauth v0.115.0 // indirect + go.opentelemetry.io/collector/config/configcompression v1.21.0 // indirect + go.opentelemetry.io/collector/config/confighttp v0.115.0 // indirect + go.opentelemetry.io/collector/config/configopaque v1.21.0 // indirect + go.opentelemetry.io/collector/config/configtls v1.21.0 // indirect + go.opentelemetry.io/collector/config/internal v0.115.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror v0.115.0 // indirect + go.opentelemetry.io/collector/extension/auth v0.115.0 // indirect + go.opentelemetry.io/collector/receiver/receivertest v0.115.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect ) diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum index a1036423c51c7..89c84f20e836c 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum @@ -206,16 +206,16 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0 h1:d2wCLlENxH4I2axQWaogivx/5ZIjDYgn9MIf6sFxlJ4= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0/go.mod h1:Psyligv8GKL9WI3TraW3BLwkOX4TRxaaa1BBQQyICzA= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 h1:Wq1iTmd0K1SSOIA43Wy2uAU6SB4f9ogyN3ZmvDgTURg= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0/go.mod h1:VCj9H0QxRBWSgbl1pUo8p0NrqnmcxpPo0QjKLFtWkO0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0 h1:m8uPYU2rTj0sKiYgzCvIPajD3meiYsu+nX0hplUnlEU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0/go.mod h1:P0BaP92pXPkTyTmObfLYUoRBfMYU+i0hdS3oM1DpGJo= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0 h1:Qg80zPfNMlub7LO07VMDElOu3M2oxqdZgvvB+X72a4U= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0/go.mod h1:5qsGcjFV3WFI6J2onAlkR7Xd/8VtwJcECaDRZfW4Tb4= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0 h1:PwUMZ6fHMEUV5i9hUly+z3UujDTTdxQtWzL0rWc/lgA= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0/go.mod h1:YEHL6w4vvB9b0/lNwGjz8DyWXTF/7Xw0Hkgc3mGWwa8= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.115.0 h1:a36EJz/mb83f6ieX0v4fNDJ1jXqpeaM6DVQXeFDvdhw= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.115.0/go.mod h1:r5/40YO1eSP5ZreOmRzVOUtDr7YG39ZIUcVjHd+9Izc= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.115.0 h1:WOqt8NpU/JPGYDR4CiWx7g/sHV6Oe9FChzhushwmVdo= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.115.0/go.mod h1:wV/+iU7MyXcyTaY8K5Qx+1Z3yUzrxA40nydPQA476Iw= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.115.0 h1:MerLKMrkM4YoGF6Di0D9yMXO02yCX8mrZAi/+jJVVeI= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.115.0/go.mod h1:R8AkVWe9G5Q0oMOapvm9HNS076E3Min8SVlmhBL3QD0= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.115.0 h1:WEqcnWSy9dNSlGb8pYRBX7zhaz2ReyaeImlenbzNTB4= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.115.0/go.mod h1:6Mk71CakHUA3I6oM9hARDiyQypYyOolvb+4PFYyVEFg= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.115.0 h1:eoapW0JBablApkdv4C1RUuOKfz0U6SwuKMYYSAJH6fE= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.115.0/go.mod h1:hW2AaybTRcwxJySGLC3Fh1vd2VDaQhRBfa7O7w30NS8= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= @@ -333,72 +333,74 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/collector/client v1.20.0 h1:o60wPcj5nLtaRenF+1E5p4QXFS3TDL6vHlw+GOon3rg= -go.opentelemetry.io/collector/client v1.20.0/go.mod h1:6aqkszco9FaLWCxyJEVam6PP7cUa8mPRIXeS5eZGj0U= -go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= -go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= -go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= -go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= -go.opentelemetry.io/collector/config/configauth v0.114.0 h1:R2sJ6xpsLYGH0yU0vCxotzBYDKR/Hrjv0A7y9lwMyiw= -go.opentelemetry.io/collector/config/configauth v0.114.0/go.mod h1:3Z24KcCpG+WYCeQYfs/cNp5cP2BDeOqLCtOEgs/rPqM= -go.opentelemetry.io/collector/config/configcompression v1.20.0 h1:H/mvz7J/5z+O74YsO0t2tk+REnO2tzLM8TgIQ4AZ5w0= -go.opentelemetry.io/collector/config/configcompression v1.20.0/go.mod h1:pnxkFCLUZLKWzYJvfSwZnPrnm0twX14CYj2ADth5xiU= -go.opentelemetry.io/collector/config/confighttp v0.114.0 h1:DjGsBvVm+mGK3IpJBaXianWhwcxEC1fF33cpuC1LY/I= -go.opentelemetry.io/collector/config/confighttp v0.114.0/go.mod h1:nrlNLxOZ+4JQaV9j0TiqQV7LOHhrRivPrT8nQRHED3Q= -go.opentelemetry.io/collector/config/confignet v1.20.0 h1:LrM6AuiY8N/woTP4SWhL2V0562JXwJs9MRNFZJFLtRY= -go.opentelemetry.io/collector/config/confignet v1.20.0/go.mod h1:o3v4joAEjvLwntqexg5ixMqRrU1+Vst+jWuCUaBNgOg= -go.opentelemetry.io/collector/config/configopaque v1.20.0 h1:2I48zKiyyyYqjm7y0B9OLp24ku2ZSX3nCHG0r5FdWOQ= -go.opentelemetry.io/collector/config/configopaque v1.20.0/go.mod h1:6zlLIyOoRpJJ+0bEKrlZOZon3rOp5Jrz9fMdR4twOS4= -go.opentelemetry.io/collector/config/configretry v1.20.0 h1:z679mrMlW2a6tOOYPGdrS/QfALxdzWLQUOpH8Uu+D5Y= -go.opentelemetry.io/collector/config/configretry v1.20.0/go.mod h1:KvQF5cfphq1rQm1dKR4eLDNQYw6iI2fY72NMZVa+0N0= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/config/configtls v1.20.0 h1:hNlJdwfyY5Qe54RLJ41lfLqKTn9ypkR7sk7JNCcSe2U= -go.opentelemetry.io/collector/config/configtls v1.20.0/go.mod h1:sav/txSHguadTYlSSK+BJO2ljJeYEtRoBahgzWAguYg= -go.opentelemetry.io/collector/config/internal v0.114.0 h1:uWSDWTJb8T6xRjKD9/XmEARakXnxgYVYKUeId78hErc= -go.opentelemetry.io/collector/config/internal v0.114.0/go.mod h1:yC7E4h1Uj0SubxcFImh6OvBHFTjMh99+A5PuyIgDWqc= -go.opentelemetry.io/collector/confmap v1.20.0 h1:ARfOwmkKxFOud1njl03yAHQ30+uenlzqCO6LBYamDTE= -go.opentelemetry.io/collector/confmap v1.20.0/go.mod h1:DMpd9Ay/ffls3JoQBQ73vWeRsz1rNuLbwjo6WtjSQus= -go.opentelemetry.io/collector/consumer v0.114.0 h1:1zVaHvfIZowGwZRitRBRo3i+RP2StlU+GClYiofSw0Q= -go.opentelemetry.io/collector/consumer v0.114.0/go.mod h1:d+Mrzt9hsH1ub3zmwSlnQVPLeTYir4Mgo7CrWfnncN4= -go.opentelemetry.io/collector/consumer/consumererror v0.114.0 h1:r2YiELfWerb40FHD23V04gNjIkLUcjEKGxI4Vtm2iO4= -go.opentelemetry.io/collector/consumer/consumererror v0.114.0/go.mod h1:MzIrLQ5jptO2egypolhlAbZsWZr29WC4FhSxQjnxcvg= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 h1:5pXYy3E6UK5Huu3aQbsYL8B6E6MyWx4fvXXDn+oXZaA= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0/go.mod h1:PMq3f54KcJQO4v1tue0QxQScu7REFVADlXxXSAYMiN0= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0 h1:isaTwJK5DOy8Bs7GuLq23ejfgj8gLIo5dOUvkRnLF4g= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0/go.mod h1:GNeLPkfRPdh06n/Rv1UKa/cAtCKjN0a7ADyHjIj4HFE= -go.opentelemetry.io/collector/exporter v0.114.0 h1:5/0BBpXuCJQSQ5SQf31g7j6T4XEKkyx9mZMcA2rS5e8= -go.opentelemetry.io/collector/exporter v0.114.0/go.mod h1:atpd0wWXgh5LAZ0REU/d/Ti/q50HDfnlBIjMjJQlKFg= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 h1:/wmWOSBHcvtz3Pbv7+rWCqPPQuNvYaoidKKaOqZsLKs= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0/go.mod h1:epRYTkyJZTSQZBJflMGHUyUo2EdLPhsaZEyo5Qm848A= -go.opentelemetry.io/collector/exporter/exportertest v0.114.0 h1:vo0idBJT+QACSM1KpjVLm9VeiXVwO7y4UnMpGxN6EyM= -go.opentelemetry.io/collector/exporter/exportertest v0.114.0/go.mod h1:420ssFrhaphneybstbMeSIiqSRoaBARPgO71O17foaM= -go.opentelemetry.io/collector/extension v0.114.0 h1:9Qb92y8hD2WDC5aMDoj4JNQN+/5BQYJWPUPzLXX+iGw= -go.opentelemetry.io/collector/extension v0.114.0/go.mod h1:Yk2/1ptVgfTr12t+22v93nYJpioP14pURv2YercSzU0= -go.opentelemetry.io/collector/extension/auth v0.114.0 h1:1K2qh4yvG8kKR/sTAobI/rw5VxzPZoKcl3FmC195vvo= -go.opentelemetry.io/collector/extension/auth v0.114.0/go.mod h1:IjtsG+jUVJB0utKF8dAK8pLutRun3aEgASshImzsw/U= -go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 h1:hLyX9UvmY0t6iBnk3CqvyNck2U0QjPACekj7pDRx2hA= -go.opentelemetry.io/collector/extension/experimental/storage v0.114.0/go.mod h1:WqYRQVJjJLE1rm+y/ks1wPdPRGWePEvE1VO07xm2J2k= -go.opentelemetry.io/collector/extension/extensiontest v0.114.0 h1:ibXDms1qrswlvlR6b3d2BeyI8sXUXoFV11yOi9Sop8o= -go.opentelemetry.io/collector/extension/extensiontest v0.114.0/go.mod h1:/bOYmqu5yTDfI1bJZUxFqm8ZtmcodpquebiSxiQxtDY= -go.opentelemetry.io/collector/featuregate v1.20.0 h1:Mi7nMy/q52eruI+6jWnMKUOeM55XvwoPnGcdB1++O8c= -go.opentelemetry.io/collector/featuregate v1.20.0/go.mod h1:47xrISO71vJ83LSMm8+yIDsUbKktUp48Ovt7RR6VbRs= -go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= -go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0 h1:pUNfTzsI/JUTiE+DScDM4lsrPoxnVNLI2fbTxR/oapo= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0/go.mod h1:4aNcj6WM1n1uXyFSXlhVs4ibrERgNYsTbzcYI2zGhxA= -go.opentelemetry.io/collector/pdata/testdata v0.114.0 h1:+AzszWSL1i4K6meQ8rU0JDDW55SYCXa6FVqfDixhhTo= -go.opentelemetry.io/collector/pdata/testdata v0.114.0/go.mod h1:bv8XFdCTZxG2MQB5l9dKxSxf5zBrcodwO6JOy1+AxXM= -go.opentelemetry.io/collector/pipeline v0.114.0 h1:v3YOhc5z0tD6QbO5n/pnftpIeroihM2ks9Z2yKPCcwY= -go.opentelemetry.io/collector/pipeline v0.114.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= -go.opentelemetry.io/collector/receiver v0.114.0 h1:90SAnXAjNq7/k52/pFmmb06Cf1YauoPYtbio4aOXafY= -go.opentelemetry.io/collector/receiver v0.114.0/go.mod h1:KUGT0/D953LXbGH/D3lLPU8yrU3HfWnUqpt4W4hSOnE= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 h1:ibhEfGpvNB3yrtpl2jYFabrunMk1hurxvMYpM0b1Ck4= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0/go.mod h1:UZyRfaasw+NLvN10AN8IQnmj5tQ3BOUH1uP2ctpO9f0= -go.opentelemetry.io/collector/receiver/receivertest v0.114.0 h1:D+Kh9t2n4asTnM+TiSxbrKlUemLZandWntj17BJWWb0= -go.opentelemetry.io/collector/receiver/receivertest v0.114.0/go.mod h1:mNSHQ13vFmqD+VAcRzLjStFBejbcWUn2Mp0pAd7Op+U= -go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= -go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= +go.opentelemetry.io/collector/client v1.21.0 h1:3Kes8lOFMYVxoxeAmX+DTEAkuS1iTA3NkSfqzGmygJA= +go.opentelemetry.io/collector/client v1.21.0/go.mod h1:jYJGiL0UA975OOyHmjbQSokNWt1OiviI5KjPOMUMGwc= +go.opentelemetry.io/collector/component v0.115.0 h1:iLte1oCiXzjiCnaOBKdsXacfFiECecpWxW3/LeriMoo= +go.opentelemetry.io/collector/component v0.115.0/go.mod h1:oIUFiH7w1eOimdeYhFI+gAIxYSiLDocKVJ0PTvX7d6s= +go.opentelemetry.io/collector/component/componenttest v0.115.0 h1:9URDJ9VyP6tuij+YHjp/kSSMecnZOd7oGvzu+rw9SJY= +go.opentelemetry.io/collector/component/componenttest v0.115.0/go.mod h1:PzXvNqKLCiSADZGZFKH+IOHMkaQ0GTHuzysfVbTPKYY= +go.opentelemetry.io/collector/config/configauth v0.115.0 h1:xa+ALdyPgva3rZnLBh1H2oS5MsHP6JxSqMtQmcELnys= +go.opentelemetry.io/collector/config/configauth v0.115.0/go.mod h1:C7anpb3Rf4KswMT+dgOzkW9UX0z/65PLORpUw3p0VYc= +go.opentelemetry.io/collector/config/configcompression v1.21.0 h1:0zbPdZAgPFMAarwJEC4gaR6f/JBP686A3TYSgb3oa+E= +go.opentelemetry.io/collector/config/configcompression v1.21.0/go.mod h1:LvYG00tbPTv0NOLoZN0wXq1F5thcxvukO8INq7xyfWU= +go.opentelemetry.io/collector/config/confighttp v0.115.0 h1:BIy394oNXnqySJwrCqgAJu4gWgAV5aQUDD6k1hy6C8o= +go.opentelemetry.io/collector/config/confighttp v0.115.0/go.mod h1:Wr50ut12NmCEAl4bWLJryw2EjUmJTtYRg89560Q51wc= +go.opentelemetry.io/collector/config/confignet v1.21.0 h1:PeQ5YrMnfftysFL/WVaSrjPOWjD6DfeABY50pf9CZxU= +go.opentelemetry.io/collector/config/confignet v1.21.0/go.mod h1:ZppUH1hgUJOubawEsxsQ9MzEYFytqo2GnVSS7d4CVxc= +go.opentelemetry.io/collector/config/configopaque v1.21.0 h1:PcvRGkBk4Px8BQM7tX+kw4i3jBsfAHGoGQbtZg6Ox7U= +go.opentelemetry.io/collector/config/configopaque v1.21.0/go.mod h1:sW0t0iI/VfRL9VYX7Ik6XzVgPcR+Y5kejTLsYcMyDWs= +go.opentelemetry.io/collector/config/configretry v1.21.0 h1:ZHoOvAkEcv5BBeaJn8IQ6rQ4GMPZWW4S+W7R4QTEbZU= +go.opentelemetry.io/collector/config/configretry v1.21.0/go.mod h1:cleBc9I0DIWpTiiHfu9v83FUaCTqcPXmebpLxjEIqro= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0 h1:U07FinCDop+r2RjWQ3aP9ZWONC7r7kQIp1GkXQi6nsI= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0/go.mod h1:SlBEwQg0qly75rXZ6W1Ig8jN25KBVBkFIIAUI1GiAAE= +go.opentelemetry.io/collector/config/configtls v1.21.0 h1:ZfrlAYgBD8lzp04W0GxwiDmUbrvKsvDYJi+wkyiXlpA= +go.opentelemetry.io/collector/config/configtls v1.21.0/go.mod h1:5EsNefPfVCMOTlOrr3wyj7LrsOgY7V8iqRl8oFZEqtw= +go.opentelemetry.io/collector/config/internal v0.115.0 h1:eVk57iufZpUXyPJFKTb1Ebx5tmcCyroIlt427r5pxS8= +go.opentelemetry.io/collector/config/internal v0.115.0/go.mod h1:OVkadRWlKAoWjHslqjWtBLAne8ceQm8WYT71ZcBWLFc= +go.opentelemetry.io/collector/confmap v1.21.0 h1:1tIcx2/Suwg8VhuPmQw87ba0ludPmumpFCFRZZa6RXA= +go.opentelemetry.io/collector/confmap v1.21.0/go.mod h1:Rrhs+MWoaP6AswZp+ReQ2VO9dfOfcUjdjiSHBsG+nec= +go.opentelemetry.io/collector/consumer v1.21.0 h1:THKZ2Vbi6GkamjTBI2hFq5Dc4kINZTWGwQNa8d/Ty9g= +go.opentelemetry.io/collector/consumer v1.21.0/go.mod h1:FQcC4ThMtRYY41dv+IPNK8POLLhAFY3r1YR5fuP7iiY= +go.opentelemetry.io/collector/consumer/consumererror v0.115.0 h1:yli//xBCQMPZKXNgNlXemo4dvqhnFrAmCZ11DvQgmcY= +go.opentelemetry.io/collector/consumer/consumererror v0.115.0/go.mod h1:LwVzAvQ6ZVNG7mbOvurbAo+W/rKws0IcjOwriuZXqPE= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0 h1:H3fDuyQW1t2HWHkz96WMBQJKUevypOCjBqnqtaAWyoA= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0/go.mod h1:IzEmZ91Tp7TBxVDq8Cc9xvLsmO7H08njr6Pu9P5d9ns= +go.opentelemetry.io/collector/consumer/consumertest v0.115.0 h1:hru0I2447y0TluCdwlKYFFtgcpyCnlM+LiOK1JZyA70= +go.opentelemetry.io/collector/consumer/consumertest v0.115.0/go.mod h1:ybjALRJWR6aKNOzEMy1T1ruCULVDEjj4omtOJMrH/kU= +go.opentelemetry.io/collector/exporter v0.115.0 h1:JnxfpOnsuqhTPKJXVKJLS1Cv3BiVrVLzpHOjJEQw+xw= +go.opentelemetry.io/collector/exporter v0.115.0/go.mod h1:xof3fHQK8wADhaKLIJcQ7ChZaFLNC+haRdPN0wgl6kY= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0 h1:lSQEleCn/q9eFufcuK61NdFKU70ZlgI9dBjPCO/4CrE= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0/go.mod h1:7l5K2AecimX2kx+nZC1gKG3QkP247CO1+SodmJ4fFkQ= +go.opentelemetry.io/collector/exporter/exportertest v0.115.0 h1:P9SMTUXQOtcaq40bGtnnAe14zRmR4/yUgj/Tb2BEf/k= +go.opentelemetry.io/collector/exporter/exportertest v0.115.0/go.mod h1:1jMZ9gFGXglb8wfNrBZIgd+RvpZhSyFwdfE+Jtf9w4U= +go.opentelemetry.io/collector/extension v0.115.0 h1:/cBb8AUdD0KMWC6V3lvCC16eP9Fg0wd1Upcp5rgvuGI= +go.opentelemetry.io/collector/extension v0.115.0/go.mod h1:HI7Ak6loyi6ZrZPsQJW1OO1wbaAW8OqXLFNQlTZnreQ= +go.opentelemetry.io/collector/extension/auth v0.115.0 h1:TTMokbBsSHZRFH48PvGSJmgSS8F3Rkr9MWGHZn8eJDk= +go.opentelemetry.io/collector/extension/auth v0.115.0/go.mod h1:3w+2mzeb2OYNOO4Bi41TUo4jr32ap2y7AOq64IDpxQo= +go.opentelemetry.io/collector/extension/auth/authtest v0.115.0 h1:OZe7dKbZ01qodSpZU0ZYzI6zpmmzJ3UvfdBSFAbSgDw= +go.opentelemetry.io/collector/extension/auth/authtest v0.115.0/go.mod h1:fk9WCXP0x91Q64Z8HZKWTHh9PWtgoWE1KXe3n2Bff3U= +go.opentelemetry.io/collector/extension/experimental/storage v0.115.0 h1:sZXw0+77092pq24CkUoTRoHQPLQUsDq6HFRNB0g5yR4= +go.opentelemetry.io/collector/extension/experimental/storage v0.115.0/go.mod h1:qjFH7Y3QYYs88By2ZB5GMSUN5k3ul4Brrq2J6lKACA0= +go.opentelemetry.io/collector/extension/extensiontest v0.115.0 h1:GBVFxFEskR8jSdu9uaQh2qpXnN5VNXhXjpJ2UjxtE8I= +go.opentelemetry.io/collector/extension/extensiontest v0.115.0/go.mod h1:eu1ecbz5mT+cHoH2H3GmD/rOO0WsicSJD2RLrYuOmRA= +go.opentelemetry.io/collector/featuregate v1.21.0 h1:+EULHPJDLMipcwAGZVp9Nm8NriRvoBBMxp7MSiIZVMI= +go.opentelemetry.io/collector/featuregate v1.21.0/go.mod h1:3GaXqflNDVwWndNGBJ1+XJFy3Fv/XrFgjMN60N3z7yg= +go.opentelemetry.io/collector/pdata v1.21.0 h1:PG+UbiFMJ35X/WcAR7Rf/PWmWtRdW0aHlOidsR6c5MA= +go.opentelemetry.io/collector/pdata v1.21.0/go.mod h1:GKb1/zocKJMvxKbS+sl0W85lxhYBTFJ6h6I1tphVyDU= +go.opentelemetry.io/collector/pdata/pprofile v0.115.0 h1:NI89hy13vNDw7EOnQf7Jtitks4HJFO0SUWznTssmP94= +go.opentelemetry.io/collector/pdata/pprofile v0.115.0/go.mod h1:jGzdNfO0XTtfLjXCL/uCC1livg1LlfR+ix2WE/z3RpQ= +go.opentelemetry.io/collector/pdata/testdata v0.115.0 h1:Rblz+AKXdo3fG626jS+KSd0OSA4uMXcTQfpwed6P8LI= +go.opentelemetry.io/collector/pdata/testdata v0.115.0/go.mod h1:inNnRt6S2Nn260EfCBEcjesjlKOSsr0jPwkPqpBkt4s= +go.opentelemetry.io/collector/pipeline v0.115.0 h1:bmACBqb0e8U9ag+vGGHUP7kCfAO7HHROdtzIEg8ulus= +go.opentelemetry.io/collector/pipeline v0.115.0/go.mod h1:qE3DmoB05AW0C3lmPvdxZqd/H4po84NPzd5MrqgtL74= +go.opentelemetry.io/collector/receiver v0.115.0 h1:55Q3Jvj6zHCIA1psKqi/3kEMJO4OqUF5tNAEYNdB1U8= +go.opentelemetry.io/collector/receiver v0.115.0/go.mod h1:nBSCh2O/WUcfgpJ+Jpz+B0z0Hn5jHeRvF2WmLij5EIY= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0 h1:R9JLaj2Al93smIPUkbJshAkb/cY0H5JBOxIx+Zu0NG4= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0/go.mod h1:05E5hGujWeeXJmzKZwTdHyZ/+rRyrQlQB5p5Q2XY39M= +go.opentelemetry.io/collector/receiver/receivertest v0.115.0 h1:OiB684SbHQi6/Pd3ZH0cXjYvCpBS9ilQBfTQx0wVXHg= +go.opentelemetry.io/collector/receiver/receivertest v0.115.0/go.mod h1:Y8Z9U/bz9Xpyt8GI8DxZZgryw3mnnIw+AeKVLTD2cP8= +go.opentelemetry.io/collector/semconv v0.115.0 h1:SoqMvg4ZEB3mz2EdAb6XYa+TuMo5Mir5FRBr3nVFUDY= +go.opentelemetry.io/collector/semconv v0.115.0/go.mod h1:N6XE8Q0JKgBN2fAhkUQtqK9LT7rEGR6+Wu/Rtbal1iI= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 h1:UP6IpuHFkUgOQL9FFQFrZ+5LiwhhYRbi7VZSIx6Nj5s= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0/go.mod h1:qxuZLtbq5QDtdeSHsS7bcf6EH6uO6jUAgk764zd3rhM= go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= diff --git a/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.mod b/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.mod index b7b05613e4005..86f54c29c25ad 100644 --- a/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.mod +++ b/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.mod @@ -37,15 +37,15 @@ require ( github.com/DataDog/datadog-agent/comp/core/tagger/tags v0.0.0-00010101000000-000000000000 github.com/DataDog/datadog-agent/comp/core/tagger/types v0.59.0 github.com/stretchr/testify v1.10.0 - go.opentelemetry.io/collector/component v0.114.0 - go.opentelemetry.io/collector/component/componenttest v0.114.0 - go.opentelemetry.io/collector/confmap v1.20.0 - go.opentelemetry.io/collector/consumer v0.114.0 - go.opentelemetry.io/collector/consumer/consumertest v0.114.0 - go.opentelemetry.io/collector/pdata v1.20.0 - go.opentelemetry.io/collector/processor v0.114.0 - go.opentelemetry.io/collector/processor/processortest v0.114.0 - go.opentelemetry.io/collector/semconv v0.114.0 + go.opentelemetry.io/collector/component v0.115.0 + go.opentelemetry.io/collector/component/componenttest v0.115.0 + go.opentelemetry.io/collector/confmap v1.21.0 + go.opentelemetry.io/collector/consumer v1.21.0 + go.opentelemetry.io/collector/consumer/consumertest v0.115.0 + go.opentelemetry.io/collector/pdata v1.21.0 + go.opentelemetry.io/collector/processor v0.115.0 + go.opentelemetry.io/collector/processor/processortest v0.115.0 + go.opentelemetry.io/collector/semconv v0.115.0 go.opentelemetry.io/otel/metric v1.32.0 go.opentelemetry.io/otel/trace v1.32.0 go.uber.org/zap v1.27.0 @@ -68,13 +68,13 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - go.opentelemetry.io/collector/component/componentstatus v0.114.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.114.0 // indirect - go.opentelemetry.io/collector/pdata/testdata v0.114.0 // indirect - go.opentelemetry.io/collector/pipeline v0.114.0 // indirect - go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/component/componentstatus v0.115.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.115.0 // indirect + go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.115.0 // indirect + go.opentelemetry.io/collector/pdata/testdata v0.115.0 // indirect + go.opentelemetry.io/collector/pipeline v0.115.0 // indirect + go.opentelemetry.io/collector/processor/processorprofiles v0.115.0 // indirect go.opentelemetry.io/otel v1.32.0 // indirect go.opentelemetry.io/otel/sdk v1.32.0 // indirect go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect diff --git a/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.sum b/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.sum index 0bae72c3d6c8f..30f9f975f43b2 100644 --- a/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.sum +++ b/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.sum @@ -50,38 +50,38 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= -go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= -go.opentelemetry.io/collector/component/componentstatus v0.114.0 h1:y9my/xink8KB5lK8zFAjgB2+pEh0QYy5TM972fxZY9w= -go.opentelemetry.io/collector/component/componentstatus v0.114.0/go.mod h1:RIoeCYZpPaae7QLE/1RacqzhHuXBmzRAk9H/EwYtIIs= -go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= -go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/confmap v1.20.0 h1:ARfOwmkKxFOud1njl03yAHQ30+uenlzqCO6LBYamDTE= -go.opentelemetry.io/collector/confmap v1.20.0/go.mod h1:DMpd9Ay/ffls3JoQBQ73vWeRsz1rNuLbwjo6WtjSQus= -go.opentelemetry.io/collector/consumer v0.114.0 h1:1zVaHvfIZowGwZRitRBRo3i+RP2StlU+GClYiofSw0Q= -go.opentelemetry.io/collector/consumer v0.114.0/go.mod h1:d+Mrzt9hsH1ub3zmwSlnQVPLeTYir4Mgo7CrWfnncN4= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 h1:5pXYy3E6UK5Huu3aQbsYL8B6E6MyWx4fvXXDn+oXZaA= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0/go.mod h1:PMq3f54KcJQO4v1tue0QxQScu7REFVADlXxXSAYMiN0= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0 h1:isaTwJK5DOy8Bs7GuLq23ejfgj8gLIo5dOUvkRnLF4g= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0/go.mod h1:GNeLPkfRPdh06n/Rv1UKa/cAtCKjN0a7ADyHjIj4HFE= -go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= -go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0 h1:pUNfTzsI/JUTiE+DScDM4lsrPoxnVNLI2fbTxR/oapo= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0/go.mod h1:4aNcj6WM1n1uXyFSXlhVs4ibrERgNYsTbzcYI2zGhxA= -go.opentelemetry.io/collector/pdata/testdata v0.114.0 h1:+AzszWSL1i4K6meQ8rU0JDDW55SYCXa6FVqfDixhhTo= -go.opentelemetry.io/collector/pdata/testdata v0.114.0/go.mod h1:bv8XFdCTZxG2MQB5l9dKxSxf5zBrcodwO6JOy1+AxXM= -go.opentelemetry.io/collector/pipeline v0.114.0 h1:v3YOhc5z0tD6QbO5n/pnftpIeroihM2ks9Z2yKPCcwY= -go.opentelemetry.io/collector/pipeline v0.114.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= -go.opentelemetry.io/collector/processor v0.114.0 h1:6bqQgLL7BtKrNv4YkEOGjZfkcfZv/ciJSQx1epGG9Zk= -go.opentelemetry.io/collector/processor v0.114.0/go.mod h1:DV/wa+nAmSHIDeD9NblPwkY9PbgtDQAZJ+PE5biZwPc= -go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 h1:+P/1nLouEXTnN8DVQl+qWwO4BTkQyNPG9t/FrpUqrSI= -go.opentelemetry.io/collector/processor/processorprofiles v0.114.0/go.mod h1:3fuHeNIpINwx3bqFMprmDJyr6y5tWoWbJH599kltO5Y= -go.opentelemetry.io/collector/processor/processortest v0.114.0 h1:3FTaVXAp0LoVmUJn1ewBFckAby7AHa6/Kcdj0xuW14c= -go.opentelemetry.io/collector/processor/processortest v0.114.0/go.mod h1:OgsdOs1Fv5ZGTTJPF5nNIUJh2YkuV1acWd73yWgnti4= -go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= -go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= +go.opentelemetry.io/collector/component v0.115.0 h1:iLte1oCiXzjiCnaOBKdsXacfFiECecpWxW3/LeriMoo= +go.opentelemetry.io/collector/component v0.115.0/go.mod h1:oIUFiH7w1eOimdeYhFI+gAIxYSiLDocKVJ0PTvX7d6s= +go.opentelemetry.io/collector/component/componentstatus v0.115.0 h1:pbpUIL+uKDfEiSgKK+S5nuSL6MDIIQYsp4b65ZGVb9M= +go.opentelemetry.io/collector/component/componentstatus v0.115.0/go.mod h1:36A+9XSiOz0Cdhq+UwwPRlEr5CYuSkEnVO9om4BH7d0= +go.opentelemetry.io/collector/component/componenttest v0.115.0 h1:9URDJ9VyP6tuij+YHjp/kSSMecnZOd7oGvzu+rw9SJY= +go.opentelemetry.io/collector/component/componenttest v0.115.0/go.mod h1:PzXvNqKLCiSADZGZFKH+IOHMkaQ0GTHuzysfVbTPKYY= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0 h1:U07FinCDop+r2RjWQ3aP9ZWONC7r7kQIp1GkXQi6nsI= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0/go.mod h1:SlBEwQg0qly75rXZ6W1Ig8jN25KBVBkFIIAUI1GiAAE= +go.opentelemetry.io/collector/confmap v1.21.0 h1:1tIcx2/Suwg8VhuPmQw87ba0ludPmumpFCFRZZa6RXA= +go.opentelemetry.io/collector/confmap v1.21.0/go.mod h1:Rrhs+MWoaP6AswZp+ReQ2VO9dfOfcUjdjiSHBsG+nec= +go.opentelemetry.io/collector/consumer v1.21.0 h1:THKZ2Vbi6GkamjTBI2hFq5Dc4kINZTWGwQNa8d/Ty9g= +go.opentelemetry.io/collector/consumer v1.21.0/go.mod h1:FQcC4ThMtRYY41dv+IPNK8POLLhAFY3r1YR5fuP7iiY= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0 h1:H3fDuyQW1t2HWHkz96WMBQJKUevypOCjBqnqtaAWyoA= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0/go.mod h1:IzEmZ91Tp7TBxVDq8Cc9xvLsmO7H08njr6Pu9P5d9ns= +go.opentelemetry.io/collector/consumer/consumertest v0.115.0 h1:hru0I2447y0TluCdwlKYFFtgcpyCnlM+LiOK1JZyA70= +go.opentelemetry.io/collector/consumer/consumertest v0.115.0/go.mod h1:ybjALRJWR6aKNOzEMy1T1ruCULVDEjj4omtOJMrH/kU= +go.opentelemetry.io/collector/pdata v1.21.0 h1:PG+UbiFMJ35X/WcAR7Rf/PWmWtRdW0aHlOidsR6c5MA= +go.opentelemetry.io/collector/pdata v1.21.0/go.mod h1:GKb1/zocKJMvxKbS+sl0W85lxhYBTFJ6h6I1tphVyDU= +go.opentelemetry.io/collector/pdata/pprofile v0.115.0 h1:NI89hy13vNDw7EOnQf7Jtitks4HJFO0SUWznTssmP94= +go.opentelemetry.io/collector/pdata/pprofile v0.115.0/go.mod h1:jGzdNfO0XTtfLjXCL/uCC1livg1LlfR+ix2WE/z3RpQ= +go.opentelemetry.io/collector/pdata/testdata v0.115.0 h1:Rblz+AKXdo3fG626jS+KSd0OSA4uMXcTQfpwed6P8LI= +go.opentelemetry.io/collector/pdata/testdata v0.115.0/go.mod h1:inNnRt6S2Nn260EfCBEcjesjlKOSsr0jPwkPqpBkt4s= +go.opentelemetry.io/collector/pipeline v0.115.0 h1:bmACBqb0e8U9ag+vGGHUP7kCfAO7HHROdtzIEg8ulus= +go.opentelemetry.io/collector/pipeline v0.115.0/go.mod h1:qE3DmoB05AW0C3lmPvdxZqd/H4po84NPzd5MrqgtL74= +go.opentelemetry.io/collector/processor v0.115.0 h1:+fveHGRe24PZPv/F5taahGuZ9HdNW44hgNWEJhIUdyc= +go.opentelemetry.io/collector/processor v0.115.0/go.mod h1:/oLHBlLsm7tFb7zOIrA5C0j14yBtjXKAgxJJ2Bktyk4= +go.opentelemetry.io/collector/processor/processorprofiles v0.115.0 h1:cCZAs+FXaebZPppqAN3m+X3etoSBL6NvyQo8l0hOZoo= +go.opentelemetry.io/collector/processor/processorprofiles v0.115.0/go.mod h1:kMxF0gknlWX4duuAJFi2/HuIRi6C3w95tOenRa0GKOY= +go.opentelemetry.io/collector/processor/processortest v0.115.0 h1:j9HEaYFOeOB6VYl9zGhBnhQbTkqGBa2udUvu5NTh6hc= +go.opentelemetry.io/collector/processor/processortest v0.115.0/go.mod h1:Gws+VEnp/eW3qAqPpqbKsrbnnxxNfyDjqrfUXbZfZic= +go.opentelemetry.io/collector/semconv v0.115.0 h1:SoqMvg4ZEB3mz2EdAb6XYa+TuMo5Mir5FRBr3nVFUDY= +go.opentelemetry.io/collector/semconv v0.115.0/go.mod h1:N6XE8Q0JKgBN2fAhkUQtqK9LT7rEGR6+Wu/Rtbal1iI= go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= diff --git a/comp/otelcol/otlp/components/statsprocessor/go.mod b/comp/otelcol/otlp/components/statsprocessor/go.mod index 5d552885f7b36..192bbaae21eaa 100644 --- a/comp/otelcol/otlp/components/statsprocessor/go.mod +++ b/comp/otelcol/otlp/components/statsprocessor/go.mod @@ -25,12 +25,12 @@ require ( github.com/DataDog/datadog-go/v5 v5.5.0 github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 github.com/stretchr/testify v1.10.0 - go.opentelemetry.io/collector/component/componenttest v0.114.0 - go.opentelemetry.io/collector/pdata v1.20.0 + go.opentelemetry.io/collector/component/componenttest v0.115.0 + go.opentelemetry.io/collector/pdata v1.21.0 go.opentelemetry.io/otel/sdk/metric v1.32.0 ) -require go.opentelemetry.io/collector/component v0.114.0 // indirect +require go.opentelemetry.io/collector/component v0.115.0 // indirect require ( github.com/DataDog/datadog-agent/comp/trace/compression/def v0.56.0-rc.3 // indirect @@ -78,8 +78,8 @@ require ( github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect - go.opentelemetry.io/collector/semconv v0.114.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.115.0 // indirect + go.opentelemetry.io/collector/semconv v0.115.0 // indirect go.opentelemetry.io/otel v1.32.0 // indirect go.opentelemetry.io/otel/metric v1.32.0 // indirect go.opentelemetry.io/otel/sdk v1.32.0 // indirect diff --git a/comp/otelcol/otlp/components/statsprocessor/go.sum b/comp/otelcol/otlp/components/statsprocessor/go.sum index 3c983553c9350..259d4a5ef2d1b 100644 --- a/comp/otelcol/otlp/components/statsprocessor/go.sum +++ b/comp/otelcol/otlp/components/statsprocessor/go.sum @@ -78,10 +78,10 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 h1:mtSN/07RGQPi1/zHVSZg4G0qRtOoJpPew5jsQWv9uS0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0/go.mod h1:C9Zgh/N3j4NR2D+1FGAA1YizhFW9OS51DwLUFJTdXN4= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 h1:I4ZYVRYW3Cjb65sPENZ9kHam/JUMXNEp2n/knJ0C0Vc= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0/go.mod h1:4BhyIaOn2LS48WS+ZNix4TpP0+goq9gDEtGzth5Cr3M= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.115.0 h1:R9MRrO+dSkAHBQLZjuwjv2RHXHQqF2Wtm1Ki0VKD5cs= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.115.0/go.mod h1:rKXLXmwdUVcUHwTilroKSejbg3KSwLeYzNPSpkIEnv4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.115.0 h1:vwZQ7k8oqlK0bdZYTsjP/59zjQQfjSD4fNsWIWsTu2w= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.115.0/go.mod h1:5ObSa9amrbzbYTdAK1Qhv3D/YqCxxnQhP0sk2eWB7Oo= github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk= github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/outcaste-io/ristretto v0.2.3 h1:AK4zt/fJ76kjlYObOeNwh4T3asEuaCmp26pOvUOL9w0= @@ -134,36 +134,36 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= -go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= -go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= -go.opentelemetry.io/collector/component/componentstatus v0.114.0 h1:y9my/xink8KB5lK8zFAjgB2+pEh0QYy5TM972fxZY9w= -go.opentelemetry.io/collector/component/componentstatus v0.114.0/go.mod h1:RIoeCYZpPaae7QLE/1RacqzhHuXBmzRAk9H/EwYtIIs= -go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= -go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/consumer v0.114.0 h1:1zVaHvfIZowGwZRitRBRo3i+RP2StlU+GClYiofSw0Q= -go.opentelemetry.io/collector/consumer v0.114.0/go.mod h1:d+Mrzt9hsH1ub3zmwSlnQVPLeTYir4Mgo7CrWfnncN4= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 h1:5pXYy3E6UK5Huu3aQbsYL8B6E6MyWx4fvXXDn+oXZaA= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0/go.mod h1:PMq3f54KcJQO4v1tue0QxQScu7REFVADlXxXSAYMiN0= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0 h1:isaTwJK5DOy8Bs7GuLq23ejfgj8gLIo5dOUvkRnLF4g= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0/go.mod h1:GNeLPkfRPdh06n/Rv1UKa/cAtCKjN0a7ADyHjIj4HFE= -go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= -go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0 h1:pUNfTzsI/JUTiE+DScDM4lsrPoxnVNLI2fbTxR/oapo= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0/go.mod h1:4aNcj6WM1n1uXyFSXlhVs4ibrERgNYsTbzcYI2zGhxA= -go.opentelemetry.io/collector/pdata/testdata v0.114.0 h1:+AzszWSL1i4K6meQ8rU0JDDW55SYCXa6FVqfDixhhTo= -go.opentelemetry.io/collector/pdata/testdata v0.114.0/go.mod h1:bv8XFdCTZxG2MQB5l9dKxSxf5zBrcodwO6JOy1+AxXM= -go.opentelemetry.io/collector/pipeline v0.114.0 h1:v3YOhc5z0tD6QbO5n/pnftpIeroihM2ks9Z2yKPCcwY= -go.opentelemetry.io/collector/pipeline v0.114.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= -go.opentelemetry.io/collector/processor v0.114.0 h1:6bqQgLL7BtKrNv4YkEOGjZfkcfZv/ciJSQx1epGG9Zk= -go.opentelemetry.io/collector/processor v0.114.0/go.mod h1:DV/wa+nAmSHIDeD9NblPwkY9PbgtDQAZJ+PE5biZwPc= -go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 h1:+P/1nLouEXTnN8DVQl+qWwO4BTkQyNPG9t/FrpUqrSI= -go.opentelemetry.io/collector/processor/processorprofiles v0.114.0/go.mod h1:3fuHeNIpINwx3bqFMprmDJyr6y5tWoWbJH599kltO5Y= -go.opentelemetry.io/collector/processor/processortest v0.114.0 h1:3FTaVXAp0LoVmUJn1ewBFckAby7AHa6/Kcdj0xuW14c= -go.opentelemetry.io/collector/processor/processortest v0.114.0/go.mod h1:OgsdOs1Fv5ZGTTJPF5nNIUJh2YkuV1acWd73yWgnti4= -go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= -go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= +go.opentelemetry.io/collector/component v0.115.0 h1:iLte1oCiXzjiCnaOBKdsXacfFiECecpWxW3/LeriMoo= +go.opentelemetry.io/collector/component v0.115.0/go.mod h1:oIUFiH7w1eOimdeYhFI+gAIxYSiLDocKVJ0PTvX7d6s= +go.opentelemetry.io/collector/component/componentstatus v0.115.0 h1:pbpUIL+uKDfEiSgKK+S5nuSL6MDIIQYsp4b65ZGVb9M= +go.opentelemetry.io/collector/component/componentstatus v0.115.0/go.mod h1:36A+9XSiOz0Cdhq+UwwPRlEr5CYuSkEnVO9om4BH7d0= +go.opentelemetry.io/collector/component/componenttest v0.115.0 h1:9URDJ9VyP6tuij+YHjp/kSSMecnZOd7oGvzu+rw9SJY= +go.opentelemetry.io/collector/component/componenttest v0.115.0/go.mod h1:PzXvNqKLCiSADZGZFKH+IOHMkaQ0GTHuzysfVbTPKYY= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0 h1:U07FinCDop+r2RjWQ3aP9ZWONC7r7kQIp1GkXQi6nsI= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0/go.mod h1:SlBEwQg0qly75rXZ6W1Ig8jN25KBVBkFIIAUI1GiAAE= +go.opentelemetry.io/collector/consumer v1.21.0 h1:THKZ2Vbi6GkamjTBI2hFq5Dc4kINZTWGwQNa8d/Ty9g= +go.opentelemetry.io/collector/consumer v1.21.0/go.mod h1:FQcC4ThMtRYY41dv+IPNK8POLLhAFY3r1YR5fuP7iiY= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0 h1:H3fDuyQW1t2HWHkz96WMBQJKUevypOCjBqnqtaAWyoA= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0/go.mod h1:IzEmZ91Tp7TBxVDq8Cc9xvLsmO7H08njr6Pu9P5d9ns= +go.opentelemetry.io/collector/consumer/consumertest v0.115.0 h1:hru0I2447y0TluCdwlKYFFtgcpyCnlM+LiOK1JZyA70= +go.opentelemetry.io/collector/consumer/consumertest v0.115.0/go.mod h1:ybjALRJWR6aKNOzEMy1T1ruCULVDEjj4omtOJMrH/kU= +go.opentelemetry.io/collector/pdata v1.21.0 h1:PG+UbiFMJ35X/WcAR7Rf/PWmWtRdW0aHlOidsR6c5MA= +go.opentelemetry.io/collector/pdata v1.21.0/go.mod h1:GKb1/zocKJMvxKbS+sl0W85lxhYBTFJ6h6I1tphVyDU= +go.opentelemetry.io/collector/pdata/pprofile v0.115.0 h1:NI89hy13vNDw7EOnQf7Jtitks4HJFO0SUWznTssmP94= +go.opentelemetry.io/collector/pdata/pprofile v0.115.0/go.mod h1:jGzdNfO0XTtfLjXCL/uCC1livg1LlfR+ix2WE/z3RpQ= +go.opentelemetry.io/collector/pdata/testdata v0.115.0 h1:Rblz+AKXdo3fG626jS+KSd0OSA4uMXcTQfpwed6P8LI= +go.opentelemetry.io/collector/pdata/testdata v0.115.0/go.mod h1:inNnRt6S2Nn260EfCBEcjesjlKOSsr0jPwkPqpBkt4s= +go.opentelemetry.io/collector/pipeline v0.115.0 h1:bmACBqb0e8U9ag+vGGHUP7kCfAO7HHROdtzIEg8ulus= +go.opentelemetry.io/collector/pipeline v0.115.0/go.mod h1:qE3DmoB05AW0C3lmPvdxZqd/H4po84NPzd5MrqgtL74= +go.opentelemetry.io/collector/processor v0.115.0 h1:+fveHGRe24PZPv/F5taahGuZ9HdNW44hgNWEJhIUdyc= +go.opentelemetry.io/collector/processor v0.115.0/go.mod h1:/oLHBlLsm7tFb7zOIrA5C0j14yBtjXKAgxJJ2Bktyk4= +go.opentelemetry.io/collector/processor/processorprofiles v0.115.0 h1:cCZAs+FXaebZPppqAN3m+X3etoSBL6NvyQo8l0hOZoo= +go.opentelemetry.io/collector/processor/processorprofiles v0.115.0/go.mod h1:kMxF0gknlWX4duuAJFi2/HuIRi6C3w95tOenRa0GKOY= +go.opentelemetry.io/collector/processor/processortest v0.115.0 h1:j9HEaYFOeOB6VYl9zGhBnhQbTkqGBa2udUvu5NTh6hc= +go.opentelemetry.io/collector/processor/processortest v0.115.0/go.mod h1:Gws+VEnp/eW3qAqPpqbKsrbnnxxNfyDjqrfUXbZfZic= +go.opentelemetry.io/collector/semconv v0.115.0 h1:SoqMvg4ZEB3mz2EdAb6XYa+TuMo5Mir5FRBr3nVFUDY= +go.opentelemetry.io/collector/semconv v0.115.0/go.mod h1:N6XE8Q0JKgBN2fAhkUQtqK9LT7rEGR6+Wu/Rtbal1iI= go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= diff --git a/comp/otelcol/otlp/testutil/go.mod b/comp/otelcol/otlp/testutil/go.mod index 08136f64f178e..e606714cf39f7 100644 --- a/comp/otelcol/otlp/testutil/go.mod +++ b/comp/otelcol/otlp/testutil/go.mod @@ -41,7 +41,7 @@ require ( github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 github.com/DataDog/sketches-go v1.4.6 github.com/stretchr/testify v1.10.0 - go.opentelemetry.io/collector/pdata v1.20.0 + go.opentelemetry.io/collector/pdata v1.21.0 google.golang.org/protobuf v1.35.2 ) diff --git a/comp/otelcol/otlp/testutil/go.sum b/comp/otelcol/otlp/testutil/go.sum index b16358f7fcc0e..760f51bf0cd82 100644 --- a/comp/otelcol/otlp/testutil/go.sum +++ b/comp/otelcol/otlp/testutil/go.sum @@ -244,8 +244,8 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= -go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= +go.opentelemetry.io/collector/pdata v1.21.0 h1:PG+UbiFMJ35X/WcAR7Rf/PWmWtRdW0aHlOidsR6c5MA= +go.opentelemetry.io/collector/pdata v1.21.0/go.mod h1:GKb1/zocKJMvxKbS+sl0W85lxhYBTFJ6h6I1tphVyDU= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/comp/trace/agent/def/go.mod b/comp/trace/agent/def/go.mod index 3ab74572b71b2..20be806e2e410 100644 --- a/comp/trace/agent/def/go.mod +++ b/comp/trace/agent/def/go.mod @@ -7,11 +7,11 @@ replace github.com/DataDog/datadog-agent/pkg/proto => ../../../../pkg/proto require ( github.com/DataDog/datadog-agent/pkg/proto v0.56.0-rc.3 github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 - go.opentelemetry.io/collector/pdata v1.20.0 + go.opentelemetry.io/collector/pdata v1.21.0 ) require ( - go.opentelemetry.io/collector/component/componenttest v0.114.0 // indirect + go.opentelemetry.io/collector/component/componenttest v0.115.0 // indirect go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect ) @@ -22,9 +22,9 @@ require ( github.com/modern-go/reflect2 v1.0.2 // indirect github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect github.com/tinylib/msgp v1.2.4 // indirect - go.opentelemetry.io/collector/component v0.114.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect - go.opentelemetry.io/collector/semconv v0.114.0 // indirect + go.opentelemetry.io/collector/component v0.115.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.115.0 // indirect + go.opentelemetry.io/collector/semconv v0.115.0 // indirect go.opentelemetry.io/otel v1.32.0 // indirect go.opentelemetry.io/otel/metric v1.32.0 // indirect go.opentelemetry.io/otel/trace v1.32.0 // indirect diff --git a/comp/trace/agent/def/go.sum b/comp/trace/agent/def/go.sum index dd3eb5357b3e6..e6671ffe97bf1 100644 --- a/comp/trace/agent/def/go.sum +++ b/comp/trace/agent/def/go.sum @@ -45,16 +45,16 @@ github.com/vmihailenco/tagparser v0.1.2 h1:gnjoVuB/kljJ5wICEEOpx98oXMWPLj22G67Vb github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= -go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= -go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= -go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= -go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= -go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= +go.opentelemetry.io/collector/component v0.115.0 h1:iLte1oCiXzjiCnaOBKdsXacfFiECecpWxW3/LeriMoo= +go.opentelemetry.io/collector/component v0.115.0/go.mod h1:oIUFiH7w1eOimdeYhFI+gAIxYSiLDocKVJ0PTvX7d6s= +go.opentelemetry.io/collector/component/componenttest v0.115.0 h1:9URDJ9VyP6tuij+YHjp/kSSMecnZOd7oGvzu+rw9SJY= +go.opentelemetry.io/collector/component/componenttest v0.115.0/go.mod h1:PzXvNqKLCiSADZGZFKH+IOHMkaQ0GTHuzysfVbTPKYY= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0 h1:U07FinCDop+r2RjWQ3aP9ZWONC7r7kQIp1GkXQi6nsI= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0/go.mod h1:SlBEwQg0qly75rXZ6W1Ig8jN25KBVBkFIIAUI1GiAAE= +go.opentelemetry.io/collector/pdata v1.21.0 h1:PG+UbiFMJ35X/WcAR7Rf/PWmWtRdW0aHlOidsR6c5MA= +go.opentelemetry.io/collector/pdata v1.21.0/go.mod h1:GKb1/zocKJMvxKbS+sl0W85lxhYBTFJ6h6I1tphVyDU= +go.opentelemetry.io/collector/semconv v0.115.0 h1:SoqMvg4ZEB3mz2EdAb6XYa+TuMo5Mir5FRBr3nVFUDY= +go.opentelemetry.io/collector/semconv v0.115.0/go.mod h1:N6XE8Q0JKgBN2fAhkUQtqK9LT7rEGR6+Wu/Rtbal1iI= go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= diff --git a/go.mod b/go.mod index c6af83af3b80c..fd42d1719f1f8 100644 --- a/go.mod +++ b/go.mod @@ -246,7 +246,7 @@ require ( github.com/olekukonko/tablewriter v0.0.5 github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852 github.com/open-policy-agent/opa v0.70.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.115.0 // indirect github.com/opencontainers/go-digest v1.0.0 github.com/opencontainers/image-spec v1.1.0 github.com/opencontainers/runtime-spec v1.2.0 @@ -288,16 +288,16 @@ require ( go.etcd.io/bbolt v1.3.11 go.etcd.io/etcd/client/v2 v2.306.0-alpha.0 go.mongodb.org/mongo-driver v1.15.1 - go.opentelemetry.io/collector v0.114.0 // indirect - go.opentelemetry.io/collector/component v0.114.0 - go.opentelemetry.io/collector/confmap v1.20.0 - go.opentelemetry.io/collector/exporter v0.114.0 - go.opentelemetry.io/collector/exporter/debugexporter v0.114.0 - go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0 - go.opentelemetry.io/collector/pdata v1.20.0 - go.opentelemetry.io/collector/processor/batchprocessor v0.114.0 - go.opentelemetry.io/collector/receiver v0.114.0 - go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0 + go.opentelemetry.io/collector v0.115.0 // indirect + go.opentelemetry.io/collector/component v0.115.0 + go.opentelemetry.io/collector/confmap v1.21.0 + go.opentelemetry.io/collector/exporter v0.115.0 + go.opentelemetry.io/collector/exporter/debugexporter v0.115.0 + go.opentelemetry.io/collector/exporter/otlpexporter v0.115.0 + go.opentelemetry.io/collector/pdata v1.21.0 + go.opentelemetry.io/collector/processor/batchprocessor v0.115.0 + go.opentelemetry.io/collector/receiver v0.115.0 + go.opentelemetry.io/collector/receiver/otlpreceiver v0.115.0 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 // indirect go.uber.org/atomic v1.11.0 go.uber.org/automaxprocs v1.6.0 @@ -323,12 +323,12 @@ require ( gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v3 v3.0.1 gopkg.in/zorkian/go-datadog-api.v2 v2.30.0 - k8s.io/api v0.31.2 + k8s.io/api v0.31.3 k8s.io/apiextensions-apiserver v0.31.2 - k8s.io/apimachinery v0.31.2 + k8s.io/apimachinery v0.31.3 k8s.io/apiserver v0.31.2 // indirect k8s.io/autoscaler/vertical-pod-autoscaler v0.13.0 - k8s.io/client-go v0.31.2 + k8s.io/client-go v0.31.3 k8s.io/cri-api v0.31.2 k8s.io/klog v1.0.1-0.20200310124935-4ad0115ba9e4 // Min version that includes fix for Windows Nano k8s.io/klog/v2 v2.130.1 @@ -552,9 +552,9 @@ require ( go.etcd.io/etcd/client/v3 v3.6.0-alpha.0 // indirect go.etcd.io/etcd/server/v3 v3.6.0-alpha.0.0.20220522111935-c3bc4116dcd1 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/collector/consumer v0.114.0 // indirect - go.opentelemetry.io/collector/featuregate v1.20.0 - go.opentelemetry.io/collector/semconv v0.114.0 // indirect + go.opentelemetry.io/collector/consumer v1.21.0 // indirect + go.opentelemetry.io/collector/featuregate v1.21.0 + go.opentelemetry.io/collector/semconv v0.115.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect go.opentelemetry.io/contrib/propagators/b3 v1.31.0 // indirect go.opentelemetry.io/otel v1.32.0 @@ -611,29 +611,30 @@ require ( github.com/jellydator/ttlcache/v3 v3.3.0 github.com/kouhin/envflag v0.0.0-20150818174321-0e9a86061649 github.com/lorenzosaino/go-sysctl v0.3.1 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 - go.opentelemetry.io/collector/config/configtelemetry v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.115.0 + go.opentelemetry.io/collector/config/configtelemetry v0.115.0 ) -require go.opentelemetry.io/collector/component/componenttest v0.114.0 +require go.opentelemetry.io/collector/component/componenttest v0.115.0 require ( - go.opentelemetry.io/collector/extension/extensiontest v0.114.0 // indirect - go.opentelemetry.io/collector/processor/processorhelper/processorhelperprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/extension/extensiontest v0.115.0 // indirect + go.opentelemetry.io/collector/processor/processorhelper/processorhelperprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/scraper v0.115.0 // indirect ) require ( - go.opentelemetry.io/collector/connector/connectortest v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/exporter/exportertest v0.114.0 // indirect - go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0 // indirect - go.opentelemetry.io/collector/internal/memorylimiter v0.114.0 // indirect - go.opentelemetry.io/collector/internal/sharedcomponent v0.114.0 // indirect - go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/processor/processortest v0.114.0 // indirect - go.opentelemetry.io/collector/receiver/receivertest v0.114.0 // indirect + go.opentelemetry.io/collector/connector/connectortest v0.115.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror v0.115.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/exporter/exportertest v0.115.0 // indirect + go.opentelemetry.io/collector/internal/fanoutconsumer v0.115.0 // indirect + go.opentelemetry.io/collector/internal/memorylimiter v0.115.0 // indirect + go.opentelemetry.io/collector/internal/sharedcomponent v0.115.0 // indirect + go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/processor/processortest v0.115.0 // indirect + go.opentelemetry.io/collector/receiver/receivertest v0.115.0 // indirect go.opentelemetry.io/contrib/bridges/otelzap v0.6.0 // indirect ) @@ -752,7 +753,7 @@ require ( github.com/judwhite/go-svc v1.2.1 github.com/kr/pretty v0.3.1 // todo: update datadog connector with breaking changes from https://github.com/DataDog/datadog-agent/pull/26347. - github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.115.0 github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 github.com/prometheus-community/pro-bing v0.4.1 github.com/rickar/props v1.0.0 @@ -760,15 +761,15 @@ require ( github.com/swaggest/jsonschema-go v0.3.70 github.com/valyala/fastjson v1.6.4 github.com/vibrantbyte/go-antpath v1.1.1 - go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0 - go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0 - go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0 - go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0 - go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0 - go.opentelemetry.io/collector/extension v0.114.0 - go.opentelemetry.io/collector/otelcol v0.114.0 - go.opentelemetry.io/collector/processor v0.114.0 - go.opentelemetry.io/collector/service v0.114.0 + go.opentelemetry.io/collector/confmap/provider/envprovider v1.21.0 + go.opentelemetry.io/collector/confmap/provider/fileprovider v1.21.0 + go.opentelemetry.io/collector/confmap/provider/httpprovider v1.21.0 + go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.21.0 + go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.21.0 + go.opentelemetry.io/collector/extension v0.115.0 + go.opentelemetry.io/collector/otelcol v0.115.0 + go.opentelemetry.io/collector/processor v0.115.0 + go.opentelemetry.io/collector/service v0.115.0 go4.org/intern v0.0.0-20230525184215-6c62f75575cb go4.org/mem v0.0.0-20220726221520-4f986261bf13 k8s.io/cli-runtime v0.31.2 @@ -906,53 +907,53 @@ require ( github.com/moby/sys/userns v0.1.0 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect github.com/ncruces/go-strftime v0.1.9 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.114.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.115.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.115.0 // indirect github.com/openshift/client-go v0.0.0-20210521082421-73d9475a9142 // indirect github.com/openvex/go-vex v0.2.5 // indirect github.com/openzipkin/zipkin-go v0.4.3 // indirect @@ -971,9 +972,9 @@ require ( github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect github.com/scaleway/scaleway-sdk-go v1.0.0-beta.29 // indirect - github.com/shirou/gopsutil/v4 v4.24.10 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect - github.com/signalfx/sapm-proto v0.16.0 // indirect + github.com/signalfx/sapm-proto v0.17.0 // indirect github.com/sigstore/rekor v1.2.2 // indirect github.com/skeema/knownhosts v1.2.2 // indirect github.com/smartystreets/assertions v1.1.0 // indirect @@ -994,36 +995,36 @@ require ( github.com/wk8/go-ordered-map/v2 v2.1.8 // indirect github.com/x448/float16 v0.8.4 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect - go.opentelemetry.io/collector/client v1.20.0 // indirect - go.opentelemetry.io/collector/component/componentstatus v0.114.0 // indirect - go.opentelemetry.io/collector/config/configauth v0.114.0 // indirect - go.opentelemetry.io/collector/config/configcompression v1.20.0 // indirect - go.opentelemetry.io/collector/config/configgrpc v0.114.0 // indirect - go.opentelemetry.io/collector/config/confighttp v0.114.0 // indirect - go.opentelemetry.io/collector/config/confignet v1.20.0 // indirect - go.opentelemetry.io/collector/config/configopaque v1.20.0 // indirect - go.opentelemetry.io/collector/config/configretry v1.20.0 // indirect - go.opentelemetry.io/collector/config/configtls v1.20.0 // indirect - go.opentelemetry.io/collector/config/internal v0.114.0 // indirect - go.opentelemetry.io/collector/connector v0.114.0 // indirect - go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumertest v0.114.0 // indirect - go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/exporter/nopexporter v0.114.0 // indirect - go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0 // indirect - go.opentelemetry.io/collector/extension/auth v0.114.0 // indirect - go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 // indirect - go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0 // indirect - go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 // indirect - go.opentelemetry.io/collector/filter v0.114.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.114.0 // indirect - go.opentelemetry.io/collector/pdata/testdata v0.114.0 // indirect - go.opentelemetry.io/collector/pipeline v0.114.0 // indirect - go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.114.0 // indirect - go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0 // indirect - go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/client v1.21.0 // indirect + go.opentelemetry.io/collector/component/componentstatus v0.115.0 // indirect + go.opentelemetry.io/collector/config/configauth v0.115.0 // indirect + go.opentelemetry.io/collector/config/configcompression v1.21.0 // indirect + go.opentelemetry.io/collector/config/configgrpc v0.115.0 // indirect + go.opentelemetry.io/collector/config/confighttp v0.115.0 // indirect + go.opentelemetry.io/collector/config/confignet v1.21.0 // indirect + go.opentelemetry.io/collector/config/configopaque v1.21.0 // indirect + go.opentelemetry.io/collector/config/configretry v1.21.0 // indirect + go.opentelemetry.io/collector/config/configtls v1.21.0 // indirect + go.opentelemetry.io/collector/config/internal v0.115.0 // indirect + go.opentelemetry.io/collector/connector v0.115.0 // indirect + go.opentelemetry.io/collector/connector/connectorprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/consumer/consumertest v0.115.0 // indirect + go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/exporter/nopexporter v0.115.0 // indirect + go.opentelemetry.io/collector/exporter/otlphttpexporter v0.115.0 // indirect + go.opentelemetry.io/collector/extension/auth v0.115.0 // indirect + go.opentelemetry.io/collector/extension/experimental/storage v0.115.0 // indirect + go.opentelemetry.io/collector/extension/extensioncapabilities v0.115.0 // indirect + go.opentelemetry.io/collector/extension/zpagesextension v0.115.0 // indirect + go.opentelemetry.io/collector/filter v0.115.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.115.0 // indirect + go.opentelemetry.io/collector/pdata/testdata v0.115.0 // indirect + go.opentelemetry.io/collector/pipeline v0.115.0 // indirect + go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.115.0 // indirect + go.opentelemetry.io/collector/processor/processorprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/receiver/nopreceiver v0.115.0 // indirect + go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0 // indirect go.opentelemetry.io/contrib/config v0.10.0 // indirect go.opentelemetry.io/contrib/zpages v0.56.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.7.0 // indirect diff --git a/go.sum b/go.sum index 25645013fb435..29b837bb26f00 100644 --- a/go.sum +++ b/go.sum @@ -1322,120 +1322,120 @@ github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= github.com/open-policy-agent/opa v0.70.0 h1:B3cqCN2iQAyKxK6+GI+N40uqkin+wzIrM7YA60t9x1U= github.com/open-policy-agent/opa v0.70.0/go.mod h1:Y/nm5NY0BX0BqjBriKUiV81sCl8XOjjvqQG7dXrggtI= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.114.0 h1:cjiWapRbK28GxsZyKCegQOLJCEiwIWEV+INvxrS8HSA= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.114.0/go.mod h1:1Mx3wOciTCjrN9PgVAB4uFBeoqEfyeZEuvpguOasm4s= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0 h1:oA79wMjQSQBKz+X90LD5edNOyaEsewspJRBYgxliEMA= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0/go.mod h1:uk7Z36vhLtevNy5672jGxgzNJA2LND6wmispTuhHCxI= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.114.0 h1:K1/5bZ5EbmxHH4cfvPo/3sYrHUVnM6H86C0dVkf+6TM= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.114.0/go.mod h1:XWnw+AWGoINC/fG4urgmiLVXDaYeqkRVLKUJMPqC3Ls= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.114.0 h1:quLs6NbDeG2x2eLmncaq/P4yvnCPLAelFqXac2eMRSw= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.114.0/go.mod h1:xX2v2kixYWZbFvnT5re3BGg2pyLy78KSIiMed7P2c/c= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.114.0 h1:93/S5dh3snAbC81fuGP7c+nn2OhgP59UTrXqmFtK1Ww= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.114.0/go.mod h1:fyU1pLPKcXDWkUwO075jt1YOjFS/XIZXDwHEV3xy93g= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 h1:G7SHyt5TvFSEsiaxyhZdqkjcRoK2rP5wl4a3Mu31JM4= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0/go.mod h1:TRsDReUh7ALEUutKVoLlGMRc2QECZAyT/5g/cpAr+aw= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.114.0 h1:xZL2FLnVTKqVeZQuTBSMmVLr3FQUN/N8x7VL70Gd07k= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.114.0/go.mod h1:betAqGGfDFb8SLyMYBwH9BQyB9wzxWOWXXC/Ht6/kas= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.114.0 h1:OwLYURmQGKEo9jyhlMsI3JtFLiYChZIrA2M3MxuomTY= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.114.0/go.mod h1:1UZtI+tYvVvvKkPv5NmggvPpxkQEyKaUVg2ygtCjVoQ= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.114.0 h1:aAobCSGIhUYohlzbMQdfDDtQoKlofPROL3+WSSPxz+c= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.114.0/go.mod h1:4m8sQMLNgHexFom7YEFi2khcsUUqKxEdIWgUOYKcmLI= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.114.0 h1:t59jxlv7dIF+f6SaG8V5mx/+Hxfoy4S5qlMpJlkcPo0= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.114.0/go.mod h1:HbUoZclDdXYC7L6lvh44olwDpJBIoTw9fls1bjqyMZY= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.114.0 h1:1TNrKEIfTHAhQDVzQczhReo2+Rw5q9VNCVZgq5SKq/Y= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.114.0/go.mod h1:3AzBMlWooaEO8LvLWqYQoOhqxQ+fAaUlC09sCicB91s= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.114.0 h1:FetZgJSBHH9xw1JKr3Wetek54bpVYkwJrVJJrO271vU= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.114.0/go.mod h1:QWdTwjk67PGv3AyMT+8yEQXU3laW+PMLCFE8PSewWkM= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 h1:6g5EvbygaEBqed0rJotGHcfxgxGV8hSN/4ZoZFfac5M= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0/go.mod h1:gU87iMdDAdHrQQCWTURbrlE/dLYgFecJ/+WBHuNMjQI= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.114.0 h1:mchuc816TxLpmsGvFbtGA3KBVx91vAXi7vJnlvsQdiU= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.114.0/go.mod h1:vgCMUWPVrfjNux9P9G053fRqGFF6BS3xtxNFZZdFTCM= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.114.0 h1:4qELD/ZwgvXE5PshGzJ9Eu+JEQdLIok6V1x8rvqL+yk= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.114.0/go.mod h1:3U1KoAsmQd9H37t8VkesFfB56tThrPsNVG+ddsMJ2zM= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.114.0 h1:0LbaoE7Aof8J4CVQ5kYv1QbuL3usTxLRSMFisDNBX9U= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.114.0/go.mod h1:ByoGXMLeHE/k5ELO3EITitVmvq3bh4Z/GVwWZZxrQ5s= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0 h1:d2wCLlENxH4I2axQWaogivx/5ZIjDYgn9MIf6sFxlJ4= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0/go.mod h1:Psyligv8GKL9WI3TraW3BLwkOX4TRxaaa1BBQQyICzA= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.114.0 h1:AReCF/mzq8+1BORde9m96xAZ+nnv22/B1b+H56hlFIs= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.114.0/go.mod h1:dCQeeAQww9++hvoqQ69QzTN6SGbq3DoVs1+Z1wcKAX8= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.114.0 h1:WrVBqO/ps3KvUyEhtdL/uDDHhKoszLEE1ywDbwskNRg= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.114.0/go.mod h1:JYklzR+ZxQaxjzlfJP3bxX6rQFl/Hbo0vd3yNj/1s1s= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.114.0 h1:dtW9JkkpAm33Y47estFyqEL0CW05DHGmlLQxZUSx78w= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.114.0/go.mod h1:FcClDm9XVV5tzUDzmH2Mhe6TfYiZ/3GSAQITnuCjZgg= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8stest v0.114.0 h1:Lgk9OkyDQQYWtfZ3DEyfQ+08NM4+dBO3fP0OQN10cXA= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8stest v0.114.0/go.mod h1:2/6/eY8Uvg+NfYDsAbND96A4u5q4UjcDlBJolYcj6jE= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.114.0 h1:cGJRIzB5N3oe1c8vD5HqCuy4dbQE9EDJZ9C7vJn+K8U= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.114.0/go.mod h1:p53t8aSCVoTKXVOsNx62rDLrSdEkBFB4H85yEiTWkyI= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.114.0 h1:lt87gwZaUP9Lh0EAgZFTYego0k89NU8K6Qkk82oR/n8= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.114.0/go.mod h1:nxxBsX9Z2Q7HQvybUTx8CzUvYCJewKBM1Eys6SiS0eg= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.114.0 h1:TrGpqqMJxh5fTzdu5HZORKvDiIUBK8b9K/3zUCGbjps= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.114.0/go.mod h1:mw+aVzR/3HtuGZE5xM6zEXHFv411QG8MxI8mQFJSd5c= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.114.0 h1:2uThKlp4NoQbIm7k9ZRGCKVJjMcibffb8NLcsPslq9o= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.114.0/go.mod h1:jSpHMXCxgNLBIfselixqXAUn0pXDfE5LEuNkz0WjK68= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.114.0 h1:Z+WmSDshEjfNy09A7+opWO01L5LwkZC3Ze9AgfLfuAk= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.114.0/go.mod h1:p58MQDR97vRdpY8vh6JuCqjKp0W+kpo5qHmuqhd7L00= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 h1:Wq1iTmd0K1SSOIA43Wy2uAU6SB4f9ogyN3ZmvDgTURg= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0/go.mod h1:VCj9H0QxRBWSgbl1pUo8p0NrqnmcxpPo0QjKLFtWkO0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.114.0 h1:lvpwitQL0CDKHyExi+Wi0MPXGBjpgK5YbXljRYE6YTU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.114.0/go.mod h1:/peNiVTNFe3osINRwW88WB0v5BC1ifjEmDL5oui+ry0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.114.0 h1:SXi6JSSs2cWROnC1U2v3XysG3t58ilGUwoLqxpGuwFU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.114.0/go.mod h1:LSd6sus2Jvpg3M3vM4HgmVh3/dmMtcJmTqELrFOQFRg= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.114.0 h1:G6U2eHR2CGSYb2btot6l05o+mdqsC0ZN7dH8QssXSdk= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.114.0/go.mod h1:kZQvVVzpahX8kFUfEBmzFtDhkKAQW6i8XQCMozDRUlk= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0 h1:m8uPYU2rTj0sKiYgzCvIPajD3meiYsu+nX0hplUnlEU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0/go.mod h1:P0BaP92pXPkTyTmObfLYUoRBfMYU+i0hdS3oM1DpGJo= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0 h1:Qg80zPfNMlub7LO07VMDElOu3M2oxqdZgvvB+X72a4U= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0/go.mod h1:5qsGcjFV3WFI6J2onAlkR7Xd/8VtwJcECaDRZfW4Tb4= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0 h1:PwUMZ6fHMEUV5i9hUly+z3UujDTTdxQtWzL0rWc/lgA= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.114.0/go.mod h1:YEHL6w4vvB9b0/lNwGjz8DyWXTF/7Xw0Hkgc3mGWwa8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 h1:mtSN/07RGQPi1/zHVSZg4G0qRtOoJpPew5jsQWv9uS0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0/go.mod h1:C9Zgh/N3j4NR2D+1FGAA1YizhFW9OS51DwLUFJTdXN4= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.114.0 h1:Xr3Hvm9cxOSQX94tLX1yX63uvuvtglJICrOz9YcxiuI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.114.0/go.mod h1:cgIgmEg66RhVtAv4JkIhHdy70kn2EtVhrH8CtyvhfuI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.114.0 h1:WymtAsFHYen4GTTTXvVqZCoMz6vPADYUf4xIP0Gvm+E= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.114.0/go.mod h1:FcTNci+LpU5x5FkHM0Su3k6/ESDHWQsL30AFISzaIyk= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.114.0 h1:eJxap/u8Q5wYnBcJTrTS1Tq6wq31SOlIr+FMJX5ZoC8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.114.0/go.mod h1:H7uIA2RBaxit2mSwSU8Wc7QXSJX7r8UR66YvdcLmtto= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.114.0 h1:tG98F8g5T7lKYaoxSh9e76agmkauPtXiMbQhuWAeG+I= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.114.0/go.mod h1:eN3xPxPcRZH0wofEQ1Greu1c561qEGeYv5Zt0uedmMM= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.114.0 h1:xDbTY8zDUP3RKG1kg1tmULnBkLEDMwmSpf9j2H0sIcc= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.114.0/go.mod h1:t5uoTcckI8kQeW1sZl8A+1UebVJPe47Qi3WQeNZu6w4= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.114.0 h1:fltPkjMuiVTtIVwoWUzbL0ad2CTCJsWfnCSDJQ9hSxU= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.114.0/go.mod h1:HcG364Is9u2EDqOUtQX0RwnbHtQqSh5+x2FdcYC+F1M= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.114.0 h1:rYwgdR8GE7QEtQlkQxXq5f1JQrd3v36g4yXXljicKoM= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.114.0/go.mod h1:TjEgPVMRxi93SdN0N0qv0hx5L+FF2csgo3YwfzVGJ3g= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.114.0 h1:QBR07Gaw6ePkufQ/AhHgBv4OlwzXlULTdiUnaKIlvLk= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.114.0/go.mod h1:coY0CV/sNj1hltRXKZr2gnrLvr7xUbnW+GhpCQpGR/Y= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.114.0 h1:ap7EK1GxLHau1jKJP8tYcZDb+tEntzx2Kj97XdNb7s4= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.114.0/go.mod h1:1uyslltGfwWhG7F/t41t43dBzrZpEkFzo2hR0OmyZi4= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.114.0 h1:nldvWnYvTjIDi1xmZKgS2b0vz0Ja9UMV2m7ffg/HMDk= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.114.0/go.mod h1:yRuZU0Rd/twuSQFme3WiVB7x9ECgIEwDBs2mPwkqUYY= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 h1:I4ZYVRYW3Cjb65sPENZ9kHam/JUMXNEp2n/knJ0C0Vc= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0/go.mod h1:4BhyIaOn2LS48WS+ZNix4TpP0+goq9gDEtGzth5Cr3M= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.114.0 h1:ttRj/3GIpg+vUTeBI+EBeeWdNuvBT3S/ayoqpvA9B9s= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.114.0/go.mod h1:xoJgFdZUIxlvF8eUHIYiZGmf39zAwditW3sc2SBirAo= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.114.0 h1:je7Aiyn5AHAcpCNpTN5Q4l2SIeqJEvtOjoaZhHszGrs= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.114.0/go.mod h1:cVG4aXgfQFSdSfhAgoawDmmKixogjlvqQtmjmqVJgb4= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.114.0 h1:AsYYMzt+ZGGQaq3S21REATxZsUI4aOuFAOPq09tSPnI= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.114.0/go.mod h1:ifqisebKudvS+YARMbFRyX8/UgdXitSfCD1JCoGOxlY= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.114.0 h1:NrD8Qo2CxrHRAlLuOHm75RtO1xEnul6DDkn6tQMsuSg= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.114.0/go.mod h1:XOlJzIYwicEPMxu6Gv9TL9pS6El+ffjQOAu/wPiL+Jg= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0 h1:lKG7Ghtba2l9P4FFP7I+SbVRqHEpXCGOZs367YTEwGc= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0/go.mod h1:5U/lrnkK5YtIeTFXI8OzDN/d827WtI6pQvu7/59pUVA= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.114.0 h1:Ivu3DRhbERboPxMJeyJpmretbKDJ3hsOAGBQXt2yY3U= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.114.0/go.mod h1:UrMGrA8bA1VeYhdiam7/Xu/U4joG6JftMULEVWLDbe0= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.114.0 h1:Yx0RUwviLdYyozkuqbfpEhSH+ehXlKsW5TtlZbiKm4Q= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.114.0/go.mod h1:Bh9h5hYTgr/zQgXUnvihkLvN1IMmVY/OFa8aHc3gMJU= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.114.0 h1:kSxkZPWBA6je7xXkpMWycjyc2BIMvLGD+OGTIRtJ0xw= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.114.0/go.mod h1:rBegsrFk6WSDU4v9TiOvH3h7xintiOhPq9qd+72SlK8= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.114.0 h1:1NeG/cgiqBMWQJxFvWQmWo9BVj3k4uOvEK0o++BFINY= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.114.0/go.mod h1:skPwfv1xYwB5onG9sj31J4OYUxx6p+wc40aogGy+nVE= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 h1:gdljk66vBTT3lWfSdP4Hl7FaABdH1YPhUCH6jnG2+qY= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0/go.mod h1:T1p6ShTr8farkE4qUB2TyGUIvRSN3s17D0qY7rMqCRM= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.114.0 h1:PwaceYEl50C1OK5MxpH95hnn58CNRzINP2p5YvluZj4= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.114.0/go.mod h1:FrJqdSI+4QuU/w9XtoW9d1Ywp09u2cYaPUOZFqzDtNY= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.114.0 h1:E686MeQcQ+a3Q47A/xAc3Nk6Qdz8wHcBLMJ3Y8bNKi0= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.114.0/go.mod h1:zkQAapuNRobj7GY8kKRal+2EYkAMWmZ1KMysUrQI48A= +github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.115.0 h1:Xkfl44ZRgkz1EoCCYgwPomQkV+BrYOPvv9v1Kd1gZE4= +github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.115.0/go.mod h1:Sr/upBdJeJ7nxDfmCFCl9iHosXiPoQCPHkCJslDyoUA= +github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.115.0 h1:sO4fPw0NRUibgBVvQVTqPBCBRFh0I+ODIr3HAwcWezI= +github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.115.0/go.mod h1:HqzCXJ4rxXzWNYaUtCqJzXyTsCGEKSa/d+tHcyeRDY0= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.115.0 h1:qtct9PsKONY6YOMc+QGBE/uGs8KMBcF6mvYJbyFHFt8= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.115.0/go.mod h1:OR9DKWrSRpfc3+CxwsL2QTOuHD03S9w0Jubi3EhTcy4= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.115.0 h1:u7Ht+E1ghQESffcjyaxWrXGsfSWa1VE9LKC4f2PPx84= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.115.0/go.mod h1:r3iS2mDYu+cnGjgNc8TgvuUUAN6A6/1BvR1e1YJBrqM= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.115.0 h1:RXYLbv2uTJlJTJcEa5H8/fLdX419XUlbn6mjzEgTWxc= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.115.0/go.mod h1:ngeyITKu+koaagA/sFpnuT+x0nFVBNdWq60/h5buSr4= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.115.0 h1:51D/x3xIAnWgVrY0lgdU+b+yb2aWd72uDqu9GhjRcNI= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.115.0/go.mod h1:nLau1YUdjhtLrk4jXLPb2l9riQ1Ap4xytTLl7MBedBg= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.115.0 h1:eJk/gbfWpGKTIGLUN+EWpqM52Zf4LFTfIeMnDji+dqM= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.115.0/go.mod h1:+GPzqBFeqV90U4/bntDRPMxo/i/12lxH7GyPJmqz4ls= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.115.0 h1:790+/iSYt6bMs/OA3AfLlZl9E/Zpb0pm5X628TCncE4= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.115.0/go.mod h1:LtsKKBDZyn02DiqvuOZapGg75P/FqGQNelTI6fO12o0= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.115.0 h1:BtYrSkQSYGJufsmbqqrpzb+BJXH2S4CKL14i1bxOFCU= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.115.0/go.mod h1:4LQ1S3eBu+MyCNaCkBk0hIoAhvJJS851i/tY45FtDf4= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.115.0 h1:zi0LLZp26hAycIKNbmOIMGc0ZnkikrciTHl1tiJuo4Y= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.115.0/go.mod h1:a/UMjV9mrFJ5WIlpaDQ/S5KgCrg0H3kD8nlhfQRxfBI= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.115.0 h1:5PiDmieivpExBd2LchzSIvEls+cjUeJtPLXvvHxLZoI= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.115.0/go.mod h1:FIFNtgEoqcI/evvgSL+5qO/cdRUK+6ixFKKUdKpmMeA= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.115.0 h1:sMHHN4HrakORqrpsTLQQVGiDjKg4QreBJ+UCx/1OI+I= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.115.0/go.mod h1:q1950sX5QqCGDurVOkwatDSc5de4gpGfuPGVtFgNo3I= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.115.0 h1:HVGG31WeB6Fn2+il2/ycWj9tDP0fxOeOqD1rKCjsBSc= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.115.0/go.mod h1:2hYojHs5daPVWECuZsPViKwty0ojuHUEmk8GEuaFqO0= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.115.0 h1:4Ycg73pYVdiF+oq+BmUq7Dkg0WKeKvBSk9AOKvBe4LU= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.115.0/go.mod h1:l2Q+MmYk2ZRDSbhX9GlJYvBXC51AqhDJAj2ne290Xik= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.115.0 h1:SF3gOOEkfntE3zEhY80yO7BVQ5CkaK8ecic2U2AZPHE= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.115.0/go.mod h1:jeBzX5m8O9X0LQxiryV9sJUIrn+QAwOnCBE2wZWIltQ= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.115.0 h1:vRQQFD4YpasQFUAdF030UWtaflSYFXK542bfWMGhOK0= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.115.0/go.mod h1:BZ7DT+0VkKR7P3I9PGEDfVa0GdB0ty41eEcejIUXF9A= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.115.0 h1:a36EJz/mb83f6ieX0v4fNDJ1jXqpeaM6DVQXeFDvdhw= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.115.0/go.mod h1:r5/40YO1eSP5ZreOmRzVOUtDr7YG39ZIUcVjHd+9Izc= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.115.0 h1:xITYM8BkEgs2Wf+PczOrVv0b1Fk4N929/xR9YtxLpkw= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.115.0/go.mod h1:m+5tYnZKfNDtnZKknOfssYSXBEL5Yqse4CJMpaY5kMk= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.115.0 h1:h6zEsBtuZalQu7lKYf6ZCcj8fTocT+zxdmuOou9515Q= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.115.0/go.mod h1:6QU/K0dGCGYorkOvJmhbDFCspy4RPxRkFjf9I64y6I0= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.115.0 h1:f/HrZgTf6TF97v67uEZB3v2UtBT9aQojBvnloD3LOm4= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.115.0/go.mod h1:Hp9uSq3qNJqdxu24u7RWyuPT9x1GgEUSx9US1LLeLi0= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8stest v0.115.0 h1:vXDJE8YHfAoYIAlPRtODchlqb6lWnGhJxPaT2ljvN7I= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8stest v0.115.0/go.mod h1:f3IgMFHIjEUEI/I+5e3KWMPq9h2PSMy9WovmvPdmlb0= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.115.0 h1:4RoU3SlcNe6Dxyxfv8JVsrN8QgjBQ44Pkt9FLKK095I= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.115.0/go.mod h1:jfPlBpZT+hvp52Ldcx+srxaqyYuKxBkxOd3KtxbveCU= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.115.0 h1:8A+iBT5G23zvBPqYx32Qh4800jHFo4X9T1fpQKVQ+4E= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.115.0/go.mod h1:AhdPvwYKu7G8LKRWzHTNQYBq27RinsMm5qSanwSA/rU= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.115.0 h1:MuyDWyVoCty8HyP2CAYoRZXwINiThHovcC1Bj3+H8lk= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.115.0/go.mod h1:asekVnrdzYsMJBaJtIyXOt8p07l1x0xs8X3h00sZyf0= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.115.0 h1:6GIJOSEIWBt9bprARMtTjRlENrwNsJl2UzbtjOBk7A0= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.115.0/go.mod h1:/Fg/itwlAzDjyM0Sjenup9TbdOT+aVNPSqXsF80M8hw= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.115.0 h1:l4NBxl2AELPlyqupLu1IVAjtbGOEovaKEyt0UGMsuq8= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.115.0/go.mod h1:j1qF1hE/Qcy2I655yXbf2ItezXok61OW+9AAxbH2ORw= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.115.0 h1:WOqt8NpU/JPGYDR4CiWx7g/sHV6Oe9FChzhushwmVdo= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.115.0/go.mod h1:wV/+iU7MyXcyTaY8K5Qx+1Z3yUzrxA40nydPQA476Iw= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.115.0 h1:l9AsnVHr3Sp4lAGFlBJ6Ochl7mlPE0d5MNd70o4qKEM= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.115.0/go.mod h1:kARk81QZpcX6L8x4fLo4Nr/z/+jpo5PxXtugBxF2DyE= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.115.0 h1:Z9p78zj9Qblw472mGkPieuX7mqduAp47rzMbFfq5evI= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.115.0/go.mod h1:mtxUxJEIQy27MaGR1yzcn/OK8NoddEgb7fumpEbKYss= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.115.0 h1:qdZ9EqmdM19pWhPoFA7VivBTdzP2HvNwXa3CCMHYoDQ= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.115.0/go.mod h1:mrL1MNrcg0zYAJ+aK9WtOH062dl2wN9DDG7mZk9H8v4= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.115.0 h1:MerLKMrkM4YoGF6Di0D9yMXO02yCX8mrZAi/+jJVVeI= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.115.0/go.mod h1:R8AkVWe9G5Q0oMOapvm9HNS076E3Min8SVlmhBL3QD0= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.115.0 h1:WEqcnWSy9dNSlGb8pYRBX7zhaz2ReyaeImlenbzNTB4= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.115.0/go.mod h1:6Mk71CakHUA3I6oM9hARDiyQypYyOolvb+4PFYyVEFg= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.115.0 h1:eoapW0JBablApkdv4C1RUuOKfz0U6SwuKMYYSAJH6fE= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.115.0/go.mod h1:hW2AaybTRcwxJySGLC3Fh1vd2VDaQhRBfa7O7w30NS8= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.115.0 h1:R9MRrO+dSkAHBQLZjuwjv2RHXHQqF2Wtm1Ki0VKD5cs= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.115.0/go.mod h1:rKXLXmwdUVcUHwTilroKSejbg3KSwLeYzNPSpkIEnv4= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.115.0 h1:7tQ+WjojXhtWDFTJlwCvkjpvdTed5YkVKVQKVAu1alg= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.115.0/go.mod h1:iqgJP7+N03pOIOqYaKjVWYoIKweNdFivsvWJfFw6MTQ= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.115.0 h1:rrIm0dyEdaHmQo6udPK1V3opkzEKa0PrZzSdY5oGqmQ= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.115.0/go.mod h1:AMeisxL/9gs0bzozaymUqI1/EJ9GPvtnLh/BtqtjSF8= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.115.0 h1:KghgAubxdDqP4eUQ+d2GzHXUAwtFxpSDToqFVnax0XA= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.115.0/go.mod h1:cW/BaYE6Uo7ZYHbmT0wVBktHP0SfeLqGHMf0qks7rOE= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.115.0 h1:ioGiKiO0WqT3PxkzanuJsPVA24FItH6nTJeDeSMFpYA= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.115.0/go.mod h1:x1W4J+pzK/Bi9jjYBYESTsPq0nRJJLZoN7cPNd0vYSU= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.115.0 h1:A9zqBtUJZ5J/0VI+B1dxuQhc2iVYpD9c54SgaKtFIN8= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.115.0/go.mod h1:hG7GOrBBux/cg1fAUzvSlzYY02ekxjF9IvH4ls/nGXA= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.115.0 h1:hAsK9I081ShnSDSKPVEHB3TLawyOmbR6bPDiQEkgo2Y= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.115.0/go.mod h1:z8XdvlhXSYVboxS3TPGembE9kfxLAYH2PxPLMvf8wTk= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.115.0 h1:t3BGnPpmeuxW51vISSu51PrAs49ACBCa1Yl1NfZGE5Y= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.115.0/go.mod h1:jQLYyroEYEV1kWJApmGBgVuGUd73v+Q6EUJ6Wy7N508= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.115.0 h1:ficXJmB6l6kfiu+R6CmggtnlQWMHUNzu2csDYA4CFSs= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.115.0/go.mod h1:ykraxSeEVCuA43oqlMWnex78+vNQ+1dBTJUeInkqIpA= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.115.0 h1:LVe/Oh2un9CFKFYtepB9oZ6j38whFPVYl01RAVsdxHg= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.115.0/go.mod h1:mGSGQCX5dT5KUxBkuCO15CNqB+8Cb+qj0edt/oKmA34= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.115.0 h1:6RGhDlZkekmp12EvK6JV9fiIwrdZBOJID6/Ts9tXzL4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.115.0/go.mod h1:qZRQtGr/DAjuBqAuKJMN2cWvc9RI94lB0Oq8UyGAduo= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.115.0 h1:vwZQ7k8oqlK0bdZYTsjP/59zjQQfjSD4fNsWIWsTu2w= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.115.0/go.mod h1:5ObSa9amrbzbYTdAK1Qhv3D/YqCxxnQhP0sk2eWB7Oo= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.115.0 h1:jQ6mIXhWqXhl8MPun9soNynsQ0lpOpOYQyAnQ28F014= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.115.0/go.mod h1:oRxNwm6HN7ckp4aJOAFC8BVBPa0UDhB8vNGTFL3QBJg= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.115.0 h1:KbfjEsr2d/5TGWHvcaBC3lOpYAnquEraLXcis4IamAs= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.115.0/go.mod h1:fmtZPK5RIz+2Lcm9xQZuwiM+M8/juSSeJufSxUT+J9w= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.115.0 h1:Ea5v0Q6VNIMRbXVJjHUsSbdOSkB+80sCOH7Y9yhStnY= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.115.0/go.mod h1:IkiZL9vOU8qNCkrnJP0GOWPoFTED+yhB94wJbcLYcGA= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.115.0 h1:olyiml73slGYORDjZNViW3nKiysC+K+h5yPsSBjUxQ4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.115.0/go.mod h1:N00k1mTxzfS2clqxSP4Dxk7iX8GWbbuCq6LF8/ECk/M= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.115.0 h1:sLRTfXUFiqJ5Qe/NN5MUJxTaFt46E0Y/xjSY+KesCQc= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.115.0/go.mod h1:361IqXD4jnfs6G+Yn7978uv1UNozhZo4yBYy4p6Nqzc= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.115.0 h1:JSFnfWwlVGLul8p9DE6Sk6E0zaqCvbys7CqvJQD4MIs= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.115.0/go.mod h1:cw0qzwXzKKxM7QyDcNSp9OSDLySVXyaSrgdqWPqlDk8= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.115.0 h1:2xlgF/vCUsZx9HDqhDi0XyR1QXBM67YFRyWrEq5Ydos= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.115.0/go.mod h1:vWTdohkLm9S+3Ekz4aq1jW0xt8wD2jrdOOSOJNllppo= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.115.0 h1:XDlXWa6pdAp02kdfZdzZ0cjeZMNHjI7dj2dNgKdzOfo= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.115.0/go.mod h1:Zo6YARAWAMCdlUmyKBq0EcuKmLjxfC2hUNd3jIAFsWE= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.115.0 h1:hYNlyUj3F43cuv1ap19NlEEchQfs91vYeNoQ1+nswLo= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.115.0/go.mod h1:1o6wF5HJdpb2hd2eGMoQhGuTKb4F2+j/IHBJJSPdM2w= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.115.0 h1:GIyMUiud3T8nyCJP9KVhxVKvfcNQRBCde5uTCl6K/i0= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.115.0/go.mod h1:x4hCznyUolxGt5cE/uXWRCckdIDrUYqH5hJddvdKZd4= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.115.0 h1:Di0uc2QvwEVrq1PEReZ34FpPuo1z5QhHmT0bvdTe0DU= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.115.0/go.mod h1:ODvjmz18PDQnX/BruQ8IFOpiz/HdGOpUWMEKq7f3nhA= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.115.0 h1:h/HAHLIZnIyu85l8wOeggOyiI8z8citNAqxQktVKUpk= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.115.0/go.mod h1:iEU0NA/i2sUREqD19JYmjKwrjMUTcddad/h1LGdSMHw= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= @@ -1619,8 +1619,8 @@ github.com/shibumi/go-pathspec v1.3.0 h1:QUyMZhFo0Md5B8zV8x2tesohbb5kfbpTi9rBnKh github.com/shibumi/go-pathspec v1.3.0/go.mod h1:Xutfslp817l2I1cZvgcfeMQJG5QnU2lh5tVaaMCl3jE= github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shirou/gopsutil/v4 v4.24.10 h1:7VOzPtfw/5YDU+jLEoBwXwxJbQetULywoSV4RYY7HkM= -github.com/shirou/gopsutil/v4 v4.24.10/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4 h1:udFKJ0aHUL60LboW/A+DfgoHVedieIzIXE8uylPue0U= github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= @@ -1631,8 +1631,8 @@ github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFR github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/signalfx/sapm-proto v0.16.0 h1:E8W+awZBl3nmpDTdbPK8Uwla9FdSCWpZChR3p+7bzw0= -github.com/signalfx/sapm-proto v0.16.0/go.mod h1:7VTAIoYIgkAK+j6w3l4Aici+EYySGAmXCK0rfD2OZkU= +github.com/signalfx/sapm-proto v0.17.0 h1:KY+9zm/yDOq6uzaguI1RmrJcWxzbkGv0zE6GplA3ytc= +github.com/signalfx/sapm-proto v0.17.0/go.mod h1:c8fGx9DjGP7Hqif7g6Zy6E+BCMXK/dERFU2b3faA0gk= github.com/sigstore/rekor v1.2.2 h1:5JK/zKZvcQpL/jBmHvmFj3YbpDMBQnJQ6ygp8xdF3bY= github.com/sigstore/rekor v1.2.2/go.mod h1:FGnWBGWzeNceJnp0x9eDFd41mI8aQqCjj+Zp0IEs0Qg= github.com/sijms/go-ora/v2 v2.8.19 h1:7LoKZatDYGi18mkpQTR/gQvG9yOdtc7hPAex96Bqisc= @@ -1757,8 +1757,8 @@ github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= github.com/tidwall/tinylru v1.1.0 h1:XY6IUfzVTU9rpwdhKUF6nQdChgCdGjkMfLzbWyiau6I= github.com/tidwall/tinylru v1.1.0/go.mod h1:3+bX+TJ2baOLMWTnlyNWHh4QMnFyARg2TLTQ6OFbzw8= -github.com/tidwall/wal v1.1.7 h1:emc1TRjIVsdKKSnpwGBAcsAGg0767SvUk8+ygx7Bb+4= -github.com/tidwall/wal v1.1.7/go.mod h1:r6lR1j27W9EPalgHiB7zLJDYu3mzW5BQP5KrzBpYY/E= +github.com/tidwall/wal v1.1.8 h1:2qDSGdAdjaY3PEvHRva+9UFqgk+ef7cOiW1Qn5JH1y0= +github.com/tidwall/wal v1.1.8/go.mod h1:r6lR1j27W9EPalgHiB7zLJDYu3mzW5BQP5KrzBpYY/E= github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU= github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= @@ -1906,142 +1906,146 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/collector v0.114.0 h1:XLLLOHns06P9XjVHyp0OdEMdwXvol5MLzugqQMmXYuU= -go.opentelemetry.io/collector v0.114.0/go.mod h1:XbjD4Yw9LunLo3IJu3ZZytNZ0drEVznxw1Z14Ujlw3s= -go.opentelemetry.io/collector/client v1.20.0 h1:o60wPcj5nLtaRenF+1E5p4QXFS3TDL6vHlw+GOon3rg= -go.opentelemetry.io/collector/client v1.20.0/go.mod h1:6aqkszco9FaLWCxyJEVam6PP7cUa8mPRIXeS5eZGj0U= -go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= -go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= -go.opentelemetry.io/collector/component/componentstatus v0.114.0 h1:y9my/xink8KB5lK8zFAjgB2+pEh0QYy5TM972fxZY9w= -go.opentelemetry.io/collector/component/componentstatus v0.114.0/go.mod h1:RIoeCYZpPaae7QLE/1RacqzhHuXBmzRAk9H/EwYtIIs= -go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= -go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= -go.opentelemetry.io/collector/config/configauth v0.114.0 h1:R2sJ6xpsLYGH0yU0vCxotzBYDKR/Hrjv0A7y9lwMyiw= -go.opentelemetry.io/collector/config/configauth v0.114.0/go.mod h1:3Z24KcCpG+WYCeQYfs/cNp5cP2BDeOqLCtOEgs/rPqM= -go.opentelemetry.io/collector/config/configcompression v1.20.0 h1:H/mvz7J/5z+O74YsO0t2tk+REnO2tzLM8TgIQ4AZ5w0= -go.opentelemetry.io/collector/config/configcompression v1.20.0/go.mod h1:pnxkFCLUZLKWzYJvfSwZnPrnm0twX14CYj2ADth5xiU= -go.opentelemetry.io/collector/config/configgrpc v0.114.0 h1:3kGI9CljNtzClF+9sg7NWZ5qUoy4qZvGxv9q3phDn7k= -go.opentelemetry.io/collector/config/configgrpc v0.114.0/go.mod h1:IHSyqSdjPXW34aif/8BhNlXxRcIVV6026jVi0/+ituY= -go.opentelemetry.io/collector/config/confighttp v0.114.0 h1:DjGsBvVm+mGK3IpJBaXianWhwcxEC1fF33cpuC1LY/I= -go.opentelemetry.io/collector/config/confighttp v0.114.0/go.mod h1:nrlNLxOZ+4JQaV9j0TiqQV7LOHhrRivPrT8nQRHED3Q= -go.opentelemetry.io/collector/config/confignet v1.20.0 h1:LrM6AuiY8N/woTP4SWhL2V0562JXwJs9MRNFZJFLtRY= -go.opentelemetry.io/collector/config/confignet v1.20.0/go.mod h1:o3v4joAEjvLwntqexg5ixMqRrU1+Vst+jWuCUaBNgOg= -go.opentelemetry.io/collector/config/configopaque v1.20.0 h1:2I48zKiyyyYqjm7y0B9OLp24ku2ZSX3nCHG0r5FdWOQ= -go.opentelemetry.io/collector/config/configopaque v1.20.0/go.mod h1:6zlLIyOoRpJJ+0bEKrlZOZon3rOp5Jrz9fMdR4twOS4= -go.opentelemetry.io/collector/config/configretry v1.20.0 h1:z679mrMlW2a6tOOYPGdrS/QfALxdzWLQUOpH8Uu+D5Y= -go.opentelemetry.io/collector/config/configretry v1.20.0/go.mod h1:KvQF5cfphq1rQm1dKR4eLDNQYw6iI2fY72NMZVa+0N0= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/config/configtls v1.20.0 h1:hNlJdwfyY5Qe54RLJ41lfLqKTn9ypkR7sk7JNCcSe2U= -go.opentelemetry.io/collector/config/configtls v1.20.0/go.mod h1:sav/txSHguadTYlSSK+BJO2ljJeYEtRoBahgzWAguYg= -go.opentelemetry.io/collector/config/internal v0.114.0 h1:uWSDWTJb8T6xRjKD9/XmEARakXnxgYVYKUeId78hErc= -go.opentelemetry.io/collector/config/internal v0.114.0/go.mod h1:yC7E4h1Uj0SubxcFImh6OvBHFTjMh99+A5PuyIgDWqc= -go.opentelemetry.io/collector/confmap v1.20.0 h1:ARfOwmkKxFOud1njl03yAHQ30+uenlzqCO6LBYamDTE= -go.opentelemetry.io/collector/confmap v1.20.0/go.mod h1:DMpd9Ay/ffls3JoQBQ73vWeRsz1rNuLbwjo6WtjSQus= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0 h1:I3xDecFXJVZBo5zJS7Y5SWBjF22XDWGZJgwotiwA5QM= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0/go.mod h1:CF0l8V8MNv+Wag8UkqObotFnlhMzdTFuk4/6kylKwYU= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0 h1:wWxvQ7wj+1O9yDGM5m1HPEz8FJewAHAUWadAAi0KVbM= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0/go.mod h1:/5HWIPjGYk8IUurs1CZUSjGaSsaQyJsfR8+Zs5rGJ6Y= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0 h1:YS1nB8vDoCS8IlfX5OP3QGS90y/hfflwZ7CoPQcAOlU= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0/go.mod h1:aV4UfkgcJ3eyXvfd3m694omN++1c96Joitab+YL6Xks= -go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0 h1:0BJHAeKFb46FCT0ehOmmGs0v31cGuAh4DIic07J71NU= -go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0/go.mod h1:gBiweuH4EDuPh9mpLCB/wPZzostdA+gKY8hABwbotQk= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0 h1:jSXTojCPI6Xr98m99nF7qbQFnw3INLEOHRcqcHS+lak= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0/go.mod h1:Pu95O2JE3R+0BBTbe4gpAC8ms3w6FbICHJw3WvGWrjs= -go.opentelemetry.io/collector/connector v0.114.0 h1:efGAeTCtg8zp5Hyd7Am8kBUgsSxWEFlFtAu4OX4mcEA= -go.opentelemetry.io/collector/connector v0.114.0/go.mod h1:8DhGgD8RhkF0ooELl4NOPPD/wgHuXHmY7g90RwJ2eNo= -go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0 h1:uVs9gy3UfQBmH0636ouIbGIoWis7zmKN+ny4XOGm36U= -go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0/go.mod h1:X681qFEAsEPMDQ0pMsD/3DqePw58sfLew1QbBKvGnmw= -go.opentelemetry.io/collector/connector/connectortest v0.114.0 h1:Fpy1JHyNOLdVzNcmxUY6Jwxdz6JDcTXL1NCfw8k1AOc= -go.opentelemetry.io/collector/connector/connectortest v0.114.0/go.mod h1:1zaAlODuL9iNyfyjHQeGCpbcaUjf5b68t8LqlwHKBNA= -go.opentelemetry.io/collector/consumer v0.114.0 h1:1zVaHvfIZowGwZRitRBRo3i+RP2StlU+GClYiofSw0Q= -go.opentelemetry.io/collector/consumer v0.114.0/go.mod h1:d+Mrzt9hsH1ub3zmwSlnQVPLeTYir4Mgo7CrWfnncN4= -go.opentelemetry.io/collector/consumer/consumererror v0.114.0 h1:r2YiELfWerb40FHD23V04gNjIkLUcjEKGxI4Vtm2iO4= -go.opentelemetry.io/collector/consumer/consumererror v0.114.0/go.mod h1:MzIrLQ5jptO2egypolhlAbZsWZr29WC4FhSxQjnxcvg= -go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.114.0 h1:0IpwQXyHDXhIaLA6w2VlD6Ca0iuX4wlfCDiF+BKCwEo= -go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.114.0/go.mod h1:9pKeVRcCT92x5/UIULMLAop+J23VYJCWSZcVhmbup5I= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 h1:5pXYy3E6UK5Huu3aQbsYL8B6E6MyWx4fvXXDn+oXZaA= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0/go.mod h1:PMq3f54KcJQO4v1tue0QxQScu7REFVADlXxXSAYMiN0= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0 h1:isaTwJK5DOy8Bs7GuLq23ejfgj8gLIo5dOUvkRnLF4g= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0/go.mod h1:GNeLPkfRPdh06n/Rv1UKa/cAtCKjN0a7ADyHjIj4HFE= -go.opentelemetry.io/collector/exporter v0.114.0 h1:5/0BBpXuCJQSQ5SQf31g7j6T4XEKkyx9mZMcA2rS5e8= -go.opentelemetry.io/collector/exporter v0.114.0/go.mod h1:atpd0wWXgh5LAZ0REU/d/Ti/q50HDfnlBIjMjJQlKFg= -go.opentelemetry.io/collector/exporter/debugexporter v0.114.0 h1:7t1ij8fuV510SRT+eabgbl4973DaAtGmTx0RuGJy8DU= -go.opentelemetry.io/collector/exporter/debugexporter v0.114.0/go.mod h1:rC8PHnf1MniZN4ryU4i5GsyXKRkMEGwEGF2hxHx/JyU= -go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.114.0 h1:W/KsD33oMg/M7Kd5/m2riliWrTg3W9IgQVNeZL3cZjs= -go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.114.0/go.mod h1:Fh47qYBjX+jm+mpWBcqmaaQucZ6KiKm5P0drEt+xNRc= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 h1:/wmWOSBHcvtz3Pbv7+rWCqPPQuNvYaoidKKaOqZsLKs= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0/go.mod h1:epRYTkyJZTSQZBJflMGHUyUo2EdLPhsaZEyo5Qm848A= -go.opentelemetry.io/collector/exporter/exportertest v0.114.0 h1:vo0idBJT+QACSM1KpjVLm9VeiXVwO7y4UnMpGxN6EyM= -go.opentelemetry.io/collector/exporter/exportertest v0.114.0/go.mod h1:420ssFrhaphneybstbMeSIiqSRoaBARPgO71O17foaM= -go.opentelemetry.io/collector/exporter/nopexporter v0.114.0 h1:uMtQQjkAK62tzy2Rs/KCgRofNW7uo0EgU5xn3xmgB2w= -go.opentelemetry.io/collector/exporter/nopexporter v0.114.0/go.mod h1:jV9/E7Twphys1df6m7HgvqgJXpmppxFJb/DYy3XLR94= -go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0 h1:SC/xZNCB/eCVflrhDFX4WtrpvBPsZhmXVuSvgHQBsB8= -go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0/go.mod h1:q1273aUuYewtDUFwizv0AKu5/D+gbQAi8UFLKDv1eMk= -go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0 h1:+nPJraioPpLS2Kj3+YIfErDDFHsLX/5oPMSMAYKoggM= -go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0/go.mod h1:O+75KYmyJwK61VDsW7LHo2qFFXCTf3kEJH3ZvW1bb4Y= -go.opentelemetry.io/collector/extension v0.114.0 h1:9Qb92y8hD2WDC5aMDoj4JNQN+/5BQYJWPUPzLXX+iGw= -go.opentelemetry.io/collector/extension v0.114.0/go.mod h1:Yk2/1ptVgfTr12t+22v93nYJpioP14pURv2YercSzU0= -go.opentelemetry.io/collector/extension/auth v0.114.0 h1:1K2qh4yvG8kKR/sTAobI/rw5VxzPZoKcl3FmC195vvo= -go.opentelemetry.io/collector/extension/auth v0.114.0/go.mod h1:IjtsG+jUVJB0utKF8dAK8pLutRun3aEgASshImzsw/U= -go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 h1:hLyX9UvmY0t6iBnk3CqvyNck2U0QjPACekj7pDRx2hA= -go.opentelemetry.io/collector/extension/experimental/storage v0.114.0/go.mod h1:WqYRQVJjJLE1rm+y/ks1wPdPRGWePEvE1VO07xm2J2k= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0 h1:3OHll7gp5XIu7FVgon+koShPy797nze6EjCDokFUG7w= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0/go.mod h1:f0KdeLmE2jWVBmJ1U4WmfAtz1/tQUErGPfhPLKCQ49U= -go.opentelemetry.io/collector/extension/extensiontest v0.114.0 h1:ibXDms1qrswlvlR6b3d2BeyI8sXUXoFV11yOi9Sop8o= -go.opentelemetry.io/collector/extension/extensiontest v0.114.0/go.mod h1:/bOYmqu5yTDfI1bJZUxFqm8ZtmcodpquebiSxiQxtDY= -go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 h1:JosqAcdWw7IGsURJNR8f17xmaGCQEtKhQt9tM0T/DEg= -go.opentelemetry.io/collector/extension/zpagesextension v0.114.0/go.mod h1:+VO4p2GZvmIMqCVyIfS/U85Xqg+HIOe+mdl/ya+jVTE= -go.opentelemetry.io/collector/featuregate v1.20.0 h1:Mi7nMy/q52eruI+6jWnMKUOeM55XvwoPnGcdB1++O8c= -go.opentelemetry.io/collector/featuregate v1.20.0/go.mod h1:47xrISO71vJ83LSMm8+yIDsUbKktUp48Ovt7RR6VbRs= -go.opentelemetry.io/collector/filter v0.114.0 h1:5I97yblUxc6rXCYRn542aSrsNQLo/dE+87XROW2b5oU= -go.opentelemetry.io/collector/filter v0.114.0/go.mod h1:Nxwc+RD9AH4y/qYtkTP+Ac19CxgW5GAB+sJU4ACLr6g= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0 h1:JM9huYqy5LTzmuxQmbPST3l5Ez5kJNit28c6WFWls34= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0/go.mod h1:V28tDU4Wvf1PfW1Ty/SBL9tpKul2iYGno/HkCWGDrj0= -go.opentelemetry.io/collector/internal/memorylimiter v0.114.0 h1:UpKQ/GtWw7Mh/PjR03NdgR9PG7uT7mnfbQVxpDQVBgk= -go.opentelemetry.io/collector/internal/memorylimiter v0.114.0/go.mod h1:QUZr3bBguTmgLJUFuqVVsOxKr7Y/2JO49k3I1tUH88U= -go.opentelemetry.io/collector/internal/sharedcomponent v0.114.0 h1:DjX9ubjkKDnioQB03FYc40FTyhR25CdobMfjinKkZ1w= -go.opentelemetry.io/collector/internal/sharedcomponent v0.114.0/go.mod h1:lYlFiGIjPjhwTS/Xc+toJ9o3D8A6cCHuK1JX+ZbujVs= -go.opentelemetry.io/collector/otelcol v0.114.0 h1:d/nmYc+adzZ70g4zBMtgujGHVNulF59ExCpuM/3ZKV4= -go.opentelemetry.io/collector/otelcol v0.114.0/go.mod h1:DGmFFao5jHSwD6G1HjUjs0CYcyrTau+u7GjTRUGKN+4= -go.opentelemetry.io/collector/otelcol/otelcoltest v0.114.0 h1:Em5e1EgrPrS90EWDWLJHCvyFIDl5PIq1DuW9zd8F3pY= -go.opentelemetry.io/collector/otelcol/otelcoltest v0.114.0/go.mod h1:YAs78SaOJsf1HNWrNH+GFTdkS58dpQI98cok6gZP4Lg= -go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= -go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0 h1:pUNfTzsI/JUTiE+DScDM4lsrPoxnVNLI2fbTxR/oapo= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0/go.mod h1:4aNcj6WM1n1uXyFSXlhVs4ibrERgNYsTbzcYI2zGhxA= -go.opentelemetry.io/collector/pdata/testdata v0.114.0 h1:+AzszWSL1i4K6meQ8rU0JDDW55SYCXa6FVqfDixhhTo= -go.opentelemetry.io/collector/pdata/testdata v0.114.0/go.mod h1:bv8XFdCTZxG2MQB5l9dKxSxf5zBrcodwO6JOy1+AxXM= -go.opentelemetry.io/collector/pipeline v0.114.0 h1:v3YOhc5z0tD6QbO5n/pnftpIeroihM2ks9Z2yKPCcwY= -go.opentelemetry.io/collector/pipeline v0.114.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= -go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0 h1:LZgxMQ2zXcz8ILBefhxpZBpn/Rx+TJTncIIQy0LgtgY= -go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0/go.mod h1:bmyqQCJWcA53/GtqZJ2ahwmLdFl6UelFH2nR6OJFqpw= -go.opentelemetry.io/collector/processor v0.114.0 h1:6bqQgLL7BtKrNv4YkEOGjZfkcfZv/ciJSQx1epGG9Zk= -go.opentelemetry.io/collector/processor v0.114.0/go.mod h1:DV/wa+nAmSHIDeD9NblPwkY9PbgtDQAZJ+PE5biZwPc= -go.opentelemetry.io/collector/processor/batchprocessor v0.114.0 h1:Xu+pdPGIh6gLqHW5oYJsiim1mbnG85QaaUQy0YPoL+c= -go.opentelemetry.io/collector/processor/batchprocessor v0.114.0/go.mod h1:emnnL5CaliCnWjXNpNixqpvn7uc/kyUTv2939J/reMY= -go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.114.0 h1:gfzShbdzhbA2lsRSx2z9i9QO/FJwAzOSrBW2ObPqf38= -go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.114.0/go.mod h1:leElNJO5dnpOg0o1Gr2Ok59HKADRznbrZ3u2oTfx50Q= -go.opentelemetry.io/collector/processor/processorhelper/processorhelperprofiles v0.114.0 h1:/CQJ0UQRStwBQnM4Z9lTr6D4IqEKH1iuUWVr21fP4To= -go.opentelemetry.io/collector/processor/processorhelper/processorhelperprofiles v0.114.0/go.mod h1:HD2uDr7TIWQ+TsXBLmrHu396EeClj7YNoNzoWJw4jrY= -go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 h1:+P/1nLouEXTnN8DVQl+qWwO4BTkQyNPG9t/FrpUqrSI= -go.opentelemetry.io/collector/processor/processorprofiles v0.114.0/go.mod h1:3fuHeNIpINwx3bqFMprmDJyr6y5tWoWbJH599kltO5Y= -go.opentelemetry.io/collector/processor/processortest v0.114.0 h1:3FTaVXAp0LoVmUJn1ewBFckAby7AHa6/Kcdj0xuW14c= -go.opentelemetry.io/collector/processor/processortest v0.114.0/go.mod h1:OgsdOs1Fv5ZGTTJPF5nNIUJh2YkuV1acWd73yWgnti4= -go.opentelemetry.io/collector/receiver v0.114.0 h1:90SAnXAjNq7/k52/pFmmb06Cf1YauoPYtbio4aOXafY= -go.opentelemetry.io/collector/receiver v0.114.0/go.mod h1:KUGT0/D953LXbGH/D3lLPU8yrU3HfWnUqpt4W4hSOnE= -go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0 h1:CMtfS6fwEwqwTMeC17A3Q2xsSkXfH4gG2SBZDr2txCw= -go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0/go.mod h1:ajp6ok8iSSAcyq58wcOUJVe++1mTQ1isxqlaNUgQNzo= -go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0 h1:8ASaxRWLe8P0pefOiYbCSZ0aXmwE4K06I8FBGc/n+J0= -go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0/go.mod h1:3vjOvYBWGUVzuaovoumMbNHEIK3PqDs5rzEyd/nzsLU= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 h1:ibhEfGpvNB3yrtpl2jYFabrunMk1hurxvMYpM0b1Ck4= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0/go.mod h1:UZyRfaasw+NLvN10AN8IQnmj5tQ3BOUH1uP2ctpO9f0= -go.opentelemetry.io/collector/receiver/receivertest v0.114.0 h1:D+Kh9t2n4asTnM+TiSxbrKlUemLZandWntj17BJWWb0= -go.opentelemetry.io/collector/receiver/receivertest v0.114.0/go.mod h1:mNSHQ13vFmqD+VAcRzLjStFBejbcWUn2Mp0pAd7Op+U= -go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= -go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= -go.opentelemetry.io/collector/service v0.114.0 h1:MYF/4nH1CgtiLx09503xPAAUZefCzG1kaO+oanwX590= -go.opentelemetry.io/collector/service v0.114.0/go.mod h1:xH5/RapJdf5Ohh8iU8J0ZstfFYciP1oJPesiByteZxo= +go.opentelemetry.io/collector v0.115.0 h1:qUZ0bTeNBudMxNQ7FJKS//TxTjeJ7tfU/z22mcFavWU= +go.opentelemetry.io/collector v0.115.0/go.mod h1:66qx0xKnVvdwq60e1DEfb4e+zmM9szhPsv2hxZ/Mpj4= +go.opentelemetry.io/collector/client v1.21.0 h1:3Kes8lOFMYVxoxeAmX+DTEAkuS1iTA3NkSfqzGmygJA= +go.opentelemetry.io/collector/client v1.21.0/go.mod h1:jYJGiL0UA975OOyHmjbQSokNWt1OiviI5KjPOMUMGwc= +go.opentelemetry.io/collector/component v0.115.0 h1:iLte1oCiXzjiCnaOBKdsXacfFiECecpWxW3/LeriMoo= +go.opentelemetry.io/collector/component v0.115.0/go.mod h1:oIUFiH7w1eOimdeYhFI+gAIxYSiLDocKVJ0PTvX7d6s= +go.opentelemetry.io/collector/component/componentstatus v0.115.0 h1:pbpUIL+uKDfEiSgKK+S5nuSL6MDIIQYsp4b65ZGVb9M= +go.opentelemetry.io/collector/component/componentstatus v0.115.0/go.mod h1:36A+9XSiOz0Cdhq+UwwPRlEr5CYuSkEnVO9om4BH7d0= +go.opentelemetry.io/collector/component/componenttest v0.115.0 h1:9URDJ9VyP6tuij+YHjp/kSSMecnZOd7oGvzu+rw9SJY= +go.opentelemetry.io/collector/component/componenttest v0.115.0/go.mod h1:PzXvNqKLCiSADZGZFKH+IOHMkaQ0GTHuzysfVbTPKYY= +go.opentelemetry.io/collector/config/configauth v0.115.0 h1:xa+ALdyPgva3rZnLBh1H2oS5MsHP6JxSqMtQmcELnys= +go.opentelemetry.io/collector/config/configauth v0.115.0/go.mod h1:C7anpb3Rf4KswMT+dgOzkW9UX0z/65PLORpUw3p0VYc= +go.opentelemetry.io/collector/config/configcompression v1.21.0 h1:0zbPdZAgPFMAarwJEC4gaR6f/JBP686A3TYSgb3oa+E= +go.opentelemetry.io/collector/config/configcompression v1.21.0/go.mod h1:LvYG00tbPTv0NOLoZN0wXq1F5thcxvukO8INq7xyfWU= +go.opentelemetry.io/collector/config/configgrpc v0.115.0 h1:gZzXSFe6hB3RUcEeAYqk1yT+TBa+X9tp6/1x29Yg2yk= +go.opentelemetry.io/collector/config/configgrpc v0.115.0/go.mod h1:107lRZ5LdQPMdGJGd4m1GhyKxyH0az2cUOqrJgTEN8E= +go.opentelemetry.io/collector/config/confighttp v0.115.0 h1:BIy394oNXnqySJwrCqgAJu4gWgAV5aQUDD6k1hy6C8o= +go.opentelemetry.io/collector/config/confighttp v0.115.0/go.mod h1:Wr50ut12NmCEAl4bWLJryw2EjUmJTtYRg89560Q51wc= +go.opentelemetry.io/collector/config/confignet v1.21.0 h1:PeQ5YrMnfftysFL/WVaSrjPOWjD6DfeABY50pf9CZxU= +go.opentelemetry.io/collector/config/confignet v1.21.0/go.mod h1:ZppUH1hgUJOubawEsxsQ9MzEYFytqo2GnVSS7d4CVxc= +go.opentelemetry.io/collector/config/configopaque v1.21.0 h1:PcvRGkBk4Px8BQM7tX+kw4i3jBsfAHGoGQbtZg6Ox7U= +go.opentelemetry.io/collector/config/configopaque v1.21.0/go.mod h1:sW0t0iI/VfRL9VYX7Ik6XzVgPcR+Y5kejTLsYcMyDWs= +go.opentelemetry.io/collector/config/configretry v1.21.0 h1:ZHoOvAkEcv5BBeaJn8IQ6rQ4GMPZWW4S+W7R4QTEbZU= +go.opentelemetry.io/collector/config/configretry v1.21.0/go.mod h1:cleBc9I0DIWpTiiHfu9v83FUaCTqcPXmebpLxjEIqro= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0 h1:U07FinCDop+r2RjWQ3aP9ZWONC7r7kQIp1GkXQi6nsI= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0/go.mod h1:SlBEwQg0qly75rXZ6W1Ig8jN25KBVBkFIIAUI1GiAAE= +go.opentelemetry.io/collector/config/configtls v1.21.0 h1:ZfrlAYgBD8lzp04W0GxwiDmUbrvKsvDYJi+wkyiXlpA= +go.opentelemetry.io/collector/config/configtls v1.21.0/go.mod h1:5EsNefPfVCMOTlOrr3wyj7LrsOgY7V8iqRl8oFZEqtw= +go.opentelemetry.io/collector/config/internal v0.115.0 h1:eVk57iufZpUXyPJFKTb1Ebx5tmcCyroIlt427r5pxS8= +go.opentelemetry.io/collector/config/internal v0.115.0/go.mod h1:OVkadRWlKAoWjHslqjWtBLAne8ceQm8WYT71ZcBWLFc= +go.opentelemetry.io/collector/confmap v1.21.0 h1:1tIcx2/Suwg8VhuPmQw87ba0ludPmumpFCFRZZa6RXA= +go.opentelemetry.io/collector/confmap v1.21.0/go.mod h1:Rrhs+MWoaP6AswZp+ReQ2VO9dfOfcUjdjiSHBsG+nec= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.21.0 h1:YLf++Z8CMp86AanfOCWUiE7vKbb1kSjgC3a9VJoxbD4= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.21.0/go.mod h1:aSWLYcmgZZJDNtWN1M8JKQuehoGgOxibl1KuvKTar4M= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.21.0 h1:+zukkM+3l426iGoJkXTpLB2Z8QnZFu26TkGPjh5Rn/4= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.21.0/go.mod h1:BXBpQhF3n4CNLYO2n/mWZPd2U9ekpbLXLRGZrun1VfI= +go.opentelemetry.io/collector/confmap/provider/httpprovider v1.21.0 h1:NYYGM+SgIlTuNGjd8eGzDr8DkvOe4q7cXon8djF9yyI= +go.opentelemetry.io/collector/confmap/provider/httpprovider v1.21.0/go.mod h1:XRYbuwqq1awFuNhLDUv4aSvn6MzqX+abcevx1O+APJI= +go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.21.0 h1:2EEUI2DzA2DvrvCImMWRSNqIHdRJ6+qbgvZL44Zb2ac= +go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.21.0/go.mod h1:axezjjQWY4kZc5pr/+wOKAuqSYMhea/tWzP5S30h+dc= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.21.0 h1:P3Q9RytCMY76ORPCnkkjOa4fkuFqmZiQRor+F/nPlYE= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.21.0/go.mod h1:xhYhHK3yLQ78tsoaKPIGUfFulgy961ImOe2gATH3RQc= +go.opentelemetry.io/collector/connector v0.115.0 h1:4Kkm3HQFzNT1eliMOB8FbIn+PLMRJ2qQku5Vmy3V8Ko= +go.opentelemetry.io/collector/connector v0.115.0/go.mod h1:+ByuAmYLrYHoKh9B+LGqUc0N2kXcN2l8Dea8Mp6brZ8= +go.opentelemetry.io/collector/connector/connectorprofiles v0.115.0 h1:aW1f4Az0I+QJyImFccNWAXqik80bnNu27aQqi2hFfD8= +go.opentelemetry.io/collector/connector/connectorprofiles v0.115.0/go.mod h1:lmynB1CucydOsHa8RSSBh5roUZPfuiv65imXhtNzClM= +go.opentelemetry.io/collector/connector/connectortest v0.115.0 h1:GjtourFr0MJmlbtEPAZ/1BZCxkNAeJ0aMTlrxwftJ0k= +go.opentelemetry.io/collector/connector/connectortest v0.115.0/go.mod h1:f3KQXXNlh/XuV8elmnuVVyfY92dJCAovz10gD72OH0k= +go.opentelemetry.io/collector/consumer v1.21.0 h1:THKZ2Vbi6GkamjTBI2hFq5Dc4kINZTWGwQNa8d/Ty9g= +go.opentelemetry.io/collector/consumer v1.21.0/go.mod h1:FQcC4ThMtRYY41dv+IPNK8POLLhAFY3r1YR5fuP7iiY= +go.opentelemetry.io/collector/consumer/consumererror v0.115.0 h1:yli//xBCQMPZKXNgNlXemo4dvqhnFrAmCZ11DvQgmcY= +go.opentelemetry.io/collector/consumer/consumererror v0.115.0/go.mod h1:LwVzAvQ6ZVNG7mbOvurbAo+W/rKws0IcjOwriuZXqPE= +go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.115.0 h1:gaIhzpaGFWauiyznrQ3f++TbcdXxA5rpsX3L9uGjMM8= +go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.115.0/go.mod h1:7oXvuGBSawS5bc413lh1KEMcXkqBcrCqZQahOdnE24U= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0 h1:H3fDuyQW1t2HWHkz96WMBQJKUevypOCjBqnqtaAWyoA= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0/go.mod h1:IzEmZ91Tp7TBxVDq8Cc9xvLsmO7H08njr6Pu9P5d9ns= +go.opentelemetry.io/collector/consumer/consumertest v0.115.0 h1:hru0I2447y0TluCdwlKYFFtgcpyCnlM+LiOK1JZyA70= +go.opentelemetry.io/collector/consumer/consumertest v0.115.0/go.mod h1:ybjALRJWR6aKNOzEMy1T1ruCULVDEjj4omtOJMrH/kU= +go.opentelemetry.io/collector/exporter v0.115.0 h1:JnxfpOnsuqhTPKJXVKJLS1Cv3BiVrVLzpHOjJEQw+xw= +go.opentelemetry.io/collector/exporter v0.115.0/go.mod h1:xof3fHQK8wADhaKLIJcQ7ChZaFLNC+haRdPN0wgl6kY= +go.opentelemetry.io/collector/exporter/debugexporter v0.115.0 h1:gb9VMQhcbvYqp0SJ4Hp8R9XqOLNLsoTgNJCPKpNEaVc= +go.opentelemetry.io/collector/exporter/debugexporter v0.115.0/go.mod h1:H/HS1UJlcZPNBbOcrsGZc2sPdQDHtbOjHOxMtJkmlcU= +go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.115.0 h1:fetbc740pODH6JW+H49SW0hiAJwQE+/B0SbuIlaY2rg= +go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.115.0/go.mod h1:oEKZ/d5BeaCK6Made9iwaeqmlT4lRbJSlW9nhIn/TwM= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0 h1:lSQEleCn/q9eFufcuK61NdFKU70ZlgI9dBjPCO/4CrE= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0/go.mod h1:7l5K2AecimX2kx+nZC1gKG3QkP247CO1+SodmJ4fFkQ= +go.opentelemetry.io/collector/exporter/exportertest v0.115.0 h1:P9SMTUXQOtcaq40bGtnnAe14zRmR4/yUgj/Tb2BEf/k= +go.opentelemetry.io/collector/exporter/exportertest v0.115.0/go.mod h1:1jMZ9gFGXglb8wfNrBZIgd+RvpZhSyFwdfE+Jtf9w4U= +go.opentelemetry.io/collector/exporter/nopexporter v0.115.0 h1:ufwLbNp7mfoSxWJcoded3D9f/nIVvCwNa/0+ZqxzkzU= +go.opentelemetry.io/collector/exporter/nopexporter v0.115.0/go.mod h1:iIJgru1t+VJVVCE5KMAKjXbq9RkK4/5FCClnWnAlGtc= +go.opentelemetry.io/collector/exporter/otlpexporter v0.115.0 h1:Kqr31VFrQvgEMzeg8T1JSXWacjUQoZph39efKN8jBpY= +go.opentelemetry.io/collector/exporter/otlpexporter v0.115.0/go.mod h1:5uy/gduFx2mH0GxJ84sY75NfzQJb9xYmgiL9Pf0dKF8= +go.opentelemetry.io/collector/exporter/otlphttpexporter v0.115.0 h1:I0qzSWGbgph+iva5/jU8tkeUTkkqqcj8+UzMxg5ubF8= +go.opentelemetry.io/collector/exporter/otlphttpexporter v0.115.0/go.mod h1:cUrv5EG12iOs5MXaecfi9K+ZATEELefpyZY6Hj4NlUo= +go.opentelemetry.io/collector/extension v0.115.0 h1:/cBb8AUdD0KMWC6V3lvCC16eP9Fg0wd1Upcp5rgvuGI= +go.opentelemetry.io/collector/extension v0.115.0/go.mod h1:HI7Ak6loyi6ZrZPsQJW1OO1wbaAW8OqXLFNQlTZnreQ= +go.opentelemetry.io/collector/extension/auth v0.115.0 h1:TTMokbBsSHZRFH48PvGSJmgSS8F3Rkr9MWGHZn8eJDk= +go.opentelemetry.io/collector/extension/auth v0.115.0/go.mod h1:3w+2mzeb2OYNOO4Bi41TUo4jr32ap2y7AOq64IDpxQo= +go.opentelemetry.io/collector/extension/auth/authtest v0.115.0 h1:OZe7dKbZ01qodSpZU0ZYzI6zpmmzJ3UvfdBSFAbSgDw= +go.opentelemetry.io/collector/extension/auth/authtest v0.115.0/go.mod h1:fk9WCXP0x91Q64Z8HZKWTHh9PWtgoWE1KXe3n2Bff3U= +go.opentelemetry.io/collector/extension/experimental/storage v0.115.0 h1:sZXw0+77092pq24CkUoTRoHQPLQUsDq6HFRNB0g5yR4= +go.opentelemetry.io/collector/extension/experimental/storage v0.115.0/go.mod h1:qjFH7Y3QYYs88By2ZB5GMSUN5k3ul4Brrq2J6lKACA0= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.115.0 h1:/g25Hp5aoCNKdDjIb3Fc7XRglO8yaBRFLO/IUNPnqNI= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.115.0/go.mod h1:EQx7ETiy330O6q05S2KRZsRNDg0aQEeJmVl7Ipx+Fcw= +go.opentelemetry.io/collector/extension/extensiontest v0.115.0 h1:GBVFxFEskR8jSdu9uaQh2qpXnN5VNXhXjpJ2UjxtE8I= +go.opentelemetry.io/collector/extension/extensiontest v0.115.0/go.mod h1:eu1ecbz5mT+cHoH2H3GmD/rOO0WsicSJD2RLrYuOmRA= +go.opentelemetry.io/collector/extension/zpagesextension v0.115.0 h1:zYrZZocc7n0ZuDyXNkIaX0P0qk2fjMQj7NegwBJZA4k= +go.opentelemetry.io/collector/extension/zpagesextension v0.115.0/go.mod h1:OaXwNHF3MAcInBzCXrhXbTNHfIi9b7YGhXjtCFZqxNY= +go.opentelemetry.io/collector/featuregate v1.21.0 h1:+EULHPJDLMipcwAGZVp9Nm8NriRvoBBMxp7MSiIZVMI= +go.opentelemetry.io/collector/featuregate v1.21.0/go.mod h1:3GaXqflNDVwWndNGBJ1+XJFy3Fv/XrFgjMN60N3z7yg= +go.opentelemetry.io/collector/filter v0.115.0 h1:pYnHUFDSHSjEIFZit+CU09itVkDXgV+WcV2HOkjvQcE= +go.opentelemetry.io/collector/filter v0.115.0/go.mod h1:aewQ+jmvpH88gPVWpNXiWSm+wwJVxTK4f23ex2NMd2c= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.115.0 h1:6DRiSECeApFq6Jj5ug77rG53R6FzJEZBfygkyMEXdpg= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.115.0/go.mod h1:vgQf5HQdmLQqpDHpDq2S3nTRoUuKtRcZpRTsy+UiwYw= +go.opentelemetry.io/collector/internal/memorylimiter v0.115.0 h1:U07IJxyHZXM6eLn8cOq/Lycx6DhQZhpDOuYtIRw/d6I= +go.opentelemetry.io/collector/internal/memorylimiter v0.115.0/go.mod h1:KNcU8WVpW5y7Ij6CGnsefb7q1UZT7VvrTDhe5FKNOA4= +go.opentelemetry.io/collector/internal/sharedcomponent v0.115.0 h1:9TL6T6ALqDpumUJ0tYIuPIg5LGo4r6eoqlNArYX116o= +go.opentelemetry.io/collector/internal/sharedcomponent v0.115.0/go.mod h1:SgBLKMh11bOTPR1bdDZbi5MlqsoDBBFI3uBIwnei+0k= +go.opentelemetry.io/collector/otelcol v0.115.0 h1:wZhFGrSCZcTQ4qw4ePjI2PaSrOCejoQKAjprKD/xavs= +go.opentelemetry.io/collector/otelcol v0.115.0/go.mod h1:iK8DPvaizirIYKDl1zZG7DDYUj6GkkH4KHifVVM88vk= +go.opentelemetry.io/collector/otelcol/otelcoltest v0.115.0 h1:HNlFpQujlnvawBk8nvMGxzjDHWDCfSprxem/EpQn4u8= +go.opentelemetry.io/collector/otelcol/otelcoltest v0.115.0/go.mod h1:WsMbqYl2rm3nPFbdxQqyLXf4iu97nYLeuQ1seZIpV3Y= +go.opentelemetry.io/collector/pdata v1.21.0 h1:PG+UbiFMJ35X/WcAR7Rf/PWmWtRdW0aHlOidsR6c5MA= +go.opentelemetry.io/collector/pdata v1.21.0/go.mod h1:GKb1/zocKJMvxKbS+sl0W85lxhYBTFJ6h6I1tphVyDU= +go.opentelemetry.io/collector/pdata/pprofile v0.115.0 h1:NI89hy13vNDw7EOnQf7Jtitks4HJFO0SUWznTssmP94= +go.opentelemetry.io/collector/pdata/pprofile v0.115.0/go.mod h1:jGzdNfO0XTtfLjXCL/uCC1livg1LlfR+ix2WE/z3RpQ= +go.opentelemetry.io/collector/pdata/testdata v0.115.0 h1:Rblz+AKXdo3fG626jS+KSd0OSA4uMXcTQfpwed6P8LI= +go.opentelemetry.io/collector/pdata/testdata v0.115.0/go.mod h1:inNnRt6S2Nn260EfCBEcjesjlKOSsr0jPwkPqpBkt4s= +go.opentelemetry.io/collector/pipeline v0.115.0 h1:bmACBqb0e8U9ag+vGGHUP7kCfAO7HHROdtzIEg8ulus= +go.opentelemetry.io/collector/pipeline v0.115.0/go.mod h1:qE3DmoB05AW0C3lmPvdxZqd/H4po84NPzd5MrqgtL74= +go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.115.0 h1:3l9ruCAOrssTUDnyChKNzHWOdTtfThnYaoPZ1/+5sD0= +go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.115.0/go.mod h1:2Myg+law/5lcezo9PhhZ0wjCaLYdGK24s1jDWbSW9VY= +go.opentelemetry.io/collector/processor v0.115.0 h1:+fveHGRe24PZPv/F5taahGuZ9HdNW44hgNWEJhIUdyc= +go.opentelemetry.io/collector/processor v0.115.0/go.mod h1:/oLHBlLsm7tFb7zOIrA5C0j14yBtjXKAgxJJ2Bktyk4= +go.opentelemetry.io/collector/processor/batchprocessor v0.115.0 h1:dgw1jcE/YVFTs41b3Y7SerU3BBSyMEE93AYV+BAxR8E= +go.opentelemetry.io/collector/processor/batchprocessor v0.115.0/go.mod h1:imG1kDEq14UGlxyCjSCf1TUEFdSWRvF7tLoYX9nixEQ= +go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.115.0 h1:LCA2jwxy1PRc7X/AtRJfMdOANh5rVLdwo5PAM+gAuyo= +go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.115.0/go.mod h1:gPcHyza7Rek3jfrQFxw99fcWBDkkRqBaMHcUz9yYv5I= +go.opentelemetry.io/collector/processor/processorhelper/processorhelperprofiles v0.115.0 h1:r1UF8LPICTRXBL0685zV/CC8J4sWg/qm1g+sHOYMq2Y= +go.opentelemetry.io/collector/processor/processorhelper/processorhelperprofiles v0.115.0/go.mod h1:3erq5umu5a7DKXo4PBm4I5yJjc6r0aJNvBV2nVSPDuE= +go.opentelemetry.io/collector/processor/processorprofiles v0.115.0 h1:cCZAs+FXaebZPppqAN3m+X3etoSBL6NvyQo8l0hOZoo= +go.opentelemetry.io/collector/processor/processorprofiles v0.115.0/go.mod h1:kMxF0gknlWX4duuAJFi2/HuIRi6C3w95tOenRa0GKOY= +go.opentelemetry.io/collector/processor/processortest v0.115.0 h1:j9HEaYFOeOB6VYl9zGhBnhQbTkqGBa2udUvu5NTh6hc= +go.opentelemetry.io/collector/processor/processortest v0.115.0/go.mod h1:Gws+VEnp/eW3qAqPpqbKsrbnnxxNfyDjqrfUXbZfZic= +go.opentelemetry.io/collector/receiver v0.115.0 h1:55Q3Jvj6zHCIA1psKqi/3kEMJO4OqUF5tNAEYNdB1U8= +go.opentelemetry.io/collector/receiver v0.115.0/go.mod h1:nBSCh2O/WUcfgpJ+Jpz+B0z0Hn5jHeRvF2WmLij5EIY= +go.opentelemetry.io/collector/receiver/nopreceiver v0.115.0 h1:87dxAcHekbXqLtjcQjnK1An2PWkWAhTly+EXzPEgYOE= +go.opentelemetry.io/collector/receiver/nopreceiver v0.115.0/go.mod h1:Llu88KNSNwvmYPRr2PMDDbVY9zHfHEbPPB4yTjjQQe0= +go.opentelemetry.io/collector/receiver/otlpreceiver v0.115.0 h1:NqMWsGuVy6y6VKTaPeJS7NZ9KAxhE/xyGUC7GaLYm/o= +go.opentelemetry.io/collector/receiver/otlpreceiver v0.115.0/go.mod h1:9ituzngnjsh/YvO+Phayq9BTk/nw0rgK5ZVvX1oxULk= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0 h1:R9JLaj2Al93smIPUkbJshAkb/cY0H5JBOxIx+Zu0NG4= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0/go.mod h1:05E5hGujWeeXJmzKZwTdHyZ/+rRyrQlQB5p5Q2XY39M= +go.opentelemetry.io/collector/receiver/receivertest v0.115.0 h1:OiB684SbHQi6/Pd3ZH0cXjYvCpBS9ilQBfTQx0wVXHg= +go.opentelemetry.io/collector/receiver/receivertest v0.115.0/go.mod h1:Y8Z9U/bz9Xpyt8GI8DxZZgryw3mnnIw+AeKVLTD2cP8= +go.opentelemetry.io/collector/scraper v0.115.0 h1:hbfebO7x1Xm96OwqeuLz5w7QAaB3ZMlwOkUo0XzPadc= +go.opentelemetry.io/collector/scraper v0.115.0/go.mod h1:7YoCO6/4PeExLiX1FokcydJGCQUa7lUqZsqXokJ5VZ4= +go.opentelemetry.io/collector/semconv v0.115.0 h1:SoqMvg4ZEB3mz2EdAb6XYa+TuMo5Mir5FRBr3nVFUDY= +go.opentelemetry.io/collector/semconv v0.115.0/go.mod h1:N6XE8Q0JKgBN2fAhkUQtqK9LT7rEGR6+Wu/Rtbal1iI= +go.opentelemetry.io/collector/service v0.115.0 h1:k4GAOiI5tZgB2QKgwA6c3TeAVr7QL/ft5cOQbzUr8Iw= +go.opentelemetry.io/collector/service v0.115.0/go.mod h1:DKde9LMhNebdREecDSsqiTFLI2wRc+IoV4/wGxU6goY= go.opentelemetry.io/contrib/bridges/otelzap v0.6.0 h1:j8icMXyyqNf6HGuwlYhniPnVsbJIq7n+WirDu3VAJdQ= go.opentelemetry.io/contrib/bridges/otelzap v0.6.0/go.mod h1:evIOZpl+kAlU5IsaYX2Siw+IbpacAZvXemVsgt70uvw= go.opentelemetry.io/contrib/config v0.10.0 h1:2JknAzMaYjxrHkTnZh3eOme/Y2P5eHE2SWfhfV6Xd6c= @@ -2662,13 +2666,13 @@ honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.5.1 h1:4bH5o3b5ZULQ4UrBmP+63W9r7qIkqJClEA9ko5YKx+I= honnef.co/go/tools v0.5.1/go.mod h1:e9irvo83WDG9/irijV44wr3tbhcFeRnfpVlRqVwpzMs= k8s.io/api v0.21.1/go.mod h1:FstGROTmsSHBarKc8bylzXih8BLNYTiS3TZcsoEDg2s= -k8s.io/api v0.31.2 h1:3wLBbL5Uom/8Zy98GRPXpJ254nEFpl+hwndmk9RwmL0= -k8s.io/api v0.31.2/go.mod h1:bWmGvrGPssSK1ljmLzd3pwCQ9MgoTsRCuK35u6SygUk= +k8s.io/api v0.31.3 h1:umzm5o8lFbdN/hIXbrK9oRpOproJO62CV1zqxXrLgk8= +k8s.io/api v0.31.3/go.mod h1:UJrkIp9pnMOI9K2nlL6vwpxRzzEX5sWgn8kGQe92kCE= k8s.io/apiextensions-apiserver v0.31.2 h1:W8EwUb8+WXBLu56ser5IudT2cOho0gAKeTOnywBLxd0= k8s.io/apiextensions-apiserver v0.31.2/go.mod h1:i+Geh+nGCJEGiCGR3MlBDkS7koHIIKWVfWeRFiOsUcM= k8s.io/apimachinery v0.21.1/go.mod h1:jbreFvJo3ov9rj7eWT7+sYiRx+qZuCYXwWT1bcDswPY= -k8s.io/apimachinery v0.31.2 h1:i4vUt2hPK56W6mlT7Ry+AO8eEsyxMD1U44NR22CLTYw= -k8s.io/apimachinery v0.31.2/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/apimachinery v0.31.3 h1:6l0WhcYgasZ/wk9ktLq5vLaoXJJr5ts6lkaQzgeYPq4= +k8s.io/apimachinery v0.31.3/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= k8s.io/apiserver v0.31.2 h1:VUzOEUGRCDi6kX1OyQ801m4A7AUPglpsmGvdsekmcI4= k8s.io/apiserver v0.31.2/go.mod h1:o3nKZR7lPlJqkU5I3Ove+Zx3JuoFjQobGX1Gctw6XuE= k8s.io/autoscaler/vertical-pod-autoscaler v0.13.0 h1:pH6AsxeBZcyX6KBqcnl7SPIJqbN1d59RrEBuIE6Rq6c= @@ -2676,8 +2680,8 @@ k8s.io/autoscaler/vertical-pod-autoscaler v0.13.0/go.mod h1:LraL5kR2xX7jb4VMCG6/ k8s.io/cli-runtime v0.31.2 h1:7FQt4C4Xnqx8V1GJqymInK0FFsoC+fAZtbLqgXYVOLQ= k8s.io/cli-runtime v0.31.2/go.mod h1:XROyicf+G7rQ6FQJMbeDV9jqxzkWXTYD6Uxd15noe0Q= k8s.io/client-go v0.21.1/go.mod h1:/kEw4RgW+3xnBGzvp9IWxKSNA+lXn3A7AuH3gdOAzLs= -k8s.io/client-go v0.31.2 h1:Y2F4dxU5d3AQj+ybwSMqQnpZH9F30//1ObxOKlTI9yc= -k8s.io/client-go v0.31.2/go.mod h1:NPa74jSVR/+eez2dFsEIHNa+3o09vtNaWwWwb1qSxSs= +k8s.io/client-go v0.31.3 h1:CAlZuM+PH2cm+86LOBemaJI/lQ5linJ6UFxKX/SoG+4= +k8s.io/client-go v0.31.3/go.mod h1:2CgjPUTpv3fE5dNygAr2NcM8nhHzXvxB8KL5gYc3kJs= k8s.io/code-generator v0.21.1/go.mod h1:hUlps5+9QaTrKx+jiM4rmq7YmH8wPOIko64uZCHDh6Q= k8s.io/component-base v0.31.2 h1:Z1J1LIaC0AV+nzcPRFqfK09af6bZ4D1nAOpWsy9owlA= k8s.io/component-base v0.31.2/go.mod h1:9PeyyFN/drHjtJZMCTkSpQJS3U9OXORnHQqMLDz0sUQ= diff --git a/pkg/trace/go.mod b/pkg/trace/go.mod index bd0db6ed04e59..d4cf8c46e2454 100644 --- a/pkg/trace/go.mod +++ b/pkg/trace/go.mod @@ -31,16 +31,16 @@ require ( github.com/google/go-cmp v0.6.0 github.com/google/gofuzz v1.2.0 github.com/google/uuid v1.6.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.115.0 github.com/shirou/gopsutil/v3 v3.24.4 github.com/stretchr/testify v1.10.0 github.com/tinylib/msgp v1.2.4 github.com/vmihailenco/msgpack/v4 v4.3.13 - go.opentelemetry.io/collector/component v0.114.0 // indirect - go.opentelemetry.io/collector/consumer v0.114.0 - go.opentelemetry.io/collector/pdata v1.20.0 - go.opentelemetry.io/collector/processor/processortest v0.114.0 - go.opentelemetry.io/collector/semconv v0.114.0 + go.opentelemetry.io/collector/component v0.115.0 // indirect + go.opentelemetry.io/collector/consumer v1.21.0 + go.opentelemetry.io/collector/pdata v1.21.0 + go.opentelemetry.io/collector/processor/processortest v0.115.0 + go.opentelemetry.io/collector/semconv v0.115.0 go.opentelemetry.io/otel v1.32.0 go.opentelemetry.io/otel/metric v1.32.0 go.uber.org/atomic v1.11.0 @@ -52,9 +52,9 @@ require ( k8s.io/apimachinery v0.31.2 ) -require go.opentelemetry.io/collector/component/componenttest v0.114.0 +require go.opentelemetry.io/collector/component/componenttest v0.115.0 -require go.opentelemetry.io/collector/processor v0.114.0 // indirect +require go.opentelemetry.io/collector/processor v0.115.0 // indirect require ( github.com/DataDog/go-sqllexer v0.0.17 // indirect @@ -76,7 +76,7 @@ require ( github.com/moby/sys/userns v0.1.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.115.0 // indirect github.com/opencontainers/runtime-spec v1.2.0 // indirect github.com/outcaste-io/ristretto v0.2.3 // indirect github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect @@ -90,14 +90,14 @@ require ( github.com/tklauser/numcpus v0.8.0 // indirect github.com/vmihailenco/tagparser v0.1.2 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/collector/component/componentstatus v0.114.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 // indirect - go.opentelemetry.io/collector/consumer/consumertest v0.114.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.114.0 // indirect - go.opentelemetry.io/collector/pdata/testdata v0.114.0 // indirect - go.opentelemetry.io/collector/pipeline v0.114.0 // indirect - go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 // indirect + go.opentelemetry.io/collector/component/componentstatus v0.115.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.115.0 // indirect + go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0 // indirect + go.opentelemetry.io/collector/consumer/consumertest v0.115.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.115.0 // indirect + go.opentelemetry.io/collector/pdata/testdata v0.115.0 // indirect + go.opentelemetry.io/collector/pipeline v0.115.0 // indirect + go.opentelemetry.io/collector/processor/processorprofiles v0.115.0 // indirect go.opentelemetry.io/otel/sdk v1.32.0 // indirect go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect go.opentelemetry.io/otel/trace v1.32.0 // indirect diff --git a/pkg/trace/go.sum b/pkg/trace/go.sum index 57f7c4a1dd4a4..91f1b0b48ab3d 100644 --- a/pkg/trace/go.sum +++ b/pkg/trace/go.sum @@ -117,12 +117,12 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0 h1:d2wCLlENxH4I2axQWaogivx/5ZIjDYgn9MIf6sFxlJ4= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.114.0/go.mod h1:Psyligv8GKL9WI3TraW3BLwkOX4TRxaaa1BBQQyICzA= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 h1:mtSN/07RGQPi1/zHVSZg4G0qRtOoJpPew5jsQWv9uS0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0/go.mod h1:C9Zgh/N3j4NR2D+1FGAA1YizhFW9OS51DwLUFJTdXN4= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 h1:I4ZYVRYW3Cjb65sPENZ9kHam/JUMXNEp2n/knJ0C0Vc= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0/go.mod h1:4BhyIaOn2LS48WS+ZNix4TpP0+goq9gDEtGzth5Cr3M= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.115.0 h1:a36EJz/mb83f6ieX0v4fNDJ1jXqpeaM6DVQXeFDvdhw= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.115.0/go.mod h1:r5/40YO1eSP5ZreOmRzVOUtDr7YG39ZIUcVjHd+9Izc= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.115.0 h1:R9MRrO+dSkAHBQLZjuwjv2RHXHQqF2Wtm1Ki0VKD5cs= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.115.0/go.mod h1:rKXLXmwdUVcUHwTilroKSejbg3KSwLeYzNPSpkIEnv4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.115.0 h1:vwZQ7k8oqlK0bdZYTsjP/59zjQQfjSD4fNsWIWsTu2w= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.115.0/go.mod h1:5ObSa9amrbzbYTdAK1Qhv3D/YqCxxnQhP0sk2eWB7Oo= github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk= github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/outcaste-io/ristretto v0.2.3 h1:AK4zt/fJ76kjlYObOeNwh4T3asEuaCmp26pOvUOL9w0= @@ -151,8 +151,8 @@ github.com/secure-systems-lab/go-securesystemslib v0.8.0 h1:mr5An6X45Kb2nddcFlbm github.com/secure-systems-lab/go-securesystemslib v0.8.0/go.mod h1:UH2VZVuJfCYR8WgMlCU1uFsOUU+KeyrTWcSS73NBOzU= github.com/shirou/gopsutil/v3 v3.24.4 h1:dEHgzZXt4LMNm+oYELpzl9YCqV65Yr/6SfrvgRBtXeU= github.com/shirou/gopsutil/v3 v3.24.4/go.mod h1:lTd2mdiOspcqLgAnr9/nGi71NkeMpWKdmhuxm9GusH8= -github.com/shirou/gopsutil/v4 v4.24.10 h1:7VOzPtfw/5YDU+jLEoBwXwxJbQetULywoSV4RYY7HkM= -github.com/shirou/gopsutil/v4 v4.24.10/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= @@ -197,84 +197,84 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= -go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= -go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= -go.opentelemetry.io/collector/component/componentstatus v0.114.0 h1:y9my/xink8KB5lK8zFAjgB2+pEh0QYy5TM972fxZY9w= -go.opentelemetry.io/collector/component/componentstatus v0.114.0/go.mod h1:RIoeCYZpPaae7QLE/1RacqzhHuXBmzRAk9H/EwYtIIs= -go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= -go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/confmap v1.20.0 h1:ARfOwmkKxFOud1njl03yAHQ30+uenlzqCO6LBYamDTE= -go.opentelemetry.io/collector/confmap v1.20.0/go.mod h1:DMpd9Ay/ffls3JoQBQ73vWeRsz1rNuLbwjo6WtjSQus= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0 h1:I3xDecFXJVZBo5zJS7Y5SWBjF22XDWGZJgwotiwA5QM= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0/go.mod h1:CF0l8V8MNv+Wag8UkqObotFnlhMzdTFuk4/6kylKwYU= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0 h1:wWxvQ7wj+1O9yDGM5m1HPEz8FJewAHAUWadAAi0KVbM= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0/go.mod h1:/5HWIPjGYk8IUurs1CZUSjGaSsaQyJsfR8+Zs5rGJ6Y= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0 h1:YS1nB8vDoCS8IlfX5OP3QGS90y/hfflwZ7CoPQcAOlU= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0/go.mod h1:aV4UfkgcJ3eyXvfd3m694omN++1c96Joitab+YL6Xks= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0 h1:jSXTojCPI6Xr98m99nF7qbQFnw3INLEOHRcqcHS+lak= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0/go.mod h1:Pu95O2JE3R+0BBTbe4gpAC8ms3w6FbICHJw3WvGWrjs= -go.opentelemetry.io/collector/connector v0.114.0 h1:efGAeTCtg8zp5Hyd7Am8kBUgsSxWEFlFtAu4OX4mcEA= -go.opentelemetry.io/collector/connector v0.114.0/go.mod h1:8DhGgD8RhkF0ooELl4NOPPD/wgHuXHmY7g90RwJ2eNo= -go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0 h1:uVs9gy3UfQBmH0636ouIbGIoWis7zmKN+ny4XOGm36U= -go.opentelemetry.io/collector/connector/connectorprofiles v0.114.0/go.mod h1:X681qFEAsEPMDQ0pMsD/3DqePw58sfLew1QbBKvGnmw= -go.opentelemetry.io/collector/connector/connectortest v0.114.0 h1:Fpy1JHyNOLdVzNcmxUY6Jwxdz6JDcTXL1NCfw8k1AOc= -go.opentelemetry.io/collector/connector/connectortest v0.114.0/go.mod h1:1zaAlODuL9iNyfyjHQeGCpbcaUjf5b68t8LqlwHKBNA= -go.opentelemetry.io/collector/consumer v0.114.0 h1:1zVaHvfIZowGwZRitRBRo3i+RP2StlU+GClYiofSw0Q= -go.opentelemetry.io/collector/consumer v0.114.0/go.mod h1:d+Mrzt9hsH1ub3zmwSlnQVPLeTYir4Mgo7CrWfnncN4= -go.opentelemetry.io/collector/consumer/consumererror v0.114.0 h1:r2YiELfWerb40FHD23V04gNjIkLUcjEKGxI4Vtm2iO4= -go.opentelemetry.io/collector/consumer/consumererror v0.114.0/go.mod h1:MzIrLQ5jptO2egypolhlAbZsWZr29WC4FhSxQjnxcvg= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 h1:5pXYy3E6UK5Huu3aQbsYL8B6E6MyWx4fvXXDn+oXZaA= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0/go.mod h1:PMq3f54KcJQO4v1tue0QxQScu7REFVADlXxXSAYMiN0= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0 h1:isaTwJK5DOy8Bs7GuLq23ejfgj8gLIo5dOUvkRnLF4g= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0/go.mod h1:GNeLPkfRPdh06n/Rv1UKa/cAtCKjN0a7ADyHjIj4HFE= -go.opentelemetry.io/collector/exporter v0.114.0 h1:5/0BBpXuCJQSQ5SQf31g7j6T4XEKkyx9mZMcA2rS5e8= -go.opentelemetry.io/collector/exporter v0.114.0/go.mod h1:atpd0wWXgh5LAZ0REU/d/Ti/q50HDfnlBIjMjJQlKFg= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 h1:/wmWOSBHcvtz3Pbv7+rWCqPPQuNvYaoidKKaOqZsLKs= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0/go.mod h1:epRYTkyJZTSQZBJflMGHUyUo2EdLPhsaZEyo5Qm848A= -go.opentelemetry.io/collector/exporter/exportertest v0.114.0 h1:vo0idBJT+QACSM1KpjVLm9VeiXVwO7y4UnMpGxN6EyM= -go.opentelemetry.io/collector/exporter/exportertest v0.114.0/go.mod h1:420ssFrhaphneybstbMeSIiqSRoaBARPgO71O17foaM= -go.opentelemetry.io/collector/extension v0.114.0 h1:9Qb92y8hD2WDC5aMDoj4JNQN+/5BQYJWPUPzLXX+iGw= -go.opentelemetry.io/collector/extension v0.114.0/go.mod h1:Yk2/1ptVgfTr12t+22v93nYJpioP14pURv2YercSzU0= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0 h1:3OHll7gp5XIu7FVgon+koShPy797nze6EjCDokFUG7w= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.114.0/go.mod h1:f0KdeLmE2jWVBmJ1U4WmfAtz1/tQUErGPfhPLKCQ49U= -go.opentelemetry.io/collector/extension/extensiontest v0.114.0 h1:ibXDms1qrswlvlR6b3d2BeyI8sXUXoFV11yOi9Sop8o= -go.opentelemetry.io/collector/extension/extensiontest v0.114.0/go.mod h1:/bOYmqu5yTDfI1bJZUxFqm8ZtmcodpquebiSxiQxtDY= -go.opentelemetry.io/collector/featuregate v1.20.0 h1:Mi7nMy/q52eruI+6jWnMKUOeM55XvwoPnGcdB1++O8c= -go.opentelemetry.io/collector/featuregate v1.20.0/go.mod h1:47xrISO71vJ83LSMm8+yIDsUbKktUp48Ovt7RR6VbRs= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0 h1:JM9huYqy5LTzmuxQmbPST3l5Ez5kJNit28c6WFWls34= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.114.0/go.mod h1:V28tDU4Wvf1PfW1Ty/SBL9tpKul2iYGno/HkCWGDrj0= -go.opentelemetry.io/collector/otelcol v0.114.0 h1:d/nmYc+adzZ70g4zBMtgujGHVNulF59ExCpuM/3ZKV4= -go.opentelemetry.io/collector/otelcol v0.114.0/go.mod h1:DGmFFao5jHSwD6G1HjUjs0CYcyrTau+u7GjTRUGKN+4= -go.opentelemetry.io/collector/otelcol/otelcoltest v0.114.0 h1:Em5e1EgrPrS90EWDWLJHCvyFIDl5PIq1DuW9zd8F3pY= -go.opentelemetry.io/collector/otelcol/otelcoltest v0.114.0/go.mod h1:YAs78SaOJsf1HNWrNH+GFTdkS58dpQI98cok6gZP4Lg= -go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= -go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0 h1:pUNfTzsI/JUTiE+DScDM4lsrPoxnVNLI2fbTxR/oapo= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0/go.mod h1:4aNcj6WM1n1uXyFSXlhVs4ibrERgNYsTbzcYI2zGhxA= -go.opentelemetry.io/collector/pdata/testdata v0.114.0 h1:+AzszWSL1i4K6meQ8rU0JDDW55SYCXa6FVqfDixhhTo= -go.opentelemetry.io/collector/pdata/testdata v0.114.0/go.mod h1:bv8XFdCTZxG2MQB5l9dKxSxf5zBrcodwO6JOy1+AxXM= -go.opentelemetry.io/collector/pipeline v0.114.0 h1:v3YOhc5z0tD6QbO5n/pnftpIeroihM2ks9Z2yKPCcwY= -go.opentelemetry.io/collector/pipeline v0.114.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= -go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0 h1:LZgxMQ2zXcz8ILBefhxpZBpn/Rx+TJTncIIQy0LgtgY= -go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.114.0/go.mod h1:bmyqQCJWcA53/GtqZJ2ahwmLdFl6UelFH2nR6OJFqpw= -go.opentelemetry.io/collector/processor v0.114.0 h1:6bqQgLL7BtKrNv4YkEOGjZfkcfZv/ciJSQx1epGG9Zk= -go.opentelemetry.io/collector/processor v0.114.0/go.mod h1:DV/wa+nAmSHIDeD9NblPwkY9PbgtDQAZJ+PE5biZwPc= -go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 h1:+P/1nLouEXTnN8DVQl+qWwO4BTkQyNPG9t/FrpUqrSI= -go.opentelemetry.io/collector/processor/processorprofiles v0.114.0/go.mod h1:3fuHeNIpINwx3bqFMprmDJyr6y5tWoWbJH599kltO5Y= -go.opentelemetry.io/collector/processor/processortest v0.114.0 h1:3FTaVXAp0LoVmUJn1ewBFckAby7AHa6/Kcdj0xuW14c= -go.opentelemetry.io/collector/processor/processortest v0.114.0/go.mod h1:OgsdOs1Fv5ZGTTJPF5nNIUJh2YkuV1acWd73yWgnti4= -go.opentelemetry.io/collector/receiver v0.114.0 h1:90SAnXAjNq7/k52/pFmmb06Cf1YauoPYtbio4aOXafY= -go.opentelemetry.io/collector/receiver v0.114.0/go.mod h1:KUGT0/D953LXbGH/D3lLPU8yrU3HfWnUqpt4W4hSOnE= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 h1:ibhEfGpvNB3yrtpl2jYFabrunMk1hurxvMYpM0b1Ck4= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0/go.mod h1:UZyRfaasw+NLvN10AN8IQnmj5tQ3BOUH1uP2ctpO9f0= -go.opentelemetry.io/collector/receiver/receivertest v0.114.0 h1:D+Kh9t2n4asTnM+TiSxbrKlUemLZandWntj17BJWWb0= -go.opentelemetry.io/collector/receiver/receivertest v0.114.0/go.mod h1:mNSHQ13vFmqD+VAcRzLjStFBejbcWUn2Mp0pAd7Op+U= -go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= -go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= -go.opentelemetry.io/collector/service v0.114.0 h1:MYF/4nH1CgtiLx09503xPAAUZefCzG1kaO+oanwX590= -go.opentelemetry.io/collector/service v0.114.0/go.mod h1:xH5/RapJdf5Ohh8iU8J0ZstfFYciP1oJPesiByteZxo= +go.opentelemetry.io/collector/component v0.115.0 h1:iLte1oCiXzjiCnaOBKdsXacfFiECecpWxW3/LeriMoo= +go.opentelemetry.io/collector/component v0.115.0/go.mod h1:oIUFiH7w1eOimdeYhFI+gAIxYSiLDocKVJ0PTvX7d6s= +go.opentelemetry.io/collector/component/componentstatus v0.115.0 h1:pbpUIL+uKDfEiSgKK+S5nuSL6MDIIQYsp4b65ZGVb9M= +go.opentelemetry.io/collector/component/componentstatus v0.115.0/go.mod h1:36A+9XSiOz0Cdhq+UwwPRlEr5CYuSkEnVO9om4BH7d0= +go.opentelemetry.io/collector/component/componenttest v0.115.0 h1:9URDJ9VyP6tuij+YHjp/kSSMecnZOd7oGvzu+rw9SJY= +go.opentelemetry.io/collector/component/componenttest v0.115.0/go.mod h1:PzXvNqKLCiSADZGZFKH+IOHMkaQ0GTHuzysfVbTPKYY= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0 h1:U07FinCDop+r2RjWQ3aP9ZWONC7r7kQIp1GkXQi6nsI= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0/go.mod h1:SlBEwQg0qly75rXZ6W1Ig8jN25KBVBkFIIAUI1GiAAE= +go.opentelemetry.io/collector/confmap v1.21.0 h1:1tIcx2/Suwg8VhuPmQw87ba0ludPmumpFCFRZZa6RXA= +go.opentelemetry.io/collector/confmap v1.21.0/go.mod h1:Rrhs+MWoaP6AswZp+ReQ2VO9dfOfcUjdjiSHBsG+nec= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.21.0 h1:YLf++Z8CMp86AanfOCWUiE7vKbb1kSjgC3a9VJoxbD4= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.21.0/go.mod h1:aSWLYcmgZZJDNtWN1M8JKQuehoGgOxibl1KuvKTar4M= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.21.0 h1:+zukkM+3l426iGoJkXTpLB2Z8QnZFu26TkGPjh5Rn/4= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.21.0/go.mod h1:BXBpQhF3n4CNLYO2n/mWZPd2U9ekpbLXLRGZrun1VfI= +go.opentelemetry.io/collector/confmap/provider/httpprovider v1.21.0 h1:NYYGM+SgIlTuNGjd8eGzDr8DkvOe4q7cXon8djF9yyI= +go.opentelemetry.io/collector/confmap/provider/httpprovider v1.21.0/go.mod h1:XRYbuwqq1awFuNhLDUv4aSvn6MzqX+abcevx1O+APJI= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.21.0 h1:P3Q9RytCMY76ORPCnkkjOa4fkuFqmZiQRor+F/nPlYE= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.21.0/go.mod h1:xhYhHK3yLQ78tsoaKPIGUfFulgy961ImOe2gATH3RQc= +go.opentelemetry.io/collector/connector v0.115.0 h1:4Kkm3HQFzNT1eliMOB8FbIn+PLMRJ2qQku5Vmy3V8Ko= +go.opentelemetry.io/collector/connector v0.115.0/go.mod h1:+ByuAmYLrYHoKh9B+LGqUc0N2kXcN2l8Dea8Mp6brZ8= +go.opentelemetry.io/collector/connector/connectorprofiles v0.115.0 h1:aW1f4Az0I+QJyImFccNWAXqik80bnNu27aQqi2hFfD8= +go.opentelemetry.io/collector/connector/connectorprofiles v0.115.0/go.mod h1:lmynB1CucydOsHa8RSSBh5roUZPfuiv65imXhtNzClM= +go.opentelemetry.io/collector/connector/connectortest v0.115.0 h1:GjtourFr0MJmlbtEPAZ/1BZCxkNAeJ0aMTlrxwftJ0k= +go.opentelemetry.io/collector/connector/connectortest v0.115.0/go.mod h1:f3KQXXNlh/XuV8elmnuVVyfY92dJCAovz10gD72OH0k= +go.opentelemetry.io/collector/consumer v1.21.0 h1:THKZ2Vbi6GkamjTBI2hFq5Dc4kINZTWGwQNa8d/Ty9g= +go.opentelemetry.io/collector/consumer v1.21.0/go.mod h1:FQcC4ThMtRYY41dv+IPNK8POLLhAFY3r1YR5fuP7iiY= +go.opentelemetry.io/collector/consumer/consumererror v0.115.0 h1:yli//xBCQMPZKXNgNlXemo4dvqhnFrAmCZ11DvQgmcY= +go.opentelemetry.io/collector/consumer/consumererror v0.115.0/go.mod h1:LwVzAvQ6ZVNG7mbOvurbAo+W/rKws0IcjOwriuZXqPE= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0 h1:H3fDuyQW1t2HWHkz96WMBQJKUevypOCjBqnqtaAWyoA= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0/go.mod h1:IzEmZ91Tp7TBxVDq8Cc9xvLsmO7H08njr6Pu9P5d9ns= +go.opentelemetry.io/collector/consumer/consumertest v0.115.0 h1:hru0I2447y0TluCdwlKYFFtgcpyCnlM+LiOK1JZyA70= +go.opentelemetry.io/collector/consumer/consumertest v0.115.0/go.mod h1:ybjALRJWR6aKNOzEMy1T1ruCULVDEjj4omtOJMrH/kU= +go.opentelemetry.io/collector/exporter v0.115.0 h1:JnxfpOnsuqhTPKJXVKJLS1Cv3BiVrVLzpHOjJEQw+xw= +go.opentelemetry.io/collector/exporter v0.115.0/go.mod h1:xof3fHQK8wADhaKLIJcQ7ChZaFLNC+haRdPN0wgl6kY= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0 h1:lSQEleCn/q9eFufcuK61NdFKU70ZlgI9dBjPCO/4CrE= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0/go.mod h1:7l5K2AecimX2kx+nZC1gKG3QkP247CO1+SodmJ4fFkQ= +go.opentelemetry.io/collector/exporter/exportertest v0.115.0 h1:P9SMTUXQOtcaq40bGtnnAe14zRmR4/yUgj/Tb2BEf/k= +go.opentelemetry.io/collector/exporter/exportertest v0.115.0/go.mod h1:1jMZ9gFGXglb8wfNrBZIgd+RvpZhSyFwdfE+Jtf9w4U= +go.opentelemetry.io/collector/extension v0.115.0 h1:/cBb8AUdD0KMWC6V3lvCC16eP9Fg0wd1Upcp5rgvuGI= +go.opentelemetry.io/collector/extension v0.115.0/go.mod h1:HI7Ak6loyi6ZrZPsQJW1OO1wbaAW8OqXLFNQlTZnreQ= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.115.0 h1:/g25Hp5aoCNKdDjIb3Fc7XRglO8yaBRFLO/IUNPnqNI= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.115.0/go.mod h1:EQx7ETiy330O6q05S2KRZsRNDg0aQEeJmVl7Ipx+Fcw= +go.opentelemetry.io/collector/extension/extensiontest v0.115.0 h1:GBVFxFEskR8jSdu9uaQh2qpXnN5VNXhXjpJ2UjxtE8I= +go.opentelemetry.io/collector/extension/extensiontest v0.115.0/go.mod h1:eu1ecbz5mT+cHoH2H3GmD/rOO0WsicSJD2RLrYuOmRA= +go.opentelemetry.io/collector/featuregate v1.21.0 h1:+EULHPJDLMipcwAGZVp9Nm8NriRvoBBMxp7MSiIZVMI= +go.opentelemetry.io/collector/featuregate v1.21.0/go.mod h1:3GaXqflNDVwWndNGBJ1+XJFy3Fv/XrFgjMN60N3z7yg= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.115.0 h1:6DRiSECeApFq6Jj5ug77rG53R6FzJEZBfygkyMEXdpg= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.115.0/go.mod h1:vgQf5HQdmLQqpDHpDq2S3nTRoUuKtRcZpRTsy+UiwYw= +go.opentelemetry.io/collector/otelcol v0.115.0 h1:wZhFGrSCZcTQ4qw4ePjI2PaSrOCejoQKAjprKD/xavs= +go.opentelemetry.io/collector/otelcol v0.115.0/go.mod h1:iK8DPvaizirIYKDl1zZG7DDYUj6GkkH4KHifVVM88vk= +go.opentelemetry.io/collector/otelcol/otelcoltest v0.115.0 h1:HNlFpQujlnvawBk8nvMGxzjDHWDCfSprxem/EpQn4u8= +go.opentelemetry.io/collector/otelcol/otelcoltest v0.115.0/go.mod h1:WsMbqYl2rm3nPFbdxQqyLXf4iu97nYLeuQ1seZIpV3Y= +go.opentelemetry.io/collector/pdata v1.21.0 h1:PG+UbiFMJ35X/WcAR7Rf/PWmWtRdW0aHlOidsR6c5MA= +go.opentelemetry.io/collector/pdata v1.21.0/go.mod h1:GKb1/zocKJMvxKbS+sl0W85lxhYBTFJ6h6I1tphVyDU= +go.opentelemetry.io/collector/pdata/pprofile v0.115.0 h1:NI89hy13vNDw7EOnQf7Jtitks4HJFO0SUWznTssmP94= +go.opentelemetry.io/collector/pdata/pprofile v0.115.0/go.mod h1:jGzdNfO0XTtfLjXCL/uCC1livg1LlfR+ix2WE/z3RpQ= +go.opentelemetry.io/collector/pdata/testdata v0.115.0 h1:Rblz+AKXdo3fG626jS+KSd0OSA4uMXcTQfpwed6P8LI= +go.opentelemetry.io/collector/pdata/testdata v0.115.0/go.mod h1:inNnRt6S2Nn260EfCBEcjesjlKOSsr0jPwkPqpBkt4s= +go.opentelemetry.io/collector/pipeline v0.115.0 h1:bmACBqb0e8U9ag+vGGHUP7kCfAO7HHROdtzIEg8ulus= +go.opentelemetry.io/collector/pipeline v0.115.0/go.mod h1:qE3DmoB05AW0C3lmPvdxZqd/H4po84NPzd5MrqgtL74= +go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.115.0 h1:3l9ruCAOrssTUDnyChKNzHWOdTtfThnYaoPZ1/+5sD0= +go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.115.0/go.mod h1:2Myg+law/5lcezo9PhhZ0wjCaLYdGK24s1jDWbSW9VY= +go.opentelemetry.io/collector/processor v0.115.0 h1:+fveHGRe24PZPv/F5taahGuZ9HdNW44hgNWEJhIUdyc= +go.opentelemetry.io/collector/processor v0.115.0/go.mod h1:/oLHBlLsm7tFb7zOIrA5C0j14yBtjXKAgxJJ2Bktyk4= +go.opentelemetry.io/collector/processor/processorprofiles v0.115.0 h1:cCZAs+FXaebZPppqAN3m+X3etoSBL6NvyQo8l0hOZoo= +go.opentelemetry.io/collector/processor/processorprofiles v0.115.0/go.mod h1:kMxF0gknlWX4duuAJFi2/HuIRi6C3w95tOenRa0GKOY= +go.opentelemetry.io/collector/processor/processortest v0.115.0 h1:j9HEaYFOeOB6VYl9zGhBnhQbTkqGBa2udUvu5NTh6hc= +go.opentelemetry.io/collector/processor/processortest v0.115.0/go.mod h1:Gws+VEnp/eW3qAqPpqbKsrbnnxxNfyDjqrfUXbZfZic= +go.opentelemetry.io/collector/receiver v0.115.0 h1:55Q3Jvj6zHCIA1psKqi/3kEMJO4OqUF5tNAEYNdB1U8= +go.opentelemetry.io/collector/receiver v0.115.0/go.mod h1:nBSCh2O/WUcfgpJ+Jpz+B0z0Hn5jHeRvF2WmLij5EIY= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0 h1:R9JLaj2Al93smIPUkbJshAkb/cY0H5JBOxIx+Zu0NG4= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0/go.mod h1:05E5hGujWeeXJmzKZwTdHyZ/+rRyrQlQB5p5Q2XY39M= +go.opentelemetry.io/collector/receiver/receivertest v0.115.0 h1:OiB684SbHQi6/Pd3ZH0cXjYvCpBS9ilQBfTQx0wVXHg= +go.opentelemetry.io/collector/receiver/receivertest v0.115.0/go.mod h1:Y8Z9U/bz9Xpyt8GI8DxZZgryw3mnnIw+AeKVLTD2cP8= +go.opentelemetry.io/collector/semconv v0.115.0 h1:SoqMvg4ZEB3mz2EdAb6XYa+TuMo5Mir5FRBr3nVFUDY= +go.opentelemetry.io/collector/semconv v0.115.0/go.mod h1:N6XE8Q0JKgBN2fAhkUQtqK9LT7rEGR6+Wu/Rtbal1iI= +go.opentelemetry.io/collector/service v0.115.0 h1:k4GAOiI5tZgB2QKgwA6c3TeAVr7QL/ft5cOQbzUr8Iw= +go.opentelemetry.io/collector/service v0.115.0/go.mod h1:DKde9LMhNebdREecDSsqiTFLI2wRc+IoV4/wGxU6goY= go.opentelemetry.io/contrib/bridges/otelzap v0.6.0 h1:j8icMXyyqNf6HGuwlYhniPnVsbJIq7n+WirDu3VAJdQ= go.opentelemetry.io/contrib/bridges/otelzap v0.6.0/go.mod h1:evIOZpl+kAlU5IsaYX2Siw+IbpacAZvXemVsgt70uvw= go.opentelemetry.io/contrib/config v0.10.0 h1:2JknAzMaYjxrHkTnZh3eOme/Y2P5eHE2SWfhfV6Xd6c= diff --git a/pkg/trace/stats/oteltest/go.mod b/pkg/trace/stats/oteltest/go.mod index aabc79c264479..8314f54acb5ca 100644 --- a/pkg/trace/stats/oteltest/go.mod +++ b/pkg/trace/stats/oteltest/go.mod @@ -10,14 +10,14 @@ require ( github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 github.com/google/go-cmp v0.6.0 github.com/stretchr/testify v1.10.0 - go.opentelemetry.io/collector/component/componenttest v0.114.0 - go.opentelemetry.io/collector/pdata v1.20.0 - go.opentelemetry.io/collector/semconv v0.114.0 + go.opentelemetry.io/collector/component/componenttest v0.115.0 + go.opentelemetry.io/collector/pdata v1.21.0 + go.opentelemetry.io/collector/semconv v0.115.0 go.opentelemetry.io/otel/metric v1.32.0 google.golang.org/protobuf v1.35.2 ) -require go.opentelemetry.io/collector/component v0.114.0 // indirect +require go.opentelemetry.io/collector/component v0.115.0 // indirect require ( github.com/DataDog/datadog-agent/comp/trace/compression/def v0.56.0-rc.3 // indirect @@ -66,7 +66,7 @@ require ( github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.115.0 // indirect go.opentelemetry.io/otel v1.32.0 // indirect go.opentelemetry.io/otel/sdk v1.32.0 // indirect go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect diff --git a/pkg/trace/stats/oteltest/go.sum b/pkg/trace/stats/oteltest/go.sum index 3c983553c9350..259d4a5ef2d1b 100644 --- a/pkg/trace/stats/oteltest/go.sum +++ b/pkg/trace/stats/oteltest/go.sum @@ -78,10 +78,10 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 h1:mtSN/07RGQPi1/zHVSZg4G0qRtOoJpPew5jsQWv9uS0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0/go.mod h1:C9Zgh/N3j4NR2D+1FGAA1YizhFW9OS51DwLUFJTdXN4= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 h1:I4ZYVRYW3Cjb65sPENZ9kHam/JUMXNEp2n/knJ0C0Vc= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0/go.mod h1:4BhyIaOn2LS48WS+ZNix4TpP0+goq9gDEtGzth5Cr3M= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.115.0 h1:R9MRrO+dSkAHBQLZjuwjv2RHXHQqF2Wtm1Ki0VKD5cs= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.115.0/go.mod h1:rKXLXmwdUVcUHwTilroKSejbg3KSwLeYzNPSpkIEnv4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.115.0 h1:vwZQ7k8oqlK0bdZYTsjP/59zjQQfjSD4fNsWIWsTu2w= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.115.0/go.mod h1:5ObSa9amrbzbYTdAK1Qhv3D/YqCxxnQhP0sk2eWB7Oo= github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk= github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/outcaste-io/ristretto v0.2.3 h1:AK4zt/fJ76kjlYObOeNwh4T3asEuaCmp26pOvUOL9w0= @@ -134,36 +134,36 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= -go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= -go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= -go.opentelemetry.io/collector/component/componentstatus v0.114.0 h1:y9my/xink8KB5lK8zFAjgB2+pEh0QYy5TM972fxZY9w= -go.opentelemetry.io/collector/component/componentstatus v0.114.0/go.mod h1:RIoeCYZpPaae7QLE/1RacqzhHuXBmzRAk9H/EwYtIIs= -go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= -go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/consumer v0.114.0 h1:1zVaHvfIZowGwZRitRBRo3i+RP2StlU+GClYiofSw0Q= -go.opentelemetry.io/collector/consumer v0.114.0/go.mod h1:d+Mrzt9hsH1ub3zmwSlnQVPLeTYir4Mgo7CrWfnncN4= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 h1:5pXYy3E6UK5Huu3aQbsYL8B6E6MyWx4fvXXDn+oXZaA= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0/go.mod h1:PMq3f54KcJQO4v1tue0QxQScu7REFVADlXxXSAYMiN0= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0 h1:isaTwJK5DOy8Bs7GuLq23ejfgj8gLIo5dOUvkRnLF4g= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0/go.mod h1:GNeLPkfRPdh06n/Rv1UKa/cAtCKjN0a7ADyHjIj4HFE= -go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= -go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0 h1:pUNfTzsI/JUTiE+DScDM4lsrPoxnVNLI2fbTxR/oapo= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0/go.mod h1:4aNcj6WM1n1uXyFSXlhVs4ibrERgNYsTbzcYI2zGhxA= -go.opentelemetry.io/collector/pdata/testdata v0.114.0 h1:+AzszWSL1i4K6meQ8rU0JDDW55SYCXa6FVqfDixhhTo= -go.opentelemetry.io/collector/pdata/testdata v0.114.0/go.mod h1:bv8XFdCTZxG2MQB5l9dKxSxf5zBrcodwO6JOy1+AxXM= -go.opentelemetry.io/collector/pipeline v0.114.0 h1:v3YOhc5z0tD6QbO5n/pnftpIeroihM2ks9Z2yKPCcwY= -go.opentelemetry.io/collector/pipeline v0.114.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= -go.opentelemetry.io/collector/processor v0.114.0 h1:6bqQgLL7BtKrNv4YkEOGjZfkcfZv/ciJSQx1epGG9Zk= -go.opentelemetry.io/collector/processor v0.114.0/go.mod h1:DV/wa+nAmSHIDeD9NblPwkY9PbgtDQAZJ+PE5biZwPc= -go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 h1:+P/1nLouEXTnN8DVQl+qWwO4BTkQyNPG9t/FrpUqrSI= -go.opentelemetry.io/collector/processor/processorprofiles v0.114.0/go.mod h1:3fuHeNIpINwx3bqFMprmDJyr6y5tWoWbJH599kltO5Y= -go.opentelemetry.io/collector/processor/processortest v0.114.0 h1:3FTaVXAp0LoVmUJn1ewBFckAby7AHa6/Kcdj0xuW14c= -go.opentelemetry.io/collector/processor/processortest v0.114.0/go.mod h1:OgsdOs1Fv5ZGTTJPF5nNIUJh2YkuV1acWd73yWgnti4= -go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= -go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= +go.opentelemetry.io/collector/component v0.115.0 h1:iLte1oCiXzjiCnaOBKdsXacfFiECecpWxW3/LeriMoo= +go.opentelemetry.io/collector/component v0.115.0/go.mod h1:oIUFiH7w1eOimdeYhFI+gAIxYSiLDocKVJ0PTvX7d6s= +go.opentelemetry.io/collector/component/componentstatus v0.115.0 h1:pbpUIL+uKDfEiSgKK+S5nuSL6MDIIQYsp4b65ZGVb9M= +go.opentelemetry.io/collector/component/componentstatus v0.115.0/go.mod h1:36A+9XSiOz0Cdhq+UwwPRlEr5CYuSkEnVO9om4BH7d0= +go.opentelemetry.io/collector/component/componenttest v0.115.0 h1:9URDJ9VyP6tuij+YHjp/kSSMecnZOd7oGvzu+rw9SJY= +go.opentelemetry.io/collector/component/componenttest v0.115.0/go.mod h1:PzXvNqKLCiSADZGZFKH+IOHMkaQ0GTHuzysfVbTPKYY= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0 h1:U07FinCDop+r2RjWQ3aP9ZWONC7r7kQIp1GkXQi6nsI= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0/go.mod h1:SlBEwQg0qly75rXZ6W1Ig8jN25KBVBkFIIAUI1GiAAE= +go.opentelemetry.io/collector/consumer v1.21.0 h1:THKZ2Vbi6GkamjTBI2hFq5Dc4kINZTWGwQNa8d/Ty9g= +go.opentelemetry.io/collector/consumer v1.21.0/go.mod h1:FQcC4ThMtRYY41dv+IPNK8POLLhAFY3r1YR5fuP7iiY= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0 h1:H3fDuyQW1t2HWHkz96WMBQJKUevypOCjBqnqtaAWyoA= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0/go.mod h1:IzEmZ91Tp7TBxVDq8Cc9xvLsmO7H08njr6Pu9P5d9ns= +go.opentelemetry.io/collector/consumer/consumertest v0.115.0 h1:hru0I2447y0TluCdwlKYFFtgcpyCnlM+LiOK1JZyA70= +go.opentelemetry.io/collector/consumer/consumertest v0.115.0/go.mod h1:ybjALRJWR6aKNOzEMy1T1ruCULVDEjj4omtOJMrH/kU= +go.opentelemetry.io/collector/pdata v1.21.0 h1:PG+UbiFMJ35X/WcAR7Rf/PWmWtRdW0aHlOidsR6c5MA= +go.opentelemetry.io/collector/pdata v1.21.0/go.mod h1:GKb1/zocKJMvxKbS+sl0W85lxhYBTFJ6h6I1tphVyDU= +go.opentelemetry.io/collector/pdata/pprofile v0.115.0 h1:NI89hy13vNDw7EOnQf7Jtitks4HJFO0SUWznTssmP94= +go.opentelemetry.io/collector/pdata/pprofile v0.115.0/go.mod h1:jGzdNfO0XTtfLjXCL/uCC1livg1LlfR+ix2WE/z3RpQ= +go.opentelemetry.io/collector/pdata/testdata v0.115.0 h1:Rblz+AKXdo3fG626jS+KSd0OSA4uMXcTQfpwed6P8LI= +go.opentelemetry.io/collector/pdata/testdata v0.115.0/go.mod h1:inNnRt6S2Nn260EfCBEcjesjlKOSsr0jPwkPqpBkt4s= +go.opentelemetry.io/collector/pipeline v0.115.0 h1:bmACBqb0e8U9ag+vGGHUP7kCfAO7HHROdtzIEg8ulus= +go.opentelemetry.io/collector/pipeline v0.115.0/go.mod h1:qE3DmoB05AW0C3lmPvdxZqd/H4po84NPzd5MrqgtL74= +go.opentelemetry.io/collector/processor v0.115.0 h1:+fveHGRe24PZPv/F5taahGuZ9HdNW44hgNWEJhIUdyc= +go.opentelemetry.io/collector/processor v0.115.0/go.mod h1:/oLHBlLsm7tFb7zOIrA5C0j14yBtjXKAgxJJ2Bktyk4= +go.opentelemetry.io/collector/processor/processorprofiles v0.115.0 h1:cCZAs+FXaebZPppqAN3m+X3etoSBL6NvyQo8l0hOZoo= +go.opentelemetry.io/collector/processor/processorprofiles v0.115.0/go.mod h1:kMxF0gknlWX4duuAJFi2/HuIRi6C3w95tOenRa0GKOY= +go.opentelemetry.io/collector/processor/processortest v0.115.0 h1:j9HEaYFOeOB6VYl9zGhBnhQbTkqGBa2udUvu5NTh6hc= +go.opentelemetry.io/collector/processor/processortest v0.115.0/go.mod h1:Gws+VEnp/eW3qAqPpqbKsrbnnxxNfyDjqrfUXbZfZic= +go.opentelemetry.io/collector/semconv v0.115.0 h1:SoqMvg4ZEB3mz2EdAb6XYa+TuMo5Mir5FRBr3nVFUDY= +go.opentelemetry.io/collector/semconv v0.115.0/go.mod h1:N6XE8Q0JKgBN2fAhkUQtqK9LT7rEGR6+Wu/Rtbal1iI= go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= diff --git a/tasks/collector.py b/tasks/collector.py index 93ff65b73edbd..a5da1a784b8d1 100644 --- a/tasks/collector.py +++ b/tasks/collector.py @@ -20,7 +20,7 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. """ -OCB_VERSION = "0.114.0" +OCB_VERSION = "0.115.0" MANDATORY_COMPONENTS = { "extensions": [ @@ -257,7 +257,7 @@ def generate(ctx): with open(file_path, "w") as f: f.write(content) - + ctx.run(f"gofmt -l -s -w {file_path}") print(f"Updated package name and ensured license header in: {file_path}") diff --git a/tasks/unit_tests/testdata/collector/awscontainerinsightreceiver_manifest.yaml b/tasks/unit_tests/testdata/collector/awscontainerinsightreceiver_manifest.yaml index 874909021b9bd..8bdd044b92298 100644 --- a/tasks/unit_tests/testdata/collector/awscontainerinsightreceiver_manifest.yaml +++ b/tasks/unit_tests/testdata/collector/awscontainerinsightreceiver_manifest.yaml @@ -3,10 +3,10 @@ dist: description: Manifest that contains awscontainerinsight receiver (should fail collector_tests.py) extensions: - - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 + - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.115.0 receivers: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscontainerinsightreceiver v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscontainerinsightreceiver v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.115.0 diff --git a/tasks/unit_tests/testdata/collector/datadogconnector_manifest.yaml b/tasks/unit_tests/testdata/collector/datadogconnector_manifest.yaml index 89aaab438f3b2..6789bc23b3fc3 100644 --- a/tasks/unit_tests/testdata/collector/datadogconnector_manifest.yaml +++ b/tasks/unit_tests/testdata/collector/datadogconnector_manifest.yaml @@ -3,12 +3,12 @@ dist: description: Manifest that contains datadog connector (should get stripped and pass collector_tests.py) extensions: - - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 + - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.115.0 receivers: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.115.0 connectors: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.115.0 diff --git a/tasks/unit_tests/testdata/collector/datadogexporter_manifest.yaml b/tasks/unit_tests/testdata/collector/datadogexporter_manifest.yaml index 9b95b7df0d6a8..3a96edc271b5a 100644 --- a/tasks/unit_tests/testdata/collector/datadogexporter_manifest.yaml +++ b/tasks/unit_tests/testdata/collector/datadogexporter_manifest.yaml @@ -3,12 +3,12 @@ dist: description: Manifest that contains datadog exporter (should get stripped and pass collector_tests.py) extensions: - - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 + - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.115.0 exporters: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.115.0 receivers: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.115.0 diff --git a/tasks/unit_tests/testdata/collector/healthcheckextension_manifest.yaml b/tasks/unit_tests/testdata/collector/healthcheckextension_manifest.yaml index 7555406e42bba..848c2e22024c4 100644 --- a/tasks/unit_tests/testdata/collector/healthcheckextension_manifest.yaml +++ b/tasks/unit_tests/testdata/collector/healthcheckextension_manifest.yaml @@ -3,8 +3,8 @@ dist: description: Manifest that does not contain health check extension (should fail collector_tests.py) extensions: - - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 + - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.115.0 receivers: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.115.0 diff --git a/tasks/unit_tests/testdata/collector/mismatched_versions_manifest.yaml b/tasks/unit_tests/testdata/collector/mismatched_versions_manifest.yaml index b2e8423416320..a4f2fb7829030 100644 --- a/tasks/unit_tests/testdata/collector/mismatched_versions_manifest.yaml +++ b/tasks/unit_tests/testdata/collector/mismatched_versions_manifest.yaml @@ -1,12 +1,12 @@ --- dist: description: Manifest that has mismatched otelcol and component versions (should fail collector_tests.py) - otelcol_version: 0.114.0 + otelcol_version: 0.115.0 extensions: - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.99.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.115.0 receivers: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.115.0 diff --git a/tasks/unit_tests/testdata/collector/pprofextension_manifest.yaml b/tasks/unit_tests/testdata/collector/pprofextension_manifest.yaml index d7dccca404219..82bb7e9059be7 100644 --- a/tasks/unit_tests/testdata/collector/pprofextension_manifest.yaml +++ b/tasks/unit_tests/testdata/collector/pprofextension_manifest.yaml @@ -3,8 +3,8 @@ dist: description: Manifest that does not contain pprof extension (should fail collector_tests.py) extensions: - - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 + - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.115.0 receivers: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.115.0 diff --git a/tasks/unit_tests/testdata/collector/prometheusreceiver_manifest.yaml b/tasks/unit_tests/testdata/collector/prometheusreceiver_manifest.yaml index 5b019879cc656..02b932462e778 100644 --- a/tasks/unit_tests/testdata/collector/prometheusreceiver_manifest.yaml +++ b/tasks/unit_tests/testdata/collector/prometheusreceiver_manifest.yaml @@ -3,6 +3,6 @@ dist: description: Manifest that does not contain prometheus receiver (should fail collector_tests.py) extensions: - - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 + - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.115.0 diff --git a/tasks/unit_tests/testdata/collector/valid_datadog_manifest.yaml b/tasks/unit_tests/testdata/collector/valid_datadog_manifest.yaml index 0f12f2cc26ca1..6c3849f10dc0e 100644 --- a/tasks/unit_tests/testdata/collector/valid_datadog_manifest.yaml +++ b/tasks/unit_tests/testdata/collector/valid_datadog_manifest.yaml @@ -3,55 +3,55 @@ dist: module: github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib/impl name: otelcol-contrib description: Valid (default) datadog converged Agent ocb manifest (should pass collector_tests.py) - version: 0.114.0 + version: 0.115.0 output_path: ./comp/otelcol/collector-contrib/impl - otelcol_version: 0.114.0 + otelcol_version: 0.115.0 extensions: - - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.114.0 + - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.115.0 exporters: - - gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.114.0 - - gomod: go.opentelemetry.io/collector/exporter/nopexporter v0.114.0 - - gomod: go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0 - - gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.114.0 + - gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.115.0 + - gomod: go.opentelemetry.io/collector/exporter/nopexporter v0.115.0 + - gomod: go.opentelemetry.io/collector/exporter/otlpexporter v0.115.0 + - gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.115.0 processors: - - gomod: go.opentelemetry.io/collector/processor/batchprocessor v0.114.0 - - gomod: go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.114.0 + - gomod: go.opentelemetry.io/collector/processor/batchprocessor v0.115.0 + - gomod: go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.115.0 receivers: - - gomod: go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0 - - gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.114.0 + - gomod: go.opentelemetry.io/collector/receiver/nopreceiver v0.115.0 + - gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.115.0 connectors: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.115.0 # When adding a replace, add a comment before it to document why it's needed and when it can be removed replaces: diff --git a/tasks/unit_tests/testdata/collector/valid_manifest_without_specified_version.yaml b/tasks/unit_tests/testdata/collector/valid_manifest_without_specified_version.yaml index 7a11140cbb107..d49a640f62279 100644 --- a/tasks/unit_tests/testdata/collector/valid_manifest_without_specified_version.yaml +++ b/tasks/unit_tests/testdata/collector/valid_manifest_without_specified_version.yaml @@ -6,12 +6,12 @@ dist: output_path: ./comp/otelcol/collector-contrib/impl extensions: - - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 + - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.115.0 receivers: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.115.0 # When adding a replace, add a comment before it to document why it's needed and when it can be removed replaces: diff --git a/tasks/unit_tests/testdata/collector/zpagesextension_manifest.yaml b/tasks/unit_tests/testdata/collector/zpagesextension_manifest.yaml index 9dd5800f47088..272c5cd90204d 100644 --- a/tasks/unit_tests/testdata/collector/zpagesextension_manifest.yaml +++ b/tasks/unit_tests/testdata/collector/zpagesextension_manifest.yaml @@ -3,8 +3,8 @@ dist: description: manifest without zpages extension (should fail collector_tests.py) extensions: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.114.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.115.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.115.0 receivers: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.114.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.115.0 diff --git a/test/new-e2e/go.mod b/test/new-e2e/go.mod index b2f25362d4739..7b6913e76a8f7 100644 --- a/test/new-e2e/go.mod +++ b/test/new-e2e/go.mod @@ -85,10 +85,10 @@ require ( golang.org/x/term v0.26.0 gopkg.in/yaml.v2 v2.4.0 gopkg.in/zorkian/go-datadog-api.v2 v2.30.0 - k8s.io/api v0.31.2 - k8s.io/apimachinery v0.31.2 + k8s.io/api v0.31.3 + k8s.io/apimachinery v0.31.3 k8s.io/cli-runtime v0.31.2 - k8s.io/client-go v0.31.2 + k8s.io/client-go v0.31.3 k8s.io/kubectl v0.31.2 ) @@ -313,10 +313,10 @@ require ( github.com/pulumi/pulumi-gcp/sdk/v7 v7.38.0 // indirect github.com/twinj/uuid v0.0.0-20151029044442-89173bcdda19 // indirect github.com/x448/float16 v0.8.4 // indirect - go.opentelemetry.io/collector/component v0.114.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect - go.opentelemetry.io/collector/extension v0.114.0 // indirect - go.opentelemetry.io/collector/pdata v1.20.0 // indirect + go.opentelemetry.io/collector/component v0.115.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.115.0 // indirect + go.opentelemetry.io/collector/extension v0.115.0 // indirect + go.opentelemetry.io/collector/pdata v1.21.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 // indirect diff --git a/test/new-e2e/go.sum b/test/new-e2e/go.sum index e36e556cf02ed..84c305a0469a5 100644 --- a/test/new-e2e/go.sum +++ b/test/new-e2e/go.sum @@ -521,14 +521,14 @@ github.com/zclconf/go-cty v1.14.4 h1:uXXczd9QDGsgu0i/QFR/hzI5NYCHLf6NQw/atrbnhq8 github.com/zclconf/go-cty v1.14.4/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= github.com/zorkian/go-datadog-api v2.30.0+incompatible h1:R4ryGocppDqZZbnNc5EDR8xGWF/z/MxzWnqTUijDQes= github.com/zorkian/go-datadog-api v2.30.0+incompatible/go.mod h1:PkXwHX9CUQa/FpB9ZwAD45N1uhCW4MT/Wj7m36PbKss= -go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= -go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/extension v0.114.0 h1:9Qb92y8hD2WDC5aMDoj4JNQN+/5BQYJWPUPzLXX+iGw= -go.opentelemetry.io/collector/extension v0.114.0/go.mod h1:Yk2/1ptVgfTr12t+22v93nYJpioP14pURv2YercSzU0= -go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= -go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= +go.opentelemetry.io/collector/component v0.115.0 h1:iLte1oCiXzjiCnaOBKdsXacfFiECecpWxW3/LeriMoo= +go.opentelemetry.io/collector/component v0.115.0/go.mod h1:oIUFiH7w1eOimdeYhFI+gAIxYSiLDocKVJ0PTvX7d6s= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0 h1:U07FinCDop+r2RjWQ3aP9ZWONC7r7kQIp1GkXQi6nsI= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0/go.mod h1:SlBEwQg0qly75rXZ6W1Ig8jN25KBVBkFIIAUI1GiAAE= +go.opentelemetry.io/collector/extension v0.115.0 h1:/cBb8AUdD0KMWC6V3lvCC16eP9Fg0wd1Upcp5rgvuGI= +go.opentelemetry.io/collector/extension v0.115.0/go.mod h1:HI7Ak6loyi6ZrZPsQJW1OO1wbaAW8OqXLFNQlTZnreQ= +go.opentelemetry.io/collector/pdata v1.21.0 h1:PG+UbiFMJ35X/WcAR7Rf/PWmWtRdW0aHlOidsR6c5MA= +go.opentelemetry.io/collector/pdata v1.21.0/go.mod h1:GKb1/zocKJMvxKbS+sl0W85lxhYBTFJ6h6I1tphVyDU= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 h1:UP6IpuHFkUgOQL9FFQFrZ+5LiwhhYRbi7VZSIx6Nj5s= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0/go.mod h1:qxuZLtbq5QDtdeSHsS7bcf6EH6uO6jUAgk764zd3rhM= go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= @@ -715,14 +715,14 @@ gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -k8s.io/api v0.31.2 h1:3wLBbL5Uom/8Zy98GRPXpJ254nEFpl+hwndmk9RwmL0= -k8s.io/api v0.31.2/go.mod h1:bWmGvrGPssSK1ljmLzd3pwCQ9MgoTsRCuK35u6SygUk= -k8s.io/apimachinery v0.31.2 h1:i4vUt2hPK56W6mlT7Ry+AO8eEsyxMD1U44NR22CLTYw= -k8s.io/apimachinery v0.31.2/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/api v0.31.3 h1:umzm5o8lFbdN/hIXbrK9oRpOproJO62CV1zqxXrLgk8= +k8s.io/api v0.31.3/go.mod h1:UJrkIp9pnMOI9K2nlL6vwpxRzzEX5sWgn8kGQe92kCE= +k8s.io/apimachinery v0.31.3 h1:6l0WhcYgasZ/wk9ktLq5vLaoXJJr5ts6lkaQzgeYPq4= +k8s.io/apimachinery v0.31.3/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= k8s.io/cli-runtime v0.31.2 h1:7FQt4C4Xnqx8V1GJqymInK0FFsoC+fAZtbLqgXYVOLQ= k8s.io/cli-runtime v0.31.2/go.mod h1:XROyicf+G7rQ6FQJMbeDV9jqxzkWXTYD6Uxd15noe0Q= -k8s.io/client-go v0.31.2 h1:Y2F4dxU5d3AQj+ybwSMqQnpZH9F30//1ObxOKlTI9yc= -k8s.io/client-go v0.31.2/go.mod h1:NPa74jSVR/+eez2dFsEIHNa+3o09vtNaWwWwb1qSxSs= +k8s.io/client-go v0.31.3 h1:CAlZuM+PH2cm+86LOBemaJI/lQ5linJ6UFxKX/SoG+4= +k8s.io/client-go v0.31.3/go.mod h1:2CgjPUTpv3fE5dNygAr2NcM8nhHzXvxB8KL5gYc3kJs= k8s.io/component-base v0.31.2 h1:Z1J1LIaC0AV+nzcPRFqfK09af6bZ4D1nAOpWsy9owlA= k8s.io/component-base v0.31.2/go.mod h1:9PeyyFN/drHjtJZMCTkSpQJS3U9OXORnHQqMLDz0sUQ= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= diff --git a/test/new-e2e/tests/otel/otel-agent/testdata/minimal-full-config.yml b/test/new-e2e/tests/otel/otel-agent/testdata/minimal-full-config.yml index 5156e26fabee3..633b5e66522f6 100644 --- a/test/new-e2e/tests/otel/otel-agent/testdata/minimal-full-config.yml +++ b/test/new-e2e/tests/otel/otel-agent/testdata/minimal-full-config.yml @@ -27,6 +27,7 @@ exporters: host_metadata: enabled: false hostname_source: config_or_system + reporter_period: 30m0s tags: [] hostname: otelcol-docker http2_ping_timeout: 0s diff --git a/test/new-e2e/tests/otel/otel-agent/testdata/minimal-provided-config.yml b/test/new-e2e/tests/otel/otel-agent/testdata/minimal-provided-config.yml index af090ab56d217..e018b94bf7d23 100644 --- a/test/new-e2e/tests/otel/otel-agent/testdata/minimal-provided-config.yml +++ b/test/new-e2e/tests/otel/otel-agent/testdata/minimal-provided-config.yml @@ -27,6 +27,7 @@ exporters: host_metadata: enabled: false hostname_source: config_or_system + reporter_period: 30m0s tags: [] hostname: otelcol-docker http2_ping_timeout: 0s diff --git a/test/otel/go.mod b/test/otel/go.mod index dd0663ecebd79..6ceb9b9ca2ebf 100644 --- a/test/otel/go.mod +++ b/test/otel/go.mod @@ -107,7 +107,7 @@ require ( github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 github.com/DataDog/datadog-agent/pkg/proto v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/trace v0.56.0-rc.3 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.115.0 ) require ( @@ -115,13 +115,13 @@ require ( github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 // indirect github.com/hashicorp/go-version v1.7.0 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect - go.opentelemetry.io/collector/featuregate v1.20.0 // indirect + go.opentelemetry.io/collector/featuregate v1.21.0 // indirect ) require ( github.com/pierrec/lz4/v4 v4.1.21 // indirect - go.opentelemetry.io/collector/consumer/consumererror v0.114.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.114.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror v0.115.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.115.0 // indirect ) require ( @@ -234,7 +234,7 @@ require ( github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.115.0 // indirect github.com/opencontainers/runtime-spec v1.2.0 // indirect github.com/outcaste-io/ristretto v0.2.3 // indirect github.com/pelletier/go-toml v1.9.5 // indirect @@ -261,26 +261,26 @@ require ( github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opentelemetry.io/collector/client v1.20.0 // indirect - go.opentelemetry.io/collector/component v0.114.0 // indirect - go.opentelemetry.io/collector/config/configauth v0.114.0 // indirect - go.opentelemetry.io/collector/config/configcompression v1.20.0 // indirect - go.opentelemetry.io/collector/config/confighttp v0.114.0 // indirect - go.opentelemetry.io/collector/config/confignet v1.20.0 // indirect - go.opentelemetry.io/collector/config/configopaque v1.20.0 // indirect - go.opentelemetry.io/collector/config/configretry v1.20.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.114.0 // indirect - go.opentelemetry.io/collector/config/configtls v1.20.0 // indirect - go.opentelemetry.io/collector/config/internal v0.114.0 // indirect - go.opentelemetry.io/collector/confmap v1.20.0 // indirect - go.opentelemetry.io/collector/consumer v0.114.0 // indirect - go.opentelemetry.io/collector/exporter v0.114.0 // indirect - go.opentelemetry.io/collector/extension v0.114.0 // indirect - go.opentelemetry.io/collector/extension/auth v0.114.0 // indirect - go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 // indirect - go.opentelemetry.io/collector/pdata v1.20.0 // indirect - go.opentelemetry.io/collector/pipeline v0.114.0 // indirect - go.opentelemetry.io/collector/semconv v0.114.0 // indirect + go.opentelemetry.io/collector/client v1.21.0 // indirect + go.opentelemetry.io/collector/component v0.115.0 // indirect + go.opentelemetry.io/collector/config/configauth v0.115.0 // indirect + go.opentelemetry.io/collector/config/configcompression v1.21.0 // indirect + go.opentelemetry.io/collector/config/confighttp v0.115.0 // indirect + go.opentelemetry.io/collector/config/confignet v1.21.0 // indirect + go.opentelemetry.io/collector/config/configopaque v1.21.0 // indirect + go.opentelemetry.io/collector/config/configretry v1.21.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.115.0 // indirect + go.opentelemetry.io/collector/config/configtls v1.21.0 // indirect + go.opentelemetry.io/collector/config/internal v0.115.0 // indirect + go.opentelemetry.io/collector/confmap v1.21.0 // indirect + go.opentelemetry.io/collector/consumer v1.21.0 // indirect + go.opentelemetry.io/collector/exporter v0.115.0 // indirect + go.opentelemetry.io/collector/extension v0.115.0 // indirect + go.opentelemetry.io/collector/extension/auth v0.115.0 // indirect + go.opentelemetry.io/collector/extension/experimental/storage v0.115.0 // indirect + go.opentelemetry.io/collector/pdata v1.21.0 // indirect + go.opentelemetry.io/collector/pipeline v0.115.0 // indirect + go.opentelemetry.io/collector/semconv v0.115.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect go.opentelemetry.io/otel v1.32.0 // indirect go.opentelemetry.io/otel/metric v1.32.0 // indirect diff --git a/test/otel/go.sum b/test/otel/go.sum index 1283d3d064631..957379677134f 100644 --- a/test/otel/go.sum +++ b/test/otel/go.sum @@ -239,16 +239,16 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0 h1:Wq1iTmd0K1SSOIA43Wy2uAU6SB4f9ogyN3ZmvDgTURg= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.114.0/go.mod h1:VCj9H0QxRBWSgbl1pUo8p0NrqnmcxpPo0QjKLFtWkO0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0 h1:m8uPYU2rTj0sKiYgzCvIPajD3meiYsu+nX0hplUnlEU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.114.0/go.mod h1:P0BaP92pXPkTyTmObfLYUoRBfMYU+i0hdS3oM1DpGJo= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0 h1:Qg80zPfNMlub7LO07VMDElOu3M2oxqdZgvvB+X72a4U= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.114.0/go.mod h1:5qsGcjFV3WFI6J2onAlkR7Xd/8VtwJcECaDRZfW4Tb4= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0 h1:mtSN/07RGQPi1/zHVSZg4G0qRtOoJpPew5jsQWv9uS0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.114.0/go.mod h1:C9Zgh/N3j4NR2D+1FGAA1YizhFW9OS51DwLUFJTdXN4= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0 h1:I4ZYVRYW3Cjb65sPENZ9kHam/JUMXNEp2n/knJ0C0Vc= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.114.0/go.mod h1:4BhyIaOn2LS48WS+ZNix4TpP0+goq9gDEtGzth5Cr3M= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.115.0 h1:WOqt8NpU/JPGYDR4CiWx7g/sHV6Oe9FChzhushwmVdo= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.115.0/go.mod h1:wV/+iU7MyXcyTaY8K5Qx+1Z3yUzrxA40nydPQA476Iw= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.115.0 h1:MerLKMrkM4YoGF6Di0D9yMXO02yCX8mrZAi/+jJVVeI= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.115.0/go.mod h1:R8AkVWe9G5Q0oMOapvm9HNS076E3Min8SVlmhBL3QD0= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.115.0 h1:WEqcnWSy9dNSlGb8pYRBX7zhaz2ReyaeImlenbzNTB4= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.115.0/go.mod h1:6Mk71CakHUA3I6oM9hARDiyQypYyOolvb+4PFYyVEFg= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.115.0 h1:R9MRrO+dSkAHBQLZjuwjv2RHXHQqF2Wtm1Ki0VKD5cs= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.115.0/go.mod h1:rKXLXmwdUVcUHwTilroKSejbg3KSwLeYzNPSpkIEnv4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.115.0 h1:vwZQ7k8oqlK0bdZYTsjP/59zjQQfjSD4fNsWIWsTu2w= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.115.0/go.mod h1:5ObSa9amrbzbYTdAK1Qhv3D/YqCxxnQhP0sk2eWB7Oo= github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk= github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= @@ -376,80 +376,82 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opentelemetry.io/collector/client v1.20.0 h1:o60wPcj5nLtaRenF+1E5p4QXFS3TDL6vHlw+GOon3rg= -go.opentelemetry.io/collector/client v1.20.0/go.mod h1:6aqkszco9FaLWCxyJEVam6PP7cUa8mPRIXeS5eZGj0U= -go.opentelemetry.io/collector/component v0.114.0 h1:SVGbm5LvHGSTEDv7p92oPuBgK5tuiWR82I9+LL4TtBE= -go.opentelemetry.io/collector/component v0.114.0/go.mod h1:MLxtjZ6UVHjDxSdhGLuJfHBHvfl1iT/Y7IaQPD24Eww= -go.opentelemetry.io/collector/component/componentstatus v0.114.0 h1:y9my/xink8KB5lK8zFAjgB2+pEh0QYy5TM972fxZY9w= -go.opentelemetry.io/collector/component/componentstatus v0.114.0/go.mod h1:RIoeCYZpPaae7QLE/1RacqzhHuXBmzRAk9H/EwYtIIs= -go.opentelemetry.io/collector/component/componenttest v0.114.0 h1:GM4FTTlfeXoVm6sZYBHImwlRN8ayh2oAfUhvaFj7Zo8= -go.opentelemetry.io/collector/component/componenttest v0.114.0/go.mod h1:ZZEJMtbJtoVC/3/9R1HzERq+cYQRxuMFQrPCpfZ4Xos= -go.opentelemetry.io/collector/config/configauth v0.114.0 h1:R2sJ6xpsLYGH0yU0vCxotzBYDKR/Hrjv0A7y9lwMyiw= -go.opentelemetry.io/collector/config/configauth v0.114.0/go.mod h1:3Z24KcCpG+WYCeQYfs/cNp5cP2BDeOqLCtOEgs/rPqM= -go.opentelemetry.io/collector/config/configcompression v1.20.0 h1:H/mvz7J/5z+O74YsO0t2tk+REnO2tzLM8TgIQ4AZ5w0= -go.opentelemetry.io/collector/config/configcompression v1.20.0/go.mod h1:pnxkFCLUZLKWzYJvfSwZnPrnm0twX14CYj2ADth5xiU= -go.opentelemetry.io/collector/config/confighttp v0.114.0 h1:DjGsBvVm+mGK3IpJBaXianWhwcxEC1fF33cpuC1LY/I= -go.opentelemetry.io/collector/config/confighttp v0.114.0/go.mod h1:nrlNLxOZ+4JQaV9j0TiqQV7LOHhrRivPrT8nQRHED3Q= -go.opentelemetry.io/collector/config/confignet v1.20.0 h1:LrM6AuiY8N/woTP4SWhL2V0562JXwJs9MRNFZJFLtRY= -go.opentelemetry.io/collector/config/confignet v1.20.0/go.mod h1:o3v4joAEjvLwntqexg5ixMqRrU1+Vst+jWuCUaBNgOg= -go.opentelemetry.io/collector/config/configopaque v1.20.0 h1:2I48zKiyyyYqjm7y0B9OLp24ku2ZSX3nCHG0r5FdWOQ= -go.opentelemetry.io/collector/config/configopaque v1.20.0/go.mod h1:6zlLIyOoRpJJ+0bEKrlZOZon3rOp5Jrz9fMdR4twOS4= -go.opentelemetry.io/collector/config/configretry v1.20.0 h1:z679mrMlW2a6tOOYPGdrS/QfALxdzWLQUOpH8Uu+D5Y= -go.opentelemetry.io/collector/config/configretry v1.20.0/go.mod h1:KvQF5cfphq1rQm1dKR4eLDNQYw6iI2fY72NMZVa+0N0= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0 h1:kjLeyrumge6wsX6ZIkicdNOlBXaEyW2PI2ZdVXz/rzY= -go.opentelemetry.io/collector/config/configtelemetry v0.114.0/go.mod h1:R0MBUxjSMVMIhljuDHWIygzzJWQyZHXXWIgQNxcFwhc= -go.opentelemetry.io/collector/config/configtls v1.20.0 h1:hNlJdwfyY5Qe54RLJ41lfLqKTn9ypkR7sk7JNCcSe2U= -go.opentelemetry.io/collector/config/configtls v1.20.0/go.mod h1:sav/txSHguadTYlSSK+BJO2ljJeYEtRoBahgzWAguYg= -go.opentelemetry.io/collector/config/internal v0.114.0 h1:uWSDWTJb8T6xRjKD9/XmEARakXnxgYVYKUeId78hErc= -go.opentelemetry.io/collector/config/internal v0.114.0/go.mod h1:yC7E4h1Uj0SubxcFImh6OvBHFTjMh99+A5PuyIgDWqc= -go.opentelemetry.io/collector/confmap v1.20.0 h1:ARfOwmkKxFOud1njl03yAHQ30+uenlzqCO6LBYamDTE= -go.opentelemetry.io/collector/confmap v1.20.0/go.mod h1:DMpd9Ay/ffls3JoQBQ73vWeRsz1rNuLbwjo6WtjSQus= -go.opentelemetry.io/collector/consumer v0.114.0 h1:1zVaHvfIZowGwZRitRBRo3i+RP2StlU+GClYiofSw0Q= -go.opentelemetry.io/collector/consumer v0.114.0/go.mod h1:d+Mrzt9hsH1ub3zmwSlnQVPLeTYir4Mgo7CrWfnncN4= -go.opentelemetry.io/collector/consumer/consumererror v0.114.0 h1:r2YiELfWerb40FHD23V04gNjIkLUcjEKGxI4Vtm2iO4= -go.opentelemetry.io/collector/consumer/consumererror v0.114.0/go.mod h1:MzIrLQ5jptO2egypolhlAbZsWZr29WC4FhSxQjnxcvg= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0 h1:5pXYy3E6UK5Huu3aQbsYL8B6E6MyWx4fvXXDn+oXZaA= -go.opentelemetry.io/collector/consumer/consumerprofiles v0.114.0/go.mod h1:PMq3f54KcJQO4v1tue0QxQScu7REFVADlXxXSAYMiN0= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0 h1:isaTwJK5DOy8Bs7GuLq23ejfgj8gLIo5dOUvkRnLF4g= -go.opentelemetry.io/collector/consumer/consumertest v0.114.0/go.mod h1:GNeLPkfRPdh06n/Rv1UKa/cAtCKjN0a7ADyHjIj4HFE= -go.opentelemetry.io/collector/exporter v0.114.0 h1:5/0BBpXuCJQSQ5SQf31g7j6T4XEKkyx9mZMcA2rS5e8= -go.opentelemetry.io/collector/exporter v0.114.0/go.mod h1:atpd0wWXgh5LAZ0REU/d/Ti/q50HDfnlBIjMjJQlKFg= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0 h1:/wmWOSBHcvtz3Pbv7+rWCqPPQuNvYaoidKKaOqZsLKs= -go.opentelemetry.io/collector/exporter/exporterprofiles v0.114.0/go.mod h1:epRYTkyJZTSQZBJflMGHUyUo2EdLPhsaZEyo5Qm848A= -go.opentelemetry.io/collector/exporter/exportertest v0.114.0 h1:vo0idBJT+QACSM1KpjVLm9VeiXVwO7y4UnMpGxN6EyM= -go.opentelemetry.io/collector/exporter/exportertest v0.114.0/go.mod h1:420ssFrhaphneybstbMeSIiqSRoaBARPgO71O17foaM= -go.opentelemetry.io/collector/extension v0.114.0 h1:9Qb92y8hD2WDC5aMDoj4JNQN+/5BQYJWPUPzLXX+iGw= -go.opentelemetry.io/collector/extension v0.114.0/go.mod h1:Yk2/1ptVgfTr12t+22v93nYJpioP14pURv2YercSzU0= -go.opentelemetry.io/collector/extension/auth v0.114.0 h1:1K2qh4yvG8kKR/sTAobI/rw5VxzPZoKcl3FmC195vvo= -go.opentelemetry.io/collector/extension/auth v0.114.0/go.mod h1:IjtsG+jUVJB0utKF8dAK8pLutRun3aEgASshImzsw/U= -go.opentelemetry.io/collector/extension/experimental/storage v0.114.0 h1:hLyX9UvmY0t6iBnk3CqvyNck2U0QjPACekj7pDRx2hA= -go.opentelemetry.io/collector/extension/experimental/storage v0.114.0/go.mod h1:WqYRQVJjJLE1rm+y/ks1wPdPRGWePEvE1VO07xm2J2k= -go.opentelemetry.io/collector/extension/extensiontest v0.114.0 h1:ibXDms1qrswlvlR6b3d2BeyI8sXUXoFV11yOi9Sop8o= -go.opentelemetry.io/collector/extension/extensiontest v0.114.0/go.mod h1:/bOYmqu5yTDfI1bJZUxFqm8ZtmcodpquebiSxiQxtDY= -go.opentelemetry.io/collector/featuregate v1.20.0 h1:Mi7nMy/q52eruI+6jWnMKUOeM55XvwoPnGcdB1++O8c= -go.opentelemetry.io/collector/featuregate v1.20.0/go.mod h1:47xrISO71vJ83LSMm8+yIDsUbKktUp48Ovt7RR6VbRs= -go.opentelemetry.io/collector/pdata v1.20.0 h1:ePcwt4bdtISP0loHaE+C9xYoU2ZkIvWv89Fob16o9SM= -go.opentelemetry.io/collector/pdata v1.20.0/go.mod h1:Ox1YVLe87cZDB/TL30i4SUz1cA5s6AM6SpFMfY61ICs= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0 h1:pUNfTzsI/JUTiE+DScDM4lsrPoxnVNLI2fbTxR/oapo= -go.opentelemetry.io/collector/pdata/pprofile v0.114.0/go.mod h1:4aNcj6WM1n1uXyFSXlhVs4ibrERgNYsTbzcYI2zGhxA= -go.opentelemetry.io/collector/pdata/testdata v0.114.0 h1:+AzszWSL1i4K6meQ8rU0JDDW55SYCXa6FVqfDixhhTo= -go.opentelemetry.io/collector/pdata/testdata v0.114.0/go.mod h1:bv8XFdCTZxG2MQB5l9dKxSxf5zBrcodwO6JOy1+AxXM= -go.opentelemetry.io/collector/pipeline v0.114.0 h1:v3YOhc5z0tD6QbO5n/pnftpIeroihM2ks9Z2yKPCcwY= -go.opentelemetry.io/collector/pipeline v0.114.0/go.mod h1:4vOvjVsoYTHVGTbfFwqfnQOSV2K3RKUHofh3jNRc2Mg= -go.opentelemetry.io/collector/processor v0.114.0 h1:6bqQgLL7BtKrNv4YkEOGjZfkcfZv/ciJSQx1epGG9Zk= -go.opentelemetry.io/collector/processor v0.114.0/go.mod h1:DV/wa+nAmSHIDeD9NblPwkY9PbgtDQAZJ+PE5biZwPc= -go.opentelemetry.io/collector/processor/processorprofiles v0.114.0 h1:+P/1nLouEXTnN8DVQl+qWwO4BTkQyNPG9t/FrpUqrSI= -go.opentelemetry.io/collector/processor/processorprofiles v0.114.0/go.mod h1:3fuHeNIpINwx3bqFMprmDJyr6y5tWoWbJH599kltO5Y= -go.opentelemetry.io/collector/processor/processortest v0.114.0 h1:3FTaVXAp0LoVmUJn1ewBFckAby7AHa6/Kcdj0xuW14c= -go.opentelemetry.io/collector/processor/processortest v0.114.0/go.mod h1:OgsdOs1Fv5ZGTTJPF5nNIUJh2YkuV1acWd73yWgnti4= -go.opentelemetry.io/collector/receiver v0.114.0 h1:90SAnXAjNq7/k52/pFmmb06Cf1YauoPYtbio4aOXafY= -go.opentelemetry.io/collector/receiver v0.114.0/go.mod h1:KUGT0/D953LXbGH/D3lLPU8yrU3HfWnUqpt4W4hSOnE= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0 h1:ibhEfGpvNB3yrtpl2jYFabrunMk1hurxvMYpM0b1Ck4= -go.opentelemetry.io/collector/receiver/receiverprofiles v0.114.0/go.mod h1:UZyRfaasw+NLvN10AN8IQnmj5tQ3BOUH1uP2ctpO9f0= -go.opentelemetry.io/collector/receiver/receivertest v0.114.0 h1:D+Kh9t2n4asTnM+TiSxbrKlUemLZandWntj17BJWWb0= -go.opentelemetry.io/collector/receiver/receivertest v0.114.0/go.mod h1:mNSHQ13vFmqD+VAcRzLjStFBejbcWUn2Mp0pAd7Op+U= -go.opentelemetry.io/collector/semconv v0.114.0 h1:/eKcCJwZepQUtEuFuxa0thx2XIOvhFpaf214ZG1a11k= -go.opentelemetry.io/collector/semconv v0.114.0/go.mod h1:zCJ5njhWpejR+A40kiEoeFm1xq1uzyZwMnRNX6/D82A= +go.opentelemetry.io/collector/client v1.21.0 h1:3Kes8lOFMYVxoxeAmX+DTEAkuS1iTA3NkSfqzGmygJA= +go.opentelemetry.io/collector/client v1.21.0/go.mod h1:jYJGiL0UA975OOyHmjbQSokNWt1OiviI5KjPOMUMGwc= +go.opentelemetry.io/collector/component v0.115.0 h1:iLte1oCiXzjiCnaOBKdsXacfFiECecpWxW3/LeriMoo= +go.opentelemetry.io/collector/component v0.115.0/go.mod h1:oIUFiH7w1eOimdeYhFI+gAIxYSiLDocKVJ0PTvX7d6s= +go.opentelemetry.io/collector/component/componentstatus v0.115.0 h1:pbpUIL+uKDfEiSgKK+S5nuSL6MDIIQYsp4b65ZGVb9M= +go.opentelemetry.io/collector/component/componentstatus v0.115.0/go.mod h1:36A+9XSiOz0Cdhq+UwwPRlEr5CYuSkEnVO9om4BH7d0= +go.opentelemetry.io/collector/component/componenttest v0.115.0 h1:9URDJ9VyP6tuij+YHjp/kSSMecnZOd7oGvzu+rw9SJY= +go.opentelemetry.io/collector/component/componenttest v0.115.0/go.mod h1:PzXvNqKLCiSADZGZFKH+IOHMkaQ0GTHuzysfVbTPKYY= +go.opentelemetry.io/collector/config/configauth v0.115.0 h1:xa+ALdyPgva3rZnLBh1H2oS5MsHP6JxSqMtQmcELnys= +go.opentelemetry.io/collector/config/configauth v0.115.0/go.mod h1:C7anpb3Rf4KswMT+dgOzkW9UX0z/65PLORpUw3p0VYc= +go.opentelemetry.io/collector/config/configcompression v1.21.0 h1:0zbPdZAgPFMAarwJEC4gaR6f/JBP686A3TYSgb3oa+E= +go.opentelemetry.io/collector/config/configcompression v1.21.0/go.mod h1:LvYG00tbPTv0NOLoZN0wXq1F5thcxvukO8INq7xyfWU= +go.opentelemetry.io/collector/config/confighttp v0.115.0 h1:BIy394oNXnqySJwrCqgAJu4gWgAV5aQUDD6k1hy6C8o= +go.opentelemetry.io/collector/config/confighttp v0.115.0/go.mod h1:Wr50ut12NmCEAl4bWLJryw2EjUmJTtYRg89560Q51wc= +go.opentelemetry.io/collector/config/confignet v1.21.0 h1:PeQ5YrMnfftysFL/WVaSrjPOWjD6DfeABY50pf9CZxU= +go.opentelemetry.io/collector/config/confignet v1.21.0/go.mod h1:ZppUH1hgUJOubawEsxsQ9MzEYFytqo2GnVSS7d4CVxc= +go.opentelemetry.io/collector/config/configopaque v1.21.0 h1:PcvRGkBk4Px8BQM7tX+kw4i3jBsfAHGoGQbtZg6Ox7U= +go.opentelemetry.io/collector/config/configopaque v1.21.0/go.mod h1:sW0t0iI/VfRL9VYX7Ik6XzVgPcR+Y5kejTLsYcMyDWs= +go.opentelemetry.io/collector/config/configretry v1.21.0 h1:ZHoOvAkEcv5BBeaJn8IQ6rQ4GMPZWW4S+W7R4QTEbZU= +go.opentelemetry.io/collector/config/configretry v1.21.0/go.mod h1:cleBc9I0DIWpTiiHfu9v83FUaCTqcPXmebpLxjEIqro= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0 h1:U07FinCDop+r2RjWQ3aP9ZWONC7r7kQIp1GkXQi6nsI= +go.opentelemetry.io/collector/config/configtelemetry v0.115.0/go.mod h1:SlBEwQg0qly75rXZ6W1Ig8jN25KBVBkFIIAUI1GiAAE= +go.opentelemetry.io/collector/config/configtls v1.21.0 h1:ZfrlAYgBD8lzp04W0GxwiDmUbrvKsvDYJi+wkyiXlpA= +go.opentelemetry.io/collector/config/configtls v1.21.0/go.mod h1:5EsNefPfVCMOTlOrr3wyj7LrsOgY7V8iqRl8oFZEqtw= +go.opentelemetry.io/collector/config/internal v0.115.0 h1:eVk57iufZpUXyPJFKTb1Ebx5tmcCyroIlt427r5pxS8= +go.opentelemetry.io/collector/config/internal v0.115.0/go.mod h1:OVkadRWlKAoWjHslqjWtBLAne8ceQm8WYT71ZcBWLFc= +go.opentelemetry.io/collector/confmap v1.21.0 h1:1tIcx2/Suwg8VhuPmQw87ba0ludPmumpFCFRZZa6RXA= +go.opentelemetry.io/collector/confmap v1.21.0/go.mod h1:Rrhs+MWoaP6AswZp+ReQ2VO9dfOfcUjdjiSHBsG+nec= +go.opentelemetry.io/collector/consumer v1.21.0 h1:THKZ2Vbi6GkamjTBI2hFq5Dc4kINZTWGwQNa8d/Ty9g= +go.opentelemetry.io/collector/consumer v1.21.0/go.mod h1:FQcC4ThMtRYY41dv+IPNK8POLLhAFY3r1YR5fuP7iiY= +go.opentelemetry.io/collector/consumer/consumererror v0.115.0 h1:yli//xBCQMPZKXNgNlXemo4dvqhnFrAmCZ11DvQgmcY= +go.opentelemetry.io/collector/consumer/consumererror v0.115.0/go.mod h1:LwVzAvQ6ZVNG7mbOvurbAo+W/rKws0IcjOwriuZXqPE= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0 h1:H3fDuyQW1t2HWHkz96WMBQJKUevypOCjBqnqtaAWyoA= +go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0/go.mod h1:IzEmZ91Tp7TBxVDq8Cc9xvLsmO7H08njr6Pu9P5d9ns= +go.opentelemetry.io/collector/consumer/consumertest v0.115.0 h1:hru0I2447y0TluCdwlKYFFtgcpyCnlM+LiOK1JZyA70= +go.opentelemetry.io/collector/consumer/consumertest v0.115.0/go.mod h1:ybjALRJWR6aKNOzEMy1T1ruCULVDEjj4omtOJMrH/kU= +go.opentelemetry.io/collector/exporter v0.115.0 h1:JnxfpOnsuqhTPKJXVKJLS1Cv3BiVrVLzpHOjJEQw+xw= +go.opentelemetry.io/collector/exporter v0.115.0/go.mod h1:xof3fHQK8wADhaKLIJcQ7ChZaFLNC+haRdPN0wgl6kY= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0 h1:lSQEleCn/q9eFufcuK61NdFKU70ZlgI9dBjPCO/4CrE= +go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0/go.mod h1:7l5K2AecimX2kx+nZC1gKG3QkP247CO1+SodmJ4fFkQ= +go.opentelemetry.io/collector/exporter/exportertest v0.115.0 h1:P9SMTUXQOtcaq40bGtnnAe14zRmR4/yUgj/Tb2BEf/k= +go.opentelemetry.io/collector/exporter/exportertest v0.115.0/go.mod h1:1jMZ9gFGXglb8wfNrBZIgd+RvpZhSyFwdfE+Jtf9w4U= +go.opentelemetry.io/collector/extension v0.115.0 h1:/cBb8AUdD0KMWC6V3lvCC16eP9Fg0wd1Upcp5rgvuGI= +go.opentelemetry.io/collector/extension v0.115.0/go.mod h1:HI7Ak6loyi6ZrZPsQJW1OO1wbaAW8OqXLFNQlTZnreQ= +go.opentelemetry.io/collector/extension/auth v0.115.0 h1:TTMokbBsSHZRFH48PvGSJmgSS8F3Rkr9MWGHZn8eJDk= +go.opentelemetry.io/collector/extension/auth v0.115.0/go.mod h1:3w+2mzeb2OYNOO4Bi41TUo4jr32ap2y7AOq64IDpxQo= +go.opentelemetry.io/collector/extension/auth/authtest v0.115.0 h1:OZe7dKbZ01qodSpZU0ZYzI6zpmmzJ3UvfdBSFAbSgDw= +go.opentelemetry.io/collector/extension/auth/authtest v0.115.0/go.mod h1:fk9WCXP0x91Q64Z8HZKWTHh9PWtgoWE1KXe3n2Bff3U= +go.opentelemetry.io/collector/extension/experimental/storage v0.115.0 h1:sZXw0+77092pq24CkUoTRoHQPLQUsDq6HFRNB0g5yR4= +go.opentelemetry.io/collector/extension/experimental/storage v0.115.0/go.mod h1:qjFH7Y3QYYs88By2ZB5GMSUN5k3ul4Brrq2J6lKACA0= +go.opentelemetry.io/collector/extension/extensiontest v0.115.0 h1:GBVFxFEskR8jSdu9uaQh2qpXnN5VNXhXjpJ2UjxtE8I= +go.opentelemetry.io/collector/extension/extensiontest v0.115.0/go.mod h1:eu1ecbz5mT+cHoH2H3GmD/rOO0WsicSJD2RLrYuOmRA= +go.opentelemetry.io/collector/featuregate v1.21.0 h1:+EULHPJDLMipcwAGZVp9Nm8NriRvoBBMxp7MSiIZVMI= +go.opentelemetry.io/collector/featuregate v1.21.0/go.mod h1:3GaXqflNDVwWndNGBJ1+XJFy3Fv/XrFgjMN60N3z7yg= +go.opentelemetry.io/collector/pdata v1.21.0 h1:PG+UbiFMJ35X/WcAR7Rf/PWmWtRdW0aHlOidsR6c5MA= +go.opentelemetry.io/collector/pdata v1.21.0/go.mod h1:GKb1/zocKJMvxKbS+sl0W85lxhYBTFJ6h6I1tphVyDU= +go.opentelemetry.io/collector/pdata/pprofile v0.115.0 h1:NI89hy13vNDw7EOnQf7Jtitks4HJFO0SUWznTssmP94= +go.opentelemetry.io/collector/pdata/pprofile v0.115.0/go.mod h1:jGzdNfO0XTtfLjXCL/uCC1livg1LlfR+ix2WE/z3RpQ= +go.opentelemetry.io/collector/pdata/testdata v0.115.0 h1:Rblz+AKXdo3fG626jS+KSd0OSA4uMXcTQfpwed6P8LI= +go.opentelemetry.io/collector/pdata/testdata v0.115.0/go.mod h1:inNnRt6S2Nn260EfCBEcjesjlKOSsr0jPwkPqpBkt4s= +go.opentelemetry.io/collector/pipeline v0.115.0 h1:bmACBqb0e8U9ag+vGGHUP7kCfAO7HHROdtzIEg8ulus= +go.opentelemetry.io/collector/pipeline v0.115.0/go.mod h1:qE3DmoB05AW0C3lmPvdxZqd/H4po84NPzd5MrqgtL74= +go.opentelemetry.io/collector/processor v0.115.0 h1:+fveHGRe24PZPv/F5taahGuZ9HdNW44hgNWEJhIUdyc= +go.opentelemetry.io/collector/processor v0.115.0/go.mod h1:/oLHBlLsm7tFb7zOIrA5C0j14yBtjXKAgxJJ2Bktyk4= +go.opentelemetry.io/collector/processor/processorprofiles v0.115.0 h1:cCZAs+FXaebZPppqAN3m+X3etoSBL6NvyQo8l0hOZoo= +go.opentelemetry.io/collector/processor/processorprofiles v0.115.0/go.mod h1:kMxF0gknlWX4duuAJFi2/HuIRi6C3w95tOenRa0GKOY= +go.opentelemetry.io/collector/processor/processortest v0.115.0 h1:j9HEaYFOeOB6VYl9zGhBnhQbTkqGBa2udUvu5NTh6hc= +go.opentelemetry.io/collector/processor/processortest v0.115.0/go.mod h1:Gws+VEnp/eW3qAqPpqbKsrbnnxxNfyDjqrfUXbZfZic= +go.opentelemetry.io/collector/receiver v0.115.0 h1:55Q3Jvj6zHCIA1psKqi/3kEMJO4OqUF5tNAEYNdB1U8= +go.opentelemetry.io/collector/receiver v0.115.0/go.mod h1:nBSCh2O/WUcfgpJ+Jpz+B0z0Hn5jHeRvF2WmLij5EIY= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0 h1:R9JLaj2Al93smIPUkbJshAkb/cY0H5JBOxIx+Zu0NG4= +go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0/go.mod h1:05E5hGujWeeXJmzKZwTdHyZ/+rRyrQlQB5p5Q2XY39M= +go.opentelemetry.io/collector/receiver/receivertest v0.115.0 h1:OiB684SbHQi6/Pd3ZH0cXjYvCpBS9ilQBfTQx0wVXHg= +go.opentelemetry.io/collector/receiver/receivertest v0.115.0/go.mod h1:Y8Z9U/bz9Xpyt8GI8DxZZgryw3mnnIw+AeKVLTD2cP8= +go.opentelemetry.io/collector/semconv v0.115.0 h1:SoqMvg4ZEB3mz2EdAb6XYa+TuMo5Mir5FRBr3nVFUDY= +go.opentelemetry.io/collector/semconv v0.115.0/go.mod h1:N6XE8Q0JKgBN2fAhkUQtqK9LT7rEGR6+Wu/Rtbal1iI= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 h1:UP6IpuHFkUgOQL9FFQFrZ+5LiwhhYRbi7VZSIx6Nj5s= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0/go.mod h1:qxuZLtbq5QDtdeSHsS7bcf6EH6uO6jUAgk764zd3rhM= go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= diff --git a/test/otel/testdata/builder-config.yaml b/test/otel/testdata/builder-config.yaml index b13b478649860..137c635509724 100644 --- a/test/otel/testdata/builder-config.yaml +++ b/test/otel/testdata/builder-config.yaml @@ -1,86 +1,87 @@ +connectors: +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector + v0.115.0 +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector + v0.115.0 +converters: +- gomod: github.com/DataDog/datadog-agent/comp/otelcol/converter/impl v0.61.0 + path: ./comp/otelcol/converter/impl dist: description: Basic OTel Collector distribution for Developers name: otelcol-custom output_path: /tmp/otel-ci/otelcol-custom -connectors: -- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector - v0.114.0 -- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.114.0 exporters: -- gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.114.0 -- gomod: go.opentelemetry.io/collector/exporter/nopexporter v0.114.0 -- gomod: go.opentelemetry.io/collector/exporter/otlpexporter v0.114.0 -- gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.114.0 +- gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.115.0 +- gomod: go.opentelemetry.io/collector/exporter/nopexporter v0.115.0 +- gomod: go.opentelemetry.io/collector/exporter/otlpexporter v0.115.0 +- gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter - v0.114.0 + v0.115.0 extensions: - gomod: github.com/DataDog/datadog-agent/comp/otelcol/ddflareextension/impl v0.61.0 path: ./comp/otelcol/ddflareextension/impl -- gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.114.0 +- gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/dockerobserver - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver - v0.114.0 + v0.115.0 processors: -- gomod: go.opentelemetry.io/collector/processor/batchprocessor v0.114.0 -- gomod: go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.114.0 +- gomod: go.opentelemetry.io/collector/processor/batchprocessor v0.115.0 +- gomod: go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor - v0.114.0 + v0.115.0 providers: -- gomod: go.opentelemetry.io/collector/confmap/provider/envprovider v1.20.0 -- gomod: go.opentelemetry.io/collector/confmap/provider/fileprovider v1.20.0 -- gomod: go.opentelemetry.io/collector/confmap/provider/httpprovider v1.20.0 -- gomod: go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.20.0 -- gomod: go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.20.0 +- gomod: go.opentelemetry.io/collector/confmap/provider/envprovider v1.21.0 +- gomod: go.opentelemetry.io/collector/confmap/provider/fileprovider v1.21.0 +- gomod: go.opentelemetry.io/collector/confmap/provider/httpprovider v1.21.0 +- gomod: go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.21.0 +- gomod: go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.21.0 receivers: -- gomod: go.opentelemetry.io/collector/receiver/nopreceiver v0.114.0 -- gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.114.0 +- gomod: go.opentelemetry.io/collector/receiver/nopreceiver v0.115.0 +- gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator - v0.114.0 + v0.115.0 - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver - v0.114.0 -converters: -- gomod: github.com/DataDog/datadog-agent/comp/otelcol/converter/impl v0.61.0 - path: ./comp/otelcol/converter/impl + v0.115.0 From e52d987af078c990d331b4161a36c4428a4b5d54 Mon Sep 17 00:00:00 2001 From: Dan Lepage <140522866+dplepage-dd@users.noreply.github.com> Date: Tue, 10 Dec 2024 13:45:43 -0500 Subject: [PATCH 377/439] Turn tag/mapping conflict into an actual error. (#31673) Co-authored-by: Esther Kim --- .../config_validate_enrich.go | 5 +- .../config_validate_enrich_test.go | 54 +------------------ ...-missing-tags-errors-c4cd44a12d22e7bc.yaml | 12 +++++ 3 files changed, 16 insertions(+), 55 deletions(-) create mode 100644 releasenotes/notes/make-missing-tags-errors-c4cd44a12d22e7bc.yaml diff --git a/pkg/collector/corechecks/snmp/internal/configvalidation/config_validate_enrich.go b/pkg/collector/corechecks/snmp/internal/configvalidation/config_validate_enrich.go index 5268345d8744e..499b93287d9d1 100644 --- a/pkg/collector/corechecks/snmp/internal/configvalidation/config_validate_enrich.go +++ b/pkg/collector/corechecks/snmp/internal/configvalidation/config_validate_enrich.go @@ -10,8 +10,6 @@ import ( "fmt" "regexp" - "github.com/DataDog/datadog-agent/pkg/util/log" - "github.com/DataDog/datadog-agent/pkg/networkdevice/profile/profiledefinition" ) @@ -174,6 +172,7 @@ func validateEnrichSymbol(symbol *profiledefinition.SymbolConfig, symbolContext } return errors } + func validateEnrichMetricTag(metricTag *profiledefinition.MetricTagConfig) []string { var errors []string if (metricTag.Column.OID != "" || metricTag.Column.Name != "") && (metricTag.Symbol.OID != "" || metricTag.Symbol.Name != "") { @@ -217,7 +216,7 @@ func validateEnrichMetricTag(metricTag *profiledefinition.MetricTagConfig) []str } } if len(metricTag.Mapping) > 0 && metricTag.Tag == "" { - log.Warnf("``tag` must be provided if `mapping` (`%s`) is defined", metricTag.Mapping) + errors = append(errors, fmt.Sprintf("``tag` must be provided if `mapping` (`%s`) is defined", metricTag.Mapping)) } for _, transform := range metricTag.IndexTransform { if transform.Start > transform.End { diff --git a/pkg/collector/corechecks/snmp/internal/configvalidation/config_validate_enrich_test.go b/pkg/collector/corechecks/snmp/internal/configvalidation/config_validate_enrich_test.go index 0047af78cc366..1e966e743614b 100644 --- a/pkg/collector/corechecks/snmp/internal/configvalidation/config_validate_enrich_test.go +++ b/pkg/collector/corechecks/snmp/internal/configvalidation/config_validate_enrich_test.go @@ -6,33 +6,21 @@ package configvalidation import ( - "bufio" - "bytes" "fmt" "regexp" - "strings" "testing" - "github.com/cihub/seelog" "github.com/stretchr/testify/assert" - "github.com/DataDog/datadog-agent/pkg/util/log" - "github.com/DataDog/datadog-agent/pkg/networkdevice/profile/profiledefinition" ) func Test_ValidateEnrichMetrics(t *testing.T) { - type logCount struct { - log string - count int - } - tests := []struct { name string metrics []profiledefinition.MetricsConfig expectedErrors []string expectedMetrics []profiledefinition.MetricsConfig - expectedLogs []logCount }{ { name: "either table symbol or scalar symbol must be provided", @@ -551,7 +539,7 @@ func Test_ValidateEnrichMetrics(t *testing.T) { }, }, { - name: "mapping used without tag should raise a warning", + name: "mapping used without tag", metrics: []profiledefinition.MetricsConfig{ { Symbols: []profiledefinition.SymbolConfig{ @@ -574,23 +562,11 @@ func Test_ValidateEnrichMetrics(t *testing.T) { }, }, }, - expectedErrors: []string{}, - expectedLogs: []logCount{ - { - "[WARN] validateEnrichMetricTag: ``tag` must be provided if `mapping` (`map[1:abc 2:def]`) is defined", - 1, - }, - }, + expectedErrors: []string{"``tag` must be provided if `mapping` (`map[1:abc 2:def]`) is defined"}, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - var b bytes.Buffer - w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") - assert.Nil(t, err) - log.SetupLogger(l, "debug") - errors := ValidateEnrichMetrics(tt.metrics) assert.Equal(t, len(tt.expectedErrors), len(errors), fmt.Sprintf("ERRORS: %v", errors)) for i := range errors { @@ -599,29 +575,16 @@ func Test_ValidateEnrichMetrics(t *testing.T) { if tt.expectedMetrics != nil { assert.Equal(t, tt.expectedMetrics, tt.metrics) } - - w.Flush() - logs := b.String() - - for _, aLogCount := range tt.expectedLogs { - assert.Equal(t, aLogCount.count, strings.Count(logs, aLogCount.log), logs) - } }) } } func Test_ValidateEnrichMetricTags(t *testing.T) { - type logCount struct { - log string - count int - } - tests := []struct { name string metrics []profiledefinition.MetricTagConfig expectedErrors []string expectedMetrics []profiledefinition.MetricTagConfig - expectedLogs []logCount }{ { name: "Move OID to Symbol", @@ -691,12 +654,6 @@ func Test_ValidateEnrichMetricTags(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - var b bytes.Buffer - w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") - assert.Nil(t, err) - log.SetupLogger(l, "debug") - errors := ValidateEnrichMetricTags(tt.metrics) assert.Equal(t, len(tt.expectedErrors), len(errors), fmt.Sprintf("ERRORS: %v", errors)) for i := range errors { @@ -705,13 +662,6 @@ func Test_ValidateEnrichMetricTags(t *testing.T) { if tt.expectedMetrics != nil { assert.Equal(t, tt.expectedMetrics, tt.metrics) } - - w.Flush() - logs := b.String() - - for _, aLogCount := range tt.expectedLogs { - assert.Equal(t, aLogCount.count, strings.Count(logs, aLogCount.log), logs) - } }) } } diff --git a/releasenotes/notes/make-missing-tags-errors-c4cd44a12d22e7bc.yaml b/releasenotes/notes/make-missing-tags-errors-c4cd44a12d22e7bc.yaml new file mode 100644 index 0000000000000..ddbfef1c88172 --- /dev/null +++ b/releasenotes/notes/make-missing-tags-errors-c4cd44a12d22e7bc.yaml @@ -0,0 +1,12 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +deprecations: + - | + SNMP profiles containing metric_tags without a specified `tag` field + will now show an error and be ignored, similar to other profile syntax errors. From 7d6be816588ecded8a60f2e88936371b199ebfdd Mon Sep 17 00:00:00 2001 From: "John L. Peterson (Jack)" Date: Tue, 10 Dec 2024 14:21:43 -0500 Subject: [PATCH 378/439] OTEL-2289 fix ocb component build script (#31941) --- test/otel/testdata/ocb_build_script.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/test/otel/testdata/ocb_build_script.sh b/test/otel/testdata/ocb_build_script.sh index 6aaf8bfeb36b4..43dd7b34be343 100755 --- a/test/otel/testdata/ocb_build_script.sh +++ b/test/otel/testdata/ocb_build_script.sh @@ -4,7 +4,17 @@ OTELCOL_PID=0 mkdir -p /tmp/otel-ci trap 'rm -rf /tmp/otel-ci && kill $OTELCOL_PID' EXIT + +current_dir=$(pwd) cp ./test/otel/testdata/builder-config.yaml /tmp/otel-ci/ +# Get path of all datadog modules, in sorted order, without the initial dot +dd_mods=$(find . -type f -name "go.mod" -exec dirname {} \; | sort | sed 's/.//') +echo "replaces:" >> "/tmp/otel-ci/builder-config.yaml" +for mod in $dd_mods; do + echo "- github.com/DataDog/datadog-agent$mod => $current_dir$mod" >> /tmp/otel-ci/builder-config.yaml +done +echo "added all datadog-agent modules to ocb builder-config replacements" + cp ./test/otel/testdata/collector-config.yaml /tmp/otel-ci/ cp ./tools/ci/retry.sh /tmp/otel-ci/ chmod +x /tmp/otel-ci/retry.sh From bf79e3918f96fc8c3861b6aff867b27286f51e2a Mon Sep 17 00:00:00 2001 From: andrewqian2001datadog Date: Tue, 10 Dec 2024 15:09:02 -0500 Subject: [PATCH 379/439] [AMLII-2146] Introduce logs-analyze subcommand (#30924) Co-authored-by: Esther Kim Co-authored-by: Brian Floersch --- .github/CODEOWNERS | 1 + cmd/agent/subcommands/analyzelogs/command.go | 141 +++++++++++++++++ .../subcommands/analyzelogs/command_test.go | 143 ++++++++++++++++++ cmd/agent/subcommands/subcommands.go | 2 + .../logs/agent/agentimpl/analyze_logs_init.go | 61 ++++++++ pkg/logs/launchers/types.go | 2 +- pkg/logs/pipeline/mock/mock.go | 4 + pkg/logs/pipeline/processor_only_provider.go | 86 +++++++++++ pkg/logs/pipeline/provider.go | 5 + pkg/logs/processor/json.go | 3 + pkg/logs/sources/config_source.go | 46 ++++++ pkg/logs/sources/config_source_test.go | 82 ++++++++++ .../logs-check-feature-13a93c589fe0613d.yaml | 15 ++ 13 files changed, 590 insertions(+), 1 deletion(-) create mode 100644 cmd/agent/subcommands/analyzelogs/command.go create mode 100644 cmd/agent/subcommands/analyzelogs/command_test.go create mode 100644 comp/logs/agent/agentimpl/analyze_logs_init.go create mode 100644 pkg/logs/pipeline/processor_only_provider.go create mode 100644 pkg/logs/sources/config_source.go create mode 100644 pkg/logs/sources/config_source_test.go create mode 100644 releasenotes/notes/logs-check-feature-13a93c589fe0613d.yaml diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index f9c09434f61c7..51fba3f61278c 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -192,6 +192,7 @@ /cmd/agent/subcommands/remoteconfig @Datadog/remote-config /cmd/agent/subcommands/snmp @DataDog/ndm-core /cmd/agent/subcommands/streamlogs @DataDog/agent-metrics-logs +/cmd/agent/subcommands/analyzelogs @DataDog/agent-metrics-logs /cmd/agent/subcommands/streamep @DataDog/container-integrations /cmd/agent/subcommands/taggerlist @DataDog/container-platform /cmd/agent/subcommands/workloadlist @DataDog/container-platform diff --git a/cmd/agent/subcommands/analyzelogs/command.go b/cmd/agent/subcommands/analyzelogs/command.go new file mode 100644 index 0000000000000..e8a63dc87e080 --- /dev/null +++ b/cmd/agent/subcommands/analyzelogs/command.go @@ -0,0 +1,141 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package analyzelogs implements 'agent analyze-logs'. +package analyzelogs + +import ( + "encoding/json" + "fmt" + "os" + "time" + + "go.uber.org/fx" + + "github.com/spf13/cobra" + + "github.com/DataDog/datadog-agent/cmd/agent/command" + "github.com/DataDog/datadog-agent/comp/core" + "github.com/DataDog/datadog-agent/comp/core/autodiscovery/integration" + "github.com/DataDog/datadog-agent/comp/core/autodiscovery/providers/names" + "github.com/DataDog/datadog-agent/comp/core/config" + "github.com/DataDog/datadog-agent/comp/logs/agent/agentimpl" + "github.com/DataDog/datadog-agent/pkg/logs/launchers" + "github.com/DataDog/datadog-agent/pkg/logs/message" + "github.com/DataDog/datadog-agent/pkg/logs/pipeline" + "github.com/DataDog/datadog-agent/pkg/logs/processor" + "github.com/DataDog/datadog-agent/pkg/logs/schedulers/ad" + "github.com/DataDog/datadog-agent/pkg/logs/sources" + "github.com/DataDog/datadog-agent/pkg/util/fxutil" +) + +const defaultCoreConfigPath = "bin/agent/dist/datadog.yaml" + +// CliParams holds the command-line argument and dependencies for the analyze-logs subcommand. +type CliParams struct { + *command.GlobalParams + + // LogConfigPath represents the path to the logs configuration file. + LogConfigPath string + + // CoreConfigPath represents the path to the core configuration file. + CoreConfigPath string +} + +// Commands returns a slice of subcommands for the 'agent' command. +func Commands(globalParams *command.GlobalParams) []*cobra.Command { + cliParams := &CliParams{ + GlobalParams: globalParams, + CoreConfigPath: defaultCoreConfigPath, // Set default path + } + + cmd := &cobra.Command{ + Use: "analyze-logs", + Short: "Analyze logs configuration in isolation", + Long: `Run a Datadog agent logs configuration and print the results to stdout`, + RunE: func(_ *cobra.Command, args []string) error { + if len(args) < 1 { + return fmt.Errorf("log config file path is required") + } + cliParams.LogConfigPath = args[0] + return fxutil.OneShot(runAnalyzeLogs, + core.Bundle(), + fx.Supply(cliParams), + fx.Supply(command.GetDefaultCoreBundleParams(cliParams.GlobalParams)), + ) + }, + } + + // Add flag for core config (optional) + cmd.Flags().StringVarP(&cliParams.CoreConfigPath, "core-config", "C", defaultCoreConfigPath, "Path to the core configuration file (optional)") + + return []*cobra.Command{cmd} +} + +// runAnalyzeLogs initializes the launcher and sends the log config file path to the source provider. +func runAnalyzeLogs(cliParams *CliParams, config config.Component) error { + outputChan, launchers, pipelineProvider := runAnalyzeLogsHelper(cliParams, config) + // Set up an inactivity timeout + inactivityTimeout := 1 * time.Second + idleTimer := time.NewTimer(inactivityTimeout) + + for { + select { + case msg := <-outputChan: + parsedMessage := processor.JSONPayload + err := json.Unmarshal(msg.GetContent(), &parsedMessage) + if err != nil { + fmt.Printf("Failed to parse message: %v\n", err) + continue + } + + fmt.Println(parsedMessage.Message) + + // Reset the inactivity timer every time a message is processed + if !idleTimer.Stop() { + <-idleTimer.C + } + idleTimer.Reset(inactivityTimeout) + case <-idleTimer.C: + // Timeout reached, signal quit + pipelineProvider.Stop() + launchers.Stop() + return nil + } + } +} + +// Used to make testing easier +func runAnalyzeLogsHelper(cliParams *CliParams, config config.Component) (chan *message.Message, *launchers.Launchers, pipeline.Provider) { + configSource := sources.NewConfigSources() + wd, err := os.Getwd() + if err != nil { + fmt.Println("Cannot get working directory") + return nil, nil, nil + } + absolutePath := wd + "/" + cliParams.LogConfigPath + data, err := os.ReadFile(absolutePath) + if err != nil { + fmt.Println("Cannot read file path of logs config") + return nil, nil, nil + } + sources, err := ad.CreateSources(integration.Config{ + Provider: names.File, + LogsConfig: data, + }) + + if err != nil { + fmt.Println("Cannot create source") + return nil, nil, nil + } + + for _, source := range sources { + if source.Config.TailingMode == "" { + source.Config.TailingMode = "beginning" + } + configSource.AddSource(source) + } + return agentimpl.SetUpLaunchers(config, configSource) +} diff --git a/cmd/agent/subcommands/analyzelogs/command_test.go b/cmd/agent/subcommands/analyzelogs/command_test.go new file mode 100644 index 0000000000000..0f326ee8bbf4f --- /dev/null +++ b/cmd/agent/subcommands/analyzelogs/command_test.go @@ -0,0 +1,143 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package analyzelogs + +import ( + "encoding/json" + "fmt" + "os" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/DataDog/datadog-agent/cmd/agent/command" + "github.com/DataDog/datadog-agent/comp/core" + "github.com/DataDog/datadog-agent/comp/core/config" + "github.com/DataDog/datadog-agent/pkg/logs/processor" + "github.com/DataDog/datadog-agent/pkg/util/fxutil" +) + +func TestCommand(t *testing.T) { + fxutil.TestOneShotSubcommand(t, + Commands(&command.GlobalParams{}), + []string{"analyze-logs", "path/to/log/config.yaml"}, + runAnalyzeLogs, + func(_ core.BundleParams, cliParams *CliParams) { + require.Equal(t, "path/to/log/config.yaml", cliParams.LogConfigPath) + require.Equal(t, defaultCoreConfigPath, cliParams.CoreConfigPath) + }) +} + +func CreateTestFile(tempDir string, fileName string, fileContent string) *os.File { + if _, err := os.Stat(tempDir); os.IsNotExist(err) { + err = os.MkdirAll(tempDir, 0755) + if err != nil { + return nil + } + } + + filePath := fmt.Sprintf("%s/%s", tempDir, fileName) + + tempFile, err := os.Create(filePath) + if err != nil { + return nil + } + + _, err = tempFile.Write([]byte(fileContent)) + if err != nil { + tempFile.Close() // Close file before returning + return nil + } + + tempFile.Close() + + file, err := os.Open(filePath) + if err != nil { + return nil + } + return file +} + +func TestRunAnalyzeLogs(t *testing.T) { + tempDir := "tmp" + defer os.RemoveAll(tempDir) + + // Write config content to the temp file + logConfig := `=== apm check === +Configuration provider: file +Configuration source: file:/opt/datadog-agent/etc/conf.d/apm.yaml.default +Config for instance ID: apm:1234567890abcdef +{} + +=== container_image check === +Configuration provider: file +Configuration source: file:/opt/datadog-agent/etc/conf.d/container_image.d/conf.yaml.default +Config for instance ID: container_image:abcdef1234567890 +{} +~ +Auto-discovery IDs: +* _container_image +=== +` + // Create a temporary config file + tempLogFile := CreateTestFile(tempDir, "wack.log", logConfig) + assert.NotNil(t, tempLogFile) + defer os.Remove(tempLogFile.Name()) // Cleanup the temp file after the test + + yamlContent := fmt.Sprintf(`logs: + - type: file + path: %s + log_processing_rules: + - type: exclude_at_match + name: exclude_random + pattern: "datadog-agent" + +`, tempLogFile.Name()) + tempConfigFile := CreateTestFile(tempDir, "config.yaml", yamlContent) + assert.NotNil(t, tempConfigFile) + + defer os.Remove(tempConfigFile.Name()) + // Write config content to the temp file + + // Create a mock config + config := config.NewMock(t) + + // Set CLI params + cliParams := &CliParams{ + LogConfigPath: tempConfigFile.Name(), + CoreConfigPath: tempConfigFile.Name(), + } + + outputChan, launcher, pipelineProvider := runAnalyzeLogsHelper(cliParams, config) + + expectedOutput := []string{ + "=== apm check ===", + "Configuration provider: file", + "Config for instance ID: apm:1234567890abcdef", + "{}", + "=== container_image check ===", + "Configuration provider: file", + "Config for instance ID: container_image:abcdef1234567890", + "{}", + "~", + "Auto-discovery IDs:", + "* _container_image", + "===", + } + + for i := 0; i < len(expectedOutput); i++ { + msg := <-outputChan + parsedMessage := processor.JSONPayload + err := json.Unmarshal(msg.GetContent(), &parsedMessage) + assert.NoError(t, err) + + assert.Equal(t, parsedMessage.Message, expectedOutput[i]) + } + + launcher.Stop() + pipelineProvider.Stop() +} diff --git a/cmd/agent/subcommands/subcommands.go b/cmd/agent/subcommands/subcommands.go index d9238caf6c0e3..939bdd2880f26 100644 --- a/cmd/agent/subcommands/subcommands.go +++ b/cmd/agent/subcommands/subcommands.go @@ -8,6 +8,7 @@ package subcommands import ( "github.com/DataDog/datadog-agent/cmd/agent/command" + cmdanalyzelogs "github.com/DataDog/datadog-agent/cmd/agent/subcommands/analyzelogs" cmdcheck "github.com/DataDog/datadog-agent/cmd/agent/subcommands/check" cmdconfig "github.com/DataDog/datadog-agent/cmd/agent/subcommands/config" cmdconfigcheck "github.com/DataDog/datadog-agent/cmd/agent/subcommands/configcheck" @@ -56,6 +57,7 @@ func AgentSubcommands() []command.SubcommandFactory { cmdhostname.Commands, cmdimport.Commands, cmdlaunchgui.Commands, + cmdanalyzelogs.Commands, cmdremoteconfig.Commands, cmdrun.Commands, cmdsecret.Commands, diff --git a/comp/logs/agent/agentimpl/analyze_logs_init.go b/comp/logs/agent/agentimpl/analyze_logs_init.go new file mode 100644 index 0000000000000..cfa476fb5a2ed --- /dev/null +++ b/comp/logs/agent/agentimpl/analyze_logs_init.go @@ -0,0 +1,61 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build !serverless + +package agentimpl + +import ( + "time" + + configComponent "github.com/DataDog/datadog-agent/comp/core/config" + "github.com/DataDog/datadog-agent/comp/logs/agent/config" + "github.com/DataDog/datadog-agent/comp/logs/agent/flare" + pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" + "github.com/DataDog/datadog-agent/pkg/logs/auditor" + "github.com/DataDog/datadog-agent/pkg/logs/diagnostic" + "github.com/DataDog/datadog-agent/pkg/logs/launchers" + filelauncher "github.com/DataDog/datadog-agent/pkg/logs/launchers/file" + "github.com/DataDog/datadog-agent/pkg/logs/message" + "github.com/DataDog/datadog-agent/pkg/logs/pipeline" + "github.com/DataDog/datadog-agent/pkg/logs/sources" + "github.com/DataDog/datadog-agent/pkg/logs/tailers" + "github.com/DataDog/datadog-agent/pkg/util/log" +) + +// SetUpLaunchers creates intializes the launcher. The launchers schedule the tailers to read the log files provided by the analyze-logs command +func SetUpLaunchers(conf configComponent.Component, sourceProvider *sources.ConfigSources) (chan *message.Message, *launchers.Launchers, pipeline.Provider) { + processingRules, err := config.GlobalProcessingRules(conf) + if err != nil { + log.Errorf("Error while getting processing rules from config: %v", err) + return nil, nil, nil + } + + diagnosticMessageReceiver := diagnostic.NewBufferedMessageReceiver(nil, nil) + pipelineProvider := pipeline.NewProcessorOnlyProvider(diagnosticMessageReceiver, processingRules, conf, nil) + + // setup the launchers + lnchrs := launchers.NewLaunchers(nil, pipelineProvider, nil, nil) + fileLimits := pkgconfigsetup.Datadog().GetInt("logs_config.open_files_limit") + fileValidatePodContainer := pkgconfigsetup.Datadog().GetBool("logs_config.validate_pod_container_id") + fileScanPeriod := time.Duration(pkgconfigsetup.Datadog().GetFloat64("logs_config.file_scan_period") * float64(time.Second)) + fileWildcardSelectionMode := pkgconfigsetup.Datadog().GetString("logs_config.file_wildcard_selection_mode") + fileLauncher := filelauncher.NewLauncher( + fileLimits, + filelauncher.DefaultSleepDuration, + fileValidatePodContainer, + fileScanPeriod, + fileWildcardSelectionMode, + flare.NewFlareController(), + nil) + tracker := tailers.NewTailerTracker() + + a := auditor.NewNullAuditor() + pipelineProvider.Start() + fileLauncher.Start(sourceProvider, pipelineProvider, a, tracker) + lnchrs.AddLauncher(fileLauncher) + outputChan := pipelineProvider.GetOutputChan() + return outputChan, lnchrs, pipelineProvider +} diff --git a/pkg/logs/launchers/types.go b/pkg/logs/launchers/types.go index 8585db583c104..fcba401073eb4 100644 --- a/pkg/logs/launchers/types.go +++ b/pkg/logs/launchers/types.go @@ -13,7 +13,7 @@ import ( ) // Launcher implementations launch logs pipelines in response to sources, and -// mange those pipelines' lifetime. +// manage those pipelines' lifetime. // // Launchers are started when the logs-agent starts, or when they are added to // the agent, and stopped when it stops. diff --git a/pkg/logs/pipeline/mock/mock.go b/pkg/logs/pipeline/mock/mock.go index 448ea1fb2416f..0dfaab71e6ec9 100644 --- a/pkg/logs/pipeline/mock/mock.go +++ b/pkg/logs/pipeline/mock/mock.go @@ -44,6 +44,10 @@ func (p *mockProvider) StopSDSProcessing() error { return nil } +func (p *mockProvider) GetOutputChan() chan *message.Message { + return nil +} + // Flush does nothing // //nolint:revive // TODO(AML) Fix revive linter diff --git a/pkg/logs/pipeline/processor_only_provider.go b/pkg/logs/pipeline/processor_only_provider.go new file mode 100644 index 0000000000000..906675e1360ff --- /dev/null +++ b/pkg/logs/pipeline/processor_only_provider.go @@ -0,0 +1,86 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package pipeline + +import ( + "context" + "strconv" + + "github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface" + "github.com/DataDog/datadog-agent/comp/logs/agent/config" + pkgconfigmodel "github.com/DataDog/datadog-agent/pkg/config/model" + pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" + "github.com/DataDog/datadog-agent/pkg/logs/diagnostic" + "github.com/DataDog/datadog-agent/pkg/logs/message" + "github.com/DataDog/datadog-agent/pkg/logs/metrics" + "github.com/DataDog/datadog-agent/pkg/logs/processor" +) + +// processorOnlyProvider implements the Provider provider interface and only contains the processor +type processorOnlyProvider struct { + processor *processor.Processor + inputChan chan *message.Message + outputChan chan *message.Message + pipelineMonitor *metrics.TelemetryPipelineMonitor +} + +// NewProcessorOnlyProvider is used by the logs check subcommand as the feature does not require the functionalities of the log pipeline other then the processor. +func NewProcessorOnlyProvider(diagnosticMessageReceiver diagnostic.MessageReceiver, processingRules []*config.ProcessingRule, cfg pkgconfigmodel.Reader, hostname hostnameinterface.Component) Provider { + chanSize := pkgconfigsetup.Datadog().GetInt("logs_config.message_channel_size") + outputChan := make(chan *message.Message, chanSize) + encoder := processor.JSONEncoder + inputChan := make(chan *message.Message, chanSize) + pipelineID := 0 + pipelineMonitor := metrics.NewTelemetryPipelineMonitor(strconv.Itoa(pipelineID)) + processor := processor.New(cfg, inputChan, outputChan, processingRules, + encoder, diagnosticMessageReceiver, hostname, pipelineMonitor) + + p := &processorOnlyProvider{ + processor: processor, + inputChan: inputChan, + outputChan: outputChan, + pipelineMonitor: pipelineMonitor, + } + + return p +} + +func (p *processorOnlyProvider) Start() { + p.processor.Start() +} + +func (p *processorOnlyProvider) Stop() { + p.processor.Stop() +} + +func (p *processorOnlyProvider) ReconfigureSDSStandardRules(_ []byte) (bool, error) { + return false, nil +} + +func (p *processorOnlyProvider) ReconfigureSDSAgentConfig(_ []byte) (bool, error) { + return false, nil +} + +func (p *processorOnlyProvider) StopSDSProcessing() error { + return nil +} + +func (p *processorOnlyProvider) NextPipelineChan() chan *message.Message { + return p.inputChan +} + +func (p *processorOnlyProvider) NextPipelineChanWithMonitor() (chan *message.Message, metrics.PipelineMonitor) { + return p.inputChan, p.pipelineMonitor +} + +func (p *processorOnlyProvider) GetOutputChan() chan *message.Message { + return p.outputChan +} + +// Flush flushes synchronously all the contained pipeline of this provider. +func (p *processorOnlyProvider) Flush(ctx context.Context) { + p.processor.Flush(ctx) +} diff --git a/pkg/logs/pipeline/provider.go b/pkg/logs/pipeline/provider.go index 9ee6ec8a5dfa0..15561004e8379 100644 --- a/pkg/logs/pipeline/provider.go +++ b/pkg/logs/pipeline/provider.go @@ -33,6 +33,7 @@ type Provider interface { ReconfigureSDSAgentConfig(config []byte) (bool, error) StopSDSProcessing() error NextPipelineChan() chan *message.Message + GetOutputChan() chan *message.Message NextPipelineChanWithMonitor() (chan *message.Message, metrics.PipelineMonitor) // Flush flushes all pipeline contained in this Provider Flush(ctx context.Context) @@ -183,6 +184,10 @@ func (p *provider) NextPipelineChan() chan *message.Message { return nextPipeline.InputChan } +func (p *provider) GetOutputChan() chan *message.Message { + return nil +} + // NextPipelineChanWithMonitor returns the next pipeline input channel with it's monitor. func (p *provider) NextPipelineChanWithMonitor() (chan *message.Message, metrics.PipelineMonitor) { pipelinesLen := len(p.pipelines) diff --git a/pkg/logs/processor/json.go b/pkg/logs/processor/json.go index 59d9503d93bea..d19b3f8406c93 100644 --- a/pkg/logs/processor/json.go +++ b/pkg/logs/processor/json.go @@ -18,6 +18,9 @@ const nanoToMillis = 1000000 // JSONEncoder is a shared json encoder. var JSONEncoder Encoder = &jsonEncoder{} +// JSONPayload is a shared JSON representation of a message +var JSONPayload = jsonPayload{} + // jsonEncoder transforms a message into a JSON byte array. type jsonEncoder struct{} diff --git a/pkg/logs/sources/config_source.go b/pkg/logs/sources/config_source.go new file mode 100644 index 0000000000000..649dd28fd689a --- /dev/null +++ b/pkg/logs/sources/config_source.go @@ -0,0 +1,46 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package sources + +// ConfigSources receives file paths to log configs and creates sources. The sources are added to a channel and read by the launcher. +// This class implements the SourceProvider interface +type ConfigSources struct { + addedByType map[string][]*LogSource +} + +// NewConfigSources provides an instance of ConfigSources. +func NewConfigSources() *ConfigSources { + return &ConfigSources{ + addedByType: make(map[string][]*LogSource), + } +} + +// AddSource adds source to the map of stored sources by type. +func (s *ConfigSources) AddSource(source *LogSource) { + s.addedByType[source.Config.Type] = append(s.addedByType[source.Config.Type], source) +} + +// SubscribeAll is required for the SourceProvider interface +func (s *ConfigSources) SubscribeAll() (added chan *LogSource, _ chan *LogSource) { + return +} + +// SubscribeForType returns a channel carrying LogSources for a given source type +func (s *ConfigSources) SubscribeForType(sourceType string) (added chan *LogSource, _ chan *LogSource) { + added = make(chan *LogSource) + go func() { + for _, logSource := range s.addedByType[sourceType] { + added <- logSource + } + }() + + return added, nil +} + +// GetAddedForType is required for the SourceProvider interface +func (s *ConfigSources) GetAddedForType(_ string) chan *LogSource { + return nil +} diff --git a/pkg/logs/sources/config_source_test.go b/pkg/logs/sources/config_source_test.go new file mode 100644 index 0000000000000..d66227cae62f5 --- /dev/null +++ b/pkg/logs/sources/config_source_test.go @@ -0,0 +1,82 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package sources + +import ( + "fmt" + "os" + "testing" + + "github.com/stretchr/testify/assert" + + logsConfig "github.com/DataDog/datadog-agent/comp/logs/agent/config" +) + +func CreateTestFile(tempDir string) *os.File { + // Ensure the directory exists + err := os.MkdirAll(tempDir, 0755) + if err != nil { + return nil + } + + // Specify the exact file name + filePath := fmt.Sprintf("%s/config.yaml", tempDir) + + // Create the file with the specified name + tempFile, err := os.Create(filePath) + if err != nil { + return nil + } + + // Write the content to the file + configContent := `logs: + - type: file + path: "/tmp/test.log" + service: "custom_logs" + source: "custom"` + + _, err = tempFile.Write([]byte(configContent)) + if err != nil { + tempFile.Close() // Close file before returning + return nil + } + + // Close the file after writing + tempFile.Close() + + // Reopen the file for returning if needed + file, err := os.Open(filePath) + if err != nil { + return nil + } + return file +} + +func TestSubscribeForTypeAndAddFileSource(t *testing.T) { + tempDir := "tmp/" + tempFile := CreateTestFile(tempDir) + defer os.RemoveAll(tempDir) + defer os.Remove(tempFile.Name()) + + wd, err := os.Getwd() + assert.NoError(t, err) + absolutePath := wd + "/" + tempFile.Name() + data, err := os.ReadFile(absolutePath) + assert.NoError(t, err) + logsConfig, err := logsConfig.ParseYAML(data) + assert.NoError(t, err) + configSource := NewConfigSources() + for _, cfg := range logsConfig { + source := NewLogSource("test-config-name", cfg) + configSource.AddSource(source) + } + + addedChan, _ := configSource.SubscribeForType("file") + added := <-addedChan + assert.NotNil(t, added) + assert.Equal(t, "file", added.Config.Type) + assert.Equal(t, "/tmp/test.log", added.Config.Path) +} diff --git a/releasenotes/notes/logs-check-feature-13a93c589fe0613d.yaml b/releasenotes/notes/logs-check-feature-13a93c589fe0613d.yaml new file mode 100644 index 0000000000000..b842e4e8f8a53 --- /dev/null +++ b/releasenotes/notes/logs-check-feature-13a93c589fe0613d.yaml @@ -0,0 +1,15 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +features: + - | + The Logs Agent Analyze feature introduces a new subcommand, `agent analyze-logs`, within the Datadog Agent. + This tool helps users test log configurations, regular expressions, and processing rules in isolation. + It offers a streamlined, cost-effective way to validate log configurations without + running the entire Datadog Agent or sending data to Datadog. This allows users to quickly identify configuration issues. + From 8a450cc476d33f6374164f1f00d92cdf65309558 Mon Sep 17 00:00:00 2001 From: Guy Arbitman Date: Tue, 10 Dec 2024 22:53:44 +0200 Subject: [PATCH 380/439] usm: telemetry: tests: Move Clear method to test only file (#31981) --- pkg/network/protocols/telemetry/registry.go | 12 ------------ .../protocols/telemetry/registry_testutil.go | 19 +++++++++++++++++++ 2 files changed, 19 insertions(+), 12 deletions(-) create mode 100644 pkg/network/protocols/telemetry/registry_testutil.go diff --git a/pkg/network/protocols/telemetry/registry.go b/pkg/network/protocols/telemetry/registry.go index d80df1df3394b..a49c997e5899d 100644 --- a/pkg/network/protocols/telemetry/registry.go +++ b/pkg/network/protocols/telemetry/registry.go @@ -60,18 +60,6 @@ func (r *registry) GetMetrics(params ...string) []metric { return result } -// Clear metrics -// WARNING: Only intended for tests -func Clear() { - globalRegistry.Lock() - globalRegistry.metrics = nil - globalRegistry.Unlock() - - telemetryDelta.mux.Lock() - telemetryDelta.stateByClientID = make(map[string]*clientState) - telemetryDelta.mux.Unlock() -} - func init() { globalRegistry = new(registry) } diff --git a/pkg/network/protocols/telemetry/registry_testutil.go b/pkg/network/protocols/telemetry/registry_testutil.go new file mode 100644 index 0000000000000..46777d052b4cc --- /dev/null +++ b/pkg/network/protocols/telemetry/registry_testutil.go @@ -0,0 +1,19 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2024-present Datadog, Inc. + +//go:build test + +package telemetry + +// Clear metrics +func Clear() { + globalRegistry.Lock() + globalRegistry.metrics = nil + globalRegistry.Unlock() + + telemetryDelta.mux.Lock() + telemetryDelta.stateByClientID = make(map[string]*clientState) + telemetryDelta.mux.Unlock() +} From 706fa948ac9d4d30b2d799eeb1db3dc3f8e1b501 Mon Sep 17 00:00:00 2001 From: Daniel Tafoya <63120739+daniel-taf@users.noreply.github.com> Date: Tue, 10 Dec 2024 17:32:44 -0500 Subject: [PATCH 381/439] [PROCS-4589] Split K8s e2e test (#31985) --- test/new-e2e/tests/process/k8s_test.go | 29 ++++++++++++++++++-------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/test/new-e2e/tests/process/k8s_test.go b/test/new-e2e/tests/process/k8s_test.go index 1533bea01cb36..7ec7ccff16888 100644 --- a/test/new-e2e/tests/process/k8s_test.go +++ b/test/new-e2e/tests/process/k8s_test.go @@ -156,21 +156,32 @@ func (s *K8sSuite) TestProcessDiscoveryCheck() { assertProcessDiscoveryCollected(t, payloads, "stress-ng-cpu [run]") } -func (s *K8sSuite) TestProcessCheckInCoreAgent() { - t := s.T() +type K8sCoreAgentSuite struct { + e2e.BaseSuite[environments.Kubernetes] +} +func TestK8sCoreAgentTestSuite(t *testing.T) { + t.Parallel() helmValues, err := createHelmValues(helmConfig{ ProcessCollection: true, RunInCoreAgent: true, }) require.NoError(t, err) - s.UpdateEnv(awskubernetes.KindProvisioner( - awskubernetes.WithWorkloadApp(func(e config.Env, kubeProvider *kubernetes.Provider) (*kubeComp.Workload, error) { - return cpustress.K8sAppDefinition(e, kubeProvider, "workload-stress") - }), - awskubernetes.WithAgentOptions(kubernetesagentparams.WithHelmValues(helmValues)), - )) + options := []e2e.SuiteOption{ + e2e.WithProvisioner(awskubernetes.KindProvisioner( + awskubernetes.WithWorkloadApp(func(e config.Env, kubeProvider *kubernetes.Provider) (*kubeComp.Workload, error) { + return cpustress.K8sAppDefinition(e, kubeProvider, "workload-stress") + }), + awskubernetes.WithAgentOptions(kubernetesagentparams.WithHelmValues(helmValues)), + )), + } + + e2e.Run(t, &K8sCoreAgentSuite{}, options...) +} + +func (s *K8sCoreAgentSuite) TestProcessCheckInCoreAgent() { + t := s.T() var status AgentStatus defer func() { @@ -207,7 +218,7 @@ func (s *K8sSuite) TestProcessCheckInCoreAgent() { assertContainersNotCollected(t, payloads, []string{"process-agent"}) } -func (s *K8sSuite) TestProcessCheckInCoreAgentWithNPM() { +func (s *K8sCoreAgentSuite) TestProcessCheckInCoreAgentWithNPM() { t := s.T() helmValues, err := createHelmValues(helmConfig{ From c37d0d65dfc4aa84ba645881dd562d29597cfb11 Mon Sep 17 00:00:00 2001 From: Alexandre Yang Date: Wed, 11 Dec 2024 09:48:22 +0100 Subject: [PATCH 382/439] [netpath] Add initial e2e tests for Network Path Integration (#31964) --- .github/CODEOWNERS | 1 + .gitlab-ci.yml | 10 +++ .gitlab/e2e/e2e.yml | 9 ++ .../netpath/network_path_integration_test.go | 88 +++++++++++++++++++ 4 files changed, 108 insertions(+) create mode 100644 test/new-e2e/tests/netpath/network_path_integration_test.go diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 51fba3f61278c..4647c2ede6ae0 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -607,6 +607,7 @@ /test/new-e2e/tests/language-detection @DataDog/processes /test/new-e2e/tests/ndm @DataDog/ndm-core /test/new-e2e/tests/ndm/netflow @DataDog/ndm-integrations +/test/new-e2e/tests/netpath @DataDog/Networks @DataDog/network-device-monitoring /test/new-e2e/tests/npm @DataDog/Networks /test/new-e2e/tests/npm/ec2_1host_wkit_test.go @DataDog/Networks @DataDog/windows-kernel-integrations /test/new-e2e/tests/orchestrator @DataDog/container-app diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index abfece6aac73b..67afb78dc55d8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -981,6 +981,16 @@ workflow: compare_to: main # TODO: use a variable, when this is supported https://gitlab.com/gitlab-org/gitlab/-/issues/369916 when: on_success +.on_netpath_or_e2e_changes: + - !reference [.on_e2e_main_release_or_rc] + - changes: + paths: + - pkg/collector/corechecks/networkpath/**/* + - test/new-e2e/tests/netpath/**/* + - test/new-e2e/go.mod + compare_to: main # TODO: use a variable, when this is supported https://gitlab.com/gitlab-org/gitlab/-/issues/369916 + when: on_success + .on_otel_or_e2e_changes: - !reference [.on_e2e_main_release_or_rc] - changes: diff --git a/.gitlab/e2e/e2e.yml b/.gitlab/e2e/e2e.yml index 6064179b1069b..c62f11a8165e2 100644 --- a/.gitlab/e2e/e2e.yml +++ b/.gitlab/e2e/e2e.yml @@ -511,6 +511,15 @@ new-e2e-ha-agent: TARGETS: ./tests/ha-agent TEAM: ndm-core +new-e2e-netpath: + extends: .new_e2e_template_needs_deb_x64 + rules: + - !reference [.on_netpath_or_e2e_changes] + - !reference [.manual] + variables: + TARGETS: ./tests/netpath + TEAM: network-performance-monitoring + new-e2e-windows-systemprobe: extends: .new_e2e_template rules: diff --git a/test/new-e2e/tests/netpath/network_path_integration_test.go b/test/new-e2e/tests/netpath/network_path_integration_test.go new file mode 100644 index 0000000000000..d93729d413f7a --- /dev/null +++ b/test/new-e2e/tests/netpath/network_path_integration_test.go @@ -0,0 +1,88 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package netpath contains e2e tests for Network Path Integration feature +package netpath + +import ( + _ "embed" + "fmt" + "testing" + "time" + + "github.com/DataDog/datadog-agent/test/fakeintake/aggregator" + fakeintakeclient "github.com/DataDog/datadog-agent/test/fakeintake/client" + "github.com/DataDog/test-infra-definitions/components/datadog/agentparams" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments" + awshost "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments/aws/host" +) + +type networkPathIntegrationTestSuite struct { + e2e.BaseSuite[environments.Host] +} + +// TestNetworkPathIntegrationSuite runs the Network Path Integration e2e suite +func TestNetworkPathIntegrationSuite(t *testing.T) { + // language=yaml + sysProbeConfig := ` +traceroute: + enabled: true +` + + // language=yaml + networkPathIntegration := ` +instances: +- hostname: api.datadoghq.eu + protocol: TCP + port: 443 +- hostname: 8.8.8.8 + protocol: UDP +` + + e2e.Run(t, &networkPathIntegrationTestSuite{}, e2e.WithProvisioner(awshost.Provisioner( + awshost.WithAgentOptions( + agentparams.WithSystemProbeConfig(sysProbeConfig), + agentparams.WithIntegration("network_path.d", networkPathIntegration), + )), + )) +} + +func (s *networkPathIntegrationTestSuite) TestNetworkPathIntegrationMetrics() { + fakeClient := s.Env().FakeIntake.Client() + + s.EventuallyWithT(func(c *assert.CollectT) { + s.T().Log("try assert datadog.network_path.path.monitored metric") + metrics, err := fakeClient.FilterMetrics("datadog.network_path.path.monitored") + require.NoError(c, err) + assert.NotEmpty(c, metrics) + for _, metric := range metrics { + s.T().Logf(" datadog.network_path.path.monitored metric tags: %+v", metric.Tags) + } + + destinationsTagsToAssert := [][]string{ + {"destination_hostname:api.datadoghq.eu", "protocol:TCP", "destination_port:443"}, + {"destination_hostname:8.8.8.8", "protocol:UDP"}, + } + for _, tags := range destinationsTagsToAssert { + // assert destination is monitored + metrics, err = fakeClient.FilterMetrics("datadog.network_path.path.monitored", fakeintakeclient.WithTags[*aggregator.MetricSeries](tags)) + assert.NoError(c, err) + assert.NotEmpty(c, metrics, fmt.Sprintf("metric with tags `%v` not found", tags)) + + // assert hops + metrics, err = fakeClient.FilterMetrics("datadog.network_path.path.hops", + fakeintakeclient.WithTags[*aggregator.MetricSeries](tags), + fakeintakeclient.WithMetricValueHigherThan(0), + ) + assert.NoError(c, err) + assert.NotEmpty(c, metrics, fmt.Sprintf("metric with tags `%v` not found", tags)) + + } + }, 5*time.Minute, 3*time.Second) +} From d8ef0ba07644c99e1c65f49a299890119a28529a Mon Sep 17 00:00:00 2001 From: Florent Clarret Date: Wed, 11 Dec 2024 10:01:46 +0100 Subject: [PATCH 383/439] Update the exclude_members for the QA card in the Agent Delivery team (#31994) --- .ddqa/config.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ddqa/config.toml b/.ddqa/config.toml index eac6d757e5282..19af82cde8450 100644 --- a/.ddqa/config.toml +++ b/.ddqa/config.toml @@ -48,7 +48,7 @@ jira_issue_type = "Task" jira_statuses = ["To Do", "In Progress", "Done"] github_team = "agent-delivery" github_labels = ["team/agent-delivery"] -exclude_members = ["hithwen"] +exclude_members = ["KSerrania"] [teams."Universal Service Monitoring"] jira_project = "USMON" From 496b97f64d980a5fc0859ab039d4f0c3e7718b9f Mon Sep 17 00:00:00 2001 From: Raphael Gavache Date: Wed, 11 Dec 2024 10:11:40 +0100 Subject: [PATCH 384/439] [fleet] First working set of databricks script e2e (#31984) --- pkg/fleet/installer/setup/common/config.go | 7 +++++-- pkg/fleet/installer/setup/djm/databricks.go | 6 +++--- pkg/fleet/installer/setup/setup.go | 9 +++++---- .../tests/installer/script/databricks_test.go | 19 +++++++++++++++---- 4 files changed, 28 insertions(+), 13 deletions(-) diff --git a/pkg/fleet/installer/setup/common/config.go b/pkg/fleet/installer/setup/common/config.go index 2fb775ed1066e..865b617c6283a 100644 --- a/pkg/fleet/installer/setup/common/config.go +++ b/pkg/fleet/installer/setup/common/config.go @@ -18,7 +18,6 @@ import ( "github.com/DataDog/datadog-agent/pkg/fleet/installer/oci" "github.com/DataDog/datadog-agent/pkg/fleet/installer/packages" "github.com/DataDog/datadog-agent/pkg/fleet/internal/exec" - "github.com/DataDog/datadog-agent/pkg/fleet/internal/paths" "gopkg.in/yaml.v2" ) @@ -220,7 +219,11 @@ func (i *HostInstaller) ConfigureAndInstall(ctx context.Context) error { return fmt.Errorf("failed to write configurations: %w", err) } - cmd := exec.NewInstallerExec(i.env, paths.StableInstallerPath) + exePath, err := os.Executable() + if err != nil { + return fmt.Errorf("failed to get executable path: %w", err) + } + cmd := exec.NewInstallerExec(i.env, exePath) if i.injectorVersion != "" { if err := cmd.Install(ctx, oci.PackageURL(i.env, "datadog-apm-inject", i.injectorVersion), nil); err != nil { diff --git a/pkg/fleet/installer/setup/djm/databricks.go b/pkg/fleet/installer/setup/djm/databricks.go index f13127c4dcbc5..0e6675b3aa2ae 100644 --- a/pkg/fleet/installer/setup/djm/databricks.go +++ b/pkg/fleet/installer/setup/djm/databricks.go @@ -19,9 +19,9 @@ import ( ) const ( - databricksInjectorVersion = "0.21.0" - databricksJavaVersion = "1.41.1" - databricksAgentVersion = "7.57.2" + databricksInjectorVersion = "0.21.0-1" + databricksJavaVersion = "1.41.1-1" + databricksAgentVersion = "7.57.2-1" logsService = "databricks" ) diff --git a/pkg/fleet/installer/setup/setup.go b/pkg/fleet/installer/setup/setup.go index 89b122d343aae..0daa479d73b6e 100644 --- a/pkg/fleet/installer/setup/setup.go +++ b/pkg/fleet/installer/setup/setup.go @@ -11,6 +11,7 @@ import ( "fmt" "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/packages" "github.com/DataDog/datadog-agent/pkg/fleet/installer/setup/djm" "github.com/DataDog/datadog-agent/pkg/fleet/internal/exec" "github.com/DataDog/datadog-agent/pkg/fleet/internal/paths" @@ -25,11 +26,11 @@ const ( func Setup(ctx context.Context, env *env.Env, flavor string) error { switch flavor { case FlavorDatabricks: - // temporary until the whole e2e test pipeline is setup + if err := packages.SetupInstaller(ctx); err != nil { + return fmt.Errorf("failed to setup installer: %w", err) + } if err := djm.SetupDatabricks(ctx, env); err != nil { - fmt.Printf("Databricks setup failed: %v\n", err) - } else { - fmt.Println("Databricks setup completed") + return fmt.Errorf("failed to setup Databricks: %w", err) } return nil default: diff --git a/test/new-e2e/tests/installer/script/databricks_test.go b/test/new-e2e/tests/installer/script/databricks_test.go index f947ae38336cc..af0a2d9439f76 100644 --- a/test/new-e2e/tests/installer/script/databricks_test.go +++ b/test/new-e2e/tests/installer/script/databricks_test.go @@ -24,11 +24,22 @@ type vmUpdaterSuite struct { func (s *vmUpdaterSuite) TestInstallScript() { url := fmt.Sprintf("https://installtesting.datad0g.com/%s/scripts/install-databricks.sh", s.commitHash) - s.Env().RemoteHost.MustExecute(fmt.Sprintf("curl -L %s > install_script; export DD_INSTALLER_REGISTRY_URL_INSTALLER_PACKAGE=installtesting.datad0g.com; sudo -E bash install_script", url)) + + // worker + s.Env().RemoteHost.MustExecute(fmt.Sprintf("curl -L %s > install_script; export DD_API_KEY=test; export DD_INSTALLER_REGISTRY_URL_INSTALLER_PACKAGE=installtesting.datad0g.com; sudo -E bash install_script", url)) + s.Env().RemoteHost.MustExecute("sudo test -d /opt/datadog-packages/datadog-agent/7.57.2-1") + + // driver + s.Env().RemoteHost.MustExecute(fmt.Sprintf("curl -L %s > install_script; export DB_IS_DRIVER=true; export DD_API_KEY=test; export DD_INSTALLER_REGISTRY_URL_INSTALLER_PACKAGE=installtesting.datad0g.com; sudo -E bash install_script", url)) + s.Env().RemoteHost.MustExecute("sudo test -d /opt/datadog-packages/datadog-agent/7.57.2-1") + s.Env().RemoteHost.MustExecute("sudo test -d /opt/datadog-packages/datadog-apm-inject/0.21.0") + s.Env().RemoteHost.MustExecute("sudo test -d /opt/datadog-packages/datadog-apm-library-java/1.41.1") } func TestUpdaterSuite(t *testing.T) { - e2e.Run(t, &vmUpdaterSuite{commitHash: os.Getenv("CI_COMMIT_SHA")}, e2e.WithProvisioner(awshost.ProvisionerNoFakeIntake( - awshost.WithEC2InstanceOptions(ec2.WithOSArch(osdesc.UbuntuDefault, osdesc.ARM64Arch)), - ))) + for _, arch := range []osdesc.Architecture{osdesc.AMD64Arch, osdesc.ARM64Arch} { + e2e.Run(t, &vmUpdaterSuite{commitHash: os.Getenv("CI_COMMIT_SHA")}, e2e.WithProvisioner(awshost.ProvisionerNoFakeIntake( + awshost.WithEC2InstanceOptions(ec2.WithOSArch(osdesc.UbuntuDefault, arch)), + ))) + } } From d407f0129827fa1942d9e26a6d56daf208d6de40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20Beauz=C3=A9e-Luyssen?= Date: Wed, 11 Dec 2024 10:50:18 +0100 Subject: [PATCH 385/439] omnibus: add more patterns to the env exclusion list (#31995) --- tasks/libs/common/omnibus.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tasks/libs/common/omnibus.py b/tasks/libs/common/omnibus.py index 803400026082b..b789b287da611 100644 --- a/tasks/libs/common/omnibus.py +++ b/tasks/libs/common/omnibus.py @@ -38,6 +38,7 @@ def env_filter(item): 'AGENT_', 'API_KEY_', 'APP_KEY_', + 'ATLASSIAN_', 'AWS_', 'BAZEL_', 'BETA_', @@ -53,13 +54,14 @@ def env_filter(item): 'DESTINATION_', 'DOCKER_', 'DYNAMIC_', - 'E2E_TESTS_', + 'E2E_', 'EMISSARY_', 'EXECUTOR_', 'FF_', 'GITHUB_', 'GITLAB_', 'GIT_', + 'INSTALLER_', 'JIRA_', 'K8S_', 'KITCHEN_', @@ -103,6 +105,8 @@ def env_filter(item): "CHART", "CI", "CLUSTER", + "CODECOV", + "CODECOV_TOKEN", "COMPUTERNAME", "CONDA_PROMPT_MODIFIER", "CONSUL_HTTP_ADDR", @@ -124,6 +128,7 @@ def env_filter(item): "HOST_IP", "INFOPATH", "INSTALL_SCRIPT_API_KEY_ORG2", + "INSTANCE_TYPE", "INTEGRATION_WHEELS_CACHE_BUCKET", "IRBRC", "KITCHEN_INFRASTRUCTURE_FLAKES_RETRY", @@ -148,6 +153,7 @@ def env_filter(item): "SIGN", "SHELL", "SHLVL", + "SLACK_AGENT", "STATIC_BINARIES_DIR", "STATSD_URL", "SYSTEM_PROBE_BINARIES_DIR", From 8ca1369d2b6deeee0c640ce05dfe2c38186b61d5 Mon Sep 17 00:00:00 2001 From: Jonathan Ribas Date: Wed, 11 Dec 2024 10:52:35 +0100 Subject: [PATCH 386/439] [CWS] Enrich ptrace tracee resolution error log (#31962) --- pkg/security/probe/probe_ebpf.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go index e262eb2205607..ca55fb768bd5f 100644 --- a/pkg/security/probe/probe_ebpf.go +++ b/pkg/security/probe/probe_ebpf.go @@ -1097,7 +1097,8 @@ func (p *EBPFProbe) handleEvent(CPU int, data []byte) { } else { pid, err := utils.TryToResolveTraceePid(event.ProcessContext.Process.Pid, event.PTrace.NSPID) if err != nil { - seclog.Debugf("PTrace err: %v", err) + seclog.Debugf("PTrace tracee resolution error for process %s in container %s: %v", + event.ProcessContext.Process.FileEvent.PathnameStr, containerID, err) return } pidToResolve = pid From 792e70ef02e03b36a744a0a3fa3e5963a2b6ea11 Mon Sep 17 00:00:00 2001 From: Steven Blumenthal Date: Wed, 11 Dec 2024 11:22:51 +0100 Subject: [PATCH 387/439] Remove flaky test marker on kind e2e test suite (#31998) --- flakes.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/flakes.yaml b/flakes.yaml index 49c403b802517..ab2af6b55f3ea 100644 --- a/flakes.yaml +++ b/flakes.yaml @@ -11,5 +11,3 @@ test/new-e2e/tests/containers: - TestECSSuite/TestCPU/metric___container.cpu.usage{^ecs_container_name:stress-ng$} - TestEKSSuite/TestCPU/metric___container.cpu.usage{^kube_deployment:stress-ng$,^kube_namespace:workload-cpustress$} - TestKindSuite/TestCPU/metric___container.cpu.usage{^kube_deployment:stress-ng$,^kube_namespace:workload-cpustress$} - - TestKindSuite/TestAdmissionControllerWithAutoDetectedLanguage - - TestKindSuite From d2418875c4f6f59e766962b4783625703a2954ed Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Wed, 11 Dec 2024 11:39:18 +0100 Subject: [PATCH 388/439] [CWS] cleanup hacky check for security-agent flavor in system-probe SBOM code path (#31988) --- pkg/config/setup/system_probe.go | 3 +++ pkg/sbom/collectors/host/host.go | 7 +------ pkg/sbom/types/types.go | 1 - pkg/security/tests/sbom_test.go | 9 --------- 4 files changed, 4 insertions(+), 16 deletions(-) diff --git a/pkg/config/setup/system_probe.go b/pkg/config/setup/system_probe.go index a31d90efac8d8..bdc97ee3d902a 100644 --- a/pkg/config/setup/system_probe.go +++ b/pkg/config/setup/system_probe.go @@ -80,6 +80,9 @@ func InitSystemProbeConfig(cfg pkgconfigmodel.Config) { cfg.BindEnvAndSetDefault("sbom.cache.clean_interval", "30m") // used by custom cache. cfg.BindEnvAndSetDefault("sbom.scan_queue.base_backoff", "5m") cfg.BindEnvAndSetDefault("sbom.scan_queue.max_backoff", "1h") + // those configs are used by the core agent path, but are not used by the system probe + cfg.SetKnown("sbom.container_image.enabled") + cfg.SetKnown("sbom.container_image.overlayfs_direct_scan") // Auto exit configuration cfg.BindEnvAndSetDefault("auto_exit.validation_period", 60) diff --git a/pkg/sbom/collectors/host/host.go b/pkg/sbom/collectors/host/host.go index 969dff47ba3a7..bb792b0e2f313 100644 --- a/pkg/sbom/collectors/host/host.go +++ b/pkg/sbom/collectors/host/host.go @@ -16,7 +16,6 @@ import ( workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" "github.com/DataDog/datadog-agent/pkg/sbom" "github.com/DataDog/datadog-agent/pkg/sbom/collectors" - "github.com/DataDog/datadog-agent/pkg/util/flavor" "github.com/DataDog/datadog-agent/pkg/util/log" "github.com/DataDog/datadog-agent/pkg/util/optional" "github.com/DataDog/datadog-agent/pkg/util/trivy" @@ -43,11 +42,7 @@ func (c *Collector) Init(cfg config.Component, wmeta optional.Option[workloadmet return err } c.trivyCollector = trivyCollector - if flavor.GetFlavor() == flavor.SecurityAgent { - c.opts = sbom.ScanOptions{Analyzers: []string{trivy.OSAnalyzers}, Fast: false, CollectFiles: true} - } else { - c.opts = sbom.ScanOptionsFromConfig(cfg, false) - } + c.opts = sbom.ScanOptionsFromConfig(cfg, false) return nil } diff --git a/pkg/sbom/types/types.go b/pkg/sbom/types/types.go index 8b5989cd5ed23..0e18db96da20b 100644 --- a/pkg/sbom/types/types.go +++ b/pkg/sbom/types/types.go @@ -23,7 +23,6 @@ type ScanOptions struct { Timeout time.Duration WaitAfter time.Duration Fast bool - CollectFiles bool UseMount bool OverlayFsScan bool } diff --git a/pkg/security/tests/sbom_test.go b/pkg/security/tests/sbom_test.go index 3a0588aba3861..c4309b029ba5c 100644 --- a/pkg/security/tests/sbom_test.go +++ b/pkg/security/tests/sbom_test.go @@ -10,7 +10,6 @@ package tests import ( "fmt" - "os" "os/exec" "testing" @@ -18,7 +17,6 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" "github.com/DataDog/datadog-agent/pkg/security/secl/model" "github.com/DataDog/datadog-agent/pkg/security/secl/rules" - "github.com/DataDog/datadog-agent/pkg/util/flavor" "github.com/avast/retry-go/v4" ) @@ -30,13 +28,6 @@ func TestSBOM(t *testing.T) { t.Skip("Skip test spawning docker containers on docker") } - originalFlavor := flavor.GetFlavor() - flavor.SetFlavor(flavor.SecurityAgent) - defer func() { - flavor.SetFlavor(originalFlavor) - }() - os.Chdir("/") - ruleDefs := []*rules.RuleDefinition{ { ID: "test_file_package", From f238a89194b1176281a0bfef2bcc7c253033aa64 Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Wed, 11 Dec 2024 11:52:41 +0100 Subject: [PATCH 389/439] [CWS] store dump in `localDumps` only if persist was successful (#32001) --- .../security_profile/dump/local_storage.go | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/pkg/security/security_profile/dump/local_storage.go b/pkg/security/security_profile/dump/local_storage.go index a1fa0c334806d..8510ea923b57b 100644 --- a/pkg/security/security_profile/dump/local_storage.go +++ b/pkg/security/security_profile/dump/local_storage.go @@ -182,16 +182,6 @@ func (storage *ActivityDumpLocalStorage) Persist(request config.StorageRequest, // set activity dump size for current encoding ad.Metadata.Size = uint64(len(raw.Bytes())) - // add the file to the list of local dumps (thus removing one or more files if we reached the limit) - if storage.localDumps != nil { - filePaths, ok := storage.localDumps.Get(ad.Metadata.Name) - if !ok { - storage.localDumps.Add(ad.Metadata.Name, &[]string{outputPath}) - } else { - *filePaths = append(*filePaths, outputPath) - } - } - // create output file _ = os.MkdirAll(request.OutputDirectory, 0400) tmpOutputPath := outputPath + ".tmp" @@ -221,6 +211,17 @@ func (storage *ActivityDumpLocalStorage) Persist(request config.StorageRequest, } seclog.Infof("[%s] file for [%s] written at: [%s]", request.Format, ad.GetSelectorStr(), outputPath) + + // add the file to the list of local dumps (thus removing one or more files if we reached the limit) + if storage.localDumps != nil { + filePaths, ok := storage.localDumps.Get(ad.Metadata.Name) + if !ok { + storage.localDumps.Add(ad.Metadata.Name, &[]string{outputPath}) + } else { + *filePaths = append(*filePaths, outputPath) + } + } + return nil } From 623bea046b6c811266d986ae1329b584f107e13a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A8le=20Oul=C3=A8s?= Date: Wed, 11 Dec 2024 12:07:29 +0100 Subject: [PATCH 390/439] Add tagger tags to pod manifests (#31565) --- comp/otelcol/ddflareextension/impl/go.mod | 2 +- comp/otelcol/ddflareextension/impl/go.sum | 4 ++-- comp/otelcol/logsagentpipeline/go.mod | 2 +- comp/otelcol/logsagentpipeline/go.sum | 4 ++-- .../logsagentpipelineimpl/go.mod | 2 +- .../logsagentpipelineimpl/go.sum | 4 ++-- .../components/exporter/datadogexporter/go.mod | 2 +- .../components/exporter/datadogexporter/go.sum | 4 ++-- .../exporter/serializerexporter/go.mod | 2 +- .../exporter/serializerexporter/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- .../orchestrator/processors/common/base.go | 5 +++++ .../cluster/orchestrator/processors/k8s/pod.go | 17 +++++++++++++++++ .../orchestrator/processors/processor.go | 4 ++++ pkg/logs/pipeline/go.mod | 2 +- pkg/logs/pipeline/go.sum | 4 ++-- pkg/logs/processor/go.mod | 2 +- pkg/logs/processor/go.sum | 4 ++-- pkg/process/util/api/go.mod | 2 +- pkg/process/util/api/go.sum | 4 ++-- pkg/serializer/go.mod | 2 +- pkg/serializer/go.sum | 4 ++-- ...-tags-to-pod-manifests-617c152d112e21e3.yaml | 3 +++ test/fakeintake/go.mod | 2 +- test/fakeintake/go.sum | 4 ++-- test/new-e2e/go.mod | 2 +- test/new-e2e/go.sum | 4 ++-- test/otel/go.mod | 2 +- test/otel/go.sum | 4 ++-- 30 files changed, 68 insertions(+), 39 deletions(-) create mode 100644 releasenotes/notes/add-tagger-tags-to-pod-manifests-617c152d112e21e3.yaml diff --git a/comp/otelcol/ddflareextension/impl/go.mod b/comp/otelcol/ddflareextension/impl/go.mod index d25ace6070271..f6184768bde7d 100644 --- a/comp/otelcol/ddflareextension/impl/go.mod +++ b/comp/otelcol/ddflareextension/impl/go.mod @@ -180,7 +180,7 @@ require ( github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect github.com/Code-Hex/go-generics-cache v1.5.1 // indirect - github.com/DataDog/agent-payload/v5 v5.0.137 // indirect + github.com/DataDog/agent-payload/v5 v5.0.138 // indirect github.com/DataDog/datadog-agent/comp/core/config v0.59.0 // indirect github.com/DataDog/datadog-agent/comp/core/flare/builder v0.59.0 // indirect github.com/DataDog/datadog-agent/comp/core/flare/types v0.59.0 // indirect diff --git a/comp/otelcol/ddflareextension/impl/go.sum b/comp/otelcol/ddflareextension/impl/go.sum index a9f2e49111934..671e97841c79b 100644 --- a/comp/otelcol/ddflareextension/impl/go.sum +++ b/comp/otelcol/ddflareextension/impl/go.sum @@ -59,8 +59,8 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Code-Hex/go-generics-cache v1.5.1 h1:6vhZGc5M7Y/YD8cIUcY8kcuQLB4cHR7U+0KMqAA0KcU= github.com/Code-Hex/go-generics-cache v1.5.1/go.mod h1:qxcC9kRVrct9rHeiYpFWSoW1vxyillCVzX13KZG8dl4= -github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= -github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= +github.com/DataDog/agent-payload/v5 v5.0.138 h1:Wg7hmWuoLC/o0X3zZ+uGcfRHPyaytljudgSY9O59zjc= +github.com/DataDog/agent-payload/v5 v5.0.138/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/datadog-agent/comp/core/log v0.56.2 h1:qvBT+FfjKGqimyEvmsNHCZKbTfBJAdUZSVy2IZQ8HS4= github.com/DataDog/datadog-agent/comp/core/log v0.56.2/go.mod h1:ivJ/RMZjTNkoPPNDX+v/nnBwABLCiMv1vQA5tk/HCR4= github.com/DataDog/datadog-api-client-go/v2 v2.31.0 h1:JfJhYlHfLzvauI8u6h23smTooWYe6quNhhg9gpTszWY= diff --git a/comp/otelcol/logsagentpipeline/go.mod b/comp/otelcol/logsagentpipeline/go.mod index 40a8e60d9efba..f969df266b412 100644 --- a/comp/otelcol/logsagentpipeline/go.mod +++ b/comp/otelcol/logsagentpipeline/go.mod @@ -63,7 +63,7 @@ replace ( require github.com/DataDog/datadog-agent/pkg/logs/pipeline v0.56.0-rc.3 require ( - github.com/DataDog/agent-payload/v5 v5.0.137 // indirect + github.com/DataDog/agent-payload/v5 v5.0.138 // indirect github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect github.com/DataDog/datadog-agent/comp/core/telemetry v0.56.0-rc.3 // indirect diff --git a/comp/otelcol/logsagentpipeline/go.sum b/comp/otelcol/logsagentpipeline/go.sum index 97219095a045b..9285d14a5c66a 100644 --- a/comp/otelcol/logsagentpipeline/go.sum +++ b/comp/otelcol/logsagentpipeline/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= -github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= +github.com/DataDog/agent-payload/v5 v5.0.138 h1:Wg7hmWuoLC/o0X3zZ+uGcfRHPyaytljudgSY9O59zjc= +github.com/DataDog/agent-payload/v5 v5.0.138/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 h1:RoH7VLzTnxHEugRPIgnGlxwDFszFGI7b3WZZUtWuPRM= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42/go.mod h1:TX7CTOQ3LbQjfAi4SwqUoR5gY1zfUk7VRBDTuArjaDc= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod index 25af1fd191eb1..777d025c85789 100644 --- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod +++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod @@ -89,7 +89,7 @@ require ( ) require ( - github.com/DataDog/agent-payload/v5 v5.0.137 // indirect + github.com/DataDog/agent-payload/v5 v5.0.138 // indirect github.com/DataDog/datadog-agent/comp/core/flare/builder v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/core/flare/types v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum index 97219095a045b..9285d14a5c66a 100644 --- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum +++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= -github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= +github.com/DataDog/agent-payload/v5 v5.0.138 h1:Wg7hmWuoLC/o0X3zZ+uGcfRHPyaytljudgSY9O59zjc= +github.com/DataDog/agent-payload/v5 v5.0.138/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 h1:RoH7VLzTnxHEugRPIgnGlxwDFszFGI7b3WZZUtWuPRM= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42/go.mod h1:TX7CTOQ3LbQjfAi4SwqUoR5gY1zfUk7VRBDTuArjaDc= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod index cab50f84895bc..075d17c6084f3 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod @@ -130,7 +130,7 @@ require ( ) require ( - github.com/DataDog/agent-payload/v5 v5.0.137 // indirect + github.com/DataDog/agent-payload/v5 v5.0.138 // indirect github.com/DataDog/datadog-agent/comp/core/config v0.57.1 // indirect github.com/DataDog/datadog-agent/comp/core/flare/builder v0.57.1 // indirect github.com/DataDog/datadog-agent/comp/core/flare/types v0.57.1 // indirect diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum index 298ecceb323a8..ca4a45729f362 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= -github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= +github.com/DataDog/agent-payload/v5 v5.0.138 h1:Wg7hmWuoLC/o0X3zZ+uGcfRHPyaytljudgSY9O59zjc= +github.com/DataDog/agent-payload/v5 v5.0.138/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/datadog-api-client-go/v2 v2.31.0 h1:JfJhYlHfLzvauI8u6h23smTooWYe6quNhhg9gpTszWY= github.com/DataDog/datadog-api-client-go/v2 v2.31.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U= github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU= diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod index 4ae9f643df3cf..5803c7e3fe19a 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod @@ -90,7 +90,7 @@ require ( ) require ( - github.com/DataDog/agent-payload/v5 v5.0.137 // indirect + github.com/DataDog/agent-payload/v5 v5.0.138 // indirect github.com/DataDog/datadog-agent/comp/core/config v0.57.1 // indirect github.com/DataDog/datadog-agent/comp/core/flare/builder v0.57.1 // indirect github.com/DataDog/datadog-agent/comp/core/flare/types v0.57.1 // indirect diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum index 89c84f20e836c..f50a19e48a061 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= -github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= +github.com/DataDog/agent-payload/v5 v5.0.138 h1:Wg7hmWuoLC/o0X3zZ+uGcfRHPyaytljudgSY9O59zjc= +github.com/DataDog/agent-payload/v5 v5.0.138/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 h1:EbzDX8HPk5uE2FsJYxD74QmMw0/3CqSKhEr6teh0ncQ= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49/go.mod h1:SvsjzyJlSg0rKsqYgdcFxeEVflx3ZNAyFfkUHP0TxXg= github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.21.0 h1:VS4NTqwczwezMVvI6A7xYR3ugPmMUJ4FcdFrsdnZI2I= diff --git a/go.mod b/go.mod index fd42d1719f1f8..f220fd26849fc 100644 --- a/go.mod +++ b/go.mod @@ -640,7 +640,7 @@ require ( require ( github.com/DATA-DOG/go-sqlmock v1.5.2 - github.com/DataDog/agent-payload/v5 v5.0.137 + github.com/DataDog/agent-payload/v5 v5.0.138 github.com/DataDog/datadog-agent/comp/api/api/def v0.56.0-rc.3 github.com/DataDog/datadog-agent/comp/core/config v0.59.0 github.com/DataDog/datadog-agent/comp/core/flare/types v0.59.0 diff --git a/go.sum b/go.sum index 29b837bb26f00..b7142253bb0ab 100644 --- a/go.sum +++ b/go.sum @@ -115,8 +115,8 @@ github.com/CycloneDX/cyclonedx-go v0.9.1 h1:yffaWOZsv77oTJa/SdVZYdgAgFioCeycBUKk github.com/CycloneDX/cyclonedx-go v0.9.1/go.mod h1:NE/EWvzELOFlG6+ljX/QeMlVt9VKcTwu8u0ccsACEsw= github.com/DATA-DOG/go-sqlmock v1.5.2 h1:OcvFkGmslmlZibjAjaHm3L//6LiuBgolP7OputlJIzU= github.com/DATA-DOG/go-sqlmock v1.5.2/go.mod h1:88MAG/4G7SMwSE3CeA0ZKzrT5CiOU3OJ+JlNzwDqpNU= -github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= -github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= +github.com/DataDog/agent-payload/v5 v5.0.138 h1:Wg7hmWuoLC/o0X3zZ+uGcfRHPyaytljudgSY9O59zjc= +github.com/DataDog/agent-payload/v5 v5.0.138/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/appsec-internal-go v1.9.0 h1:cGOneFsg0JTRzWl5U2+og5dbtyW3N8XaYwc5nXe39Vw= github.com/DataDog/appsec-internal-go v1.9.0/go.mod h1:wW0cRfWBo4C044jHGwYiyh5moQV2x0AhnwqMuiX7O/g= github.com/DataDog/aptly v1.5.3 h1:oLsRvjuXSVM4ia0N83dU3KiQeiJ6BaszYbTZOkSfDlw= diff --git a/pkg/collector/corechecks/cluster/orchestrator/processors/common/base.go b/pkg/collector/corechecks/cluster/orchestrator/processors/common/base.go index e8c0b5db8d9ff..c825586135bf5 100644 --- a/pkg/collector/corechecks/cluster/orchestrator/processors/common/base.go +++ b/pkg/collector/corechecks/cluster/orchestrator/processors/common/base.go @@ -34,6 +34,11 @@ func (BaseHandlers) BuildManifestMessageBody(ctx processors.ProcessorContext, re return ExtractModelManifests(ctx, resourceManifests, groupSize) } +//nolint:revive // TODO(CAPP) Fix revive linter +func (BaseHandlers) ResourceTaggerTags(ctx processors.ProcessorContext, resource interface{}) []string { + return nil +} + // ExtractModelManifests creates the model manifest from the given manifests func ExtractModelManifests(ctx processors.ProcessorContext, resourceManifests []interface{}, groupSize int) *model.CollectorManifest { pctx := ctx.(*processors.K8sProcessorContext) diff --git a/pkg/collector/corechecks/cluster/orchestrator/processors/k8s/pod.go b/pkg/collector/corechecks/cluster/orchestrator/processors/k8s/pod.go index 6f3a62dda8848..db54519fbc90b 100644 --- a/pkg/collector/corechecks/cluster/orchestrator/processors/k8s/pod.go +++ b/pkg/collector/corechecks/cluster/orchestrator/processors/k8s/pod.go @@ -164,6 +164,23 @@ func (h *PodHandlers) ResourceVersion(ctx processors.ProcessorContext, resource, return resourceModel.(*model.Pod).Metadata.ResourceVersion } +// ResourceTaggerTags is a handler called to retrieve tags for a resource from the tagger. +// +//nolint:revive // TODO(CAPP) Fix revive linter +func (h *PodHandlers) ResourceTaggerTags(ctx processors.ProcessorContext, resource interface{}) []string { + r, ok := resource.(*corev1.Pod) + if !ok { + log.Debugf("Could not cast resource to pod") + return nil + } + tags, err := h.tagProvider.GetTags(r, taggertypes.HighCardinality) + if err != nil { + log.Debugf("Could not retrieve tags for pod: %s", err.Error()) + return nil + } + return tags +} + // ScrubBeforeExtraction is a handler called to redact the raw resource before // it is extracted as an internal resource model. // diff --git a/pkg/collector/corechecks/cluster/orchestrator/processors/processor.go b/pkg/collector/corechecks/cluster/orchestrator/processors/processor.go index bd53e21cb7df5..65e5619fef47a 100644 --- a/pkg/collector/corechecks/cluster/orchestrator/processors/processor.go +++ b/pkg/collector/corechecks/cluster/orchestrator/processors/processor.go @@ -129,6 +129,9 @@ type Handlers interface { // ResourceVersion returns the resource Version. ResourceVersion(ctx ProcessorContext, resource, resourceModel interface{}) string + // ResourceTaggerTags returns the resource tags. + ResourceTaggerTags(ctx ProcessorContext, resource interface{}) []string + // ScrubBeforeExtraction replaces sensitive information in the resource // before resource extraction. ScrubBeforeExtraction(ctx ProcessorContext, resource interface{}) @@ -231,6 +234,7 @@ func (p *Processor) Process(ctx ProcessorContext, list interface{}) (processResu Content: yaml, Version: "v1", ContentType: "json", + Tags: p.h.ResourceTaggerTags(ctx, resource), }) } diff --git a/pkg/logs/pipeline/go.mod b/pkg/logs/pipeline/go.mod index 06f20a79a4199..4359e4de3c733 100644 --- a/pkg/logs/pipeline/go.mod +++ b/pkg/logs/pipeline/go.mod @@ -79,7 +79,7 @@ require ( ) require ( - github.com/DataDog/agent-payload/v5 v5.0.137 // indirect + github.com/DataDog/agent-payload/v5 v5.0.138 // indirect github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect github.com/DataDog/datadog-agent/comp/core/telemetry v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/def v0.56.0-rc.3 // indirect diff --git a/pkg/logs/pipeline/go.sum b/pkg/logs/pipeline/go.sum index 97219095a045b..9285d14a5c66a 100644 --- a/pkg/logs/pipeline/go.sum +++ b/pkg/logs/pipeline/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= -github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= +github.com/DataDog/agent-payload/v5 v5.0.138 h1:Wg7hmWuoLC/o0X3zZ+uGcfRHPyaytljudgSY9O59zjc= +github.com/DataDog/agent-payload/v5 v5.0.138/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 h1:RoH7VLzTnxHEugRPIgnGlxwDFszFGI7b3WZZUtWuPRM= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42/go.mod h1:TX7CTOQ3LbQjfAi4SwqUoR5gY1zfUk7VRBDTuArjaDc= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= diff --git a/pkg/logs/processor/go.mod b/pkg/logs/processor/go.mod index 858475c3a8a54..0f9d8e217c3ff 100644 --- a/pkg/logs/processor/go.mod +++ b/pkg/logs/processor/go.mod @@ -48,7 +48,7 @@ replace ( ) require ( - github.com/DataDog/agent-payload/v5 v5.0.137 + github.com/DataDog/agent-payload/v5 v5.0.138 github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.56.0-rc.3 github.com/DataDog/datadog-agent/comp/logs/agent/config v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 diff --git a/pkg/logs/processor/go.sum b/pkg/logs/processor/go.sum index a85960b0566cf..d37f9cd540349 100644 --- a/pkg/logs/processor/go.sum +++ b/pkg/logs/processor/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= -github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= +github.com/DataDog/agent-payload/v5 v5.0.138 h1:Wg7hmWuoLC/o0X3zZ+uGcfRHPyaytljudgSY9O59zjc= +github.com/DataDog/agent-payload/v5 v5.0.138/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 h1:RoH7VLzTnxHEugRPIgnGlxwDFszFGI7b3WZZUtWuPRM= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42/go.mod h1:TX7CTOQ3LbQjfAi4SwqUoR5gY1zfUk7VRBDTuArjaDc= github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= diff --git a/pkg/process/util/api/go.mod b/pkg/process/util/api/go.mod index 1dd6ead89c7a2..aabb46411e91a 100644 --- a/pkg/process/util/api/go.mod +++ b/pkg/process/util/api/go.mod @@ -11,7 +11,7 @@ replace ( ) require ( - github.com/DataDog/agent-payload/v5 v5.0.137 + github.com/DataDog/agent-payload/v5 v5.0.138 github.com/DataDog/datadog-agent/pkg/telemetry v0.56.0-rc.3 github.com/gogo/protobuf v1.3.2 github.com/stretchr/testify v1.10.0 diff --git a/pkg/process/util/api/go.sum b/pkg/process/util/api/go.sum index fbced0de8d3fe..e79f1957f4ded 100644 --- a/pkg/process/util/api/go.sum +++ b/pkg/process/util/api/go.sum @@ -1,5 +1,5 @@ -github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= -github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= +github.com/DataDog/agent-payload/v5 v5.0.138 h1:Wg7hmWuoLC/o0X3zZ+uGcfRHPyaytljudgSY9O59zjc= +github.com/DataDog/agent-payload/v5 v5.0.138/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 h1:EbzDX8HPk5uE2FsJYxD74QmMw0/3CqSKhEr6teh0ncQ= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49/go.mod h1:SvsjzyJlSg0rKsqYgdcFxeEVflx3ZNAyFfkUHP0TxXg= github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= diff --git a/pkg/serializer/go.mod b/pkg/serializer/go.mod index 4b6353199d174..77224caa2fdb7 100644 --- a/pkg/serializer/go.mod +++ b/pkg/serializer/go.mod @@ -63,7 +63,7 @@ replace ( ) require ( - github.com/DataDog/agent-payload/v5 v5.0.137 + github.com/DataDog/agent-payload/v5 v5.0.138 github.com/DataDog/datadog-agent/comp/core/config v0.57.1 github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder v0.56.0-rc.3 github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorinterface v0.56.0-rc.3 diff --git a/pkg/serializer/go.sum b/pkg/serializer/go.sum index fc5136030cbaa..ecef4fa7182fa 100644 --- a/pkg/serializer/go.sum +++ b/pkg/serializer/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= -github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= +github.com/DataDog/agent-payload/v5 v5.0.138 h1:Wg7hmWuoLC/o0X3zZ+uGcfRHPyaytljudgSY9O59zjc= +github.com/DataDog/agent-payload/v5 v5.0.138/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 h1:EbzDX8HPk5uE2FsJYxD74QmMw0/3CqSKhEr6teh0ncQ= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49/go.mod h1:SvsjzyJlSg0rKsqYgdcFxeEVflx3ZNAyFfkUHP0TxXg= github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.21.0 h1:VS4NTqwczwezMVvI6A7xYR3ugPmMUJ4FcdFrsdnZI2I= diff --git a/releasenotes/notes/add-tagger-tags-to-pod-manifests-617c152d112e21e3.yaml b/releasenotes/notes/add-tagger-tags-to-pod-manifests-617c152d112e21e3.yaml new file mode 100644 index 0000000000000..19f359d4d1ea4 --- /dev/null +++ b/releasenotes/notes/add-tagger-tags-to-pod-manifests-617c152d112e21e3.yaml @@ -0,0 +1,3 @@ +enhancements: + - | + Adds tagger tags to pod manifests. diff --git a/test/fakeintake/go.mod b/test/fakeintake/go.mod index cdbf263570de1..5caf2937f7ad5 100644 --- a/test/fakeintake/go.mod +++ b/test/fakeintake/go.mod @@ -9,7 +9,7 @@ replace ( ) require ( - github.com/DataDog/agent-payload/v5 v5.0.137 + github.com/DataDog/agent-payload/v5 v5.0.138 github.com/DataDog/datadog-agent/comp/netflow/payload v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/proto v0.56.0-rc.3 github.com/DataDog/zstd v1.5.6 diff --git a/test/fakeintake/go.sum b/test/fakeintake/go.sum index be9d0519b91f7..66dfefa293b31 100644 --- a/test/fakeintake/go.sum +++ b/test/fakeintake/go.sum @@ -1,5 +1,5 @@ -github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= -github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= +github.com/DataDog/agent-payload/v5 v5.0.138 h1:Wg7hmWuoLC/o0X3zZ+uGcfRHPyaytljudgSY9O59zjc= +github.com/DataDog/agent-payload/v5 v5.0.138/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 h1:EbzDX8HPk5uE2FsJYxD74QmMw0/3CqSKhEr6teh0ncQ= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49/go.mod h1:SvsjzyJlSg0rKsqYgdcFxeEVflx3ZNAyFfkUHP0TxXg= github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= diff --git a/test/new-e2e/go.mod b/test/new-e2e/go.mod index 7b6913e76a8f7..e436b5abdfb62 100644 --- a/test/new-e2e/go.mod +++ b/test/new-e2e/go.mod @@ -43,7 +43,7 @@ replace ( ) require ( - github.com/DataDog/agent-payload/v5 v5.0.137 + github.com/DataDog/agent-payload/v5 v5.0.138 github.com/DataDog/datadog-agent/comp/otelcol/ddflareextension/def v0.56.2 github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 diff --git a/test/new-e2e/go.sum b/test/new-e2e/go.sum index 84c305a0469a5..959fa036fca7d 100644 --- a/test/new-e2e/go.sum +++ b/test/new-e2e/go.sum @@ -7,8 +7,8 @@ github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg6 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c h1:pxW6RcqyfI9/kWtOwnv/G+AzdKuy2ZrqINhenH4HyNs= github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= -github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= -github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= +github.com/DataDog/agent-payload/v5 v5.0.138 h1:Wg7hmWuoLC/o0X3zZ+uGcfRHPyaytljudgSY9O59zjc= +github.com/DataDog/agent-payload/v5 v5.0.138/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/datadog-api-client-go v1.16.0 h1:5jOZv1m98criCvYTa3qpW8Hzv301nbZX3K9yJtwGyWY= github.com/DataDog/datadog-api-client-go v1.16.0/go.mod h1:PgrP2ABuJWL3Auw2iEkemAJ/r72ghG4DQQmb5sgnKW4= github.com/DataDog/datadog-api-client-go/v2 v2.31.0 h1:JfJhYlHfLzvauI8u6h23smTooWYe6quNhhg9gpTszWY= diff --git a/test/otel/go.mod b/test/otel/go.mod index 6ceb9b9ca2ebf..daa95297b8765 100644 --- a/test/otel/go.mod +++ b/test/otel/go.mod @@ -125,7 +125,7 @@ require ( ) require ( - github.com/DataDog/agent-payload/v5 v5.0.137 // indirect + github.com/DataDog/agent-payload/v5 v5.0.138 // indirect github.com/DataDog/datadog-agent/comp/core/flare/builder v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/core/flare/types v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/core/secrets v0.59.0 // indirect diff --git a/test/otel/go.sum b/test/otel/go.sum index 957379677134f..41eeabdd1023c 100644 --- a/test/otel/go.sum +++ b/test/otel/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.137 h1:nV02RrYj6AwlQBGIEv6yG23CuxGtG0YWoFZAVE6vwxY= -github.com/DataDog/agent-payload/v5 v5.0.137/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= +github.com/DataDog/agent-payload/v5 v5.0.138 h1:Wg7hmWuoLC/o0X3zZ+uGcfRHPyaytljudgSY9O59zjc= +github.com/DataDog/agent-payload/v5 v5.0.138/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/datadog-api-client-go/v2 v2.31.0 h1:JfJhYlHfLzvauI8u6h23smTooWYe6quNhhg9gpTszWY= github.com/DataDog/datadog-api-client-go/v2 v2.31.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U= github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU= From c23991318bdae9f2137171b7d8d44e7753d2e346 Mon Sep 17 00:00:00 2001 From: louis-cqrl <93274433+louis-cqrl@users.noreply.github.com> Date: Wed, 11 Dec 2024 14:01:29 +0100 Subject: [PATCH 391/439] [ASCII-2573] Add versioning to agent scrubber (#31828) Co-authored-by: Pierre Gimalac --- comp/api/authtoken/go.mod | 2 +- comp/core/config/go.mod | 3 ++ comp/core/log/impl-trace/go.mod | 3 ++ comp/core/log/impl/go.mod | 3 ++ comp/core/log/mock/go.mod | 3 ++ comp/core/secrets/go.mod | 3 ++ comp/core/status/statusimpl/go.mod | 2 +- comp/forwarder/defaultforwarder/go.mod | 2 +- .../orchestrator/orchestratorinterface/go.mod | 2 +- comp/logs/agent/config/go.mod | 2 +- comp/otelcol/converter/impl/go.mod | 1 + comp/otelcol/ddflareextension/impl/go.mod | 2 +- comp/otelcol/logsagentpipeline/go.mod | 2 +- .../logsagentpipelineimpl/go.mod | 2 +- .../exporter/datadogexporter/go.mod | 2 +- .../exporter/logsagentexporter/go.mod | 2 +- .../exporter/serializerexporter/go.mod | 2 +- .../otlp/components/statsprocessor/go.mod | 3 ++ comp/otelcol/otlp/testutil/go.mod | 3 ++ comp/serializer/compression/go.mod | 3 ++ go.mod | 2 +- pkg/api/go.mod | 2 +- pkg/config/env/go.mod | 3 ++ pkg/config/mock/go.mod | 3 ++ pkg/config/model/go.mod | 3 ++ pkg/config/nodetreemodel/go.mod | 3 ++ pkg/config/remote/go.mod | 2 +- pkg/config/setup/go.mod | 3 ++ pkg/config/structure/go.mod | 3 ++ pkg/config/teeconfig/go.mod | 3 ++ pkg/config/utils/go.mod | 2 +- pkg/gohai/go.mod | 4 +- pkg/gohai/go.sum | 1 - pkg/logs/auditor/go.mod | 2 +- pkg/logs/client/go.mod | 2 +- pkg/logs/diagnostic/go.mod | 2 +- pkg/logs/message/go.mod | 2 +- pkg/logs/pipeline/go.mod | 2 +- pkg/logs/processor/go.mod | 2 +- pkg/logs/sds/go.mod | 2 +- pkg/logs/sender/go.mod | 2 +- pkg/logs/sources/go.mod | 2 +- pkg/logs/util/testutils/go.mod | 2 +- pkg/metrics/go.mod | 3 ++ pkg/orchestrator/model/go.mod | 4 +- pkg/orchestrator/model/go.sum | 1 - pkg/serializer/go.mod | 2 +- pkg/trace/go.mod | 3 ++ pkg/trace/stats/oteltest/go.mod | 3 ++ pkg/util/cgroups/go.mod | 4 +- pkg/util/cgroups/go.sum | 1 - pkg/util/defaultpaths/go.mod | 3 ++ pkg/util/filesystem/go.mod | 3 ++ pkg/util/flavor/go.mod | 3 ++ pkg/util/grpc/go.mod | 2 +- pkg/util/hostname/validate/go.mod | 4 +- pkg/util/hostname/validate/go.sum | 1 - pkg/util/http/go.mod | 3 ++ pkg/util/log/go.mod | 3 ++ pkg/util/log/setup/go.mod | 3 ++ pkg/util/scrubber/default.go | 42 +++++++++++++++++++ pkg/util/scrubber/go.mod | 7 ++-- pkg/util/scrubber/go.sum | 5 --- pkg/util/scrubber/scrubber.go | 27 ++++++++++++ pkg/util/scrubber/yaml_scrubber.go | 5 +++ pkg/util/system/go.mod | 3 ++ pkg/util/uuid/go.mod | 4 +- pkg/util/uuid/go.sum | 1 - pkg/util/winutil/go.mod | 4 +- pkg/util/winutil/go.sum | 1 - test/new-e2e/go.mod | 2 +- test/otel/go.mod | 2 +- 72 files changed, 201 insertions(+), 49 deletions(-) diff --git a/comp/api/authtoken/go.mod b/comp/api/authtoken/go.mod index 233f326a297d1..242f41ae9f7df 100644 --- a/comp/api/authtoken/go.mod +++ b/comp/api/authtoken/go.mod @@ -75,7 +75,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect - github.com/DataDog/datadog-agent/pkg/version v0.56.0 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect diff --git a/comp/core/config/go.mod b/comp/core/config/go.mod index bed15530c21b9..53bf6993f2e3b 100644 --- a/comp/core/config/go.mod +++ b/comp/core/config/go.mod @@ -65,6 +65,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect @@ -111,3 +112,5 @@ require ( ) replace github.com/DataDog/datadog-agent/pkg/config/structure => ../../../pkg/config/structure + +replace github.com/DataDog/datadog-agent/pkg/version => ../../../pkg/version diff --git a/comp/core/log/impl-trace/go.mod b/comp/core/log/impl-trace/go.mod index 2ee9571d6657a..1a3d936200a26 100644 --- a/comp/core/log/impl-trace/go.mod +++ b/comp/core/log/impl-trace/go.mod @@ -76,6 +76,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect @@ -114,3 +115,5 @@ require ( ) replace github.com/DataDog/datadog-agent/pkg/config/structure => ../../../../pkg/config/structure + +replace github.com/DataDog/datadog-agent/pkg/version => ../../../../pkg/version diff --git a/comp/core/log/impl/go.mod b/comp/core/log/impl/go.mod index 9d9c721ce2ba8..440ec8c7e2939 100644 --- a/comp/core/log/impl/go.mod +++ b/comp/core/log/impl/go.mod @@ -65,6 +65,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect @@ -105,3 +106,5 @@ require ( ) replace github.com/DataDog/datadog-agent/pkg/config/structure => ../../../../pkg/config/structure + +replace github.com/DataDog/datadog-agent/pkg/version => ../../../../pkg/version diff --git a/comp/core/log/mock/go.mod b/comp/core/log/mock/go.mod index f8515313b702d..c7cf8db9429e7 100644 --- a/comp/core/log/mock/go.mod +++ b/comp/core/log/mock/go.mod @@ -41,6 +41,7 @@ require ( github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.60.0-devel // indirect github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.60.0-devel // indirect github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -60,3 +61,5 @@ require ( ) replace github.com/DataDog/datadog-agent/pkg/config/structure => ../../../../pkg/config/structure + +replace github.com/DataDog/datadog-agent/pkg/version => ../../../../pkg/version diff --git a/comp/core/secrets/go.mod b/comp/core/secrets/go.mod index c5ef5998edc5d..ed053a2120711 100644 --- a/comp/core/secrets/go.mod +++ b/comp/core/secrets/go.mod @@ -36,6 +36,7 @@ require ( github.com/DataDog/datadog-agent/comp/core/flare/builder v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/def v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/optional v0.55.0 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect @@ -57,3 +58,5 @@ require ( google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/version => ../../../pkg/version diff --git a/comp/core/status/statusimpl/go.mod b/comp/core/status/statusimpl/go.mod index 600683ed2cceb..084310e3bd689 100644 --- a/comp/core/status/statusimpl/go.mod +++ b/comp/core/status/statusimpl/go.mod @@ -50,7 +50,7 @@ require ( github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 github.com/DataDog/datadog-agent/pkg/util/flavor v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 - github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 + github.com/DataDog/datadog-agent/pkg/version v0.59.1 github.com/gorilla/mux v1.8.1 github.com/stretchr/testify v1.10.0 go.uber.org/fx v1.23.0 diff --git a/comp/forwarder/defaultforwarder/go.mod b/comp/forwarder/defaultforwarder/go.mod index 55d901ebce30c..93d2d0e006c39 100644 --- a/comp/forwarder/defaultforwarder/go.mod +++ b/comp/forwarder/defaultforwarder/go.mod @@ -72,7 +72,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/http v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 - github.com/DataDog/datadog-agent/pkg/version v0.57.1 + github.com/DataDog/datadog-agent/pkg/version v0.59.1 github.com/golang/protobuf v1.5.4 github.com/hashicorp/go-multierror v1.1.1 github.com/stretchr/testify v1.10.0 diff --git a/comp/forwarder/orchestrator/orchestratorinterface/go.mod b/comp/forwarder/orchestrator/orchestratorinterface/go.mod index 63ef4e9d8c4a8..81d4001b2b4ba 100644 --- a/comp/forwarder/orchestrator/orchestratorinterface/go.mod +++ b/comp/forwarder/orchestrator/orchestratorinterface/go.mod @@ -101,7 +101,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect - github.com/DataDog/datadog-agent/pkg/version v0.57.1 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/beorn7/perks v1.0.1 // indirect diff --git a/comp/logs/agent/config/go.mod b/comp/logs/agent/config/go.mod index 733a8bf8b17c7..e31795b917bab 100644 --- a/comp/logs/agent/config/go.mod +++ b/comp/logs/agent/config/go.mod @@ -68,7 +68,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect - github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect diff --git a/comp/otelcol/converter/impl/go.mod b/comp/otelcol/converter/impl/go.mod index 0910f004f852c..2435c73c0c0ab 100644 --- a/comp/otelcol/converter/impl/go.mod +++ b/comp/otelcol/converter/impl/go.mod @@ -76,6 +76,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect diff --git a/comp/otelcol/ddflareextension/impl/go.mod b/comp/otelcol/ddflareextension/impl/go.mod index f6184768bde7d..ce0b658bdbefb 100644 --- a/comp/otelcol/ddflareextension/impl/go.mod +++ b/comp/otelcol/ddflareextension/impl/go.mod @@ -110,7 +110,7 @@ require ( github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/processor/infraattributesprocessor v0.59.0 github.com/DataDog/datadog-agent/pkg/api v0.59.0 github.com/DataDog/datadog-agent/pkg/config/mock v0.59.0 - github.com/DataDog/datadog-agent/pkg/version v0.59.0 + github.com/DataDog/datadog-agent/pkg/version v0.59.1 github.com/google/go-cmp v0.6.0 github.com/gorilla/mux v1.8.1 github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector v0.115.0 diff --git a/comp/otelcol/logsagentpipeline/go.mod b/comp/otelcol/logsagentpipeline/go.mod index f969df266b412..614caa1bd6c86 100644 --- a/comp/otelcol/logsagentpipeline/go.mod +++ b/comp/otelcol/logsagentpipeline/go.mod @@ -105,7 +105,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect - github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod index 777d025c85789..29266162fd0aa 100644 --- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod +++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod @@ -120,7 +120,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect - github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod index 075d17c6084f3..2d08b1c40a5c3 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod @@ -196,7 +196,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect - github.com/DataDog/datadog-agent/pkg/version v0.57.1 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/datadog-api-client-go/v2 v2.31.0 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect github.com/DataDog/go-sqllexer v0.0.17 // indirect diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod index 0e14870fd4f2a..38d8f5ce4465f 100644 --- a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod @@ -89,7 +89,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect - github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/datadog-api-client-go/v2 v2.31.0 // indirect github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0 // indirect github.com/DataDog/sketches-go v1.4.6 // indirect diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod index 5803c7e3fe19a..959d47803df5e 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod @@ -134,7 +134,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect - github.com/DataDog/datadog-agent/pkg/version v0.57.1 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 // indirect github.com/DataDog/sketches-go v1.4.6 // indirect github.com/DataDog/viper v1.13.5 // indirect diff --git a/comp/otelcol/otlp/components/statsprocessor/go.mod b/comp/otelcol/otlp/components/statsprocessor/go.mod index 192bbaae21eaa..2e082942b0c23 100644 --- a/comp/otelcol/otlp/components/statsprocessor/go.mod +++ b/comp/otelcol/otlp/components/statsprocessor/go.mod @@ -40,6 +40,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/go-sqllexer v0.0.17 // indirect github.com/DataDog/go-tuf v1.1.0-0.5.2 // indirect github.com/DataDog/sketches-go v1.4.6 // indirect @@ -98,3 +99,5 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/version => ../../../../../pkg/version diff --git a/comp/otelcol/otlp/testutil/go.mod b/comp/otelcol/otlp/testutil/go.mod index e606714cf39f7..9593f520e9ab5 100644 --- a/comp/otelcol/otlp/testutil/go.mod +++ b/comp/otelcol/otlp/testutil/go.mod @@ -62,6 +62,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect @@ -106,3 +107,5 @@ require ( ) replace github.com/DataDog/datadog-agent/pkg/config/structure => ../../../../pkg/config/structure + +replace github.com/DataDog/datadog-agent/pkg/version => ../../../../pkg/version diff --git a/comp/serializer/compression/go.mod b/comp/serializer/compression/go.mod index 7575544de493a..2ae9730174434 100644 --- a/comp/serializer/compression/go.mod +++ b/comp/serializer/compression/go.mod @@ -62,6 +62,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect @@ -103,3 +104,5 @@ require ( ) replace github.com/DataDog/datadog-agent/pkg/config/structure => ../../../pkg/config/structure + +replace github.com/DataDog/datadog-agent/pkg/version => ../../../pkg/version diff --git a/go.mod b/go.mod index f220fd26849fc..a3f7a7bf4f2ee 100644 --- a/go.mod +++ b/go.mod @@ -730,7 +730,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/testutil v0.59.0 github.com/DataDog/datadog-agent/pkg/util/uuid v0.59.0 github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 - github.com/DataDog/datadog-agent/pkg/version v0.59.0 + github.com/DataDog/datadog-agent/pkg/version v0.59.1 github.com/DataDog/go-libddwaf/v3 v3.5.1 github.com/DataDog/go-sqllexer v0.0.17 github.com/Datadog/dublin-traceroute v0.0.2 diff --git a/pkg/api/go.mod b/pkg/api/go.mod index 28a2032095417..945605825f184 100644 --- a/pkg/api/go.mod +++ b/pkg/api/go.mod @@ -67,7 +67,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect - github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect diff --git a/pkg/config/env/go.mod b/pkg/config/env/go.mod index 2d26e478fd4e7..de1167299c7b9 100644 --- a/pkg/config/env/go.mod +++ b/pkg/config/env/go.mod @@ -22,6 +22,7 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect @@ -49,3 +50,5 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/version => ../../version diff --git a/pkg/config/mock/go.mod b/pkg/config/mock/go.mod index 9fc526fc2c5de..bd41d45520253 100644 --- a/pkg/config/mock/go.mod +++ b/pkg/config/mock/go.mod @@ -52,6 +52,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect @@ -86,3 +87,5 @@ require ( ) replace github.com/DataDog/datadog-agent/pkg/config/structure => ../structure + +replace github.com/DataDog/datadog-agent/pkg/version => ../../version diff --git a/pkg/config/model/go.mod b/pkg/config/model/go.mod index 27acfdc300362..c1fdbcf811244 100644 --- a/pkg/config/model/go.mod +++ b/pkg/config/model/go.mod @@ -19,6 +19,7 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect @@ -37,3 +38,5 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/version => ../../version diff --git a/pkg/config/nodetreemodel/go.mod b/pkg/config/nodetreemodel/go.mod index 89e820fbd8172..b349c1b7ee78c 100644 --- a/pkg/config/nodetreemodel/go.mod +++ b/pkg/config/nodetreemodel/go.mod @@ -25,6 +25,7 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect @@ -40,3 +41,5 @@ require ( golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/version => ../../version diff --git a/pkg/config/remote/go.mod b/pkg/config/remote/go.mod index ab537bc1eb918..45abbf8a59a03 100644 --- a/pkg/config/remote/go.mod +++ b/pkg/config/remote/go.mod @@ -84,7 +84,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect - github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/datadog-go/v5 v5.5.0 // indirect github.com/DataDog/go-libddwaf/v3 v3.5.1 // indirect github.com/DataDog/go-sqllexer v0.0.17 // indirect diff --git a/pkg/config/setup/go.mod b/pkg/config/setup/go.mod index 772c6b0ee8e53..b135e7a2d406d 100644 --- a/pkg/config/setup/go.mod +++ b/pkg/config/setup/go.mod @@ -62,6 +62,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/filesystem v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/beorn7/perks v1.0.1 // indirect @@ -110,3 +111,5 @@ require ( replace github.com/DataDog/datadog-agent/pkg/config/mock => ../mock replace github.com/DataDog/datadog-agent/pkg/config/structure => ../structure + +replace github.com/DataDog/datadog-agent/pkg/version => ../../version diff --git a/pkg/config/structure/go.mod b/pkg/config/structure/go.mod index a4b08d8efd789..c282e2e4de06e 100644 --- a/pkg/config/structure/go.mod +++ b/pkg/config/structure/go.mod @@ -44,6 +44,7 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect @@ -63,3 +64,5 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/version => ../../version diff --git a/pkg/config/teeconfig/go.mod b/pkg/config/teeconfig/go.mod index 5f73448a14327..07988a62ac5a3 100644 --- a/pkg/config/teeconfig/go.mod +++ b/pkg/config/teeconfig/go.mod @@ -16,6 +16,7 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -33,3 +34,5 @@ require ( golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/version => ../../version diff --git a/pkg/config/utils/go.mod b/pkg/config/utils/go.mod index 0f4f9537ccb9f..8d486b6d22804 100644 --- a/pkg/config/utils/go.mod +++ b/pkg/config/utils/go.mod @@ -39,7 +39,7 @@ require ( github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0 github.com/DataDog/datadog-agent/pkg/config/structure v0.59.0 github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 - github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 + github.com/DataDog/datadog-agent/pkg/version v0.59.1 github.com/stretchr/testify v1.10.0 ) diff --git a/pkg/gohai/go.mod b/pkg/gohai/go.mod index d836c017c69c6..91371a34fdf67 100644 --- a/pkg/gohai/go.mod +++ b/pkg/gohai/go.mod @@ -15,9 +15,9 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/go-ole/go-ole v1.3.0 // indirect - github.com/kr/text v0.2.0 // indirect github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect @@ -35,3 +35,5 @@ replace ( github.com/DataDog/datadog-agent/pkg/util/log => ../util/log github.com/DataDog/datadog-agent/pkg/util/scrubber => ../util/scrubber ) + +replace github.com/DataDog/datadog-agent/pkg/version => ../version diff --git a/pkg/gohai/go.sum b/pkg/gohai/go.sum index b2d1eb2720650..2315dbdfd4b60 100644 --- a/pkg/gohai/go.sum +++ b/pkg/gohai/go.sum @@ -1,6 +1,5 @@ github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= diff --git a/pkg/logs/auditor/go.mod b/pkg/logs/auditor/go.mod index 0ea48c9e7895a..f25078eb0613e 100644 --- a/pkg/logs/auditor/go.mod +++ b/pkg/logs/auditor/go.mod @@ -71,7 +71,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect - github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect diff --git a/pkg/logs/client/go.mod b/pkg/logs/client/go.mod index cac2a5ce40f32..f6c70fa120111 100644 --- a/pkg/logs/client/go.mod +++ b/pkg/logs/client/go.mod @@ -61,7 +61,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/backoff v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/http v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 - github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 + github.com/DataDog/datadog-agent/pkg/version v0.59.1 github.com/stretchr/testify v1.10.0 golang.org/x/net v0.31.0 ) diff --git a/pkg/logs/diagnostic/go.mod b/pkg/logs/diagnostic/go.mod index 7f3357f60d406..6794be809224a 100644 --- a/pkg/logs/diagnostic/go.mod +++ b/pkg/logs/diagnostic/go.mod @@ -75,7 +75,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect - github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect diff --git a/pkg/logs/message/go.mod b/pkg/logs/message/go.mod index b4b0ab2e615ed..9af21b652514f 100644 --- a/pkg/logs/message/go.mod +++ b/pkg/logs/message/go.mod @@ -67,7 +67,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect - github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect diff --git a/pkg/logs/pipeline/go.mod b/pkg/logs/pipeline/go.mod index 4359e4de3c733..d5ad9fc3387d6 100644 --- a/pkg/logs/pipeline/go.mod +++ b/pkg/logs/pipeline/go.mod @@ -105,7 +105,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect - github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect diff --git a/pkg/logs/processor/go.mod b/pkg/logs/processor/go.mod index 0f9d8e217c3ff..597b56d08b470 100644 --- a/pkg/logs/processor/go.mod +++ b/pkg/logs/processor/go.mod @@ -85,7 +85,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect - github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect diff --git a/pkg/logs/sds/go.mod b/pkg/logs/sds/go.mod index c6f00cb1cf5e7..25d3edc9a9039 100644 --- a/pkg/logs/sds/go.mod +++ b/pkg/logs/sds/go.mod @@ -82,7 +82,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect - github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/beorn7/perks v1.0.1 // indirect diff --git a/pkg/logs/sender/go.mod b/pkg/logs/sender/go.mod index 2f438b2f0cc86..289d3463425c9 100644 --- a/pkg/logs/sender/go.mod +++ b/pkg/logs/sender/go.mod @@ -89,7 +89,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect - github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/beorn7/perks v1.0.1 // indirect diff --git a/pkg/logs/sources/go.mod b/pkg/logs/sources/go.mod index a73c178af0286..84546c2435fbe 100644 --- a/pkg/logs/sources/go.mod +++ b/pkg/logs/sources/go.mod @@ -65,7 +65,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect - github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect diff --git a/pkg/logs/util/testutils/go.mod b/pkg/logs/util/testutils/go.mod index d2aa1b59f3e82..71bf57e885bc8 100644 --- a/pkg/logs/util/testutils/go.mod +++ b/pkg/logs/util/testutils/go.mod @@ -66,7 +66,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect - github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect diff --git a/pkg/metrics/go.mod b/pkg/metrics/go.mod index 198885497f0b9..a00176bd56df9 100644 --- a/pkg/metrics/go.mod +++ b/pkg/metrics/go.mod @@ -72,6 +72,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/sketches-go v1.4.6 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect @@ -121,3 +122,5 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/version => ../version diff --git a/pkg/orchestrator/model/go.mod b/pkg/orchestrator/model/go.mod index 1ae7dce9631db..96f90197c3fe2 100644 --- a/pkg/orchestrator/model/go.mod +++ b/pkg/orchestrator/model/go.mod @@ -14,8 +14,10 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/kr/text v0.2.0 // indirect go.uber.org/atomic v1.11.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/version => ../../version diff --git a/pkg/orchestrator/model/go.sum b/pkg/orchestrator/model/go.sum index a1eb366cd0a06..3c93bebd8c6dd 100644 --- a/pkg/orchestrator/model/go.sum +++ b/pkg/orchestrator/model/go.sum @@ -1,6 +1,5 @@ github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= diff --git a/pkg/serializer/go.mod b/pkg/serializer/go.mod index 77224caa2fdb7..815c0bc0fca03 100644 --- a/pkg/serializer/go.mod +++ b/pkg/serializer/go.mod @@ -78,7 +78,7 @@ require ( github.com/DataDog/datadog-agent/pkg/telemetry v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/json v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 - github.com/DataDog/datadog-agent/pkg/version v0.57.1 + github.com/DataDog/datadog-agent/pkg/version v0.59.1 github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 github.com/gogo/protobuf v1.3.2 github.com/json-iterator/go v1.1.12 diff --git a/pkg/trace/go.mod b/pkg/trace/go.mod index d4cf8c46e2454..575006dcc0326 100644 --- a/pkg/trace/go.mod +++ b/pkg/trace/go.mod @@ -57,6 +57,7 @@ require go.opentelemetry.io/collector/component/componenttest v0.115.0 require go.opentelemetry.io/collector/processor v0.115.0 // indirect require ( + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/go-sqllexer v0.0.17 // indirect github.com/DataDog/go-tuf v1.1.0-0.5.2 // indirect github.com/DataDog/zstd v1.5.6 // indirect @@ -124,3 +125,5 @@ replace ( github.com/DataDog/datadog-agent/pkg/util/pointer => ../util/pointer github.com/DataDog/datadog-agent/pkg/util/scrubber => ../util/scrubber ) + +replace github.com/DataDog/datadog-agent/pkg/version => ../version diff --git a/pkg/trace/stats/oteltest/go.mod b/pkg/trace/stats/oteltest/go.mod index 8314f54acb5ca..a145c90943402 100644 --- a/pkg/trace/stats/oteltest/go.mod +++ b/pkg/trace/stats/oteltest/go.mod @@ -28,6 +28,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/log v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/go-sqllexer v0.0.17 // indirect github.com/DataDog/go-tuf v1.1.0-0.5.2 // indirect github.com/DataDog/sketches-go v1.4.6 // indirect @@ -107,3 +108,5 @@ replace ( github.com/DataDog/datadog-agent/pkg/util/pointer => ../../../util/pointer github.com/DataDog/datadog-agent/pkg/util/scrubber => ../../../util/scrubber ) + +replace github.com/DataDog/datadog-agent/pkg/version => ../../../version diff --git a/pkg/util/cgroups/go.mod b/pkg/util/cgroups/go.mod index 582db53aa5134..df4c25d4052b8 100644 --- a/pkg/util/cgroups/go.mod +++ b/pkg/util/cgroups/go.mod @@ -19,12 +19,12 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/docker/go-units v0.5.0 // indirect github.com/godbus/dbus/v5 v5.1.0 // indirect - github.com/kr/text v0.2.0 // indirect github.com/moby/sys/userns v0.1.0 // indirect github.com/opencontainers/runtime-spec v1.2.0 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect @@ -34,3 +34,5 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/version => ../../version diff --git a/pkg/util/cgroups/go.sum b/pkg/util/cgroups/go.sum index 3b65e4fa070a9..e85a1ea965ce8 100644 --- a/pkg/util/cgroups/go.sum +++ b/pkg/util/cgroups/go.sum @@ -4,7 +4,6 @@ github.com/containerd/cgroups/v3 v3.0.4 h1:2fs7l3P0Qxb1nKWuJNFiwhp2CqiKzho71DQkD github.com/containerd/cgroups/v3 v3.0.4/go.mod h1:SA5DLYnXO8pTGYiAHXz94qvLQTKfVM5GEVisn4jpins= github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/pkg/util/defaultpaths/go.mod b/pkg/util/defaultpaths/go.mod index ea2d774c6fd68..d87440f277c30 100644 --- a/pkg/util/defaultpaths/go.mod +++ b/pkg/util/defaultpaths/go.mod @@ -18,8 +18,11 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect go.uber.org/atomic v1.11.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/version => ../../version diff --git a/pkg/util/filesystem/go.mod b/pkg/util/filesystem/go.mod index d1fbed28429ae..cb61a2bdb1701 100644 --- a/pkg/util/filesystem/go.mod +++ b/pkg/util/filesystem/go.mod @@ -20,6 +20,7 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/go-ole/go-ole v1.3.0 // indirect @@ -30,3 +31,5 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/version => ../../version diff --git a/pkg/util/flavor/go.mod b/pkg/util/flavor/go.mod index dabdfd9bcee13..c9c0f4b4c6d60 100644 --- a/pkg/util/flavor/go.mod +++ b/pkg/util/flavor/go.mod @@ -53,6 +53,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect @@ -89,3 +90,5 @@ require ( replace github.com/DataDog/datadog-agent/pkg/config/mock => ../../config/mock replace github.com/DataDog/datadog-agent/pkg/config/structure => ../../config/structure + +replace github.com/DataDog/datadog-agent/pkg/version => ../../version diff --git a/pkg/util/grpc/go.mod b/pkg/util/grpc/go.mod index bdbb97d385501..d4e591bfe5d0e 100644 --- a/pkg/util/grpc/go.mod +++ b/pkg/util/grpc/go.mod @@ -65,7 +65,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect - github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect diff --git a/pkg/util/hostname/validate/go.mod b/pkg/util/hostname/validate/go.mod index ca6d2889b8178..6ec1ae79a177d 100644 --- a/pkg/util/hostname/validate/go.mod +++ b/pkg/util/hostname/validate/go.mod @@ -14,11 +14,13 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/kr/text v0.2.0 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect go.uber.org/atomic v1.11.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/version => ../../../version diff --git a/pkg/util/hostname/validate/go.sum b/pkg/util/hostname/validate/go.sum index 8c774897583cd..c57375d7e46df 100644 --- a/pkg/util/hostname/validate/go.sum +++ b/pkg/util/hostname/validate/go.sum @@ -1,6 +1,5 @@ github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= diff --git a/pkg/util/http/go.mod b/pkg/util/http/go.mod index e4699e99baf5e..86386cd3fe51e 100644 --- a/pkg/util/http/go.mod +++ b/pkg/util/http/go.mod @@ -55,6 +55,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect @@ -89,3 +90,5 @@ require ( ) replace github.com/DataDog/datadog-agent/pkg/config/structure => ../../config/structure + +replace github.com/DataDog/datadog-agent/pkg/version => ../../version diff --git a/pkg/util/log/go.mod b/pkg/util/log/go.mod index 3f4354d5c8445..26f759935f92e 100644 --- a/pkg/util/log/go.mod +++ b/pkg/util/log/go.mod @@ -13,9 +13,12 @@ require ( ) require ( + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect go.uber.org/multierr v1.11.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/version => ../../version diff --git a/pkg/util/log/setup/go.mod b/pkg/util/log/setup/go.mod index 1d7dfdbbb7c8b..a5fe63b6f8faa 100644 --- a/pkg/util/log/setup/go.mod +++ b/pkg/util/log/setup/go.mod @@ -55,6 +55,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect @@ -88,3 +89,5 @@ require ( ) replace github.com/DataDog/datadog-agent/pkg/config/structure => ../../../config/structure + +replace github.com/DataDog/datadog-agent/pkg/version => ../../../version diff --git a/pkg/util/scrubber/default.go b/pkg/util/scrubber/default.go index 290592ddf2eb2..4724ecf4c8fd3 100644 --- a/pkg/util/scrubber/default.go +++ b/pkg/util/scrubber/default.go @@ -31,6 +31,10 @@ var ( // secrets package for example. dynamicReplacers = []Replacer{} dynamicReplacersMutex = sync.Mutex{} + + // defaultVersion is the first version of the agent scrubber. + // https://github.com/DataDog/datadog-agent/pull/9618 + defaultVersion = parseVersion("7.33.0") ) func init() { @@ -46,12 +50,16 @@ func AddDefaultReplacers(scrubber *Scrubber) { Regex: regexp.MustCompile(`(api_?key=)\b[a-zA-Z0-9]+([a-zA-Z0-9]{5})\b`), Hints: []string{"api_key", "apikey"}, Repl: []byte(`$1***************************$2`), + + LastUpdated: defaultVersion, } hintedAPPKeyReplacer := Replacer{ // If hinted, mask the value regardless if it doesn't match 40-char hexadecimal string Regex: regexp.MustCompile(`(ap(?:p|plication)_?key=)\b[a-zA-Z0-9]+([a-zA-Z0-9]{5})\b`), Hints: []string{"app_key", "appkey", "application_key"}, Repl: []byte(`$1***********************************$2`), + + LastUpdated: defaultVersion, } // replacers are check one by one in order. We first try to scrub 64 bytes token, keeping the last 5 digit. If @@ -60,45 +68,69 @@ func AddDefaultReplacers(scrubber *Scrubber) { Regex: regexp.MustCompile(`\bBearer [a-fA-F0-9]{59}([a-fA-F0-9]{5})\b`), Hints: []string{"Bearer"}, Repl: []byte(`Bearer ***********************************************************$1`), + + // https://github.com/DataDog/datadog-agent/pull/12338 + LastUpdated: parseVersion("7.38.0"), } // For this one we match any characters hintedBearerInvalidReplacer := Replacer{ Regex: regexp.MustCompile(`\bBearer\s+[^*]+\b`), Hints: []string{"Bearer"}, Repl: []byte("Bearer " + defaultReplacement), + + // https://github.com/DataDog/datadog-agent/pull/23448 + LastUpdated: parseVersion("7.53.0"), } apiKeyReplacerYAML := Replacer{ Regex: regexp.MustCompile(`(\-|\:|,|\[|\{)(\s+)?\b[a-fA-F0-9]{27}([a-fA-F0-9]{5})\b`), Repl: []byte(`$1$2"***************************$3"`), + + // https://github.com/DataDog/datadog-agent/pull/12605 + LastUpdated: parseVersion("7.39.0"), } apiKeyReplacer := Replacer{ Regex: regexp.MustCompile(`\b[a-fA-F0-9]{27}([a-fA-F0-9]{5})\b`), Repl: []byte(`***************************$1`), + + LastUpdated: defaultVersion, } appKeyReplacerYAML := Replacer{ Regex: regexp.MustCompile(`(\-|\:|,|\[|\{)(\s+)?\b[a-fA-F0-9]{35}([a-fA-F0-9]{5})\b`), Repl: []byte(`$1$2"***********************************$3"`), + + // https://github.com/DataDog/datadog-agent/pull/12605 + LastUpdated: parseVersion("7.39.0"), } appKeyReplacer := Replacer{ Regex: regexp.MustCompile(`\b[a-fA-F0-9]{35}([a-fA-F0-9]{5})\b`), Repl: []byte(`***********************************$1`), + + LastUpdated: defaultVersion, } rcAppKeyReplacer := Replacer{ Regex: regexp.MustCompile(`\bDDRCM_[A-Z0-9]+([A-Z0-9]{5})\b`), Repl: []byte(`***********************************$1`), + + // https://github.com/DataDog/datadog-agent/pull/14681 + LastUpdated: parseVersion("7.42.0"), } + // URI Generic Syntax // https://tools.ietf.org/html/rfc3986 uriPasswordReplacer := Replacer{ Regex: regexp.MustCompile(`(?i)([a-z][a-z0-9+-.]+://|\b)([^:]+):([^\s|"]+)@`), Repl: []byte(`$1$2:********@`), + + // https://github.com/DataDog/datadog-agent/pull/15959 + LastUpdated: parseVersion("7.45.0"), } yamlPasswordReplacer := matchYAMLKeyPart( `(pass(word)?|pwd)`, []string{"pass", "pwd"}, []byte(`$1 "********"`), ) + yamlPasswordReplacer.LastUpdated = defaultVersion passwordReplacer := Replacer{ // this regex has three parts: // * key: case-insensitive, optionally quoted (pass | password | pswd | pwd), not anchored to match on args like --mysql_password= etc. @@ -107,22 +139,28 @@ func AddDefaultReplacers(scrubber *Scrubber) { Regex: regexp.MustCompile(`(?i)(\"?(?:pass(?:word)?|pswd|pwd)\"?)((?:=| = |: )\"?)([0-9A-Za-z#!$%&()*+,\-./:<=>?@[\\\]^_{|}~]+)`), // replace the 3rd capture group (password string) with ******** Repl: []byte(`$1$2********`), + + // https://github.com/DataDog/datadog-agent/pull/28144 + LastUpdated: parseVersion("7.57.0"), } tokenReplacer := matchYAMLKeyEnding( `token`, []string{"token"}, []byte(`$1 "********"`), ) + tokenReplacer.LastUpdated = defaultVersion snmpReplacer := matchYAMLKey( `(community_string|authKey|privKey|community|authentication_key|privacy_key|Authorization|authorization)`, []string{"community_string", "authKey", "privKey", "community", "authentication_key", "privacy_key", "Authorization", "authorization"}, []byte(`$1 "********"`), ) + snmpReplacer.LastUpdated = parseVersion("7.53.0") // https://github.com/DataDog/datadog-agent/pull/23515 snmpMultilineReplacer := matchYAMLKeyWithListValue( "(community_strings)", "community_strings", []byte(`$1 "********"`), ) + snmpMultilineReplacer.LastUpdated = parseVersion("7.34.0") // https://github.com/DataDog/datadog-agent/pull/10305 certReplacer := Replacer{ /* Try to match as accurately as possible. RFC 7468's ABNF @@ -132,6 +170,8 @@ func AddDefaultReplacers(scrubber *Scrubber) { Regex: regexp.MustCompile(`-----BEGIN (?:.*)-----[A-Za-z0-9=\+\/\s]*-----END (?:.*)-----`), Hints: []string{"BEGIN"}, Repl: []byte(`********`), + + LastUpdated: defaultVersion, } // The following replacers works on YAML object only @@ -151,6 +191,7 @@ func AddDefaultReplacers(scrubber *Scrubber) { return defaultReplacement }, ) + apiKeyYaml.LastUpdated = parseVersion("7.44.0") // https://github.com/DataDog/datadog-agent/pull/15707 appKeyYaml := matchYAMLOnly( `ap(?:p|plication)_?key`, @@ -167,6 +208,7 @@ func AddDefaultReplacers(scrubber *Scrubber) { return defaultReplacement }, ) + appKeyYaml.LastUpdated = parseVersion("7.44.0") // https://github.com/DataDog/datadog-agent/pull/15707 scrubber.AddReplacer(SingleLine, hintedAPIKeyReplacer) scrubber.AddReplacer(SingleLine, hintedAPPKeyReplacer) diff --git a/pkg/util/scrubber/go.mod b/pkg/util/scrubber/go.mod index ccabdeab1cacc..6f10e986954d3 100644 --- a/pkg/util/scrubber/go.mod +++ b/pkg/util/scrubber/go.mod @@ -3,15 +3,16 @@ module github.com/DataDog/datadog-agent/pkg/util/scrubber go 1.22.0 require ( + github.com/DataDog/datadog-agent/pkg/version v0.59.1 github.com/stretchr/testify v1.10.0 gopkg.in/yaml.v2 v2.4.0 ) require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/kr/pretty v0.3.1 // indirect + github.com/kr/text v0.2.0 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/rogpeppe/go-internal v1.13.1 // indirect - gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/version => ../../version diff --git a/pkg/util/scrubber/go.sum b/pkg/util/scrubber/go.sum index 08716d442d1db..def44d1759f5c 100644 --- a/pkg/util/scrubber/go.sum +++ b/pkg/util/scrubber/go.sum @@ -1,17 +1,12 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= diff --git a/pkg/util/scrubber/scrubber.go b/pkg/util/scrubber/scrubber.go index 1aaad14c2a6d9..c37ede0303017 100644 --- a/pkg/util/scrubber/scrubber.go +++ b/pkg/util/scrubber/scrubber.go @@ -17,6 +17,8 @@ import ( "io" "os" "regexp" + + "github.com/DataDog/datadog-agent/pkg/version" ) // Replacer represents a replacement of sensitive information with a "clean" version. @@ -40,6 +42,18 @@ type Replacer struct { // ReplFunc, if set, is called with the matched bytes (see regexp#Regexp.ReplaceAllFunc). Only // one of Repl and ReplFunc should be set. ReplFunc func(b []byte) []byte + + // LastUpdated is the last version when the replacer was updated. + // This is used to track when a replacer was last updated to compare with the flare version on the rapid side to decide to apply the replacer or not. + LastUpdated *version.Version +} + +func parseVersion(versionString string) *version.Version { + v, err := version.New(versionString, "") + if err != nil { + panic(err) + } + return &v } // ReplacerKind modifies how a Replacer is applied @@ -71,6 +85,10 @@ var blankRegex = regexp.MustCompile(`^\s*$`) type Scrubber struct { singleLineReplacers []Replacer multiLineReplacers []Replacer + + // shouldApply is a function that can be used to conditionally apply a replacer. + // If the function returns false, the replacer will not be applied. + shouldApply func(repl Replacer) bool } // New creates a new scrubber with no replacers installed. @@ -98,6 +116,11 @@ func (c *Scrubber) AddReplacer(kind ReplacerKind, replacer Replacer) { } } +// SetShouldApply sets a condition function to the scrubber. If the function returns false, the replacer will not be applied. +func (c *Scrubber) SetShouldApply(shouldApply func(repl Replacer) bool) { + c.shouldApply = shouldApply +} + // ScrubFile scrubs credentials from file given by pathname func (c *Scrubber) ScrubFile(filePath string) ([]byte, error) { file, err := os.Open(filePath) @@ -177,6 +200,10 @@ func (c *Scrubber) scrub(data []byte, replacers []Replacer) []byte { continue } + if c.shouldApply != nil && !c.shouldApply(repl) { + continue + } + containsHint := false for _, hint := range repl.Hints { if bytes.Contains(data, []byte(hint)) { diff --git a/pkg/util/scrubber/yaml_scrubber.go b/pkg/util/scrubber/yaml_scrubber.go index 74016778573ba..f01d93e064ec5 100644 --- a/pkg/util/scrubber/yaml_scrubber.go +++ b/pkg/util/scrubber/yaml_scrubber.go @@ -85,6 +85,11 @@ func (c *Scrubber) ScrubDataObj(data *interface{}) { if replacer.YAMLKeyRegex == nil { continue } + + if c.shouldApply != nil && !c.shouldApply(replacer) { + continue + } + if replacer.YAMLKeyRegex.Match([]byte(key)) { if replacer.ProcessValue != nil { return true, replacer.ProcessValue(value) diff --git a/pkg/util/system/go.mod b/pkg/util/system/go.mod index 8ec61475312c9..b4ff73911bd1a 100644 --- a/pkg/util/system/go.mod +++ b/pkg/util/system/go.mod @@ -25,6 +25,7 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/go-ole/go-ole v1.3.0 // indirect @@ -40,3 +41,5 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/version => ../../version diff --git a/pkg/util/uuid/go.mod b/pkg/util/uuid/go.mod index de6cfd5cbb275..cc1f446f76aba 100644 --- a/pkg/util/uuid/go.mod +++ b/pkg/util/uuid/go.mod @@ -17,9 +17,9 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/go-ole/go-ole v1.3.0 // indirect - github.com/kr/text v0.2.0 // indirect github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect @@ -31,3 +31,5 @@ require ( go.uber.org/atomic v1.11.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/version => ../../version diff --git a/pkg/util/uuid/go.sum b/pkg/util/uuid/go.sum index c3eee394bf35e..cb390b984f56b 100644 --- a/pkg/util/uuid/go.sum +++ b/pkg/util/uuid/go.sum @@ -1,6 +1,5 @@ github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= diff --git a/pkg/util/winutil/go.mod b/pkg/util/winutil/go.mod index f23d0e841a613..ffbe2bebbe915 100644 --- a/pkg/util/winutil/go.mod +++ b/pkg/util/winutil/go.mod @@ -18,9 +18,11 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/kr/text v0.2.0 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/DataDog/datadog-agent/pkg/version => ../../version diff --git a/pkg/util/winutil/go.sum b/pkg/util/winutil/go.sum index f752a0e34e2b9..e5868006ccf3b 100644 --- a/pkg/util/winutil/go.sum +++ b/pkg/util/winutil/go.sum @@ -1,6 +1,5 @@ github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= diff --git a/test/new-e2e/go.mod b/test/new-e2e/go.mod index e436b5abdfb62..70a957028a0e0 100644 --- a/test/new-e2e/go.mod +++ b/test/new-e2e/go.mod @@ -49,7 +49,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0 github.com/DataDog/datadog-agent/pkg/util/testutil v0.56.2 - github.com/DataDog/datadog-agent/pkg/version v0.59.0 + github.com/DataDog/datadog-agent/pkg/version v0.59.1 github.com/DataDog/datadog-agent/test/fakeintake v0.56.0-rc.3 github.com/DataDog/datadog-api-client-go v1.16.0 github.com/DataDog/datadog-api-client-go/v2 v2.31.0 diff --git a/test/otel/go.mod b/test/otel/go.mod index daa95297b8765..bee89d92f6c59 100644 --- a/test/otel/go.mod +++ b/test/otel/go.mod @@ -173,7 +173,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect - github.com/DataDog/datadog-agent/pkg/version v0.56.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/datadog-api-client-go/v2 v2.31.0 // indirect github.com/DataDog/datadog-go/v5 v5.5.0 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect From 6d7ae5bf2aeafbcef273e552ef130acd81431d28 Mon Sep 17 00:00:00 2001 From: Pierre Gimalac Date: Wed, 11 Dec 2024 14:30:57 +0100 Subject: [PATCH 392/439] [ASCII-2461] Fix flaky TestRunProviders (#31879) --- comp/core/flare/flare_test.go | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/comp/core/flare/flare_test.go b/comp/core/flare/flare_test.go index 69341d602611f..54589c35d23ea 100644 --- a/comp/core/flare/flare_test.go +++ b/comp/core/flare/flare_test.go @@ -75,8 +75,7 @@ func TestFlareCreation(t *testing.T) { } func TestRunProviders(t *testing.T) { - var firstRan atomic.Bool - var secondRan atomic.Bool + firstStarted := make(chan struct{}, 1) var secondDone atomic.Bool fakeTagger := mockTagger.SetupFakeTagger(t) @@ -105,7 +104,7 @@ func TestRunProviders(t *testing.T) { fx.Provide(fx.Annotate( func() *types.FlareFiller { return types.NewFiller(func(_ types.FlareBuilder) error { - firstRan.Store(true) + firstStarted <- struct{}{} return nil }) }, @@ -114,7 +113,6 @@ func TestRunProviders(t *testing.T) { fx.Provide(fx.Annotate( func() *types.FlareFiller { return types.NewFiller(func(_ types.FlareBuilder) error { - secondRan.Store(true) time.Sleep(10 * time.Second) secondDone.Store(true) return nil @@ -130,9 +128,13 @@ func TestRunProviders(t *testing.T) { fb, err := helpers.NewFlareBuilder(false, flarebuilder.FlareArgs{}) require.NoError(t, err) + start := time.Now() f.Comp.(*flare).runProviders(fb, cliProviderTimeout) + // ensure that providers are actually started + <-firstStarted + elapsed := time.Since(start) - require.True(t, firstRan.Load()) - require.True(t, secondRan.Load()) - require.False(t, secondDone.Load()) + // ensure that we're not blocking for the slow provider + assert.Less(t, elapsed, 5*time.Second) + assert.False(t, secondDone.Load()) } From c2c23bcc67580a2a75820efeac53cd58e30cfb70 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Dec 2024 13:46:39 +0000 Subject: [PATCH 393/439] Bump golang.org/x/sys from 0.27.0 to 0.28.0 in /pkg/trace (#31939) Co-authored-by: ichinaski --- comp/api/api/def/go.mod | 2 +- comp/api/api/def/go.sum | 4 ++-- comp/api/authtoken/go.mod | 2 +- comp/api/authtoken/go.sum | 4 ++-- comp/core/config/go.mod | 2 +- comp/core/config/go.sum | 4 ++-- comp/core/flare/types/go.mod | 2 +- comp/core/flare/types/go.sum | 4 ++-- comp/core/hostname/hostnameinterface/go.mod | 2 +- comp/core/hostname/hostnameinterface/go.sum | 4 ++-- comp/core/log/impl-trace/go.mod | 2 +- comp/core/log/impl-trace/go.sum | 4 ++-- comp/core/log/impl/go.mod | 2 +- comp/core/log/impl/go.sum | 4 ++-- comp/core/log/mock/go.mod | 2 +- comp/core/log/mock/go.sum | 4 ++-- comp/core/secrets/go.mod | 2 +- comp/core/secrets/go.sum | 4 ++-- comp/core/status/go.mod | 2 +- comp/core/status/go.sum | 4 ++-- comp/core/status/statusimpl/go.mod | 2 +- comp/core/status/statusimpl/go.sum | 4 ++-- comp/core/telemetry/go.mod | 2 +- comp/core/telemetry/go.sum | 4 ++-- comp/forwarder/defaultforwarder/go.mod | 2 +- comp/forwarder/defaultforwarder/go.sum | 4 ++-- comp/forwarder/orchestrator/orchestratorinterface/go.mod | 2 +- comp/forwarder/orchestrator/orchestratorinterface/go.sum | 4 ++-- comp/logs/agent/config/go.mod | 2 +- comp/logs/agent/config/go.sum | 4 ++-- comp/otelcol/converter/impl/go.mod | 2 +- comp/otelcol/converter/impl/go.sum | 4 ++-- comp/otelcol/ddflareextension/def/go.mod | 2 +- comp/otelcol/ddflareextension/def/go.sum | 4 ++-- comp/otelcol/ddflareextension/impl/go.mod | 2 +- comp/otelcol/ddflareextension/impl/go.sum | 4 ++-- comp/otelcol/logsagentpipeline/go.mod | 2 +- comp/otelcol/logsagentpipeline/go.sum | 4 ++-- comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod | 2 +- comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum | 4 ++-- comp/otelcol/otlp/components/exporter/datadogexporter/go.mod | 2 +- comp/otelcol/otlp/components/exporter/datadogexporter/go.sum | 4 ++-- .../otelcol/otlp/components/exporter/logsagentexporter/go.mod | 2 +- .../otelcol/otlp/components/exporter/logsagentexporter/go.sum | 4 ++-- .../otlp/components/exporter/serializerexporter/go.mod | 2 +- .../otlp/components/exporter/serializerexporter/go.sum | 4 ++-- comp/otelcol/otlp/components/metricsclient/go.mod | 2 +- comp/otelcol/otlp/components/metricsclient/go.sum | 4 ++-- comp/otelcol/otlp/components/statsprocessor/go.mod | 2 +- comp/otelcol/otlp/components/statsprocessor/go.sum | 4 ++-- comp/otelcol/otlp/testutil/go.mod | 2 +- comp/otelcol/otlp/testutil/go.sum | 4 ++-- comp/serializer/compression/go.mod | 2 +- comp/serializer/compression/go.sum | 4 ++-- comp/trace/agent/def/go.mod | 2 +- comp/trace/agent/def/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- internal/tools/go.mod | 2 +- internal/tools/go.sum | 4 ++-- internal/tools/proto/go.mod | 2 +- internal/tools/proto/go.sum | 4 ++-- pkg/api/go.mod | 2 +- pkg/api/go.sum | 4 ++-- pkg/config/env/go.mod | 2 +- pkg/config/env/go.sum | 4 ++-- pkg/config/mock/go.mod | 2 +- pkg/config/mock/go.sum | 4 ++-- pkg/config/model/go.mod | 2 +- pkg/config/model/go.sum | 4 ++-- pkg/config/nodetreemodel/go.mod | 2 +- pkg/config/nodetreemodel/go.sum | 4 ++-- pkg/config/remote/go.mod | 2 +- pkg/config/remote/go.sum | 4 ++-- pkg/config/setup/go.mod | 2 +- pkg/config/setup/go.sum | 4 ++-- pkg/config/structure/go.mod | 2 +- pkg/config/structure/go.sum | 4 ++-- pkg/config/teeconfig/go.mod | 2 +- pkg/config/teeconfig/go.sum | 4 ++-- pkg/config/utils/go.mod | 2 +- pkg/config/utils/go.sum | 4 ++-- pkg/gohai/go.mod | 2 +- pkg/gohai/go.sum | 4 ++-- pkg/logs/auditor/go.mod | 2 +- pkg/logs/auditor/go.sum | 4 ++-- pkg/logs/client/go.mod | 2 +- pkg/logs/client/go.sum | 4 ++-- pkg/logs/diagnostic/go.mod | 2 +- pkg/logs/diagnostic/go.sum | 4 ++-- pkg/logs/message/go.mod | 2 +- pkg/logs/message/go.sum | 4 ++-- pkg/logs/metrics/go.mod | 2 +- pkg/logs/metrics/go.sum | 4 ++-- pkg/logs/pipeline/go.mod | 2 +- pkg/logs/pipeline/go.sum | 4 ++-- pkg/logs/processor/go.mod | 2 +- pkg/logs/processor/go.sum | 4 ++-- pkg/logs/sds/go.mod | 2 +- pkg/logs/sds/go.sum | 4 ++-- pkg/logs/sender/go.mod | 2 +- pkg/logs/sender/go.sum | 4 ++-- pkg/logs/sources/go.mod | 2 +- pkg/logs/sources/go.sum | 4 ++-- pkg/logs/util/testutils/go.mod | 2 +- pkg/logs/util/testutils/go.sum | 4 ++-- pkg/metrics/go.mod | 2 +- pkg/metrics/go.sum | 4 ++-- pkg/obfuscate/go.mod | 2 +- pkg/obfuscate/go.sum | 4 ++-- pkg/process/util/api/go.mod | 2 +- pkg/process/util/api/go.sum | 4 ++-- pkg/proto/go.mod | 2 +- pkg/proto/go.sum | 4 ++-- pkg/remoteconfig/state/go.mod | 1 + pkg/remoteconfig/state/go.sum | 4 ++-- pkg/security/secl/go.mod | 2 +- pkg/security/secl/go.sum | 4 ++-- pkg/serializer/go.mod | 2 +- pkg/serializer/go.sum | 4 ++-- pkg/telemetry/go.mod | 2 +- pkg/telemetry/go.sum | 4 ++-- pkg/trace/go.mod | 2 +- pkg/trace/go.sum | 4 ++-- pkg/trace/stats/oteltest/go.mod | 2 +- pkg/trace/stats/oteltest/go.sum | 4 ++-- pkg/util/cgroups/go.mod | 2 +- pkg/util/cgroups/go.sum | 4 ++-- pkg/util/defaultpaths/go.mod | 2 +- pkg/util/defaultpaths/go.sum | 4 ++-- pkg/util/filesystem/go.mod | 2 +- pkg/util/filesystem/go.sum | 4 ++-- pkg/util/flavor/go.mod | 2 +- pkg/util/flavor/go.sum | 4 ++-- pkg/util/fxutil/go.mod | 2 +- pkg/util/fxutil/go.sum | 4 ++-- pkg/util/grpc/go.mod | 2 +- pkg/util/grpc/go.sum | 4 ++-- pkg/util/http/go.mod | 2 +- pkg/util/http/go.sum | 4 ++-- pkg/util/log/setup/go.mod | 2 +- pkg/util/log/setup/go.sum | 4 ++-- pkg/util/system/go.mod | 2 +- pkg/util/system/go.sum | 4 ++-- pkg/util/system/socket/go.mod | 2 +- pkg/util/system/socket/go.sum | 4 ++-- pkg/util/uuid/go.mod | 2 +- pkg/util/uuid/go.sum | 4 ++-- pkg/util/winutil/go.mod | 2 +- pkg/util/winutil/go.sum | 4 ++-- test/fakeintake/go.mod | 2 +- test/fakeintake/go.sum | 4 ++-- test/new-e2e/go.mod | 2 +- test/new-e2e/go.sum | 4 ++-- test/otel/go.mod | 2 +- test/otel/go.sum | 4 ++-- 156 files changed, 234 insertions(+), 233 deletions(-) diff --git a/comp/api/api/def/go.mod b/comp/api/api/def/go.mod index 09f4bd9d7e62e..8a89ca045e6d6 100644 --- a/comp/api/api/def/go.mod +++ b/comp/api/api/def/go.mod @@ -11,5 +11,5 @@ require ( go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect ) diff --git a/comp/api/api/def/go.sum b/comp/api/api/def/go.sum index e01f4bd76ea76..7b69276ecf542 100644 --- a/comp/api/api/def/go.sum +++ b/comp/api/api/def/go.sum @@ -14,7 +14,7 @@ go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/comp/api/authtoken/go.mod b/comp/api/authtoken/go.mod index 242f41ae9f7df..0d71335ec37a3 100644 --- a/comp/api/authtoken/go.mod +++ b/comp/api/authtoken/go.mod @@ -108,7 +108,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/comp/api/authtoken/go.sum b/comp/api/authtoken/go.sum index 324945ccfacf2..1441562d69bde 100644 --- a/comp/api/authtoken/go.sum +++ b/comp/api/authtoken/go.sum @@ -279,8 +279,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/comp/core/config/go.mod b/comp/core/config/go.mod index 53bf6993f2e3b..f7a43ae0beee2 100644 --- a/comp/core/config/go.mod +++ b/comp/core/config/go.mod @@ -104,7 +104,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/comp/core/config/go.sum b/comp/core/config/go.sum index f3d0810fd9fec..12326d3e1f9b6 100644 --- a/comp/core/config/go.sum +++ b/comp/core/config/go.sum @@ -282,8 +282,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/comp/core/flare/types/go.mod b/comp/core/flare/types/go.mod index a6ebdcf9f8a92..a3526c64a15dc 100644 --- a/comp/core/flare/types/go.mod +++ b/comp/core/flare/types/go.mod @@ -16,5 +16,5 @@ require ( go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect ) diff --git a/comp/core/flare/types/go.sum b/comp/core/flare/types/go.sum index e01f4bd76ea76..7b69276ecf542 100644 --- a/comp/core/flare/types/go.sum +++ b/comp/core/flare/types/go.sum @@ -14,7 +14,7 @@ go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/comp/core/hostname/hostnameinterface/go.mod b/comp/core/hostname/hostnameinterface/go.mod index 4f6e92eb22127..c097205307cf6 100644 --- a/comp/core/hostname/hostnameinterface/go.mod +++ b/comp/core/hostname/hostnameinterface/go.mod @@ -25,6 +25,6 @@ require ( go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/core/hostname/hostnameinterface/go.sum b/comp/core/hostname/hostnameinterface/go.sum index b6080ae54f78c..3dcc180d9ba1c 100644 --- a/comp/core/hostname/hostnameinterface/go.sum +++ b/comp/core/hostname/hostnameinterface/go.sum @@ -28,8 +28,8 @@ go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/comp/core/log/impl-trace/go.mod b/comp/core/log/impl-trace/go.mod index 1a3d936200a26..5784f2a4cb400 100644 --- a/comp/core/log/impl-trace/go.mod +++ b/comp/core/log/impl-trace/go.mod @@ -108,7 +108,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/comp/core/log/impl-trace/go.sum b/comp/core/log/impl-trace/go.sum index 324945ccfacf2..1441562d69bde 100644 --- a/comp/core/log/impl-trace/go.sum +++ b/comp/core/log/impl-trace/go.sum @@ -279,8 +279,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/comp/core/log/impl/go.mod b/comp/core/log/impl/go.mod index 440ec8c7e2939..ea5f5ddb29885 100644 --- a/comp/core/log/impl/go.mod +++ b/comp/core/log/impl/go.mod @@ -99,7 +99,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/comp/core/log/impl/go.sum b/comp/core/log/impl/go.sum index 324945ccfacf2..1441562d69bde 100644 --- a/comp/core/log/impl/go.sum +++ b/comp/core/log/impl/go.sum @@ -279,8 +279,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/comp/core/log/mock/go.mod b/comp/core/log/mock/go.mod index c7cf8db9429e7..bf511bfc7e266 100644 --- a/comp/core/log/mock/go.mod +++ b/comp/core/log/mock/go.mod @@ -55,7 +55,7 @@ require ( github.com/spf13/pflag v1.0.5 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/comp/core/log/mock/go.sum b/comp/core/log/mock/go.sum index b3bd1378fba86..1c7b17d164a5d 100644 --- a/comp/core/log/mock/go.sum +++ b/comp/core/log/mock/go.sum @@ -241,8 +241,8 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/comp/core/secrets/go.mod b/comp/core/secrets/go.mod index ed053a2120711..be88b648342b6 100644 --- a/comp/core/secrets/go.mod +++ b/comp/core/secrets/go.mod @@ -28,7 +28,7 @@ require ( github.com/stretchr/testify v1.10.0 go.uber.org/fx v1.23.0 golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f - golang.org/x/sys v0.27.0 + golang.org/x/sys v0.28.0 gopkg.in/yaml.v2 v2.4.0 ) diff --git a/comp/core/secrets/go.sum b/comp/core/secrets/go.sum index 24378e0ee687b..0bb14e9d57579 100644 --- a/comp/core/secrets/go.sum +++ b/comp/core/secrets/go.sum @@ -56,8 +56,8 @@ go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/comp/core/status/go.mod b/comp/core/status/go.mod index c71d31a9e3d40..49c200a653ba3 100644 --- a/comp/core/status/go.mod +++ b/comp/core/status/go.mod @@ -21,7 +21,7 @@ require ( go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/core/status/go.sum b/comp/core/status/go.sum index 5c1fe66f815be..9d0791f4f7d89 100644 --- a/comp/core/status/go.sum +++ b/comp/core/status/go.sum @@ -40,8 +40,8 @@ go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/comp/core/status/statusimpl/go.mod b/comp/core/status/statusimpl/go.mod index 084310e3bd689..cfb7ac9182260 100644 --- a/comp/core/status/statusimpl/go.mod +++ b/comp/core/status/statusimpl/go.mod @@ -114,7 +114,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/core/status/statusimpl/go.sum b/comp/core/status/statusimpl/go.sum index 2d668dccb3ae5..358c24ff26324 100644 --- a/comp/core/status/statusimpl/go.sum +++ b/comp/core/status/statusimpl/go.sum @@ -292,8 +292,8 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/comp/core/telemetry/go.mod b/comp/core/telemetry/go.mod index 23f49ade405b7..4d38df7857b77 100644 --- a/comp/core/telemetry/go.mod +++ b/comp/core/telemetry/go.mod @@ -33,7 +33,7 @@ require ( go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/core/telemetry/go.sum b/comp/core/telemetry/go.sum index 6a015a3b68188..9067c10872735 100644 --- a/comp/core/telemetry/go.sum +++ b/comp/core/telemetry/go.sum @@ -48,8 +48,8 @@ go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/comp/forwarder/defaultforwarder/go.mod b/comp/forwarder/defaultforwarder/go.mod index 93d2d0e006c39..b3f2578ab6a84 100644 --- a/comp/forwarder/defaultforwarder/go.mod +++ b/comp/forwarder/defaultforwarder/go.mod @@ -147,7 +147,7 @@ require ( go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/comp/forwarder/defaultforwarder/go.sum b/comp/forwarder/defaultforwarder/go.sum index 66f7616ec4418..9c26c44f1cda8 100644 --- a/comp/forwarder/defaultforwarder/go.sum +++ b/comp/forwarder/defaultforwarder/go.sum @@ -306,8 +306,8 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/comp/forwarder/orchestrator/orchestratorinterface/go.mod b/comp/forwarder/orchestrator/orchestratorinterface/go.mod index 81d4001b2b4ba..501885a0c7b7b 100644 --- a/comp/forwarder/orchestrator/orchestratorinterface/go.mod +++ b/comp/forwarder/orchestrator/orchestratorinterface/go.mod @@ -154,7 +154,7 @@ require ( go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/comp/forwarder/orchestrator/orchestratorinterface/go.sum b/comp/forwarder/orchestrator/orchestratorinterface/go.sum index 53177ac4376d6..debd6cceb8b31 100644 --- a/comp/forwarder/orchestrator/orchestratorinterface/go.sum +++ b/comp/forwarder/orchestrator/orchestratorinterface/go.sum @@ -307,8 +307,8 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/comp/logs/agent/config/go.mod b/comp/logs/agent/config/go.mod index e31795b917bab..da4be1701769d 100644 --- a/comp/logs/agent/config/go.mod +++ b/comp/logs/agent/config/go.mod @@ -100,7 +100,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/comp/logs/agent/config/go.sum b/comp/logs/agent/config/go.sum index 324945ccfacf2..1441562d69bde 100644 --- a/comp/logs/agent/config/go.sum +++ b/comp/logs/agent/config/go.sum @@ -279,8 +279,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/comp/otelcol/converter/impl/go.mod b/comp/otelcol/converter/impl/go.mod index 2435c73c0c0ab..b13dbe2c343f9 100644 --- a/comp/otelcol/converter/impl/go.mod +++ b/comp/otelcol/converter/impl/go.mod @@ -115,7 +115,7 @@ require ( go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/comp/otelcol/converter/impl/go.sum b/comp/otelcol/converter/impl/go.sum index edcc6b1df46e4..dd15ede05c8be 100644 --- a/comp/otelcol/converter/impl/go.sum +++ b/comp/otelcol/converter/impl/go.sum @@ -303,8 +303,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/comp/otelcol/ddflareextension/def/go.mod b/comp/otelcol/ddflareextension/def/go.mod index d0d35f560a084..afbb13fd7dc20 100644 --- a/comp/otelcol/ddflareextension/def/go.mod +++ b/comp/otelcol/ddflareextension/def/go.mod @@ -17,7 +17,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect diff --git a/comp/otelcol/ddflareextension/def/go.sum b/comp/otelcol/ddflareextension/def/go.sum index 2c09c99ac5912..7ce93f374bad3 100644 --- a/comp/otelcol/ddflareextension/def/go.sum +++ b/comp/otelcol/ddflareextension/def/go.sum @@ -53,8 +53,8 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= diff --git a/comp/otelcol/ddflareextension/impl/go.mod b/comp/otelcol/ddflareextension/impl/go.mod index ce0b658bdbefb..dd9308fb62aa6 100644 --- a/comp/otelcol/ddflareextension/impl/go.mod +++ b/comp/otelcol/ddflareextension/impl/go.mod @@ -510,7 +510,7 @@ require ( golang.org/x/net v0.31.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sync v0.9.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/term v0.26.0 // indirect golang.org/x/text v0.20.0 // indirect golang.org/x/time v0.8.0 // indirect diff --git a/comp/otelcol/ddflareextension/impl/go.sum b/comp/otelcol/ddflareextension/impl/go.sum index 671e97841c79b..7dd61c4dad8ad 100644 --- a/comp/otelcol/ddflareextension/impl/go.sum +++ b/comp/otelcol/ddflareextension/impl/go.sum @@ -1230,8 +1230,8 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= diff --git a/comp/otelcol/logsagentpipeline/go.mod b/comp/otelcol/logsagentpipeline/go.mod index 614caa1bd6c86..4966bc8e9fbad 100644 --- a/comp/otelcol/logsagentpipeline/go.mod +++ b/comp/otelcol/logsagentpipeline/go.mod @@ -154,7 +154,7 @@ require ( go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/comp/otelcol/logsagentpipeline/go.sum b/comp/otelcol/logsagentpipeline/go.sum index 9285d14a5c66a..2046340fbb070 100644 --- a/comp/otelcol/logsagentpipeline/go.sum +++ b/comp/otelcol/logsagentpipeline/go.sum @@ -307,8 +307,8 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod index 29266162fd0aa..245d0eb4b48b0 100644 --- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod +++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod @@ -166,7 +166,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum index 9285d14a5c66a..2046340fbb070 100644 --- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum +++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum @@ -307,8 +307,8 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod index 2d08b1c40a5c3..0cc920d4b5d13 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod @@ -321,7 +321,7 @@ require ( golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect golang.org/x/net v0.31.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/term v0.26.0 // indirect golang.org/x/text v0.20.0 // indirect golang.org/x/time v0.8.0 // indirect diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum index ca4a45729f362..0b1fe883a8e59 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum @@ -568,8 +568,8 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.26.0 h1:WEQa6V3Gja/BhNxg540hBip/kkaYtRg3cxg4oXSw4AU= golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E= diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod index 38d8f5ce4465f..72c156cf15e0d 100644 --- a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod @@ -158,7 +158,7 @@ require ( golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect golang.org/x/net v0.31.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/term v0.26.0 // indirect golang.org/x/text v0.20.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum index 46c7f002b47da..908ead2935092 100644 --- a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum @@ -404,8 +404,8 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.26.0 h1:WEQa6V3Gja/BhNxg540hBip/kkaYtRg3cxg4oXSw4AU= golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod index 959d47803df5e..ff05177cb587d 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod @@ -218,7 +218,7 @@ require ( go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum index f50a19e48a061..691529b929edd 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum @@ -485,8 +485,8 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= diff --git a/comp/otelcol/otlp/components/metricsclient/go.mod b/comp/otelcol/otlp/components/metricsclient/go.mod index fd4131fa08ac9..953a7c7a017cd 100644 --- a/comp/otelcol/otlp/components/metricsclient/go.mod +++ b/comp/otelcol/otlp/components/metricsclient/go.mod @@ -25,7 +25,7 @@ require ( go.opentelemetry.io/otel/sdk v1.32.0 // indirect go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/otelcol/otlp/components/metricsclient/go.sum b/comp/otelcol/otlp/components/metricsclient/go.sum index 4f2f48d1ce2f8..8c8f8cb8beddc 100644 --- a/comp/otelcol/otlp/components/metricsclient/go.sum +++ b/comp/otelcol/otlp/components/metricsclient/go.sum @@ -75,8 +75,8 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/comp/otelcol/otlp/components/statsprocessor/go.mod b/comp/otelcol/otlp/components/statsprocessor/go.mod index 2e082942b0c23..907edfd516589 100644 --- a/comp/otelcol/otlp/components/statsprocessor/go.mod +++ b/comp/otelcol/otlp/components/statsprocessor/go.mod @@ -89,7 +89,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect golang.org/x/time v0.8.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect diff --git a/comp/otelcol/otlp/components/statsprocessor/go.sum b/comp/otelcol/otlp/components/statsprocessor/go.sum index 259d4a5ef2d1b..520e6d9e0d851 100644 --- a/comp/otelcol/otlp/components/statsprocessor/go.sum +++ b/comp/otelcol/otlp/components/statsprocessor/go.sum @@ -214,8 +214,8 @@ golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220627191245-f75cf1eec38b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/comp/otelcol/otlp/testutil/go.mod b/comp/otelcol/otlp/testutil/go.mod index 9593f520e9ab5..4db266071873e 100644 --- a/comp/otelcol/otlp/testutil/go.mod +++ b/comp/otelcol/otlp/testutil/go.mod @@ -98,7 +98,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect diff --git a/comp/otelcol/otlp/testutil/go.sum b/comp/otelcol/otlp/testutil/go.sum index 760f51bf0cd82..4b7a189aa89a0 100644 --- a/comp/otelcol/otlp/testutil/go.sum +++ b/comp/otelcol/otlp/testutil/go.sum @@ -316,8 +316,8 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= diff --git a/comp/serializer/compression/go.mod b/comp/serializer/compression/go.mod index 2ae9730174434..2fd30c52fb34f 100644 --- a/comp/serializer/compression/go.mod +++ b/comp/serializer/compression/go.mod @@ -97,7 +97,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/comp/serializer/compression/go.sum b/comp/serializer/compression/go.sum index b494c71596a4e..c969810bfb058 100644 --- a/comp/serializer/compression/go.sum +++ b/comp/serializer/compression/go.sum @@ -281,8 +281,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/comp/trace/agent/def/go.mod b/comp/trace/agent/def/go.mod index 20be806e2e410..051fa39644e58 100644 --- a/comp/trace/agent/def/go.mod +++ b/comp/trace/agent/def/go.mod @@ -31,7 +31,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect diff --git a/comp/trace/agent/def/go.sum b/comp/trace/agent/def/go.sum index e6671ffe97bf1..f6a6d197fb0a4 100644 --- a/comp/trace/agent/def/go.sum +++ b/comp/trace/agent/def/go.sum @@ -88,8 +88,8 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= diff --git a/go.mod b/go.mod index a3f7a7bf4f2ee..1d48e947979d0 100644 --- a/go.mod +++ b/go.mod @@ -310,7 +310,7 @@ require ( golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f golang.org/x/net v0.31.0 golang.org/x/sync v0.9.0 - golang.org/x/sys v0.27.0 + golang.org/x/sys v0.28.0 golang.org/x/text v0.20.0 golang.org/x/time v0.8.0 golang.org/x/tools v0.27.0 diff --git a/go.sum b/go.sum index b7142253bb0ab..bf22e29643077 100644 --- a/go.sum +++ b/go.sum @@ -2387,8 +2387,8 @@ golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= diff --git a/internal/tools/go.mod b/internal/tools/go.mod index 64be9555db011..977b438c8a53b 100644 --- a/internal/tools/go.mod +++ b/internal/tools/go.mod @@ -229,7 +229,7 @@ require ( golang.org/x/mod v0.22.0 // indirect golang.org/x/net v0.31.0 // indirect golang.org/x/sync v0.9.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/term v0.26.0 // indirect golang.org/x/text v0.20.0 // indirect golang.org/x/tools v0.27.0 // indirect diff --git a/internal/tools/go.sum b/internal/tools/go.sum index 92b0781179c08..e525259ff8fe1 100644 --- a/internal/tools/go.sum +++ b/internal/tools/go.sum @@ -689,8 +689,8 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= diff --git a/internal/tools/proto/go.mod b/internal/tools/proto/go.mod index e59f2dde50aa8..c184f7199cac0 100644 --- a/internal/tools/proto/go.mod +++ b/internal/tools/proto/go.mod @@ -21,7 +21,7 @@ require ( golang.org/x/mod v0.22.0 // indirect golang.org/x/net v0.31.0 // indirect golang.org/x/sync v0.9.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect golang.org/x/tools v0.27.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect diff --git a/internal/tools/proto/go.sum b/internal/tools/proto/go.sum index b4f392a410b6f..eaa399967ead7 100644 --- a/internal/tools/proto/go.sum +++ b/internal/tools/proto/go.sum @@ -89,8 +89,8 @@ golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/pkg/api/go.mod b/pkg/api/go.mod index 945605825f184..0fd5914a9094d 100644 --- a/pkg/api/go.mod +++ b/pkg/api/go.mod @@ -101,7 +101,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/api/go.sum b/pkg/api/go.sum index 324945ccfacf2..1441562d69bde 100644 --- a/pkg/api/go.sum +++ b/pkg/api/go.sum @@ -279,8 +279,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/pkg/config/env/go.mod b/pkg/config/env/go.mod index de1167299c7b9..c98d3f9e2d11e 100644 --- a/pkg/config/env/go.mod +++ b/pkg/config/env/go.mod @@ -45,7 +45,7 @@ require ( github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/config/env/go.sum b/pkg/config/env/go.sum index 2e74083b10f1d..b7b383aee36ed 100644 --- a/pkg/config/env/go.sum +++ b/pkg/config/env/go.sum @@ -236,8 +236,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/pkg/config/mock/go.mod b/pkg/config/mock/go.mod index bd41d45520253..e526a9aa1d0ee 100644 --- a/pkg/config/mock/go.mod +++ b/pkg/config/mock/go.mod @@ -80,7 +80,7 @@ require ( github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/config/mock/go.sum b/pkg/config/mock/go.sum index b70b04e70aa56..b60bbee1b243d 100644 --- a/pkg/config/mock/go.sum +++ b/pkg/config/mock/go.sum @@ -275,8 +275,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/pkg/config/model/go.mod b/pkg/config/model/go.mod index c1fdbcf811244..7f648a0c2076c 100644 --- a/pkg/config/model/go.mod +++ b/pkg/config/model/go.mod @@ -33,7 +33,7 @@ require ( github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect go.uber.org/atomic v1.11.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/config/model/go.sum b/pkg/config/model/go.sum index ef76baba5c97d..ddbfab1c363b2 100644 --- a/pkg/config/model/go.sum +++ b/pkg/config/model/go.sum @@ -219,8 +219,8 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/pkg/config/nodetreemodel/go.mod b/pkg/config/nodetreemodel/go.mod index b349c1b7ee78c..fddf0197843dc 100644 --- a/pkg/config/nodetreemodel/go.mod +++ b/pkg/config/nodetreemodel/go.mod @@ -37,7 +37,7 @@ require ( github.com/spf13/afero v1.11.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/config/nodetreemodel/go.sum b/pkg/config/nodetreemodel/go.sum index 594839f68ca17..e896db4ce9103 100644 --- a/pkg/config/nodetreemodel/go.sum +++ b/pkg/config/nodetreemodel/go.sum @@ -222,8 +222,8 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/pkg/config/remote/go.mod b/pkg/config/remote/go.mod index 45abbf8a59a03..7442b0348731d 100644 --- a/pkg/config/remote/go.mod +++ b/pkg/config/remote/go.mod @@ -143,7 +143,7 @@ require ( github.com/stretchr/objx v0.5.2 // indirect github.com/tinylib/msgp v1.2.4 // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect diff --git a/pkg/config/remote/go.sum b/pkg/config/remote/go.sum index dcb57dbfe438b..a5c2739769aa2 100644 --- a/pkg/config/remote/go.sum +++ b/pkg/config/remote/go.sum @@ -419,8 +419,8 @@ golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220627191245-f75cf1eec38b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/pkg/config/setup/go.mod b/pkg/config/setup/go.mod index b135e7a2d406d..1813f0c12bcbd 100644 --- a/pkg/config/setup/go.mod +++ b/pkg/config/setup/go.mod @@ -102,7 +102,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/config/setup/go.sum b/pkg/config/setup/go.sum index 3308d693c3968..a67414c323f7c 100644 --- a/pkg/config/setup/go.sum +++ b/pkg/config/setup/go.sum @@ -284,8 +284,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/pkg/config/structure/go.mod b/pkg/config/structure/go.mod index c282e2e4de06e..6f87e72960ea6 100644 --- a/pkg/config/structure/go.mod +++ b/pkg/config/structure/go.mod @@ -59,7 +59,7 @@ require ( github.com/spf13/pflag v1.0.5 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/config/structure/go.sum b/pkg/config/structure/go.sum index 594839f68ca17..e896db4ce9103 100644 --- a/pkg/config/structure/go.sum +++ b/pkg/config/structure/go.sum @@ -222,8 +222,8 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/pkg/config/teeconfig/go.mod b/pkg/config/teeconfig/go.mod index 07988a62ac5a3..c65facf0b1e58 100644 --- a/pkg/config/teeconfig/go.mod +++ b/pkg/config/teeconfig/go.mod @@ -30,7 +30,7 @@ require ( github.com/spf13/pflag v1.0.5 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/pkg/config/teeconfig/go.sum b/pkg/config/teeconfig/go.sum index ef76baba5c97d..ddbfab1c363b2 100644 --- a/pkg/config/teeconfig/go.sum +++ b/pkg/config/teeconfig/go.sum @@ -219,8 +219,8 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/pkg/config/utils/go.mod b/pkg/config/utils/go.mod index 8d486b6d22804..c27cbcf9b59f8 100644 --- a/pkg/config/utils/go.mod +++ b/pkg/config/utils/go.mod @@ -85,7 +85,7 @@ require ( github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/config/utils/go.sum b/pkg/config/utils/go.sum index b70b04e70aa56..b60bbee1b243d 100644 --- a/pkg/config/utils/go.sum +++ b/pkg/config/utils/go.sum @@ -275,8 +275,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/pkg/gohai/go.mod b/pkg/gohai/go.mod index 91371a34fdf67..c0363c2bcc074 100644 --- a/pkg/gohai/go.mod +++ b/pkg/gohai/go.mod @@ -10,7 +10,7 @@ require ( github.com/moby/sys/mountinfo v0.7.2 github.com/shirou/gopsutil/v3 v3.24.5 github.com/stretchr/testify v1.10.0 - golang.org/x/sys v0.27.0 + golang.org/x/sys v0.28.0 ) require ( diff --git a/pkg/gohai/go.sum b/pkg/gohai/go.sum index 2315dbdfd4b60..d08fc94f6ffe7 100644 --- a/pkg/gohai/go.sum +++ b/pkg/gohai/go.sum @@ -41,8 +41,8 @@ go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0 golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/pkg/logs/auditor/go.mod b/pkg/logs/auditor/go.mod index f25078eb0613e..ddbd7465dad7f 100644 --- a/pkg/logs/auditor/go.mod +++ b/pkg/logs/auditor/go.mod @@ -99,7 +99,7 @@ require ( github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/logs/auditor/go.sum b/pkg/logs/auditor/go.sum index b70b04e70aa56..b60bbee1b243d 100644 --- a/pkg/logs/auditor/go.sum +++ b/pkg/logs/auditor/go.sum @@ -275,8 +275,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/pkg/logs/client/go.mod b/pkg/logs/client/go.mod index f6c70fa120111..98d517064e966 100644 --- a/pkg/logs/client/go.mod +++ b/pkg/logs/client/go.mod @@ -131,7 +131,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/pkg/logs/client/go.sum b/pkg/logs/client/go.sum index 9a3e2a6dae741..1280297d26d15 100644 --- a/pkg/logs/client/go.sum +++ b/pkg/logs/client/go.sum @@ -286,8 +286,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/pkg/logs/diagnostic/go.mod b/pkg/logs/diagnostic/go.mod index 6794be809224a..5d1ec2ef8d375 100644 --- a/pkg/logs/diagnostic/go.mod +++ b/pkg/logs/diagnostic/go.mod @@ -109,7 +109,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/logs/diagnostic/go.sum b/pkg/logs/diagnostic/go.sum index 324945ccfacf2..1441562d69bde 100644 --- a/pkg/logs/diagnostic/go.sum +++ b/pkg/logs/diagnostic/go.sum @@ -279,8 +279,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/pkg/logs/message/go.mod b/pkg/logs/message/go.mod index 9af21b652514f..926d1755736a7 100644 --- a/pkg/logs/message/go.mod +++ b/pkg/logs/message/go.mod @@ -95,7 +95,7 @@ require ( github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/logs/message/go.sum b/pkg/logs/message/go.sum index b70b04e70aa56..b60bbee1b243d 100644 --- a/pkg/logs/message/go.sum +++ b/pkg/logs/message/go.sum @@ -275,8 +275,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/pkg/logs/metrics/go.mod b/pkg/logs/metrics/go.mod index 3a272b272eee0..4bdfea3031f8c 100644 --- a/pkg/logs/metrics/go.mod +++ b/pkg/logs/metrics/go.mod @@ -40,7 +40,7 @@ require ( go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/logs/metrics/go.sum b/pkg/logs/metrics/go.sum index cd355525b9620..2565635bc3e93 100644 --- a/pkg/logs/metrics/go.sum +++ b/pkg/logs/metrics/go.sum @@ -52,8 +52,8 @@ go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/pkg/logs/pipeline/go.mod b/pkg/logs/pipeline/go.mod index d5ad9fc3387d6..8e94ae545d913 100644 --- a/pkg/logs/pipeline/go.mod +++ b/pkg/logs/pipeline/go.mod @@ -151,7 +151,7 @@ require ( go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/pkg/logs/pipeline/go.sum b/pkg/logs/pipeline/go.sum index 9285d14a5c66a..2046340fbb070 100644 --- a/pkg/logs/pipeline/go.sum +++ b/pkg/logs/pipeline/go.sum @@ -307,8 +307,8 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= diff --git a/pkg/logs/processor/go.mod b/pkg/logs/processor/go.mod index 597b56d08b470..92711d3f0904c 100644 --- a/pkg/logs/processor/go.mod +++ b/pkg/logs/processor/go.mod @@ -130,7 +130,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/pkg/logs/processor/go.sum b/pkg/logs/processor/go.sum index d37f9cd540349..90a3df8fcf57a 100644 --- a/pkg/logs/processor/go.sum +++ b/pkg/logs/processor/go.sum @@ -300,8 +300,8 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= diff --git a/pkg/logs/sds/go.mod b/pkg/logs/sds/go.mod index 25d3edc9a9039..de57c77f0c334 100644 --- a/pkg/logs/sds/go.mod +++ b/pkg/logs/sds/go.mod @@ -124,7 +124,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/pkg/logs/sds/go.sum b/pkg/logs/sds/go.sum index 2d08c2de231b8..f4fe0336fb3e7 100644 --- a/pkg/logs/sds/go.sum +++ b/pkg/logs/sds/go.sum @@ -284,8 +284,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/pkg/logs/sender/go.mod b/pkg/logs/sender/go.mod index 289d3463425c9..34f1b22725b61 100644 --- a/pkg/logs/sender/go.mod +++ b/pkg/logs/sender/go.mod @@ -132,7 +132,7 @@ require ( go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/pkg/logs/sender/go.sum b/pkg/logs/sender/go.sum index 9a3e2a6dae741..1280297d26d15 100644 --- a/pkg/logs/sender/go.sum +++ b/pkg/logs/sender/go.sum @@ -286,8 +286,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/pkg/logs/sources/go.mod b/pkg/logs/sources/go.mod index 84546c2435fbe..d4cb6c8fae893 100644 --- a/pkg/logs/sources/go.mod +++ b/pkg/logs/sources/go.mod @@ -93,7 +93,7 @@ require ( github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/logs/sources/go.sum b/pkg/logs/sources/go.sum index b70b04e70aa56..b60bbee1b243d 100644 --- a/pkg/logs/sources/go.sum +++ b/pkg/logs/sources/go.sum @@ -275,8 +275,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/pkg/logs/util/testutils/go.mod b/pkg/logs/util/testutils/go.mod index 71bf57e885bc8..c8bdb9b516e9f 100644 --- a/pkg/logs/util/testutils/go.mod +++ b/pkg/logs/util/testutils/go.mod @@ -92,7 +92,7 @@ require ( github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/pkg/logs/util/testutils/go.sum b/pkg/logs/util/testutils/go.sum index b70b04e70aa56..b60bbee1b243d 100644 --- a/pkg/logs/util/testutils/go.sum +++ b/pkg/logs/util/testutils/go.sum @@ -275,8 +275,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/pkg/metrics/go.mod b/pkg/metrics/go.mod index a00176bd56df9..98ca0a495a8db 100644 --- a/pkg/metrics/go.mod +++ b/pkg/metrics/go.mod @@ -116,7 +116,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/pkg/metrics/go.sum b/pkg/metrics/go.sum index 9528a7ab7312d..5bbafd25cf4f1 100644 --- a/pkg/metrics/go.sum +++ b/pkg/metrics/go.sum @@ -294,8 +294,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/pkg/obfuscate/go.mod b/pkg/obfuscate/go.mod index 198c5c2fc5cfe..6244babbebdad 100644 --- a/pkg/obfuscate/go.mod +++ b/pkg/obfuscate/go.mod @@ -21,7 +21,7 @@ require ( github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/rogpeppe/go-internal v1.13.1 // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/obfuscate/go.sum b/pkg/obfuscate/go.sum index 7a042c0a114ed..110dcdcb3b979 100644 --- a/pkg/obfuscate/go.sum +++ b/pkg/obfuscate/go.sum @@ -74,8 +74,8 @@ golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220627191245-f75cf1eec38b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/pkg/process/util/api/go.mod b/pkg/process/util/api/go.mod index aabb46411e91a..f76e70cb9ee0f 100644 --- a/pkg/process/util/api/go.mod +++ b/pkg/process/util/api/go.mod @@ -43,7 +43,7 @@ require ( go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/process/util/api/go.sum b/pkg/process/util/api/go.sum index e79f1957f4ded..7343a1cf6d04e 100644 --- a/pkg/process/util/api/go.sum +++ b/pkg/process/util/api/go.sum @@ -79,8 +79,8 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/proto/go.mod b/pkg/proto/go.mod index a32e4765c7eef..31b8133d579a2 100644 --- a/pkg/proto/go.mod +++ b/pkg/proto/go.mod @@ -25,7 +25,7 @@ require ( github.com/rogpeppe/go-internal v1.13.1 // indirect github.com/vmihailenco/tagparser v0.1.2 // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 // indirect diff --git a/pkg/proto/go.sum b/pkg/proto/go.sum index f8c2e6a2fb3ba..e5169ad285286 100644 --- a/pkg/proto/go.sum +++ b/pkg/proto/go.sum @@ -109,8 +109,8 @@ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/pkg/remoteconfig/state/go.mod b/pkg/remoteconfig/state/go.mod index 70621d8c5107a..cba41ddd27681 100644 --- a/pkg/remoteconfig/state/go.mod +++ b/pkg/remoteconfig/state/go.mod @@ -15,5 +15,6 @@ require ( github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/rogpeppe/go-internal v1.13.1 // indirect golang.org/x/crypto v0.29.0 // indirect + golang.org/x/sys v0.28.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/remoteconfig/state/go.sum b/pkg/remoteconfig/state/go.sum index 3f95fd21b0871..5d971132d7ec4 100644 --- a/pkg/remoteconfig/state/go.sum +++ b/pkg/remoteconfig/state/go.sum @@ -23,8 +23,8 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/pkg/security/secl/go.mod b/pkg/security/secl/go.mod index e5f0a3c820483..8be4ff1e048be 100644 --- a/pkg/security/secl/go.mod +++ b/pkg/security/secl/go.mod @@ -17,7 +17,7 @@ require ( github.com/spf13/cast v1.7.0 github.com/stretchr/testify v1.10.0 github.com/xeipuuv/gojsonschema v1.2.0 - golang.org/x/sys v0.27.0 + golang.org/x/sys v0.28.0 golang.org/x/text v0.20.0 golang.org/x/tools v0.27.0 gopkg.in/yaml.v3 v3.0.1 diff --git a/pkg/security/secl/go.sum b/pkg/security/secl/go.sum index 0c694b56983cf..354a1917077fc 100644 --- a/pkg/security/secl/go.sum +++ b/pkg/security/secl/go.sum @@ -90,8 +90,8 @@ golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/pkg/serializer/go.mod b/pkg/serializer/go.mod index 815c0bc0fca03..6975af71a3a78 100644 --- a/pkg/serializer/go.mod +++ b/pkg/serializer/go.mod @@ -179,7 +179,7 @@ require ( go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/serializer/go.sum b/pkg/serializer/go.sum index ecef4fa7182fa..8260879f5cb4d 100644 --- a/pkg/serializer/go.sum +++ b/pkg/serializer/go.sum @@ -350,8 +350,8 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= diff --git a/pkg/telemetry/go.mod b/pkg/telemetry/go.mod index d50e41412bcc8..6b727ea0cfd97 100644 --- a/pkg/telemetry/go.mod +++ b/pkg/telemetry/go.mod @@ -36,7 +36,7 @@ require ( go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/telemetry/go.sum b/pkg/telemetry/go.sum index a634eb0726e6e..6ba871b73d5aa 100644 --- a/pkg/telemetry/go.sum +++ b/pkg/telemetry/go.sum @@ -50,8 +50,8 @@ go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/pkg/trace/go.mod b/pkg/trace/go.mod index 575006dcc0326..6853ea9519164 100644 --- a/pkg/trace/go.mod +++ b/pkg/trace/go.mod @@ -44,7 +44,7 @@ require ( go.opentelemetry.io/otel v1.32.0 go.opentelemetry.io/otel/metric v1.32.0 go.uber.org/atomic v1.11.0 - golang.org/x/sys v0.27.0 + golang.org/x/sys v0.28.0 golang.org/x/time v0.8.0 google.golang.org/grpc v1.67.1 google.golang.org/protobuf v1.35.2 diff --git a/pkg/trace/go.sum b/pkg/trace/go.sum index 91f1b0b48ab3d..5d3d0d4a89d22 100644 --- a/pkg/trace/go.sum +++ b/pkg/trace/go.sum @@ -372,8 +372,8 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/pkg/trace/stats/oteltest/go.mod b/pkg/trace/stats/oteltest/go.mod index a145c90943402..e80c6fc27dccd 100644 --- a/pkg/trace/stats/oteltest/go.mod +++ b/pkg/trace/stats/oteltest/go.mod @@ -76,7 +76,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/net v0.31.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect golang.org/x/time v0.8.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect diff --git a/pkg/trace/stats/oteltest/go.sum b/pkg/trace/stats/oteltest/go.sum index 259d4a5ef2d1b..520e6d9e0d851 100644 --- a/pkg/trace/stats/oteltest/go.sum +++ b/pkg/trace/stats/oteltest/go.sum @@ -214,8 +214,8 @@ golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220627191245-f75cf1eec38b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/pkg/util/cgroups/go.mod b/pkg/util/cgroups/go.mod index df4c25d4052b8..47a3c2c368f5f 100644 --- a/pkg/util/cgroups/go.mod +++ b/pkg/util/cgroups/go.mod @@ -29,7 +29,7 @@ require ( github.com/opencontainers/runtime-spec v1.2.0 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect go.uber.org/atomic v1.11.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/util/cgroups/go.sum b/pkg/util/cgroups/go.sum index e85a1ea965ce8..69f8c3e58e44b 100644 --- a/pkg/util/cgroups/go.sum +++ b/pkg/util/cgroups/go.sum @@ -31,8 +31,8 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/pkg/util/defaultpaths/go.mod b/pkg/util/defaultpaths/go.mod index d87440f277c30..ad84aa45db6e9 100644 --- a/pkg/util/defaultpaths/go.mod +++ b/pkg/util/defaultpaths/go.mod @@ -13,7 +13,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/executable v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/winutil v0.56.0-rc.3 - golang.org/x/sys v0.27.0 + golang.org/x/sys v0.28.0 ) require ( diff --git a/pkg/util/defaultpaths/go.sum b/pkg/util/defaultpaths/go.sum index c3b0b0188c902..767c365bf98df 100644 --- a/pkg/util/defaultpaths/go.sum +++ b/pkg/util/defaultpaths/go.sum @@ -16,8 +16,8 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/pkg/util/filesystem/go.mod b/pkg/util/filesystem/go.mod index cb61a2bdb1701..bc466baa93e3e 100644 --- a/pkg/util/filesystem/go.mod +++ b/pkg/util/filesystem/go.mod @@ -15,7 +15,7 @@ require ( github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 github.com/shirou/gopsutil/v3 v3.24.5 github.com/stretchr/testify v1.10.0 - golang.org/x/sys v0.27.0 + golang.org/x/sys v0.28.0 ) require ( diff --git a/pkg/util/filesystem/go.sum b/pkg/util/filesystem/go.sum index 7bde33aa41ad5..ed5847ab111d3 100644 --- a/pkg/util/filesystem/go.sum +++ b/pkg/util/filesystem/go.sum @@ -29,8 +29,8 @@ golang.org/x/sys v0.0.0-20190529164535-6a60838ec259/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/pkg/util/flavor/go.mod b/pkg/util/flavor/go.mod index c9c0f4b4c6d60..e6597dff10c65 100644 --- a/pkg/util/flavor/go.mod +++ b/pkg/util/flavor/go.mod @@ -81,7 +81,7 @@ require ( github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/util/flavor/go.sum b/pkg/util/flavor/go.sum index b70b04e70aa56..b60bbee1b243d 100644 --- a/pkg/util/flavor/go.sum +++ b/pkg/util/flavor/go.sum @@ -275,8 +275,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/pkg/util/fxutil/go.mod b/pkg/util/fxutil/go.mod index 249b7b5223891..48681aa9b89a5 100644 --- a/pkg/util/fxutil/go.mod +++ b/pkg/util/fxutil/go.mod @@ -24,6 +24,6 @@ require ( go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/util/fxutil/go.sum b/pkg/util/fxutil/go.sum index b6080ae54f78c..3dcc180d9ba1c 100644 --- a/pkg/util/fxutil/go.sum +++ b/pkg/util/fxutil/go.sum @@ -28,8 +28,8 @@ go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/pkg/util/grpc/go.mod b/pkg/util/grpc/go.mod index d4e591bfe5d0e..9798867b0e38d 100644 --- a/pkg/util/grpc/go.mod +++ b/pkg/util/grpc/go.mod @@ -97,7 +97,7 @@ require ( go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect golang.org/x/oauth2 v0.23.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect diff --git a/pkg/util/grpc/go.sum b/pkg/util/grpc/go.sum index 2670baa59f394..f3926160d06fa 100644 --- a/pkg/util/grpc/go.sum +++ b/pkg/util/grpc/go.sum @@ -322,8 +322,8 @@ golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= diff --git a/pkg/util/http/go.mod b/pkg/util/http/go.mod index 86386cd3fe51e..561ab50ecabe4 100644 --- a/pkg/util/http/go.mod +++ b/pkg/util/http/go.mod @@ -83,7 +83,7 @@ require ( github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/util/http/go.sum b/pkg/util/http/go.sum index d2da3c8b27c74..d12b0ce7595dd 100644 --- a/pkg/util/http/go.sum +++ b/pkg/util/http/go.sum @@ -277,8 +277,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/pkg/util/log/setup/go.mod b/pkg/util/log/setup/go.mod index a5fe63b6f8faa..11b3815ca0a92 100644 --- a/pkg/util/log/setup/go.mod +++ b/pkg/util/log/setup/go.mod @@ -82,7 +82,7 @@ require ( github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/util/log/setup/go.sum b/pkg/util/log/setup/go.sum index b70b04e70aa56..b60bbee1b243d 100644 --- a/pkg/util/log/setup/go.sum +++ b/pkg/util/log/setup/go.sum @@ -275,8 +275,8 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= diff --git a/pkg/util/system/go.mod b/pkg/util/system/go.mod index b4ff73911bd1a..19c8faadba063 100644 --- a/pkg/util/system/go.mod +++ b/pkg/util/system/go.mod @@ -20,7 +20,7 @@ require ( github.com/shirou/gopsutil/v3 v3.24.5 github.com/stretchr/testify v1.10.0 go.uber.org/atomic v1.11.0 - golang.org/x/sys v0.27.0 + golang.org/x/sys v0.28.0 ) require ( diff --git a/pkg/util/system/go.sum b/pkg/util/system/go.sum index 0789cc0a43849..5b8aa8f5cf5c1 100644 --- a/pkg/util/system/go.sum +++ b/pkg/util/system/go.sum @@ -42,8 +42,8 @@ golang.org/x/sys v0.0.0-20190529164535-6a60838ec259/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/pkg/util/system/socket/go.mod b/pkg/util/system/socket/go.mod index d3b2514425928..adca0da3a1292 100644 --- a/pkg/util/system/socket/go.mod +++ b/pkg/util/system/socket/go.mod @@ -4,4 +4,4 @@ go 1.22.0 require github.com/Microsoft/go-winio v0.6.2 -require golang.org/x/sys v0.27.0 // indirect +require golang.org/x/sys v0.28.0 // indirect diff --git a/pkg/util/system/socket/go.sum b/pkg/util/system/socket/go.sum index 58b1be1082c18..d723dbfa45f9e 100644 --- a/pkg/util/system/socket/go.sum +++ b/pkg/util/system/socket/go.sum @@ -1,4 +1,4 @@ github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= diff --git a/pkg/util/uuid/go.mod b/pkg/util/uuid/go.mod index cc1f446f76aba..36c2bd314e410 100644 --- a/pkg/util/uuid/go.mod +++ b/pkg/util/uuid/go.mod @@ -12,7 +12,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/cache v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 github.com/shirou/gopsutil/v3 v3.24.5 - golang.org/x/sys v0.27.0 + golang.org/x/sys v0.28.0 ) require ( diff --git a/pkg/util/uuid/go.sum b/pkg/util/uuid/go.sum index cb390b984f56b..45f247c1429f6 100644 --- a/pkg/util/uuid/go.sum +++ b/pkg/util/uuid/go.sum @@ -41,8 +41,8 @@ go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0 golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/pkg/util/winutil/go.mod b/pkg/util/winutil/go.mod index ffbe2bebbe915..801288c667f47 100644 --- a/pkg/util/winutil/go.mod +++ b/pkg/util/winutil/go.mod @@ -13,7 +13,7 @@ require ( github.com/fsnotify/fsnotify v1.8.0 github.com/stretchr/testify v1.10.0 go.uber.org/atomic v1.11.0 - golang.org/x/sys v0.27.0 + golang.org/x/sys v0.28.0 ) require ( diff --git a/pkg/util/winutil/go.sum b/pkg/util/winutil/go.sum index e5868006ccf3b..99e864f633ef6 100644 --- a/pkg/util/winutil/go.sum +++ b/pkg/util/winutil/go.sum @@ -16,8 +16,8 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/test/fakeintake/go.mod b/test/fakeintake/go.mod index 5caf2937f7ad5..b4094d4af835e 100644 --- a/test/fakeintake/go.mod +++ b/test/fakeintake/go.mod @@ -53,7 +53,7 @@ require ( github.com/rivo/uniseg v0.4.7 // indirect github.com/rogpeppe/go-internal v1.13.1 // indirect github.com/spf13/pflag v1.0.5 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/text v0.20.0 // indirect golang.org/x/tools v0.27.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/test/fakeintake/go.sum b/test/fakeintake/go.sum index 66dfefa293b31..7267f4b399133 100644 --- a/test/fakeintake/go.sum +++ b/test/fakeintake/go.sum @@ -115,8 +115,8 @@ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= diff --git a/test/new-e2e/go.mod b/test/new-e2e/go.mod index 70a957028a0e0..f42ee4e61a984 100644 --- a/test/new-e2e/go.mod +++ b/test/new-e2e/go.mod @@ -81,7 +81,7 @@ require ( github.com/stretchr/testify v1.10.0 github.com/xeipuuv/gojsonschema v1.2.0 golang.org/x/crypto v0.29.0 - golang.org/x/sys v0.27.0 + golang.org/x/sys v0.28.0 golang.org/x/term v0.26.0 gopkg.in/yaml.v2 v2.4.0 gopkg.in/zorkian/go-datadog-api.v2 v2.30.0 diff --git a/test/new-e2e/go.sum b/test/new-e2e/go.sum index 959fa036fca7d..2942cca211484 100644 --- a/test/new-e2e/go.sum +++ b/test/new-e2e/go.sum @@ -633,8 +633,8 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= diff --git a/test/otel/go.mod b/test/otel/go.mod index bee89d92f6c59..a20206bf8391a 100644 --- a/test/otel/go.mod +++ b/test/otel/go.mod @@ -294,7 +294,7 @@ require ( golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect golang.org/x/net v0.31.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/term v0.26.0 // indirect golang.org/x/text v0.20.0 // indirect golang.org/x/time v0.8.0 // indirect diff --git a/test/otel/go.sum b/test/otel/go.sum index 41eeabdd1023c..a2ed9a90d5779 100644 --- a/test/otel/go.sum +++ b/test/otel/go.sum @@ -550,8 +550,8 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.26.0 h1:WEQa6V3Gja/BhNxg540hBip/kkaYtRg3cxg4oXSw4AU= golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E= From 7bab2dc3c32ab019b7e5a03c4a14d0fb439a69ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillermo=20Juli=C3=A1n?= Date: Wed, 11 Dec 2024 14:49:54 +0100 Subject: [PATCH 394/439] usm: Refactor istio monitor to use new uprobe attacher (#29303) --- pkg/network/usm/ebpf_ssl.go | 7 +- pkg/network/usm/istio.go | 194 ++++++++-------------------------- pkg/network/usm/istio_test.go | 137 +++++++++++++----------- 3 files changed, 127 insertions(+), 211 deletions(-) diff --git a/pkg/network/usm/ebpf_ssl.go b/pkg/network/usm/ebpf_ssl.go index af4fa84364568..64e452ea7fe45 100644 --- a/pkg/network/usm/ebpf_ssl.go +++ b/pkg/network/usm/ebpf_ssl.go @@ -466,10 +466,15 @@ func newSSLProgramProtocolFactory(m *manager.Manager) protocols.ProtocolFactory return nil, fmt.Errorf("error initializing nodejs monitor: %w", err) } + istio, err := newIstioMonitor(c, m) + if err != nil { + return nil, fmt.Errorf("error initializing istio monitor: %w", err) + } + return &sslProgram{ cfg: c, watcher: watcher, - istioMonitor: newIstioMonitor(c, m), + istioMonitor: istio, nodeJSMonitor: nodejs, }, nil } diff --git a/pkg/network/usm/istio.go b/pkg/network/usm/istio.go index 6fff6b6fd493b..4abb8c8995869 100644 --- a/pkg/network/usm/istio.go +++ b/pkg/network/usm/istio.go @@ -9,24 +9,22 @@ package usm import ( "fmt" - "os" "strings" - "sync" - "time" manager "github.com/DataDog/ebpf-manager" + "github.com/DataDog/datadog-agent/pkg/ebpf/uprobes" "github.com/DataDog/datadog-agent/pkg/network/config" "github.com/DataDog/datadog-agent/pkg/network/usm/consts" - "github.com/DataDog/datadog-agent/pkg/network/usm/utils" "github.com/DataDog/datadog-agent/pkg/process/monitor" - "github.com/DataDog/datadog-agent/pkg/util/kernel" "github.com/DataDog/datadog-agent/pkg/util/log" ) const ( istioSslReadRetprobe = "istio_uretprobe__SSL_read" istioSslWriteRetprobe = "istio_uretprobe__SSL_write" + + istioAttacherName = "istio" ) var istioProbes = []manager.ProbesSelector{ @@ -83,64 +81,41 @@ var istioProbes = []manager.ProbesSelector{ // because the Envoy binary embedded in the Istio containers have debug symbols // whereas the "vanilla" Envoy images are distributed without them. type istioMonitor struct { - registry *utils.FileRegistry - procRoot string - envoyCmd string - - // `utils.FileRegistry` callbacks - registerCB func(utils.FilePath) error - unregisterCB func(utils.FilePath) error - - // Termination - wg sync.WaitGroup - done chan struct{} + attacher *uprobes.UprobeAttacher + envoyCmd string + processMonitor *monitor.ProcessMonitor } -// Validate that istioMonitor implements the Attacher interface. -var _ utils.Attacher = &istioMonitor{} - -func newIstioMonitor(c *config.Config, mgr *manager.Manager) *istioMonitor { +func newIstioMonitor(c *config.Config, mgr *manager.Manager) (*istioMonitor, error) { if !c.EnableIstioMonitoring { - return nil + return nil, nil } - procRoot := kernel.ProcFSRoot() - return &istioMonitor{ - registry: utils.NewFileRegistry(consts.USMModuleName, "istio"), - procRoot: procRoot, - envoyCmd: c.EnvoyPath, - done: make(chan struct{}), - - // Callbacks - registerCB: addHooks(mgr, procRoot, istioProbes), - unregisterCB: removeHooks(mgr, istioProbes), + m := &istioMonitor{ + envoyCmd: c.EnvoyPath, + attacher: nil, + processMonitor: monitor.GetProcessMonitor(), } -} - -// DetachPID detaches a given pid from the eBPF program -func (m *istioMonitor) DetachPID(pid uint32) error { - return m.registry.Unregister(pid) -} -var ( - // ErrNoEnvoyPath is returned when no envoy path is found for a given PID - ErrNoEnvoyPath = fmt.Errorf("no envoy path found for PID") -) - -// AttachPID attaches a given pid to the eBPF program -func (m *istioMonitor) AttachPID(pid uint32) error { - path := m.getEnvoyPath(pid) - if path == "" { - return ErrNoEnvoyPath + attachCfg := uprobes.AttacherConfig{ + ProcRoot: c.ProcRoot, + Rules: []*uprobes.AttachRule{{ + Targets: uprobes.AttachToExecutable, + ProbesSelector: istioProbes, + ExecutableFilter: m.isIstioBinary, + }}, + EbpfConfig: &c.Config, + ExcludeTargets: uprobes.ExcludeSelf | uprobes.ExcludeInternal | uprobes.ExcludeBuildkit | uprobes.ExcludeContainerdTmp, + EnablePeriodicScanNewProcesses: true, } + attacher, err := uprobes.NewUprobeAttacher(consts.USMModuleName, istioAttacherName, attachCfg, mgr, nil, &uprobes.NativeBinaryInspector{}, m.processMonitor) + if err != nil { + return nil, fmt.Errorf("Cannot create uprobe attacher: %w", err) + } + + m.attacher = attacher - return m.registry.Register( - path, - pid, - m.registerCB, - m.unregisterCB, - utils.IgnoreCB, - ) + return m, nil } // Start the istioMonitor @@ -149,49 +124,16 @@ func (m *istioMonitor) Start() { return } - processMonitor := monitor.GetProcessMonitor() - - // Subscribe to process events - doneExec := processMonitor.SubscribeExec(m.handleProcessExec) - doneExit := processMonitor.SubscribeExit(m.handleProcessExit) - - // Attach to existing processes - m.sync() - - m.wg.Add(1) - go func() { - // This ticker is responsible for controlling the rate at which - // we scrape the whole procFS again in order to ensure that we - // terminate any dangling uprobes and register new processes - // missed by the process monitor stream - processSync := time.NewTicker(scanTerminatedProcessesInterval) - - defer func() { - processSync.Stop() - // Execute process monitor callback termination functions - doneExec() - doneExit() - // Stopping the process monitor (if we're the last instance) - processMonitor.Stop() - // Cleaning up all active hooks - m.registry.Clear() - // marking we're finished. - m.wg.Done() - }() + if m.attacher == nil { + log.Error("istio monitoring is enabled but the attacher is nil") + return + } - for { - select { - case <-m.done: - return - case <-processSync.C: - m.sync() - m.registry.Log() - } - } - }() + if err := m.attacher.Start(); err != nil { + log.Errorf("Cannot start istio attacher: %s", err) + } - utils.AddAttacher(consts.USMModuleName, "istio", m) - log.Info("Istio monitoring enabled") + log.Info("istio monitoring enabled") } // Stop the istioMonitor. @@ -200,62 +142,16 @@ func (m *istioMonitor) Stop() { return } - close(m.done) - m.wg.Wait() -} - -// sync state of istioMonitor with the current state of procFS -// the purpose of this method is two-fold: -// 1) register processes for which we missed exec events (targeted mostly at startup) -// 2) unregister processes for which we missed exit events -func (m *istioMonitor) sync() { - deletionCandidates := m.registry.GetRegisteredProcesses() - - _ = kernel.WithAllProcs(m.procRoot, func(pid int) error { - if _, ok := deletionCandidates[uint32(pid)]; ok { - // We have previously hooked into this process and it remains active, - // so we remove it from the deletionCandidates list, and move on to the next PID - delete(deletionCandidates, uint32(pid)) - return nil - } - - // This is a new PID so we attempt to attach SSL probes to it - _ = m.AttachPID(uint32(pid)) - return nil - }) - - // At this point all entries from deletionCandidates are no longer alive, so - // we should detach our SSL probes from them - for pid := range deletionCandidates { - m.handleProcessExit(pid) + if m.attacher == nil { + log.Error("istio monitoring is enabled but the attacher is nil") + return } -} - -func (m *istioMonitor) handleProcessExit(pid uint32) { - // We avoid filtering PIDs here because it's cheaper to simply do a registry lookup - // instead of fetching a process name in order to determine whether it is an - // envoy process or not (which at the very minimum involves syscalls) - _ = m.DetachPID(pid) -} -func (m *istioMonitor) handleProcessExec(pid uint32) { - _ = m.AttachPID(pid) + m.attacher.Stop() } -// getEnvoyPath returns the executable path of the envoy binary for a given PID. -// It constructs the path to the symbolic link for the executable file of the process with the given PID, -// then resolves this symlink to determine the actual path of the binary. -// -// If the resolved path contains the expected envoy command substring (as defined by m.envoyCmd), -// the function returns this path. If the PID does not correspond to an envoy process or if an error -// occurs during resolution, it returns an empty string. -func (m *istioMonitor) getEnvoyPath(pid uint32) string { - exePath := fmt.Sprintf("%s/%d/exe", m.procRoot, pid) - - envoyPath, err := os.Readlink(exePath) - if err != nil || !strings.Contains(envoyPath, m.envoyCmd) { - return "" - } - - return envoyPath +// isIstioBinary checks whether the given file is an istioBinary, based on the expected envoy +// command substring (as defined by m.envoyCmd). +func (m *istioMonitor) isIstioBinary(path string, _ *uprobes.ProcInfo) bool { + return strings.Contains(path, m.envoyCmd) } diff --git a/pkg/network/usm/istio_test.go b/pkg/network/usm/istio_test.go index 73efaf1a4ef4b..72a4f4fb86fdf 100644 --- a/pkg/network/usm/istio_test.go +++ b/pkg/network/usm/istio_test.go @@ -8,32 +8,32 @@ package usm import ( - "os/exec" + "os" "path/filepath" - "strings" "testing" - "github.com/DataDog/datadog-agent/pkg/network/config" - "github.com/DataDog/datadog-agent/pkg/network/usm/utils" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" + + "github.com/DataDog/datadog-agent/pkg/ebpf/uprobes" + "github.com/DataDog/datadog-agent/pkg/network/config" + "github.com/DataDog/datadog-agent/pkg/network/usm/utils" ) const ( defaultEnvoyName = "/bin/envoy" ) -func TestGetEnvoyPath(t *testing.T) { - _, pid := createFakeProcess(t, defaultEnvoyName) - monitor := newIstioTestMonitor(t) +func TestIsIstioBinary(t *testing.T) { + procRoot := uprobes.CreateFakeProcFS(t, []uprobes.FakeProcFSEntry{}) + m := newIstioTestMonitor(t, procRoot) t.Run("an actual envoy process", func(t *testing.T) { - path := monitor.getEnvoyPath(uint32(pid)) - assert.True(t, strings.HasSuffix(path, defaultEnvoyName)) + assert.True(t, m.isIstioBinary(defaultEnvoyName, uprobes.NewProcInfo(procRoot, 1))) }) t.Run("something else", func(t *testing.T) { - path := monitor.getEnvoyPath(uint32(2)) - assert.Empty(t, "", path) + assert.False(t, m.isIstioBinary("", uprobes.NewProcInfo(procRoot, 2))) }) } @@ -43,71 +43,86 @@ func TestGetEnvoyPathWithConfig(t *testing.T) { cfg.EnvoyPath = "/test/envoy" monitor := newIstioTestMonitorWithCFG(t, cfg) - _, pid := createFakeProcess(t, cfg.EnvoyPath) - - path := monitor.getEnvoyPath(uint32(pid)) - assert.True(t, strings.HasSuffix(path, cfg.EnvoyPath)) + assert.True(t, monitor.isIstioBinary(cfg.EnvoyPath, uprobes.NewProcInfo("", 0))) + assert.False(t, monitor.isIstioBinary("something/else/", uprobes.NewProcInfo("", 0))) } func TestIstioSync(t *testing.T) { - t.Run("calling sync multiple times", func(t *testing.T) { - procRoot1, _ := createFakeProcess(t, filepath.Join("test1", defaultEnvoyName)) - procRoot2, _ := createFakeProcess(t, filepath.Join("test2", defaultEnvoyName)) - monitor := newIstioTestMonitor(t) - registerRecorder := new(utils.CallbackRecorder) - - // Setup test callbacks - monitor.registerCB = registerRecorder.Callback() - monitor.unregisterCB = utils.IgnoreCB - - // Calling sync multiple times shouldn't matter. - // Once all envoy process are registered, calling it again shouldn't - // trigger additional callback executions - monitor.sync() - monitor.sync() - - pathID1, err := utils.NewPathIdentifier(procRoot1) - require.NoError(t, err) - - pathID2, err := utils.NewPathIdentifier(procRoot2) - require.NoError(t, err) - - // Each PathID should have triggered a callback exactly once - assert.Equal(t, 2, registerRecorder.TotalCalls()) - assert.Equal(t, 1, registerRecorder.CallsForPathID(pathID1)) - assert.Equal(t, 1, registerRecorder.CallsForPathID(pathID2)) + t.Run("calling sync for the first time", func(tt *testing.T) { + procRoot := uprobes.CreateFakeProcFS(tt, []uprobes.FakeProcFSEntry{ + {Pid: 1, Exe: defaultEnvoyName}, + {Pid: 2, Exe: "/bin/bash"}, + {Pid: 3, Exe: defaultEnvoyName}, + }) + monitor := newIstioTestMonitor(tt, procRoot) + + mockRegistry := &uprobes.MockFileRegistry{} + monitor.attacher.SetRegistry(mockRegistry) + mockRegistry.On("GetRegisteredProcesses").Return(map[uint32]struct{}{}) + mockRegistry.On("Register", defaultEnvoyName, uint32(1), mock.Anything, mock.Anything).Return(nil) + mockRegistry.On("Register", defaultEnvoyName, uint32(3), mock.Anything, mock.Anything).Return(nil) + + // Calling sync should detect the two envoy processes + monitor.attacher.Sync(true, true) + + mockRegistry.AssertExpectations(tt) }) -} - -// createFakeProcess creates a fake process in a temporary location. -// returns the full path of the temporary process and the PID of the fake process. -func createFakeProcess(t *testing.T, processName string) (procRoot string, pid int) { - fakePath := filepath.Join(t.TempDir(), processName) - require.NoError(t, exec.Command("mkdir", "-p", filepath.Dir(fakePath)).Run()) - - // we are using the `yes` command as a fake envoy binary. - require.NoError(t, exec.Command("cp", "/usr/bin/yes", fakePath).Run()) - cmd := exec.Command(fakePath) - require.NoError(t, cmd.Start()) - - // Schedule process termination after the test - t.Cleanup(func() { - _ = cmd.Process.Kill() + t.Run("detecting a dangling process", func(tt *testing.T) { + procRoot := uprobes.CreateFakeProcFS(tt, []uprobes.FakeProcFSEntry{ + {Pid: 1, Exe: defaultEnvoyName}, + {Pid: 2, Exe: "/bin/bash"}, + {Pid: 3, Exe: defaultEnvoyName}, + }) + monitor := newIstioTestMonitor(tt, procRoot) + + mockRegistry := &uprobes.MockFileRegistry{} + monitor.attacher.SetRegistry(mockRegistry) + mockRegistry.On("GetRegisteredProcesses").Return(map[uint32]struct{}{}) + mockRegistry.On("Register", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) // Tell the mock to just say ok to everything, we'll validate later + + monitor.attacher.Sync(true, true) + + mockRegistry.AssertCalled(tt, "Register", defaultEnvoyName, uint32(1), mock.Anything, mock.Anything) + mockRegistry.AssertCalled(tt, "Register", defaultEnvoyName, uint32(3), mock.Anything, mock.Anything) + mockRegistry.AssertCalled(tt, "GetRegisteredProcesses") + + // At this point we should have received: + // * 2 register calls + // * 1 GetRegisteredProcesses call + // * 0 unregister calls + require.Equal(tt, 3, len(mockRegistry.Calls), "calls made: %v", mockRegistry.Calls) + mockRegistry.AssertNotCalled(t, "Unregister", mock.Anything) + + // Now we emulate a process termination for PID 3 by removing it from the fake + // procFS tree + require.NoError(tt, os.RemoveAll(filepath.Join(procRoot, "3"))) + + // Now clear the mock registry expected calls and make it return the state as if the two PIDs were registered + mockRegistry.ExpectedCalls = nil + mockRegistry.On("Register", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) // Tell the mock to just say ok to everything, we'll validate later + mockRegistry.On("GetRegisteredProcesses").Return(map[uint32]struct{}{1: {}, 3: {}}) + mockRegistry.On("Unregister", mock.Anything).Return(nil) + + // Once we call sync() again, PID 3 termination should be detected + // and the unregister callback should be executed + monitor.attacher.Sync(true, true) + mockRegistry.AssertCalled(tt, "Unregister", uint32(3)) }) - - return fakePath, cmd.Process.Pid } -func newIstioTestMonitor(t *testing.T) *istioMonitor { +func newIstioTestMonitor(t *testing.T, procRoot string) *istioMonitor { cfg := utils.NewUSMEmptyConfig() cfg.EnableIstioMonitoring = true + cfg.ProcRoot = procRoot return newIstioTestMonitorWithCFG(t, cfg) } func newIstioTestMonitorWithCFG(t *testing.T, cfg *config.Config) *istioMonitor { - monitor := newIstioMonitor(cfg, nil) + monitor, err := newIstioMonitor(cfg, nil) + require.NoError(t, err) require.NotNil(t, monitor) + return monitor } From 1f604b43cf73806a784b8678dc93cc3f1735bca9 Mon Sep 17 00:00:00 2001 From: Baptiste Foy Date: Wed, 11 Dec 2024 15:47:34 +0100 Subject: [PATCH 395/439] chore(installer): Add boilerplate for install script E2Es (#32012) --- .../installer/script/all_scripts_test.go | 160 ++++++++++++++++++ .../tests/installer/script/databricks_test.go | 50 +++--- 2 files changed, 185 insertions(+), 25 deletions(-) create mode 100644 test/new-e2e/tests/installer/script/all_scripts_test.go diff --git a/test/new-e2e/tests/installer/script/all_scripts_test.go b/test/new-e2e/tests/installer/script/all_scripts_test.go new file mode 100644 index 0000000000000..f11119346e52e --- /dev/null +++ b/test/new-e2e/tests/installer/script/all_scripts_test.go @@ -0,0 +1,160 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package installscript + +import ( + "fmt" + "os" + "regexp" + "strings" + "testing" + + "github.com/DataDog/datadog-agent/pkg/util/testutil/flake" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments" + awshost "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments/aws/host" + "github.com/DataDog/datadog-agent/test/new-e2e/tests/installer/host" + e2eos "github.com/DataDog/test-infra-definitions/components/os" + "github.com/DataDog/test-infra-definitions/scenarios/aws/ec2" + "github.com/stretchr/testify/require" +) + +type installerScriptTests func(os e2eos.Descriptor, arch e2eos.Architecture) installerScriptSuite + +type installerScriptTestsWithSkipedFlavors struct { + t installerScriptTests + skippedFlavors []e2eos.Descriptor +} + +var ( + amd64Flavors = []e2eos.Descriptor{ + e2eos.Ubuntu2204, + e2eos.AmazonLinux2, + e2eos.Debian12, + e2eos.RedHat9, + e2eos.FedoraDefault, + e2eos.CentOS7, + e2eos.Suse15, + } + arm64Flavors = []e2eos.Descriptor{ + e2eos.Ubuntu2204, + e2eos.AmazonLinux2, + e2eos.Suse15, + } + scriptTestsWithSkippedFlavors = []installerScriptTestsWithSkipedFlavors{ + {t: testDatabricksScript}, + } +) + +func shouldSkipFlavor(flavors []e2eos.Descriptor, flavor e2eos.Descriptor) bool { + for _, f := range flavors { + if f.Flavor == flavor.Flavor && f.Version == flavor.Version { + return true + } + } + return false +} + +func TestScripts(t *testing.T) { + if _, ok := os.LookupEnv("CI_COMMIT_SHA"); !ok { + t.Log("CI_COMMIT_SHA env var is not set, this test requires this variable to be set to work") + t.FailNow() + } + + var flavors []e2eos.Descriptor + for _, flavor := range amd64Flavors { + flavor.Architecture = e2eos.AMD64Arch + flavors = append(flavors, flavor) + } + for _, flavor := range arm64Flavors { + flavor.Architecture = e2eos.ARM64Arch + flavors = append(flavors, flavor) + } + for _, f := range flavors { + for _, test := range scriptTestsWithSkippedFlavors { + flavor := f // capture range variable for parallel tests closure + if shouldSkipFlavor(test.skippedFlavors, flavor) { + continue + } + + suite := test.t(flavor, flavor.Architecture) + t.Run(suite.Name(), func(t *testing.T) { + t.Parallel() + // FIXME: Fedora currently has DNS issues + if flavor.Flavor == e2eos.Fedora { + flake.Mark(t) + } + + opts := []awshost.ProvisionerOption{ + awshost.WithEC2InstanceOptions(ec2.WithOSArch(flavor, flavor.Architecture)), + awshost.WithoutAgent(), + } + opts = append(opts, suite.ProvisionerOptions()...) + e2e.Run(t, suite, + e2e.WithProvisioner(awshost.Provisioner(opts...)), + e2e.WithStackName(suite.Name()), + ) + }) + } + } +} + +type installerScriptSuite interface { + e2e.Suite[environments.Host] + + Name() string + ProvisionerOptions() []awshost.ProvisionerOption +} + +func newInstallerScriptSuite(pkg string, e2eos e2eos.Descriptor, arch e2eos.Architecture, opts ...awshost.ProvisionerOption) installerScriptBaseSuite { + return installerScriptBaseSuite{ + commitHash: os.Getenv("CI_COMMIT_SHA"), + os: e2eos, + arch: arch, + pkg: pkg, + opts: opts, + } +} + +func (s *installerScriptBaseSuite) Name() string { + return regexp.MustCompile("[^a-zA-Z0-9]+").ReplaceAllString(fmt.Sprintf("%s/%s", s.pkg, s.os), "_") +} + +func (s *installerScriptBaseSuite) ProvisionerOptions() []awshost.ProvisionerOption { + return s.opts +} + +func (s *installerScriptBaseSuite) SetupSuite() { + s.BaseSuite.SetupSuite() + s.host = host.New(s.T(), s.Env().RemoteHost, s.os, s.arch) +} + +type installerScriptBaseSuite struct { + commitHash string + e2e.BaseSuite[environments.Host] + + host *host.Host + opts []awshost.ProvisionerOption + pkg string + arch e2eos.Architecture + os e2eos.Descriptor +} + +func (s *installerScriptBaseSuite) RunInstallScript(url string, params ...string) { + err := s.RunInstallScriptWithError(url, params...) + require.NoErrorf(s.T(), err, "install script failed") +} + +func (s *installerScriptBaseSuite) RunInstallScriptWithError(url string, params ...string) error { + scriptParams := append(params, "DD_API_KEY=test", "DD_INSTALLER_REGISTRY_URL_INSTALLER_PACKAGE=installtesting.datad0g.com") + _, err := s.Env().RemoteHost.Execute(fmt.Sprintf("curl -L %s > install_script; sudo -E %s bash install_script", url, strings.Join(scriptParams, " "))) + return err +} + +func (s *installerScriptBaseSuite) Purge() { + s.Env().RemoteHost.MustExecute("sudo rm -rf install_script") + s.Env().RemoteHost.Execute("sudo datadog-installer purge") +} diff --git a/test/new-e2e/tests/installer/script/databricks_test.go b/test/new-e2e/tests/installer/script/databricks_test.go index af0a2d9439f76..970d8780c58ce 100644 --- a/test/new-e2e/tests/installer/script/databricks_test.go +++ b/test/new-e2e/tests/installer/script/databricks_test.go @@ -7,39 +7,39 @@ package installscript import ( "fmt" - "os" - "testing" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments" awshost "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments/aws/host" - osdesc "github.com/DataDog/test-infra-definitions/components/os" - "github.com/DataDog/test-infra-definitions/scenarios/aws/ec2" + e2eos "github.com/DataDog/test-infra-definitions/components/os" ) -type vmUpdaterSuite struct { - commitHash string - e2e.BaseSuite[environments.Host] +type installScriptDatabricksSuite struct { + installerScriptBaseSuite + url string } -func (s *vmUpdaterSuite) TestInstallScript() { - url := fmt.Sprintf("https://installtesting.datad0g.com/%s/scripts/install-databricks.sh", s.commitHash) +func testDatabricksScript(os e2eos.Descriptor, arch e2eos.Architecture) installerScriptSuite { + s := &installScriptDatabricksSuite{ + installerScriptBaseSuite: newInstallerScriptSuite("installer", os, arch, awshost.WithoutFakeIntake()), + } + s.url = fmt.Sprintf("https://installtesting.datad0g.com/%s/scripts/install-databricks.sh", s.commitHash) - // worker - s.Env().RemoteHost.MustExecute(fmt.Sprintf("curl -L %s > install_script; export DD_API_KEY=test; export DD_INSTALLER_REGISTRY_URL_INSTALLER_PACKAGE=installtesting.datad0g.com; sudo -E bash install_script", url)) - s.Env().RemoteHost.MustExecute("sudo test -d /opt/datadog-packages/datadog-agent/7.57.2-1") + return s +} - // driver - s.Env().RemoteHost.MustExecute(fmt.Sprintf("curl -L %s > install_script; export DB_IS_DRIVER=true; export DD_API_KEY=test; export DD_INSTALLER_REGISTRY_URL_INSTALLER_PACKAGE=installtesting.datad0g.com; sudo -E bash install_script", url)) - s.Env().RemoteHost.MustExecute("sudo test -d /opt/datadog-packages/datadog-agent/7.57.2-1") - s.Env().RemoteHost.MustExecute("sudo test -d /opt/datadog-packages/datadog-apm-inject/0.21.0") - s.Env().RemoteHost.MustExecute("sudo test -d /opt/datadog-packages/datadog-apm-library-java/1.41.1") +func (s *installScriptDatabricksSuite) TestDatabricksWorkerInstallScript() { + s.RunInstallScript(s.url) + state := s.host.State() + state.AssertDirExists("/opt/datadog-packages/datadog-agent/7.57.2-1", 0755, "dd-agent", "dd-agent") + state.AssertSymlinkExists("/opt/datadog-packages/datadog-agent/stable", "/opt/datadog-packages/datadog-agent/7.57.2-1", "root", "root") } -func TestUpdaterSuite(t *testing.T) { - for _, arch := range []osdesc.Architecture{osdesc.AMD64Arch, osdesc.ARM64Arch} { - e2e.Run(t, &vmUpdaterSuite{commitHash: os.Getenv("CI_COMMIT_SHA")}, e2e.WithProvisioner(awshost.ProvisionerNoFakeIntake( - awshost.WithEC2InstanceOptions(ec2.WithOSArch(osdesc.UbuntuDefault, arch)), - ))) - } +func (s *installScriptDatabricksSuite) TestDatabricksDriverInstallScript() { + s.RunInstallScript(s.url, "DB_IS_DRIVER=true") + state := s.host.State() + state.AssertDirExists("/opt/datadog-packages/datadog-agent/7.57.2-1", 0755, "dd-agent", "dd-agent") + state.AssertSymlinkExists("/opt/datadog-packages/datadog-agent/stable", "/opt/datadog-packages/datadog-agent/7.57.2-1", "root", "root") + state.AssertDirExists("/opt/datadog-packages/datadog-apm-inject/0.21.0", 0755, "root", "root") + state.AssertSymlinkExists("/opt/datadog-packages/datadog-apm-inject/stable", "/opt/datadog-packages/datadog-apm-inject/0.21.0", "root", "root") + state.AssertDirExists("/opt/datadog-packages/datadog-apm-library-java/1.41.1", 0755, "root", "root") + state.AssertSymlinkExists("/opt/datadog-packages/datadog-apm-library-java/stable", "/opt/datadog-packages/datadog-apm-library-java/1.41.1", "root", "root") } From 91dc6364b51e2fda790ffe765975cf1fb1b9e3ac Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Wed, 11 Dec 2024 15:57:23 +0100 Subject: [PATCH 396/439] add a new remote workloadmeta only catalog (#32008) --- cmd/system-probe/subcommands/run/command.go | 2 +- .../collectors/catalog-remote/catalog.go | 27 +++++++++++++++++++ .../options.go} | 13 ++++----- .../collectors/catalog/catalog.go | 18 +------------ .../catalog/{all_options.go => options.go} | 5 ---- tasks/build_tags.py | 3 +-- 6 files changed, 37 insertions(+), 31 deletions(-) create mode 100644 comp/core/workloadmeta/collectors/catalog-remote/catalog.go rename comp/core/workloadmeta/collectors/{catalog/remote_options.go => catalog-remote/options.go} (71%) rename comp/core/workloadmeta/collectors/catalog/{all_options.go => options.go} (92%) diff --git a/cmd/system-probe/subcommands/run/command.go b/cmd/system-probe/subcommands/run/command.go index ab55fc4287c0a..cd35036946e88 100644 --- a/cmd/system-probe/subcommands/run/command.go +++ b/cmd/system-probe/subcommands/run/command.go @@ -47,7 +47,7 @@ import ( taggerTypes "github.com/DataDog/datadog-agent/comp/core/tagger/types" "github.com/DataDog/datadog-agent/comp/core/telemetry" "github.com/DataDog/datadog-agent/comp/core/telemetry/telemetryimpl" - wmcatalog "github.com/DataDog/datadog-agent/comp/core/workloadmeta/collectors/catalog" + wmcatalog "github.com/DataDog/datadog-agent/comp/core/workloadmeta/collectors/catalog-remote" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" workloadmetafx "github.com/DataDog/datadog-agent/comp/core/workloadmeta/fx" compstatsd "github.com/DataDog/datadog-agent/comp/dogstatsd/statsd" diff --git a/comp/core/workloadmeta/collectors/catalog-remote/catalog.go b/comp/core/workloadmeta/collectors/catalog-remote/catalog.go new file mode 100644 index 0000000000000..f0d659ea1d7f6 --- /dev/null +++ b/comp/core/workloadmeta/collectors/catalog-remote/catalog.go @@ -0,0 +1,27 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package catalog is a wrapper that loads the available workloadmeta +// collectors. It exists as a shorthand for importing all packages manually in +// all of the agents. +package catalog + +import ( + "go.uber.org/fx" +) + +// GetCatalog returns the set of FX options to populate the catalog +func GetCatalog() fx.Option { + options := getCollectorOptions() + + // remove nil options + opts := make([]fx.Option, 0, len(options)) + for _, item := range options { + if item != nil { + opts = append(opts, item) + } + } + return fx.Options(opts...) +} diff --git a/comp/core/workloadmeta/collectors/catalog/remote_options.go b/comp/core/workloadmeta/collectors/catalog-remote/options.go similarity index 71% rename from comp/core/workloadmeta/collectors/catalog/remote_options.go rename to comp/core/workloadmeta/collectors/catalog-remote/options.go index d0cb01c69b2d2..5d5868723f1c3 100644 --- a/comp/core/workloadmeta/collectors/catalog/remote_options.go +++ b/comp/core/workloadmeta/collectors/catalog-remote/options.go @@ -3,9 +3,7 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -//go:build remotewmonly - -// Package collectors is a wrapper that loads the available workloadmeta +// Package catalog is a wrapper that loads the available workloadmeta // collectors. It exists as a shorthand for importing all packages manually in // all of the agents. package catalog @@ -16,12 +14,15 @@ import ( remoteworkloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/collectors/internal/remote/workloadmeta" ) -// TODO: (components) Move remote-only to its own catalog, similar to how catalog-less works -// Depend on this catalog-remote using fx, instead of build tags - func getCollectorOptions() []fx.Option { return []fx.Option{ remoteworkloadmeta.GetFxOptions(), remoteWorkloadmetaParams(), } } + +func remoteWorkloadmetaParams() fx.Option { + return fx.Provide(func() remoteworkloadmeta.Params { + return remoteworkloadmeta.Params{} + }) +} diff --git a/comp/core/workloadmeta/collectors/catalog/catalog.go b/comp/core/workloadmeta/collectors/catalog/catalog.go index e303a42328269..9133c24eab5e2 100644 --- a/comp/core/workloadmeta/collectors/catalog/catalog.go +++ b/comp/core/workloadmeta/collectors/catalog/catalog.go @@ -12,8 +12,6 @@ import ( "go.uber.org/fx" remoteworkloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/collectors/internal/remote/workloadmeta" - workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" - "github.com/DataDog/datadog-agent/pkg/util/flavor" ) // GetCatalog returns the set of FX options to populate the catalog @@ -30,22 +28,8 @@ func GetCatalog() fx.Option { return fx.Options(opts...) } -// TODO: (components) Move remote-only to its own catalog, similar to how catalog-less works -// Depend on this catalog-remote using fx, instead of build tags - func remoteWorkloadmetaParams() fx.Option { - var filter *workloadmeta.Filter // Nil filter accepts everything - - // Security Agent is only interested in containers - // TODO: (components) create a Catalog component, the implementation used by - // security-agent can use this filter, instead of needing to chekc agent.flavor - if flavor.GetFlavor() == flavor.SecurityAgent { - filter = workloadmeta.NewFilterBuilder().AddKind(workloadmeta.KindContainer).Build() - } - return fx.Provide(func() remoteworkloadmeta.Params { - return remoteworkloadmeta.Params{ - Filter: filter, - } + return remoteworkloadmeta.Params{} }) } diff --git a/comp/core/workloadmeta/collectors/catalog/all_options.go b/comp/core/workloadmeta/collectors/catalog/options.go similarity index 92% rename from comp/core/workloadmeta/collectors/catalog/all_options.go rename to comp/core/workloadmeta/collectors/catalog/options.go index 65011caeccfc1..05f6ca9ac5e12 100644 --- a/comp/core/workloadmeta/collectors/catalog/all_options.go +++ b/comp/core/workloadmeta/collectors/catalog/options.go @@ -3,11 +3,6 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -// TODO: (components) Move remote-only to its own catalog, similar to how catalog-less works -// Depend on this catalog-remote using fx, instead of build tags - -//go:build !remotewmonly - // Package catalog is a wrapper that loads the available workloadmeta // collectors. It exists as a shorthand for importing all packages manually in // all of the agents. diff --git a/tasks/build_tags.py b/tasks/build_tags.py index c2cabdbb6d45e..ddd993490f389 100644 --- a/tasks/build_tags.py +++ b/tasks/build_tags.py @@ -43,7 +43,6 @@ "podman", "process", "python", - "remotewmonly", # used when you want to use only the remote workloadmeta store without importing all dependencies of local collectors "sds", "serverless", "systemd", @@ -162,7 +161,7 @@ SERVERLESS_TAGS = {"serverless", "otlp"} # SYSTEM_PROBE_TAGS lists the tags necessary to build system-probe -SYSTEM_PROBE_TAGS = AGENT_TAGS.union({"linux_bpf", "npm", "pcap", "remotewmonly"}).difference({"python", "systemd"}) +SYSTEM_PROBE_TAGS = AGENT_TAGS.union({"linux_bpf", "npm", "pcap"}).difference({"python", "systemd"}) # TRACE_AGENT_TAGS lists the tags that have to be added when the trace-agent TRACE_AGENT_TAGS = {"docker", "containerd", "datadog.no_waf", "kubeapiserver", "kubelet", "otlp", "netcgo", "podman"} From 2ef96185cc73ed7183af68256eb2f7df613fbcae Mon Sep 17 00:00:00 2001 From: Pierre Gimalac Date: Wed, 11 Dec 2024 16:01:32 +0100 Subject: [PATCH 397/439] [ASCII-2510] Add remote-autodiscovery scheduler streaming endpoint (#31324) --- comp/api/api/apiimpl/grpc.go | 17 +- comp/api/api/apiimpl/server_cmd.go | 1 + comp/core/autodiscovery/proto/proto.go | 104 ++++ comp/core/autodiscovery/proto/proto_test.go | 291 +++++++++ comp/core/autodiscovery/stream/stream.go | 89 +++ comp/core/autodiscovery/stream/stream_test.go | 168 +++++ pkg/proto/datadog/api/v1/api.proto | 9 + .../datadog/autodiscovery/autodiscovery.proto | 44 ++ pkg/proto/pbgo/core/api.pb.go | 356 +++++++---- pkg/proto/pbgo/core/api.pb.gw.go | 56 ++ pkg/proto/pbgo/core/autodiscovery.pb.go | 588 ++++++++++++++++++ pkg/proto/pbgo/mocks/core/api_mockgen.pb.go | 276 ++++++++ tasks/go.py | 1 + 13 files changed, 1857 insertions(+), 143 deletions(-) create mode 100644 comp/core/autodiscovery/proto/proto.go create mode 100644 comp/core/autodiscovery/proto/proto_test.go create mode 100644 comp/core/autodiscovery/stream/stream.go create mode 100644 comp/core/autodiscovery/stream/stream_test.go create mode 100644 pkg/proto/datadog/autodiscovery/autodiscovery.proto create mode 100644 pkg/proto/pbgo/core/autodiscovery.pb.go diff --git a/comp/api/api/apiimpl/grpc.go b/comp/api/api/apiimpl/grpc.go index 0386f022c6927..5f88cdb722163 100644 --- a/comp/api/api/apiimpl/grpc.go +++ b/comp/api/api/apiimpl/grpc.go @@ -10,30 +10,30 @@ import ( "fmt" "time" - "github.com/DataDog/datadog-agent/comp/remote-config/rcservice" - "github.com/DataDog/datadog-agent/comp/remote-config/rcservicemrf" - "github.com/DataDog/datadog-agent/pkg/util/optional" - "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" "google.golang.org/grpc/status" "google.golang.org/protobuf/types/known/emptypb" + "github.com/DataDog/datadog-agent/comp/core/autodiscovery" + autodiscoverystream "github.com/DataDog/datadog-agent/comp/core/autodiscovery/stream" remoteagentregistry "github.com/DataDog/datadog-agent/comp/core/remoteagentregistry/def" rarproto "github.com/DataDog/datadog-agent/comp/core/remoteagentregistry/proto" - workloadmetaServer "github.com/DataDog/datadog-agent/comp/core/workloadmeta/server" - tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" taggerProto "github.com/DataDog/datadog-agent/comp/core/tagger/proto" taggerserver "github.com/DataDog/datadog-agent/comp/core/tagger/server" taggerTypes "github.com/DataDog/datadog-agent/comp/core/tagger/types" + workloadmetaServer "github.com/DataDog/datadog-agent/comp/core/workloadmeta/server" "github.com/DataDog/datadog-agent/comp/dogstatsd/pidmap" dsdReplay "github.com/DataDog/datadog-agent/comp/dogstatsd/replay/def" dogstatsdServer "github.com/DataDog/datadog-agent/comp/dogstatsd/server" + "github.com/DataDog/datadog-agent/comp/remote-config/rcservice" + "github.com/DataDog/datadog-agent/comp/remote-config/rcservicemrf" pb "github.com/DataDog/datadog-agent/pkg/proto/pbgo/core" "github.com/DataDog/datadog-agent/pkg/util/grpc" "github.com/DataDog/datadog-agent/pkg/util/hostname" "github.com/DataDog/datadog-agent/pkg/util/log" + "github.com/DataDog/datadog-agent/pkg/util/optional" ) type grpcServer struct { @@ -51,6 +51,7 @@ type serverSecure struct { capture dsdReplay.Component pidMap pidmap.Component remoteAgentRegistry remoteagentregistry.Component + autodiscovery autodiscovery.Component } func (s *grpcServer) GetHostname(ctx context.Context, _ *pb.HostnameRequest) (*pb.HostnameReply, error) { @@ -202,6 +203,10 @@ func (s *serverSecure) RegisterRemoteAgent(_ context.Context, in *pb.RegisterRem }, nil } +func (s *serverSecure) AutodiscoveryStreamConfig(_ *emptypb.Empty, out pb.AgentSecure_AutodiscoveryStreamConfigServer) error { + return autodiscoverystream.Config(s.autodiscovery, out) +} + func init() { grpclog.SetLoggerV2(grpc.NewLogger()) } diff --git a/comp/api/api/apiimpl/server_cmd.go b/comp/api/api/apiimpl/server_cmd.go index daf855a161d41..2b806aa8726e3 100644 --- a/comp/api/api/apiimpl/server_cmd.go +++ b/comp/api/api/apiimpl/server_cmd.go @@ -76,6 +76,7 @@ func (server *apiServer) startCMDServer( capture: server.capture, pidMap: server.pidMap, remoteAgentRegistry: server.remoteAgentRegistry, + autodiscovery: server.autoConfig, }) dcreds := credentials.NewTLS(&tls.Config{ diff --git a/comp/core/autodiscovery/proto/proto.go b/comp/core/autodiscovery/proto/proto.go new file mode 100644 index 0000000000000..0ba534caebed3 --- /dev/null +++ b/comp/core/autodiscovery/proto/proto.go @@ -0,0 +1,104 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package proto provides autodiscovery proto util functions +package proto + +import ( + "github.com/DataDog/datadog-agent/comp/core/autodiscovery/integration" + "github.com/DataDog/datadog-agent/pkg/proto/pbgo/core" +) + +// ProtobufConfigFromAutodiscoveryConfig converts an autodiscovery config to a protobuf config +func ProtobufConfigFromAutodiscoveryConfig(config *integration.Config) *core.Config { + if config == nil { + return nil + } + + instances := [][]byte{} + + for _, instance := range config.Instances { + instances = append(instances, []byte(instance)) + } + + advancedAdIdentifiers := make([]*core.AdvancedADIdentifier, 0, len(config.AdvancedADIdentifiers)) + for _, advancedAdIdentifier := range config.AdvancedADIdentifiers { + advancedAdIdentifiers = append(advancedAdIdentifiers, &core.AdvancedADIdentifier{ + KubeService: &core.KubeNamespacedName{ + Name: advancedAdIdentifier.KubeService.Name, + Namespace: advancedAdIdentifier.KubeService.Namespace, + }, + KubeEndpoints: &core.KubeNamespacedName{ + Name: advancedAdIdentifier.KubeEndpoints.Name, + Namespace: advancedAdIdentifier.KubeEndpoints.Namespace, + }, + }) + } + + return &core.Config{ + Name: config.Name, + Instances: instances, + InitConfig: config.InitConfig, + MetricConfig: config.MetricConfig, + LogsConfig: config.LogsConfig, + AdIdentifiers: config.ADIdentifiers, + AdvancedAdIdentifiers: advancedAdIdentifiers, + Provider: config.Provider, + ServiceId: config.ServiceID, + TaggerEntity: config.TaggerEntity, + ClusterCheck: config.ClusterCheck, + NodeName: config.NodeName, + Source: config.Source, + IgnoreAutodiscoveryTags: config.IgnoreAutodiscoveryTags, + MetricsExcluded: config.MetricsExcluded, + LogsExcluded: config.LogsExcluded, + } +} + +// AutodiscoveryConfigFromProtobufConfig converts a protobuf config to an autodiscovery config +func AutodiscoveryConfigFromProtobufConfig(config *core.Config) integration.Config { + if config == nil { + return integration.Config{} + } + + instances := []integration.Data{} + + for _, instance := range config.Instances { + instances = append(instances, integration.Data(instance)) + } + + advancedAdIdentifiers := make([]integration.AdvancedADIdentifier, 0, len(config.AdvancedAdIdentifiers)) + for _, advancedAdIdentifier := range config.AdvancedAdIdentifiers { + advancedAdIdentifiers = append(advancedAdIdentifiers, integration.AdvancedADIdentifier{ + KubeService: integration.KubeNamespacedName{ + Name: advancedAdIdentifier.KubeService.Name, + Namespace: advancedAdIdentifier.KubeService.Namespace, + }, + KubeEndpoints: integration.KubeNamespacedName{ + Name: advancedAdIdentifier.KubeEndpoints.Name, + Namespace: advancedAdIdentifier.KubeEndpoints.Namespace, + }, + }) + } + + return integration.Config{ + Name: config.Name, + Instances: instances, + InitConfig: config.InitConfig, + MetricConfig: config.MetricConfig, + LogsConfig: config.LogsConfig, + ADIdentifiers: config.AdIdentifiers, + AdvancedADIdentifiers: advancedAdIdentifiers, + Provider: config.Provider, + ServiceID: config.ServiceId, + TaggerEntity: config.TaggerEntity, + ClusterCheck: config.ClusterCheck, + NodeName: config.NodeName, + Source: config.Source, + IgnoreAutodiscoveryTags: config.IgnoreAutodiscoveryTags, + MetricsExcluded: config.MetricsExcluded, + LogsExcluded: config.LogsExcluded, + } +} diff --git a/comp/core/autodiscovery/proto/proto_test.go b/comp/core/autodiscovery/proto/proto_test.go new file mode 100644 index 0000000000000..6ae1620476d74 --- /dev/null +++ b/comp/core/autodiscovery/proto/proto_test.go @@ -0,0 +1,291 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package proto + +import ( + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/DataDog/datadog-agent/comp/core/autodiscovery/integration" + "github.com/DataDog/datadog-agent/pkg/proto/pbgo/core" +) + +func TestProtobufConfigFromAutodiscoveryConfig(t *testing.T) { + tests := []struct { + name string + input *integration.Config + expected *core.Config + }{ + { + name: "all fields set", + input: &integration.Config{ + Name: "test_config", + Instances: []integration.Data{ + []byte("instance1"), + []byte("instance2"), + }, + InitConfig: []byte("init_config"), + MetricConfig: []byte("metric_config"), + LogsConfig: []byte("logs_config"), + ADIdentifiers: []string{"ad_identifier1", "ad_identifier2"}, + AdvancedADIdentifiers: []integration.AdvancedADIdentifier{ + { + KubeService: integration.KubeNamespacedName{ + Name: "service1", + Namespace: "namespace1", + }, + KubeEndpoints: integration.KubeNamespacedName{ + Name: "endpoint1", + Namespace: "namespace1", + }, + }, + }, + Provider: "provider", + ServiceID: "service_id", + TaggerEntity: "tagger_entity", + ClusterCheck: true, + NodeName: "node_name", + Source: "source", + IgnoreAutodiscoveryTags: true, + MetricsExcluded: true, + LogsExcluded: true, + }, + expected: &core.Config{ + Name: "test_config", + Instances: [][]byte{ + []byte("instance1"), + []byte("instance2"), + }, + InitConfig: []byte("init_config"), + MetricConfig: []byte("metric_config"), + LogsConfig: []byte("logs_config"), + AdIdentifiers: []string{"ad_identifier1", "ad_identifier2"}, + AdvancedAdIdentifiers: []*core.AdvancedADIdentifier{ + { + KubeService: &core.KubeNamespacedName{ + Name: "service1", + Namespace: "namespace1", + }, + KubeEndpoints: &core.KubeNamespacedName{ + Name: "endpoint1", + Namespace: "namespace1", + }, + }, + }, + Provider: "provider", + ServiceId: "service_id", + TaggerEntity: "tagger_entity", + ClusterCheck: true, + NodeName: "node_name", + Source: "source", + IgnoreAutodiscoveryTags: true, + MetricsExcluded: true, + LogsExcluded: true, + }, + }, + { + name: "some fields set", + input: &integration.Config{ + Name: "test_config", + Instances: []integration.Data{ + []byte("instance1"), + }, + InitConfig: []byte("init_config"), + MetricConfig: []byte("metric_config"), + LogsConfig: []byte("logs_config"), + ADIdentifiers: []string{"ad_identifier1"}, + Provider: "provider", + ServiceID: "service_id", + TaggerEntity: "tagger_entity", + ClusterCheck: true, + NodeName: "node_name", + Source: "source", + IgnoreAutodiscoveryTags: true, + MetricsExcluded: true, + LogsExcluded: true, + }, + expected: &core.Config{ + Name: "test_config", + Instances: [][]byte{ + []byte("instance1"), + }, + InitConfig: []byte("init_config"), + MetricConfig: []byte("metric_config"), + LogsConfig: []byte("logs_config"), + AdIdentifiers: []string{"ad_identifier1"}, + Provider: "provider", + ServiceId: "service_id", + TaggerEntity: "tagger_entity", + ClusterCheck: true, + NodeName: "node_name", + Source: "source", + IgnoreAutodiscoveryTags: true, + MetricsExcluded: true, + LogsExcluded: true, + AdvancedAdIdentifiers: []*core.AdvancedADIdentifier{}, + }, + }, + { + name: "no fields set", + input: &integration.Config{}, + expected: &core.Config{ + Instances: [][]byte{}, + AdvancedAdIdentifiers: []*core.AdvancedADIdentifier{}, + }, + }, + { + "nil", + nil, + nil, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + result := ProtobufConfigFromAutodiscoveryConfig(test.input) + assert.Equal(t, test.expected, result) + }) + } +} + +func TestAutodiscoveryConfigFromProtobufConfig(t *testing.T) { + tests := []struct { + name string + input *core.Config + expected integration.Config + }{ + { + name: "all fields set", + input: &core.Config{ + Name: "test_config", + Instances: [][]byte{ + []byte("instance1"), + []byte("instance2"), + }, + InitConfig: []byte("init_config"), + MetricConfig: []byte("metric_config"), + LogsConfig: []byte("logs_config"), + AdIdentifiers: []string{"ad_identifier1", "ad_identifier2"}, + AdvancedAdIdentifiers: []*core.AdvancedADIdentifier{ + { + KubeService: &core.KubeNamespacedName{ + Name: "service1", + Namespace: "namespace1", + }, + KubeEndpoints: &core.KubeNamespacedName{ + Name: "endpoint1", + Namespace: "namespace1", + }, + }, + }, + Provider: "provider", + ServiceId: "service_id", + TaggerEntity: "tagger_entity", + ClusterCheck: true, + NodeName: "node_name", + Source: "source", + IgnoreAutodiscoveryTags: true, + MetricsExcluded: true, + LogsExcluded: true, + }, + expected: integration.Config{ + Name: "test_config", + Instances: []integration.Data{ + []byte("instance1"), + []byte("instance2"), + }, + InitConfig: []byte("init_config"), + MetricConfig: []byte("metric_config"), + LogsConfig: []byte("logs_config"), + ADIdentifiers: []string{"ad_identifier1", "ad_identifier2"}, + AdvancedADIdentifiers: []integration.AdvancedADIdentifier{ + { + KubeService: integration.KubeNamespacedName{ + Name: "service1", + Namespace: "namespace1", + }, + KubeEndpoints: integration.KubeNamespacedName{ + Name: "endpoint1", + Namespace: "namespace1", + }, + }, + }, + Provider: "provider", + ServiceID: "service_id", + TaggerEntity: "tagger_entity", + ClusterCheck: true, + NodeName: "node_name", + Source: "source", + IgnoreAutodiscoveryTags: true, + MetricsExcluded: true, + LogsExcluded: true, + }, + }, + { + name: "some fields set", + input: &core.Config{ + Name: "test_config", + Instances: [][]byte{ + []byte("instance1"), + }, + InitConfig: []byte("init_config"), + MetricConfig: []byte("metric_config"), + LogsConfig: []byte("logs_config"), + AdIdentifiers: []string{"ad_identifier1"}, + Provider: "provider", + ServiceId: "service_id", + TaggerEntity: "tagger_entity", + ClusterCheck: true, + NodeName: "node_name", + Source: "source", + IgnoreAutodiscoveryTags: true, + MetricsExcluded: true, + LogsExcluded: true, + }, + expected: integration.Config{ + Name: "test_config", + Instances: []integration.Data{ + []byte("instance1"), + }, + InitConfig: []byte("init_config"), + MetricConfig: []byte("metric_config"), + LogsConfig: []byte("logs_config"), + ADIdentifiers: []string{"ad_identifier1"}, + Provider: "provider", + ServiceID: "service_id", + TaggerEntity: "tagger_entity", + ClusterCheck: true, + NodeName: "node_name", + Source: "source", + IgnoreAutodiscoveryTags: true, + MetricsExcluded: true, + LogsExcluded: true, + AdvancedADIdentifiers: []integration.AdvancedADIdentifier{}, + }, + }, + { + name: "no fields set", + input: &core.Config{}, + expected: integration.Config{ + AdvancedADIdentifiers: []integration.AdvancedADIdentifier{}, + Instances: []integration.Data{}, + }, + }, + { + "nil", + nil, + integration.Config{}, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + result := AutodiscoveryConfigFromProtobufConfig(test.input) + assert.Equal(t, test.expected, result) + }) + } +} diff --git a/comp/core/autodiscovery/stream/stream.go b/comp/core/autodiscovery/stream/stream.go new file mode 100644 index 0000000000000..7fbbe04633090 --- /dev/null +++ b/comp/core/autodiscovery/stream/stream.go @@ -0,0 +1,89 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package stream provides the autodiscovery config streaming logic +package stream + +import ( + "time" + + "github.com/google/uuid" + + "github.com/DataDog/datadog-agent/comp/core/autodiscovery" + "github.com/DataDog/datadog-agent/comp/core/autodiscovery/integration" + "github.com/DataDog/datadog-agent/comp/core/autodiscovery/proto" + pb "github.com/DataDog/datadog-agent/pkg/proto/pbgo/core" + "github.com/DataDog/datadog-agent/pkg/util/grpc" + "github.com/DataDog/datadog-agent/pkg/util/log" +) + +// Config streams autodiscovery configs +func Config(ac autodiscovery.Component, out pb.AgentSecure_AutodiscoveryStreamConfigServer) error { + s := &scheduler{ + out: out, + done: make(chan error, 1), + } + + // Generate a unique scheduler name + id := uuid.New().String() + schedulerName := "remote-" + id + + // replay the existing configs + ac.AddScheduler(schedulerName, s, true) + defer ac.RemoveScheduler(schedulerName) + + select { + case err := <-s.done: + return err + case <-out.Context().Done(): + return nil + } +} + +type scheduler struct { + out pb.AgentSecure_AutodiscoveryStreamConfigServer + done chan error +} + +func (s *scheduler) Schedule(config []integration.Config) { + s.handleEvent(config, pb.ConfigEventType_SCHEDULE) +} + +func (s *scheduler) Unschedule(configs []integration.Config) { + s.handleEvent(configs, pb.ConfigEventType_UNSCHEDULE) +} + +func (s *scheduler) Stop() { + close(s.done) +} + +func (s *scheduler) handleEvent(configs []integration.Config, eventType pb.ConfigEventType) { + protobufConfigs := protobufConfigFromAutodiscoveryConfigs(configs, eventType) + + err := grpc.DoWithTimeout(func() error { + return s.out.Send(&pb.AutodiscoveryStreamResponse{ + Configs: protobufConfigs, + }) + }, 1*time.Minute) + + if err != nil { + log.Warnf("error sending %s autodiscovery event: %s", eventType.String(), err) + // do not block if an error was already sent + select { + case s.done <- err: + default: + } + } +} + +func protobufConfigFromAutodiscoveryConfigs(config []integration.Config, eventType pb.ConfigEventType) []*pb.Config { + res := make([]*pb.Config, 0, len(config)) + for _, c := range config { + protobufConfig := proto.ProtobufConfigFromAutodiscoveryConfig(&c) + protobufConfig.EventType = eventType + res = append(res, protobufConfig) + } + return res +} diff --git a/comp/core/autodiscovery/stream/stream_test.go b/comp/core/autodiscovery/stream/stream_test.go new file mode 100644 index 0000000000000..914c8d3a3654c --- /dev/null +++ b/comp/core/autodiscovery/stream/stream_test.go @@ -0,0 +1,168 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package stream + +import ( + "context" + "errors" + "testing" + + "google.golang.org/grpc/metadata" + + "github.com/stretchr/testify/require" + + "github.com/DataDog/datadog-agent/comp/core/autodiscovery" + "github.com/DataDog/datadog-agent/comp/core/autodiscovery/integration" + noopautoconfig "github.com/DataDog/datadog-agent/comp/core/autodiscovery/noopimpl" + autodiscoveryscheduler "github.com/DataDog/datadog-agent/comp/core/autodiscovery/scheduler" + pb "github.com/DataDog/datadog-agent/pkg/proto/pbgo/core" + "github.com/DataDog/datadog-agent/pkg/util/fxutil" +) + +func getAutodiscoveryNoop(t *testing.T) autodiscovery.Component { + return fxutil.Test[autodiscovery.Component]( + t, + noopautoconfig.Module(), + ) +} + +type acMock struct { + autodiscovery.Component + + addScheduler func(string, autodiscoveryscheduler.Scheduler, bool) +} + +func (ac *acMock) AddScheduler(name string, scheduler autodiscoveryscheduler.Scheduler, replay bool) { + ac.addScheduler(name, scheduler, replay) +} + +type outMock struct { + send func(*pb.AutodiscoveryStreamResponse) error + ctx context.Context +} + +func (out *outMock) Send(resp *pb.AutodiscoveryStreamResponse) error { + return out.send(resp) +} + +func (out *outMock) SetHeader(metadata.MD) error { + panic("not implemented") +} + +func (out *outMock) SendHeader(metadata.MD) error { + panic("not implemented") +} + +func (out *outMock) SetTrailer(metadata.MD) { + panic("not implemented") +} + +func (out *outMock) Context() context.Context { + return out.ctx +} + +func (out *outMock) SendMsg(any) error { + panic("not implemented") +} + +func (out *outMock) RecvMsg(any) error { + panic("not implemented") +} + +func setupTestConfig(t *testing.T, sendErr error) (chan error, chan autodiscoveryscheduler.Scheduler, chan *pb.AutodiscoveryStreamResponse, context.CancelFunc) { + schedulerChan := make(chan autodiscoveryscheduler.Scheduler, 1) + sendChan := make(chan *pb.AutodiscoveryStreamResponse, 1) + + acNoop := getAutodiscoveryNoop(t) + ac := &acMock{ + acNoop, + func(_ string, scheduler autodiscoveryscheduler.Scheduler, _ bool) { + schedulerChan <- scheduler + }, + } + + ctx, cancel := context.WithCancel(context.Background()) + + out := &outMock{ + send: func(resp *pb.AutodiscoveryStreamResponse) error { + sendChan <- resp + return sendErr + }, + ctx: ctx, + } + + configErrChan := make(chan error) + go func() { + configErrChan <- Config(ac, out) + }() + + return configErrChan, schedulerChan, sendChan, cancel +} + +func TestConfig(t *testing.T) { + configs := []integration.Config{ + { + Name: "test", + }, + } + + t.Run("schedule unschedule", func(t *testing.T) { + configErrChan, schedulerChan, sendChan, cancel := setupTestConfig(t, nil) + + scheduler := <-schedulerChan + require.NotNil(t, scheduler) + + scheduler.Schedule(configs) + sent := <-sendChan + require.NotNil(t, sent) + require.Len(t, sent.Configs, 1) + require.Equal(t, "test", sent.Configs[0].Name) + require.Equal(t, pb.ConfigEventType_SCHEDULE, sent.Configs[0].EventType) + + scheduler.Unschedule(configs) + sent = <-sendChan + require.NotNil(t, sent) + require.Len(t, sent.Configs, 1) + require.Equal(t, "test", sent.Configs[0].Name) + require.Equal(t, pb.ConfigEventType_UNSCHEDULE, sent.Configs[0].EventType) + + cancel() + + require.NoError(t, <-configErrChan) + }) + + t.Run("send error", func(t *testing.T) { + sendError := errors.New("send error") + configErrChan, schedulerChan, sendChan, _ := setupTestConfig(t, sendError) + + scheduler := <-schedulerChan + require.NotNil(t, scheduler) + + scheduler.Schedule(configs) + sent := <-sendChan + require.NotNil(t, sent) + require.Len(t, sent.Configs, 1) + require.Equal(t, "test", sent.Configs[0].Name) + require.Equal(t, pb.ConfigEventType_SCHEDULE, sent.Configs[0].EventType) + + require.ErrorIs(t, <-configErrChan, sendError) + }) + + t.Run("multiple errors", func(t *testing.T) { + sendError := errors.New("send error") + configErrChan, schedulerChan, sendChan, _ := setupTestConfig(t, sendError) + + scheduler := <-schedulerChan + require.NotNil(t, scheduler) + + scheduler.Schedule(configs) + <-sendChan + scheduler.Unschedule(configs) + <-sendChan + + require.ErrorIs(t, <-configErrChan, sendError) + }) +} diff --git a/pkg/proto/datadog/api/v1/api.proto b/pkg/proto/datadog/api/v1/api.proto index f6c16ff4cc45e..1ffbfa02aa562 100644 --- a/pkg/proto/datadog/api/v1/api.proto +++ b/pkg/proto/datadog/api/v1/api.proto @@ -6,6 +6,7 @@ import "datadog/model/v1/model.proto"; import "datadog/remoteagent/remoteagent.proto"; import "datadog/remoteconfig/remoteconfig.proto"; import "datadog/workloadmeta/workloadmeta.proto"; +import "datadog/autodiscovery/autodiscovery.proto"; import "google/api/annotations.proto"; import "google/protobuf/empty.proto"; @@ -153,6 +154,14 @@ service AgentSecure { body: "*" }; }; + + // Subscribes to autodiscovery config updates + rpc AutodiscoveryStreamConfig(google.protobuf.Empty) returns (stream datadog.autodiscovery.AutodiscoveryStreamResponse) { + option (google.api.http) = { + post: "/v1/grpc/autodiscovery/stream_configs" + body: "*" + }; + }; } // Service exposed by remote agents to allow querying by the Core Agent. diff --git a/pkg/proto/datadog/autodiscovery/autodiscovery.proto b/pkg/proto/datadog/autodiscovery/autodiscovery.proto new file mode 100644 index 0000000000000..2419747504513 --- /dev/null +++ b/pkg/proto/datadog/autodiscovery/autodiscovery.proto @@ -0,0 +1,44 @@ +syntax = "proto3"; + +package datadog.autodiscovery; + +option go_package = "pkg/proto/pbgo/core"; // golang\ + +enum ConfigEventType { + SCHEDULE = 0; + UNSCHEDULE = 1; +} + +message KubeNamespacedName { + string name = 1; + string namespace = 2; +} + +message AdvancedADIdentifier { + KubeNamespacedName kubeService = 1; + KubeNamespacedName kubeEndpoints = 2; +} + +message Config { + string name = 1; + repeated bytes instances = 2; + bytes initConfig = 3; + bytes metricConfig = 4; + bytes logsConfig = 5; + repeated string adIdentifiers = 6; + repeated AdvancedADIdentifier advancedAdIdentifiers = 7; + string provider = 8; + string serviceId = 9; + string taggerEntity = 10; + bool clusterCheck = 11; + string nodeName = 12; + string source = 13; + bool ignoreAutodiscoveryTags = 14; + bool metricsExcluded = 15; + bool logsExcluded = 16; + ConfigEventType eventType = 17; +} + +message AutodiscoveryStreamResponse { + repeated Config configs = 1; +} diff --git a/pkg/proto/pbgo/core/api.pb.go b/pkg/proto/pbgo/core/api.pb.go index 87ed4b2b3620e..6e23a0ef0f9c2 100644 --- a/pkg/proto/pbgo/core/api.pb.go +++ b/pkg/proto/pbgo/core/api.pb.go @@ -40,128 +40,141 @@ var file_datadog_api_v1_api_proto_rawDesc = []byte{ 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x65, 0x74, 0x61, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x71, 0x0a, 0x05, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x68, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, - 0x67, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x6e, - 0x61, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, - 0x12, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x68, 0x6f, 0x73, 0x74, 0x32, - 0xe2, 0x0b, 0x0a, 0x0b, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x12, - 0x8f, 0x01, 0x0a, 0x14, 0x54, 0x61, 0x67, 0x67, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, + 0x6f, 0x1a, 0x29, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x64, + 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x64, 0x69, 0x73, + 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, + 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x71, 0x0a, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x12, 0x68, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x21, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, + 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x76, 0x31, + 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x68, 0x6f, 0x73, 0x74, 0x32, 0x80, 0x0d, 0x0a, 0x0b, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x14, 0x54, + 0x61, 0x67, 0x67, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x6e, 0x74, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x61, 0x67, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, + 0x61, 0x6d, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x3a, 0x01, 0x2a, 0x22, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x67, + 0x72, 0x70, 0x63, 0x2f, 0x74, 0x61, 0x67, 0x67, 0x65, 0x72, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x30, 0x01, 0x12, 0x89, 0x01, 0x0a, + 0x11, 0x54, 0x61, 0x67, 0x67, 0x65, 0x72, 0x46, 0x65, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x12, 0x24, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, + 0x6f, 0x67, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x74, 0x63, + 0x68, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x76, 0x31, 0x2f, + 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x61, 0x67, 0x67, 0x65, 0x72, 0x2f, 0x66, 0x65, 0x74, 0x63, + 0x68, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x9b, 0x01, 0x0a, 0x17, 0x44, 0x6f, 0x67, + 0x73, 0x74, 0x61, 0x74, 0x73, 0x64, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x54, 0x72, 0x69, + 0x67, 0x67, 0x65, 0x72, 0x12, 0x27, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x54, + 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x3a, 0x01, 0x2a, 0x22, 0x1f, - 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x61, 0x67, 0x67, 0x65, 0x72, 0x2f, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x30, - 0x01, 0x12, 0x89, 0x01, 0x0a, 0x11, 0x54, 0x61, 0x67, 0x67, 0x65, 0x72, 0x46, 0x65, 0x74, 0x63, - 0x68, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x24, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, - 0x67, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, - 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, - 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x61, 0x67, 0x67, 0x65, 0x72, - 0x2f, 0x66, 0x65, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x9b, 0x01, - 0x0a, 0x17, 0x44, 0x6f, 0x67, 0x73, 0x74, 0x61, 0x74, 0x73, 0x64, 0x43, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x27, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x64, 0x6f, 0x67, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x70, - 0x74, 0x75, 0x72, 0x65, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x54, 0x72, 0x69, - 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x27, 0x3a, 0x01, 0x2a, 0x22, 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x70, - 0x63, 0x2f, 0x64, 0x6f, 0x67, 0x73, 0x74, 0x61, 0x74, 0x73, 0x64, 0x2f, 0x63, 0x61, 0x70, 0x74, - 0x75, 0x72, 0x65, 0x2f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x8c, 0x01, 0x0a, 0x17, - 0x44, 0x6f, 0x67, 0x73, 0x74, 0x61, 0x74, 0x73, 0x64, 0x53, 0x65, 0x74, 0x54, 0x61, 0x67, 0x67, - 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, - 0x67, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x67, 0x67, 0x65, - 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x25, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, - 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x67, 0x67, 0x65, 0x72, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x3a, 0x01, 0x2a, 0x22, 0x20, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, - 0x70, 0x63, 0x2f, 0x64, 0x6f, 0x67, 0x73, 0x74, 0x61, 0x74, 0x73, 0x64, 0x2f, 0x63, 0x61, 0x70, - 0x74, 0x75, 0x72, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x10, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, - 0x27, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, + 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x3a, + 0x01, 0x2a, 0x22, 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x64, 0x6f, 0x67, + 0x73, 0x74, 0x61, 0x74, 0x73, 0x64, 0x2f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x2f, 0x74, + 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x8c, 0x01, 0x0a, 0x17, 0x44, 0x6f, 0x67, 0x73, 0x74, + 0x61, 0x74, 0x73, 0x64, 0x53, 0x65, 0x74, 0x54, 0x61, 0x67, 0x67, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x1d, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x67, 0x67, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x1a, 0x25, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x6d, 0x6f, 0x64, 0x65, + 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x67, 0x67, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, + 0x3a, 0x01, 0x2a, 0x22, 0x20, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x64, 0x6f, + 0x67, 0x73, 0x74, 0x61, 0x74, 0x73, 0x64, 0x2f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x2f, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x10, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x27, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x47, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x3a, 0x01, 0x2a, 0x22, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, + 0x70, 0x63, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x78, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x26, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x94, 0x01, 0x0a, 0x12, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x47, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x48, 0x41, 0x12, 0x27, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x3a, 0x01, 0x2a, 0x22, 0x1d, 0x2f, - 0x76, 0x31, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x78, 0x0a, 0x0e, - 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x26, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, - 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x67, - 0x72, 0x70, 0x63, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x12, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x48, 0x41, 0x12, 0x27, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, - 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x47, 0x65, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x3a, 0x01, 0x2a, 0x22, 0x20, 0x2f, 0x76, 0x31, - 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x5f, 0x68, 0x61, 0x12, 0x7d, 0x0a, - 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, - 0x41, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x26, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x22, 0x1e, 0x2f, 0x76, - 0x31, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x12, 0xb3, 0x01, 0x0a, - 0x1a, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x65, 0x74, 0x61, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2f, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x65, - 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x65, 0x74, 0x61, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, - 0x65, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x65, 0x74, 0x61, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x3a, 0x01, 0x2a, 0x22, 0x25, 0x2f, 0x76, 0x31, 0x2f, 0x67, - 0x72, 0x70, 0x63, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x65, 0x74, 0x61, - 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, - 0x30, 0x01, 0x12, 0xaf, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x2e, 0x64, 0x61, 0x74, + 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x28, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x25, 0x3a, 0x01, 0x2a, 0x22, 0x20, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x70, 0x63, + 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x73, 0x5f, 0x68, 0x61, 0x12, 0x7d, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x41, 0x12, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x26, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x22, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x70, + 0x63, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x12, 0xb3, 0x01, 0x0a, 0x1a, 0x57, 0x6f, 0x72, 0x6b, + 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x65, 0x74, 0x61, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x6e, + 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, + 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x57, 0x6f, + 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x65, 0x74, 0x61, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, + 0x67, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x57, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x65, 0x74, 0x61, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x2a, 0x3a, 0x01, 0x2a, 0x22, 0x25, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x77, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x65, 0x74, 0x61, 0x2f, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x30, 0x01, 0x12, 0xaf, 0x01, + 0x0a, 0x13, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, + 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, + 0x3a, 0x01, 0x2a, 0x22, 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x65, 0x72, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x12, + 0x9b, 0x01, 0x0a, 0x19, 0x41, 0x75, 0x74, 0x6f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, + 0x79, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x32, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, + 0x61, 0x75, 0x74, 0x6f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x2e, 0x41, 0x75, + 0x74, 0x6f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x2a, 0x3a, 0x01, 0x2a, 0x22, 0x25, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x61, + 0x75, 0x74, 0x6f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x2f, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x30, 0x01, 0x32, 0xe6, 0x01, + 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x6f, 0x0a, + 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x12, 0x2c, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2d, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, + 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, + 0x29, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x72, 0x65, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x3a, 0x01, 0x2a, 0x22, 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x72, - 0x70, 0x63, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x32, 0xe6, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x12, 0x6f, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x2c, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, - 0x6f, 0x67, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, - 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x72, - 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x29, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, - 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, - 0x46, 0x6c, 0x61, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2a, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x72, 0x65, - 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x15, 0x5a, - 0x13, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x62, 0x67, 0x6f, 0x2f, - 0x63, 0x6f, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x15, 0x5a, 0x13, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x62, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_datadog_api_v1_api_proto_goTypes = []interface{}{ @@ -185,8 +198,9 @@ var file_datadog_api_v1_api_proto_goTypes = []interface{}{ (*GetStateConfigResponse)(nil), // 17: datadog.config.GetStateConfigResponse (*WorkloadmetaStreamResponse)(nil), // 18: datadog.workloadmeta.WorkloadmetaStreamResponse (*RegisterRemoteAgentResponse)(nil), // 19: datadog.remoteagent.RegisterRemoteAgentResponse - (*GetStatusDetailsResponse)(nil), // 20: datadog.remoteagent.GetStatusDetailsResponse - (*GetFlareFilesResponse)(nil), // 21: datadog.remoteagent.GetFlareFilesResponse + (*AutodiscoveryStreamResponse)(nil), // 20: datadog.autodiscovery.AutodiscoveryStreamResponse + (*GetStatusDetailsResponse)(nil), // 21: datadog.remoteagent.GetStatusDetailsResponse + (*GetFlareFilesResponse)(nil), // 22: datadog.remoteagent.GetFlareFilesResponse } var file_datadog_api_v1_api_proto_depIdxs = []int32{ 0, // 0: datadog.api.v1.Agent.GetHostname:input_type -> datadog.model.v1.HostnameRequest @@ -200,23 +214,25 @@ var file_datadog_api_v1_api_proto_depIdxs = []int32{ 6, // 8: datadog.api.v1.AgentSecure.GetConfigStateHA:input_type -> google.protobuf.Empty 7, // 9: datadog.api.v1.AgentSecure.WorkloadmetaStreamEntities:input_type -> datadog.workloadmeta.WorkloadmetaStreamRequest 8, // 10: datadog.api.v1.AgentSecure.RegisterRemoteAgent:input_type -> datadog.remoteagent.RegisterRemoteAgentRequest - 9, // 11: datadog.api.v1.RemoteAgent.GetStatusDetails:input_type -> datadog.remoteagent.GetStatusDetailsRequest - 10, // 12: datadog.api.v1.RemoteAgent.GetFlareFiles:input_type -> datadog.remoteagent.GetFlareFilesRequest - 11, // 13: datadog.api.v1.Agent.GetHostname:output_type -> datadog.model.v1.HostnameReply - 12, // 14: datadog.api.v1.AgentSecure.TaggerStreamEntities:output_type -> datadog.model.v1.StreamTagsResponse - 13, // 15: datadog.api.v1.AgentSecure.TaggerFetchEntity:output_type -> datadog.model.v1.FetchEntityResponse - 14, // 16: datadog.api.v1.AgentSecure.DogstatsdCaptureTrigger:output_type -> datadog.model.v1.CaptureTriggerResponse - 15, // 17: datadog.api.v1.AgentSecure.DogstatsdSetTaggerState:output_type -> datadog.model.v1.TaggerStateResponse - 16, // 18: datadog.api.v1.AgentSecure.ClientGetConfigs:output_type -> datadog.config.ClientGetConfigsResponse - 17, // 19: datadog.api.v1.AgentSecure.GetConfigState:output_type -> datadog.config.GetStateConfigResponse - 16, // 20: datadog.api.v1.AgentSecure.ClientGetConfigsHA:output_type -> datadog.config.ClientGetConfigsResponse - 17, // 21: datadog.api.v1.AgentSecure.GetConfigStateHA:output_type -> datadog.config.GetStateConfigResponse - 18, // 22: datadog.api.v1.AgentSecure.WorkloadmetaStreamEntities:output_type -> datadog.workloadmeta.WorkloadmetaStreamResponse - 19, // 23: datadog.api.v1.AgentSecure.RegisterRemoteAgent:output_type -> datadog.remoteagent.RegisterRemoteAgentResponse - 20, // 24: datadog.api.v1.RemoteAgent.GetStatusDetails:output_type -> datadog.remoteagent.GetStatusDetailsResponse - 21, // 25: datadog.api.v1.RemoteAgent.GetFlareFiles:output_type -> datadog.remoteagent.GetFlareFilesResponse - 13, // [13:26] is the sub-list for method output_type - 0, // [0:13] is the sub-list for method input_type + 6, // 11: datadog.api.v1.AgentSecure.AutodiscoveryStreamConfig:input_type -> google.protobuf.Empty + 9, // 12: datadog.api.v1.RemoteAgent.GetStatusDetails:input_type -> datadog.remoteagent.GetStatusDetailsRequest + 10, // 13: datadog.api.v1.RemoteAgent.GetFlareFiles:input_type -> datadog.remoteagent.GetFlareFilesRequest + 11, // 14: datadog.api.v1.Agent.GetHostname:output_type -> datadog.model.v1.HostnameReply + 12, // 15: datadog.api.v1.AgentSecure.TaggerStreamEntities:output_type -> datadog.model.v1.StreamTagsResponse + 13, // 16: datadog.api.v1.AgentSecure.TaggerFetchEntity:output_type -> datadog.model.v1.FetchEntityResponse + 14, // 17: datadog.api.v1.AgentSecure.DogstatsdCaptureTrigger:output_type -> datadog.model.v1.CaptureTriggerResponse + 15, // 18: datadog.api.v1.AgentSecure.DogstatsdSetTaggerState:output_type -> datadog.model.v1.TaggerStateResponse + 16, // 19: datadog.api.v1.AgentSecure.ClientGetConfigs:output_type -> datadog.config.ClientGetConfigsResponse + 17, // 20: datadog.api.v1.AgentSecure.GetConfigState:output_type -> datadog.config.GetStateConfigResponse + 16, // 21: datadog.api.v1.AgentSecure.ClientGetConfigsHA:output_type -> datadog.config.ClientGetConfigsResponse + 17, // 22: datadog.api.v1.AgentSecure.GetConfigStateHA:output_type -> datadog.config.GetStateConfigResponse + 18, // 23: datadog.api.v1.AgentSecure.WorkloadmetaStreamEntities:output_type -> datadog.workloadmeta.WorkloadmetaStreamResponse + 19, // 24: datadog.api.v1.AgentSecure.RegisterRemoteAgent:output_type -> datadog.remoteagent.RegisterRemoteAgentResponse + 20, // 25: datadog.api.v1.AgentSecure.AutodiscoveryStreamConfig:output_type -> datadog.autodiscovery.AutodiscoveryStreamResponse + 21, // 26: datadog.api.v1.RemoteAgent.GetStatusDetails:output_type -> datadog.remoteagent.GetStatusDetailsResponse + 22, // 27: datadog.api.v1.RemoteAgent.GetFlareFiles:output_type -> datadog.remoteagent.GetFlareFilesResponse + 14, // [14:28] is the sub-list for method output_type + 0, // [0:14] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name @@ -231,6 +247,7 @@ func file_datadog_api_v1_api_proto_init() { file_datadog_remoteagent_remoteagent_proto_init() file_datadog_remoteconfig_remoteconfig_proto_init() file_datadog_workloadmeta_workloadmeta_proto_init() + file_datadog_autodiscovery_autodiscovery_proto_init() type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ @@ -416,6 +433,8 @@ type AgentSecureClient interface { WorkloadmetaStreamEntities(ctx context.Context, in *WorkloadmetaStreamRequest, opts ...grpc.CallOption) (AgentSecure_WorkloadmetaStreamEntitiesClient, error) // Registers a remote agent. RegisterRemoteAgent(ctx context.Context, in *RegisterRemoteAgentRequest, opts ...grpc.CallOption) (*RegisterRemoteAgentResponse, error) + // Subscribes to autodiscovery config updates + AutodiscoveryStreamConfig(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (AgentSecure_AutodiscoveryStreamConfigClient, error) } type agentSecureClient struct { @@ -562,6 +581,38 @@ func (c *agentSecureClient) RegisterRemoteAgent(ctx context.Context, in *Registe return out, nil } +func (c *agentSecureClient) AutodiscoveryStreamConfig(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (AgentSecure_AutodiscoveryStreamConfigClient, error) { + stream, err := c.cc.NewStream(ctx, &_AgentSecure_serviceDesc.Streams[2], "/datadog.api.v1.AgentSecure/AutodiscoveryStreamConfig", opts...) + if err != nil { + return nil, err + } + x := &agentSecureAutodiscoveryStreamConfigClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type AgentSecure_AutodiscoveryStreamConfigClient interface { + Recv() (*AutodiscoveryStreamResponse, error) + grpc.ClientStream +} + +type agentSecureAutodiscoveryStreamConfigClient struct { + grpc.ClientStream +} + +func (x *agentSecureAutodiscoveryStreamConfigClient) Recv() (*AutodiscoveryStreamResponse, error) { + m := new(AutodiscoveryStreamResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + // AgentSecureServer is the server API for AgentSecure service. type AgentSecureServer interface { // subscribes to added, removed, or changed entities in the Tagger @@ -644,6 +695,8 @@ type AgentSecureServer interface { WorkloadmetaStreamEntities(*WorkloadmetaStreamRequest, AgentSecure_WorkloadmetaStreamEntitiesServer) error // Registers a remote agent. RegisterRemoteAgent(context.Context, *RegisterRemoteAgentRequest) (*RegisterRemoteAgentResponse, error) + // Subscribes to autodiscovery config updates + AutodiscoveryStreamConfig(*empty.Empty, AgentSecure_AutodiscoveryStreamConfigServer) error } // UnimplementedAgentSecureServer can be embedded to have forward compatible implementations. @@ -680,6 +733,9 @@ func (*UnimplementedAgentSecureServer) WorkloadmetaStreamEntities(*WorkloadmetaS func (*UnimplementedAgentSecureServer) RegisterRemoteAgent(context.Context, *RegisterRemoteAgentRequest) (*RegisterRemoteAgentResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RegisterRemoteAgent not implemented") } +func (*UnimplementedAgentSecureServer) AutodiscoveryStreamConfig(*empty.Empty, AgentSecure_AutodiscoveryStreamConfigServer) error { + return status.Errorf(codes.Unimplemented, "method AutodiscoveryStreamConfig not implemented") +} func RegisterAgentSecureServer(s *grpc.Server, srv AgentSecureServer) { s.RegisterService(&_AgentSecure_serviceDesc, srv) @@ -871,6 +927,27 @@ func _AgentSecure_RegisterRemoteAgent_Handler(srv interface{}, ctx context.Conte return interceptor(ctx, in, info, handler) } +func _AgentSecure_AutodiscoveryStreamConfig_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(empty.Empty) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(AgentSecureServer).AutodiscoveryStreamConfig(m, &agentSecureAutodiscoveryStreamConfigServer{stream}) +} + +type AgentSecure_AutodiscoveryStreamConfigServer interface { + Send(*AutodiscoveryStreamResponse) error + grpc.ServerStream +} + +type agentSecureAutodiscoveryStreamConfigServer struct { + grpc.ServerStream +} + +func (x *agentSecureAutodiscoveryStreamConfigServer) Send(m *AutodiscoveryStreamResponse) error { + return x.ServerStream.SendMsg(m) +} + var _AgentSecure_serviceDesc = grpc.ServiceDesc{ ServiceName: "datadog.api.v1.AgentSecure", HandlerType: (*AgentSecureServer)(nil), @@ -919,6 +996,11 @@ var _AgentSecure_serviceDesc = grpc.ServiceDesc{ Handler: _AgentSecure_WorkloadmetaStreamEntities_Handler, ServerStreams: true, }, + { + StreamName: "AutodiscoveryStreamConfig", + Handler: _AgentSecure_AutodiscoveryStreamConfig_Handler, + ServerStreams: true, + }, }, Metadata: "datadog/api/v1/api.proto", } diff --git a/pkg/proto/pbgo/core/api.pb.gw.go b/pkg/proto/pbgo/core/api.pb.gw.go index fb843e96988c3..4ff263f83d888 100644 --- a/pkg/proto/pbgo/core/api.pb.gw.go +++ b/pkg/proto/pbgo/core/api.pb.gw.go @@ -372,6 +372,31 @@ func local_request_AgentSecure_RegisterRemoteAgent_0(ctx context.Context, marsha } +func request_AgentSecure_AutodiscoveryStreamConfig_0(ctx context.Context, marshaler runtime.Marshaler, client AgentSecureClient, req *http.Request, pathParams map[string]string) (AgentSecure_AutodiscoveryStreamConfigClient, runtime.ServerMetadata, error) { + var protoReq empty.Empty + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + stream, err := client.AutodiscoveryStreamConfig(ctx, &protoReq) + if err != nil { + return nil, metadata, err + } + header, err := stream.Header() + if err != nil { + return nil, metadata, err + } + metadata.HeaderMD = header + return stream, metadata, nil + +} + // RegisterAgentHandlerServer registers the http handlers for service Agent to "mux". // UnaryRPC :call AgentServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -579,6 +604,13 @@ func RegisterAgentSecureHandlerServer(ctx context.Context, mux *runtime.ServeMux }) + mux.Handle("POST", pattern_AgentSecure_AutodiscoveryStreamConfig_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") + _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + }) + return nil } @@ -889,6 +921,26 @@ func RegisterAgentSecureHandlerClient(ctx context.Context, mux *runtime.ServeMux }) + mux.Handle("POST", pattern_AgentSecure_AutodiscoveryStreamConfig_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AgentSecure_AutodiscoveryStreamConfig_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AgentSecure_AutodiscoveryStreamConfig_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -912,6 +964,8 @@ var ( pattern_AgentSecure_WorkloadmetaStreamEntities_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "grpc", "workloadmeta", "stream_entities"}, "", runtime.AssumeColonVerbOpt(true))) pattern_AgentSecure_RegisterRemoteAgent_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "grpc", "remoteagent", "register_remote_agent"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_AgentSecure_AutodiscoveryStreamConfig_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "grpc", "autodiscovery", "stream_configs"}, "", runtime.AssumeColonVerbOpt(true))) ) var ( @@ -934,4 +988,6 @@ var ( forward_AgentSecure_WorkloadmetaStreamEntities_0 = runtime.ForwardResponseStream forward_AgentSecure_RegisterRemoteAgent_0 = runtime.ForwardResponseMessage + + forward_AgentSecure_AutodiscoveryStreamConfig_0 = runtime.ForwardResponseStream ) diff --git a/pkg/proto/pbgo/core/autodiscovery.pb.go b/pkg/proto/pbgo/core/autodiscovery.pb.go new file mode 100644 index 0000000000000..20f2c5c010231 --- /dev/null +++ b/pkg/proto/pbgo/core/autodiscovery.pb.go @@ -0,0 +1,588 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.34.0 +// protoc v5.26.1 +// source: datadog/autodiscovery/autodiscovery.proto + +package core + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type ConfigEventType int32 + +const ( + ConfigEventType_SCHEDULE ConfigEventType = 0 + ConfigEventType_UNSCHEDULE ConfigEventType = 1 +) + +// Enum value maps for ConfigEventType. +var ( + ConfigEventType_name = map[int32]string{ + 0: "SCHEDULE", + 1: "UNSCHEDULE", + } + ConfigEventType_value = map[string]int32{ + "SCHEDULE": 0, + "UNSCHEDULE": 1, + } +) + +func (x ConfigEventType) Enum() *ConfigEventType { + p := new(ConfigEventType) + *p = x + return p +} + +func (x ConfigEventType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ConfigEventType) Descriptor() protoreflect.EnumDescriptor { + return file_datadog_autodiscovery_autodiscovery_proto_enumTypes[0].Descriptor() +} + +func (ConfigEventType) Type() protoreflect.EnumType { + return &file_datadog_autodiscovery_autodiscovery_proto_enumTypes[0] +} + +func (x ConfigEventType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ConfigEventType.Descriptor instead. +func (ConfigEventType) EnumDescriptor() ([]byte, []int) { + return file_datadog_autodiscovery_autodiscovery_proto_rawDescGZIP(), []int{0} +} + +type KubeNamespacedName struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` +} + +func (x *KubeNamespacedName) Reset() { + *x = KubeNamespacedName{} + if protoimpl.UnsafeEnabled { + mi := &file_datadog_autodiscovery_autodiscovery_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *KubeNamespacedName) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*KubeNamespacedName) ProtoMessage() {} + +func (x *KubeNamespacedName) ProtoReflect() protoreflect.Message { + mi := &file_datadog_autodiscovery_autodiscovery_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use KubeNamespacedName.ProtoReflect.Descriptor instead. +func (*KubeNamespacedName) Descriptor() ([]byte, []int) { + return file_datadog_autodiscovery_autodiscovery_proto_rawDescGZIP(), []int{0} +} + +func (x *KubeNamespacedName) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *KubeNamespacedName) GetNamespace() string { + if x != nil { + return x.Namespace + } + return "" +} + +type AdvancedADIdentifier struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + KubeService *KubeNamespacedName `protobuf:"bytes,1,opt,name=kubeService,proto3" json:"kubeService,omitempty"` + KubeEndpoints *KubeNamespacedName `protobuf:"bytes,2,opt,name=kubeEndpoints,proto3" json:"kubeEndpoints,omitempty"` +} + +func (x *AdvancedADIdentifier) Reset() { + *x = AdvancedADIdentifier{} + if protoimpl.UnsafeEnabled { + mi := &file_datadog_autodiscovery_autodiscovery_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdvancedADIdentifier) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdvancedADIdentifier) ProtoMessage() {} + +func (x *AdvancedADIdentifier) ProtoReflect() protoreflect.Message { + mi := &file_datadog_autodiscovery_autodiscovery_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdvancedADIdentifier.ProtoReflect.Descriptor instead. +func (*AdvancedADIdentifier) Descriptor() ([]byte, []int) { + return file_datadog_autodiscovery_autodiscovery_proto_rawDescGZIP(), []int{1} +} + +func (x *AdvancedADIdentifier) GetKubeService() *KubeNamespacedName { + if x != nil { + return x.KubeService + } + return nil +} + +func (x *AdvancedADIdentifier) GetKubeEndpoints() *KubeNamespacedName { + if x != nil { + return x.KubeEndpoints + } + return nil +} + +type Config struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Instances [][]byte `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` + InitConfig []byte `protobuf:"bytes,3,opt,name=initConfig,proto3" json:"initConfig,omitempty"` + MetricConfig []byte `protobuf:"bytes,4,opt,name=metricConfig,proto3" json:"metricConfig,omitempty"` + LogsConfig []byte `protobuf:"bytes,5,opt,name=logsConfig,proto3" json:"logsConfig,omitempty"` + AdIdentifiers []string `protobuf:"bytes,6,rep,name=adIdentifiers,proto3" json:"adIdentifiers,omitempty"` + AdvancedAdIdentifiers []*AdvancedADIdentifier `protobuf:"bytes,7,rep,name=advancedAdIdentifiers,proto3" json:"advancedAdIdentifiers,omitempty"` + Provider string `protobuf:"bytes,8,opt,name=provider,proto3" json:"provider,omitempty"` + ServiceId string `protobuf:"bytes,9,opt,name=serviceId,proto3" json:"serviceId,omitempty"` + TaggerEntity string `protobuf:"bytes,10,opt,name=taggerEntity,proto3" json:"taggerEntity,omitempty"` + ClusterCheck bool `protobuf:"varint,11,opt,name=clusterCheck,proto3" json:"clusterCheck,omitempty"` + NodeName string `protobuf:"bytes,12,opt,name=nodeName,proto3" json:"nodeName,omitempty"` + Source string `protobuf:"bytes,13,opt,name=source,proto3" json:"source,omitempty"` + IgnoreAutodiscoveryTags bool `protobuf:"varint,14,opt,name=ignoreAutodiscoveryTags,proto3" json:"ignoreAutodiscoveryTags,omitempty"` + MetricsExcluded bool `protobuf:"varint,15,opt,name=metricsExcluded,proto3" json:"metricsExcluded,omitempty"` + LogsExcluded bool `protobuf:"varint,16,opt,name=logsExcluded,proto3" json:"logsExcluded,omitempty"` + EventType ConfigEventType `protobuf:"varint,17,opt,name=eventType,proto3,enum=datadog.autodiscovery.ConfigEventType" json:"eventType,omitempty"` +} + +func (x *Config) Reset() { + *x = Config{} + if protoimpl.UnsafeEnabled { + mi := &file_datadog_autodiscovery_autodiscovery_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Config) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Config) ProtoMessage() {} + +func (x *Config) ProtoReflect() protoreflect.Message { + mi := &file_datadog_autodiscovery_autodiscovery_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Config.ProtoReflect.Descriptor instead. +func (*Config) Descriptor() ([]byte, []int) { + return file_datadog_autodiscovery_autodiscovery_proto_rawDescGZIP(), []int{2} +} + +func (x *Config) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Config) GetInstances() [][]byte { + if x != nil { + return x.Instances + } + return nil +} + +func (x *Config) GetInitConfig() []byte { + if x != nil { + return x.InitConfig + } + return nil +} + +func (x *Config) GetMetricConfig() []byte { + if x != nil { + return x.MetricConfig + } + return nil +} + +func (x *Config) GetLogsConfig() []byte { + if x != nil { + return x.LogsConfig + } + return nil +} + +func (x *Config) GetAdIdentifiers() []string { + if x != nil { + return x.AdIdentifiers + } + return nil +} + +func (x *Config) GetAdvancedAdIdentifiers() []*AdvancedADIdentifier { + if x != nil { + return x.AdvancedAdIdentifiers + } + return nil +} + +func (x *Config) GetProvider() string { + if x != nil { + return x.Provider + } + return "" +} + +func (x *Config) GetServiceId() string { + if x != nil { + return x.ServiceId + } + return "" +} + +func (x *Config) GetTaggerEntity() string { + if x != nil { + return x.TaggerEntity + } + return "" +} + +func (x *Config) GetClusterCheck() bool { + if x != nil { + return x.ClusterCheck + } + return false +} + +func (x *Config) GetNodeName() string { + if x != nil { + return x.NodeName + } + return "" +} + +func (x *Config) GetSource() string { + if x != nil { + return x.Source + } + return "" +} + +func (x *Config) GetIgnoreAutodiscoveryTags() bool { + if x != nil { + return x.IgnoreAutodiscoveryTags + } + return false +} + +func (x *Config) GetMetricsExcluded() bool { + if x != nil { + return x.MetricsExcluded + } + return false +} + +func (x *Config) GetLogsExcluded() bool { + if x != nil { + return x.LogsExcluded + } + return false +} + +func (x *Config) GetEventType() ConfigEventType { + if x != nil { + return x.EventType + } + return ConfigEventType_SCHEDULE +} + +type AutodiscoveryStreamResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Configs []*Config `protobuf:"bytes,1,rep,name=configs,proto3" json:"configs,omitempty"` +} + +func (x *AutodiscoveryStreamResponse) Reset() { + *x = AutodiscoveryStreamResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_datadog_autodiscovery_autodiscovery_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AutodiscoveryStreamResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AutodiscoveryStreamResponse) ProtoMessage() {} + +func (x *AutodiscoveryStreamResponse) ProtoReflect() protoreflect.Message { + mi := &file_datadog_autodiscovery_autodiscovery_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AutodiscoveryStreamResponse.ProtoReflect.Descriptor instead. +func (*AutodiscoveryStreamResponse) Descriptor() ([]byte, []int) { + return file_datadog_autodiscovery_autodiscovery_proto_rawDescGZIP(), []int{3} +} + +func (x *AutodiscoveryStreamResponse) GetConfigs() []*Config { + if x != nil { + return x.Configs + } + return nil +} + +var File_datadog_autodiscovery_autodiscovery_proto protoreflect.FileDescriptor + +var file_datadog_autodiscovery_autodiscovery_proto_rawDesc = []byte{ + 0x0a, 0x29, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x64, 0x69, + 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x64, 0x69, 0x73, 0x63, + 0x6f, 0x76, 0x65, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x64, 0x61, 0x74, + 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, + 0x72, 0x79, 0x22, 0x46, 0x0a, 0x12, 0x4b, 0x75, 0x62, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0xb4, 0x01, 0x0a, 0x14, 0x41, + 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x41, 0x44, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x0b, 0x6b, 0x75, 0x62, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, + 0x6f, 0x67, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, + 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x64, 0x4e, + 0x61, 0x6d, 0x65, 0x52, 0x0b, 0x6b, 0x75, 0x62, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x4f, 0x0a, 0x0d, 0x6b, 0x75, 0x62, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, + 0x67, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x2e, + 0x4b, 0x75, 0x62, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x64, 0x4e, 0x61, + 0x6d, 0x65, 0x52, 0x0d, 0x6b, 0x75, 0x62, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x22, 0xab, 0x05, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0c, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x1e, + 0x0a, 0x0a, 0x69, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0a, 0x69, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x22, + 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x64, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x64, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x12, 0x61, 0x0a, 0x15, 0x61, 0x64, 0x76, 0x61, + 0x6e, 0x63, 0x65, 0x64, 0x41, 0x64, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, + 0x67, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x2e, + 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x41, 0x44, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x52, 0x15, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x41, 0x64, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x61, 0x67, 0x67, 0x65, 0x72, 0x45, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x61, 0x67, + 0x67, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x1a, 0x0a, + 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x12, 0x38, 0x0a, 0x17, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x64, + 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x54, 0x61, 0x67, 0x73, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x17, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x64, 0x69, + 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x54, 0x61, 0x67, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x78, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x6f, 0x67, 0x73, 0x45, 0x78, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6c, 0x6f, 0x67, + 0x73, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x12, 0x44, 0x0a, 0x09, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x64, 0x69, 0x73, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x56, 0x0a, 0x1b, 0x41, 0x75, 0x74, 0x6f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, + 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x64, 0x69, + 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x07, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2a, 0x2f, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x43, + 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4e, 0x53, 0x43, + 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x01, 0x42, 0x15, 0x5a, 0x13, 0x70, 0x6b, 0x67, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x62, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_datadog_autodiscovery_autodiscovery_proto_rawDescOnce sync.Once + file_datadog_autodiscovery_autodiscovery_proto_rawDescData = file_datadog_autodiscovery_autodiscovery_proto_rawDesc +) + +func file_datadog_autodiscovery_autodiscovery_proto_rawDescGZIP() []byte { + file_datadog_autodiscovery_autodiscovery_proto_rawDescOnce.Do(func() { + file_datadog_autodiscovery_autodiscovery_proto_rawDescData = protoimpl.X.CompressGZIP(file_datadog_autodiscovery_autodiscovery_proto_rawDescData) + }) + return file_datadog_autodiscovery_autodiscovery_proto_rawDescData +} + +var file_datadog_autodiscovery_autodiscovery_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_datadog_autodiscovery_autodiscovery_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_datadog_autodiscovery_autodiscovery_proto_goTypes = []interface{}{ + (ConfigEventType)(0), // 0: datadog.autodiscovery.ConfigEventType + (*KubeNamespacedName)(nil), // 1: datadog.autodiscovery.KubeNamespacedName + (*AdvancedADIdentifier)(nil), // 2: datadog.autodiscovery.AdvancedADIdentifier + (*Config)(nil), // 3: datadog.autodiscovery.Config + (*AutodiscoveryStreamResponse)(nil), // 4: datadog.autodiscovery.AutodiscoveryStreamResponse +} +var file_datadog_autodiscovery_autodiscovery_proto_depIdxs = []int32{ + 1, // 0: datadog.autodiscovery.AdvancedADIdentifier.kubeService:type_name -> datadog.autodiscovery.KubeNamespacedName + 1, // 1: datadog.autodiscovery.AdvancedADIdentifier.kubeEndpoints:type_name -> datadog.autodiscovery.KubeNamespacedName + 2, // 2: datadog.autodiscovery.Config.advancedAdIdentifiers:type_name -> datadog.autodiscovery.AdvancedADIdentifier + 0, // 3: datadog.autodiscovery.Config.eventType:type_name -> datadog.autodiscovery.ConfigEventType + 3, // 4: datadog.autodiscovery.AutodiscoveryStreamResponse.configs:type_name -> datadog.autodiscovery.Config + 5, // [5:5] is the sub-list for method output_type + 5, // [5:5] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_datadog_autodiscovery_autodiscovery_proto_init() } +func file_datadog_autodiscovery_autodiscovery_proto_init() { + if File_datadog_autodiscovery_autodiscovery_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_datadog_autodiscovery_autodiscovery_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KubeNamespacedName); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_datadog_autodiscovery_autodiscovery_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdvancedADIdentifier); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_datadog_autodiscovery_autodiscovery_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Config); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_datadog_autodiscovery_autodiscovery_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AutodiscoveryStreamResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_datadog_autodiscovery_autodiscovery_proto_rawDesc, + NumEnums: 1, + NumMessages: 4, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_datadog_autodiscovery_autodiscovery_proto_goTypes, + DependencyIndexes: file_datadog_autodiscovery_autodiscovery_proto_depIdxs, + EnumInfos: file_datadog_autodiscovery_autodiscovery_proto_enumTypes, + MessageInfos: file_datadog_autodiscovery_autodiscovery_proto_msgTypes, + }.Build() + File_datadog_autodiscovery_autodiscovery_proto = out.File + file_datadog_autodiscovery_autodiscovery_proto_rawDesc = nil + file_datadog_autodiscovery_autodiscovery_proto_goTypes = nil + file_datadog_autodiscovery_autodiscovery_proto_depIdxs = nil +} diff --git a/pkg/proto/pbgo/mocks/core/api_mockgen.pb.go b/pkg/proto/pbgo/mocks/core/api_mockgen.pb.go index f63731fc7bb98..7d7798b724aaa 100644 --- a/pkg/proto/pbgo/mocks/core/api_mockgen.pb.go +++ b/pkg/proto/pbgo/mocks/core/api_mockgen.pb.go @@ -119,6 +119,26 @@ func (m *MockAgentSecureClient) EXPECT() *MockAgentSecureClientMockRecorder { return m.recorder } +// AutodiscoveryStreamConfig mocks base method. +func (m *MockAgentSecureClient) AutodiscoveryStreamConfig(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (core.AgentSecure_AutodiscoveryStreamConfigClient, error) { + m.ctrl.T.Helper() + varargs := []interface{}{ctx, in} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "AutodiscoveryStreamConfig", varargs...) + ret0, _ := ret[0].(core.AgentSecure_AutodiscoveryStreamConfigClient) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// AutodiscoveryStreamConfig indicates an expected call of AutodiscoveryStreamConfig. +func (mr *MockAgentSecureClientMockRecorder) AutodiscoveryStreamConfig(ctx, in interface{}, opts ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{ctx, in}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AutodiscoveryStreamConfig", reflect.TypeOf((*MockAgentSecureClient)(nil).AutodiscoveryStreamConfig), varargs...) +} + // ClientGetConfigs mocks base method. func (m *MockAgentSecureClient) ClientGetConfigs(ctx context.Context, in *core.ClientGetConfigsRequest, opts ...grpc.CallOption) (*core.ClientGetConfigsResponse, error) { m.ctrl.T.Helper() @@ -565,6 +585,129 @@ func (mr *MockAgentSecure_WorkloadmetaStreamEntitiesClientMockRecorder) Trailer( return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Trailer", reflect.TypeOf((*MockAgentSecure_WorkloadmetaStreamEntitiesClient)(nil).Trailer)) } +// MockAgentSecure_AutodiscoveryStreamConfigClient is a mock of AgentSecure_AutodiscoveryStreamConfigClient interface. +type MockAgentSecure_AutodiscoveryStreamConfigClient struct { + ctrl *gomock.Controller + recorder *MockAgentSecure_AutodiscoveryStreamConfigClientMockRecorder +} + +// MockAgentSecure_AutodiscoveryStreamConfigClientMockRecorder is the mock recorder for MockAgentSecure_AutodiscoveryStreamConfigClient. +type MockAgentSecure_AutodiscoveryStreamConfigClientMockRecorder struct { + mock *MockAgentSecure_AutodiscoveryStreamConfigClient +} + +// NewMockAgentSecure_AutodiscoveryStreamConfigClient creates a new mock instance. +func NewMockAgentSecure_AutodiscoveryStreamConfigClient(ctrl *gomock.Controller) *MockAgentSecure_AutodiscoveryStreamConfigClient { + mock := &MockAgentSecure_AutodiscoveryStreamConfigClient{ctrl: ctrl} + mock.recorder = &MockAgentSecure_AutodiscoveryStreamConfigClientMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockAgentSecure_AutodiscoveryStreamConfigClient) EXPECT() *MockAgentSecure_AutodiscoveryStreamConfigClientMockRecorder { + return m.recorder +} + +// CloseSend mocks base method. +func (m *MockAgentSecure_AutodiscoveryStreamConfigClient) CloseSend() error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CloseSend") + ret0, _ := ret[0].(error) + return ret0 +} + +// CloseSend indicates an expected call of CloseSend. +func (mr *MockAgentSecure_AutodiscoveryStreamConfigClientMockRecorder) CloseSend() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CloseSend", reflect.TypeOf((*MockAgentSecure_AutodiscoveryStreamConfigClient)(nil).CloseSend)) +} + +// Context mocks base method. +func (m *MockAgentSecure_AutodiscoveryStreamConfigClient) Context() context.Context { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Context") + ret0, _ := ret[0].(context.Context) + return ret0 +} + +// Context indicates an expected call of Context. +func (mr *MockAgentSecure_AutodiscoveryStreamConfigClientMockRecorder) Context() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Context", reflect.TypeOf((*MockAgentSecure_AutodiscoveryStreamConfigClient)(nil).Context)) +} + +// Header mocks base method. +func (m *MockAgentSecure_AutodiscoveryStreamConfigClient) Header() (metadata.MD, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Header") + ret0, _ := ret[0].(metadata.MD) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Header indicates an expected call of Header. +func (mr *MockAgentSecure_AutodiscoveryStreamConfigClientMockRecorder) Header() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Header", reflect.TypeOf((*MockAgentSecure_AutodiscoveryStreamConfigClient)(nil).Header)) +} + +// Recv mocks base method. +func (m *MockAgentSecure_AutodiscoveryStreamConfigClient) Recv() (*core.AutodiscoveryStreamResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Recv") + ret0, _ := ret[0].(*core.AutodiscoveryStreamResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Recv indicates an expected call of Recv. +func (mr *MockAgentSecure_AutodiscoveryStreamConfigClientMockRecorder) Recv() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Recv", reflect.TypeOf((*MockAgentSecure_AutodiscoveryStreamConfigClient)(nil).Recv)) +} + +// RecvMsg mocks base method. +func (m_2 *MockAgentSecure_AutodiscoveryStreamConfigClient) RecvMsg(m any) error { + m_2.ctrl.T.Helper() + ret := m_2.ctrl.Call(m_2, "RecvMsg", m) + ret0, _ := ret[0].(error) + return ret0 +} + +// RecvMsg indicates an expected call of RecvMsg. +func (mr *MockAgentSecure_AutodiscoveryStreamConfigClientMockRecorder) RecvMsg(m interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecvMsg", reflect.TypeOf((*MockAgentSecure_AutodiscoveryStreamConfigClient)(nil).RecvMsg), m) +} + +// SendMsg mocks base method. +func (m_2 *MockAgentSecure_AutodiscoveryStreamConfigClient) SendMsg(m any) error { + m_2.ctrl.T.Helper() + ret := m_2.ctrl.Call(m_2, "SendMsg", m) + ret0, _ := ret[0].(error) + return ret0 +} + +// SendMsg indicates an expected call of SendMsg. +func (mr *MockAgentSecure_AutodiscoveryStreamConfigClientMockRecorder) SendMsg(m interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendMsg", reflect.TypeOf((*MockAgentSecure_AutodiscoveryStreamConfigClient)(nil).SendMsg), m) +} + +// Trailer mocks base method. +func (m *MockAgentSecure_AutodiscoveryStreamConfigClient) Trailer() metadata.MD { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Trailer") + ret0, _ := ret[0].(metadata.MD) + return ret0 +} + +// Trailer indicates an expected call of Trailer. +func (mr *MockAgentSecure_AutodiscoveryStreamConfigClientMockRecorder) Trailer() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Trailer", reflect.TypeOf((*MockAgentSecure_AutodiscoveryStreamConfigClient)(nil).Trailer)) +} + // MockAgentSecureServer is a mock of AgentSecureServer interface. type MockAgentSecureServer struct { ctrl *gomock.Controller @@ -588,6 +731,20 @@ func (m *MockAgentSecureServer) EXPECT() *MockAgentSecureServerMockRecorder { return m.recorder } +// AutodiscoveryStreamConfig mocks base method. +func (m *MockAgentSecureServer) AutodiscoveryStreamConfig(arg0 *empty.Empty, arg1 core.AgentSecure_AutodiscoveryStreamConfigServer) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "AutodiscoveryStreamConfig", arg0, arg1) + ret0, _ := ret[0].(error) + return ret0 +} + +// AutodiscoveryStreamConfig indicates an expected call of AutodiscoveryStreamConfig. +func (mr *MockAgentSecureServerMockRecorder) AutodiscoveryStreamConfig(arg0, arg1 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AutodiscoveryStreamConfig", reflect.TypeOf((*MockAgentSecureServer)(nil).AutodiscoveryStreamConfig), arg0, arg1) +} + // ClientGetConfigs mocks base method. func (m *MockAgentSecureServer) ClientGetConfigs(arg0 context.Context, arg1 *core.ClientGetConfigsRequest) (*core.ClientGetConfigsResponse, error) { m.ctrl.T.Helper() @@ -974,6 +1131,125 @@ func (mr *MockAgentSecure_WorkloadmetaStreamEntitiesServerMockRecorder) SetTrail return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTrailer", reflect.TypeOf((*MockAgentSecure_WorkloadmetaStreamEntitiesServer)(nil).SetTrailer), arg0) } +// MockAgentSecure_AutodiscoveryStreamConfigServer is a mock of AgentSecure_AutodiscoveryStreamConfigServer interface. +type MockAgentSecure_AutodiscoveryStreamConfigServer struct { + ctrl *gomock.Controller + recorder *MockAgentSecure_AutodiscoveryStreamConfigServerMockRecorder +} + +// MockAgentSecure_AutodiscoveryStreamConfigServerMockRecorder is the mock recorder for MockAgentSecure_AutodiscoveryStreamConfigServer. +type MockAgentSecure_AutodiscoveryStreamConfigServerMockRecorder struct { + mock *MockAgentSecure_AutodiscoveryStreamConfigServer +} + +// NewMockAgentSecure_AutodiscoveryStreamConfigServer creates a new mock instance. +func NewMockAgentSecure_AutodiscoveryStreamConfigServer(ctrl *gomock.Controller) *MockAgentSecure_AutodiscoveryStreamConfigServer { + mock := &MockAgentSecure_AutodiscoveryStreamConfigServer{ctrl: ctrl} + mock.recorder = &MockAgentSecure_AutodiscoveryStreamConfigServerMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockAgentSecure_AutodiscoveryStreamConfigServer) EXPECT() *MockAgentSecure_AutodiscoveryStreamConfigServerMockRecorder { + return m.recorder +} + +// Context mocks base method. +func (m *MockAgentSecure_AutodiscoveryStreamConfigServer) Context() context.Context { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Context") + ret0, _ := ret[0].(context.Context) + return ret0 +} + +// Context indicates an expected call of Context. +func (mr *MockAgentSecure_AutodiscoveryStreamConfigServerMockRecorder) Context() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Context", reflect.TypeOf((*MockAgentSecure_AutodiscoveryStreamConfigServer)(nil).Context)) +} + +// RecvMsg mocks base method. +func (m_2 *MockAgentSecure_AutodiscoveryStreamConfigServer) RecvMsg(m any) error { + m_2.ctrl.T.Helper() + ret := m_2.ctrl.Call(m_2, "RecvMsg", m) + ret0, _ := ret[0].(error) + return ret0 +} + +// RecvMsg indicates an expected call of RecvMsg. +func (mr *MockAgentSecure_AutodiscoveryStreamConfigServerMockRecorder) RecvMsg(m interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecvMsg", reflect.TypeOf((*MockAgentSecure_AutodiscoveryStreamConfigServer)(nil).RecvMsg), m) +} + +// Send mocks base method. +func (m *MockAgentSecure_AutodiscoveryStreamConfigServer) Send(arg0 *core.AutodiscoveryStreamResponse) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Send", arg0) + ret0, _ := ret[0].(error) + return ret0 +} + +// Send indicates an expected call of Send. +func (mr *MockAgentSecure_AutodiscoveryStreamConfigServerMockRecorder) Send(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Send", reflect.TypeOf((*MockAgentSecure_AutodiscoveryStreamConfigServer)(nil).Send), arg0) +} + +// SendHeader mocks base method. +func (m *MockAgentSecure_AutodiscoveryStreamConfigServer) SendHeader(arg0 metadata.MD) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "SendHeader", arg0) + ret0, _ := ret[0].(error) + return ret0 +} + +// SendHeader indicates an expected call of SendHeader. +func (mr *MockAgentSecure_AutodiscoveryStreamConfigServerMockRecorder) SendHeader(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendHeader", reflect.TypeOf((*MockAgentSecure_AutodiscoveryStreamConfigServer)(nil).SendHeader), arg0) +} + +// SendMsg mocks base method. +func (m_2 *MockAgentSecure_AutodiscoveryStreamConfigServer) SendMsg(m any) error { + m_2.ctrl.T.Helper() + ret := m_2.ctrl.Call(m_2, "SendMsg", m) + ret0, _ := ret[0].(error) + return ret0 +} + +// SendMsg indicates an expected call of SendMsg. +func (mr *MockAgentSecure_AutodiscoveryStreamConfigServerMockRecorder) SendMsg(m interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendMsg", reflect.TypeOf((*MockAgentSecure_AutodiscoveryStreamConfigServer)(nil).SendMsg), m) +} + +// SetHeader mocks base method. +func (m *MockAgentSecure_AutodiscoveryStreamConfigServer) SetHeader(arg0 metadata.MD) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "SetHeader", arg0) + ret0, _ := ret[0].(error) + return ret0 +} + +// SetHeader indicates an expected call of SetHeader. +func (mr *MockAgentSecure_AutodiscoveryStreamConfigServerMockRecorder) SetHeader(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetHeader", reflect.TypeOf((*MockAgentSecure_AutodiscoveryStreamConfigServer)(nil).SetHeader), arg0) +} + +// SetTrailer mocks base method. +func (m *MockAgentSecure_AutodiscoveryStreamConfigServer) SetTrailer(arg0 metadata.MD) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "SetTrailer", arg0) +} + +// SetTrailer indicates an expected call of SetTrailer. +func (mr *MockAgentSecure_AutodiscoveryStreamConfigServerMockRecorder) SetTrailer(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTrailer", reflect.TypeOf((*MockAgentSecure_AutodiscoveryStreamConfigServer)(nil).SetTrailer), arg0) +} + // MockRemoteAgentClient is a mock of RemoteAgentClient interface. type MockRemoteAgentClient struct { ctrl *gomock.Controller diff --git a/tasks/go.py b/tasks/go.py index fafcaa008af35..13f451cce050f 100644 --- a/tasks/go.py +++ b/tasks/go.py @@ -217,6 +217,7 @@ def generate_protobuf(ctx): 'workloadmeta': (False, False), 'languagedetection': (False, False), 'remoteagent': (False, False), + 'autodiscovery': (False, False), } # maybe put this in a separate function From 5d5a26d34395eea748f9d308660c51247501bf91 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Dec 2024 15:09:50 +0000 Subject: [PATCH 398/439] Bump actions/upload-artifact from 4.3.6 to 4.4.0 (#28975) Co-authored-by: chouetz Co-authored-by: FlorentClarret --- .github/workflows/cws-btfhub-sync.yml | 2 +- .github/workflows/docs-dev.yml | 2 +- .github/workflows/serverless-benchmarks.yml | 4 ++-- .github/workflows/serverless-binary-size.yml | 2 +- .github/workflows/serverless-integration.yml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/cws-btfhub-sync.yml b/.github/workflows/cws-btfhub-sync.yml index 08d0ad720c1da..0a61cd6d38c0c 100644 --- a/.github/workflows/cws-btfhub-sync.yml +++ b/.github/workflows/cws-btfhub-sync.yml @@ -97,7 +97,7 @@ jobs: inv -e security-agent.generate-btfhub-constants --archive-path=./dev/dist/archive --output-path=./"$ARTIFACT_NAME".json --force-refresh - name: Upload artifact - uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6 + uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 with: name: ${{ steps.artifact-name.outputs.ARTIFACT_NAME }} path: ./${{ steps.artifact-name.outputs.ARTIFACT_NAME }}.json diff --git a/.github/workflows/docs-dev.yml b/.github/workflows/docs-dev.yml index 09d4dd1bbb98e..2f0cc36c01ce8 100644 --- a/.github/workflows/docs-dev.yml +++ b/.github/workflows/docs-dev.yml @@ -50,7 +50,7 @@ jobs: - name: Build documentation run: invoke docs.build - - uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6 + - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 with: name: documentation path: site diff --git a/.github/workflows/serverless-benchmarks.yml b/.github/workflows/serverless-benchmarks.yml index e618764a0ca3b..a393d8e08917e 100644 --- a/.github/workflows/serverless-benchmarks.yml +++ b/.github/workflows/serverless-benchmarks.yml @@ -48,7 +48,7 @@ jobs: ./pkg/serverless/... | tee "$TEMP_RUNNER"/benchmark.log - name: Upload result artifact - uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6 + uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 with: name: baseline.log path: ${{runner.temp}}/benchmark.log @@ -87,7 +87,7 @@ jobs: ./pkg/serverless/... | tee "$TEMP_RUNNER"/benchmark.log - name: Upload result artifact - uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6 + uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 with: name: current.log path: ${{runner.temp}}/benchmark.log diff --git a/.github/workflows/serverless-binary-size.yml b/.github/workflows/serverless-binary-size.yml index fe8e17d17d990..5bc272591f0e6 100644 --- a/.github/workflows/serverless-binary-size.yml +++ b/.github/workflows/serverless-binary-size.yml @@ -152,7 +152,7 @@ jobs: done - name: Archive dependency graphs - uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6 + uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 if: steps.should.outputs.should_run == 'true' with: name: dependency-graphs diff --git a/.github/workflows/serverless-integration.yml b/.github/workflows/serverless-integration.yml index 288d3ef5042e4..7414d78ac65b3 100644 --- a/.github/workflows/serverless-integration.yml +++ b/.github/workflows/serverless-integration.yml @@ -80,7 +80,7 @@ jobs: - name: Archive raw logs if: always() - uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6 + uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 with: name: rawlogs-${{ matrix.suite }}-${{ matrix.architecture }} path: ${{ steps.rawlogs.outputs.dir }} From 8a5e662d8c58c592bbba0766f66d04cabef762cf Mon Sep 17 00:00:00 2001 From: Kevin Fairise <132568982+KevinFairise2@users.noreply.github.com> Date: Wed, 11 Dec 2024 16:10:12 +0100 Subject: [PATCH 399/439] Revert "When running in CI, scrub e2e tests output to avoid leaking keys" (#32027) --- tasks/new_e2e_tests.py | 9 +-------- tasks/tools/gotest-scrubbed.sh | 6 ------ 2 files changed, 1 insertion(+), 14 deletions(-) delete mode 100755 tasks/tools/gotest-scrubbed.sh diff --git a/tasks/new_e2e_tests.py b/tasks/new_e2e_tests.py index 74f027afd1582..cf4b99caec7e6 100644 --- a/tasks/new_e2e_tests.py +++ b/tasks/new_e2e_tests.py @@ -111,14 +111,7 @@ def run( test_run_arg = f"-run {test_run_name}" cmd = f'gotestsum --format {gotestsum_format} ' - scrubber_raw_command = "" - # Scrub the test output to avoid leaking API or APP keys when running in the CI - if running_in_ci(): - scrubber_raw_command = ( - # Using custom go command piped with scrubber sed instructions https://github.com/gotestyourself/gotestsum#custom-go-test-command - f"--raw-command {os.path.join(os.path.dirname(__file__), 'tools', 'gotest-scrubbed.sh')} {{packages}}" - ) - cmd += f'{{junit_file_flag}} {{json_flag}} --packages="{{packages}}" {scrubber_raw_command} -- -ldflags="-X {{REPO_PATH}}/test/new-e2e/tests/containers.GitCommit={{commit}}" {{verbose}} -mod={{go_mod}} -vet=off -timeout {{timeout}} -tags "{{go_build_tags}}" {{nocache}} {{run}} {{skip}} {{test_run_arg}} -args {{osversion}} {{platform}} {{major_version}} {{arch}} {{flavor}} {{cws_supported_osversion}} {{src_agent_version}} {{dest_agent_version}} {{keep_stacks}} {{extra_flags}}' + cmd += '{junit_file_flag} {json_flag} --packages="{packages}" -- -ldflags="-X {REPO_PATH}/test/new-e2e/tests/containers.GitCommit={commit}" {verbose} -mod={go_mod} -vet=off -timeout {timeout} -tags "{go_build_tags}" {nocache} {run} {skip} {test_run_arg} -args {osversion} {platform} {major_version} {arch} {flavor} {cws_supported_osversion} {src_agent_version} {dest_agent_version} {keep_stacks} {extra_flags}' args = { "go_mod": "readonly", diff --git a/tasks/tools/gotest-scrubbed.sh b/tasks/tools/gotest-scrubbed.sh deleted file mode 100755 index 2000005289fae..0000000000000 --- a/tasks/tools/gotest-scrubbed.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -### This script is used to run go test and scrub the output, the command can be used as follow: -### ./gotest-scrubbed.sh -- -go test -json "$1" "${@:3}" | -sed -E 's/\b[a-fA-F0-9]{27}([a-fA-F0-9]{5})\b/**************************\1/g' | # Scrub API keys -sed -E 's/\b[a-fA-F0-9]{35}([a-fA-F0-9]{5})\b/************************************\1/g' # Scrub APP keys From 97fdc4dd76a239705a17f1d71b73eb43681f2304 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Dec 2024 15:14:59 +0000 Subject: [PATCH 400/439] Bump github/codeql-action from 3.27.5 to 3.27.6 (#31925) Co-authored-by: chouetz --- .github/workflows/codeql-analysis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 884c65f390ee8..4ce361a8a19f1 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -45,7 +45,7 @@ jobs: go-version-file: ".go-version" - name: Initialize CodeQL - uses: github/codeql-action/init@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # v3.27.5 + uses: github/codeql-action/init@aa578102511db1f4524ed59b8cc2bae4f6e88195 # v3.27.6 with: languages: ${{ matrix.language }} config: | @@ -67,4 +67,4 @@ jobs: invoke agent.build --build-exclude=systemd - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # v3.27.5 + uses: github/codeql-action/analyze@aa578102511db1f4524ed59b8cc2bae4f6e88195 # v3.27.6 From ed4a97e15e6246e0e06aa4368f3d558811288536 Mon Sep 17 00:00:00 2001 From: Paul Date: Wed, 11 Dec 2024 17:02:38 +0100 Subject: [PATCH 401/439] [FA] Fix expected state log line (#31965) --- pkg/fleet/daemon/daemon.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/fleet/daemon/daemon.go b/pkg/fleet/daemon/daemon.go index 566275521126a..192587f641163 100644 --- a/pkg/fleet/daemon/daemon.go +++ b/pkg/fleet/daemon/daemon.go @@ -475,7 +475,10 @@ func (d *daemonImpl) handleRemoteAPIRequest(request remoteAPIRequest) (err error s.Experiment != request.ExpectedState.Experiment || c.Stable != request.ExpectedState.StableConfig || c.Experiment != request.ExpectedState.ExperimentConfig) { - log.Infof("remote request %s not executed as state does not match: expected %v, got %v", request.ID, request.ExpectedState, s) + log.Infof( + "remote request %s not executed as state does not match: expected %v, got package: %v, config: %v", + request.ID, request.ExpectedState, s, c, + ) setRequestInvalid(ctx) d.refreshState(ctx) return nil From 886af76ebfb032ec39f946e0ada27d1cbdd179e0 Mon Sep 17 00:00:00 2001 From: Pierre Gimalac Date: Wed, 11 Dec 2024 17:02:51 +0100 Subject: [PATCH 402/439] [ASCII-2578] Remove seelog imports outside pkg/util/log (#31788) --- .golangci.yml | 6 + cmd/agent/common/common_windows.go | 5 +- .../clcrunnerapi/clc_runner_server.go | 4 +- cmd/cluster-agent/admission/server.go | 3 +- cmd/cluster-agent/api/server.go | 4 +- cmd/security-agent/api/server.go | 4 +- .../test/testsuite/config_set_test.go | 4 +- comp/api/api/apiimpl/server.go | 5 +- comp/core/log/mock/go.mod | 2 +- comp/core/log/mock/mock.go | 6 +- .../serverDebug/serverdebugimpl/debug.go | 8 +- .../netflow/flowaggregator/aggregator_test.go | 3 +- comp/netflow/goflowlib/logger.go | 15 +- .../npcollectorimpl/npcollector_test.go | 9 +- .../pathteststore/pathteststore_test.go | 3 +- .../rcclient/rcclientimpl/rcclient_test.go | 3 +- comp/trace/config/config_test.go | 4 +- pkg/clusteragent/api/leader_forwarder.go | 5 +- pkg/collector/corechecks/ebpf/ebpf.go | 9 +- .../corechecks/ebpf/probe/ebpfcheck/probe.go | 3 +- .../snmp/internal/checkconfig/config.go | 3 +- .../snmp/internal/devicecheck/devicecheck.go | 7 +- .../snmp/internal/fetch/fetch_column.go | 5 +- .../snmp/internal/fetch/fetch_scalar.go | 3 +- .../snmp/internal/fetch/fetch_test.go | 3 +- .../internal/profile/profile_resolver_test.go | 3 +- .../internal/profile/profile_yaml_test.go | 10 +- .../report/report_device_metadata_test.go | 3 +- .../internal/report/report_metrics_test.go | 7 +- .../snmp/internal/report/report_utils_test.go | 5 +- .../snmp/internal/session/session.go | 3 +- .../snmp/internal/session/session_test.go | 5 +- pkg/collector/python/memory.go | 6 +- pkg/ebpf/ebpftest/fail_log.go | 3 +- pkg/ebpf/ebpftest/log.go | 3 +- pkg/ebpf/map_cleaner_test.go | 3 +- pkg/ebpf/verifier/stats_test.go | 3 +- pkg/gohai/cpu/util_linux.go | 2 +- pkg/gohai/filesystem/filesystem_nix.go | 4 +- pkg/gohai/go.mod | 2 +- pkg/gohai/memory/memory_linux.go | 2 +- pkg/gohai/platform/platform_darwin.go | 5 +- pkg/gohai/processes/gops/process_info.go | 6 +- pkg/logs/tailers/windowsevent/tailer_test.go | 4 +- pkg/network/encoding/marshal/usm.go | 4 +- pkg/network/go/bininspect/symbols.go | 6 +- .../netlink/conntrack_integration_test.go | 3 +- pkg/network/netlink/conntracker.go | 5 +- pkg/network/netlink/consumer.go | 3 +- pkg/network/port_test.go | 3 +- pkg/network/protocols/events/consumer.go | 4 +- pkg/network/protocols/http/telemetry.go | 4 +- pkg/network/protocols/http2/telemetry.go | 4 +- pkg/network/protocols/kafka/telemetry.go | 4 +- pkg/network/protocols/postgres/telemetry.go | 6 +- pkg/network/state.go | 3 +- pkg/network/tracer/connection/ebpf_tracer.go | 3 +- pkg/network/tracer/ebpf_conntracker.go | 9 +- pkg/network/tracer/process_cache.go | 3 +- pkg/network/tracer/tracer.go | 7 +- pkg/network/tracer/tracer_test.go | 3 +- pkg/network/usm/ebpf_gotls.go | 3 +- pkg/network/usm/monitor_test.go | 3 +- .../usm/tests/tracer_classification_test.go | 3 +- pkg/network/usm/utils/file_registry.go | 3 +- pkg/process/metadata/parser/service.go | 5 +- pkg/process/monitor/process_monitor.go | 5 +- pkg/process/procutil/process_linux_test.go | 1 + pkg/security/seclog/logger.go | 4 +- pkg/security/tests/main_test.go | 4 +- pkg/security/tests/module_tester_linux.go | 11 +- pkg/serverless/daemon/routes_test.go | 3 +- pkg/snmp/gosnmplib/gosnmp_log_test.go | 3 +- pkg/trace/go.mod | 2 +- .../remote_config_handler.go | 5 +- .../remote_config_handler_test.go | 13 +- pkg/util/grpc/agent_client_test.go | 3 +- pkg/util/grpc/go.mod | 2 +- .../controllers/wpa_controller_test.go | 4 +- pkg/util/log/levels.go | 47 ++++++ pkg/util/log/log.go | 143 +++++++++--------- pkg/util/log/log_bench_test.go | 16 +- pkg/util/log/log_not_serverless_test.go | 3 +- pkg/util/log/log_serverless_test.go | 3 +- pkg/util/log/log_test.go | 84 +++++----- pkg/util/log/log_test_init.go | 4 +- pkg/util/log/logger.go | 35 +++++ pkg/util/log/setup/log.go | 16 +- pkg/util/log/zap/zapcore.go | 13 +- .../subscription/subscription_test.go | 9 +- pkg/util/winutil/go.mod | 2 +- 91 files changed, 369 insertions(+), 362 deletions(-) create mode 100644 pkg/util/log/levels.go create mode 100644 pkg/util/log/logger.go diff --git a/.golangci.yml b/.golangci.yml index 0358a505b0118..320c25ce206a7 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -607,6 +607,12 @@ linters-settings: desc: "Not really forbidden to use, but it is usually imported by mistake instead of github.com/stretchr/testify/assert, and confusing since it actually has the behavior of github.com/stretchr/testify/require" - pkg: "debug/elf" desc: "prefer pkg/util/safeelf to prevent panics during parsing" + logger: + files: + - "!**/pkg/util/log/**" + deny: + - pkg: "github.com/cihub/seelog" + desc: "seelog should not be used directly. Use `pkg/util/log` instead." errcheck: exclude-functions: diff --git a/cmd/agent/common/common_windows.go b/cmd/agent/common/common_windows.go index 852d4d77d5ccd..33d215dccc84a 100644 --- a/cmd/agent/common/common_windows.go +++ b/cmd/agent/common/common_windows.go @@ -9,13 +9,14 @@ import ( "os" "path/filepath" + //nolint:depguard // creating a logger from a seelog config + "github.com/cihub/seelog" + pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/util/defaultpaths" "github.com/DataDog/datadog-agent/pkg/util/log" "github.com/DataDog/datadog-agent/pkg/util/winutil" "github.com/DataDog/datadog-agent/pkg/util/winutil/messagestrings" - - "github.com/cihub/seelog" ) // ServiceName is the name of the Windows Service the agent runs as diff --git a/cmd/agent/subcommands/run/internal/clcrunnerapi/clc_runner_server.go b/cmd/agent/subcommands/run/internal/clcrunnerapi/clc_runner_server.go index 9b763d3a8b1df..7554f755a2d1b 100644 --- a/cmd/agent/subcommands/run/internal/clcrunnerapi/clc_runner_server.go +++ b/cmd/agent/subcommands/run/internal/clcrunnerapi/clc_runner_server.go @@ -19,7 +19,6 @@ import ( "net/http" "time" - "github.com/cihub/seelog" "github.com/gorilla/mux" v1 "github.com/DataDog/datadog-agent/cmd/agent/subcommands/run/internal/clcrunnerapi/v1" @@ -27,6 +26,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/api/security" "github.com/DataDog/datadog-agent/pkg/api/util" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" + "github.com/DataDog/datadog-agent/pkg/util/log" pkglogsetup "github.com/DataDog/datadog-agent/pkg/util/log/setup" ) @@ -85,7 +85,7 @@ func StartCLCRunnerServer(extraHandlers map[string]http.Handler, ac autodiscover } // Use a stack depth of 4 on top of the default one to get a relevant filename in the stdlib - logWriter, _ := pkglogsetup.NewLogWriter(4, seelog.WarnLvl) + logWriter, _ := pkglogsetup.NewLogWriter(4, log.WarnLvl) srv := &http.Server{ Handler: r, diff --git a/cmd/cluster-agent/admission/server.go b/cmd/cluster-agent/admission/server.go index ea53230e19a35..86b237001037b 100644 --- a/cmd/cluster-agent/admission/server.go +++ b/cmd/cluster-agent/admission/server.go @@ -18,7 +18,6 @@ import ( "net/http" "time" - "github.com/cihub/seelog" admiv1 "k8s.io/api/admission/v1" admiv1beta1 "k8s.io/api/admission/v1beta1" admissionregistrationv1 "k8s.io/api/admissionregistration/v1" @@ -117,7 +116,7 @@ func (s *Server) Run(mainCtx context.Context, client kubernetes.Interface) error tlsMinVersion = tls.VersionTLS10 } - logWriter, _ := pkglogsetup.NewTLSHandshakeErrorWriter(4, seelog.WarnLvl) + logWriter, _ := pkglogsetup.NewTLSHandshakeErrorWriter(4, log.WarnLvl) server := &http.Server{ Addr: fmt.Sprintf(":%d", pkgconfigsetup.Datadog().GetInt("admission_controller.port")), Handler: s.mux, diff --git a/cmd/cluster-agent/api/server.go b/cmd/cluster-agent/api/server.go index 7b2c26fb1d8d5..37efad4d900dd 100644 --- a/cmd/cluster-agent/api/server.go +++ b/cmd/cluster-agent/api/server.go @@ -25,7 +25,6 @@ import ( languagedetection "github.com/DataDog/datadog-agent/cmd/cluster-agent/api/v1/languagedetection" - "github.com/cihub/seelog" "github.com/gorilla/mux" grpc_auth "github.com/grpc-ecosystem/go-grpc-middleware/auth" "google.golang.org/grpc" @@ -44,6 +43,7 @@ import ( pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" pb "github.com/DataDog/datadog-agent/pkg/proto/pbgo/core" grpcutil "github.com/DataDog/datadog-agent/pkg/util/grpc" + "github.com/DataDog/datadog-agent/pkg/util/log" pkglogsetup "github.com/DataDog/datadog-agent/pkg/util/log/setup" ) @@ -113,7 +113,7 @@ func StartServer(ctx context.Context, w workloadmeta.Component, taggerComp tagge } // Use a stack depth of 4 on top of the default one to get a relevant filename in the stdlib - logWriter, _ := pkglogsetup.NewTLSHandshakeErrorWriter(4, seelog.WarnLvl) + logWriter, _ := pkglogsetup.NewTLSHandshakeErrorWriter(4, log.WarnLvl) authInterceptor := grpcutil.AuthInterceptor(func(token string) (interface{}, error) { if token != util.GetDCAAuthToken() { diff --git a/cmd/security-agent/api/server.go b/cmd/security-agent/api/server.go index 3b44b83e39436..e776628e5ccd4 100644 --- a/cmd/security-agent/api/server.go +++ b/cmd/security-agent/api/server.go @@ -20,7 +20,6 @@ import ( "net/http" "time" - "github.com/cihub/seelog" "github.com/gorilla/mux" "github.com/DataDog/datadog-agent/cmd/security-agent/api/agent" @@ -30,6 +29,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/api/security" "github.com/DataDog/datadog-agent/pkg/api/util" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" + "github.com/DataDog/datadog-agent/pkg/util/log" pkglogsetup "github.com/DataDog/datadog-agent/pkg/util/log/setup" ) @@ -90,7 +90,7 @@ func (s *Server) Start() error { } // Use a stack depth of 4 on top of the default one to get a relevant filename in the stdlib - logWriter, _ := pkglogsetup.NewLogWriter(4, seelog.ErrorLvl) + logWriter, _ := pkglogsetup.NewLogWriter(4, log.ErrorLvl) srv := &http.Server{ Handler: r, diff --git a/cmd/trace-agent/test/testsuite/config_set_test.go b/cmd/trace-agent/test/testsuite/config_set_test.go index ee2065f63c7a2..1a9175490aca2 100644 --- a/cmd/trace-agent/test/testsuite/config_set_test.go +++ b/cmd/trace-agent/test/testsuite/config_set_test.go @@ -11,10 +11,10 @@ import ( "testing" "time" - "github.com/cihub/seelog" "github.com/stretchr/testify/assert" "github.com/DataDog/datadog-agent/cmd/trace-agent/test" + "github.com/DataDog/datadog-agent/pkg/util/log" ) func TestConfigSetHandlerUnauthenticated(t *testing.T) { @@ -36,7 +36,7 @@ func TestConfigSetHandlerUnauthenticated(t *testing.T) { assert.NotContains(t, logstr, "| DEBUG |") assert.Contains(t, logstr, "| INFO |") - resp, err := r.DoReq(fmt.Sprintf("config/set?log_level=%s", seelog.WarnStr), http.MethodPost, nil) + resp, err := r.DoReq(fmt.Sprintf("config/set?log_level=%s", log.WarnStr), http.MethodPost, nil) if err != nil { t.Fatal(err) } diff --git a/comp/api/api/apiimpl/server.go b/comp/api/api/apiimpl/server.go index b4d42f1178218..762a67b8a4a63 100644 --- a/comp/api/api/apiimpl/server.go +++ b/comp/api/api/apiimpl/server.go @@ -12,17 +12,14 @@ import ( "net" "net/http" - "github.com/cihub/seelog" - "github.com/DataDog/datadog-agent/comp/api/api/apiimpl/observability" - "github.com/DataDog/datadog-agent/pkg/util/log" pkglogsetup "github.com/DataDog/datadog-agent/pkg/util/log/setup" ) func startServer(listener net.Listener, srv *http.Server, name string) { // Use a stack depth of 4 on top of the default one to get a relevant filename in the stdlib - logWriter, _ := pkglogsetup.NewLogWriter(5, seelog.ErrorLvl) + logWriter, _ := pkglogsetup.NewLogWriter(5, log.ErrorLvl) srv.ErrorLog = stdLog.New(logWriter, fmt.Sprintf("Error from the Agent HTTP server '%s': ", name), 0) // log errors to seelog diff --git a/comp/core/log/mock/go.mod b/comp/core/log/mock/go.mod index bf511bfc7e266..6bf266c22d51d 100644 --- a/comp/core/log/mock/go.mod +++ b/comp/core/log/mock/go.mod @@ -33,7 +33,6 @@ require ( github.com/DataDog/datadog-agent/comp/core/log/def v0.0.0-00010101000000-000000000000 github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/DataDog/datadog-agent/pkg/util/log/setup v0.0.0-00010101000000-000000000000 - github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 ) require ( @@ -43,6 +42,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect + github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect github.com/magiconair/properties v1.8.7 // indirect diff --git a/comp/core/log/mock/mock.go b/comp/core/log/mock/mock.go index b3dde056dcb8f..9e29cdf5fb65a 100644 --- a/comp/core/log/mock/mock.go +++ b/comp/core/log/mock/mock.go @@ -10,8 +10,6 @@ import ( "strings" "testing" - "github.com/cihub/seelog" - log "github.com/DataDog/datadog-agent/comp/core/log/def" pkglog "github.com/DataDog/datadog-agent/pkg/util/log" @@ -37,7 +35,7 @@ func (tbw *tbWriter) Write(p []byte) (n int, err error) { // New returns a new mock for the log Component func New(t testing.TB) log.Component { // Build a logger that only logs to t.Log(..) - iface, err := seelog.LoggerFromWriterWithMinLevelAndFormat(&tbWriter{t}, seelog.TraceLvl, + iface, err := pkglog.LoggerFromWriterWithMinLevelAndFormat(&tbWriter{t}, pkglog.TraceLvl, "%Date(2006-01-02 15:04:05 MST) | %LEVEL | (%ShortFilePath:%Line in %FuncShort) | %ExtraTextContext%Msg%n") if err != nil { t.Fatal(err.Error()) @@ -45,7 +43,7 @@ func New(t testing.TB) log.Component { t.Cleanup(func() { // stop using the logger to avoid a race condition - pkglog.ChangeLogLevel(seelog.Default, "debug") + pkglog.ChangeLogLevel(pkglog.Default(), "debug") iface.Flush() }) diff --git a/comp/dogstatsd/serverDebug/serverdebugimpl/debug.go b/comp/dogstatsd/serverDebug/serverdebugimpl/debug.go index 90c528919bef1..4a8a7a5926ba4 100644 --- a/comp/dogstatsd/serverDebug/serverdebugimpl/debug.go +++ b/comp/dogstatsd/serverDebug/serverdebugimpl/debug.go @@ -16,7 +16,6 @@ import ( "time" "github.com/benbjohnson/clock" - slog "github.com/cihub/seelog" "go.uber.org/atomic" "go.uber.org/fx" @@ -31,6 +30,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/tagset" "github.com/DataDog/datadog-agent/pkg/util/defaultpaths" "github.com/DataDog/datadog-agent/pkg/util/fxutil" + pkglog "github.com/DataDog/datadog-agent/pkg/util/log" pkglogsetup "github.com/DataDog/datadog-agent/pkg/util/log/setup" ) @@ -71,7 +71,7 @@ type serverDebugImpl struct { clock clock.Clock tagsAccumulator *tagset.HashingTagsAccumulator // dogstatsdDebugLogger is an instance of the logger config that can be used to create new logger for dogstatsd-stats metrics - dogstatsdDebugLogger slog.LoggerInterface + dogstatsdDebugLogger pkglog.LoggerInterface } // NewServerlessServerDebug creates a new instance of serverDebug.Component @@ -279,9 +279,9 @@ func (d *serverDebugImpl) disableMetricsStats() { } // build a local dogstatsd logger and bubbling up any errors -func (d *serverDebugImpl) getDogstatsdDebug(cfg model.Reader) slog.LoggerInterface { +func (d *serverDebugImpl) getDogstatsdDebug(cfg model.Reader) pkglog.LoggerInterface { - var dogstatsdLogger slog.LoggerInterface + var dogstatsdLogger pkglog.LoggerInterface // Configuring the log file path logFile := cfg.GetString("dogstatsd_log_file") diff --git a/comp/netflow/flowaggregator/aggregator_test.go b/comp/netflow/flowaggregator/aggregator_test.go index 181915ab3f628..3ba87f0a12639 100644 --- a/comp/netflow/flowaggregator/aggregator_test.go +++ b/comp/netflow/flowaggregator/aggregator_test.go @@ -18,7 +18,6 @@ import ( "testing" "time" - "github.com/cihub/seelog" "github.com/gogo/protobuf/proto" "github.com/golang/mock/gomock" "github.com/prometheus/client_golang/prometheus" @@ -336,7 +335,7 @@ func TestFlowAggregator_flush_submitCollectorMetrics_error(t *testing.T) { var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") + l, err := ddlog.LoggerFromWriterWithMinLevelAndFormat(w, ddlog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") require.NoError(t, err) ddlog.SetupLogger(l, "debug") diff --git a/comp/netflow/goflowlib/logger.go b/comp/netflow/goflowlib/logger.go index 62035bcd052e5..e0a61338c7c46 100644 --- a/comp/netflow/goflowlib/logger.go +++ b/comp/netflow/goflowlib/logger.go @@ -6,20 +6,19 @@ package goflowlib import ( - "github.com/cihub/seelog" "github.com/sirupsen/logrus" log "github.com/DataDog/datadog-agent/comp/core/log/def" ddlog "github.com/DataDog/datadog-agent/pkg/util/log" ) -var ddLogToLogrusLevel = map[seelog.LogLevel]logrus.Level{ - seelog.TraceLvl: logrus.TraceLevel, - seelog.DebugLvl: logrus.DebugLevel, - seelog.InfoLvl: logrus.InfoLevel, - seelog.WarnLvl: logrus.WarnLevel, - seelog.ErrorLvl: logrus.ErrorLevel, - seelog.CriticalLvl: logrus.FatalLevel, +var ddLogToLogrusLevel = map[ddlog.LogLevel]logrus.Level{ + ddlog.TraceLvl: logrus.TraceLevel, + ddlog.DebugLvl: logrus.DebugLevel, + ddlog.InfoLvl: logrus.InfoLevel, + ddlog.WarnLvl: logrus.WarnLevel, + ddlog.ErrorLvl: logrus.ErrorLevel, + ddlog.CriticalLvl: logrus.FatalLevel, } // GetLogrusLevel returns logrus log level from log.GetLogLevel() diff --git a/comp/networkpath/npcollector/npcollectorimpl/npcollector_test.go b/comp/networkpath/npcollector/npcollectorimpl/npcollector_test.go index 6b6416e0d47ae..a5bdcd86f7e4f 100644 --- a/comp/networkpath/npcollector/npcollectorimpl/npcollector_test.go +++ b/comp/networkpath/npcollector/npcollectorimpl/npcollector_test.go @@ -19,7 +19,6 @@ import ( "time" model "github.com/DataDog/agent-payload/v5/process" - "github.com/cihub/seelog" "github.com/golang/mock/gomock" "github.com/stretchr/testify/assert" @@ -46,7 +45,7 @@ func Test_NpCollector_StartAndStop(t *testing.T) { var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") + l, err := utillog.LoggerFromWriterWithMinLevelAndFormat(w, utillog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") assert.Nil(t, err) utillog.SetupLogger(l, "debug") @@ -510,7 +509,7 @@ func Test_npCollectorImpl_ScheduleConns(t *testing.T) { var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") + l, err := utillog.LoggerFromWriterWithMinLevelAndFormat(w, utillog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") assert.Nil(t, err) utillog.SetupLogger(l, "debug") @@ -564,7 +563,7 @@ func Test_npCollectorImpl_stopWorker(t *testing.T) { var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") + l, err := utillog.LoggerFromWriterWithMinLevelAndFormat(w, utillog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") assert.Nil(t, err) utillog.SetupLogger(l, "debug") @@ -759,7 +758,7 @@ func Benchmark_npCollectorImpl_ScheduleConns(b *testing.B) { assert.Nil(b, err) defer file.Close() w := bufio.NewWriter(file) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg\n") + l, err := utillog.LoggerFromWriterWithMinLevelAndFormat(w, utillog.DebugLvl, "[%LEVEL] %FuncShort: %Msg\n") assert.Nil(b, err) utillog.SetupLogger(l, "debug") defer w.Flush() diff --git a/comp/networkpath/npcollector/npcollectorimpl/pathteststore/pathteststore_test.go b/comp/networkpath/npcollector/npcollectorimpl/pathteststore/pathteststore_test.go index a758c0664fa14..bf809bd31d9b6 100644 --- a/comp/networkpath/npcollector/npcollectorimpl/pathteststore/pathteststore_test.go +++ b/comp/networkpath/npcollector/npcollectorimpl/pathteststore/pathteststore_test.go @@ -12,7 +12,6 @@ import ( "testing" "time" - "github.com/cihub/seelog" "github.com/stretchr/testify/assert" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" @@ -87,7 +86,7 @@ func Test_pathtestStore_add(t *testing.T) { t.Run(tc.name, func(t *testing.T) { var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") + l, err := utillog.LoggerFromWriterWithMinLevelAndFormat(w, utillog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") assert.Nil(t, err) utillog.SetupLogger(l, "debug") diff --git a/comp/remote-config/rcclient/rcclientimpl/rcclient_test.go b/comp/remote-config/rcclient/rcclientimpl/rcclient_test.go index cf5a3cb093139..f6974273d3325 100644 --- a/comp/remote-config/rcclient/rcclientimpl/rcclient_test.go +++ b/comp/remote-config/rcclient/rcclientimpl/rcclient_test.go @@ -25,7 +25,6 @@ import ( "github.com/DataDog/datadog-agent/pkg/util/fxutil" pkglog "github.com/DataDog/datadog-agent/pkg/util/log" - "github.com/cihub/seelog" "github.com/stretchr/testify/assert" "go.uber.org/fx" ) @@ -96,7 +95,7 @@ func TestRCClientCreate(t *testing.T) { } func TestAgentConfigCallback(t *testing.T) { - pkglog.SetupLogger(seelog.Default, "info") + pkglog.SetupLogger(pkglog.Default(), "info") cfg := configmock.New(t) rc := fxutil.Test[rcclient.Component](t, diff --git a/comp/trace/config/config_test.go b/comp/trace/config/config_test.go index f428a7da51bc4..9c9d45eb284ac 100644 --- a/comp/trace/config/config_test.go +++ b/comp/trace/config/config_test.go @@ -23,7 +23,6 @@ import ( "text/template" "time" - "github.com/cihub/seelog" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "go.uber.org/fx" @@ -136,9 +135,8 @@ func TestSplitTagRegex(t *testing.T) { var b bytes.Buffer w := bufio.NewWriter(&b) - logger, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %Msg") + logger, err := log.LoggerFromWriterWithMinLevelAndFormat(w, log.DebugLvl, "[%LEVEL] %Msg") assert.Nil(t, err) - seelog.ReplaceLogger(logger) //nolint:errcheck log.SetupLogger(logger, "debug") assert.Nil(t, splitTagRegex(bad.tag)) w.Flush() diff --git a/pkg/clusteragent/api/leader_forwarder.go b/pkg/clusteragent/api/leader_forwarder.go index a5989f62d112b..94d054d6508b5 100644 --- a/pkg/clusteragent/api/leader_forwarder.go +++ b/pkg/clusteragent/api/leader_forwarder.go @@ -18,8 +18,7 @@ import ( "sync" "time" - "github.com/cihub/seelog" - + "github.com/DataDog/datadog-agent/pkg/util/log" pkglogsetup "github.com/DataDog/datadog-agent/pkg/util/log/setup" ) @@ -43,7 +42,7 @@ type LeaderForwarder struct { // NewLeaderForwarder initializes a new LeaderForwarder instance and is used for test purposes func NewLeaderForwarder(apiPort, maxConnections int) *LeaderForwarder { // Use a stack depth of 4 on top of the default one to get a relevant filename in the stdlib - logWriter, _ := pkglogsetup.NewLogWriter(4, seelog.DebugLvl) + logWriter, _ := pkglogsetup.NewLogWriter(4, log.DebugLvl) return &LeaderForwarder{ apiPort: strconv.Itoa(apiPort), transport: &http.Transport{ diff --git a/pkg/collector/corechecks/ebpf/ebpf.go b/pkg/collector/corechecks/ebpf/ebpf.go index 934cb5bab4f12..1638f60cef9d4 100644 --- a/pkg/collector/corechecks/ebpf/ebpf.go +++ b/pkg/collector/corechecks/ebpf/ebpf.go @@ -13,7 +13,6 @@ import ( "net/http" "strings" - "github.com/cihub/seelog" "gopkg.in/yaml.v2" sysprobeclient "github.com/DataDog/datadog-agent/cmd/system-probe/api/client" @@ -152,7 +151,7 @@ func (m *EBPFCheck) Run() error { "module:" + progInfo.Module, } var debuglogs []string - if log.ShouldLog(seelog.TraceLvl) { + if log.ShouldLog(log.TraceLvl) { debuglogs = []string{"program=" + progInfo.Name, "type=" + progInfo.Type.String()} } @@ -166,7 +165,7 @@ func (m *EBPFCheck) Run() error { continue } sender.Gauge("ebpf.programs."+k, v, "", tags) - if log.ShouldLog(seelog.TraceLvl) { + if log.ShouldLog(log.TraceLvl) { debuglogs = append(debuglogs, fmt.Sprintf("%s=%.0f", k, v)) } } @@ -184,12 +183,12 @@ func (m *EBPFCheck) Run() error { continue } sender.MonotonicCountWithFlushFirstValue("ebpf.programs."+k, v, "", tags, true) - if log.ShouldLog(seelog.TraceLvl) { + if log.ShouldLog(log.TraceLvl) { debuglogs = append(debuglogs, fmt.Sprintf("%s=%.0f", k, v)) } } - if log.ShouldLog(seelog.TraceLvl) { + if log.ShouldLog(log.TraceLvl) { log.Tracef("ebpf check: %s", strings.Join(debuglogs, " ")) } } diff --git a/pkg/collector/corechecks/ebpf/probe/ebpfcheck/probe.go b/pkg/collector/corechecks/ebpf/probe/ebpfcheck/probe.go index a25d5d49db2da..d09baa968c0a5 100644 --- a/pkg/collector/corechecks/ebpf/probe/ebpfcheck/probe.go +++ b/pkg/collector/corechecks/ebpf/probe/ebpfcheck/probe.go @@ -20,7 +20,6 @@ import ( "unsafe" manager "github.com/DataDog/ebpf-manager" - "github.com/cihub/seelog" "github.com/cilium/ebpf" "github.com/cilium/ebpf/asm" "github.com/cilium/ebpf/features" @@ -318,7 +317,7 @@ func (k *Probe) getProgramStats(stats *model.EBPFStats) error { stats.Programs = append(stats.Programs, ps) } - if log.ShouldLog(seelog.TraceLvl) { + if log.ShouldLog(log.TraceLvl) { log.Tracef("found %d programs", len(stats.Programs)) for _, ps := range stats.Programs { log.Tracef("name=%s prog_id=%d type=%s", ps.Name, ps.ID, ps.Type.String()) diff --git a/pkg/collector/corechecks/snmp/internal/checkconfig/config.go b/pkg/collector/corechecks/snmp/internal/checkconfig/config.go index 1dc318f384825..9084d26e664e7 100644 --- a/pkg/collector/corechecks/snmp/internal/checkconfig/config.go +++ b/pkg/collector/corechecks/snmp/internal/checkconfig/config.go @@ -17,7 +17,6 @@ import ( "strings" "time" - "github.com/cihub/seelog" "gopkg.in/yaml.v2" "github.com/DataDog/datadog-agent/comp/core/autodiscovery/integration" @@ -227,7 +226,7 @@ func (c *CheckConfig) SetProfile(profile string) error { c.ProfileDef = &definition c.Profile = profile - if log.ShouldLog(seelog.DebugLvl) { + if log.ShouldLog(log.DebugLvl) { profileDefJSON, _ := json.Marshal(definition) log.Debugf("Profile content `%s`: %s", profile, string(profileDefJSON)) } diff --git a/pkg/collector/corechecks/snmp/internal/devicecheck/devicecheck.go b/pkg/collector/corechecks/snmp/internal/devicecheck/devicecheck.go index 8737e5845378f..f63d0a4c33791 100644 --- a/pkg/collector/corechecks/snmp/internal/devicecheck/devicecheck.go +++ b/pkg/collector/corechecks/snmp/internal/devicecheck/devicecheck.go @@ -15,7 +15,6 @@ import ( "strings" "time" - "github.com/cihub/seelog" "go.uber.org/atomic" "github.com/DataDog/datadog-agent/pkg/collector/externalhost" @@ -284,7 +283,7 @@ func (d *DeviceCheck) getValuesAndTags() (bool, []string, *valuestore.ResultValu checkErrors = append(checkErrors, fmt.Sprintf("check device reachable: failed: %s", err)) } else { deviceReachable = true - if log.ShouldLog(seelog.DebugLvl) { + if log.ShouldLog(log.DebugLvl) { log.Debugf("check device reachable: success: %v", gosnmplib.PacketAsString(getNextValue)) } } @@ -298,7 +297,7 @@ func (d *DeviceCheck) getValuesAndTags() (bool, []string, *valuestore.ResultValu tags = append(tags, d.config.ProfileTags...) valuesStore, err := fetch.Fetch(d.session, d.config) - if log.ShouldLog(seelog.DebugLvl) { + if log.ShouldLog(log.DebugLvl) { log.Debugf("fetched values: %v", valuestore.ResultValueStoreAsString(valuesStore)) } @@ -352,7 +351,7 @@ func (d *DeviceCheck) detectAvailableMetrics() ([]profiledefinition.MetricsConfi log.Debugf("fetched OIDs: %v", fetchedOIDs) root := common.BuildOidTrie(fetchedOIDs) - if log.ShouldLog(seelog.DebugLvl) { + if log.ShouldLog(log.DebugLvl) { root.DebugPrint() } diff --git a/pkg/collector/corechecks/snmp/internal/fetch/fetch_column.go b/pkg/collector/corechecks/snmp/internal/fetch/fetch_column.go index 9d06254d86156..2ebfce8c4acd5 100644 --- a/pkg/collector/corechecks/snmp/internal/fetch/fetch_column.go +++ b/pkg/collector/corechecks/snmp/internal/fetch/fetch_column.go @@ -9,7 +9,6 @@ import ( "fmt" "sort" - "github.com/cihub/seelog" "github.com/gosnmp/gosnmp" "github.com/DataDog/datadog-agent/pkg/util/log" @@ -105,7 +104,7 @@ func getResults(sess session.Session, requestOids []string, bulkMaxRepetitions u return nil, fmt.Errorf("fetch column: failed getting oids `%v` using GetNext: %s", requestOids, err) } results = getNextResults - if log.ShouldLog(seelog.DebugLvl) { + if log.ShouldLog(log.DebugLvl) { log.Debugf("fetch column: GetNext results: %v", gosnmplib.PacketAsString(results)) } } else { @@ -115,7 +114,7 @@ func getResults(sess session.Session, requestOids []string, bulkMaxRepetitions u return nil, fmt.Errorf("fetch column: failed getting oids `%v` using GetBulk: %s", requestOids, err) } results = getBulkResults - if log.ShouldLog(seelog.DebugLvl) { + if log.ShouldLog(log.DebugLvl) { log.Debugf("fetch column: GetBulk results: %v", gosnmplib.PacketAsString(results)) } } diff --git a/pkg/collector/corechecks/snmp/internal/fetch/fetch_scalar.go b/pkg/collector/corechecks/snmp/internal/fetch/fetch_scalar.go index 0fc948b17a061..d7b219ad72c53 100644 --- a/pkg/collector/corechecks/snmp/internal/fetch/fetch_scalar.go +++ b/pkg/collector/corechecks/snmp/internal/fetch/fetch_scalar.go @@ -10,7 +10,6 @@ import ( "sort" "strings" - "github.com/cihub/seelog" "github.com/gosnmp/gosnmp" "github.com/DataDog/datadog-agent/pkg/util/log" @@ -127,7 +126,7 @@ func doDoFetchScalarOids(session session.Session, oids []string) (*gosnmp.SnmpPa log.Debugf("fetch scalar: error getting oids `%v`: %v", oids, err) return nil, fmt.Errorf("fetch scalar: error getting oids `%v`: %v", oids, err) } - if log.ShouldLog(seelog.DebugLvl) { + if log.ShouldLog(log.DebugLvl) { log.Debugf("fetch scalar: results: %s", gosnmplib.PacketAsString(results)) } return results, nil diff --git a/pkg/collector/corechecks/snmp/internal/fetch/fetch_test.go b/pkg/collector/corechecks/snmp/internal/fetch/fetch_test.go index b615d40681dc0..c0bf331b2f7e5 100644 --- a/pkg/collector/corechecks/snmp/internal/fetch/fetch_test.go +++ b/pkg/collector/corechecks/snmp/internal/fetch/fetch_test.go @@ -12,7 +12,6 @@ import ( "strings" "testing" - "github.com/cihub/seelog" "github.com/gosnmp/gosnmp" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -775,7 +774,7 @@ func Test_fetchValues_errors(t *testing.T) { func Test_fetchColumnOids_alreadyProcessed(t *testing.T) { var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") + l, err := log.LoggerFromWriterWithMinLevelAndFormat(w, log.DebugLvl, "[%LEVEL] %FuncShort: %Msg") require.NoError(t, err) log.SetupLogger(l, "debug") diff --git a/pkg/collector/corechecks/snmp/internal/profile/profile_resolver_test.go b/pkg/collector/corechecks/snmp/internal/profile/profile_resolver_test.go index d0e03a880b928..1b744b66f38f4 100644 --- a/pkg/collector/corechecks/snmp/internal/profile/profile_resolver_test.go +++ b/pkg/collector/corechecks/snmp/internal/profile/profile_resolver_test.go @@ -13,7 +13,6 @@ import ( "strings" "testing" - "github.com/cihub/seelog" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -147,7 +146,7 @@ func Test_resolveProfiles(t *testing.T) { t.Run(tt.name, func(t *testing.T) { var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") + l, err := log.LoggerFromWriterWithMinLevelAndFormat(w, log.DebugLvl, "[%LEVEL] %FuncShort: %Msg") assert.Nil(t, err) log.SetupLogger(l, "debug") diff --git a/pkg/collector/corechecks/snmp/internal/profile/profile_yaml_test.go b/pkg/collector/corechecks/snmp/internal/profile/profile_yaml_test.go index 81d7513ab9fa7..b617764b44cb2 100644 --- a/pkg/collector/corechecks/snmp/internal/profile/profile_yaml_test.go +++ b/pkg/collector/corechecks/snmp/internal/profile/profile_yaml_test.go @@ -13,13 +13,11 @@ import ( "strings" "testing" - "github.com/cihub/seelog" assert "github.com/stretchr/testify/require" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" - "github.com/DataDog/datadog-agent/pkg/util/log" - "github.com/DataDog/datadog-agent/pkg/networkdevice/profile/profiledefinition" + "github.com/DataDog/datadog-agent/pkg/util/log" ) func getMetricFromProfile(p profiledefinition.ProfileDefinition, metricName string) *profiledefinition.MetricsConfig { @@ -124,7 +122,7 @@ func Test_loadYamlProfiles_invalidDir(t *testing.T) { func Test_loadYamlProfiles_invalidExtendProfile(t *testing.T) { var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") + l, err := log.LoggerFromWriterWithMinLevelAndFormat(w, log.DebugLvl, "[%LEVEL] %FuncShort: %Msg") assert.Nil(t, err) log.SetupLogger(l, "debug") @@ -145,7 +143,7 @@ func Test_loadYamlProfiles_invalidExtendProfile(t *testing.T) { func Test_loadYamlProfiles_userAndDefaultProfileFolderDoesNotExist(t *testing.T) { var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") + l, err := log.LoggerFromWriterWithMinLevelAndFormat(w, log.DebugLvl, "[%LEVEL] %FuncShort: %Msg") assert.Nil(t, err) log.SetupLogger(l, "debug") @@ -168,7 +166,7 @@ func Test_loadYamlProfiles_validAndInvalidProfiles(t *testing.T) { // Valid profiles should be returned even if some profiles are invalid var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") + l, err := log.LoggerFromWriterWithMinLevelAndFormat(w, log.DebugLvl, "[%LEVEL] %FuncShort: %Msg") assert.Nil(t, err) log.SetupLogger(l, "debug") diff --git a/pkg/collector/corechecks/snmp/internal/report/report_device_metadata_test.go b/pkg/collector/corechecks/snmp/internal/report/report_device_metadata_test.go index 92b745060bb59..2cff0364b107f 100644 --- a/pkg/collector/corechecks/snmp/internal/report/report_device_metadata_test.go +++ b/pkg/collector/corechecks/snmp/internal/report/report_device_metadata_test.go @@ -12,7 +12,6 @@ import ( "testing" "time" - "github.com/cihub/seelog" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" @@ -31,7 +30,7 @@ import ( func Test_metricSender_reportNetworkDeviceMetadata_withoutInterfaces(t *testing.T) { var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.TraceLvl, "[%LEVEL] %FuncShort: %Msg") + l, err := log.LoggerFromWriterWithMinLevelAndFormat(w, log.TraceLvl, "[%LEVEL] %FuncShort: %Msg") assert.Nil(t, err) log.SetupLogger(l, "debug") diff --git a/pkg/collector/corechecks/snmp/internal/report/report_metrics_test.go b/pkg/collector/corechecks/snmp/internal/report/report_metrics_test.go index bf5ea9de7a72e..8d11ffc5e08a4 100644 --- a/pkg/collector/corechecks/snmp/internal/report/report_metrics_test.go +++ b/pkg/collector/corechecks/snmp/internal/report/report_metrics_test.go @@ -11,7 +11,6 @@ import ( "strings" "testing" - "github.com/cihub/seelog" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" @@ -316,7 +315,7 @@ func TestSendMetric(t *testing.T) { var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") + l, err := log.LoggerFromWriterWithMinLevelAndFormat(w, log.DebugLvl, "[%LEVEL] %FuncShort: %Msg") assert.Nil(t, err) log.SetupLogger(l, "debug") @@ -453,7 +452,7 @@ func Test_metricSender_reportMetrics(t *testing.T) { var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") + l, err := log.LoggerFromWriterWithMinLevelAndFormat(w, log.DebugLvl, "[%LEVEL] %FuncShort: %Msg") assert.Nil(t, err) log.SetupLogger(l, "debug") @@ -640,7 +639,7 @@ func Test_metricSender_getCheckInstanceMetricTags(t *testing.T) { var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") + l, err := log.LoggerFromWriterWithMinLevelAndFormat(w, log.DebugLvl, "[%LEVEL] %FuncShort: %Msg") assert.Nil(t, err) log.SetupLogger(l, "debug") diff --git a/pkg/collector/corechecks/snmp/internal/report/report_utils_test.go b/pkg/collector/corechecks/snmp/internal/report/report_utils_test.go index de9fefb130581..6b530f3f7d763 100644 --- a/pkg/collector/corechecks/snmp/internal/report/report_utils_test.go +++ b/pkg/collector/corechecks/snmp/internal/report/report_utils_test.go @@ -12,7 +12,6 @@ import ( "strings" "testing" - "github.com/cihub/seelog" "github.com/stretchr/testify/assert" "gopkg.in/yaml.v2" @@ -772,7 +771,7 @@ metric_tags: var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") + l, err := log.LoggerFromWriterWithMinLevelAndFormat(w, log.DebugLvl, "[%LEVEL] %FuncShort: %Msg") assert.Nil(t, err) log.SetupLogger(l, "debug") @@ -1091,7 +1090,7 @@ func Test_getContantMetricValues(t *testing.T) { var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") + l, err := log.LoggerFromWriterWithMinLevelAndFormat(w, log.DebugLvl, "[%LEVEL] %FuncShort: %Msg") assert.Nil(t, err) log.SetupLogger(l, "debug") diff --git a/pkg/collector/corechecks/snmp/internal/session/session.go b/pkg/collector/corechecks/snmp/internal/session/session.go index c39518d0a3f0a..1d0995c1ed3c1 100644 --- a/pkg/collector/corechecks/snmp/internal/session/session.go +++ b/pkg/collector/corechecks/snmp/internal/session/session.go @@ -11,7 +11,6 @@ import ( "strings" "time" - "github.com/cihub/seelog" "github.com/gosnmp/gosnmp" "github.com/DataDog/datadog-agent/pkg/snmp/gosnmplib" @@ -137,7 +136,7 @@ func NewGosnmpSession(config *checkconfig.CheckConfig) (Session, error) { if err != nil { log.Warnf("failed to get logger: %s", err) } else { - if lvl == seelog.TraceLvl { + if lvl == log.TraceLvl { TraceLevelLogWriter := gosnmplib.TraceLevelLogWriter{} s.gosnmpInst.Logger = gosnmp.NewLogger(stdlog.New(&TraceLevelLogWriter, "", stdlog.Lshortfile)) } diff --git a/pkg/collector/corechecks/snmp/internal/session/session_test.go b/pkg/collector/corechecks/snmp/internal/session/session_test.go index 1042bc7b5de28..3986365f01e59 100644 --- a/pkg/collector/corechecks/snmp/internal/session/session_test.go +++ b/pkg/collector/corechecks/snmp/internal/session/session_test.go @@ -14,7 +14,6 @@ import ( "testing" "time" - "github.com/cihub/seelog" "github.com/gosnmp/gosnmp" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -289,7 +288,7 @@ func Test_snmpSession_traceLog_disabled(t *testing.T) { } var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.InfoLvl, "[%LEVEL] %FuncShort: %Msg") + l, err := log.LoggerFromWriterWithMinLevelAndFormat(w, log.InfoLvl, "[%LEVEL] %FuncShort: %Msg") assert.Nil(t, err) log.SetupLogger(l, "info") @@ -306,7 +305,7 @@ func Test_snmpSession_traceLog_enabled(t *testing.T) { } var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.TraceLvl, "[%LEVEL] %FuncShort: %Msg") + l, err := log.LoggerFromWriterWithMinLevelAndFormat(w, log.TraceLvl, "[%LEVEL] %FuncShort: %Msg") assert.Nil(t, err) log.SetupLogger(l, "trace") diff --git a/pkg/collector/python/memory.go b/pkg/collector/python/memory.go index 38060ef37b462..3d77d1bdd31bb 100644 --- a/pkg/collector/python/memory.go +++ b/pkg/collector/python/memory.go @@ -14,8 +14,6 @@ import ( "sync" "unsafe" - "github.com/cihub/seelog" - pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/telemetry" "github.com/DataDog/datadog-agent/pkg/util/log" @@ -76,7 +74,7 @@ func MemoryTracker(ptr unsafe.Pointer, sz C.size_t, op C.rtloader_mem_ops_t) { // but from profiling, even passing these vars through as arguments allocates to the heap. // This is an optimization to avoid even evaluating the `Tracef` call if the trace log // level is not enabled. - if log.ShouldLog(seelog.TraceLvl) { + if log.ShouldLog(log.TraceLvl) { log.Tracef("Memory Tracker - ptr: %v, sz: %v, op: %v", ptr, sz, op) } switch op { @@ -94,7 +92,7 @@ func MemoryTracker(ptr unsafe.Pointer, sz C.size_t, op C.rtloader_mem_ops_t) { if !ok { log.Debugf("untracked memory was attempted to be freed - set trace level for details") lvl, err := log.GetLogLevel() - if err == nil && lvl == seelog.TraceLvl { + if err == nil && lvl == log.TraceLvl { stack := string(debug.Stack()) log.Tracef("Memory Tracker - stacktrace: \n%s", stack) } diff --git a/pkg/ebpf/ebpftest/fail_log.go b/pkg/ebpf/ebpftest/fail_log.go index ccc8df5e112b4..15c98ef098188 100644 --- a/pkg/ebpf/ebpftest/fail_log.go +++ b/pkg/ebpf/ebpftest/fail_log.go @@ -10,6 +10,7 @@ import ( "strings" "testing" + //nolint:depguard // creating a custom logger for testing "github.com/cihub/seelog" "github.com/DataDog/datadog-agent/pkg/util/log" @@ -21,7 +22,7 @@ func FailLogLevel(t testing.TB, level string) { inner := &failureTestLogger{TB: t} t.Cleanup(func() { t.Helper() - log.SetupLogger(seelog.Default, "off") + log.SetupLogger(log.Default(), "off") inner.outputIfFailed() }) logger, err := seelog.LoggerFromCustomReceiver(inner) diff --git a/pkg/ebpf/ebpftest/log.go b/pkg/ebpf/ebpftest/log.go index a13f7e14d9d34..06b1fb11fb707 100644 --- a/pkg/ebpf/ebpftest/log.go +++ b/pkg/ebpf/ebpftest/log.go @@ -9,6 +9,7 @@ import ( "strings" "testing" + //nolint:depguard // creating a custom logger for testing "github.com/cihub/seelog" "github.com/DataDog/datadog-agent/pkg/util/log" @@ -17,7 +18,7 @@ import ( // LogLevel sets the logger level for this test only func LogLevel(t testing.TB, level string) { t.Cleanup(func() { - log.SetupLogger(seelog.Default, "off") + log.SetupLogger(log.Default(), "off") }) logger, err := seelog.LoggerFromCustomReceiver(testLogger{t}) if err != nil { diff --git a/pkg/ebpf/map_cleaner_test.go b/pkg/ebpf/map_cleaner_test.go index 635c882a36bed..a9dfdbd1cb32b 100644 --- a/pkg/ebpf/map_cleaner_test.go +++ b/pkg/ebpf/map_cleaner_test.go @@ -12,7 +12,6 @@ import ( "testing" "time" - "github.com/cihub/seelog" "github.com/cilium/ebpf" "github.com/cilium/ebpf/rlimit" "github.com/stretchr/testify/assert" @@ -26,7 +25,7 @@ func TestMain(m *testing.M) { if logLevel == "" { logLevel = "warn" } - log.SetupLogger(seelog.Default, logLevel) + log.SetupLogger(log.Default(), logLevel) os.Exit(m.Run()) } diff --git a/pkg/ebpf/verifier/stats_test.go b/pkg/ebpf/verifier/stats_test.go index 9af6a7c3f4cc2..fca00b8840f16 100644 --- a/pkg/ebpf/verifier/stats_test.go +++ b/pkg/ebpf/verifier/stats_test.go @@ -19,7 +19,6 @@ import ( "github.com/DataDog/datadog-agent/pkg/util/kernel" "github.com/DataDog/datadog-agent/pkg/util/log" - "github.com/cihub/seelog" "github.com/cilium/ebpf" "github.com/cilium/ebpf/rlimit" "github.com/stretchr/testify/assert" @@ -37,7 +36,7 @@ func TestMain(m *testing.M) { if logLevel == "" { logLevel = "warn" } - log.SetupLogger(seelog.Default, logLevel) + log.SetupLogger(log.Default(), logLevel) os.Exit(m.Run()) } diff --git a/pkg/gohai/cpu/util_linux.go b/pkg/gohai/cpu/util_linux.go index 129801f8bdaf2..fc82760141e56 100644 --- a/pkg/gohai/cpu/util_linux.go +++ b/pkg/gohai/cpu/util_linux.go @@ -12,7 +12,7 @@ import ( "strconv" "strings" - log "github.com/cihub/seelog" + "github.com/DataDog/datadog-agent/pkg/util/log" ) var prefix = "" // only used for testing diff --git a/pkg/gohai/filesystem/filesystem_nix.go b/pkg/gohai/filesystem/filesystem_nix.go index 27f5094d1e282..f4171904f60bd 100644 --- a/pkg/gohai/filesystem/filesystem_nix.go +++ b/pkg/gohai/filesystem/filesystem_nix.go @@ -10,10 +10,10 @@ import ( "fmt" "strings" + "github.com/moby/sys/mountinfo" "golang.org/x/sys/unix" - log "github.com/cihub/seelog" - "github.com/moby/sys/mountinfo" + "github.com/DataDog/datadog-agent/pkg/util/log" ) type fsInfoGetter func(*mountinfo.Info) (uint64, error) diff --git a/pkg/gohai/go.mod b/pkg/gohai/go.mod index c0363c2bcc074..fb749217ba632 100644 --- a/pkg/gohai/go.mod +++ b/pkg/gohai/go.mod @@ -6,7 +6,6 @@ go 1.23.0 require ( github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 - github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 github.com/moby/sys/mountinfo v0.7.2 github.com/shirou/gopsutil/v3 v3.24.5 github.com/stretchr/testify v1.10.0 @@ -16,6 +15,7 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect + github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect diff --git a/pkg/gohai/memory/memory_linux.go b/pkg/gohai/memory/memory_linux.go index 356d9dee67d9e..822a082fc4aee 100644 --- a/pkg/gohai/memory/memory_linux.go +++ b/pkg/gohai/memory/memory_linux.go @@ -14,7 +14,7 @@ import ( "strings" "github.com/DataDog/datadog-agent/pkg/gohai/utils" - log "github.com/cihub/seelog" + "github.com/DataDog/datadog-agent/pkg/util/log" ) func parseMemoryInfo(reader io.Reader) (totalBytes utils.Value[uint64], swapTotalKb utils.Value[uint64], err error) { diff --git a/pkg/gohai/platform/platform_darwin.go b/pkg/gohai/platform/platform_darwin.go index e1fb7ed154923..a28bdf3ebead5 100644 --- a/pkg/gohai/platform/platform_darwin.go +++ b/pkg/gohai/platform/platform_darwin.go @@ -9,9 +9,10 @@ import ( "errors" "runtime" - "github.com/DataDog/datadog-agent/pkg/gohai/utils" - log "github.com/cihub/seelog" "golang.org/x/sys/unix" + + "github.com/DataDog/datadog-agent/pkg/gohai/utils" + "github.com/DataDog/datadog-agent/pkg/util/log" ) // getUnameProcessor is similar to `uname -p` diff --git a/pkg/gohai/processes/gops/process_info.go b/pkg/gohai/processes/gops/process_info.go index 8f21f07ba5dc8..9f830d935ea47 100644 --- a/pkg/gohai/processes/gops/process_info.go +++ b/pkg/gohai/processes/gops/process_info.go @@ -12,12 +12,10 @@ import ( "fmt" "runtime" - // 3p - log "github.com/cihub/seelog" - - // project "github.com/shirou/gopsutil/v3/mem" "github.com/shirou/gopsutil/v3/process" + + "github.com/DataDog/datadog-agent/pkg/util/log" ) // ProcessInfo contains information about a single process diff --git a/pkg/logs/tailers/windowsevent/tailer_test.go b/pkg/logs/tailers/windowsevent/tailer_test.go index 5c8c635314edb..8fb0c2311d49a 100644 --- a/pkg/logs/tailers/windowsevent/tailer_test.go +++ b/pkg/logs/tailers/windowsevent/tailer_test.go @@ -13,8 +13,6 @@ import ( "testing" "time" - "github.com/cihub/seelog" - pkglog "github.com/DataDog/datadog-agent/pkg/util/log" "github.com/cenkalti/backoff" @@ -61,7 +59,7 @@ func TestReadEventsSuite(t *testing.T) { func (s *ReadEventsSuite) SetupSuite() { // Enable logger if false { - pkglog.SetupLogger(seelog.Default, "debug") + pkglog.SetupLogger(pkglog.Default(), "debug") } s.ti = eventlog_test.GetAPITesterByName(s.testAPI, s.T()) diff --git a/pkg/network/encoding/marshal/usm.go b/pkg/network/encoding/marshal/usm.go index bcae7a12ecc12..437a0ba4b0d64 100644 --- a/pkg/network/encoding/marshal/usm.go +++ b/pkg/network/encoding/marshal/usm.go @@ -9,8 +9,6 @@ import ( "fmt" "sync" - "github.com/cihub/seelog" - pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/network" "github.com/DataDog/datadog-agent/pkg/network/protocols/telemetry" @@ -192,7 +190,7 @@ func (bc *USMConnectionIndex[K, V]) Close() { var total int for key, value := range bc.data { if !value.claimed { - if log.ShouldLog(seelog.TraceLvl) { + if log.ShouldLog(log.TraceLvl) { log.Tracef("key %+v unclaimed", key) } total += len(value.Data) diff --git a/pkg/network/go/bininspect/symbols.go b/pkg/network/go/bininspect/symbols.go index 6b5f135179fe1..8549fde56f406 100644 --- a/pkg/network/go/bininspect/symbols.go +++ b/pkg/network/go/bininspect/symbols.go @@ -14,8 +14,6 @@ import ( "io" "math" - "github.com/cihub/seelog" - "github.com/DataDog/datadog-agent/pkg/util/common" "github.com/DataDog/datadog-agent/pkg/util/log" "github.com/DataDog/datadog-agent/pkg/util/safeelf" @@ -222,7 +220,7 @@ func getSymbols(f *safeelf.File, typ safeelf.SectionType, filter symbolFilter) ( // returned. func GetAllSymbolsByName(elfFile *safeelf.File, filter symbolFilter) (map[string]safeelf.Symbol, error) { regularSymbols, regularSymbolsErr := getSymbols(elfFile, safeelf.SHT_SYMTAB, filter) - if regularSymbolsErr != nil && log.ShouldLog(seelog.TraceLvl) { + if regularSymbolsErr != nil && log.ShouldLog(log.TraceLvl) { log.Tracef("Failed getting regular symbols of elf file: %s", regularSymbolsErr) } @@ -231,7 +229,7 @@ func GetAllSymbolsByName(elfFile *safeelf.File, filter symbolFilter) (map[string numWanted := filter.getNumWanted() if len(regularSymbols) != numWanted { dynamicSymbols, dynamicSymbolsErr = getSymbols(elfFile, safeelf.SHT_DYNSYM, filter) - if dynamicSymbolsErr != nil && log.ShouldLog(seelog.TraceLvl) { + if dynamicSymbolsErr != nil && log.ShouldLog(log.TraceLvl) { log.Tracef("Failed getting dynamic symbols of elf file: %s", dynamicSymbolsErr) } } diff --git a/pkg/network/netlink/conntrack_integration_test.go b/pkg/network/netlink/conntrack_integration_test.go index 2788153c3f325..46049481e9945 100644 --- a/pkg/network/netlink/conntrack_integration_test.go +++ b/pkg/network/netlink/conntrack_integration_test.go @@ -13,7 +13,6 @@ import ( "os" "testing" - "github.com/cihub/seelog" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -31,7 +30,7 @@ func TestMain(m *testing.M) { if logLevel == "" { logLevel = "warn" } - log.SetupLogger(seelog.Default, logLevel) + log.SetupLogger(log.Default(), logLevel) os.Exit(m.Run()) } diff --git a/pkg/network/netlink/conntracker.go b/pkg/network/netlink/conntracker.go index 901e763bf2e4b..16e9ff3a4f8c6 100644 --- a/pkg/network/netlink/conntracker.go +++ b/pkg/network/netlink/conntracker.go @@ -20,7 +20,6 @@ import ( "github.com/syndtr/gocapability/capability" "golang.org/x/sys/unix" - "github.com/cihub/seelog" "github.com/hashicorp/golang-lru/v2/simplelru" telemetryComp "github.com/DataDog/datadog-agent/comp/core/telemetry" @@ -411,7 +410,7 @@ func (cc *conntrackCache) Add(c Con, orphan bool) (evicts int) { } } - if log.ShouldLog(seelog.TraceLvl) { + if log.ShouldLog(log.TraceLvl) { log.Tracef("%s", c) } @@ -433,7 +432,7 @@ func (cc *conntrackCache) removeOrphans(now time.Time) (removed int64) { cc.cache.Remove(o.key) removed++ - if log.ShouldLog(seelog.TraceLvl) { + if log.ShouldLog(log.TraceLvl) { log.Tracef("removed orphan %+v", o.key) } } diff --git a/pkg/network/netlink/consumer.go b/pkg/network/netlink/consumer.go index ff3d2950e809d..c912db22715e5 100644 --- a/pkg/network/netlink/consumer.go +++ b/pkg/network/netlink/consumer.go @@ -13,7 +13,6 @@ import ( "strings" "syscall" - "github.com/cihub/seelog" "github.com/mdlayher/netlink" "github.com/pkg/errors" "github.com/vishvananda/netns" @@ -205,7 +204,7 @@ func (c *Consumer) isPeerNS(conn *netlink.Conn, ns netns.NsHandle) bool { return false } - if log.ShouldLog(seelog.TraceLvl) { + if log.ShouldLog(log.TraceLvl) { log.Tracef("netlink reply: %v", msgs) } diff --git a/pkg/network/port_test.go b/pkg/network/port_test.go index 995a4e8ef0a2f..067417ae79d48 100644 --- a/pkg/network/port_test.go +++ b/pkg/network/port_test.go @@ -17,7 +17,6 @@ import ( "strconv" "testing" - "github.com/cihub/seelog" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/vishvananda/netns" @@ -32,7 +31,7 @@ func TestMain(m *testing.M) { if logLevel == "" { logLevel = "warn" } - log.SetupLogger(seelog.Default, logLevel) + log.SetupLogger(log.Default(), logLevel) os.Exit(m.Run()) } diff --git a/pkg/network/protocols/events/consumer.go b/pkg/network/protocols/events/consumer.go index dea561ee8297f..eb00d29678b65 100644 --- a/pkg/network/protocols/events/consumer.go +++ b/pkg/network/protocols/events/consumer.go @@ -13,8 +13,6 @@ import ( "sync" "unsafe" - "github.com/cihub/seelog" - manager "github.com/DataDog/ebpf-manager" ddebpf "github.com/DataDog/datadog-agent/pkg/ebpf" @@ -169,7 +167,7 @@ func (c *Consumer[V]) Start() { c.batchReader.ReadAll(func(_ int, b *batch) { c.process(b, true) }) - if log.ShouldLog(seelog.DebugLvl) { + if log.ShouldLog(log.DebugLvl) { log.Debugf("usm events summary: name=%q %s", c.proto, c.metricGroup.Summary()) } close(done) diff --git a/pkg/network/protocols/http/telemetry.go b/pkg/network/protocols/http/telemetry.go index 0dddb2591fee9..2d73136b7417b 100644 --- a/pkg/network/protocols/http/telemetry.go +++ b/pkg/network/protocols/http/telemetry.go @@ -10,8 +10,6 @@ package http import ( "fmt" - "github.com/cihub/seelog" - libtelemetry "github.com/DataDog/datadog-agent/pkg/network/protocols/telemetry" "github.com/DataDog/datadog-agent/pkg/util/log" ) @@ -99,7 +97,7 @@ func (t *Telemetry) Count(tx Transaction) { // Log logs the telemetry. func (t *Telemetry) Log() { - if log.ShouldLog(seelog.DebugLvl) { + if log.ShouldLog(log.DebugLvl) { log.Debugf("%s stats summary: %s", t.protocol, t.metricGroup.Summary()) } } diff --git a/pkg/network/protocols/http2/telemetry.go b/pkg/network/protocols/http2/telemetry.go index e80b5efd1a898..6e74ad3e7ba07 100644 --- a/pkg/network/protocols/http2/telemetry.go +++ b/pkg/network/protocols/http2/telemetry.go @@ -10,8 +10,6 @@ package http2 import ( "strconv" - "github.com/cihub/seelog" - libtelemetry "github.com/DataDog/datadog-agent/pkg/network/protocols/telemetry" "github.com/DataDog/datadog-agent/pkg/util/log" ) @@ -91,7 +89,7 @@ func (t *kernelTelemetry) update(tel *HTTP2Telemetry, isTLS bool) { } func (t *kernelTelemetry) Log() { - if log.ShouldLog(seelog.DebugLvl) { + if log.ShouldLog(log.DebugLvl) { log.Debugf("http2 kernel telemetry summary: %s", t.metricGroup.Summary()) } } diff --git a/pkg/network/protocols/kafka/telemetry.go b/pkg/network/protocols/kafka/telemetry.go index 9905756dd880e..cb91b714f0984 100644 --- a/pkg/network/protocols/kafka/telemetry.go +++ b/pkg/network/protocols/kafka/telemetry.go @@ -8,8 +8,6 @@ package kafka import ( - "github.com/cihub/seelog" - libtelemetry "github.com/DataDog/datadog-agent/pkg/network/protocols/telemetry" "github.com/DataDog/datadog-agent/pkg/util/log" ) @@ -51,7 +49,7 @@ func (t *Telemetry) Count(tx *KafkaTransaction) { // Log logs the kafka stats summary func (t *Telemetry) Log() { - if log.ShouldLog(seelog.DebugLvl) { + if log.ShouldLog(log.DebugLvl) { log.Debugf("kafka stats summary: %s", t.metricGroup.Summary()) } } diff --git a/pkg/network/protocols/postgres/telemetry.go b/pkg/network/protocols/postgres/telemetry.go index d8cb08725a80e..3c26d92ada9c2 100644 --- a/pkg/network/protocols/postgres/telemetry.go +++ b/pkg/network/protocols/postgres/telemetry.go @@ -11,8 +11,6 @@ import ( "fmt" "strconv" - "github.com/cihub/seelog" - "github.com/DataDog/datadog-agent/pkg/network/config" "github.com/DataDog/datadog-agent/pkg/network/protocols/postgres/ebpf" libtelemetry "github.com/DataDog/datadog-agent/pkg/network/protocols/telemetry" @@ -175,7 +173,7 @@ func (t *Telemetry) Count(tx *ebpf.EbpfEvent, eventWrapper *EventWrapper) { // Log logs the postgres stats summary func (t *Telemetry) Log() { - if log.ShouldLog(seelog.DebugLvl) { + if log.ShouldLog(log.DebugLvl) { log.Debugf("postgres stats summary: %s", t.metricGroup.Summary()) } } @@ -220,7 +218,7 @@ func (t *kernelTelemetry) update(kernCounts *ebpf.PostgresKernelMsgCount, isTLS // Log logs summary of telemetry func (t *kernelTelemetry) Log() { - if log.ShouldLog(seelog.DebugLvl) { + if log.ShouldLog(log.DebugLvl) { s := t.metricGroup.Summary() log.Debugf("postgres kernel telemetry, summary: %s", s) } diff --git a/pkg/network/state.go b/pkg/network/state.go index 155e75e78ca07..39094959989ac 100644 --- a/pkg/network/state.go +++ b/pkg/network/state.go @@ -11,7 +11,6 @@ import ( "sync" "time" - "github.com/cihub/seelog" "go4.org/intern" telemetryComponent "github.com/DataDog/datadog-agent/comp/core/telemetry" @@ -565,7 +564,7 @@ func (ns *networkState) mergeByCookie(conns []ConnectionStats) ([]ConnectionStat return true } - if log.ShouldLog(seelog.TraceLvl) { + if log.ShouldLog(log.TraceLvl) { log.Tracef("duplicate connection in collection: cookie: %d, c1: %+v, c2: %+v", c.Cookie, *ck, *c) } diff --git a/pkg/network/tracer/connection/ebpf_tracer.go b/pkg/network/tracer/connection/ebpf_tracer.go index ba58ada66b19c..d181471578d21 100644 --- a/pkg/network/tracer/connection/ebpf_tracer.go +++ b/pkg/network/tracer/connection/ebpf_tracer.go @@ -17,7 +17,6 @@ import ( manager "github.com/DataDog/ebpf-manager" "github.com/DataDog/ebpf-manager/tracefs" - "github.com/cihub/seelog" "github.com/cilium/ebpf" "github.com/prometheus/client_golang/prometheus" "go.uber.org/atomic" @@ -501,7 +500,7 @@ func (t *ebpfTracer) getEBPFTelemetry() *netebpf.Telemetry { if err := mp.Lookup(&zero, tm); err != nil { // This can happen if we haven't initialized the telemetry object yet // so let's just use a trace log - if log.ShouldLog(seelog.TraceLvl) { + if log.ShouldLog(log.TraceLvl) { log.Tracef("error retrieving the telemetry struct: %s", err) } return nil diff --git a/pkg/network/tracer/ebpf_conntracker.go b/pkg/network/tracer/ebpf_conntracker.go index 89c34dca9578b..873ee9d453005 100644 --- a/pkg/network/tracer/ebpf_conntracker.go +++ b/pkg/network/tracer/ebpf_conntracker.go @@ -16,7 +16,6 @@ import ( "time" manager "github.com/DataDog/ebpf-manager" - "github.com/cihub/seelog" "github.com/cilium/ebpf" "github.com/cilium/ebpf/features" "github.com/prometheus/client_golang/prometheus" @@ -239,7 +238,7 @@ func (e *ebpfConntracker) GetTranslationForConn(stats *network.ConnectionTuple) defer tuplePool.Put(src) toConntrackTupleFromTuple(src, stats) - if log.ShouldLog(seelog.TraceLvl) { + if log.ShouldLog(log.TraceLvl) { log.Tracef("looking up in conntrack (stats): %s", stats) } @@ -247,14 +246,14 @@ func (e *ebpfConntracker) GetTranslationForConn(stats *network.ConnectionTuple) // NAT rules referencing conntrack are installed there instead // of other network namespaces (for pods, for instance) src.Netns = e.rootNS - if log.ShouldLog(seelog.TraceLvl) { + if log.ShouldLog(log.TraceLvl) { log.Tracef("looking up in conntrack (tuple): %s", src) } dst := e.get(src) if dst == nil && stats.NetNS != e.rootNS { // Perform another lookup, this time using the connection namespace src.Netns = stats.NetNS - if log.ShouldLog(seelog.TraceLvl) { + if log.ShouldLog(log.TraceLvl) { log.Tracef("looking up in conntrack (tuple,netns): %s", src) } dst = e.get(src) @@ -299,7 +298,7 @@ func (e *ebpfConntracker) delete(key *netebpf.ConntrackTuple) { if err := e.ctMap.Delete(key); err != nil { if errors.Is(err, ebpf.ErrKeyNotExist) { - if log.ShouldLog(seelog.TraceLvl) { + if log.ShouldLog(log.TraceLvl) { log.Tracef("connection does not exist in ebpf conntrack map: %s", key) } diff --git a/pkg/network/tracer/process_cache.go b/pkg/network/tracer/process_cache.go index b44eb56f044cc..acfb96bbde0f2 100644 --- a/pkg/network/tracer/process_cache.go +++ b/pkg/network/tracer/process_cache.go @@ -12,7 +12,6 @@ import ( "sync" "time" - "github.com/cihub/seelog" lru "github.com/hashicorp/golang-lru/v2" "github.com/prometheus/client_golang/prometheus" @@ -175,7 +174,7 @@ func (pc *processCache) add(p *events.Process) { pc.mu.Lock() defer pc.mu.Unlock() - if log.ShouldLog(seelog.TraceLvl) { + if log.ShouldLog(log.TraceLvl) { log.Tracef("adding process %+v to process cache", p) } p.Expiry = time.Now().Add(defaultExpiry).Unix() diff --git a/pkg/network/tracer/tracer.go b/pkg/network/tracer/tracer.go index 20e97a49ac3e6..56eaf657a802f 100644 --- a/pkg/network/tracer/tracer.go +++ b/pkg/network/tracer/tracer.go @@ -16,7 +16,6 @@ import ( "sync" "time" - "github.com/cihub/seelog" "github.com/cilium/ebpf" "go.uber.org/atomic" "go4.org/intern" @@ -346,7 +345,7 @@ func (t *Tracer) addProcessInfo(c *network.ConnectionStats) { return } - if log.ShouldLog(seelog.TraceLvl) { + if log.ShouldLog(log.TraceLvl) { log.Tracef("got process cache entry for pid %d: %+v", c.Pid, p) } @@ -413,7 +412,7 @@ func (t *Tracer) Stop() { func (t *Tracer) GetActiveConnections(clientID string) (*network.Connections, error) { t.bufferLock.Lock() defer t.bufferLock.Unlock() - if log.ShouldLog(seelog.TraceLvl) { + if log.ShouldLog(log.TraceLvl) { log.Tracef("GetActiveConnections clientID=%s", clientID) } t.ebpfTracer.FlushPending() @@ -611,7 +610,7 @@ func (t *Tracer) removeEntries(entries []network.ConnectionStats) { t.state.RemoveConnections(toRemove) - if log.ShouldLog(seelog.DebugLvl) { + if log.ShouldLog(log.DebugLvl) { log.Debugf("Removed %d connection entries in %s", len(toRemove), time.Since(now)) } } diff --git a/pkg/network/tracer/tracer_test.go b/pkg/network/tracer/tracer_test.go index a108e11363fef..710e5eb142253 100644 --- a/pkg/network/tracer/tracer_test.go +++ b/pkg/network/tracer/tracer_test.go @@ -26,7 +26,6 @@ import ( "testing" "time" - "github.com/cihub/seelog" "github.com/miekg/dns" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -55,7 +54,7 @@ func TestMain(m *testing.M) { if logLevel == "" { logLevel = "warn" } - log.SetupLogger(seelog.Default, logLevel) + log.SetupLogger(log.Default(), logLevel) platformInit() os.Exit(m.Run()) } diff --git a/pkg/network/usm/ebpf_gotls.go b/pkg/network/usm/ebpf_gotls.go index e12871aa619bf..2c1e31300612a 100644 --- a/pkg/network/usm/ebpf_gotls.go +++ b/pkg/network/usm/ebpf_gotls.go @@ -19,7 +19,6 @@ import ( "time" "unsafe" - "github.com/cihub/seelog" "github.com/cilium/ebpf" "golang.org/x/sys/unix" @@ -355,7 +354,7 @@ func (p *goTLSProgram) AttachPID(pid uint32) error { // Check if the process is datadog's internal process, if so, we don't want to hook the process. if internalProcessRegex.MatchString(binPath) { - if log.ShouldLog(seelog.DebugLvl) { + if log.ShouldLog(log.DebugLvl) { log.Debugf("ignoring pid %d, as it is an internal datadog component (%q)", pid, binPath) } return ErrInternalDDogProcessRejected diff --git a/pkg/network/usm/monitor_test.go b/pkg/network/usm/monitor_test.go index 402243c2562d1..f899eb6c295b9 100644 --- a/pkg/network/usm/monitor_test.go +++ b/pkg/network/usm/monitor_test.go @@ -24,7 +24,6 @@ import ( "time" manager "github.com/DataDog/ebpf-manager" - "github.com/cihub/seelog" "github.com/cilium/ebpf" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -49,7 +48,7 @@ func TestMain(m *testing.M) { if logLevel == "" { logLevel = "warn" } - log.SetupLogger(seelog.Default, logLevel) + log.SetupLogger(log.Default(), logLevel) os.Exit(m.Run()) } diff --git a/pkg/network/usm/tests/tracer_classification_test.go b/pkg/network/usm/tests/tracer_classification_test.go index fb167ab7e093c..1ddaa35bed5a5 100644 --- a/pkg/network/usm/tests/tracer_classification_test.go +++ b/pkg/network/usm/tests/tracer_classification_test.go @@ -20,7 +20,6 @@ import ( "testing" "time" - "github.com/cihub/seelog" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -44,7 +43,7 @@ func TestMain(m *testing.M) { if logLevel == "" { logLevel = "warn" } - log.SetupLogger(seelog.Default, logLevel) + log.SetupLogger(log.Default(), logLevel) platformInit() os.Exit(m.Run()) } diff --git a/pkg/network/usm/utils/file_registry.go b/pkg/network/usm/utils/file_registry.go index 177a4ac7c5857..851d816618e86 100644 --- a/pkg/network/usm/utils/file_registry.go +++ b/pkg/network/usm/utils/file_registry.go @@ -13,7 +13,6 @@ import ( "os" "sync" - "github.com/cihub/seelog" "github.com/hashicorp/golang-lru/v2/simplelru" "go.uber.org/atomic" @@ -263,7 +262,7 @@ func (r *FileRegistry) GetRegisteredProcesses() map[uint32]struct{} { // Log state of `FileRegistry` func (r *FileRegistry) Log() { - if log.ShouldLog(seelog.DebugLvl) { + if log.ShouldLog(log.DebugLvl) { log.Debugf("file_registry summary: program=%s %s", r.telemetry.programName, r.telemetry.metricGroup.Summary()) } } diff --git a/pkg/process/metadata/parser/service.go b/pkg/process/metadata/parser/service.go index a2ef465a410a7..bacff8563b51c 100644 --- a/pkg/process/metadata/parser/service.go +++ b/pkg/process/metadata/parser/service.go @@ -14,7 +14,6 @@ import ( "unicode" "github.com/Masterminds/semver" - "github.com/cihub/seelog" "github.com/DataDog/datadog-agent/pkg/process/metadata" javaparser "github.com/DataDog/datadog-agent/pkg/process/metadata/parser/java" @@ -109,7 +108,7 @@ func (d *ServiceExtractor) Extract(processes map[int32]*procutil.Process) { } } meta := d.extractServiceMetadata(proc) - if meta != nil && log.ShouldLog(seelog.TraceLvl) { + if meta != nil && log.ShouldLog(log.TraceLvl) { log.Tracef("detected service metadata: %v", meta) } serviceByPID[proc.Pid] = meta @@ -132,7 +131,7 @@ func (d *ServiceExtractor) GetServiceContext(pid int32) []string { // Service tag was found from the SCM, return it. if len(tags) > 0 { - if log.ShouldLog(seelog.TraceLvl) { + if log.ShouldLog(log.TraceLvl) { log.Tracef("Found process_context from SCM for pid:%v service tags:%v", pid, tags) } return tags diff --git a/pkg/process/monitor/process_monitor.go b/pkg/process/monitor/process_monitor.go index 8dbdefc99a822..cdc1770ddb488 100644 --- a/pkg/process/monitor/process_monitor.go +++ b/pkg/process/monitor/process_monitor.go @@ -14,7 +14,6 @@ import ( "sync" "time" - "github.com/cihub/seelog" "github.com/vishvananda/netlink" "go.uber.org/atomic" @@ -176,7 +175,7 @@ func (pm *ProcessMonitor) handleProcessExec(pid uint32) { continue default: pm.tel.processExecChannelIsFull.Add(1) - if log.ShouldLog(seelog.DebugLvl) && pm.oversizedLogLimit.ShouldLog() { + if log.ShouldLog(log.DebugLvl) && pm.oversizedLogLimit.ShouldLog() { log.Debug("can't send exec callback to callbackRunner, channel is full") } } @@ -196,7 +195,7 @@ func (pm *ProcessMonitor) handleProcessExit(pid uint32) { continue default: pm.tel.processExitChannelIsFull.Add(1) - if log.ShouldLog(seelog.DebugLvl) && pm.oversizedLogLimit.ShouldLog() { + if log.ShouldLog(log.DebugLvl) && pm.oversizedLogLimit.ShouldLog() { log.Debug("can't send exit callback to callbackRunner, channel is full") } } diff --git a/pkg/process/procutil/process_linux_test.go b/pkg/process/procutil/process_linux_test.go index 7684ed119720e..646984befc8c6 100644 --- a/pkg/process/procutil/process_linux_test.go +++ b/pkg/process/procutil/process_linux_test.go @@ -16,6 +16,7 @@ import ( "testing" "time" + //nolint:depguard // disable logs from DataDog/gopsutil "github.com/cihub/seelog" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" diff --git a/pkg/security/seclog/logger.go b/pkg/security/seclog/logger.go index 632c9efde7498..c6f2aff1a24f7 100644 --- a/pkg/security/seclog/logger.go +++ b/pkg/security/seclog/logger.go @@ -13,8 +13,6 @@ import ( "strings" "sync" - "github.com/cihub/seelog" - "github.com/DataDog/datadog-agent/pkg/util/log" ) @@ -138,7 +136,7 @@ func (l *PatternLogger) Tracef(format string, params ...interface{}) { // IsTracing is used to check if TraceF would actually log func (l *PatternLogger) IsTracing() bool { - if logLevel, err := log.GetLogLevel(); err != nil || logLevel != seelog.TraceLvl { + if logLevel, err := log.GetLogLevel(); err != nil || logLevel != log.TraceLvl { return false } return true diff --git a/pkg/security/tests/main_test.go b/pkg/security/tests/main_test.go index 6ef5e6cdb8a80..36b434722dc9d 100644 --- a/pkg/security/tests/main_test.go +++ b/pkg/security/tests/main_test.go @@ -15,7 +15,7 @@ import ( "testing" "time" - "github.com/cihub/seelog" + "github.com/DataDog/datadog-agent/pkg/util/log" ) // TestMain is the entry points for functional tests @@ -43,7 +43,7 @@ var ( ) func init() { - flag.StringVar(&logLevelStr, "loglevel", seelog.WarnStr, "log level") + flag.StringVar(&logLevelStr, "loglevel", log.WarnStr, "log level") flag.Var(&logPatterns, "logpattern", "List of log pattern") flag.Var(&logTags, "logtag", "List of log tag") diff --git a/pkg/security/tests/module_tester_linux.go b/pkg/security/tests/module_tester_linux.go index 268fc839f625e..54d262fdf599d 100644 --- a/pkg/security/tests/module_tester_linux.go +++ b/pkg/security/tests/module_tester_linux.go @@ -27,7 +27,6 @@ import ( "time" "github.com/avast/retry-go/v4" - "github.com/cihub/seelog" "github.com/davecgh/go-spew/spew" "github.com/hashicorp/go-multierror" "github.com/oliveagle/jsonpath" @@ -57,7 +56,7 @@ import ( ) var ( - logger seelog.LoggerInterface + logger log.LoggerInterface ) const ( @@ -999,7 +998,7 @@ func (tm *testModule) Close() { var logInitilialized bool func initLogger() error { - logLevel, found := seelog.LogLevelFromString(logLevelStr) + logLevel, found := log.LogLevelFromString(logLevelStr) if !found { return fmt.Errorf("invalid log level '%s'", logLevel) } @@ -1014,20 +1013,20 @@ func initLogger() error { return nil } -func swapLogLevel(logLevel seelog.LogLevel) (seelog.LogLevel, error) { +func swapLogLevel(logLevel log.LogLevel) (log.LogLevel, error) { if logger == nil { logFormat := "[%Date(2006-01-02 15:04:05.000)] [%LEVEL] %Func:%Line %Msg\n" var err error - logger, err = seelog.LoggerFromWriterWithMinLevelAndFormat(os.Stdout, logLevel, logFormat) + logger, err = log.LoggerFromWriterWithMinLevelAndFormat(os.Stdout, logLevel, logFormat) if err != nil { return 0, err } } log.SetupLogger(logger, logLevel.String()) - prevLevel, _ := seelog.LogLevelFromString(logLevelStr) + prevLevel, _ := log.LogLevelFromString(logLevelStr) logLevelStr = logLevel.String() return prevLevel, nil } diff --git a/pkg/serverless/daemon/routes_test.go b/pkg/serverless/daemon/routes_test.go index e0f2fea43a637..25231204af6c8 100644 --- a/pkg/serverless/daemon/routes_test.go +++ b/pkg/serverless/daemon/routes_test.go @@ -17,7 +17,6 @@ import ( "testing" "time" - "github.com/cihub/seelog" "github.com/stretchr/testify/assert" nooptagger "github.com/DataDog/datadog-agent/comp/core/tagger/impl-noop" @@ -399,7 +398,7 @@ func getEventFromFile(filename string) string { func BenchmarkStartEndInvocation(b *testing.B) { // Set the logger up, so that it does not buffer all entries forever (some of these are BIG as they include the // JSON payload). We're not interested in any output here, so we send it all to `io.Discard`. - l, err := seelog.LoggerFromWriterWithMinLevel(io.Discard, seelog.ErrorLvl) + l, err := log.LoggerFromWriterWithMinLevel(io.Discard, log.ErrorLvl) assert.Nil(b, err) log.SetupLogger(l, "error") diff --git a/pkg/snmp/gosnmplib/gosnmp_log_test.go b/pkg/snmp/gosnmplib/gosnmp_log_test.go index 264c81142d427..30394a680cc13 100644 --- a/pkg/snmp/gosnmplib/gosnmp_log_test.go +++ b/pkg/snmp/gosnmplib/gosnmp_log_test.go @@ -10,7 +10,6 @@ import ( "bytes" "testing" - "github.com/cihub/seelog" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -92,7 +91,7 @@ func TestTraceLevelLogWriter_Write(t *testing.T) { t.Run(tt.name, func(t *testing.T) { var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.TraceLvl, "[%LEVEL] %FuncShort: %Msg") + l, err := log.LoggerFromWriterWithMinLevelAndFormat(w, log.TraceLvl, "[%LEVEL] %FuncShort: %Msg") require.NoError(t, err) log.SetupLogger(l, "trace") diff --git a/pkg/trace/go.mod b/pkg/trace/go.mod index 6853ea9519164..382915cd7b380 100644 --- a/pkg/trace/go.mod +++ b/pkg/trace/go.mod @@ -24,7 +24,7 @@ require ( github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 github.com/DataDog/sketches-go v1.4.6 github.com/Microsoft/go-winio v0.6.2 - github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 + github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/golang/mock v1.6.0 github.com/golang/protobuf v1.5.4 diff --git a/pkg/trace/remoteconfighandler/remote_config_handler.go b/pkg/trace/remoteconfighandler/remote_config_handler.go index a1d24e7b8e744..0aff0f665099e 100644 --- a/pkg/trace/remoteconfighandler/remote_config_handler.go +++ b/pkg/trace/remoteconfighandler/remote_config_handler.go @@ -19,7 +19,6 @@ import ( "github.com/DataDog/datadog-agent/pkg/trace/log" pkglog "github.com/DataDog/datadog-agent/pkg/util/log" - "github.com/cihub/seelog" "github.com/davecgh/go-spew/spew" ) @@ -95,7 +94,7 @@ func (h *RemoteConfigHandler) onAgentConfigUpdate(updates map[string]state.RawCo if len(mergedConfig.LogLevel) > 0 { // Get the current log level - var newFallback seelog.LogLevel + var newFallback pkglog.LogLevel newFallback, err = pkglog.GetLogLevel() if err == nil { h.configState.FallbackLogLevel = newFallback.String() @@ -113,7 +112,7 @@ func (h *RemoteConfigHandler) onAgentConfigUpdate(updates map[string]state.RawCo } } } else { - var currentLogLevel seelog.LogLevel + var currentLogLevel pkglog.LogLevel currentLogLevel, err = pkglog.GetLogLevel() if err == nil && currentLogLevel.String() == h.configState.LatestLogLevel { pkglog.Infof("Removing remote-config log level override of the trace-agent, falling back to %s", h.configState.FallbackLogLevel) diff --git a/pkg/trace/remoteconfighandler/remote_config_handler_test.go b/pkg/trace/remoteconfighandler/remote_config_handler_test.go index 6d3cde4a49711..d53ea39325c79 100644 --- a/pkg/trace/remoteconfighandler/remote_config_handler_test.go +++ b/pkg/trace/remoteconfighandler/remote_config_handler_test.go @@ -13,7 +13,6 @@ import ( "strings" "testing" - "github.com/cihub/seelog" "github.com/golang/mock/gomock" "github.com/stretchr/testify/assert" @@ -34,7 +33,7 @@ func TestStart(t *testing.T) { prioritySampler := NewMockprioritySampler(ctrl) errorsSampler := NewMockerrorsSampler(ctrl) rareSampler := NewMockrareSampler(ctrl) - pkglog.SetupLogger(seelog.Default, "debug") + pkglog.SetupLogger(pkglog.Default(), "debug") h := New(&agentConfig, prioritySampler, rareSampler, errorsSampler) @@ -58,7 +57,7 @@ func TestPrioritySampler(t *testing.T) { prioritySampler := NewMockprioritySampler(ctrl) errorsSampler := NewMockerrorsSampler(ctrl) rareSampler := NewMockrareSampler(ctrl) - pkglog.SetupLogger(seelog.Default, "debug") + pkglog.SetupLogger(pkglog.Default(), "debug") agentConfig := config.AgentConfig{RemoteConfigClient: remoteClient, TargetTPS: 41, ErrorTPS: 41, RareSamplerEnabled: true} h := New(&agentConfig, prioritySampler, rareSampler, errorsSampler) @@ -89,7 +88,7 @@ func TestErrorsSampler(t *testing.T) { prioritySampler := NewMockprioritySampler(ctrl) errorsSampler := NewMockerrorsSampler(ctrl) rareSampler := NewMockrareSampler(ctrl) - pkglog.SetupLogger(seelog.Default, "debug") + pkglog.SetupLogger(pkglog.Default(), "debug") agentConfig := config.AgentConfig{RemoteConfigClient: remoteClient, TargetTPS: 41, ErrorTPS: 41, RareSamplerEnabled: true} h := New(&agentConfig, prioritySampler, rareSampler, errorsSampler) @@ -120,7 +119,7 @@ func TestRareSampler(t *testing.T) { prioritySampler := NewMockprioritySampler(ctrl) errorsSampler := NewMockerrorsSampler(ctrl) rareSampler := NewMockrareSampler(ctrl) - pkglog.SetupLogger(seelog.Default, "debug") + pkglog.SetupLogger(pkglog.Default(), "debug") agentConfig := config.AgentConfig{RemoteConfigClient: remoteClient, TargetTPS: 41, ErrorTPS: 41, RareSamplerEnabled: true} h := New(&agentConfig, prioritySampler, rareSampler, errorsSampler) @@ -151,7 +150,7 @@ func TestEnvPrecedence(t *testing.T) { prioritySampler := NewMockprioritySampler(ctrl) errorsSampler := NewMockerrorsSampler(ctrl) rareSampler := NewMockrareSampler(ctrl) - pkglog.SetupLogger(seelog.Default, "debug") + pkglog.SetupLogger(pkglog.Default(), "debug") agentConfig := config.AgentConfig{RemoteConfigClient: remoteClient, TargetTPS: 41, ErrorTPS: 41, RareSamplerEnabled: true, DefaultEnv: "agent-env"} h := New(&agentConfig, prioritySampler, rareSampler, errorsSampler) @@ -193,7 +192,7 @@ func TestLogLevel(t *testing.T) { errorsSampler := NewMockerrorsSampler(ctrl) rareSampler := NewMockrareSampler(ctrl) - pkglog.SetupLogger(seelog.Default, "debug") + pkglog.SetupLogger(pkglog.Default(), "debug") srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { assert.Equal(t, "Bearer fakeToken", r.Header.Get("Authorization")) w.WriteHeader(200) diff --git a/pkg/util/grpc/agent_client_test.go b/pkg/util/grpc/agent_client_test.go index 0bc586fae3fdb..8fcc62aeb51a3 100644 --- a/pkg/util/grpc/agent_client_test.go +++ b/pkg/util/grpc/agent_client_test.go @@ -11,14 +11,13 @@ import ( "testing" "time" - "github.com/cihub/seelog" "github.com/stretchr/testify/assert" "github.com/DataDog/datadog-agent/pkg/util/log" ) func TestMain(m *testing.M) { - log.SetupLogger(seelog.Default, "trace") + log.SetupLogger(log.Default(), "trace") os.Exit(m.Run()) } diff --git a/pkg/util/grpc/go.mod b/pkg/util/grpc/go.mod index 9798867b0e38d..8aacd9bf986f0 100644 --- a/pkg/util/grpc/go.mod +++ b/pkg/util/grpc/go.mod @@ -38,7 +38,6 @@ require ( github.com/DataDog/datadog-agent/pkg/api v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/proto v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 - github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 github.com/stretchr/testify v1.10.0 golang.org/x/net v0.31.0 @@ -68,6 +67,7 @@ require ( github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect + github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect diff --git a/pkg/util/kubernetes/apiserver/controllers/wpa_controller_test.go b/pkg/util/kubernetes/apiserver/controllers/wpa_controller_test.go index 89374ba3ea185..ffc573d99d355 100644 --- a/pkg/util/kubernetes/apiserver/controllers/wpa_controller_test.go +++ b/pkg/util/kubernetes/apiserver/controllers/wpa_controller_test.go @@ -18,7 +18,6 @@ import ( "github.com/DataDog/watermarkpodautoscaler/apis/datadoghq/v1alpha1" "github.com/cenkalti/backoff" - "github.com/cihub/seelog" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gopkg.in/zorkian/go-datadog-api.v2" @@ -654,11 +653,10 @@ func TestWPACRDCheck(t *testing.T) { } func configureLoggerForTest(t *testing.T) func() { - logger, err := seelog.LoggerFromWriterWithMinLevel(testWriter{t}, seelog.TraceLvl) + logger, err := log.LoggerFromWriterWithMinLevel(testWriter{t}, log.TraceLvl) if err != nil { t.Fatalf("unable to configure logger, err: %v", err) } - seelog.ReplaceLogger(logger) //nolint:errcheck log.SetupLogger(logger, "trace") return log.Flush } diff --git a/pkg/util/log/levels.go b/pkg/util/log/levels.go new file mode 100644 index 0000000000000..52e8dd99c49e0 --- /dev/null +++ b/pkg/util/log/levels.go @@ -0,0 +1,47 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package log + +import "github.com/cihub/seelog" + +// LogLevel is the type of log levels +// +//nolint:revive // keeping the original type name from seelog +type LogLevel seelog.LogLevel + +// Log levels +const ( + TraceLvl LogLevel = seelog.TraceLvl + DebugLvl LogLevel = seelog.DebugLvl + InfoLvl LogLevel = seelog.InfoLvl + WarnLvl LogLevel = seelog.WarnLvl + ErrorLvl LogLevel = seelog.ErrorLvl + CriticalLvl LogLevel = seelog.CriticalLvl + Off LogLevel = seelog.Off +) + +// Log level string representations +const ( + TraceStr = seelog.TraceStr + DebugStr = seelog.DebugStr + InfoStr = seelog.InfoStr + WarnStr = seelog.WarnStr + ErrorStr = seelog.ErrorStr + CriticalStr = seelog.CriticalStr + OffStr = seelog.OffStr +) + +func (level LogLevel) String() string { + return seelog.LogLevel(level).String() +} + +// LogLevelFromString returns a LogLevel from a string +// +//nolint:revive // keeping the original function name from seelog +func LogLevelFromString(levelStr string) (LogLevel, bool) { + level, ok := seelog.LogLevelFromString(levelStr) + return LogLevel(level), ok +} diff --git a/pkg/util/log/log.go b/pkg/util/log/log.go index 0e1ecaa23e3e5..3eb9ef9fb2679 100644 --- a/pkg/util/log/log.go +++ b/pkg/util/log/log.go @@ -22,7 +22,6 @@ import ( "strings" "sync" - "github.com/cihub/seelog" "go.uber.org/atomic" "github.com/DataDog/datadog-agent/pkg/util/scrubber" @@ -53,9 +52,9 @@ var ( // DatadogLogger wrapper structure for seelog type DatadogLogger struct { - inner seelog.LoggerInterface - level seelog.LogLevel - extra map[string]seelog.LoggerInterface + inner LoggerInterface + level LogLevel + extra map[string]LoggerInterface l sync.RWMutex } @@ -64,7 +63,7 @@ type DatadogLogger struct { */ // SetupLogger setup agent wide logger -func SetupLogger(i seelog.LoggerInterface, level string) { +func SetupLogger(i LoggerInterface, level string) { logger.Store(setupCommonLogger(i, level)) // Flush the log entries logged before initialization now that the logger is initialized @@ -76,17 +75,17 @@ func SetupLogger(i seelog.LoggerInterface, level string) { logsBuffer = []func(){} } -func setupCommonLogger(i seelog.LoggerInterface, level string) *DatadogLogger { +func setupCommonLogger(i LoggerInterface, level string) *DatadogLogger { l := &DatadogLogger{ inner: i, - extra: make(map[string]seelog.LoggerInterface), + extra: make(map[string]LoggerInterface), } - lvl, ok := seelog.LogLevelFromString(level) + lvl, ok := LogLevelFromString(level) if !ok { - lvl = seelog.InfoLvl + lvl = InfoLvl } - l.level = lvl + l.level = LogLevel(lvl) // We're not going to call DatadogLogger directly, but using the // exported functions, that will give us two frames in the stack @@ -121,7 +120,7 @@ func (sw *DatadogLogger) scrub(s string) string { // ChangeLogLevel changes the current log level, valid levels are trace, debug, // info, warn, error, critical and off, it requires a new seelog logger because // an existing one cannot be updated -func ChangeLogLevel(li seelog.LoggerInterface, level string) error { +func ChangeLogLevel(li LoggerInterface, level string) error { if err := logger.changeLogLevel(level); err != nil { return err } @@ -149,36 +148,36 @@ func (sw *loggerPointer) changeLogLevel(level string) error { return errors.New("cannot change loglevel: logger is initialized however logger.inner is nil") } - lvl, ok := seelog.LogLevelFromString(strings.ToLower(level)) + lvl, ok := LogLevelFromString(strings.ToLower(level)) if !ok { return errors.New("bad log level") } - l.level = lvl + l.level = LogLevel(lvl) return nil } // GetLogLevel returns a seelog native representation of the current log level -func GetLogLevel() (seelog.LogLevel, error) { +func GetLogLevel() (LogLevel, error) { return logger.getLogLevel() } -func (sw *loggerPointer) getLogLevel() (seelog.LogLevel, error) { +func (sw *loggerPointer) getLogLevel() (LogLevel, error) { l := sw.Load() if l == nil { - return seelog.InfoLvl, errors.New("cannot get loglevel: logger not initialized") + return InfoLvl, errors.New("cannot get loglevel: logger not initialized") } l.l.RLock() defer l.l.RUnlock() if l.inner == nil { - return seelog.InfoLvl, errors.New("cannot get loglevel: logger not initialized") + return InfoLvl, errors.New("cannot get loglevel: logger not initialized") } return l.level, nil } // ShouldLog returns whether a given log level should be logged by the default logger -func ShouldLog(lvl seelog.LogLevel) bool { +func ShouldLog(lvl LogLevel) bool { // The lock stay in the exported function due to the use of `shouldLog` in function that already hold the lock l := logger.Load() if l != nil { @@ -190,7 +189,7 @@ func ShouldLog(lvl seelog.LogLevel) bool { } // This function should be called with `sw.l` held -func (sw *DatadogLogger) shouldLog(level seelog.LogLevel) bool { +func (sw *DatadogLogger) shouldLog(level LogLevel) bool { return level >= sw.level } @@ -203,7 +202,7 @@ func ValidateLogLevel(logLevel string) (string, error) { seelogLogLevel = "warn" } - if _, found := seelog.LogLevelFromString(seelogLogLevel); !found { + if _, found := LogLevelFromString(seelogLogLevel); !found { return "", fmt.Errorf("unknown log level: %s", seelogLogLevel) } return seelogLogLevel, nil @@ -214,10 +213,10 @@ func ValidateLogLevel(logLevel string) (string, error) { */ // RegisterAdditionalLogger registers an additional logger for logging -func RegisterAdditionalLogger(n string, li seelog.LoggerInterface) error { +func RegisterAdditionalLogger(n string, li LoggerInterface) error { return logger.registerAdditionalLogger(n, li) } -func (sw *loggerPointer) registerAdditionalLogger(n string, li seelog.LoggerInterface) error { +func (sw *loggerPointer) registerAdditionalLogger(n string, li LoggerInterface) error { l := sw.Load() if l == nil { return errors.New("cannot register: logger not initialized") @@ -244,10 +243,10 @@ func (sw *loggerPointer) registerAdditionalLogger(n string, li seelog.LoggerInte } // ReplaceLogger allows replacing the internal logger, returns old logger -func ReplaceLogger(li seelog.LoggerInterface) seelog.LoggerInterface { +func ReplaceLogger(li LoggerInterface) LoggerInterface { return logger.replaceInnerLogger(li) } -func (sw *loggerPointer) replaceInnerLogger(li seelog.LoggerInterface) seelog.LoggerInterface { +func (sw *loggerPointer) replaceInnerLogger(li LoggerInterface) LoggerInterface { l := sw.Load() if l == nil { return nil // Return nil if logger is not initialized @@ -291,7 +290,7 @@ func (sw *loggerPointer) flush() { // log logs a message at the given level, using either bufferFunc (if logging is not yet set up) or // scrubAndLogFunc, and treating the variadic args as the message. -func log(logLevel seelog.LogLevel, bufferFunc func(), scrubAndLogFunc func(string), v ...interface{}) { +func log(logLevel LogLevel, bufferFunc func(), scrubAndLogFunc func(string), v ...interface{}) { l := logger.Load() if l == nil { @@ -310,7 +309,7 @@ func log(logLevel seelog.LogLevel, bufferFunc func(), scrubAndLogFunc func(strin } } -func logWithError(logLevel seelog.LogLevel, bufferFunc func(), scrubAndLogFunc func(string) error, fallbackStderr bool, v ...interface{}) error { +func logWithError(logLevel LogLevel, bufferFunc func(), scrubAndLogFunc func(string) error, fallbackStderr bool, v ...interface{}) error { l := logger.Load() if l == nil { @@ -353,7 +352,7 @@ func logWithError(logLevel seelog.LogLevel, bufferFunc func(), scrubAndLogFunc f * logFormat functions */ -func logFormat(logLevel seelog.LogLevel, bufferFunc func(), scrubAndLogFunc func(string, ...interface{}), format string, params ...interface{}) { +func logFormat(logLevel LogLevel, bufferFunc func(), scrubAndLogFunc func(string, ...interface{}), format string, params ...interface{}) { l := logger.Load() if l == nil { @@ -370,7 +369,7 @@ func logFormat(logLevel seelog.LogLevel, bufferFunc func(), scrubAndLogFunc func scrubAndLogFunc(format, params...) } } -func logFormatWithError(logLevel seelog.LogLevel, bufferFunc func(), scrubAndLogFunc func(string, ...interface{}) error, format string, fallbackStderr bool, params ...interface{}) error { +func logFormatWithError(logLevel LogLevel, bufferFunc func(), scrubAndLogFunc func(string, ...interface{}) error, format string, fallbackStderr bool, params ...interface{}) error { l := logger.Load() if l == nil { @@ -412,7 +411,7 @@ func logFormatWithError(logLevel seelog.LogLevel, bufferFunc func(), scrubAndLog * logContext functions */ -func logContext(logLevel seelog.LogLevel, bufferFunc func(), scrubAndLogFunc func(string), message string, depth int, context ...interface{}) { +func logContext(logLevel LogLevel, bufferFunc func(), scrubAndLogFunc func(string), message string, depth int, context ...interface{}) { l := logger.Load() if l == nil { @@ -433,7 +432,7 @@ func logContext(logLevel seelog.LogLevel, bufferFunc func(), scrubAndLogFunc fun l.inner.SetAdditionalStackDepth(defaultStackDepth) //nolint:errcheck } } -func logContextWithError(logLevel seelog.LogLevel, bufferFunc func(), scrubAndLogFunc func(string) error, message string, fallbackStderr bool, depth int, context ...interface{}) error { +func logContextWithError(logLevel LogLevel, bufferFunc func(), scrubAndLogFunc func(string) error, message string, fallbackStderr bool, depth int, context ...interface{}) error { l := logger.Load() if l == nil { @@ -758,29 +757,29 @@ func formatErrorc(message string, context ...interface{}) error { // Trace logs at the trace level func Trace(v ...interface{}) { - log(seelog.TraceLvl, func() { Trace(v...) }, logger.trace, v...) + log(TraceLvl, func() { Trace(v...) }, logger.trace, v...) } // Tracef logs with format at the trace level func Tracef(format string, params ...interface{}) { - logFormat(seelog.TraceLvl, func() { Tracef(format, params...) }, logger.tracef, format, params...) + logFormat(TraceLvl, func() { Tracef(format, params...) }, logger.tracef, format, params...) } // TracefStackDepth logs with format at the trace level and the current stack depth plus the given depth func TracefStackDepth(depth int, format string, params ...interface{}) { currentLevel, _ := GetLogLevel() - if currentLevel > seelog.TraceLvl { + if currentLevel > TraceLvl { return } msg := fmt.Sprintf(format, params...) - log(seelog.TraceLvl, func() { TraceStackDepth(depth, msg) }, func(s string) { + log(TraceLvl, func() { TraceStackDepth(depth, msg) }, func(s string) { logger.traceStackDepth(s, depth) }, msg) } // TracecStackDepth logs at the trace level with context and the current stack depth plus the additional given one func TracecStackDepth(message string, depth int, context ...interface{}) { - logContext(seelog.TraceLvl, func() { Tracec(message, context...) }, logger.trace, message, depth, context...) + logContext(TraceLvl, func() { Tracec(message, context...) }, logger.trace, message, depth, context...) } // Tracec logs at the trace level with context @@ -791,36 +790,36 @@ func Tracec(message string, context ...interface{}) { // TraceFunc calls and logs the result of 'logFunc' if and only if Trace (or more verbose) logs are enabled func TraceFunc(logFunc func() string) { currentLevel, _ := GetLogLevel() - if currentLevel <= seelog.TraceLvl { + if currentLevel <= TraceLvl { TraceStackDepth(2, logFunc()) } } // Debug logs at the debug level func Debug(v ...interface{}) { - log(seelog.DebugLvl, func() { Debug(v...) }, logger.debug, v...) + log(DebugLvl, func() { Debug(v...) }, logger.debug, v...) } // Debugf logs with format at the debug level func Debugf(format string, params ...interface{}) { - logFormat(seelog.DebugLvl, func() { Debugf(format, params...) }, logger.debugf, format, params...) + logFormat(DebugLvl, func() { Debugf(format, params...) }, logger.debugf, format, params...) } // DebugfStackDepth logs with format at the debug level and the current stack depth plus the given depth func DebugfStackDepth(depth int, format string, params ...interface{}) { currentLevel, _ := GetLogLevel() - if currentLevel > seelog.DebugLvl { + if currentLevel > DebugLvl { return } msg := fmt.Sprintf(format, params...) - log(seelog.DebugLvl, func() { DebugStackDepth(depth, msg) }, func(s string) { + log(DebugLvl, func() { DebugStackDepth(depth, msg) }, func(s string) { logger.debugStackDepth(s, depth) }, msg) } // DebugcStackDepth logs at the debug level with context and the current stack depth plus the additional given one func DebugcStackDepth(message string, depth int, context ...interface{}) { - logContext(seelog.DebugLvl, func() { Debugc(message, context...) }, logger.debug, message, depth, context...) + logContext(DebugLvl, func() { Debugc(message, context...) }, logger.debug, message, depth, context...) } // Debugc logs at the debug level with context @@ -831,36 +830,36 @@ func Debugc(message string, context ...interface{}) { // DebugFunc calls and logs the result of 'logFunc' if and only if Debug (or more verbose) logs are enabled func DebugFunc(logFunc func() string) { currentLevel, _ := GetLogLevel() - if currentLevel <= seelog.DebugLvl { + if currentLevel <= DebugLvl { DebugStackDepth(2, logFunc()) } } // Info logs at the info level func Info(v ...interface{}) { - log(seelog.InfoLvl, func() { Info(v...) }, logger.info, v...) + log(InfoLvl, func() { Info(v...) }, logger.info, v...) } // Infof logs with format at the info level func Infof(format string, params ...interface{}) { - logFormat(seelog.InfoLvl, func() { Infof(format, params...) }, logger.infof, format, params...) + logFormat(InfoLvl, func() { Infof(format, params...) }, logger.infof, format, params...) } // InfofStackDepth logs with format at the info level and the current stack depth plus the given depth func InfofStackDepth(depth int, format string, params ...interface{}) { currentLevel, _ := GetLogLevel() - if currentLevel > seelog.InfoLvl { + if currentLevel > InfoLvl { return } msg := fmt.Sprintf(format, params...) - log(seelog.InfoLvl, func() { InfoStackDepth(depth, msg) }, func(s string) { + log(InfoLvl, func() { InfoStackDepth(depth, msg) }, func(s string) { logger.infoStackDepth(s, depth) }, msg) } // InfocStackDepth logs at the info level with context and the current stack depth plus the additional given one func InfocStackDepth(message string, depth int, context ...interface{}) { - logContext(seelog.InfoLvl, func() { Infoc(message, context...) }, logger.info, message, depth, context...) + logContext(InfoLvl, func() { Infoc(message, context...) }, logger.info, message, depth, context...) } // Infoc logs at the info level with context @@ -871,32 +870,32 @@ func Infoc(message string, context ...interface{}) { // InfoFunc calls and logs the result of 'logFunc' if and only if Info (or more verbose) logs are enabled func InfoFunc(logFunc func() string) { currentLevel, _ := GetLogLevel() - if currentLevel <= seelog.InfoLvl { + if currentLevel <= InfoLvl { InfoStackDepth(2, logFunc()) } } // Warn logs at the warn level and returns an error containing the formated log message func Warn(v ...interface{}) error { - return logWithError(seelog.WarnLvl, func() { _ = Warn(v...) }, logger.warn, false, v...) + return logWithError(WarnLvl, func() { _ = Warn(v...) }, logger.warn, false, v...) } // Warnf logs with format at the warn level and returns an error containing the formated log message func Warnf(format string, params ...interface{}) error { - return logFormatWithError(seelog.WarnLvl, func() { _ = Warnf(format, params...) }, logger.warnf, format, false, params...) + return logFormatWithError(WarnLvl, func() { _ = Warnf(format, params...) }, logger.warnf, format, false, params...) } // WarnfStackDepth logs with format at the warn level and the current stack depth plus the given depth func WarnfStackDepth(depth int, format string, params ...interface{}) error { msg := fmt.Sprintf(format, params...) - return logWithError(seelog.WarnLvl, func() { _ = WarnStackDepth(depth, msg) }, func(s string) error { + return logWithError(WarnLvl, func() { _ = WarnStackDepth(depth, msg) }, func(s string) error { return logger.warnStackDepth(s, depth) }, false, msg) } // WarncStackDepth logs at the warn level with context and the current stack depth plus the additional given one and returns an error containing the formated log message func WarncStackDepth(message string, depth int, context ...interface{}) error { - return logContextWithError(seelog.WarnLvl, func() { _ = Warnc(message, context...) }, logger.warn, message, false, depth, context...) + return logContextWithError(WarnLvl, func() { _ = Warnc(message, context...) }, logger.warn, message, false, depth, context...) } // Warnc logs at the warn level with context and returns an error containing the formated log message @@ -907,32 +906,32 @@ func Warnc(message string, context ...interface{}) error { // WarnFunc calls and logs the result of 'logFunc' if and only if Warn (or more verbose) logs are enabled func WarnFunc(logFunc func() string) { currentLevel, _ := GetLogLevel() - if currentLevel <= seelog.WarnLvl { + if currentLevel <= WarnLvl { _ = WarnStackDepth(2, logFunc()) } } // Error logs at the error level and returns an error containing the formated log message func Error(v ...interface{}) error { - return logWithError(seelog.ErrorLvl, func() { _ = Error(v...) }, logger.error, true, v...) + return logWithError(ErrorLvl, func() { _ = Error(v...) }, logger.error, true, v...) } // Errorf logs with format at the error level and returns an error containing the formated log message func Errorf(format string, params ...interface{}) error { - return logFormatWithError(seelog.ErrorLvl, func() { _ = Errorf(format, params...) }, logger.errorf, format, true, params...) + return logFormatWithError(ErrorLvl, func() { _ = Errorf(format, params...) }, logger.errorf, format, true, params...) } // ErrorfStackDepth logs with format at the error level and the current stack depth plus the given depth func ErrorfStackDepth(depth int, format string, params ...interface{}) error { msg := fmt.Sprintf(format, params...) - return logWithError(seelog.ErrorLvl, func() { _ = ErrorStackDepth(depth, msg) }, func(s string) error { + return logWithError(ErrorLvl, func() { _ = ErrorStackDepth(depth, msg) }, func(s string) error { return logger.errorStackDepth(s, depth) }, true, msg) } // ErrorcStackDepth logs at the error level with context and the current stack depth plus the additional given one and returns an error containing the formated log message func ErrorcStackDepth(message string, depth int, context ...interface{}) error { - return logContextWithError(seelog.ErrorLvl, func() { _ = Errorc(message, context...) }, logger.error, message, true, depth, context...) + return logContextWithError(ErrorLvl, func() { _ = Errorc(message, context...) }, logger.error, message, true, depth, context...) } // Errorc logs at the error level with context and returns an error containing the formated log message @@ -943,32 +942,32 @@ func Errorc(message string, context ...interface{}) error { // ErrorFunc calls and logs the result of 'logFunc' if and only if Error (or more verbose) logs are enabled func ErrorFunc(logFunc func() string) { currentLevel, _ := GetLogLevel() - if currentLevel <= seelog.ErrorLvl { + if currentLevel <= ErrorLvl { _ = ErrorStackDepth(2, logFunc()) } } // Critical logs at the critical level and returns an error containing the formated log message func Critical(v ...interface{}) error { - return logWithError(seelog.CriticalLvl, func() { _ = Critical(v...) }, logger.critical, true, v...) + return logWithError(CriticalLvl, func() { _ = Critical(v...) }, logger.critical, true, v...) } // Criticalf logs with format at the critical level and returns an error containing the formated log message func Criticalf(format string, params ...interface{}) error { - return logFormatWithError(seelog.CriticalLvl, func() { _ = Criticalf(format, params...) }, logger.criticalf, format, true, params...) + return logFormatWithError(CriticalLvl, func() { _ = Criticalf(format, params...) }, logger.criticalf, format, true, params...) } // CriticalfStackDepth logs with format at the critical level and the current stack depth plus the given depth func CriticalfStackDepth(depth int, format string, params ...interface{}) error { msg := fmt.Sprintf(format, params...) - return logWithError(seelog.CriticalLvl, func() { _ = CriticalStackDepth(depth, msg) }, func(s string) error { + return logWithError(CriticalLvl, func() { _ = CriticalStackDepth(depth, msg) }, func(s string) error { return logger.criticalStackDepth(s, depth) }, false, msg) } // CriticalcStackDepth logs at the critical level with context and the current stack depth plus the additional given one and returns an error containing the formated log message func CriticalcStackDepth(message string, depth int, context ...interface{}) error { - return logContextWithError(seelog.CriticalLvl, func() { _ = Criticalc(message, context...) }, logger.critical, message, true, depth, context...) + return logContextWithError(CriticalLvl, func() { _ = Criticalc(message, context...) }, logger.critical, message, true, depth, context...) } // Criticalc logs at the critical level with context and returns an error containing the formated log message @@ -979,49 +978,49 @@ func Criticalc(message string, context ...interface{}) error { // CriticalFunc calls and logs the result of 'logFunc' if and only if Critical (or more verbose) logs are enabled func CriticalFunc(logFunc func() string) { currentLevel, _ := GetLogLevel() - if currentLevel <= seelog.CriticalLvl { + if currentLevel <= CriticalLvl { _ = CriticalStackDepth(2, logFunc()) } } // InfoStackDepth logs at the info level and the current stack depth plus the additional given one func InfoStackDepth(depth int, v ...interface{}) { - log(seelog.InfoLvl, func() { InfoStackDepth(depth, v...) }, func(s string) { + log(InfoLvl, func() { InfoStackDepth(depth, v...) }, func(s string) { logger.infoStackDepth(s, depth) }, v...) } // WarnStackDepth logs at the warn level and the current stack depth plus the additional given one and returns an error containing the formated log message func WarnStackDepth(depth int, v ...interface{}) error { - return logWithError(seelog.WarnLvl, func() { _ = WarnStackDepth(depth, v...) }, func(s string) error { + return logWithError(WarnLvl, func() { _ = WarnStackDepth(depth, v...) }, func(s string) error { return logger.warnStackDepth(s, depth) }, false, v...) } // DebugStackDepth logs at the debug level and the current stack depth plus the additional given one and returns an error containing the formated log message func DebugStackDepth(depth int, v ...interface{}) { - log(seelog.DebugLvl, func() { DebugStackDepth(depth, v...) }, func(s string) { + log(DebugLvl, func() { DebugStackDepth(depth, v...) }, func(s string) { logger.debugStackDepth(s, depth) }, v...) } // TraceStackDepth logs at the trace level and the current stack depth plus the additional given one and returns an error containing the formated log message func TraceStackDepth(depth int, v ...interface{}) { - log(seelog.TraceLvl, func() { TraceStackDepth(depth, v...) }, func(s string) { + log(TraceLvl, func() { TraceStackDepth(depth, v...) }, func(s string) { logger.traceStackDepth(s, depth) }, v...) } // ErrorStackDepth logs at the error level and the current stack depth plus the additional given one and returns an error containing the formated log message func ErrorStackDepth(depth int, v ...interface{}) error { - return logWithError(seelog.ErrorLvl, func() { _ = ErrorStackDepth(depth, v...) }, func(s string) error { + return logWithError(ErrorLvl, func() { _ = ErrorStackDepth(depth, v...) }, func(s string) error { return logger.errorStackDepth(s, depth) }, true, v...) } // CriticalStackDepth logs at the critical level and the current stack depth plus the additional given one and returns an error containing the formated log message func CriticalStackDepth(depth int, v ...interface{}) error { - return logWithError(seelog.CriticalLvl, func() { _ = CriticalStackDepth(depth, v...) }, func(s string) error { + return logWithError(CriticalLvl, func() { _ = CriticalStackDepth(depth, v...) }, func(s string) error { return logger.criticalStackDepth(s, depth) }, true, v...) } @@ -1032,15 +1031,15 @@ func CriticalStackDepth(depth int, v ...interface{}) error { // JMXError Logs for JMX check func JMXError(v ...interface{}) error { - return logWithError(seelog.ErrorLvl, func() { _ = JMXError(v...) }, jmxLogger.error, true, v...) + return logWithError(ErrorLvl, func() { _ = JMXError(v...) }, jmxLogger.error, true, v...) } // JMXInfo Logs func JMXInfo(v ...interface{}) { - log(seelog.InfoLvl, func() { JMXInfo(v...) }, jmxLogger.info, v...) + log(InfoLvl, func() { JMXInfo(v...) }, jmxLogger.info, v...) } // SetupJMXLogger setup JMXfetch specific logger -func SetupJMXLogger(i seelog.LoggerInterface, level string) { +func SetupJMXLogger(i LoggerInterface, level string) { jmxLogger.Store(setupCommonLogger(i, level)) } diff --git a/pkg/util/log/log_bench_test.go b/pkg/util/log/log_bench_test.go index 61ab1ec8ccbc3..bf700aae85e75 100644 --- a/pkg/util/log/log_bench_test.go +++ b/pkg/util/log/log_bench_test.go @@ -9,15 +9,13 @@ import ( "bufio" "bytes" "testing" - - "github.com/cihub/seelog" ) func BenchmarkLogVanilla(b *testing.B) { var buff bytes.Buffer w := bufio.NewWriter(&buff) - l, _ := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") + l, _ := LoggerFromWriterWithMinLevelAndFormat(w, DebugLvl, "[%LEVEL] %FuncShort: %Msg") for n := 0; n < b.N; n++ { l.Infof("this is a credential encoding uri: %s", "http://user:password@host:port") @@ -28,7 +26,7 @@ func BenchmarkLogVanillaLevels(b *testing.B) { var buff bytes.Buffer w := bufio.NewWriter(&buff) - l, _ := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.InfoLvl, "[%LEVEL] %FuncShort: %Msg") + l, _ := LoggerFromWriterWithMinLevelAndFormat(w, InfoLvl, "[%LEVEL] %FuncShort: %Msg") for n := 0; n < b.N; n++ { l.Debugf("this is a credential encoding uri: %s", "http://user:password@host:port") @@ -39,7 +37,7 @@ func BenchmarkLogScrubbing(b *testing.B) { var buff bytes.Buffer w := bufio.NewWriter(&buff) - l, _ := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") + l, _ := LoggerFromWriterWithMinLevelAndFormat(w, DebugLvl, "[%LEVEL] %FuncShort: %Msg") SetupLogger(l, "info") for n := 0; n < b.N; n++ { @@ -51,7 +49,7 @@ func BenchmarkLogScrubbingLevels(b *testing.B) { var buff bytes.Buffer w := bufio.NewWriter(&buff) - l, _ := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") + l, _ := LoggerFromWriterWithMinLevelAndFormat(w, DebugLvl, "[%LEVEL] %FuncShort: %Msg") SetupLogger(l, "info") for n := 0; n < b.N; n++ { @@ -64,8 +62,8 @@ func BenchmarkLogScrubbingMulti(b *testing.B) { wA := bufio.NewWriter(&buffA) wB := bufio.NewWriter(&buffB) - lA, _ := seelog.LoggerFromWriterWithMinLevelAndFormat(wA, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") - lB, _ := seelog.LoggerFromWriterWithMinLevelAndFormat(wB, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") + lA, _ := LoggerFromWriterWithMinLevelAndFormat(wA, DebugLvl, "[%LEVEL] %FuncShort: %Msg") + lB, _ := LoggerFromWriterWithMinLevelAndFormat(wB, DebugLvl, "[%LEVEL] %FuncShort: %Msg") SetupLogger(lA, "info") _ = RegisterAdditionalLogger("extra", lB) @@ -82,7 +80,7 @@ func BenchmarkLogWithContext(b *testing.B) { var buff bytes.Buffer w := bufio.NewWriter(&buff) - l, _ := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") + l, _ := LoggerFromWriterWithMinLevelAndFormat(w, DebugLvl, "[%LEVEL] %FuncShort: %Msg") SetupLogger(l, "info") for n := 0; n < b.N; n++ { diff --git a/pkg/util/log/log_not_serverless_test.go b/pkg/util/log/log_not_serverless_test.go index 5bc245912cc49..c684977738602 100644 --- a/pkg/util/log/log_not_serverless_test.go +++ b/pkg/util/log/log_not_serverless_test.go @@ -12,7 +12,6 @@ import ( "bytes" "testing" - "github.com/cihub/seelog" "github.com/stretchr/testify/assert" ) @@ -20,7 +19,7 @@ func TestServerlessLoggingNotInServerlessContext(t *testing.T) { var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevel(w, seelog.DebugLvl) + l, err := LoggerFromWriterWithMinLevel(w, DebugLvl) assert.NoError(t, err) SetupLogger(l, "debug") diff --git a/pkg/util/log/log_serverless_test.go b/pkg/util/log/log_serverless_test.go index cb9c2ed83b9a3..a6520631ce741 100644 --- a/pkg/util/log/log_serverless_test.go +++ b/pkg/util/log/log_serverless_test.go @@ -12,7 +12,6 @@ import ( "bytes" "testing" - "github.com/cihub/seelog" "github.com/stretchr/testify/assert" ) @@ -20,7 +19,7 @@ func TestServerlessLoggingInServerlessContext(t *testing.T) { var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevel(w, seelog.DebugLvl) + l, err := LoggerFromWriterWithMinLevel(w, DebugLvl) assert.NoError(t, err) SetupLogger(l, "debug") diff --git a/pkg/util/log/log_test.go b/pkg/util/log/log_test.go index b6af55dd37c7c..ca1bbf45d737a 100644 --- a/pkg/util/log/log_test.go +++ b/pkg/util/log/log_test.go @@ -49,7 +49,7 @@ func TestBasicLogging(t *testing.T) { w := bufio.NewWriter(&b) seelog.RegisterCustomFormatter("ExtraTextContext", createExtraTextContext) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %ExtraTextContext%Msg\n") + l, err := LoggerFromWriterWithMinLevelAndFormat(w, DebugLvl, "[%LEVEL] %FuncShort: %ExtraTextContext%Msg\n") assert.NoError(t, err) SetupLogger(l, "debug") @@ -108,7 +108,7 @@ func TestLogBuffer(t *testing.T) { var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") + l, err := LoggerFromWriterWithMinLevelAndFormat(w, DebugLvl, "[%LEVEL] %FuncShort: %Msg") assert.NoError(t, err) Tracef("%s", "foo") @@ -134,7 +134,7 @@ func TestLogBufferWithContext(t *testing.T) { var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") + l, err := LoggerFromWriterWithMinLevelAndFormat(w, DebugLvl, "[%LEVEL] %FuncShort: %Msg") assert.NoError(t, err) Tracec("baz", "number", 1, "str", "hello") @@ -170,7 +170,7 @@ func TestCredentialScrubbingLogging(t *testing.T) { var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") + l, err := LoggerFromWriterWithMinLevelAndFormat(w, DebugLvl, "[%LEVEL] %FuncShort: %Msg") assert.NoError(t, err) SetupLogger(l, "info") @@ -192,9 +192,9 @@ func TestExtraLogging(t *testing.T) { w := bufio.NewWriter(&a) wA := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %Msg") + l, err := LoggerFromWriterWithMinLevelAndFormat(w, DebugLvl, "[%LEVEL] %Msg") assert.NoError(t, err) - lA, err := seelog.LoggerFromWriterWithMinLevelAndFormat(wA, seelog.DebugLvl, "[%LEVEL] %Msg") + lA, err := LoggerFromWriterWithMinLevelAndFormat(wA, DebugLvl, "[%LEVEL] %Msg") assert.NoError(t, err) SetupLogger(l, "info") @@ -244,7 +244,7 @@ func TestWarnNotNil(t *testing.T) { assert.NotNil(t, Warn("test")) - l, _ := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.CriticalLvl, "[%LEVEL] %FuncShort: %Msg") + l, _ := LoggerFromWriterWithMinLevelAndFormat(w, CriticalLvl, "[%LEVEL] %FuncShort: %Msg") SetupLogger(l, "critical") assert.NotNil(t, Warn("test")) @@ -260,7 +260,7 @@ func TestWarnfNotNil(t *testing.T) { assert.NotNil(t, Warn("test")) - l, _ := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.CriticalLvl, "[%LEVEL] %FuncShort: %Msg") + l, _ := LoggerFromWriterWithMinLevelAndFormat(w, CriticalLvl, "[%LEVEL] %FuncShort: %Msg") SetupLogger(l, "critical") assert.NotNil(t, Warn("test")) @@ -277,7 +277,7 @@ func TestWarncNotNil(t *testing.T) { assert.NotNil(t, Warnc("test", "key", "val")) seelog.RegisterCustomFormatter("ExtraTextContext", createExtraTextContext) - l, _ := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.CriticalLvl, "[%LEVEL] %FuncShort: %ExtraTextContext%Msg") + l, _ := LoggerFromWriterWithMinLevelAndFormat(w, CriticalLvl, "[%LEVEL] %FuncShort: %ExtraTextContext%Msg") SetupLogger(l, "critical") assert.NotNil(t, Warnc("test", "key", "val")) @@ -293,7 +293,7 @@ func TestErrorNotNil(t *testing.T) { assert.NotNil(t, Error("test")) - l, _ := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.CriticalLvl, "[%LEVEL] %FuncShort: %Msg") + l, _ := LoggerFromWriterWithMinLevelAndFormat(w, CriticalLvl, "[%LEVEL] %FuncShort: %Msg") SetupLogger(l, "critical") assert.NotNil(t, Error("test")) @@ -309,7 +309,7 @@ func TestErrorfNotNil(t *testing.T) { assert.NotNil(t, Errorf("test")) - l, _ := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.CriticalLvl, "[%LEVEL] %FuncShort: %Msg") + l, _ := LoggerFromWriterWithMinLevelAndFormat(w, CriticalLvl, "[%LEVEL] %FuncShort: %Msg") SetupLogger(l, "critical") assert.NotNil(t, Errorf("test")) @@ -326,7 +326,7 @@ func TestErrorcNotNil(t *testing.T) { assert.NotNil(t, Errorc("test", "key", "val")) seelog.RegisterCustomFormatter("ExtraTextContext", createExtraTextContext) - l, _ := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.CriticalLvl, "[%LEVEL] %FuncShort: %ExtraTextContext%Msg") + l, _ := LoggerFromWriterWithMinLevelAndFormat(w, CriticalLvl, "[%LEVEL] %FuncShort: %ExtraTextContext%Msg") SetupLogger(l, "critical") assert.NotNil(t, Errorc("test", "key", "val")) @@ -342,7 +342,7 @@ func TestCriticalNotNil(t *testing.T) { assert.NotNil(t, Critical("test")) - l, _ := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.InfoLvl, "[%LEVEL] %FuncShort: %Msg") + l, _ := LoggerFromWriterWithMinLevelAndFormat(w, InfoLvl, "[%LEVEL] %FuncShort: %Msg") SetupLogger(l, "info") assert.NotNil(t, Critical("test")) @@ -354,7 +354,7 @@ func TestCriticalfNotNil(t *testing.T) { assert.NotNil(t, Criticalf("test")) - l, _ := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.InfoLvl, "[%LEVEL] %FuncShort: %Msg") + l, _ := LoggerFromWriterWithMinLevelAndFormat(w, InfoLvl, "[%LEVEL] %FuncShort: %Msg") SetupLogger(l, "info") assert.NotNil(t, Criticalf("test")) @@ -367,7 +367,7 @@ func TestCriticalcNotNil(t *testing.T) { assert.NotNil(t, Criticalc("test", "key", "val")) seelog.RegisterCustomFormatter("ExtraTextContext", createExtraTextContext) - l, _ := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.InfoLvl, "[%LEVEL] %FuncShort: %ExtraTextContext%Msg") + l, _ := LoggerFromWriterWithMinLevelAndFormat(w, InfoLvl, "[%LEVEL] %FuncShort: %ExtraTextContext%Msg") SetupLogger(l, "info") assert.NotNil(t, Criticalc("test", "key", "val")) @@ -377,7 +377,7 @@ func TestDebugFuncNoExecute(t *testing.T) { var b bytes.Buffer w := bufio.NewWriter(&b) - l, _ := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.InfoLvl, "[%LEVEL] %FuncShort: %Msg") + l, _ := LoggerFromWriterWithMinLevelAndFormat(w, InfoLvl, "[%LEVEL] %FuncShort: %Msg") SetupLogger(l, "info") i := 0 @@ -393,7 +393,7 @@ func TestDebugFuncExecute(t *testing.T) { var b bytes.Buffer w := bufio.NewWriter(&b) - l, _ := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.DebugLvl, "[%LEVEL] %FuncShort: %Msg") + l, _ := LoggerFromWriterWithMinLevelAndFormat(w, DebugLvl, "[%LEVEL] %FuncShort: %Msg") SetupLogger(l, "debug") i := 0 @@ -410,37 +410,37 @@ func TestDebugFuncExecute(t *testing.T) { func TestFuncVersions(t *testing.T) { cases := []struct { - seelogLevel seelog.LogLevel + seelogLevel LogLevel strLogLevel string logFunc func(func() string) expectedToBeCalled bool }{ - {seelog.ErrorLvl, "error", DebugFunc, false}, - {seelog.WarnLvl, "warn", DebugFunc, false}, - {seelog.InfoLvl, "info", DebugFunc, false}, - {seelog.DebugLvl, "debug", DebugFunc, true}, - {seelog.TraceLvl, "trace", DebugFunc, true}, + {ErrorLvl, "error", DebugFunc, false}, + {WarnLvl, "warn", DebugFunc, false}, + {InfoLvl, "info", DebugFunc, false}, + {DebugLvl, "debug", DebugFunc, true}, + {TraceLvl, "trace", DebugFunc, true}, - {seelog.TraceLvl, "trace", TraceFunc, true}, - {seelog.InfoLvl, "info", TraceFunc, false}, + {TraceLvl, "trace", TraceFunc, true}, + {InfoLvl, "info", TraceFunc, false}, - {seelog.InfoLvl, "info", InfoFunc, true}, - {seelog.WarnLvl, "warn", InfoFunc, false}, + {InfoLvl, "info", InfoFunc, true}, + {WarnLvl, "warn", InfoFunc, false}, - {seelog.WarnLvl, "warn", WarnFunc, true}, - {seelog.ErrorLvl, "error", WarnFunc, false}, + {WarnLvl, "warn", WarnFunc, true}, + {ErrorLvl, "error", WarnFunc, false}, - {seelog.ErrorLvl, "error", ErrorFunc, true}, - {seelog.CriticalLvl, "critical", ErrorFunc, false}, + {ErrorLvl, "error", ErrorFunc, true}, + {CriticalLvl, "critical", ErrorFunc, false}, - {seelog.CriticalLvl, "critical", CriticalFunc, true}, + {CriticalLvl, "critical", CriticalFunc, true}, } for _, tc := range cases { var b bytes.Buffer w := bufio.NewWriter(&b) - l, _ := seelog.LoggerFromWriterWithMinLevelAndFormat(w, tc.seelogLevel, "[%LEVEL] %FuncShort: %Msg") + l, _ := LoggerFromWriterWithMinLevelAndFormat(w, tc.seelogLevel, "[%LEVEL] %FuncShort: %Msg") SetupLogger(l, tc.strLogLevel) i := 0 @@ -463,16 +463,16 @@ func TestStackDepthfLogging(t *testing.T) { const stackDepth = 1 cases := []struct { - seelogLevel seelog.LogLevel + seelogLevel LogLevel strLogLevel string expectedToBeCalled int }{ - {seelog.CriticalLvl, "critical", 1}, - {seelog.ErrorLvl, "error", 2}, - {seelog.WarnLvl, "warn", 3}, - {seelog.InfoLvl, "info", 4}, - {seelog.DebugLvl, "debug", 5}, - {seelog.TraceLvl, "trace", 6}, + {CriticalLvl, "critical", 1}, + {ErrorLvl, "error", 2}, + {WarnLvl, "warn", 3}, + {InfoLvl, "info", 4}, + {DebugLvl, "debug", 5}, + {TraceLvl, "trace", 6}, } for _, tc := range cases { @@ -480,7 +480,7 @@ func TestStackDepthfLogging(t *testing.T) { var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, tc.seelogLevel, "[%LEVEL] %Func: %Msg\n") + l, err := LoggerFromWriterWithMinLevelAndFormat(w, tc.seelogLevel, "[%LEVEL] %Func: %Msg\n") assert.NoError(t, err) SetupLogger(l, tc.strLogLevel) @@ -529,7 +529,7 @@ func getFuncName(val reflect.Value) (string, error) { func TestLoggerScrubbingCount(t *testing.T) { var b bytes.Buffer w := bufio.NewWriter(&b) - l, err := seelog.LoggerFromWriterWithMinLevelAndFormat(w, seelog.TraceLvl, "[%LEVEL] %FuncShort: %Msg") + l, err := LoggerFromWriterWithMinLevelAndFormat(w, TraceLvl, "[%LEVEL] %FuncShort: %Msg") require.NoError(t, err) SetupLogger(l, "trace") diff --git a/pkg/util/log/log_test_init.go b/pkg/util/log/log_test_init.go index 7dd6bcd7e3c7c..b1b5e3bbedba2 100644 --- a/pkg/util/log/log_test_init.go +++ b/pkg/util/log/log_test_init.go @@ -9,8 +9,6 @@ package log import ( "os" - - "github.com/cihub/seelog" ) func init() { @@ -18,5 +16,5 @@ func init() { if level == "" { level = "debug" } - SetupLogger(seelog.Default, level) + SetupLogger(Default(), level) } diff --git a/pkg/util/log/logger.go b/pkg/util/log/logger.go new file mode 100644 index 0000000000000..5de956c854f07 --- /dev/null +++ b/pkg/util/log/logger.go @@ -0,0 +1,35 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package log + +import ( + "io" + + "github.com/cihub/seelog" +) + +// LoggerInterface provides basic logging methods. +type LoggerInterface seelog.LoggerInterface + +// Default returns a default logger +func Default() LoggerInterface { + return seelog.Default +} + +// Disabled returns a disabled logger +func Disabled() LoggerInterface { + return seelog.Disabled +} + +// LoggerFromWriterWithMinLevelAndFormat creates a new logger from a writer, a minimum log level and a format. +func LoggerFromWriterWithMinLevelAndFormat(output io.Writer, minLevel LogLevel, format string) (LoggerInterface, error) { + return seelog.LoggerFromWriterWithMinLevelAndFormat(output, seelog.LogLevel(minLevel), format) +} + +// LoggerFromWriterWithMinLevel creates a new logger from a writer and a minimum log level. +func LoggerFromWriterWithMinLevel(output io.Writer, minLevel LogLevel) (LoggerInterface, error) { + return seelog.LoggerFromWriterWithMinLevel(output, seelog.LogLevel(minLevel)) +} diff --git a/pkg/util/log/setup/log.go b/pkg/util/log/setup/log.go index 959918853ba55..87b8a27da455a 100644 --- a/pkg/util/log/setup/log.go +++ b/pkg/util/log/setup/log.go @@ -246,29 +246,29 @@ type logWriter struct { } // NewLogWriter returns a logWriter set with given logLevel. Returns an error if logLevel is unknown/not set. -func NewLogWriter(additionalDepth int, logLevel seelog.LogLevel) (io.Writer, error) { +func NewLogWriter(additionalDepth int, logLevel log.LogLevel) (io.Writer, error) { writer := &logWriter{ additionalDepth: additionalDepth, } switch logLevel { - case seelog.TraceLvl: + case log.TraceLvl: writer.logFunc = log.TraceStackDepth - case seelog.DebugLvl: + case log.DebugLvl: writer.logFunc = log.DebugStackDepth - case seelog.InfoLvl: + case log.InfoLvl: writer.logFunc = log.InfoStackDepth - case seelog.WarnLvl: + case log.WarnLvl: writer.logFunc = func(dept int, v ...interface{}) { _ = log.WarnStackDepth(dept, v...) } writer.additionalDepth++ - case seelog.ErrorLvl: + case log.ErrorLvl: writer.logFunc = func(dept int, v ...interface{}) { _ = log.ErrorStackDepth(dept, v...) } writer.additionalDepth++ - case seelog.CriticalLvl: + case log.CriticalLvl: writer.logFunc = func(dept int, v ...interface{}) { _ = log.CriticalStackDepth(dept, v...) } @@ -294,7 +294,7 @@ type tlsHandshakeErrorWriter struct { } // NewTLSHandshakeErrorWriter is a wrapper function which creates a new logWriter. -func NewTLSHandshakeErrorWriter(additionalDepth int, logLevel seelog.LogLevel) (io.Writer, error) { +func NewTLSHandshakeErrorWriter(additionalDepth int, logLevel log.LogLevel) (io.Writer, error) { logWriter, err := NewLogWriter(additionalDepth, logLevel) if err != nil { return nil, err diff --git a/pkg/util/log/zap/zapcore.go b/pkg/util/log/zap/zapcore.go index 576e443557f21..4d77c3e1c8612 100644 --- a/pkg/util/log/zap/zapcore.go +++ b/pkg/util/log/zap/zapcore.go @@ -7,7 +7,6 @@ package log import ( - "github.com/cihub/seelog" "go.uber.org/zap/zapcore" "github.com/DataDog/datadog-agent/pkg/util/log" @@ -20,18 +19,18 @@ type core struct { } func (c *core) Enabled(level zapcore.Level) bool { - var seelogLevel seelog.LogLevel + var seelogLevel log.LogLevel switch level { case zapcore.DebugLevel: - seelogLevel = seelog.DebugLvl + seelogLevel = log.DebugLvl case zapcore.InfoLevel: - seelogLevel = seelog.InfoLvl + seelogLevel = log.InfoLvl case zapcore.WarnLevel: - seelogLevel = seelog.WarnLvl + seelogLevel = log.WarnLvl case zapcore.ErrorLevel: - seelogLevel = seelog.ErrorLvl + seelogLevel = log.ErrorLvl case zapcore.DPanicLevel, zapcore.PanicLevel, zapcore.FatalLevel: - seelogLevel = seelog.CriticalLvl + seelogLevel = log.CriticalLvl } return log.ShouldLog(seelogLevel) } diff --git a/pkg/util/winutil/eventlog/subscription/subscription_test.go b/pkg/util/winutil/eventlog/subscription/subscription_test.go index bc59447aec2b7..f9ba0b1cca496 100644 --- a/pkg/util/winutil/eventlog/subscription/subscription_test.go +++ b/pkg/util/winutil/eventlog/subscription/subscription_test.go @@ -13,11 +13,10 @@ import ( "testing" pkglog "github.com/DataDog/datadog-agent/pkg/util/log" - "github.com/cihub/seelog" - "github.com/DataDog/datadog-agent/pkg/util/winutil/eventlog/api" - "github.com/DataDog/datadog-agent/pkg/util/winutil/eventlog/bookmark" - "github.com/DataDog/datadog-agent/pkg/util/winutil/eventlog/test" + evtapi "github.com/DataDog/datadog-agent/pkg/util/winutil/eventlog/api" + evtbookmark "github.com/DataDog/datadog-agent/pkg/util/winutil/eventlog/bookmark" + eventlog_test "github.com/DataDog/datadog-agent/pkg/util/winutil/eventlog/test" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -31,7 +30,7 @@ var debuglogFlag = flag.Bool("debuglog", false, "Enable seelog debug logging") func optEnableDebugLogging() { // Enable logger if *debuglogFlag { - pkglog.SetupLogger(seelog.Default, "debug") + pkglog.SetupLogger(pkglog.Default(), "debug") } } diff --git a/pkg/util/winutil/go.mod b/pkg/util/winutil/go.mod index 801288c667f47..1facedf93843c 100644 --- a/pkg/util/winutil/go.mod +++ b/pkg/util/winutil/go.mod @@ -9,7 +9,6 @@ replace ( require ( github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 - github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 github.com/fsnotify/fsnotify v1.8.0 github.com/stretchr/testify v1.10.0 go.uber.org/atomic v1.11.0 @@ -19,6 +18,7 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect + github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect From 6b70b84aebd4b35f9661d0fb3fe97dbe6f90dddf Mon Sep 17 00:00:00 2001 From: "John L. Peterson (Jack)" Date: Wed, 11 Dec 2024 11:03:12 -0500 Subject: [PATCH 403/439] add missing variable to collector.update task (#31989) --- tasks/collector.py | 1 + test/otel/testdata/ocb_build_script.sh | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/tasks/collector.py b/tasks/collector.py index a5da1a784b8d1..cc684ea42623b 100644 --- a/tasks/collector.py +++ b/tasks/collector.py @@ -478,6 +478,7 @@ def update_files(self): "./comp/otelcol/collector/impl/collector.go", "./tasks/collector.py", "./.gitlab/integration_test/otel.yml", + "./test/otel/testdata/ocb_build_script.sh", ] for root, _, files in os.walk("./tasks/unit_tests/testdata/collector"): for file in files: diff --git a/test/otel/testdata/ocb_build_script.sh b/test/otel/testdata/ocb_build_script.sh index 43dd7b34be343..9f451624eb3ae 100755 --- a/test/otel/testdata/ocb_build_script.sh +++ b/test/otel/testdata/ocb_build_script.sh @@ -19,7 +19,7 @@ cp ./test/otel/testdata/collector-config.yaml /tmp/otel-ci/ cp ./tools/ci/retry.sh /tmp/otel-ci/ chmod +x /tmp/otel-ci/retry.sh -OCB_VERSION="0.114.0" +OCB_VERSION="0.115.0" CGO_ENABLED=0 go install -trimpath -ldflags="-s -w" go.opentelemetry.io/collector/cmd/builder@v${OCB_VERSION} mv "$(go env GOPATH)/bin/builder" /tmp/otel-ci/ocb From ab1dbf473c0313819bff37e2e5e04a870a495789 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillermo=20Juli=C3=A1n?= Date: Wed, 11 Dec 2024 17:32:55 +0100 Subject: [PATCH 404/439] [EBPF] Ignore unchanged programs when calculating complexity changes (#32015) --- tasks/ebpf.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/tasks/ebpf.py b/tasks/ebpf.py index dc84b410e43d0..711639cebd073 100644 --- a/tasks/ebpf.py +++ b/tasks/ebpf.py @@ -804,6 +804,7 @@ def _try_delete_github_comment(msg: str): max_complexity_abs_change = -9e9 threshold_for_max_limit = 0.85 programs_now_below_limit, programs_now_above_limit = 0, 0 + has_programs_with_changes = False for program, entries in sorted(program_complexity.items(), key=lambda x: max(e[2] for e in x[1])): avg_new_complexity, avg_old_complexity = 0, 0 highest_new_complexity, highest_old_complexity = 0, 0 @@ -833,8 +834,11 @@ def _try_delete_github_comment(msg: str): programs_now_above_limit += 1 abs_change = new_complexity - old_complexity - max_complexity_rel_change = max(max_complexity_rel_change, abs_change / old_complexity) - max_complexity_abs_change = max(max_complexity_abs_change, abs_change) + + if abs_change != 0: + max_complexity_rel_change = max(max_complexity_rel_change, abs_change / old_complexity) + max_complexity_abs_change = max(max_complexity_abs_change, abs_change) + has_programs_with_changes = True avg_new_complexity /= len(entries) avg_old_complexity /= len(entries) @@ -854,6 +858,12 @@ def _try_delete_github_comment(msg: str): ] summarized_complexity_changes.append(row) + # Reset the max values if we have no programs with changes, as we don't want the -9e9 values + # which are used as the initial values + if not has_programs_with_changes: + max_complexity_abs_change = 0 + max_complexity_rel_change = 0 + headers = ["Program", "Avg. complexity", "Distro with highest complexity", "Distro with lowest complexity"] summarized_complexity_changes = sorted(summarized_complexity_changes, key=lambda x: x[0]) From cbae694698bcd55bf801259c641ea597f9be5ba3 Mon Sep 17 00:00:00 2001 From: Daniel Tafoya <63120739+daniel-taf@users.noreply.github.com> Date: Wed, 11 Dec 2024 11:35:40 -0500 Subject: [PATCH 405/439] [PROCS-4568] Split ECS Fargate e2e test (#31990) --- test/new-e2e/tests/process/fargate_test.go | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/test/new-e2e/tests/process/fargate_test.go b/test/new-e2e/tests/process/fargate_test.go index 709139df4cdb0..695500ca7a8fe 100644 --- a/test/new-e2e/tests/process/fargate_test.go +++ b/test/new-e2e/tests/process/fargate_test.go @@ -73,14 +73,27 @@ func (s *ECSFargateSuite) TestProcessCheck() { assertContainersCollected(t, payloads, []string{"stress-ng"}) } -func (s *ECSFargateSuite) TestProcessCheckInCoreAgent() { - t := s.T() +type ECSFargateCoreAgentSuite struct { + e2e.BaseSuite[environments.ECS] +} + +func TestECSFargateCoreAgentTestSuite(t *testing.T) { + t.Parallel() + s := ECSFargateCoreAgentSuite{} extraConfig := runner.ConfigMap{ "ddagent:extraEnvVars": auto.ConfigValue{Value: "DD_PROCESS_CONFIG_RUN_IN_CORE_AGENT_ENABLED=true"}, } + e2eParams := []e2e.SuiteOption{e2e.WithProvisioner( + getFargateProvisioner(extraConfig), + ), + } + + e2e.Run(t, &s, e2eParams...) +} - s.UpdateEnv(getFargateProvisioner(extraConfig)) +func (s *ECSFargateCoreAgentSuite) TestProcessCheckInCoreAgent() { + t := s.T() // Flush fake intake to remove any payloads which may have s.Env().FakeIntake.Client().FlushServerAndResetAggregators() From 1ad15a5a58c7534f0ff2f265a43e308c518fb8e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20Beauz=C3=A9e-Luyssen?= Date: Wed, 11 Dec 2024 17:36:11 +0100 Subject: [PATCH 406/439] omnibus cache: simplify the build images handling (#32021) --- tasks/libs/common/omnibus.py | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/tasks/libs/common/omnibus.py b/tasks/libs/common/omnibus.py index b789b287da611..b60b710ff384b 100644 --- a/tasks/libs/common/omnibus.py +++ b/tasks/libs/common/omnibus.py @@ -11,13 +11,6 @@ from tasks.release import _get_release_json_value -def _get_build_images(ctx): - # We intentionally include both build images & their test suffixes in the pattern - # as a test image and the merged version shouldn't share their cache - tags = ctx.run("grep -E 'DATADOG_AGENT_.*BUILDIMAGES' .gitlab-ci.yml | cut -d ':' -f 2", hide='stdout').stdout - return (t.strip() for t in tags.splitlines()) - - def _get_omnibus_commits(field): if 'RELEASE_VERSION' in os.environ: release_version = os.environ['RELEASE_VERSION'] @@ -211,9 +204,7 @@ def omnibus_compute_cache_key(ctx): h = hashlib.sha1() omnibus_last_changes = _last_omnibus_changes(ctx) h.update(str.encode(omnibus_last_changes)) - buildimages_hash = _get_build_images(ctx) - for img_hash in buildimages_hash: - h.update(str.encode(img_hash)) + h.update(str.encode(os.getenv('CI_JOB_IMAGE', 'local_build'))) omnibus_ruby_commit = _get_omnibus_commits('OMNIBUS_RUBY_VERSION') omnibus_software_commit = _get_omnibus_commits('OMNIBUS_SOFTWARE_VERSION') print(f'Omnibus ruby commit: {omnibus_ruby_commit}') From 49325ca36da43ab0c2cd3d5201a228e4190d7ef3 Mon Sep 17 00:00:00 2001 From: Yang Song Date: Wed, 11 Dec 2024 11:36:35 -0500 Subject: [PATCH 407/439] [chore] ignore otel collector package updates in dependabot (#32024) --- .github/dependabot.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index fbbec5da82991..7eb0cdbc4e0dc 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -27,6 +27,9 @@ updates: - dependency-name: github.com/ugorji/go # Ignore internal modules - dependency-name: github.com/DataDog/datadog-agent/* + # OpenTelemetry collector packages need to be updated with inv rather than dependabot + - dependency-name: go.opentelemetry.io/collector/* + - dependency-name: github.com/open-telemetry/opentelemetry-collector-contrib/* schedule: interval: weekly open-pull-requests-limit: 100 @@ -52,6 +55,9 @@ updates: - dependency-name: github.com/DataDog/datadog-agent/* # See https://github.com/DataDog/datadog-agent/pull/10112 - dependency-name: github.com/mailru/easyjson + # OpenTelemetry collector packages need to be updated with inv rather than dependabot + - dependency-name: go.opentelemetry.io/collector/* + - dependency-name: github.com/open-telemetry/opentelemetry-collector-contrib/* schedule: interval: weekly open-pull-requests-limit: 100 From 56658fee3937e50cae033381d308c96880b91faa Mon Sep 17 00:00:00 2001 From: Steven Blumenthal Date: Wed, 11 Dec 2024 17:36:58 +0100 Subject: [PATCH 408/439] Add changelog entry for kube_cache_sync_timeout_seconds change (#32002) --- ...sync-timeout-seconds-default-0bb13defed7ae192.yaml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 releasenotes/notes/kube-cache-sync-timeout-seconds-default-0bb13defed7ae192.yaml diff --git a/releasenotes/notes/kube-cache-sync-timeout-seconds-default-0bb13defed7ae192.yaml b/releasenotes/notes/kube-cache-sync-timeout-seconds-default-0bb13defed7ae192.yaml new file mode 100644 index 0000000000000..d79275c25c19b --- /dev/null +++ b/releasenotes/notes/kube-cache-sync-timeout-seconds-default-0bb13defed7ae192.yaml @@ -0,0 +1,11 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +other: + - | + Bumps the default value for `kube_cache_sync_timeout_seconds` from 5 to 10 seconds. From 56af0cab095ed4214eddbde54d6bb21096a4cdec Mon Sep 17 00:00:00 2001 From: "John L. Peterson (Jack)" Date: Wed, 11 Dec 2024 11:58:08 -0500 Subject: [PATCH 409/439] add collector update PR inv task and fix inv collector.update (#31545) Co-authored-by: github-actions[bot] --- .github/CODEOWNERS | 28 +++++---- .../collector-generate-and-update.yml | 60 +++++-------------- tasks/collector.py | 56 ++++++++++++++++- tasks/libs/ciproviders/github_api.py | 6 +- 4 files changed, 87 insertions(+), 63 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 4647c2ede6ae0..1569d87fd96ef 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -50,19 +50,20 @@ /.circleci/ @DataDog/agent-devx-infra -/.github/CODEOWNERS # do not notify anyone -/.github/*_TEMPLATE.md @DataDog/agent-devx-loops -/.github/dependabot.yaml @DataDog/agent-devx-infra -/.github/workflows/serverless-benchmarks.yml @DataDog/serverless @Datadog/serverless-aws -/.github/workflows/serverless-binary-size.yml @DataDog/serverless @Datadog/serverless-aws -/.github/workflows/serverless-integration.yml @DataDog/serverless @Datadog/serverless-aws -/.github/workflows/cws-btfhub-sync.yml @DataDog/agent-security -/.github/workflows/gohai.yml @DataDog/agent-shared-components -/.github/workflows/go-update-commenter.yml @DataDog/agent-shared-components -/.github/workflows/buildimages-update.yml @DataDog/agent-delivery @DataDog/agent-shared-components - -/.run @DataDog/agent-devx-loops -/.run/docker/ @DataDog/container-integrations @DataDog/container-platform +/.github/CODEOWNERS # do not notify anyone +/.github/*_TEMPLATE.md @DataDog/agent-devx-loops +/.github/dependabot.yaml @DataDog/agent-devx-infra +/.github/workflows/serverless-benchmarks.yml @DataDog/serverless @Datadog/serverless-aws +/.github/workflows/serverless-binary-size.yml @DataDog/serverless @Datadog/serverless-aws +/.github/workflows/serverless-integration.yml @DataDog/serverless @Datadog/serverless-aws +/.github/workflows/cws-btfhub-sync.yml @DataDog/agent-security +/.github/workflows/gohai.yml @DataDog/agent-shared-components +/.github/workflows/go-update-commenter.yml @DataDog/agent-shared-components +/.github/workflows/buildimages-update.yml @DataDog/agent-delivery @DataDog/agent-shared-components +/.github/workflows/collector-generate-and-update.yml @DataDog/opentelemetry + +/.run @DataDog/agent-devx-loops +/.run/docker/ @DataDog/container-integrations @DataDog/container-platform # Gitlab files # Files containing job contents are owned by teams in charge of the jobs + agent-devx-infra or agent-delivery @@ -572,6 +573,7 @@ /tasks/winbuildscripts/ @DataDog/windows-agent /tasks/winbuild.py @DataDog/windows-agent /tasks/windows_resources.py @DataDog/windows-agent +/tasks/collector.py @DataDog/opentelemetry /tasks/components.py @DataDog/agent-shared-components /tasks/components_templates @DataDog/agent-shared-components /tasks/libs/ciproviders/ @DataDog/agent-devx-infra diff --git a/.github/workflows/collector-generate-and-update.yml b/.github/workflows/collector-generate-and-update.yml index b0d3326cc44b2..8852a0ca424c0 100644 --- a/.github/workflows/collector-generate-and-update.yml +++ b/.github/workflows/collector-generate-and-update.yml @@ -11,62 +11,30 @@ jobs: permissions: pull-requests: write steps: - - name: Set date - id: date - run: echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT - - name: Checkout repository uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - name: Set up Python uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 with: - python-version: '3.12.6' + python-version: 3.12 + cache: 'pip' + + - name: Set up Go + uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0 + with: + go-version: '1.22.8' - - name: Install dependencies + - name: Install Dependencies run: | - python -m pip install --upgrade pip + python3 -m pip install --upgrade pip pip install -r requirements.txt - - name: Run update task - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: inv -e collector.update - - - name: Run generate task + - name: Run Collector Update Script env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: inv -e collector.generate - - - name: Check for changes - id: check_changes - run: | - git config --global user.name "github-actions[bot]" - git config --global user.email "github-actions[bot]@users.noreply.github.com" - git add . - if git diff-index --quiet HEAD; then - echo "No changes detected" - echo "changes_detected=false" >> $GITHUB_OUTPUT - else - echo "Changes detected" - echo "changes_detected=true" >> $GITHUB_OUTPUT - fi - - - name: Commit changes - if: steps.check_changes.outputs.changes_detected == 'true' - run: | - git switch -c update-otel-collector-dependencies-${{ steps.date.outputs.date }} - git commit -m "Update OTel Collector dependencies and generate OTel Agent" - git push -u origin update-otel-collector-dependencies-${{ steps.date.outputs.date }} - - - name: Install GitHub CLI - if: steps.check_changes.outputs.changes_detected == 'true' - run: | - sudo apt-get update - sudo apt-get install gh - - - name: Create draft pull request - if: steps.check_changes.outputs.changes_detected == 'true' run: | - gh auth login --with-token <<< ${{ secrets.GITHUB_TOKEN }} - gh pr create --title "Update OTel collector dependencies" --body "This PR updates the OTel Collector dependencies to the latest version. Please ensure that all tests pass before marking ready for review." --base main --head update-otel-collector-dependencies-${{ steps.date.outputs.date }} --draft + inv -e collector.update + inv -e collector.generate + inv -e generate-licenses + inv -e collector.pull-request diff --git a/tasks/collector.py b/tasks/collector.py index cc684ea42623b..e4dbd4ae4d68d 100644 --- a/tasks/collector.py +++ b/tasks/collector.py @@ -14,6 +14,7 @@ from tasks.go import tidy from tasks.libs.ciproviders.github_api import GithubAPI from tasks.libs.common.color import Color, color_message +from tasks.libs.common.git import check_uncommitted_changes LICENSE_HEADER = """// Unless explicitly stated otherwise all files in this repository are licensed // under the Apache License Version 2.0. @@ -480,8 +481,8 @@ def update_files(self): "./.gitlab/integration_test/otel.yml", "./test/otel/testdata/ocb_build_script.sh", ] - for root, _, files in os.walk("./tasks/unit_tests/testdata/collector"): - for file in files: + for root, _, testfiles in os.walk("./tasks/unit_tests/testdata/collector"): + for file in testfiles: files.append(os.path.join(root, file)) collector_version = self.core_collector.get_version()[1:] for file in files: @@ -499,3 +500,54 @@ def update(ctx): updater = CollectorVersionUpdater() updater.update() print("Update complete.") + + +def get_git_config(key): + result = subprocess.run(['git', 'config', '--get', key], capture_output=True, text=True) + return result.stdout.strip() if result.returncode == 0 else None + + +def set_git_config(key, value): + subprocess.run(['git', 'config', key, value]) + + +def revert_git_config(original_config): + for key, value in original_config.items(): + if value is None: + subprocess.run(['git', 'config', '--unset', key]) + else: + subprocess.run(['git', 'config', key, value]) + + +@task() +def pull_request(ctx): + # Save current Git configuration + original_config = {'user.name': get_git_config('user.name'), 'user.email': get_git_config('user.email')} + + try: + # Set new Git configuration + set_git_config('user.name', 'github-actions[bot]') + set_git_config('user.email', 'github-actions[bot]@users.noreply.github.com') + + # Perform Git operations + ctx.run('git add .') + if check_uncommitted_changes(ctx): + branch_name = f"update-otel-collector-dependencies-{OCB_VERSION}" + ctx.run(f'git switch -c {branch_name}') + ctx.run( + f'git commit -m "Update OTel Collector dependencies to {OCB_VERSION} and generate OTel Agent" --no-verify' + ) + ctx.run(f'git push -u origin {branch_name} --no-verify') # skip pre-commit hook if installed locally + gh = GithubAPI() + gh.create_pr( + pr_title=f"Update OTel Collector dependencies to v{OCB_VERSION}", + pr_body=f"This PR updates the dependencies of the OTel Collector to v{OCB_VERSION} and generates the OTel Agent code.", + target_branch=branch_name, + base_branch="main", + draft=True, + ) + else: + print("No changes detected, skipping PR creation.") + finally: + # Revert to original Git configuration + revert_git_config(original_config) diff --git a/tasks/libs/ciproviders/github_api.py b/tasks/libs/ciproviders/github_api.py index 4021b5d7937e5..a32546d23ee38 100644 --- a/tasks/libs/ciproviders/github_api.py +++ b/tasks/libs/ciproviders/github_api.py @@ -64,11 +64,13 @@ def get_branch(self, branch_name): return None raise e - def create_pr(self, pr_title, pr_body, base_branch, target_branch): + def create_pr(self, pr_title, pr_body, base_branch, target_branch, draft=False): """ Creates a PR in the given Github repository. """ - return self._repository.create_pull(title=pr_title, body=pr_body, base=base_branch, head=target_branch) + return self._repository.create_pull( + title=pr_title, body=pr_body, base=base_branch, head=target_branch, draft=draft + ) def update_pr(self, pull_number, milestone_number, labels): """ From e49efd5a1b34f2f86d5c5b7d46d41c95a9c90fe7 Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Wed, 11 Dec 2024 18:00:31 +0100 Subject: [PATCH 410/439] [CWS] make the security-agent use the remote workload meta only (#32009) --- cmd/security-agent/main_windows.go | 13 ++----------- cmd/security-agent/subcommands/start/command.go | 12 +++--------- pkg/config/setup/config.go | 1 - 3 files changed, 5 insertions(+), 21 deletions(-) diff --git a/cmd/security-agent/main_windows.go b/cmd/security-agent/main_windows.go index 6aa47f99d56b4..b81223e6aebc1 100644 --- a/cmd/security-agent/main_windows.go +++ b/cmd/security-agent/main_windows.go @@ -121,17 +121,8 @@ func (s *service) Run(svcctx context.Context) error { // workloadmeta setup wmcatalog.GetCatalog(), - workloadmetafx.ModuleWithProvider(func(config config.Component) workloadmeta.Params { - - catalog := workloadmeta.NodeAgent - - if config.GetBool("security_agent.remote_workloadmeta") { - catalog = workloadmeta.Remote - } - - return workloadmeta.Params{ - AgentType: catalog, - } + workloadmetafx.Module(workloadmeta.Params{ + AgentType: workloadmeta.Remote, }), fx.Provide(func(log log.Component, config config.Component, statsd statsd.Component, wmeta workloadmeta.Component) (status.InformationProvider, *agent.RuntimeSecurityAgent, error) { stopper := startstop.NewSerialStopper() diff --git a/cmd/security-agent/subcommands/start/command.go b/cmd/security-agent/subcommands/start/command.go index 6dec7ce712a4e..8386100c0031b 100644 --- a/cmd/security-agent/subcommands/start/command.go +++ b/cmd/security-agent/subcommands/start/command.go @@ -48,7 +48,7 @@ import ( remoteTaggerfx "github.com/DataDog/datadog-agent/comp/core/tagger/fx-remote" taggerTypes "github.com/DataDog/datadog-agent/comp/core/tagger/types" "github.com/DataDog/datadog-agent/comp/core/telemetry" - wmcatalog "github.com/DataDog/datadog-agent/comp/core/workloadmeta/collectors/catalog" + wmcatalog "github.com/DataDog/datadog-agent/comp/core/workloadmeta/collectors/catalog-remote" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" workloadmetafx "github.com/DataDog/datadog-agent/comp/core/workloadmeta/fx" "github.com/DataDog/datadog-agent/comp/dogstatsd" @@ -104,14 +104,8 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { dogstatsd.ClientBundle, // workloadmeta setup wmcatalog.GetCatalog(), - workloadmetafx.ModuleWithProvider(func(config config.Component) workloadmeta.Params { - catalog := workloadmeta.NodeAgent - if config.GetBool("security_agent.remote_workloadmeta") { - catalog = workloadmeta.Remote - } - return workloadmeta.Params{ - AgentType: catalog, - } + workloadmetafx.Module(workloadmeta.Params{ + AgentType: workloadmeta.Remote, }), remoteTaggerfx.Module(tagger.RemoteParams{ RemoteTarget: func(c config.Component) (string, error) { diff --git a/pkg/config/setup/config.go b/pkg/config/setup/config.go index a19de1ebed171..da2fb45d704bb 100644 --- a/pkg/config/setup/config.go +++ b/pkg/config/setup/config.go @@ -898,7 +898,6 @@ func InitConfig(config pkgconfigmodel.Setup) { config.BindEnvAndSetDefault("security_agent.cmd_port", DefaultSecurityAgentCmdPort) config.BindEnvAndSetDefault("security_agent.expvar_port", 5011) config.BindEnvAndSetDefault("security_agent.log_file", DefaultSecurityAgentLogFile) - config.BindEnvAndSetDefault("security_agent.remote_workloadmeta", true) // debug config to enable a remote client to receive data from the workloadmeta agent without a timeout config.BindEnvAndSetDefault("workloadmeta.remote.recv_without_timeout", true) From 14eca6c8f963050fdd58e759a8bb78404fe884d4 Mon Sep 17 00:00:00 2001 From: Guillaume Pagnoux Date: Wed, 11 Dec 2024 18:48:34 +0100 Subject: [PATCH 411/439] discovery: put service name generated from container tags in a separate field (#31951) --- .../corechecks/servicediscovery/events.go | 4 + .../servicediscovery/events_test.go | 52 ++++--- .../corechecks/servicediscovery/impl_linux.go | 4 + .../servicediscovery/impl_linux_test.go | 142 +++++++++++------- .../servicediscovery/model/model.go | 32 ++-- .../servicediscovery/module/impl_linux.go | 27 ++-- .../module/impl_linux_test.go | 26 +++- .../servicediscovery/usm/service.go | 2 - 8 files changed, 178 insertions(+), 111 deletions(-) diff --git a/pkg/collector/corechecks/servicediscovery/events.go b/pkg/collector/corechecks/servicediscovery/events.go index fba57253ad552..f1d040dacefcb 100644 --- a/pkg/collector/corechecks/servicediscovery/events.go +++ b/pkg/collector/corechecks/servicediscovery/events.go @@ -30,6 +30,8 @@ type eventPayload struct { ServiceName string `json:"service_name"` GeneratedServiceName string `json:"generated_service_name"` GeneratedServiceNameSource string `json:"generated_service_name_source,omitempty"` + ContainerServiceName string `json:"container_service_name,omitempty"` + ContainerServiceNameSource string `json:"container_service_name_source,omitempty"` DDService string `json:"dd_service,omitempty"` HostName string `json:"host_name"` Env string `json:"env"` @@ -79,6 +81,8 @@ func (ts *telemetrySender) newEvent(t eventType, svc serviceInfo) *event { ServiceName: svc.meta.Name, GeneratedServiceName: svc.service.GeneratedName, GeneratedServiceNameSource: svc.service.GeneratedNameSource, + ContainerServiceName: svc.service.ContainerServiceName, + ContainerServiceNameSource: svc.service.ContainerServiceNameSource, DDService: svc.service.DDService, HostName: host, Env: env, diff --git a/pkg/collector/corechecks/servicediscovery/events_test.go b/pkg/collector/corechecks/servicediscovery/events_test.go index f8b7fc92bcfb3..b38dc5ddf084f 100644 --- a/pkg/collector/corechecks/servicediscovery/events_test.go +++ b/pkg/collector/corechecks/servicediscovery/events_test.go @@ -56,17 +56,19 @@ func Test_telemetrySender(t *testing.T) { svc := serviceInfo{ service: model.Service{ - PID: 99, - CommandLine: []string{"test-service", "--args"}, - Ports: []uint16{80, 8080}, - StartTimeMilli: uint64(now.Add(-20 * time.Minute).UnixMilli()), - RSS: 500 * 1024 * 1024, - GeneratedName: "generated-name", - GeneratedNameSource: "generated-name-source", - DDService: "dd-service", - DDServiceInjected: true, - CPUCores: 1.5, - ContainerID: "abcd", + PID: 99, + CommandLine: []string{"test-service", "--args"}, + Ports: []uint16{80, 8080}, + StartTimeMilli: uint64(now.Add(-20 * time.Minute).UnixMilli()), + RSS: 500 * 1024 * 1024, + GeneratedName: "generated-name", + GeneratedNameSource: "generated-name-source", + ContainerServiceName: "container-service-name", + ContainerServiceNameSource: "service", + DDService: "dd-service", + DDServiceInjected: true, + CPUCores: 1.5, + ContainerID: "abcd", }, meta: ServiceMetadata{ Name: "test-service", @@ -90,6 +92,8 @@ func Test_telemetrySender(t *testing.T) { ServiceName: "test-service", GeneratedServiceName: "generated-name", GeneratedServiceNameSource: "generated-name-source", + ContainerServiceName: "container-service-name", + ContainerServiceNameSource: "service", DDService: "dd-service", ServiceNameSource: "injected", HostName: "test-host", @@ -116,6 +120,8 @@ func Test_telemetrySender(t *testing.T) { ServiceName: "test-service", GeneratedServiceName: "generated-name", GeneratedServiceNameSource: "generated-name-source", + ContainerServiceName: "container-service-name", + ContainerServiceNameSource: "service", DDService: "dd-service", ServiceNameSource: "injected", HostName: "test-host", @@ -142,6 +148,8 @@ func Test_telemetrySender(t *testing.T) { ServiceName: "test-service", GeneratedServiceName: "generated-name", GeneratedServiceNameSource: "generated-name-source", + ContainerServiceName: "container-service-name", + ContainerServiceNameSource: "service", DDService: "dd-service", ServiceNameSource: "injected", HostName: "test-host", @@ -188,13 +196,15 @@ func Test_telemetrySender_name_provided(t *testing.T) { svc := serviceInfo{ service: model.Service{ - PID: 55, - CommandLine: []string{"foo", "--option"}, - StartTimeMilli: uint64(now.Add(-20 * time.Minute).UnixMilli()), - GeneratedName: "generated-name2", - GeneratedNameSource: "generated-name-source2", - DDService: "dd-service-provided", - ContainerID: "abcd", + PID: 55, + CommandLine: []string{"foo", "--option"}, + StartTimeMilli: uint64(now.Add(-20 * time.Minute).UnixMilli()), + GeneratedName: "generated-name2", + GeneratedNameSource: "generated-name-source2", + ContainerServiceName: "container-service-name2", + ContainerServiceNameSource: "service", + DDService: "dd-service-provided", + ContainerID: "abcd", }, meta: ServiceMetadata{ Name: "test-service", @@ -218,6 +228,8 @@ func Test_telemetrySender_name_provided(t *testing.T) { ServiceName: "test-service", GeneratedServiceName: "generated-name2", GeneratedServiceNameSource: "generated-name-source2", + ContainerServiceName: "container-service-name2", + ContainerServiceNameSource: "service", DDService: "dd-service-provided", ServiceNameSource: "provided", HostName: "test-host", @@ -241,6 +253,8 @@ func Test_telemetrySender_name_provided(t *testing.T) { ServiceName: "test-service", GeneratedServiceName: "generated-name2", GeneratedServiceNameSource: "generated-name-source2", + ContainerServiceName: "container-service-name2", + ContainerServiceNameSource: "service", DDService: "dd-service-provided", ServiceNameSource: "provided", HostName: "test-host", @@ -264,6 +278,8 @@ func Test_telemetrySender_name_provided(t *testing.T) { ServiceName: "test-service", GeneratedServiceName: "generated-name2", GeneratedServiceNameSource: "generated-name-source2", + ContainerServiceName: "container-service-name2", + ContainerServiceNameSource: "service", DDService: "dd-service-provided", ServiceNameSource: "provided", HostName: "test-host", diff --git a/pkg/collector/corechecks/servicediscovery/impl_linux.go b/pkg/collector/corechecks/servicediscovery/impl_linux.go index 617b740990922..2f0b3df61d63f 100644 --- a/pkg/collector/corechecks/servicediscovery/impl_linux.go +++ b/pkg/collector/corechecks/servicediscovery/impl_linux.go @@ -128,6 +128,8 @@ func (li *linuxImpl) DiscoverServices() (*discoveredServices, error) { svc.service.CPUCores = service.CPUCores svc.service.ContainerID = service.ContainerID svc.service.GeneratedName = service.GeneratedName + svc.service.ContainerServiceName = service.ContainerServiceName + svc.service.ContainerServiceNameSource = service.ContainerServiceNameSource svc.service.Name = service.Name svc.meta.Name = service.Name events.heartbeat = append(events.heartbeat, *svc) @@ -167,6 +169,8 @@ func (li *linuxImpl) handlePotentialServices(events *serviceEvents, now time.Tim svc.service.CPUCores = service.CPUCores svc.service.ContainerID = service.ContainerID svc.service.GeneratedName = service.GeneratedName + svc.service.ContainerServiceName = service.ContainerServiceName + svc.service.ContainerServiceNameSource = service.ContainerServiceNameSource svc.service.Name = service.Name svc.meta.Name = service.Name diff --git a/pkg/collector/corechecks/servicediscovery/impl_linux_test.go b/pkg/collector/corechecks/servicediscovery/impl_linux_test.go index e6da859352596..ba5e0e5a1caad 100644 --- a/pkg/collector/corechecks/servicediscovery/impl_linux_test.go +++ b/pkg/collector/corechecks/servicediscovery/impl_linux_test.go @@ -71,47 +71,53 @@ var ( var ( portTCP8080 = model.Service{ - PID: procTestService1.pid, - Name: "test-service-1", - GeneratedName: "test-service-1-generated", - GeneratedNameSource: "test-service-1-generated-source", - DDService: "test-service-1", - DDServiceInjected: true, - Ports: []uint16{8080}, - APMInstrumentation: string(apm.None), - RSS: 100 * 1024 * 1024, - CPUCores: 1.5, - CommandLine: []string{"test-service-1"}, - StartTimeMilli: procLaunchedMilli, - ContainerID: dummyContainerID, + PID: procTestService1.pid, + Name: "test-service-1", + GeneratedName: "test-service-1-generated", + GeneratedNameSource: "test-service-1-generated-source", + ContainerServiceName: "test-service-1-container", + ContainerServiceNameSource: "service", + DDService: "test-service-1", + DDServiceInjected: true, + Ports: []uint16{8080}, + APMInstrumentation: string(apm.None), + RSS: 100 * 1024 * 1024, + CPUCores: 1.5, + CommandLine: []string{"test-service-1"}, + StartTimeMilli: procLaunchedMilli, + ContainerID: dummyContainerID, } portTCP8080UpdatedRSS = model.Service{ - PID: procTestService1.pid, - Name: "test-service-1", - GeneratedName: "test-service-1-generated", - GeneratedNameSource: "test-service-1-generated-source", - DDService: "test-service-1", - DDServiceInjected: true, - Ports: []uint16{8080}, - APMInstrumentation: string(apm.None), - RSS: 200 * 1024 * 1024, - CPUCores: 1.5, - CommandLine: []string{"test-service-1"}, - StartTimeMilli: procLaunchedMilli, - ContainerID: dummyContainerID, + PID: procTestService1.pid, + Name: "test-service-1", + GeneratedName: "test-service-1-generated", + GeneratedNameSource: "test-service-1-generated-source", + ContainerServiceName: "test-service-1-container", + ContainerServiceNameSource: "service", + DDService: "test-service-1", + DDServiceInjected: true, + Ports: []uint16{8080}, + APMInstrumentation: string(apm.None), + RSS: 200 * 1024 * 1024, + CPUCores: 1.5, + CommandLine: []string{"test-service-1"}, + StartTimeMilli: procLaunchedMilli, + ContainerID: dummyContainerID, } portTCP8080DifferentPID = model.Service{ - PID: procTestService1DifferentPID.pid, - Name: "test-service-1", - GeneratedName: "test-service-1-generated", - GeneratedNameSource: "test-service-1-generated-source", - DDService: "test-service-1", - DDServiceInjected: true, - Ports: []uint16{8080}, - APMInstrumentation: string(apm.Injected), - CommandLine: []string{"test-service-1"}, - StartTimeMilli: procLaunchedMilli, - ContainerID: dummyContainerID, + PID: procTestService1DifferentPID.pid, + Name: "test-service-1", + GeneratedName: "test-service-1-generated", + GeneratedNameSource: "test-service-1-generated-source", + ContainerServiceName: "test-service-1-container", + ContainerServiceNameSource: "service", + DDService: "test-service-1", + DDServiceInjected: true, + Ports: []uint16{8080}, + APMInstrumentation: string(apm.Injected), + CommandLine: []string{"test-service-1"}, + StartTimeMilli: procLaunchedMilli, + ContainerID: dummyContainerID, } portTCP8081 = model.Service{ PID: procIgnoreService1.pid, @@ -122,25 +128,29 @@ var ( ContainerID: dummyContainerID, } portTCP5000 = model.Service{ - PID: procPythonService.pid, - Name: "python-service", - GeneratedName: "python-service", - GeneratedNameSource: "python-service-source", - Language: "python", - Ports: []uint16{5000}, - CommandLine: pythonCommandLine, - StartTimeMilli: procLaunchedMilli, - ContainerID: dummyContainerID, + PID: procPythonService.pid, + Name: "python-service", + GeneratedName: "python-service", + GeneratedNameSource: "python-service-source", + ContainerServiceName: "test-service-1-container", + ContainerServiceNameSource: "app", + Language: "python", + Ports: []uint16{5000}, + CommandLine: pythonCommandLine, + StartTimeMilli: procLaunchedMilli, + ContainerID: dummyContainerID, } portTCP5432 = model.Service{ - PID: procTestService1Repeat.pid, - Name: "test-service-1", - GeneratedName: "test-service-1", - GeneratedNameSource: "test-service-1-generated-source", - Ports: []uint16{5432}, - CommandLine: []string{"test-service-1"}, - StartTimeMilli: procLaunchedMilli, - ContainerID: dummyContainerID, + PID: procTestService1Repeat.pid, + Name: "test-service-1", + GeneratedName: "test-service-1", + GeneratedNameSource: "test-service-1-generated-source", + ContainerServiceName: "test-service-1-container", + ContainerServiceNameSource: "service", + Ports: []uint16{5432}, + CommandLine: []string{"test-service-1"}, + StartTimeMilli: procLaunchedMilli, + ContainerID: dummyContainerID, } ) @@ -235,6 +245,8 @@ func Test_linuxImpl(t *testing.T) { ServiceName: "test-service-1", GeneratedServiceName: "test-service-1-generated", GeneratedServiceNameSource: "test-service-1-generated-source", + ContainerServiceName: "test-service-1-container", + ContainerServiceNameSource: "service", DDService: "test-service-1", ServiceNameSource: "injected", ServiceType: "web_service", @@ -260,6 +272,8 @@ func Test_linuxImpl(t *testing.T) { ServiceName: "test-service-1", GeneratedServiceName: "test-service-1-generated", GeneratedServiceNameSource: "test-service-1-generated-source", + ContainerServiceName: "test-service-1-container", + ContainerServiceNameSource: "service", DDService: "test-service-1", ServiceNameSource: "injected", ServiceType: "web_service", @@ -285,6 +299,8 @@ func Test_linuxImpl(t *testing.T) { ServiceName: "test-service-1", GeneratedServiceName: "test-service-1-generated", GeneratedServiceNameSource: "test-service-1-generated-source", + ContainerServiceName: "test-service-1-container", + ContainerServiceNameSource: "service", DDService: "test-service-1", ServiceNameSource: "injected", ServiceType: "web_service", @@ -310,6 +326,8 @@ func Test_linuxImpl(t *testing.T) { ServiceName: "python-service", GeneratedServiceName: "python-service", GeneratedServiceNameSource: "python-service-source", + ContainerServiceName: "test-service-1-container", + ContainerServiceNameSource: "app", ServiceType: "web_service", HostName: host, Env: "", @@ -331,6 +349,8 @@ func Test_linuxImpl(t *testing.T) { ServiceName: "python-service", GeneratedServiceName: "python-service", GeneratedServiceNameSource: "python-service-source", + ContainerServiceName: "test-service-1-container", + ContainerServiceNameSource: "app", ServiceType: "web_service", HostName: host, Env: "", @@ -389,6 +409,8 @@ func Test_linuxImpl(t *testing.T) { ServiceName: "test-service-1", GeneratedServiceName: "test-service-1", GeneratedServiceNameSource: "test-service-1-generated-source", + ContainerServiceName: "test-service-1-container", + ContainerServiceNameSource: "service", ServiceType: "db", HostName: host, Env: "", @@ -409,6 +431,8 @@ func Test_linuxImpl(t *testing.T) { ServiceName: "test-service-1", GeneratedServiceName: "test-service-1-generated", GeneratedServiceNameSource: "test-service-1-generated-source", + ContainerServiceName: "test-service-1-container", + ContainerServiceNameSource: "service", DDService: "test-service-1", ServiceNameSource: "injected", ServiceType: "web_service", @@ -434,6 +458,8 @@ func Test_linuxImpl(t *testing.T) { ServiceName: "test-service-1", GeneratedServiceName: "test-service-1", GeneratedServiceNameSource: "test-service-1-generated-source", + ContainerServiceName: "test-service-1-container", + ContainerServiceNameSource: "service", ServiceType: "db", HostName: host, Env: "", @@ -454,6 +480,8 @@ func Test_linuxImpl(t *testing.T) { ServiceName: "test-service-1", GeneratedServiceName: "test-service-1", GeneratedServiceNameSource: "test-service-1-generated-source", + ContainerServiceName: "test-service-1-container", + ContainerServiceNameSource: "service", ServiceType: "db", HostName: host, Env: "", @@ -474,6 +502,8 @@ func Test_linuxImpl(t *testing.T) { ServiceName: "test-service-1", GeneratedServiceName: "test-service-1-generated", GeneratedServiceNameSource: "test-service-1-generated-source", + ContainerServiceName: "test-service-1-container", + ContainerServiceNameSource: "service", DDService: "test-service-1", ServiceNameSource: "injected", ServiceType: "web_service", @@ -534,6 +564,8 @@ func Test_linuxImpl(t *testing.T) { ServiceName: "test-service-1", GeneratedServiceName: "test-service-1-generated", GeneratedServiceNameSource: "test-service-1-generated-source", + ContainerServiceName: "test-service-1-container", + ContainerServiceNameSource: "service", DDService: "test-service-1", ServiceNameSource: "injected", ServiceType: "web_service", @@ -559,6 +591,8 @@ func Test_linuxImpl(t *testing.T) { ServiceName: "test-service-1", GeneratedServiceName: "test-service-1-generated", GeneratedServiceNameSource: "test-service-1-generated-source", + ContainerServiceName: "test-service-1-container", + ContainerServiceNameSource: "service", DDService: "test-service-1", ServiceNameSource: "injected", ServiceType: "web_service", diff --git a/pkg/collector/corechecks/servicediscovery/model/model.go b/pkg/collector/corechecks/servicediscovery/model/model.go index ccaa3fc2a961c..9a99681fe6cfc 100644 --- a/pkg/collector/corechecks/servicediscovery/model/model.go +++ b/pkg/collector/corechecks/servicediscovery/model/model.go @@ -8,21 +8,23 @@ package model // Service represents a listening process. type Service struct { - PID int `json:"pid"` - Name string `json:"name"` - GeneratedName string `json:"generated_name"` - GeneratedNameSource string `json:"generated_name_source"` - DDService string `json:"dd_service"` - DDServiceInjected bool `json:"dd_service_injected"` - CheckedContainerData bool `json:"checked_container_data"` - Ports []uint16 `json:"ports"` - APMInstrumentation string `json:"apm_instrumentation"` - Language string `json:"language"` - RSS uint64 `json:"rss"` - CommandLine []string `json:"cmdline"` - StartTimeMilli uint64 `json:"start_time"` - CPUCores float64 `json:"cpu_cores"` - ContainerID string `json:"container_id"` + PID int `json:"pid"` + Name string `json:"name"` + GeneratedName string `json:"generated_name"` + GeneratedNameSource string `json:"generated_name_source"` + ContainerServiceName string `json:"container_service_name"` + ContainerServiceNameSource string `json:"container_service_name_source"` + DDService string `json:"dd_service"` + DDServiceInjected bool `json:"dd_service_injected"` + CheckedContainerData bool `json:"checked_container_data"` + Ports []uint16 `json:"ports"` + APMInstrumentation string `json:"apm_instrumentation"` + Language string `json:"language"` + RSS uint64 `json:"rss"` + CommandLine []string `json:"cmdline"` + StartTimeMilli uint64 `json:"start_time"` + CPUCores float64 `json:"cpu_cores"` + ContainerID string `json:"container_id"` } // ServicesResponse is the response for the system-probe /discovery/services endpoint. diff --git a/pkg/collector/corechecks/servicediscovery/module/impl_linux.go b/pkg/collector/corechecks/servicediscovery/module/impl_linux.go index c70f64efeae37..dca31b0890c33 100644 --- a/pkg/collector/corechecks/servicediscovery/module/impl_linux.go +++ b/pkg/collector/corechecks/servicediscovery/module/impl_linux.go @@ -51,6 +51,7 @@ var _ module.Module = &discovery{} type serviceInfo struct { generatedName string generatedNameSource string + containerServiceName string ddServiceName string ddServiceInjected bool checkedContainerData bool @@ -600,7 +601,7 @@ func (s *discovery) updateServicesCPUStats(services []model.Service) error { return nil } -func getServiceNameFromContainerTags(tags []string) string { +func getServiceNameFromContainerTags(tags []string) (string, string) { // The tags we look for service name generation, in their priority order. // The map entries will be filled as we go through the containers tags. tagsPriority := []struct { @@ -641,10 +642,10 @@ func getServiceNameFromContainerTags(tags []string) string { } log.Debugf("Using %v:%v tag for service name", tag.tagName, *tag.tagValue) - return *tag.tagValue + return tag.tagName, *tag.tagValue } - return "" + return "", "" } func (s *discovery) enrichContainerData(service *model.Service, containers map[string]*agentPayload.Container, pidToCid map[int]string) { @@ -655,7 +656,7 @@ func (s *discovery) enrichContainerData(service *model.Service, containers map[s service.ContainerID = id - // We got the service name from container tags before, no need to do it again. + // We checked the container tags before, no need to do it again. if service.CheckedContainerData { return } @@ -665,25 +666,15 @@ func (s *discovery) enrichContainerData(service *model.Service, containers map[s return } - serviceName := getServiceNameFromContainerTags(container.Tags) - - if serviceName != "" { - service.GeneratedName = serviceName - // Update the legacy name field as well - if service.DDService == "" { - service.Name = serviceName - } - service.GeneratedNameSource = string(usm.Container) - } + tagName, serviceName := getServiceNameFromContainerTags(container.Tags) + service.ContainerServiceName = serviceName + service.ContainerServiceNameSource = tagName service.CheckedContainerData = true s.mux.Lock() serviceInfo, ok := s.cache[int32(service.PID)] if ok { - if serviceName != "" { - serviceInfo.generatedName = serviceName - serviceInfo.generatedNameSource = string(usm.Container) - } + serviceInfo.containerServiceName = serviceName serviceInfo.checkedContainerData = true } s.mux.Unlock() diff --git a/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go b/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go index 6970f36651c8f..a578ccce8cc8e 100644 --- a/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go +++ b/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go @@ -847,9 +847,11 @@ func TestDocker(t *testing.T) { require.Contains(t, portMap, pid1111) require.Contains(t, portMap[pid1111].Ports, uint16(1234)) require.Contains(t, portMap[pid1111].ContainerID, "dummyCID") - require.Contains(t, portMap[pid1111].Name, "foo_from_app_tag") - require.Contains(t, portMap[pid1111].GeneratedName, "foo_from_app_tag") - require.Contains(t, portMap[pid1111].GeneratedNameSource, string(usm.Container)) + require.Contains(t, portMap[pid1111].Name, "http.server") + require.Contains(t, portMap[pid1111].GeneratedName, "http.server") + require.Contains(t, portMap[pid1111].GeneratedNameSource, string(usm.CommandLine)) + require.Contains(t, portMap[pid1111].ContainerServiceName, "foo_from_app_tag") + require.Contains(t, portMap[pid1111].ContainerServiceNameSource, "app") } // Check that the cache is cleaned when procceses die. @@ -922,56 +924,67 @@ func TestTagsPriority(t *testing.T) { cases := []struct { name string tags []string + expectedTagName string expectedServiceName string }{ { "nil tag list", nil, "", + "", }, { "empty tag list", []string{}, "", + "", }, { "no useful tags", []string{"foo:bar"}, "", + "", }, { "malformed tag", []string{"foobar"}, "", + "", }, { "service tag", []string{"service:foo"}, + "service", "foo", }, { "app tag", []string{"app:foo"}, + "app", "foo", }, { "short_image tag", []string{"short_image:foo"}, + "short_image", "foo", }, { "kube_container_name tag", []string{"kube_container_name:foo"}, + "kube_container_name", "foo", }, { "kube_deployment tag", []string{"kube_deployment:foo"}, + "kube_deployment", "foo", }, { "kube_service tag", []string{"kube_service:foo"}, + "kube_service", "foo", }, { @@ -982,6 +995,7 @@ func TestTagsPriority(t *testing.T) { "service:my_service", "malformed", }, + "service", "my_service", }, { @@ -990,6 +1004,7 @@ func TestTagsPriority(t *testing.T) { "service:", "app:foo", }, + "app", "foo", }, { @@ -1001,6 +1016,7 @@ func TestTagsPriority(t *testing.T) { "service:my_service", "malformed", }, + "service", "my_service", }, { @@ -1013,14 +1029,16 @@ func TestTagsPriority(t *testing.T) { "app:my_app", "service:my_service", }, + "service", "my_service", }, } for _, c := range cases { t.Run(c.name, func(t *testing.T) { - name := getServiceNameFromContainerTags(c.tags) + tagName, name := getServiceNameFromContainerTags(c.tags) require.Equalf(t, c.expectedServiceName, name, "got wrong service name from container tags") + require.Equalf(t, c.expectedTagName, tagName, "got wrong tag name for service naming") }) } } diff --git a/pkg/collector/corechecks/servicediscovery/usm/service.go b/pkg/collector/corechecks/servicediscovery/usm/service.go index 407b77179dfb7..89bfd3cfb6003 100644 --- a/pkg/collector/corechecks/servicediscovery/usm/service.go +++ b/pkg/collector/corechecks/servicediscovery/usm/service.go @@ -64,8 +64,6 @@ type ServiceNameSource string const ( // CommandLine indicates that the name comes from the command line CommandLine ServiceNameSource = "command-line" - // Container indicates the name comes from the container tags - Container ServiceNameSource = "container" // Laravel indicates that the name comes from the Laravel application name Laravel ServiceNameSource = "laravel" // Python indicates that the name comes from the Python package name From b1ed33fe5cf53db5565d675898bcd83ea3d29893 Mon Sep 17 00:00:00 2001 From: Vincent Whitchurch Date: Wed, 11 Dec 2024 18:50:09 +0100 Subject: [PATCH 412/439] usm: kafka: Check packet size before load (#32028) --- pkg/network/ebpf/c/protocols/kafka/kafka-parsing.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkg/network/ebpf/c/protocols/kafka/kafka-parsing.h b/pkg/network/ebpf/c/protocols/kafka/kafka-parsing.h index 81af62163fa9f..b4dfe339107e5 100644 --- a/pkg/network/ebpf/c/protocols/kafka/kafka-parsing.h +++ b/pkg/network/ebpf/c/protocols/kafka/kafka-parsing.h @@ -1602,6 +1602,12 @@ static __always_inline bool kafka_process(conn_tuple_t *tup, kafka_info_t *kafka */ u32 offset = pktbuf_data_offset(pkt); + u32 pktlen = pktbuf_data_end(pkt) - offset; + + if (pktlen < sizeof(kafka_header_t)) { + return false; + } + kafka_transaction_t *kafka_transaction = &kafka->event.transaction; kafka_header_t kafka_header; bpf_memset(&kafka_header, 0, sizeof(kafka_header)); From ebe2afff96984bf1de2f97fd8a1fda6d60f210df Mon Sep 17 00:00:00 2001 From: Vincent Whitchurch Date: Wed, 11 Dec 2024 18:50:43 +0100 Subject: [PATCH 413/439] usm: Remove telemetry from load in big endian helper (#32030) --- pkg/network/ebpf/c/protocols/helpers/big_endian.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/network/ebpf/c/protocols/helpers/big_endian.h b/pkg/network/ebpf/c/protocols/helpers/big_endian.h index 0b9d6ff14c022..b0867ce719d7b 100644 --- a/pkg/network/ebpf/c/protocols/helpers/big_endian.h +++ b/pkg/network/ebpf/c/protocols/helpers/big_endian.h @@ -16,7 +16,7 @@ } \ type val; \ bpf_memset(&val, 0, sizeof(type)); \ - bpf_skb_load_bytes_with_telemetry(skb, offset, &val, sizeof(type)); \ + bpf_skb_load_bytes(skb, offset, &val, sizeof(type)); \ *out = transformer(val); \ return true; \ } From 3c882e71c8b1830d40be8d4cfae580e40414d207 Mon Sep 17 00:00:00 2001 From: Raphael Gavache Date: Wed, 11 Dec 2024 18:51:29 +0100 Subject: [PATCH 414/439] [fleet] Improvements to script telemetry (#32022) --- cmd/installer-downloader/main.go | 4 ++-- pkg/fleet/internal/exec/installer_exec.go | 2 +- pkg/fleet/telemetry/telemetry.go | 23 +++++++++++++++++------ 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/cmd/installer-downloader/main.go b/cmd/installer-downloader/main.go index db35a6c337519..45c628dc13069 100644 --- a/cmd/installer-downloader/main.go +++ b/cmd/installer-downloader/main.go @@ -48,7 +48,7 @@ func main() { _ = t.Start(ctx) defer func() { _ = t.Stop(ctx) }() var err error - span, ctx := telemetry.StartSpanFromEnv(ctx, "downloader") + span, ctx := telemetry.StartSpanFromEnv(ctx, fmt.Sprintf("downloader-%s", Flavor)) defer func() { span.Finish(tracer.WithError(err)) }() err = runDownloader(ctx, env, Version, Flavor) if err != nil { @@ -74,7 +74,7 @@ func runDownloader(ctx context.Context, env *env.Env, version string, flavor str cmd := exec.CommandContext(ctx, filepath.Join(tmpDir, installerBinPath), "setup", "--flavor", flavor) cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr - cmd.Env = os.Environ() + cmd.Env = append(os.Environ(), telemetry.EnvFromContext(ctx)...) err = cmd.Run() if err != nil { return fmt.Errorf("failed to run installer: %w", err) diff --git a/pkg/fleet/internal/exec/installer_exec.go b/pkg/fleet/internal/exec/installer_exec.go index 29ca01999dcb9..74b7a49beb897 100644 --- a/pkg/fleet/internal/exec/installer_exec.go +++ b/pkg/fleet/internal/exec/installer_exec.go @@ -58,7 +58,7 @@ func (i *InstallerExec) newInstallerCmd(ctx context.Context, command string, arg return cmd.Process.Signal(os.Interrupt) } } - env = append(env, telemetry.EnvFromSpanContext(span.Context())...) + env = append(env, telemetry.EnvFromContext(ctx)...) cmd.Env = env cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr diff --git a/pkg/fleet/telemetry/telemetry.go b/pkg/fleet/telemetry/telemetry.go index b63bdfb0de764..f484e06822cd4 100644 --- a/pkg/fleet/telemetry/telemetry.go +++ b/pkg/fleet/telemetry/telemetry.go @@ -11,9 +11,11 @@ import ( "errors" "fmt" "io" + "math/rand/v2" "net" "net/http" "os" + "strconv" "strings" "sync" @@ -216,8 +218,14 @@ func StartSpanFromEnv(ctx context.Context, operationName string, spanOptions ... // spanContextFromEnv injects the traceID and parentID from the environment into the context if available. func spanContextFromEnv() (ddtrace.SpanContext, bool) { - traceID := os.Getenv(EnvTraceID) - parentID := os.Getenv(EnvParentID) + traceID, ok := os.LookupEnv(EnvTraceID) + if !ok { + traceID = strconv.FormatUint(rand.Uint64(), 10) + } + parentID, ok := os.LookupEnv(EnvParentID) + if !ok { + parentID = "0" + } ctxCarrier := tracer.TextMapCarrier{ tracer.DefaultTraceIDHeader: traceID, tracer.DefaultParentIDHeader: parentID, @@ -231,13 +239,16 @@ func spanContextFromEnv() (ddtrace.SpanContext, bool) { return spanCtx, true } -// EnvFromSpanContext returns the environment variables for the span context. -func EnvFromSpanContext(spanCtx ddtrace.SpanContext) []string { - env := []string{ +// EnvFromContext returns the environment variables for the context. +func EnvFromContext(ctx context.Context) []string { + spanCtx, ok := SpanContextFromContext(ctx) + if !ok { + return []string{} + } + return []string{ fmt.Sprintf("%s=%d", EnvTraceID, spanCtx.TraceID()), fmt.Sprintf("%s=%d", EnvParentID, spanCtx.SpanID()), } - return env } // SpanContextFromContext extracts the span context from the context if available. From c7f3db37bc333998c332892433071dc2cba1554f Mon Sep 17 00:00:00 2001 From: Branden Clark Date: Wed, 11 Dec 2024 14:44:38 -0500 Subject: [PATCH 415/439] Publish FIPS Agent release artifacts (#32035) --- .gitlab/deploy_packages/windows.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/.gitlab/deploy_packages/windows.yml b/.gitlab/deploy_packages/windows.yml index 6ef503bc234be..dd794d832b56c 100644 --- a/.gitlab/deploy_packages/windows.yml +++ b/.gitlab/deploy_packages/windows.yml @@ -69,3 +69,23 @@ deploy_installer_packages_windows-x64: --include "datadog-installer-*-1-x86_64.zip" --include "datadog-installer-*-1-x86_64.exe" $OMNIBUS_PACKAGE_DIR $S3_RELEASE_INSTALLER_ARTIFACTS_URI/msi/x86_64/ + +deploy_packages_windows-x64-7-fips: + rules: + !reference [.on_deploy] + stage: deploy_packages + image: registry.ddbuild.io/ci/datadog-agent-buildimages/gitlab_agent_deploy$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES + tags: ["arch:amd64"] + needs: ["windows_msi_and_bosh_zip_x64-a7-fips"] + before_script: + - ls $OMNIBUS_PACKAGE_DIR + script: + - $S3_CP_CMD + --recursive + --exclude "*" + --include "datadog-fips-agent-7*.msi" + --include "datadog-fips-agent-7*.debug.zip" + $OMNIBUS_PACKAGE_DIR $S3_RELEASE_ARTIFACTS_URI/msi/x86_64/ + artifacts: + paths: + - $OMNIBUS_PACKAGE_DIR From c88488aab3e7287fd3954ed0f56ccff77f020412 Mon Sep 17 00:00:00 2001 From: Bryce Kahle Date: Wed, 11 Dec 2024 12:18:38 -0800 Subject: [PATCH 416/439] move processes/networks to simpler sysprobe client (#31365) --- .github/CODEOWNERS | 1 - pkg/networkdevice/pinger/pinger_linux.go | 45 ++- pkg/networkpath/traceroute/sysprobe.go | 57 +++ .../traceroute/traceroute_linux.go | 20 +- .../traceroute/traceroute_windows.go | 19 +- pkg/process/checks/container.go | 14 +- pkg/process/checks/net.go | 90 +++-- pkg/process/checks/process.go | 61 +-- pkg/process/checks/process_rt.go | 9 +- pkg/process/checks/sysprobe_stats_test.go | 34 +- pkg/process/net/common.go | 252 +----------- pkg/process/net/common_all.go | 9 +- pkg/process/net/common_linux.go | 56 --- pkg/process/net/common_unsupported.go | 65 +-- pkg/process/net/common_windows.go | 63 --- pkg/process/net/mocks/sys_probe_util.go | 382 ------------------ pkg/process/net/shared.go | 28 -- 17 files changed, 231 insertions(+), 974 deletions(-) create mode 100644 pkg/networkpath/traceroute/sysprobe.go delete mode 100644 pkg/process/net/common_linux.go delete mode 100644 pkg/process/net/common_windows.go delete mode 100644 pkg/process/net/mocks/sys_probe_util.go delete mode 100644 pkg/process/net/shared.go diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 1569d87fd96ef..042dc565a8f9f 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -493,7 +493,6 @@ /pkg/process/metadata/parser/*windows* @DataDog/universal-service-monitoring @DataDog/processes @DataDog/Networks @DataDog/windows-kernel-integrations /pkg/process/monitor/ @DataDog/universal-service-monitoring /pkg/process/net/ @DataDog/universal-service-monitoring @DataDog/Networks -/pkg/process/net/common_windows.go @DataDog/windows-agent /pkg/proto/datadog/remoteconfig/ @DataDog/remote-config /pkg/proto/pbgo/ # do not notify anyone /pkg/proto/pbgo/trace @DataDog/agent-apm diff --git a/pkg/networkdevice/pinger/pinger_linux.go b/pkg/networkdevice/pinger/pinger_linux.go index 89476acbc920b..5b8ff36bac672 100644 --- a/pkg/networkdevice/pinger/pinger_linux.go +++ b/pkg/networkdevice/pinger/pinger_linux.go @@ -9,10 +9,13 @@ package pinger import ( "encoding/json" + "fmt" + "net/http" + "time" + sysprobeclient "github.com/DataDog/datadog-agent/cmd/system-probe/api/client" + sysconfig "github.com/DataDog/datadog-agent/cmd/system-probe/config" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" - "github.com/DataDog/datadog-agent/pkg/process/net" - "github.com/DataDog/datadog-agent/pkg/util/log" ) const ( @@ -22,14 +25,16 @@ const ( // LinuxPinger implements the Pinger interface for // Linux users type LinuxPinger struct { - cfg Config + cfg Config + sysprobeClient *http.Client } // New creates a LinuxPinger using the passed in // config func New(cfg Config) (Pinger, error) { return &LinuxPinger{ - cfg: cfg, + cfg: cfg, + sysprobeClient: sysprobeclient.Get(pkgconfigsetup.SystemProbe().GetString("system_probe_config.sysprobe_socket")), }, nil } @@ -41,21 +46,41 @@ func (p *LinuxPinger) Ping(host string) (*Result, error) { return RunPing(&p.cfg, host) } - tu, err := net.GetRemoteSystemProbeUtil( - pkgconfigsetup.SystemProbe().GetString("system_probe_config.sysprobe_socket")) + return getPing(p.sysprobeClient, clientID, host, p.cfg.Count, p.cfg.Interval, p.cfg.Timeout) +} + +func getPing(client *http.Client, clientID string, host string, count int, interval time.Duration, timeout time.Duration) (*Result, error) { + url := sysprobeclient.ModuleURL(sysconfig.PingModule, fmt.Sprintf("/ping/%s?client_id=%s&count=%d&interval=%d&timeout=%d", host, clientID, count, interval, timeout)) + req, err := http.NewRequest("GET", url, nil) if err != nil { - log.Warnf("could not initialize system-probe connection: %s", err.Error()) return nil, err } - resp, err := tu.GetPing(clientID, host, p.cfg.Count, p.cfg.Interval, p.cfg.Timeout) + + req.Header.Set("Accept", "application/json") + resp, err := client.Do(req) if err != nil { return nil, err } + defer resp.Body.Close() - var result Result - if err := json.Unmarshal(resp, &result); err != nil { + if resp.StatusCode == http.StatusBadRequest { + body, err := sysprobeclient.ReadAllResponseBody(resp) + if err != nil { + return nil, fmt.Errorf("ping request failed: url: %s, status code: %d", req.URL, resp.StatusCode) + } + return nil, fmt.Errorf("ping request failed: url: %s, status code: %d, error: %s", req.URL, resp.StatusCode, string(body)) + } else if resp.StatusCode != http.StatusOK { + return nil, fmt.Errorf("ping request failed: url: %s, status code: %d", req.URL, resp.StatusCode) + } + + body, err := sysprobeclient.ReadAllResponseBody(resp) + if err != nil { return nil, err } + var result Result + if err := json.Unmarshal(body, &result); err != nil { + return nil, err + } return &result, nil } diff --git a/pkg/networkpath/traceroute/sysprobe.go b/pkg/networkpath/traceroute/sysprobe.go new file mode 100644 index 0000000000000..f95974f059a88 --- /dev/null +++ b/pkg/networkpath/traceroute/sysprobe.go @@ -0,0 +1,57 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2024-present Datadog, Inc. + +//go:build linux || windows + +package traceroute + +import ( + "context" + "fmt" + "net/http" + "time" + + sysprobeclient "github.com/DataDog/datadog-agent/cmd/system-probe/api/client" + sysconfig "github.com/DataDog/datadog-agent/cmd/system-probe/config" + "github.com/DataDog/datadog-agent/pkg/networkpath/payload" + "github.com/DataDog/datadog-agent/pkg/util/log" +) + +func getTraceroute(client *http.Client, clientID string, host string, port uint16, protocol payload.Protocol, maxTTL uint8, timeout time.Duration) ([]byte, error) { + httpTimeout := timeout*time.Duration(maxTTL) + 10*time.Second // allow extra time for the system probe communication overhead, calculate full timeout for TCP traceroute + log.Tracef("Network Path traceroute HTTP request timeout: %s", httpTimeout) + ctx, cancel := context.WithTimeout(context.Background(), httpTimeout) + defer cancel() + + url := sysprobeclient.ModuleURL(sysconfig.TracerouteModule, fmt.Sprintf("/traceroute/%s?client_id=%s&port=%d&max_ttl=%d&timeout=%d&protocol=%s", host, clientID, port, maxTTL, timeout, protocol)) + req, err := http.NewRequestWithContext(ctx, "GET", url, nil) + if err != nil { + return nil, err + } + + req.Header.Set("Accept", "application/json") + resp, err := client.Do(req) + if err != nil { + return nil, err + } + defer resp.Body.Close() + + if resp.StatusCode == http.StatusBadRequest { + body, err := sysprobeclient.ReadAllResponseBody(resp) + if err != nil { + return nil, fmt.Errorf("traceroute request failed: url: %s, status code: %d", req.URL, resp.StatusCode) + } + return nil, fmt.Errorf("traceroute request failed: url: %s, status code: %d, error: %s", req.URL, resp.StatusCode, string(body)) + } else if resp.StatusCode != http.StatusOK { + return nil, fmt.Errorf("traceroute request failed: url: %s, status code: %d", req.URL, resp.StatusCode) + } + + body, err := sysprobeclient.ReadAllResponseBody(resp) + if err != nil { + return nil, err + } + + return body, nil +} diff --git a/pkg/networkpath/traceroute/traceroute_linux.go b/pkg/networkpath/traceroute/traceroute_linux.go index 536d360f4f6c3..e3d54f61ccf48 100644 --- a/pkg/networkpath/traceroute/traceroute_linux.go +++ b/pkg/networkpath/traceroute/traceroute_linux.go @@ -10,12 +10,13 @@ package traceroute import ( "context" "encoding/json" + "net/http" + sysprobeclient "github.com/DataDog/datadog-agent/cmd/system-probe/api/client" "github.com/DataDog/datadog-agent/comp/core/telemetry" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/networkpath/payload" "github.com/DataDog/datadog-agent/pkg/networkpath/traceroute/config" - "github.com/DataDog/datadog-agent/pkg/process/net" "github.com/DataDog/datadog-agent/pkg/util/log" ) @@ -27,7 +28,8 @@ const ( // running traceroute from an agent running // on Linux type LinuxTraceroute struct { - cfg config.Config + cfg config.Config + sysprobeClient *http.Client } // New creates a new instance of LinuxTraceroute @@ -36,19 +38,17 @@ func New(cfg config.Config, _ telemetry.Component) (*LinuxTraceroute, error) { log.Debugf("Creating new traceroute with config: %+v", cfg) return &LinuxTraceroute{ cfg: cfg, + sysprobeClient: &http.Client{ + Transport: &http.Transport{ + DialContext: sysprobeclient.DialContextFunc(pkgconfigsetup.SystemProbe().GetString("system_probe_config.sysprobe_socket")), + }, + }, }, nil } // Run executes a traceroute func (l *LinuxTraceroute) Run(_ context.Context) (payload.NetworkPath, error) { - tu, err := net.GetRemoteSystemProbeUtil( - pkgconfigsetup.SystemProbe().GetString("system_probe_config.sysprobe_socket")) - if err != nil { - log.Warnf("could not initialize system-probe connection: %s", err.Error()) - return payload.NetworkPath{}, err - } - - resp, err := tu.GetTraceroute(clientID, l.cfg.DestHostname, l.cfg.DestPort, l.cfg.Protocol, l.cfg.MaxTTL, l.cfg.Timeout) + resp, err := getTraceroute(l.sysprobeClient, clientID, l.cfg.DestHostname, l.cfg.DestPort, l.cfg.Protocol, l.cfg.MaxTTL, l.cfg.Timeout) if err != nil { return payload.NetworkPath{}, err } diff --git a/pkg/networkpath/traceroute/traceroute_windows.go b/pkg/networkpath/traceroute/traceroute_windows.go index 316caabd7cb03..8e05c249e4a35 100644 --- a/pkg/networkpath/traceroute/traceroute_windows.go +++ b/pkg/networkpath/traceroute/traceroute_windows.go @@ -11,12 +11,13 @@ import ( "context" "encoding/json" "errors" + "net/http" + sysprobeclient "github.com/DataDog/datadog-agent/cmd/system-probe/api/client" "github.com/DataDog/datadog-agent/comp/core/telemetry" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/networkpath/payload" "github.com/DataDog/datadog-agent/pkg/networkpath/traceroute/config" - "github.com/DataDog/datadog-agent/pkg/process/net" "github.com/DataDog/datadog-agent/pkg/util/log" ) @@ -29,7 +30,8 @@ const ( // running traceroute from an agent running // on Windows type WindowsTraceroute struct { - cfg config.Config + cfg config.Config + sysprobeClient *http.Client } // New creates a new instance of WindowsTraceroute @@ -44,18 +46,17 @@ func New(cfg config.Config, _ telemetry.Component) (*WindowsTraceroute, error) { return &WindowsTraceroute{ cfg: cfg, + sysprobeClient: &http.Client{ + Transport: &http.Transport{ + DialContext: sysprobeclient.DialContextFunc(pkgconfigsetup.SystemProbe().GetString("system_probe_config.sysprobe_socket")), + }, + }, }, nil } // Run executes a traceroute func (w *WindowsTraceroute) Run(_ context.Context) (payload.NetworkPath, error) { - tu, err := net.GetRemoteSystemProbeUtil( - pkgconfigsetup.SystemProbe().GetString("system_probe_config.sysprobe_socket")) - if err != nil { - log.Warnf("could not initialize system-probe connection: %s", err.Error()) - return payload.NetworkPath{}, err - } - resp, err := tu.GetTraceroute(clientID, w.cfg.DestHostname, w.cfg.DestPort, w.cfg.Protocol, w.cfg.MaxTTL, w.cfg.Timeout) + resp, err := getTraceroute(w.sysprobeClient, clientID, w.cfg.DestHostname, w.cfg.DestPort, w.cfg.Protocol, w.cfg.MaxTTL, w.cfg.Timeout) if err != nil { return payload.NetworkPath{}, err } diff --git a/pkg/process/checks/container.go b/pkg/process/checks/container.go index 533c6f55a050f..3d18e0ed02daf 100644 --- a/pkg/process/checks/container.go +++ b/pkg/process/checks/container.go @@ -8,14 +8,15 @@ package checks import ( "fmt" "math" + "net/http" "sync" "time" model "github.com/DataDog/agent-payload/v5/process" + "github.com/DataDog/datadog-agent/cmd/system-probe/api/client" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" pkgconfigmodel "github.com/DataDog/datadog-agent/pkg/config/model" - "github.com/DataDog/datadog-agent/pkg/process/net" "github.com/DataDog/datadog-agent/pkg/process/statsd" proccontainers "github.com/DataDog/datadog-agent/pkg/process/util/containers" "github.com/DataDog/datadog-agent/pkg/util/flavor" @@ -49,6 +50,8 @@ type ContainerCheck struct { maxBatchSize int wmeta workloadmeta.Component + + sysprobeClient *http.Client } // Init initializes a ContainerCheck instance. @@ -60,16 +63,11 @@ func (c *ContainerCheck) Init(syscfg *SysProbeConfig, info *HostInfo, _ bool) er c.containerProvider = sharedContainerProvider c.hostInfo = info - var tu net.SysProbeUtil if syscfg.NetworkTracerModuleEnabled { - // Calling the remote tracer will cause it to initialize and check connectivity - tu, err = net.GetRemoteSystemProbeUtil(syscfg.SystemProbeAddress) - if err != nil { - log.Warnf("could not initiate connection with system probe: %s", err) - } + c.sysprobeClient = client.Get(syscfg.SystemProbeAddress) } - networkID, err := retryGetNetworkID(tu) + networkID, err := retryGetNetworkID(c.sysprobeClient) if err != nil { log.Infof("no network ID detected: %s", err) } diff --git a/pkg/process/checks/net.go b/pkg/process/checks/net.go index 054ce6a4fb670..169cf139ac995 100644 --- a/pkg/process/checks/net.go +++ b/pkg/process/checks/net.go @@ -7,15 +7,16 @@ package checks import ( "context" - "errors" + "fmt" + "net/http" "runtime" "sort" "time" - "github.com/benbjohnson/clock" - model "github.com/DataDog/agent-payload/v5/process" + "github.com/benbjohnson/clock" + sysprobeclient "github.com/DataDog/datadog-agent/cmd/system-probe/api/client" sysconfig "github.com/DataDog/datadog-agent/cmd/system-probe/config" sysconfigtypes "github.com/DataDog/datadog-agent/cmd/system-probe/config/types" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" @@ -23,6 +24,7 @@ import ( "github.com/DataDog/datadog-agent/comp/networkpath/npcollector" pkgconfigmodel "github.com/DataDog/datadog-agent/pkg/config/model" "github.com/DataDog/datadog-agent/pkg/network/dns" + netEncoding "github.com/DataDog/datadog-agent/pkg/network/encoding/unmarshal" "github.com/DataDog/datadog-agent/pkg/process/metadata/parser" "github.com/DataDog/datadog-agent/pkg/process/net" "github.com/DataDog/datadog-agent/pkg/process/net/resolver" @@ -39,9 +41,6 @@ const ( ) var ( - // ErrTracerStillNotInitialized signals that the tracer is _still_ not ready, so we shouldn't log additional errors - ErrTracerStillNotInitialized = errors.New("remote tracer is still not initialized") - // ProcessAgentClientID process-agent unique ID ProcessAgentClientID = "process-agent-unique-id" ) @@ -65,7 +64,6 @@ type ConnectionsCheck struct { hostInfo *HostInfo maxConnsPerMessage int - tracerClientID string networkID string notInitializedLogLimit *log.Limit @@ -79,6 +77,8 @@ type ConnectionsCheck struct { wmeta workloadmeta.Component npCollector npcollector.Component + + sysprobeClient *http.Client } // ProcessConnRates describes connection rates for processes @@ -89,25 +89,16 @@ func (c *ConnectionsCheck) Init(syscfg *SysProbeConfig, hostInfo *HostInfo, _ bo c.hostInfo = hostInfo c.maxConnsPerMessage = syscfg.MaxConnsPerMessage c.notInitializedLogLimit = log.NewLogLimit(1, time.Minute*10) + c.sysprobeClient = sysprobeclient.Get(syscfg.SystemProbeAddress) - // We use the current process PID as the system-probe client ID - c.tracerClientID = ProcessAgentClientID - - // Calling the remote tracer will cause it to initialize and check connectivity - tu, err := net.GetRemoteSystemProbeUtil(syscfg.SystemProbeAddress) - + // Register process agent as a system probe's client + // This ensures we start recording data from now to the first call to `Run` + err := c.register() if err != nil { - log.Warnf("could not initiate connection with system probe: %s", err) - } else { - // Register process agent as a system probe's client - // This ensures we start recording data from now to the first call to `Run` - err = tu.Register(c.tracerClientID) - if err != nil { - log.Warnf("could not register process-agent to system-probe: %s", err) - } + log.Warnf("could not register process-agent to system-probe: %s", err) } - networkID, err := retryGetNetworkID(tu) + networkID, err := retryGetNetworkID(c.sysprobeClient) if err != nil { log.Infof("no network ID detected: %s", err) } @@ -172,10 +163,6 @@ func (c *ConnectionsCheck) Run(nextGroupID func() int32, _ *RunOptions) (RunResu conns, err := c.getConnections() if err != nil { - // If the tracer is not initialized, or still not initialized, then we want to exit without error'ing - if errors.Is(err, net.ErrNotImplemented) || errors.Is(err, ErrTracerStillNotInitialized) { - return nil, nil - } return nil, err } @@ -205,15 +192,48 @@ func (c *ConnectionsCheck) Cleanup() { c.localresolver.Stop() } +func (c *ConnectionsCheck) register() error { + url := sysprobeclient.ModuleURL(sysconfig.NetworkTracerModule, "/register?client_id="+ProcessAgentClientID) + req, err := http.NewRequest("GET", url, nil) + if err != nil { + return err + } + + resp, err := c.sysprobeClient.Do(req) + if err != nil { + return err + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { + return fmt.Errorf("conn request failed: url: %s, status code: %d", req.URL, resp.StatusCode) + } + return nil +} + func (c *ConnectionsCheck) getConnections() (*model.Connections, error) { - tu, err := net.GetRemoteSystemProbeUtil(c.syscfg.SocketAddress) + url := sysprobeclient.ModuleURL(sysconfig.NetworkTracerModule, "/connections?client_id="+ProcessAgentClientID) + req, err := http.NewRequest("GET", url, nil) if err != nil { - if c.notInitializedLogLimit.ShouldLog() { - log.Warnf("could not initialize system-probe connection: %v (will only log every 10 minutes)", err) - } - return nil, ErrTracerStillNotInitialized + return nil, err } - return tu.GetConnections(c.tracerClientID) + + req.Header.Set("Accept", "application/protobuf") + resp, err := c.sysprobeClient.Do(req) + if err != nil { + return nil, err + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { + return nil, fmt.Errorf("conn request failed: url: %s, status code: %d", req.URL, resp.StatusCode) + } + + body, err := sysprobeclient.ReadAllResponseBody(resp) + if err != nil { + return nil, err + } + + contentType := resp.Header.Get("Content-type") + return netEncoding.GetUnmarshaler(contentType).Unmarshal(body) } func (c *ConnectionsCheck) notifyProcessConnRates(config pkgconfigmodel.Reader, conns *model.Connections) { @@ -509,11 +529,11 @@ func convertAndEnrichWithServiceCtx(tags []string, tagOffsets []uint32, serviceC } // fetches network_id from the current netNS or from the system probe if necessary, where the root netNS is used -func retryGetNetworkID(sysProbeUtil net.SysProbeUtil) (string, error) { +func retryGetNetworkID(sysProbeClient *http.Client) (string, error) { networkID, err := cloudproviders.GetNetworkID(context.TODO()) - if err != nil && sysProbeUtil != nil { + if err != nil && sysProbeClient != nil { log.Infof("no network ID detected. retrying via system-probe: %s", err) - networkID, err = sysProbeUtil.GetNetworkID() + networkID, err = net.GetNetworkID(sysProbeClient) if err != nil { log.Infof("failed to get network ID from system-probe: %s", err) return "", err diff --git a/pkg/process/checks/process.go b/pkg/process/checks/process.go index f1837d183e540..2fd7fe7e1c3fd 100644 --- a/pkg/process/checks/process.go +++ b/pkg/process/checks/process.go @@ -9,6 +9,7 @@ import ( "errors" "fmt" "math" + "net/http" "regexp" "strings" "time" @@ -17,6 +18,7 @@ import ( "github.com/shirou/gopsutil/v3/cpu" "go.uber.org/atomic" + "github.com/DataDog/datadog-agent/cmd/system-probe/api/client" workloadmetacomp "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" pkgconfigmodel "github.com/DataDog/datadog-agent/pkg/config/model" pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" @@ -123,6 +125,8 @@ type ProcessCheck struct { serviceExtractor *parser.ServiceExtractor wmeta workloadmetacomp.Component + + sysprobeClient *http.Client } // Init initializes the singleton ProcessCheck. @@ -140,17 +144,11 @@ func (p *ProcessCheck) Init(syscfg *SysProbeConfig, info *HostInfo, oneShot bool p.notInitializedLogLimit = log.NewLogLimit(1, time.Minute*10) - var tu net.SysProbeUtil - - if syscfg.NetworkTracerModuleEnabled { - // Calling the remote tracer will cause it to initialize and check connectivity - tu, err = net.GetRemoteSystemProbeUtil(syscfg.SystemProbeAddress) - if err != nil { - log.Warnf("could not initiate connection with system probe: %s", err) - } + if syscfg.NetworkTracerModuleEnabled || syscfg.ProcessModuleEnabled { + p.sysprobeClient = client.Get(syscfg.SystemProbeAddress) } - networkID, err := retryGetNetworkID(tu) + networkID, err := retryGetNetworkID(p.sysprobeClient) if err != nil { log.Infof("no network ID detected: %s", err) } @@ -271,8 +269,13 @@ func (p *ProcessCheck) run(groupID int32, collectRealTime bool) (RunResult, erro p.lastPIDs = append(p.lastPIDs, pid) } - if sysProbeUtil := p.getRemoteSysProbeUtil(); sysProbeUtil != nil { - mergeProcWithSysprobeStats(p.lastPIDs, procs, sysProbeUtil) + if p.sysprobeClient != nil && p.sysProbeConfig.ProcessModuleEnabled { + pStats, err := net.GetProcStats(p.sysprobeClient, p.lastPIDs) + if err == nil { + mergeProcWithSysprobeStats(procs, pStats) + } else { + log.Debugf("cannot do GetProcStats from system-probe for process check: %s", err) + } } var containers []*model.Container @@ -661,36 +664,16 @@ func skipProcess( return false } -func (p *ProcessCheck) getRemoteSysProbeUtil() net.SysProbeUtil { - if !p.sysProbeConfig.ProcessModuleEnabled { - return nil - } - - pu, err := net.GetRemoteSystemProbeUtil(p.sysProbeConfig.SystemProbeAddress) - if err != nil { - if p.notInitializedLogLimit.ShouldLog() { - log.Warnf("could not initialize system-probe connection in process check: %v (will only log every 10 minutes)", err) - } - return nil - } - return pu -} - // mergeProcWithSysprobeStats takes a process by PID map and fill the stats from system probe into the processes in the map -func mergeProcWithSysprobeStats(pids []int32, procs map[int32]*procutil.Process, pu net.SysProbeUtil) { - pStats, err := pu.GetProcStats(pids) - if err == nil { - for pid, proc := range procs { - if s, ok := pStats.StatsByPID[pid]; ok { - proc.Stats.OpenFdCount = s.OpenFDCount - proc.Stats.IOStat.ReadCount = s.ReadCount - proc.Stats.IOStat.WriteCount = s.WriteCount - proc.Stats.IOStat.ReadBytes = s.ReadBytes - proc.Stats.IOStat.WriteBytes = s.WriteBytes - } +func mergeProcWithSysprobeStats(procs map[int32]*procutil.Process, pStats *model.ProcStatsWithPermByPID) { + for pid, proc := range procs { + if s, ok := pStats.StatsByPID[pid]; ok { + proc.Stats.OpenFdCount = s.OpenFDCount + proc.Stats.IOStat.ReadCount = s.ReadCount + proc.Stats.IOStat.WriteCount = s.WriteCount + proc.Stats.IOStat.ReadBytes = s.ReadBytes + proc.Stats.IOStat.WriteBytes = s.WriteBytes } - } else { - log.Debugf("cannot do GetProcStats from system-probe for process check: %s", err) } } diff --git a/pkg/process/checks/process_rt.go b/pkg/process/checks/process_rt.go index 33bf93f06a793..04be7253f42e4 100644 --- a/pkg/process/checks/process_rt.go +++ b/pkg/process/checks/process_rt.go @@ -6,6 +6,7 @@ package checks import ( + "net/http" "time" model "github.com/DataDog/agent-payload/v5/process" @@ -38,8 +39,8 @@ func (p *ProcessCheck) runRealtime(groupID int32) (RunResult, error) { return nil, err } - if sysProbeUtil := p.getRemoteSysProbeUtil(); sysProbeUtil != nil { - mergeStatWithSysprobeStats(p.lastPIDs, procs, sysProbeUtil) + if p.sysprobeClient != nil && p.sysProbeConfig.ProcessModuleEnabled { + mergeStatWithSysprobeStats(p.lastPIDs, procs, p.sysprobeClient) } var containers []*model.Container @@ -160,8 +161,8 @@ func calculateRate(cur, prev uint64, before time.Time) float32 { } // mergeStatWithSysprobeStats takes a process by PID map and fill the stats from system probe into the processes in the map -func mergeStatWithSysprobeStats(pids []int32, stats map[int32]*procutil.Stats, pu net.SysProbeUtil) { - pStats, err := pu.GetProcStats(pids) +func mergeStatWithSysprobeStats(pids []int32, stats map[int32]*procutil.Stats, client *http.Client) { + pStats, err := net.GetProcStats(client, pids) if err == nil { for pid, stats := range stats { if s, ok := pStats.StatsByPID[pid]; ok { diff --git a/pkg/process/checks/sysprobe_stats_test.go b/pkg/process/checks/sysprobe_stats_test.go index 2990b5bb7e957..9f7e315f2ebc6 100644 --- a/pkg/process/checks/sysprobe_stats_test.go +++ b/pkg/process/checks/sysprobe_stats_test.go @@ -6,14 +6,12 @@ package checks import ( - "fmt" "math/rand" "testing" "github.com/DataDog/agent-payload/v5/process" "github.com/stretchr/testify/assert" - netMocks "github.com/DataDog/datadog-agent/pkg/process/net/mocks" "github.com/DataDog/datadog-agent/pkg/process/procutil" ) @@ -46,12 +44,9 @@ func TestMergeProcWithSysprobeStats(t *testing.T) { proc1Stats := makeProcStatsWithPerm(1) proc2Stats := makeProcStatsWithPerm(2) - mockSysProbe := netMocks.NewSysProbeUtil(t) - mockSysProbe.On("GetProcStats", []int32{1, 2}).Return(&process.ProcStatsWithPermByPID{ + mergeProcWithSysprobeStats(map[int32]*procutil.Process{1: proc1, 2: proc2}, &process.ProcStatsWithPermByPID{ StatsByPID: map[int32]*process.ProcStatsWithPerm{1: proc1Stats, 2: proc2Stats}, - }, nil) - - mergeProcWithSysprobeStats([]int32{1, 2}, map[int32]*procutil.Process{1: proc1, 2: proc2}, mockSysProbe) + }) assertMatchesSysProbeStats(t, proc1, proc1Stats) assertMatchesSysProbeStats(t, proc2, proc2Stats) @@ -63,12 +58,9 @@ func TestMergeProcWithSysprobeStats(t *testing.T) { proc1Stats := makeProcStatsWithPerm(1) - mockSysProbe := netMocks.NewSysProbeUtil(t) - mockSysProbe.On("GetProcStats", []int32{1}).Return(&process.ProcStatsWithPermByPID{ + mergeProcWithSysprobeStats(map[int32]*procutil.Process{1: proc1, 2: proc2}, &process.ProcStatsWithPermByPID{ StatsByPID: map[int32]*process.ProcStatsWithPerm{1: proc1Stats}, - }, nil) - - mergeProcWithSysprobeStats([]int32{1}, map[int32]*procutil.Process{1: proc1, 2: proc2}, mockSysProbe) + }) assertMatchesSysProbeStats(t, proc1, proc1Stats) assert.False(t, hasSysProbeStats(proc2)) @@ -80,24 +72,10 @@ func TestMergeProcWithSysprobeStats(t *testing.T) { proc1Stats := makeProcStatsWithPerm(1) proc2Stats := makeProcStatsWithPerm(2) - mockSysProbe := netMocks.NewSysProbeUtil(t) - mockSysProbe.On("GetProcStats", []int32{1, 2}).Return(&process.ProcStatsWithPermByPID{ + mergeProcWithSysprobeStats(map[int32]*procutil.Process{2: proc2}, &process.ProcStatsWithPermByPID{ StatsByPID: map[int32]*process.ProcStatsWithPerm{1: proc1Stats, 2: proc2Stats}, - }, nil) - - mergeProcWithSysprobeStats([]int32{1, 2}, map[int32]*procutil.Process{2: proc2}, mockSysProbe) + }) assertMatchesSysProbeStats(t, proc2, proc2Stats) }) - - t.Run("error", func(t *testing.T) { - proc1 := makeProcess(1, "git clone google.com") - - mockSysProbe := netMocks.NewSysProbeUtil(t) - mockSysProbe.On("GetProcStats", []int32{1}).Return(nil, fmt.Errorf("catastrophic failure")) - - mergeProcWithSysprobeStats([]int32{1}, map[int32]*procutil.Process{1: proc1}, mockSysProbe) - - assert.False(t, hasSysProbeStats(proc1)) - }) } diff --git a/pkg/process/net/common.go b/pkg/process/net/common.go index b9f1b787d52ad..83b1b603584fd 100644 --- a/pkg/process/net/common.go +++ b/pkg/process/net/common.go @@ -9,92 +9,20 @@ package net import ( "bytes" - "context" "fmt" - "io" - "net" "net/http" - "time" model "github.com/DataDog/agent-payload/v5/process" - netEncoding "github.com/DataDog/datadog-agent/pkg/network/encoding/unmarshal" - nppayload "github.com/DataDog/datadog-agent/pkg/networkpath/payload" + sysprobeclient "github.com/DataDog/datadog-agent/cmd/system-probe/api/client" + sysconfig "github.com/DataDog/datadog-agent/cmd/system-probe/config" procEncoding "github.com/DataDog/datadog-agent/pkg/process/encoding" reqEncoding "github.com/DataDog/datadog-agent/pkg/process/encoding/request" pbgo "github.com/DataDog/datadog-agent/pkg/proto/pbgo/process" - "github.com/DataDog/datadog-agent/pkg/util/funcs" - "github.com/DataDog/datadog-agent/pkg/util/log" - "github.com/DataDog/datadog-agent/pkg/util/retry" ) -// Conn is a wrapper over some net.Listener -type Conn interface { - // GetListener returns the underlying net.Listener - GetListener() net.Listener - - // Stop and clean up resources for the underlying connection - Stop() -} - -const ( - contentTypeProtobuf = "application/protobuf" - contentTypeJSON = "application/json" -) - -var _ SysProbeUtil = &RemoteSysProbeUtil{} - -// RemoteSysProbeUtil wraps interactions with a remote system probe service -type RemoteSysProbeUtil struct { - // Retrier used to setup system probe - initRetry retry.Retrier - - path string - httpClient http.Client - tracerouteClient http.Client -} - -// ensure that GetRemoteSystemProbeUtil implements SysProbeUtilGetter -var _ SysProbeUtilGetter = GetRemoteSystemProbeUtil - -// GetRemoteSystemProbeUtil returns a ready to use RemoteSysProbeUtil. It is backed by a shared singleton. -func GetRemoteSystemProbeUtil(path string) (SysProbeUtil, error) { - sysProbeUtil, err := getRemoteSystemProbeUtil(path) - if err != nil { - return nil, err - } - - if err := sysProbeUtil.initRetry.TriggerRetry(); err != nil { - log.Debugf("system probe init error: %s", err) - return nil, err - } - - return sysProbeUtil, nil -} - -var getRemoteSystemProbeUtil = funcs.MemoizeArg(func(path string) (*RemoteSysProbeUtil, error) { - err := CheckPath(path) - if err != nil { - return nil, fmt.Errorf("error setting up remote system probe util, %v", err) - } - - sysProbeUtil := newSystemProbe(path) - err = sysProbeUtil.initRetry.SetupRetrier(&retry.Config{ //nolint:errcheck - Name: "system-probe-util", - AttemptMethod: sysProbeUtil.init, - Strategy: retry.RetryCount, - // 10 tries w/ 30s delays = 5m of trying before permafail - RetryCount: 10, - RetryDelay: 30 * time.Second, - }) - if err != nil { - return nil, err - } - return sysProbeUtil, nil -}) - // GetProcStats returns a set of process stats by querying system-probe -func (r *RemoteSysProbeUtil) GetProcStats(pids []int32) (*model.ProcStatsWithPermByPID, error) { +func GetProcStats(client *http.Client, pids []int32) (*model.ProcStatsWithPermByPID, error) { procReq := &pbgo.ProcessStatRequest{ Pids: pids, } @@ -104,24 +32,25 @@ func (r *RemoteSysProbeUtil) GetProcStats(pids []int32) (*model.ProcStatsWithPer return nil, err } - req, err := http.NewRequest("POST", procStatsURL, bytes.NewReader(reqBody)) + url := sysprobeclient.ModuleURL(sysconfig.ProcessModule, "/stats") + req, err := http.NewRequest("POST", url, bytes.NewReader(reqBody)) if err != nil { return nil, err } - req.Header.Set("Accept", contentTypeProtobuf) + req.Header.Set("Accept", procEncoding.ContentTypeProtobuf) req.Header.Set("Content-Type", procEncoding.ContentTypeProtobuf) - resp, err := r.httpClient.Do(req) + resp, err := client.Do(req) if err != nil { return nil, err } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { - return nil, fmt.Errorf("proc_stats request failed: Probe Path %s, url: %s, status code: %d", r.path, procStatsURL, resp.StatusCode) + return nil, fmt.Errorf("proc_stats request failed: url: %s, status code: %d", req.URL, resp.StatusCode) } - body, err := readAllResponseBody(resp) + body, err := sysprobeclient.ReadAllResponseBody(resp) if err != nil { return nil, err } @@ -135,180 +64,29 @@ func (r *RemoteSysProbeUtil) GetProcStats(pids []int32) (*model.ProcStatsWithPer return results, nil } -// GetConnections returns a set of active network connections, retrieved from the system probe service -func (r *RemoteSysProbeUtil) GetConnections(clientID string) (*model.Connections, error) { - req, err := http.NewRequest("GET", fmt.Sprintf("%s?client_id=%s", connectionsURL, clientID), nil) - if err != nil { - return nil, err - } - - req.Header.Set("Accept", contentTypeProtobuf) - resp, err := r.httpClient.Do(req) - if err != nil { - return nil, err - } - - defer resp.Body.Close() - - if resp.StatusCode != http.StatusOK { - return nil, fmt.Errorf("conn request failed: Probe Path %s, url: %s, status code: %d", r.path, connectionsURL, resp.StatusCode) - } - - body, err := readAllResponseBody(resp) - if err != nil { - return nil, err - } - - contentType := resp.Header.Get("Content-type") - conns, err := netEncoding.GetUnmarshaler(contentType).Unmarshal(body) - if err != nil { - return nil, err - } - - return conns, nil -} - // GetNetworkID fetches the network_id (vpc_id) from system-probe -func (r *RemoteSysProbeUtil) GetNetworkID() (string, error) { - req, err := http.NewRequest("GET", networkIDURL, nil) +func GetNetworkID(client *http.Client) (string, error) { + url := sysprobeclient.ModuleURL(sysconfig.NetworkTracerModule, "/network_id") + req, err := http.NewRequest("GET", url, nil) if err != nil { return "", fmt.Errorf("failed to create request: %w", err) } req.Header.Set("Accept", "text/plain") - resp, err := r.httpClient.Do(req) + resp, err := client.Do(req) if err != nil { return "", fmt.Errorf("failed to execute request: %w", err) } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { - return "", fmt.Errorf("network_id request failed: url: %s, status code: %d", networkIDURL, resp.StatusCode) + return "", fmt.Errorf("network_id request failed: url: %s, status code: %d", req.URL, resp.StatusCode) } - body, err := readAllResponseBody(resp) + body, err := sysprobeclient.ReadAllResponseBody(resp) if err != nil { return "", fmt.Errorf("failed to read response body: %w", err) } return string(body), nil } - -// GetPing returns the results of a ping to a host -func (r *RemoteSysProbeUtil) GetPing(clientID string, host string, count int, interval time.Duration, timeout time.Duration) ([]byte, error) { - req, err := http.NewRequest("GET", fmt.Sprintf("%s/%s?client_id=%s&count=%d&interval=%d&timeout=%d", pingURL, host, clientID, count, interval, timeout), nil) - if err != nil { - return nil, err - } - - req.Header.Set("Accept", contentTypeJSON) - resp, err := r.httpClient.Do(req) - if err != nil { - return nil, err - } - defer resp.Body.Close() - - if resp.StatusCode == http.StatusBadRequest { - body, err := readAllResponseBody(resp) - if err != nil { - return nil, fmt.Errorf("ping request failed: Probe Path %s, url: %s, status code: %d", r.path, pingURL, resp.StatusCode) - } - return nil, fmt.Errorf("ping request failed: Probe Path %s, url: %s, status code: %d, error: %s", r.path, pingURL, resp.StatusCode, string(body)) - } else if resp.StatusCode != http.StatusOK { - return nil, fmt.Errorf("ping request failed: Probe Path %s, url: %s, status code: %d", r.path, pingURL, resp.StatusCode) - } - - body, err := readAllResponseBody(resp) - if err != nil { - return nil, err - } - - return body, nil -} - -// GetTraceroute returns the results of a traceroute to a host -func (r *RemoteSysProbeUtil) GetTraceroute(clientID string, host string, port uint16, protocol nppayload.Protocol, maxTTL uint8, timeout time.Duration) ([]byte, error) { - httpTimeout := timeout*time.Duration(maxTTL) + 10*time.Second // allow extra time for the system probe communication overhead, calculate full timeout for TCP traceroute - log.Tracef("Network Path traceroute HTTP request timeout: %s", httpTimeout) - ctx, cancel := context.WithTimeout(context.Background(), httpTimeout) - defer cancel() - - req, err := http.NewRequestWithContext(ctx, "GET", fmt.Sprintf("%s/%s?client_id=%s&port=%d&max_ttl=%d&timeout=%d&protocol=%s", tracerouteURL, host, clientID, port, maxTTL, timeout, protocol), nil) - if err != nil { - return nil, err - } - - req.Header.Set("Accept", contentTypeJSON) - resp, err := r.tracerouteClient.Do(req) - if err != nil { - return nil, err - } - defer resp.Body.Close() - - if resp.StatusCode == http.StatusBadRequest { - body, err := readAllResponseBody(resp) - if err != nil { - return nil, fmt.Errorf("traceroute request failed: Probe Path %s, url: %s, status code: %d", r.path, tracerouteURL, resp.StatusCode) - } - return nil, fmt.Errorf("traceroute request failed: Probe Path %s, url: %s, status code: %d, error: %s", r.path, tracerouteURL, resp.StatusCode, string(body)) - } else if resp.StatusCode != http.StatusOK { - return nil, fmt.Errorf("traceroute request failed: Probe Path %s, url: %s, status code: %d", r.path, tracerouteURL, resp.StatusCode) - } - - body, err := readAllResponseBody(resp) - if err != nil { - return nil, err - } - - return body, nil -} - -// Register registers the client to system probe -func (r *RemoteSysProbeUtil) Register(clientID string) error { - req, err := http.NewRequest("GET", fmt.Sprintf("%s?client_id=%s", registerURL, clientID), nil) - if err != nil { - return err - } - - resp, err := r.httpClient.Do(req) - if err != nil { - return err - } - defer resp.Body.Close() - if resp.StatusCode != http.StatusOK { - return fmt.Errorf("conn request failed: Path %s, url: %s, status code: %d", r.path, statsURL, resp.StatusCode) - } - - return nil -} - -func (r *RemoteSysProbeUtil) init() error { - resp, err := r.httpClient.Get(statsURL) - if err != nil { - return err - } - defer resp.Body.Close() - if resp.StatusCode != http.StatusOK { - return fmt.Errorf("remote tracer status check failed: socket %s, url: %s, status code: %d", r.path, statsURL, resp.StatusCode) - } - return nil -} - -func readAllResponseBody(resp *http.Response) ([]byte, error) { - // if we are not able to determine the content length - // we read the whole body without pre-allocation - if resp.ContentLength <= 0 { - return io.ReadAll(resp.Body) - } - - // if we know the content length we pre-allocate the buffer - var buf bytes.Buffer - buf.Grow(int(resp.ContentLength)) - - _, err := buf.ReadFrom(resp.Body) - if err != nil { - return nil, err - } - - return buf.Bytes(), nil -} diff --git a/pkg/process/net/common_all.go b/pkg/process/net/common_all.go index 9dee717e7b6bb..1e1cc1fcb17a1 100644 --- a/pkg/process/net/common_all.go +++ b/pkg/process/net/common_all.go @@ -1,14 +1,7 @@ // Unless explicitly stated otherwise all files in this repository are licensed // under the Apache License Version 2.0. // This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. +// Copyright 2024-present Datadog, Inc. // Package net provides local access to system probe package net - -import "errors" - -var ( - // ErrNotImplemented is an error used when system-probe is attempted to be accessed on an unsupported OS - ErrNotImplemented = errors.New("system-probe unsupported") -) diff --git a/pkg/process/net/common_linux.go b/pkg/process/net/common_linux.go deleted file mode 100644 index 3529180ba9576..0000000000000 --- a/pkg/process/net/common_linux.go +++ /dev/null @@ -1,56 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -//go:build linux - -package net - -import ( - "errors" - "fmt" - "net/http" - "os" - - "github.com/DataDog/datadog-agent/cmd/system-probe/api/client" - sysconfig "github.com/DataDog/datadog-agent/cmd/system-probe/config" -) - -const ( - pingURL = "http://unix/" + string(sysconfig.PingModule) + "/ping/" - tracerouteURL = "http://unix/" + string(sysconfig.TracerouteModule) + "/traceroute/" - connectionsURL = "http://unix/" + string(sysconfig.NetworkTracerModule) + "/connections" - networkIDURL = "http://unix/" + string(sysconfig.NetworkTracerModule) + "/network_id" - procStatsURL = "http://unix/" + string(sysconfig.ProcessModule) + "/stats" - registerURL = "http://unix/" + string(sysconfig.NetworkTracerModule) + "/register" - statsURL = "http://unix/debug/stats" -) - -// CheckPath is used in conjunction with calling the stats endpoint, since we are calling this -// From the main agent and want to ensure the socket exists -func CheckPath(path string) error { - if path == "" { - return errors.New("socket path is empty") - } - - if _, err := os.Stat(path); err != nil { - return fmt.Errorf("socket path does not exist: %v", err) - } - return nil -} - -// newSystemProbe creates a group of clients to interact with system-probe. -func newSystemProbe(path string) *RemoteSysProbeUtil { - return &RemoteSysProbeUtil{ - path: path, - httpClient: *client.Get(path), - tracerouteClient: http.Client{ - // no timeout set here, the expected usage of this client - // is that the caller will set a timeout on each request - Transport: &http.Transport{ - DialContext: client.DialContextFunc(path), - }, - }, - } -} diff --git a/pkg/process/net/common_unsupported.go b/pkg/process/net/common_unsupported.go index c4354fce03fd9..c145137a3a0af 100644 --- a/pkg/process/net/common_unsupported.go +++ b/pkg/process/net/common_unsupported.go @@ -1,72 +1,25 @@ // Unless explicitly stated otherwise all files in this repository are licensed // under the Apache License Version 2.0. // This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. +// Copyright 2024-present Datadog, Inc. //go:build !linux && !windows package net import ( - "time" + "errors" + "net/http" model "github.com/DataDog/agent-payload/v5/process" - - nppayload "github.com/DataDog/datadog-agent/pkg/networkpath/payload" ) -var _ SysProbeUtil = &RemoteSysProbeUtil{} -var _ SysProbeUtilGetter = GetRemoteSystemProbeUtil - -// RemoteSysProbeUtil is not supported -type RemoteSysProbeUtil struct{} - -// CheckPath is not supported -// -//nolint:revive // TODO(PROC) Fix revive linter -func CheckPath(_ string) error { - return ErrNotImplemented -} - -// GetRemoteSystemProbeUtil is not supported -// -//nolint:revive // TODO(PROC) Fix revive linter -func GetRemoteSystemProbeUtil(_ string) (SysProbeUtil, error) { - return &RemoteSysProbeUtil{}, ErrNotImplemented -} - -// GetConnections is not supported -// -//nolint:revive // TODO(PROC) Fix revive linter -func (r *RemoteSysProbeUtil) GetConnections(_ string) (*model.Connections, error) { - return nil, ErrNotImplemented -} - -// GetNetworkID is not supported -func (r *RemoteSysProbeUtil) GetNetworkID() (string, error) { - return "", ErrNotImplemented -} - -// GetProcStats is not supported -// -//nolint:revive // TODO(PROC) Fix revive linter -func (r *RemoteSysProbeUtil) GetProcStats(_ []int32) (*model.ProcStatsWithPermByPID, error) { - return nil, ErrNotImplemented -} - -// Register is not supported -// -//nolint:revive // TODO(PROC) Fix revive linter -func (r *RemoteSysProbeUtil) Register(_ string) error { - return ErrNotImplemented -} - -// GetPing is not supported -func (r *RemoteSysProbeUtil) GetPing(_ string, _ string, _ int, _ time.Duration, _ time.Duration) ([]byte, error) { - return nil, ErrNotImplemented +// GetProcStats returns a set of process stats by querying system-probe +func GetProcStats(_ *http.Client, _ []int32) (*model.ProcStatsWithPermByPID, error) { + return nil, errors.New("unsupported platform") } -// GetTraceroute is not supported -func (r *RemoteSysProbeUtil) GetTraceroute(_ string, _ string, _ uint16, _ nppayload.Protocol, _ uint8, _ time.Duration) ([]byte, error) { - return nil, ErrNotImplemented +// GetNetworkID fetches the network_id (vpc_id) from system-probe +func GetNetworkID(_ *http.Client) (string, error) { + return "", errors.New("unsupported platform") } diff --git a/pkg/process/net/common_windows.go b/pkg/process/net/common_windows.go deleted file mode 100644 index 7a08bca481b93..0000000000000 --- a/pkg/process/net/common_windows.go +++ /dev/null @@ -1,63 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -//go:build windows - -package net - -import ( - "errors" - "net/http" - "time" - - "github.com/DataDog/datadog-agent/cmd/system-probe/api/client" - sysconfig "github.com/DataDog/datadog-agent/cmd/system-probe/config" -) - -const ( - connectionsURL = "http://localhost:3333/" + string(sysconfig.NetworkTracerModule) + "/connections" - networkIDURL = "http://unix/" + string(sysconfig.NetworkTracerModule) + "/network_id" - registerURL = "http://localhost:3333/" + string(sysconfig.NetworkTracerModule) + "/register" - statsURL = "http://localhost:3333/debug/stats" - tracerouteURL = "http://localhost:3333/" + string(sysconfig.TracerouteModule) + "/traceroute/" - - // procStatsURL is not used in windows, the value is added to avoid compilation error in windows - procStatsURL = "http://localhost:3333/" + string(sysconfig.ProcessModule) + "stats" - // pingURL is not used in windows, the value is added to avoid compilation error in windows - pingURL = "http://localhost:3333/" + string(sysconfig.PingModule) + "/ping/" - - // systemProbeMaxIdleConns sets the maximum number of idle named pipe connections. - systemProbeMaxIdleConns = 2 - - // systemProbeIdleConnTimeout is the time a named pipe connection is held up idle before being closed. - // This should be small since connections are local, to close them as soon as they are done, - // and to quickly service new pending connections. - systemProbeIdleConnTimeout = 5 * time.Second -) - -// CheckPath is used to make sure the globalSocketPath has been set before attempting to connect -func CheckPath(path string) error { - if path == "" { - return errors.New("socket path is empty") - } - return nil -} - -// newSystemProbe creates a group of clients to interact with system-probe. -func newSystemProbe(path string) *RemoteSysProbeUtil { - return &RemoteSysProbeUtil{ - path: path, - httpClient: *client.Get(path), - tracerouteClient: http.Client{ - // no timeout set here, the expected usage of this client - // is that the caller will set a timeout on each request - Transport: &http.Transport{ - MaxIdleConns: systemProbeMaxIdleConns, - IdleConnTimeout: systemProbeIdleConnTimeout, - DialContext: client.DialContextFunc(path), - }, - }, - } -} diff --git a/pkg/process/net/mocks/sys_probe_util.go b/pkg/process/net/mocks/sys_probe_util.go deleted file mode 100644 index 00c03f639df65..0000000000000 --- a/pkg/process/net/mocks/sys_probe_util.go +++ /dev/null @@ -1,382 +0,0 @@ -// Code generated by mockery v2.49.2. DO NOT EDIT. - -package mocks - -import ( - mock "github.com/stretchr/testify/mock" - - payload "github.com/DataDog/datadog-agent/pkg/networkpath/payload" - - process "github.com/DataDog/agent-payload/v5/process" - - time "time" -) - -// SysProbeUtil is an autogenerated mock type for the SysProbeUtil type -type SysProbeUtil struct { - mock.Mock -} - -type SysProbeUtil_Expecter struct { - mock *mock.Mock -} - -func (_m *SysProbeUtil) EXPECT() *SysProbeUtil_Expecter { - return &SysProbeUtil_Expecter{mock: &_m.Mock} -} - -// GetConnections provides a mock function with given fields: clientID -func (_m *SysProbeUtil) GetConnections(clientID string) (*process.Connections, error) { - ret := _m.Called(clientID) - - if len(ret) == 0 { - panic("no return value specified for GetConnections") - } - - var r0 *process.Connections - var r1 error - if rf, ok := ret.Get(0).(func(string) (*process.Connections, error)); ok { - return rf(clientID) - } - if rf, ok := ret.Get(0).(func(string) *process.Connections); ok { - r0 = rf(clientID) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*process.Connections) - } - } - - if rf, ok := ret.Get(1).(func(string) error); ok { - r1 = rf(clientID) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// SysProbeUtil_GetConnections_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetConnections' -type SysProbeUtil_GetConnections_Call struct { - *mock.Call -} - -// GetConnections is a helper method to define mock.On call -// - clientID string -func (_e *SysProbeUtil_Expecter) GetConnections(clientID interface{}) *SysProbeUtil_GetConnections_Call { - return &SysProbeUtil_GetConnections_Call{Call: _e.mock.On("GetConnections", clientID)} -} - -func (_c *SysProbeUtil_GetConnections_Call) Run(run func(clientID string)) *SysProbeUtil_GetConnections_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(string)) - }) - return _c -} - -func (_c *SysProbeUtil_GetConnections_Call) Return(_a0 *process.Connections, _a1 error) *SysProbeUtil_GetConnections_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *SysProbeUtil_GetConnections_Call) RunAndReturn(run func(string) (*process.Connections, error)) *SysProbeUtil_GetConnections_Call { - _c.Call.Return(run) - return _c -} - -// GetNetworkID provides a mock function with no fields -func (_m *SysProbeUtil) GetNetworkID() (string, error) { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for GetNetworkID") - } - - var r0 string - var r1 error - if rf, ok := ret.Get(0).(func() (string, error)); ok { - return rf() - } - if rf, ok := ret.Get(0).(func() string); ok { - r0 = rf() - } else { - r0 = ret.Get(0).(string) - } - - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// SysProbeUtil_GetNetworkID_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetNetworkID' -type SysProbeUtil_GetNetworkID_Call struct { - *mock.Call -} - -// GetNetworkID is a helper method to define mock.On call -func (_e *SysProbeUtil_Expecter) GetNetworkID() *SysProbeUtil_GetNetworkID_Call { - return &SysProbeUtil_GetNetworkID_Call{Call: _e.mock.On("GetNetworkID")} -} - -func (_c *SysProbeUtil_GetNetworkID_Call) Run(run func()) *SysProbeUtil_GetNetworkID_Call { - _c.Call.Run(func(args mock.Arguments) { - run() - }) - return _c -} - -func (_c *SysProbeUtil_GetNetworkID_Call) Return(_a0 string, _a1 error) *SysProbeUtil_GetNetworkID_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *SysProbeUtil_GetNetworkID_Call) RunAndReturn(run func() (string, error)) *SysProbeUtil_GetNetworkID_Call { - _c.Call.Return(run) - return _c -} - -// GetPing provides a mock function with given fields: clientID, host, count, interval, timeout -func (_m *SysProbeUtil) GetPing(clientID string, host string, count int, interval time.Duration, timeout time.Duration) ([]byte, error) { - ret := _m.Called(clientID, host, count, interval, timeout) - - if len(ret) == 0 { - panic("no return value specified for GetPing") - } - - var r0 []byte - var r1 error - if rf, ok := ret.Get(0).(func(string, string, int, time.Duration, time.Duration) ([]byte, error)); ok { - return rf(clientID, host, count, interval, timeout) - } - if rf, ok := ret.Get(0).(func(string, string, int, time.Duration, time.Duration) []byte); ok { - r0 = rf(clientID, host, count, interval, timeout) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]byte) - } - } - - if rf, ok := ret.Get(1).(func(string, string, int, time.Duration, time.Duration) error); ok { - r1 = rf(clientID, host, count, interval, timeout) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// SysProbeUtil_GetPing_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetPing' -type SysProbeUtil_GetPing_Call struct { - *mock.Call -} - -// GetPing is a helper method to define mock.On call -// - clientID string -// - host string -// - count int -// - interval time.Duration -// - timeout time.Duration -func (_e *SysProbeUtil_Expecter) GetPing(clientID interface{}, host interface{}, count interface{}, interval interface{}, timeout interface{}) *SysProbeUtil_GetPing_Call { - return &SysProbeUtil_GetPing_Call{Call: _e.mock.On("GetPing", clientID, host, count, interval, timeout)} -} - -func (_c *SysProbeUtil_GetPing_Call) Run(run func(clientID string, host string, count int, interval time.Duration, timeout time.Duration)) *SysProbeUtil_GetPing_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(string), args[1].(string), args[2].(int), args[3].(time.Duration), args[4].(time.Duration)) - }) - return _c -} - -func (_c *SysProbeUtil_GetPing_Call) Return(_a0 []byte, _a1 error) *SysProbeUtil_GetPing_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *SysProbeUtil_GetPing_Call) RunAndReturn(run func(string, string, int, time.Duration, time.Duration) ([]byte, error)) *SysProbeUtil_GetPing_Call { - _c.Call.Return(run) - return _c -} - -// GetProcStats provides a mock function with given fields: pids -func (_m *SysProbeUtil) GetProcStats(pids []int32) (*process.ProcStatsWithPermByPID, error) { - ret := _m.Called(pids) - - if len(ret) == 0 { - panic("no return value specified for GetProcStats") - } - - var r0 *process.ProcStatsWithPermByPID - var r1 error - if rf, ok := ret.Get(0).(func([]int32) (*process.ProcStatsWithPermByPID, error)); ok { - return rf(pids) - } - if rf, ok := ret.Get(0).(func([]int32) *process.ProcStatsWithPermByPID); ok { - r0 = rf(pids) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*process.ProcStatsWithPermByPID) - } - } - - if rf, ok := ret.Get(1).(func([]int32) error); ok { - r1 = rf(pids) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// SysProbeUtil_GetProcStats_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetProcStats' -type SysProbeUtil_GetProcStats_Call struct { - *mock.Call -} - -// GetProcStats is a helper method to define mock.On call -// - pids []int32 -func (_e *SysProbeUtil_Expecter) GetProcStats(pids interface{}) *SysProbeUtil_GetProcStats_Call { - return &SysProbeUtil_GetProcStats_Call{Call: _e.mock.On("GetProcStats", pids)} -} - -func (_c *SysProbeUtil_GetProcStats_Call) Run(run func(pids []int32)) *SysProbeUtil_GetProcStats_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].([]int32)) - }) - return _c -} - -func (_c *SysProbeUtil_GetProcStats_Call) Return(_a0 *process.ProcStatsWithPermByPID, _a1 error) *SysProbeUtil_GetProcStats_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *SysProbeUtil_GetProcStats_Call) RunAndReturn(run func([]int32) (*process.ProcStatsWithPermByPID, error)) *SysProbeUtil_GetProcStats_Call { - _c.Call.Return(run) - return _c -} - -// GetTraceroute provides a mock function with given fields: clientID, host, port, protocol, maxTTL, timeout -func (_m *SysProbeUtil) GetTraceroute(clientID string, host string, port uint16, protocol payload.Protocol, maxTTL uint8, timeout time.Duration) ([]byte, error) { - ret := _m.Called(clientID, host, port, protocol, maxTTL, timeout) - - if len(ret) == 0 { - panic("no return value specified for GetTraceroute") - } - - var r0 []byte - var r1 error - if rf, ok := ret.Get(0).(func(string, string, uint16, payload.Protocol, uint8, time.Duration) ([]byte, error)); ok { - return rf(clientID, host, port, protocol, maxTTL, timeout) - } - if rf, ok := ret.Get(0).(func(string, string, uint16, payload.Protocol, uint8, time.Duration) []byte); ok { - r0 = rf(clientID, host, port, protocol, maxTTL, timeout) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]byte) - } - } - - if rf, ok := ret.Get(1).(func(string, string, uint16, payload.Protocol, uint8, time.Duration) error); ok { - r1 = rf(clientID, host, port, protocol, maxTTL, timeout) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// SysProbeUtil_GetTraceroute_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetTraceroute' -type SysProbeUtil_GetTraceroute_Call struct { - *mock.Call -} - -// GetTraceroute is a helper method to define mock.On call -// - clientID string -// - host string -// - port uint16 -// - protocol payload.Protocol -// - maxTTL uint8 -// - timeout time.Duration -func (_e *SysProbeUtil_Expecter) GetTraceroute(clientID interface{}, host interface{}, port interface{}, protocol interface{}, maxTTL interface{}, timeout interface{}) *SysProbeUtil_GetTraceroute_Call { - return &SysProbeUtil_GetTraceroute_Call{Call: _e.mock.On("GetTraceroute", clientID, host, port, protocol, maxTTL, timeout)} -} - -func (_c *SysProbeUtil_GetTraceroute_Call) Run(run func(clientID string, host string, port uint16, protocol payload.Protocol, maxTTL uint8, timeout time.Duration)) *SysProbeUtil_GetTraceroute_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(string), args[1].(string), args[2].(uint16), args[3].(payload.Protocol), args[4].(uint8), args[5].(time.Duration)) - }) - return _c -} - -func (_c *SysProbeUtil_GetTraceroute_Call) Return(_a0 []byte, _a1 error) *SysProbeUtil_GetTraceroute_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *SysProbeUtil_GetTraceroute_Call) RunAndReturn(run func(string, string, uint16, payload.Protocol, uint8, time.Duration) ([]byte, error)) *SysProbeUtil_GetTraceroute_Call { - _c.Call.Return(run) - return _c -} - -// Register provides a mock function with given fields: clientID -func (_m *SysProbeUtil) Register(clientID string) error { - ret := _m.Called(clientID) - - if len(ret) == 0 { - panic("no return value specified for Register") - } - - var r0 error - if rf, ok := ret.Get(0).(func(string) error); ok { - r0 = rf(clientID) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// SysProbeUtil_Register_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Register' -type SysProbeUtil_Register_Call struct { - *mock.Call -} - -// Register is a helper method to define mock.On call -// - clientID string -func (_e *SysProbeUtil_Expecter) Register(clientID interface{}) *SysProbeUtil_Register_Call { - return &SysProbeUtil_Register_Call{Call: _e.mock.On("Register", clientID)} -} - -func (_c *SysProbeUtil_Register_Call) Run(run func(clientID string)) *SysProbeUtil_Register_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(string)) - }) - return _c -} - -func (_c *SysProbeUtil_Register_Call) Return(_a0 error) *SysProbeUtil_Register_Call { - _c.Call.Return(_a0) - return _c -} - -func (_c *SysProbeUtil_Register_Call) RunAndReturn(run func(string) error) *SysProbeUtil_Register_Call { - _c.Call.Return(run) - return _c -} - -// NewSysProbeUtil creates a new instance of SysProbeUtil. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewSysProbeUtil(t interface { - mock.TestingT - Cleanup(func()) -}) *SysProbeUtil { - mock := &SysProbeUtil{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/pkg/process/net/shared.go b/pkg/process/net/shared.go deleted file mode 100644 index 33ca74d07863d..0000000000000 --- a/pkg/process/net/shared.go +++ /dev/null @@ -1,28 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -package net - -import ( - "time" - - model "github.com/DataDog/agent-payload/v5/process" - - nppayload "github.com/DataDog/datadog-agent/pkg/networkpath/payload" -) - -// SysProbeUtilGetter is a function that returns a SysProbeUtil for the given path -// The standard implementation is GetRemoteSysProbeUtil -type SysProbeUtilGetter func(string) (SysProbeUtil, error) - -// SysProbeUtil fetches info from the SysProbe running remotely -type SysProbeUtil interface { - GetConnections(clientID string) (*model.Connections, error) - GetProcStats(pids []int32) (*model.ProcStatsWithPermByPID, error) - Register(clientID string) error - GetNetworkID() (string, error) - GetPing(clientID string, host string, count int, interval time.Duration, timeout time.Duration) ([]byte, error) - GetTraceroute(clientID string, host string, port uint16, protocol nppayload.Protocol, maxTTL uint8, timeout time.Duration) ([]byte, error) -} From 61e2e6f25a35afa79e2d1bc7dfa46c36f6016537 Mon Sep 17 00:00:00 2001 From: Ilia Kurenkov Date: Wed, 11 Dec 2024 21:22:37 +0100 Subject: [PATCH 417/439] Add metrics origins for Nvidia Nim integration (#32059) --- pkg/metrics/metricsource.go | 5 +++++ pkg/serializer/internal/metrics/origin_mapping.go | 3 +++ ...-for-Nvidia-Nim-integration.-8c799e83d78947b0.yaml | 11 +++++++++++ 3 files changed, 19 insertions(+) create mode 100644 releasenotes/notes/Add-metrics-origins-for-Nvidia-Nim-integration.-8c799e83d78947b0.yaml diff --git a/pkg/metrics/metricsource.go b/pkg/metrics/metricsource.go index 57a802188d380..f3afa888d60b4 100644 --- a/pkg/metrics/metricsource.go +++ b/pkg/metrics/metricsource.go @@ -307,6 +307,7 @@ const ( MetricSourceAppgateSDP MetricSourceAnyscale MetricSourceMilvus + MetricSourceNvidiaNim ) // String returns a string representation of MetricSource @@ -714,6 +715,8 @@ func (ms MetricSource) String() string { return "karpenter" case MetricSourceNvidiaTriton: return "nvidia_triton" + case MetricSourceNvidiaNim: + return "nvidia_nim" case MetricSourceRay: return "ray" case MetricSourceStrimzi: @@ -1248,6 +1251,8 @@ func CheckNameToMetricSource(name string) MetricSource { return MetricSourceKarpenter case "nvidia_triton": return MetricSourceNvidiaTriton + case "nvidia_nim": + return MetricSourceNvidiaNim case "ray": return MetricSourceRay case "strimzi": diff --git a/pkg/serializer/internal/metrics/origin_mapping.go b/pkg/serializer/internal/metrics/origin_mapping.go index 6b64e3e602078..45e433d7135b5 100644 --- a/pkg/serializer/internal/metrics/origin_mapping.go +++ b/pkg/serializer/internal/metrics/origin_mapping.go @@ -307,6 +307,7 @@ func metricSourceToOriginCategory(ms metrics.MetricSource) int32 { metrics.MetricSourceYarn, metrics.MetricSourceZk, metrics.MetricSourceAwsNeuron, + metrics.MetricSourceNvidiaNim, metrics.MetricSourceMilvus: return 11 // integrationMetrics default: @@ -899,6 +900,8 @@ func metricSourceToOriginService(ms metrics.MetricSource) int32 { return 419 case metrics.MetricSourceMilvus: return 425 + case metrics.MetricSourceNvidiaNim: + return 426 default: return 0 } diff --git a/releasenotes/notes/Add-metrics-origins-for-Nvidia-Nim-integration.-8c799e83d78947b0.yaml b/releasenotes/notes/Add-metrics-origins-for-Nvidia-Nim-integration.-8c799e83d78947b0.yaml new file mode 100644 index 0000000000000..6bec889b9c4e7 --- /dev/null +++ b/releasenotes/notes/Add-metrics-origins-for-Nvidia-Nim-integration.-8c799e83d78947b0.yaml @@ -0,0 +1,11 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +features: + - | + Add metrics origins for Nvidia Nim integration. From 47c78b0ba60f84c48a177533a3a26f258c6fdf9c Mon Sep 17 00:00:00 2001 From: Raphael Gavache Date: Wed, 11 Dec 2024 21:56:28 +0100 Subject: [PATCH 418/439] [fleet] propagate env (#32057) --- pkg/fleet/installer/setup/install.sh | 4 +++- test/new-e2e/tests/installer/script/all_scripts_test.go | 2 +- test/new-e2e/tests/installer/script/databricks_test.go | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/pkg/fleet/installer/setup/install.sh b/pkg/fleet/installer/setup/install.sh index d76e790de910f..074b275028111 100644 --- a/pkg/fleet/installer/setup/install.sh +++ b/pkg/fleet/installer/setup/install.sh @@ -15,8 +15,10 @@ downloader_path="${tmp_dir}/download-installer" install() { if [ "$UID" == "0" ]; then sudo_cmd='' + sudo_cmd_with_envs='' else sudo_cmd='sudo' + sudo_cmd_with_envs='sudo -E' fi $sudo_cmd mkdir -p "${tmp_dir}" @@ -30,7 +32,7 @@ install() { esac $sudo_cmd chmod +x "${downloader_path}" echo "Starting the Datadog installer..." - $sudo_cmd "${downloader_path}" "$@" + $sudo_cmd_with_envs "${downloader_path}" "$@" $sudo_cmd rm -f "${downloader_path}" } diff --git a/test/new-e2e/tests/installer/script/all_scripts_test.go b/test/new-e2e/tests/installer/script/all_scripts_test.go index f11119346e52e..b79d99de89f1c 100644 --- a/test/new-e2e/tests/installer/script/all_scripts_test.go +++ b/test/new-e2e/tests/installer/script/all_scripts_test.go @@ -150,7 +150,7 @@ func (s *installerScriptBaseSuite) RunInstallScript(url string, params ...string func (s *installerScriptBaseSuite) RunInstallScriptWithError(url string, params ...string) error { scriptParams := append(params, "DD_API_KEY=test", "DD_INSTALLER_REGISTRY_URL_INSTALLER_PACKAGE=installtesting.datad0g.com") - _, err := s.Env().RemoteHost.Execute(fmt.Sprintf("curl -L %s > install_script; sudo -E %s bash install_script", url, strings.Join(scriptParams, " "))) + _, err := s.Env().RemoteHost.Execute(fmt.Sprintf("curl -L %s > install_script; %s bash install_script", url, strings.Join(scriptParams, " "))) return err } diff --git a/test/new-e2e/tests/installer/script/databricks_test.go b/test/new-e2e/tests/installer/script/databricks_test.go index 970d8780c58ce..5ec2ad8b6001e 100644 --- a/test/new-e2e/tests/installer/script/databricks_test.go +++ b/test/new-e2e/tests/installer/script/databricks_test.go @@ -19,7 +19,7 @@ type installScriptDatabricksSuite struct { func testDatabricksScript(os e2eos.Descriptor, arch e2eos.Architecture) installerScriptSuite { s := &installScriptDatabricksSuite{ - installerScriptBaseSuite: newInstallerScriptSuite("installer", os, arch, awshost.WithoutFakeIntake()), + installerScriptBaseSuite: newInstallerScriptSuite("installer", os, arch, awshost.WithoutFakeIntake(), awshost.WithoutAgent()), } s.url = fmt.Sprintf("https://installtesting.datad0g.com/%s/scripts/install-databricks.sh", s.commitHash) From 367c4b6154a709751eac1c92b7d0b0957aa83511 Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Wed, 11 Dec 2024 21:57:49 +0100 Subject: [PATCH 419/439] [CWS] split host workloads and container workloads in cgroup resolver (#32018) --- pkg/security/resolvers/cgroup/resolver.go | 87 ++++++++++++++--------- 1 file changed, 53 insertions(+), 34 deletions(-) diff --git a/pkg/security/resolvers/cgroup/resolver.go b/pkg/security/resolvers/cgroup/resolver.go index 825d7cc92cf42..2137cccf14506 100644 --- a/pkg/security/resolvers/cgroup/resolver.go +++ b/pkg/security/resolvers/cgroup/resolver.go @@ -47,8 +47,9 @@ type ResolverInterface interface { // Resolver defines a cgroup monitor type Resolver struct { *utils.Notifier[Event, *cgroupModel.CacheEntry] - sync.RWMutex - workloads *simplelru.LRU[containerutils.CGroupID, *cgroupModel.CacheEntry] + sync.Mutex + hostWorkloads *simplelru.LRU[containerutils.CGroupID, *cgroupModel.CacheEntry] + containerWorkloads *simplelru.LRU[containerutils.ContainerID, *cgroupModel.CacheEntry] } // NewResolver returns a new cgroups monitor @@ -56,16 +57,29 @@ func NewResolver() (*Resolver, error) { cr := &Resolver{ Notifier: utils.NewNotifier[Event, *cgroupModel.CacheEntry](), } - workloads, err := simplelru.NewLRU(1024, func(_ containerutils.CGroupID, value *cgroupModel.CacheEntry) { + + cleanup := func(value *cgroupModel.CacheEntry) { value.CallReleaseCallback() value.Deleted.Store(true) cr.NotifyListeners(CGroupDeleted, value) + } + + var err error + cr.hostWorkloads, err = simplelru.NewLRU(1024, func(_ containerutils.CGroupID, value *cgroupModel.CacheEntry) { + cleanup(value) + }) + if err != nil { + return nil, err + } + + cr.containerWorkloads, err = simplelru.NewLRU(1024, func(_ containerutils.ContainerID, value *cgroupModel.CacheEntry) { + cleanup(value) }) if err != nil { return nil, err } - cr.workloads = workloads + return cr, nil } @@ -78,7 +92,15 @@ func (cr *Resolver) AddPID(process *model.ProcessCacheEntry) { cr.Lock() defer cr.Unlock() - entry, exists := cr.workloads.Get(process.CGroup.CGroupID) + if process.ContainerID != "" { + entry, exists := cr.containerWorkloads.Get(process.ContainerID) + if exists { + entry.AddPID(process.Pid) + return + } + } + + entry, exists := cr.hostWorkloads.Get(process.CGroup.CGroupID) if exists { entry.AddPID(process.Pid) return @@ -94,33 +116,25 @@ func (cr *Resolver) AddPID(process *model.ProcessCacheEntry) { newCGroup.CreatedAt = uint64(process.ProcessContext.ExecTime.UnixNano()) // add the new CGroup to the cache - cr.workloads.Add(process.CGroup.CGroupID, newCGroup) + if process.ContainerID != "" { + cr.containerWorkloads.Add(process.ContainerID, newCGroup) + } else { + cr.hostWorkloads.Add(process.CGroup.CGroupID, newCGroup) + } cr.NotifyListeners(CGroupCreated, newCGroup) } -// Get returns the workload referenced by the provided ID -func (cr *Resolver) Get(id containerutils.CGroupID) (*cgroupModel.CacheEntry, bool) { - cr.RLock() - defer cr.RUnlock() - - return cr.workloads.Get(id) -} - // GetWorkload returns the workload referenced by the provided ID func (cr *Resolver) GetWorkload(id containerutils.ContainerID) (*cgroupModel.CacheEntry, bool) { - cr.RLock() - defer cr.RUnlock() - - if id != "" { - for _, workload := range cr.workloads.Values() { - if workload.ContainerID == id { - return workload, true - } - } + if id == "" { + return nil, false } - return nil, false + cr.Lock() + defer cr.Unlock() + + return cr.containerWorkloads.Get(id) } // DelPID removes a PID from the cgroup resolver @@ -128,7 +142,11 @@ func (cr *Resolver) DelPID(pid uint32) { cr.Lock() defer cr.Unlock() - for _, workload := range cr.workloads.Values() { + for _, workload := range cr.containerWorkloads.Values() { + cr.deleteWorkloadPID(pid, workload) + } + + for _, workload := range cr.hostWorkloads.Values() { cr.deleteWorkloadPID(pid, workload) } } @@ -138,11 +156,9 @@ func (cr *Resolver) DelPIDWithID(id containerutils.ContainerID, pid uint32) { cr.Lock() defer cr.Unlock() - for _, workload := range cr.workloads.Values() { - if workload.ContainerID == id { - cr.deleteWorkloadPID(pid, workload) - return - } + entry, exists := cr.containerWorkloads.Get(id) + if exists { + cr.deleteWorkloadPID(pid, entry) } } @@ -155,14 +171,17 @@ func (cr *Resolver) deleteWorkloadPID(pid uint32, workload *cgroupModel.CacheEnt // check if the workload should be deleted if len(workload.PIDs) <= 0 { - cr.workloads.Remove(workload.CGroupID) + cr.hostWorkloads.Remove(workload.CGroupID) + if workload.ContainerID != "" { + cr.containerWorkloads.Remove(workload.ContainerID) + } } } // Len return the number of entries func (cr *Resolver) Len() int { - cr.RLock() - defer cr.RUnlock() + cr.Lock() + defer cr.Unlock() - return cr.workloads.Len() + return cr.hostWorkloads.Len() + cr.containerWorkloads.Len() } From f2959c49b8cd131fa786bea95f4fdba4ed801bb5 Mon Sep 17 00:00:00 2001 From: Rey Abolofia Date: Wed, 11 Dec 2024 22:30:44 +0100 Subject: [PATCH 420/439] Increase serverless integration tests timeout. (#32036) --- .github/workflows/serverless-integration.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/serverless-integration.yml b/.github/workflows/serverless-integration.yml index 7414d78ac65b3..de78371e895e1 100644 --- a/.github/workflows/serverless-integration.yml +++ b/.github/workflows/serverless-integration.yml @@ -70,7 +70,7 @@ jobs: AWS_SECRET_ACCESS_KEY: ${{ secrets.SERVERLESS_AWS_SECRET_ACCESS_KEY }} GOWORK: off with: - timeout_minutes: 60 + timeout_minutes: 120 max_attempts: 2 command: | RAWLOGS_DIR="${{ steps.rawlogs.outputs.dir }}/${{ matrix.architecture }}" From aee886d40941a1119ee8a2668ac1d4f9bb47a63f Mon Sep 17 00:00:00 2001 From: Dan Lepage <140522866+dplepage-dd@users.noreply.github.com> Date: Wed, 11 Dec 2024 17:34:50 -0500 Subject: [PATCH 421/439] [NDMII-2360] Replace the profile map with a profile provider (#31210) --- .../snmp/integration_profile_bundle_test.go | 53 --- .../snmp/internal/checkconfig/config.go | 130 +++----- .../snmp/internal/checkconfig/config_test.go | 213 ++---------- .../snmp/internal/devicecheck/devicecheck.go | 97 +----- .../internal/devicecheck/devicecheck_test.go | 311 ------------------ .../snmp/internal/profile/config_profile.go | 42 ++- .../snmp/internal/profile/profile.go | 26 +- .../internal/profile/profile_json_bundle.go | 100 ------ .../profile/profile_json_bundle_test.go | 59 ---- .../internal/profile/profile_resolver_test.go | 2 +- .../snmp/internal/profile/profile_test.go | 22 +- .../snmp/internal/profile/profile_yaml.go | 1 - .../internal/report/report_device_metadata.go | 12 +- .../report/report_device_metadata_test.go | 27 +- .../snmp.d/default_profiles/_base.yaml | 6 - .../snmp.d/default_profiles/def-p1.yaml | 24 -- .../snmp.d/profiles/f5-big-ip.yaml | 5 - .../snmp.d/profiles/profiles.json.gz | Bin 335 -> 0 bytes .../snmp.d/profiles/profiles.json.gz | 0 19 files changed, 155 insertions(+), 975 deletions(-) delete mode 100644 pkg/collector/corechecks/snmp/integration_profile_bundle_test.go delete mode 100644 pkg/collector/corechecks/snmp/internal/profile/profile_json_bundle.go delete mode 100644 pkg/collector/corechecks/snmp/internal/profile/profile_json_bundle_test.go delete mode 100644 pkg/collector/corechecks/snmp/internal/test/zipprofiles.d/snmp.d/default_profiles/_base.yaml delete mode 100644 pkg/collector/corechecks/snmp/internal/test/zipprofiles.d/snmp.d/default_profiles/def-p1.yaml delete mode 100644 pkg/collector/corechecks/snmp/internal/test/zipprofiles.d/snmp.d/profiles/f5-big-ip.yaml delete mode 100644 pkg/collector/corechecks/snmp/internal/test/zipprofiles.d/snmp.d/profiles/profiles.json.gz delete mode 100644 pkg/collector/corechecks/snmp/internal/test/zipprofiles_err.d/snmp.d/profiles/profiles.json.gz diff --git a/pkg/collector/corechecks/snmp/integration_profile_bundle_test.go b/pkg/collector/corechecks/snmp/integration_profile_bundle_test.go deleted file mode 100644 index 6e7c55f230fcc..0000000000000 --- a/pkg/collector/corechecks/snmp/integration_profile_bundle_test.go +++ /dev/null @@ -1,53 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-2020 Datadog, Inc. - -package snmp - -import ( - "path/filepath" - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/DataDog/datadog-agent/comp/core/autodiscovery/integration" - nooptagger "github.com/DataDog/datadog-agent/comp/core/tagger/impl-noop" - "github.com/DataDog/datadog-agent/pkg/aggregator" - "github.com/DataDog/datadog-agent/pkg/aggregator/mocksender" - pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" - - "github.com/DataDog/datadog-agent/pkg/collector/corechecks/snmp/internal/checkconfig" - "github.com/DataDog/datadog-agent/pkg/collector/corechecks/snmp/internal/common" - "github.com/DataDog/datadog-agent/pkg/collector/corechecks/snmp/internal/session" -) - -func TestProfileBundleJsonZip(t *testing.T) { - timeNow = common.MockTimeNow - aggregator.NewBufferedAggregator(nil, nil, nil, nooptagger.NewComponent(), "", 1*time.Hour) - invalidPath, _ := filepath.Abs(filepath.Join("internal", "test", "zipprofiles.d")) - pkgconfigsetup.Datadog().SetWithoutSource("confd_path", invalidPath) - - sess := session.CreateMockSession() - sessionFactory := func(*checkconfig.CheckConfig) (session.Session, error) { - return sess, nil - } - chk := Check{sessionFactory: sessionFactory} - // language=yaml - rawInstanceConfig := []byte(` -ip_address: 1.2.3.4 -community_string: public -profile: profile-from-ui -oid_batch_size: 20 -namespace: profile-metadata -collect_topology: false -`) - // language=yaml - rawInitConfig := []byte(``) - senderManager := mocksender.CreateDefaultDemultiplexer() - err := chk.Configure(senderManager, integration.FakeConfigHash, rawInstanceConfig, rawInitConfig, "test") - assert.NoError(t, err) - - assert.Contains(t, chk.config.Profiles, "profile-from-ui") -} diff --git a/pkg/collector/corechecks/snmp/internal/checkconfig/config.go b/pkg/collector/corechecks/snmp/internal/checkconfig/config.go index 9084d26e664e7..688b2cd9350e2 100644 --- a/pkg/collector/corechecks/snmp/internal/checkconfig/config.go +++ b/pkg/collector/corechecks/snmp/internal/checkconfig/config.go @@ -48,7 +48,6 @@ const defaultWorkers = 5 const defaultDiscoveryWorkers = 5 const defaultDiscoveryAllowedFailures = 3 const defaultDiscoveryInterval = 3600 -const defaultDetectMetricsRefreshInterval = 3600 // subnetTagKey is the prefix used for subnet tag const subnetTagKey = "autodiscovery_subnet" @@ -80,18 +79,16 @@ type DeviceDigest string // InitConfig is used to deserialize integration init config type InitConfig struct { - Profiles profile.ProfileConfigMap `yaml:"profiles"` - GlobalMetrics []profiledefinition.MetricsConfig `yaml:"global_metrics"` - OidBatchSize Number `yaml:"oid_batch_size"` - BulkMaxRepetitions Number `yaml:"bulk_max_repetitions"` - CollectDeviceMetadata Boolean `yaml:"collect_device_metadata"` - CollectTopology Boolean `yaml:"collect_topology"` - UseDeviceIDAsHostname Boolean `yaml:"use_device_id_as_hostname"` - MinCollectionInterval int `yaml:"min_collection_interval"` - Namespace string `yaml:"namespace"` - PingConfig snmpintegration.PackedPingConfig `yaml:"ping"` - DetectMetricsEnabled Boolean `yaml:"experimental_detect_metrics_enabled"` - DetectMetricsRefreshInterval int `yaml:"experimental_detect_metrics_refresh_interval"` + Profiles profile.ProfileConfigMap `yaml:"profiles"` + GlobalMetrics []profiledefinition.MetricsConfig `yaml:"global_metrics"` + OidBatchSize Number `yaml:"oid_batch_size"` + BulkMaxRepetitions Number `yaml:"bulk_max_repetitions"` + CollectDeviceMetadata Boolean `yaml:"collect_device_metadata"` + CollectTopology Boolean `yaml:"collect_topology"` + UseDeviceIDAsHostname Boolean `yaml:"use_device_id_as_hostname"` + MinCollectionInterval int `yaml:"min_collection_interval"` + Namespace string `yaml:"namespace"` + PingConfig snmpintegration.PackedPingConfig `yaml:"ping"` } // InstanceConfig is used to deserialize integration instance config @@ -147,11 +144,6 @@ type InstanceConfig struct { Workers int `yaml:"workers"` Namespace string `yaml:"namespace"` - // When DetectMetricsEnabled is enabled, instead of using profile detection using sysObjectID - // the integration will fetch OIDs from the devices and deduct which metrics can be monitored (from all OOTB profile metrics definition) - DetectMetricsEnabled *Boolean `yaml:"experimental_detect_metrics_enabled"` - DetectMetricsRefreshInterval int `yaml:"experimental_detect_metrics_refresh_interval"` - // `interface_configs` option is not supported by SNMP corecheck autodiscovery (`network_address`) // it's only supported for single device instance (`ip_address`) InterfaceConfigs InterfaceConfigs `yaml:"interface_configs"` @@ -184,10 +176,9 @@ type CheckConfig struct { MetricTags []profiledefinition.MetricTagConfig OidBatchSize int BulkMaxRepetitions uint32 - Profiles profile.ProfileConfigMap + ProfileProvider profile.Provider ProfileTags []string - Profile string - ProfileDef *profiledefinition.ProfileDefinition + ProfileName string ExtraTags []string InstanceTags []string CollectDeviceMetadata bool @@ -200,9 +191,6 @@ type CheckConfig struct { AutodetectProfile bool MinCollectionInterval time.Duration - DetectMetricsEnabled bool - DetectMetricsRefreshInterval int - Network string DiscoveryWorkers int Workers int @@ -216,41 +204,33 @@ type CheckConfig struct { } // SetProfile refreshes config based on profile -func (c *CheckConfig) SetProfile(profile string) error { - if _, ok := c.Profiles[profile]; !ok { - return fmt.Errorf("unknown profile `%s`", profile) +func (c *CheckConfig) SetProfile(profileName string) error { + profileConf := c.ProfileProvider.GetProfile(profileName) + if profileConf == nil { + return fmt.Errorf("unknown profile `%s`", profileName) } - log.Debugf("Refreshing with profile `%s`", profile) - tags := []string{"snmp_profile:" + profile} - definition := c.Profiles[profile].Definition - c.ProfileDef = &definition - c.Profile = profile + log.Debugf("Refreshing with profile `%s`", profileName) + c.ProfileName = profileName if log.ShouldLog(log.DebugLvl) { - profileDefJSON, _ := json.Marshal(definition) - log.Debugf("Profile content `%s`: %s", profile, string(profileDefJSON)) - } - - if definition.Device.Vendor != "" { - tags = append(tags, "device_vendor:"+definition.Device.Vendor) + profileDefJSON, _ := json.Marshal(profileConf.Definition) + log.Debugf("Profile content `%s`: %s", profileName, string(profileDefJSON)) } - tags = append(tags, definition.StaticTags...) - c.ProfileTags = tags c.RebuildMetadataMetricsAndTags() return nil } -// SetAutodetectProfile sets the profile to the provided auto-detected metrics -// and tags. This overwrites any preexisting profile but does not affect -// RequestedMetrics or RequestedMetricTags, which will still be queried. -func (c *CheckConfig) SetAutodetectProfile(metrics []profiledefinition.MetricsConfig, tags []profiledefinition.MetricTagConfig) { - c.Profile = "autodetect" - c.ProfileDef = &profiledefinition.ProfileDefinition{ - Metrics: metrics, - MetricTags: tags, +// GetProfileDef returns the autodetected profile definition if there is one, +// the active profile if it exists, or nil if neither is true. +func (c *CheckConfig) GetProfileDef() *profiledefinition.ProfileDefinition { + if c.ProfileName != "" { + profile := c.ProfileProvider.GetProfile(c.ProfileName) + if profile != nil { + return &profile.Definition + } + log.Warnf("profile `%s` not found", c.ProfileName) } - c.ProfileTags = nil - c.RebuildMetadataMetricsAndTags() + return nil } // RebuildMetadataMetricsAndTags rebuilds c.Metrics, c.Metadata, c.MetricTags, @@ -259,10 +239,17 @@ func (c *CheckConfig) SetAutodetectProfile(metrics []profiledefinition.MetricsCo func (c *CheckConfig) RebuildMetadataMetricsAndTags() { c.Metrics = c.RequestedMetrics c.MetricTags = c.RequestedMetricTags - if c.ProfileDef != nil { - c.Metadata = updateMetadataDefinitionWithDefaults(c.ProfileDef.Metadata, c.CollectTopology) - c.Metrics = append(c.Metrics, c.ProfileDef.Metrics...) - c.MetricTags = append(c.MetricTags, c.ProfileDef.MetricTags...) + c.ProfileTags = nil + profileDef := c.GetProfileDef() + if profileDef != nil { + c.ProfileTags = append(c.ProfileTags, "snmp_profile:"+c.ProfileName) + if profileDef.Device.Vendor != "" { + c.ProfileTags = append(c.ProfileTags, "device_vendor:"+profileDef.Device.Vendor) + } + c.ProfileTags = append(c.ProfileTags, profileDef.StaticTags...) + c.Metadata = updateMetadataDefinitionWithDefaults(profileDef.Metadata, c.CollectTopology) + c.Metrics = append(c.Metrics, profileDef.Metrics...) + c.MetricTags = append(c.MetricTags, profileDef.MetricTags...) } else { c.Metadata = updateMetadataDefinitionWithDefaults(nil, c.CollectTopology) } @@ -394,20 +381,6 @@ func NewCheckConfig(rawInstance integration.Data, rawInitConfig integration.Data c.CollectTopology = bool(initConfig.CollectTopology) } - if instance.DetectMetricsEnabled != nil { - c.DetectMetricsEnabled = bool(*instance.DetectMetricsEnabled) - } else { - c.DetectMetricsEnabled = bool(initConfig.DetectMetricsEnabled) - } - - if instance.DetectMetricsRefreshInterval != 0 { - c.DetectMetricsRefreshInterval = int(instance.DetectMetricsRefreshInterval) - } else if initConfig.DetectMetricsRefreshInterval != 0 { - c.DetectMetricsRefreshInterval = int(initConfig.DetectMetricsRefreshInterval) - } else { - c.DetectMetricsRefreshInterval = defaultDetectMetricsRefreshInterval - } - if instance.UseDeviceIDAsHostname != nil { c.UseDeviceIDAsHostname = bool(*instance.UseDeviceIDAsHostname) } else { @@ -519,15 +492,15 @@ func NewCheckConfig(rawInstance integration.Data, rawInitConfig integration.Data return nil, err } - profiles, err := profile.GetProfiles(initConfig.Profiles) + profiles, err := profile.GetProfileProvider(initConfig.Profiles) if err != nil { return nil, err } - c.Profiles = profiles + c.ProfileProvider = profiles // profile configs - profile := instance.Profile - if profile != "" || len(instance.Metrics) > 0 { + profileName := instance.Profile + if profileName != "" || len(instance.Metrics) > 0 { c.AutodetectProfile = false } else { c.AutodetectProfile = true @@ -552,10 +525,10 @@ func NewCheckConfig(rawInstance integration.Data, rawInitConfig integration.Data return nil, fmt.Errorf("validation errors: %s", strings.Join(errors, "\n")) } - if profile != "" { - err = c.SetProfile(profile) + if profileName != "" { + err = c.SetProfile(profileName) if err != nil { - return nil, fmt.Errorf("failed to refresh with profile `%s`: %s", profile, err) + return nil, fmt.Errorf("failed to refresh with profile `%s`: %s", profileName, err) } } else { c.RebuildMetadataMetricsAndTags() @@ -688,10 +661,9 @@ func (c *CheckConfig) Copy() *CheckConfig { copy(newConfig.MetricTags, c.MetricTags) newConfig.OidBatchSize = c.OidBatchSize newConfig.BulkMaxRepetitions = c.BulkMaxRepetitions - newConfig.Profiles = c.Profiles + newConfig.ProfileProvider = c.ProfileProvider newConfig.ProfileTags = netutils.CopyStrings(c.ProfileTags) - newConfig.Profile = c.Profile - newConfig.ProfileDef = c.ProfileDef + newConfig.ProfileName = c.ProfileName newConfig.ExtraTags = netutils.CopyStrings(c.ExtraTags) newConfig.InstanceTags = netutils.CopyStrings(c.InstanceTags) newConfig.CollectDeviceMetadata = c.CollectDeviceMetadata @@ -703,8 +675,6 @@ func (c *CheckConfig) Copy() *CheckConfig { newConfig.ResolvedSubnetName = c.ResolvedSubnetName newConfig.Namespace = c.Namespace newConfig.AutodetectProfile = c.AutodetectProfile - newConfig.DetectMetricsEnabled = c.DetectMetricsEnabled - newConfig.DetectMetricsRefreshInterval = c.DetectMetricsRefreshInterval newConfig.MinCollectionInterval = c.MinCollectionInterval newConfig.InterfaceConfigs = c.InterfaceConfigs diff --git a/pkg/collector/corechecks/snmp/internal/checkconfig/config_test.go b/pkg/collector/corechecks/snmp/internal/checkconfig/config_test.go index 07b6ba9eefaa4..ef9b8628da93a 100644 --- a/pkg/collector/corechecks/snmp/internal/checkconfig/config_test.go +++ b/pkg/collector/corechecks/snmp/internal/checkconfig/config_test.go @@ -250,7 +250,7 @@ bulk_max_repetitions: 20 assert.Equal(t, expectedMetrics, config.Metrics) assert.Equal(t, expectedMetricTags, config.MetricTags) assert.Equal(t, []string{"snmp_profile:f5-big-ip", "device_vendor:f5", "static_tag:from_profile_root", "static_tag:from_base_profile"}, config.ProfileTags) - assert.Equal(t, 1, len(config.Profiles)) + assert.True(t, config.ProfileProvider.HasProfile("f5-big-ip")) assert.Equal(t, "default:1.2.3.4", config.DeviceID) assert.Equal(t, []string{"device_namespace:default", "snmp_device:1.2.3.4"}, config.DeviceIDTags) assert.Equal(t, "127.0.0.0/30", config.ResolvedSubnetName) @@ -372,7 +372,8 @@ profiles: assert.Equal(t, "123", config.CommunityString) assert.Equal(t, metrics, config.Metrics) assert.Equal(t, metricsTags, config.MetricTags) - assert.Equal(t, 2, len(config.Profiles)) + assert.True(t, config.ProfileProvider.HasProfile("f5-big-ip")) + assert.True(t, config.ProfileProvider.HasProfile("inline-profile")) assert.Equal(t, "default:1.2.3.4", config.DeviceID) assert.Equal(t, []string{"device_namespace:default", "snmp_device:1.2.3.4"}, config.DeviceIDTags) assert.Equal(t, false, config.AutodetectProfile) @@ -406,8 +407,10 @@ community_string: abc assert.Equal(t, metrics, config.Metrics) assert.Equal(t, metricsTags, config.MetricTags) - assert.Equal(t, 2, len(config.Profiles)) - assert.Equal(t, profile.FixtureProfileDefinitionMap()["f5-big-ip"].Definition.Metrics, config.Profiles["f5-big-ip"].Definition.Metrics) + // assert.Equal(t, 2, len(config.Profiles)) + assert.True(t, config.ProfileProvider.HasProfile("f5-big-ip")) + assert.True(t, config.ProfileProvider.HasProfile("another_profile")) + assert.Equal(t, profile.FixtureProfileDefinitionMap()["f5-big-ip"].Definition.Metrics, config.ProfileProvider.GetProfile("f5-big-ip").Definition.Metrics) } func TestPortConfiguration(t *testing.T) { @@ -927,17 +930,17 @@ func Test_snmpConfig_setProfile(t *testing.T) { SysObjectIDs: profiledefinition.StringArray{"1.3.6.1.4.1.3375.2.1.3.4.*"}, } - mockProfiles := profile.ProfileConfigMap{ + mockProfiles := profile.StaticProvider(profile.ProfileConfigMap{ "profile1": profile.ProfileConfig{ Definition: profile1, }, "profile2": profile.ProfileConfig{ Definition: profile2, }, - } + }) c := &CheckConfig{ - IPAddress: "1.2.3.4", - Profiles: mockProfiles, + IPAddress: "1.2.3.4", + ProfileProvider: mockProfiles, } err := c.SetProfile("f5") assert.EqualError(t, err, "unknown profile `f5`") @@ -945,8 +948,8 @@ func Test_snmpConfig_setProfile(t *testing.T) { err = c.SetProfile("profile1") assert.NoError(t, err) - assert.Equal(t, "profile1", c.Profile) - assert.Equal(t, profile1, *c.ProfileDef) + assert.Equal(t, "profile1", c.ProfileName) + assert.Equal(t, &profile1, c.GetProfileDef()) assert.Equal(t, metrics, c.Metrics) assert.Equal(t, []profiledefinition.MetricTagConfig{ {Tag: "location", Symbol: profiledefinition.SymbolConfigCompat{OID: "1.3.6.1.2.1.1.6.0", Name: "sysLocation"}}, @@ -959,7 +962,7 @@ func Test_snmpConfig_setProfile(t *testing.T) { c = &CheckConfig{ IPAddress: "1.2.3.4", - Profiles: mockProfiles, + ProfileProvider: mockProfiles, CollectDeviceMetadata: true, CollectTopology: false, } @@ -1000,7 +1003,7 @@ func Test_snmpConfig_setProfile(t *testing.T) { c = &CheckConfig{ IPAddress: "1.2.3.4", - Profiles: mockProfiles, + ProfileProvider: mockProfiles, CollectDeviceMetadata: true, CollectTopology: false, } @@ -1331,181 +1334,6 @@ use_device_id_as_hostname: true assert.Equal(t, false, config.UseDeviceIDAsHostname) } -func Test_buildConfig_DetectMetricsEnabled(t *testing.T) { - // language=yaml - rawInstanceConfig := []byte(` -ip_address: 1.2.3.4 -community_string: "abc" -`) - // language=yaml - rawInitConfig := []byte(` -oid_batch_size: 10 -`) - config, err := NewCheckConfig(rawInstanceConfig, rawInitConfig) - assert.Nil(t, err) - assert.Equal(t, false, config.DetectMetricsEnabled) - - // language=yaml - rawInstanceConfig = []byte(` -ip_address: 1.2.3.4 -community_string: "abc" -`) - // language=yaml - rawInitConfig = []byte(` -oid_batch_size: 10 -experimental_detect_metrics_enabled: true -`) - config, err = NewCheckConfig(rawInstanceConfig, rawInitConfig) - assert.Nil(t, err) - assert.Equal(t, true, config.DetectMetricsEnabled) - - // language=yaml - rawInstanceConfig = []byte(` -ip_address: 1.2.3.4 -community_string: "abc" -experimental_detect_metrics_enabled: true -`) - // language=yaml - rawInitConfig = []byte(` -oid_batch_size: 10 -`) - config, err = NewCheckConfig(rawInstanceConfig, rawInitConfig) - assert.Nil(t, err) - assert.Equal(t, true, config.DetectMetricsEnabled) - - // language=yaml - rawInstanceConfig = []byte(` -ip_address: 1.2.3.4 -community_string: "abc" -experimental_detect_metrics_enabled: false -`) - // language=yaml - rawInitConfig = []byte(` -oid_batch_size: 10 -experimental_detect_metrics_enabled: true -`) - config, err = NewCheckConfig(rawInstanceConfig, rawInitConfig) - assert.Nil(t, err) - assert.Equal(t, false, config.DetectMetricsEnabled) -} - -func TestSetAutodetectPreservesRequests(t *testing.T) { - metric := func(oid, name string) profiledefinition.MetricsConfig { - return profiledefinition.MetricsConfig{Symbol: profiledefinition.SymbolConfig{OID: oid, Name: name}} - } - - met1 := metric("1.1", "metricOne") - met2 := metric("1.2", "metricTwo") - met3 := metric("1.3", "metricThree") - tag1 := profiledefinition.MetricTagConfig{Tag: "tag_one", Symbol: profiledefinition.SymbolConfigCompat{OID: "2.1", Name: "tagOne"}} - tag2 := profiledefinition.MetricTagConfig{Tag: "tag_two", Symbol: profiledefinition.SymbolConfigCompat{OID: "2.2", Name: "tagTwo"}} - tag3 := profiledefinition.MetricTagConfig{Tag: "tag_three", Symbol: profiledefinition.SymbolConfigCompat{OID: "2.3", Name: "tagThree"}} - - config := &CheckConfig{ - CollectTopology: false, - RequestedMetrics: []profiledefinition.MetricsConfig{met1}, - RequestedMetricTags: []profiledefinition.MetricTagConfig{tag1}, - } - - config.RebuildMetadataMetricsAndTags() - - assert.Equal(t, []profiledefinition.MetricsConfig{met1}, config.Metrics) - assert.Equal(t, []profiledefinition.MetricTagConfig{tag1}, config.MetricTags) - assert.Equal(t, OidConfig{ - ScalarOids: []string{ - "1.1", - "2.1", - }, - ColumnOids: nil, - }, config.OidConfig) - - config.SetAutodetectProfile([]profiledefinition.MetricsConfig{met2}, []profiledefinition.MetricTagConfig{tag2}) - - assert.Equal(t, []profiledefinition.MetricsConfig{met1, met2}, config.Metrics) - assert.Equal(t, []profiledefinition.MetricTagConfig{tag1, tag2}, config.MetricTags) - assert.Equal(t, OidConfig{ - ScalarOids: []string{ - "1.1", - "1.2", - "2.1", - "2.2", - }, - ColumnOids: nil, - }, config.OidConfig) - - config.SetAutodetectProfile([]profiledefinition.MetricsConfig{met3}, []profiledefinition.MetricTagConfig{tag3}) - - assert.Equal(t, []profiledefinition.MetricsConfig{met1, met3}, config.Metrics) - assert.Equal(t, []profiledefinition.MetricTagConfig{tag1, tag3}, config.MetricTags) - assert.Equal(t, OidConfig{ - ScalarOids: []string{ - "1.1", - "1.3", - "2.1", - "2.3", - }, - ColumnOids: nil, - }, config.OidConfig) -} - -func Test_buildConfig_DetectMetricsRefreshInterval(t *testing.T) { - // language=yaml - rawInstanceConfig := []byte(` -ip_address: 1.2.3.4 -community_string: "abc" -`) - // language=yaml - rawInitConfig := []byte(` -oid_batch_size: 10 -`) - config, err := NewCheckConfig(rawInstanceConfig, rawInitConfig) - assert.Nil(t, err) - assert.Equal(t, 3600, config.DetectMetricsRefreshInterval) - - // language=yaml - rawInstanceConfig = []byte(` -ip_address: 1.2.3.4 -community_string: "abc" -`) - // language=yaml - rawInitConfig = []byte(` -oid_batch_size: 10 -experimental_detect_metrics_refresh_interval: 10 -`) - config, err = NewCheckConfig(rawInstanceConfig, rawInitConfig) - assert.Nil(t, err) - assert.Equal(t, 10, config.DetectMetricsRefreshInterval) - - // language=yaml - rawInstanceConfig = []byte(` -ip_address: 1.2.3.4 -community_string: "abc" -experimental_detect_metrics_refresh_interval: 10 -`) - // language=yaml - rawInitConfig = []byte(` -oid_batch_size: 20 -`) - config, err = NewCheckConfig(rawInstanceConfig, rawInitConfig) - assert.Nil(t, err) - assert.Equal(t, 10, config.DetectMetricsRefreshInterval) - - // language=yaml - rawInstanceConfig = []byte(` -ip_address: 1.2.3.4 -community_string: "abc" -experimental_detect_metrics_refresh_interval: 20 -`) - // language=yaml - rawInitConfig = []byte(` -oid_batch_size: 10 -experimental_detect_metrics_refresh_interval: 30 -`) - config, err = NewCheckConfig(rawInstanceConfig, rawInitConfig) - assert.Nil(t, err) - assert.Equal(t, 20, config.DetectMetricsRefreshInterval) -} - func Test_buildConfig_minCollectionInterval(t *testing.T) { tests := []struct { name string @@ -2113,16 +1941,13 @@ func TestCheckConfig_Copy(t *testing.T) { }, OidBatchSize: 10, BulkMaxRepetitions: 10, - Profiles: profile.ProfileConfigMap{"f5-big-ip": profile.ProfileConfig{ + ProfileProvider: profile.StaticProvider(profile.ProfileConfigMap{"f5-big-ip": profile.ProfileConfig{ Definition: profiledefinition.ProfileDefinition{ Device: profiledefinition.DeviceMeta{Vendor: "f5"}, }, - }}, - ProfileTags: []string{"profile_tag:atag"}, - Profile: "f5", - ProfileDef: &profiledefinition.ProfileDefinition{ - Device: profiledefinition.DeviceMeta{Vendor: "f5"}, - }, + }}), + ProfileTags: []string{"profile_tag:atag"}, + ProfileName: "f5", ExtraTags: []string{"ExtraTags:tag"}, InstanceTags: []string{"InstanceTags:tag"}, CollectDeviceMetadata: true, diff --git a/pkg/collector/corechecks/snmp/internal/devicecheck/devicecheck.go b/pkg/collector/corechecks/snmp/internal/devicecheck/devicecheck.go index f63d0a4c33791..969fd45d2da52 100644 --- a/pkg/collector/corechecks/snmp/internal/devicecheck/devicecheck.go +++ b/pkg/collector/corechecks/snmp/internal/devicecheck/devicecheck.go @@ -26,14 +26,12 @@ import ( "github.com/DataDog/datadog-agent/pkg/networkdevice/metadata" "github.com/DataDog/datadog-agent/pkg/networkdevice/pinger" - "github.com/DataDog/datadog-agent/pkg/networkdevice/profile/profiledefinition" "github.com/DataDog/datadog-agent/pkg/networkdevice/utils" coresnmp "github.com/DataDog/datadog-agent/pkg/snmp" "github.com/DataDog/datadog-agent/pkg/collector/corechecks/snmp/internal/checkconfig" "github.com/DataDog/datadog-agent/pkg/collector/corechecks/snmp/internal/common" "github.com/DataDog/datadog-agent/pkg/collector/corechecks/snmp/internal/fetch" - "github.com/DataDog/datadog-agent/pkg/collector/corechecks/snmp/internal/profile" "github.com/DataDog/datadog-agent/pkg/collector/corechecks/snmp/internal/report" "github.com/DataDog/datadog-agent/pkg/collector/corechecks/snmp/internal/session" "github.com/DataDog/datadog-agent/pkg/collector/corechecks/snmp/internal/valuestore" @@ -56,9 +54,6 @@ const ( checkDurationThreshold = 30 // Thirty seconds ) -// define timeNow as variable to make it possible to mock it during test -var timeNow = time.Now - // DeviceCheck hold info necessary to collect info for a single device type DeviceCheck struct { config *checkconfig.CheckConfig @@ -68,7 +63,6 @@ type DeviceCheck struct { devicePinger pinger.Pinger sessionCloseErrorCount *atomic.Uint64 savedDynamicTags []string - nextAutodetectMetrics time.Time diagnoses *diagnoses.Diagnoses interfaceBandwidthState report.InterfaceBandwidthState cacheKey string @@ -97,7 +91,6 @@ func NewDeviceCheck(config *checkconfig.CheckConfig, ipAddress string, sessionFa sessionFactory: sessionFactory, devicePinger: devicePinger, sessionCloseErrorCount: atomic.NewUint64(0), - nextAutodetectMetrics: timeNow(), diagnoses: diagnoses.NewDeviceDiagnoses(newConfig.DeviceID), interfaceBandwidthState: report.MakeInterfaceBandwidthState(), cacheKey: cacheKey, @@ -315,30 +308,21 @@ func (d *DeviceCheck) getValuesAndTags() (bool, []string, *valuestore.ResultValu } func (d *DeviceCheck) detectMetricsToMonitor(sess session.Session) error { - if d.config.DetectMetricsEnabled { - if d.nextAutodetectMetrics.After(timeNow()) { - return nil - } - d.nextAutodetectMetrics = d.nextAutodetectMetrics.Add(time.Duration(d.config.DetectMetricsRefreshInterval) * time.Second) - - detectedMetrics, metricTagConfigs := d.detectAvailableMetrics() - log.Debugf("detected metrics: %v", detectedMetrics) - d.config.SetAutodetectProfile(detectedMetrics, metricTagConfigs) - } else if d.config.AutodetectProfile { + if d.config.AutodetectProfile { // detect using sysObjectID sysObjectID, err := session.FetchSysObjectID(sess) if err != nil { return fmt.Errorf("failed to fetch sysobjectid: %s", err) } - profile, err := profile.GetProfileForSysObjectID(d.config.Profiles, sysObjectID) + profile, err := d.config.ProfileProvider.GetProfileNameForSysObjectID(sysObjectID) if err != nil { return fmt.Errorf("failed to get profile sys object id for `%s`: %s", sysObjectID, err) } - if profile != d.config.Profile { - log.Debugf("detected profile change: %s -> %s", d.config.Profile, profile) + if profile != d.config.ProfileName { + log.Debugf("detected profile change: %s -> %s", d.config.ProfileName, profile) err = d.config.SetProfile(profile) if err != nil { - // Should not happen since the profile is one of those we matched in GetProfileForSysObjectID + // Should not happen since the profile is one of those we matched in GetProfileNameForSysObjectID return fmt.Errorf("failed to refresh with profile `%s` detected using sysObjectID `%s`: %s", profile, sysObjectID, err) } } @@ -346,77 +330,6 @@ func (d *DeviceCheck) detectMetricsToMonitor(sess session.Session) error { return nil } -func (d *DeviceCheck) detectAvailableMetrics() ([]profiledefinition.MetricsConfig, []profiledefinition.MetricTagConfig) { - fetchedOIDs := session.FetchAllOIDsUsingGetNext(d.session) - log.Debugf("fetched OIDs: %v", fetchedOIDs) - - root := common.BuildOidTrie(fetchedOIDs) - if log.ShouldLog(log.DebugLvl) { - root.DebugPrint() - } - - var metricConfigs []profiledefinition.MetricsConfig - var metricTagConfigs []profiledefinition.MetricTagConfig - - // If a metric name has already been encountered, we won't try to add it again. - alreadySeenMetrics := make(map[string]bool) - // If a global tag has already been encountered, we won't try to add it again. - alreadyGlobalTags := make(map[string]bool) - for _, profileConfig := range d.config.Profiles { - for _, metricConfig := range profileConfig.Definition.Metrics { - newMetricConfig := metricConfig - if metricConfig.IsScalar() { - metricName := metricConfig.Symbol.Name - if metricConfig.Options.MetricSuffix != "" { - metricName = metricName + "." + metricConfig.Options.MetricSuffix - } - if !alreadySeenMetrics[metricName] && root.LeafExist(metricConfig.Symbol.OID) { - alreadySeenMetrics[metricName] = true - metricConfigs = append(metricConfigs, newMetricConfig) - } - } else if metricConfig.IsColumn() { - newMetricConfig.Symbols = []profiledefinition.SymbolConfig{} - for _, symbol := range metricConfig.Symbols { - if !alreadySeenMetrics[symbol.Name] && root.NonLeafNodeExist(symbol.OID) { - alreadySeenMetrics[symbol.Name] = true - newMetricConfig.Symbols = append(newMetricConfig.Symbols, symbol) - } - } - if len(newMetricConfig.Symbols) > 0 { - metricConfigs = append(metricConfigs, newMetricConfig) - } - } - } - for _, metricTag := range profileConfig.Definition.MetricTags { - if root.LeafExist(metricTag.Symbol.OID) { - if metricTag.Tag != "" { - if alreadyGlobalTags[metricTag.Tag] { - continue - } - alreadyGlobalTags[metricTag.Tag] = true - } else { - // We don't add `metricTag` if any of the `metricTag.Tags` has already been encountered. - alreadyPresent := false - for tagKey := range metricTag.Tags { - if alreadyGlobalTags[tagKey] { - alreadyPresent = true - break - } - } - if alreadyPresent { - continue - } - for tagKey := range metricTag.Tags { - alreadyGlobalTags[tagKey] = true - } - } - metricTagConfigs = append(metricTagConfigs, metricTag) - } - } - } - return metricConfigs, metricTagConfigs -} - func (d *DeviceCheck) submitTelemetryMetrics(startTime time.Time, tags []string) { newTags := append(utils.CopyStrings(tags), snmpLoaderTag, utils.GetAgentVersionTag()) diff --git a/pkg/collector/corechecks/snmp/internal/devicecheck/devicecheck_test.go b/pkg/collector/corechecks/snmp/internal/devicecheck/devicecheck_test.go index 028e233687aca..c56235171d3a2 100644 --- a/pkg/collector/corechecks/snmp/internal/devicecheck/devicecheck_test.go +++ b/pkg/collector/corechecks/snmp/internal/devicecheck/devicecheck_test.go @@ -9,7 +9,6 @@ import ( "encoding/json" "errors" "fmt" - "path/filepath" "strings" "testing" "time" @@ -19,18 +18,14 @@ import ( "github.com/stretchr/testify/mock" "github.com/DataDog/datadog-agent/pkg/aggregator/mocksender" - pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/metrics/servicecheck" "github.com/DataDog/datadog-agent/pkg/version" "github.com/DataDog/datadog-agent/pkg/networkdevice/pinger" - "github.com/DataDog/datadog-agent/pkg/networkdevice/profile/profiledefinition" "github.com/DataDog/datadog-agent/pkg/networkdevice/utils" "github.com/DataDog/datadog-agent/pkg/snmp/gosnmplib" "github.com/DataDog/datadog-agent/pkg/collector/corechecks/snmp/internal/checkconfig" - "github.com/DataDog/datadog-agent/pkg/collector/corechecks/snmp/internal/common" - "github.com/DataDog/datadog-agent/pkg/collector/corechecks/snmp/internal/configvalidation" "github.com/DataDog/datadog-agent/pkg/collector/corechecks/snmp/internal/profile" "github.com/DataDog/datadog-agent/pkg/collector/corechecks/snmp/internal/report" "github.com/DataDog/datadog-agent/pkg/collector/corechecks/snmp/internal/session" @@ -237,225 +232,6 @@ global_metrics: } -func TestDetectMetricsToCollect(t *testing.T) { - timeNow = common.MockTimeNow - defer func() { timeNow = time.Now }() - - profilesWithInvalidExtendConfdPath, _ := filepath.Abs(filepath.Join("..", "test", "detectmetr.d")) - pkgconfigsetup.Datadog().SetWithoutSource("confd_path", profilesWithInvalidExtendConfdPath) - - sess := session.CreateFakeSession() - sessionFactory := func(*checkconfig.CheckConfig) (session.Session, error) { - return sess, nil - } - - // language=yaml - rawInstanceConfig := []byte(` -ip_address: 1.2.3.4 -community_string: public -experimental_detect_metrics_enabled: true -experimental_detect_metrics_refresh_interval: 10 -collect_topology: false -`) - // language=yaml - rawInitConfig := []byte(``) - - config, err := checkconfig.NewCheckConfig(rawInstanceConfig, rawInitConfig) - assert.Nil(t, err) - - deviceCk, err := NewDeviceCheck(config, "1.2.3.4", sessionFactory) - assert.Nil(t, err) - - sender := mocksender.NewMockSender("123") // required to initiate aggregator - sender.On("Gauge", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return() - sender.On("MonotonicCount", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return() - sender.On("ServiceCheck", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return() - sender.On("EventPlatformEvent", mock.Anything, mock.Anything).Return() - sender.On("Commit").Return() - - deviceCk.SetSender(report.NewMetricSender(sender, "", nil, report.MakeInterfaceBandwidthState())) - - sess. - SetObj("1.3.6.1.2.1.1.2.0", "1.3.6.1.4.1.3375.2.1.3.4.1"). - SetTime("1.3.6.1.2.1.1.3.0", 20). - SetStr("1.3.6.1.2.1.1.1.0", "my_desc"). - SetStr("1.3.6.1.2.1.1.5.0", "foo_sys_name"). - SetStr("1.3.6.1.4.1.318.1.1.1.11.1.1.0", "1010"). - SetInt("1.3.6.1.2.1.2.2.1.13.1", 131). - SetInt("1.3.6.1.2.1.2.2.1.14.1", 141). - SetStr("1.3.6.1.2.1.2.2.1.2.1", `desc1`). - SetByte("1.3.6.1.2.1.2.2.1.6.1", []byte{00, 00, 00, 00, 00, 01}). - SetInt("1.3.6.1.2.1.2.2.1.7.1", 1). - SetInt("1.3.6.1.2.1.2.2.1.13.2", 132). - SetInt("1.3.6.1.2.1.2.2.1.14.2", 142). - SetByte("1.3.6.1.2.1.2.2.1.6.2", []byte{00, 00, 00, 00, 00, 01}). - SetStr("1.3.6.1.2.1.2.2.1.2.2", `desc2`). - SetInt("1.3.6.1.2.1.2.2.1.7.2", 1). - SetInt("1.3.6.1.2.1.2.2.1.8.1", 1). - SetStr("1.3.6.1.2.1.31.1.1.1.1.1", "nameRow1"). - SetStr("1.3.6.1.2.1.31.1.1.1.18.1", "descRow1"). - SetInt("1.3.6.1.2.1.4.20.1.2.10.0.0.1", 1). - SetIP("1.3.6.1.2.1.4.20.1.3.10.0.0.1", "255.255.255.0"). - SetInt("1.3.6.1.2.1.2.2.1.8.2", 1). - SetStr("1.3.6.1.2.1.31.1.1.1.1.2", "nameRow2"). - SetStr("1.3.6.1.2.1.31.1.1.1.18.2", "descRow2"). - SetInt("1.3.6.1.2.1.4.20.1.2.10.0.0.2", 1). - SetIP("1.3.6.1.2.1.4.20.1.3.10.0.0.2", "255.255.255.0") - - savedAutodetectMetricsTime := deviceCk.nextAutodetectMetrics - err = deviceCk.Run(timeNow()) - assert.Nil(t, err) - - snmpTags := []string{"snmp_device:1.2.3.4", "device_ip:1.2.3.4", "device_id:default:1.2.3.4"} - telemetryTags := append(utils.CopyStrings(snmpTags), "agent_version:"+version.AgentVersion) - row1Tags := append(utils.CopyStrings(snmpTags), "interface:nameRow1", "interface_alias:descRow1", "table_static_tag:val") - row2Tags := append(utils.CopyStrings(snmpTags), "interface:nameRow2", "interface_alias:descRow2", "table_static_tag:val") - - sender.AssertMetric(t, "Gauge", "snmp.sysUpTimeInstance", float64(20), "", snmpTags) - sender.AssertMetric(t, "MonotonicCount", "snmp.ifInErrors", float64(70.5), "", row1Tags) - sender.AssertMetric(t, "MonotonicCount", "snmp.ifInErrors", float64(71), "", row2Tags) - sender.AssertMetric(t, "MonotonicCount", "snmp.ifInDiscards", float64(131), "", row1Tags) - sender.AssertMetric(t, "MonotonicCount", "snmp.ifInDiscards", float64(132), "", row2Tags) - sender.AssertNotCalled(t, "Gauge", "snmp.sysStatMemoryTotal", mock.Anything, mock.Anything, mock.Anything) - - sender.AssertMetric(t, "Gauge", "snmp.devices_monitored", float64(1), "", telemetryTags) - sender.AssertMetricTaggedWith(t, "MonotonicCount", "datadog.snmp.check_interval", telemetryTags) - sender.AssertMetricTaggedWith(t, "Gauge", "datadog.snmp.check_duration", telemetryTags) - sender.AssertMetricTaggedWith(t, "Gauge", "datadog.snmp.submitted_metrics", telemetryTags) - - expectedNextAutodetectMetricsTime := savedAutodetectMetricsTime.Add(time.Duration(deviceCk.config.DetectMetricsRefreshInterval) * time.Second) - assert.WithinDuration(t, expectedNextAutodetectMetricsTime, deviceCk.nextAutodetectMetrics, time.Second) - - expectedMetrics := []profiledefinition.MetricsConfig{ - {Symbol: profiledefinition.SymbolConfig{OID: "1.3.6.1.2.1.1.3.0", Name: "sysUpTimeInstance"}}, - {Symbol: profiledefinition.SymbolConfig{OID: "1.3.6.1.4.1.318.1.1.1.11.1.1.0", Name: "upsBasicStateOutputState"}, MetricType: "flag_stream", Options: profiledefinition.MetricsConfigOption{Placement: 1, MetricSuffix: "OnLine"}}, - {Symbol: profiledefinition.SymbolConfig{OID: "1.3.6.1.4.1.318.1.1.1.11.1.1.0", Name: "upsBasicStateOutputState"}, MetricType: "flag_stream", Options: profiledefinition.MetricsConfigOption{Placement: 2, MetricSuffix: "ReplaceBattery"}}, - { - MetricType: profiledefinition.ProfileMetricTypeMonotonicCount, - MIB: "IF-MIB", - Table: profiledefinition.SymbolConfig{ - OID: "1.3.6.1.2.1.2.2", - Name: "ifTable", - }, - Symbols: []profiledefinition.SymbolConfig{ - {OID: "1.3.6.1.2.1.2.2.1.14", Name: "ifInErrors", ScaleFactor: 0.5}, - {OID: "1.3.6.1.2.1.2.2.1.13", Name: "ifInDiscards"}, - }, - MetricTags: []profiledefinition.MetricTagConfig{ - {Tag: "interface", Symbol: profiledefinition.SymbolConfigCompat{OID: "1.3.6.1.2.1.31.1.1.1.1", Name: "ifName"}}, - {Tag: "interface_alias", Symbol: profiledefinition.SymbolConfigCompat{OID: "1.3.6.1.2.1.31.1.1.1.18", Name: "ifAlias"}}, - {Tag: "mac_address", Symbol: profiledefinition.SymbolConfigCompat{OID: "1.3.6.1.2.1.2.2.1.6", Name: "ifPhysAddress", Format: "mac_address"}}, - }, - StaticTags: []string{"table_static_tag:val"}, - }, - } - - expectedMetricTags := []profiledefinition.MetricTagConfig{ - {Tag: "snmp_host2", Symbol: profiledefinition.SymbolConfigCompat{OID: "1.3.6.1.2.1.1.5.0", Name: "sysName"}}, - { - Symbol: profiledefinition.SymbolConfigCompat{OID: "1.3.6.1.2.1.1.5.0", Name: "sysName"}, - Match: "(\\w)(\\w+)", - Tags: map[string]string{ - "prefix": "\\1", - "suffix": "\\2", - "some_tag": "some_tag_value", - }, - }, - {Tag: "snmp_host", Symbol: profiledefinition.SymbolConfigCompat{OID: "1.3.6.1.2.1.1.5.0", Name: "sysName"}}, - } - configvalidation.ValidateEnrichMetrics(expectedMetrics) - configvalidation.ValidateEnrichMetricTags(expectedMetricTags) - - assert.ElementsMatch(t, deviceCk.config.Metrics, expectedMetrics) - - assert.ElementsMatch(t, deviceCk.config.MetricTags, expectedMetricTags) - - // Add a new metric and make sure it is added but nothing else is re-added - sess.SetInt("1.3.6.1.4.1.3375.2.1.1.2.1.44.0", 30) - sender.ResetCalls() - timeNow = func() time.Time { - return common.MockTimeNow().Add(time.Second * 100) - } - - err = deviceCk.Run(timeNow()) - assert.Nil(t, err) - - sender.AssertMetric(t, "Gauge", "snmp.sysStatMemoryTotal", float64(60), "", snmpTags) - - expectedMetrics = append(expectedMetrics, profiledefinition.MetricsConfig{ - MIB: "F5-BIGIP-SYSTEM-MIB", - Symbol: profiledefinition.SymbolConfig{OID: "1.3.6.1.4.1.3375.2.1.1.2.1.44.0", Name: "sysStatMemoryTotal", ScaleFactor: 2}, - MetricType: profiledefinition.ProfileMetricTypeGauge, - }) - assert.ElementsMatch(t, expectedMetrics, deviceCk.config.Metrics) - assert.ElementsMatch(t, expectedMetricTags, deviceCk.config.MetricTags) - -} - -func TestDetectMetricsToCollect_detectMetricsToMonitor_nextAutodetectMetrics(t *testing.T) { - timeNow = common.MockTimeNow - defer func() { timeNow = time.Now }() - - sess := session.CreateMockSession() - sessionFactory := func(*checkconfig.CheckConfig) (session.Session, error) { - return sess, nil - } - - // language=yaml - rawInstanceConfig := []byte(` -ip_address: 1.2.3.4 -community_string: public -experimental_detect_metrics_enabled: true -experimental_detect_metrics_refresh_interval: 600 # 10min -`) - // language=yaml - rawInitConfig := []byte(` -profiles: - f5-big-ip: - definition_file: f5-big-ip.yaml -`) - - config, err := checkconfig.NewCheckConfig(rawInstanceConfig, rawInitConfig) - assert.Nil(t, err) - - deviceCk, err := NewDeviceCheck(config, "1.2.3.4", sessionFactory) - assert.Nil(t, err) - - deviceCk.session, err = sessionFactory(config) - assert.Nil(t, err) - - sender := mocksender.NewMockSender("123") // required to initiate aggregator - deviceCk.SetSender(report.NewMetricSender(sender, "", nil, report.MakeInterfaceBandwidthState())) - sess.On("GetNext", []string{"1.0"}).Return(session.CreateGetNextPacket("9999", gosnmp.EndOfMibView, nil), nil) - - deviceCk.detectMetricsToMonitor(sess) - - expectedNextAutodetectMetricsTime := common.MockTimeNow().Add(600 * time.Second) - assert.Equal(t, expectedNextAutodetectMetricsTime, deviceCk.nextAutodetectMetrics) - - // 10 seconds after - timeNow = func() time.Time { - return common.MockTimeNow().Add(10 * time.Second) - } - deviceCk.detectMetricsToMonitor(sess) - assert.Equal(t, expectedNextAutodetectMetricsTime, deviceCk.nextAutodetectMetrics) - - // 599 seconds after - timeNow = func() time.Time { - return common.MockTimeNow().Add(599 * time.Second) - } - deviceCk.detectMetricsToMonitor(sess) - assert.Equal(t, expectedNextAutodetectMetricsTime, deviceCk.nextAutodetectMetrics) - - // 600 seconds after - expectedNextAutodetectMetricsTime = common.MockTimeNow().Add(1200 * time.Second) - timeNow = func() time.Time { - return common.MockTimeNow().Add(600 * time.Second) - } - deviceCk.detectMetricsToMonitor(sess) - assert.Equal(t, expectedNextAutodetectMetricsTime, deviceCk.nextAutodetectMetrics) -} - func TestDeviceCheck_Hostname(t *testing.T) { profile.SetConfdPathAndCleanProfiles() // language=yaml @@ -892,93 +668,6 @@ profiles: assert.Equal(t, uint64(1), deviceCk.sessionCloseErrorCount.Load()) } -func TestDeviceCheck_detectAvailableMetrics(t *testing.T) { - profile.SetConfdPathAndCleanProfiles() - - sess := session.CreateMockSession() - sessionFactory := func(*checkconfig.CheckConfig) (session.Session, error) { - return sess, nil - } - - // language=yaml - rawInstanceConfig := []byte(` -collect_device_metadata: false -ip_address: 1.2.3.4 -community_string: public -`) - // language=yaml - rawInitConfig := []byte(``) - - config, err := checkconfig.NewCheckConfig(rawInstanceConfig, rawInitConfig) - assert.Nil(t, err) - - deviceCk, err := NewDeviceCheck(config, "1.2.3.4", sessionFactory) - assert.Nil(t, err) - - deviceCk.session, err = sessionFactory(config) - assert.Nil(t, err) - - sender := mocksender.NewMockSender("123") // required to initiate aggregator - sender.SetupAcceptAll() - - deviceCk.SetSender(report.NewMetricSender(sender, "", nil, report.MakeInterfaceBandwidthState())) - - sess.On("GetNext", []string{"1.0"}).Return(&gosnmplib.MockValidReachableGetNextPacket, nil) - sess.On("GetNext", []string{"1.3.6.1.2.1.1.2.0"}).Return(session.CreateGetNextPacket("1.3.6.1.2.1.1.5.0", gosnmp.OctetString, []byte(`123`)), nil) - sess.On("GetNext", []string{"1.3.6.1.2.1.1.5.0"}).Return(session.CreateGetNextPacket("1.3.6.1.2.1.2.2.1.13.1", gosnmp.OctetString, []byte(`123`)), nil) - sess.On("GetNext", []string{"1.3.6.1.2.1.2.2.1.14"}).Return(session.CreateGetNextPacket("1.3.6.1.2.1.2.2.1.14.1", gosnmp.OctetString, []byte(`123`)), nil) - sess.On("GetNext", []string{"1.3.6.1.2.1.2.2.1.15"}).Return(session.CreateGetNextPacket("1.3.6.1.2.1.2.2.1.15.1", gosnmp.OctetString, []byte(`123`)), nil) - sess.On("GetNext", []string{"1.3.6.1.2.1.2.2.1.16"}).Return(session.CreateGetNextPacket("1.3.6.1.4.1.3375.2.1.1.2.1.44.0", gosnmp.OctetString, []byte(`123`)), nil) - sess.On("GetNext", []string{"1.3.6.1.4.1.3375.2.1.1.2.1.44.0"}).Return(session.CreateGetNextPacket("", gosnmp.EndOfMibView, nil), nil) - - metricsConfigs, metricTagConfigs := deviceCk.detectAvailableMetrics() - - expectedMetricsConfigs := []profiledefinition.MetricsConfig{ - { - MIB: "F5-BIGIP-SYSTEM-MIB", - Symbol: profiledefinition.SymbolConfig{OID: "1.3.6.1.4.1.3375.2.1.1.2.1.44.0", Name: "sysStatMemoryTotal", ScaleFactor: 2}, - MetricType: profiledefinition.ProfileMetricTypeGauge, - }, - { - MIB: "IF-MIB", - Table: profiledefinition.SymbolConfig{ - OID: "1.3.6.1.2.1.2.2", - Name: "ifTable", - }, - MetricType: profiledefinition.ProfileMetricTypeMonotonicCount, - Symbols: []profiledefinition.SymbolConfig{ - {OID: "1.3.6.1.2.1.2.2.1.14", Name: "ifInErrors", ScaleFactor: 0.5}, - {OID: "1.3.6.1.2.1.2.2.1.13", Name: "ifInDiscards"}, - }, - MetricTags: []profiledefinition.MetricTagConfig{ - {Tag: "interface", Symbol: profiledefinition.SymbolConfigCompat{OID: "1.3.6.1.2.1.31.1.1.1.1", Name: "ifName"}}, - {Tag: "interface_alias", Symbol: profiledefinition.SymbolConfigCompat{OID: "1.3.6.1.2.1.31.1.1.1.18", Name: "ifAlias"}}, - {Tag: "mac_address", Symbol: profiledefinition.SymbolConfigCompat{OID: "1.3.6.1.2.1.2.2.1.6", Name: "ifPhysAddress", Format: "mac_address"}}, - }, - StaticTags: []string{"table_static_tag:val"}, - }, - } - assert.ElementsMatch(t, expectedMetricsConfigs, metricsConfigs) - - expectedMetricsTagConfigs := []profiledefinition.MetricTagConfig{ - { - Symbol: profiledefinition.SymbolConfigCompat{OID: "1.3.6.1.2.1.1.5.0", Name: "sysName"}, - Match: "(\\w)(\\w+)", - Tags: map[string]string{ - "some_tag": "some_tag_value", - "prefix": "\\1", - "suffix": "\\2", - }, - }, - {Tag: "snmp_host", Symbol: profiledefinition.SymbolConfigCompat{OID: "1.3.6.1.2.1.1.5.0", Name: "sysName"}}, - {Tag: "snmp_host2", Symbol: profiledefinition.SymbolConfigCompat{OID: "1.3.6.1.2.1.1.5.0", Name: "sysName"}}, - } - - configvalidation.ValidateEnrichMetricTags(expectedMetricsTagConfigs) - - assert.ElementsMatch(t, expectedMetricsTagConfigs, metricTagConfigs) -} - func TestDeviceCheck_WithPing(t *testing.T) { profile.SetConfdPathAndCleanProfiles() sess := session.CreateFakeSession() diff --git a/pkg/collector/corechecks/snmp/internal/profile/config_profile.go b/pkg/collector/corechecks/snmp/internal/profile/config_profile.go index a2cca802ba6f5..0cf4355fe3ea7 100644 --- a/pkg/collector/corechecks/snmp/internal/profile/config_profile.go +++ b/pkg/collector/corechecks/snmp/internal/profile/config_profile.go @@ -9,10 +9,48 @@ import ( "github.com/DataDog/datadog-agent/pkg/networkdevice/profile/profiledefinition" ) -// ProfileConfigMap represent a map of ProfileConfig +// Provider is an interface that provides profiles by name +type Provider interface { + // HasProfile returns true if and only if we have a profile by this name. + HasProfile(profileName string) bool + // GetProfile returns the profile with this name, or nil if there isn't one. + GetProfile(profileName string) *ProfileConfig + // GetProfileNameForSysObjectID returns the best matching profile for this sysObjectID, or nil if there isn't one. + GetProfileNameForSysObjectID(sysObjectID string) (string, error) +} + +// staticProvider is a static implementation of Provider +type staticProvider struct { + configMap ProfileConfigMap +} + +func (s *staticProvider) GetProfile(name string) *ProfileConfig { + if profile, ok := s.configMap[name]; ok { + return &profile + } + return nil +} + +func (s *staticProvider) HasProfile(profileName string) bool { + _, ok := s.configMap[profileName] + return ok +} + +func (s *staticProvider) GetProfileNameForSysObjectID(sysObjectID string) (string, error) { + return getProfileForSysObjectID(s.configMap, sysObjectID) +} + +// StaticProvider makes a provider that serves the static data from this config map. +func StaticProvider(profiles ProfileConfigMap) Provider { + return &staticProvider{ + configMap: profiles, + } +} + +// ProfileConfigMap is a set of ProfileConfig instances each identified by name. type ProfileConfigMap map[string]ProfileConfig -// ProfileConfig represent a profile configuration +// ProfileConfig represents a profile configuration. type ProfileConfig struct { DefinitionFile string `yaml:"definition_file"` Definition profiledefinition.ProfileDefinition `yaml:"definition"` diff --git a/pkg/collector/corechecks/snmp/internal/profile/profile.go b/pkg/collector/corechecks/snmp/internal/profile/profile.go index 52d61f6170629..916be04fe7035 100644 --- a/pkg/collector/corechecks/snmp/internal/profile/profile.go +++ b/pkg/collector/corechecks/snmp/internal/profile/profile.go @@ -15,12 +15,16 @@ import ( "github.com/DataDog/datadog-agent/pkg/networkdevice/profile/profiledefinition" ) -// GetProfiles returns profiles depending on various sources: -// - init config profiles -// - yaml profiles -// - downloaded json gzip profiles -// - remote config profiles -func GetProfiles(initConfigProfiles ProfileConfigMap) (ProfileConfigMap, error) { +// GetProfileProvider returns a Provider that knows the on-disk profiles as well as any overrides from the initConfig. +func GetProfileProvider(initConfigProfiles ProfileConfigMap) (Provider, error) { + profiles, err := loadProfiles(initConfigProfiles) + if err != nil { + return nil, err + } + return StaticProvider(profiles), nil +} + +func loadProfiles(initConfigProfiles ProfileConfigMap) (ProfileConfigMap, error) { var profiles ProfileConfigMap if len(initConfigProfiles) > 0 { // TODO: [PERFORMANCE] Load init config custom profiles once for all integrations @@ -30,12 +34,6 @@ func GetProfiles(initConfigProfiles ProfileConfigMap) (ProfileConfigMap, error) return nil, fmt.Errorf("failed to load profiles from initConfig: %w", err) } profiles = customProfiles - } else if bundlePath := findProfileBundleFilePath(); bundlePath != "" { - defaultProfiles, err := loadBundleJSONProfiles(bundlePath) - if err != nil { - return nil, fmt.Errorf("failed to load profiles from json bundle %q: %w", bundlePath, err) - } - profiles = defaultProfiles } else { defaultProfiles, err := loadYamlProfiles() if err != nil { @@ -49,8 +47,8 @@ func GetProfiles(initConfigProfiles ProfileConfigMap) (ProfileConfigMap, error) return profiles, nil } -// GetProfileForSysObjectID return a profile for a sys object id -func GetProfileForSysObjectID(profiles ProfileConfigMap, sysObjectID string) (string, error) { +// getProfileForSysObjectID return a profile for a sys object id +func getProfileForSysObjectID(profiles ProfileConfigMap, sysObjectID string) (string, error) { tmpSysOidToProfile := map[string]string{} var matchedOids []string diff --git a/pkg/collector/corechecks/snmp/internal/profile/profile_json_bundle.go b/pkg/collector/corechecks/snmp/internal/profile/profile_json_bundle.go deleted file mode 100644 index efe94b970e053..0000000000000 --- a/pkg/collector/corechecks/snmp/internal/profile/profile_json_bundle.go +++ /dev/null @@ -1,100 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -package profile - -import ( - "compress/gzip" - "encoding/json" - "io" - "os" - "path/filepath" - - "github.com/DataDog/datadog-agent/pkg/util/log" - - "github.com/DataDog/datadog-agent/pkg/networkdevice/profile/profiledefinition" -) - -// loadBundleJSONProfiles finds the gzipped profile bundle and loads profiles from it. -func loadBundleJSONProfiles(gzipFilePath string) (ProfileConfigMap, error) { - jsonStr, err := loadGzipFile(gzipFilePath) - if err != nil { - return nil, err - } - - userProfiles, err := unmarshallProfilesBundleJSON(jsonStr, gzipFilePath) - if err != nil { - return nil, err - } - // TODO (separate PR): Use default profiles from json Bundle in priority once it's implemented. - // We fallback on Yaml Default Profiles if default profiles are not present in json Bundle. - defaultProfiles := getYamlDefaultProfiles() - - resolvedProfiles, err := resolveProfiles(userProfiles, defaultProfiles) - if err != nil { - return nil, err - } - - return resolvedProfiles, nil -} - -// unmarshallProfilesBundleJSON parses json data into a profile bundle. -// Duplicate profiles and profiles without names will be skipped, and warnings will be logged; -// filenameForLogging is only used for making more readable log messages. -func unmarshallProfilesBundleJSON(raw []byte, filenameForLogging string) (ProfileConfigMap, error) { - bundle := profiledefinition.ProfileBundle{} - err := json.Unmarshal(raw, &bundle) - if err != nil { - return nil, err - } - - profiles := make(ProfileConfigMap) - for i, p := range bundle.Profiles { - if p.Profile.Name == "" { - log.Warnf("ignoring profile #%d from %q - no name provided", i, filenameForLogging) - continue - } - - if _, exist := profiles[p.Profile.Name]; exist { - log.Warnf("ignoring duplicate profile in %q for name %q", filenameForLogging, p.Profile.Name) - continue - } - // TODO: (separate PR) resolve extends with custom + local default profiles (yaml) - profiles[p.Profile.Name] = ProfileConfig{ - Definition: p.Profile, - IsUserProfile: true, - } - } - return profiles, nil -} - -// loadGzipFile extracts the contents of a gzip file. -func loadGzipFile(filePath string) ([]byte, error) { - gzipFile, err := os.Open(filePath) - if err != nil { - return nil, err - } - defer gzipFile.Close() - gzipReader, err := gzip.NewReader(gzipFile) - if err != nil { - return nil, err - } - defer gzipReader.Close() - return io.ReadAll(gzipReader) -} - -// getProfileBundleFilePath returns the expected location of the gzipped profiles bundle, based on config.Datadog(). -func getProfileBundleFilePath() string { - return getProfileConfdRoot(filepath.Join(userProfilesFolder, profilesJSONGzipFile)) -} - -// findProfileBundleFilePath returns the path to the gzipped profiles bundle, or "" if one doesn't exist. -func findProfileBundleFilePath() string { - filePath := getProfileBundleFilePath() - if pathExists(filePath) { - return filePath - } - return "" -} diff --git a/pkg/collector/corechecks/snmp/internal/profile/profile_json_bundle_test.go b/pkg/collector/corechecks/snmp/internal/profile/profile_json_bundle_test.go deleted file mode 100644 index 7ca8bcbbe3172..0000000000000 --- a/pkg/collector/corechecks/snmp/internal/profile/profile_json_bundle_test.go +++ /dev/null @@ -1,59 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2023-present Datadog, Inc. - -package profile - -import ( - "path/filepath" - "testing" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - - pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" -) - -func Test_loadBundleJSONProfiles(t *testing.T) { - defaultTestConfdPath, _ := filepath.Abs(filepath.Join("..", "test", "zipprofiles.d")) - SetGlobalProfileConfigMap(nil) - pkgconfigsetup.Datadog().SetWithoutSource("confd_path", defaultTestConfdPath) - pth := findProfileBundleFilePath() - require.FileExists(t, pth) - resolvedProfiles, err := loadBundleJSONProfiles(pth) - assert.Nil(t, err) - - var actualProfiles []string - var actualMetrics []string - for key, profile := range resolvedProfiles { - actualProfiles = append(actualProfiles, key) - for _, metric := range profile.Definition.Metrics { - actualMetrics = append(actualMetrics, metric.Symbol.Name) - } - } - - expectedProfiles := []string{ - "def-p1", // yaml default profile - "my-profile-name", // downloaded json profile - "profile-from-ui", // downloaded json profile - } - assert.ElementsMatch(t, expectedProfiles, actualProfiles) - - expectedMetrics := []string{ - "metricFromUi2", - "metricFromUi3", - "default_p1_metric", - "default_p1_metric", // from 2 profiles - } - assert.ElementsMatch(t, expectedMetrics, actualMetrics) - - var myProfileMetrics []string - for _, metric := range resolvedProfiles["my-profile-name"].Definition.Metrics { - myProfileMetrics = append(myProfileMetrics, metric.Symbol.Name) - } - expectedMyProfileMetrics := []string{ - "default_p1_metric", - } - assert.ElementsMatch(t, expectedMyProfileMetrics, myProfileMetrics) -} diff --git a/pkg/collector/corechecks/snmp/internal/profile/profile_resolver_test.go b/pkg/collector/corechecks/snmp/internal/profile/profile_resolver_test.go index 1b744b66f38f4..d95c902a7cc3b 100644 --- a/pkg/collector/corechecks/snmp/internal/profile/profile_resolver_test.go +++ b/pkg/collector/corechecks/snmp/internal/profile/profile_resolver_test.go @@ -155,7 +155,7 @@ func Test_resolveProfiles(t *testing.T) { assert.Contains(t, err.Error(), errorMsg) } - w.Flush() + assert.NoError(t, w.Flush()) logs := b.String() for _, aLogCount := range tt.expectedLogs { diff --git a/pkg/collector/corechecks/snmp/internal/profile/profile_test.go b/pkg/collector/corechecks/snmp/internal/profile/profile_test.go index a79103d7e7a49..cb46896c2db7b 100644 --- a/pkg/collector/corechecks/snmp/internal/profile/profile_test.go +++ b/pkg/collector/corechecks/snmp/internal/profile/profile_test.go @@ -17,7 +17,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/networkdevice/profile/profiledefinition" ) -func Test_getProfiles(t *testing.T) { +func Test_loadProfiles(t *testing.T) { tests := []struct { name string mockConfd string @@ -74,22 +74,6 @@ func Test_getProfiles(t *testing.T) { }, expectedProfileNames: []string(nil), // invalid profiles are skipped }, - - // json profiles.json.gz profiles - { - name: "OK Use json profiles.json.gz profiles", - mockConfd: "zipprofiles.d", - expectedProfileNames: []string{ - "def-p1", - "my-profile-name", - "profile-from-ui", - }, - }, - { - name: "ERROR Invalid profiles.json.gz profiles", - mockConfd: "zipprofiles_err.d", - expectedErr: "failed to load profiles from json bundle", - }, // yaml profiles { name: "OK Use yaml profiles", @@ -111,7 +95,7 @@ func Test_getProfiles(t *testing.T) { path, _ := filepath.Abs(filepath.Join("..", "test", tt.mockConfd)) pkgconfigsetup.Datadog().SetWithoutSource("confd_path", path) - actualProfiles, err := GetProfiles(tt.profiles) + actualProfiles, err := loadProfiles(tt.profiles) if tt.expectedErr != "" { assert.ErrorContains(t, err, tt.expectedErr) } @@ -373,7 +357,7 @@ func Test_getProfileForSysObjectID(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - profile, err := GetProfileForSysObjectID(tt.profiles, tt.sysObjectID) + profile, err := getProfileForSysObjectID(tt.profiles, tt.sysObjectID) if tt.expectedError == "" { assert.Nil(t, err) } else { diff --git a/pkg/collector/corechecks/snmp/internal/profile/profile_yaml.go b/pkg/collector/corechecks/snmp/internal/profile/profile_yaml.go index 03d7be924a9f3..600809768a026 100644 --- a/pkg/collector/corechecks/snmp/internal/profile/profile_yaml.go +++ b/pkg/collector/corechecks/snmp/internal/profile/profile_yaml.go @@ -23,7 +23,6 @@ import ( const defaultProfilesFolder = "default_profiles" const userProfilesFolder = "profiles" -const profilesJSONGzipFile = "profiles.json.gz" var defaultProfilesMu = &sync.Mutex{} diff --git a/pkg/collector/corechecks/snmp/internal/report/report_device_metadata.go b/pkg/collector/corechecks/snmp/internal/report/report_device_metadata.go index ff8d90912efb3..3e9ad39677d4c 100644 --- a/pkg/collector/corechecks/snmp/internal/report/report_device_metadata.go +++ b/pkg/collector/corechecks/snmp/internal/report/report_device_metadata.go @@ -210,8 +210,9 @@ func buildNetworkDeviceMetadata(deviceID string, idTags []string, config *checkc } // fallback to Device.Vendor for backward compatibility - if config.ProfileDef != nil && vendor == "" { - vendor = config.ProfileDef.Device.Vendor + profileDef := config.GetProfileDef() + if profileDef != nil && vendor == "" { + vendor = profileDef.Device.Vendor } return devicemetadata.DeviceMetadata{ @@ -222,7 +223,7 @@ func buildNetworkDeviceMetadata(deviceID string, idTags []string, config *checkc IPAddress: config.IPAddress, SysObjectID: sysObjectID, Location: location, - Profile: config.Profile, + Profile: config.ProfileName, ProfileVersion: getProfileVersion(config), Vendor: vendor, Tags: tags, @@ -243,8 +244,9 @@ func buildNetworkDeviceMetadata(deviceID string, idTags []string, config *checkc func getProfileVersion(config *checkconfig.CheckConfig) uint64 { var profileVersion uint64 - if config.ProfileDef != nil { - profileVersion = config.ProfileDef.Version + profileDef := config.GetProfileDef() + if profileDef != nil { + profileVersion = profileDef.Version } return profileVersion } diff --git a/pkg/collector/corechecks/snmp/internal/report/report_device_metadata_test.go b/pkg/collector/corechecks/snmp/internal/report/report_device_metadata_test.go index 2cff0364b107f..22d58e9530216 100644 --- a/pkg/collector/corechecks/snmp/internal/report/report_device_metadata_test.go +++ b/pkg/collector/corechecks/snmp/internal/report/report_device_metadata_test.go @@ -61,11 +61,15 @@ func Test_metricSender_reportNetworkDeviceMetadata_withoutInterfaces(t *testing. DeviceIDTags: []string{"device_name:127.0.0.1"}, ResolvedSubnetName: "127.0.0.0/29", Namespace: "my-ns", - Profile: "my-profile", - ProfileDef: &profiledefinition.ProfileDefinition{ - Name: "my-profile", - Version: 10, - }, + ProfileName: "my-profile", + ProfileProvider: profile.StaticProvider(profile.ProfileConfigMap{ + "my-profile": profile.ProfileConfig{ + Definition: profiledefinition.ProfileDefinition{ + Name: "my-profile", + Version: 10, + }, + }, + }), Metadata: profiledefinition.MetadataConfig{ "device": { Fields: map[string]profiledefinition.MetadataField{ @@ -970,10 +974,15 @@ func Test_getProfileVersion(t *testing.T) { { name: "profile definition is present", config: checkconfig.CheckConfig{ - ProfileDef: &profiledefinition.ProfileDefinition{ - Name: "my-profile", - Version: 42, - }, + ProfileName: "my-profile", + ProfileProvider: profile.StaticProvider(profile.ProfileConfigMap{ + "my-profile": profile.ProfileConfig{ + Definition: profiledefinition.ProfileDefinition{ + Name: "my-profile", + Version: 42, + }, + }, + }), }, expectedProfileVersion: 42, }, diff --git a/pkg/collector/corechecks/snmp/internal/test/zipprofiles.d/snmp.d/default_profiles/_base.yaml b/pkg/collector/corechecks/snmp/internal/test/zipprofiles.d/snmp.d/default_profiles/_base.yaml deleted file mode 100644 index 71e7d7b5bc742..0000000000000 --- a/pkg/collector/corechecks/snmp/internal/test/zipprofiles.d/snmp.d/default_profiles/_base.yaml +++ /dev/null @@ -1,6 +0,0 @@ -# Base profile that should only contain any items we want to provide for all profiles. - -metric_tags: - - OID: 1.3.6.1.2.1.1.5.0 - symbol: sysName - tag: base_datadog diff --git a/pkg/collector/corechecks/snmp/internal/test/zipprofiles.d/snmp.d/default_profiles/def-p1.yaml b/pkg/collector/corechecks/snmp/internal/test/zipprofiles.d/snmp.d/default_profiles/def-p1.yaml deleted file mode 100644 index ca814c375fef3..0000000000000 --- a/pkg/collector/corechecks/snmp/internal/test/zipprofiles.d/snmp.d/default_profiles/def-p1.yaml +++ /dev/null @@ -1,24 +0,0 @@ -# Profile for F5 BIG-IP devices -# -extends: - - _base.yaml - -device: - vendor: "def-p1" - -sysobjectid: 1.2.3.* - -metrics: - - symbol: - OID: 1.2.3.5 - name: default_p1_metric - -# metadata section helps test the bug related to nil metadata -# that is fixed by this PR: https://github.com/DataDog/datadog-agent/pull/20859 -metadata: - device: - fields: - name: - symbol: - OID: 1.3.6.1.2.1.1.5.0 - name: sysName diff --git a/pkg/collector/corechecks/snmp/internal/test/zipprofiles.d/snmp.d/profiles/f5-big-ip.yaml b/pkg/collector/corechecks/snmp/internal/test/zipprofiles.d/snmp.d/profiles/f5-big-ip.yaml deleted file mode 100644 index 8eead496f206b..0000000000000 --- a/pkg/collector/corechecks/snmp/internal/test/zipprofiles.d/snmp.d/profiles/f5-big-ip.yaml +++ /dev/null @@ -1,5 +0,0 @@ - -metric_tags: - - OID: 1.3.6.1.2.1.1.5.0 - symbol: sysName - tag: snmp_host diff --git a/pkg/collector/corechecks/snmp/internal/test/zipprofiles.d/snmp.d/profiles/profiles.json.gz b/pkg/collector/corechecks/snmp/internal/test/zipprofiles.d/snmp.d/profiles/profiles.json.gz deleted file mode 100644 index f9e134879b4a82227ae5a07bbaafa2337b65d796..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmV-V0kHlbiwFqIdNySM18{P0W@&6?b1rIgZ*Bn9Q%!5cAP~LhS1g_r$rtIS=Tg|y zo_Z=vF>1hNjX_Q6vgE(lm=7v3(3Y0c0fTYg%=l(}w_s-sU`dgtQL_tG#{Fzh2D>dgi{Vrwf;2K1*JHg(bP`kJ1GrOKaNt1t(9Jc~ z^QUSMw}~cDR7=65j)8CuB~)R_TFpc=M4$@$Q0l5gb*5M|;t+H|3Cv&t6POPxGoP|7 zJ;^3)3UjdXojkQo*CfMgv+kPz5~@)(wy5`CW8%guaq%|N!5t3|Lx*OT>9pbvic8!) zjFHEq8O0Mz*VJe0y`BvM|B-w4W$vGPCWO8+JQ8+=v;2K%#9s@OU!z%@_UN~TnZoP` hlt|w+ZHQH(xn3Q$3HatD?Cuow!8<&gLnLMe001PFplSdB diff --git a/pkg/collector/corechecks/snmp/internal/test/zipprofiles_err.d/snmp.d/profiles/profiles.json.gz b/pkg/collector/corechecks/snmp/internal/test/zipprofiles_err.d/snmp.d/profiles/profiles.json.gz deleted file mode 100644 index e69de29bb2d1d..0000000000000 From 7cddbb865e751fb5a9a2d54755ca76d4158cf56d Mon Sep 17 00:00:00 2001 From: "John L. Peterson (Jack)" Date: Wed, 11 Dec 2024 17:36:44 -0500 Subject: [PATCH 422/439] add 'inv install-tools' to otel collector github action (#32067) --- .github/workflows/collector-generate-and-update.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/collector-generate-and-update.yml b/.github/workflows/collector-generate-and-update.yml index 8852a0ca424c0..275f6fbbcf410 100644 --- a/.github/workflows/collector-generate-and-update.yml +++ b/.github/workflows/collector-generate-and-update.yml @@ -14,16 +14,22 @@ jobs: - name: Checkout repository uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - name: Read tool versions + id: tool-versions + run: | + echo "PYTHON_VERSION=$(cat .python-version)" >> $GITHUB_ENV + echo "GO_VERSION=$(cat .go-version)" >> $GITHUB_ENV + - name: Set up Python uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 with: - python-version: 3.12 + python-version: ${{ env.PYTHON_VERSION }} cache: 'pip' - name: Set up Go uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0 with: - go-version: '1.22.8' + go-version: ${{ env.GO_VERSION }} - name: Install Dependencies run: | @@ -34,6 +40,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | + inv -e install-tools inv -e collector.update inv -e collector.generate inv -e generate-licenses From a35ae1abc227bde75767e24be08e5aa1158db6aa Mon Sep 17 00:00:00 2001 From: Maxime Riaud <65339037+misteriaud@users.noreply.github.com> Date: Thu, 12 Dec 2024 09:19:33 +0100 Subject: [PATCH 423/439] [ASCII-2582] Add certificate generation and retrieval for IPC communications (#31838) --- comp/api/authtoken/component.go | 7 +- .../authtoken/createandfetchimpl/authtoken.go | 12 ++ .../createandfetchimpl/authtoken_test.go | 6 +- comp/api/authtoken/fetchonlyimpl/authtoken.go | 43 ++++- .../authtoken/fetchonlyimpl/authtoken_test.go | 14 +- comp/api/authtoken/fetchonlyimpl/mock.go | 17 +- pkg/api/security/cert/cert_generator.go | 75 ++++++++ pkg/api/security/cert/cert_generator_test.go | 71 +++++++ pkg/api/security/cert/cert_getter.go | 128 +++++++++++++ pkg/api/security/cert/cert_getter_test.go | 139 ++++++++++++++ pkg/api/util/ipc_endpoint_test.go | 178 ++++++++++-------- pkg/api/util/util.go | 126 ++++++++++++- pkg/config/setup/config.go | 2 + 13 files changed, 716 insertions(+), 102 deletions(-) create mode 100644 pkg/api/security/cert/cert_generator.go create mode 100644 pkg/api/security/cert/cert_generator_test.go create mode 100644 pkg/api/security/cert/cert_getter.go create mode 100644 pkg/api/security/cert/cert_getter_test.go diff --git a/comp/api/authtoken/component.go b/comp/api/authtoken/component.go index 2aae4096f392d..fbe0ef3558028 100644 --- a/comp/api/authtoken/component.go +++ b/comp/api/authtoken/component.go @@ -9,9 +9,12 @@ package authtoken import ( + "crypto/tls" + + "go.uber.org/fx" + "github.com/DataDog/datadog-agent/pkg/util/fxutil" "github.com/DataDog/datadog-agent/pkg/util/optional" - "go.uber.org/fx" ) // team: agent-shared-components @@ -19,6 +22,8 @@ import ( // Component is the component type. type Component interface { Get() string + GetTLSClientConfig() *tls.Config + GetTLSServerConfig() *tls.Config } // NoneModule return a None optional type for authtoken.Component. diff --git a/comp/api/authtoken/createandfetchimpl/authtoken.go b/comp/api/authtoken/createandfetchimpl/authtoken.go index 9afffdeff362d..8f5408083f49f 100644 --- a/comp/api/authtoken/createandfetchimpl/authtoken.go +++ b/comp/api/authtoken/createandfetchimpl/authtoken.go @@ -8,6 +8,8 @@ package createandfetchimpl import ( + "crypto/tls" + "go.uber.org/fx" "github.com/DataDog/datadog-agent/comp/api/authtoken" @@ -49,3 +51,13 @@ func newAuthToken(deps dependencies) (authtoken.Component, error) { func (at *authToken) Get() string { return util.GetAuthToken() } + +// GetTLSServerConfig return a TLS configuration with the IPC certificate for http.Server +func (at *authToken) GetTLSClientConfig() *tls.Config { + return util.GetTLSClientConfig() +} + +// GetTLSServerConfig return a TLS configuration with the IPC certificate for http.Client +func (at *authToken) GetTLSServerConfig() *tls.Config { + return util.GetTLSServerConfig() +} diff --git a/comp/api/authtoken/createandfetchimpl/authtoken_test.go b/comp/api/authtoken/createandfetchimpl/authtoken_test.go index 1eb9e11f6ba81..51f2db29e1142 100644 --- a/comp/api/authtoken/createandfetchimpl/authtoken_test.go +++ b/comp/api/authtoken/createandfetchimpl/authtoken_test.go @@ -10,8 +10,6 @@ import ( "path/filepath" "testing" - "github.com/DataDog/datadog-agent/pkg/api/util" - "github.com/DataDog/datadog-agent/pkg/util/fxutil" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "go.uber.org/fx" @@ -19,13 +17,17 @@ import ( "github.com/DataDog/datadog-agent/comp/core/config" log "github.com/DataDog/datadog-agent/comp/core/log/def" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" + "github.com/DataDog/datadog-agent/pkg/api/util" + "github.com/DataDog/datadog-agent/pkg/util/fxutil" ) func TestGet(t *testing.T) { dir := t.TempDir() authPath := filepath.Join(dir, "auth_token") + ipcPath := filepath.Join(dir, "ipc_cert") overrides := map[string]any{ "auth_token_file_path": authPath, + "ipc_cert_file_path": ipcPath, } comp, err := newAuthToken( diff --git a/comp/api/authtoken/fetchonlyimpl/authtoken.go b/comp/api/authtoken/fetchonlyimpl/authtoken.go index ac07402b8c960..f353bc3706c3d 100644 --- a/comp/api/authtoken/fetchonlyimpl/authtoken.go +++ b/comp/api/authtoken/fetchonlyimpl/authtoken.go @@ -8,6 +8,9 @@ package fetchonlyimpl import ( + "crypto/tls" + "fmt" + "go.uber.org/fx" "github.com/DataDog/datadog-agent/comp/api/authtoken" @@ -26,9 +29,8 @@ func Module() fxutil.Module { } type authToken struct { - log log.Component - conf config.Component - + log log.Component + conf config.Component tokenLoaded bool } @@ -48,17 +50,44 @@ func newAuthToken(deps dependencies) authtoken.Component { } } -// Get returns the session token -func (at *authToken) Get() string { +func (at *authToken) setToken() error { if !at.tokenLoaded { // We try to load the auth_token until we succeed since it might be created at some point by another // process. if err := util.SetAuthToken(at.conf); err != nil { - at.log.Debugf("could not load auth_token: %s", err) - return "" + return fmt.Errorf("could not load auth_token: %s", err) } at.tokenLoaded = true } + return nil +} + +// Get returns the session token +func (at *authToken) Get() string { + if err := at.setToken(); err != nil { + at.log.Debugf("%s", err.Error()) + return "" + } return util.GetAuthToken() } + +// GetTLSClientConfig return a TLS configuration with the IPC certificate for http.Client +func (at *authToken) GetTLSClientConfig() *tls.Config { + if err := at.setToken(); err != nil { + at.log.Debugf("%s", err.Error()) + return nil + } + + return util.GetTLSClientConfig() +} + +// GetTLSServerConfig return a TLS configuration with the IPC certificate for http.Server +func (at *authToken) GetTLSServerConfig() *tls.Config { + if err := at.setToken(); err != nil { + at.log.Debugf("%s", err.Error()) + return nil + } + + return util.GetTLSServerConfig() +} diff --git a/comp/api/authtoken/fetchonlyimpl/authtoken_test.go b/comp/api/authtoken/fetchonlyimpl/authtoken_test.go index 4492ab4ff4105..4073ee0db7779 100644 --- a/comp/api/authtoken/fetchonlyimpl/authtoken_test.go +++ b/comp/api/authtoken/fetchonlyimpl/authtoken_test.go @@ -10,11 +10,13 @@ import ( "path/filepath" "testing" - "github.com/DataDog/datadog-agent/pkg/util/fxutil" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "go.uber.org/fx" + "github.com/DataDog/datadog-agent/pkg/api/security/cert" + "github.com/DataDog/datadog-agent/pkg/util/fxutil" + "github.com/DataDog/datadog-agent/comp/core/config" log "github.com/DataDog/datadog-agent/comp/core/log/def" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" @@ -23,6 +25,7 @@ import ( func TestGet(t *testing.T) { dir := t.TempDir() authPath := filepath.Join(dir, "auth_token") + var cfg config.Component overrides := map[string]any{ "auth_token_file_path": authPath, } @@ -32,6 +35,7 @@ func TestGet(t *testing.T) { t, fx.Provide(func() log.Component { return logmock.New(t) }), config.MockModule(), + fx.Populate(&cfg), fx.Replace(config.MockParams{Overrides: overrides}), ), ).(*authToken) @@ -42,6 +46,14 @@ func TestGet(t *testing.T) { err := os.WriteFile(authPath, []byte("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"), 0777) require.NoError(t, err) + // Should be empty because the cert/key weren't generated yet + assert.Empty(t, comp.Get()) + assert.False(t, comp.tokenLoaded) + + // generating IPC cert/key files + _, _, err = cert.CreateOrFetchAgentIPCCert(cfg) + require.NoError(t, err) + assert.Equal(t, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", comp.Get()) assert.True(t, comp.tokenLoaded) diff --git a/comp/api/authtoken/fetchonlyimpl/mock.go b/comp/api/authtoken/fetchonlyimpl/mock.go index 2dea209906a3c..3fa24b25731aa 100644 --- a/comp/api/authtoken/fetchonlyimpl/mock.go +++ b/comp/api/authtoken/fetchonlyimpl/mock.go @@ -8,9 +8,12 @@ package fetchonlyimpl import ( + "crypto/tls" + + "go.uber.org/fx" + authtokeninterface "github.com/DataDog/datadog-agent/comp/api/authtoken" "github.com/DataDog/datadog-agent/pkg/util/fxutil" - "go.uber.org/fx" ) // MockModule defines the fx options for the mock component. @@ -28,6 +31,18 @@ func (fc *MockFetchOnly) Get() string { return "a string" } +// GetTLSClientConfig is a mock of the fetchonly GetTLSClientConfig function +func (fc *MockFetchOnly) GetTLSClientConfig() *tls.Config { + return &tls.Config{ + InsecureSkipVerify: true, + } +} + +// GetTLSServerConfig is a mock of the fetchonly GetTLSServerConfig function +func (fc *MockFetchOnly) GetTLSServerConfig() *tls.Config { + return &tls.Config{} +} + // NewMock returns a new fetch only authtoken mock func newMock() authtokeninterface.Component { return &MockFetchOnly{} diff --git a/pkg/api/security/cert/cert_generator.go b/pkg/api/security/cert/cert_generator.go new file mode 100644 index 0000000000000..46b9c1076c611 --- /dev/null +++ b/pkg/api/security/cert/cert_generator.go @@ -0,0 +1,75 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package cert provide useful functions to generate certificates +package cert + +import ( + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rand" + "crypto/x509" + "crypto/x509/pkix" + "encoding/pem" + "fmt" + "math/big" + "net" + "time" +) + +func certTemplate() (*x509.Certificate, error) { + serialNumberLimit := new(big.Int).Lsh(big.NewInt(1), 128) + serialNumber, err := rand.Int(rand.Reader, serialNumberLimit) + if err != nil { + return nil, fmt.Errorf("failed to generate serial number: %s", err) + } + + notBefore := time.Now() + // 50 years duration + notAfter := notBefore.Add(50 * 365 * 24 * time.Hour) + template := x509.Certificate{ + SerialNumber: serialNumber, + Subject: pkix.Name{ + Organization: []string{"Datadog, Inc."}, + }, + NotBefore: notBefore, + NotAfter: notAfter, + BasicConstraintsValid: true, + KeyUsage: x509.KeyUsageCertSign | x509.KeyUsageDigitalSignature | x509.KeyUsageCRLSign, + ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth, x509.ExtKeyUsageClientAuth}, + IsCA: true, + IPAddresses: []net.IP{net.ParseIP("127.0.0.1"), net.ParseIP("::1")}, + DNSNames: []string{"localhost"}, + } + + return &template, nil +} + +func generateCertKeyPair() ([]byte, []byte, error) { + rootCertTmpl, err := certTemplate() + if err != nil { + return nil, nil, err + } + + rootKey, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader) + if err != nil { + return nil, nil, fmt.Errorf("Unable to generate IPC private key: %v", err) + } + + certDER, err := x509.CreateCertificate(rand.Reader, rootCertTmpl, rootCertTmpl, &rootKey.PublicKey, rootKey) + if err != nil { + return nil, nil, err + } + + certPEM := pem.EncodeToMemory(&pem.Block{Type: "CERTIFICATE", Bytes: certDER}) + rawKey, err := x509.MarshalECPrivateKey(rootKey) + if err != nil { + return nil, nil, fmt.Errorf("Unable to marshall private key: %v", err) + } + + keyPEM := pem.EncodeToMemory(&pem.Block{Type: "EC PRIVATE KEY", Bytes: rawKey}) + + return certPEM, keyPEM, nil +} diff --git a/pkg/api/security/cert/cert_generator_test.go b/pkg/api/security/cert/cert_generator_test.go new file mode 100644 index 0000000000000..888eb28240a84 --- /dev/null +++ b/pkg/api/security/cert/cert_generator_test.go @@ -0,0 +1,71 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package cert + +import ( + "crypto/tls" + "crypto/x509" + "io" + "net/http" + "net/http/httptest" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestCertCommunication(t *testing.T) { + certPEM, keyPEM, err := generateCertKeyPair() + assert.NoError(t, err) + + // Load server certificate + serverCert, err := tls.X509KeyPair(certPEM, keyPEM) + assert.NoError(t, err) + + // Create a certificate pool with the generated certificate + certPool := x509.NewCertPool() + ok := certPool.AppendCertsFromPEM(certPEM) + assert.True(t, ok) + + // Create a TLS config for the server + serverTLSConfig := &tls.Config{ + Certificates: []tls.Certificate{serverCert}, + } + + // Create a TLS config for the client + clientTLSConfig := &tls.Config{ + RootCAs: certPool, + } + + expectedResult := []byte("hello word") + + // Create a HTTPS Server + s := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { + w.Write(expectedResult) + })) + + s.TLS = serverTLSConfig + s.StartTLS() + t.Cleanup(func() { + s.Close() + }) + + // Create a HTTPS Client + client := http.Client{ + Transport: &http.Transport{ + TLSClientConfig: clientTLSConfig, + }, + } + + // Try to communicate together + resp, err := client.Get(s.URL) + require.NoError(t, err) + defer resp.Body.Close() + + body, err := io.ReadAll(resp.Body) + require.NoError(t, err) + require.Equal(t, body, expectedResult) +} diff --git a/pkg/api/security/cert/cert_getter.go b/pkg/api/security/cert/cert_getter.go new file mode 100644 index 0000000000000..09edb10e1cf5e --- /dev/null +++ b/pkg/api/security/cert/cert_getter.go @@ -0,0 +1,128 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package cert provide useful functions to generate certificates +package cert + +import ( + "bytes" + "encoding/pem" + "fmt" + "os" + "path/filepath" + "runtime" + + configModel "github.com/DataDog/datadog-agent/pkg/config/model" + "github.com/DataDog/datadog-agent/pkg/util/filesystem" + "github.com/DataDog/datadog-agent/pkg/util/log" +) + +// defaultCertFileName represent the default IPC certificate root name (without .cert or .key) +const defaultCertFileName = "ipc_cert.pem" + +// GetCertFilepath returns the path to the IPC cert file. +func GetCertFilepath(config configModel.Reader) string { + if configPath := config.GetString("ipc_cert_file_path"); configPath != "" { + return configPath + } + // Since customers who set the "auth_token_file_path" configuration likely prefer to avoid writing it next to the configuration file, + // we should follow this behavior for the cert/key generation as well to minimize the risk of disrupting IPC functionality. + if config.GetString("auth_token_file_path") != "" { + dest := filepath.Join(filepath.Dir(config.GetString("auth_token_file_path")), defaultCertFileName) + log.Warnf("IPC cert/key created or retrieved next to auth_token_file_path location: %v", dest) + return dest + } + return filepath.Join(filepath.Dir(config.ConfigFileUsed()), defaultCertFileName) +} + +// FetchAgentIPCCert return the IPC certificate and key from the path set in the configuration +// Requires that the config has been set up before calling +func FetchAgentIPCCert(config configModel.Reader) ([]byte, []byte, error) { + return fetchAgentIPCCert(config, false) +} + +// CreateOrFetchAgentIPCCert return the IPC certificate and key from the path set in the configuration or create if not present +// Requires that the config has been set up before calling +func CreateOrFetchAgentIPCCert(config configModel.Reader) ([]byte, []byte, error) { + return fetchAgentIPCCert(config, true) +} + +func fetchAgentIPCCert(config configModel.Reader, certCreationAllowed bool) ([]byte, []byte, error) { + certPath := GetCertFilepath(config) + + // Create cert&key if it doesn't exist and if permitted by calling func + if _, e := os.Stat(certPath); os.IsNotExist(e) && certCreationAllowed { + // print the caller to identify what is calling this function + if _, file, line, ok := runtime.Caller(2); ok { + log.Infof("[%s:%d] Creating a new IPC certificate", file, line) + } + + cert, key, err := generateCertKeyPair() + + if err != nil { + return nil, nil, err + } + + // Write the IPC cert/key in the FS (platform-specific) + e = saveIPCCertKey(cert, key, certPath) + if e != nil { + return nil, nil, fmt.Errorf("error writing IPC cert/key file on fs: %s", e) + } + log.Infof("Saved a new IPC certificate/key pair to %s", certPath) + + return cert, key, nil + } + + // Read the IPC certAndKey/key + certAndKey, e := os.ReadFile(certPath) + if e != nil { + return nil, nil, fmt.Errorf("unable to read authentication IPC cert/key files: %s", e.Error()) + } + + // Demultiplexing cert and key from file + var block *pem.Block + + block, rest := pem.Decode(certAndKey) + + if block == nil || block.Type != "CERTIFICATE" { + return nil, nil, log.Error("failed to decode PEM block containing certificate") + } + cert := pem.EncodeToMemory(block) + + block, _ = pem.Decode(rest) + + if block == nil || block.Type != "EC PRIVATE KEY" { + return nil, nil, log.Error("failed to decode PEM block containing key") + } + + key := pem.EncodeToMemory(block) + + return cert, key, nil +} + +// writes IPC cert/key files to a file with the same permissions as datadog.yaml +func saveIPCCertKey(cert, key []byte, dest string) (err error) { + log.Infof("Saving a new IPC certificate/key pair in %s", dest) + + perms, err := filesystem.NewPermission() + if err != nil { + return err + } + + // Concatenating cert and key together + certAndKey := bytes.Join([][]byte{cert, key}, []byte{}) + + if err = os.WriteFile(dest, certAndKey, 0o600); err != nil { + return err + } + + if err := perms.RestrictAccessToUser(dest); err != nil { + log.Errorf("Failed to set IPC cert permissions: %s", err) + return err + } + + log.Infof("Wrote IPC certificate/key pair in %s", dest) + return nil +} diff --git a/pkg/api/security/cert/cert_getter_test.go b/pkg/api/security/cert/cert_getter_test.go new file mode 100644 index 0000000000000..4915d2cb5d8b5 --- /dev/null +++ b/pkg/api/security/cert/cert_getter_test.go @@ -0,0 +1,139 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package cert + +import ( + "crypto/tls" + "crypto/x509" + "os" + "path/filepath" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + configmock "github.com/DataDog/datadog-agent/pkg/config/mock" + "github.com/DataDog/datadog-agent/pkg/config/model" +) + +func initMockConf(t *testing.T) (model.Config, string) { + testDir := t.TempDir() + + f, err := os.CreateTemp(testDir, "fake-datadog-yaml-") + require.NoError(t, err) + t.Cleanup(func() { + f.Close() + }) + + mockConfig := configmock.New(t) + mockConfig.SetConfigFile(f.Name()) + mockConfig.SetWithoutSource("auth_token", "") + + return mockConfig, filepath.Join(testDir, "auth_token") +} + +func TestCreateOrFetchAuthTokenValidGen(t *testing.T) { + config, _ := initMockConf(t) + ipccert, ipckey, err := CreateOrFetchAgentIPCCert(config) + require.NoError(t, err) + + certPool := x509.NewCertPool() + ok := certPool.AppendCertsFromPEM(ipccert) + assert.True(t, ok) + + _, err = tls.X509KeyPair(ipccert, ipckey) + assert.NoError(t, err) +} + +func TestFetchAuthToken(t *testing.T) { + config, _ := initMockConf(t) + + // Trying to fetch before create cert: must fail + _, _, err := FetchAgentIPCCert(config) + require.Error(t, err) + + // Creating a cert + ipcCert, ipcKey, err := CreateOrFetchAgentIPCCert(config) + require.NoError(t, err) + + certPool := x509.NewCertPool() + ok := certPool.AppendCertsFromPEM(ipcCert) + assert.True(t, ok) + + _, err = tls.X509KeyPair(ipcCert, ipcKey) + assert.NoError(t, err) + + // Trying to fetch after creating cert: must succeed + fetchedCert, fetchedKey, err := FetchAgentIPCCert(config) + require.NoError(t, err) + require.Equal(t, string(ipcCert), string(fetchedCert)) + require.Equal(t, string(ipcKey), string(fetchedKey)) +} + +func TestFetchAuthTokenWithAuthTokenFilePath(t *testing.T) { + config, _ := initMockConf(t) + + // Setting custom auth_token filepath + dname, err := os.MkdirTemp("", "auth_token_dir") + require.NoError(t, err) + config.SetWithoutSource("auth_token_file_path", filepath.Join(dname, "auth_token")) + + // Creating a cert + ipcCert, ipcKey, err := CreateOrFetchAgentIPCCert(config) + require.NoError(t, err) + + certPool := x509.NewCertPool() + ok := certPool.AppendCertsFromPEM(ipcCert) + assert.True(t, ok) + + _, err = tls.X509KeyPair(ipcCert, ipcKey) + assert.NoError(t, err) + + // Checking that the cert have been created next to the auth_token_file path + _, err = os.Stat(filepath.Join(dname, defaultCertFileName)) + require.NoError(t, err) + + // Trying to fetch after creating cert: must succeed + fetchedCert, fetchedKey, err := FetchAgentIPCCert(config) + require.NoError(t, err) + require.Equal(t, string(ipcCert), string(fetchedCert)) + require.Equal(t, string(ipcKey), string(fetchedKey)) +} + +func TestFetchAuthTokenWithIPCCertFilePath(t *testing.T) { + config, _ := initMockConf(t) + + // Setting custom auth_token filepath + authTokenDirName, err := os.MkdirTemp("", "auth_token_dir") + require.NoError(t, err) + config.SetWithoutSource("auth_token_file_path", filepath.Join(authTokenDirName, "custom_auth_token")) + + // Setting custom IPC cert filepath + ipcDirName, err := os.MkdirTemp("", "ipc_cert_dir") + require.NoError(t, err) + config.SetWithoutSource("ipc_cert_file_path", filepath.Join(ipcDirName, "custom_ipc_cert")) + + // Creating a cert + ipcCert, ipcKey, err := CreateOrFetchAgentIPCCert(config) + require.NoError(t, err) + + certPool := x509.NewCertPool() + ok := certPool.AppendCertsFromPEM(ipcCert) + assert.True(t, ok) + + _, err = tls.X509KeyPair(ipcCert, ipcKey) + assert.NoError(t, err) + + // Checking that the cert have been created at the custom IPC cert filepath + _, err = os.Stat(filepath.Join(ipcDirName, "custom_ipc_cert")) + require.NoError(t, err) + + // Trying to fetch after creating cert: must succeed + fetchedCert, fetchedKey, err := FetchAgentIPCCert(config) + require.NoError(t, err) + require.Equal(t, string(ipcCert), string(fetchedCert)) + require.Equal(t, string(ipcKey), string(fetchedKey)) +} diff --git a/pkg/api/util/ipc_endpoint_test.go b/pkg/api/util/ipc_endpoint_test.go index 26df3f8ce7205..5f2be0a513062 100644 --- a/pkg/api/util/ipc_endpoint_test.go +++ b/pkg/api/util/ipc_endpoint_test.go @@ -17,96 +17,108 @@ import ( "testing" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "github.com/stretchr/testify/suite" configmock "github.com/DataDog/datadog-agent/pkg/config/mock" pkgconfigmodel "github.com/DataDog/datadog-agent/pkg/config/model" ) -func createConfig(t *testing.T, ts *httptest.Server) pkgconfigmodel.Config { - conf := configmock.New(t) +type IPCEndpointTestSuite struct { + suite.Suite + conf pkgconfigmodel.Config +} + +func TestIPCEndpointTestSuite(t *testing.T) { + // cleaning auth_token and cert globals to be able initialize again the authToken and IPC cert + token = "" + dcaToken = "" + clientTLSConfig = nil + serverTLSConfig = nil + + // creating test suite + testSuite := new(IPCEndpointTestSuite) + + // simulating a normal startup of Agent with auth_token and cert generation + testSuite.conf = configmock.New(t) // create a fake auth token authTokenFile, err := os.CreateTemp("", "") - assert.NoError(t, err) + require.NoError(t, err) authTokenPath := authTokenFile.Name() os.WriteFile(authTokenPath, []byte("0123456789abcdef0123456789abcdef"), 0640) + testSuite.conf.Set("auth_token_file_path", authTokenPath, pkgconfigmodel.SourceAgentRuntime) - addr, err := url.Parse(ts.URL) - assert.NoError(t, err) - localHost, localPort, _ := net.SplitHostPort(addr.Host) - - // set minimal configuration that IPCEndpoint needs - conf.Set("auth_token_file_path", authTokenPath, pkgconfigmodel.SourceAgentRuntime) - conf.Set("cmd_host", localHost, pkgconfigmodel.SourceAgentRuntime) - conf.Set("cmd_port", localPort, pkgconfigmodel.SourceAgentRuntime) + // use the cert in the httptest server + CreateAndSetAuthToken(testSuite.conf) - return conf + suite.Run(t, testSuite) } -func TestNewIPCEndpoint(t *testing.T) { - conf := configmock.New(t) +func (suite *IPCEndpointTestSuite) setTestServerAndConfig(t *testing.T, ts *httptest.Server, isHTTPS bool) { + if isHTTPS { + ts.TLS = GetTLSServerConfig() + ts.StartTLS() + } else { + ts.Start() + } - // create a fake auth token - authTokenFile, err := os.CreateTemp("", "") - assert.NoError(t, err) - authTokenPath := authTokenFile.Name() - os.WriteFile(authTokenPath, []byte("0123456789abcdef0123456789abcdef"), 0640) + // use the httptest server as the CMD_API + addr, err := url.Parse(ts.URL) + require.NoError(t, err) + localHost, localPort, _ := net.SplitHostPort(addr.Host) + suite.conf.Set("cmd_host", localHost, pkgconfigmodel.SourceAgentRuntime) + suite.conf.Set("cmd_port", localPort, pkgconfigmodel.SourceAgentRuntime) +} + +func (suite *IPCEndpointTestSuite) TestNewIPCEndpoint() { + t := suite.T() // set minimal configuration that IPCEndpoint needs - conf.Set("auth_token_file_path", authTokenPath, pkgconfigmodel.SourceAgentRuntime) - conf.Set("cmd_host", "localhost", pkgconfigmodel.SourceAgentRuntime) - conf.Set("cmd_port", "6789", pkgconfigmodel.SourceAgentRuntime) + suite.conf.Set("cmd_host", "localhost", pkgconfigmodel.SourceAgentRuntime) + suite.conf.Set("cmd_port", "6789", pkgconfigmodel.SourceAgentRuntime) // test the endpoint construction - end, err := NewIPCEndpoint(conf, "test/api") + end, err := NewIPCEndpoint(suite.conf, "test/api") assert.NoError(t, err) assert.Equal(t, end.target.String(), "https://localhost:6789/test/api") } -func TestNewIPCEndpointWithCloseConnection(t *testing.T) { - conf := configmock.New(t) - - // create a fake auth token - authTokenFile, err := os.CreateTemp("", "") - assert.NoError(t, err) - authTokenPath := authTokenFile.Name() - os.WriteFile(authTokenPath, []byte("0123456789abcdef0123456789abcdef"), 0640) - - // set minimal configuration that IPCEndpoint needs - conf.Set("auth_token_file_path", authTokenPath, pkgconfigmodel.SourceAgentRuntime) - conf.Set("cmd_host", "localhost", pkgconfigmodel.SourceAgentRuntime) - conf.Set("cmd_port", "6789", pkgconfigmodel.SourceAgentRuntime) +func (suite *IPCEndpointTestSuite) TestNewIPCEndpointWithCloseConnection() { + t := suite.T() // test constructing with the CloseConnection option - end, err := NewIPCEndpoint(conf, "test/api", WithCloseConnection(true)) - assert.NoError(t, err) + end, err := NewIPCEndpoint(suite.conf, "test/api", WithCloseConnection(true)) + require.NoError(t, err) assert.True(t, end.closeConn) } -func TestIPCEndpointDoGet(t *testing.T) { +func (suite *IPCEndpointTestSuite) TestIPCEndpointDoGet() { + t := suite.T() gotURL := "" - ts := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + ts := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { gotURL = r.URL.String() _, _ = io.ReadAll(r.Body) w.Write([]byte("ok")) })) defer ts.Close() - conf := createConfig(t, ts) - end, err := NewIPCEndpoint(conf, "test/api") + suite.setTestServerAndConfig(t, ts, true) + end, err := NewIPCEndpoint(suite.conf, "test/api") assert.NoError(t, err) // test that DoGet will hit the endpoint url res, err := end.DoGet() - assert.NoError(t, err) + require.NoError(t, err) assert.Equal(t, res, []byte("ok")) assert.Equal(t, gotURL, "/test/api") } -func TestIPCEndpointGetWithHTTPClientAndNonTLS(t *testing.T) { +func (suite *IPCEndpointTestSuite) TestIPCEndpointGetWithHTTPClientAndNonTLS() { + t := suite.T() // non-http server gotURL := "" - ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + ts := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { gotURL = r.URL.String() _, _ = io.ReadAll(r.Body) w.Write([]byte("ok")) @@ -114,106 +126,112 @@ func TestIPCEndpointGetWithHTTPClientAndNonTLS(t *testing.T) { defer ts.Close() // create non-TLS client and use the "http" protocol + suite.setTestServerAndConfig(t, ts, false) client := http.Client{} - conf := createConfig(t, ts) - end, err := NewIPCEndpoint(conf, "test/api", WithHTTPClient(&client), WithURLScheme("http")) + end, err := NewIPCEndpoint(suite.conf, "test/api", WithHTTPClient(&client), WithURLScheme("http")) assert.NoError(t, err) // test that DoGet will hit the endpoint url res, err := end.DoGet() - assert.NoError(t, err) + require.NoError(t, err) assert.Equal(t, res, []byte("ok")) assert.Equal(t, gotURL, "/test/api") } -func TestIPCEndpointGetWithValues(t *testing.T) { +func (suite *IPCEndpointTestSuite) TestIPCEndpointGetWithValues() { + t := suite.T() gotURL := "" - ts := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + ts := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { gotURL = r.URL.String() _, _ = io.ReadAll(r.Body) w.Write([]byte("ok")) })) defer ts.Close() - conf := createConfig(t, ts) + suite.setTestServerAndConfig(t, ts, true) // set url values for GET request v := url.Values{} v.Set("verbose", "true") // test construction with option for url.Values - end, err := NewIPCEndpoint(conf, "test/api") + end, err := NewIPCEndpoint(suite.conf, "test/api") assert.NoError(t, err) // test that DoGet will use query parameters from the url.Values res, err := end.DoGet(WithValues(v)) - assert.NoError(t, err) + require.NoError(t, err) assert.Equal(t, res, []byte("ok")) assert.Equal(t, gotURL, "/test/api?verbose=true") } -func TestIPCEndpointGetWithHostAndPort(t *testing.T) { - ts := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { +func (suite *IPCEndpointTestSuite) TestIPCEndpointGetWithHostAndPort() { + t := suite.T() + ts := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { _, _ = io.ReadAll(r.Body) w.Write([]byte("ok")) })) defer ts.Close() - conf := createConfig(t, ts) + suite.setTestServerAndConfig(t, ts, true) // modify the config so that it uses a different setting for the cmd_host - conf.Set("process_config.cmd_host", "127.0.0.1", pkgconfigmodel.SourceAgentRuntime) + suite.conf.Set("process_config.cmd_host", "127.0.0.1", pkgconfigmodel.SourceAgentRuntime) // test construction with alternate values for the host and port - end, err := NewIPCEndpoint(conf, "test/api", WithHostAndPort(conf.GetString("process_config.cmd_host"), conf.GetInt("cmd_port"))) + end, err := NewIPCEndpoint(suite.conf, "test/api", WithHostAndPort(suite.conf.GetString("process_config.cmd_host"), suite.conf.GetInt("cmd_port"))) assert.NoError(t, err) // test that host provided by WithHostAndPort is used for the endpoint res, err := end.DoGet() - assert.NoError(t, err) + require.NoError(t, err) assert.Equal(t, res, []byte("ok")) - assert.Equal(t, end.target.Host, fmt.Sprintf("127.0.0.1:%d", conf.GetInt("cmd_port"))) + assert.Equal(t, end.target.Host, fmt.Sprintf("127.0.0.1:%d", suite.conf.GetInt("cmd_port"))) } -func TestIPCEndpointDeprecatedIPCAddress(t *testing.T) { - ts := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { +func (suite *IPCEndpointTestSuite) TestIPCEndpointDeprecatedIPCAddress() { + t := suite.T() + ts := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { _, _ = io.ReadAll(r.Body) w.Write([]byte("ok")) })) defer ts.Close() - conf := createConfig(t, ts) + suite.setTestServerAndConfig(t, ts, true) // Use the deprecated (but still supported) option "ipc_address" - conf.UnsetForSource("cmd_host", pkgconfigmodel.SourceAgentRuntime) - conf.Set("ipc_address", "127.0.0.1", pkgconfigmodel.SourceAgentRuntime) + suite.conf.UnsetForSource("cmd_host", pkgconfigmodel.SourceAgentRuntime) + suite.conf.Set("ipc_address", "127.0.0.1", pkgconfigmodel.SourceAgentRuntime) + defer suite.conf.UnsetForSource("ipc_address", pkgconfigmodel.SourceAgentRuntime) // test construction, uses ipc_address instead of cmd_host - end, err := NewIPCEndpoint(conf, "test/api") + end, err := NewIPCEndpoint(suite.conf, "test/api") assert.NoError(t, err) // test that host provided by "ipc_address" is used for the endpoint res, err := end.DoGet() - assert.NoError(t, err) + require.NoError(t, err) assert.Equal(t, res, []byte("ok")) - assert.Equal(t, end.target.Host, fmt.Sprintf("127.0.0.1:%d", conf.GetInt("cmd_port"))) + assert.Equal(t, end.target.Host, fmt.Sprintf("127.0.0.1:%d", suite.conf.GetInt("cmd_port"))) } -func TestIPCEndpointErrorText(t *testing.T) { - ts := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { +func (suite *IPCEndpointTestSuite) TestIPCEndpointErrorText() { + t := suite.T() + ts := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(400) w.Write([]byte("bad request")) })) defer ts.Close() - conf := createConfig(t, ts) - end, err := NewIPCEndpoint(conf, "test/api") - assert.NoError(t, err) + suite.setTestServerAndConfig(t, ts, true) + end, err := NewIPCEndpoint(suite.conf, "test/api") + require.NoError(t, err) // test that error is returned by the endpoint _, err = end.DoGet() - assert.Error(t, err) + require.Error(t, err) } -func TestIPCEndpointErrorMap(t *testing.T) { - ts := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { +func (suite *IPCEndpointTestSuite) TestIPCEndpointErrorMap() { + t := suite.T() + ts := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(400) data, _ := json.Marshal(map[string]string{ "error": "something went wrong", @@ -222,12 +240,12 @@ func TestIPCEndpointErrorMap(t *testing.T) { })) defer ts.Close() - conf := createConfig(t, ts) - end, err := NewIPCEndpoint(conf, "test/api") - assert.NoError(t, err) + suite.setTestServerAndConfig(t, ts, true) + end, err := NewIPCEndpoint(suite.conf, "test/api") + require.NoError(t, err) // test that error gets unwrapped from the errmap _, err = end.DoGet() - assert.Error(t, err) + require.Error(t, err) assert.Equal(t, err.Error(), "something went wrong") } diff --git a/pkg/api/util/util.go b/pkg/api/util/util.go index 6aece9c03c648..b22c2e7b04ad0 100644 --- a/pkg/api/util/util.go +++ b/pkg/api/util/util.go @@ -8,52 +8,138 @@ package util import ( "crypto/subtle" + "crypto/tls" + "crypto/x509" "fmt" "net" "net/http" "strings" "sync" - "github.com/DataDog/datadog-agent/pkg/api/security" + pkgtoken "github.com/DataDog/datadog-agent/pkg/api/security" + "github.com/DataDog/datadog-agent/pkg/api/security/cert" "github.com/DataDog/datadog-agent/pkg/config/model" + "github.com/DataDog/datadog-agent/pkg/util/log" +) + +type source int + +const ( + uninitialized source = iota + setAuthToken + createAndSetAuthToken ) var ( tokenLock sync.RWMutex token string dcaToken string + // The clientTLSConfig is set by default with `InsecureSkipVerify: true`. + // This is intentionally done to allow the Agent to local Agent APIs when the clientTLSConfig is not yet initialized. + // However, this default value should be removed in the future. + // TODO: Monitor and fix the logs printed by GetTLSClientConfig and GetTLSServerConfig. + clientTLSConfig = &tls.Config{ + InsecureSkipVerify: true, + } + serverTLSConfig *tls.Config + initSource source ) -// SetAuthToken sets the session token +// SetAuthToken sets the session token and IPC certificate // Requires that the config has been set up before calling func SetAuthToken(config model.Reader) error { tokenLock.Lock() defer tokenLock.Unlock() // Noop if token is already set - if token != "" { + if initSource != uninitialized { return nil } var err error - token, err = security.FetchAuthToken(config) - return err + token, err = pkgtoken.FetchAuthToken(config) + if err != nil { + return err + } + ipccert, ipckey, err := cert.FetchAgentIPCCert(config) + if err != nil { + return err + } + + certPool := x509.NewCertPool() + if ok := certPool.AppendCertsFromPEM(ipccert); !ok { + return fmt.Errorf("unable to use cert for creating CertPool") + } + + clientTLSConfig = &tls.Config{ + RootCAs: certPool, + } + + tlsCert, err := tls.X509KeyPair(ipccert, ipckey) + if err != nil { + return err + } + serverTLSConfig = &tls.Config{ + Certificates: []tls.Certificate{tlsCert}, + } + + initSource = setAuthToken + + return nil } -// CreateAndSetAuthToken creates and sets the authorization token +// CreateAndSetAuthToken creates and sets the authorization token and IPC certificate // Requires that the config has been set up before calling func CreateAndSetAuthToken(config model.Reader) error { tokenLock.Lock() defer tokenLock.Unlock() // Noop if token is already set - if token != "" { + switch initSource { + case setAuthToken: + log.Infof("function CreateAndSetAuthToken was called after SetAuthToken was called") + return nil + case createAndSetAuthToken: return nil } var err error - token, err = security.CreateOrFetchToken(config) - return err + token, err = pkgtoken.CreateOrFetchToken(config) + if err != nil { + return err + } + ipccert, ipckey, err := cert.CreateOrFetchAgentIPCCert(config) + if err != nil { + return err + } + + certPool := x509.NewCertPool() + if ok := certPool.AppendCertsFromPEM(ipccert); !ok { + return fmt.Errorf("Unable to generate certPool from PERM IPC cert") + } + + clientTLSConfig = &tls.Config{ + RootCAs: certPool, + } + + tlsCert, err := tls.X509KeyPair(ipccert, ipckey) + if err != nil { + return fmt.Errorf("Unable to generate x509 cert from PERM IPC cert and key") + } + serverTLSConfig = &tls.Config{ + Certificates: []tls.Certificate{tlsCert}, + } + + initSource = createAndSetAuthToken + + return nil +} + +// IsInitialized return true if the auth_token and IPC cert/key pair have been initialized with SetAuthToken or CreateAndSetAuthToken functions +func IsInitialized() bool { + tokenLock.RLock() + defer tokenLock.Unlock() + return initSource != uninitialized } // GetAuthToken gets the session token @@ -63,6 +149,26 @@ func GetAuthToken() string { return token } +// GetTLSClientConfig gets the certificate and key used for IPC +func GetTLSClientConfig() *tls.Config { + tokenLock.RLock() + defer tokenLock.RUnlock() + if initSource == uninitialized { + log.Errorf("GetTLSClientConfig was called before being initialized (through SetAuthToken or CreateAndSetAuthToken function)") + } + return clientTLSConfig.Clone() +} + +// GetTLSServerConfig gets the certificate and key used for IPC +func GetTLSServerConfig() *tls.Config { + tokenLock.RLock() + defer tokenLock.RUnlock() + if initSource == uninitialized { + log.Errorf("GetTLSServerConfig was called before being initialized (through SetAuthToken or CreateAndSetAuthToken function)") + } + return serverTLSConfig.Clone() +} + // InitDCAAuthToken initialize the session token for the Cluster Agent based on config options // Requires that the config has been set up before calling func InitDCAAuthToken(config model.Reader) error { @@ -75,7 +181,7 @@ func InitDCAAuthToken(config model.Reader) error { } var err error - dcaToken, err = security.CreateOrGetClusterAgentAuthToken(config) + dcaToken, err = pkgtoken.CreateOrGetClusterAgentAuthToken(config) return err } diff --git a/pkg/config/setup/config.go b/pkg/config/setup/config.go index da2fb45d704bb..66942a316486e 100644 --- a/pkg/config/setup/config.go +++ b/pkg/config/setup/config.go @@ -1093,6 +1093,8 @@ func agent(config pkgconfigmodel.Setup) { config.BindEnvAndSetDefault("check_runners", int64(4)) config.BindEnvAndSetDefault("check_cancel_timeout", 500*time.Millisecond) config.BindEnvAndSetDefault("auth_token_file_path", "") + // used to override the path where the IPC cert/key files are stored/retrieved + config.BindEnvAndSetDefault("ipc_cert_file_path", "") config.BindEnv("bind_host") config.BindEnvAndSetDefault("health_port", int64(0)) config.BindEnvAndSetDefault("disable_py3_validation", false) From 5148130538d7b2f32a9f4a050792ab4101ffd5f2 Mon Sep 17 00:00:00 2001 From: Florent Clarret Date: Thu, 12 Dec 2024 09:51:29 +0100 Subject: [PATCH 424/439] Update the name of a step in the create RC PR workflow (#32079) --- .github/workflows/create_rc_pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/create_rc_pr.yml b/.github/workflows/create_rc_pr.yml index 5539dc44532b1..623b6e9dee395 100644 --- a/.github/workflows/create_rc_pr.yml +++ b/.github/workflows/create_rc_pr.yml @@ -59,7 +59,7 @@ jobs: value: ${{fromJSON(needs.find_release_branches.outputs.branches)}} fail-fast: false steps: - - name: Checkout release branch + - name: Checkout the main branch uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 with: persist-credentials: true From c96e64710cdd2f6683e54fe07067b4273291eb98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20Beauz=C3=A9e-Luyssen?= Date: Thu, 12 Dec 2024 09:51:36 +0100 Subject: [PATCH 425/439] omnibus cache: add more env variables to the exclusion list (#32080) --- tasks/libs/common/omnibus.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tasks/libs/common/omnibus.py b/tasks/libs/common/omnibus.py index b60b710ff384b..38208c6a4d1fe 100644 --- a/tasks/libs/common/omnibus.py +++ b/tasks/libs/common/omnibus.py @@ -97,7 +97,7 @@ def env_filter(item): "CHANNEL", "CHART", "CI", - "CLUSTER", + "CLUSTERS", "CODECOV", "CODECOV_TOKEN", "COMPUTERNAME", @@ -115,7 +115,9 @@ def env_filter(item): "GENERAL_ARTIFACTS_CACHE_BUCKET_URL", "GET_SOURCES_ATTEMPTS", "GO_TEST_SKIP_FLAKE", + "GONOSUMDB", "HELM_HOOKS_CI_IMAGE", + "HELM_HOOKS_PERIODICAL_REBUILD_CONDUCTOR_ENV", "HOME", "HOSTNAME", "HOST_IP", @@ -134,9 +136,11 @@ def env_filter(item): "MANPATH", "MESSAGE", "NEW_CLUSTER", + "NEW_CLUSTER_PR_SLACK_WORKFLOW_WEBHOOK", "OLDPWD", "PCP_DIR", "PACKAGE_ARCH", + "PIP_EXTRA_INDEX_URL", "PIP_INDEX_URL", "PROCESS_S3_BUCKET", "PWD", From 5dac3829e767f1280b1b6ebdec0256f0eeb8b2fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9lian=20Raimbault?= <161456554+CelianR@users.noreply.github.com> Date: Thu, 12 Dec 2024 04:42:42 -0500 Subject: [PATCH 426/439] [ADXT-512] Dual shipping disabled by default (#31873) --- .gitlab/common/test_infra_version.yml | 2 +- test/new-e2e/go.mod | 15 +++++----- test/new-e2e/go.sum | 30 +++++++++---------- test/new-e2e/tests/containers/docker_test.go | 12 ++++---- test/new-e2e/tests/containers/eks_test.go | 1 + test/new-e2e/tests/containers/kindvm_test.go | 1 + test/new-e2e/tests/cspm/cspm_test.go | 2 +- test/new-e2e/tests/orchestrator/apply.go | 1 + test/new-e2e/tests/orchestrator/suite_test.go | 1 + .../tests/otel/otel-agent/complete_test.go | 2 +- .../otel-agent/infraattributes_eks_test.go | 4 +-- .../otel/otel-agent/infraattributes_test.go | 2 +- .../tests/otel/otel-agent/minimal_test.go | 2 +- .../receive_resource_spans_v2_test.go | 2 +- .../tests/otel/otel-agent/sampling_test.go | 2 +- ...eration_and_resource_name_logic_v2_test.go | 8 ++--- .../otlp-ingest/pipelines_sampling_test.go | 2 +- .../tests/otel/otlp-ingest/pipelines_test.go | 2 +- .../receive_resource_spans_v2_test.go | 2 +- 19 files changed, 48 insertions(+), 45 deletions(-) diff --git a/.gitlab/common/test_infra_version.yml b/.gitlab/common/test_infra_version.yml index 7844ff82e9ee3..7d435a4bc3a4b 100644 --- a/.gitlab/common/test_infra_version.yml +++ b/.gitlab/common/test_infra_version.yml @@ -4,4 +4,4 @@ variables: # and check the job creating the image to make sure you have the right SHA prefix TEST_INFRA_DEFINITIONS_BUILDIMAGES_SUFFIX: "" # Make sure to update test-infra-definitions version in go.mod as well - TEST_INFRA_DEFINITIONS_BUILDIMAGES: 1f340fd450e3 + TEST_INFRA_DEFINITIONS_BUILDIMAGES: 9c7c5005ca28 diff --git a/test/new-e2e/go.mod b/test/new-e2e/go.mod index f42ee4e61a984..e8dde1fd6d8b6 100644 --- a/test/new-e2e/go.mod +++ b/test/new-e2e/go.mod @@ -58,7 +58,7 @@ require ( // `TEST_INFRA_DEFINITIONS_BUILDIMAGES` matches the commit sha in the module version // Example: github.com/DataDog/test-infra-definitions v0.0.0-YYYYMMDDHHmmSS-0123456789AB // => TEST_INFRA_DEFINITIONS_BUILDIMAGES: 0123456789AB - github.com/DataDog/test-infra-definitions v0.0.0-20241129143439-1f340fd450e3 + github.com/DataDog/test-infra-definitions v0.0.0-20241211124138-9c7c5005ca28 github.com/aws/aws-sdk-go-v2 v1.32.5 github.com/aws/aws-sdk-go-v2/config v1.28.5 github.com/aws/aws-sdk-go-v2/service/ec2 v1.190.0 @@ -74,8 +74,7 @@ require ( github.com/pkg/sftp v1.13.6 github.com/pulumi/pulumi-aws/sdk/v6 v6.56.1 github.com/pulumi/pulumi-awsx/sdk/v2 v2.16.1 - github.com/pulumi/pulumi-eks/sdk/v2 v2.8.1 // indirect - github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.17.1 + github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.18.3 github.com/pulumi/pulumi/sdk/v3 v3.140.0 github.com/samber/lo v1.47.0 github.com/stretchr/testify v1.10.0 @@ -303,13 +302,13 @@ require ( github.com/moby/docker-image-spec v1.3.1 // indirect github.com/onsi/ginkgo/v2 v2.20.2 // indirect github.com/onsi/gomega v1.34.1 // indirect - github.com/pulumi/pulumi-azure-native-sdk/authorization/v2 v2.67.0 // indirect - github.com/pulumi/pulumi-azure-native-sdk/compute/v2 v2.56.0 // indirect - github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2 v2.67.0 // indirect + github.com/pulumi/pulumi-azure-native-sdk/authorization/v2 v2.73.1 // indirect + github.com/pulumi/pulumi-azure-native-sdk/compute/v2 v2.73.1 // indirect + github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2 v2.73.1 // indirect github.com/pulumi/pulumi-azure-native-sdk/managedidentity/v2 v2.73.1 // indirect - github.com/pulumi/pulumi-azure-native-sdk/network/v2 v2.67.0 // indirect + github.com/pulumi/pulumi-azure-native-sdk/network/v2 v2.73.1 // indirect github.com/pulumi/pulumi-azure-native-sdk/v2 v2.73.1 // indirect - github.com/pulumi/pulumi-gcp/sdk/v6 v6.67.1 // indirect + github.com/pulumi/pulumi-eks/sdk/v3 v3.3.0 // indirect github.com/pulumi/pulumi-gcp/sdk/v7 v7.38.0 // indirect github.com/twinj/uuid v0.0.0-20151029044442-89173bcdda19 // indirect github.com/x448/float16 v0.8.4 // indirect diff --git a/test/new-e2e/go.sum b/test/new-e2e/go.sum index 2942cca211484..516b220165409 100644 --- a/test/new-e2e/go.sum +++ b/test/new-e2e/go.sum @@ -17,8 +17,8 @@ github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 h1:EbzDX8HPk5uE2FsJYxD74QmMw0/3CqSKhEr6teh0ncQ= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49/go.mod h1:SvsjzyJlSg0rKsqYgdcFxeEVflx3ZNAyFfkUHP0TxXg= -github.com/DataDog/test-infra-definitions v0.0.0-20241129143439-1f340fd450e3 h1:s+bNaiOoY3W7vCSQVqD4mU3mrtXsbkeRX+vVTwCyStQ= -github.com/DataDog/test-infra-definitions v0.0.0-20241129143439-1f340fd450e3/go.mod h1:7nVt9okOqKKC9B9YfKqk4jitYuv1I3q2Cd/yZWuViZU= +github.com/DataDog/test-infra-definitions v0.0.0-20241211124138-9c7c5005ca28 h1:LaZgAke+RN4wBKNl+R10ewdtKe/C2MJCbp9ozXKlLP8= +github.com/DataDog/test-infra-definitions v0.0.0-20241211124138-9c7c5005ca28/go.mod h1:blPG0VXBgk1oXm2+KHMTMyR0sNI2jv51FACAYPNQvNo= github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f h1:5Vuo4niPKFkfwW55jV4vY0ih3VQ9RaQqeqY67fvRn8A= @@ -405,30 +405,28 @@ github.com/pulumi/pulumi-aws/sdk/v6 v6.56.1 h1:wA38Ep4sEphX+3YGwFfaxRHs7NQv8dNOb github.com/pulumi/pulumi-aws/sdk/v6 v6.56.1/go.mod h1:m/ejZ2INurqq/ncDjJfgC1Ff/lnbt0J/uO33BnPVots= github.com/pulumi/pulumi-awsx/sdk/v2 v2.16.1 h1:6082hB+ILpPB/0V5F+LTmHbX1BO54tCVOQCVOL/FYI4= github.com/pulumi/pulumi-awsx/sdk/v2 v2.16.1/go.mod h1:z2bnBPHNYfk72IW1P01H9qikBtBSBhCwi3QpH6Y/38Q= -github.com/pulumi/pulumi-azure-native-sdk/authorization/v2 v2.67.0 h1:mgmmbFEoc1YOu81K9Bl/MVWE8cGloEdiCeIw394vXcM= -github.com/pulumi/pulumi-azure-native-sdk/authorization/v2 v2.67.0/go.mod h1:WmvulRFoc+dOk/el9y6u7z3CvA+yljL8HJXajmvZTYo= -github.com/pulumi/pulumi-azure-native-sdk/compute/v2 v2.56.0 h1:MFOd6X9FPlixzriy14fBHv7pFCCh/mu1pwHtSSjqfJ4= -github.com/pulumi/pulumi-azure-native-sdk/compute/v2 v2.56.0/go.mod h1:453Ff5wNscroYfq+zxME7Nbt7HdZv+dh0zLZwLyGBws= -github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2 v2.67.0 h1:jvruQQSO1ESk7APFQ3mAge7C9SWKU9nbBHrilcyeSGU= -github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2 v2.67.0/go.mod h1:d5nmekK1mrjM9Xo/JGGVlAs7mqqftBo3DmKji+1zbmw= +github.com/pulumi/pulumi-azure-native-sdk/authorization/v2 v2.73.1 h1:miIJy4njnFYw7VxMLvEztoMPr9zYC2kqBTwRlaFAf48= +github.com/pulumi/pulumi-azure-native-sdk/authorization/v2 v2.73.1/go.mod h1:LR1QBq0C1NIhmD9E0uKozCAu32j5qsamhrIsTSNVMS8= +github.com/pulumi/pulumi-azure-native-sdk/compute/v2 v2.73.1 h1:79HTKSE1uJQolCRUHRFnIbSPNSIhxekIhznHnjpLi6s= +github.com/pulumi/pulumi-azure-native-sdk/compute/v2 v2.73.1/go.mod h1:sN7rQ3n6T/KGaQqMXdoERPjiKzE8L89H6sFj1CSFk/U= +github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2 v2.73.1 h1:8xyjq2nYeBNwqdIf0Su2DHprEMbW0Rs82ZliFNY+14o= +github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2 v2.73.1/go.mod h1:UYRkyT4qRuQ39GPtyxE509zTVwbfunE/32npB0bhr1E= github.com/pulumi/pulumi-azure-native-sdk/managedidentity/v2 v2.73.1 h1:rkNZDAik+qlIhbmFoa09ln/oJMXey5+olw8ShmljgXc= github.com/pulumi/pulumi-azure-native-sdk/managedidentity/v2 v2.73.1/go.mod h1:P/N/xG2lVxsHdspmKjH+d8d4ln+2arXBmOl3zhjWnnw= -github.com/pulumi/pulumi-azure-native-sdk/network/v2 v2.67.0 h1:r26Xl6FdOJnbLs1ny9ekuRjFxAocZK8jS8SLrgXKEFE= -github.com/pulumi/pulumi-azure-native-sdk/network/v2 v2.67.0/go.mod h1:8yXZtmHe2Zet5pb8gZ7D730d0VAm4kYUdwCj7sjhz6g= +github.com/pulumi/pulumi-azure-native-sdk/network/v2 v2.73.1 h1:glI1LKNu/erhOZpHq7/tdwMwerZxHKv6Xaaz4ILvKAs= +github.com/pulumi/pulumi-azure-native-sdk/network/v2 v2.73.1/go.mod h1:Ckfh040vb9BE28NMNQcjYleSYAhaFhz2+E9gFYEDUGc= github.com/pulumi/pulumi-azure-native-sdk/v2 v2.73.1 h1:yzXxwwq3tHdtSOi5vjKmKXq7HyKvDaKulF53MFTMbh8= github.com/pulumi/pulumi-azure-native-sdk/v2 v2.73.1/go.mod h1:ChjIUNDNeN6jI33ZOivHUFqM6purDiLP01mghMGe1Fs= github.com/pulumi/pulumi-command/sdk v1.0.1 h1:ZuBSFT57nxg/fs8yBymUhKLkjJ6qmyN3gNvlY/idiN0= github.com/pulumi/pulumi-command/sdk v1.0.1/go.mod h1:C7sfdFbUIoXKoIASfXUbP/U9xnwPfxvz8dBpFodohlA= github.com/pulumi/pulumi-docker/sdk/v4 v4.5.5 h1:7OjAfgLz5PAy95ynbgPAlWls5WBe4I/QW/61TdPWRlQ= github.com/pulumi/pulumi-docker/sdk/v4 v4.5.5/go.mod h1:XZKLFXbw13olxuztlWnmVUPYZp2a+BqzqhuMl0j/Ow8= -github.com/pulumi/pulumi-eks/sdk/v2 v2.8.1 h1:upeongxe3/2oCO2BHq78qqQbO7SGJz9rnp/KyDmJwqs= -github.com/pulumi/pulumi-eks/sdk/v2 v2.8.1/go.mod h1:ARGNnIZENIpDUVSX21JEQJKrESj/0u0r0iT61rpb86I= -github.com/pulumi/pulumi-gcp/sdk/v6 v6.67.1 h1:PUH/sUbJmBmHjNFNthJ/dW2+riFuJV0FhrGAwuUuRIg= -github.com/pulumi/pulumi-gcp/sdk/v6 v6.67.1/go.mod h1:OmZeji3dNMwB1qldAlaQfcfJPc2BaZyweVGH7Ej4SJg= +github.com/pulumi/pulumi-eks/sdk/v3 v3.3.0 h1:F3xAOBZ/In4PqydTsKeg3tou/c5FZ+JTp5dQO0oMjqE= +github.com/pulumi/pulumi-eks/sdk/v3 v3.3.0/go.mod h1:QbAamxfUpDJC81BGtyEuV0P88RrdbOjQEhbgY+OOPpg= github.com/pulumi/pulumi-gcp/sdk/v7 v7.38.0 h1:21oSj+TKlKTzQcxN9Hik7iSNNHPUQXN4s3itOnahy/w= github.com/pulumi/pulumi-gcp/sdk/v7 v7.38.0/go.mod h1:YaEZms1NgXFqGhObKVofcAeWXu2V+3t/BAXdHQZq7fU= -github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.17.1 h1:VDX+hu+qK3fbf2FodgG5kfh2h1bHK0FKirW1YqKWkRc= -github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.17.1/go.mod h1:e69ohZtUePLLYNLXYgiOWp0FvRGg6ya/3fsq3o00nN0= +github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.18.3 h1:quqoGsLbF7lpGpGU4mi5WfVLIAo4gfvoQeYYmemx1Dg= +github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.18.3/go.mod h1:9dBA6+rtpKmyZB3k1XryUOHDOuNdoTODFKEEZZCtrz8= github.com/pulumi/pulumi-libvirt/sdk v0.4.7 h1:/BBnqqx/Gbg2vINvJxXIVb58THXzw2lSqFqxlRSXH9M= github.com/pulumi/pulumi-libvirt/sdk v0.4.7/go.mod h1:VKvjhAm1sGtzKZruYwIhgascabEx7+oVVRCoxp/cPi4= github.com/pulumi/pulumi-random/sdk/v4 v4.16.7 h1:39rhOe/PTUGMYia8pR5T2wbxxMt2pwrlonf0ncYKSzE= diff --git a/test/new-e2e/tests/containers/docker_test.go b/test/new-e2e/tests/containers/docker_test.go index a7d27f4fa2987..329fd2ca1a68b 100644 --- a/test/new-e2e/tests/containers/docker_test.go +++ b/test/new-e2e/tests/containers/docker_test.go @@ -9,14 +9,16 @@ import ( "context" "encoding/json" "fmt" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/components" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/runner" - "github.com/DataDog/datadog-agent/test/new-e2e/pkg/utils/infra" + "os" + "testing" + "github.com/DataDog/test-infra-definitions/scenarios/aws/ec2" "github.com/pulumi/pulumi/sdk/v3/go/auto" "github.com/stretchr/testify/suite" - "os" - "testing" + + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/components" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/runner" + "github.com/DataDog/datadog-agent/test/new-e2e/pkg/utils/infra" ) type DockerSuite struct { diff --git a/test/new-e2e/tests/containers/eks_test.go b/test/new-e2e/tests/containers/eks_test.go index 6562eff6abb80..02ddc3cf4e1d4 100644 --- a/test/new-e2e/tests/containers/eks_test.go +++ b/test/new-e2e/tests/containers/eks_test.go @@ -44,6 +44,7 @@ func (suite *eksSuite) SetupSuite() { "ddagent:fakeintake": auto.ConfigValue{Value: "true"}, "ddtestworkload:deploy": auto.ConfigValue{Value: "true"}, "dddogstatsd:deploy": auto.ConfigValue{Value: "true"}, + "ddagent:dualshipping": auto.ConfigValue{Value: "true"}, } _, stackOutput, err := infra.GetStackManager().GetStackNoDeleteOnFailure( diff --git a/test/new-e2e/tests/containers/kindvm_test.go b/test/new-e2e/tests/containers/kindvm_test.go index 5282e6fd65e34..84be75e550403 100644 --- a/test/new-e2e/tests/containers/kindvm_test.go +++ b/test/new-e2e/tests/containers/kindvm_test.go @@ -38,6 +38,7 @@ func (suite *kindSuite) SetupSuite() { "ddagent:fakeintake": auto.ConfigValue{Value: "true"}, "ddtestworkload:deploy": auto.ConfigValue{Value: "true"}, "dddogstatsd:deploy": auto.ConfigValue{Value: "true"}, + "ddagent:dualshipping": auto.ConfigValue{Value: "true"}, } _, stackOutput, err := infra.GetStackManager().GetStackNoDeleteOnFailure( diff --git a/test/new-e2e/tests/cspm/cspm_test.go b/test/new-e2e/tests/cspm/cspm_test.go index 2c7a03f8b67b1..6f5d881214691 100644 --- a/test/new-e2e/tests/cspm/cspm_test.go +++ b/test/new-e2e/tests/cspm/cspm_test.go @@ -172,7 +172,7 @@ var expectedFindingsWorkerNode = findings{ var values string func TestCSPM(t *testing.T) { - e2e.Run(t, &cspmTestSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithHelmValues(values), kubernetesagentparams.WithoutDualShipping())))) + e2e.Run(t, &cspmTestSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithHelmValues(values))))) } func (s *cspmTestSuite) TestFindings() { diff --git a/test/new-e2e/tests/orchestrator/apply.go b/test/new-e2e/tests/orchestrator/apply.go index f7300ddc78833..ee4e8668ab40c 100644 --- a/test/new-e2e/tests/orchestrator/apply.go +++ b/test/new-e2e/tests/orchestrator/apply.go @@ -114,6 +114,7 @@ func deployAgent(ctx *pulumi.Context, awsEnv *resAws.Environment, cluster *local if awsEnv.AgentDeploy() { customValues := fmt.Sprintf(agentCustomValuesFmt, clusterName) helmComponent, err := agent.NewHelmInstallation(awsEnv, agent.HelmInstallationArgs{ + DualShipping: true, KubeProvider: kindKubeProvider, Namespace: "datadog", ValuesYAML: pulumi.AssetOrArchiveArray{ diff --git a/test/new-e2e/tests/orchestrator/suite_test.go b/test/new-e2e/tests/orchestrator/suite_test.go index 196acb7611ea5..c159b25a868ab 100644 --- a/test/new-e2e/tests/orchestrator/suite_test.go +++ b/test/new-e2e/tests/orchestrator/suite_test.go @@ -23,6 +23,7 @@ import ( "k8s.io/client-go/tools/clientcmd" agentmodel "github.com/DataDog/agent-payload/v5/process" + "github.com/DataDog/datadog-agent/test/fakeintake/aggregator" fakeintake "github.com/DataDog/datadog-agent/test/fakeintake/client" "github.com/DataDog/datadog-agent/test/new-e2e/pkg/components" diff --git a/test/new-e2e/tests/otel/otel-agent/complete_test.go b/test/new-e2e/tests/otel/otel-agent/complete_test.go index 357a6e754cee6..d3359aae3cb87 100644 --- a/test/new-e2e/tests/otel/otel-agent/complete_test.go +++ b/test/new-e2e/tests/otel/otel-agent/complete_test.go @@ -39,7 +39,7 @@ agents: value: 'false' ` t.Parallel() - e2e.Run(t, &completeTestSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithoutDualShipping(), kubernetesagentparams.WithHelmValues(values), kubernetesagentparams.WithOTelAgent(), kubernetesagentparams.WithOTelConfig(completeConfig))))) + e2e.Run(t, &completeTestSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithHelmValues(values), kubernetesagentparams.WithOTelAgent(), kubernetesagentparams.WithOTelConfig(completeConfig))))) } func (s *completeTestSuite) SetupSuite() { diff --git a/test/new-e2e/tests/otel/otel-agent/infraattributes_eks_test.go b/test/new-e2e/tests/otel/otel-agent/infraattributes_eks_test.go index 4bbfc390a861b..81b57d87917d9 100644 --- a/test/new-e2e/tests/otel/otel-agent/infraattributes_eks_test.go +++ b/test/new-e2e/tests/otel/otel-agent/infraattributes_eks_test.go @@ -32,7 +32,7 @@ datadog: containerCollectUsingFiles: false ` t.Parallel() - e2e.Run(t, &iaEKSTestSuite{}, e2e.WithProvisioner(awskubernetes.EKSProvisioner(awskubernetes.WithEKSOptions(eks.WithLinuxNodeGroup()), awskubernetes.WithAgentOptions(kubernetesagentparams.WithoutDualShipping(), kubernetesagentparams.WithHelmValues(values), kubernetesagentparams.WithOTelAgent(), kubernetesagentparams.WithOTelConfig(iaConfig))))) + e2e.Run(t, &iaEKSTestSuite{}, e2e.WithProvisioner(awskubernetes.EKSProvisioner(awskubernetes.WithEKSOptions(eks.WithLinuxNodeGroup()), awskubernetes.WithAgentOptions(kubernetesagentparams.WithHelmValues(values), kubernetesagentparams.WithOTelAgent(), kubernetesagentparams.WithOTelConfig(iaConfig))))) } var eksParams = utils.IAParams{ @@ -78,7 +78,7 @@ datadog: containerCollectUsingFiles: false ` t.Parallel() - e2e.Run(t, &iaUSTEKSTestSuite{}, e2e.WithProvisioner(awskubernetes.EKSProvisioner(awskubernetes.WithEKSOptions(eks.WithLinuxNodeGroup()), awskubernetes.WithAgentOptions(kubernetesagentparams.WithoutDualShipping(), kubernetesagentparams.WithHelmValues(values), kubernetesagentparams.WithOTelAgent(), kubernetesagentparams.WithOTelConfig(iaConfig))))) + e2e.Run(t, &iaUSTEKSTestSuite{}, e2e.WithProvisioner(awskubernetes.EKSProvisioner(awskubernetes.WithEKSOptions(eks.WithLinuxNodeGroup()), awskubernetes.WithAgentOptions(kubernetesagentparams.WithHelmValues(values), kubernetesagentparams.WithOTelAgent(), kubernetesagentparams.WithOTelConfig(iaConfig))))) } func (s *iaUSTEKSTestSuite) SetupSuite() { diff --git a/test/new-e2e/tests/otel/otel-agent/infraattributes_test.go b/test/new-e2e/tests/otel/otel-agent/infraattributes_test.go index cf330ff1ba7ea..b0706f90e10ba 100644 --- a/test/new-e2e/tests/otel/otel-agent/infraattributes_test.go +++ b/test/new-e2e/tests/otel/otel-agent/infraattributes_test.go @@ -34,7 +34,7 @@ datadog: containerCollectUsingFiles: false ` t.Parallel() - e2e.Run(t, &iaTestSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithoutDualShipping(), kubernetesagentparams.WithHelmValues(values), kubernetesagentparams.WithOTelAgent(), kubernetesagentparams.WithOTelConfig(iaConfig))))) + e2e.Run(t, &iaTestSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithHelmValues(values), kubernetesagentparams.WithOTelAgent(), kubernetesagentparams.WithOTelConfig(iaConfig))))) } var iaParams = utils.IAParams{ diff --git a/test/new-e2e/tests/otel/otel-agent/minimal_test.go b/test/new-e2e/tests/otel/otel-agent/minimal_test.go index 47c0076ffce3a..9377c56fd514f 100644 --- a/test/new-e2e/tests/otel/otel-agent/minimal_test.go +++ b/test/new-e2e/tests/otel/otel-agent/minimal_test.go @@ -43,7 +43,7 @@ datadog: containerCollectUsingFiles: false ` t.Parallel() - e2e.Run(t, &minimalTestSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithoutDualShipping(), kubernetesagentparams.WithHelmValues(values), kubernetesagentparams.WithOTelAgent(), kubernetesagentparams.WithOTelConfig(minimalConfig))))) + e2e.Run(t, &minimalTestSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithHelmValues(values), kubernetesagentparams.WithOTelAgent(), kubernetesagentparams.WithOTelConfig(minimalConfig))))) } var minimalParams = utils.IAParams{ diff --git a/test/new-e2e/tests/otel/otel-agent/receive_resource_spans_v2_test.go b/test/new-e2e/tests/otel/otel-agent/receive_resource_spans_v2_test.go index d551b53b7e82b..aa9e8163e1664 100644 --- a/test/new-e2e/tests/otel/otel-agent/receive_resource_spans_v2_test.go +++ b/test/new-e2e/tests/otel/otel-agent/receive_resource_spans_v2_test.go @@ -36,7 +36,7 @@ agents: value: 'false' ` t.Parallel() - e2e.Run(t, &otelAgentSpanReceiverV2TestSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithoutDualShipping(), kubernetesagentparams.WithHelmValues(values), kubernetesagentparams.WithOTelAgent(), kubernetesagentparams.WithOTelConfig(minimalConfig))))) + e2e.Run(t, &otelAgentSpanReceiverV2TestSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithHelmValues(values), kubernetesagentparams.WithOTelAgent(), kubernetesagentparams.WithOTelConfig(minimalConfig))))) } func (s *otelAgentSpanReceiverV2TestSuite) SetupSuite() { diff --git a/test/new-e2e/tests/otel/otel-agent/sampling_test.go b/test/new-e2e/tests/otel/otel-agent/sampling_test.go index 98133826ee708..99f92bc32cc63 100644 --- a/test/new-e2e/tests/otel/otel-agent/sampling_test.go +++ b/test/new-e2e/tests/otel/otel-agent/sampling_test.go @@ -27,7 +27,7 @@ var samplingConfig string func TestOTelAgentSampling(t *testing.T) { t.Parallel() - e2e.Run(t, &samplingTestSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithoutDualShipping(), kubernetesagentparams.WithOTelAgent(), kubernetesagentparams.WithOTelConfig(samplingConfig))))) + e2e.Run(t, &samplingTestSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithOTelAgent(), kubernetesagentparams.WithOTelConfig(samplingConfig))))) } func (s *samplingTestSuite) TestSampling() { diff --git a/test/new-e2e/tests/otel/otlp-ingest/operation_and_resource_name_logic_v2_test.go b/test/new-e2e/tests/otel/otlp-ingest/operation_and_resource_name_logic_v2_test.go index 8c3ef3508799a..89a30686706be 100644 --- a/test/new-e2e/tests/otel/otlp-ingest/operation_and_resource_name_logic_v2_test.go +++ b/test/new-e2e/tests/otel/otlp-ingest/operation_and_resource_name_logic_v2_test.go @@ -41,7 +41,7 @@ agents: value: 'enable_operation_and_resource_name_logic_v2' ` t.Parallel() - e2e.Run(t, &otlpIngestOpNameV2RecvrV1TestSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithoutDualShipping(), kubernetesagentparams.WithHelmValues(values))))) + e2e.Run(t, &otlpIngestOpNameV2RecvrV1TestSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithHelmValues(values))))) } func (s *otlpIngestOpNameV2RecvrV1TestSuite) SetupSuite() { @@ -78,7 +78,7 @@ agents: value: 'enable_operation_and_resource_name_logic_v2,enable_receive_resource_spans_v2' ` t.Parallel() - e2e.Run(t, &otlpIngestOpNameV2RecvrV2TestSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithoutDualShipping(), kubernetesagentparams.WithHelmValues(values))))) + e2e.Run(t, &otlpIngestOpNameV2RecvrV2TestSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithHelmValues(values))))) } func (s *otlpIngestOpNameV2RecvrV2TestSuite) SetupSuite() { @@ -117,7 +117,7 @@ agents: value: 'true' ` t.Parallel() - e2e.Run(t, &otlpIngestOpNameV2SpanAsResNameTestSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithoutDualShipping(), kubernetesagentparams.WithHelmValues(values))))) + e2e.Run(t, &otlpIngestOpNameV2SpanAsResNameTestSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithHelmValues(values))))) } func (s *otlpIngestOpNameV2SpanAsResNameTestSuite) SetupSuite() { @@ -157,7 +157,7 @@ agents: ` t.Parallel() ts := &otlpIngestOpNameV2RemappingTestSuite{} - e2e.Run(t, ts, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithoutDualShipping(), kubernetesagentparams.WithHelmValues(values))))) + e2e.Run(t, ts, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithHelmValues(values))))) } func (s *otlpIngestOpNameV2RemappingTestSuite) SetupSuite() { diff --git a/test/new-e2e/tests/otel/otlp-ingest/pipelines_sampling_test.go b/test/new-e2e/tests/otel/otlp-ingest/pipelines_sampling_test.go index 0db1211c09749..62b882e4def47 100644 --- a/test/new-e2e/tests/otel/otlp-ingest/pipelines_sampling_test.go +++ b/test/new-e2e/tests/otel/otlp-ingest/pipelines_sampling_test.go @@ -46,7 +46,7 @@ agents: value: '50' ` t.Parallel() - e2e.Run(t, &otlpIngestSamplingTestSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithoutDualShipping(), kubernetesagentparams.WithHelmValues(values))))) + e2e.Run(t, &otlpIngestSamplingTestSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithHelmValues(values))))) } func (s *otlpIngestSamplingTestSuite) TestSampling() { diff --git a/test/new-e2e/tests/otel/otlp-ingest/pipelines_test.go b/test/new-e2e/tests/otel/otlp-ingest/pipelines_test.go index b91361b7e9866..eb1e879491051 100644 --- a/test/new-e2e/tests/otel/otlp-ingest/pipelines_test.go +++ b/test/new-e2e/tests/otel/otlp-ingest/pipelines_test.go @@ -43,7 +43,7 @@ agents: value: 'true' ` t.Parallel() - e2e.Run(t, &otlpIngestTestSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithoutDualShipping(), kubernetesagentparams.WithHelmValues(values))))) + e2e.Run(t, &otlpIngestTestSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithHelmValues(values))))) } var otlpIngestParams = utils.IAParams{ diff --git a/test/new-e2e/tests/otel/otlp-ingest/receive_resource_spans_v2_test.go b/test/new-e2e/tests/otel/otlp-ingest/receive_resource_spans_v2_test.go index dbe8642df94fd..5f83e4dba06cf 100644 --- a/test/new-e2e/tests/otel/otlp-ingest/receive_resource_spans_v2_test.go +++ b/test/new-e2e/tests/otel/otlp-ingest/receive_resource_spans_v2_test.go @@ -41,7 +41,7 @@ agents: value: 'enable_receive_resource_spans_v2' ` t.Parallel() - e2e.Run(t, &otlpIngestSpanReceiverV2TestSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithoutDualShipping(), kubernetesagentparams.WithHelmValues(values))))) + e2e.Run(t, &otlpIngestSpanReceiverV2TestSuite{}, e2e.WithProvisioner(awskubernetes.KindProvisioner(awskubernetes.WithAgentOptions(kubernetesagentparams.WithHelmValues(values))))) } func (s *otlpIngestSpanReceiverV2TestSuite) SetupSuite() { From 22edfebf2aa1cc44aceff9da5b46f2fb185a5a53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9lian=20Raimbault?= <161456554+CelianR@users.noreply.github.com> Date: Thu, 12 Dec 2024 04:50:41 -0500 Subject: [PATCH 427/439] Print worktree log to stderr (#32082) --- tasks/libs/common/worktree.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tasks/libs/common/worktree.py b/tasks/libs/common/worktree.py index 74dd5e04e4877..e8c9d740f07bc 100644 --- a/tasks/libs/common/worktree.py +++ b/tasks/libs/common/worktree.py @@ -5,6 +5,7 @@ """ import os +import sys from contextlib import contextmanager from pathlib import Path @@ -27,7 +28,7 @@ def init_env(ctx, branch: str | None = None): """ if not WORKTREE_DIRECTORY.is_dir(): - print(f'{color_message("Info", Color.BLUE)}: Cloning datadog agent into {WORKTREE_DIRECTORY}') + print(f'{color_message("Info", Color.BLUE)}: Cloning datadog agent into {WORKTREE_DIRECTORY}', file=sys.stderr) remote = ctx.run("git remote get-url origin", hide=True).stdout.strip() # Try to use this option to reduce cloning time if all( From 408926fdc126e1ade9040d16f7ab216ea98fd84e Mon Sep 17 00:00:00 2001 From: Raphael Gavache Date: Thu, 12 Dec 2024 11:31:48 +0100 Subject: [PATCH 428/439] [fleet] fix driver var check (#32075) --- pkg/fleet/installer/setup/djm/databricks.go | 2 +- test/new-e2e/tests/installer/script/databricks_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/fleet/installer/setup/djm/databricks.go b/pkg/fleet/installer/setup/djm/databricks.go index 0e6675b3aa2ae..21db9b4b7a934 100644 --- a/pkg/fleet/installer/setup/djm/databricks.go +++ b/pkg/fleet/installer/setup/djm/databricks.go @@ -60,7 +60,7 @@ func (ds *databricksSetup) setup() error { span, _ := tracer.SpanFromContext(ds.ctx) switch os.Getenv("DB_IS_DRIVER") { - case "true": + case "TRUE": span.SetTag("spark_node", "driver") return ds.setupDatabricksDriver() default: diff --git a/test/new-e2e/tests/installer/script/databricks_test.go b/test/new-e2e/tests/installer/script/databricks_test.go index 5ec2ad8b6001e..7195da6805295 100644 --- a/test/new-e2e/tests/installer/script/databricks_test.go +++ b/test/new-e2e/tests/installer/script/databricks_test.go @@ -34,7 +34,7 @@ func (s *installScriptDatabricksSuite) TestDatabricksWorkerInstallScript() { } func (s *installScriptDatabricksSuite) TestDatabricksDriverInstallScript() { - s.RunInstallScript(s.url, "DB_IS_DRIVER=true") + s.RunInstallScript(s.url, "DB_IS_DRIVER=TRUE") state := s.host.State() state.AssertDirExists("/opt/datadog-packages/datadog-agent/7.57.2-1", 0755, "dd-agent", "dd-agent") state.AssertSymlinkExists("/opt/datadog-packages/datadog-agent/stable", "/opt/datadog-packages/datadog-agent/7.57.2-1", "root", "root") From 28b37370144d20d72d7748e6207291ba962daccf Mon Sep 17 00:00:00 2001 From: Florent Clarret Date: Thu, 12 Dec 2024 12:37:13 +0100 Subject: [PATCH 429/439] Revert "[ASCII-2582] Add certificate generation and retrieval for IPC communications" (#32089) --- comp/api/authtoken/component.go | 7 +- .../authtoken/createandfetchimpl/authtoken.go | 12 -- .../createandfetchimpl/authtoken_test.go | 6 +- comp/api/authtoken/fetchonlyimpl/authtoken.go | 43 +---- .../authtoken/fetchonlyimpl/authtoken_test.go | 14 +- comp/api/authtoken/fetchonlyimpl/mock.go | 17 +- pkg/api/security/cert/cert_generator.go | 75 -------- pkg/api/security/cert/cert_generator_test.go | 71 ------- pkg/api/security/cert/cert_getter.go | 128 ------------- pkg/api/security/cert/cert_getter_test.go | 139 -------------- pkg/api/util/ipc_endpoint_test.go | 178 ++++++++---------- pkg/api/util/util.go | 126 +------------ pkg/config/setup/config.go | 2 - 13 files changed, 102 insertions(+), 716 deletions(-) delete mode 100644 pkg/api/security/cert/cert_generator.go delete mode 100644 pkg/api/security/cert/cert_generator_test.go delete mode 100644 pkg/api/security/cert/cert_getter.go delete mode 100644 pkg/api/security/cert/cert_getter_test.go diff --git a/comp/api/authtoken/component.go b/comp/api/authtoken/component.go index fbe0ef3558028..2aae4096f392d 100644 --- a/comp/api/authtoken/component.go +++ b/comp/api/authtoken/component.go @@ -9,12 +9,9 @@ package authtoken import ( - "crypto/tls" - - "go.uber.org/fx" - "github.com/DataDog/datadog-agent/pkg/util/fxutil" "github.com/DataDog/datadog-agent/pkg/util/optional" + "go.uber.org/fx" ) // team: agent-shared-components @@ -22,8 +19,6 @@ import ( // Component is the component type. type Component interface { Get() string - GetTLSClientConfig() *tls.Config - GetTLSServerConfig() *tls.Config } // NoneModule return a None optional type for authtoken.Component. diff --git a/comp/api/authtoken/createandfetchimpl/authtoken.go b/comp/api/authtoken/createandfetchimpl/authtoken.go index 8f5408083f49f..9afffdeff362d 100644 --- a/comp/api/authtoken/createandfetchimpl/authtoken.go +++ b/comp/api/authtoken/createandfetchimpl/authtoken.go @@ -8,8 +8,6 @@ package createandfetchimpl import ( - "crypto/tls" - "go.uber.org/fx" "github.com/DataDog/datadog-agent/comp/api/authtoken" @@ -51,13 +49,3 @@ func newAuthToken(deps dependencies) (authtoken.Component, error) { func (at *authToken) Get() string { return util.GetAuthToken() } - -// GetTLSServerConfig return a TLS configuration with the IPC certificate for http.Server -func (at *authToken) GetTLSClientConfig() *tls.Config { - return util.GetTLSClientConfig() -} - -// GetTLSServerConfig return a TLS configuration with the IPC certificate for http.Client -func (at *authToken) GetTLSServerConfig() *tls.Config { - return util.GetTLSServerConfig() -} diff --git a/comp/api/authtoken/createandfetchimpl/authtoken_test.go b/comp/api/authtoken/createandfetchimpl/authtoken_test.go index 51f2db29e1142..1eb9e11f6ba81 100644 --- a/comp/api/authtoken/createandfetchimpl/authtoken_test.go +++ b/comp/api/authtoken/createandfetchimpl/authtoken_test.go @@ -10,6 +10,8 @@ import ( "path/filepath" "testing" + "github.com/DataDog/datadog-agent/pkg/api/util" + "github.com/DataDog/datadog-agent/pkg/util/fxutil" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "go.uber.org/fx" @@ -17,17 +19,13 @@ import ( "github.com/DataDog/datadog-agent/comp/core/config" log "github.com/DataDog/datadog-agent/comp/core/log/def" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" - "github.com/DataDog/datadog-agent/pkg/api/util" - "github.com/DataDog/datadog-agent/pkg/util/fxutil" ) func TestGet(t *testing.T) { dir := t.TempDir() authPath := filepath.Join(dir, "auth_token") - ipcPath := filepath.Join(dir, "ipc_cert") overrides := map[string]any{ "auth_token_file_path": authPath, - "ipc_cert_file_path": ipcPath, } comp, err := newAuthToken( diff --git a/comp/api/authtoken/fetchonlyimpl/authtoken.go b/comp/api/authtoken/fetchonlyimpl/authtoken.go index f353bc3706c3d..ac07402b8c960 100644 --- a/comp/api/authtoken/fetchonlyimpl/authtoken.go +++ b/comp/api/authtoken/fetchonlyimpl/authtoken.go @@ -8,9 +8,6 @@ package fetchonlyimpl import ( - "crypto/tls" - "fmt" - "go.uber.org/fx" "github.com/DataDog/datadog-agent/comp/api/authtoken" @@ -29,8 +26,9 @@ func Module() fxutil.Module { } type authToken struct { - log log.Component - conf config.Component + log log.Component + conf config.Component + tokenLoaded bool } @@ -50,44 +48,17 @@ func newAuthToken(deps dependencies) authtoken.Component { } } -func (at *authToken) setToken() error { +// Get returns the session token +func (at *authToken) Get() string { if !at.tokenLoaded { // We try to load the auth_token until we succeed since it might be created at some point by another // process. if err := util.SetAuthToken(at.conf); err != nil { - return fmt.Errorf("could not load auth_token: %s", err) + at.log.Debugf("could not load auth_token: %s", err) + return "" } at.tokenLoaded = true } - return nil -} - -// Get returns the session token -func (at *authToken) Get() string { - if err := at.setToken(); err != nil { - at.log.Debugf("%s", err.Error()) - return "" - } return util.GetAuthToken() } - -// GetTLSClientConfig return a TLS configuration with the IPC certificate for http.Client -func (at *authToken) GetTLSClientConfig() *tls.Config { - if err := at.setToken(); err != nil { - at.log.Debugf("%s", err.Error()) - return nil - } - - return util.GetTLSClientConfig() -} - -// GetTLSServerConfig return a TLS configuration with the IPC certificate for http.Server -func (at *authToken) GetTLSServerConfig() *tls.Config { - if err := at.setToken(); err != nil { - at.log.Debugf("%s", err.Error()) - return nil - } - - return util.GetTLSServerConfig() -} diff --git a/comp/api/authtoken/fetchonlyimpl/authtoken_test.go b/comp/api/authtoken/fetchonlyimpl/authtoken_test.go index 4073ee0db7779..4492ab4ff4105 100644 --- a/comp/api/authtoken/fetchonlyimpl/authtoken_test.go +++ b/comp/api/authtoken/fetchonlyimpl/authtoken_test.go @@ -10,13 +10,11 @@ import ( "path/filepath" "testing" + "github.com/DataDog/datadog-agent/pkg/util/fxutil" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "go.uber.org/fx" - "github.com/DataDog/datadog-agent/pkg/api/security/cert" - "github.com/DataDog/datadog-agent/pkg/util/fxutil" - "github.com/DataDog/datadog-agent/comp/core/config" log "github.com/DataDog/datadog-agent/comp/core/log/def" logmock "github.com/DataDog/datadog-agent/comp/core/log/mock" @@ -25,7 +23,6 @@ import ( func TestGet(t *testing.T) { dir := t.TempDir() authPath := filepath.Join(dir, "auth_token") - var cfg config.Component overrides := map[string]any{ "auth_token_file_path": authPath, } @@ -35,7 +32,6 @@ func TestGet(t *testing.T) { t, fx.Provide(func() log.Component { return logmock.New(t) }), config.MockModule(), - fx.Populate(&cfg), fx.Replace(config.MockParams{Overrides: overrides}), ), ).(*authToken) @@ -46,14 +42,6 @@ func TestGet(t *testing.T) { err := os.WriteFile(authPath, []byte("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"), 0777) require.NoError(t, err) - // Should be empty because the cert/key weren't generated yet - assert.Empty(t, comp.Get()) - assert.False(t, comp.tokenLoaded) - - // generating IPC cert/key files - _, _, err = cert.CreateOrFetchAgentIPCCert(cfg) - require.NoError(t, err) - assert.Equal(t, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", comp.Get()) assert.True(t, comp.tokenLoaded) diff --git a/comp/api/authtoken/fetchonlyimpl/mock.go b/comp/api/authtoken/fetchonlyimpl/mock.go index 3fa24b25731aa..2dea209906a3c 100644 --- a/comp/api/authtoken/fetchonlyimpl/mock.go +++ b/comp/api/authtoken/fetchonlyimpl/mock.go @@ -8,12 +8,9 @@ package fetchonlyimpl import ( - "crypto/tls" - - "go.uber.org/fx" - authtokeninterface "github.com/DataDog/datadog-agent/comp/api/authtoken" "github.com/DataDog/datadog-agent/pkg/util/fxutil" + "go.uber.org/fx" ) // MockModule defines the fx options for the mock component. @@ -31,18 +28,6 @@ func (fc *MockFetchOnly) Get() string { return "a string" } -// GetTLSClientConfig is a mock of the fetchonly GetTLSClientConfig function -func (fc *MockFetchOnly) GetTLSClientConfig() *tls.Config { - return &tls.Config{ - InsecureSkipVerify: true, - } -} - -// GetTLSServerConfig is a mock of the fetchonly GetTLSServerConfig function -func (fc *MockFetchOnly) GetTLSServerConfig() *tls.Config { - return &tls.Config{} -} - // NewMock returns a new fetch only authtoken mock func newMock() authtokeninterface.Component { return &MockFetchOnly{} diff --git a/pkg/api/security/cert/cert_generator.go b/pkg/api/security/cert/cert_generator.go deleted file mode 100644 index 46b9c1076c611..0000000000000 --- a/pkg/api/security/cert/cert_generator.go +++ /dev/null @@ -1,75 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -// Package cert provide useful functions to generate certificates -package cert - -import ( - "crypto/ecdsa" - "crypto/elliptic" - "crypto/rand" - "crypto/x509" - "crypto/x509/pkix" - "encoding/pem" - "fmt" - "math/big" - "net" - "time" -) - -func certTemplate() (*x509.Certificate, error) { - serialNumberLimit := new(big.Int).Lsh(big.NewInt(1), 128) - serialNumber, err := rand.Int(rand.Reader, serialNumberLimit) - if err != nil { - return nil, fmt.Errorf("failed to generate serial number: %s", err) - } - - notBefore := time.Now() - // 50 years duration - notAfter := notBefore.Add(50 * 365 * 24 * time.Hour) - template := x509.Certificate{ - SerialNumber: serialNumber, - Subject: pkix.Name{ - Organization: []string{"Datadog, Inc."}, - }, - NotBefore: notBefore, - NotAfter: notAfter, - BasicConstraintsValid: true, - KeyUsage: x509.KeyUsageCertSign | x509.KeyUsageDigitalSignature | x509.KeyUsageCRLSign, - ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth, x509.ExtKeyUsageClientAuth}, - IsCA: true, - IPAddresses: []net.IP{net.ParseIP("127.0.0.1"), net.ParseIP("::1")}, - DNSNames: []string{"localhost"}, - } - - return &template, nil -} - -func generateCertKeyPair() ([]byte, []byte, error) { - rootCertTmpl, err := certTemplate() - if err != nil { - return nil, nil, err - } - - rootKey, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader) - if err != nil { - return nil, nil, fmt.Errorf("Unable to generate IPC private key: %v", err) - } - - certDER, err := x509.CreateCertificate(rand.Reader, rootCertTmpl, rootCertTmpl, &rootKey.PublicKey, rootKey) - if err != nil { - return nil, nil, err - } - - certPEM := pem.EncodeToMemory(&pem.Block{Type: "CERTIFICATE", Bytes: certDER}) - rawKey, err := x509.MarshalECPrivateKey(rootKey) - if err != nil { - return nil, nil, fmt.Errorf("Unable to marshall private key: %v", err) - } - - keyPEM := pem.EncodeToMemory(&pem.Block{Type: "EC PRIVATE KEY", Bytes: rawKey}) - - return certPEM, keyPEM, nil -} diff --git a/pkg/api/security/cert/cert_generator_test.go b/pkg/api/security/cert/cert_generator_test.go deleted file mode 100644 index 888eb28240a84..0000000000000 --- a/pkg/api/security/cert/cert_generator_test.go +++ /dev/null @@ -1,71 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -package cert - -import ( - "crypto/tls" - "crypto/x509" - "io" - "net/http" - "net/http/httptest" - "testing" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestCertCommunication(t *testing.T) { - certPEM, keyPEM, err := generateCertKeyPair() - assert.NoError(t, err) - - // Load server certificate - serverCert, err := tls.X509KeyPair(certPEM, keyPEM) - assert.NoError(t, err) - - // Create a certificate pool with the generated certificate - certPool := x509.NewCertPool() - ok := certPool.AppendCertsFromPEM(certPEM) - assert.True(t, ok) - - // Create a TLS config for the server - serverTLSConfig := &tls.Config{ - Certificates: []tls.Certificate{serverCert}, - } - - // Create a TLS config for the client - clientTLSConfig := &tls.Config{ - RootCAs: certPool, - } - - expectedResult := []byte("hello word") - - // Create a HTTPS Server - s := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { - w.Write(expectedResult) - })) - - s.TLS = serverTLSConfig - s.StartTLS() - t.Cleanup(func() { - s.Close() - }) - - // Create a HTTPS Client - client := http.Client{ - Transport: &http.Transport{ - TLSClientConfig: clientTLSConfig, - }, - } - - // Try to communicate together - resp, err := client.Get(s.URL) - require.NoError(t, err) - defer resp.Body.Close() - - body, err := io.ReadAll(resp.Body) - require.NoError(t, err) - require.Equal(t, body, expectedResult) -} diff --git a/pkg/api/security/cert/cert_getter.go b/pkg/api/security/cert/cert_getter.go deleted file mode 100644 index 09edb10e1cf5e..0000000000000 --- a/pkg/api/security/cert/cert_getter.go +++ /dev/null @@ -1,128 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -// Package cert provide useful functions to generate certificates -package cert - -import ( - "bytes" - "encoding/pem" - "fmt" - "os" - "path/filepath" - "runtime" - - configModel "github.com/DataDog/datadog-agent/pkg/config/model" - "github.com/DataDog/datadog-agent/pkg/util/filesystem" - "github.com/DataDog/datadog-agent/pkg/util/log" -) - -// defaultCertFileName represent the default IPC certificate root name (without .cert or .key) -const defaultCertFileName = "ipc_cert.pem" - -// GetCertFilepath returns the path to the IPC cert file. -func GetCertFilepath(config configModel.Reader) string { - if configPath := config.GetString("ipc_cert_file_path"); configPath != "" { - return configPath - } - // Since customers who set the "auth_token_file_path" configuration likely prefer to avoid writing it next to the configuration file, - // we should follow this behavior for the cert/key generation as well to minimize the risk of disrupting IPC functionality. - if config.GetString("auth_token_file_path") != "" { - dest := filepath.Join(filepath.Dir(config.GetString("auth_token_file_path")), defaultCertFileName) - log.Warnf("IPC cert/key created or retrieved next to auth_token_file_path location: %v", dest) - return dest - } - return filepath.Join(filepath.Dir(config.ConfigFileUsed()), defaultCertFileName) -} - -// FetchAgentIPCCert return the IPC certificate and key from the path set in the configuration -// Requires that the config has been set up before calling -func FetchAgentIPCCert(config configModel.Reader) ([]byte, []byte, error) { - return fetchAgentIPCCert(config, false) -} - -// CreateOrFetchAgentIPCCert return the IPC certificate and key from the path set in the configuration or create if not present -// Requires that the config has been set up before calling -func CreateOrFetchAgentIPCCert(config configModel.Reader) ([]byte, []byte, error) { - return fetchAgentIPCCert(config, true) -} - -func fetchAgentIPCCert(config configModel.Reader, certCreationAllowed bool) ([]byte, []byte, error) { - certPath := GetCertFilepath(config) - - // Create cert&key if it doesn't exist and if permitted by calling func - if _, e := os.Stat(certPath); os.IsNotExist(e) && certCreationAllowed { - // print the caller to identify what is calling this function - if _, file, line, ok := runtime.Caller(2); ok { - log.Infof("[%s:%d] Creating a new IPC certificate", file, line) - } - - cert, key, err := generateCertKeyPair() - - if err != nil { - return nil, nil, err - } - - // Write the IPC cert/key in the FS (platform-specific) - e = saveIPCCertKey(cert, key, certPath) - if e != nil { - return nil, nil, fmt.Errorf("error writing IPC cert/key file on fs: %s", e) - } - log.Infof("Saved a new IPC certificate/key pair to %s", certPath) - - return cert, key, nil - } - - // Read the IPC certAndKey/key - certAndKey, e := os.ReadFile(certPath) - if e != nil { - return nil, nil, fmt.Errorf("unable to read authentication IPC cert/key files: %s", e.Error()) - } - - // Demultiplexing cert and key from file - var block *pem.Block - - block, rest := pem.Decode(certAndKey) - - if block == nil || block.Type != "CERTIFICATE" { - return nil, nil, log.Error("failed to decode PEM block containing certificate") - } - cert := pem.EncodeToMemory(block) - - block, _ = pem.Decode(rest) - - if block == nil || block.Type != "EC PRIVATE KEY" { - return nil, nil, log.Error("failed to decode PEM block containing key") - } - - key := pem.EncodeToMemory(block) - - return cert, key, nil -} - -// writes IPC cert/key files to a file with the same permissions as datadog.yaml -func saveIPCCertKey(cert, key []byte, dest string) (err error) { - log.Infof("Saving a new IPC certificate/key pair in %s", dest) - - perms, err := filesystem.NewPermission() - if err != nil { - return err - } - - // Concatenating cert and key together - certAndKey := bytes.Join([][]byte{cert, key}, []byte{}) - - if err = os.WriteFile(dest, certAndKey, 0o600); err != nil { - return err - } - - if err := perms.RestrictAccessToUser(dest); err != nil { - log.Errorf("Failed to set IPC cert permissions: %s", err) - return err - } - - log.Infof("Wrote IPC certificate/key pair in %s", dest) - return nil -} diff --git a/pkg/api/security/cert/cert_getter_test.go b/pkg/api/security/cert/cert_getter_test.go deleted file mode 100644 index 4915d2cb5d8b5..0000000000000 --- a/pkg/api/security/cert/cert_getter_test.go +++ /dev/null @@ -1,139 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -package cert - -import ( - "crypto/tls" - "crypto/x509" - "os" - "path/filepath" - "testing" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - - configmock "github.com/DataDog/datadog-agent/pkg/config/mock" - "github.com/DataDog/datadog-agent/pkg/config/model" -) - -func initMockConf(t *testing.T) (model.Config, string) { - testDir := t.TempDir() - - f, err := os.CreateTemp(testDir, "fake-datadog-yaml-") - require.NoError(t, err) - t.Cleanup(func() { - f.Close() - }) - - mockConfig := configmock.New(t) - mockConfig.SetConfigFile(f.Name()) - mockConfig.SetWithoutSource("auth_token", "") - - return mockConfig, filepath.Join(testDir, "auth_token") -} - -func TestCreateOrFetchAuthTokenValidGen(t *testing.T) { - config, _ := initMockConf(t) - ipccert, ipckey, err := CreateOrFetchAgentIPCCert(config) - require.NoError(t, err) - - certPool := x509.NewCertPool() - ok := certPool.AppendCertsFromPEM(ipccert) - assert.True(t, ok) - - _, err = tls.X509KeyPair(ipccert, ipckey) - assert.NoError(t, err) -} - -func TestFetchAuthToken(t *testing.T) { - config, _ := initMockConf(t) - - // Trying to fetch before create cert: must fail - _, _, err := FetchAgentIPCCert(config) - require.Error(t, err) - - // Creating a cert - ipcCert, ipcKey, err := CreateOrFetchAgentIPCCert(config) - require.NoError(t, err) - - certPool := x509.NewCertPool() - ok := certPool.AppendCertsFromPEM(ipcCert) - assert.True(t, ok) - - _, err = tls.X509KeyPair(ipcCert, ipcKey) - assert.NoError(t, err) - - // Trying to fetch after creating cert: must succeed - fetchedCert, fetchedKey, err := FetchAgentIPCCert(config) - require.NoError(t, err) - require.Equal(t, string(ipcCert), string(fetchedCert)) - require.Equal(t, string(ipcKey), string(fetchedKey)) -} - -func TestFetchAuthTokenWithAuthTokenFilePath(t *testing.T) { - config, _ := initMockConf(t) - - // Setting custom auth_token filepath - dname, err := os.MkdirTemp("", "auth_token_dir") - require.NoError(t, err) - config.SetWithoutSource("auth_token_file_path", filepath.Join(dname, "auth_token")) - - // Creating a cert - ipcCert, ipcKey, err := CreateOrFetchAgentIPCCert(config) - require.NoError(t, err) - - certPool := x509.NewCertPool() - ok := certPool.AppendCertsFromPEM(ipcCert) - assert.True(t, ok) - - _, err = tls.X509KeyPair(ipcCert, ipcKey) - assert.NoError(t, err) - - // Checking that the cert have been created next to the auth_token_file path - _, err = os.Stat(filepath.Join(dname, defaultCertFileName)) - require.NoError(t, err) - - // Trying to fetch after creating cert: must succeed - fetchedCert, fetchedKey, err := FetchAgentIPCCert(config) - require.NoError(t, err) - require.Equal(t, string(ipcCert), string(fetchedCert)) - require.Equal(t, string(ipcKey), string(fetchedKey)) -} - -func TestFetchAuthTokenWithIPCCertFilePath(t *testing.T) { - config, _ := initMockConf(t) - - // Setting custom auth_token filepath - authTokenDirName, err := os.MkdirTemp("", "auth_token_dir") - require.NoError(t, err) - config.SetWithoutSource("auth_token_file_path", filepath.Join(authTokenDirName, "custom_auth_token")) - - // Setting custom IPC cert filepath - ipcDirName, err := os.MkdirTemp("", "ipc_cert_dir") - require.NoError(t, err) - config.SetWithoutSource("ipc_cert_file_path", filepath.Join(ipcDirName, "custom_ipc_cert")) - - // Creating a cert - ipcCert, ipcKey, err := CreateOrFetchAgentIPCCert(config) - require.NoError(t, err) - - certPool := x509.NewCertPool() - ok := certPool.AppendCertsFromPEM(ipcCert) - assert.True(t, ok) - - _, err = tls.X509KeyPair(ipcCert, ipcKey) - assert.NoError(t, err) - - // Checking that the cert have been created at the custom IPC cert filepath - _, err = os.Stat(filepath.Join(ipcDirName, "custom_ipc_cert")) - require.NoError(t, err) - - // Trying to fetch after creating cert: must succeed - fetchedCert, fetchedKey, err := FetchAgentIPCCert(config) - require.NoError(t, err) - require.Equal(t, string(ipcCert), string(fetchedCert)) - require.Equal(t, string(ipcKey), string(fetchedKey)) -} diff --git a/pkg/api/util/ipc_endpoint_test.go b/pkg/api/util/ipc_endpoint_test.go index 5f2be0a513062..26df3f8ce7205 100644 --- a/pkg/api/util/ipc_endpoint_test.go +++ b/pkg/api/util/ipc_endpoint_test.go @@ -17,108 +17,96 @@ import ( "testing" "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - "github.com/stretchr/testify/suite" configmock "github.com/DataDog/datadog-agent/pkg/config/mock" pkgconfigmodel "github.com/DataDog/datadog-agent/pkg/config/model" ) -type IPCEndpointTestSuite struct { - suite.Suite - conf pkgconfigmodel.Config -} - -func TestIPCEndpointTestSuite(t *testing.T) { - // cleaning auth_token and cert globals to be able initialize again the authToken and IPC cert - token = "" - dcaToken = "" - clientTLSConfig = nil - serverTLSConfig = nil - - // creating test suite - testSuite := new(IPCEndpointTestSuite) - - // simulating a normal startup of Agent with auth_token and cert generation - testSuite.conf = configmock.New(t) +func createConfig(t *testing.T, ts *httptest.Server) pkgconfigmodel.Config { + conf := configmock.New(t) // create a fake auth token authTokenFile, err := os.CreateTemp("", "") - require.NoError(t, err) + assert.NoError(t, err) authTokenPath := authTokenFile.Name() os.WriteFile(authTokenPath, []byte("0123456789abcdef0123456789abcdef"), 0640) - testSuite.conf.Set("auth_token_file_path", authTokenPath, pkgconfigmodel.SourceAgentRuntime) - - // use the cert in the httptest server - CreateAndSetAuthToken(testSuite.conf) - - suite.Run(t, testSuite) -} - -func (suite *IPCEndpointTestSuite) setTestServerAndConfig(t *testing.T, ts *httptest.Server, isHTTPS bool) { - if isHTTPS { - ts.TLS = GetTLSServerConfig() - ts.StartTLS() - } else { - ts.Start() - } - // use the httptest server as the CMD_API addr, err := url.Parse(ts.URL) - require.NoError(t, err) + assert.NoError(t, err) localHost, localPort, _ := net.SplitHostPort(addr.Host) - suite.conf.Set("cmd_host", localHost, pkgconfigmodel.SourceAgentRuntime) - suite.conf.Set("cmd_port", localPort, pkgconfigmodel.SourceAgentRuntime) + + // set minimal configuration that IPCEndpoint needs + conf.Set("auth_token_file_path", authTokenPath, pkgconfigmodel.SourceAgentRuntime) + conf.Set("cmd_host", localHost, pkgconfigmodel.SourceAgentRuntime) + conf.Set("cmd_port", localPort, pkgconfigmodel.SourceAgentRuntime) + + return conf } -func (suite *IPCEndpointTestSuite) TestNewIPCEndpoint() { - t := suite.T() +func TestNewIPCEndpoint(t *testing.T) { + conf := configmock.New(t) + + // create a fake auth token + authTokenFile, err := os.CreateTemp("", "") + assert.NoError(t, err) + authTokenPath := authTokenFile.Name() + os.WriteFile(authTokenPath, []byte("0123456789abcdef0123456789abcdef"), 0640) // set minimal configuration that IPCEndpoint needs - suite.conf.Set("cmd_host", "localhost", pkgconfigmodel.SourceAgentRuntime) - suite.conf.Set("cmd_port", "6789", pkgconfigmodel.SourceAgentRuntime) + conf.Set("auth_token_file_path", authTokenPath, pkgconfigmodel.SourceAgentRuntime) + conf.Set("cmd_host", "localhost", pkgconfigmodel.SourceAgentRuntime) + conf.Set("cmd_port", "6789", pkgconfigmodel.SourceAgentRuntime) // test the endpoint construction - end, err := NewIPCEndpoint(suite.conf, "test/api") + end, err := NewIPCEndpoint(conf, "test/api") assert.NoError(t, err) assert.Equal(t, end.target.String(), "https://localhost:6789/test/api") } -func (suite *IPCEndpointTestSuite) TestNewIPCEndpointWithCloseConnection() { - t := suite.T() +func TestNewIPCEndpointWithCloseConnection(t *testing.T) { + conf := configmock.New(t) + + // create a fake auth token + authTokenFile, err := os.CreateTemp("", "") + assert.NoError(t, err) + authTokenPath := authTokenFile.Name() + os.WriteFile(authTokenPath, []byte("0123456789abcdef0123456789abcdef"), 0640) + + // set minimal configuration that IPCEndpoint needs + conf.Set("auth_token_file_path", authTokenPath, pkgconfigmodel.SourceAgentRuntime) + conf.Set("cmd_host", "localhost", pkgconfigmodel.SourceAgentRuntime) + conf.Set("cmd_port", "6789", pkgconfigmodel.SourceAgentRuntime) // test constructing with the CloseConnection option - end, err := NewIPCEndpoint(suite.conf, "test/api", WithCloseConnection(true)) - require.NoError(t, err) + end, err := NewIPCEndpoint(conf, "test/api", WithCloseConnection(true)) + assert.NoError(t, err) assert.True(t, end.closeConn) } -func (suite *IPCEndpointTestSuite) TestIPCEndpointDoGet() { - t := suite.T() +func TestIPCEndpointDoGet(t *testing.T) { gotURL := "" - ts := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + ts := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { gotURL = r.URL.String() _, _ = io.ReadAll(r.Body) w.Write([]byte("ok")) })) defer ts.Close() - suite.setTestServerAndConfig(t, ts, true) - end, err := NewIPCEndpoint(suite.conf, "test/api") + conf := createConfig(t, ts) + end, err := NewIPCEndpoint(conf, "test/api") assert.NoError(t, err) // test that DoGet will hit the endpoint url res, err := end.DoGet() - require.NoError(t, err) + assert.NoError(t, err) assert.Equal(t, res, []byte("ok")) assert.Equal(t, gotURL, "/test/api") } -func (suite *IPCEndpointTestSuite) TestIPCEndpointGetWithHTTPClientAndNonTLS() { - t := suite.T() +func TestIPCEndpointGetWithHTTPClientAndNonTLS(t *testing.T) { // non-http server gotURL := "" - ts := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { gotURL = r.URL.String() _, _ = io.ReadAll(r.Body) w.Write([]byte("ok")) @@ -126,112 +114,106 @@ func (suite *IPCEndpointTestSuite) TestIPCEndpointGetWithHTTPClientAndNonTLS() { defer ts.Close() // create non-TLS client and use the "http" protocol - suite.setTestServerAndConfig(t, ts, false) client := http.Client{} - end, err := NewIPCEndpoint(suite.conf, "test/api", WithHTTPClient(&client), WithURLScheme("http")) + conf := createConfig(t, ts) + end, err := NewIPCEndpoint(conf, "test/api", WithHTTPClient(&client), WithURLScheme("http")) assert.NoError(t, err) // test that DoGet will hit the endpoint url res, err := end.DoGet() - require.NoError(t, err) + assert.NoError(t, err) assert.Equal(t, res, []byte("ok")) assert.Equal(t, gotURL, "/test/api") } -func (suite *IPCEndpointTestSuite) TestIPCEndpointGetWithValues() { - t := suite.T() +func TestIPCEndpointGetWithValues(t *testing.T) { gotURL := "" - ts := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + ts := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { gotURL = r.URL.String() _, _ = io.ReadAll(r.Body) w.Write([]byte("ok")) })) defer ts.Close() - suite.setTestServerAndConfig(t, ts, true) + conf := createConfig(t, ts) // set url values for GET request v := url.Values{} v.Set("verbose", "true") // test construction with option for url.Values - end, err := NewIPCEndpoint(suite.conf, "test/api") + end, err := NewIPCEndpoint(conf, "test/api") assert.NoError(t, err) // test that DoGet will use query parameters from the url.Values res, err := end.DoGet(WithValues(v)) - require.NoError(t, err) + assert.NoError(t, err) assert.Equal(t, res, []byte("ok")) assert.Equal(t, gotURL, "/test/api?verbose=true") } -func (suite *IPCEndpointTestSuite) TestIPCEndpointGetWithHostAndPort() { - t := suite.T() - ts := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { +func TestIPCEndpointGetWithHostAndPort(t *testing.T) { + ts := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { _, _ = io.ReadAll(r.Body) w.Write([]byte("ok")) })) defer ts.Close() - suite.setTestServerAndConfig(t, ts, true) + conf := createConfig(t, ts) // modify the config so that it uses a different setting for the cmd_host - suite.conf.Set("process_config.cmd_host", "127.0.0.1", pkgconfigmodel.SourceAgentRuntime) + conf.Set("process_config.cmd_host", "127.0.0.1", pkgconfigmodel.SourceAgentRuntime) // test construction with alternate values for the host and port - end, err := NewIPCEndpoint(suite.conf, "test/api", WithHostAndPort(suite.conf.GetString("process_config.cmd_host"), suite.conf.GetInt("cmd_port"))) + end, err := NewIPCEndpoint(conf, "test/api", WithHostAndPort(conf.GetString("process_config.cmd_host"), conf.GetInt("cmd_port"))) assert.NoError(t, err) // test that host provided by WithHostAndPort is used for the endpoint res, err := end.DoGet() - require.NoError(t, err) + assert.NoError(t, err) assert.Equal(t, res, []byte("ok")) - assert.Equal(t, end.target.Host, fmt.Sprintf("127.0.0.1:%d", suite.conf.GetInt("cmd_port"))) + assert.Equal(t, end.target.Host, fmt.Sprintf("127.0.0.1:%d", conf.GetInt("cmd_port"))) } -func (suite *IPCEndpointTestSuite) TestIPCEndpointDeprecatedIPCAddress() { - t := suite.T() - ts := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { +func TestIPCEndpointDeprecatedIPCAddress(t *testing.T) { + ts := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { _, _ = io.ReadAll(r.Body) w.Write([]byte("ok")) })) defer ts.Close() - suite.setTestServerAndConfig(t, ts, true) + conf := createConfig(t, ts) // Use the deprecated (but still supported) option "ipc_address" - suite.conf.UnsetForSource("cmd_host", pkgconfigmodel.SourceAgentRuntime) - suite.conf.Set("ipc_address", "127.0.0.1", pkgconfigmodel.SourceAgentRuntime) - defer suite.conf.UnsetForSource("ipc_address", pkgconfigmodel.SourceAgentRuntime) + conf.UnsetForSource("cmd_host", pkgconfigmodel.SourceAgentRuntime) + conf.Set("ipc_address", "127.0.0.1", pkgconfigmodel.SourceAgentRuntime) // test construction, uses ipc_address instead of cmd_host - end, err := NewIPCEndpoint(suite.conf, "test/api") + end, err := NewIPCEndpoint(conf, "test/api") assert.NoError(t, err) // test that host provided by "ipc_address" is used for the endpoint res, err := end.DoGet() - require.NoError(t, err) + assert.NoError(t, err) assert.Equal(t, res, []byte("ok")) - assert.Equal(t, end.target.Host, fmt.Sprintf("127.0.0.1:%d", suite.conf.GetInt("cmd_port"))) + assert.Equal(t, end.target.Host, fmt.Sprintf("127.0.0.1:%d", conf.GetInt("cmd_port"))) } -func (suite *IPCEndpointTestSuite) TestIPCEndpointErrorText() { - t := suite.T() - ts := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { +func TestIPCEndpointErrorText(t *testing.T) { + ts := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(400) w.Write([]byte("bad request")) })) defer ts.Close() - suite.setTestServerAndConfig(t, ts, true) - end, err := NewIPCEndpoint(suite.conf, "test/api") - require.NoError(t, err) + conf := createConfig(t, ts) + end, err := NewIPCEndpoint(conf, "test/api") + assert.NoError(t, err) // test that error is returned by the endpoint _, err = end.DoGet() - require.Error(t, err) + assert.Error(t, err) } -func (suite *IPCEndpointTestSuite) TestIPCEndpointErrorMap() { - t := suite.T() - ts := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { +func TestIPCEndpointErrorMap(t *testing.T) { + ts := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(400) data, _ := json.Marshal(map[string]string{ "error": "something went wrong", @@ -240,12 +222,12 @@ func (suite *IPCEndpointTestSuite) TestIPCEndpointErrorMap() { })) defer ts.Close() - suite.setTestServerAndConfig(t, ts, true) - end, err := NewIPCEndpoint(suite.conf, "test/api") - require.NoError(t, err) + conf := createConfig(t, ts) + end, err := NewIPCEndpoint(conf, "test/api") + assert.NoError(t, err) // test that error gets unwrapped from the errmap _, err = end.DoGet() - require.Error(t, err) + assert.Error(t, err) assert.Equal(t, err.Error(), "something went wrong") } diff --git a/pkg/api/util/util.go b/pkg/api/util/util.go index b22c2e7b04ad0..6aece9c03c648 100644 --- a/pkg/api/util/util.go +++ b/pkg/api/util/util.go @@ -8,138 +8,52 @@ package util import ( "crypto/subtle" - "crypto/tls" - "crypto/x509" "fmt" "net" "net/http" "strings" "sync" - pkgtoken "github.com/DataDog/datadog-agent/pkg/api/security" - "github.com/DataDog/datadog-agent/pkg/api/security/cert" + "github.com/DataDog/datadog-agent/pkg/api/security" "github.com/DataDog/datadog-agent/pkg/config/model" - "github.com/DataDog/datadog-agent/pkg/util/log" -) - -type source int - -const ( - uninitialized source = iota - setAuthToken - createAndSetAuthToken ) var ( tokenLock sync.RWMutex token string dcaToken string - // The clientTLSConfig is set by default with `InsecureSkipVerify: true`. - // This is intentionally done to allow the Agent to local Agent APIs when the clientTLSConfig is not yet initialized. - // However, this default value should be removed in the future. - // TODO: Monitor and fix the logs printed by GetTLSClientConfig and GetTLSServerConfig. - clientTLSConfig = &tls.Config{ - InsecureSkipVerify: true, - } - serverTLSConfig *tls.Config - initSource source ) -// SetAuthToken sets the session token and IPC certificate +// SetAuthToken sets the session token // Requires that the config has been set up before calling func SetAuthToken(config model.Reader) error { tokenLock.Lock() defer tokenLock.Unlock() // Noop if token is already set - if initSource != uninitialized { + if token != "" { return nil } var err error - token, err = pkgtoken.FetchAuthToken(config) - if err != nil { - return err - } - ipccert, ipckey, err := cert.FetchAgentIPCCert(config) - if err != nil { - return err - } - - certPool := x509.NewCertPool() - if ok := certPool.AppendCertsFromPEM(ipccert); !ok { - return fmt.Errorf("unable to use cert for creating CertPool") - } - - clientTLSConfig = &tls.Config{ - RootCAs: certPool, - } - - tlsCert, err := tls.X509KeyPair(ipccert, ipckey) - if err != nil { - return err - } - serverTLSConfig = &tls.Config{ - Certificates: []tls.Certificate{tlsCert}, - } - - initSource = setAuthToken - - return nil + token, err = security.FetchAuthToken(config) + return err } -// CreateAndSetAuthToken creates and sets the authorization token and IPC certificate +// CreateAndSetAuthToken creates and sets the authorization token // Requires that the config has been set up before calling func CreateAndSetAuthToken(config model.Reader) error { tokenLock.Lock() defer tokenLock.Unlock() // Noop if token is already set - switch initSource { - case setAuthToken: - log.Infof("function CreateAndSetAuthToken was called after SetAuthToken was called") - return nil - case createAndSetAuthToken: + if token != "" { return nil } var err error - token, err = pkgtoken.CreateOrFetchToken(config) - if err != nil { - return err - } - ipccert, ipckey, err := cert.CreateOrFetchAgentIPCCert(config) - if err != nil { - return err - } - - certPool := x509.NewCertPool() - if ok := certPool.AppendCertsFromPEM(ipccert); !ok { - return fmt.Errorf("Unable to generate certPool from PERM IPC cert") - } - - clientTLSConfig = &tls.Config{ - RootCAs: certPool, - } - - tlsCert, err := tls.X509KeyPair(ipccert, ipckey) - if err != nil { - return fmt.Errorf("Unable to generate x509 cert from PERM IPC cert and key") - } - serverTLSConfig = &tls.Config{ - Certificates: []tls.Certificate{tlsCert}, - } - - initSource = createAndSetAuthToken - - return nil -} - -// IsInitialized return true if the auth_token and IPC cert/key pair have been initialized with SetAuthToken or CreateAndSetAuthToken functions -func IsInitialized() bool { - tokenLock.RLock() - defer tokenLock.Unlock() - return initSource != uninitialized + token, err = security.CreateOrFetchToken(config) + return err } // GetAuthToken gets the session token @@ -149,26 +63,6 @@ func GetAuthToken() string { return token } -// GetTLSClientConfig gets the certificate and key used for IPC -func GetTLSClientConfig() *tls.Config { - tokenLock.RLock() - defer tokenLock.RUnlock() - if initSource == uninitialized { - log.Errorf("GetTLSClientConfig was called before being initialized (through SetAuthToken or CreateAndSetAuthToken function)") - } - return clientTLSConfig.Clone() -} - -// GetTLSServerConfig gets the certificate and key used for IPC -func GetTLSServerConfig() *tls.Config { - tokenLock.RLock() - defer tokenLock.RUnlock() - if initSource == uninitialized { - log.Errorf("GetTLSServerConfig was called before being initialized (through SetAuthToken or CreateAndSetAuthToken function)") - } - return serverTLSConfig.Clone() -} - // InitDCAAuthToken initialize the session token for the Cluster Agent based on config options // Requires that the config has been set up before calling func InitDCAAuthToken(config model.Reader) error { @@ -181,7 +75,7 @@ func InitDCAAuthToken(config model.Reader) error { } var err error - dcaToken, err = pkgtoken.CreateOrGetClusterAgentAuthToken(config) + dcaToken, err = security.CreateOrGetClusterAgentAuthToken(config) return err } diff --git a/pkg/config/setup/config.go b/pkg/config/setup/config.go index 66942a316486e..da2fb45d704bb 100644 --- a/pkg/config/setup/config.go +++ b/pkg/config/setup/config.go @@ -1093,8 +1093,6 @@ func agent(config pkgconfigmodel.Setup) { config.BindEnvAndSetDefault("check_runners", int64(4)) config.BindEnvAndSetDefault("check_cancel_timeout", 500*time.Millisecond) config.BindEnvAndSetDefault("auth_token_file_path", "") - // used to override the path where the IPC cert/key files are stored/retrieved - config.BindEnvAndSetDefault("ipc_cert_file_path", "") config.BindEnv("bind_host") config.BindEnvAndSetDefault("health_port", int64(0)) config.BindEnvAndSetDefault("disable_py3_validation", false) From ba08dfcc0bb4b569fc5a59e65652b46eeeba42a4 Mon Sep 17 00:00:00 2001 From: Paul Cacheux Date: Thu, 12 Dec 2024 12:43:11 +0100 Subject: [PATCH 430/439] bump github.com/shirou/gopsutil to v4 (#31982) --- .../subcommands/compliance/command.go | 2 +- comp/agent/autoexit/autoexitimpl/manager.go | 2 +- comp/api/authtoken/go.mod | 4 ++-- comp/api/authtoken/go.sum | 10 ++++------ comp/core/config/go.mod | 4 ++-- comp/core/config/go.sum | 10 ++++------ comp/core/log/impl-trace/go.mod | 4 ++-- comp/core/log/impl-trace/go.sum | 10 ++++------ comp/core/log/impl/go.mod | 4 ++-- comp/core/log/impl/go.sum | 10 ++++------ comp/core/log/mock/go.sum | 8 ++++---- comp/core/status/statusimpl/go.mod | 4 ++-- comp/core/status/statusimpl/go.sum | 10 ++++------ .../listeners/ratelimit/host_memory_usage.go | 2 +- comp/forwarder/defaultforwarder/go.mod | 4 ++-- comp/forwarder/defaultforwarder/go.sum | 10 ++++------ .../orchestrator/orchestratorinterface/go.mod | 4 ++-- .../orchestrator/orchestratorinterface/go.sum | 10 ++++------ comp/logs/agent/config/go.mod | 4 ++-- comp/logs/agent/config/go.sum | 10 ++++------ comp/metadata/host/hostimpl/utils/host_nix.go | 4 ++-- .../host/hostimpl/utils/host_nix_test.go | 4 ++-- comp/otelcol/converter/impl/go.mod | 4 ++-- comp/otelcol/converter/impl/go.sum | 10 ++++------ comp/otelcol/ddflareextension/impl/go.mod | 2 -- comp/otelcol/logsagentpipeline/go.mod | 4 ++-- comp/otelcol/logsagentpipeline/go.sum | 10 ++++------ .../logsagentpipelineimpl/go.mod | 4 ++-- .../logsagentpipelineimpl/go.sum | 10 ++++------ .../components/exporter/datadogexporter/go.mod | 4 ++-- .../components/exporter/datadogexporter/go.sum | 10 ++++------ .../exporter/logsagentexporter/go.mod | 4 ++-- .../exporter/logsagentexporter/go.sum | 10 ++++------ .../exporter/serializerexporter/go.mod | 4 ++-- .../exporter/serializerexporter/go.sum | 10 ++++------ .../otlp/components/statsprocessor/go.mod | 4 ++-- .../otlp/components/statsprocessor/go.sum | 10 ++++------ comp/otelcol/otlp/testutil/go.mod | 4 ++-- comp/otelcol/otlp/testutil/go.sum | 10 ++++------ comp/serializer/compression/go.mod | 4 ++-- comp/serializer/compression/go.sum | 10 ++++------ go.mod | 6 ++++-- pkg/api/go.mod | 4 ++-- pkg/api/go.sum | 10 ++++------ .../servicediscovery/module/comm_test.go | 2 +- .../corechecks/servicediscovery/module/envs.go | 2 +- .../servicediscovery/module/envs_test.go | 2 +- .../servicediscovery/module/impl_linux.go | 2 +- .../servicediscovery/module/impl_linux_test.go | 2 +- .../corechecks/servicediscovery/usm/ruby.go | 2 +- pkg/compliance/agent.go | 2 +- pkg/compliance/dbconfig/loader.go | 2 +- pkg/compliance/dbconfig/loader_test.go | 2 +- pkg/compliance/k8sconfig/loader.go | 2 +- pkg/compliance/resolver.go | 2 +- pkg/config/env/go.mod | 3 ++- pkg/config/env/go.sum | 6 ++++-- pkg/config/mock/go.mod | 4 ++-- pkg/config/mock/go.sum | 10 ++++------ pkg/config/remote/go.mod | 3 +-- pkg/config/remote/go.sum | 8 ++------ pkg/config/setup/go.mod | 4 ++-- pkg/config/setup/go.sum | 10 ++++------ pkg/config/utils/go.mod | 4 ++-- pkg/config/utils/go.sum | 10 ++++------ pkg/fleet/installer/packages/docker.go | 2 +- pkg/gohai/go.mod | 5 ++--- pkg/gohai/go.sum | 10 ++++------ pkg/gohai/processes/gops/process_info.go | 4 ++-- pkg/internaltelemetry/client.go | 2 +- pkg/logs/auditor/go.mod | 4 ++-- pkg/logs/auditor/go.sum | 10 ++++------ pkg/logs/client/go.mod | 4 ++-- pkg/logs/client/go.sum | 10 ++++------ pkg/logs/diagnostic/go.mod | 4 ++-- pkg/logs/diagnostic/go.sum | 10 ++++------ pkg/logs/message/go.mod | 4 ++-- pkg/logs/message/go.sum | 10 ++++------ pkg/logs/pipeline/go.mod | 4 ++-- pkg/logs/pipeline/go.sum | 10 ++++------ pkg/logs/processor/go.mod | 4 ++-- pkg/logs/processor/go.sum | 10 ++++------ pkg/logs/sds/go.mod | 4 ++-- pkg/logs/sds/go.sum | 10 ++++------ pkg/logs/sender/go.mod | 4 ++-- pkg/logs/sender/go.sum | 10 ++++------ pkg/logs/sources/go.mod | 4 ++-- pkg/logs/sources/go.sum | 10 ++++------ pkg/logs/util/testutils/go.mod | 4 ++-- pkg/logs/util/testutils/go.sum | 10 ++++------ pkg/metrics/go.mod | 4 ++-- pkg/metrics/go.sum | 10 ++++------ pkg/process/checks/process.go | 2 +- pkg/process/checks/process_common_test.go | 2 +- pkg/process/checks/process_nix.go | 2 +- pkg/process/checks/process_nix_test.go | 2 +- pkg/process/checks/process_rt.go | 2 +- pkg/process/checks/process_test.go | 2 +- pkg/process/checks/process_windows.go | 2 +- pkg/process/checks/process_windows_test.go | 2 +- pkg/process/checks/system_info.go | 4 ++-- pkg/process/checks/system_info_darwin.go | 4 ++-- pkg/process/checks/system_info_darwin_test.go | 2 +- .../procutil/process_windows_toolhelp.go | 2 +- pkg/sbom/collectors/host/host_wmi.go | 2 +- .../probe/monitors/runtime/runtime_monitor.go | 2 +- pkg/security/probe/probe_linux.go | 2 +- pkg/security/probe/process_killer_linux.go | 2 +- pkg/security/ptracer/proc.go | 2 +- pkg/security/resolvers/process/resolver_ebpf.go | 14 +++++++------- .../activity_tree/process_node_snapshot.go | 2 +- pkg/security/utils/numcpu.go | 2 +- pkg/security/utils/proc_common.go | 6 +++--- pkg/security/utils/proc_linux.go | 2 +- pkg/serializer/go.mod | 4 ++-- pkg/serializer/go.sum | 10 ++++------ pkg/trace/go.mod | 9 +++++---- pkg/trace/go.sum | 17 ----------------- pkg/trace/stats/oteltest/go.mod | 4 ++-- pkg/trace/stats/oteltest/go.sum | 10 ++++------ pkg/trace/watchdog/cpu.go | 2 +- pkg/util/filesystem/disk.go | 2 +- pkg/util/filesystem/go.mod | 3 ++- pkg/util/filesystem/go.sum | 6 ++++-- pkg/util/flavor/go.mod | 4 ++-- pkg/util/flavor/go.sum | 10 ++++------ pkg/util/grpc/go.mod | 4 ++-- pkg/util/grpc/go.sum | 10 ++++------ pkg/util/http/go.mod | 4 ++-- pkg/util/http/go.sum | 10 ++++------ pkg/util/ktime/resolver.go | 2 +- pkg/util/log/setup/go.mod | 4 ++-- pkg/util/log/setup/go.sum | 10 ++++------ pkg/util/process_file_stats_linux.go | 2 +- pkg/util/system/cpu_unix.go | 2 +- pkg/util/system/go.mod | 5 ++--- pkg/util/system/go.sum | 10 ++++------ pkg/util/uuid/go.mod | 5 ++--- pkg/util/uuid/go.sum | 10 ++++------ pkg/util/uuid/uuid_nix.go | 2 +- test/otel/go.mod | 4 ++-- test/otel/go.sum | 10 ++++------ 142 files changed, 340 insertions(+), 442 deletions(-) diff --git a/cmd/security-agent/subcommands/compliance/command.go b/cmd/security-agent/subcommands/compliance/command.go index d38285ee8d2b3..c6614a89232f7 100644 --- a/cmd/security-agent/subcommands/compliance/command.go +++ b/cmd/security-agent/subcommands/compliance/command.go @@ -14,7 +14,7 @@ import ( "path/filepath" "strings" - "github.com/shirou/gopsutil/v3/process" + "github.com/shirou/gopsutil/v4/process" "github.com/spf13/cobra" "go.uber.org/fx" diff --git a/comp/agent/autoexit/autoexitimpl/manager.go b/comp/agent/autoexit/autoexitimpl/manager.go index db71ad7c4e042..44089dd4538d0 100644 --- a/comp/agent/autoexit/autoexitimpl/manager.go +++ b/comp/agent/autoexit/autoexitimpl/manager.go @@ -14,7 +14,7 @@ import ( "github.com/DataDog/datadog-agent/comp/core/config" log "github.com/DataDog/datadog-agent/comp/core/log/def" - "github.com/shirou/gopsutil/v3/process" + "github.com/shirou/gopsutil/v4/process" ) const ( diff --git a/comp/api/authtoken/go.mod b/comp/api/authtoken/go.mod index 0d71335ec37a3..e727e718a6054 100644 --- a/comp/api/authtoken/go.mod +++ b/comp/api/authtoken/go.mod @@ -80,6 +80,7 @@ require ( github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -93,8 +94,7 @@ require ( github.com/pelletier/go-toml v1.9.5 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/comp/api/authtoken/go.sum b/comp/api/authtoken/go.sum index 1441562d69bde..dc0ab4305d421 100644 --- a/comp/api/authtoken/go.sum +++ b/comp/api/authtoken/go.sum @@ -39,6 +39,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -169,12 +171,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/comp/core/config/go.mod b/comp/core/config/go.mod index f7a43ae0beee2..2d3997d7f778b 100644 --- a/comp/core/config/go.mod +++ b/comp/core/config/go.mod @@ -71,6 +71,7 @@ require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -89,8 +90,7 @@ require ( github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.60.1 // indirect github.com/prometheus/procfs v0.15.1 // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/comp/core/config/go.sum b/comp/core/config/go.sum index 12326d3e1f9b6..72766499eff8d 100644 --- a/comp/core/config/go.sum +++ b/comp/core/config/go.sum @@ -40,6 +40,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -172,12 +174,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/comp/core/log/impl-trace/go.mod b/comp/core/log/impl-trace/go.mod index 5784f2a4cb400..bf2f0e158a0b0 100644 --- a/comp/core/log/impl-trace/go.mod +++ b/comp/core/log/impl-trace/go.mod @@ -80,6 +80,7 @@ require ( github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -93,8 +94,7 @@ require ( github.com/pelletier/go-toml v1.9.5 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/comp/core/log/impl-trace/go.sum b/comp/core/log/impl-trace/go.sum index 1441562d69bde..dc0ab4305d421 100644 --- a/comp/core/log/impl-trace/go.sum +++ b/comp/core/log/impl-trace/go.sum @@ -39,6 +39,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -169,12 +171,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/comp/core/log/impl/go.mod b/comp/core/log/impl/go.mod index ea5f5ddb29885..8ed4ca6c7fef9 100644 --- a/comp/core/log/impl/go.mod +++ b/comp/core/log/impl/go.mod @@ -70,6 +70,7 @@ require ( github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -83,8 +84,7 @@ require ( github.com/pelletier/go-toml v1.9.5 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/comp/core/log/impl/go.sum b/comp/core/log/impl/go.sum index 1441562d69bde..dc0ab4305d421 100644 --- a/comp/core/log/impl/go.sum +++ b/comp/core/log/impl/go.sum @@ -39,6 +39,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -169,12 +171,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/comp/core/log/mock/go.sum b/comp/core/log/mock/go.sum index 1c7b17d164a5d..430d4ba766a61 100644 --- a/comp/core/log/mock/go.sum +++ b/comp/core/log/mock/go.sum @@ -34,6 +34,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -149,10 +151,8 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/comp/core/status/statusimpl/go.mod b/comp/core/status/statusimpl/go.mod index cfb7ac9182260..2f55879031d33 100644 --- a/comp/core/status/statusimpl/go.mod +++ b/comp/core/status/statusimpl/go.mod @@ -83,6 +83,7 @@ require ( github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dustin/go-humanize v1.0.1 // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fatih/color v1.18.0 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect @@ -99,8 +100,7 @@ require ( github.com/pelletier/go-toml v1.9.5 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/comp/core/status/statusimpl/go.sum b/comp/core/status/statusimpl/go.sum index 358c24ff26324..dba3ab3934aa2 100644 --- a/comp/core/status/statusimpl/go.sum +++ b/comp/core/status/statusimpl/go.sum @@ -41,6 +41,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= @@ -180,12 +182,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/comp/dogstatsd/listeners/ratelimit/host_memory_usage.go b/comp/dogstatsd/listeners/ratelimit/host_memory_usage.go index de42845d803f2..a70a1331b31aa 100644 --- a/comp/dogstatsd/listeners/ratelimit/host_memory_usage.go +++ b/comp/dogstatsd/listeners/ratelimit/host_memory_usage.go @@ -6,7 +6,7 @@ package ratelimit import ( - "github.com/shirou/gopsutil/v3/mem" + "github.com/shirou/gopsutil/v4/mem" ) var _ memoryUsage = (*hostMemoryUsage)(nil) diff --git a/comp/forwarder/defaultforwarder/go.mod b/comp/forwarder/defaultforwarder/go.mod index b3f2578ab6a84..41c6273f20aa8 100644 --- a/comp/forwarder/defaultforwarder/go.mod +++ b/comp/forwarder/defaultforwarder/go.mod @@ -107,6 +107,7 @@ require ( github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dustin/go-humanize v1.0.1 // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fatih/color v1.18.0 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect @@ -131,8 +132,7 @@ require ( github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.60.1 // indirect github.com/prometheus/procfs v0.15.1 // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/comp/forwarder/defaultforwarder/go.sum b/comp/forwarder/defaultforwarder/go.sum index 9c26c44f1cda8..744cfff2ec136 100644 --- a/comp/forwarder/defaultforwarder/go.sum +++ b/comp/forwarder/defaultforwarder/go.sum @@ -40,6 +40,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= @@ -190,12 +192,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/comp/forwarder/orchestrator/orchestratorinterface/go.mod b/comp/forwarder/orchestrator/orchestratorinterface/go.mod index 501885a0c7b7b..29dcff0c8c429 100644 --- a/comp/forwarder/orchestrator/orchestratorinterface/go.mod +++ b/comp/forwarder/orchestrator/orchestratorinterface/go.mod @@ -109,6 +109,7 @@ require ( github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dustin/go-humanize v1.0.1 // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fatih/color v1.18.0 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect @@ -135,8 +136,7 @@ require ( github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.60.1 // indirect github.com/prometheus/procfs v0.15.1 // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/comp/forwarder/orchestrator/orchestratorinterface/go.sum b/comp/forwarder/orchestrator/orchestratorinterface/go.sum index debd6cceb8b31..23a50467e927d 100644 --- a/comp/forwarder/orchestrator/orchestratorinterface/go.sum +++ b/comp/forwarder/orchestrator/orchestratorinterface/go.sum @@ -43,6 +43,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= @@ -195,12 +197,8 @@ github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/f github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/comp/logs/agent/config/go.mod b/comp/logs/agent/config/go.mod index da4be1701769d..1c98c4cbf92f8 100644 --- a/comp/logs/agent/config/go.mod +++ b/comp/logs/agent/config/go.mod @@ -72,6 +72,7 @@ require ( github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -85,8 +86,7 @@ require ( github.com/pelletier/go-toml v1.9.5 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/comp/logs/agent/config/go.sum b/comp/logs/agent/config/go.sum index 1441562d69bde..dc0ab4305d421 100644 --- a/comp/logs/agent/config/go.sum +++ b/comp/logs/agent/config/go.sum @@ -39,6 +39,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -169,12 +171,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/comp/metadata/host/hostimpl/utils/host_nix.go b/comp/metadata/host/hostimpl/utils/host_nix.go index c78fc6098aa84..637b15c100ae8 100644 --- a/comp/metadata/host/hostimpl/utils/host_nix.go +++ b/comp/metadata/host/hostimpl/utils/host_nix.go @@ -10,8 +10,8 @@ package utils import ( "runtime" - "github.com/shirou/gopsutil/v3/cpu" - "github.com/shirou/gopsutil/v3/host" + "github.com/shirou/gopsutil/v4/cpu" + "github.com/shirou/gopsutil/v4/host" "github.com/DataDog/datadog-agent/pkg/collector/python" "github.com/DataDog/datadog-agent/pkg/util/cache" diff --git a/comp/metadata/host/hostimpl/utils/host_nix_test.go b/comp/metadata/host/hostimpl/utils/host_nix_test.go index 4eeb421827a75..ac5067f53e219 100644 --- a/comp/metadata/host/hostimpl/utils/host_nix_test.go +++ b/comp/metadata/host/hostimpl/utils/host_nix_test.go @@ -11,8 +11,8 @@ import ( "runtime" "testing" - "github.com/shirou/gopsutil/v3/cpu" - "github.com/shirou/gopsutil/v3/host" + "github.com/shirou/gopsutil/v4/cpu" + "github.com/shirou/gopsutil/v4/host" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" diff --git a/comp/otelcol/converter/impl/go.mod b/comp/otelcol/converter/impl/go.mod index b13dbe2c343f9..31c49f2e1381b 100644 --- a/comp/otelcol/converter/impl/go.mod +++ b/comp/otelcol/converter/impl/go.mod @@ -81,6 +81,7 @@ require ( github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/go-viper/mapstructure/v2 v2.2.1 // indirect @@ -100,8 +101,7 @@ require ( github.com/pelletier/go-toml v1.9.5 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/comp/otelcol/converter/impl/go.sum b/comp/otelcol/converter/impl/go.sum index dd15ede05c8be..b97062bfa5313 100644 --- a/comp/otelcol/converter/impl/go.sum +++ b/comp/otelcol/converter/impl/go.sum @@ -39,6 +39,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -181,12 +183,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/comp/otelcol/ddflareextension/impl/go.mod b/comp/otelcol/ddflareextension/impl/go.mod index dd9308fb62aa6..6422371da2f2c 100644 --- a/comp/otelcol/ddflareextension/impl/go.mod +++ b/comp/otelcol/ddflareextension/impl/go.mod @@ -429,9 +429,7 @@ require ( github.com/rs/cors v1.11.1 // indirect github.com/scaleway/scaleway-sdk-go v1.0.0-beta.29 // indirect github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shirou/gopsutil/v4 v4.24.11 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/comp/otelcol/logsagentpipeline/go.mod b/comp/otelcol/logsagentpipeline/go.mod index 4966bc8e9fbad..d3347ab6c6669 100644 --- a/comp/otelcol/logsagentpipeline/go.mod +++ b/comp/otelcol/logsagentpipeline/go.mod @@ -114,6 +114,7 @@ require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect @@ -136,8 +137,7 @@ require ( github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.60.1 // indirect github.com/prometheus/procfs v0.15.1 // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/comp/otelcol/logsagentpipeline/go.sum b/comp/otelcol/logsagentpipeline/go.sum index 2046340fbb070..920238d6c8024 100644 --- a/comp/otelcol/logsagentpipeline/go.sum +++ b/comp/otelcol/logsagentpipeline/go.sum @@ -44,6 +44,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -186,12 +188,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod index 245d0eb4b48b0..e76cecb0f1e19 100644 --- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod +++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod @@ -129,6 +129,7 @@ require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect @@ -151,8 +152,7 @@ require ( github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.60.1 // indirect github.com/prometheus/procfs v0.15.1 // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum index 2046340fbb070..920238d6c8024 100644 --- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum +++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum @@ -44,6 +44,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -186,12 +188,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod index 0cc920d4b5d13..f84cdc77b7d5d 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod @@ -220,6 +220,7 @@ require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fatih/color v1.18.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect @@ -276,8 +277,7 @@ require ( github.com/richardartoul/molecule v1.0.1-0.20240531184615-7ca0df43c0b3 // indirect github.com/rs/cors v1.11.1 // indirect github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum index 0b1fe883a8e59..f8b034bc6c73e 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum @@ -89,6 +89,8 @@ github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDD github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= @@ -322,12 +324,8 @@ github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/secure-systems-lab/go-securesystemslib v0.8.0 h1:mr5An6X45Kb2nddcFlbmfHkLguCE9laoZCUzEEpIZXA= github.com/secure-systems-lab/go-securesystemslib v0.8.0/go.mod h1:UH2VZVuJfCYR8WgMlCU1uFsOUU+KeyrTWcSS73NBOzU= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod index 72c156cf15e0d..a1f756dc64c47 100644 --- a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod @@ -100,6 +100,7 @@ require ( github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fatih/color v1.18.0 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-logr/logr v1.4.2 // indirect @@ -124,8 +125,7 @@ require ( github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum index 908ead2935092..88d5e3656f78f 100644 --- a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum @@ -54,6 +54,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= @@ -215,12 +217,8 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod index ff05177cb587d..00bd83d7866ec 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod @@ -187,8 +187,6 @@ require ( github.com/prometheus/procfs v0.15.1 // indirect github.com/richardartoul/molecule v1.0.1-0.20240531184615-7ca0df43c0b3 // indirect github.com/rs/cors v1.11.1 // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect @@ -239,11 +237,13 @@ require ( ) require ( + github.com/ebitengine/purego v0.8.1 // indirect github.com/knadh/koanf/maps v0.1.1 // indirect github.com/knadh/koanf/providers/confmap v0.1.0 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.115.0 // indirect github.com/pierrec/lz4/v4 v4.1.21 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect go.opentelemetry.io/collector/client v1.21.0 // indirect go.opentelemetry.io/collector/config/configauth v0.115.0 // indirect go.opentelemetry.io/collector/config/configcompression v1.21.0 // indirect diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum index 691529b929edd..03bd78609ead8 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum @@ -60,6 +60,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= @@ -271,12 +273,8 @@ github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWN github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA= github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/comp/otelcol/otlp/components/statsprocessor/go.mod b/comp/otelcol/otlp/components/statsprocessor/go.mod index 907edfd516589..9df46434c305c 100644 --- a/comp/otelcol/otlp/components/statsprocessor/go.mod +++ b/comp/otelcol/otlp/components/statsprocessor/go.mod @@ -52,6 +52,7 @@ require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.3.0 // indirect @@ -73,8 +74,7 @@ require ( github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/tinylib/msgp v1.2.4 // indirect github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect diff --git a/comp/otelcol/otlp/components/statsprocessor/go.sum b/comp/otelcol/otlp/components/statsprocessor/go.sum index 520e6d9e0d851..d1dd6e5377312 100644 --- a/comp/otelcol/otlp/components/statsprocessor/go.sum +++ b/comp/otelcol/otlp/components/statsprocessor/go.sum @@ -34,6 +34,8 @@ github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDD github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= @@ -99,12 +101,8 @@ github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/secure-systems-lab/go-securesystemslib v0.8.0 h1:mr5An6X45Kb2nddcFlbmfHkLguCE9laoZCUzEEpIZXA= github.com/secure-systems-lab/go-securesystemslib v0.8.0/go.mod h1:UH2VZVuJfCYR8WgMlCU1uFsOUU+KeyrTWcSS73NBOzU= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= diff --git a/comp/otelcol/otlp/testutil/go.mod b/comp/otelcol/otlp/testutil/go.mod index 4db266071873e..f93da83f2c03d 100644 --- a/comp/otelcol/otlp/testutil/go.mod +++ b/comp/otelcol/otlp/testutil/go.mod @@ -67,6 +67,7 @@ require ( github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect @@ -84,8 +85,7 @@ require ( github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect diff --git a/comp/otelcol/otlp/testutil/go.sum b/comp/otelcol/otlp/testutil/go.sum index 4b7a189aa89a0..173f120daf80f 100644 --- a/comp/otelcol/otlp/testutil/go.sum +++ b/comp/otelcol/otlp/testutil/go.sum @@ -44,6 +44,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -187,12 +189,8 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/comp/serializer/compression/go.mod b/comp/serializer/compression/go.mod index 2fd30c52fb34f..a96150a98b2c6 100644 --- a/comp/serializer/compression/go.mod +++ b/comp/serializer/compression/go.mod @@ -67,6 +67,7 @@ require ( github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -80,8 +81,7 @@ require ( github.com/pelletier/go-toml v1.9.5 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/comp/serializer/compression/go.sum b/comp/serializer/compression/go.sum index c969810bfb058..82cfdd5791b99 100644 --- a/comp/serializer/compression/go.sum +++ b/comp/serializer/compression/go.sum @@ -41,6 +41,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -171,12 +173,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/go.mod b/go.mod index 1d48e947979d0..510771137b673 100644 --- a/go.mod +++ b/go.mod @@ -615,7 +615,10 @@ require ( go.opentelemetry.io/collector/config/configtelemetry v0.115.0 ) -require go.opentelemetry.io/collector/component/componenttest v0.115.0 +require ( + github.com/shirou/gopsutil/v4 v4.24.11 + go.opentelemetry.io/collector/component/componenttest v0.115.0 +) require ( go.opentelemetry.io/collector/extension/extensiontest v0.115.0 // indirect @@ -972,7 +975,6 @@ require ( github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect github.com/scaleway/scaleway-sdk-go v1.0.0-beta.29 // indirect - github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/signalfx/sapm-proto v0.17.0 // indirect github.com/sigstore/rekor v1.2.2 // indirect diff --git a/pkg/api/go.mod b/pkg/api/go.mod index 0fd5914a9094d..1ee4065b68545 100644 --- a/pkg/api/go.mod +++ b/pkg/api/go.mod @@ -72,6 +72,7 @@ require ( github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -85,8 +86,7 @@ require ( github.com/pelletier/go-toml v1.9.5 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/pkg/api/go.sum b/pkg/api/go.sum index 1441562d69bde..dc0ab4305d421 100644 --- a/pkg/api/go.sum +++ b/pkg/api/go.sum @@ -39,6 +39,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -169,12 +171,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/pkg/collector/corechecks/servicediscovery/module/comm_test.go b/pkg/collector/corechecks/servicediscovery/module/comm_test.go index 23568d19ecd2c..5cdcac6d5a368 100644 --- a/pkg/collector/corechecks/servicediscovery/module/comm_test.go +++ b/pkg/collector/corechecks/servicediscovery/module/comm_test.go @@ -15,7 +15,7 @@ import ( "testing" "time" - "github.com/shirou/gopsutil/v3/process" + "github.com/shirou/gopsutil/v4/process" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" diff --git a/pkg/collector/corechecks/servicediscovery/module/envs.go b/pkg/collector/corechecks/servicediscovery/module/envs.go index 0c841b3d108c5..2c958586098c8 100644 --- a/pkg/collector/corechecks/servicediscovery/module/envs.go +++ b/pkg/collector/corechecks/servicediscovery/module/envs.go @@ -15,7 +15,7 @@ import ( "strconv" "strings" - "github.com/shirou/gopsutil/v3/process" + "github.com/shirou/gopsutil/v4/process" "github.com/DataDog/datadog-agent/pkg/collector/corechecks/servicediscovery/envs" "github.com/DataDog/datadog-agent/pkg/util/kernel" diff --git a/pkg/collector/corechecks/servicediscovery/module/envs_test.go b/pkg/collector/corechecks/servicediscovery/module/envs_test.go index 3d2987797ff0a..c1ff43cb82d98 100644 --- a/pkg/collector/corechecks/servicediscovery/module/envs_test.go +++ b/pkg/collector/corechecks/servicediscovery/module/envs_test.go @@ -13,7 +13,7 @@ import ( "strings" "testing" - "github.com/shirou/gopsutil/v3/process" + "github.com/shirou/gopsutil/v4/process" "github.com/stretchr/testify/require" "golang.org/x/sys/unix" diff --git a/pkg/collector/corechecks/servicediscovery/module/impl_linux.go b/pkg/collector/corechecks/servicediscovery/module/impl_linux.go index dca31b0890c33..defee82dc4c72 100644 --- a/pkg/collector/corechecks/servicediscovery/module/impl_linux.go +++ b/pkg/collector/corechecks/servicediscovery/module/impl_linux.go @@ -21,7 +21,7 @@ import ( "time" agentPayload "github.com/DataDog/agent-payload/v5/process" - "github.com/shirou/gopsutil/v3/process" + "github.com/shirou/gopsutil/v4/process" "github.com/DataDog/datadog-agent/cmd/system-probe/api/module" sysconfigtypes "github.com/DataDog/datadog-agent/cmd/system-probe/config/types" diff --git a/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go b/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go index a578ccce8cc8e..d40a5216f1355 100644 --- a/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go +++ b/pkg/collector/corechecks/servicediscovery/module/impl_linux_test.go @@ -32,7 +32,7 @@ import ( "github.com/golang/mock/gomock" gorillamux "github.com/gorilla/mux" "github.com/prometheus/procfs" - "github.com/shirou/gopsutil/v3/process" + "github.com/shirou/gopsutil/v4/process" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/vishvananda/netns" diff --git a/pkg/collector/corechecks/servicediscovery/usm/ruby.go b/pkg/collector/corechecks/servicediscovery/usm/ruby.go index 5404a1753d77d..a0d0a5e8ea42b 100644 --- a/pkg/collector/corechecks/servicediscovery/usm/ruby.go +++ b/pkg/collector/corechecks/servicediscovery/usm/ruby.go @@ -14,7 +14,7 @@ import ( "path" "regexp" - "github.com/shirou/gopsutil/v3/process" + "github.com/shirou/gopsutil/v4/process" "github.com/DataDog/datadog-agent/pkg/util/log" ) diff --git a/pkg/compliance/agent.go b/pkg/compliance/agent.go index 663e7a5f067b6..f839b5a7cb8c1 100644 --- a/pkg/compliance/agent.go +++ b/pkg/compliance/agent.go @@ -23,7 +23,7 @@ import ( "sync" "time" - "github.com/shirou/gopsutil/v3/process" + "github.com/shirou/gopsutil/v4/process" workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def" "github.com/DataDog/datadog-agent/pkg/compliance/aptconfig" diff --git a/pkg/compliance/dbconfig/loader.go b/pkg/compliance/dbconfig/loader.go index 92c1ad12e978a..d70f673a070ee 100644 --- a/pkg/compliance/dbconfig/loader.go +++ b/pkg/compliance/dbconfig/loader.go @@ -18,7 +18,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/compliance/utils" - "github.com/shirou/gopsutil/v3/process" + "github.com/shirou/gopsutil/v4/process" yaml "gopkg.in/yaml.v3" ) diff --git a/pkg/compliance/dbconfig/loader_test.go b/pkg/compliance/dbconfig/loader_test.go index f39ab441ad820..bb2002d96aa81 100644 --- a/pkg/compliance/dbconfig/loader_test.go +++ b/pkg/compliance/dbconfig/loader_test.go @@ -14,7 +14,7 @@ import ( "path/filepath" "testing" - "github.com/shirou/gopsutil/v3/process" + "github.com/shirou/gopsutil/v4/process" "github.com/stretchr/testify/assert" ) diff --git a/pkg/compliance/k8sconfig/loader.go b/pkg/compliance/k8sconfig/loader.go index 3dc23ebde78c2..f58aaec4636b3 100644 --- a/pkg/compliance/k8sconfig/loader.go +++ b/pkg/compliance/k8sconfig/loader.go @@ -25,7 +25,7 @@ import ( "time" "github.com/DataDog/datadog-agent/pkg/compliance/utils" - "github.com/shirou/gopsutil/v3/process" + "github.com/shirou/gopsutil/v4/process" "gopkg.in/yaml.v3" ) diff --git a/pkg/compliance/resolver.go b/pkg/compliance/resolver.go index 769c5fc91bd16..057cd7a413a3f 100644 --- a/pkg/compliance/resolver.go +++ b/pkg/compliance/resolver.go @@ -32,7 +32,7 @@ import ( docker "github.com/docker/docker/client" - "github.com/shirou/gopsutil/v3/process" + "github.com/shirou/gopsutil/v4/process" yamlv2 "gopkg.in/yaml.v2" yamlv3 "gopkg.in/yaml.v3" diff --git a/pkg/config/env/go.mod b/pkg/config/env/go.mod index c98d3f9e2d11e..c2fa1454d2fee 100644 --- a/pkg/config/env/go.mod +++ b/pkg/config/env/go.mod @@ -27,6 +27,7 @@ require ( github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -37,7 +38,7 @@ require ( github.com/pelletier/go-toml v1.9.5 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect diff --git a/pkg/config/env/go.sum b/pkg/config/env/go.sum index b7b383aee36ed..3714c29c49041 100644 --- a/pkg/config/env/go.sum +++ b/pkg/config/env/go.sum @@ -34,6 +34,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -146,8 +148,8 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/pkg/config/mock/go.mod b/pkg/config/mock/go.mod index e526a9aa1d0ee..60543231cb311 100644 --- a/pkg/config/mock/go.mod +++ b/pkg/config/mock/go.mod @@ -57,6 +57,7 @@ require ( github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -69,8 +70,7 @@ require ( github.com/pelletier/go-toml v1.9.5 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect diff --git a/pkg/config/mock/go.sum b/pkg/config/mock/go.sum index b60bbee1b243d..fc14fcc51ad7e 100644 --- a/pkg/config/mock/go.sum +++ b/pkg/config/mock/go.sum @@ -38,6 +38,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -167,12 +169,8 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/pkg/config/remote/go.mod b/pkg/config/remote/go.mod index 7442b0348731d..1e2695599a4ca 100644 --- a/pkg/config/remote/go.mod +++ b/pkg/config/remote/go.mod @@ -108,8 +108,7 @@ require ( github.com/patrickmn/go-cache v2.1.0+incompatible // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect github.com/ryanuber/go-glob v1.0.0 // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect diff --git a/pkg/config/remote/go.sum b/pkg/config/remote/go.sum index a5c2739769aa2..eb4fa22065545 100644 --- a/pkg/config/remote/go.sum +++ b/pkg/config/remote/go.sum @@ -255,12 +255,8 @@ github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkB github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= github.com/secure-systems-lab/go-securesystemslib v0.8.0 h1:mr5An6X45Kb2nddcFlbmfHkLguCE9laoZCUzEEpIZXA= github.com/secure-systems-lab/go-securesystemslib v0.8.0/go.mod h1:UH2VZVuJfCYR8WgMlCU1uFsOUU+KeyrTWcSS73NBOzU= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= diff --git a/pkg/config/setup/go.mod b/pkg/config/setup/go.mod index 1813f0c12bcbd..0fc0b943272aa 100644 --- a/pkg/config/setup/go.mod +++ b/pkg/config/setup/go.mod @@ -69,6 +69,7 @@ require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -87,8 +88,7 @@ require ( github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.60.1 // indirect github.com/prometheus/procfs v0.15.1 // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/pkg/config/setup/go.sum b/pkg/config/setup/go.sum index a67414c323f7c..8f0854bbfc0b9 100644 --- a/pkg/config/setup/go.sum +++ b/pkg/config/setup/go.sum @@ -43,6 +43,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -177,12 +179,8 @@ github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/f github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/pkg/config/utils/go.mod b/pkg/config/utils/go.mod index c27cbcf9b59f8..3894ed026ecc5 100644 --- a/pkg/config/utils/go.mod +++ b/pkg/config/utils/go.mod @@ -62,6 +62,7 @@ require ( github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -74,8 +75,7 @@ require ( github.com/pelletier/go-toml v1.9.5 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect diff --git a/pkg/config/utils/go.sum b/pkg/config/utils/go.sum index b60bbee1b243d..fc14fcc51ad7e 100644 --- a/pkg/config/utils/go.sum +++ b/pkg/config/utils/go.sum @@ -38,6 +38,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -167,12 +169,8 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/pkg/fleet/installer/packages/docker.go b/pkg/fleet/installer/packages/docker.go index 8c19fc04a4ec8..45984ca96a652 100644 --- a/pkg/fleet/installer/packages/docker.go +++ b/pkg/fleet/installer/packages/docker.go @@ -21,7 +21,7 @@ import ( "time" "github.com/DataDog/datadog-agent/pkg/util/log" - "github.com/shirou/gopsutil/v3/process" + "github.com/shirou/gopsutil/v4/process" "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" ) diff --git a/pkg/gohai/go.mod b/pkg/gohai/go.mod index fb749217ba632..45edc82c08f38 100644 --- a/pkg/gohai/go.mod +++ b/pkg/gohai/go.mod @@ -7,7 +7,7 @@ go 1.23.0 require ( github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 github.com/moby/sys/mountinfo v0.7.2 - github.com/shirou/gopsutil/v3 v3.24.5 + github.com/shirou/gopsutil/v4 v4.24.11 github.com/stretchr/testify v1.10.0 golang.org/x/sys v0.28.0 ) @@ -17,12 +17,11 @@ require ( github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect - github.com/shoenig/test v1.7.1 // indirect github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect diff --git a/pkg/gohai/go.sum b/pkg/gohai/go.sum index d08fc94f6ffe7..99c1b368ae068 100644 --- a/pkg/gohai/go.sum +++ b/pkg/gohai/go.sum @@ -2,6 +2,8 @@ github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1 github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -22,12 +24,8 @@ github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkB github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= diff --git a/pkg/gohai/processes/gops/process_info.go b/pkg/gohai/processes/gops/process_info.go index 9f830d935ea47..bdbd3c4601109 100644 --- a/pkg/gohai/processes/gops/process_info.go +++ b/pkg/gohai/processes/gops/process_info.go @@ -12,8 +12,8 @@ import ( "fmt" "runtime" - "github.com/shirou/gopsutil/v3/mem" - "github.com/shirou/gopsutil/v3/process" + "github.com/shirou/gopsutil/v4/mem" + "github.com/shirou/gopsutil/v4/process" "github.com/DataDog/datadog-agent/pkg/util/log" ) diff --git a/pkg/internaltelemetry/client.go b/pkg/internaltelemetry/client.go index 4469ba0d0f060..52b1b2010edf0 100644 --- a/pkg/internaltelemetry/client.go +++ b/pkg/internaltelemetry/client.go @@ -25,7 +25,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/trace/config" "github.com/DataDog/datadog-agent/pkg/util/log" "github.com/DataDog/datadog-agent/pkg/version" - "github.com/shirou/gopsutil/v3/host" + "github.com/shirou/gopsutil/v4/host" ) const ( diff --git a/pkg/logs/auditor/go.mod b/pkg/logs/auditor/go.mod index ddbd7465dad7f..56b528a2ff3d4 100644 --- a/pkg/logs/auditor/go.mod +++ b/pkg/logs/auditor/go.mod @@ -76,6 +76,7 @@ require ( github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -88,8 +89,7 @@ require ( github.com/pelletier/go-toml v1.9.5 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect diff --git a/pkg/logs/auditor/go.sum b/pkg/logs/auditor/go.sum index b60bbee1b243d..fc14fcc51ad7e 100644 --- a/pkg/logs/auditor/go.sum +++ b/pkg/logs/auditor/go.sum @@ -38,6 +38,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -167,12 +169,8 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/pkg/logs/client/go.mod b/pkg/logs/client/go.mod index 98d517064e966..a19f07054482e 100644 --- a/pkg/logs/client/go.mod +++ b/pkg/logs/client/go.mod @@ -96,6 +96,7 @@ require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -115,8 +116,7 @@ require ( github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.60.1 // indirect github.com/prometheus/procfs v0.15.1 // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/pkg/logs/client/go.sum b/pkg/logs/client/go.sum index 1280297d26d15..30b75d8cb57df 100644 --- a/pkg/logs/client/go.sum +++ b/pkg/logs/client/go.sum @@ -40,6 +40,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -174,12 +176,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/pkg/logs/diagnostic/go.mod b/pkg/logs/diagnostic/go.mod index 5d1ec2ef8d375..5b5fbaf9df94f 100644 --- a/pkg/logs/diagnostic/go.mod +++ b/pkg/logs/diagnostic/go.mod @@ -80,6 +80,7 @@ require ( github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -93,8 +94,7 @@ require ( github.com/pelletier/go-toml v1.9.5 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/pkg/logs/diagnostic/go.sum b/pkg/logs/diagnostic/go.sum index 1441562d69bde..dc0ab4305d421 100644 --- a/pkg/logs/diagnostic/go.sum +++ b/pkg/logs/diagnostic/go.sum @@ -39,6 +39,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -169,12 +171,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/pkg/logs/message/go.mod b/pkg/logs/message/go.mod index 926d1755736a7..2a031a302ff66 100644 --- a/pkg/logs/message/go.mod +++ b/pkg/logs/message/go.mod @@ -72,6 +72,7 @@ require ( github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -84,8 +85,7 @@ require ( github.com/pelletier/go-toml v1.9.5 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect diff --git a/pkg/logs/message/go.sum b/pkg/logs/message/go.sum index b60bbee1b243d..fc14fcc51ad7e 100644 --- a/pkg/logs/message/go.sum +++ b/pkg/logs/message/go.sum @@ -38,6 +38,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -167,12 +169,8 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/pkg/logs/pipeline/go.mod b/pkg/logs/pipeline/go.mod index 8e94ae545d913..2802d7256f594 100644 --- a/pkg/logs/pipeline/go.mod +++ b/pkg/logs/pipeline/go.mod @@ -114,6 +114,7 @@ require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect @@ -135,8 +136,7 @@ require ( github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.60.1 // indirect github.com/prometheus/procfs v0.15.1 // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/pkg/logs/pipeline/go.sum b/pkg/logs/pipeline/go.sum index 2046340fbb070..920238d6c8024 100644 --- a/pkg/logs/pipeline/go.sum +++ b/pkg/logs/pipeline/go.sum @@ -44,6 +44,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -186,12 +188,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/pkg/logs/processor/go.mod b/pkg/logs/processor/go.mod index 92711d3f0904c..699fe4e8ad518 100644 --- a/pkg/logs/processor/go.mod +++ b/pkg/logs/processor/go.mod @@ -94,6 +94,7 @@ require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect @@ -114,8 +115,7 @@ require ( github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.60.1 // indirect github.com/prometheus/procfs v0.15.1 // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/pkg/logs/processor/go.sum b/pkg/logs/processor/go.sum index 90a3df8fcf57a..09e7a690fdf60 100644 --- a/pkg/logs/processor/go.sum +++ b/pkg/logs/processor/go.sum @@ -44,6 +44,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -181,12 +183,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/pkg/logs/sds/go.mod b/pkg/logs/sds/go.mod index de57c77f0c334..a0d137977450b 100644 --- a/pkg/logs/sds/go.mod +++ b/pkg/logs/sds/go.mod @@ -89,6 +89,7 @@ require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -108,8 +109,7 @@ require ( github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.60.1 // indirect github.com/prometheus/procfs v0.15.1 // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/pkg/logs/sds/go.sum b/pkg/logs/sds/go.sum index f4fe0336fb3e7..e23451e060e85 100644 --- a/pkg/logs/sds/go.sum +++ b/pkg/logs/sds/go.sum @@ -40,6 +40,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -174,12 +176,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/pkg/logs/sender/go.mod b/pkg/logs/sender/go.mod index 34f1b22725b61..b769f58828d16 100644 --- a/pkg/logs/sender/go.mod +++ b/pkg/logs/sender/go.mod @@ -96,6 +96,7 @@ require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -115,8 +116,7 @@ require ( github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.60.1 // indirect github.com/prometheus/procfs v0.15.1 // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/pkg/logs/sender/go.sum b/pkg/logs/sender/go.sum index 1280297d26d15..30b75d8cb57df 100644 --- a/pkg/logs/sender/go.sum +++ b/pkg/logs/sender/go.sum @@ -40,6 +40,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -174,12 +176,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/pkg/logs/sources/go.mod b/pkg/logs/sources/go.mod index d4cb6c8fae893..2e7aaed02aad4 100644 --- a/pkg/logs/sources/go.mod +++ b/pkg/logs/sources/go.mod @@ -70,6 +70,7 @@ require ( github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -82,8 +83,7 @@ require ( github.com/pelletier/go-toml v1.9.5 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect diff --git a/pkg/logs/sources/go.sum b/pkg/logs/sources/go.sum index b60bbee1b243d..fc14fcc51ad7e 100644 --- a/pkg/logs/sources/go.sum +++ b/pkg/logs/sources/go.sum @@ -38,6 +38,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -167,12 +169,8 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/pkg/logs/util/testutils/go.mod b/pkg/logs/util/testutils/go.mod index c8bdb9b516e9f..1669f7f2029b8 100644 --- a/pkg/logs/util/testutils/go.mod +++ b/pkg/logs/util/testutils/go.mod @@ -70,6 +70,7 @@ require ( github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -81,8 +82,7 @@ require ( github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect github.com/pelletier/go-toml v1.9.5 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect diff --git a/pkg/logs/util/testutils/go.sum b/pkg/logs/util/testutils/go.sum index b60bbee1b243d..fc14fcc51ad7e 100644 --- a/pkg/logs/util/testutils/go.sum +++ b/pkg/logs/util/testutils/go.sum @@ -38,6 +38,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -167,12 +169,8 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/pkg/metrics/go.mod b/pkg/metrics/go.mod index 98ca0a495a8db..3e1a7d68759a6 100644 --- a/pkg/metrics/go.mod +++ b/pkg/metrics/go.mod @@ -81,6 +81,7 @@ require ( github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dustin/go-humanize v1.0.1 // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -100,8 +101,7 @@ require ( github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.60.1 // indirect github.com/prometheus/procfs v0.15.1 // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/pkg/metrics/go.sum b/pkg/metrics/go.sum index 5bbafd25cf4f1..245b5a427d4a7 100644 --- a/pkg/metrics/go.sum +++ b/pkg/metrics/go.sum @@ -46,6 +46,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -182,12 +184,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/pkg/process/checks/process.go b/pkg/process/checks/process.go index 2fd7fe7e1c3fd..add33a5f22d6a 100644 --- a/pkg/process/checks/process.go +++ b/pkg/process/checks/process.go @@ -15,7 +15,7 @@ import ( "time" model "github.com/DataDog/agent-payload/v5/process" - "github.com/shirou/gopsutil/v3/cpu" + "github.com/shirou/gopsutil/v4/cpu" "go.uber.org/atomic" "github.com/DataDog/datadog-agent/cmd/system-probe/api/client" diff --git a/pkg/process/checks/process_common_test.go b/pkg/process/checks/process_common_test.go index 129b1c436aa88..4e8d5a7b6cbf5 100644 --- a/pkg/process/checks/process_common_test.go +++ b/pkg/process/checks/process_common_test.go @@ -12,7 +12,7 @@ import ( "testing" "time" - "github.com/shirou/gopsutil/v3/cpu" + "github.com/shirou/gopsutil/v4/cpu" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" diff --git a/pkg/process/checks/process_nix.go b/pkg/process/checks/process_nix.go index 4fe8a11e1ea92..1fd0bc4d89452 100644 --- a/pkg/process/checks/process_nix.go +++ b/pkg/process/checks/process_nix.go @@ -13,7 +13,7 @@ import ( "strconv" model "github.com/DataDog/agent-payload/v5/process" - "github.com/shirou/gopsutil/v3/cpu" + "github.com/shirou/gopsutil/v4/cpu" "github.com/DataDog/datadog-agent/pkg/process/procutil" "github.com/DataDog/datadog-agent/pkg/util/system" diff --git a/pkg/process/checks/process_nix_test.go b/pkg/process/checks/process_nix_test.go index 2cbd10d5e3217..c819e7fddebd7 100644 --- a/pkg/process/checks/process_nix_test.go +++ b/pkg/process/checks/process_nix_test.go @@ -17,7 +17,7 @@ import ( "github.com/stretchr/testify/assert" model "github.com/DataDog/agent-payload/v5/process" - "github.com/shirou/gopsutil/v3/cpu" + "github.com/shirou/gopsutil/v4/cpu" "github.com/DataDog/datadog-agent/pkg/process/metadata/parser" "github.com/DataDog/datadog-agent/pkg/process/procutil" diff --git a/pkg/process/checks/process_rt.go b/pkg/process/checks/process_rt.go index 04be7253f42e4..e218a80fa732e 100644 --- a/pkg/process/checks/process_rt.go +++ b/pkg/process/checks/process_rt.go @@ -10,7 +10,7 @@ import ( "time" model "github.com/DataDog/agent-payload/v5/process" - "github.com/shirou/gopsutil/v3/cpu" + "github.com/shirou/gopsutil/v4/cpu" "github.com/DataDog/datadog-agent/pkg/process/net" "github.com/DataDog/datadog-agent/pkg/process/procutil" diff --git a/pkg/process/checks/process_test.go b/pkg/process/checks/process_test.go index c1f4be9e64388..d306809c51967 100644 --- a/pkg/process/checks/process_test.go +++ b/pkg/process/checks/process_test.go @@ -13,7 +13,7 @@ import ( "time" model "github.com/DataDog/agent-payload/v5/process" - "github.com/shirou/gopsutil/v3/cpu" + "github.com/shirou/gopsutil/v4/cpu" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" diff --git a/pkg/process/checks/process_windows.go b/pkg/process/checks/process_windows.go index bb9d2eb7c6f3e..3fb6cdce2058a 100644 --- a/pkg/process/checks/process_windows.go +++ b/pkg/process/checks/process_windows.go @@ -11,7 +11,7 @@ import ( "math" "runtime" - "github.com/shirou/gopsutil/v3/cpu" + "github.com/shirou/gopsutil/v4/cpu" model "github.com/DataDog/agent-payload/v5/process" diff --git a/pkg/process/checks/process_windows_test.go b/pkg/process/checks/process_windows_test.go index b6c310ff3e580..b0eb246ee88bb 100644 --- a/pkg/process/checks/process_windows_test.go +++ b/pkg/process/checks/process_windows_test.go @@ -11,7 +11,7 @@ import ( "testing" model "github.com/DataDog/agent-payload/v5/process" - "github.com/shirou/gopsutil/v3/cpu" + "github.com/shirou/gopsutil/v4/cpu" "github.com/stretchr/testify/assert" configmock "github.com/DataDog/datadog-agent/pkg/config/mock" diff --git a/pkg/process/checks/system_info.go b/pkg/process/checks/system_info.go index bb187880b77b4..1f101e6ff5b7f 100644 --- a/pkg/process/checks/system_info.go +++ b/pkg/process/checks/system_info.go @@ -10,8 +10,8 @@ package checks import ( // waiting for upstream fix to platform collection in containerized environments "github.com/DataDog/gopsutil/host" - "github.com/shirou/gopsutil/v3/cpu" - "github.com/shirou/gopsutil/v3/mem" + "github.com/shirou/gopsutil/v4/cpu" + "github.com/shirou/gopsutil/v4/mem" model "github.com/DataDog/agent-payload/v5/process" ) diff --git a/pkg/process/checks/system_info_darwin.go b/pkg/process/checks/system_info_darwin.go index 908df5428d5c8..065eec50b19fa 100644 --- a/pkg/process/checks/system_info_darwin.go +++ b/pkg/process/checks/system_info_darwin.go @@ -14,8 +14,8 @@ import ( // difference between methods for collecting macOS platform, kernel version // between shirou and Datadog psutil "github.com/DataDog/gopsutil/host" - "github.com/shirou/gopsutil/v3/cpu" - "github.com/shirou/gopsutil/v3/mem" + "github.com/shirou/gopsutil/v4/cpu" + "github.com/shirou/gopsutil/v4/mem" "golang.org/x/sys/unix" ) diff --git a/pkg/process/checks/system_info_darwin_test.go b/pkg/process/checks/system_info_darwin_test.go index 264aae24a1868..d7bc8230b3df9 100644 --- a/pkg/process/checks/system_info_darwin_test.go +++ b/pkg/process/checks/system_info_darwin_test.go @@ -10,7 +10,7 @@ package checks import ( "testing" - "github.com/shirou/gopsutil/v3/cpu" + "github.com/shirou/gopsutil/v4/cpu" "github.com/stretchr/testify/assert" ) diff --git a/pkg/process/procutil/process_windows_toolhelp.go b/pkg/process/procutil/process_windows_toolhelp.go index e96b9aabebb78..204496f30701c 100644 --- a/pkg/process/procutil/process_windows_toolhelp.go +++ b/pkg/process/procutil/process_windows_toolhelp.go @@ -16,7 +16,7 @@ import ( "github.com/shirou/w32" "golang.org/x/sys/windows" - process "github.com/shirou/gopsutil/v3/process" + process "github.com/shirou/gopsutil/v4/process" "github.com/DataDog/datadog-agent/pkg/util/log" "github.com/DataDog/datadog-agent/pkg/util/winutil" diff --git a/pkg/sbom/collectors/host/host_wmi.go b/pkg/sbom/collectors/host/host_wmi.go index 6af66de787354..937e2823dad90 100644 --- a/pkg/sbom/collectors/host/host_wmi.go +++ b/pkg/sbom/collectors/host/host_wmi.go @@ -21,7 +21,7 @@ import ( "github.com/DataDog/gopsutil/host" cyclonedxgo "github.com/CycloneDX/cyclonedx-go" - host2 "github.com/shirou/gopsutil/v3/host" + host2 "github.com/shirou/gopsutil/v4/host" "github.com/yusufpapurcu/wmi" ) diff --git a/pkg/security/probe/monitors/runtime/runtime_monitor.go b/pkg/security/probe/monitors/runtime/runtime_monitor.go index 403cba55e8052..8f0d3511def76 100644 --- a/pkg/security/probe/monitors/runtime/runtime_monitor.go +++ b/pkg/security/probe/monitors/runtime/runtime_monitor.go @@ -14,7 +14,7 @@ import ( "strconv" "strings" - "github.com/shirou/gopsutil/v3/process" + "github.com/shirou/gopsutil/v4/process" "github.com/DataDog/datadog-go/v5/statsd" diff --git a/pkg/security/probe/probe_linux.go b/pkg/security/probe/probe_linux.go index 83c2c4800215d..b4b557db19aea 100644 --- a/pkg/security/probe/probe_linux.go +++ b/pkg/security/probe/probe_linux.go @@ -11,7 +11,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/ebpf/kernel" "github.com/DataDog/datadog-agent/pkg/security/events" "github.com/DataDog/datadog-agent/pkg/security/utils" - gopsutilProcess "github.com/shirou/gopsutil/v3/process" + gopsutilProcess "github.com/shirou/gopsutil/v4/process" ) const ( diff --git a/pkg/security/probe/process_killer_linux.go b/pkg/security/probe/process_killer_linux.go index 6586399fa8585..0d038f62b44a2 100644 --- a/pkg/security/probe/process_killer_linux.go +++ b/pkg/security/probe/process_killer_linux.go @@ -11,7 +11,7 @@ import ( "fmt" "syscall" - psutil "github.com/shirou/gopsutil/v3/process" + psutil "github.com/shirou/gopsutil/v4/process" "github.com/DataDog/datadog-agent/pkg/security/secl/model" ) diff --git a/pkg/security/ptracer/proc.go b/pkg/security/ptracer/proc.go index 0484449f2ac94..8a435e4599534 100644 --- a/pkg/security/ptracer/proc.go +++ b/pkg/security/ptracer/proc.go @@ -16,7 +16,7 @@ import ( "strings" "time" - "github.com/shirou/gopsutil/v3/process" + "github.com/shirou/gopsutil/v4/process" "github.com/DataDog/datadog-agent/pkg/security/proto/ebpfless" ) diff --git a/pkg/security/resolvers/process/resolver_ebpf.go b/pkg/security/resolvers/process/resolver_ebpf.go index c9a3fd4f8ad7e..dc5694dd55647 100644 --- a/pkg/security/resolvers/process/resolver_ebpf.go +++ b/pkg/security/resolvers/process/resolver_ebpf.go @@ -26,7 +26,7 @@ import ( manager "github.com/DataDog/ebpf-manager" lib "github.com/cilium/ebpf" "github.com/hashicorp/golang-lru/v2/simplelru" - "github.com/shirou/gopsutil/v3/process" + "github.com/shirou/gopsutil/v4/process" "go.uber.org/atomic" "github.com/DataDog/datadog-agent/pkg/process/procutil" @@ -384,14 +384,14 @@ func (p *EBPFResolver) enrichEventFromProc(entry *model.ProcessCacheEntry, proc entry.ProcessContext.Pid = pid entry.ProcessContext.Tid = pid if len(filledProc.Uids) >= 4 { - entry.Credentials.UID = uint32(filledProc.Uids[0]) - entry.Credentials.EUID = uint32(filledProc.Uids[1]) - entry.Credentials.FSUID = uint32(filledProc.Uids[3]) + entry.Credentials.UID = filledProc.Uids[0] + entry.Credentials.EUID = filledProc.Uids[1] + entry.Credentials.FSUID = filledProc.Uids[3] } if len(filledProc.Gids) >= 4 { - entry.Credentials.GID = uint32(filledProc.Gids[0]) - entry.Credentials.EGID = uint32(filledProc.Gids[1]) - entry.Credentials.FSGID = uint32(filledProc.Gids[3]) + entry.Credentials.GID = filledProc.Gids[0] + entry.Credentials.EGID = filledProc.Gids[1] + entry.Credentials.FSGID = filledProc.Gids[3] } // fetch login_uid entry.Credentials.AUID, err = utils.GetLoginUID(uint32(proc.Pid)) diff --git a/pkg/security/security_profile/activity_tree/process_node_snapshot.go b/pkg/security/security_profile/activity_tree/process_node_snapshot.go index aea6151f018e2..bd5cb069083b4 100644 --- a/pkg/security/security_profile/activity_tree/process_node_snapshot.go +++ b/pkg/security/security_profile/activity_tree/process_node_snapshot.go @@ -23,7 +23,7 @@ import ( "time" "github.com/prometheus/procfs" - "github.com/shirou/gopsutil/v3/process" + "github.com/shirou/gopsutil/v4/process" "golang.org/x/sys/unix" "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils" diff --git a/pkg/security/utils/numcpu.go b/pkg/security/utils/numcpu.go index b6e7506a3c351..7f488e739d166 100644 --- a/pkg/security/utils/numcpu.go +++ b/pkg/security/utils/numcpu.go @@ -9,7 +9,7 @@ package utils import ( - "github.com/shirou/gopsutil/v3/cpu" + "github.com/shirou/gopsutil/v4/cpu" ) // NumCPU returns the count of CPUs in the CPU affinity mask of the pid 1 process diff --git a/pkg/security/utils/proc_common.go b/pkg/security/utils/proc_common.go index 755221d676f20..2b5542a28f8b8 100644 --- a/pkg/security/utils/proc_common.go +++ b/pkg/security/utils/proc_common.go @@ -7,7 +7,7 @@ package utils import ( - "github.com/shirou/gopsutil/v3/process" + "github.com/shirou/gopsutil/v4/process" ) // GetProcesses returns list of active processes @@ -37,8 +37,8 @@ type FilledProcess struct { Ppid int32 CreateTime int64 Name string - Uids []int32 - Gids []int32 + Uids []uint32 + Gids []uint32 MemInfo *process.MemoryInfoStat Cmdline []string } diff --git a/pkg/security/utils/proc_linux.go b/pkg/security/utils/proc_linux.go index 5868a0a958457..1ee6765ae737e 100644 --- a/pkg/security/utils/proc_linux.go +++ b/pkg/security/utils/proc_linux.go @@ -21,7 +21,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/security/secl/model" "github.com/DataDog/datadog-agent/pkg/util/kernel" - "github.com/shirou/gopsutil/v3/process" + "github.com/shirou/gopsutil/v4/process" ) // Getpid returns the current process ID in the host namespace diff --git a/pkg/serializer/go.mod b/pkg/serializer/go.mod index 6975af71a3a78..4b5e86e94590c 100644 --- a/pkg/serializer/go.mod +++ b/pkg/serializer/go.mod @@ -132,6 +132,7 @@ require ( github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dustin/go-humanize v1.0.1 // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fatih/color v1.18.0 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect @@ -160,8 +161,7 @@ require ( github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.60.1 // indirect github.com/prometheus/procfs v0.15.1 // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/pkg/serializer/go.sum b/pkg/serializer/go.sum index 8260879f5cb4d..de83965cdf01f 100644 --- a/pkg/serializer/go.sum +++ b/pkg/serializer/go.sum @@ -54,6 +54,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= @@ -222,12 +224,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/pkg/trace/go.mod b/pkg/trace/go.mod index 382915cd7b380..9a1f316511e3a 100644 --- a/pkg/trace/go.mod +++ b/pkg/trace/go.mod @@ -32,7 +32,6 @@ require ( github.com/google/gofuzz v1.2.0 github.com/google/uuid v1.6.0 github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.115.0 - github.com/shirou/gopsutil/v3 v3.24.4 github.com/stretchr/testify v1.10.0 github.com/tinylib/msgp v1.2.4 github.com/vmihailenco/msgpack/v4 v4.3.13 @@ -52,7 +51,10 @@ require ( k8s.io/apimachinery v0.31.2 ) -require go.opentelemetry.io/collector/component/componenttest v0.115.0 +require ( + github.com/shirou/gopsutil/v4 v4.24.11 + go.opentelemetry.io/collector/component/componenttest v0.115.0 +) require go.opentelemetry.io/collector/processor v0.115.0 // indirect @@ -66,6 +68,7 @@ require ( github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.3.0 // indirect @@ -85,8 +88,6 @@ require ( github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect - github.com/shoenig/test v1.7.1 // indirect github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/vmihailenco/tagparser v0.1.2 // indirect diff --git a/pkg/trace/go.sum b/pkg/trace/go.sum index 5d3d0d4a89d22..f4ee6919325a7 100644 --- a/pkg/trace/go.sum +++ b/pkg/trace/go.sum @@ -64,7 +64,6 @@ github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiu github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= @@ -101,7 +100,6 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= @@ -134,7 +132,6 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= @@ -149,15 +146,8 @@ github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/secure-systems-lab/go-securesystemslib v0.8.0 h1:mr5An6X45Kb2nddcFlbmfHkLguCE9laoZCUzEEpIZXA= github.com/secure-systems-lab/go-securesystemslib v0.8.0/go.mod h1:UH2VZVuJfCYR8WgMlCU1uFsOUU+KeyrTWcSS73NBOzU= -github.com/shirou/gopsutil/v3 v3.24.4 h1:dEHgzZXt4LMNm+oYELpzl9YCqV65Yr/6SfrvgRBtXeU= -github.com/shirou/gopsutil/v3 v3.24.4/go.mod h1:lTd2mdiOspcqLgAnr9/nGi71NkeMpWKdmhuxm9GusH8= github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= @@ -174,16 +164,12 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU= github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/vmihailenco/msgpack/v4 v4.3.13 h1:A2wsiTbvp63ilDaWmsk2wjx6xZdxQOvpiNlKBGKKXKI= @@ -369,9 +355,6 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220627191245-f75cf1eec38b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= diff --git a/pkg/trace/stats/oteltest/go.mod b/pkg/trace/stats/oteltest/go.mod index e80c6fc27dccd..1880e691cf094 100644 --- a/pkg/trace/stats/oteltest/go.mod +++ b/pkg/trace/stats/oteltest/go.mod @@ -40,6 +40,7 @@ require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.3.0 // indirect @@ -61,8 +62,7 @@ require ( github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/tinylib/msgp v1.2.4 // indirect github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect diff --git a/pkg/trace/stats/oteltest/go.sum b/pkg/trace/stats/oteltest/go.sum index 520e6d9e0d851..d1dd6e5377312 100644 --- a/pkg/trace/stats/oteltest/go.sum +++ b/pkg/trace/stats/oteltest/go.sum @@ -34,6 +34,8 @@ github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDD github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= @@ -99,12 +101,8 @@ github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/secure-systems-lab/go-securesystemslib v0.8.0 h1:mr5An6X45Kb2nddcFlbmfHkLguCE9laoZCUzEEpIZXA= github.com/secure-systems-lab/go-securesystemslib v0.8.0/go.mod h1:UH2VZVuJfCYR8WgMlCU1uFsOUU+KeyrTWcSS73NBOzU= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= diff --git a/pkg/trace/watchdog/cpu.go b/pkg/trace/watchdog/cpu.go index a1799701ab3d1..a2feda3f58d32 100644 --- a/pkg/trace/watchdog/cpu.go +++ b/pkg/trace/watchdog/cpu.go @@ -14,7 +14,7 @@ import ( "strconv" "github.com/DataDog/datadog-agent/pkg/trace/log" - "github.com/shirou/gopsutil/v3/process" + "github.com/shirou/gopsutil/v4/process" ) func getpid() int { diff --git a/pkg/util/filesystem/disk.go b/pkg/util/filesystem/disk.go index a80165d0ca872..a851bcd1dfb2d 100644 --- a/pkg/util/filesystem/disk.go +++ b/pkg/util/filesystem/disk.go @@ -6,7 +6,7 @@ package filesystem -import "github.com/shirou/gopsutil/v3/disk" +import "github.com/shirou/gopsutil/v4/disk" // Disk gets information about the disk type Disk struct{} diff --git a/pkg/util/filesystem/go.mod b/pkg/util/filesystem/go.mod index bc466baa93e3e..1a0effc2f07e8 100644 --- a/pkg/util/filesystem/go.mod +++ b/pkg/util/filesystem/go.mod @@ -13,7 +13,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 - github.com/shirou/gopsutil/v3 v3.24.5 + github.com/shirou/gopsutil/v4 v4.24.11 github.com/stretchr/testify v1.10.0 golang.org/x/sys v0.28.0 ) @@ -23,6 +23,7 @@ require ( github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect diff --git a/pkg/util/filesystem/go.sum b/pkg/util/filesystem/go.sum index ed5847ab111d3..97cab95a8f162 100644 --- a/pkg/util/filesystem/go.sum +++ b/pkg/util/filesystem/go.sum @@ -2,6 +2,8 @@ github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1 github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -17,8 +19,8 @@ github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkB github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= diff --git a/pkg/util/flavor/go.mod b/pkg/util/flavor/go.mod index e6597dff10c65..2b3a00706f758 100644 --- a/pkg/util/flavor/go.mod +++ b/pkg/util/flavor/go.mod @@ -58,6 +58,7 @@ require ( github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -70,8 +71,7 @@ require ( github.com/pelletier/go-toml v1.9.5 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect diff --git a/pkg/util/flavor/go.sum b/pkg/util/flavor/go.sum index b60bbee1b243d..fc14fcc51ad7e 100644 --- a/pkg/util/flavor/go.sum +++ b/pkg/util/flavor/go.sum @@ -38,6 +38,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -167,12 +169,8 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/pkg/util/grpc/go.mod b/pkg/util/grpc/go.mod index 8aacd9bf986f0..b2b70c55bbeb2 100644 --- a/pkg/util/grpc/go.mod +++ b/pkg/util/grpc/go.mod @@ -69,6 +69,7 @@ require ( github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/golang/protobuf v1.5.4 // indirect @@ -84,8 +85,7 @@ require ( github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect diff --git a/pkg/util/grpc/go.sum b/pkg/util/grpc/go.sum index f3926160d06fa..1ca8e8dc8a8df 100644 --- a/pkg/util/grpc/go.sum +++ b/pkg/util/grpc/go.sum @@ -44,6 +44,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -189,12 +191,8 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/pkg/util/http/go.mod b/pkg/util/http/go.mod index 561ab50ecabe4..abb2860789433 100644 --- a/pkg/util/http/go.mod +++ b/pkg/util/http/go.mod @@ -60,6 +60,7 @@ require ( github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -72,8 +73,7 @@ require ( github.com/pelletier/go-toml v1.9.5 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect diff --git a/pkg/util/http/go.sum b/pkg/util/http/go.sum index d12b0ce7595dd..60bade5a7db31 100644 --- a/pkg/util/http/go.sum +++ b/pkg/util/http/go.sum @@ -38,6 +38,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -167,12 +169,8 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/pkg/util/ktime/resolver.go b/pkg/util/ktime/resolver.go index 36cfda9f166fa..e4f83638dafa6 100644 --- a/pkg/util/ktime/resolver.go +++ b/pkg/util/ktime/resolver.go @@ -13,7 +13,7 @@ import ( _ "unsafe" // unsafe import to call nanotime() which should be 2x quick than time.Now() - "github.com/shirou/gopsutil/v3/host" + "github.com/shirou/gopsutil/v4/host" ) // Resolver converts kernel monotonic timestamps to absolute times diff --git a/pkg/util/log/setup/go.mod b/pkg/util/log/setup/go.mod index 11b3815ca0a92..74ca271074423 100644 --- a/pkg/util/log/setup/go.mod +++ b/pkg/util/log/setup/go.mod @@ -59,6 +59,7 @@ require ( github.com/DataDog/viper v1.13.5 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -71,8 +72,7 @@ require ( github.com/pelletier/go-toml v1.9.5 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect diff --git a/pkg/util/log/setup/go.sum b/pkg/util/log/setup/go.sum index b60bbee1b243d..fc14fcc51ad7e 100644 --- a/pkg/util/log/setup/go.sum +++ b/pkg/util/log/setup/go.sum @@ -38,6 +38,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -167,12 +169,8 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= diff --git a/pkg/util/process_file_stats_linux.go b/pkg/util/process_file_stats_linux.go index 7da505889c0d3..79ef22922dc24 100644 --- a/pkg/util/process_file_stats_linux.go +++ b/pkg/util/process_file_stats_linux.go @@ -11,7 +11,7 @@ import ( "os" "github.com/DataDog/datadog-agent/pkg/util/log" - "github.com/shirou/gopsutil/v3/process" + "github.com/shirou/gopsutil/v4/process" ) // GetProcessFileStats returns the number of file handles the Agent process has open diff --git a/pkg/util/system/cpu_unix.go b/pkg/util/system/cpu_unix.go index c963b5e914692..124fa24e74474 100644 --- a/pkg/util/system/cpu_unix.go +++ b/pkg/util/system/cpu_unix.go @@ -8,7 +8,7 @@ package system import ( - "github.com/shirou/gopsutil/v3/cpu" + "github.com/shirou/gopsutil/v4/cpu" ) func init() { diff --git a/pkg/util/system/go.mod b/pkg/util/system/go.mod index 19c8faadba063..b91b137b720c2 100644 --- a/pkg/util/system/go.mod +++ b/pkg/util/system/go.mod @@ -17,7 +17,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/pointer v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/testutil v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 - github.com/shirou/gopsutil/v3 v3.24.5 + github.com/shirou/gopsutil/v4 v4.24.11 github.com/stretchr/testify v1.10.0 go.uber.org/atomic v1.11.0 golang.org/x/sys v0.28.0 @@ -28,13 +28,12 @@ require ( github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect - github.com/shoenig/test v1.7.1 // indirect github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect diff --git a/pkg/util/system/go.sum b/pkg/util/system/go.sum index 5b8aa8f5cf5c1..5dc55f7f10161 100644 --- a/pkg/util/system/go.sum +++ b/pkg/util/system/go.sum @@ -2,6 +2,8 @@ github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1 github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -22,12 +24,8 @@ github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkB github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= diff --git a/pkg/util/uuid/go.mod b/pkg/util/uuid/go.mod index 36c2bd314e410..ad2e7ef2c7f0a 100644 --- a/pkg/util/uuid/go.mod +++ b/pkg/util/uuid/go.mod @@ -11,7 +11,7 @@ replace ( require ( github.com/DataDog/datadog-agent/pkg/util/cache v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 - github.com/shirou/gopsutil/v3 v3.24.5 + github.com/shirou/gopsutil/v4 v4.24.11 golang.org/x/sys v0.28.0 ) @@ -19,12 +19,11 @@ require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.56.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect - github.com/shoenig/test v1.7.1 // indirect github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect diff --git a/pkg/util/uuid/go.sum b/pkg/util/uuid/go.sum index 45f247c1429f6..2e5f8b7759901 100644 --- a/pkg/util/uuid/go.sum +++ b/pkg/util/uuid/go.sum @@ -2,6 +2,8 @@ github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1 github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -22,12 +24,8 @@ github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkB github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= diff --git a/pkg/util/uuid/uuid_nix.go b/pkg/util/uuid/uuid_nix.go index 508f8da6dc4ff..9f8eb0ab85065 100644 --- a/pkg/util/uuid/uuid_nix.go +++ b/pkg/util/uuid/uuid_nix.go @@ -8,7 +8,7 @@ package uuid import ( - gopsutilhost "github.com/shirou/gopsutil/v3/host" + gopsutilhost "github.com/shirou/gopsutil/v4/host" "github.com/DataDog/datadog-agent/pkg/util/cache" "github.com/DataDog/datadog-agent/pkg/util/log" diff --git a/test/otel/go.mod b/test/otel/go.mod index a20206bf8391a..81bc6ea692e7b 100644 --- a/test/otel/go.mod +++ b/test/otel/go.mod @@ -196,6 +196,7 @@ require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect + github.com/ebitengine/purego v0.8.1 // indirect github.com/fatih/color v1.18.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect @@ -248,8 +249,7 @@ require ( github.com/prometheus/procfs v0.15.1 // indirect github.com/rs/cors v1.11.1 // indirect github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect - github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shirou/gopsutil/v4 v4.24.11 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect diff --git a/test/otel/go.sum b/test/otel/go.sum index a2ed9a90d5779..3637c4f1bd224 100644 --- a/test/otel/go.sum +++ b/test/otel/go.sum @@ -85,6 +85,8 @@ github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDD github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= @@ -307,12 +309,8 @@ github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/secure-systems-lab/go-securesystemslib v0.8.0 h1:mr5An6X45Kb2nddcFlbmfHkLguCE9laoZCUzEEpIZXA= github.com/secure-systems-lab/go-securesystemslib v0.8.0/go.mod h1:UH2VZVuJfCYR8WgMlCU1uFsOUU+KeyrTWcSS73NBOzU= -github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= -github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= -github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8= +github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= From 9419cbbcba6e76f5f99dbd52323cc1584f622270 Mon Sep 17 00:00:00 2001 From: Kevin Fairise <132568982+KevinFairise2@users.noreply.github.com> Date: Thu, 12 Dec 2024 13:44:59 +0100 Subject: [PATCH 431/439] Revert "Revert "When running in CI, scrub e2e tests output to avoid leaking keys"" (#32044) --- tasks/new_e2e_tests.py | 9 ++++++++- tasks/tools/gotest-scrubbed.sh | 7 +++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100755 tasks/tools/gotest-scrubbed.sh diff --git a/tasks/new_e2e_tests.py b/tasks/new_e2e_tests.py index cf4b99caec7e6..74f027afd1582 100644 --- a/tasks/new_e2e_tests.py +++ b/tasks/new_e2e_tests.py @@ -111,7 +111,14 @@ def run( test_run_arg = f"-run {test_run_name}" cmd = f'gotestsum --format {gotestsum_format} ' - cmd += '{junit_file_flag} {json_flag} --packages="{packages}" -- -ldflags="-X {REPO_PATH}/test/new-e2e/tests/containers.GitCommit={commit}" {verbose} -mod={go_mod} -vet=off -timeout {timeout} -tags "{go_build_tags}" {nocache} {run} {skip} {test_run_arg} -args {osversion} {platform} {major_version} {arch} {flavor} {cws_supported_osversion} {src_agent_version} {dest_agent_version} {keep_stacks} {extra_flags}' + scrubber_raw_command = "" + # Scrub the test output to avoid leaking API or APP keys when running in the CI + if running_in_ci(): + scrubber_raw_command = ( + # Using custom go command piped with scrubber sed instructions https://github.com/gotestyourself/gotestsum#custom-go-test-command + f"--raw-command {os.path.join(os.path.dirname(__file__), 'tools', 'gotest-scrubbed.sh')} {{packages}}" + ) + cmd += f'{{junit_file_flag}} {{json_flag}} --packages="{{packages}}" {scrubber_raw_command} -- -ldflags="-X {{REPO_PATH}}/test/new-e2e/tests/containers.GitCommit={{commit}}" {{verbose}} -mod={{go_mod}} -vet=off -timeout {{timeout}} -tags "{{go_build_tags}}" {{nocache}} {{run}} {{skip}} {{test_run_arg}} -args {{osversion}} {{platform}} {{major_version}} {{arch}} {{flavor}} {{cws_supported_osversion}} {{src_agent_version}} {{dest_agent_version}} {{keep_stacks}} {{extra_flags}}' args = { "go_mod": "readonly", diff --git a/tasks/tools/gotest-scrubbed.sh b/tasks/tools/gotest-scrubbed.sh new file mode 100755 index 0000000000000..25ffaf544dd11 --- /dev/null +++ b/tasks/tools/gotest-scrubbed.sh @@ -0,0 +1,7 @@ +#!/bin/bash +### This script is used to run go test and scrub the output, the command can be used as follow: +### ./gotest-scrubbed.sh -- +set -euo pipefail +go test -json "$1" "${@:3}" | +sed -E 's/\b[a-fA-F0-9]{27}([a-fA-F0-9]{5})\b/**************************\1/g' | # Scrub API keys +sed -E 's/\b[a-fA-F0-9]{35}([a-fA-F0-9]{5})\b/************************************\1/g' # Scrub APP keys From d2548eb924601aa2427ff3566b18ebf14b5fa4e9 Mon Sep 17 00:00:00 2001 From: maxime mouial Date: Thu, 12 Dec 2024 14:15:27 +0100 Subject: [PATCH 432/439] Bumping viper to v1.14.0 (#31973) --- comp/api/authtoken/go.mod | 2 +- comp/api/authtoken/go.sum | 4 ++-- comp/core/config/go.mod | 2 +- comp/core/config/go.sum | 4 ++-- comp/core/log/impl-trace/go.mod | 2 +- comp/core/log/impl-trace/go.sum | 4 ++-- comp/core/log/impl/go.mod | 2 +- comp/core/log/impl/go.sum | 4 ++-- comp/core/log/mock/go.mod | 2 +- comp/core/log/mock/go.sum | 4 ++-- comp/core/status/statusimpl/go.mod | 2 +- comp/core/status/statusimpl/go.sum | 4 ++-- comp/forwarder/defaultforwarder/go.mod | 2 +- comp/forwarder/defaultforwarder/go.sum | 4 ++-- comp/forwarder/orchestrator/orchestratorinterface/go.mod | 2 +- comp/forwarder/orchestrator/orchestratorinterface/go.sum | 4 ++-- comp/logs/agent/config/go.mod | 2 +- comp/logs/agent/config/go.sum | 4 ++-- comp/otelcol/converter/impl/go.mod | 2 +- comp/otelcol/converter/impl/go.sum | 4 ++-- comp/otelcol/ddflareextension/impl/go.mod | 2 +- comp/otelcol/ddflareextension/impl/go.sum | 4 ++-- comp/otelcol/logsagentpipeline/go.mod | 2 +- comp/otelcol/logsagentpipeline/go.sum | 4 ++-- comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod | 2 +- comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum | 4 ++-- comp/otelcol/otlp/components/exporter/datadogexporter/go.mod | 2 +- comp/otelcol/otlp/components/exporter/datadogexporter/go.sum | 4 ++-- .../otelcol/otlp/components/exporter/logsagentexporter/go.mod | 2 +- .../otelcol/otlp/components/exporter/logsagentexporter/go.sum | 4 ++-- .../otlp/components/exporter/serializerexporter/go.mod | 2 +- .../otlp/components/exporter/serializerexporter/go.sum | 4 ++-- comp/otelcol/otlp/testutil/go.mod | 2 +- comp/otelcol/otlp/testutil/go.sum | 4 ++-- comp/serializer/compression/go.mod | 2 +- comp/serializer/compression/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- pkg/api/go.mod | 2 +- pkg/api/go.sum | 4 ++-- pkg/config/env/go.mod | 2 +- pkg/config/env/go.sum | 4 ++-- pkg/config/mock/go.mod | 2 +- pkg/config/mock/go.sum | 4 ++-- pkg/config/model/go.mod | 2 +- pkg/config/model/go.sum | 4 ++-- pkg/config/nodetreemodel/go.mod | 2 +- pkg/config/nodetreemodel/go.sum | 4 ++-- pkg/config/remote/go.mod | 2 +- pkg/config/remote/go.sum | 4 ++-- pkg/config/setup/go.mod | 2 +- pkg/config/setup/go.sum | 4 ++-- pkg/config/structure/go.mod | 2 +- pkg/config/structure/go.sum | 4 ++-- pkg/config/teeconfig/go.mod | 2 +- pkg/config/teeconfig/go.sum | 4 ++-- pkg/config/utils/go.mod | 2 +- pkg/config/utils/go.sum | 4 ++-- pkg/logs/auditor/go.mod | 2 +- pkg/logs/auditor/go.sum | 4 ++-- pkg/logs/client/go.mod | 2 +- pkg/logs/client/go.sum | 4 ++-- pkg/logs/diagnostic/go.mod | 2 +- pkg/logs/diagnostic/go.sum | 4 ++-- pkg/logs/message/go.mod | 2 +- pkg/logs/message/go.sum | 4 ++-- pkg/logs/pipeline/go.mod | 2 +- pkg/logs/pipeline/go.sum | 4 ++-- pkg/logs/processor/go.mod | 2 +- pkg/logs/processor/go.sum | 4 ++-- pkg/logs/sds/go.mod | 2 +- pkg/logs/sds/go.sum | 4 ++-- pkg/logs/sender/go.mod | 2 +- pkg/logs/sender/go.sum | 4 ++-- pkg/logs/sources/go.mod | 2 +- pkg/logs/sources/go.sum | 4 ++-- pkg/logs/util/testutils/go.mod | 2 +- pkg/logs/util/testutils/go.sum | 4 ++-- pkg/metrics/go.mod | 2 +- pkg/metrics/go.sum | 4 ++-- pkg/serializer/go.mod | 2 +- pkg/serializer/go.sum | 4 ++-- pkg/util/flavor/go.mod | 2 +- pkg/util/flavor/go.sum | 4 ++-- pkg/util/grpc/go.mod | 2 +- pkg/util/grpc/go.sum | 4 ++-- pkg/util/http/go.mod | 2 +- pkg/util/http/go.sum | 4 ++-- pkg/util/log/setup/go.mod | 2 +- pkg/util/log/setup/go.sum | 4 ++-- test/otel/go.mod | 2 +- test/otel/go.sum | 4 ++-- 92 files changed, 138 insertions(+), 138 deletions(-) diff --git a/comp/api/authtoken/go.mod b/comp/api/authtoken/go.mod index e727e718a6054..6bf63f57e855b 100644 --- a/comp/api/authtoken/go.mod +++ b/comp/api/authtoken/go.mod @@ -76,7 +76,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect diff --git a/comp/api/authtoken/go.sum b/comp/api/authtoken/go.sum index dc0ab4305d421..e3973187c6caa 100644 --- a/comp/api/authtoken/go.sum +++ b/comp/api/authtoken/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/comp/core/config/go.mod b/comp/core/config/go.mod index 2d3997d7f778b..42ae3495ec40c 100644 --- a/comp/core/config/go.mod +++ b/comp/core/config/go.mod @@ -43,7 +43,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/optional v0.59.0 github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 - github.com/DataDog/viper v1.13.5 + github.com/DataDog/viper v1.14.0 github.com/stretchr/testify v1.10.0 go.uber.org/fx v1.23.0 ) diff --git a/comp/core/config/go.sum b/comp/core/config/go.sum index 72766499eff8d..def69bbe0b7b4 100644 --- a/comp/core/config/go.sum +++ b/comp/core/config/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/comp/core/log/impl-trace/go.mod b/comp/core/log/impl-trace/go.mod index bf2f0e158a0b0..1b107db1db8ee 100644 --- a/comp/core/log/impl-trace/go.mod +++ b/comp/core/log/impl-trace/go.mod @@ -77,7 +77,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/ebitengine/purego v0.8.1 // indirect diff --git a/comp/core/log/impl-trace/go.sum b/comp/core/log/impl-trace/go.sum index dc0ab4305d421..e3973187c6caa 100644 --- a/comp/core/log/impl-trace/go.sum +++ b/comp/core/log/impl-trace/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/comp/core/log/impl/go.mod b/comp/core/log/impl/go.mod index 8ed4ca6c7fef9..e6db1f6b650ff 100644 --- a/comp/core/log/impl/go.mod +++ b/comp/core/log/impl/go.mod @@ -66,7 +66,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect diff --git a/comp/core/log/impl/go.sum b/comp/core/log/impl/go.sum index dc0ab4305d421..e3973187c6caa 100644 --- a/comp/core/log/impl/go.sum +++ b/comp/core/log/impl/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/comp/core/log/mock/go.mod b/comp/core/log/mock/go.mod index 6bf266c22d51d..9f9b990745843 100644 --- a/comp/core/log/mock/go.mod +++ b/comp/core/log/mock/go.mod @@ -41,7 +41,7 @@ require ( github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.60.0-devel // indirect github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect diff --git a/comp/core/log/mock/go.sum b/comp/core/log/mock/go.sum index 430d4ba766a61..be954babd5c73 100644 --- a/comp/core/log/mock/go.sum +++ b/comp/core/log/mock/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/comp/core/status/statusimpl/go.mod b/comp/core/status/statusimpl/go.mod index 2f55879031d33..78738479544c0 100644 --- a/comp/core/status/statusimpl/go.mod +++ b/comp/core/status/statusimpl/go.mod @@ -78,7 +78,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect diff --git a/comp/core/status/statusimpl/go.sum b/comp/core/status/statusimpl/go.sum index dba3ab3934aa2..650216cc0ce50 100644 --- a/comp/core/status/statusimpl/go.sum +++ b/comp/core/status/statusimpl/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/comp/forwarder/defaultforwarder/go.mod b/comp/forwarder/defaultforwarder/go.mod index 41c6273f20aa8..05d96eab4fbcf 100644 --- a/comp/forwarder/defaultforwarder/go.mod +++ b/comp/forwarder/defaultforwarder/go.mod @@ -100,7 +100,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect diff --git a/comp/forwarder/defaultforwarder/go.sum b/comp/forwarder/defaultforwarder/go.sum index 744cfff2ec136..e668380b7ef00 100644 --- a/comp/forwarder/defaultforwarder/go.sum +++ b/comp/forwarder/defaultforwarder/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/comp/forwarder/orchestrator/orchestratorinterface/go.mod b/comp/forwarder/orchestrator/orchestratorinterface/go.mod index 29dcff0c8c429..cb7b6044aeca0 100644 --- a/comp/forwarder/orchestrator/orchestratorinterface/go.mod +++ b/comp/forwarder/orchestrator/orchestratorinterface/go.mod @@ -102,7 +102,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect diff --git a/comp/forwarder/orchestrator/orchestratorinterface/go.sum b/comp/forwarder/orchestrator/orchestratorinterface/go.sum index 23a50467e927d..49efb0a3efaf4 100644 --- a/comp/forwarder/orchestrator/orchestratorinterface/go.sum +++ b/comp/forwarder/orchestrator/orchestratorinterface/go.sum @@ -2,8 +2,8 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/cast v1.8.0 h1:uooY8bMzq+cjgiNP1VTquCWve5emgk8fRspZojJwQa8= github.com/DataDog/cast v1.8.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/comp/logs/agent/config/go.mod b/comp/logs/agent/config/go.mod index 1c98c4cbf92f8..c8360536b53c1 100644 --- a/comp/logs/agent/config/go.mod +++ b/comp/logs/agent/config/go.mod @@ -45,7 +45,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/fxutil v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 - github.com/DataDog/viper v1.13.5 + github.com/DataDog/viper v1.14.0 github.com/stretchr/testify v1.10.0 go.uber.org/fx v1.23.0 ) diff --git a/comp/logs/agent/config/go.sum b/comp/logs/agent/config/go.sum index dc0ab4305d421..e3973187c6caa 100644 --- a/comp/logs/agent/config/go.sum +++ b/comp/logs/agent/config/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/comp/otelcol/converter/impl/go.mod b/comp/otelcol/converter/impl/go.mod index 31c49f2e1381b..8b903df1c03a1 100644 --- a/comp/otelcol/converter/impl/go.mod +++ b/comp/otelcol/converter/impl/go.mod @@ -77,7 +77,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect diff --git a/comp/otelcol/converter/impl/go.sum b/comp/otelcol/converter/impl/go.sum index b97062bfa5313..f3a0f24d8dbe0 100644 --- a/comp/otelcol/converter/impl/go.sum +++ b/comp/otelcol/converter/impl/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/comp/otelcol/ddflareextension/impl/go.mod b/comp/otelcol/ddflareextension/impl/go.mod index 6422371da2f2c..aff23ccf9501f 100644 --- a/comp/otelcol/ddflareextension/impl/go.mod +++ b/comp/otelcol/ddflareextension/impl/go.mod @@ -273,7 +273,7 @@ require ( github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0 // indirect github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 // indirect github.com/DataDog/sketches-go v1.4.6 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/DataDog/zstd v1.5.6 // indirect github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f // indirect github.com/Microsoft/go-winio v0.6.2 // indirect diff --git a/comp/otelcol/ddflareextension/impl/go.sum b/comp/otelcol/ddflareextension/impl/go.sum index 7dd61c4dad8ad..be1b5d78f453d 100644 --- a/comp/otelcol/ddflareextension/impl/go.sum +++ b/comp/otelcol/ddflareextension/impl/go.sum @@ -92,8 +92,8 @@ github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 h1:/Dp1WBvekdus github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0/go.mod h1:asNuwNy1O2HbadkcZVuqmFGonfEzXS/SBvOo8V1MJvQ= github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I= github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f h1:5Vuo4niPKFkfwW55jV4vY0ih3VQ9RaQqeqY67fvRn8A= diff --git a/comp/otelcol/logsagentpipeline/go.mod b/comp/otelcol/logsagentpipeline/go.mod index d3347ab6c6669..603e8abcce366 100644 --- a/comp/otelcol/logsagentpipeline/go.mod +++ b/comp/otelcol/logsagentpipeline/go.mod @@ -107,7 +107,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect diff --git a/comp/otelcol/logsagentpipeline/go.sum b/comp/otelcol/logsagentpipeline/go.sum index 920238d6c8024..0816ff6b27cb5 100644 --- a/comp/otelcol/logsagentpipeline/go.sum +++ b/comp/otelcol/logsagentpipeline/go.sum @@ -4,8 +4,8 @@ github.com/DataDog/agent-payload/v5 v5.0.138 h1:Wg7hmWuoLC/o0X3zZ+uGcfRHPyaytlju github.com/DataDog/agent-payload/v5 v5.0.138/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 h1:RoH7VLzTnxHEugRPIgnGlxwDFszFGI7b3WZZUtWuPRM= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42/go.mod h1:TX7CTOQ3LbQjfAi4SwqUoR5gY1zfUk7VRBDTuArjaDc= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod index e76cecb0f1e19..a21412d390c1b 100644 --- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod +++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod @@ -122,7 +122,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum index 920238d6c8024..0816ff6b27cb5 100644 --- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum +++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum @@ -4,8 +4,8 @@ github.com/DataDog/agent-payload/v5 v5.0.138 h1:Wg7hmWuoLC/o0X3zZ+uGcfRHPyaytlju github.com/DataDog/agent-payload/v5 v5.0.138/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 h1:RoH7VLzTnxHEugRPIgnGlxwDFszFGI7b3WZZUtWuPRM= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42/go.mod h1:TX7CTOQ3LbQjfAi4SwqUoR5gY1zfUk7VRBDTuArjaDc= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod index f84cdc77b7d5d..5f275b6f0bb73 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod @@ -205,7 +205,7 @@ require ( github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0 // indirect github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 // indirect github.com/DataDog/sketches-go v1.4.6 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/DataDog/zstd v1.5.6 // indirect github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f // indirect github.com/Microsoft/go-winio v0.6.2 // indirect diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum index f8b034bc6c73e..fc769d52cb6f5 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum @@ -28,8 +28,8 @@ github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 h1:/Dp1WBvekdus github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0/go.mod h1:asNuwNy1O2HbadkcZVuqmFGonfEzXS/SBvOo8V1MJvQ= github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I= github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f h1:5Vuo4niPKFkfwW55jV4vY0ih3VQ9RaQqeqY67fvRn8A= diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod index a1f756dc64c47..94fee13bbfe24 100644 --- a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod @@ -93,7 +93,7 @@ require ( github.com/DataDog/datadog-api-client-go/v2 v2.31.0 // indirect github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0 // indirect github.com/DataDog/sketches-go v1.4.6 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/DataDog/zstd v1.5.6 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/briandowns/spinner v1.23.0 // indirect diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum index 88d5e3656f78f..4798a24352a51 100644 --- a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum @@ -10,8 +10,8 @@ github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0 h1:XD9Kd+baO66 github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0/go.mod h1:9ByLz9jISc176DzjIdaRfRKwaitqF8ie6RTvfP8Aufo= github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I= github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod index 00bd83d7866ec..f767ab1daffe5 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod @@ -137,7 +137,7 @@ require ( github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 // indirect github.com/DataDog/sketches-go v1.4.6 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/DataDog/zstd v1.5.6 // indirect github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f // indirect github.com/Microsoft/go-winio v0.6.2 // indirect diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum index 03bd78609ead8..b2344c6db0ff7 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum @@ -14,8 +14,8 @@ github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 h1:/Dp1WBvekdus github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0/go.mod h1:asNuwNy1O2HbadkcZVuqmFGonfEzXS/SBvOo8V1MJvQ= github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I= github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f h1:5Vuo4niPKFkfwW55jV4vY0ih3VQ9RaQqeqY67fvRn8A= diff --git a/comp/otelcol/otlp/testutil/go.mod b/comp/otelcol/otlp/testutil/go.mod index f93da83f2c03d..ebc99a3dd4da4 100644 --- a/comp/otelcol/otlp/testutil/go.mod +++ b/comp/otelcol/otlp/testutil/go.mod @@ -63,7 +63,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect diff --git a/comp/otelcol/otlp/testutil/go.sum b/comp/otelcol/otlp/testutil/go.sum index 173f120daf80f..b4642ab1ea7f1 100644 --- a/comp/otelcol/otlp/testutil/go.sum +++ b/comp/otelcol/otlp/testutil/go.sum @@ -6,8 +6,8 @@ github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 h1:hgbTF github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0/go.mod h1:dvIWN9pA2zWNTw5rhDWZgzZnhcfpH++d+8d1SWW6xkY= github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I= github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/comp/serializer/compression/go.mod b/comp/serializer/compression/go.mod index a96150a98b2c6..7540d0254c299 100644 --- a/comp/serializer/compression/go.mod +++ b/comp/serializer/compression/go.mod @@ -63,7 +63,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect diff --git a/comp/serializer/compression/go.sum b/comp/serializer/compression/go.sum index 82cfdd5791b99..47b6f74242930 100644 --- a/comp/serializer/compression/go.sum +++ b/comp/serializer/compression/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= diff --git a/go.mod b/go.mod index 510771137b673..a0b1c786a0280 100644 --- a/go.mod +++ b/go.mod @@ -166,7 +166,7 @@ require ( github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0 github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 github.com/DataDog/sketches-go v1.4.6 - github.com/DataDog/viper v1.13.5 + github.com/DataDog/viper v1.14.0 github.com/DataDog/watermarkpodautoscaler v0.5.3-0.20241023200123-ab786c1724cf github.com/DataDog/zstd v1.5.6 github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f // indirect diff --git a/go.sum b/go.sum index bf22e29643077..eff56174f57ba 100644 --- a/go.sum +++ b/go.sum @@ -176,8 +176,8 @@ github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vH github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= github.com/DataDog/trivy v0.0.0-20241126101205-8517f9b946f4 h1:UVL5oU/8o0JhEv8Js6qxJgiqeV+PzPw/aldojyexS/U= github.com/DataDog/trivy v0.0.0-20241126101205-8517f9b946f4/go.mod h1:hLiUAm3v175M5jWbq34TdGmX6mvHIJY7FMuZ3wBugtw= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/DataDog/walker v0.0.0-20230418153152-7f29bb2dc950 h1:2imDajw3V85w1iqHsuXN+hUBZQVF+r9eME8tsPq/HpA= github.com/DataDog/walker v0.0.0-20230418153152-7f29bb2dc950/go.mod h1:FU+7qU8DeQQgSZDmmThMJi93kPkLFgy0oVAcLxurjIk= github.com/DataDog/watermarkpodautoscaler v0.5.3-0.20241023200123-ab786c1724cf h1:nbsZ9srTWTTlHzWDGkVE6R5hnqENXTK9N8doMC2YPps= diff --git a/pkg/api/go.mod b/pkg/api/go.mod index 1ee4065b68545..cc581a79c93ff 100644 --- a/pkg/api/go.mod +++ b/pkg/api/go.mod @@ -68,7 +68,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect diff --git a/pkg/api/go.sum b/pkg/api/go.sum index dc0ab4305d421..e3973187c6caa 100644 --- a/pkg/api/go.sum +++ b/pkg/api/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/pkg/config/env/go.mod b/pkg/config/env/go.mod index c2fa1454d2fee..34b158b27e106 100644 --- a/pkg/config/env/go.mod +++ b/pkg/config/env/go.mod @@ -23,7 +23,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect diff --git a/pkg/config/env/go.sum b/pkg/config/env/go.sum index 3714c29c49041..55897bd029c82 100644 --- a/pkg/config/env/go.sum +++ b/pkg/config/env/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/pkg/config/mock/go.mod b/pkg/config/mock/go.mod index 60543231cb311..a358e04841b8b 100644 --- a/pkg/config/mock/go.mod +++ b/pkg/config/mock/go.mod @@ -53,7 +53,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect diff --git a/pkg/config/mock/go.sum b/pkg/config/mock/go.sum index fc14fcc51ad7e..6df24d44986c1 100644 --- a/pkg/config/mock/go.sum +++ b/pkg/config/mock/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/pkg/config/model/go.mod b/pkg/config/model/go.mod index 7f648a0c2076c..4fb2df929ebac 100644 --- a/pkg/config/model/go.mod +++ b/pkg/config/model/go.mod @@ -11,7 +11,7 @@ replace ( require ( github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 - github.com/DataDog/viper v1.13.5 + github.com/DataDog/viper v1.14.0 github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 github.com/stretchr/testify v1.10.0 golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f diff --git a/pkg/config/model/go.sum b/pkg/config/model/go.sum index ddbfab1c363b2..7b03b89cac861 100644 --- a/pkg/config/model/go.sum +++ b/pkg/config/model/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= diff --git a/pkg/config/nodetreemodel/go.mod b/pkg/config/nodetreemodel/go.mod index fddf0197843dc..de9da422721ad 100644 --- a/pkg/config/nodetreemodel/go.mod +++ b/pkg/config/nodetreemodel/go.mod @@ -14,7 +14,7 @@ replace github.com/spf13/cast => github.com/DataDog/cast v1.8.0 require ( github.com/DataDog/datadog-agent/pkg/config/model v0.0.0-00010101000000-000000000000 github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 - github.com/DataDog/viper v1.13.5 + github.com/DataDog/viper v1.14.0 github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 github.com/spf13/cast v1.7.0 github.com/stretchr/testify v1.10.0 diff --git a/pkg/config/nodetreemodel/go.sum b/pkg/config/nodetreemodel/go.sum index e896db4ce9103..ebb19c16de189 100644 --- a/pkg/config/nodetreemodel/go.sum +++ b/pkg/config/nodetreemodel/go.sum @@ -2,8 +2,8 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/cast v1.8.0 h1:uooY8bMzq+cjgiNP1VTquCWve5emgk8fRspZojJwQa8= github.com/DataDog/cast v1.8.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= diff --git a/pkg/config/remote/go.mod b/pkg/config/remote/go.mod index 1e2695599a4ca..418e2f017f81d 100644 --- a/pkg/config/remote/go.mod +++ b/pkg/config/remote/go.mod @@ -122,7 +122,7 @@ require ( require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1 // indirect github.com/DataDog/go-tuf v1.1.0-0.5.2 - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect diff --git a/pkg/config/remote/go.sum b/pkg/config/remote/go.sum index eb4fa22065545..fa403bade18cb 100644 --- a/pkg/config/remote/go.sum +++ b/pkg/config/remote/go.sum @@ -19,8 +19,8 @@ github.com/DataDog/gostackparse v0.7.0 h1:i7dLkXHvYzHV308hnkvVGDL3BR4FWl7IsXNPz/ github.com/DataDog/gostackparse v0.7.0/go.mod h1:lTfqcJKqS9KnXQGnyQMCugq3u1FP6UZMfWR0aitKFMM= github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I= github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= diff --git a/pkg/config/setup/go.mod b/pkg/config/setup/go.mod index 0fc0b943272aa..c02d710d51f13 100644 --- a/pkg/config/setup/go.mod +++ b/pkg/config/setup/go.mod @@ -63,7 +63,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect diff --git a/pkg/config/setup/go.sum b/pkg/config/setup/go.sum index 8f0854bbfc0b9..18e09a82750bb 100644 --- a/pkg/config/setup/go.sum +++ b/pkg/config/setup/go.sum @@ -2,8 +2,8 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/cast v1.8.0 h1:uooY8bMzq+cjgiNP1VTquCWve5emgk8fRspZojJwQa8= github.com/DataDog/cast v1.8.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/pkg/config/structure/go.mod b/pkg/config/structure/go.mod index 6f87e72960ea6..83c57b35c79fd 100644 --- a/pkg/config/structure/go.mod +++ b/pkg/config/structure/go.mod @@ -36,7 +36,7 @@ replace github.com/spf13/cast => github.com/DataDog/cast v1.8.0 require ( github.com/DataDog/datadog-agent/pkg/config/model v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.0.0-00010101000000-000000000000 - github.com/DataDog/viper v1.13.5 + github.com/DataDog/viper v1.14.0 github.com/spf13/cast v1.7.0 github.com/stretchr/testify v1.10.0 ) diff --git a/pkg/config/structure/go.sum b/pkg/config/structure/go.sum index e896db4ce9103..ebb19c16de189 100644 --- a/pkg/config/structure/go.sum +++ b/pkg/config/structure/go.sum @@ -2,8 +2,8 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/cast v1.8.0 h1:uooY8bMzq+cjgiNP1VTquCWve5emgk8fRspZojJwQa8= github.com/DataDog/cast v1.8.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= diff --git a/pkg/config/teeconfig/go.mod b/pkg/config/teeconfig/go.mod index c65facf0b1e58..7644391c8d1bf 100644 --- a/pkg/config/teeconfig/go.mod +++ b/pkg/config/teeconfig/go.mod @@ -11,7 +11,7 @@ replace ( require ( github.com/DataDog/datadog-agent/pkg/config/model v0.0.0-00010101000000-000000000000 github.com/DataDog/datadog-agent/pkg/util/log v0.56.0-rc.3 - github.com/DataDog/viper v1.13.5 + github.com/DataDog/viper v1.14.0 ) require ( diff --git a/pkg/config/teeconfig/go.sum b/pkg/config/teeconfig/go.sum index ddbfab1c363b2..7b03b89cac861 100644 --- a/pkg/config/teeconfig/go.sum +++ b/pkg/config/teeconfig/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= diff --git a/pkg/config/utils/go.mod b/pkg/config/utils/go.mod index 3894ed026ecc5..d8f776a5d5ebd 100644 --- a/pkg/config/utils/go.mod +++ b/pkg/config/utils/go.mod @@ -58,7 +58,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect diff --git a/pkg/config/utils/go.sum b/pkg/config/utils/go.sum index fc14fcc51ad7e..6df24d44986c1 100644 --- a/pkg/config/utils/go.sum +++ b/pkg/config/utils/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/pkg/logs/auditor/go.mod b/pkg/logs/auditor/go.mod index 56b528a2ff3d4..d375aa6e7038d 100644 --- a/pkg/logs/auditor/go.mod +++ b/pkg/logs/auditor/go.mod @@ -72,7 +72,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect diff --git a/pkg/logs/auditor/go.sum b/pkg/logs/auditor/go.sum index fc14fcc51ad7e..6df24d44986c1 100644 --- a/pkg/logs/auditor/go.sum +++ b/pkg/logs/auditor/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/pkg/logs/client/go.mod b/pkg/logs/client/go.mod index a19f07054482e..8ca05dfb2f632 100644 --- a/pkg/logs/client/go.mod +++ b/pkg/logs/client/go.mod @@ -89,7 +89,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect diff --git a/pkg/logs/client/go.sum b/pkg/logs/client/go.sum index 30b75d8cb57df..65b369f190875 100644 --- a/pkg/logs/client/go.sum +++ b/pkg/logs/client/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/pkg/logs/diagnostic/go.mod b/pkg/logs/diagnostic/go.mod index 5b5fbaf9df94f..b8ef753620e44 100644 --- a/pkg/logs/diagnostic/go.mod +++ b/pkg/logs/diagnostic/go.mod @@ -76,7 +76,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect diff --git a/pkg/logs/diagnostic/go.sum b/pkg/logs/diagnostic/go.sum index dc0ab4305d421..e3973187c6caa 100644 --- a/pkg/logs/diagnostic/go.sum +++ b/pkg/logs/diagnostic/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/pkg/logs/message/go.mod b/pkg/logs/message/go.mod index 2a031a302ff66..463f6366031f4 100644 --- a/pkg/logs/message/go.mod +++ b/pkg/logs/message/go.mod @@ -68,7 +68,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect diff --git a/pkg/logs/message/go.sum b/pkg/logs/message/go.sum index fc14fcc51ad7e..6df24d44986c1 100644 --- a/pkg/logs/message/go.sum +++ b/pkg/logs/message/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/pkg/logs/pipeline/go.mod b/pkg/logs/pipeline/go.mod index 2802d7256f594..8b584b5b1aa03 100644 --- a/pkg/logs/pipeline/go.mod +++ b/pkg/logs/pipeline/go.mod @@ -107,7 +107,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect diff --git a/pkg/logs/pipeline/go.sum b/pkg/logs/pipeline/go.sum index 920238d6c8024..0816ff6b27cb5 100644 --- a/pkg/logs/pipeline/go.sum +++ b/pkg/logs/pipeline/go.sum @@ -4,8 +4,8 @@ github.com/DataDog/agent-payload/v5 v5.0.138 h1:Wg7hmWuoLC/o0X3zZ+uGcfRHPyaytlju github.com/DataDog/agent-payload/v5 v5.0.138/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 h1:RoH7VLzTnxHEugRPIgnGlxwDFszFGI7b3WZZUtWuPRM= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42/go.mod h1:TX7CTOQ3LbQjfAi4SwqUoR5gY1zfUk7VRBDTuArjaDc= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/pkg/logs/processor/go.mod b/pkg/logs/processor/go.mod index 699fe4e8ad518..ffa047656aa16 100644 --- a/pkg/logs/processor/go.mod +++ b/pkg/logs/processor/go.mod @@ -87,7 +87,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect diff --git a/pkg/logs/processor/go.sum b/pkg/logs/processor/go.sum index 09e7a690fdf60..df30b2959c6d8 100644 --- a/pkg/logs/processor/go.sum +++ b/pkg/logs/processor/go.sum @@ -4,8 +4,8 @@ github.com/DataDog/agent-payload/v5 v5.0.138 h1:Wg7hmWuoLC/o0X3zZ+uGcfRHPyaytlju github.com/DataDog/agent-payload/v5 v5.0.138/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 h1:RoH7VLzTnxHEugRPIgnGlxwDFszFGI7b3WZZUtWuPRM= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42/go.mod h1:TX7CTOQ3LbQjfAi4SwqUoR5gY1zfUk7VRBDTuArjaDc= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/pkg/logs/sds/go.mod b/pkg/logs/sds/go.mod index a0d137977450b..71861e9789dd6 100644 --- a/pkg/logs/sds/go.mod +++ b/pkg/logs/sds/go.mod @@ -83,7 +83,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect diff --git a/pkg/logs/sds/go.sum b/pkg/logs/sds/go.sum index e23451e060e85..ba2765ae6cc8c 100644 --- a/pkg/logs/sds/go.sum +++ b/pkg/logs/sds/go.sum @@ -2,8 +2,8 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 h1:RoH7VLzTnxHEugRPIgnGlxwDFszFGI7b3WZZUtWuPRM= github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42/go.mod h1:TX7CTOQ3LbQjfAi4SwqUoR5gY1zfUk7VRBDTuArjaDc= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/pkg/logs/sender/go.mod b/pkg/logs/sender/go.mod index b769f58828d16..c6222c7c0214c 100644 --- a/pkg/logs/sender/go.mod +++ b/pkg/logs/sender/go.mod @@ -90,7 +90,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect diff --git a/pkg/logs/sender/go.sum b/pkg/logs/sender/go.sum index 30b75d8cb57df..65b369f190875 100644 --- a/pkg/logs/sender/go.sum +++ b/pkg/logs/sender/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/pkg/logs/sources/go.mod b/pkg/logs/sources/go.mod index 2e7aaed02aad4..736839618c355 100644 --- a/pkg/logs/sources/go.mod +++ b/pkg/logs/sources/go.mod @@ -66,7 +66,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect diff --git a/pkg/logs/sources/go.sum b/pkg/logs/sources/go.sum index fc14fcc51ad7e..6df24d44986c1 100644 --- a/pkg/logs/sources/go.sum +++ b/pkg/logs/sources/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/pkg/logs/util/testutils/go.mod b/pkg/logs/util/testutils/go.mod index 1669f7f2029b8..6c8ce3a26dae3 100644 --- a/pkg/logs/util/testutils/go.mod +++ b/pkg/logs/util/testutils/go.mod @@ -67,7 +67,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/ebitengine/purego v0.8.1 // indirect diff --git a/pkg/logs/util/testutils/go.sum b/pkg/logs/util/testutils/go.sum index fc14fcc51ad7e..6df24d44986c1 100644 --- a/pkg/logs/util/testutils/go.sum +++ b/pkg/logs/util/testutils/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/pkg/metrics/go.mod b/pkg/metrics/go.mod index 3e1a7d68759a6..e506cd41e855c 100644 --- a/pkg/metrics/go.mod +++ b/pkg/metrics/go.mod @@ -74,7 +74,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect github.com/DataDog/sketches-go v1.4.6 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect diff --git a/pkg/metrics/go.sum b/pkg/metrics/go.sum index 245b5a427d4a7..6316d64a4973c 100644 --- a/pkg/metrics/go.sum +++ b/pkg/metrics/go.sum @@ -6,8 +6,8 @@ github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 h1:/Dp1WBvekdus github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0/go.mod h1:asNuwNy1O2HbadkcZVuqmFGonfEzXS/SBvOo8V1MJvQ= github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I= github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/pkg/serializer/go.mod b/pkg/serializer/go.mod index 4b5e86e94590c..545b645414136 100644 --- a/pkg/serializer/go.mod +++ b/pkg/serializer/go.mod @@ -123,7 +123,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 // indirect github.com/DataDog/sketches-go v1.4.6 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/DataDog/zstd v1.5.6 // indirect github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f // indirect github.com/Microsoft/go-winio v0.6.2 // indirect diff --git a/pkg/serializer/go.sum b/pkg/serializer/go.sum index de83965cdf01f..74a1c5f4717db 100644 --- a/pkg/serializer/go.sum +++ b/pkg/serializer/go.sum @@ -10,8 +10,8 @@ github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 h1:/Dp1WBvekdus github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0/go.mod h1:asNuwNy1O2HbadkcZVuqmFGonfEzXS/SBvOo8V1MJvQ= github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I= github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f h1:5Vuo4niPKFkfwW55jV4vY0ih3VQ9RaQqeqY67fvRn8A= diff --git a/pkg/util/flavor/go.mod b/pkg/util/flavor/go.mod index 2b3a00706f758..b4cde61713931 100644 --- a/pkg/util/flavor/go.mod +++ b/pkg/util/flavor/go.mod @@ -54,7 +54,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect diff --git a/pkg/util/flavor/go.sum b/pkg/util/flavor/go.sum index fc14fcc51ad7e..6df24d44986c1 100644 --- a/pkg/util/flavor/go.sum +++ b/pkg/util/flavor/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/pkg/util/grpc/go.mod b/pkg/util/grpc/go.mod index b2b70c55bbeb2..977343bfe3c4d 100644 --- a/pkg/util/grpc/go.mod +++ b/pkg/util/grpc/go.mod @@ -65,7 +65,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect diff --git a/pkg/util/grpc/go.sum b/pkg/util/grpc/go.sum index 1ca8e8dc8a8df..6467120987601 100644 --- a/pkg/util/grpc/go.sum +++ b/pkg/util/grpc/go.sum @@ -3,8 +3,8 @@ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT cloud.google.com/go/compute/metadata v0.5.2 h1:UxK4uu/Tn+I3p2dYWTfiX4wva7aYlKixAHn3fyqngqo= cloud.google.com/go/compute/metadata v0.5.2/go.mod h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/pkg/util/http/go.mod b/pkg/util/http/go.mod index abb2860789433..39e32393df50d 100644 --- a/pkg/util/http/go.mod +++ b/pkg/util/http/go.mod @@ -56,7 +56,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect diff --git a/pkg/util/http/go.sum b/pkg/util/http/go.sum index 60bade5a7db31..d2f68d6435b82 100644 --- a/pkg/util/http/go.sum +++ b/pkg/util/http/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/pkg/util/log/setup/go.mod b/pkg/util/log/setup/go.mod index 74ca271074423..f865653e53d51 100644 --- a/pkg/util/log/setup/go.mod +++ b/pkg/util/log/setup/go.mod @@ -56,7 +56,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/ebitengine/purego v0.8.1 // indirect diff --git a/pkg/util/log/setup/go.sum b/pkg/util/log/setup/go.sum index fc14fcc51ad7e..6df24d44986c1 100644 --- a/pkg/util/log/setup/go.sum +++ b/pkg/util/log/setup/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= diff --git a/test/otel/go.mod b/test/otel/go.mod index 81bc6ea692e7b..3bb758c1620d7 100644 --- a/test/otel/go.mod +++ b/test/otel/go.mod @@ -182,7 +182,7 @@ require ( github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 // indirect github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0 // indirect github.com/DataDog/sketches-go v1.4.6 // indirect - github.com/DataDog/viper v1.13.5 // indirect + github.com/DataDog/viper v1.14.0 // indirect github.com/DataDog/zstd v1.5.6 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/benbjohnson/clock v1.3.5 // indirect diff --git a/test/otel/go.sum b/test/otel/go.sum index 3637c4f1bd224..2fcc58afcf90e 100644 --- a/test/otel/go.sum +++ b/test/otel/go.sum @@ -26,8 +26,8 @@ github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 h1:/Dp1WBvekdus github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0/go.mod h1:asNuwNy1O2HbadkcZVuqmFGonfEzXS/SBvOo8V1MJvQ= github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I= github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= -github.com/DataDog/viper v1.13.5 h1:SZMcyMknYQN2jRY/40A16gUXexlNJOI8sDs1cWZnI64= -github.com/DataDog/viper v1.13.5/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= +github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is= +github.com/DataDog/viper v1.14.0/go.mod h1:wDdUVJ2SHaMaPrCZrlRCObwkubsX8j5sme3LaR/SGTc= github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= From 9e01e492d350a4b46e1e8db29153f6c4b10650bd Mon Sep 17 00:00:00 2001 From: Dustin Long Date: Thu, 12 Dec 2024 14:45:01 +0100 Subject: [PATCH 433/439] Implement MergeFleetPolicy for nodetreemodel (#31961) --- .golangci.yml | 2 - pkg/config/nodetreemodel/config.go | 21 ++++--- pkg/config/nodetreemodel/config_test.go | 17 ++++++ pkg/config/nodetreemodel/read_config_file.go | 64 +++++++++----------- 4 files changed, 57 insertions(+), 47 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index 320c25ce206a7..ece414c77fc1b 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -18,8 +18,6 @@ issues: exclude: - "Error return value of `io.WriteString` is not checked" # 'errcheck' errors in tools/dep_tree_resolver/go_deps.go - "Error return value of `pem.Encode` is not checked" # 'errcheck' errors in test/integration/utils/certificates.go - - "Error return value of `c.logErrorNotImplemented` is not checked" # 'errcheck' errors in pkg/config/nodetreemodel/config.go - - "Error return value of `n.logErrorNotImplemented` is not checked" # 'errcheck' errors in pkg/config/nodetreemodel/config.go - "exported: exported const Exec should have comment \\(or a comment on this block\\) or be unexported" # 'revive' errors in pkg/process/events/model/model_common.go - "exported: exported const APIName should have comment \\(or a comment on this block\\) or be unexported" # 'revive' errors in pkg/serverless/trace/inferredspan/constants.go - "unnecessary conversion" # 'unconvert' errors in test/integration/utils/certificates_test.go diff --git a/pkg/config/nodetreemodel/config.go b/pkg/config/nodetreemodel/config.go index e2f6c4b8f7139..e9854f1db99d1 100644 --- a/pkg/config/nodetreemodel/config.go +++ b/pkg/config/nodetreemodel/config.go @@ -128,12 +128,6 @@ type NodeTreeConfig interface { GetNode(string) (Node, error) } -func (c *ntmConfig) logErrorNotImplemented(method string) error { - err := fmt.Errorf("not implemented: %s", method) - log.Error(err) - return err -} - // OnUpdate adds a callback to the list of receivers to be called each time a value is changed in the configuration // by a call to the 'Set' method. // Callbacks are only called if the value is effectively changed. @@ -634,7 +628,7 @@ func (c *ntmConfig) MergeConfig(in io.Reader) error { } other := newInnerNode(nil) - if err = c.readConfigurationContent(other, content); err != nil { + if err = c.readConfigurationContent(other, model.SourceFile, content); err != nil { return err } @@ -663,8 +657,17 @@ func (c *ntmConfig) MergeFleetPolicy(configPath string) error { } defer in.Close() - // TODO: Implement merging, merge in the policy that was read - return c.logErrorNotImplemented("MergeFleetPolicy") + content, err := io.ReadAll(in) + if err != nil { + return err + } + + other := newInnerNode(nil) + if err = c.readConfigurationContent(other, model.SourceFleetPolicies, content); err != nil { + return err + } + + return c.root.Merge(other) } // AllSettings returns all settings from the config diff --git a/pkg/config/nodetreemodel/config_test.go b/pkg/config/nodetreemodel/config_test.go index 4738b4e446767..0fbac128999c9 100644 --- a/pkg/config/nodetreemodel/config_test.go +++ b/pkg/config/nodetreemodel/config_test.go @@ -575,3 +575,20 @@ func TestUnsetForSource(t *testing.T) { val:4, source:default` assert.Equal(t, expect, txt) } + +func TestMergeFleetPolicy(t *testing.T) { + config := NewConfig("test", "TEST", strings.NewReplacer(".", "_")) // nolint: forbidigo + config.SetConfigType("yaml") + config.SetDefault("foo", "") + config.BuildSchema() + config.Set("foo", "bar", model.SourceFile) + + file, err := os.CreateTemp("", "datadog.yaml") + assert.NoError(t, err, "failed to create temporary file: %w", err) + file.Write([]byte("foo: baz")) + err = config.MergeFleetPolicy(file.Name()) + assert.NoError(t, err) + + assert.Equal(t, "baz", config.Get("foo")) + assert.Equal(t, model.SourceFleetPolicies, config.GetSource("foo")) +} diff --git a/pkg/config/nodetreemodel/read_config_file.go b/pkg/config/nodetreemodel/read_config_file.go index 8354a012376b0..e006d188ea794 100644 --- a/pkg/config/nodetreemodel/read_config_file.go +++ b/pkg/config/nodetreemodel/read_config_file.go @@ -67,7 +67,7 @@ func (c *ntmConfig) ReadConfig(in io.Reader) error { if err != nil { return err } - if err := c.readConfigurationContent(c.file, content); err != nil { + if err := c.readConfigurationContent(c.file, model.SourceFile, content); err != nil { return err } return c.mergeAllLayers() @@ -78,19 +78,19 @@ func (c *ntmConfig) readInConfig(filePath string) error { if err != nil { return err } - return c.readConfigurationContent(c.file, content) + return c.readConfigurationContent(c.file, model.SourceFile, content) } -func (c *ntmConfig) readConfigurationContent(target InnerNode, content []byte) error { - var obj map[string]interface{} +func (c *ntmConfig) readConfigurationContent(target InnerNode, source model.Source, content []byte) error { + var inData map[string]interface{} - if strictErr := yaml.UnmarshalStrict(content, &obj); strictErr != nil { + if strictErr := yaml.UnmarshalStrict(content, &inData); strictErr != nil { log.Errorf("warning reading config file: %v\n", strictErr) - if err := yaml.Unmarshal(content, &obj); err != nil { + if err := yaml.Unmarshal(content, &inData); err != nil { return err } } - c.warnings = append(c.warnings, loadYamlInto(c.schema, target, obj, "")...) + c.warnings = append(c.warnings, loadYamlInto(target, source, inData, "", c.schema)...) return nil } @@ -119,64 +119,56 @@ func toMapStringInterface(data any, path string) (map[string]interface{}, error) return nil, fmt.Errorf("invalid type from configuration for key '%s'", path) } -// loadYamlInto fetch the value for known setings and set them in a tree. The function returns a list of warning about -// unknown settings or invalid types from the YAML. -// -// The function traverses a object loaded from YAML, checking if each node is known within the configuration. -// If known, the value from the YAML blob is imported into the 'dest' tree. If unknown, a warning will be created. -func loadYamlInto(schema InnerNode, dest InnerNode, data map[string]interface{}, path string) []string { - if path != "" { - path = path + "." - } - +// loadYamlInto traverses input data parsed from YAML, checking if each node is defined by the schema. +// If found, the value from the YAML blob is imported into the 'dest' tree. Otherwise, a warning will be created. +func loadYamlInto(dest InnerNode, source model.Source, inData map[string]interface{}, atPath string, schema InnerNode) []string { warnings := []string{} - for key, value := range data { + for key, value := range inData { key = strings.ToLower(key) - curPath := path + key + currPath := joinKey(atPath, key) - // check if the key is know in the schema - schemaNode, err := schema.GetChild(key) + // check if the key is defined in the schema + schemaChild, err := schema.GetChild(key) if err != nil { - warnings = append(warnings, fmt.Sprintf("unknown key from YAML: %s", curPath)) + warnings = append(warnings, fmt.Sprintf("unknown key from YAML: %s", currPath)) continue } - // if the default is a leaf we create a new leaf in dest - if _, isLeaf := schemaNode.(LeafNode); isLeaf { - // check that dest don't have a inner leaf under that name + // if the node in the schema is a leaf, then we create a new leaf in dest + if _, isLeaf := schemaChild.(LeafNode); isLeaf { + // check that dest doesn't have a inner leaf under that name c, _ := dest.GetChild(key) if _, ok := c.(InnerNode); ok { // Both default and dest have a child but they conflict in type. This should never happen. warnings = append(warnings, "invalid tree: default and dest tree don't have the same layout") } else { - dest.InsertChildNode(key, newLeafNode(value, model.SourceFile)) + dest.InsertChildNode(key, newLeafNode(value, source)) } continue } + // by now we know schemaNode is an InnerNode + schemaInner, _ := schemaChild.(InnerNode) - mapString, err := toMapStringInterface(value, curPath) + childValue, err := toMapStringInterface(value, currPath) if err != nil { warnings = append(warnings, err.Error()) } - // by now we know schemaNode is an InnerNode - defaultNext, _ := schemaNode.(InnerNode) - if !dest.HasChild(key) { - destInner := newInnerNode(nil) - warnings = append(warnings, loadYamlInto(defaultNext, destInner, mapString, curPath)...) - dest.InsertChildNode(key, destInner) + destChildInner := newInnerNode(nil) + warnings = append(warnings, loadYamlInto(destChildInner, source, childValue, currPath, schemaInner)...) + dest.InsertChildNode(key, destChildInner) continue } - child, _ := dest.GetChild(key) - destChildInner, ok := child.(InnerNode) + destChild, _ := dest.GetChild(key) + destChildInner, ok := destChild.(InnerNode) if !ok { // Both default and dest have a child but they conflict in type. This should never happen. warnings = append(warnings, "invalid tree: default and dest tree don't have the same layout") continue } - warnings = append(warnings, loadYamlInto(defaultNext, destChildInner, mapString, curPath)...) + warnings = append(warnings, loadYamlInto(destChildInner, source, childValue, currPath, schemaInner)...) } return warnings } From 021ff675b936500389da4939165409df705db7b7 Mon Sep 17 00:00:00 2001 From: Baptiste Foy Date: Thu, 12 Dec 2024 14:55:54 +0100 Subject: [PATCH 434/439] feat(installer): Publish install scripts on installtesting.datad0g.com on success on main (#32084) --- .gitlab-ci.yml | 7 +++++++ .gitlab/JOBOWNERS | 4 ++-- .gitlab/e2e_install_packages/include.yml | 1 + .gitlab/e2e_install_packages/installer.yml | 15 +++++++++++++++ 4 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 .gitlab/e2e_install_packages/installer.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 67afb78dc55d8..38a0cde349fc8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -282,6 +282,9 @@ variables: .if_main_branch: &if_main_branch if: $CI_COMMIT_BRANCH == "main" +.if_not_main_branch: &if_not_main_branch + if: $CI_COMMIT_BRANCH != "main" + .if_release_branch: &if_release_branch if: $CI_COMMIT_BRANCH =~ /^[0-9]+\.[0-9]+\.x$/ @@ -628,6 +631,10 @@ workflow: variables: FAST_TESTS: "true" +.only_main: + - <<: *if_not_main_branch + when: never + .except_main_or_release_branch: - <<: *if_main_branch when: never diff --git a/.gitlab/JOBOWNERS b/.gitlab/JOBOWNERS index 361807d382218..e03f28a2d537d 100644 --- a/.gitlab/JOBOWNERS +++ b/.gitlab/JOBOWNERS @@ -114,9 +114,9 @@ deploy_packages* @DataDog/agent-delivery deploy_staging* @DataDog/agent-delivery publish_winget* @DataDog/windows-agent powershell_script_deploy @DataDog/windows-agent -windows_bootstrapper_deploy @DataDog/windows-agent +windows_bootstrapper_deploy @DataDog/windows-agent qa_*_oci @DataDog/agent-delivery -qa_installer_script @DataDog/agent-delivery +qa_installer_script* @DataDog/agent-delivery # Deploy containers deploy_containers* @Datadog/agent-delivery diff --git a/.gitlab/e2e_install_packages/include.yml b/.gitlab/e2e_install_packages/include.yml index d710d975dc41a..cf50d55e12238 100644 --- a/.gitlab/e2e_install_packages/include.yml +++ b/.gitlab/e2e_install_packages/include.yml @@ -9,3 +9,4 @@ include: - .gitlab/e2e_install_packages/centos.yml - .gitlab/e2e_install_packages/suse.yml - .gitlab/e2e_install_packages/windows.yml + - .gitlab/e2e_install_packages/installer.yml diff --git a/.gitlab/e2e_install_packages/installer.yml b/.gitlab/e2e_install_packages/installer.yml new file mode 100644 index 0000000000000..da1cb2536b626 --- /dev/null +++ b/.gitlab/e2e_install_packages/installer.yml @@ -0,0 +1,15 @@ +qa_installer_script_main: + image: registry.ddbuild.io/ci/datadog-agent-buildimages/gitlab_agent_deploy$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES + stage: e2e_install_packages + tags: ["arch:amd64"] + rules: + - !reference [.only_main] # Disable non-main branch. Must be first. + - !reference [.on_installer_or_e2e_changes] + - !reference [.manual] + needs: + - new-e2e-installer-script + - installer-install-scripts + before_script: + - ls $OMNIBUS_PACKAGE_DIR + script: + - $S3_CP_CMD --recursive --exclude "*" --include "install-*.sh" "$OMNIBUS_PACKAGE_DIR" "s3://${INSTALLER_TESTING_S3_BUCKET}/scripts/" From 185ffe31ba911d506a34622ec28609e43be73f58 Mon Sep 17 00:00:00 2001 From: Vickenty Fesunov Date: Thu, 12 Dec 2024 15:07:45 +0100 Subject: [PATCH 435/439] AMLII-2210 enable Java FIPS provider on Windows FIPS images (#32026) --- Dockerfiles/agent/windows/amd64/Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfiles/agent/windows/amd64/Dockerfile b/Dockerfiles/agent/windows/amd64/Dockerfile index 72c7060810838..d99782f40167f 100755 --- a/Dockerfiles/agent/windows/amd64/Dockerfile +++ b/Dockerfiles/agent/windows/amd64/Dockerfile @@ -7,7 +7,8 @@ ARG WITH_JMX="false" ARG VARIANT="unknown" ARG INSTALL_INFO="unknown" ARG GENERAL_ARTIFACTS_CACHE_BUCKET_URL -ARG WITH_FIPS="false" +# Should be empty for non-FIPS builds +ARG WITH_FIPS LABEL maintainer "Datadog " @@ -23,6 +24,7 @@ RUN . ./install.ps1 COPY bouncycastle-fips /fips-build COPY install-fips.ps1 ./ RUN . ./install-fips.ps1 +ENV JAVA_TOOL_OPTIONS="${WITH_FIPS:+--module-path=\'c:\\program files\\datadog\\bouncycastle fips\' -Djava.security.properties==\'c:\\program files\\datadog\\bouncycastle fips\\java.security\' -Dpolicy.url.2=\'file:c:\\program files\\datadog\\bouncycastle fips\\bc-fips.policy\'}" EXPOSE 8125/udp 8126/tcp From 68f07c6efd56010f4c23d64da525f3aadc8b3409 Mon Sep 17 00:00:00 2001 From: Arthur Bellal Date: Thu, 12 Dec 2024 16:08:26 +0100 Subject: [PATCH 436/439] (fleet) installer setup scripts improvements (#32062) --- cmd/installer-downloader/main.go | 5 + pkg/fleet/installer/packages/datadog_agent.go | 4 +- .../installer/packages/datadog_installer.go | 6 +- pkg/fleet/installer/setup/common/config.go | 345 ++++++++---------- .../installer/setup/common/config_test.go | 186 ++++++++-- pkg/fleet/installer/setup/common/packages.go | 74 ++++ pkg/fleet/installer/setup/common/setup.go | 95 +++++ pkg/fleet/installer/setup/djm/databricks.go | 251 ++++++------- .../installer/setup/djm/databricks_windows.go | 21 -- pkg/fleet/installer/setup/setup.go | 18 +- 10 files changed, 598 insertions(+), 407 deletions(-) create mode 100644 pkg/fleet/installer/setup/common/packages.go create mode 100644 pkg/fleet/installer/setup/common/setup.go delete mode 100644 pkg/fleet/installer/setup/djm/databricks_windows.go diff --git a/cmd/installer-downloader/main.go b/cmd/installer-downloader/main.go index 45c628dc13069..5ddadc54c0d60 100644 --- a/cmd/installer-downloader/main.go +++ b/cmd/installer-downloader/main.go @@ -72,6 +72,7 @@ func runDownloader(ctx context.Context, env *env.Env, version string, flavor str return fmt.Errorf("failed to download installer: %w", err) } cmd := exec.CommandContext(ctx, filepath.Join(tmpDir, installerBinPath), "setup", "--flavor", flavor) + cmd.Dir = tmpDir cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr cmd.Env = append(os.Environ(), telemetry.EnvFromContext(ctx)...) @@ -92,6 +93,10 @@ func downloadInstaller(ctx context.Context, env *env.Env, version string, tmpDir if downloadedPackage.Name != installerPackage { return fmt.Errorf("unexpected package name: %s, expected %s", downloadedPackage.Name, installerPackage) } + err = downloadedPackage.WriteOCILayout(tmpDir) + if err != nil { + return fmt.Errorf("failed to write OCI layout: %w", err) + } err = downloadedPackage.ExtractLayers(oci.DatadogPackageLayerMediaType, tmpDir) if err != nil { return fmt.Errorf("failed to extract layers: %w", err) diff --git a/pkg/fleet/installer/packages/datadog_agent.go b/pkg/fleet/installer/packages/datadog_agent.go index 7236096bbf1e1..2b7d4192d4592 100644 --- a/pkg/fleet/installer/packages/datadog_agent.go +++ b/pkg/fleet/installer/packages/datadog_agent.go @@ -104,7 +104,7 @@ func SetupAgent(ctx context.Context, _ []string) (err error) { if err = os.MkdirAll("/etc/datadog-agent", 0755); err != nil { return fmt.Errorf("failed to create /etc/datadog-agent: %v", err) } - ddAgentUID, ddAgentGID, err := GetAgentIDs() + ddAgentUID, ddAgentGID, err := getAgentIDs() if err != nil { return fmt.Errorf("error getting dd-agent user and group IDs: %w", err) } @@ -230,7 +230,7 @@ func chownRecursive(path string, uid int, gid int, ignorePaths []string) error { // StartAgentExperiment starts the agent experiment func StartAgentExperiment(ctx context.Context) error { - ddAgentUID, ddAgentGID, err := GetAgentIDs() + ddAgentUID, ddAgentGID, err := getAgentIDs() if err != nil { return fmt.Errorf("error getting dd-agent user and group IDs: %w", err) } diff --git a/pkg/fleet/installer/packages/datadog_installer.go b/pkg/fleet/installer/packages/datadog_installer.go index ceaf08bf330d6..14d0f042cd0e6 100644 --- a/pkg/fleet/installer/packages/datadog_installer.go +++ b/pkg/fleet/installer/packages/datadog_installer.go @@ -60,7 +60,7 @@ func SetupInstaller(ctx context.Context) (err error) { if err != nil { return fmt.Errorf("error adding dd-agent user to dd-agent group: %w", err) } - ddAgentUID, ddAgentGID, err := GetAgentIDs() + ddAgentUID, ddAgentGID, err := getAgentIDs() if err != nil { return fmt.Errorf("error getting dd-agent user and group IDs: %w", err) } @@ -165,8 +165,8 @@ func SetupInstaller(ctx context.Context) (err error) { return startInstallerStable(ctx) } -// GetAgentIDs returns the UID and GID of the dd-agent user and group. -func GetAgentIDs() (uid, gid int, err error) { +// getAgentIDs returns the UID and GID of the dd-agent user and group. +func getAgentIDs() (uid, gid int, err error) { ddAgentUser, err := user.Lookup("dd-agent") if err != nil { return -1, -1, fmt.Errorf("dd-agent user not found: %w", err) diff --git a/pkg/fleet/installer/setup/common/config.go b/pkg/fleet/installer/setup/common/config.go index 865b617c6283a..fb1677aeb6964 100644 --- a/pkg/fleet/installer/setup/common/config.go +++ b/pkg/fleet/installer/setup/common/config.go @@ -3,242 +3,211 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -//go:build !windows - -// Package common contains the HostInstaller struct which is used to write the agent agentConfiguration to disk package common import ( - "context" "fmt" "os" "path/filepath" - "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" - "github.com/DataDog/datadog-agent/pkg/fleet/installer/oci" - "github.com/DataDog/datadog-agent/pkg/fleet/installer/packages" - "github.com/DataDog/datadog-agent/pkg/fleet/internal/exec" - "gopkg.in/yaml.v2" + "gopkg.in/yaml.v3" ) -var ( +const ( + disclaimerGenerated = `# This file was generated by the Datadog Installer. +# Other configuration options are available, see https://docs.datadoghq.com/agent/guide/agent-configuration-files/ for more information.` + configDir = "/etc/datadog-agent" - datadogConfFile = filepath.Join(configDir, "datadog.yaml") - logsConfFile = filepath.Join(configDir, "conf.d/configured_at_install_logs.yaml") - sparkConfigFile = filepath.Join(configDir, "conf.d/spark.d/spark.yaml") - injectTracerConfigFile = filepath.Join(configDir, "inject/tracer.yaml") + datadogConfFile = "datadog.yaml" + injectTracerConfigFile = "inject/tracer.yaml" ) -// HostInstaller is a struct that represents the agent agentConfiguration -// used to write the agentConfiguration to disk in datadog-installer custom setup scenarios -type HostInstaller struct { - env *env.Env - - agentConfig map[string]interface{} - logsConfig logsConfig - sparkConfig sparkConfig - injectorConfig injectorConfig - hostTags []tag - ddUID int - ddGID int - - injectorVersion string - javaVersion string - agentVersion string -} - -type tag struct { - key string `yaml:"key"` - value string `yaml:"value"` -} - -type logsConfig struct { - Logs []LogConfig `yaml:"logs"` -} - -// LogConfig is a struct that represents a single log agentConfiguration -type LogConfig struct { - Type string `yaml:"type"` - Path string `yaml:"path"` - Service string `yaml:"service,omitempty"` - Source string `yaml:"source,omitempty"` -} - -type sparkConfig struct { - InitConfig interface{} `yaml:"init_config,omitempty"` - Instances []SparkInstance `yaml:"instances"` -} - -// SparkInstance is a struct that represents a single spark instance -type SparkInstance struct { - SparkURL string `yaml:"spark_url"` - SparkClusterMode string `yaml:"spark_cluster_mode,omitempty"` - ClusterName string `yaml:"cluster_name"` - StreamingMetrics bool `yaml:"streaming_metrics,omitempty"` -} - -type injectorConfig struct { - Version int `yaml:"version"` - ConfigSources string `yaml:"config_sources"` - EnvsToInject []EnvVar `yaml:"additional_environment_variables"` -} - -// EnvVar is a struct that represents an environment variable -type EnvVar struct { - Key string `yaml:"key"` - Value string `yaml:"value"` -} - -// NewHostInstaller creates a new HostInstaller struct and loads the existing agentConfiguration from disk -func NewHostInstaller(env *env.Env) (*HostInstaller, error) { - ddUID, ddGID, err := packages.GetAgentIDs() +func writeConfigs(config Config, configDir string) error { + err := writeConfig(filepath.Join(configDir, datadogConfFile), config.DatadogYAML, 0640, true) if err != nil { - return nil, fmt.Errorf("failed to get agent user and group IDs: %v", err) + return fmt.Errorf("could not write datadog.yaml: %w", err) } - return newHostInstaller(env, ddUID, ddGID) + err = writeConfig(filepath.Join(configDir, injectTracerConfigFile), config.InjectTracerYAML, 0644, false) + if err != nil { + return fmt.Errorf("could not write tracer.yaml: %w", err) + } + for name, config := range config.IntegrationConfigs { + err = writeConfig(filepath.Join(configDir, "conf.d", name), config, 0644, false) + if err != nil { + return fmt.Errorf("could not write %s.yaml: %w", name, err) + } + } + return nil } -func newHostInstaller(env *env.Env, ddUID, ddGID int) (*HostInstaller, error) { - i := &HostInstaller{agentConfig: make(map[string]interface{})} - if env.APIKey == "" { - return nil, fmt.Errorf("DD_API key is required") +func writeConfig(path string, config any, perms os.FileMode, merge bool) error { + serializedNewConfig, err := yaml.Marshal(config) + if err != nil { + return fmt.Errorf("could not serialize config: %w", err) } - i.AddAgentConfig("api_key", env.APIKey) - - if env.Site != "" { - i.AddAgentConfig("site", env.Site) + var newConfig map[string]interface{} + err = yaml.Unmarshal(serializedNewConfig, &newConfig) + if err != nil { + return fmt.Errorf("could not unmarshal config: %w", err) + } + if len(newConfig) == 0 { + return nil + } + err = os.MkdirAll(filepath.Dir(path), 0755) + if err != nil { + return fmt.Errorf("could not create config directory: %w", err) } - i.ddUID = ddUID - i.ddGID = ddGID - i.env = env - return i, nil + var existingConfig map[string]interface{} + if merge { + serializedExistingConfig, err := os.ReadFile(path) + if err != nil && !os.IsNotExist(err) { + return fmt.Errorf("could not read existing config: %w", err) + } + if err == nil { + err = yaml.Unmarshal(serializedExistingConfig, &existingConfig) + if err != nil { + return fmt.Errorf("could not unmarshal existing config: %w", err) + } + } + } + merged, err := mergeConfig(existingConfig, newConfig) + if err != nil { + return fmt.Errorf("could not merge config: %w", err) + } + serializedMerged, err := yaml.Marshal(merged) + if err != nil { + return fmt.Errorf("could not serialize merged config: %w", err) + } + if len(existingConfig) == 0 { + serializedMerged = []byte(disclaimerGenerated + "\n\n" + string(serializedMerged)) + } + err = os.WriteFile(path, serializedMerged, perms) + if err != nil { + return fmt.Errorf("could not write config: %w", err) + } + return nil } -// SetAgentVersion sets the agent version to install -func (i *HostInstaller) SetAgentVersion(version string) { - i.agentVersion = version +// Config represents the configuration to write in /etc/datadog-agent +type Config struct { + // DatadogYAML is the content of the datadog.yaml file + DatadogYAML DatadogConfig + // InjectTracerYAML is the content of the inject/tracer.yaml file + InjectTracerYAML InjectTracerConfig + // IntegrationConfigs is the content of the integration configuration files under conf.d/ + IntegrationConfigs map[string]IntegrationConfig } -// SetInjectorVersion sets the injector version to install -func (i *HostInstaller) SetInjectorVersion(version string) { - i.injectorVersion = version +// DatadogConfig represents the configuration to write in /etc/datadog-agent/datadog.yaml +type DatadogConfig struct { + APIKey string `yaml:"api_key"` + Hostname string `yaml:"hostname,omitempty"` + Site string `yaml:"site,omitempty"` + Env string `yaml:"env,omitempty"` + Tags []string `yaml:"tags,omitempty"` + LogsEnabled bool `yaml:"logs_enabled,omitempty"` + DJM DatadogConfigDJM `yaml:"djm,omitempty"` + ProcessConfig DatadogConfigProcessConfig `yaml:"process_config,omitempty"` + ExpectedTagsDuration string `yaml:"expected_tags_duration,omitempty"` } -// SetJavaTracerVersion sets the java tracer version to install -func (i *HostInstaller) SetJavaTracerVersion(version string) { - i.javaVersion = version +// DatadogConfigDJM represents the configuration for the Data Jobs Monitoring +type DatadogConfigDJM struct { + Enabled bool `yaml:"enabled,omitempty"` } -// AddTracerEnv adds an environment variable to the list of environment variables to inject -func (i *HostInstaller) AddTracerEnv(key, value string) { - i.injectorConfig.EnvsToInject = append(i.injectorConfig.EnvsToInject, EnvVar{Key: key, Value: value}) +// DatadogConfigProcessConfig represents the configuration for the process agent +type DatadogConfigProcessConfig struct { + ExpvarPort int `yaml:"expvar_port,omitempty"` } -// AddAgentConfig adds a key value pair to the agent agentConfiguration -func (i *HostInstaller) AddAgentConfig(key string, value interface{}) { - i.agentConfig[key] = value +// IntegrationConfig represents the configuration for an integration under conf.d/ +type IntegrationConfig struct { + InitConfig []any `yaml:"init_config,omitempty"` + Instances []any `yaml:"instances,omitempty"` + Logs []IntegrationConfigLogs `yaml:"logs,omitempty"` } -// AddLogConfig adds a log agentConfiguration to the agent configuration -func (i *HostInstaller) AddLogConfig(log LogConfig) { - i.logsConfig.Logs = append(i.logsConfig.Logs, log) - if len(i.logsConfig.Logs) == 1 { - i.AddAgentConfig("logs_enabled", true) - } +// IntegrationConfigLogs represents the configuration for the logs of an integration +type IntegrationConfigLogs struct { + Type string `yaml:"type,omitempty"` + Path string `yaml:"path,omitempty"` + Service string `yaml:"service,omitempty"` + Source string `yaml:"source,omitempty"` } -// AddSparkInstance adds a spark instance to the agent agentConfiguration -func (i *HostInstaller) AddSparkInstance(spark SparkInstance) { - i.sparkConfig.Instances = append(i.sparkConfig.Instances, spark) +// IntegrationConfigInstanceSpark represents the configuration for the Spark integration +type IntegrationConfigInstanceSpark struct { + SparkURL string `yaml:"spark_url"` + SparkClusterMode string `yaml:"spark_cluster_mode"` + ClusterName string `yaml:"cluster_name"` + StreamingMetrics bool `yaml:"streaming_metrics"` } -// AddHostTag adds a host tag to the agent agentConfiguration -func (i *HostInstaller) AddHostTag(key, value string) { - i.hostTags = append(i.hostTags, tag{key, value}) +// InjectTracerConfig represents the configuration to write in /etc/datadog-agent/inject/tracer.yaml +type InjectTracerConfig struct { + Version int `yaml:"version,omitempty"` + ConfigSources string `yaml:"config_sources,omitempty"` + AdditionalEnvironmentVariables []InjectTracerConfigEnvVar `yaml:"additional_environment_variables,omitempty"` } -func (i *HostInstaller) writeYamlConfig(path string, yml interface{}, perm os.FileMode, agentOwner bool) error { - data, err := yaml.Marshal(yml) - if err != nil { - return err +// InjectTracerConfigEnvVar represents an environment variable to inject +type InjectTracerConfigEnvVar struct { + Key string `yaml:"key"` + Value string `yaml:"value"` +} + +// mergeConfig merges the current config with the setup config. +// +// The values are merged as follows: +// - Scalars: the override value is used +// - Lists: the override list is used +// - Maps: the override map is recursively merged into the base map +func mergeConfig(base interface{}, override interface{}) (interface{}, error) { + if base == nil { + return override, nil } - dir := filepath.Dir(path) - if err := os.MkdirAll(dir, 0755); err != nil { - return fmt.Errorf("failed to create directory %s: %v", dir, err) + if override == nil { + // this allows to override a value with nil + return nil, nil } - if err = os.WriteFile(path, data, perm); err != nil { - return fmt.Errorf("failed to write to %s: %v", path, err) + if isScalar(base) && isScalar(override) { + return override, nil } - // Change ownership of the file to the agent user - // ddUID=0 happens in local test environments - if agentOwner && i.ddUID != 0 { - if err := os.Chown(path, i.ddUID, i.ddGID); err != nil { - return fmt.Errorf("failed to change ownership of %s: %v", path, err) - } + if isList(base) && isList(override) { + return override, nil } - return nil -} - -func convertTagsToYaml(tags []tag) []interface{} { - result := make([]interface{}, 0, len(tags)) - for _, tag := range tags { - result = append(result, fmt.Sprintf("%s:%s", tag.key, tag.value)) + if isMap(base) && isMap(override) { + return mergeMap(base.(map[string]interface{}), override.(map[string]interface{})) } - return result + return nil, fmt.Errorf("could not merge %T with %T", base, override) } -func (i *HostInstaller) writeConfigs() error { - if len(i.hostTags) > 0 { - i.AddAgentConfig("tags", convertTagsToYaml(i.hostTags)) - } - - if err := i.writeYamlConfig(datadogConfFile, i.agentConfig, 0640, true); err != nil { - return err - } - if len(i.logsConfig.Logs) > 0 { - if err := i.writeYamlConfig(logsConfFile, i.logsConfig, 0644, true); err != nil { - return err - } +func mergeMap(base, override map[string]interface{}) (map[string]interface{}, error) { + merged := make(map[string]interface{}) + for k, v := range base { + merged[k] = v } - if len(i.sparkConfig.Instances) > 0 { - if err := i.writeYamlConfig(sparkConfigFile, i.sparkConfig, 0644, true); err != nil { - return err + for k := range override { + v, err := mergeConfig(base[k], override[k]) + if err != nil { + return nil, fmt.Errorf("could not merge key %v: %w", k, err) } + merged[k] = v } - if len(i.injectorConfig.EnvsToInject) > 0 { - if err := i.writeYamlConfig(injectTracerConfigFile, i.injectorConfig, 0644, false); err != nil { - return err - } - } - return nil + return merged, nil } -// ConfigureAndInstall writes configurations to disk and installs desired packages -func (i *HostInstaller) ConfigureAndInstall(ctx context.Context) error { - if err := i.writeConfigs(); err != nil { - return fmt.Errorf("failed to write configurations: %w", err) - } +func isList(i interface{}) bool { + _, ok := i.([]interface{}) + return ok +} - exePath, err := os.Executable() - if err != nil { - return fmt.Errorf("failed to get executable path: %w", err) - } - cmd := exec.NewInstallerExec(i.env, exePath) +func isMap(i interface{}) bool { + _, ok := i.(map[string]interface{}) + return ok +} - if i.injectorVersion != "" { - if err := cmd.Install(ctx, oci.PackageURL(i.env, "datadog-apm-inject", i.injectorVersion), nil); err != nil { - return fmt.Errorf("failed to install injector: %w", err) - } - } - if i.javaVersion != "" { - if err := cmd.Install(ctx, oci.PackageURL(i.env, "datadog-apm-library-java", i.javaVersion), nil); err != nil { - return fmt.Errorf("failed to install java library: %w", err) - } - } - if i.agentVersion != "" { - if err := cmd.Install(ctx, oci.PackageURL(i.env, "datadog-agent", i.agentVersion), nil); err != nil { - return fmt.Errorf("failed to install Databricks agent: %w", err) - } - } - return nil +func isScalar(i interface{}) bool { + return !isList(i) && !isMap(i) } diff --git a/pkg/fleet/installer/setup/common/config_test.go b/pkg/fleet/installer/setup/common/config_test.go index bfe2809f39087..7c02cd3999e02 100644 --- a/pkg/fleet/installer/setup/common/config_test.go +++ b/pkg/fleet/installer/setup/common/config_test.go @@ -5,7 +5,6 @@ //go:build !windows -// Package common contains the HostInstaller struct which is used to write the agent agentConfiguration to disk package common import ( @@ -14,48 +13,155 @@ import ( "testing" "github.com/stretchr/testify/assert" - - "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" + "gopkg.in/yaml.v3" ) -func assertFileContent(t *testing.T, file, content string) { - b, err := os.ReadFile(file) +func TestEmptyConfig(t *testing.T) { + tempDir := t.TempDir() + config := Config{} + config.DatadogYAML.APIKey = "1234567890" // Required field + + err := writeConfigs(config, tempDir) + assert.NoError(t, err) + + // Check datadog.yaml + datadogConfigPath := filepath.Join(tempDir, datadogConfFile) + info, err := os.Stat(datadogConfigPath) + assert.NoError(t, err) + assert.Equal(t, os.FileMode(0640), info.Mode()) + datadogYAML, err := os.ReadFile(datadogConfigPath) + assert.NoError(t, err) + var datadog map[string]interface{} + err = yaml.Unmarshal(datadogYAML, &datadog) + assert.NoError(t, err) + assert.Equal(t, map[string]interface{}{"api_key": "1234567890"}, datadog) + + // Assert no other files are created + dir, err := os.ReadDir(tempDir) + assert.NoError(t, err) + assert.Len(t, dir, 1) +} + +func TestMergeConfig(t *testing.T) { + tempDir := t.TempDir() + oldConfig := `--- +api_key: "0987654321" +hostname: "old_hostname" +env: "old_env" +` + err := os.WriteFile(filepath.Join(tempDir, datadogConfFile), []byte(oldConfig), 0644) + assert.NoError(t, err) + config := Config{} + config.DatadogYAML.APIKey = "1234567890" // Required field + config.DatadogYAML.Hostname = "new_hostname" + config.DatadogYAML.LogsEnabled = true + + err = writeConfigs(config, tempDir) + assert.NoError(t, err) + + // Check datadog.yaml + datadogConfigPath := filepath.Join(tempDir, datadogConfFile) + datadogYAML, err := os.ReadFile(datadogConfigPath) + assert.NoError(t, err) + var datadog map[string]interface{} + err = yaml.Unmarshal(datadogYAML, &datadog) + assert.NoError(t, err) + assert.Equal(t, map[string]interface{}{ + "api_key": "1234567890", + "hostname": "new_hostname", + "env": "old_env", + "logs_enabled": true, + }, datadog) +} + +func TestInjectTracerConfig(t *testing.T) { + tempDir := t.TempDir() + config := Config{} + config.InjectTracerYAML = InjectTracerConfig{ + Version: 1, + ConfigSources: "env", + AdditionalEnvironmentVariables: []InjectTracerConfigEnvVar{ + { + Key: "DD_ENV", + Value: "prod", + }, + }, + } + + err := writeConfigs(config, tempDir) + assert.NoError(t, err) + + // Check inject/tracer.yaml + injectTracerConfigPath := filepath.Join(tempDir, injectTracerConfigFile) + assert.FileExists(t, injectTracerConfigPath) + injectTracerYAML, err := os.ReadFile(injectTracerConfigPath) + assert.NoError(t, err) + var injectTracer map[string]interface{} + err = yaml.Unmarshal(injectTracerYAML, &injectTracer) assert.NoError(t, err) - assert.Equal(t, content, string(b)) + assert.Equal(t, map[string]interface{}{ + "version": 1, + "config_sources": "env", + "additional_environment_variables": []interface{}{ + map[string]interface{}{ + "key": "DD_ENV", + "value": "prod", + }, + }, + }, injectTracer) } -func TestAgentConfigs(t *testing.T) { - configDir = t.TempDir() - datadogConfFile = filepath.Join(configDir, "datadog.yaml") - logsConfFile = filepath.Join(configDir, "conf.d/configured_at_install_logs.yaml") - sparkConfigFile = filepath.Join(configDir, "conf.d/spark.d/spark.yaml") - - i, err := newHostInstaller(&env.Env{APIKey: "a"}, 0, 0) - assert.NotNil(t, i) - assert.Nil(t, err) - - i.AddAgentConfig("key", "value") - i.AddLogConfig(LogConfig{Type: "file", Path: "/var/log/app.log", Service: "app"}) - i.AddHostTag("k1", "v1") - i.AddHostTag("k2", "v2") - i.AddSparkInstance(SparkInstance{ClusterName: "cluster", SparkURL: "http://localhost:8080"}) - - assert.NoError(t, i.writeConfigs()) - assertFileContent(t, datadogConfFile, `api_key: a -key: value -logs_enabled: true -tags: -- k1:v1 -- k2:v2 -`) - - assertFileContent(t, logsConfFile, `logs: -- type: file - path: /var/log/app.log - service: app -`) - assertFileContent(t, sparkConfigFile, `instances: -- spark_url: http://localhost:8080 - cluster_name: cluster -`) +func TestIntegrationConfigInstanceSpark(t *testing.T) { + tempDir := t.TempDir() + config := Config{ + IntegrationConfigs: make(map[string]IntegrationConfig), + } + config.IntegrationConfigs["spark.d/kebabricks.yaml"] = IntegrationConfig{ + Logs: []IntegrationConfigLogs{ + { + Type: "file", + Path: "/databricks/spark/work/*/*/stderr", + Source: "worker_stderr", + Service: "databricks", + }, + }, + Instances: []any{ + IntegrationConfigInstanceSpark{ + SparkURL: "http://localhost:4040", + SparkClusterMode: "spark_driver_mode", + ClusterName: "big-kebab-data", + StreamingMetrics: true, + }, + }, + } + + err := writeConfigs(config, tempDir) + assert.NoError(t, err) + + // Check spark.d/kebabricks.yaml + sparkConfigPath := filepath.Join(tempDir, "conf.d", "spark.d", "kebabricks.yaml") + assert.FileExists(t, sparkConfigPath) + sparkYAML, err := os.ReadFile(sparkConfigPath) + assert.NoError(t, err) + var spark map[string]interface{} + err = yaml.Unmarshal(sparkYAML, &spark) + assert.NoError(t, err) + assert.Equal(t, map[string]interface{}{ + "logs": []interface{}{ + map[string]interface{}{ + "type": "file", + "path": "/databricks/spark/work/*/*/stderr", + "service": "databricks", + "source": "worker_stderr", + }, + }, + "instances": []interface{}{ + map[string]interface{}{ + "spark_url": "http://localhost:4040", + "spark_cluster_mode": "spark_driver_mode", + "cluster_name": "big-kebab-data", + "streaming_metrics": true, + }, + }, + }, spark) } diff --git a/pkg/fleet/installer/setup/common/packages.go b/pkg/fleet/installer/setup/common/packages.go new file mode 100644 index 0000000000000..c4c0c091ea048 --- /dev/null +++ b/pkg/fleet/installer/setup/common/packages.go @@ -0,0 +1,74 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package common + +import "fmt" + +const ( + // DatadogInstallerPackage is the datadog installer package + DatadogInstallerPackage string = "datadog-installer" + // DatadogAgentPackage is the datadog agent package + DatadogAgentPackage string = "datadog-agent" + // DatadogAPMInjectPackage is the datadog apm inject package + DatadogAPMInjectPackage string = "datadog-apm-inject" + // DatadogAPMLibraryJavaPackage is the datadog apm library java package + DatadogAPMLibraryJavaPackage string = "datadog-apm-library-java" + // DatadogAPMLibraryPythonPackage is the datadog apm library python package + DatadogAPMLibraryPythonPackage string = "datadog-apm-library-python" + // DatadogAPMLibraryRubyPackage is the datadog apm library ruby package + DatadogAPMLibraryRubyPackage string = "datadog-apm-library-ruby" + // DatadogAPMLibraryJSPackage is the datadog apm library js package + DatadogAPMLibraryJSPackage string = "datadog-apm-library-js" + // DatadogAPMLibraryDotNetPackage is the datadog apm library dotnet package + DatadogAPMLibraryDotNetPackage string = "datadog-apm-library-dotnet" + // DatadogAPMLibraryPHPPackage is the datadog apm library php package + DatadogAPMLibraryPHPPackage string = "datadog-apm-library-php" +) + +var ( + order = []string{ + DatadogInstallerPackage, + DatadogAgentPackage, + DatadogAPMInjectPackage, + DatadogAPMLibraryJavaPackage, + DatadogAPMLibraryPythonPackage, + DatadogAPMLibraryRubyPackage, + DatadogAPMLibraryJSPackage, + DatadogAPMLibraryDotNetPackage, + DatadogAPMLibraryPHPPackage, + } +) + +func resolvePackages(packages Packages) []packageWithVersion { + var resolved []packageWithVersion + for _, pkg := range order { + if p, ok := packages.install[pkg]; ok { + resolved = append(resolved, p) + } + } + if len(resolved) != len(packages.install) { + panic(fmt.Sprintf("unknown package requested: %v", packages.install)) + } + return resolved +} + +// Packages is a list of packages to install +type Packages struct { + install map[string]packageWithVersion +} + +type packageWithVersion struct { + name string + version string +} + +// Install marks a package to be installed +func (p *Packages) Install(pkg string, version string) { + p.install[pkg] = packageWithVersion{ + name: pkg, + version: version, + } +} diff --git a/pkg/fleet/installer/setup/common/setup.go b/pkg/fleet/installer/setup/common/setup.go new file mode 100644 index 0000000000000..dbd48a7f83028 --- /dev/null +++ b/pkg/fleet/installer/setup/common/setup.go @@ -0,0 +1,95 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package common defines the Setup structure that allows setup scripts to define packages and configurations to install. +package common + +import ( + "context" + "errors" + "fmt" + "os" + + "github.com/DataDog/datadog-agent/pkg/fleet/installer" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/oci" + "gopkg.in/DataDog/dd-trace-go.v1/ddtrace" + "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" +) + +const ( + installerOCILayoutURL = "file://." // the installer OCI layout is written by the downloader in the current directory +) + +var ( + // ErrNoAPIKey is returned when no API key is provided. + ErrNoAPIKey = errors.New("no API key provided") +) + +// Setup allows setup scripts to define packages and configurations to install. +type Setup struct { + configDir string + installer installer.Installer + + Env *env.Env + Ctx context.Context + Span ddtrace.Span + Packages Packages + Config Config +} + +// NewSetup creates a new Setup structure with some default values. +func NewSetup(ctx context.Context, env *env.Env, name string) (*Setup, error) { + if env.APIKey == "" { + return nil, ErrNoAPIKey + } + installer, err := installer.NewInstaller(env) + if err != nil { + return nil, fmt.Errorf("failed to create installer: %w", err) + } + span, ctx := tracer.StartSpanFromContext(ctx, fmt.Sprintf("setup.%s", name)) + s := &Setup{ + configDir: configDir, + installer: installer, + Env: env, + Ctx: ctx, + Span: span, + Config: Config{ + DatadogYAML: DatadogConfig{ + APIKey: env.APIKey, + Hostname: os.Getenv("DD_HOSTNAME"), + Site: env.Site, + Env: os.Getenv("DD_ENV"), + }, + IntegrationConfigs: make(map[string]IntegrationConfig), + }, + Packages: Packages{ + install: make(map[string]packageWithVersion), + }, + } + return s, nil +} + +// Run installs the packages and writes the configurations +func (s *Setup) Run() (err error) { + defer func() { s.Span.Finish(tracer.WithError(err)) }() + err = writeConfigs(s.Config, s.configDir) + if err != nil { + return fmt.Errorf("failed to write configuration: %w", err) + } + err = s.installer.Install(s.Ctx, installerOCILayoutURL, nil) + if err != nil { + return fmt.Errorf("failed to install installer: %w", err) + } + packages := resolvePackages(s.Packages) + for _, p := range packages { + url := oci.PackageURL(s.Env, p.name, p.version) + err = s.installer.Install(s.Ctx, url, nil) + if err != nil { + return fmt.Errorf("failed to install package %s: %w", url, err) + } + } + return nil +} diff --git a/pkg/fleet/installer/setup/djm/databricks.go b/pkg/fleet/installer/setup/djm/databricks.go index 21db9b4b7a934..2dc8909c58e8b 100644 --- a/pkg/fleet/installer/setup/djm/databricks.go +++ b/pkg/fleet/installer/setup/djm/databricks.go @@ -3,188 +3,149 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -//go:build !windows - // Package djm contains data-jobs-monitoring installation logic package djm import ( - "context" + "fmt" "os" - "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" "github.com/DataDog/datadog-agent/pkg/fleet/installer/setup/common" "github.com/DataDog/datadog-agent/pkg/util/log" - "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" ) const ( databricksInjectorVersion = "0.21.0-1" databricksJavaVersion = "1.41.1-1" databricksAgentVersion = "7.57.2-1" - logsService = "databricks" ) -type databricksSetup struct { - ctx context.Context - *common.HostInstaller - setupIssues []string -} +var ( + envToTags = map[string]string{ + "DATABRICKS_WORKSPACE": "workspace", + "DB_CLUSTER_NAME": "databricks_cluster_name", + "DB_CLUSTER_ID": "databricks_cluster_id", + "DB_NODE_TYPE": "databricks_node_type", + } + driverLogs = []common.IntegrationConfigLogs{ + { + Type: "file", + Path: "/databricks/driver/logs/*.log", + Source: "driver_logs", + Service: "databricks", + }, + { + Type: "file", + Path: "/databricks/driver/logs/stderr", + Source: "driver_stderr", + Service: "databricks", + }, + { + Type: "file", + Path: "/databricks/driver/logs/stdout", + Source: "driver_stdout", + Service: "databricks", + }, + } + workerLogs = []common.IntegrationConfigLogs{ + { + Type: "file", + Path: "/databricks/spark/work/*/*/*.log", + Source: "worker_logs", + Service: "databricks", + }, + { + Type: "file", + Path: "/databricks/spark/work/*/*/stderr", + Source: "worker_stderr", + Service: "databricks", + }, + { + Type: "file", + Path: "/databricks/spark/work/*/*/stdout", + Source: "worker_stdout", + Service: "databricks", + }, + } + tracerEnvConfig = []common.InjectTracerConfigEnvVar{ + { + Key: "DD_DATA_JOBS_ENABLED", + Value: "true", + }, + { + Key: "DD_INTEGRATIONS_ENABLED", + Value: "false", + }, + } +) // SetupDatabricks sets up the Databricks environment -func SetupDatabricks(ctx context.Context, env *env.Env) (err error) { - span, ctx := tracer.StartSpanFromContext(ctx, "setup.databricks") - defer func() { span.Finish(tracer.WithError(err)) }() +func SetupDatabricks(s *common.Setup) error { + s.Packages.Install(common.DatadogAgentPackage, databricksAgentVersion) - i, err := common.NewHostInstaller(env) + hostname, err := os.Hostname() if err != nil { - return err + return fmt.Errorf("failed to get hostname: %w", err) } - ds := &databricksSetup{ - ctx: ctx, - HostInstaller: i, + s.Config.DatadogYAML.Hostname = hostname + s.Config.DatadogYAML.DJM.Enabled = true + s.Config.DatadogYAML.ExpectedTagsDuration = "10m" + s.Config.DatadogYAML.ProcessConfig.ExpvarPort = 6063 // avoid port conflict on 6062 + for env, tag := range envToTags { + if val, ok := os.LookupEnv(env); ok { + s.Config.DatadogYAML.Tags = append(s.Config.DatadogYAML.Tags, tag+":"+val) + } } - return ds.setup() -} - -func (ds *databricksSetup) setup() error { - // agent binary to install - ds.SetAgentVersion(databricksAgentVersion) - - // avoid port conflict - ds.AddAgentConfig("process_config.expvar_port", -1) - ds.AddAgentConfig("expected_tags_duration", "10m") - ds.AddAgentConfig("djm_config.enabled", true) - - ds.extractHostTagsFromEnv() - span, _ := tracer.SpanFromContext(ds.ctx) switch os.Getenv("DB_IS_DRIVER") { case "TRUE": - span.SetTag("spark_node", "driver") - return ds.setupDatabricksDriver() + setupDatabricksDriver(s) default: - span.SetTag("spark_node", "worker") - return ds.setupDatabricksExecutor() + setupDatabricksWorker(s) } + return nil } -type varExtraction struct { - envVar string - tagKey string -} +func setupDatabricksDriver(s *common.Setup) { + s.Span.SetTag("spark_node", "driver") -var varExtractions = []varExtraction{ - {"DATABRICKS_WORKSPACE", "workspace"}, - {"DB_CLUSTER_NAME", "databricks_cluster_name"}, - {"DB_CLUSTER_ID", "databricks_cluster_id"}, - {"DB_NODE_TYPE", "databricks_node_type"}, -} + s.Packages.Install(common.DatadogAPMInjectPackage, databricksInjectorVersion) + s.Packages.Install(common.DatadogAPMLibraryJavaPackage, databricksJavaVersion) + + s.Config.DatadogYAML.Tags = append(s.Config.DatadogYAML.Tags, "node_type:driver") + s.Config.InjectTracerYAML.AdditionalEnvironmentVariables = tracerEnvConfig -func (ds *databricksSetup) extractHostTagsFromEnv() { - for _, ve := range varExtractions { - if val, ok := os.LookupEnv(ve.envVar); ok { - ds.AddHostTag(ve.tagKey, val) - continue + var sparkIntegration common.IntegrationConfig + if os.Getenv("DRIVER_LOGS_ENABLED") == "true" { + s.Config.DatadogYAML.LogsEnabled = true + sparkIntegration.Logs = driverLogs + } + if os.Getenv("DB_DRIVER_IP") != "" || os.Getenv("DB_DRIVER_PORT") != "" { + sparkIntegration.Instances = []any{ + common.IntegrationConfigInstanceSpark{ + SparkURL: "http://" + os.Getenv("DB_DRIVER_IP") + ":" + os.Getenv("DB_DRIVER_PORT"), + SparkClusterMode: "spark_driver_mode", + ClusterName: os.Getenv("DB_CLUSTER_NAME"), + StreamingMetrics: true, + }, } - ds.setupIssues = append(ds.setupIssues, ve.envVar+"_not_set") + } else { + log.Warn("DB_DRIVER_IP or DB_DRIVER_PORT not set") } + s.Config.IntegrationConfigs["spark.d/databricks.yaml"] = sparkIntegration } -func (ds *databricksSetup) setupDatabricksDriver() error { - ds.AddHostTag("node_type", "driver") - - ds.driverLogCollection() - - ds.setupAgentSparkCheck() - - ds.AddTracerEnv("DD_DATA_JOBS_ENABLED", "true") - ds.AddTracerEnv("DD_INTEGRATIONS_ENABLED", "false") - - // APM binaries to install - ds.SetInjectorVersion(databricksInjectorVersion) - ds.SetJavaTracerVersion(databricksJavaVersion) - - return ds.ConfigureAndInstall(ds.ctx) -} - -func (ds *databricksSetup) setupDatabricksExecutor() error { - ds.AddHostTag("node_type", "worker") - ds.workerLogCollection() - return ds.ConfigureAndInstall(ds.ctx) -} +func setupDatabricksWorker(s *common.Setup) { + s.Span.SetTag("spark_node", "worker") -func (ds *databricksSetup) setupAgentSparkCheck() { - driverIP := os.Getenv("DB_DRIVER_IP") - if driverIP == "" { - log.Warn("DB_DRIVER_IP not set") - return - } - driverPort := os.Getenv("DB_DRIVER_PORT") - if driverPort == "" { - log.Warn("DB_DRIVER_PORT not set") - return - } - clusterName := os.Getenv("DB_CLUSTER_NAME") - - ds.AddSparkInstance(common.SparkInstance{ - SparkURL: "http://" + driverIP + ":" + driverPort, - SparkClusterMode: "spark_driver_mode", - ClusterName: clusterName, - StreamingMetrics: true, - }) -} + s.Packages.Install(common.DatadogAgentPackage, databricksAgentVersion) -func (ds *databricksSetup) driverLogCollection() { - if os.Getenv("DRIVER_LOGS_ENABLED") != "true" { - return - } - span, _ := tracer.SpanFromContext(ds.ctx) - span.SetTag("driver_logs", "enabled") - log.Info("Enabling logs collection on the driver") - ds.AddLogConfig(common.LogConfig{ - Type: "file", - Path: "/databricks/driver/logs/*.log", - Source: "driver_logs", - Service: logsService, - }) - ds.AddLogConfig(common.LogConfig{ - Type: "file", - Path: "/databricks/driver/logs/stderr", - Source: "driver_stderr", - Service: logsService, - }) - ds.AddLogConfig(common.LogConfig{ - Type: "file", - Path: "/databricks/driver/logs/stdout", - Source: "driver_stdout", - Service: logsService, - }) -} + s.Config.DatadogYAML.Tags = append(s.Config.DatadogYAML.Tags, "node_type:worker") -func (ds *databricksSetup) workerLogCollection() { - if os.Getenv("WORKER_LOGS_ENABLED") != "true" { - return + var sparkIntegration common.IntegrationConfig + if os.Getenv("WORKER_LOGS_ENABLED") == "true" { + s.Config.DatadogYAML.LogsEnabled = true + sparkIntegration.Logs = workerLogs } - span, _ := tracer.SpanFromContext(ds.ctx) - span.SetTag("worker_logs", "enabled") - log.Info("Enabling logs collection on the executor") - ds.AddLogConfig(common.LogConfig{ - Type: "file", - Path: "/databricks/spark/work/*/*/*.log", - Source: "worker_logs", - Service: logsService, - }) - ds.AddLogConfig(common.LogConfig{ - Type: "file", - Path: "/databricks/spark/work/*/*/stderr", - Source: "worker_stderr", - Service: logsService, - }) - ds.AddLogConfig(common.LogConfig{ - Type: "file", - Path: "/databricks/spark/work/*/*/stdout", - Source: "worker_stdout", - Service: logsService, - }) + s.Config.IntegrationConfigs["spark.d/databricks.yaml"] = sparkIntegration } diff --git a/pkg/fleet/installer/setup/djm/databricks_windows.go b/pkg/fleet/installer/setup/djm/databricks_windows.go deleted file mode 100644 index 2bad2770e3467..0000000000000 --- a/pkg/fleet/installer/setup/djm/databricks_windows.go +++ /dev/null @@ -1,21 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -//go:build windows - -// Package djm contains data-jobs-monitoring installation logic -package djm - -import ( - "context" - "errors" - - "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" -) - -// SetupDatabricks is a not supported on windows -func SetupDatabricks(_ context.Context, _ *env.Env) error { - return errors.New("djm is not supported on windows") -} diff --git a/pkg/fleet/installer/setup/setup.go b/pkg/fleet/installer/setup/setup.go index 0daa479d73b6e..3b01d320c9975 100644 --- a/pkg/fleet/installer/setup/setup.go +++ b/pkg/fleet/installer/setup/setup.go @@ -11,7 +11,7 @@ import ( "fmt" "github.com/DataDog/datadog-agent/pkg/fleet/installer/env" - "github.com/DataDog/datadog-agent/pkg/fleet/installer/packages" + "github.com/DataDog/datadog-agent/pkg/fleet/installer/setup/common" "github.com/DataDog/datadog-agent/pkg/fleet/installer/setup/djm" "github.com/DataDog/datadog-agent/pkg/fleet/internal/exec" "github.com/DataDog/datadog-agent/pkg/fleet/internal/paths" @@ -24,18 +24,20 @@ const ( // Setup installs Datadog. func Setup(ctx context.Context, env *env.Env, flavor string) error { + s, err := common.NewSetup(ctx, env, flavor) + if err != nil { + return err + } switch flavor { case FlavorDatabricks: - if err := packages.SetupInstaller(ctx); err != nil { - return fmt.Errorf("failed to setup installer: %w", err) - } - if err := djm.SetupDatabricks(ctx, env); err != nil { - return fmt.Errorf("failed to setup Databricks: %w", err) - } - return nil + err = djm.SetupDatabricks(s) default: return fmt.Errorf("unknown setup flavor %s", flavor) } + if err != nil { + return err + } + return s.Run() } // Agent7InstallScript is the setup used by the agent7 install script. From 3627a74336d52b84b78d68514c3b53efa1063fd4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Dec 2024 15:25:32 +0000 Subject: [PATCH 437/439] Bump github/codeql-action from 3.27.6 to 3.27.7 (#32039) Co-authored-by: chouetz --- .github/workflows/codeql-analysis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 4ce361a8a19f1..d6886960d2396 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -45,7 +45,7 @@ jobs: go-version-file: ".go-version" - name: Initialize CodeQL - uses: github/codeql-action/init@aa578102511db1f4524ed59b8cc2bae4f6e88195 # v3.27.6 + uses: github/codeql-action/init@babb554ede22fd5605947329c4d04d8e7a0b8155 # v3.27.7 with: languages: ${{ matrix.language }} config: | @@ -67,4 +67,4 @@ jobs: invoke agent.build --build-exclude=systemd - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@aa578102511db1f4524ed59b8cc2bae4f6e88195 # v3.27.6 + uses: github/codeql-action/analyze@babb554ede22fd5605947329c4d04d8e7a0b8155 # v3.27.7 From 90249a8cc795481097640d46328e784f4b9d1396 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9lian=20Raimbault?= <161456554+CelianR@users.noreply.github.com> Date: Thu, 12 Dec 2024 10:51:51 -0500 Subject: [PATCH 438/439] release: Don't ask questions if not tty (#32099) --- tasks/release.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/release.py b/tasks/release.py index 999230044ea44..b91e4a48742a6 100644 --- a/tasks/release.py +++ b/tasks/release.py @@ -90,7 +90,7 @@ def deduce_and_ask_version(ctx, branch, as_str=True, trust=False) -> str | Versi if trust: return release_version - if yes_no_question( + if not os.isatty(sys.stdin.fileno()) or yes_no_question( f'Version {release_version} deduced from branch {branch}. Is this the version you want to use?', color="orange", default=False, From 5b2054cb1da177beebdbbc4eacc59278c7eb92dd Mon Sep 17 00:00:00 2001 From: Pierre Gimalac Date: Thu, 12 Dec 2024 17:34:23 +0100 Subject: [PATCH 439/439] Update golang.org/x deps (#31958) Co-authored-by: louis-cqrl --- comp/api/authtoken/go.mod | 4 +-- comp/api/authtoken/go.sum | 8 +++--- comp/core/config/go.mod | 4 +-- comp/core/config/go.sum | 8 +++--- comp/core/log/impl-trace/go.mod | 4 +-- comp/core/log/impl-trace/go.sum | 8 +++--- comp/core/log/impl/go.mod | 4 +-- comp/core/log/impl/go.sum | 8 +++--- comp/core/log/mock/go.mod | 4 +-- comp/core/log/mock/go.sum | 8 +++--- comp/core/secrets/go.mod | 2 +- comp/core/secrets/go.sum | 4 +-- comp/core/status/go.mod | 2 +- comp/core/status/go.sum | 4 +-- comp/core/status/statusimpl/go.mod | 4 +-- comp/core/status/statusimpl/go.sum | 8 +++--- comp/forwarder/defaultforwarder/go.mod | 6 ++-- comp/forwarder/defaultforwarder/go.sum | 12 ++++---- .../orchestrator/orchestratorinterface/go.mod | 6 ++-- .../orchestrator/orchestratorinterface/go.sum | 12 ++++---- comp/logs/agent/config/go.mod | 4 +-- comp/logs/agent/config/go.sum | 8 +++--- comp/otelcol/converter/impl/go.mod | 4 +-- comp/otelcol/converter/impl/go.sum | 8 +++--- comp/otelcol/ddflareextension/def/go.mod | 4 +-- comp/otelcol/ddflareextension/def/go.sum | 8 +++--- comp/otelcol/ddflareextension/impl/go.mod | 14 +++++----- comp/otelcol/ddflareextension/impl/go.sum | 28 +++++++++---------- comp/otelcol/logsagentpipeline/go.mod | 6 ++-- comp/otelcol/logsagentpipeline/go.sum | 12 ++++---- .../logsagentpipelineimpl/go.mod | 6 ++-- .../logsagentpipelineimpl/go.sum | 12 ++++---- .../exporter/datadogexporter/go.mod | 8 +++--- .../exporter/datadogexporter/go.sum | 20 ++++++------- .../exporter/logsagentexporter/go.mod | 8 +++--- .../exporter/logsagentexporter/go.sum | 16 +++++------ .../exporter/serializerexporter/go.mod | 6 ++-- .../exporter/serializerexporter/go.sum | 12 ++++---- .../otlp/components/metricsclient/go.sum | 4 +-- .../otlp/components/statsprocessor/go.mod | 4 +-- .../otlp/components/statsprocessor/go.sum | 12 ++++---- comp/otelcol/otlp/testutil/go.mod | 6 ++-- comp/otelcol/otlp/testutil/go.sum | 12 ++++---- comp/serializer/compression/go.mod | 4 +-- comp/serializer/compression/go.sum | 8 +++--- comp/trace/agent/def/go.mod | 4 +-- comp/trace/agent/def/go.sum | 8 +++--- go.mod | 14 +++++----- go.sum | 28 +++++++++---------- internal/tools/go.mod | 14 +++++----- internal/tools/go.sum | 28 +++++++++---------- internal/tools/proto/go.mod | 8 +++--- internal/tools/proto/go.sum | 16 +++++------ pkg/api/go.mod | 4 +-- pkg/api/go.sum | 8 +++--- pkg/config/env/go.mod | 4 +-- pkg/config/env/go.sum | 8 +++--- pkg/config/mock/go.mod | 4 +-- pkg/config/mock/go.sum | 8 +++--- pkg/config/model/go.mod | 4 +-- pkg/config/model/go.sum | 8 +++--- pkg/config/nodetreemodel/go.mod | 4 +-- pkg/config/nodetreemodel/go.sum | 8 +++--- pkg/config/remote/go.mod | 6 ++-- pkg/config/remote/go.sum | 20 ++++++------- pkg/config/setup/go.mod | 4 +-- pkg/config/setup/go.sum | 8 +++--- pkg/config/structure/go.mod | 4 +-- pkg/config/structure/go.sum | 8 +++--- pkg/config/teeconfig/go.mod | 4 +-- pkg/config/teeconfig/go.sum | 8 +++--- pkg/config/utils/go.mod | 4 +-- pkg/config/utils/go.sum | 8 +++--- pkg/linters/components/pkgconfigusage/go.mod | 4 +-- pkg/linters/components/pkgconfigusage/go.sum | 8 +++--- pkg/logs/auditor/go.mod | 4 +-- pkg/logs/auditor/go.sum | 8 +++--- pkg/logs/client/go.mod | 6 ++-- pkg/logs/client/go.sum | 12 ++++---- pkg/logs/diagnostic/go.mod | 4 +-- pkg/logs/diagnostic/go.sum | 8 +++--- pkg/logs/message/go.mod | 4 +-- pkg/logs/message/go.sum | 8 +++--- pkg/logs/pipeline/go.mod | 6 ++-- pkg/logs/pipeline/go.sum | 12 ++++---- pkg/logs/processor/go.mod | 4 +-- pkg/logs/processor/go.sum | 8 +++--- pkg/logs/sds/go.mod | 4 +-- pkg/logs/sds/go.sum | 8 +++--- pkg/logs/sender/go.mod | 6 ++-- pkg/logs/sender/go.sum | 12 ++++---- pkg/logs/sources/go.mod | 4 +-- pkg/logs/sources/go.sum | 8 +++--- pkg/logs/util/testutils/go.mod | 4 +-- pkg/logs/util/testutils/go.sum | 8 +++--- pkg/metrics/go.mod | 4 +-- pkg/metrics/go.sum | 8 +++--- pkg/obfuscate/go.mod | 2 +- pkg/obfuscate/go.sum | 4 +-- pkg/proto/go.mod | 4 +-- pkg/proto/go.sum | 8 +++--- pkg/remoteconfig/state/go.mod | 3 +- pkg/remoteconfig/state/go.sum | 4 +-- pkg/security/secl/go.mod | 8 +++--- pkg/security/secl/go.sum | 20 ++++++------- pkg/security/seclwin/go.mod | 2 +- pkg/security/seclwin/go.sum | 4 +-- pkg/serializer/go.mod | 6 ++-- pkg/serializer/go.sum | 12 ++++---- pkg/trace/go.mod | 4 +-- pkg/trace/go.sum | 12 ++++---- pkg/trace/stats/oteltest/go.mod | 4 +-- pkg/trace/stats/oteltest/go.sum | 12 ++++---- pkg/util/flavor/go.mod | 4 +-- pkg/util/flavor/go.sum | 8 +++--- pkg/util/grpc/go.mod | 6 ++-- pkg/util/grpc/go.sum | 12 ++++---- pkg/util/http/go.mod | 6 ++-- pkg/util/http/go.sum | 12 ++++---- pkg/util/log/setup/go.mod | 4 +-- pkg/util/log/setup/go.sum | 8 +++--- test/fakeintake/go.mod | 4 +-- test/fakeintake/go.sum | 12 ++++---- test/new-e2e/go.mod | 14 +++++----- test/new-e2e/go.sum | 28 +++++++++---------- test/otel/go.mod | 8 +++--- test/otel/go.sum | 20 ++++++------- 127 files changed, 512 insertions(+), 513 deletions(-) diff --git a/comp/api/authtoken/go.mod b/comp/api/authtoken/go.mod index 6bf63f57e855b..ca4e617286f9e 100644 --- a/comp/api/authtoken/go.mod +++ b/comp/api/authtoken/go.mod @@ -107,9 +107,9 @@ require ( go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/api/authtoken/go.sum b/comp/api/authtoken/go.sum index e3973187c6caa..9694f5d5e2355 100644 --- a/comp/api/authtoken/go.sum +++ b/comp/api/authtoken/go.sum @@ -239,8 +239,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -280,8 +280,8 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/comp/core/config/go.mod b/comp/core/config/go.mod index 42ae3495ec40c..a8fc87fffecf0 100644 --- a/comp/core/config/go.mod +++ b/comp/core/config/go.mod @@ -103,9 +103,9 @@ require ( go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/comp/core/config/go.sum b/comp/core/config/go.sum index def69bbe0b7b4..49f42d5d3e0a6 100644 --- a/comp/core/config/go.sum +++ b/comp/core/config/go.sum @@ -242,8 +242,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -283,8 +283,8 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/comp/core/log/impl-trace/go.mod b/comp/core/log/impl-trace/go.mod index 1b107db1db8ee..d78d19fde7f68 100644 --- a/comp/core/log/impl-trace/go.mod +++ b/comp/core/log/impl-trace/go.mod @@ -107,9 +107,9 @@ require ( go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/core/log/impl-trace/go.sum b/comp/core/log/impl-trace/go.sum index e3973187c6caa..9694f5d5e2355 100644 --- a/comp/core/log/impl-trace/go.sum +++ b/comp/core/log/impl-trace/go.sum @@ -239,8 +239,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -280,8 +280,8 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/comp/core/log/impl/go.mod b/comp/core/log/impl/go.mod index e6db1f6b650ff..0d68073c13084 100644 --- a/comp/core/log/impl/go.mod +++ b/comp/core/log/impl/go.mod @@ -98,9 +98,9 @@ require ( go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/core/log/impl/go.sum b/comp/core/log/impl/go.sum index e3973187c6caa..9694f5d5e2355 100644 --- a/comp/core/log/impl/go.sum +++ b/comp/core/log/impl/go.sum @@ -239,8 +239,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -280,8 +280,8 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/comp/core/log/mock/go.mod b/comp/core/log/mock/go.mod index 9f9b990745843..8b744f1e85ca2 100644 --- a/comp/core/log/mock/go.mod +++ b/comp/core/log/mock/go.mod @@ -54,9 +54,9 @@ require ( github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect go.uber.org/atomic v1.11.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/comp/core/log/mock/go.sum b/comp/core/log/mock/go.sum index be954babd5c73..2ad11aee593c1 100644 --- a/comp/core/log/mock/go.sum +++ b/comp/core/log/mock/go.sum @@ -207,8 +207,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -244,8 +244,8 @@ golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/comp/core/secrets/go.mod b/comp/core/secrets/go.mod index be88b648342b6..82884c83888ab 100644 --- a/comp/core/secrets/go.mod +++ b/comp/core/secrets/go.mod @@ -27,7 +27,7 @@ require ( github.com/benbjohnson/clock v1.3.5 github.com/stretchr/testify v1.10.0 go.uber.org/fx v1.23.0 - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 golang.org/x/sys v0.28.0 gopkg.in/yaml.v2 v2.4.0 ) diff --git a/comp/core/secrets/go.sum b/comp/core/secrets/go.sum index 0bb14e9d57579..73448320077c4 100644 --- a/comp/core/secrets/go.sum +++ b/comp/core/secrets/go.sum @@ -54,8 +54,8 @@ go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= diff --git a/comp/core/status/go.mod b/comp/core/status/go.mod index 49c200a653ba3..0080f560df33f 100644 --- a/comp/core/status/go.mod +++ b/comp/core/status/go.mod @@ -8,7 +8,7 @@ require ( github.com/spf13/cast v1.7.0 github.com/stretchr/testify v1.10.0 go.uber.org/fx v1.23.0 - golang.org/x/text v0.20.0 + golang.org/x/text v0.21.0 ) require ( diff --git a/comp/core/status/go.sum b/comp/core/status/go.sum index 9d0791f4f7d89..5008e39745d3e 100644 --- a/comp/core/status/go.sum +++ b/comp/core/status/go.sum @@ -42,8 +42,8 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/comp/core/status/statusimpl/go.mod b/comp/core/status/statusimpl/go.mod index 78738479544c0..9487310619057 100644 --- a/comp/core/status/statusimpl/go.mod +++ b/comp/core/status/statusimpl/go.mod @@ -54,7 +54,7 @@ require ( github.com/gorilla/mux v1.8.1 github.com/stretchr/testify v1.10.0 go.uber.org/fx v1.23.0 - golang.org/x/text v0.20.0 + golang.org/x/text v0.21.0 ) require ( @@ -113,7 +113,7 @@ require ( go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/comp/core/status/statusimpl/go.sum b/comp/core/status/statusimpl/go.sum index 650216cc0ce50..fafe0837efa7e 100644 --- a/comp/core/status/statusimpl/go.sum +++ b/comp/core/status/statusimpl/go.sum @@ -250,8 +250,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -293,8 +293,8 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/comp/forwarder/defaultforwarder/go.mod b/comp/forwarder/defaultforwarder/go.mod index 05d96eab4fbcf..a0891b10fda75 100644 --- a/comp/forwarder/defaultforwarder/go.mod +++ b/comp/forwarder/defaultforwarder/go.mod @@ -78,7 +78,7 @@ require ( github.com/stretchr/testify v1.10.0 go.uber.org/atomic v1.11.0 go.uber.org/fx v1.23.0 - golang.org/x/text v0.20.0 + golang.org/x/text v0.21.0 ) require ( @@ -145,8 +145,8 @@ require ( go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/net v0.31.0 // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/sys v0.28.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/comp/forwarder/defaultforwarder/go.sum b/comp/forwarder/defaultforwarder/go.sum index e668380b7ef00..2e4c8055f6ab0 100644 --- a/comp/forwarder/defaultforwarder/go.sum +++ b/comp/forwarder/defaultforwarder/go.sum @@ -262,8 +262,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -281,8 +281,8 @@ golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -307,8 +307,8 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/comp/forwarder/orchestrator/orchestratorinterface/go.mod b/comp/forwarder/orchestrator/orchestratorinterface/go.mod index cb7b6044aeca0..3022f485e02a3 100644 --- a/comp/forwarder/orchestrator/orchestratorinterface/go.mod +++ b/comp/forwarder/orchestrator/orchestratorinterface/go.mod @@ -152,10 +152,10 @@ require ( go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/net v0.31.0 // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/comp/forwarder/orchestrator/orchestratorinterface/go.sum b/comp/forwarder/orchestrator/orchestratorinterface/go.sum index 49efb0a3efaf4..68e574e5c8151 100644 --- a/comp/forwarder/orchestrator/orchestratorinterface/go.sum +++ b/comp/forwarder/orchestrator/orchestratorinterface/go.sum @@ -263,8 +263,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -282,8 +282,8 @@ golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -308,8 +308,8 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/comp/logs/agent/config/go.mod b/comp/logs/agent/config/go.mod index c8360536b53c1..5e99aa77604f0 100644 --- a/comp/logs/agent/config/go.mod +++ b/comp/logs/agent/config/go.mod @@ -99,9 +99,9 @@ require ( go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/logs/agent/config/go.sum b/comp/logs/agent/config/go.sum index e3973187c6caa..9694f5d5e2355 100644 --- a/comp/logs/agent/config/go.sum +++ b/comp/logs/agent/config/go.sum @@ -239,8 +239,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -280,8 +280,8 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/comp/otelcol/converter/impl/go.mod b/comp/otelcol/converter/impl/go.mod index 8b903df1c03a1..b3bae2ce5b62b 100644 --- a/comp/otelcol/converter/impl/go.mod +++ b/comp/otelcol/converter/impl/go.mod @@ -114,9 +114,9 @@ require ( go.uber.org/dig v1.18.0 // indirect go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/otelcol/converter/impl/go.sum b/comp/otelcol/converter/impl/go.sum index f3a0f24d8dbe0..a98a26b75f480 100644 --- a/comp/otelcol/converter/impl/go.sum +++ b/comp/otelcol/converter/impl/go.sum @@ -263,8 +263,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -304,8 +304,8 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/comp/otelcol/ddflareextension/def/go.mod b/comp/otelcol/ddflareextension/def/go.mod index afbb13fd7dc20..7ac807821aee4 100644 --- a/comp/otelcol/ddflareextension/def/go.mod +++ b/comp/otelcol/ddflareextension/def/go.mod @@ -16,9 +16,9 @@ require ( go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/net v0.31.0 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect google.golang.org/protobuf v1.35.2 // indirect diff --git a/comp/otelcol/ddflareextension/def/go.sum b/comp/otelcol/ddflareextension/def/go.sum index 7ce93f374bad3..cb77fcd0e24d3 100644 --- a/comp/otelcol/ddflareextension/def/go.sum +++ b/comp/otelcol/ddflareextension/def/go.sum @@ -45,8 +45,8 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -57,8 +57,8 @@ golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= diff --git a/comp/otelcol/ddflareextension/impl/go.mod b/comp/otelcol/ddflareextension/impl/go.mod index aff23ccf9501f..4deb81664b9ff 100644 --- a/comp/otelcol/ddflareextension/impl/go.mod +++ b/comp/otelcol/ddflareextension/impl/go.mod @@ -502,17 +502,17 @@ require ( go.uber.org/dig v1.18.0 // indirect go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.29.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/crypto v0.31.0 // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/mod v0.22.0 // indirect - golang.org/x/net v0.31.0 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect - golang.org/x/sync v0.9.0 // indirect + golang.org/x/sync v0.10.0 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/term v0.26.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/term v0.27.0 // indirect + golang.org/x/text v0.21.0 // indirect golang.org/x/time v0.8.0 // indirect - golang.org/x/tools v0.27.0 // indirect + golang.org/x/tools v0.28.0 // indirect gonum.org/v1/gonum v0.15.1 // indirect google.golang.org/api v0.199.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect diff --git a/comp/otelcol/ddflareextension/impl/go.sum b/comp/otelcol/ddflareextension/impl/go.sum index be1b5d78f453d..b4c098bd22dcd 100644 --- a/comp/otelcol/ddflareextension/impl/go.sum +++ b/comp/otelcol/ddflareextension/impl/go.sum @@ -1055,8 +1055,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= -golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= -golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1067,8 +1067,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1139,8 +1139,8 @@ golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1162,8 +1162,8 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1238,8 +1238,8 @@ golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= -golang.org/x/term v0.26.0 h1:WEQa6V3Gja/BhNxg540hBip/kkaYtRg3cxg4oXSw4AU= -golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E= +golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= +golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1251,8 +1251,8 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1310,8 +1310,8 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= +golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= +golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/comp/otelcol/logsagentpipeline/go.mod b/comp/otelcol/logsagentpipeline/go.mod index 603e8abcce366..fd1925f5a1a1d 100644 --- a/comp/otelcol/logsagentpipeline/go.mod +++ b/comp/otelcol/logsagentpipeline/go.mod @@ -152,10 +152,10 @@ require ( go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/net v0.31.0 // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/comp/otelcol/logsagentpipeline/go.sum b/comp/otelcol/logsagentpipeline/go.sum index 0816ff6b27cb5..9061e9b89a5c6 100644 --- a/comp/otelcol/logsagentpipeline/go.sum +++ b/comp/otelcol/logsagentpipeline/go.sum @@ -260,8 +260,8 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -282,8 +282,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -309,8 +309,8 @@ golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod index a21412d390c1b..6bce0b3c962d4 100644 --- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod +++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod @@ -164,10 +164,10 @@ require ( go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/net v0.31.0 // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum index 0816ff6b27cb5..9061e9b89a5c6 100644 --- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum +++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum @@ -260,8 +260,8 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -282,8 +282,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -309,8 +309,8 @@ golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod index 5f275b6f0bb73..d29e1451378c7 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod @@ -318,12 +318,12 @@ require ( go.uber.org/dig v1.18.0 // indirect go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/net v0.31.0 // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/term v0.26.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/term v0.27.0 // indirect + golang.org/x/text v0.21.0 // indirect golang.org/x/time v0.8.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum index fc769d52cb6f5..5a622c5f06bbe 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum @@ -505,11 +505,11 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= -golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -532,8 +532,8 @@ golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= @@ -569,12 +569,12 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.26.0 h1:WEQa6V3Gja/BhNxg540hBip/kkaYtRg3cxg4oXSw4AU= -golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E= +golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= +golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod index 94fee13bbfe24..a040e58e4630b 100644 --- a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod @@ -155,12 +155,12 @@ require ( go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/net v0.31.0 // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/term v0.26.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/term v0.27.0 // indirect + golang.org/x/text v0.21.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect google.golang.org/protobuf v1.35.2 // indirect diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum index 4798a24352a51..c65db2e5974bf 100644 --- a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum @@ -353,8 +353,8 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -375,8 +375,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= @@ -404,12 +404,12 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.26.0 h1:WEQa6V3Gja/BhNxg540hBip/kkaYtRg3cxg4oXSw4AU= -golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E= +golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= +golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod index f767ab1daffe5..c47c4c07206d3 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod @@ -214,10 +214,10 @@ require ( go.uber.org/dig v1.18.0 // indirect go.uber.org/fx v1.23.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/net v0.31.0 // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect google.golang.org/protobuf v1.35.2 // indirect diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum index b2344c6db0ff7..e39d69c0417ad 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum @@ -436,8 +436,8 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -458,8 +458,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -487,8 +487,8 @@ golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/comp/otelcol/otlp/components/metricsclient/go.sum b/comp/otelcol/otlp/components/metricsclient/go.sum index 8c8f8cb8beddc..d3cbee6f76083 100644 --- a/comp/otelcol/otlp/components/metricsclient/go.sum +++ b/comp/otelcol/otlp/components/metricsclient/go.sum @@ -64,8 +64,8 @@ golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/comp/otelcol/otlp/components/statsprocessor/go.mod b/comp/otelcol/otlp/components/statsprocessor/go.mod index 9df46434c305c..c0343f17f54b3 100644 --- a/comp/otelcol/otlp/components/statsprocessor/go.mod +++ b/comp/otelcol/otlp/components/statsprocessor/go.mod @@ -88,9 +88,9 @@ require ( go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/net v0.31.0 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect golang.org/x/time v0.8.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect diff --git a/comp/otelcol/otlp/components/statsprocessor/go.sum b/comp/otelcol/otlp/components/statsprocessor/go.sum index d1dd6e5377312..6d97a13321636 100644 --- a/comp/otelcol/otlp/components/statsprocessor/go.sum +++ b/comp/otelcol/otlp/components/statsprocessor/go.sum @@ -184,8 +184,8 @@ go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= -golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -194,8 +194,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -217,8 +217,8 @@ golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/comp/otelcol/otlp/testutil/go.mod b/comp/otelcol/otlp/testutil/go.mod index ebc99a3dd4da4..3612a4e9b1e4c 100644 --- a/comp/otelcol/otlp/testutil/go.mod +++ b/comp/otelcol/otlp/testutil/go.mod @@ -96,10 +96,10 @@ require ( github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/net v0.31.0 // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/comp/otelcol/otlp/testutil/go.sum b/comp/otelcol/otlp/testutil/go.sum index b4642ab1ea7f1..90eafd9495c03 100644 --- a/comp/otelcol/otlp/testutil/go.sum +++ b/comp/otelcol/otlp/testutil/go.sum @@ -269,8 +269,8 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -291,8 +291,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -318,8 +318,8 @@ golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/comp/serializer/compression/go.mod b/comp/serializer/compression/go.mod index 7540d0254c299..a46ee59b26ae6 100644 --- a/comp/serializer/compression/go.mod +++ b/comp/serializer/compression/go.mod @@ -96,9 +96,9 @@ require ( go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/comp/serializer/compression/go.sum b/comp/serializer/compression/go.sum index 47b6f74242930..a3f8c86e6fc2e 100644 --- a/comp/serializer/compression/go.sum +++ b/comp/serializer/compression/go.sum @@ -241,8 +241,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -282,8 +282,8 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/comp/trace/agent/def/go.mod b/comp/trace/agent/def/go.mod index 051fa39644e58..c7b0d130245fe 100644 --- a/comp/trace/agent/def/go.mod +++ b/comp/trace/agent/def/go.mod @@ -30,9 +30,9 @@ require ( go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/net v0.31.0 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect google.golang.org/protobuf v1.35.2 // indirect diff --git a/comp/trace/agent/def/go.sum b/comp/trace/agent/def/go.sum index f6a6d197fb0a4..983db883b8b3d 100644 --- a/comp/trace/agent/def/go.sum +++ b/comp/trace/agent/def/go.sum @@ -80,8 +80,8 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -92,8 +92,8 @@ golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= diff --git a/go.mod b/go.mod index a0b1c786a0280..e3a858a713143 100644 --- a/go.mod +++ b/go.mod @@ -307,13 +307,13 @@ require ( go.uber.org/zap v1.27.0 go4.org/netipx v0.0.0-20220812043211-3cc044ffd68d golang.org/x/arch v0.12.0 - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f - golang.org/x/net v0.31.0 - golang.org/x/sync v0.9.0 + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 + golang.org/x/net v0.32.0 + golang.org/x/sync v0.10.0 golang.org/x/sys v0.28.0 - golang.org/x/text v0.20.0 + golang.org/x/text v0.21.0 golang.org/x/time v0.8.0 - golang.org/x/tools v0.27.0 + golang.org/x/tools v0.28.0 golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 // indirect google.golang.org/grpc v1.67.1 @@ -567,10 +567,10 @@ require ( go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect go.opentelemetry.io/otel/trace v1.32.0 go.opentelemetry.io/proto/otlp v1.3.1 // indirect - golang.org/x/crypto v0.29.0 // indirect + golang.org/x/crypto v0.31.0 // indirect golang.org/x/mod v0.22.0 golang.org/x/oauth2 v0.23.0 // indirect - golang.org/x/term v0.26.0 // indirect + golang.org/x/term v0.27.0 // indirect gonum.org/v1/gonum v0.15.1 // indirect google.golang.org/api v0.199.0 // indirect google.golang.org/appengine v1.6.8 // indirect diff --git a/go.sum b/go.sum index eff56174f57ba..d0f18b589c118 100644 --- a/go.sum +++ b/go.sum @@ -2156,8 +2156,8 @@ golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= -golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= -golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -2168,8 +2168,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f h1:phY1HzDcf18Aq9A8KkmRtY9WvOFIxN8wgfvy6Zm1DV8= golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= @@ -2266,8 +2266,8 @@ golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190130055435-99b60b757ec1/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -2292,8 +2292,8 @@ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -2401,8 +2401,8 @@ golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= -golang.org/x/term v0.26.0 h1:WEQa6V3Gja/BhNxg540hBip/kkaYtRg3cxg4oXSw4AU= -golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E= +golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= +golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -2419,8 +2419,8 @@ golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -2489,8 +2489,8 @@ golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= +golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= +golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/internal/tools/go.mod b/internal/tools/go.mod index 977b438c8a53b..e2a60b08d8971 100644 --- a/internal/tools/go.mod +++ b/internal/tools/go.mod @@ -223,16 +223,16 @@ require ( go.uber.org/automaxprocs v1.6.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/crypto v0.29.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/crypto v0.31.0 // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f // indirect golang.org/x/mod v0.22.0 // indirect - golang.org/x/net v0.31.0 // indirect - golang.org/x/sync v0.9.0 // indirect + golang.org/x/net v0.32.0 // indirect + golang.org/x/sync v0.10.0 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/term v0.26.0 // indirect - golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect + golang.org/x/term v0.27.0 // indirect + golang.org/x/text v0.21.0 // indirect + golang.org/x/tools v0.28.0 // indirect gonum.org/v1/gonum v0.15.1 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/ini.v1 v1.67.0 // indirect diff --git a/internal/tools/go.sum b/internal/tools/go.sum index e525259ff8fe1..f5f1fb317b59a 100644 --- a/internal/tools/go.sum +++ b/internal/tools/go.sum @@ -589,14 +589,14 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= -golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= -golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/exp/typeparams v0.0.0-20230203172020-98cc5a0785f9/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f h1:phY1HzDcf18Aq9A8KkmRtY9WvOFIxN8wgfvy6Zm1DV8= @@ -643,8 +643,8 @@ golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20170207211851-4464e7848382/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/perf v0.0.0-20210220033136-40a54f11e909 h1:rWw0Gj4DMl/2otJ8CnfTcwOWkpROAc6qhXXoMrYOCgo= golang.org/x/perf v0.0.0-20210220033136-40a54f11e909/go.mod h1:KRSrLY7jerMEa0Ih7gBheQ3FYDiSx6liMnniX1o3j2g= @@ -657,8 +657,8 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -699,8 +699,8 @@ golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= -golang.org/x/term v0.26.0 h1:WEQa6V3Gja/BhNxg540hBip/kkaYtRg3cxg4oXSw4AU= -golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E= +golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= +golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -711,8 +711,8 @@ golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -740,8 +740,8 @@ golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= golang.org/x/tools v0.5.0/go.mod h1:N+Kgy78s5I24c24dU8OfWNEotWjutIs8SnJvn5IDq+k= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.11.0/go.mod h1:anzJrxPjNtfgiYQYirP2CPGzGLxrH2u2QBhn6Bf3qY8= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= +golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= +golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/internal/tools/proto/go.mod b/internal/tools/proto/go.mod index c184f7199cac0..12d0a2fb58004 100644 --- a/internal/tools/proto/go.mod +++ b/internal/tools/proto/go.mod @@ -19,11 +19,11 @@ require ( github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect github.com/rogpeppe/go-internal v1.13.1 // indirect golang.org/x/mod v0.22.0 // indirect - golang.org/x/net v0.31.0 // indirect - golang.org/x/sync v0.9.0 // indirect + golang.org/x/net v0.32.0 // indirect + golang.org/x/sync v0.10.0 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect + golang.org/x/text v0.21.0 // indirect + golang.org/x/tools v0.28.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/protobuf v1.35.2 // indirect diff --git a/internal/tools/proto/go.sum b/internal/tools/proto/go.sum index eaa399967ead7..3d105f38523d1 100644 --- a/internal/tools/proto/go.sum +++ b/internal/tools/proto/go.sum @@ -71,8 +71,8 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -80,8 +80,8 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -94,8 +94,8 @@ golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -103,8 +103,8 @@ golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= +golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= +golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/pkg/api/go.mod b/pkg/api/go.mod index cc581a79c93ff..c3499a2fb94c2 100644 --- a/pkg/api/go.mod +++ b/pkg/api/go.mod @@ -100,9 +100,9 @@ require ( go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/api/go.sum b/pkg/api/go.sum index e3973187c6caa..9694f5d5e2355 100644 --- a/pkg/api/go.sum +++ b/pkg/api/go.sum @@ -239,8 +239,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -280,8 +280,8 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/config/env/go.mod b/pkg/config/env/go.mod index 34b158b27e106..637c78a705df1 100644 --- a/pkg/config/env/go.mod +++ b/pkg/config/env/go.mod @@ -45,9 +45,9 @@ require ( github.com/spf13/pflag v1.0.5 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/config/env/go.sum b/pkg/config/env/go.sum index 55897bd029c82..d7d4a9a3701e0 100644 --- a/pkg/config/env/go.sum +++ b/pkg/config/env/go.sum @@ -200,8 +200,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -241,8 +241,8 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/config/mock/go.mod b/pkg/config/mock/go.mod index a358e04841b8b..48f1f452fa096 100644 --- a/pkg/config/mock/go.mod +++ b/pkg/config/mock/go.mod @@ -79,9 +79,9 @@ require ( github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/config/mock/go.sum b/pkg/config/mock/go.sum index 6df24d44986c1..3f00397cbc301 100644 --- a/pkg/config/mock/go.sum +++ b/pkg/config/mock/go.sum @@ -235,8 +235,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -276,8 +276,8 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/config/model/go.mod b/pkg/config/model/go.mod index 4fb2df929ebac..c77134c93ba10 100644 --- a/pkg/config/model/go.mod +++ b/pkg/config/model/go.mod @@ -14,7 +14,7 @@ require ( github.com/DataDog/viper v1.14.0 github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 github.com/stretchr/testify v1.10.0 - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 ) require ( @@ -34,7 +34,7 @@ require ( github.com/spf13/pflag v1.0.5 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/config/model/go.sum b/pkg/config/model/go.sum index 7b03b89cac861..4ffd1e9d2ce0a 100644 --- a/pkg/config/model/go.sum +++ b/pkg/config/model/go.sum @@ -185,8 +185,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -222,8 +222,8 @@ golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/config/nodetreemodel/go.mod b/pkg/config/nodetreemodel/go.mod index de9da422721ad..e0f87c66cb372 100644 --- a/pkg/config/nodetreemodel/go.mod +++ b/pkg/config/nodetreemodel/go.mod @@ -19,7 +19,7 @@ require ( github.com/spf13/cast v1.7.0 github.com/stretchr/testify v1.10.0 go.uber.org/atomic v1.11.0 - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 gopkg.in/yaml.v2 v2.4.0 ) @@ -38,7 +38,7 @@ require ( github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/config/nodetreemodel/go.sum b/pkg/config/nodetreemodel/go.sum index ebb19c16de189..c5a94912c5617 100644 --- a/pkg/config/nodetreemodel/go.sum +++ b/pkg/config/nodetreemodel/go.sum @@ -188,8 +188,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -225,8 +225,8 @@ golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/config/remote/go.mod b/pkg/config/remote/go.mod index 418e2f017f81d..ec7d298386516 100644 --- a/pkg/config/remote/go.mod +++ b/pkg/config/remote/go.mod @@ -112,7 +112,7 @@ require ( github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/mod v0.22.0 // indirect golang.org/x/time v0.8.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect @@ -141,9 +141,9 @@ require ( github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/tinylib/msgp v1.2.4 // indirect - golang.org/x/net v0.31.0 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect diff --git a/pkg/config/remote/go.sum b/pkg/config/remote/go.sum index fa403bade18cb..e9342de28e23c 100644 --- a/pkg/config/remote/go.sum +++ b/pkg/config/remote/go.sum @@ -347,11 +347,11 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= -golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -378,8 +378,8 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= @@ -391,8 +391,8 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -420,8 +420,8 @@ golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= diff --git a/pkg/config/setup/go.mod b/pkg/config/setup/go.mod index c02d710d51f13..b7c9ff41de81b 100644 --- a/pkg/config/setup/go.mod +++ b/pkg/config/setup/go.mod @@ -101,9 +101,9 @@ require ( go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/config/setup/go.sum b/pkg/config/setup/go.sum index 18e09a82750bb..7f15a6d221890 100644 --- a/pkg/config/setup/go.sum +++ b/pkg/config/setup/go.sum @@ -244,8 +244,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -285,8 +285,8 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/config/structure/go.mod b/pkg/config/structure/go.mod index 83c57b35c79fd..0ad28fd9f92f5 100644 --- a/pkg/config/structure/go.mod +++ b/pkg/config/structure/go.mod @@ -58,9 +58,9 @@ require ( github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect go.uber.org/atomic v1.11.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/config/structure/go.sum b/pkg/config/structure/go.sum index ebb19c16de189..c5a94912c5617 100644 --- a/pkg/config/structure/go.sum +++ b/pkg/config/structure/go.sum @@ -188,8 +188,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -225,8 +225,8 @@ golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/config/teeconfig/go.mod b/pkg/config/teeconfig/go.mod index 7644391c8d1bf..2484fb9cd55e3 100644 --- a/pkg/config/teeconfig/go.mod +++ b/pkg/config/teeconfig/go.mod @@ -29,9 +29,9 @@ require ( github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect go.uber.org/atomic v1.11.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/pkg/config/teeconfig/go.sum b/pkg/config/teeconfig/go.sum index 7b03b89cac861..4ffd1e9d2ce0a 100644 --- a/pkg/config/teeconfig/go.sum +++ b/pkg/config/teeconfig/go.sum @@ -185,8 +185,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -222,8 +222,8 @@ golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/config/utils/go.mod b/pkg/config/utils/go.mod index d8f776a5d5ebd..5fc90b2da63fd 100644 --- a/pkg/config/utils/go.mod +++ b/pkg/config/utils/go.mod @@ -84,9 +84,9 @@ require ( github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/config/utils/go.sum b/pkg/config/utils/go.sum index 6df24d44986c1..3f00397cbc301 100644 --- a/pkg/config/utils/go.sum +++ b/pkg/config/utils/go.sum @@ -235,8 +235,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -276,8 +276,8 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/linters/components/pkgconfigusage/go.mod b/pkg/linters/components/pkgconfigusage/go.mod index 20461858aabd2..9b24d1e11940e 100644 --- a/pkg/linters/components/pkgconfigusage/go.mod +++ b/pkg/linters/components/pkgconfigusage/go.mod @@ -5,7 +5,7 @@ go 1.23.0 require ( github.com/golangci/plugin-module-register v0.1.1 github.com/stretchr/testify v1.10.0 - golang.org/x/tools v0.27.0 + golang.org/x/tools v0.28.0 ) require ( @@ -14,7 +14,7 @@ require ( github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/rogpeppe/go-internal v1.13.1 // indirect golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect + golang.org/x/sync v0.10.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/linters/components/pkgconfigusage/go.sum b/pkg/linters/components/pkgconfigusage/go.sum index 9f7ff6dacdfaf..11aca8345b971 100644 --- a/pkg/linters/components/pkgconfigusage/go.sum +++ b/pkg/linters/components/pkgconfigusage/go.sum @@ -22,10 +22,10 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= +golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/pkg/logs/auditor/go.mod b/pkg/logs/auditor/go.mod index d375aa6e7038d..3fc9bf65dfa46 100644 --- a/pkg/logs/auditor/go.mod +++ b/pkg/logs/auditor/go.mod @@ -98,9 +98,9 @@ require ( github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/logs/auditor/go.sum b/pkg/logs/auditor/go.sum index 6df24d44986c1..3f00397cbc301 100644 --- a/pkg/logs/auditor/go.sum +++ b/pkg/logs/auditor/go.sum @@ -235,8 +235,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -276,8 +276,8 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/logs/client/go.mod b/pkg/logs/client/go.mod index 8ca05dfb2f632..093922b236bf3 100644 --- a/pkg/logs/client/go.mod +++ b/pkg/logs/client/go.mod @@ -63,7 +63,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/DataDog/datadog-agent/pkg/version v0.59.1 github.com/stretchr/testify v1.10.0 - golang.org/x/net v0.31.0 + golang.org/x/net v0.32.0 ) require ( @@ -130,9 +130,9 @@ require ( go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/logs/client/go.sum b/pkg/logs/client/go.sum index 65b369f190875..1140bccbba9c9 100644 --- a/pkg/logs/client/go.sum +++ b/pkg/logs/client/go.sum @@ -244,8 +244,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -263,8 +263,8 @@ golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -287,8 +287,8 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/logs/diagnostic/go.mod b/pkg/logs/diagnostic/go.mod index b8ef753620e44..65fb4af75f769 100644 --- a/pkg/logs/diagnostic/go.mod +++ b/pkg/logs/diagnostic/go.mod @@ -108,9 +108,9 @@ require ( go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/logs/diagnostic/go.sum b/pkg/logs/diagnostic/go.sum index e3973187c6caa..9694f5d5e2355 100644 --- a/pkg/logs/diagnostic/go.sum +++ b/pkg/logs/diagnostic/go.sum @@ -239,8 +239,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -280,8 +280,8 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/logs/message/go.mod b/pkg/logs/message/go.mod index 463f6366031f4..716c4a57de92f 100644 --- a/pkg/logs/message/go.mod +++ b/pkg/logs/message/go.mod @@ -94,9 +94,9 @@ require ( github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/logs/message/go.sum b/pkg/logs/message/go.sum index 6df24d44986c1..3f00397cbc301 100644 --- a/pkg/logs/message/go.sum +++ b/pkg/logs/message/go.sum @@ -235,8 +235,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -276,8 +276,8 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/logs/pipeline/go.mod b/pkg/logs/pipeline/go.mod index 8b584b5b1aa03..b2cca0985481e 100644 --- a/pkg/logs/pipeline/go.mod +++ b/pkg/logs/pipeline/go.mod @@ -149,10 +149,10 @@ require ( go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/net v0.31.0 // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/logs/pipeline/go.sum b/pkg/logs/pipeline/go.sum index 0816ff6b27cb5..9061e9b89a5c6 100644 --- a/pkg/logs/pipeline/go.sum +++ b/pkg/logs/pipeline/go.sum @@ -260,8 +260,8 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -282,8 +282,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -309,8 +309,8 @@ golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/logs/processor/go.mod b/pkg/logs/processor/go.mod index ffa047656aa16..cc9458ea710c0 100644 --- a/pkg/logs/processor/go.mod +++ b/pkg/logs/processor/go.mod @@ -129,9 +129,9 @@ require ( go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/logs/processor/go.sum b/pkg/logs/processor/go.sum index df30b2959c6d8..f97a65425513e 100644 --- a/pkg/logs/processor/go.sum +++ b/pkg/logs/processor/go.sum @@ -255,8 +255,8 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -302,8 +302,8 @@ golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/logs/sds/go.mod b/pkg/logs/sds/go.mod index 71861e9789dd6..33c40479ed13f 100644 --- a/pkg/logs/sds/go.mod +++ b/pkg/logs/sds/go.mod @@ -123,9 +123,9 @@ require ( go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/logs/sds/go.sum b/pkg/logs/sds/go.sum index ba2765ae6cc8c..a5a699a22e560 100644 --- a/pkg/logs/sds/go.sum +++ b/pkg/logs/sds/go.sum @@ -244,8 +244,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -285,8 +285,8 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/logs/sender/go.mod b/pkg/logs/sender/go.mod index c6222c7c0214c..5a77fb5bb761d 100644 --- a/pkg/logs/sender/go.mod +++ b/pkg/logs/sender/go.mod @@ -130,10 +130,10 @@ require ( go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/net v0.31.0 // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/logs/sender/go.sum b/pkg/logs/sender/go.sum index 65b369f190875..1140bccbba9c9 100644 --- a/pkg/logs/sender/go.sum +++ b/pkg/logs/sender/go.sum @@ -244,8 +244,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -263,8 +263,8 @@ golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -287,8 +287,8 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/logs/sources/go.mod b/pkg/logs/sources/go.mod index 736839618c355..a5ff5d7147d72 100644 --- a/pkg/logs/sources/go.mod +++ b/pkg/logs/sources/go.mod @@ -92,9 +92,9 @@ require ( github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/logs/sources/go.sum b/pkg/logs/sources/go.sum index 6df24d44986c1..3f00397cbc301 100644 --- a/pkg/logs/sources/go.sum +++ b/pkg/logs/sources/go.sum @@ -235,8 +235,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -276,8 +276,8 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/logs/util/testutils/go.mod b/pkg/logs/util/testutils/go.mod index 6c8ce3a26dae3..ebf193c2c90a2 100644 --- a/pkg/logs/util/testutils/go.mod +++ b/pkg/logs/util/testutils/go.mod @@ -91,8 +91,8 @@ require ( github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/pkg/logs/util/testutils/go.sum b/pkg/logs/util/testutils/go.sum index 6df24d44986c1..3f00397cbc301 100644 --- a/pkg/logs/util/testutils/go.sum +++ b/pkg/logs/util/testutils/go.sum @@ -235,8 +235,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -276,8 +276,8 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/metrics/go.mod b/pkg/metrics/go.mod index e506cd41e855c..46137034d3399 100644 --- a/pkg/metrics/go.mod +++ b/pkg/metrics/go.mod @@ -115,9 +115,9 @@ require ( go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect google.golang.org/protobuf v1.35.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/metrics/go.sum b/pkg/metrics/go.sum index 6316d64a4973c..0b55a947b65bf 100644 --- a/pkg/metrics/go.sum +++ b/pkg/metrics/go.sum @@ -254,8 +254,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -295,8 +295,8 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/obfuscate/go.mod b/pkg/obfuscate/go.mod index 6244babbebdad..7085b75f3783d 100644 --- a/pkg/obfuscate/go.mod +++ b/pkg/obfuscate/go.mod @@ -20,7 +20,7 @@ require ( github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/rogpeppe/go-internal v1.13.1 // indirect - golang.org/x/net v0.31.0 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/sys v0.28.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/pkg/obfuscate/go.sum b/pkg/obfuscate/go.sum index 110dcdcb3b979..e36a2867eaba6 100644 --- a/pkg/obfuscate/go.sum +++ b/pkg/obfuscate/go.sum @@ -62,8 +62,8 @@ golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/pkg/proto/go.mod b/pkg/proto/go.mod index 31b8133d579a2..f8bf148c648a2 100644 --- a/pkg/proto/go.mod +++ b/pkg/proto/go.mod @@ -24,9 +24,9 @@ require ( github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/rogpeppe/go-internal v1.13.1 // indirect github.com/vmihailenco/tagparser v0.1.2 // indirect - golang.org/x/net v0.31.0 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect diff --git a/pkg/proto/go.sum b/pkg/proto/go.sum index e5169ad285286..7299faff27435 100644 --- a/pkg/proto/go.sum +++ b/pkg/proto/go.sum @@ -89,8 +89,8 @@ golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -118,8 +118,8 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= diff --git a/pkg/remoteconfig/state/go.mod b/pkg/remoteconfig/state/go.mod index cba41ddd27681..d9fead6f8ede8 100644 --- a/pkg/remoteconfig/state/go.mod +++ b/pkg/remoteconfig/state/go.mod @@ -14,7 +14,6 @@ require ( github.com/kr/pretty v0.3.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/rogpeppe/go-internal v1.13.1 // indirect - golang.org/x/crypto v0.29.0 // indirect - golang.org/x/sys v0.28.0 // indirect + golang.org/x/crypto v0.31.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/remoteconfig/state/go.sum b/pkg/remoteconfig/state/go.sum index 5d971132d7ec4..d86844e767b4e 100644 --- a/pkg/remoteconfig/state/go.sum +++ b/pkg/remoteconfig/state/go.sum @@ -21,8 +21,8 @@ github.com/secure-systems-lab/go-securesystemslib v0.8.0 h1:mr5An6X45Kb2nddcFlbm github.com/secure-systems-lab/go-securesystemslib v0.8.0/go.mod h1:UH2VZVuJfCYR8WgMlCU1uFsOUU+KeyrTWcSS73NBOzU= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= -golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/pkg/security/secl/go.mod b/pkg/security/secl/go.mod index 8be4ff1e048be..7a709c2832e48 100644 --- a/pkg/security/secl/go.mod +++ b/pkg/security/secl/go.mod @@ -18,8 +18,8 @@ require ( github.com/stretchr/testify v1.10.0 github.com/xeipuuv/gojsonschema v1.2.0 golang.org/x/sys v0.28.0 - golang.org/x/text v0.20.0 - golang.org/x/tools v0.27.0 + golang.org/x/text v0.21.0 + golang.org/x/tools v0.28.0 gopkg.in/yaml.v3 v3.0.1 modernc.org/mathutil v1.6.0 sigs.k8s.io/yaml v1.4.0 @@ -39,8 +39,8 @@ require ( github.com/shopspring/decimal v1.4.0 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect - golang.org/x/crypto v0.29.0 // indirect + golang.org/x/crypto v0.31.0 // indirect golang.org/x/mod v0.22.0 // indirect - golang.org/x/sync v0.9.0 // indirect + golang.org/x/sync v0.10.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect ) diff --git a/pkg/security/secl/go.sum b/pkg/security/secl/go.sum index 354a1917077fc..267d639c9503a 100644 --- a/pkg/security/secl/go.sum +++ b/pkg/security/secl/go.sum @@ -75,29 +75,29 @@ go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= -golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= +golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= +golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= diff --git a/pkg/security/seclwin/go.mod b/pkg/security/seclwin/go.mod index 174d361f3255d..496f580b96071 100644 --- a/pkg/security/seclwin/go.mod +++ b/pkg/security/seclwin/go.mod @@ -13,5 +13,5 @@ require ( github.com/alecthomas/participle v0.7.1 // indirect github.com/jellydator/ttlcache/v3 v3.3.0 // indirect github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect - golang.org/x/sync v0.9.0 // indirect + golang.org/x/sync v0.10.0 // indirect ) diff --git a/pkg/security/seclwin/go.sum b/pkg/security/seclwin/go.sum index 502e756cc9c46..8207782fa1c53 100644 --- a/pkg/security/seclwin/go.sum +++ b/pkg/security/seclwin/go.sum @@ -18,8 +18,8 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/pkg/serializer/go.mod b/pkg/serializer/go.mod index 545b645414136..dd7f21c9fdbe9 100644 --- a/pkg/serializer/go.mod +++ b/pkg/serializer/go.mod @@ -177,10 +177,10 @@ require ( go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/net v0.31.0 // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/serializer/go.sum b/pkg/serializer/go.sum index 74a1c5f4717db..67815a3db8c1d 100644 --- a/pkg/serializer/go.sum +++ b/pkg/serializer/go.sum @@ -301,8 +301,8 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -323,8 +323,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -352,8 +352,8 @@ golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/trace/go.mod b/pkg/trace/go.mod index 9a1f316511e3a..7d0666e48194e 100644 --- a/pkg/trace/go.mod +++ b/pkg/trace/go.mod @@ -105,8 +105,8 @@ require ( go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/net v0.31.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/net v0.32.0 // indirect + golang.org/x/text v0.21.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/pkg/trace/go.sum b/pkg/trace/go.sum index f4ee6919325a7..2500f28a6512c 100644 --- a/pkg/trace/go.sum +++ b/pkg/trace/go.sum @@ -316,8 +316,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= -golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -333,8 +333,8 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -364,8 +364,8 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/trace/stats/oteltest/go.mod b/pkg/trace/stats/oteltest/go.mod index 1880e691cf094..b6992747ee41b 100644 --- a/pkg/trace/stats/oteltest/go.mod +++ b/pkg/trace/stats/oteltest/go.mod @@ -75,9 +75,9 @@ require ( go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/net v0.31.0 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect golang.org/x/time v0.8.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect diff --git a/pkg/trace/stats/oteltest/go.sum b/pkg/trace/stats/oteltest/go.sum index d1dd6e5377312..6d97a13321636 100644 --- a/pkg/trace/stats/oteltest/go.sum +++ b/pkg/trace/stats/oteltest/go.sum @@ -184,8 +184,8 @@ go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= -golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -194,8 +194,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -217,8 +217,8 @@ golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/util/flavor/go.mod b/pkg/util/flavor/go.mod index b4cde61713931..4b2095a3d95dd 100644 --- a/pkg/util/flavor/go.mod +++ b/pkg/util/flavor/go.mod @@ -80,9 +80,9 @@ require ( github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/util/flavor/go.sum b/pkg/util/flavor/go.sum index 6df24d44986c1..3f00397cbc301 100644 --- a/pkg/util/flavor/go.sum +++ b/pkg/util/flavor/go.sum @@ -235,8 +235,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -276,8 +276,8 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/util/grpc/go.mod b/pkg/util/grpc/go.mod index 977343bfe3c4d..46b4cce771519 100644 --- a/pkg/util/grpc/go.mod +++ b/pkg/util/grpc/go.mod @@ -40,7 +40,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 github.com/stretchr/testify v1.10.0 - golang.org/x/net v0.31.0 + golang.org/x/net v0.32.0 google.golang.org/grpc v1.67.1 ) @@ -95,10 +95,10 @@ require ( github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect diff --git a/pkg/util/grpc/go.sum b/pkg/util/grpc/go.sum index 6467120987601..6b1fd57ab75ad 100644 --- a/pkg/util/grpc/go.sum +++ b/pkg/util/grpc/go.sum @@ -268,8 +268,8 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -292,8 +292,8 @@ golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= @@ -324,8 +324,8 @@ golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/util/http/go.mod b/pkg/util/http/go.mod index 39e32393df50d..fd083ad63e413 100644 --- a/pkg/util/http/go.mod +++ b/pkg/util/http/go.mod @@ -35,7 +35,7 @@ require ( github.com/DataDog/datadog-agent/pkg/config/model v0.59.0 github.com/DataDog/datadog-agent/pkg/util/log v0.59.1 github.com/stretchr/testify v1.10.0 - golang.org/x/net v0.31.0 + golang.org/x/net v0.32.0 ) require ( @@ -82,9 +82,9 @@ require ( github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/util/http/go.sum b/pkg/util/http/go.sum index d2f68d6435b82..71817661e74a3 100644 --- a/pkg/util/http/go.sum +++ b/pkg/util/http/go.sum @@ -235,8 +235,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -254,8 +254,8 @@ golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -278,8 +278,8 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/pkg/util/log/setup/go.mod b/pkg/util/log/setup/go.mod index f865653e53d51..480a4c8b2e4cd 100644 --- a/pkg/util/log/setup/go.mod +++ b/pkg/util/log/setup/go.mod @@ -81,9 +81,9 @@ require ( github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/atomic v1.11.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/text v0.21.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/pkg/util/log/setup/go.sum b/pkg/util/log/setup/go.sum index 6df24d44986c1..3f00397cbc301 100644 --- a/pkg/util/log/setup/go.sum +++ b/pkg/util/log/setup/go.sum @@ -235,8 +235,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -276,8 +276,8 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/test/fakeintake/go.mod b/test/fakeintake/go.mod index b4094d4af835e..4dd9e30ab4a7d 100644 --- a/test/fakeintake/go.mod +++ b/test/fakeintake/go.mod @@ -54,8 +54,8 @@ require ( github.com/rogpeppe/go-internal v1.13.1 // indirect github.com/spf13/pflag v1.0.5 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.20.0 // indirect - golang.org/x/tools v0.27.0 // indirect + golang.org/x/text v0.21.0 // indirect + golang.org/x/tools v0.28.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6 // indirect modernc.org/libc v1.55.3 // indirect diff --git a/test/fakeintake/go.sum b/test/fakeintake/go.sum index 7267f4b399133..5eac49258c5fa 100644 --- a/test/fakeintake/go.sum +++ b/test/fakeintake/go.sum @@ -109,8 +109,8 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -119,14 +119,14 @@ golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= +golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= +golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/test/new-e2e/go.mod b/test/new-e2e/go.mod index e8dde1fd6d8b6..b24309be06e28 100644 --- a/test/new-e2e/go.mod +++ b/test/new-e2e/go.mod @@ -79,9 +79,9 @@ require ( github.com/samber/lo v1.47.0 github.com/stretchr/testify v1.10.0 github.com/xeipuuv/gojsonschema v1.2.0 - golang.org/x/crypto v0.29.0 + golang.org/x/crypto v0.31.0 golang.org/x/sys v0.28.0 - golang.org/x/term v0.26.0 + golang.org/x/term v0.27.0 gopkg.in/yaml.v2 v2.4.0 gopkg.in/zorkian/go-datadog-api.v2 v2.30.0 k8s.io/api v0.31.3 @@ -253,14 +253,14 @@ require ( go.opentelemetry.io/otel/trace v1.32.0 // indirect go.starlark.net v0.0.0-20231101134539-556fd59b42f6 // indirect go.uber.org/atomic v1.11.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 golang.org/x/mod v0.22.0 // indirect - golang.org/x/net v0.31.0 + golang.org/x/net v0.32.0 golang.org/x/oauth2 v0.23.0 // indirect - golang.org/x/sync v0.9.0 // indirect - golang.org/x/text v0.20.0 + golang.org/x/sync v0.10.0 // indirect + golang.org/x/text v0.21.0 golang.org/x/time v0.8.0 // indirect - golang.org/x/tools v0.27.0 // indirect + golang.org/x/tools v0.28.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect google.golang.org/protobuf v1.35.2 // indirect diff --git a/test/new-e2e/go.sum b/test/new-e2e/go.sum index 516b220165409..762f7309695c4 100644 --- a/test/new-e2e/go.sum +++ b/test/new-e2e/go.sum @@ -559,11 +559,11 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= -golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= -golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -591,8 +591,8 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= @@ -605,8 +605,8 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -636,15 +636,15 @@ golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.26.0 h1:WEQa6V3Gja/BhNxg540hBip/kkaYtRg3cxg4oXSw4AU= -golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E= +golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= +golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -659,8 +659,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= +golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= +golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/test/otel/go.mod b/test/otel/go.mod index 3bb758c1620d7..61cea6579311f 100644 --- a/test/otel/go.mod +++ b/test/otel/go.mod @@ -291,12 +291,12 @@ require ( go.uber.org/fx v1.23.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect - golang.org/x/net v0.31.0 // indirect + golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect + golang.org/x/net v0.32.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sys v0.28.0 // indirect - golang.org/x/term v0.26.0 // indirect - golang.org/x/text v0.20.0 // indirect + golang.org/x/term v0.27.0 // indirect + golang.org/x/text v0.21.0 // indirect golang.org/x/time v0.8.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect google.golang.org/grpc v1.67.1 // indirect diff --git a/test/otel/go.sum b/test/otel/go.sum index 2fcc58afcf90e..a50f250b894a6 100644 --- a/test/otel/go.sum +++ b/test/otel/go.sum @@ -487,11 +487,11 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= -golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU= +golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -514,8 +514,8 @@ golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= @@ -551,12 +551,12 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.26.0 h1:WEQa6V3Gja/BhNxg540hBip/kkaYtRg3cxg4oXSw4AU= -golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E= +golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= +golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg=